Skip to content

Latest commit

 

History

History
113 lines (78 loc) · 5.96 KB

File metadata and controls

113 lines (78 loc) · 5.96 KB

Plugin Hub

English · Русский · Содержание документации

Nagient хранит необязательные интеграции вне ядра. У каждого плагина свой репозиторий, манифест, версия, зависимости, документация и release cycle. Установленные плагины находятся в ~/.nagient и не копируются в Python-пакет.

Открыть установщик

nagient plugin install

В интерактивном терминале Plugin Hub показывает все проверенные внешние плагины, их тип и статус installed или available. Можно выбрать плагин из списка или пункт установки по Git URL. В неинтерактивном shell эта же команда печатает проверенный каталог и готовые команды, не ожидая ввода.

Установить напрямую

Короткий проверенный ID — самый простой воспроизводимый источник:

nagient plugin install nagient.telegram
nagient plugin install nagient.github_api

Nagient берёт проверенный репозиторий и закреплённый релиз из каталога. Совместимый Git-репозиторий можно установить обычной ссылкой без префикса:

nagient plugin install https://github.com/owner/nagient-plugin.git
nagient plugin install https://github.com/owner/nagient-plugin.git --ref v1.2.0

--force переустанавливает плагин, --no-dependencies пропускает создание изолированного окружения, а --format json предназначен для автоматизации.

Проверенный каталог

Плагин Семейство Статус Установка
Console Transport Transport Встроен Не требуется
Webhook Transport Transport Встроен Не требуется
Telegram Transport Transport Проверенный внешний nagient plugin install nagient.telegram
GitHub API Tool Tool Проверенный внешний nagient plugin install nagient.github_api

Полный каталог и фильтр по семейству:

nagient plugin catalog list
nagient plugin catalog list --family transport
nagient plugin catalog list --format json

Настроить установленный плагин

Установка делает плагин доступным для discovery, а конфигурация включает конкретный профиль. Все поля объявлены в манифесте. Env overrides используют одну форму:

NAGIENT_<FAMILY>__<PROFILE_ID>__<FIELD>=value

Пример Telegram:

NAGIENT_TRANSPORT__TELEGRAM__PLUGIN=nagient.telegram
NAGIENT_TRANSPORT__TELEGRAM__ENABLED=true
NAGIENT_TRANSPORT__TELEGRAM__BOT_TOKEN_SECRET=TELEGRAM_BOT_TOKEN
NAGIENT_TRANSPORT__TELEGRAM__ALLOWED_USER_IDS=123456789
TELEGRAM_BOT_TOKEN=123456:replace-me

Пример GitHub API:

NAGIENT_TOOL__GITHUB_API__PLUGIN=nagient.github_api
NAGIENT_TOOL__GITHUB_API__ENABLED=true
NAGIENT_TOOL__GITHUB_API__TOKEN_SECRET=GITHUB_TOKEN
GITHUB_TOKEN=github_pat_replace_me

Секретное поле содержит имя секрета. Само значение храните в environment, secrets.env, tool-secrets.env или соответствующем JSON override.

Docker Compose

Используйте тот же Plugin Hub внутри постоянного контейнера:

docker compose exec nagient nagient plugin install
docker compose exec nagient nagient plugin install nagient.telegram
docker compose exec nagient nagient preflight
docker compose restart nagient

Для автоматической установки при первом запуске закрепите источники в .env:

NAGIENT_PLUGIN_SPECS=https://github.com/KOSFin/nagient-transport-telegram.git#v0.2.1,https://github.com/KOSFin/nagient-tool-github-api.git#v0.2.1

Установленные плагины сохраняются в постоянном mount ./data после перезапуска контейнера.

Проверка, обновление и удаление

nagient plugin list
nagient plugin install nagient.telegram --force
nagient plugin remove nagient.telegram
nagient preflight

Переустановка по verified ID использует ref, закреплённый в текущем каталоге. Для произвольного репозитория передайте нужный --ref явно.

Модель доверия

verified означает, что каталог Nagient закрепляет проверенные source и ref. Это не sandbox для произвольного кода. Перед установкой непроверенного URL изучите манифест, исходный код, зависимости, разрешения и сетевое поведение. Оставляйте workspace в режиме bounded, если конкретному workflow не нужен более широкий доступ.

Авторам плагинов стоит начать с официального шаблона, а затем открыть статью Создание первого плагина.