From 6aaf6a29aa8460944356567f84f9cfd5892cb232 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Tue, 28 Apr 2026 01:37:38 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/plugins/architecture.md | 366 +++++++-------- docs/uk/plugins/sdk-migration.md | 762 ++++++++++++++++--------------- docs/uk/plugins/sdk-overview.md | 398 ++++++++-------- docs/uk/plugins/sdk-subpaths.md | 395 ++++++++-------- 4 files changed, 963 insertions(+), 958 deletions(-) diff --git a/docs/uk/plugins/architecture.md b/docs/uk/plugins/architecture.md index be94ebb74..7d227c32e 100644 --- a/docs/uk/plugins/architecture.md +++ b/docs/uk/plugins/architecture.md @@ -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. Для практичних посібників почніть з однієї з наведених нижче спеціалізованих сторінок. - Посібник для кінцевих користувачів із додавання, увімкнення та усунення несправностей плагінів. + Посібник для кінцевих користувачів щодо додавання, увімкнення та усунення несправностей плагінів. Навчальний матеріал зі створення першого плагіна з найменшим робочим маніфестом. - Створення плагіна каналу обміну повідомленнями. + Створіть плагін каналу обміну повідомленнями. - Створення плагіна провайдера моделей. + Створіть плагін провайдера моделей. Довідник з карти імпортів і 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` | -Плагін, який не реєструє жодної можливості, але надає хуки, інструменти, служби виявлення або фонові служби, є **застарілим плагіном лише з хуками**. Цей шаблон усе ще повністю підтримується. +Плагін, який реєструє нуль можливостей, але надає хуки, інструменти, сервіси виявлення або фонові сервіси, є **застарілим плагіном лише з хуками**. Цей шаблон усе ще повністю підтримується. ### Позиція щодо зовнішньої сумісності -Модель можливостей реалізована в ядрі та вже використовується вбудованими/нативними плагінами, але сумісність із зовнішніми плагінами все ще потребує суворішого критерію, ніж «це експортується, отже це зафіксовано». +Модель можливостей упроваджена в core і вже використовується сьогодні в комплектних/нативних плагінах, але сумісність зовнішніх плагінів усе ще потребує суворішого критерію, ніж «це експортується, отже, це зафіксовано». -| Ситуація з плагіном | Рекомендація | -| ----------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| Наявні зовнішні плагіни | Зберігайте працездатність інтеграцій на основі хуків; це базовий рівень сумісності. | -| Нові вбудовані/нативні плагіни | Віддавайте перевагу явній реєстрації можливостей замість vendor-специфічних звернень або нових дизайнів лише з хуками. | -| Зовнішні плагіни, що переходять на реєстрацію можливостей | Дозволено, але вважайте допоміжні поверхні для конкретних можливостей такими, що еволюціонують, якщо в документації вони не позначені як стабільні. | +| Ситуація з плагіном | Рекомендація | +| --------------------------------------------- | ------------------------------------------------------------------------------------------------ | +| Наявні зовнішні плагіни | Зберігайте працездатність інтеграцій на основі хуків; це базовий рівень сумісності. | +| Нові комплектні/нативні плагіни | Віддавайте перевагу явній реєстрації можливостей замість специфічних для постачальника звернень або нових дизайнів лише з хуками. | +| Зовнішні плагіни, що переходять на реєстрацію можливостей | Дозволено, але вважайте допоміжні поверхні, специфічні для можливостей, такими, що розвиваються, якщо документація не позначає їх як стабільні. | -Реєстрація можливостей — це цільовий напрямок. Застарілі хуки залишаються найбезпечнішим шляхом без порушення сумісності для зовнішніх плагінів під час переходу. Експортовані допоміжні підшляхи не є рівнозначними — надавайте перевагу вузьким задокументованим контрактам, а не випадковим допоміжним експортам. +Реєстрація можливостей — це бажаний напрям. Застарілі хуки залишаються найбезпечнішим шляхом без порушення сумісності для зовнішніх плагінів під час переходу. Експортовані допоміжні підшляхи не однакові — віддавайте перевагу вузьким документованим контрактам, а не випадковим допоміжним експортам. ### Форми плагінів @@ -78,16 +78,16 @@ OpenClaw класифікує кожен завантажений плагін - Реєструє рівно один тип можливостей (наприклад, плагін лише провайдера, як-от `mistral`). + Реєструє рівно один тип можливості (наприклад, плагін лише провайдера, як-от `mistral`). - Реєструє кілька типів можливостей (наприклад, `openai` відповідає за текстовий інференс, мовлення, розуміння медіа та генерацію зображень). + Реєструє кілька типів можливостей (наприклад, `openai` володіє текстовим висновком, мовленням, розумінням медіа та генерацією зображень). - Реєструє лише хуки (типізовані або користувацькі), без можливостей, інструментів, команд чи служб. + Реєструє лише хуки (типізовані або користувацькі), без можливостей, інструментів, команд чи сервісів. - Реєструє інструменти, команди, служби або маршрути, але не можливості. + Реєструє інструменти, команди, сервіси або маршрути, але не можливості. @@ -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 `, ви можете побачити одну з таких позначок: +Коли ви запускаєте `openclaw doctor` або `openclaw plugins inspect `, ви можете побачити один із цих ярликів: -| Сигнал | Значення | -| -------------------------- | ------------------------------------------------------------- | +| Сигнал | Значення | +| -------------------------- | ------------------------------------------------------------ | | **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 класифікує кожен завантажений плагін - OpenClaw знаходить потенційні плагіни в налаштованих шляхах, коренях робочого простору, глобальних коренях плагінів і серед вбудованих плагінів. Під час виявлення спочатку зчитуються нативні маніфести `openclaw.plugin.json` разом із підтримуваними маніфестами бандлів. + OpenClaw знаходить кандидатів у плагіни зі сконфігурованих шляхів, коренів робочих просторів, глобальних коренів плагінів і комплектних плагінів. Виявлення спочатку читає нативні маніфести `openclaw.plugin.json` і маніфести підтримуваних пакетів. - Ядро вирішує, чи знайдений плагін увімкнено, вимкнено, заблоковано або вибрано для ексклюзивного слота, такого як пам’ять. + Core визначає, чи виявлений плагін увімкнено, вимкнено, заблоковано або вибрано для ексклюзивного слота, такого як пам’ять. - Нативні плагіни OpenClaw завантажуються в межах процесу через jiti та реєструють можливості в центральному реєстрі. Сумісні бандли нормалізуються до записів реєстру без імпорту коду середовища виконання. + Нативні плагіни OpenClaw завантажуються в межах процесу через jiti і реєструють можливості в центральному реєстрі. Сумісні пакети нормалізуються в записи реєстру без імпорту коду середовища виконання. - Решта OpenClaw читає реєстр, щоб надавати інструменти, канали, налаштування провайдерів, хуки, HTTP-маршрути, CLI-команди та служби. + Решта OpenClaw читає реєстр, щоб надавати інструменти, канали, налаштування провайдерів, хуки, HTTP-маршрути, команди CLI та сервіси. -Зокрема для 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 плану повідомляє ярлики причин, щоб діагностика могла відрізняти явні підказки від резервного механізму володіння -Не сприймайте `activation` як хук життєвого циклу або заміну для `register(...)`. Це метадані, що використовуються для звуження завантаження. Віддавайте перевагу полям права власності, коли вони вже описують зв’язок; використовуйте `activation` лише для додаткових підказок планувальника. +Не розглядайте `activation` як хук життєвого циклу або заміну `register(...)`. Це метадані, що використовуються для звуження завантаження. Віддавайте перевагу полям володіння, коли вони вже описують зв’язок; використовуйте `activation` лише для додаткових підказок планувальника. ### Плагіни каналів і спільний інструмент повідомлень -Плагінам каналів не потрібно реєструвати окремий інструмент 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/`. Такі брендові фасади залишаються шарами сумісності для зовнішніх плагінів і старіших споживачів, але вбудовані плагіни мають використовувати локальні експорти плюс вузькі загальні підшляхи SDK, такі як `openclaw/plugin-sdk/channel-policy`, `openclaw/plugin-sdk/runtime-store` або `openclaw/plugin-sdk/webhook-ingress`. Новий код не повинен додавати фасади SDK, специфічні до ідентифікатора плагіна, якщо межа сумісності для наявної зовнішньої екосистеми не вимагає цього. +Комплектні плагіни дотримуються того самого правила. `runtime-api.ts` комплектного плагіна не повинен повторно експортувати свій власний брендований фасад `openclaw/plugin-sdk/`. Такі брендовані фасади залишаються шарами сумісності для зовнішніх плагінів і старіших споживачів, але комплектні плагіни мають використовувати локальні експорти плюс вузькі загальні підшляхи 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 замість того, щоб ситуативно повторно реалізовувати поведінку провайдерів - - `openai` володіє текстовим інференсом, мовленням, голосом у реальному часі, розумінням медіа та генерацією зображень. `google` володіє текстовим інференсом, а також розумінням медіа, генерацією зображень і вебпошуком. `qwen` володіє текстовим інференсом, а також розумінням медіа й генерацією відео. + + `openai` володіє текстовим висновком, мовленням, голосом у реальному часі, розумінням медіа та генерацією зображень. `google` володіє текстовим висновком, а також розумінням медіа, генерацією зображень і вебпошуком. `qwen` володіє текстовим висновком, а також розумінням медіа та генерацією відео. - - `elevenlabs` і `microsoft` володіють мовленням; `firecrawl` володіє web-fetch; `minimax` / `mistral` / `moonshot` / `zai` володіють бекендами розуміння медіа. + + `elevenlabs` і `microsoft` володіють мовленням; `firecrawl` володіє отриманням вебданих; `minimax` / `mistral` / `moonshot` / `zai` володіють бекендами розуміння медіа. - - `voice-call` володіє транспортом викликів, інструментами, CLI, маршрутами та мостом медіапотоку Twilio, але використовує спільні можливості мовлення, транскрипції в реальному часі та голосу в реальному часі замість прямого імпорту плагінів vendor. + + `voice-call` володіє транспортом дзвінків, інструментами, CLI, маршрутами та мостом медіапотоків Twilio, але споживає спільні можливості мовлення, транскрибування в реальному часі та голосу в реальному часі замість прямого імпорту плагінів постачальників. -Бажаний кінцевий стан такий: +Бажаний кінцевий стан: -- OpenAI живе в одному плагіні, навіть якщо охоплює текстові моделі, мовлення, зображення та майбутнє відео -- інший vendor може робити те саме для власної області -- канали не дбають про те, який плагін vendor володіє провайдером; вони використовують спільний контракт можливості, який надає ядро +- OpenAI живе в одному плагіні, навіть якщо він охоплює текстові моделі, мовлення, зображення та майбутнє відео +- інший постачальник може зробити те саме для своєї власної області поверхні +- каналам не важливо, який плагін постачальника володіє провайдером; вони споживають спільний контракт можливості, який надає core Ось ключова відмінність: -- **plugin** = межа права власності -- **capability** = контракт ядра, який можуть реалізовувати або використовувати кілька плагінів +- **plugin** = межа володіння +- **capability** = контракт core, який можуть реалізовувати або споживати кілька плагінів -Тому, якщо OpenClaw додає новий домен, такий як відео, перше запитання не таке: «який провайдер має жорстко закодувати обробку відео?» Перше запитання таке: «який контракт можливості відео в ядрі?» Щойно такий контракт існує, плагіни vendor можуть реєструватися для нього, а плагіни каналів/можливостей можуть його використовувати. +Тож якщо OpenClaw додає нову область, наприклад відео, перше запитання не таке: «який провайдер має жорстко кодувати обробку відео?» Перше запитання таке: «який контракт core для можливості відео?» Щойно такий контракт з’являється, плагіни постачальників можуть реєструватися для нього, а плагіни каналів/функцій можуть його споживати. -Якщо можливість ще не існує, правильний крок зазвичай такий: +Якщо можливість іще не існує, зазвичай правильний крок такий: - Визначте відсутню можливість у ядрі. + Визначте відсутню можливість у core. - - Експонуйте її через API/середовище виконання плагіна у типізований спосіб. + + Відкрийте її через API/середовище виконання плагіна у типізований спосіб. - Підключіть канали/можливості до цієї можливості. + Підключіть канали/функції до цієї можливості. - - Дозвольте плагінам vendor реєструвати реалізації. + + Дозвольте плагінам постачальників реєструвати реалізації. -Це зберігає право власності явним, водночас уникаючи поведінки ядра, яка залежить від одного vendor або одноразового шляху коду, специфічного для плагіна. +Це зберігає явне володіння та водночас уникає поведінки core, що залежить від одного постачальника або від одноразового специфічного для плагіна шляху коду. ### Шарування можливостей -Використовуйте цю ментальну модель, коли вирішуєте, де має належати код: +Використовуйте цю ментальну модель, коли вирішуєте, де має розміщуватися код: - - Спільна оркестрація, політика, резервна поведінка, правила злиття конфігурації, семантика доставки й типізовані контракти. + + Спільна оркестрація, політики, резервна поведінка, правила злиття конфігурації, семантика доставки та типізовані контракти. - - API, автентифікація, каталоги моделей, синтез мовлення, генерація зображень, майбутні відеобекенди, кінцеві точки використання, специфічні для vendor. + + API, автентифікація, каталоги моделей, синтез мовлення, генерація зображень, майбутні бекенди відео, кінцеві точки використання, специфічні для постачальника. - - Інтеграція Slack/Discord/voice-call/etc., яка використовує можливості ядра й представляє їх на поверхні. + + Інтеграція Slack/Discord/voice-call тощо, яка споживає можливості core і представляє їх на поверхні. -Наприклад, 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 уже розглядає розуміння зображень/аудіо/відео як одну спільну можливість. До неї застосовується та сама модель володіння: - - Ядро визначає контракт розуміння медіа. + + Core визначає контракт розуміння медіа. - - Плагіни vendor реєструють `describeImage`, `transcribeAudio` і `describeVideo`, де це застосовно. + + Плагіни постачальників реєструють `describeImage`, `transcribeAudio` і `describeVideo`, де це застосовно. - Плагіни каналів і можливостей використовують спільну поведінку ядра замість прямого підключення до коду vendor. + Канали та плагіни функцій споживають спільну поведінку core замість прямого підключення до коду постачальника. -Це дозволяє уникнути вбудовування припущень одного провайдера щодо відео в ядро. Плагін володіє поверхнею vendor; ядро володіє контрактом можливості та резервною поведінкою. +Це дозволяє уникнути вбудовування припущень про відео одного провайдера в core. Плагін володіє поверхнею постачальника; core володіє контрактом можливості та резервною поведінкою. -Генерація відео вже використовує ту саму послідовність: ядро володіє типізованим контрактом можливості та допоміжним засобом середовища виконання, а плагіни vendor реєструють реалізації `api.registerVideoGenerationProvider(...)` для неї. +Генерація відео вже використовує ту саму послідовність: core володіє типізованим контрактом можливості та допоміжним засобом середовища виконання, а плагіни постачальників реєструють для нього реалізації `api.registerVideoGenerationProvider(...)`. Потрібен конкретний контрольний список упровадження? Див. [Capability Cookbook](/uk/plugins/architecture). -## Контракти та контроль +## Контракти та забезпечення дотримання Поверхня API плагінів навмисно типізована й централізована в `OpenClawPluginApi`. Цей контракт визначає підтримувані точки реєстрації та допоміжні засоби середовища виконання, на які може покладатися плагін. Чому це важливо: - автори плагінів отримують один стабільний внутрішній стандарт -- ядро може відхиляти дубльоване право власності, наприклад коли два плагіни реєструють один і той самий ідентифікатор провайдера -- запуск може показувати практичну діагностику для некоректної реєстрації -- тести контрактів можуть контролювати право власності вбудованих плагінів і запобігати непомітному дрейфу +- core може відхиляти дубльоване володіння, наприклад коли два плагіни реєструють однаковий ідентифікатор провайдера +- запуск може показувати практичні діагностичні повідомлення для некоректної реєстрації +- контрактні тести можуть забезпечувати володіння комплектних плагінів і запобігати тихому дрейфу -Існує два шари контролю: +Існує два шари забезпечення дотримання: - + Реєстр плагінів перевіряє реєстрації під час завантаження плагінів. Приклади: дубльовані ідентифікатори провайдерів, дубльовані ідентифікатори провайдерів мовлення та некоректні реєстрації створюють діагностику плагінів замість невизначеної поведінки. - - Вбудовані плагіни фіксуються в реєстрах контрактів під час тестових запусків, щоб OpenClaw міг явно перевіряти право власності. Сьогодні це використовується для провайдерів моделей, провайдерів мовлення, провайдерів вебпошуку та права власності на реєстрацію вбудованих компонентів. + + Під час тестових запусків комплектні плагіни фіксуються в контрактних реєстрах, щоб OpenClaw міг явно перевіряти володіння. Сьогодні це використовується для провайдерів моделей, провайдерів мовлення, провайдерів вебпошуку та володіння комплектною реєстрацією. -Практичний ефект полягає в тому, що OpenClaw заздалегідь знає, який плагін володіє якою поверхнею. Це дозволяє ядру й каналам безшовно поєднуватися, оскільки право власності оголошене, типізоване й придатне до перевірки тестами, а не неявне. +Практичний ефект полягає в тому, що OpenClaw заздалегідь знає, який плагін якою поверхнею володіє. Це дає змогу core і каналам безшовно поєднуватися, оскільки володіння оголошене, типізоване й придатне до тестування, а не неявне. ### Що має входити до контракту - + - типізовані - - невеликі + - малі - специфічні для можливості - - належать ядру - - придатні до повторного використання кількома плагінами - - можуть використовуватися каналами/можливостями без знання vendor + - належать core + - придатні для повторного використання кількома плагінами + - можуть споживатися каналами/функціями без знання постачальника - - політика, специфічна для vendor, прихована в ядрі - - одноразові обхідні шляхи плагіна, що оминають реєстр - - код каналу, який напряму звертається до реалізації vendor - - спеціально створені об’єкти середовища виконання, які не є частиною `OpenClawPluginApi` або `api.runtime` + - специфічна для постачальника політика, прихована в core + - одноразові обхідні шляхи плагіна, які оминають реєстр + - код каналу, що звертається безпосередньо до реалізації постачальника + - ситуативні об’єкти середовища виконання, які не є частиною `OpenClawPluginApi` або `api.runtime` @@ -444,50 +444,50 @@ OpenClaw уже розглядає розуміння зображень/ауд ## Модель виконання -Нативні плагіни OpenClaw працюють **у межах процесу** разом із Gateway. Вони не ізольовані в sandbox. Завантажений нативний плагін має ту саму межу довіри на рівні процесу, що й код ядра. +Нативні плагіни OpenClaw працюють **у межах процесу** разом із Gateway. Вони не ізольовані. Завантажений нативний плагін має ту саму межу довіри на рівні процесу, що й код core. Наслідки: -- нативний плагін може реєструвати інструменти, мережеві обробники, хуки та служби -- помилка в нативному плагіні може призвести до збою або дестабілізувати gateway +- нативний плагін може реєструвати інструменти, мережеві обробники, хуки та сервіси +- помилка в нативному плагіні може спричинити збій або дестабілізувати gateway - зловмисний нативний плагін рівнозначний довільному виконанню коду всередині процесу OpenClaw -Сумісні bundle безпечніші за замовчуванням, оскільки OpenClaw наразі розглядає їх як пакети метаданих/вмісту. У поточних випусках це переважно означає вбудовані Skills. +Сумісні пакети за замовчуванням безпечніші, оскільки OpenClaw наразі розглядає їх як пакети метаданих/вмісту. У поточних релізах це переважно означає комплектні Skills. -Використовуйте allowlist і явні шляхи встановлення/завантаження для невбудованих плагінів. Розглядайте плагіни робочого простору як код для етапу розробки, а не як типові значення для production. +Для некомплектних плагінів використовуйте allowlist і явні шляхи встановлення/завантаження. Розглядайте плагіни робочого простору як код для розробки, а не як виробничі значення за замовчуванням. -Для назв пакетів вбудованого робочого простору зберігайте ідентифікатор плагіна прив’язаним до імені npm: `@openclaw/` за замовчуванням або через затверджений типізований суфікс, такий як `-provider`, `-plugin`, `-speech`, `-sandbox` або `-media-understanding`, коли пакет навмисно надає вужчу роль плагіна. +Для назв пакетів комплектного робочого простору зберігайте прив’язку ідентифікатора плагіна до імені npm: `@openclaw/` за замовчуванням або затверджений типізований суфікс, такий як `-provider`, `-plugin`, `-speech`, `-sandbox` чи `-media-understanding`, коли пакет навмисно відкриває вужчу роль плагіна. **Примітка щодо довіри:** - `plugins.allow` довіряє **ідентифікаторам плагінів**, а не походженню джерела. -- Плагін робочого простору з тим самим ідентифікатором, що й вбудований плагін, навмисно затіняє вбудовану копію, коли цей плагін робочого простору ввімкнено/додано до allowlist. -- Це нормально й корисно для локальної розробки, тестування патчів і hotfix. -- Довіра до вбудованого плагіна визначається зі знімка джерела — маніфесту та коду на диску під час завантаження — а не з метаданих встановлення. Пошкоджений або підмінений запис встановлення не може непомітно розширити поверхню довіри вбудованого плагіна понад те, що фактично заявляє джерело. +- Плагін робочого простору з тим самим ідентифікатором, що й комплектний плагін, навмисно затіняє комплектну копію, коли цей плагін робочого простору ввімкнено/додано до allowlist. +- Це нормально й корисно для локальної розробки, тестування патчів і термінових виправлень. +- Довіра до комплектного плагіна визначається зі знімка джерела — маніфесту та коду на диску під час завантаження — а не з метаданих установлення. Пошкоджений або підмінений запис установлення не може непомітно розширити поверхню довіри комплектного плагіна понад те, що заявляє фактичне джерело. ## Межа експорту -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) diff --git a/docs/uk/plugins/sdk-migration.md b/docs/uk/plugins/sdk-migration.md index a8ee7f23a..a972de4e5 100644 --- a/docs/uk/plugins/sdk-migration.md +++ b/docs/uk/plugins/sdk-migration.md @@ -1,7 +1,7 @@ --- read_when: - - Ви бачите попередження OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED - - Ви бачите попередження OPENCLAW_EXTENSION_API_DEPRECATED + - Ви бачите попередження `OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED` + - Ви бачите попередження `OPENCLAW_EXTENSION_API_DEPRECATED` - Ви використовували `api.registerEmbeddedExtensionFactory` до OpenClaw 2026.4.25 - Ви оновлюєте Plugin до сучасної архітектури плагінів - Ви підтримуєте зовнішній Plugin OpenClaw @@ -9,82 +9,86 @@ sidebarTitle: Migrate to SDK summary: Перейдіть з застарілого шару зворотної сумісності на сучасний Plugin SDK title: Міграція Plugin SDK x-i18n: - generated_at: "2026-04-28T01:06:41Z" + generated_at: "2026-04-28T01:35:01Z" model: gpt-5.4 provider: openai - source_hash: 0620977a2ded8518b00fa7b14c8860ff351530926af76c02d08c699028f0fbc3 + source_hash: 12ae567cd2a450bf58a9418af21432dcf8df014b82b4d8c85b5793582e197c38 source_path: plugins/sdk-migration.md workflow: 15 --- -OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури плагінів із цільовими, задокументованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію. +OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури плагінів із цільовими, документованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію. ## Що змінюється -Стара система плагінів надавала дві дуже широкі поверхні, які дозволяли плагінам імпортувати все потрібне з однієї точки входу: +Стара система плагінів надавала дві надто широкі поверхні, які дозволяли плагінам імпортувати все потрібне з однієї точки входу: -- **`openclaw/plugin-sdk/compat`** — один імпорт, який повторно експортував десятки допоміжних засобів. Його було запроваджено, щоб старі плагіни на основі хуків продовжували працювати, поки створювалася нова архітектура плагінів. -- **`openclaw/plugin-sdk/infra-runtime`** — широкий barrel runtime-допоміжних засобів, який змішував системні події, стан Heartbeat, черги доставки, допоміжні засоби fetch/proxy, файлові допоміжні засоби, типи погодження та не пов’язані між собою утиліти. -- **`openclaw/plugin-sdk/config-runtime`** — широкий barrel сумісності конфігурації, який під час вікна міграції все ще містить застарілі прямі допоміжні засоби load/write. -- **`openclaw/extension-api`** — міст, який надавав плагінам прямий доступ до допоміжних засобів на боці хоста, таких як вбудований засіб запуску агентів. -- **`api.registerEmbeddedExtensionFactory(...)`** — вилучений хук bundled extension лише для Pi, який міг спостерігати за подіями embedded runner, такими як `tool_result`. +- **`openclaw/plugin-sdk/compat`** — один імпорт, який повторно експортував десятки допоміжних функцій. Його було запроваджено, щоб старіші hook-based плагіни продовжували працювати під час розробки нової архітектури плагінів. +- **`openclaw/plugin-sdk/infra-runtime`** — широкий barrel-файл допоміжних функцій рантайму, який змішував системні події, стан Heartbeat, черги доставки, допоміжні функції fetch/proxy, допоміжні файлові функції, типи approval та не пов’язані між собою утиліти. +- **`openclaw/plugin-sdk/config-runtime`** — широкий barrel-файл сумісності для конфігурації, який під час перехідного періоду все ще містить застарілі прямі допоміжні функції load/write. +- **`openclaw/extension-api`** — міст, який надавав плагінам прямий доступ до хостових допоміжних функцій, таких як вбудований runner агента. +- **`api.registerEmbeddedExtensionFactory(...)`** — вилучений hook реєстрації вбудованих розширень лише для Pi, який міг спостерігати події embedded-runner, такі як `tool_result`. -Широкі поверхні імпорту тепер **застарілі**. Вони все ще працюють під час виконання, але нові плагіни не повинні їх використовувати, а наявні плагіни слід мігрувати до наступного мажорного релізу, у якому їх буде вилучено. API реєстрації фабрики embedded extension лише для Pi було вилучено; замість нього використовуйте middleware результатів інструментів. +Широкі поверхні імпорту тепер **застарілі**. Вони все ще працюють у рантаймі, але нові плагіни не повинні їх використовувати, а наявні плагіни мають перейти на новий підхід до того, як у наступному мажорному релізі їх буде вилучено. API реєстрації фабрики вбудованих розширень лише для Pi було вилучено; замість нього використовуйте middleware для результатів інструментів. -OpenClaw не вилучає й не переосмислює задокументовану поведінку плагінів у тій самій зміні, де з’являється заміна. Зміни контрактів, які порушують сумісність, спершу мають проходити через адаптер сумісності, діагностику, документацію та вікно застарівання. Це стосується імпортів SDK, полів маніфесту, API setup, хуків і поведінки реєстрації під час виконання. +OpenClaw не вилучає і не переосмислює документовану поведінку плагінів у тій самій зміні, де запроваджується заміна. Зміни контрактів, що ламають сумісність, спочатку мають проходити через адаптер сумісності, діагностику, документацію та період застарівання. Це стосується імпортів SDK, полів маніфесту, API налаштування, hook-ів і поведінки реєстрації в рантаймі. Шар зворотної сумісності буде вилучено в одному з майбутніх мажорних релізів. Плагіни, які все ще імпортують із цих поверхонь, перестануть працювати, коли це станеться. - Реєстрації фабрики embedded extension лише для Pi уже більше не завантажуються. + Реєстрації фабрик вбудованих розширень лише для Pi уже більше не завантажуються. ## Чому це змінилося Старий підхід спричиняв проблеми: -- **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки не пов’язаних модулів -- **Циклічні залежності** — широкі повторні експорти спрощували створення циклів імпорту -- **Нечітка поверхня API** — не було способу зрозуміти, які експорти є стабільними, а які внутрішніми +- **Повільний запуск** — імпорт однієї допоміжної функції завантажував десятки не пов’язаних модулів +- **Циклічні залежності** — широкі повторні експорти полегшували створення циклів імпорту +- **Неясна поверхня API** — не було способу зрозуміти, які експорти є стабільними, а які — внутрішніми -Сучасний Plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) — це невеликий самодостатній модуль із чітким призначенням і задокументованим контрактом. +Сучасний Plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) є невеликим, самодостатнім модулем із чітким призначенням і документованим контрактом. -Застарілі зручні шви provider для bundled channels також прибрано. -Шви допоміжних засобів, прив’язані до бренду каналу, були приватними скороченнями mono-repo, а не стабільними контрактами плагінів. Натомість використовуйте вузькі загальні підшляхи SDK. Усередині робочого простору bundled plugin залишайте допоміжні засоби, що належать provider, у власному `api.ts` або `runtime-api.ts` цього плагіна. +Застарілі зручні seams провайдерів для вбудованих каналів також прибрано. +Брендовані під канал helper-seams були приватними скороченнями монорепозиторію, а не стабільними контрактами плагінів. Використовуйте натомість вузькі універсальні підшляхи SDK. Усередині робочого простору вбудованого Plugin зберігайте helper-и, що належать провайдеру, у власному `api.ts` або `runtime-api.ts` цього плагіна. -Поточні приклади bundled provider: +Поточні приклади вбудованих провайдерів: -- Anthropic зберігає допоміжні засоби потоків, специфічні для Claude, у власному шві `api.ts` / `contract-api.ts` -- OpenAI зберігає builder-и provider, допоміжні засоби моделей за замовчуванням і builder-и realtime provider у власному `api.ts` -- OpenRouter зберігає builder provider і допоміжні засоби onboarding/config у власному `api.ts` +- Anthropic зберігає helpers потоків, специфічні для Claude, у власному seam `api.ts` / + `contract-api.ts` +- OpenAI зберігає builders провайдерів, helpers моделей за замовчуванням і + builders realtime-провайдерів у власному `api.ts` +- OpenRouter зберігає helper-и builder-а провайдера та onboarding/config у + власному `api.ts` ## Політика сумісності Для зовнішніх плагінів робота із сумісністю виконується в такому порядку: 1. додати новий контракт -2. залишити стару поведінку, підключену через адаптер сумісності -3. виводити діагностику або попередження, яке називає старий шлях і заміну -4. покрити обидва шляхи в тестах +2. зберегти стару поведінку через адаптер сумісності +3. вивести діагностику або попередження, яке вказує старий шлях і заміну +4. покрити обидва шляхи тестами 5. задокументувати застарівання та шлях міграції -6. вилучати лише після оголошеного вікна міграції, зазвичай у мажорному релізі +6. вилучати лише після оголошеного періоду міграції, зазвичай у мажорному релізі -Якщо поле маніфесту все ще приймається, автори плагінів можуть продовжувати його використовувати, доки документація й діагностика не скажуть інакше. Новий код має надавати перевагу задокументованій заміні, але наявні плагіни не повинні ламатися під час звичайних мінорних релізів. +Якщо поле маніфесту все ще приймається, автори плагінів можуть і далі його використовувати, доки документація й діагностика не скажуть інакше. Новий код має надавати перевагу документованій заміні, але наявні плагіни не повинні ламатися в межах звичайних мінорних релізів. ## Як виконати міграцію - - Bundled plugins повинні припинити прямі виклики + + Вбудовані плагіни повинні припинити прямі виклики `api.runtime.config.loadConfig()` і `api.runtime.config.writeConfigFile(...)`. Надавайте перевагу конфігурації, яку вже було передано в активний шлях виклику. Довгоживучі обробники, яким - потрібен поточний знімок процесу, можуть використовувати `api.runtime.config.current()`. Довгоживучі інструменти агента мають використовувати `ctx.getRuntimeConfig()` із контексту інструмента всередині - `execute`, щоб інструмент, створений до запису конфігурації, усе одно бачив - оновлену runtime-конфігурацію. + потрібен поточний знімок процесу, можуть використовувати `api.runtime.config.current()`. + Довгоживучі інструменти агента мають використовувати `ctx.getRuntimeConfig()` із + контексту інструмента всередині `execute`, щоб інструмент, створений до запису + конфігурації, все одно бачив оновлену конфігурацію рантайму. - Запис конфігурації має проходити через транзакційні допоміжні засоби та - вибирати політику після запису: + Запис конфігурації має виконуватися через транзакційні helper-и з вибором + політики після запису: ```typescript await api.runtime.config.mutateConfigFile({ @@ -98,47 +102,49 @@ OpenClaw не вилучає й не переосмислює задокумен Використовуйте `afterWrite: { mode: "restart", reason: "..." }`, коли викликач знає, що зміна потребує чистого перезапуску Gateway, і `afterWrite: { mode: "none", reason: "..." }` лише тоді, коли викликач - володіє подальшими діями й навмисно хоче придушити планувальник перезавантаження. + відповідає за подальші дії та свідомо хоче придушити planner перезавантаження. Результати мутації містять типізований підсумок `followUp` для тестів і логування; - Gateway, як і раніше, відповідає за застосування або планування перезапуску. - `loadConfig` і `writeConfigFile` залишаються застарілими допоміжними - засобами сумісності для зовнішніх плагінів протягом вікна міграції та - один раз попереджають із кодом сумісності `runtime-config-load-write`. Bundled plugins і код runtime репозиторію - захищені scanner-обмеженнями в + сам Gateway, як і раніше, відповідає за застосування або планування перезапуску. + `loadConfig` і `writeConfigFile` залишаються як застарілі helper-и сумісності + для зовнішніх плагінів на час перехідного періоду та одноразово показують попередження + з кодом сумісності `runtime-config-load-write`. Вбудовані плагіни та код + рантайму репозиторію захищені guardrails сканера в `pnpm check:deprecated-internal-config-api` і - `pnpm check:no-runtime-action-load-config`: нове використання production plugin + `pnpm check:no-runtime-action-load-config`: нове використання в production-плагінах одразу завершується помилкою, прямий запис конфігурації завершується помилкою, - методи сервера Gateway повинні використовувати знімок runtime із запиту, - допоміжні засоби send/action/client runtime channel повинні отримувати конфігурацію зі своєї межі, - а довгоживучі runtime-модулі повинні мати - нуль дозволених ambient-викликів `loadConfig()`. + методи сервера Gateway мають використовувати знімок рантайму запиту, + helpers runtime channel send/action/client мають отримувати конфігурацію зі + свого boundary, а довгоживучі модулі рантайму мають нульову допустиму кількість + ambient-викликів `loadConfig()`. - Новий код плагінів також повинен уникати імпорту широкого - barrel сумісності `openclaw/plugin-sdk/config-runtime`. Використовуйте вузький - підшлях SDK, який відповідає завданню: + Новий код плагінів також не повинен імпортувати широкий сумісний barrel + `openclaw/plugin-sdk/config-runtime`. Використовуйте вузький підшлях + SDK, який відповідає завданню: | Потреба | Імпорт | | --- | --- | | Типи конфігурації, такі як `OpenClawConfig` | `openclaw/plugin-sdk/config-types` | - | Перевірки вже завантаженої конфігурації та пошук конфігурації точки входу плагіна | `openclaw/plugin-sdk/plugin-config-runtime` | - | Читання поточного runtime-знімка | `openclaw/plugin-sdk/runtime-config-snapshot` | + | Перевірки вже завантаженої конфігурації та пошук конфігурації запису плагіна | `openclaw/plugin-sdk/plugin-config-runtime` | + | Читання поточного знімка рантайму | `openclaw/plugin-sdk/runtime-config-snapshot` | | Запис конфігурації | `openclaw/plugin-sdk/config-mutation` | - | Допоміжні засоби сховища сесій | `openclaw/plugin-sdk/session-store-runtime` | + | Helpers сховища сесій | `openclaw/plugin-sdk/session-store-runtime` | | Конфігурація таблиць Markdown | `openclaw/plugin-sdk/markdown-table-runtime` | - | Допоміжні засоби runtime-політики груп | `openclaw/plugin-sdk/runtime-group-policy` | - | Розв’язання secret input | `openclaw/plugin-sdk/secret-input-runtime` | - | Перевизначення моделей/сесій | `openclaw/plugin-sdk/model-session-runtime` | + | Helpers рантайму групової політики | `openclaw/plugin-sdk/runtime-group-policy` | + | Визначення secret input | `openclaw/plugin-sdk/secret-input-runtime` | + | Перевизначення model/session | `openclaw/plugin-sdk/model-session-runtime` | - Bundled plugins і їхні тести захищені scanner-перевірками від широкого - barrel, щоб імпорти й моки залишалися локальними для потрібної їм поведінки. Широкий - barrel усе ще існує для зовнішньої сумісності, але новий код не повинен від нього залежати. + Вбудовані плагіни та їхні тести захищені сканером від широкого + barrel-файла, щоб імпорти та mocks залишалися локальними щодо потрібної їм поведінки. Широкий + barrel-файл усе ще існує для зовнішньої сумісності, але новий код не повинен + від нього залежати. - - Bundled plugins повинні замінити обробники результатів інструментів Pi-only - `api.registerEmbeddedExtensionFactory(...)` на - runtime-neutral middleware. + + Вбудовані плагіни повинні замінити + обробники результатів інструментів Pi-only + `api.registerEmbeddedExtensionFactory(...)` + на runtime-neutral middleware. ```typescript // Pi and Codex runtime dynamic tools @@ -159,40 +165,40 @@ OpenClaw не вилучає й не переосмислює задокумен } ``` - Зовнішні плагіни не можуть реєструвати middleware результатів інструментів, оскільки воно може - переписувати високодовірений вивід інструментів до того, як модель його побачить. + Зовнішні плагіни не можуть реєструвати middleware для результатів інструментів, оскільки воно може + переписувати високодовірений вивід інструмента до того, як модель його побачить. - - Плагіни каналів із підтримкою approval тепер надають native-поведінку approval через - `approvalCapability.nativeRuntime` разом зі спільним реєстром runtime-контексту. + + Плагіни каналів із підтримкою approval тепер відкривають нативну поведінку approval через + `approvalCapability.nativeRuntime` разом зі спільним реєстром runtime-context. - Основні зміни: + Ключові зміни: - Замініть `approvalCapability.handler.loadRuntime(...)` на `approvalCapability.nativeRuntime` - - Перенесіть auth/delivery, специфічні для approval, зі старої прив’язки `plugin.auth` / + - Перенесіть специфічні для approval auth/delivery зі старої зв’язки `plugin.auth` / `plugin.approvals` на `approvalCapability` - - `ChannelPlugin.approvals` було вилучено з публічного контракту channel-plugin; - перенесіть поля delivery/native/render до `approvalCapability` - - `plugin.auth` залишається лише для потоків входу/виходу каналу; approval - hooks там більше не зчитуються ядром - - Реєструйте runtime-об’єкти, що належать каналу, як-от clients, tokens або Bolt + - `ChannelPlugin.approvals` вилучено з публічного + контракту channel-plugin; перенесіть поля delivery/native/render до `approvalCapability` + - `plugin.auth` залишається лише для потоків login/logout каналу; approval + hooks там більше не зчитуються core + - Реєструйте об’єкти рантайму, що належать каналу, такі як clients, tokens або Bolt apps, через `openclaw/plugin-sdk/channel-runtime-context` - - Не надсилайте сповіщення reroute, що належать плагіну, з native approval handlers; - ядро тепер саме відповідає за сповіщення routed-elsewhere на основі фактичних результатів доставки - - Під час передавання `channelRuntime` до `createChannelManager(...)` надавайте + - Не надсилайте reroute-повідомлення, що належать плагіну, з native approval handlers; + тепер core відповідає за routed-elsewhere notices на основі фактичних результатів доставки + - Під час передавання `channelRuntime` у `createChannelManager(...)` надавайте справжню поверхню `createPluginRuntime().channel`. Часткові stubs відхиляються. - Актуальне компонування approval capability див. у `/plugins/sdk-channel-plugins`. + Поточне компонування approval capability дивіться в `/plugins/sdk-channel-plugins`. - + Якщо ваш Plugin використовує `openclaw/plugin-sdk/windows-spawn`, - нерозв’язані Windows-обгортки `.cmd`/`.bat` тепер завершуються без fallback, якщо ви явно не передасте - `allowShellFallback: true`. + невизначені wrappers Windows `.cmd`/`.bat` тепер завершуються безпечним блокуванням, + якщо ви явно не передасте `allowShellFallback: true`. ```typescript // Before @@ -208,12 +214,12 @@ OpenClaw не вилучає й не переосмислює задокумен ``` Якщо ваш викликач не покладається навмисно на shell fallback, не встановлюйте - `allowShellFallback`, а натомість обробляйте викинуту помилку. + `allowShellFallback` і натомість обробляйте викинуту помилку. - Знайдіть у вашому плагіні імпорти з будь-якої застарілої поверхні: + Знайдіть у своєму плагіні імпорти з будь-якої із застарілих поверхонь: ```bash grep -r "plugin-sdk/compat" my-plugin/ @@ -225,7 +231,7 @@ OpenClaw не вилучає й не переосмислює задокумен - Кожен експорт зі старої поверхні відповідає конкретному сучасному шляху імпорту: + Кожен експорт зі старої поверхні відповідає певному сучасному шляху імпорту: ```typescript // Before (deprecated backwards-compatibility layer) @@ -241,7 +247,7 @@ OpenClaw не вилучає й не переосмислює задокумен import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth"; ``` - Для допоміжних засобів на боці хоста використовуйте інжектований runtime плагіна замість + Для helper-ів на стороні хоста використовуйте інжектований runtime плагіна замість прямого імпорту: ```typescript @@ -253,7 +259,7 @@ OpenClaw не вилучає й не переосмислює задокумен const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt }); ``` - Той самий шаблон застосовується до інших застарілих допоміжних засобів bridge: + Той самий шаблон застосовується й до інших helper-ів застарілого bridge: | Старий імпорт | Сучасний еквівалент | | --- | --- | @@ -263,48 +269,48 @@ OpenClaw не вилучає й не переосмислює задокумен | `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` | | `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` | | `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` | - | допоміжні засоби сховища сесій | `api.runtime.agent.session.*` | + | helpers сховища сесій | `api.runtime.agent.session.*` | `openclaw/plugin-sdk/infra-runtime` усе ще існує для зовнішньої - сумісності, але новий код має імпортувати цільову поверхню допоміжних засобів, - яка йому фактично потрібна: + сумісності, але новий код має імпортувати цільову поверхню helper-ів, яка + йому фактично потрібна: | Потреба | Імпорт | | --- | --- | - | Допоміжні засоби черги системних подій | `openclaw/plugin-sdk/system-event-runtime` | - | Допоміжні засоби подій і видимості Heartbeat | `openclaw/plugin-sdk/heartbeat-runtime` | + | Helpers черги системних подій | `openclaw/plugin-sdk/system-event-runtime` | + | Helpers подій і видимості Heartbeat | `openclaw/plugin-sdk/heartbeat-runtime` | | Спорожнення черги відкладеної доставки | `openclaw/plugin-sdk/delivery-queue-runtime` | | Телеметрія активності каналу | `openclaw/plugin-sdk/channel-activity-runtime` | | In-memory кеші дедуплікації | `openclaw/plugin-sdk/dedupe-runtime` | - | Безпечні допоміжні засоби шляхів до локальних файлів/медіа | `openclaw/plugin-sdk/file-access-runtime` | + | Безпечні helpers шляхів до локальних файлів/медіа | `openclaw/plugin-sdk/file-access-runtime` | | Fetch з урахуванням dispatcher | `openclaw/plugin-sdk/runtime-fetch` | - | Допоміжні засоби proxy і guarded fetch | `openclaw/plugin-sdk/fetch-runtime` | + | Helpers proxy та guarded fetch | `openclaw/plugin-sdk/fetch-runtime` | | Типи політики SSRF dispatcher | `openclaw/plugin-sdk/ssrf-dispatcher` | | Типи запиту/розв’язання approval | `openclaw/plugin-sdk/approval-runtime` | - | Допоміжні засоби payload відповіді approval і команд | `openclaw/plugin-sdk/approval-reply-runtime` | - | Допоміжні засоби форматування помилок | `openclaw/plugin-sdk/error-runtime` | + | Helpers payload відповіді approval і команд | `openclaw/plugin-sdk/approval-reply-runtime` | + | Helpers форматування помилок | `openclaw/plugin-sdk/error-runtime` | | Очікування готовності транспорту | `openclaw/plugin-sdk/transport-ready-runtime` | - | Допоміжні засоби безпечних токенів | `openclaw/plugin-sdk/secure-random-runtime` | - | Обмежена паралельність асинхронних завдань | `openclaw/plugin-sdk/concurrency-runtime` | - | Числова коерція | `openclaw/plugin-sdk/number-runtime` | + | Helpers безпечних токенів | `openclaw/plugin-sdk/secure-random-runtime` | + | Обмежена конкурентність асинхронних завдань | `openclaw/plugin-sdk/concurrency-runtime` | + | Числове приведення | `openclaw/plugin-sdk/number-runtime` | | Асинхронне блокування в межах процесу | `openclaw/plugin-sdk/async-lock-runtime` | | Блокування файлів | `openclaw/plugin-sdk/file-lock` | - Bundled plugins захищені scanner-перевірками від `infra-runtime`, тому код репозиторію - не може повернутися до широкого barrel. + Вбудовані плагіни захищені сканером від `infra-runtime`, тому код репозиторію + не може знову повернутися до широкого barrel-файла. - - Новий код маршрутів каналів має використовувати `openclaw/plugin-sdk/channel-route`. - Старіші назви route-key і comparable-target залишаються як псевдоніми сумісності - протягом вікна міграції, але нові плагіни мають використовувати назви маршрутів, - які безпосередньо описують поведінку: + + Новий код маршрутів каналу має використовувати `openclaw/plugin-sdk/channel-route`. + Старіші назви route-key і comparable-target залишаються як сумісні + аліаси на час перехідного періоду, але нові плагіни мають використовувати + назви маршрутів, які безпосередньо описують поведінку: - | Старий допоміжний засіб | Сучасний допоміжний засіб | + | Старий helper | Сучасний helper | | --- | --- | | `channelRouteIdentityKey(...)` | `channelRouteDedupeKey(...)` | | `channelRouteKey(...)` | `channelRouteCompactKey(...)` | @@ -314,11 +320,11 @@ OpenClaw не вилучає й не переосмислює задокумен | `comparableChannelTargetsMatch(...)` | `channelRouteTargetsMatchExact(...)` | | `comparableChannelTargetsShareRoute(...)` | `channelRouteTargetsShareConversation(...)` | - Сучасні допоміжні засоби маршрутів послідовно нормалізують `{ channel, to, accountId, threadId }` - для native approvals, придушення відповідей, дедуплікації вхідних повідомлень, - доставки Cron і маршрутизації сесій. Якщо ваш plugin підтримує власну граматику цілей, - використовуйте `resolveChannelRouteTargetWithParser(...)`, щоб адаптувати цей - парсер до того самого контракту цілей маршруту. + Сучасні helpers маршрутів послідовно нормалізують `{ channel, to, accountId, threadId }` + у native approvals, придушенні відповідей, дедуплікації вхідних повідомлень, + доставці Cron і маршрутизації сесій. Якщо ваш Plugin має власну граматику + target, використовуйте `resolveChannelRouteTargetWithParser(...)`, щоб + адаптувати цей parser до того самого контракту target маршруту. @@ -335,192 +341,193 @@ OpenClaw не вилучає й не переосмислює задокумен | Шлях імпорту | Призначення | Ключові експорти | | --- | --- | --- | - | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу плагіна | `definePluginEntry` | - | `plugin-sdk/core` | Застарілий umbrella-повторний експорт для визначень/builder-ів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` | + | `plugin-sdk/plugin-entry` | Канонічний helper точки входу Plugin | `definePluginEntry` | + | `plugin-sdk/core` | Застарілий umbrella re-export для визначень/білдерів входу каналу | `defineChannelPluginEntry`, `createChatChannelPlugin` | | `plugin-sdk/config-schema` | Експорт кореневої схеми конфігурації | `OpenClawSchema` | - | `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного provider | `defineSingleProviderPluginEntry` | - | `plugin-sdk/channel-core` | Цільові визначення й builder-и точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/setup` | Спільні допоміжні засоби майстра setup | Запити allowlist, builder-и статусу setup | - | `plugin-sdk/setup-runtime` | Допоміжні засоби runtime під час setup | Безпечні для імпорту адаптери patch setup, допоміжні засоби приміток lookup, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані proxy setup | - | `plugin-sdk/setup-adapter-runtime` | Допоміжні засоби адаптера setup | `createEnvPatchedAccountSetupAdapter` | - | `plugin-sdk/setup-tools` | Допоміжні засоби інструментарію setup | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` | - | `plugin-sdk/account-core` | Допоміжні засоби для кількох облікових записів | Допоміжні засоби списку облікових записів/конфігурації/шлюзу дій | - | `plugin-sdk/account-id` | Допоміжні засоби account-id | `DEFAULT_ACCOUNT_ID`, нормалізація account-id | - | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікових записів | Допоміжні засоби пошуку облікових записів + fallback до значення за замовчуванням | - | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби облікових записів | Допоміжні засоби списку облікових записів/дій з обліковими записами | - | `plugin-sdk/channel-setup` | Адаптери майстра setup | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | + | `plugin-sdk/provider-entry` | Helper точки входу одного провайдера | `defineSingleProviderPluginEntry` | + | `plugin-sdk/channel-core` | Цільові визначення та білдери входу каналу | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | + | `plugin-sdk/setup` | Спільні helper-и майстра налаштування | Allowlist prompts, builders статусу налаштування | + | `plugin-sdk/setup-runtime` | Helpers рантайму під час налаштування | Безпечні для імпорту adapters patch налаштування, helper-и lookup-note, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані setup proxy | + | `plugin-sdk/setup-adapter-runtime` | Helpers setup adapter | `createEnvPatchedAccountSetupAdapter` | + | `plugin-sdk/setup-tools` | Helpers інструментів налаштування | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` | + | `plugin-sdk/account-core` | Helpers для кількох облікових записів | Helper-и списку облікових записів/конфігурації/action-gate | + | `plugin-sdk/account-id` | Helpers account-id | `DEFAULT_ACCOUNT_ID`, нормалізація account-id | + | `plugin-sdk/account-resolution` | Helpers пошуку облікового запису | Helper-и пошуку облікового запису + fallback до значення за замовчуванням | + | `plugin-sdk/account-helpers` | Вузькі helper-и облікового запису | Helper-и списку облікових записів/account-action | + | `plugin-sdk/channel-setup` | Adapters майстра налаштування | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | | `plugin-sdk/channel-pairing` | Примітиви DM pairing | `createChannelPairingController` | - | `plugin-sdk/channel-reply-pipeline` | Підключення префікса відповіді + typing | `createChannelReplyPipeline` | - | `plugin-sdk/channel-config-helpers` | Фабрики адаптерів конфігурації | `createHybridChannelConfigAdapter` | - | `plugin-sdk/channel-config-schema` | Builder-и схем конфігурації | Спільні примітиви схем конфігурації каналів і лише узагальнений builder | - | `plugin-sdk/channel-config-schema-legacy` | Застарілі bundled-схеми конфігурації | Лише bundled-сумісність; нові плагіни повинні визначати локальні для плагіна схеми | - | `plugin-sdk/telegram-command-config` | Допоміжні засоби конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, перевірка дублікатів/конфліктів | - | `plugin-sdk/channel-policy` | Розв’язання політики груп/DM | `resolveChannelGroupRequireMention` | - | `plugin-sdk/channel-lifecycle` | Допоміжні засоби статусу облікового запису та життєвого циклу потоку чернеток | `createAccountStatusSink`, допоміжні засоби завершення попереднього перегляду чернетки | - | `plugin-sdk/inbound-envelope` | Допоміжні засоби inbound envelope | Спільні допоміжні засоби маршрутів + builder envelope | - | `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби inbound reply | Спільні допоміжні засоби запису й диспетчеризації | - | `plugin-sdk/messaging-targets` | Розбір цілей повідомлень | Допоміжні засоби розбору/зіставлення цілей | - | `plugin-sdk/outbound-media` | Допоміжні засоби outbound media | Спільне завантаження outbound media | - | `plugin-sdk/outbound-send-deps` | Допоміжні засоби залежностей outbound send | Полегшений пошук `resolveOutboundSendDep` без імпорту повного outbound runtime | - | `plugin-sdk/outbound-runtime` | Допоміжні засоби outbound runtime | Допоміжні засоби outbound delivery, identity/send delegate, сесій, форматування та планування payload | - | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби thread-binding | Допоміжні засоби життєвого циклу thread-binding і адаптерів | - | `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби media payload | Builder media payload агента для застарілих макетів полів | - | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти runtime каналів | - | `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповіді | - | `plugin-sdk/runtime-store` | Постійне сховище плагіна | `createPluginRuntimeStore` | - | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/логування/резервного копіювання/встановлення плагіна | - | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env | Logger/runtime env, допоміжні засоби timeout, retry і backoff | - | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime плагіна | Допоміжні засоби команд/хуків/http/interactive плагіна | - | `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра hook | Спільні допоміжні засоби конвеєра webhook/internal hook | - | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Допоміжні засоби процесів | Спільні допоміжні засоби exec | - | `plugin-sdk/cli-runtime` | Допоміжні засоби CLI runtime | Форматування команд, очікування, допоміжні засоби версій | - | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Допоміжні засоби клієнта Gateway і patch статусу каналу | - | `plugin-sdk/config-runtime` | Застарілий shim сумісності конфігурації | Надавайте перевагу `config-types`, `plugin-config-runtime`, `runtime-config-snapshot` і `config-mutation` | - | `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Стабільні fallback-допоміжні засоби перевірки команд Telegram, коли bundled-контрактна поверхня Telegram недоступна | - | `plugin-sdk/approval-runtime` | Допоміжні засоби prompt approval | Payload підтвердження exec/plugin, допоміжні засоби capability/profile approval, native approval routing/runtime і форматування шляху відображення структурованого approval | - | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth approval | Розв’язання approver, auth дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта approval | Допоміжні засоби profile/filter native exec approval | - | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки approval | Адаптери native approval capability/delivery | - | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway approval | Спільний допоміжний засіб розв’язання approval Gateway | - | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера approval | Полегшені допоміжні засоби завантаження адаптера native approval для hot-точок входу каналів | - | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника approval | Ширші допоміжні засоби runtime обробника approval; надавайте перевагу вужчим швам adapter/gateway, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей approval | Допоміжні засоби прив’язки native approval target/account | - | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповіді approval | Допоміжні засоби payload відповіді на approval exec/plugin | - | `plugin-sdk/channel-runtime-context` | Допоміжні засоби runtime-context каналу | Узагальнені допоміжні засоби register/get/watch для runtime-context каналу | - | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби trust, DM gating, external-content і збирання secret | - | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби allowlist хостів і політики приватної мережі | - | `plugin-sdk/ssrf-runtime` | Допоміжні засоби SSRF runtime | Допоміжні засоби pinned-dispatcher, guarded fetch, політики SSRF | - | `plugin-sdk/system-event-runtime` | Допоміжні засоби системних подій | `enqueueSystemEvent`, `peekSystemEventEntries` | - | `plugin-sdk/heartbeat-runtime` | Допоміжні засоби Heartbeat | Допоміжні засоби подій і видимості Heartbeat | - | `plugin-sdk/delivery-queue-runtime` | Допоміжні засоби черги доставки | `drainPendingDeliveries` | - | `plugin-sdk/channel-activity-runtime` | Допоміжні засоби активності каналу | `recordChannelActivity` | - | `plugin-sdk/dedupe-runtime` | Допоміжні засоби дедуплікації | In-memory кеші дедуплікації | - | `plugin-sdk/file-access-runtime` | Допоміжні засоби доступу до файлів | Безпечні допоміжні засоби шляхів до локальних файлів/медіа | - | `plugin-sdk/transport-ready-runtime` | Допоміжні засоби готовності транспорту | `waitForTransportReady` | - | `plugin-sdk/collection-runtime` | Допоміжні засоби обмеженого кешу | `pruneMapToMaxSize` | - | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби керування діагностикою | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` | - | `plugin-sdk/error-runtime` | Допоміжні засоби форматування помилок | `formatUncaughtError`, `isApprovalNotFoundError`, допоміжні засоби графа помилок | - | `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch/proxy | `resolveFetch`, допоміжні засоби proxy | - | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації хоста | `normalizeHostname`, `normalizeScpRemoteHost` | - | `plugin-sdk/retry-runtime` | Допоміжні засоби retry | `RetryConfig`, `retryAsync`, виконавці політик | + | `plugin-sdk/channel-reply-pipeline` | Префікс відповіді + wiring друку | `createChannelReplyPipeline` | + | `plugin-sdk/channel-config-helpers` | Фабрики adapter-ів конфігурації | `createHybridChannelConfigAdapter` | + | `plugin-sdk/channel-config-schema` | Builders схем конфігурації | Спільні примітиви схеми конфігурації каналу та лише універсальний builder | + | `plugin-sdk/bundled-channel-config-schema` | Вбудовані схеми конфігурації | Лише для вбудованих плагінів, які підтримує OpenClaw; нові плагіни мають визначати локальні для плагіна схеми | + | `plugin-sdk/channel-config-schema-legacy` | Застарілі вбудовані схеми конфігурації | Лише alias сумісності; для підтримуваних вбудованих плагінів використовуйте `plugin-sdk/bundled-channel-config-schema` | + | `plugin-sdk/telegram-command-config` | Helpers конфігурації команд Telegram | Нормалізація імен команд, обрізання опису, валідація дублікатів/конфліктів | + | `plugin-sdk/channel-policy` | Розв’язання політики Group/DM | `resolveChannelGroupRequireMention` | + | `plugin-sdk/channel-lifecycle` | Helpers статусу облікового запису та життєвого циклу draft stream | `createAccountStatusSink`, helper-и фіналізації preview чернеток | + | `plugin-sdk/inbound-envelope` | Helpers вхідного envelope | Спільні helper-и побудови route + envelope | + | `plugin-sdk/inbound-reply-dispatch` | Helpers вхідних відповідей | Спільні helper-и record-and-dispatch | + | `plugin-sdk/messaging-targets` | Парсинг цілей повідомлень | Helper-и парсингу/зіставлення target | + | `plugin-sdk/outbound-media` | Helpers вихідних медіа | Спільне завантаження вихідних медіа | + | `plugin-sdk/outbound-send-deps` | Helpers залежностей вихідного надсилання | Легкий пошук `resolveOutboundSendDep` без імпорту всього outbound runtime | + | `plugin-sdk/outbound-runtime` | Helpers outbound runtime | Helper-и outbound-доставки, identity/send delegate, session, formatting і планування payload | + | `plugin-sdk/thread-bindings-runtime` | Helpers thread-binding | Helper-и життєвого циклу thread-binding та adapter-ів | + | `plugin-sdk/agent-media-payload` | Застарілі helper-и media payload | Builder media payload агента для застарілих макетів полів | + | `plugin-sdk/channel-runtime` | Застарілий compatibility shim | Лише застарілі утиліти channel runtime | + | `plugin-sdk/channel-send-result` | Типи результату надсилання | Типи результатів відповіді | + | `plugin-sdk/runtime-store` | Постійне сховище Plugin | `createPluginRuntimeStore` | + | `plugin-sdk/runtime` | Широкі helpers рантайму | Helper-и runtime/logging/backup/plugin-install | + | `plugin-sdk/runtime-env` | Вузькі helper-и runtime env | Helper-и logger/runtime env, timeout, retry і backoff | + | `plugin-sdk/plugin-runtime` | Спільні helper-и Plugin runtime | Helper-и команд/hooks/http/interactive плагіна | + | `plugin-sdk/hook-runtime` | Helpers pipeline hook-ів | Спільні helper-и pipeline webhook/internal hook | + | `plugin-sdk/lazy-runtime` | Helpers lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` | + | `plugin-sdk/process-runtime` | Helpers процесу | Спільні helper-и exec | + | `plugin-sdk/cli-runtime` | Helpers CLI runtime | Форматування команд, очікування, helper-и версій | + | `plugin-sdk/gateway-runtime` | Helpers Gateway | Helper-и клієнта Gateway і patch статусу каналу | + | `plugin-sdk/config-runtime` | Застарілий compatibility shim конфігурації | Надавайте перевагу `config-types`, `plugin-config-runtime`, `runtime-config-snapshot` і `config-mutation` | + | `plugin-sdk/telegram-command-config` | Helpers команд Telegram | Helpers валідації команд Telegram зі стабільним fallback, коли поверхня контракту вбудованого Telegram недоступна | + | `plugin-sdk/approval-runtime` | Helpers prompt approval | Payload approval exec/plugin, helper-и capability/profile approval, helper-и native approval routing/runtime і форматування шляху відображення structured approval | + | `plugin-sdk/approval-auth-runtime` | Helpers auth approval | Розв’язання approver, auth дій у тому самому чаті | + | `plugin-sdk/approval-client-runtime` | Helpers клієнта approval | Helper-и profile/filter native exec approval | + | `plugin-sdk/approval-delivery-runtime` | Helpers доставки approval | Adapters native approval capability/delivery | + | `plugin-sdk/approval-gateway-runtime` | Helpers Gateway approval | Спільний helper розв’язання approval gateway | + | `plugin-sdk/approval-handler-adapter-runtime` | Helpers approval adapter | Легкі helper-и завантаження native approval adapter для гарячих точок входу каналу | + | `plugin-sdk/approval-handler-runtime` | Helpers обробника approval | Ширші helper-и runtime обробника approval; надавайте перевагу вужчим seams adapter/gateway, коли їх достатньо | + | `plugin-sdk/approval-native-runtime` | Helpers target approval | Helper-и прив’язки target/account native approval | + | `plugin-sdk/approval-reply-runtime` | Helpers відповіді approval | Helper-и payload відповіді approval exec/plugin | + | `plugin-sdk/channel-runtime-context` | Helpers channel runtime-context | Універсальні helper-и register/get/watch для channel runtime-context | + | `plugin-sdk/security-runtime` | Helpers безпеки | Спільні helper-и trust, DM gating, external-content і secret-collection | + | `plugin-sdk/ssrf-policy` | Helpers політики SSRF | Helper-и allowlist хостів і політики приватної мережі | + | `plugin-sdk/ssrf-runtime` | Helpers SSRF runtime | Helper-и pinned-dispatcher, guarded fetch, SSRF policy | + | `plugin-sdk/system-event-runtime` | Helpers системних подій | `enqueueSystemEvent`, `peekSystemEventEntries` | + | `plugin-sdk/heartbeat-runtime` | Helpers Heartbeat | Helpers подій і видимості Heartbeat | + | `plugin-sdk/delivery-queue-runtime` | Helpers черги доставки | `drainPendingDeliveries` | + | `plugin-sdk/channel-activity-runtime` | Helpers активності каналу | `recordChannelActivity` | + | `plugin-sdk/dedupe-runtime` | Helpers дедуплікації | In-memory кеші дедуплікації | + | `plugin-sdk/file-access-runtime` | Helpers доступу до файлів | Безпечні helper-и шляхів до локальних файлів/медіа | + | `plugin-sdk/transport-ready-runtime` | Helpers готовності транспорту | `waitForTransportReady` | + | `plugin-sdk/collection-runtime` | Helpers обмеженого кешу | `pruneMapToMaxSize` | + | `plugin-sdk/diagnostic-runtime` | Helpers керування діагностикою | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` | + | `plugin-sdk/error-runtime` | Helpers форматування помилок | `formatUncaughtError`, `isApprovalNotFoundError`, helper-и графа помилок | + | `plugin-sdk/fetch-runtime` | Helpers обгорнутого fetch/proxy | `resolveFetch`, helper-и proxy | + | `plugin-sdk/host-runtime` | Helpers нормалізації хоста | `normalizeHostname`, `normalizeScpRemoteHost` | + | `plugin-sdk/retry-runtime` | Helpers retry | `RetryConfig`, `retryAsync`, runners політик | | `plugin-sdk/allow-from` | Форматування allowlist | `formatAllowFromLowercase` | - | `plugin-sdk/allowlist-resolution` | Відображення входів allowlist | `mapAllowlistResolutionInputs` | - | `plugin-sdk/command-auth` | Керування командами й допоміжні засоби поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд, включно з форматуванням меню динамічних аргументів | + | `plugin-sdk/allowlist-resolution` | Мапінг вводу allowlist | `mapAllowlistResolutionInputs` | + | `plugin-sdk/command-auth` | Керування командами та helper-и поверхні команд | `resolveControlCommandGate`, helper-и авторизації відправника, helper-и реєстру команд, включно з форматуванням меню динамічних аргументів | | `plugin-sdk/command-status` | Рендерери статусу/довідки команд | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` | - | `plugin-sdk/secret-input` | Розбір secret input | Допоміжні засоби secret input | - | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів Webhook | Утиліти цілей Webhook | - | `plugin-sdk/webhook-request-guards` | Допоміжні засоби захисту тіла запиту Webhook | Допоміжні засоби читання/обмеження тіла запиту | - | `plugin-sdk/reply-runtime` | Спільний reply runtime | Inbound dispatch, Heartbeat, planner відповідей, chunking | - | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Допоміжні засоби finalize, dispatch provider і міток розмов | - | `plugin-sdk/reply-history` | Допоміжні засоби історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | - | `plugin-sdk/reply-reference` | Планування посилань на відповіді | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Допоміжні засоби chunk відповідей | Допоміжні засоби chunking тексту/Markdown | - | `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій | Допоміжні засоби шляху до сховища + updated-at | - | `plugin-sdk/state-paths` | Допоміжні засоби шляхів стану | Допоміжні засоби каталогів state і OAuth | - | `plugin-sdk/routing` | Допоміжні засоби маршрутизації/ключів сесій | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації ключів сесій | - | `plugin-sdk/status-helpers` | Допоміжні засоби статусу каналу | Builder-и підсумків статусу каналу/облікового запису, значення runtime-state за замовчуванням, допоміжні засоби метаданих issue | - | `plugin-sdk/target-resolver-runtime` | Допоміжні засоби розв’язання цілей | Спільні допоміжні засоби розв’язання цілей | - | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації рядків | Допоміжні засоби нормалізації slug/рядків | - | `plugin-sdk/request-url` | Допоміжні засоби URL запиту | Витягування рядкових URL із request-подібних вхідних даних | - | `plugin-sdk/run-command` | Допоміжні засоби команд із таймером | Виконавець команд із таймером і нормалізованими stdout/stderr | - | `plugin-sdk/param-readers` | Читачі параметрів | Поширені читачі параметрів tool/CLI | - | `plugin-sdk/tool-payload` | Витягування payload tool | Витягування нормалізованих payload з об’єктів результатів tool | - | `plugin-sdk/tool-send` | Витягування send tool | Витягування канонічних полів цілей надсилання з аргументів tool | - | `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби шляхів тимчасового завантаження | - | `plugin-sdk/logging-core` | Допоміжні засоби логування | Допоміжні засоби logger підсистем і редагування | - | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби таблиць Markdown | Допоміжні засоби режиму таблиць Markdown | - | `plugin-sdk/reply-payload` | Типи reply повідомлень | Типи payload відповідей | - | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби setup локальних/self-hosted provider | Допоміжні засоби виявлення/конфігурації self-hosted provider | - | `plugin-sdk/self-hosted-provider-setup` | Цільові допоміжні засоби setup self-hosted provider, сумісних з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації self-hosted provider | - | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби auth provider під час runtime | Допоміжні засоби розв’язання API-ключів під час runtime | - | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби setup API-ключів provider | Допоміжні засоби onboarding/запису профілю API-ключів | - | `plugin-sdk/provider-auth-result` | Допоміжні засоби auth-result provider | Стандартний builder auth-result OAuth | - | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу provider | Спільні допоміжні засоби інтерактивного входу | - | `plugin-sdk/provider-selection-runtime` | Допоміжні засоби вибору provider | Вибір provider із конфігурації або автоматично та злиття сирої конфігурації provider | - | `plugin-sdk/provider-env-vars` | Допоміжні засоби env-var provider | Допоміжні засоби пошуку auth env-var provider | - | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні builder-и replay-policy, допоміжні засоби endpoint provider і допоміжні засоби нормалізації model-id | - | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу provider | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-onboard` | Patch-и onboarding provider | Допоміжні засоби конфігурації onboarding | - | `plugin-sdk/provider-http` | Допоміжні засоби HTTP provider | Узагальнені допоміжні засоби HTTP/capability endpoint provider, включно з допоміжними засобами multipart form для транскрибування аудіо | - | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch provider | Допоміжні засоби реєстрації/кешу web-fetch provider | - | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search provider | Вузькі допоміжні засоби конфігурації/облікових даних web-search для provider, яким не потрібне підключення enable plugin | - | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search provider | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter-и облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search provider | Допоміжні засоби реєстрації/кешу/runtime web-search provider | - | `plugin-sdk/provider-tools` | Допоміжні засоби сумісності tool/schema provider | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | Допоміжні засоби usage provider | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби usage provider | - | `plugin-sdk/provider-stream` | Допоміжні засоби wrapper stream provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи wrapper-ів stream і спільні допоміжні засоби wrapper-ів Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби транспорту provider | Допоміжні засоби нативного транспорту provider, такі як guarded fetch, трансформації transport message і потоки подій writable transport | + | `plugin-sdk/secret-input` | Парсинг secret input | Helper-и secret input | + | `plugin-sdk/webhook-ingress` | Helpers запитів Webhook | Утиліти target Webhook | + | `plugin-sdk/webhook-request-guards` | Helpers guard для тіла запиту Webhook | Helper-и читання/обмеження тіла запиту | + | `plugin-sdk/reply-runtime` | Спільний runtime відповіді | Inbound dispatch, Heartbeat, planner відповіді, chunking | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі helper-и dispatch відповіді | Фіналізація, dispatch провайдера та helper-и міток conversation | + | `plugin-sdk/reply-history` | Helpers історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/reply-reference` | Планування посилань відповіді | `createReplyReferencePlanner` | + | `plugin-sdk/reply-chunking` | Helpers chunk відповіді | Helper-и chunking тексту/markdown | + | `plugin-sdk/session-store-runtime` | Helpers сховища сесій | Helper-и шляху сховища + updated-at | + | `plugin-sdk/state-paths` | Helpers шляхів стану | Helper-и каталогів стану та OAuth | + | `plugin-sdk/routing` | Helpers routing/session-key | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, helper-и нормалізації session-key | + | `plugin-sdk/status-helpers` | Helpers статусу каналу | Builders підсумку статусу каналу/облікового запису, значення за замовчуванням стану рантайму, helper-и метаданих issue | + | `plugin-sdk/target-resolver-runtime` | Helpers resolver-а target | Спільні helper-и resolver-а target | + | `plugin-sdk/string-normalization-runtime` | Helpers нормалізації рядків | Helper-и нормалізації slug/рядків | + | `plugin-sdk/request-url` | Helpers URL запиту | Витягування рядкових URL із request-подібних вхідних даних | + | `plugin-sdk/run-command` | Helpers команд із тайм-аутом | Runner команд із тайм-аутом і нормалізованими stdout/stderr | + | `plugin-sdk/param-readers` | Readers параметрів | Загальні readers параметрів tool/CLI | + | `plugin-sdk/tool-payload` | Витягування payload інструмента | Витягування нормалізованих payload із об’єктів результатів інструментів | + | `plugin-sdk/tool-send` | Витягування надсилання інструмента | Витягування канонічних полів цілі надсилання з аргументів інструмента | + | `plugin-sdk/temp-path` | Helpers тимчасових шляхів | Спільні helper-и шляхів тимчасового завантаження | + | `plugin-sdk/logging-core` | Helpers логування | Логер підсистеми та helper-и редагування | + | `plugin-sdk/markdown-table-runtime` | Helpers таблиць Markdown | Helpers режиму таблиць Markdown | + | `plugin-sdk/reply-payload` | Типи відповідей повідомлень | Типи payload відповіді | + | `plugin-sdk/provider-setup` | Кураторські helper-и налаштування локального/self-hosted провайдера | Helper-и виявлення/конфігурації self-hosted провайдера | + | `plugin-sdk/self-hosted-provider-setup` | Цільові helper-и налаштування self-hosted провайдера, сумісного з OpenAI | Ті самі helper-и виявлення/конфігурації self-hosted провайдера | + | `plugin-sdk/provider-auth-runtime` | Helpers auth рантайму провайдера | Helpers визначення API-ключа в рантаймі | + | `plugin-sdk/provider-auth-api-key` | Helpers налаштування API-ключа провайдера | Helper-и onboarding/profile-write для API-ключа | + | `plugin-sdk/provider-auth-result` | Helpers auth-result провайдера | Стандартний builder auth-result OAuth | + | `plugin-sdk/provider-auth-login` | Helpers інтерактивного входу провайдера | Спільні helper-и інтерактивного входу | + | `plugin-sdk/provider-selection-runtime` | Helpers вибору провайдера | Вибір провайдера configured-or-auto та злиття сирої конфігурації провайдера | + | `plugin-sdk/provider-env-vars` | Helpers env-var провайдера | Helpers пошуку auth env-var провайдера | + | `plugin-sdk/provider-model-shared` | Спільні helper-и model/replay провайдера | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні builders replay-policy, helper-и endpoint провайдера та helper-и нормалізації model-id | + | `plugin-sdk/provider-catalog-shared` | Спільні helper-и каталогу провайдера | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | + | `plugin-sdk/provider-onboard` | Патчі onboarding провайдера | Helpers конфігурації onboarding | + | `plugin-sdk/provider-http` | Helpers HTTP провайдера | Універсальні helper-и HTTP/endpoint capability провайдера, включно з helper-ами multipart form для транскрипції аудіо | + | `plugin-sdk/provider-web-fetch` | Helpers web-fetch провайдера | Helper-и реєстрації/кешу провайдера web-fetch | + | `plugin-sdk/provider-web-search-config-contract` | Helpers конфігурації web-search провайдера | Вузькі helper-и конфігурації/облікових даних web-search для провайдерів, яким не потрібна зв’язка enable plugin | + | `plugin-sdk/provider-web-search-contract` | Helpers контракту web-search провайдера | Вузькі helper-и контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter-и облікових даних | + | `plugin-sdk/provider-web-search` | Helpers web-search провайдера | Helper-и реєстрації/кешу/runtime провайдера web-search | + | `plugin-sdk/provider-tools` | Helpers сумісності tool/schema провайдера | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також helper-и сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-usage` | Helpers usage провайдера | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші helper-и usage провайдера | + | `plugin-sdk/provider-stream` | Helpers обгортки stream провайдера | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні helper-и wrapper Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | + | `plugin-sdk/provider-transport-runtime` | Helpers транспорту провайдера | Нативні helper-и транспорту провайдера, такі як guarded fetch, перетворення transport message і writable потоки подій транспорту | | `plugin-sdk/keyed-async-queue` | Упорядкована асинхронна черга | `KeyedAsyncQueue` | - | `plugin-sdk/media-runtime` | Спільні допоміжні засоби media | Допоміжні засоби fetch/transform/store media плюс builder-и payload media | - | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації media | Спільні допоміжні засоби failover, вибору candidate і повідомлень про відсутню модель для генерації зображень/відео/музики | - | `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи provider media understanding плюс експорти допоміжних засобів зображень/аудіо для provider | - | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Видалення видимого для асистента тексту, допоміжні засоби render/chunking/table Markdown, допоміжні засоби редагування, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби тексту/логування | - | `plugin-sdk/text-chunking` | Допоміжні засоби chunking тексту | Допоміжний засіб chunking outbound text | - | `plugin-sdk/speech` | Допоміжні засоби мовлення | Типи provider мовлення плюс експорти допоміжних засобів директив, реєстру та валідації для provider | - | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи provider мовлення, реєстр, директиви, нормалізація | - | `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрибування в реальному часі | Типи provider, допоміжні засоби реєстру та спільний допоміжний засіб сесій WebSocket | - | `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в реальному часі | Типи provider, допоміжні засоби реєстру/розв’язання та допоміжні засоби bridge session | - | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, допоміжні засоби failover, auth і реєстру | - | `plugin-sdk/music-generation` | Допоміжні засоби генерації музики | Типи provider/запиту/результату генерації музики | - | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, допоміжні засоби failover, пошуку provider і розбору model-ref | - | `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи provider/запиту/результату генерації відео | - | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, допоміжні засоби failover, пошуку provider і розбору model-ref | - | `plugin-sdk/interactive-runtime` | Допоміжні засоби interactive reply | Нормалізація/скорочення payload interactive reply | + | `plugin-sdk/media-runtime` | Спільні helpers медіа | Helper-и fetch/transform/store медіа, а також builders media payload | + | `plugin-sdk/media-generation-runtime` | Спільні helper-и генерації медіа | Спільні helper-и failover, вибору candidate та повідомлень про відсутню модель для генерації зображень/відео/музики | + | `plugin-sdk/media-understanding` | Helpers media-understanding | Типи провайдера media understanding, а також exports helper-ів для зображень/аудіо для провайдерів | + | `plugin-sdk/text-runtime` | Спільні текстові helper-и | Видалення тексту, видимого асистенту, helper-и render/chunking/table Markdown, helper-и редагування, helper-и тегів директив, утиліти safe-text і пов’язані helper-и text/logging | + | `plugin-sdk/text-chunking` | Helpers text chunking | Helper chunking вихідного тексту | + | `plugin-sdk/speech` | Helpers мовлення | Типи speech-провайдера, а також helper-и директив, реєстру й валідації для провайдерів | + | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи speech-провайдера, реєстр, директиви, нормалізація | + | `plugin-sdk/realtime-transcription` | Helpers транскрипції в реальному часі | Типи провайдера, helper-и реєстру та спільний helper WebSocket session | + | `plugin-sdk/realtime-voice` | Helpers голосу в реальному часі | Типи провайдера, helper-и реєстру/визначення та helper-и bridge session | + | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, helper-и failover, auth і реєстру | + | `plugin-sdk/music-generation` | Helpers генерації музики | Типи провайдера/запиту/результату генерації музики | + | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, helper-и failover, пошук провайдера та парсинг model-ref | + | `plugin-sdk/video-generation` | Helpers генерації відео | Типи провайдера/запиту/результату генерації відео | + | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, helper-и failover, пошук провайдера та парсинг model-ref | + | `plugin-sdk/interactive-runtime` | Helpers інтерактивної відповіді | Нормалізація/зведення payload інтерактивної відповіді | | `plugin-sdk/channel-config-primitives` | Примітиви конфігурації каналу | Вузькі примітиви channel config-schema | - | `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації каналу | Допоміжні засоби авторизації запису конфігурації каналу | - | `plugin-sdk/channel-plugin-common` | Спільний prelude каналу | Експорти спільного prelude channel plugin | - | `plugin-sdk/channel-status` | Допоміжні засоби статусу каналу | Спільні допоміжні засоби snapshot/summary статусу каналу | - | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби конфігурації allowlist | Допоміжні засоби редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Допоміжні засоби доступу груп | Спільні допоміжні засоби рішень group-access | - | `plugin-sdk/direct-dm` | Допоміжні засоби direct-DM | Спільні допоміжні засоби auth/guard direct-DM | - | `plugin-sdk/extension-shared` | Спільні допоміжні засоби extension | Примітиви passive-channel/status і ambient proxy helper | - | `plugin-sdk/webhook-targets` | Допоміжні засоби цілей Webhook | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів | - | `plugin-sdk/webhook-path` | Допоміжні засоби шляху Webhook | Допоміжні засоби нормалізації шляху Webhook | - | `plugin-sdk/web-media` | Спільні допоміжні засоби web media | Допоміжні засоби завантаження віддалених/локальних media | - | `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів Plugin SDK | - | `plugin-sdk/memory-core` | Допоміжні засоби bundled memory-core | Поверхня допоміжних засобів memory manager/config/file/CLI | - | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime memory engine | Фасад runtime індексу/пошуку memory | - | `plugin-sdk/memory-core-host-engine-foundation` | Foundation engine хоста memory | Експорти foundation engine хоста memory | - | `plugin-sdk/memory-core-host-engine-embeddings` | Embedding engine хоста memory | Контракти embedding memory, доступ до реєстру, локальний provider і узагальнені batch/remote helper-и; конкретні remote provider живуть у своїх плагінах-власниках | - | `plugin-sdk/memory-core-host-engine-qmd` | QMD engine хоста memory | Експорти QMD engine хоста memory | - | `plugin-sdk/memory-core-host-engine-storage` | Storage engine хоста memory | Експорти storage engine хоста memory | - | `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста memory | Допоміжні засоби multimodal хоста memory | - | `plugin-sdk/memory-core-host-query` | Допоміжні засоби query хоста memory | Допоміжні засоби query хоста memory | - | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret хоста memory | Допоміжні засоби secret хоста memory | - | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста memory | Допоміжні засоби журналу подій хоста memory | - | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста memory | Допоміжні засоби статусу хоста memory | - | `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime хоста memory | Допоміжні засоби CLI runtime хоста memory | - | `plugin-sdk/memory-core-host-runtime-core` | Core runtime хоста memory | Допоміжні засоби core runtime хоста memory | - | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби file/runtime хоста memory | Допоміжні засоби file/runtime хоста memory | - | `plugin-sdk/memory-host-core` | Псевдонім core runtime хоста memory | Нейтральний щодо вендора псевдонім для допоміжних засобів core runtime хоста memory | - | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста memory | Нейтральний щодо вендора псевдонім для допоміжних засобів журналу подій хоста memory | - | `plugin-sdk/memory-host-files` | Псевдонім file/runtime хоста memory | Нейтральний щодо вендора псевдонім для допоміжних засобів file/runtime хоста memory | - | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого Markdown | Спільні допоміжні засоби керованого Markdown для плагінів, суміжних із memory | - | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Лінивий фасад runtime менеджера пошуку active-memory | - | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста memory | Нейтральний щодо вендора псевдонім для допоміжних засобів статусу хоста memory | - | `plugin-sdk/memory-lancedb` | Допоміжні засоби bundled memory-lancedb | Поверхня допоміжних засобів memory-lancedb | - | `plugin-sdk/testing` | Утиліти тестування | Застарілий широкий barrel сумісності; надавайте перевагу цільовим тестовим підшляхам, таким як `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/channel-target-testing`, `plugin-sdk/test-env` і `plugin-sdk/test-fixtures` | + | `plugin-sdk/channel-config-writes` | Helpers запису конфігурації каналу | Helpers авторизації запису конфігурації каналу | + | `plugin-sdk/channel-plugin-common` | Спільний prelude каналу | Exports спільного prelude channel plugin | + | `plugin-sdk/channel-status` | Helpers статусу каналу | Спільні helper-и snapshot/summary статусу каналу | + | `plugin-sdk/allowlist-config-edit` | Helpers конфігурації allowlist | Helper-и edit/read конфігурації allowlist | + | `plugin-sdk/group-access` | Helpers доступу до груп | Спільні helper-и рішень group-access | + | `plugin-sdk/direct-dm` | Helpers Direct-DM | Спільні helper-и auth/guard для direct-DM | + | `plugin-sdk/extension-shared` | Спільні helper-и extension | Примітиви helper-ів passive-channel/status і ambient proxy | + | `plugin-sdk/webhook-targets` | Helpers target Webhook | Реєстр target Webhook і helper-и встановлення route | + | `plugin-sdk/webhook-path` | Helpers шляху Webhook | Helper-и нормалізації шляху Webhook | + | `plugin-sdk/web-media` | Спільні helper-и web media | Helper-и завантаження віддалених/локальних медіа | + | `plugin-sdk/zod` | Re-export Zod | Повторно експортований `zod` для споживачів Plugin SDK | + | `plugin-sdk/memory-core` | Вбудовані helper-и memory-core | Поверхня helper-ів memory manager/config/file/CLI | + | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime рушія пам’яті | Фасад runtime індексу/пошуку пам’яті | + | `plugin-sdk/memory-core-host-engine-foundation` | Foundation engine хоста пам’яті | Exports foundation engine хоста пам’яті | + | `plugin-sdk/memory-core-host-engine-embeddings` | Embedding engine хоста пам’яті | Контракти embedding пам’яті, доступ до реєстру, локальний провайдер і універсальні helper-и batch/remote; конкретні віддалені провайдери живуть у плагінах-власниках | + | `plugin-sdk/memory-core-host-engine-qmd` | QMD engine хоста пам’яті | Exports QMD engine хоста пам’яті | + | `plugin-sdk/memory-core-host-engine-storage` | Storage engine хоста пам’яті | Exports storage engine хоста пам’яті | + | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні helper-и хоста пам’яті | Мультимодальні helper-и хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Helpers запитів хоста пам’яті | Helpers запитів хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Helpers secret хоста пам’яті | Helpers secret хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Helpers журналу подій хоста пам’яті | Helpers журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Helpers статусу хоста пам’яті | Helpers статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime хоста пам’яті | Helpers CLI runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-core` | Core runtime хоста пам’яті | Helpers core runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-files` | Helpers file/runtime хоста пам’яті | Helpers file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Аліас core runtime хоста пам’яті | Нейтральний щодо постачальника alias для helper-ів core runtime хоста пам’яті | + | `plugin-sdk/memory-host-events` | Аліас журналу подій хоста пам’яті | Нейтральний щодо постачальника alias для helper-ів журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Аліас file/runtime хоста пам’яті | Нейтральний щодо постачальника alias для helper-ів file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Helpers керованого markdown | Спільні helper-и керованого markdown для плагінів, суміжних із пам’яттю | + | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Лінивий runtime-фасад search-manager Active Memory | + | `plugin-sdk/memory-host-status` | Аліас статусу хоста пам’яті | Нейтральний щодо постачальника alias для helper-ів статусу хоста пам’яті | + | `plugin-sdk/memory-lancedb` | Вбудовані helper-и memory-lancedb | Поверхня helper-ів memory-lancedb | + | `plugin-sdk/testing` | Утиліти тестування | Застарілий широкий barrel сумісності; надавайте перевагу цільовим підшляхам тестування, таким як `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/channel-target-testing`, `plugin-sdk/test-env` і `plugin-sdk/test-fixtures` | -Ця таблиця навмисно містить поширену підмножину для міграції, а не всю -поверхню SDK. Повний список із понад 200 точок входу міститься в +Ця таблиця навмисно є поширеною підмножиною для міграції, а не повною +поверхнею SDK. Повний список із понад 200 точок входу міститься в `scripts/lib/plugin-sdk-entrypoints.json`. -Цей список усе ще включає деякі шви допоміжних засобів bundled plugin, такі як +Цей список усе ще містить деякі helper-seams для вбудованих плагінів, такі як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й надалі експортуються для -підтримки bundled plugin і сумісності, але навмисно -не включені до поширеної таблиці міграції та не є рекомендованою ціллю для -нового коду плагінів. +підтримки вбудованих плагінів і сумісності, але навмисно не включені до +поширеної таблиці міграції та не є рекомендованою ціллю для нового коду +плагінів. -Те саме правило застосовується й до інших сімейств bundled-helper, таких як: +Те саме правило застосовується до інших сімейств вбудованих helper-ів, таких як: -- допоміжні засоби підтримки браузера: `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` +- helper-и підтримки браузера: `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` - Matrix: `plugin-sdk/matrix*` - LINE: `plugin-sdk/line*` - IRC: `plugin-sdk/irc*` -- bundled helper/plugin поверхні, як-от `plugin-sdk/googlechat`, +- поверхні вбудованих helper-ів/плагінів, такі як `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`, `plugin-sdk/mattermost*`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, @@ -530,28 +537,28 @@ OpenClaw не вилучає й не переосмислює задокумен `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, і `plugin-sdk/voice-call` -`plugin-sdk/github-copilot-token` зараз надає вузьку поверхню допоміжних засобів токенів: +`plugin-sdk/github-copilot-token` наразі надає вузьку поверхню helper-ів токена `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken`. -Використовуйте найвужчий імпорт, який відповідає завданню. Якщо ви не можете знайти експорт, +Використовуйте найвужчий імпорт, що відповідає завданню. Якщо ви не можете знайти експорт, перевірте вихідний код у `src/plugin-sdk/` або запитайте в Discord. ## Активні застарівання -Вужчі застарівання, які застосовуються в межах Plugin SDK, контракту provider, -поверхні runtime і маніфесту. Кожне з них усе ще працює сьогодні, але буде вилучене +Вужчі застарівання, що застосовуються в межах Plugin SDK, контракту провайдера, +поверхні рантайму та маніфесту. Кожне з них іще працює сьогодні, але буде вилучене в одному з майбутніх мажорних релізів. Запис під кожним пунктом зіставляє старий API з його канонічною заміною. - + **Старе (`openclaw/plugin-sdk/command-auth`)**: `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage`. **Нове (`openclaw/plugin-sdk/command-status`)**: ті самі сигнатури, ті самі експорти — лише імпортовані з вужчого підшляху. `command-auth` - повторно експортує їх як сумісні stubs. + повторно експортує їх як compatibility stubs. ```typescript // Before @@ -563,7 +570,7 @@ OpenClaw не вилучає й не переосмислює задокумен - + **Старе**: `resolveInboundMentionRequirement({ facts, policy })` і `shouldDropInboundForMention(...)` з `openclaw/plugin-sdk/channel-inbound` або @@ -572,88 +579,89 @@ OpenClaw не вилучає й не переосмислює задокумен **Нове**: `resolveInboundMentionDecision({ facts, policy })` — повертає єдиний об’єкт рішення замість двох розділених викликів. - Downstream channel plugins (Slack, Discord, Matrix, MS Teams) уже + Downstream channel plugins (Slack, Discord, Matrix, Microsoft Teams) уже перейшли. - - `openclaw/plugin-sdk/channel-runtime` — це сумісний shim для старіших + + `openclaw/plugin-sdk/channel-runtime` — це compatibility shim для старіших channel plugins. Не імпортуйте його в новому коді; використовуйте - `openclaw/plugin-sdk/channel-runtime-context` для реєстрації runtime-об’єктів. + `openclaw/plugin-sdk/channel-runtime-context` для реєстрації об’єктів + рантайму. - Допоміжні засоби `channelActions*` у `openclaw/plugin-sdk/channel-actions` є - застарілими разом із сирими експортами каналів "actions". Натомість надавайте можливості - через семантичну поверхню `presentation` — channel plugins - оголошують, що саме вони відображають (cards, buttons, selects), а не які сирі - назви дій вони приймають. + Helpers `channelActions*` у `openclaw/plugin-sdk/channel-actions` є + застарілими разом із сирими експортами каналу "actions". Натомість відкривайте + можливості через семантичну поверхню `presentation` — channel plugins + оголошують, що саме вони рендерять (cards, buttons, selects), а не які сирі + назви actions вони приймають. - + **Старе**: фабрика `tool()` з `openclaw/plugin-sdk/provider-web-search`. - **Нове**: реалізуйте `createTool(...)` безпосередньо в provider plugin. - OpenClaw більше не потребує допоміжного засобу SDK для реєстрації wrapper-а tool. + **Нове**: реалізуйте `createTool(...)` безпосередньо в plugin провайдера. + OpenClaw більше не потребує helper-а SDK для реєстрації обгортки tool. - + **Старе**: `formatInboundEnvelope(...)` (і - `ChannelMessageForAgent.channelEnvelope`) для побудови плаского prompt - envelope простим текстом із вхідних повідомлень каналу. + `ChannelMessageForAgent.channelEnvelope`) для побудови плаского plaintext prompt + envelope із вхідних повідомлень каналу. - **Нове**: `BodyForAgent` плюс структуровані блоки контексту користувача. - Channel plugins прикріплюють метадані маршрутизації (thread, topic, reply-to, reactions) як - типізовані поля замість конкатенації їх у рядок prompt. Допоміжний засіб - `formatAgentEnvelope(...)` усе ще підтримується для синтезованих - envelope, видимих асистенту, але вхідні простотекстові envelope вже - поступово виводяться з ужитку. + **Нове**: `BodyForAgent` плюс структуровані блоки user-context. Channel + plugins додають метадані маршрутизації (thread, topic, reply-to, reactions) як + типізовані поля замість конкатенації їх у рядок prompt. Helper + `formatAgentEnvelope(...)` і далі підтримується для синтезованих + assistant-facing envelopes, але plaintext envelopes для вхідних повідомлень поступово + вилучаються. - Зони впливу: `inbound_claim`, `message_received` і будь-який користувацький - channel plugin, який післяобробляв текст `channelEnvelope`. + Зачеплені області: `inbound_claim`, `message_received` і будь-який custom + channel plugin, який постобробляв текст `channelEnvelope`. - - Чотири псевдоніми типів виявлення тепер є тонкими обгортками над - типами епохи catalog: + + Чотири alias-и типів виявлення тепер є тонкими обгортками над типами + епохи каталогу: - | Старий псевдонім | Новий тип | - | --------------------------- | ------------------------- | - | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` | - | `ProviderDiscoveryContext` | `ProviderCatalogContext` | - | `ProviderDiscoveryResult` | `ProviderCatalogResult` | - | `ProviderPluginDiscovery` | `ProviderPluginCatalog` | + | Старий alias | Новий тип | + | ------------------------- | ------------------------- | + | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` | + | `ProviderDiscoveryContext`| `ProviderCatalogContext` | + | `ProviderDiscoveryResult` | `ProviderCatalogResult` | + | `ProviderPluginDiscovery` | `ProviderPluginCatalog` | - Плюс застарілий статичний набір `ProviderCapabilities` — provider plugins - мають прикріплювати факти можливостей через контракт runtime provider, + Плюс застарілий статичний пакет `ProviderCapabilities` — provider plugins + мають прикріплювати capability facts через контракт runtime провайдера, а не через статичний об’єкт. - - **Старе** (три окремі хуки в `ProviderThinkingPolicy`): + + **Старе** (три окремі hook-и в `ProviderThinkingPolicy`): `isBinaryThinking(ctx)`, `supportsXHighThinking(ctx)` і `resolveDefaultThinkingLevel(ctx)`. **Нове**: єдиний `resolveThinkingProfile(ctx)`, який повертає `ProviderThinkingProfile` із канонічним `id`, необов’язковим `label` і - ранжованим списком рівнів. OpenClaw автоматично знижує застарілі збережені значення за - рангом профілю. + ранжованим списком рівнів. OpenClaw автоматично знижує рівень застарілих + збережених значень за рангом профілю. - Реалізуйте один хук замість трьох. Застарілі хуки продовжують працювати протягом - вікна застарівання, але не поєднуються з результатом профілю. + Реалізуйте один hook замість трьох. Застарілі hook-и продовжують працювати + протягом періоду застарівання, але не композуються з результатом профілю. - + **Старе**: реалізація `resolveExternalOAuthProfiles(...)` без - оголошення provider у маніфесті плагіна. + оголошення провайдера в маніфесті Plugin. - **Нове**: оголосіть `contracts.externalAuthProviders` у маніфесті плагіна + **Нове**: оголосіть `contracts.externalAuthProviders` у маніфесті Plugin **і** реалізуйте `resolveExternalAuthProfiles(...)`. Старий шлях - "auth fallback" виводить попередження під час runtime і буде вилучений. + "auth fallback" виводить попередження в рантаймі і буде вилучений. ```json { @@ -665,53 +673,53 @@ OpenClaw не вилучає й не переосмислює задокумен - + **Старе** поле маніфесту: `providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }`. - **Нове**: віддзеркальте той самий пошук env-var у `setup.providers[].envVars` - у маніфесті. Це об’єднує метадані env setup/status в одному - місці й дозволяє уникнути запуску runtime плагіна лише для відповіді на - запити щодо env-var. + **Нове**: продублюйте той самий пошук env-var у `setup.providers[].envVars` + у маніфесті. Це об’єднує метадані env для setup/status в одному + місці й дає змогу не запускати runtime плагіна лише для відповіді на + пошук env-var. - `providerAuthEnvVars` залишається підтримуваним через адаптер сумісності - до завершення вікна застарівання. + `providerAuthEnvVars` і далі підтримується через адаптер сумісності + до завершення періоду застарівання. - + **Старе**: три окремі виклики — `api.registerMemoryPromptSection(...)`, `api.registerMemoryFlushPlan(...)`, `api.registerMemoryRuntime(...)`. - **Нове**: один виклик у API memory-state — + **Нове**: один виклик у API state пам’яті — `registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime })`. - Ті самі слоти, один виклик реєстрації. Додаткові допоміжні засоби memory + Ті самі слоти, один виклик реєстрації. Додаткові helper-и пам’яті (`registerMemoryPromptSupplement`, `registerMemoryCorpusSupplement`, - `registerMemoryEmbeddingProvider`) не зачіпаються. + `registerMemoryEmbeddingProvider`) не зачеплено. - - Два застарілі псевдоніми типів усе ще експортуються з `src/plugins/runtime/types.ts`: + + Два застарілі alias-и типів і далі експортуються з `src/plugins/runtime/types.ts`: - | Старе | Нове | - | ---------------------------- | ------------------------------ | - | `SubagentReadSessionParams` | `SubagentGetSessionMessagesParams` | - | `SubagentReadSessionResult` | `SubagentGetSessionMessagesResult` | + | Старе | Нове | + | ----------------------------- | ------------------------------- | + | `SubagentReadSessionParams` | `SubagentGetSessionMessagesParams` | + | `SubagentReadSessionResult` | `SubagentGetSessionMessagesResult` | - Метод runtime `readSession` є застарілим на користь - `getSessionMessages`. Та сама сигнатура; старий метод викликає - новий. + Метод рантайму `readSession` є застарілим на користь + `getSessionMessages`. Та сама сигнатура; старий метод делегує виклик + новому. - **Старе**: `runtime.tasks.flow` (в однині) повертав живий accessor task-flow. + **Старе**: `runtime.tasks.flow` (однина) повертав accessor живого task-flow. - **Нове**: `runtime.tasks.flows` (у множині) повертає доступ до TaskFlow на основі DTO, - який є безпечним для імпорту й не потребує завантаження повного runtime завдань. + **Нове**: `runtime.tasks.flows` (множина) повертає доступ до TaskFlow на основі DTO, + який є безпечним для імпорту та не потребує завантаження повного runtime завдань. ```typescript // Before @@ -722,17 +730,17 @@ OpenClaw не вилучає й не переосмислює задокумен - - Розглянуто вище в розділі "Як виконати міграцію → Міграція розширень результатів інструментів Pi на - middleware". Додано тут для повноти: вилучений шлях лише для Pi + + Розглянуто вище в "Як виконати міграцію → Перенесіть розширення результатів інструментів Pi на + middleware". Тут наведено для повноти: вилучений шлях лише для Pi `api.registerEmbeddedExtensionFactory(...)` замінено на - `api.registerAgentToolResultMiddleware(...)` з явним списком runtime - у `contracts.agentToolResultMiddleware`. + `api.registerAgentToolResultMiddleware(...)` з явним списком runtime у + `contracts.agentToolResultMiddleware`. - + `OpenClawSchemaType`, повторно експортований із `openclaw/plugin-sdk`, тепер є - однорядковим псевдонімом для `OpenClawConfig`. Надавайте перевагу канонічній назві. + однорядковим alias для `OpenClawConfig`. Надавайте перевагу канонічній назві. ```typescript // Before @@ -745,21 +753,21 @@ OpenClaw не вилучає й не переосмислює задокумен -Застарівання на рівні extension (усередині bundled channel/provider plugins у -`extensions/`) відстежуються у власних barrel-файлах `api.ts` і `runtime-api.ts`. +Застарівання на рівні extension (усередині вбудованих channel/provider plugins у +`extensions/`) відстежуються у їхніх власних barrel-файлах `api.ts` і `runtime-api.ts`. Вони не впливають на контракти сторонніх плагінів і тут не перелічені. -Якщо ви безпосередньо споживаєте локальний barrel bundled plugin, перед -оновленням прочитайте коментарі про застарівання в цьому barrel. +Якщо ви безпосередньо використовуєте локальний barrel вбудованого плагіна, +перед оновленням прочитайте коментарі про застарівання в цьому barrel-файлі. -## Хронологія вилучення +## Часова шкала вилучення -| Коли | Що відбувається | -| ---------------------- | ---------------------------------------------------------------------- | -| **Зараз** | Застарілі поверхні виводять попередження під час runtime | -| **Наступний мажорний реліз** | Застарілі поверхні буде вилучено; плагіни, які все ще їх використовують, завершаться з помилкою | +| Коли | Що відбувається | +| ---------------------- | ----------------------------------------------------------------------- | +| **Зараз** | Застарілі поверхні виводять попередження в рантаймі | +| **Наступний мажорний реліз** | Застарілі поверхні буде вилучено; плагіни, які все ще їх використовують, перестануть працювати | -Усі core plugins уже мігровано. Зовнішнім плагінам слід виконати міграцію +Усі core plugins уже мігровано. Зовнішні плагіни мають виконати міграцію до наступного мажорного релізу. ## Тимчасове приглушення попереджень @@ -771,13 +779,13 @@ OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run ``` -Це тимчасовий обхідний шлях, а не постійне рішення. +Це тимчасовий обхідний механізм, а не постійне рішення. -## Пов’язані матеріали +## Пов’язане - [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший Plugin - [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпорту підшляхів - [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — створення channel plugins -- [Плагіни provider](/uk/plugins/sdk-provider-plugins) — створення provider plugins -- [Внутрішня будова плагінів](/uk/plugins/architecture) — детальний розбір архітектури -- [Маніфест Plugin](/uk/plugins/manifest) — довідник зі схеми маніфесту +- [Плагіни провайдерів](/uk/plugins/sdk-provider-plugins) — створення provider plugins +- [Внутрішня будова Plugin](/uk/plugins/architecture) — глибоке занурення в архітектуру +- [Маніфест Plugin](/uk/plugins/manifest) — довідник схеми маніфесту diff --git a/docs/uk/plugins/sdk-overview.md b/docs/uk/plugins/sdk-overview.md index efe89bbfe..0d80d6de8 100644 --- a/docs/uk/plugins/sdk-overview.md +++ b/docs/uk/plugins/sdk-overview.md @@ -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 і ядром. Ця сторінка є +довідником щодо **того, що імпортувати** і **що можна зареєструвати**. Шукаєте натомість практичний посібник? -- Перший плагін? Почніть із [Створення плагінів](/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). -## Правило імпорту +## Угода щодо імпорту Завжди імпортуйте з конкретного підшляху: @@ -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. - Не імпортуйте зручні 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. ## Довідник підшляхів -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 | - Зарезервовані простори назв адміністратора ядра (`config.*`, `exec.approvals.*`, `wizard.*`, - `update.*`) завжди залишаються `operator.admin`, навіть якщо плагін намагається призначити - вужчу область видимості методу gateway. Для методів, що належать плагіну, - віддавайте перевагу префіксам, специфічним для плагіна. + Зарезервовані простори назв адміністрування ядра (`config.*`, `exec.approvals.*`, `wizard.*`, + `update.*`) завжди залишаються `operator.admin`, навіть якщо plugin намагається призначити + вужчу область методу gateway. Для методів, що належать plugin, + надавайте перевагу префіксам, специфічним для plugin. - - Вбудовані плагіни можуть використовувати `api.registerAgentToolResultMiddleware(...)`, коли + + Вбудовані 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 було видалено. ### Реєстрація виявлення 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` backend стає префіксом provider у посиланнях на моделі, як-от `codex-cli/gpt-5`. +- `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.`. - Конфігурація користувача все одно має пріоритет. OpenClaw об’єднує `agents.defaults.cliBackends.` поверх - значення за замовчуванням плагіна перед запуском 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` | Специфічна для плагіна конфігурація з `plugins.entries..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` | Специфічна для plugin конфігурація з `plugins.entries..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 # Полегшена точка входу лише для налаштування (необов’язково) ``` - Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/` + Ніколи не імпортуйте власний plugin через `openclaw/plugin-sdk/` у production-коді. Спрямовуйте внутрішні імпорти через `./api.ts` або `./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт. -Публічні поверхні вбудованих плагінів, завантажувані через 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 + разом із допоміжними засобами онбордингу/конфігурації. Production-код розширень також має уникати імпортів `openclaw/plugin-sdk/`. - Якщо helper справді є спільним, перенесіть його до нейтрального підшляху SDK, + Якщо допоміжний засіб справді є спільним, підвищте його до нейтрального підшляху SDK, такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої - поверхні, орієнтованої на capability, замість зв’язування двох плагінів між собою. + поверхні, орієнтованої на можливості, замість зчеплення двох plugins між собою. ## Пов’язані матеріали - Опції `definePluginEntry` і `defineChannelPluginEntry`. + Параметри `definePluginEntry` і `defineChannelPluginEntry`. Повний довідник простору назв `api.runtime`. @@ -388,7 +384,7 @@ my-plugin/ Міграція із застарілих поверхонь. - - Поглиблена архітектура та модель capability. + + Поглиблена архітектура та модель можливостей. diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md index fcdc9eb12..8833d5b27 100644 --- a/docs/uk/plugins/sdk-subpaths.md +++ b/docs/uk/plugins/sdk-subpaths.md @@ -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` | @@ -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 | - + | Підшлях | Ключові експорти | | --- | --- | | `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` | Вузькі допоміжні засоби для режиму активації групи та розбору команд | - + | Підшлях | Ключові експорти | | --- | --- | - | `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 запиту | | Підшлях | Ключові експорти | | --- | --- | - | `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` | | Підшлях | Ключові експорти | | --- | --- | - | `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 | | Підшлях | Ключові експорти | | --- | --- | - | `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 | | Сімейство | Поточні підшляхи | Призначення | | --- | --- | --- | - | 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` | @@ -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)