chore(i18n): refresh uk translations
This commit is contained in:
parent
973f7d068d
commit
6aaf6a29aa
@ -1,35 +1,35 @@
|
||||
---
|
||||
read_when:
|
||||
- Збирання або налагодження нативних плагінів OpenClaw
|
||||
- Розуміння моделі можливостей Plugin або меж відповідальності власника
|
||||
- Робота над конвеєром завантаження Plugin або реєстром
|
||||
- Реалізація хуків середовища виконання провайдера або плагінів каналу
|
||||
- Розуміння моделі можливостей плагінів або меж володіння
|
||||
- Робота над конвеєром завантаження плагінів або реєстром
|
||||
- Реалізація хуків середовища виконання провайдера або плагінів каналів
|
||||
sidebarTitle: Internals
|
||||
summary: 'Внутрішні механізми Plugin: модель можливостей, право власності, контракти, конвеєр завантаження та допоміжні засоби середовища виконання'
|
||||
title: Внутрішні механізми Plugin
|
||||
summary: 'Внутрішня будова Plugin: модель можливостей, володіння, контракти, конвеєр завантаження та допоміжні засоби середовища виконання'
|
||||
title: Внутрішня будова Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T17:14:02Z"
|
||||
generated_at: "2026-04-28T01:34:55Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 0d5b9b7b6eaadcfd2feda874d02a2d39550eb98a8b0843104b5edc37d7f18088
|
||||
source_hash: 5d873bdab58b2d5d5c699fedb174e7f8db914245bf9052ff467bbe3cabc66dc4
|
||||
source_path: plugins/architecture.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Це **поглиблений довідник з архітектури** системи Plugin в OpenClaw. Для практичних посібників почніть з однієї з наведених нижче вузькоспеціалізованих сторінок.
|
||||
Це **поглиблений архітектурний довідник** для системи плагінів OpenClaw. Для практичних посібників почніть з однієї з наведених нижче спеціалізованих сторінок.
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Встановлення та використання плагінів" icon="plug" href="/uk/tools/plugin">
|
||||
Посібник для кінцевих користувачів із додавання, увімкнення та усунення несправностей плагінів.
|
||||
Посібник для кінцевих користувачів щодо додавання, увімкнення та усунення несправностей плагінів.
|
||||
</Card>
|
||||
<Card title="Створення плагінів" icon="rocket" href="/uk/plugins/building-plugins">
|
||||
Навчальний матеріал зі створення першого плагіна з найменшим робочим маніфестом.
|
||||
</Card>
|
||||
<Card title="Плагіни каналів" icon="comments" href="/uk/plugins/sdk-channel-plugins">
|
||||
Створення плагіна каналу обміну повідомленнями.
|
||||
Створіть плагін каналу обміну повідомленнями.
|
||||
</Card>
|
||||
<Card title="Плагіни провайдерів" icon="microchip" href="/uk/plugins/sdk-provider-plugins">
|
||||
Створення плагіна провайдера моделей.
|
||||
Створіть плагін провайдера моделей.
|
||||
</Card>
|
||||
<Card title="Огляд SDK" icon="book" href="/uk/plugins/sdk-overview">
|
||||
Довідник з карти імпортів і API реєстрації.
|
||||
@ -38,39 +38,39 @@ x-i18n:
|
||||
|
||||
## Публічна модель можливостей
|
||||
|
||||
Можливості — це публічна модель **нативних плагінів** у межах OpenClaw. Кожен нативний плагін OpenClaw реєструється для одного або кількох типів можливостей:
|
||||
Можливості — це публічна модель **нативних плагінів** усередині OpenClaw. Кожен нативний плагін OpenClaw реєструється для одного або кількох типів можливостей:
|
||||
|
||||
| Можливість | Метод реєстрації | Приклади плагінів |
|
||||
| ---------------------- | ----------------------------------------------- | ------------------------------------ |
|
||||
| Текстовий інференс | `api.registerProvider(...)` | `openai`, `anthropic` |
|
||||
| Бекенд CLI для інференсу | `api.registerCliBackend(...)` | `openai`, `anthropic` |
|
||||
| Мовлення | `api.registerSpeechProvider(...)` | `elevenlabs`, `microsoft` |
|
||||
| Транскрипція в реальному часі | `api.registerRealtimeTranscriptionProvider(...)` | `openai` |
|
||||
| Голос у реальному часі | `api.registerRealtimeVoiceProvider(...)` | `openai` |
|
||||
| Розуміння медіа | `api.registerMediaUnderstandingProvider(...)` | `openai`, `google` |
|
||||
| Генерація зображень | `api.registerImageGenerationProvider(...)` | `openai`, `google`, `fal`, `minimax` |
|
||||
| Генерація музики | `api.registerMusicGenerationProvider(...)` | `google`, `minimax` |
|
||||
| Генерація відео | `api.registerVideoGenerationProvider(...)` | `qwen` |
|
||||
| Веботримання | `api.registerWebFetchProvider(...)` | `firecrawl` |
|
||||
| Вебпошук | `api.registerWebSearchProvider(...)` | `google` |
|
||||
| Канал / обмін повідомленнями | `api.registerChannel(...)` | `msteams`, `matrix` |
|
||||
| Виявлення Gateway | `api.registerGatewayDiscoveryService(...)` | `bonjour` |
|
||||
| Можливість | Метод реєстрації | Приклади плагінів |
|
||||
| ---------------------- | --------------------------------------------- | ------------------------------------ |
|
||||
| Текстовий висновок | `api.registerProvider(...)` | `openai`, `anthropic` |
|
||||
| Бекенд CLI для висновку | `api.registerCliBackend(...)` | `openai`, `anthropic` |
|
||||
| Мовлення | `api.registerSpeechProvider(...)` | `elevenlabs`, `microsoft` |
|
||||
| Транскрибування в реальному часі | `api.registerRealtimeTranscriptionProvider(...)` | `openai` |
|
||||
| Голос у реальному часі | `api.registerRealtimeVoiceProvider(...)` | `openai` |
|
||||
| Розуміння медіа | `api.registerMediaUnderstandingProvider(...)` | `openai`, `google` |
|
||||
| Генерація зображень | `api.registerImageGenerationProvider(...)` | `openai`, `google`, `fal`, `minimax` |
|
||||
| Генерація музики | `api.registerMusicGenerationProvider(...)` | `google`, `minimax` |
|
||||
| Генерація відео | `api.registerVideoGenerationProvider(...)` | `qwen` |
|
||||
| Отримання вебданих | `api.registerWebFetchProvider(...)` | `firecrawl` |
|
||||
| Вебпошук | `api.registerWebSearchProvider(...)` | `google` |
|
||||
| Канал / обмін повідомленнями | `api.registerChannel(...)` | `msteams`, `matrix` |
|
||||
| Виявлення Gateway | `api.registerGatewayDiscoveryService(...)` | `bonjour` |
|
||||
|
||||
<Note>
|
||||
Плагін, який не реєструє жодної можливості, але надає хуки, інструменти, служби виявлення або фонові служби, є **застарілим плагіном лише з хуками**. Цей шаблон усе ще повністю підтримується.
|
||||
Плагін, який реєструє нуль можливостей, але надає хуки, інструменти, сервіси виявлення або фонові сервіси, є **застарілим плагіном лише з хуками**. Цей шаблон усе ще повністю підтримується.
|
||||
</Note>
|
||||
|
||||
### Позиція щодо зовнішньої сумісності
|
||||
|
||||
Модель можливостей реалізована в ядрі та вже використовується вбудованими/нативними плагінами, але сумісність із зовнішніми плагінами все ще потребує суворішого критерію, ніж «це експортується, отже це зафіксовано».
|
||||
Модель можливостей упроваджена в core і вже використовується сьогодні в комплектних/нативних плагінах, але сумісність зовнішніх плагінів усе ще потребує суворішого критерію, ніж «це експортується, отже, це зафіксовано».
|
||||
|
||||
| Ситуація з плагіном | Рекомендація |
|
||||
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| Наявні зовнішні плагіни | Зберігайте працездатність інтеграцій на основі хуків; це базовий рівень сумісності. |
|
||||
| Нові вбудовані/нативні плагіни | Віддавайте перевагу явній реєстрації можливостей замість vendor-специфічних звернень або нових дизайнів лише з хуками. |
|
||||
| Зовнішні плагіни, що переходять на реєстрацію можливостей | Дозволено, але вважайте допоміжні поверхні для конкретних можливостей такими, що еволюціонують, якщо в документації вони не позначені як стабільні. |
|
||||
| Ситуація з плагіном | Рекомендація |
|
||||
| --------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
||||
| Наявні зовнішні плагіни | Зберігайте працездатність інтеграцій на основі хуків; це базовий рівень сумісності. |
|
||||
| Нові комплектні/нативні плагіни | Віддавайте перевагу явній реєстрації можливостей замість специфічних для постачальника звернень або нових дизайнів лише з хуками. |
|
||||
| Зовнішні плагіни, що переходять на реєстрацію можливостей | Дозволено, але вважайте допоміжні поверхні, специфічні для можливостей, такими, що розвиваються, якщо документація не позначає їх як стабільні. |
|
||||
|
||||
Реєстрація можливостей — це цільовий напрямок. Застарілі хуки залишаються найбезпечнішим шляхом без порушення сумісності для зовнішніх плагінів під час переходу. Експортовані допоміжні підшляхи не є рівнозначними — надавайте перевагу вузьким задокументованим контрактам, а не випадковим допоміжним експортам.
|
||||
Реєстрація можливостей — це бажаний напрям. Застарілі хуки залишаються найбезпечнішим шляхом без порушення сумісності для зовнішніх плагінів під час переходу. Експортовані допоміжні підшляхи не однакові — віддавайте перевагу вузьким документованим контрактам, а не випадковим допоміжним експортам.
|
||||
|
||||
### Форми плагінів
|
||||
|
||||
@ -78,16 +78,16 @@ OpenClaw класифікує кожен завантажений плагін
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="plain-capability">
|
||||
Реєструє рівно один тип можливостей (наприклад, плагін лише провайдера, як-от `mistral`).
|
||||
Реєструє рівно один тип можливості (наприклад, плагін лише провайдера, як-от `mistral`).
|
||||
</Accordion>
|
||||
<Accordion title="hybrid-capability">
|
||||
Реєструє кілька типів можливостей (наприклад, `openai` відповідає за текстовий інференс, мовлення, розуміння медіа та генерацію зображень).
|
||||
Реєструє кілька типів можливостей (наприклад, `openai` володіє текстовим висновком, мовленням, розумінням медіа та генерацією зображень).
|
||||
</Accordion>
|
||||
<Accordion title="hook-only">
|
||||
Реєструє лише хуки (типізовані або користувацькі), без можливостей, інструментів, команд чи служб.
|
||||
Реєструє лише хуки (типізовані або користувацькі), без можливостей, інструментів, команд чи сервісів.
|
||||
</Accordion>
|
||||
<Accordion title="non-capability">
|
||||
Реєструє інструменти, команди, служби або маршрути, але не можливості.
|
||||
Реєструє інструменти, команди, сервіси або маршрути, але не можливості.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -95,28 +95,28 @@ OpenClaw класифікує кожен завантажений плагін
|
||||
|
||||
### Застарілі хуки
|
||||
|
||||
Хук `before_agent_start` залишається підтримуваним шляхом сумісності для плагінів лише з хуками. Реальні застарілі плагіни досі залежать від нього.
|
||||
Хук `before_agent_start` залишається підтримуваним як шлях сумісності для плагінів лише з хуками. Реальні застарілі плагіни досі залежать від нього.
|
||||
|
||||
Напрямок:
|
||||
Напрям:
|
||||
|
||||
- зберігати його працездатність
|
||||
- документувати його як застарілий
|
||||
- для роботи з перевизначенням моделі/провайдера віддавати перевагу `before_model_resolve`
|
||||
- для зміни prompt віддавати перевагу `before_prompt_build`
|
||||
- видаляти лише після зниження реального використання та підтвердження безпечності міграції покриттям фікстур
|
||||
- для роботи з мутацією промптів віддавати перевагу `before_prompt_build`
|
||||
- видаляти лише після зниження реального використання та після того, як покриття фікстурами доведе безпечність міграції
|
||||
|
||||
### Сигнали сумісності
|
||||
|
||||
Коли ви запускаєте `openclaw doctor` або `openclaw plugins inspect <id>`, ви можете побачити одну з таких позначок:
|
||||
Коли ви запускаєте `openclaw doctor` або `openclaw plugins inspect <id>`, ви можете побачити один із цих ярликів:
|
||||
|
||||
| Сигнал | Значення |
|
||||
| -------------------------- | ------------------------------------------------------------- |
|
||||
| Сигнал | Значення |
|
||||
| -------------------------- | ------------------------------------------------------------ |
|
||||
| **config valid** | Конфігурація коректно розбирається, а плагіни успішно визначаються |
|
||||
| **compatibility advisory** | Плагін використовує підтримуваний, але старіший шаблон (наприклад, `hook-only`) |
|
||||
| **legacy warning** | Плагін використовує `before_agent_start`, який вважається застарілим |
|
||||
| **hard error** | Конфігурація некоректна або не вдалося завантажити плагін |
|
||||
| **legacy warning** | Плагін використовує `before_agent_start`, який є застарілим |
|
||||
| **hard error** | Конфігурація некоректна або не вдалося завантажити плагін |
|
||||
|
||||
Ані `hook-only`, ані `before_agent_start` сьогодні не зламають ваш плагін: `hook-only` є рекомендаційним попередженням, а `before_agent_start` викликає лише попередження. Ці сигнали також відображаються в `openclaw status --all` і `openclaw plugins doctor`.
|
||||
Ні `hook-only`, ні `before_agent_start` сьогодні не зламають ваш плагін: `hook-only` має рекомендаційний характер, а `before_agent_start` лише спричиняє попередження. Ці сигнали також відображаються в `openclaw status --all` і `openclaw plugins doctor`.
|
||||
|
||||
## Огляд архітектури
|
||||
|
||||
@ -124,87 +124,87 @@ OpenClaw класифікує кожен завантажений плагін
|
||||
|
||||
<Steps>
|
||||
<Step title="Маніфест + виявлення">
|
||||
OpenClaw знаходить потенційні плагіни в налаштованих шляхах, коренях робочого простору, глобальних коренях плагінів і серед вбудованих плагінів. Під час виявлення спочатку зчитуються нативні маніфести `openclaw.plugin.json` разом із підтримуваними маніфестами бандлів.
|
||||
OpenClaw знаходить кандидатів у плагіни зі сконфігурованих шляхів, коренів робочих просторів, глобальних коренів плагінів і комплектних плагінів. Виявлення спочатку читає нативні маніфести `openclaw.plugin.json` і маніфести підтримуваних пакетів.
|
||||
</Step>
|
||||
<Step title="Увімкнення + валідація">
|
||||
Ядро вирішує, чи знайдений плагін увімкнено, вимкнено, заблоковано або вибрано для ексклюзивного слота, такого як пам’ять.
|
||||
Core визначає, чи виявлений плагін увімкнено, вимкнено, заблоковано або вибрано для ексклюзивного слота, такого як пам’ять.
|
||||
</Step>
|
||||
<Step title="Завантаження середовища виконання">
|
||||
Нативні плагіни OpenClaw завантажуються в межах процесу через jiti та реєструють можливості в центральному реєстрі. Сумісні бандли нормалізуються до записів реєстру без імпорту коду середовища виконання.
|
||||
Нативні плагіни OpenClaw завантажуються в межах процесу через jiti і реєструють можливості в центральному реєстрі. Сумісні пакети нормалізуються в записи реєстру без імпорту коду середовища виконання.
|
||||
</Step>
|
||||
<Step title="Використання поверхонь">
|
||||
Решта OpenClaw читає реєстр, щоб надавати інструменти, канали, налаштування провайдерів, хуки, HTTP-маршрути, CLI-команди та служби.
|
||||
Решта OpenClaw читає реєстр, щоб надавати інструменти, канали, налаштування провайдерів, хуки, HTTP-маршрути, команди CLI та сервіси.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Зокрема для CLI плагінів виявлення кореневих команд поділено на дві фази:
|
||||
Зокрема для CLI плагінів, виявлення кореневих команд розділено на дві фази:
|
||||
|
||||
- метадані на етапі розбору походять із `registerCli(..., { descriptors: [...] })`
|
||||
- справжній модуль CLI плагіна може залишатися лінивим і реєструватися під час першого виклику
|
||||
- метадані часу розбору надходять із `registerCli(..., { descriptors: [...] })`
|
||||
- реальний модуль CLI плагіна може залишатися лінивим і реєструватися під час першого виклику
|
||||
|
||||
Це дозволяє зберігати код CLI, що належить плагіну, всередині плагіна, водночас даючи OpenClaw змогу резервувати імена кореневих команд до розбору.
|
||||
Це дозволяє зберігати код CLI, яким володіє плагін, усередині плагіна, водночас даючи OpenClaw змогу резервувати імена кореневих команд до розбору.
|
||||
|
||||
Важлива межа проєктування:
|
||||
|
||||
- валідація маніфесту/конфігурації має працювати з **метаданих маніфесту/схеми** без виконання коду плагіна
|
||||
- виявлення нативних можливостей може завантажувати код входу довіреного плагіна, щоб побудувати неактивуючий знімок реєстру
|
||||
- поведінка нативного середовища виконання походить із шляху модуля плагіна `register(api)` з `api.registrationMode === "full"`
|
||||
- валідація маніфесту/конфігурації має працювати на основі **метаданих маніфесту/схеми** без виконання коду плагіна
|
||||
- виявлення нативних можливостей може завантажувати код точки входу довіреного плагіна, щоб побудувати неактивуючий знімок реєстру
|
||||
- нативна поведінка середовища виконання походить із шляху модуля плагіна `register(api)` з `api.registrationMode === "full"`
|
||||
|
||||
Цей поділ дає змогу OpenClaw перевіряти конфігурацію, пояснювати відсутні/вимкнені плагіни та будувати підказки для UI/схем до повної активації середовища виконання.
|
||||
Такий поділ дає OpenClaw змогу валідовувати конфігурацію, пояснювати відсутні/вимкнені плагіни та будувати підказки для UI/схем до повної активації середовища виконання.
|
||||
|
||||
### Знімок метаданих плагінів і таблиця пошуку
|
||||
|
||||
Під час запуску Gateway будується один `PluginMetadataSnapshot` для поточного знімка конфігурації. Цей знімок містить лише метадані: індекс установлених плагінів, реєстр маніфестів, діагностику маніфестів, карти власників, нормалізатор ідентифікаторів плагінів і записи маніфестів. Він не містить завантажених модулів плагінів, SDK провайдерів, вмісту пакетів чи експортів середовища виконання.
|
||||
Під час запуску Gateway будує один `PluginMetadataSnapshot` для поточного знімка конфігурації. Знімок містить лише метадані: він зберігає індекс установлених плагінів, реєстр маніфестів, діагностику маніфестів, карти власників, нормалізатор ідентифікаторів плагінів і записи маніфестів. Він не містить завантажені модулі плагінів, SDK провайдерів, вміст пакетів або експорти середовища виконання.
|
||||
|
||||
Валідація конфігурації з урахуванням плагінів, автоматичне ввімкнення під час запуску та ініціалізація плагінів Gateway використовують цей знімок замість повторного незалежного побудування метаданих маніфесту/індексу. `PluginLookUpTable` походить із того самого знімка та додає план запуску плагінів для поточної конфігурації середовища виконання.
|
||||
Валідація конфігурації з урахуванням плагінів, автоматичне ввімкнення під час запуску та початкове завантаження плагінів Gateway споживають цей знімок замість незалежного повторного побудування метаданих маніфестів/індексу. `PluginLookUpTable` походить із того самого знімка та додає план запуску плагінів для поточної конфігурації середовища виконання.
|
||||
|
||||
Після запуску Gateway зберігає поточний знімок метаданих як замінюваний артефакт середовища виконання. Повторне виявлення провайдерів у середовищі виконання може використовувати цей знімок замість реконструювання встановленого індексу та реєстру маніфестів для кожного проходу каталогу провайдерів. Знімок очищається або замінюється під час завершення роботи Gateway, зміни конфігурації/інвентаря плагінів та запису встановленого індексу; якщо сумісного поточного знімка немає, виклики повертаються до холодного шляху маніфесту/індексу. Перевірки сумісності мають включати корені виявлення плагінів, такі як `plugins.load.paths` і стандартний робочий простір агента, оскільки плагіни робочого простору є частиною області метаданих.
|
||||
Після запуску Gateway зберігає поточний знімок метаданих як замінний продукт середовища виконання. Повторне виявлення провайдерів під час роботи може використовувати цей знімок замість повторної побудови встановленого індексу й реєстру маніфестів для кожного проходу каталогу провайдерів. Знімок очищується або замінюється під час завершення роботи Gateway, змін конфігурації/переліку плагінів і записів установленого індексу; виклики повертаються до холодного шляху маніфесту/індексу, коли немає сумісного поточного знімка. Перевірки сумісності мають включати корені виявлення плагінів, такі як `plugins.load.paths` і типовий робочий простір агента, оскільки плагіни робочого простору є частиною області метаданих.
|
||||
|
||||
Знімок і таблиця пошуку зберігають повторювані стартові рішення на швидкому шляху:
|
||||
Знімок і таблиця пошуку утримують повторювані рішення під час запуску на швидкому шляху:
|
||||
|
||||
- право власності на канал
|
||||
- володіння каналом
|
||||
- відкладений запуск каналу
|
||||
- ідентифікатори стартових плагінів
|
||||
- право власності на провайдера та бекенд CLI
|
||||
- право власності на провайдер налаштування, псевдонім команди, провайдер каталогу моделей і контракт маніфесту
|
||||
- ідентифікатори плагінів запуску
|
||||
- володіння провайдером і бекендом CLI
|
||||
- володіння провайдером налаштування, псевдонімом команди, провайдером каталогу моделей і контрактом маніфесту
|
||||
- валідація схеми конфігурації плагіна та схеми конфігурації каналу
|
||||
- рішення щодо автоматичного ввімкнення під час запуску
|
||||
- рішення про автоматичне ввімкнення під час запуску
|
||||
|
||||
Межа безпеки — це заміна знімка, а не його мутація. Перебудовуйте знімок, коли змінюються конфігурація, інвентар плагінів, записи встановлення або політика збереженого індексу. Не сприймайте його як широкий змінюваний глобальний реєстр і не зберігайте необмежену кількість історичних знімків. Завантаження плагінів у середовищі виконання залишається окремим від знімків метаданих, щоб застарілий стан середовища виконання не міг бути прихований за кешем метаданих.
|
||||
Межею безпеки є заміна знімка, а не мутація. Перебудовуйте знімок, коли змінюються конфігурація, перелік плагінів, записи встановлення або політика збереженого індексу. Не розглядайте його як широкий змінний глобальний реєстр і не зберігайте необмежену кількість історичних знімків. Завантаження плагінів під час роботи залишається відокремленим від знімків метаданих, щоб застарілий стан середовища виконання не міг бути прихований за кешем метаданих.
|
||||
|
||||
Деякі виклики холодного шляху все ще реконструюють реєстри маніфестів безпосередньо із збереженого індексу встановлених плагінів замість отримання `PluginLookUpTable` від Gateway. Цей резервний шлях підтримує невеликий обмежений кеш у пам’яті, ключами якого є встановлений індекс, форма запиту, політика конфігурації, корені середовища виконання та сигнатури файлів маніфесту/пакета. Це резервна страховка для повторної реконструкції індексу, а не бажаний гарячий шлях Gateway. Віддавайте перевагу передаванню поточної таблиці пошуку або явного реєстру маніфестів через потоки середовища виконання, коли виклик уже має один із них.
|
||||
Деякі виклики холодного шляху все ще реконструюють реєстри маніфестів безпосередньо зі збереженого індексу встановлених плагінів замість отримання `PluginLookUpTable` від Gateway. Цей резервний шлях підтримує невеликий обмежений кеш у пам’яті, ключами якого є встановлений індекс, форма запиту, політика конфігурації, корені середовища виконання та сигнатури файлів маніфесту/пакета. Це резервна страховка для повторної реконструкції індексу, а не бажаний гарячий шлях Gateway. Надавайте перевагу передаванню поточної таблиці пошуку або явного реєстру маніфестів через потоки середовища виконання, коли виклик уже має один із них.
|
||||
|
||||
### Планування активації
|
||||
|
||||
Планування активації є частиною площини керування. Виклики можуть запитувати, які плагіни релевантні для конкретної команди, провайдера, каналу, маршруту, harness агента або можливості, перш ніж завантажувати ширші реєстри середовища виконання.
|
||||
Планування активації є частиною площини керування. Виклики можуть запитувати, які плагіни стосуються конкретної команди, провайдера, каналу, маршруту, середовища агента або можливості, не завантажуючи ширші реєстри середовища виконання.
|
||||
|
||||
Планувальник зберігає сумісність поточної поведінки маніфесту:
|
||||
Планувальник зберігає сумісність поточної поведінки маніфестів:
|
||||
|
||||
- поля `activation.*` — це явні підказки планувальника
|
||||
- `providers`, `channels`, `commandAliases`, `setup.providers`, `contracts.tools` і хуки залишаються резервним шляхом визначення власника через маніфест
|
||||
- `providers`, `channels`, `commandAliases`, `setup.providers`, `contracts.tools` і хуки залишаються резервним механізмом володіння з боку маніфесту
|
||||
- API планувальника лише з ідентифікаторами залишається доступним для наявних викликів
|
||||
- API плану повідомляє мітки причин, щоб діагностика могла відрізняти явні підказки від резервного визначення власника
|
||||
- API плану повідомляє ярлики причин, щоб діагностика могла відрізняти явні підказки від резервного механізму володіння
|
||||
|
||||
<Warning>
|
||||
Не сприймайте `activation` як хук життєвого циклу або заміну для `register(...)`. Це метадані, що використовуються для звуження завантаження. Віддавайте перевагу полям права власності, коли вони вже описують зв’язок; використовуйте `activation` лише для додаткових підказок планувальника.
|
||||
Не розглядайте `activation` як хук життєвого циклу або заміну `register(...)`. Це метадані, що використовуються для звуження завантаження. Віддавайте перевагу полям володіння, коли вони вже описують зв’язок; використовуйте `activation` лише для додаткових підказок планувальника.
|
||||
</Warning>
|
||||
|
||||
### Плагіни каналів і спільний інструмент повідомлень
|
||||
|
||||
Плагінам каналів не потрібно реєструвати окремий інструмент send/edit/react для звичайних дій у чаті. OpenClaw зберігає один спільний інструмент `message` у ядрі, а плагіни каналів відповідають за специфічне для каналу виявлення та виконання за ним.
|
||||
Плагіни каналів не повинні реєструвати окремий інструмент send/edit/react для звичайних дій чату. OpenClaw зберігає один спільний інструмент `message` у core, а плагіни каналів володіють специфічними для каналу виявленням і виконанням за ним.
|
||||
|
||||
Поточна межа така:
|
||||
|
||||
- ядро відповідає за хост спільного інструмента `message`, зв’язування prompt, облік сесій/потоків і диспетчеризацію виконання
|
||||
- плагіни каналів відповідають за виявлення дій у межах області, виявлення можливостей і будь-які фрагменти схеми, специфічні для каналу
|
||||
- плагіни каналів відповідають за граматику розмови сесії, специфічну для провайдера, наприклад за те, як ідентифікатори розмов кодують ідентифікатори потоків або успадковуються від батьківських розмов
|
||||
- плагіни каналів виконують остаточну дію через свій адаптер дій
|
||||
- core володіє хостом спільного інструмента `message`, прив’язкою промптів, обліком сесій/гілок і диспетчеризацією виконання
|
||||
- плагіни каналів володіють виявленням дій у межах області, виявленням можливостей і будь-якими фрагментами схеми, специфічними для каналу
|
||||
- плагіни каналів володіють специфічною для провайдера граматикою розмов сесії, наприклад тим, як ідентифікатори розмов кодують ідентифікатори гілок або успадковуються від батьківських розмов
|
||||
- плагіни каналів виконують фінальну дію через свій адаптер дій
|
||||
|
||||
Для плагінів каналів поверхня SDK — це `ChannelMessageActionAdapter.describeMessageTool(...)`. Цей уніфікований виклик виявлення дозволяє плагіну повертати свої видимі дії, можливості та внески в схему разом, щоб ці частини не розходилися між собою.
|
||||
Для плагінів каналів поверхнею SDK є `ChannelMessageActionAdapter.describeMessageTool(...)`. Цей уніфікований виклик виявлення дозволяє плагіну повертати свої видимі дії, можливості та внески до схеми разом, щоб ці частини не розходилися.
|
||||
|
||||
Коли параметр інструмента повідомлень, специфічний для каналу, містить джерело медіа, наприклад локальний шлях або URL віддаленого медіа, плагін також має повертати `mediaSourceParams` з `describeMessageTool(...)`. Ядро використовує цей явний список, щоб застосовувати нормалізацію шляхів sandbox і підказки для вихідного доступу до медіа без жорсткого кодування назв параметрів, що належать плагіну. Віддавайте перевагу картам у межах дії, а не одному пласкому списку на весь канал, щоб параметр медіа лише для профілю не нормалізувався для не пов’язаних дій, таких як `send`.
|
||||
Коли специфічний для каналу параметр інструмента повідомлень містить джерело медіа, наприклад локальний шлях або віддалений URL медіа, плагін також має повертати `mediaSourceParams` із `describeMessageTool(...)`. Core використовує цей явний список, щоб застосовувати нормалізацію шляхів пісочниці та підказки доступу до вихідних медіа без жорсткого кодування назв параметрів, якими володіє плагін. Віддавайте перевагу картам у межах дій, а не одному плоскому списку на весь канал, щоб параметр медіа лише для профілю не нормалізувався для не пов’язаних дій на кшталт `send`.
|
||||
|
||||
Ядро передає область середовища виконання в цей крок виявлення. Важливі поля включають:
|
||||
Core передає область середовища виконання в цей крок виявлення. Важливі поля включають:
|
||||
|
||||
- `accountId`
|
||||
- `currentChannelId`
|
||||
@ -215,106 +215,106 @@ OpenClaw класифікує кожен завантажений плагін
|
||||
- `agentId`
|
||||
- довірений вхідний `requesterSenderId`
|
||||
|
||||
Це важливо для плагінів, чутливих до контексту. Канал може приховувати або показувати дії повідомлень залежно від активного облікового запису, поточної кімнати/потоку/повідомлення або довіреної ідентичності запитувача без жорсткого кодування гілок, специфічних для каналу, у спільному інструменті `message` ядра.
|
||||
Це важливо для контекстно-залежних плагінів. Канал може приховувати або показувати дії повідомлень залежно від активного облікового запису, поточної кімнати/гілки/повідомлення або довіреної ідентичності запитувача без жорсткого кодування специфічних для каналу гілок у core-інструменті `message`.
|
||||
|
||||
Саме тому зміни маршрутизації embedded-runner усе ще є роботою плагіна: runner відповідає за пересилання поточної ідентичності чату/сесії в межу виявлення плагіна, щоб спільний інструмент `message` показував правильну поверхню, що належить каналу, для поточного ходу.
|
||||
Саме тому зміни маршрутизації embedded-runner усе ще є роботою плагіна: runner відповідає за пересилання поточної ідентичності чату/сесії до межі виявлення плагіна, щоб спільний інструмент `message` відкривав правильну поверхню каналу, якою він володіє, для поточного ходу.
|
||||
|
||||
Для допоміжних засобів виконання, що належать каналу, вбудовані плагіни мають тримати середовище виконання всередині власних модулів extension. Ядро більше не відповідає за середовища виконання дій повідомлень Discord, Slack, Telegram або WhatsApp в `src/agents/tools`. Ми не публікуємо окремі підшляхи `plugin-sdk/*-action-runtime`, а вбудовані плагіни мають імпортувати власний локальний код середовища виконання безпосередньо зі своїх модулів, що належать extension.
|
||||
Для допоміжних засобів виконання, якими володіє канал, комплектні плагіни мають зберігати середовище виконання всередині власних модулів розширення. Core більше не володіє середовищами виконання дій повідомлень Discord, Slack, Telegram або WhatsApp у `src/agents/tools`. Ми не публікуємо окремі підшляхи `plugin-sdk/*-action-runtime`, і комплектні плагіни мають імпортувати свій локальний код середовища виконання безпосередньо зі своїх модулів, якими володіє розширення.
|
||||
|
||||
Та сама межа застосовується і до поверхонь SDK, названих за провайдером, загалом: ядро не повинно імпортувати зручні barrel-модулі, специфічні для каналу, для Slack, Discord, Signal, WhatsApp або подібних extension. Якщо ядру потрібна певна поведінка, або використовуйте власний barrel `api.ts` / `runtime-api.ts` вбудованого плагіна, або підніміть потребу до вузької загальної можливості в спільному SDK.
|
||||
Така сама межа загалом застосовується до швів SDK з іменами провайдерів: core не повинен імпортувати специфічні для каналів зручні барелі для Slack, Discord, Signal, WhatsApp чи подібних розширень. Якщо core потрібна певна поведінка, або споживайте власний барель комплектного плагіна `api.ts` / `runtime-api.ts`, або підніміть потребу до вузької загальної можливості в спільному SDK.
|
||||
|
||||
Вбудовані плагіни дотримуються того самого правила. `runtime-api.ts` вбудованого плагіна не повинен повторно експортувати власний брендовий фасад `openclaw/plugin-sdk/<plugin-id>`. Такі брендові фасади залишаються шарами сумісності для зовнішніх плагінів і старіших споживачів, але вбудовані плагіни мають використовувати локальні експорти плюс вузькі загальні підшляхи SDK, такі як `openclaw/plugin-sdk/channel-policy`, `openclaw/plugin-sdk/runtime-store` або `openclaw/plugin-sdk/webhook-ingress`. Новий код не повинен додавати фасади SDK, специфічні до ідентифікатора плагіна, якщо межа сумісності для наявної зовнішньої екосистеми не вимагає цього.
|
||||
Комплектні плагіни дотримуються того самого правила. `runtime-api.ts` комплектного плагіна не повинен повторно експортувати свій власний брендований фасад `openclaw/plugin-sdk/<plugin-id>`. Такі брендовані фасади залишаються шарами сумісності для зовнішніх плагінів і старіших споживачів, але комплектні плагіни мають використовувати локальні експорти плюс вузькі загальні підшляхи SDK, такі як `openclaw/plugin-sdk/channel-policy`, `openclaw/plugin-sdk/runtime-store` або `openclaw/plugin-sdk/webhook-ingress`. Новий код не повинен додавати фасади SDK, специфічні для ідентифікатора плагіна, якщо цього не вимагає межа сумісності для наявної зовнішньої екосистеми.
|
||||
|
||||
Зокрема для опитувань існує два шляхи виконання:
|
||||
Для опитувань зокрема існують два шляхи виконання:
|
||||
|
||||
- `outbound.sendPoll` — це спільна базова лінія для каналів, які відповідають загальній моделі опитувань
|
||||
- `actions.handleAction("poll")` — це бажаний шлях для семантики опитувань, специфічної для каналу, або додаткових параметрів опитування
|
||||
- `outbound.sendPoll` — це спільна базова лінія для каналів, що відповідають загальній моделі опитування
|
||||
- `actions.handleAction("poll")` — це бажаний шлях для специфічної для каналу семантики опитувань або додаткових параметрів опитування
|
||||
|
||||
Тепер ядро відкладає спільний розбір опитувань до моменту, коли диспетчеризація опитування плагіна відхилить дію, щоб обробники опитувань, що належать плагіну, могли приймати специфічні для каналу поля опитування без блокування спочатку загальним парсером опитувань.
|
||||
Тепер core відкладає спільний розбір опитувань до моменту, коли диспетчеризація опитування плагіна відхиляє дію, тож обробники опитувань, якими володіє плагін, можуть приймати специфічні для каналу поля опитувань, не блокуючись спочатку загальним парсером опитувань.
|
||||
|
||||
Див. [Внутрішні механізми архітектури Plugin](/uk/plugins/architecture-internals) для повної послідовності запуску.
|
||||
Див. [Внутрішня архітектура плагінів](/uk/plugins/architecture-internals), щоб переглянути повну послідовність запуску.
|
||||
|
||||
## Модель права власності на можливості
|
||||
## Модель володіння можливостями
|
||||
|
||||
OpenClaw розглядає нативний плагін як межу права власності для **компанії** або **можливості**, а не як набір не пов’язаних інтеграцій.
|
||||
OpenClaw розглядає нативний плагін як межу володіння для **компанії** або **функції**, а не як набір не пов’язаних між собою інтеграцій.
|
||||
|
||||
Це означає:
|
||||
|
||||
- плагін компанії зазвичай має володіти всіма поверхнями цієї компанії, орієнтованими на OpenClaw
|
||||
- плагін можливості зазвичай має володіти повною поверхнею можливості, яку він додає
|
||||
- канали мають використовувати спільні можливості ядра замість спеціального повторного впровадження поведінки провайдера
|
||||
- плагін компанії зазвичай має володіти всіма поверхнями OpenClaw, що стосуються цієї компанії
|
||||
- плагін функції зазвичай має володіти повною поверхнею функції, яку він вводить
|
||||
- канали мають споживати спільні можливості core замість того, щоб ситуативно повторно реалізовувати поведінку провайдерів
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Vendor multi-capability">
|
||||
`openai` володіє текстовим інференсом, мовленням, голосом у реальному часі, розумінням медіа та генерацією зображень. `google` володіє текстовим інференсом, а також розумінням медіа, генерацією зображень і вебпошуком. `qwen` володіє текстовим інференсом, а також розумінням медіа й генерацією відео.
|
||||
<Accordion title="Постачальник із кількома можливостями">
|
||||
`openai` володіє текстовим висновком, мовленням, голосом у реальному часі, розумінням медіа та генерацією зображень. `google` володіє текстовим висновком, а також розумінням медіа, генерацією зображень і вебпошуком. `qwen` володіє текстовим висновком, а також розумінням медіа та генерацією відео.
|
||||
</Accordion>
|
||||
<Accordion title="Vendor single-capability">
|
||||
`elevenlabs` і `microsoft` володіють мовленням; `firecrawl` володіє web-fetch; `minimax` / `mistral` / `moonshot` / `zai` володіють бекендами розуміння медіа.
|
||||
<Accordion title="Постачальник з однією можливістю">
|
||||
`elevenlabs` і `microsoft` володіють мовленням; `firecrawl` володіє отриманням вебданих; `minimax` / `mistral` / `moonshot` / `zai` володіють бекендами розуміння медіа.
|
||||
</Accordion>
|
||||
<Accordion title="Feature plugin">
|
||||
`voice-call` володіє транспортом викликів, інструментами, CLI, маршрутами та мостом медіапотоку Twilio, але використовує спільні можливості мовлення, транскрипції в реальному часі та голосу в реальному часі замість прямого імпорту плагінів vendor.
|
||||
<Accordion title="Плагін функції">
|
||||
`voice-call` володіє транспортом дзвінків, інструментами, CLI, маршрутами та мостом медіапотоків Twilio, але споживає спільні можливості мовлення, транскрибування в реальному часі та голосу в реальному часі замість прямого імпорту плагінів постачальників.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Бажаний кінцевий стан такий:
|
||||
Бажаний кінцевий стан:
|
||||
|
||||
- OpenAI живе в одному плагіні, навіть якщо охоплює текстові моделі, мовлення, зображення та майбутнє відео
|
||||
- інший vendor може робити те саме для власної області
|
||||
- канали не дбають про те, який плагін vendor володіє провайдером; вони використовують спільний контракт можливості, який надає ядро
|
||||
- OpenAI живе в одному плагіні, навіть якщо він охоплює текстові моделі, мовлення, зображення та майбутнє відео
|
||||
- інший постачальник може зробити те саме для своєї власної області поверхні
|
||||
- каналам не важливо, який плагін постачальника володіє провайдером; вони споживають спільний контракт можливості, який надає core
|
||||
|
||||
Ось ключова відмінність:
|
||||
|
||||
- **plugin** = межа права власності
|
||||
- **capability** = контракт ядра, який можуть реалізовувати або використовувати кілька плагінів
|
||||
- **plugin** = межа володіння
|
||||
- **capability** = контракт core, який можуть реалізовувати або споживати кілька плагінів
|
||||
|
||||
Тому, якщо OpenClaw додає новий домен, такий як відео, перше запитання не таке: «який провайдер має жорстко закодувати обробку відео?» Перше запитання таке: «який контракт можливості відео в ядрі?» Щойно такий контракт існує, плагіни vendor можуть реєструватися для нього, а плагіни каналів/можливостей можуть його використовувати.
|
||||
Тож якщо OpenClaw додає нову область, наприклад відео, перше запитання не таке: «який провайдер має жорстко кодувати обробку відео?» Перше запитання таке: «який контракт core для можливості відео?» Щойно такий контракт з’являється, плагіни постачальників можуть реєструватися для нього, а плагіни каналів/функцій можуть його споживати.
|
||||
|
||||
Якщо можливість ще не існує, правильний крок зазвичай такий:
|
||||
Якщо можливість іще не існує, зазвичай правильний крок такий:
|
||||
|
||||
<Steps>
|
||||
<Step title="Визначення можливості">
|
||||
Визначте відсутню можливість у ядрі.
|
||||
Визначте відсутню можливість у core.
|
||||
</Step>
|
||||
<Step title="Експонування через SDK">
|
||||
Експонуйте її через API/середовище виконання плагіна у типізований спосіб.
|
||||
<Step title="Відкриття через SDK">
|
||||
Відкрийте її через API/середовище виконання плагіна у типізований спосіб.
|
||||
</Step>
|
||||
<Step title="Підключення споживачів">
|
||||
Підключіть канали/можливості до цієї можливості.
|
||||
Підключіть канали/функції до цієї можливості.
|
||||
</Step>
|
||||
<Step title="Реалізації vendor">
|
||||
Дозвольте плагінам vendor реєструвати реалізації.
|
||||
<Step title="Реалізації постачальників">
|
||||
Дозвольте плагінам постачальників реєструвати реалізації.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Це зберігає право власності явним, водночас уникаючи поведінки ядра, яка залежить від одного vendor або одноразового шляху коду, специфічного для плагіна.
|
||||
Це зберігає явне володіння та водночас уникає поведінки core, що залежить від одного постачальника або від одноразового специфічного для плагіна шляху коду.
|
||||
|
||||
### Шарування можливостей
|
||||
|
||||
Використовуйте цю ментальну модель, коли вирішуєте, де має належати код:
|
||||
Використовуйте цю ментальну модель, коли вирішуєте, де має розміщуватися код:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Шар можливостей ядра">
|
||||
Спільна оркестрація, політика, резервна поведінка, правила злиття конфігурації, семантика доставки й типізовані контракти.
|
||||
<Tab title="Шар можливостей core">
|
||||
Спільна оркестрація, політики, резервна поведінка, правила злиття конфігурації, семантика доставки та типізовані контракти.
|
||||
</Tab>
|
||||
<Tab title="Шар плагіна vendor">
|
||||
API, автентифікація, каталоги моделей, синтез мовлення, генерація зображень, майбутні відеобекенди, кінцеві точки використання, специфічні для vendor.
|
||||
<Tab title="Шар плагіна постачальника">
|
||||
API, автентифікація, каталоги моделей, синтез мовлення, генерація зображень, майбутні бекенди відео, кінцеві точки використання, специфічні для постачальника.
|
||||
</Tab>
|
||||
<Tab title="Шар плагіна каналу/можливості">
|
||||
Інтеграція Slack/Discord/voice-call/etc., яка використовує можливості ядра й представляє їх на поверхні.
|
||||
<Tab title="Шар плагіна каналу/функції">
|
||||
Інтеграція Slack/Discord/voice-call тощо, яка споживає можливості core і представляє їх на поверхні.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Наприклад, TTS має таку форму:
|
||||
Наприклад, TTS дотримується такої форми:
|
||||
|
||||
- ядро володіє політикою TTS під час відповіді, порядком резервного використання, налаштуваннями та доставкою каналом
|
||||
- core володіє політикою TTS під час відповіді, порядком резервування, налаштуваннями та доставкою каналом
|
||||
- `openai`, `elevenlabs` і `microsoft` володіють реалізаціями синтезу
|
||||
- `voice-call` використовує допоміжний засіб середовища виконання TTS для телефонії
|
||||
- `voice-call` споживає допоміжний засіб середовища виконання телефонного TTS
|
||||
|
||||
Той самий шаблон слід віддавати перевагу і для майбутніх можливостей.
|
||||
Того самого шаблону слід віддавати перевагу для майбутніх можливостей.
|
||||
|
||||
### Приклад плагіна компанії з кількома можливостями
|
||||
|
||||
Плагін компанії має виглядати цілісно ззовні. Якщо OpenClaw має спільні контракти для моделей, мовлення, транскрипції в реальному часі, голосу в реальному часі, розуміння медіа, генерації зображень, генерації відео, web fetch і web search, vendor може володіти всіма своїми поверхнями в одному місці:
|
||||
Плагін компанії має виглядати цілісно ззовні. Якщо OpenClaw має спільні контракти для моделей, мовлення, транскрибування в реальному часі, голосу в реальному часі, розуміння медіа, генерації зображень, генерації відео, отримання вебданих і вебпошуку, постачальник може володіти всіма своїми поверхнями в одному місці:
|
||||
|
||||
```ts
|
||||
import type { OpenClawPluginDefinition } from "openclaw/plugin-sdk/plugin-entry";
|
||||
@ -370,73 +370,73 @@ export default plugin;
|
||||
|
||||
Важливі не точні назви допоміжних засобів. Важлива форма:
|
||||
|
||||
- один плагін володіє поверхнею vendor
|
||||
- ядро все ще володіє контрактами можливостей
|
||||
- канали та плагіни можливостей використовують допоміжні засоби `api.runtime.*`, а не код vendor
|
||||
- тести контрактів можуть перевіряти, що плагін зареєстрував можливості, якими він заявляє володіння
|
||||
- один плагін володіє поверхнею постачальника
|
||||
- core, як і раніше, володіє контрактами можливостей
|
||||
- канали та плагіни функцій споживають допоміжні засоби `api.runtime.*`, а не код постачальника
|
||||
- контрактні тести можуть перевіряти, що плагін зареєстрував можливості, якими він заявляє, що володіє
|
||||
|
||||
### Приклад можливості: розуміння відео
|
||||
|
||||
OpenClaw уже розглядає розуміння зображень/аудіо/відео як одну спільну можливість. Та сама модель права власності застосовується і тут:
|
||||
OpenClaw уже розглядає розуміння зображень/аудіо/відео як одну спільну можливість. До неї застосовується та сама модель володіння:
|
||||
|
||||
<Steps>
|
||||
<Step title="Ядро визначає контракт">
|
||||
Ядро визначає контракт розуміння медіа.
|
||||
<Step title="Core визначає контракт">
|
||||
Core визначає контракт розуміння медіа.
|
||||
</Step>
|
||||
<Step title="Плагіни vendor реєструють">
|
||||
Плагіни vendor реєструють `describeImage`, `transcribeAudio` і `describeVideo`, де це застосовно.
|
||||
<Step title="Реєстрація плагінів постачальників">
|
||||
Плагіни постачальників реєструють `describeImage`, `transcribeAudio` і `describeVideo`, де це застосовно.
|
||||
</Step>
|
||||
<Step title="Споживачі використовують спільну поведінку">
|
||||
Плагіни каналів і можливостей використовують спільну поведінку ядра замість прямого підключення до коду vendor.
|
||||
Канали та плагіни функцій споживають спільну поведінку core замість прямого підключення до коду постачальника.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Це дозволяє уникнути вбудовування припущень одного провайдера щодо відео в ядро. Плагін володіє поверхнею vendor; ядро володіє контрактом можливості та резервною поведінкою.
|
||||
Це дозволяє уникнути вбудовування припущень про відео одного провайдера в core. Плагін володіє поверхнею постачальника; core володіє контрактом можливості та резервною поведінкою.
|
||||
|
||||
Генерація відео вже використовує ту саму послідовність: ядро володіє типізованим контрактом можливості та допоміжним засобом середовища виконання, а плагіни vendor реєструють реалізації `api.registerVideoGenerationProvider(...)` для неї.
|
||||
Генерація відео вже використовує ту саму послідовність: core володіє типізованим контрактом можливості та допоміжним засобом середовища виконання, а плагіни постачальників реєструють для нього реалізації `api.registerVideoGenerationProvider(...)`.
|
||||
|
||||
Потрібен конкретний контрольний список упровадження? Див. [Capability Cookbook](/uk/plugins/architecture).
|
||||
|
||||
## Контракти та контроль
|
||||
## Контракти та забезпечення дотримання
|
||||
|
||||
Поверхня API плагінів навмисно типізована й централізована в `OpenClawPluginApi`. Цей контракт визначає підтримувані точки реєстрації та допоміжні засоби середовища виконання, на які може покладатися плагін.
|
||||
|
||||
Чому це важливо:
|
||||
|
||||
- автори плагінів отримують один стабільний внутрішній стандарт
|
||||
- ядро може відхиляти дубльоване право власності, наприклад коли два плагіни реєструють один і той самий ідентифікатор провайдера
|
||||
- запуск може показувати практичну діагностику для некоректної реєстрації
|
||||
- тести контрактів можуть контролювати право власності вбудованих плагінів і запобігати непомітному дрейфу
|
||||
- core може відхиляти дубльоване володіння, наприклад коли два плагіни реєструють однаковий ідентифікатор провайдера
|
||||
- запуск може показувати практичні діагностичні повідомлення для некоректної реєстрації
|
||||
- контрактні тести можуть забезпечувати володіння комплектних плагінів і запобігати тихому дрейфу
|
||||
|
||||
Існує два шари контролю:
|
||||
Існує два шари забезпечення дотримання:
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Контроль реєстрації під час виконання">
|
||||
<Accordion title="Забезпечення дотримання під час реєстрації в середовищі виконання">
|
||||
Реєстр плагінів перевіряє реєстрації під час завантаження плагінів. Приклади: дубльовані ідентифікатори провайдерів, дубльовані ідентифікатори провайдерів мовлення та некоректні реєстрації створюють діагностику плагінів замість невизначеної поведінки.
|
||||
</Accordion>
|
||||
<Accordion title="Тести контрактів">
|
||||
Вбудовані плагіни фіксуються в реєстрах контрактів під час тестових запусків, щоб OpenClaw міг явно перевіряти право власності. Сьогодні це використовується для провайдерів моделей, провайдерів мовлення, провайдерів вебпошуку та права власності на реєстрацію вбудованих компонентів.
|
||||
<Accordion title="Контрактні тести">
|
||||
Під час тестових запусків комплектні плагіни фіксуються в контрактних реєстрах, щоб OpenClaw міг явно перевіряти володіння. Сьогодні це використовується для провайдерів моделей, провайдерів мовлення, провайдерів вебпошуку та володіння комплектною реєстрацією.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Практичний ефект полягає в тому, що OpenClaw заздалегідь знає, який плагін володіє якою поверхнею. Це дозволяє ядру й каналам безшовно поєднуватися, оскільки право власності оголошене, типізоване й придатне до перевірки тестами, а не неявне.
|
||||
Практичний ефект полягає в тому, що OpenClaw заздалегідь знає, який плагін якою поверхнею володіє. Це дає змогу core і каналам безшовно поєднуватися, оскільки володіння оголошене, типізоване й придатне до тестування, а не неявне.
|
||||
|
||||
### Що має входити до контракту
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Добрі контракти">
|
||||
<Tab title="Хороші контракти">
|
||||
- типізовані
|
||||
- невеликі
|
||||
- малі
|
||||
- специфічні для можливості
|
||||
- належать ядру
|
||||
- придатні до повторного використання кількома плагінами
|
||||
- можуть використовуватися каналами/можливостями без знання vendor
|
||||
- належать core
|
||||
- придатні для повторного використання кількома плагінами
|
||||
- можуть споживатися каналами/функціями без знання постачальника
|
||||
</Tab>
|
||||
<Tab title="Погані контракти">
|
||||
- політика, специфічна для vendor, прихована в ядрі
|
||||
- одноразові обхідні шляхи плагіна, що оминають реєстр
|
||||
- код каналу, який напряму звертається до реалізації vendor
|
||||
- спеціально створені об’єкти середовища виконання, які не є частиною `OpenClawPluginApi` або `api.runtime`
|
||||
- специфічна для постачальника політика, прихована в core
|
||||
- одноразові обхідні шляхи плагіна, які оминають реєстр
|
||||
- код каналу, що звертається безпосередньо до реалізації постачальника
|
||||
- ситуативні об’єкти середовища виконання, які не є частиною `OpenClawPluginApi` або `api.runtime`
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
@ -444,50 +444,50 @@ OpenClaw уже розглядає розуміння зображень/ауд
|
||||
|
||||
## Модель виконання
|
||||
|
||||
Нативні плагіни OpenClaw працюють **у межах процесу** разом із Gateway. Вони не ізольовані в sandbox. Завантажений нативний плагін має ту саму межу довіри на рівні процесу, що й код ядра.
|
||||
Нативні плагіни OpenClaw працюють **у межах процесу** разом із Gateway. Вони не ізольовані. Завантажений нативний плагін має ту саму межу довіри на рівні процесу, що й код core.
|
||||
|
||||
<Warning>
|
||||
Наслідки:
|
||||
|
||||
- нативний плагін може реєструвати інструменти, мережеві обробники, хуки та служби
|
||||
- помилка в нативному плагіні може призвести до збою або дестабілізувати gateway
|
||||
- нативний плагін може реєструвати інструменти, мережеві обробники, хуки та сервіси
|
||||
- помилка в нативному плагіні може спричинити збій або дестабілізувати gateway
|
||||
- зловмисний нативний плагін рівнозначний довільному виконанню коду всередині процесу OpenClaw
|
||||
</Warning>
|
||||
|
||||
Сумісні bundle безпечніші за замовчуванням, оскільки OpenClaw наразі розглядає їх як пакети метаданих/вмісту. У поточних випусках це переважно означає вбудовані Skills.
|
||||
Сумісні пакети за замовчуванням безпечніші, оскільки OpenClaw наразі розглядає їх як пакети метаданих/вмісту. У поточних релізах це переважно означає комплектні Skills.
|
||||
|
||||
Використовуйте allowlist і явні шляхи встановлення/завантаження для невбудованих плагінів. Розглядайте плагіни робочого простору як код для етапу розробки, а не як типові значення для production.
|
||||
Для некомплектних плагінів використовуйте allowlist і явні шляхи встановлення/завантаження. Розглядайте плагіни робочого простору як код для розробки, а не як виробничі значення за замовчуванням.
|
||||
|
||||
Для назв пакетів вбудованого робочого простору зберігайте ідентифікатор плагіна прив’язаним до імені npm: `@openclaw/<id>` за замовчуванням або через затверджений типізований суфікс, такий як `-provider`, `-plugin`, `-speech`, `-sandbox` або `-media-understanding`, коли пакет навмисно надає вужчу роль плагіна.
|
||||
Для назв пакетів комплектного робочого простору зберігайте прив’язку ідентифікатора плагіна до імені npm: `@openclaw/<id>` за замовчуванням або затверджений типізований суфікс, такий як `-provider`, `-plugin`, `-speech`, `-sandbox` чи `-media-understanding`, коли пакет навмисно відкриває вужчу роль плагіна.
|
||||
|
||||
<Note>
|
||||
**Примітка щодо довіри:**
|
||||
|
||||
- `plugins.allow` довіряє **ідентифікаторам плагінів**, а не походженню джерела.
|
||||
- Плагін робочого простору з тим самим ідентифікатором, що й вбудований плагін, навмисно затіняє вбудовану копію, коли цей плагін робочого простору ввімкнено/додано до allowlist.
|
||||
- Це нормально й корисно для локальної розробки, тестування патчів і hotfix.
|
||||
- Довіра до вбудованого плагіна визначається зі знімка джерела — маніфесту та коду на диску під час завантаження — а не з метаданих встановлення. Пошкоджений або підмінений запис встановлення не може непомітно розширити поверхню довіри вбудованого плагіна понад те, що фактично заявляє джерело.
|
||||
- Плагін робочого простору з тим самим ідентифікатором, що й комплектний плагін, навмисно затіняє комплектну копію, коли цей плагін робочого простору ввімкнено/додано до allowlist.
|
||||
- Це нормально й корисно для локальної розробки, тестування патчів і термінових виправлень.
|
||||
- Довіра до комплектного плагіна визначається зі знімка джерела — маніфесту та коду на диску під час завантаження — а не з метаданих установлення. Пошкоджений або підмінений запис установлення не може непомітно розширити поверхню довіри комплектного плагіна понад те, що заявляє фактичне джерело.
|
||||
</Note>
|
||||
|
||||
## Межа експорту
|
||||
|
||||
OpenClaw експортує можливості, а не зручні засоби реалізації.
|
||||
OpenClaw експортує можливості, а не зручності реалізації.
|
||||
|
||||
Зберігайте публічною реєстрацію можливостей. Скорочуйте експорти допоміжних засобів, які не є частиною контракту:
|
||||
Залишайте реєстрацію можливостей публічною. Скорочуйте експорти допоміжних засобів, які не є частиною контракту:
|
||||
|
||||
- підшляхи допоміжних засобів, специфічних для вбудованого плагіна
|
||||
- підшляхи інфраструктури середовища виконання, не призначені як публічний API
|
||||
- зручні допоміжні засоби, специфічні для vendor
|
||||
- підшляхи допоміжних засобів, специфічних для комплектного плагіна
|
||||
- підшляхи внутрішньої логіки середовища виконання, які не призначені як публічний API
|
||||
- специфічні для постачальника зручні допоміжні засоби
|
||||
- допоміжні засоби налаштування/онбордингу, які є деталями реалізації
|
||||
|
||||
Деякі підшляхи допоміжних засобів вбудованих плагінів усе ще залишаються в згенерованій карті експорту SDK задля сумісності та підтримки вбудованих плагінів. Поточні приклади включають `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, `plugin-sdk/channel-config-schema-legacy` і кілька поверхонь `plugin-sdk/matrix*`. Розглядайте їх як застарілі зарезервовані експорти, а не як рекомендований шаблон SDK для нових сторонніх плагінів.
|
||||
Деякі підшляхи допоміжних засобів комплектних плагінів усе ще залишаються в згенерованій карті експорту SDK задля сумісності та супроводу комплектних плагінів. Поточні приклади включають `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup`, `plugin-sdk/bundled-channel-config-schema`, `plugin-sdk/channel-config-schema-legacy` і кілька швів `plugin-sdk/matrix*`. Розглядайте їх як застарілі або зарезервовані експорти, а не як рекомендований шаблон SDK для нових сторонніх плагінів.
|
||||
|
||||
## Внутрішні механізми та довідник
|
||||
## Внутрішні механізми та довідка
|
||||
|
||||
Щодо конвеєра завантаження, моделі реєстру, хуків середовища виконання провайдера, HTTP-маршрутів Gateway, схем інструмента повідомлень, визначення цілі каналу, каталогів провайдерів, плагінів рушія контексту та посібника з додавання нової можливості див. [Внутрішні механізми архітектури Plugin](/uk/plugins/architecture-internals).
|
||||
Щодо конвеєра завантаження, моделі реєстру, хуків середовища виконання провайдера, HTTP-маршрутів Gateway, схем інструмента повідомлень, визначення цілі каналу, каталогів провайдерів, плагінів механізму контексту та посібника з додавання нової можливості див. [Внутрішня архітектура плагінів](/uk/plugins/architecture-internals).
|
||||
|
||||
## Пов’язані матеріали
|
||||
## Пов’язане
|
||||
|
||||
- [Створення плагінів](/uk/plugins/building-plugins)
|
||||
- [Маніфест Plugin](/uk/plugins/manifest)
|
||||
- [Налаштування SDK Plugin](/uk/plugins/sdk-setup)
|
||||
- [Маніфест плагіна](/uk/plugins/manifest)
|
||||
- [Налаштування SDK плагіна](/uk/plugins/sdk-setup)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,33 +1,33 @@
|
||||
---
|
||||
read_when:
|
||||
- Потрібно знати, з якого підшляху SDK імпортувати
|
||||
- Вам потрібно знати, з якого підшляху SDK виконувати імпорт
|
||||
- Вам потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
|
||||
- Ви шукаєте конкретний експорт SDK
|
||||
sidebarTitle: SDK overview
|
||||
summary: Карта імпорту, довідник з API реєстрації та архітектура SDK
|
||||
summary: Карта імпорту, довідник API реєстрації та архітектура SDK
|
||||
title: Огляд Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T00:10:37Z"
|
||||
generated_at: "2026-04-28T01:34:52Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f9b00b189c2a5e632a1c7e614a3e9371dcc3114d3582d795e3c88fb5d5a0f13a
|
||||
source_hash: 18899fbe32150e1c1d06656874234333eb46325651f56cdd0641e15e7fc99e02
|
||||
source_path: plugins/sdk-overview.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка —
|
||||
довідник про **що імпортувати** і **що можна реєструвати**.
|
||||
Plugin SDK — це типізований контракт між plugins і ядром. Ця сторінка є
|
||||
довідником щодо **того, що імпортувати** і **що можна зареєструвати**.
|
||||
|
||||
<Tip>
|
||||
Шукаєте натомість практичний посібник?
|
||||
|
||||
- Перший плагін? Почніть із [Створення плагінів](/uk/plugins/building-plugins).
|
||||
- Плагін каналу? Див. [Плагіни каналів](/uk/plugins/sdk-channel-plugins).
|
||||
- Плагін провайдера? Див. [Плагіни провайдерів](/uk/plugins/sdk-provider-plugins).
|
||||
- Плагін інструмента або хука життєвого циклу? Див. [Хуки плагінів](/uk/plugins/hooks).
|
||||
- Перший plugin? Почніть із [Створення plugins](/uk/plugins/building-plugins).
|
||||
- Plugin каналу? Див. [Plugins каналів](/uk/plugins/sdk-channel-plugins).
|
||||
- Plugin провайдера? Див. [Plugins провайдерів](/uk/plugins/sdk-provider-plugins).
|
||||
- Plugin інструментів або хуків життєвого циклу? Див. [Хуки Plugin](/uk/plugins/hooks).
|
||||
</Tip>
|
||||
|
||||
## Правило імпорту
|
||||
## Угода щодо імпорту
|
||||
|
||||
Завжди імпортуйте з конкретного підшляху:
|
||||
|
||||
@ -38,161 +38,159 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
|
||||
Кожен підшлях — це невеликий самодостатній модуль. Це пришвидшує запуск і
|
||||
запобігає проблемам із циклічними залежностями. Для специфічних для каналу
|
||||
допоміжних засобів entry/build віддавайте перевагу
|
||||
`openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте для
|
||||
ширшої узагальненої поверхні та спільних допоміжних функцій, таких як
|
||||
допоміжних засобів entry/build надавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core`
|
||||
залишайте для ширшої зонтичної поверхні та спільних допоміжних засобів, таких як
|
||||
`buildChannelConfigSchema`.
|
||||
|
||||
Для конфігурації каналу публікуйте JSON Schema, що належить каналу, через
|
||||
`openclaw.plugin.json#channelConfigs`. Підшлях `plugin-sdk/channel-config-schema`
|
||||
призначений для спільних примітивів схем і універсального збирача. Застарілі
|
||||
експорти схем вбудованих каналів розміщено в
|
||||
`plugin-sdk/channel-config-schema-legacy` лише для сумісності з вбудованими
|
||||
рішеннями; це не шаблон для нових плагінів.
|
||||
призначений для спільних примітивів схем і узагальненого конструктора. Вбудовані plugins OpenClaw
|
||||
використовують `plugin-sdk/bundled-channel-config-schema` для збережених
|
||||
схем bundled-channel. Застарілі сумісні експорти залишаються в
|
||||
`plugin-sdk/channel-config-schema-legacy`; жоден із підшляхів bundled schema не є
|
||||
шаблоном для нових plugins.
|
||||
|
||||
<Warning>
|
||||
Не імпортуйте зручні seam-інтерфейси, позначені як provider або channel (наприклад
|
||||
Не імпортуйте фірмові зручні шви для provider або channel (наприклад,
|
||||
`openclaw/plugin-sdk/slack`, `.../discord`, `.../signal`, `.../whatsapp`).
|
||||
Вбудовані плагіни поєднують універсальні підшляхи SDK усередині власних barrel-файлів
|
||||
`api.ts` / `runtime-api.ts`; споживачам ядра слід або використовувати ці локальні
|
||||
barrel-файли плагіна, або додати вузький універсальний контракт SDK, якщо потреба
|
||||
справді є міжканальною.
|
||||
Вбудовані plugins поєднують узагальнені підшляхи SDK у власних barrel-файлах `api.ts` /
|
||||
`runtime-api.ts`; споживачам ядра слід або використовувати ці локальні для plugin
|
||||
barrel-файли, або додавати вузький узагальнений контракт SDK, коли потреба справді
|
||||
є міжканальною.
|
||||
|
||||
Невеликий набір допоміжних seam-інтерфейсів для вбудованих плагінів (`plugin-sdk/feishu`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/matrix*` та подібні) усе ще присутній у
|
||||
згенерованій карті експортів. Вони існують лише для супроводу вбудованих плагінів і
|
||||
не рекомендуються як шляхи імпорту для нових сторонніх плагінів.
|
||||
Невеликий набір допоміжних швів вбудованих plugins (`plugin-sdk/feishu`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/matrix*` та подібні) усе ще з’являється в
|
||||
згенерованій карті експортів. Вони існують лише для підтримки вбудованих plugins і
|
||||
не рекомендовані як шляхи імпорту для нових сторонніх plugins.
|
||||
</Warning>
|
||||
|
||||
## Довідник підшляхів
|
||||
|
||||
Plugin SDK надається як набір вузьких підшляхів, згрупованих за напрямами (entry
|
||||
плагіна, channel, provider, auth, runtime, capability, memory і зарезервовані
|
||||
допоміжні засоби для вбудованих плагінів). Повний каталог — згрупований і з
|
||||
посиланнями — див. у [Підшляхи Plugin SDK](/uk/plugins/sdk-subpaths).
|
||||
Plugin SDK доступний як набір вузьких підшляхів, згрупованих за областями (plugin
|
||||
entry, channel, provider, auth, runtime, capability, memory і зарезервовані
|
||||
допоміжні засоби вбудованих plugins). Повний каталог — згрупований і з посиланнями — див. у
|
||||
[Підшляхи Plugin SDK](/uk/plugins/sdk-subpaths).
|
||||
|
||||
Згенерований список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
Згенерований список із 200+ підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
|
||||
|
||||
## API реєстрації
|
||||
|
||||
Колбек `register(api)` отримує об’єкт `OpenClawPluginApi` з такими
|
||||
Зворотний виклик `register(api)` отримує об’єкт `OpenClawPluginApi` із такими
|
||||
методами:
|
||||
|
||||
### Реєстрація можливостей
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| ------------------------------------------------ | ------------------------------------- |
|
||||
| `api.registerProvider(...)` | Текстову інференцію (LLM) |
|
||||
| Метод | Що він реєструє |
|
||||
| ------------------------------------------------ | ----------------------------------- |
|
||||
| `api.registerProvider(...)` | Текстове виведення (LLM) |
|
||||
| `api.registerAgentHarness(...)` | Експериментальний низькорівневий виконавець агента |
|
||||
| `api.registerCliBackend(...)` | Локальний backend інференції CLI |
|
||||
| `api.registerChannel(...)` | Канал обміну повідомленнями |
|
||||
| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Потокову транскрипцію в реальному часі |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | Двобічні голосові сесії в реальному часі |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
|
||||
| `api.registerImageGenerationProvider(...)` | Генерацію зображень |
|
||||
| `api.registerMusicGenerationProvider(...)` | Генерацію музики |
|
||||
| `api.registerVideoGenerationProvider(...)` | Генерацію відео |
|
||||
| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape |
|
||||
| `api.registerWebSearchProvider(...)` | Вебпошук |
|
||||
| `api.registerCliBackend(...)` | Локальний бекенд виведення CLI |
|
||||
| `api.registerChannel(...)` | Канал обміну повідомленнями |
|
||||
| `api.registerSpeechProvider(...)` | Синтез мовлення / STT |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція в реальному часі |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | Дуплексні голосові сесії в реальному часі |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
|
||||
| `api.registerImageGenerationProvider(...)` | Генерація зображень |
|
||||
| `api.registerMusicGenerationProvider(...)` | Генерація музики |
|
||||
| `api.registerVideoGenerationProvider(...)` | Генерація відео |
|
||||
| `api.registerWebFetchProvider(...)` | Провайдер веб-отримання / скрапінгу |
|
||||
| `api.registerWebSearchProvider(...)` | Вебпошук |
|
||||
|
||||
### Інструменти та команди
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| ------------------------------- | -------------------------------------------- |
|
||||
| Метод | Що він реєструє |
|
||||
| ------------------------------- | ------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | Користувацьку команду (обходить LLM) |
|
||||
| `api.registerCommand(def)` | Користувацька команда (оминає LLM) |
|
||||
|
||||
Команди плагіна можуть задавати `agentPromptGuidance`, коли агенту потрібна
|
||||
коротка підказка маршрутизації, що належить команді. Робіть цей текст саме про
|
||||
команду; не додавайте специфічну для провайдера чи плагіна політику до
|
||||
збирачів prompt у ядрі.
|
||||
Команди plugin можуть задавати `agentPromptGuidance`, коли агенту потрібна коротка
|
||||
підказка маршрутизації, що належить команді. Зосереджуйте цей текст на самій команді; не додавайте
|
||||
специфічну для provider або plugin політику до конструкторів підказок ядра.
|
||||
|
||||
### Інфраструктура
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| ---------------------------------------------- | -------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | Хук події |
|
||||
| `api.registerHttpRoute(params)` | HTTP-ендпойнт Gateway |
|
||||
| `api.registerGatewayMethod(name, handler)` | RPC-метод Gateway |
|
||||
| `api.registerGatewayDiscoveryService(service)` | Сервіс оголошення локального виявлення Gateway |
|
||||
| `api.registerCli(registrar, opts?)` | Підкоманду CLI |
|
||||
| `api.registerService(service)` | Фоновий сервіс |
|
||||
| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник |
|
||||
| `api.registerAgentToolResultMiddleware(...)` | Проміжний обробник результатів інструментів runtime |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Адитивний розділ prompt, суміжний із memory |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Адитивний корпус для пошуку/читання memory |
|
||||
| Метод | Що він реєструє |
|
||||
| ---------------------------------------------- | ------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | Хук події |
|
||||
| `api.registerHttpRoute(params)` | HTTP-ендпоінт Gateway |
|
||||
| `api.registerGatewayMethod(name, handler)` | RPC-метод Gateway |
|
||||
| `api.registerGatewayDiscoveryService(service)` | Служба оголошення локального виявлення Gateway |
|
||||
| `api.registerCli(registrar, opts?)` | Підкоманда CLI |
|
||||
| `api.registerService(service)` | Фонова служба |
|
||||
| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник |
|
||||
| `api.registerAgentToolResultMiddleware(...)` | Middleware результатів інструментів середовища виконання |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Додатковий розділ підказки, суміжний із пам’яттю |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Додатковий корпус пошуку/читання пам’яті |
|
||||
|
||||
### Хуки хоста для workflow-плагінів
|
||||
### Хуки хоста для plugins робочих процесів
|
||||
|
||||
Хуки хоста — це seam-інтерфейси SDK для плагінів, яким потрібно брати участь у
|
||||
життєвому циклі хоста, а не лише додавати provider, channel або tool. Це
|
||||
універсальні контракти; їх може використовувати Plan Mode, але так само ними
|
||||
можуть користуватися workflow затвердження, шлюзи політик робочого простору,
|
||||
фонові монітори, майстри налаштування та UI-плагіни-компаньйони.
|
||||
Хуки хоста — це шви SDK для plugins, яким потрібно брати участь у життєвому циклі
|
||||
хоста, а не лише додавати provider, channel або tool. Це
|
||||
узагальнені контракти; Plan Mode може їх використовувати, але так само можуть і
|
||||
процеси затвердження, політики робочого простору, фонові монітори, майстри налаштування та plugins-супутники UI.
|
||||
|
||||
| Метод | Контракт, яким він володіє |
|
||||
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
|
||||
| `api.registerSessionExtension(...)` | Стан сесії, що належить плагіну, сумісний із JSON і проєктується через сесії Gateway |
|
||||
| `api.enqueueNextTurnInjection(...)` | Надійний контекст рівно-один-раз, що вбудовується в наступний хід агента для однієї сесії |
|
||||
| `api.registerTrustedToolPolicy(...)` | Політика інструментів trusted/bundled до плагіна, яка може блокувати або переписувати параметри інструментів |
|
||||
| `api.registerToolMetadata(...)` | Метадані відображення каталогу інструментів без зміни реалізації інструмента |
|
||||
| `api.registerCommand(...)` | Обмежені команди плагіна; результати команд можуть встановлювати `continueAgent: true` |
|
||||
| `api.registerControlUiDescriptor(...)` | Дескриптори внеску в Control UI для поверхонь сесій, інструментів, запусків або налаштувань |
|
||||
| `api.registerRuntimeLifecycle(...)` | Колбеки очищення для ресурсів runtime, що належать плагіну, на шляхах reset/delete/reload |
|
||||
| `api.registerAgentEventSubscription(...)` | Санітизовані підписки на події для стану workflow і моніторів |
|
||||
| `api.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)` | Чернетковий стан плагіна на рівні запуску, що очищується на завершальному етапі життєвого циклу запуску |
|
||||
| `api.registerSessionSchedulerJob(...)` | Записи завдань планувальника сесій, що належать плагіну, з детермінованим очищенням |
|
||||
| Метод | Контракт, яким він володіє |
|
||||
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
|
||||
| `api.registerSessionExtension(...)` | Стан сесії, що належить plugin, сумісний із JSON і проєктується через сесії Gateway |
|
||||
| `api.enqueueNextTurnInjection(...)` | Стійкий контекст рівно-один-раз, ін’єктований у наступний хід агента для однієї сесії |
|
||||
| `api.registerTrustedToolPolicy(...)` | Політика інструментів bundled/trusted до plugin, яка може блокувати або переписувати параметри інструментів |
|
||||
| `api.registerToolMetadata(...)` | Метадані відображення каталогу інструментів без зміни реалізації інструмента |
|
||||
| `api.registerCommand(...)` | Обмежені plugins команди; результати команд можуть задавати `continueAgent: true` |
|
||||
| `api.registerControlUiDescriptor(...)` | Дескриптори внеску в Control UI для поверхонь сесії, інструмента, запуску або налаштувань |
|
||||
| `api.registerRuntimeLifecycle(...)` | Зворотні виклики очищення для ресурсів середовища виконання, що належать plugin, на шляхах reset/delete/reload |
|
||||
| `api.registerAgentEventSubscription(...)` | Очищені підписки на події для стану робочого процесу та моніторів |
|
||||
| `api.setRunContext(...)` / `getRunContext(...)` / `clearRunContext(...)` | Тимчасовий стан plugin на один запуск, який очищається в термінальному життєвому циклі запуску |
|
||||
| `api.registerSessionSchedulerJob(...)` | Записи завдань планувальника сесій, що належать plugin, із детермінованим очищенням |
|
||||
|
||||
Ці контракти навмисно розділяють повноваження:
|
||||
|
||||
- Зовнішні плагіни можуть володіти розширеннями сесій, дескрипторами UI, командами,
|
||||
метаданими інструментів, ін’єкціями в наступний хід і звичайними хуками.
|
||||
- Політики trusted інструментів виконуються до звичайних хуків `before_tool_call` і
|
||||
доступні лише для bundled, оскільки вони беруть участь у політиці безпеки хоста.
|
||||
- Володіння зарезервованими командами доступне лише для bundled. Зовнішнім плагінам
|
||||
слід використовувати власні назви команд або псевдоніми.
|
||||
- `allowPromptInjection=false` вимикає хуки, що змінюють prompt, включно з
|
||||
- Зовнішні plugins можуть володіти розширеннями сесій, дескрипторами UI, командами, метаданими
|
||||
інструментів, ін’єкціями наступного ходу та звичайними хуками.
|
||||
- Політики trusted tool виконуються перед звичайними хуками `before_tool_call` і є
|
||||
лише bundled, оскільки вони беруть участь у політиці безпеки хоста.
|
||||
- Володіння зарезервованими командами доступне лише bundled plugins. Зовнішнім plugins слід використовувати
|
||||
власні назви команд або псевдоніми.
|
||||
- `allowPromptInjection=false` вимикає хуки, що змінюють підказки, зокрема
|
||||
`agent_turn_prepare`, `before_prompt_build`, `heartbeat_prompt_contribution`,
|
||||
полями prompt із застарілого `before_agent_start` і
|
||||
поля підказок із застарілого `before_agent_start`, і
|
||||
`enqueueNextTurnInjection`.
|
||||
|
||||
Приклади споживачів, не пов’язаних із Plan:
|
||||
|
||||
| Архетип плагіна | Використовувані хуки |
|
||||
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Workflow затвердження | Розширення сесії, продовження команди, ін’єкція в наступний хід, дескриптор UI |
|
||||
| Шлюз політик бюджету/робочого простору | Trusted tool policy, metadata інструментів, проєкція сесії |
|
||||
| Фоновий монітор життєвого циклу | Очищення життєвого циклу runtime, підписка на події агента, володіння/очищення планувальника сесій, внесок у Heartbeat prompt, дескриптор UI |
|
||||
| Майстер налаштування або онбордингу | Розширення сесії, обмежені команди, дескриптор Control UI |
|
||||
| Архетип plugin | Використані хуки |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Процес затвердження | Розширення сесії, продовження команди, ін’єкція наступного ходу, дескриптор UI |
|
||||
| Обмеження бюджету/політики робочого простору | Політика trusted tool, метадані інструментів, проєкція сесії |
|
||||
| Фоновий монітор життєвого циклу | Очищення життєвого циклу runtime, підписка на події агента, володіння/очищення планувальника сесій, внесок у підказки Heartbeat, дескриптор UI |
|
||||
| Майстер налаштування або онбордингу | Розширення сесії, обмежені команди, дескриптор Control UI |
|
||||
|
||||
<Note>
|
||||
Зарезервовані простори назв адміністратора ядра (`config.*`, `exec.approvals.*`, `wizard.*`,
|
||||
`update.*`) завжди залишаються `operator.admin`, навіть якщо плагін намагається призначити
|
||||
вужчу область видимості методу gateway. Для методів, що належать плагіну,
|
||||
віддавайте перевагу префіксам, специфічним для плагіна.
|
||||
Зарезервовані простори назв адміністрування ядра (`config.*`, `exec.approvals.*`, `wizard.*`,
|
||||
`update.*`) завжди залишаються `operator.admin`, навіть якщо plugin намагається призначити
|
||||
вужчу область методу gateway. Для методів, що належать plugin,
|
||||
надавайте перевагу префіксам, специфічним для plugin.
|
||||
</Note>
|
||||
|
||||
<Accordion title="Коли використовувати проміжний обробник результатів інструментів">
|
||||
Вбудовані плагіни можуть використовувати `api.registerAgentToolResultMiddleware(...)`, коли
|
||||
<Accordion title="Коли використовувати middleware результатів інструментів">
|
||||
Вбудовані plugins можуть використовувати `api.registerAgentToolResultMiddleware(...)`, коли
|
||||
їм потрібно переписати результат інструмента після виконання і до того, як runtime
|
||||
поверне цей результат назад у модель. Це trusted і runtime-нейтральний
|
||||
seam-інтерфейс для асинхронних редукторів виводу, таких як tokenjuice.
|
||||
поверне цей результат назад у модель. Це trusted, нейтральний до runtime
|
||||
шов для асинхронних редукторів виводу, таких як tokenjuice.
|
||||
|
||||
Вбудовані плагіни повинні оголошувати `contracts.agentToolResultMiddleware` для
|
||||
кожного цільового runtime, наприклад `["pi", "codex"]`. Зовнішні плагіни
|
||||
не можуть реєструвати цей middleware; для роботи, якій не потрібен таймінг
|
||||
результатів інструментів до моделі, використовуйте звичайні хуки плагінів OpenClaw. Старий
|
||||
шлях реєстрації фабрики вбудованих розширень лише для Pi було вилучено.
|
||||
Вбудовані plugins мають оголошувати `contracts.agentToolResultMiddleware` для кожного
|
||||
цільового runtime, наприклад `["pi", "codex"]`. Зовнішні plugins
|
||||
не можуть реєструвати це middleware; для роботи, яка не потребує часу виконання результату інструмента до моделі,
|
||||
використовуйте звичайні хуки Plugin OpenClaw. Старий шлях реєстрації вбудованої
|
||||
фабрики розширень лише для Pi було видалено.
|
||||
</Accordion>
|
||||
|
||||
### Реєстрація виявлення Gateway
|
||||
|
||||
`api.registerGatewayDiscoveryService(...)` дозволяє плагіну оголошувати активний
|
||||
`api.registerGatewayDiscoveryService(...)` дає plugin змогу оголошувати активний
|
||||
Gateway у локальному транспорті виявлення, такому як mDNS/Bonjour. OpenClaw викликає
|
||||
сервіс під час запуску Gateway, коли ввімкнено локальне виявлення, передає
|
||||
поточні порти Gateway і не секретні підказки даних TXT, а також викликає
|
||||
повернений обробник `stop` під час зупинки Gateway.
|
||||
службу під час запуску Gateway, коли локальне виявлення увімкнено, передає
|
||||
поточні порти Gateway і несекретні дані підказок TXT, а також викликає повернений
|
||||
обробник `stop` під час завершення роботи Gateway.
|
||||
|
||||
```typescript
|
||||
api.registerGatewayDiscoveryService({
|
||||
@ -208,21 +206,21 @@ api.registerGatewayDiscoveryService({
|
||||
});
|
||||
```
|
||||
|
||||
Плагіни виявлення Gateway не повинні трактувати оголошені значення TXT як
|
||||
секрети або автентифікацію. Виявлення — це підказка маршрутизації; довірою, як і
|
||||
раніше, керують автентифікація Gateway та TLS pinning.
|
||||
Plugins виявлення Gateway не повинні розглядати оголошені значення TXT як секрети або
|
||||
автентифікацію. Виявлення — це підказка для маршрутизації; довірою й надалі керують
|
||||
автентифікація Gateway і pinning TLS.
|
||||
|
||||
### Метадані реєстрації CLI
|
||||
|
||||
`api.registerCli(registrar, opts?)` приймає два типи метаданих верхнього рівня:
|
||||
|
||||
- `commands`: явні корені команд, якими володіє реєстратор
|
||||
- `descriptors`: дескриптори команд на етапі парсингу, які використовуються для довідки кореневого CLI,
|
||||
маршрутизації та лінивої реєстрації CLI плагіна
|
||||
- `descriptors`: дескриптори команд на етапі парсингу, що використовуються для довідки кореневого CLI,
|
||||
маршрутизації та лінивої реєстрації CLI plugin
|
||||
|
||||
Якщо ви хочете, щоб команда плагіна залишалася ліниво завантажуваною в
|
||||
звичайному кореневому шляху CLI, надайте `descriptors`, які охоплюють кожен
|
||||
корінь команди верхнього рівня, що експонується цим реєстратором.
|
||||
Якщо ви хочете, щоб команда plugin залишалася ліниво завантажуваною у звичайному шляху кореневого CLI,
|
||||
надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, що його
|
||||
експонує цей реєстратор.
|
||||
|
||||
```typescript
|
||||
api.registerCli(
|
||||
@ -242,139 +240,137 @@ api.registerCli(
|
||||
);
|
||||
```
|
||||
|
||||
Використовуйте лише `commands`, якщо вам не потрібна лінива реєстрація
|
||||
кореневого CLI. Цей сумісний eager-шлях усе ще підтримується, але він не
|
||||
встановлює заповнювачі на основі descriptors для лінивого завантаження на етапі
|
||||
парсингу.
|
||||
Використовуйте лише `commands`, якщо вам не потрібна лінива реєстрація кореневого CLI.
|
||||
Цей eager-шлях сумісності й далі підтримується, але він не встановлює
|
||||
плейсхолдери на основі дескрипторів для лінивого завантаження під час парсингу.
|
||||
|
||||
### Реєстрація backend CLI
|
||||
### Реєстрація CLI backend
|
||||
|
||||
`api.registerCliBackend(...)` дозволяє плагіну володіти конфігурацією за
|
||||
замовчуванням для локального backend CLI ШІ, такого як `codex-cli`.
|
||||
`api.registerCliBackend(...)` дає plugin змогу володіти типовою конфігурацією локального
|
||||
AI CLI backend, такого як `codex-cli`.
|
||||
|
||||
- `id` backend стає префіксом провайдера в посиланнях на моделі, як-от `codex-cli/gpt-5`.
|
||||
- `config` backend використовує ту саму структуру, що й `agents.defaults.cliBackends.<id>`.
|
||||
- `id` backend стає префіксом provider у посиланнях на моделі, як-от `codex-cli/gpt-5`.
|
||||
- `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.<id>`.
|
||||
- Конфігурація користувача все одно має пріоритет. OpenClaw об’єднує `agents.defaults.cliBackends.<id>` поверх
|
||||
значення за замовчуванням плагіна перед запуском CLI.
|
||||
- Використовуйте `normalizeConfig`, коли backend потребує переписувань для сумісності після злиття
|
||||
(наприклад, для нормалізації старих форм прапорців).
|
||||
типового значення plugin перед запуском CLI.
|
||||
- Використовуйте `normalizeConfig`, коли backend потребує сумісних переписувань після злиття
|
||||
(наприклад, нормалізації старих форм прапорців).
|
||||
|
||||
### Ексклюзивні слоти
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| Метод | Що він реєструє |
|
||||
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | Context engine (одночасно активним може бути лише один). Колбек `assemble()` отримує `availableTools` і `citationsMode`, щоб engine міг адаптувати доповнення prompt. |
|
||||
| `api.registerMemoryCapability(capability)` | Уніфіковану можливість memory |
|
||||
| `api.registerMemoryPromptSection(builder)` | Builder розділу prompt для memory |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Resolver плану flush для memory |
|
||||
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime для memory |
|
||||
| `api.registerContextEngine(id, factory)` | Рушій контексту (одночасно активний лише один). Зворотний виклик `assemble()` отримує `availableTools` і `citationsMode`, щоб рушій міг адаптувати доповнення підказок. |
|
||||
| `api.registerMemoryCapability(capability)` | Єдину можливість пам’яті |
|
||||
| `api.registerMemoryPromptSection(builder)` | Конструктор розділу підказки пам’яті |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану скидання пам’яті |
|
||||
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті |
|
||||
|
||||
### Адаптери embedding для memory
|
||||
### Адаптери ембедингів пам’яті
|
||||
|
||||
| Метод | Що він реєструє |
|
||||
| ---------------------------------------------- | ----------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding для memory для активного плагіна |
|
||||
| Метод | Що він реєструє |
|
||||
| ---------------------------------------------- | -------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер ембедингів пам’яті для активного plugin |
|
||||
|
||||
- `registerMemoryCapability` — бажаний API ексклюзивного memory-плагіна.
|
||||
- `registerMemoryCapability` — це бажаний API ексклюзивного plugin пам’яті.
|
||||
- `registerMemoryCapability` також може експонувати `publicArtifacts.listArtifacts(...)`,
|
||||
щоб плагіни-компаньйони могли споживати експортовані артефакти memory через
|
||||
`openclaw/plugin-sdk/memory-host-core`, а не звертатися до приватної структури
|
||||
конкретного memory-плагіна.
|
||||
щоб plugins-супутники могли споживати експортовані артефакти пам’яті через
|
||||
`openclaw/plugin-sdk/memory-host-core` замість доступу до приватного макета
|
||||
конкретного plugin пам’яті.
|
||||
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` і
|
||||
`registerMemoryRuntime` — це сумісні з legacy API ексклюзивного memory-плагіна.
|
||||
- `registerMemoryEmbeddingProvider` дозволяє активному memory-плагіну реєструвати один
|
||||
або кілька id адаптерів embedding (наприклад, `openai`, `gemini` або
|
||||
власний id, визначений плагіном).
|
||||
`registerMemoryRuntime` — це сумісні зі спадщиною API ексклюзивного plugin пам’яті.
|
||||
- `registerMemoryEmbeddingProvider` дозволяє активному plugin пам’яті реєструвати один
|
||||
або кілька id адаптерів ембедингів (наприклад, `openai`, `gemini` або користувацький
|
||||
id, визначений plugin).
|
||||
- Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і
|
||||
`agents.defaults.memorySearch.fallback`, резолвиться відносно цих зареєстрованих
|
||||
`agents.defaults.memorySearch.fallback`, зіставляється з цими зареєстрованими
|
||||
id адаптерів.
|
||||
|
||||
### Події та життєвий цикл
|
||||
|
||||
| Метод | Що він робить |
|
||||
| -------------------------------------------- | ---------------------------- |
|
||||
| Метод | Що він робить |
|
||||
| -------------------------------------------- | ------------------------------ |
|
||||
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
|
||||
| `api.onConversationBindingResolved(handler)` | Колбек прив’язки розмови |
|
||||
| `api.onConversationBindingResolved(handler)` | Зворотний виклик прив’язки розмови |
|
||||
|
||||
Приклади, поширені назви хуків і семантику guard див. у
|
||||
[Хуки плагінів](/uk/plugins/hooks).
|
||||
Приклади, поширені назви хуків і семантику guard див. у [Хуки Plugin](/uk/plugins/hooks).
|
||||
|
||||
### Семантика рішень хуків
|
||||
|
||||
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник установлює це значення, обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_tool_call`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
|
||||
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник установлює це значення, обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_install`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
|
||||
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник перебирає на себе dispatch, обробники з нижчим пріоритетом і стандартний шлях dispatch моделі пропускаються.
|
||||
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник установлює це значення, обробники з нижчим пріоритетом пропускаються.
|
||||
- `message_sending`: повернення `{ cancel: false }` трактується як відсутність рішення (так само, як пропуск `cancel`), а не як перевизначення.
|
||||
- `message_received`: використовуйте типізоване поле `threadId`, коли вам потрібна маршрутизація вхідних thread/topic. `metadata` залишайте для специфічних для каналу додаткових даних.
|
||||
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_tool_call`: повернення `{ block: false }` розглядається як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
|
||||
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
|
||||
- `before_install`: повернення `{ block: false }` розглядається як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
|
||||
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере dispatch на себе, обробники з нижчим пріоритетом і типовий шлях dispatch моделі пропускаються.
|
||||
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
|
||||
- `message_sending`: повернення `{ cancel: false }` розглядається як відсутність рішення (так само, як пропуск `cancel`), а не як перевизначення.
|
||||
- `message_received`: використовуйте типізоване поле `threadId`, коли вам потрібна вхідна маршрутизація thread/topic. `metadata` залишайте для специфічних для каналу додаткових даних.
|
||||
- `message_sending`: використовуйте типізовані поля маршрутизації `replyToId` / `threadId`, перш ніж переходити до специфічного для каналу `metadata`.
|
||||
- `gateway_start`: використовуйте `ctx.config`, `ctx.workspaceDir` і `ctx.getCron?.()` для стану запуску, що належить Gateway, замість опори на внутрішні хуки `gateway:startup`.
|
||||
- `gateway_start`: використовуйте `ctx.config`, `ctx.workspaceDir` і `ctx.getCron?.()` для стану запуску, що належить gateway, замість покладання на внутрішні хуки `gateway:startup`.
|
||||
|
||||
### Поля об’єкта API
|
||||
|
||||
| Поле | Тип | Опис |
|
||||
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | ID плагіна |
|
||||
| `api.name` | `string` | Назва для відображення |
|
||||
| `api.version` | `string?` | Версія плагіна (необов’язково) |
|
||||
| `api.description` | `string?` | Опис плагіна (необов’язково) |
|
||||
| `api.source` | `string` | Шлях до джерела плагіна |
|
||||
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
|
||||
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime в пам’яті, якщо доступний) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | Специфічна для плагіна конфігурація з `plugins.entries.<id>.config` |
|
||||
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Logger з областю дії (`debug`, `info`, `warn`, `error`) |
|
||||
| Поле | Тип | Опис |
|
||||
| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | id plugin |
|
||||
| `api.name` | `string` | Назва для відображення |
|
||||
| `api.version` | `string?` | Версія plugin (необов’язково) |
|
||||
| `api.description` | `string?` | Опис plugin (необов’язково) |
|
||||
| `api.source` | `string` | Шлях до джерела plugin |
|
||||
| `api.rootDir` | `string?` | Кореневий каталог plugin (необов’язково) |
|
||||
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, якщо доступний) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | Специфічна для plugin конфігурація з `plugins.entries.<id>.config` |
|
||||
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Логер з областю видимості (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це полегшене вікно запуску/налаштування до повного entry |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Резолвить шлях відносно кореня плагіна |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Розв’язати шлях відносно кореня plugin |
|
||||
|
||||
## Внутрішня угода щодо модулів
|
||||
## Угода щодо внутрішніх модулів
|
||||
|
||||
Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів:
|
||||
Усередині вашого plugin використовуйте локальні barrel-файли для внутрішніх імпортів:
|
||||
|
||||
```
|
||||
my-plugin/
|
||||
api.ts # Публічні експорти для зовнішніх споживачів
|
||||
runtime-api.ts # Лише внутрішні експорти runtime
|
||||
index.ts # Точка входу плагіна
|
||||
index.ts # Точка входу plugin
|
||||
setup-entry.ts # Полегшена точка входу лише для налаштування (необов’язково)
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/<your-plugin>`
|
||||
Ніколи не імпортуйте власний plugin через `openclaw/plugin-sdk/<your-plugin>`
|
||||
у production-коді. Спрямовуйте внутрішні імпорти через `./api.ts` або
|
||||
`./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
|
||||
</Warning>
|
||||
|
||||
Публічні поверхні вбудованих плагінів, завантажувані через facade (`api.ts`, `runtime-api.ts`,
|
||||
Публічні поверхні вбудованих plugins, завантажувані через facade (`api.ts`, `runtime-api.ts`,
|
||||
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), віддають перевагу
|
||||
активному знімку конфігурації runtime, якщо OpenClaw уже запущено. Якщо знімок runtime
|
||||
ще не існує, вони повертаються до резолвленого файлу конфігурації на диску.
|
||||
активному знімку конфігурації runtime, коли OpenClaw уже працює. Якщо знімок runtime
|
||||
ще не існує, вони повертаються до розв’язаного конфігураційного файла на диску.
|
||||
|
||||
Плагіни провайдерів можуть експонувати вузький локальний barrel-контракт плагіна, коли
|
||||
певний helper навмисно є специфічним для провайдера і поки що не належить до
|
||||
універсального підшляху SDK. Приклади вбудованих рішень:
|
||||
Plugins провайдерів можуть експонувати вузький локальний barrel-контракт plugin, коли
|
||||
допоміжний засіб навмисно є специфічним для provider і ще не належить до узагальненого підшляху SDK.
|
||||
Приклади вбудованих:
|
||||
|
||||
- **Anthropic**: публічний seam `api.ts` / `contract-api.ts` для helper-функцій
|
||||
- **Anthropic**: публічний шов `api.ts` / `contract-api.ts` для допоміжних засобів
|
||||
beta-header Claude і потоку `service_tier`.
|
||||
- **`@openclaw/openai-provider`**: `api.ts` експортує builder-и провайдерів,
|
||||
helper-и моделей за замовчуванням і builder-и realtime-провайдерів.
|
||||
- **`@openclaw/openrouter-provider`**: `api.ts` експортує builder провайдера,
|
||||
а також helper-и онбордингу/конфігурації.
|
||||
- **`@openclaw/openai-provider`**: `api.ts` експортує конструктори provider,
|
||||
допоміжні засоби типових моделей і конструктори realtime provider.
|
||||
- **`@openclaw/openrouter-provider`**: `api.ts` експортує конструктор provider
|
||||
разом із допоміжними засобами онбордингу/конфігурації.
|
||||
|
||||
<Warning>
|
||||
Production-код розширень також має уникати імпортів `openclaw/plugin-sdk/<other-plugin>`.
|
||||
Якщо helper справді є спільним, перенесіть його до нейтрального підшляху SDK,
|
||||
Якщо допоміжний засіб справді є спільним, підвищте його до нейтрального підшляху SDK,
|
||||
такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
|
||||
поверхні, орієнтованої на capability, замість зв’язування двох плагінів між собою.
|
||||
поверхні, орієнтованої на можливості, замість зчеплення двох plugins між собою.
|
||||
</Warning>
|
||||
|
||||
## Пов’язані матеріали
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Точки входу" icon="door-open" href="/uk/plugins/sdk-entrypoints">
|
||||
Опції `definePluginEntry` і `defineChannelPluginEntry`.
|
||||
Параметри `definePluginEntry` і `defineChannelPluginEntry`.
|
||||
</Card>
|
||||
<Card title="Допоміжні засоби runtime" icon="gears" href="/uk/plugins/sdk-runtime">
|
||||
Повний довідник простору назв `api.runtime`.
|
||||
@ -388,7 +384,7 @@ my-plugin/
|
||||
<Card title="Міграція SDK" icon="arrows-turn-right" href="/uk/plugins/sdk-migration">
|
||||
Міграція із застарілих поверхонь.
|
||||
</Card>
|
||||
<Card title="Внутрішня архітектура плагінів" icon="diagram-project" href="/uk/plugins/architecture">
|
||||
Поглиблена архітектура та модель capability.
|
||||
<Card title="Внутрішня будова Plugin" icon="diagram-project" href="/uk/plugins/architecture">
|
||||
Поглиблена архітектура та модель можливостей.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -1,45 +1,45 @@
|
||||
---
|
||||
read_when:
|
||||
- Вибір правильного підшляху plugin-sdk для імпорту плагіна
|
||||
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
|
||||
- Аудит підшляхів bundled-plugin і допоміжних поверхонь
|
||||
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями'
|
||||
title: Підшляхи Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T01:06:39Z"
|
||||
generated_at: "2026-04-28T01:34:53Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 63abca6e6246162215a95c0f9351f4b36d0cd481a9710a0464db013385ae68bc
|
||||
source_hash: 40dbd7010153dc65dcad3c227152c6274cdf01c832b53ab0e00ad59916c43a02
|
||||
source_path: plugins/sdk-subpaths.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Plugin SDK представлено як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
|
||||
На цій сторінці наведено каталог поширено вживаних підшляхів, згрупованих за призначенням. Згенерований
|
||||
повний список із 200+ підшляхів зберігається в `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані допоміжні підшляхи bundled-plugin також з’являються там, але є
|
||||
деталлю реалізації, якщо лише сторінка документації явно не просуває їх.
|
||||
На цій сторінці каталогізовано найуживаніші підшляхи, згруповані за призначенням. Згенерований
|
||||
повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталями
|
||||
реалізації, якщо лише сторінка документації явно не просуває їх.
|
||||
|
||||
Посібник з розробки плагінів див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview).
|
||||
Посібник з написання Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview).
|
||||
|
||||
## Точка входу плагіна
|
||||
## Точка входу Plugin
|
||||
|
||||
| Підшлях | Ключові експорти |
|
||||
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/testing` | Широкий сумісний barrel для застарілих тестів плагінів; для нових тестів розширень віддавайте перевагу цільовим тестовим підшляхам |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний конструктор моку `OpenClawPluginApi` для модульних тестів прямої реєстрації плагіна |
|
||||
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестування життєвого циклу облікового запису каналу, директорії, конфігурації надсилання, моку runtime, hook і загального контракту каналу |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір тестів для випадків помилок під час розв’язання цілей каналу |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби для контрактів реєстрації плагіна, маніфесту пакета, публічного артефакту, runtime API, побічних ефектів імпорту та прямого імпорту |
|
||||
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime плагіна, реєстру, реєстрації провайдера, майстра налаштування та runtime TaskFlow для тестів |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби для контрактів runtime провайдера, автентифікації, виявлення, онбордингу, каталогу, web-search/fetch і майстра |
|
||||
| `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/мережі, live-тестів, тимчасової файлової системи та керування часом |
|
||||
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури для CLI, sandbox, skill, agent-message, system-event, terminal, chunking, auth-token і типізованих кейсів |
|
||||
| `plugin-sdk/migration` | Допоміжні засоби для елементів провайдера міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, засоби редагування та `summarizeMigrationItems` |
|
||||
| `plugin-sdk/migration-runtime` | Допоміжні засоби runtime міграції, як-от `copyMigrationFileItem` і `writeMigrationReport` |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/testing` | Широкий сумісний barrel для застарілих тестів Plugin; для нових тестів extension віддавайте перевагу сфокусованим тестовим підшляхам |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний конструктор моків `OpenClawPluginApi` для модульних тестів безпосередньої реєстрації Plugin |
|
||||
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестування життєвого циклу облікових записів каналу, каталогу, send-config, мока runtime, hook і загального контракту каналу |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір тестів випадків помилок визначення цілі каналу |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби для контрактів реєстрації Plugin, маніфесту пакета, публічного артефакту, runtime API, побічного ефекту імпорту та прямого імпорту |
|
||||
| `plugin-sdk/plugin-test-runtime` | Фікстури для тестів runtime Plugin, реєстру, реєстрації provider, майстра налаштування та runtime TaskFlow |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби для контрактів runtime provider, auth, discovery, onboard, catalog, web-search/fetch і wizard |
|
||||
| `plugin-sdk/test-env` | Фікстури для тестового середовища, fetch/network, live-test, тимчасової файлової системи та керування часом |
|
||||
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури для CLI, sandbox, skill, agent-message, system-event, terminal, chunking, auth-token і typed-case |
|
||||
| `plugin-sdk/migration` | Допоміжні засоби для елементів provider міграції, як-от `createMigrationItem`, константи причин, маркери стану елементів, засоби редагування та `summarizeMigrationItems` |
|
||||
| `plugin-sdk/migration-runtime` | Допоміжні засоби runtime міграції, як-от `copyMigrationFileItem` і `writeMigrationReport` |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Підшляхи каналу">
|
||||
@ -48,251 +48,252 @@ x-i18n:
|
||||
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
|
||||
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, конструктори статусу налаштування |
|
||||
| `plugin-sdk/setup` | Спільні допоміжні засоби для майстра налаштування, підказок allowlist і побудови стану налаштування |
|
||||
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
|
||||
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | Допоміжні засоби для багатокористувацької конфігурації/керування діями та запасного використання облікового запису за замовчуванням |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ідентифікатора облікового запису |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису та запасного використання значення за замовчуванням |
|
||||
| `plugin-sdk/account-core` | Допоміжні засоби для багатокористувацької конфігурації/шлюзів дій і резервного використання облікового запису за замовчуванням |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного використання значення за замовчуванням |
|
||||
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів/дій з обліковими записами |
|
||||
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
||||
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та загальний конструктор |
|
||||
| `plugin-sdk/channel-config-schema-legacy` | Застарілі схеми конфігурації bundled-channel лише для сумісності з вбудованими компонентами |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із запасним сумісним контрактом bundled |
|
||||
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби для шлюзу авторизації команд |
|
||||
| `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації каналу bundled OpenClaw лише для підтримуваних bundled Plugin |
|
||||
| `plugin-sdk/channel-config-schema-legacy` | Застарілий сумісний псевдонім для bundled-channel config schemas |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервною підтримкою bundled-contract |
|
||||
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби для шлюзів авторизації команд |
|
||||
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації чернеткового потоку |
|
||||
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби для маршрутизації вхідних повідомлень і побудови envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби для запису й диспетчеризації вхідних відповідей |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації потоку чернеток |
|
||||
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних даних + побудови envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних відповідей |
|
||||
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
|
||||
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
|
||||
| `plugin-sdk/outbound-send-deps` | Полегшений пошук залежностей вихідного надсилання для адаптерів каналу |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні засоби для вихідної доставки, ідентичності, делегата надсилання, сесії, форматування та планування payload |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної доставки, ідентифікації, делегата надсилання, сесії, форматування та планування payload |
|
||||
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків і адаптерів |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу та адаптера для прив’язок потоків |
|
||||
| `plugin-sdk/agent-media-payload` | Застарілий конструктор payload медіа агента |
|
||||
| `plugin-sdk/conversation-runtime` | Допоміжні засоби для прив’язки conversation/thread, pairing і налаштованих binding |
|
||||
| `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмов/потоків, pairing і налаштованих прив’язок |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime |
|
||||
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби розв’язання групової політики runtime |
|
||||
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy у runtime |
|
||||
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку стану каналу |
|
||||
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
|
||||
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin каналу |
|
||||
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні засоби для рішень щодо доступу групи |
|
||||
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби для автентифікації/захисту direct-DM |
|
||||
| `plugin-sdk/interactive-runtime` | Семантичні допоміжні засоби для представлення повідомлень, доставки та застарілих інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних повідомлень, зіставлення згадок, допоміжних засобів політики згадок і envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних повідомлень |
|
||||
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок, маркерів згадок і тексту згадок без ширшої поверхні runtime вхідних повідомлень |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування envelope вхідних повідомлень |
|
||||
| `plugin-sdk/channel-location` | Допоміжні засоби контексту розташування каналу та форматування |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкидання вхідних повідомлень і збоїв typing/ack |
|
||||
| `plugin-sdk/channel-send-result` | Типи результату відповіді |
|
||||
| `plugin-sdk/channel-actions` | Допоміжні засоби для дій із повідомленнями каналу, а також застарілі допоміжні засоби нативної схеми, збережені для сумісності плагінів |
|
||||
| `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршруту, розв’язання цілей на основі парсера, перетворення thread-id на рядок, dedupe/compact ключів маршруту, типів parsed-target і порівняння route/target |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні засоби для рішень щодо group-access |
|
||||
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямого DM |
|
||||
| `plugin-sdk/interactive-runtime` | Допоміжні засоби семантичного представлення повідомлень, доставки та застарілих інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних даних, зіставлення згадок, допоміжних засобів mention-policy і допоміжних засобів envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних даних |
|
||||
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy, маркерів згадок і тексту згадок без ширшої поверхні inbound runtime |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope |
|
||||
| `plugin-sdk/channel-location` | Допоміжні засоби контексту й форматування розташування каналу |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні засоби журналювання каналу для скидання вхідних даних і збоїв typing/ack |
|
||||
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
|
||||
| `plugin-sdk/channel-actions` | Допоміжні засоби для message-action каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
|
||||
| `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршрутів, визначення цілей на основі parser, перетворення thread-id на рядок, dedupe/compact ключів маршруту, типів parsed-target і порівняння маршруту/цілі |
|
||||
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` |
|
||||
| `plugin-sdk/channel-contract` | Типи контракту каналу |
|
||||
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби секретного контракту, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи провайдера">
|
||||
<Accordion title="Підшляхи Provider">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделі runtime |
|
||||
| `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад runtime LM Studio для локальних значень сервера за замовчуванням, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей |
|
||||
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Цільові допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI |
|
||||
| `plugin-sdk/cli-backend` | Значення backend CLI за замовчуванням + константи watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби розв’язання API-ключа runtime для плагінів провайдерів |
|
||||
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, як-от `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | Стандартний конструктор результату OAuth-автентифікації |
|
||||
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів |
|
||||
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для автентифікації провайдера |
|
||||
| `plugin-sdk/lmstudio` | Підтримуваний фасад provider LM Studio для налаштування, виявлення каталогу та підготовки моделей у runtime |
|
||||
| `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад runtime LM Studio для локальних типових налаштувань сервера, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей |
|
||||
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локального/self-hosted provider |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted provider, сумісного з OpenAI |
|
||||
| `plugin-sdk/cli-backend` | Типові налаштування backend для CLI + константи watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-key у runtime для provider Plugin |
|
||||
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-key, як-от `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | Стандартний конструктор результату auth OAuth |
|
||||
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для provider Plugin |
|
||||
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env var для auth provider |
|
||||
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політик replay, допоміжні засоби endpoint провайдера та нормалізації model-id, як-от `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-runtime` | Хук runtime каталогу провайдера та шви реєстру plugin-provider для контрактних тестів |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори replay-policy, допоміжні засоби endpoint provider і засоби нормалізації model-id, як-от `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-runtime` | Хуки runtime каталогу provider і межі реєстру plugin-provider для контрактних тестів |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдера, помилки HTTP провайдера та допоміжні засоби multipart form для транскрипції аудіо |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування провайдера web-fetch |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення ввімкнення плагіна |
|
||||
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних |
|
||||
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime провайдера web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint provider, помилки HTTP provider і допоміжні засоби multipart form для транскрипції аудіо |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу provider для web-fetch |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/credential для web-search для provider, яким не потрібне підключення enable Plugin |
|
||||
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/credential для web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-засоби встановлення/отримання credential |
|
||||
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime provider для web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика і допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоку та спільні допоміжні засоби обгорток Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, як-от guarded fetch, трансформації транспортних повідомлень і потоки подій writable transport |
|
||||
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчингу конфігурації онбордингу |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток stream і спільні допоміжні засоби обгорток для Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Власні допоміжні засоби transport provider, як-от guarded fetch, перетворення повідомлень transport і потоки подій transport із можливістю запису |
|
||||
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів config для онбордингу |
|
||||
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
|
||||
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації групи та розбору команд |
|
||||
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби для режиму активації групи та розбору команд |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи автентифікації та безпеки">
|
||||
<Accordion title="Підшляхи auth і безпеки">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, включно з форматуванням меню динамічних аргументів, допоміжні засоби авторизації відправника |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів, допоміжні засоби авторизації відправника |
|
||||
| `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби розв’язання схвалювача та автентифікації дій у тому самому чаті |
|
||||
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра схвалення нативного exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки нативного схвалення |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб розв’язання Gateway схвалення |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження адаптера нативного схвалення для гарячих точок входу каналу |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника схвалення; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі схвалення + прив’язки облікового запису |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для схвалення exec/plugin |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload схвалення exec/plugin, нативні допоміжні засоби маршрутизації/runtime схвалення та допоміжні засоби структурованого показу схвалення, як-от `formatApprovalDisplayPath` |
|
||||
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання dedupe вхідних відповідей |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel |
|
||||
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної session-target |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення схвалювача та auth дій у тому самому чаті |
|
||||
| `plugin-sdk/approval-client-runtime` | Власні допоміжні засоби профілю/фільтра схвалення exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Власні адаптери можливостей/доставки схвалення |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway схвалення |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження власного адаптера схвалення для гарячих точок входу каналу |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника схвалення; віддавайте перевагу вужчим межам adapter/gateway, коли їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Власні допоміжні засоби цілі схвалення + прив’язки облікового запису |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді на схвалення exec/Plugin |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload схвалення exec/Plugin, власні допоміжні засоби маршрутизації/runtime схвалення та допоміжні засоби структурованого відображення схвалення, як-от `formatApprovalDisplayPath` |
|
||||
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання dedupe для вхідних відповідей |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого тестового barrel |
|
||||
| `plugin-sdk/command-auth-native` | Власні допоміжні засоби auth команд, форматування меню динамічних аргументів і допоміжні засоби native session-target |
|
||||
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
|
||||
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналу |
|
||||
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та поверхні команди |
|
||||
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та поверхні команд |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання секретного контракту для секретних поверхонь каналу/плагіна |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/Plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
|
||||
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, шлюзу DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів у сталий час і збирання секретів |
|
||||
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби trust, DM gating, external-content, редагування чутливого тексту, порівняння секретів у сталий час і збирання секретів |
|
||||
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої поверхні runtime інфраструктури |
|
||||
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF, помилки SSRF і політики SSRF |
|
||||
| `plugin-sdk/secret-input` | Допоміжні засоби розбору секретного вводу |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої поверхні infra runtime |
|
||||
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF, помилка SSRF і допоміжні засоби політики SSRF |
|
||||
| `plugin-sdk/secret-input` | Допоміжні засоби розбору вводу секретів |
|
||||
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook і приведення raw websocket/body |
|
||||
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/тайм-ауту |
|
||||
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби для розміру body/timeout запиту |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи runtime і сховища">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення плагінів |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/значень за замовчуванням, розбору URL CDP і допоміжних засобів автентифікації browser-control |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні засоби для runtime/журналювання/резервного копіювання/встановлення Plugin |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби для env runtime, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових налаштувань, розбору URL CDP і допоміжних засобів auth для керування браузером |
|
||||
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку runtime-context каналу |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive плагіна |
|
||||
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра webhook/internal hook |
|
||||
| `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язки runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive для Plugin |
|
||||
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра Webhook/внутрішніх hook |
|
||||
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy import/binding для runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів |
|
||||
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версій, виклику аргументів і лінивих груп команд |
|
||||
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, CLI RPC Gateway, помилки протоколу Gateway та допоміжні засоби patch для стану каналу |
|
||||
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації плагіна, як-от `OpenClawConfig` і типи конфігурації каналу/провайдера |
|
||||
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації плагіна runtime, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
|
||||
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної мутації конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot` і test snapshot setter-и |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня контракту bundled Telegram недоступна |
|
||||
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого barrel `text-runtime` |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/plugin, конструктори можливостей схвалення, допоміжні засоби auth/profile, нативні допоміжні засоби маршрутизації/runtime і форматування шляху структурованого відображення схвалення |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime вхідних повідомлень/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді та підписів conversation |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні засоби історії відповідей для короткого вікна та маркери, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику аргументів і lazy груп команд |
|
||||
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway, CLI RPC Gateway, помилок протоколу Gateway і патчів channel-status |
|
||||
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації Plugin, як-от `OpenClawConfig` і типи конфігурації каналу/provider |
|
||||
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку plugin-config у runtime, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
|
||||
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної мутації config, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка config поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot` і тестові сетери знімків |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня bundled-контракту Telegram недоступна |
|
||||
| `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого barrel `text-runtime` |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/Plugin, конструктори можливостей схвалення, допоміжні засоби auth/профілів, власні допоміжні засоби маршрутизації/runtime і форматування шляху структурованого відображення схвалення |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для inbound/reply, chunking, dispatch, Heartbeat, планувальник reply |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize для reply і допоміжні засоби міток розмов |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні засоби short-window history reply і маркери, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій, ключа сесії, updated-at і мутації сховища |
|
||||
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/завантаження/збереження сховища Cron |
|
||||
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів state/OAuth |
|
||||
| `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/прив’язки облікового запису, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку стану каналу/облікового запису, значень runtime-state за замовчуванням і метаданих проблем |
|
||||
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби розв’язання цілі |
|
||||
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking для тексту/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби для шляху сховища сесій, session-key, updated-at і мутації сховища |
|
||||
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби для шляху/завантаження/збереження сховища Cron |
|
||||
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів для каталогів стану/OAuth |
|
||||
| `plugin-sdk/routing` | Допоміжні засоби для маршрутів/session-key/прив’язки облікового запису, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку стану каналу/облікового запису, типові значення стану runtime і допоміжні засоби метаданих проблем |
|
||||
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілі |
|
||||
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
|
||||
| `plugin-sdk/request-url` | Витягування рядкових URL із вводів типу fetch/request |
|
||||
| `plugin-sdk/run-command` | Запускач команд із тайм-аутом і нормалізованими результатами stdout/stderr |
|
||||
| `plugin-sdk/param-readers` | Поширені читачі параметрів tool/CLI |
|
||||
| `plugin-sdk/request-url` | Витягування рядкових URL із вхідних даних, подібних до fetch/request |
|
||||
| `plugin-sdk/run-command` | Запускач команд із таймером і нормалізованими результатами stdout/stderr |
|
||||
| `plugin-sdk/param-readers` | Загальні зчитувачі параметрів tool/CLI |
|
||||
| `plugin-sdk/tool-payload` | Витягування нормалізованих payload з об’єктів результатів tool |
|
||||
| `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з аргументів tool |
|
||||
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасового завантаження |
|
||||
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів для тимчасових завантажень |
|
||||
| `plugin-sdk/logging-core` | Допоміжні засоби logger підсистеми та редагування |
|
||||
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown і перетворення |
|
||||
| `plugin-sdk/model-session-runtime` | Допоміжні засоби override моделі/сесії, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
|
||||
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації talk provider |
|
||||
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state |
|
||||
| `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file-lock |
|
||||
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму й перетворення таблиць Markdown |
|
||||
| `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення model/session, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
|
||||
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби визначення конфігурації provider для Talk |
|
||||
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
|
||||
| `plugin-sdk/file-lock` | Допоміжні засоби реентерабельного file-lock |
|
||||
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу dedupe на диску |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесії ACP і dispatch відповідей |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session і reply-dispatch для ACP |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
|
||||
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
|
||||
| `plugin-sdk/boolean-param` | Читач нечітких булевих параметрів |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання збігів небезпечних імен |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токена pairing |
|
||||
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy |
|
||||
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді провайдера/команди `/models` |
|
||||
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд skill |
|
||||
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/побудови/серіалізації нативних команд |
|
||||
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для активних запусків, допоміжні засоби мосту інструментів OpenClaw, допоміжні засоби політики tool для плану runtime, класифікація результатів terminal, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/boolean-param` | Зчитувач слабко типізованих boolean-параметрів |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних назв |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токенів pairing |
|
||||
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів для passive-channel, статусу й ambient proxy |
|
||||
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби для відповіді command/provider `/models` |
|
||||
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби списку команд skill |
|
||||
| `plugin-sdk/native-command-registry` | Власні допоміжні засоби реєстру/побудови/серіалізації команд |
|
||||
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту tool OpenClaw, допоміжні засоби політики tool для runtime-plan, класифікація результатів terminal, допоміжні засоби форматування/деталей прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
|
||||
| `plugin-sdk/async-lock-runtime` | Допоміжний засіб process-local async lock для малих файлів стану runtime |
|
||||
| `plugin-sdk/async-lock-runtime` | Допоміжний засіб process-local async lock для невеликих файлів стану runtime |
|
||||
| `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу |
|
||||
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності async-задач |
|
||||
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу dedupe у пам’яті |
|
||||
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб дренування черги очікуваної вихідної доставки |
|
||||
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності асинхронних завдань |
|
||||
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу dedupe в пам’яті |
|
||||
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб очищення черги очікуваної вихідної доставки |
|
||||
| `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів до локальних файлів і джерел медіа |
|
||||
| `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій і видимості Heartbeat |
|
||||
| `plugin-sdk/number-runtime` | Допоміжний засіб числового приведення |
|
||||
| `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечних токенів/UUID |
|
||||
| `plugin-sdk/system-event-runtime` | Допоміжні засоби черги системних подій |
|
||||
| `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності транспорту |
|
||||
| `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте наведені вище цільові підшляхи runtime |
|
||||
| `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності transport |
|
||||
| `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте наведені вище сфокусовані підшляхи runtime |
|
||||
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
|
||||
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців, подій і trace-context |
|
||||
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch, proxy і pinned lookup |
|
||||
| `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch |
|
||||
| `plugin-sdk/response-limit-runtime` | Читач обмеженого тіла відповіді без широкої поверхні media runtime |
|
||||
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки conversation без маршрутизації налаштованих binding або сховищ pairing |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій без широких імпортів запису/обслуговування конфігурації |
|
||||
| `plugin-sdk/context-visibility-runtime` | Допоміжні засоби розв’язання видимості контексту та фільтрації додаткового контексту без широких імпортів config/security |
|
||||
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging |
|
||||
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
|
||||
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконання retry |
|
||||
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/робочого простору агента |
|
||||
| `plugin-sdk/directory-runtime` | Запит/dedup директорій на основі конфігурації |
|
||||
| `plugin-sdk/runtime-fetch` | Fetch runtime з урахуванням dispatcher без імпортів proxy/guarded-fetch |
|
||||
| `plugin-sdk/response-limit-runtime` | Зчитувач body відповіді з обмеженням без широкої поверхні media runtime |
|
||||
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації налаштованих прив’язок або сховищ pairing |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій без широких імпортів запису/обслуговування config |
|
||||
| `plugin-sdk/context-visibility-runtime` | Допоміжні засоби визначення видимості контексту й фільтрації додаткового контексту без широких імпортів config/security |
|
||||
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації примітивних record/рядків без імпортів markdown/logging |
|
||||
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і хоста SCP |
|
||||
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і запуску retry |
|
||||
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогів/ідентичності/робочого простору агента |
|
||||
| `plugin-sdk/directory-runtime` | Пошук/усунення дублікатів каталогів на основі config |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи можливостей і тестування">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори media payload |
|
||||
| `plugin-sdk/media-store` | Вузькі допоміжні засоби сховища медіа, як-от `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори payload медіа |
|
||||
| `plugin-sdk/media-store` | Вузькі допоміжні засоби медіасховища, як-от `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
|
||||
| `plugin-sdk/media-understanding` | Типи провайдера розуміння медіа, а також провайдер-орієнтовані допоміжні експорти для зображень/аудіо |
|
||||
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, як-от видалення видимого асистенту тексту, допоміжні засоби рендерингу/chunking/table для markdown, засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
|
||||
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи провайдера мовлення, а також провайдер-орієнтовані експорти директив, реєстру, валідації та допоміжних засобів мовлення |
|
||||
| `plugin-sdk/speech-core` | Спільні типи провайдера мовлення, експорти реєстру, директив, нормалізації та допоміжних засобів мовлення |
|
||||
| `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket |
|
||||
| `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та допоміжні засоби реєстру |
|
||||
| `plugin-sdk/image-generation` | Типи провайдера генерації зображень |
|
||||
| `plugin-sdk/media-understanding` | Типи provider для розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, орієнтованих на provider |
|
||||
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби для тексту/markdown/logging, як-от видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
|
||||
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking для вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи provider для мовлення, а також експорти допоміжних засобів директив, реєстру, валідації та мовлення, орієнтованих на provider |
|
||||
| `plugin-sdk/speech-core` | Спільні типи provider для мовлення, а також експорти допоміжних засобів реєстру, директив, нормалізації та мовлення |
|
||||
| `plugin-sdk/realtime-transcription` | Типи provider для транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket |
|
||||
| `plugin-sdk/realtime-voice` | Типи provider для голосу в реальному часі та допоміжні засоби реєстру |
|
||||
| `plugin-sdk/image-generation` | Типи provider для генерації зображень |
|
||||
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і реєстру |
|
||||
| `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики |
|
||||
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
|
||||
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/music-generation` | Типи provider/request/result для генерації музики |
|
||||
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук provider і розбір model-ref |
|
||||
| `plugin-sdk/video-generation` | Типи provider/request/result для генерації відео |
|
||||
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук provider і розбір model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення маршрутів |
|
||||
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
|
||||
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
|
||||
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK |
|
||||
| `plugin-sdk/testing` | Широкий сумісний barrel для застарілих тестів плагінів. Нові тести розширень мають імпортувати цільові підшляхи SDK, наприклад `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для модульних тестів прямої реєстрації плагіна без імпорту мостів допоміжних засобів тестування репозиторію |
|
||||
| `plugin-sdk/channel-test-helpers` | Орієнтовані на канал допоміжні засоби тестування для загальних контрактів actions/setup/status, перевірок директорій, життєвого циклу запуску облікового запису, threading конфігурації надсилання, моків runtime, проблем статусу, вихідної доставки та реєстрації hook |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір тестів випадків помилок під час розв’язання цілей для тестів каналів |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів пакета плагіна, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime, auth, discovery, onboard, catalog, wizard, web-search/fetch і stream провайдера |
|
||||
| `plugin-sdk/test-fixtures` | Загальні фікстури для захоплення runtime CLI, контексту sandbox, записувача skill, agent-message, system-event, terminal-text, chunking, auth-token і типізованих кейсів |
|
||||
| `plugin-sdk/testing` | Широкий сумісний barrel для застарілих тестів Plugin. Нові тести extension повинні натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для модульних тестів безпосередньої реєстрації Plugin без імпорту мостів допоміжних засобів тестування репозиторію |
|
||||
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби тестування, орієнтовані на канали, для загальних контрактів actions/setup/status, перевірок каталогу, життєвого циклу запуску облікового запису, threading send-config, моків runtime, проблем статусу, вихідної доставки та реєстрації hook |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір перевірок випадків помилок визначення цілі для тестів каналу |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів для пакета Plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів для runtime provider, auth, discovery, onboard, catalog, wizard, web-search/fetch і stream |
|
||||
| `plugin-sdk/test-fixtures` | Загальні фікстури для захоплення runtime CLI, контексту sandbox, записувача skill, agent-message, system-event, terminal-text, chunking, auth-token і typed-case |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи пам’яті">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helpers |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексу/пошуку пам’яті |
|
||||
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і загальні допоміжні засоби batch/remote |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, local provider і загальні допоміжні засоби batch/remote |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти engine QMD хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Експорти engine сховища хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
|
||||
@ -301,24 +302,24 @@ x-i18n:
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-core` | Нейтральний до постачальника псевдонім для допоміжних засобів core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-events` | Нейтральний до постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-files` | Нейтральний до постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для плагінів, суміжних із пам’яттю |
|
||||
| `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до search-manager |
|
||||
| `plugin-sdk/memory-host-status` | Нейтральний до постачальника псевдонім для допоміжних засобів статусу хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для допоміжних засобів core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для допоміжних засобів журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для Plugin, суміжних із пам’яттю |
|
||||
| `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до менеджера пошуку |
|
||||
| `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для допоміжних засобів статусу хоста пам’яті |
|
||||
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Зарезервовані підшляхи bundled-helper">
|
||||
| Сімейство | Поточні підшляхи | Призначення |
|
||||
| --- | --- | --- |
|
||||
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `browser-support` залишається сумісним barrel. |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня bundled Matrix helper/runtime |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня bundled LINE helper/runtime |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня bundled IRC helper |
|
||||
| Channel-specific helpers | `plugin-sdk/googlechat`, `plugin-sdk/googlechat-runtime-shared`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu`, `plugin-sdk/feishu-conversation`, `plugin-sdk/feishu-setup`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/telegram-command-ui`, `plugin-sdk/tlon`, `plugin-sdk/twitch`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` | Застарілі bundled channel compatibility/helper seams. Нові плагіни мають імпортувати загальні підшляхи SDK або локальні barrel-и плагіна. |
|
||||
| Auth/plugin-specific helpers | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diagnostics-prometheus`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/memory-core`, `plugin-sdk/memory-lancedb`, `plugin-sdk/opencode`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Bundled feature/plugin helper seams; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
|
||||
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser Plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `browser-support` залишається сумісним barrel. |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime bundled Matrix |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime bundled LINE |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled IRC |
|
||||
| Допоміжні засоби для конкретних каналів | `plugin-sdk/googlechat`, `plugin-sdk/googlechat-runtime-shared`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu`, `plugin-sdk/feishu-conversation`, `plugin-sdk/feishu-setup`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/telegram-command-ui`, `plugin-sdk/tlon`, `plugin-sdk/twitch`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` | Застарілі межі сумісності/допоміжних засобів bundled-каналів. Нові Plugin повинні імпортувати загальні підшляхи SDK або локальні barrel Plugin. |
|
||||
| Допоміжні засоби для auth/специфічних Plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diagnostics-prometheus`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/memory-core`, `plugin-sdk/memory-lancedb`, `plugin-sdk/opencode`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Межі допоміжних засобів bundled-функцій/Plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -326,4 +327,4 @@ x-i18n:
|
||||
|
||||
- [Огляд Plugin SDK](/uk/plugins/sdk-overview)
|
||||
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
|
||||
- [Створення плагінів](/uk/plugins/building-plugins)
|
||||
- [Створення Plugin](/uk/plugins/building-plugins)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user