# Каталог плагинов

## Назначение

Раздел описывает будущий каталог плагинов: встроенные, внешние и пользовательские плагины; версии; верификацию; коммерческий статус; права доступа; секреты; runtime-зависимости.

Плагин является видом пакета. Он описывается manifest в репозитории-источнике, устанавливается через `package-hub`, а техническая нагрузка запускается через runtime-контур.

## Базовая модель

| Объект | Назначение |
|---|---|
| Пакет плагина | Каталоговая запись пакета с видом `plugin`. |
| Версия плагина | Конкретная версия manifest, исходника и runtime-требований. |
| Установка плагина | Установка версии в области платформы, организации, проекта или репозитория. |
| Схема секретов | Описание секретов, которые пользователь должен заполнить до активации. |
| Runtime-требования | Требования к нагрузке, Kubernetes-манифестам, health и ресурсам. |

## Требования к manifest плагина

- Указать вид пакета `plugin`.
- Описать возможности: внешний канал, MCP-инструмент, webhook, уведомления, approval или другую возможность пакета.
- Не использовать зарезервированные capability `guidance`, `store`, `platform_content`: это другие виды пакетов с другой границей ответственности.
- Описать требуемые API платформы и действия доступа.
- Описать схемы секретов с локализованными названиями и подсказками.
- Описать runtime-требования без хранения сырых секретов в репозитории.
- Указать версию, источник, автора, лицензию, коммерческий статус и ограничения верификации.

## Границы

- Каталог плагинов не запускает runtime-нагрузки.
- `package-hub` хранит установку и требования.
- `runtime-manager` исполняет технические задания запуска и остановки.
- `interaction-hub` использует плагин канала, но не становится владельцем его установки.
- `access-manager` проверяет права на установку и использование.
