На этой страницеAPI files
Выбор файла
Попросите пользователя выбрать небольшой текстовый файл и прочитайте его по handle.
API files
Нужна возможность files.userSelected / selectedFile. Выбор выполняется через нативный интерфейс по явному действию пользователя.
Выбрать и прочитать
const picked = await api.files.pick();
const result = await api.files.read({ handle: picked.handle });
const text = result.text;
pick() возвращает handle, name и size. read() возвращает { text, encoding: "utf8" }.
Что именно доступно
Контракт предназначен для выбранного пользователем ограниченного UTF-8 текста. Текущий нативный адаптер ограничивает чтение 48 КиБ. Это не API произвольных путей, папок, загрузок или внешних носителей.
Handle принадлежит текущему runtime, истекает и не должен сохраняться между запусками. Отмена выбора — нормальный исход операции.
Пример применения
Импорт собственной таблицы замен: пользователь выбирает JSON-файл, плагин читает его как текст, проверяет структуру и сохраняет допустимые записи в собственный storage.
const picked = await api.files.pick();
const { text } = await api.files.read({ handle: picked.handle });
const value = JSON.parse(text);
if (!Array.isArray(value)) throw new Error("Ожидался список замен");
Не записывайте разобранный объект без проверки его размера, типов и ожидаемых полей.
Ресурсы из пакета
Для собственных изображений используйте assets. Установка .dgplugin выполняется открытием документа в чате, а не этим API выбора пользовательского текста.