From aed949068f41ca248bcc4fe5f4a2b31402ea943a Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Wed, 29 Apr 2026 11:26:16 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/telegram.md | 446 +++++++++--------- docs/uk/plugins/sdk-migration.md | 753 +++++++++++++++---------------- docs/uk/plugins/sdk-subpaths.md | 426 ++++++++--------- 3 files changed, 812 insertions(+), 813 deletions(-) diff --git a/docs/uk/channels/telegram.md b/docs/uk/channels/telegram.md index 5145543b4..5cef61a57 100644 --- a/docs/uk/channels/telegram.md +++ b/docs/uk/channels/telegram.md @@ -1,28 +1,28 @@ --- read_when: - Робота над функціями Telegram або Webhook -summary: Статус підтримки, можливості та налаштування бота Telegram +summary: Стан підтримки, можливості та конфігурація бота Telegram title: Telegram x-i18n: - generated_at: "2026-04-29T05:56:58Z" + generated_at: "2026-04-29T11:22:40Z" model: gpt-5.5 provider: openai - source_hash: 0bf75d82f21658a1ca547b2e4ab229f7b6e47537a2379bf52bd7a18f0677664b + source_hash: 06f186bfe9e9f8a90219cc4f440dcc79fdeb8d1b7a31799c934339680d6812ef source_path: channels/telegram.md workflow: 16 --- -Готово для production для DM ботів і груп через grammY. Long polling є режимом за замовчуванням; режим Webhook є необов’язковим. +Готово до production для особистих повідомлень ботам і груп через grammY. Довге опитування є режимом за замовчуванням; режим Webhook необов’язковий. - Політика DM за замовчуванням для Telegram — сполучення. + Типова політика DM для Telegram — сполучення. - Міжканальна діагностика та інструкції з відновлення. + Міжканальна діагностика й інструкції з відновлення. - Повні шаблони й приклади конфігурації каналів. + Повні шаблони конфігурації каналів і приклади. @@ -30,9 +30,9 @@ x-i18n: - Відкрийте Telegram і почніть чат із **@BotFather** (переконайтеся, що handle точно `@BotFather`). + Відкрийте Telegram і напишіть **@BotFather** (переконайтеся, що handle точно `@BotFather`). - Виконайте `/newbot`, дотримуйтеся підказок і збережіть токен. + Виконайте `/newbot`, дотримуйтесь підказок і збережіть токен. @@ -51,12 +51,12 @@ x-i18n: } ``` - Резервний варіант через env: `TELEGRAM_BOT_TOKEN=...` (лише обліковий запис за замовчуванням). - Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, потім запустіть Gateway. + Резервний env: `TELEGRAM_BOT_TOKEN=...` (лише обліковий запис за замовчуванням). + Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, потім запустіть gateway. - + ```bash openclaw gateway @@ -74,34 +74,34 @@ openclaw pairing approve telegram -Порядок визначення токена враховує облікові записи. На практиці значення config мають пріоритет над резервним env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням. +Порядок визначення токена враховує обліковий запис. На практиці значення config мають пріоритет над резервним env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням. ## Налаштування на боці Telegram - - Боти Telegram за замовчуванням використовують **Privacy Mode**, який обмежує, які групові повідомлення вони отримують. + + Боти Telegram за замовчуванням використовують **режим приватності**, який обмежує, які групові повідомлення вони отримують. - Якщо бот має бачити всі повідомлення групи, виконайте одне з такого: + Якщо бот має бачити всі групові повідомлення, або: - вимкніть режим приватності через `/setprivacy`, або - зробіть бота адміністратором групи. - Після перемикання режиму приватності видаліть і повторно додайте бота в кожній групі, щоб Telegram застосував зміну. + Після перемикання режиму приватності видаліть і знову додайте бота в кожну групу, щоб Telegram застосував зміну. - Статус адміністратора керується в налаштуваннях групи Telegram. + Статус адміністратора контролюється в налаштуваннях групи Telegram. - Боти-адміністратори отримують усі повідомлення групи, що корисно для постійно активної поведінки в групі. + Боти-адміністратори отримують усі групові повідомлення, що корисно для постійно активної поведінки в групі. - - `/setjoingroups`, щоб дозволити/заборонити додавання до груп + - `/setjoingroups` для дозволу/заборони додавання до груп - `/setprivacy` для поведінки видимості в групах @@ -111,35 +111,35 @@ openclaw pairing approve telegram - `channels.telegram.dmPolicy` керує доступом до особистих повідомлень: + `channels.telegram.dmPolicy` керує доступом до прямих повідомлень: - `pairing` (за замовчуванням) - - `allowlist` (потребує принаймні одного ID відправника в `allowFrom`) + - `allowlist` (потребує щонайменше одного ID відправника в `allowFrom`) - `open` (потребує, щоб `allowFrom` містив `"*"`) - `disabled` - `dmPolicy: "open"` з `allowFrom: ["*"]` дозволяє будь-якому обліковому запису Telegram, який знайде або вгадає ім’я користувача бота, керувати ботом. Використовуйте це лише для навмисно публічних ботів із суворо обмеженими інструментами; боти з одним власником мають використовувати `allowlist` із числовими ID користувачів. + `dmPolicy: "open"` з `allowFrom: ["*"]` дозволяє будь-якому обліковому запису Telegram, який знайде або вгадає ім’я користувача бота, керувати ботом. Використовуйте це лише для навмисно публічних ботів із жорстко обмеженими інструментами; боти з одним власником мають використовувати `allowlist` із числовими ID користувачів. `channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` приймаються й нормалізуються. - У конфігураціях із кількома обліковими записами обмежувальний верхньорівневий `channels.telegram.allowFrom` розглядається як межа безпеки: записи рівня облікового запису `allowFrom: ["*"]` не роблять цей обліковий запис публічним, якщо ефективний allowlist облікового запису після злиття все ще не містить явний wildcard. - `dmPolicy: "allowlist"` з порожнім `allowFrom` блокує всі DM і відхиляється валідацією config. + У конфігураціях із кількома обліковими записами обмежувальний верхньорівневий `channels.telegram.allowFrom` трактується як межа безпеки: записи рівня облікового запису `allowFrom: ["*"]` не роблять цей обліковий запис публічним, якщо ефективний allowlist облікового запису після злиття все ще не містить явного wildcard. + `dmPolicy: "allowlist"` із порожнім `allowFrom` блокує всі DM і відхиляється валідацією конфігурації. Налаштування запитує лише числові ID користувачів. - Якщо ви оновилися й ваша config містить записи allowlist `@username`, виконайте `openclaw doctor --fix`, щоб їх розв’язати (best-effort; потребує токена бота Telegram). + Якщо ви оновилися й ваша конфігурація містить записи allowlist `@username`, запустіть `openclaw doctor --fix`, щоб їх визначити (найкраще з можливого; потребує токена бота Telegram). Якщо раніше ви покладалися на файли allowlist зі сховища сполучень, `openclaw doctor --fix` може відновити записи в `channels.telegram.allowFrom` у потоках allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID). - Для ботів з одним власником надавайте перевагу `dmPolicy: "allowlist"` з явними числовими ID `allowFrom`, щоб політика доступу залишалася сталою в config (замість залежності від попередніх схвалень сполучення). + Для ботів з одним власником надавайте перевагу `dmPolicy: "allowlist"` із явними числовими ID `allowFrom`, щоб політика доступу була сталою в конфігурації (замість залежності від попередніх схвалень сполучення). - Поширена плутанина: схвалення сполучення DM не означає «цей відправник авторизований усюди». - Сполучення надає доступ до DM. Якщо власник команд ще не існує, перше схвалене сполучення також встановлює `commands.ownerAllowFrom`, щоб команди лише для власника та схвалення exec мали явний обліковий запис оператора. - Авторизація відправника в групі все ще походить з явних allowlist у config. - Якщо ви хочете «я авторизований один раз, і працюють як DM, так і групові команди», додайте свій числовий ID користувача Telegram у `channels.telegram.allowFrom`; для команд лише для власника переконайтеся, що `commands.ownerAllowFrom` містить `telegram:`. + Поширена плутанина: схвалення сполучення DM не означає «цей відправник авторизований всюди». + Сполучення надає доступ до DM. Якщо власника команд ще немає, перше схвалене сполучення також задає `commands.ownerAllowFrom`, щоб команди лише для власника й схвалення exec мали явний обліковий запис оператора. + Авторизація відправника в групі все одно походить із явних allowlist у конфігурації. + Якщо ви хочете «я авторизований один раз, і працюють і DM, і групові команди», помістіть свій числовий ID користувача Telegram у `channels.telegram.allowFrom`; для команд лише для власника переконайтеся, що `commands.ownerAllowFrom` містить `telegram:`. ### Як знайти свій ID користувача Telegram Безпечніше (без стороннього бота): - 1. Напишіть DM своєму боту. - 2. Виконайте `openclaw logs --follow`. + 1. Напишіть своєму боту в DM. + 2. Запустіть `openclaw logs --follow`. 3. Прочитайте `from.id`. Офіційний метод Bot API: @@ -153,7 +153,7 @@ curl "https://api.telegram.org/bot/getUpdates" - Два елементи керування застосовуються разом: + Разом застосовуються два елементи керування: 1. **Які групи дозволені** (`channels.telegram.groups`) - немає config `groups`: @@ -161,22 +161,22 @@ curl "https://api.telegram.org/bot/getUpdates" - з `groupPolicy: "allowlist"` (за замовчуванням): групи блокуються, доки ви не додасте записи `groups` (або `"*"`) - `groups` налаштовано: працює як allowlist (явні ID або `"*"`) - 2. **Яким відправникам дозволено в групах** (`channels.telegram.groupPolicy`) + 2. **Які відправники дозволені в групах** (`channels.telegram.groupPolicy`) - `open` - `allowlist` (за замовчуванням) - `disabled` - `groupAllowFrom` використовується для фільтрації відправників у групах. Якщо не задано, Telegram повертається до `allowFrom`. + `groupAllowFrom` використовується для фільтрації відправників у групі. Якщо не задано, Telegram повертається до `allowFrom`. Записи `groupAllowFrom` мають бути числовими ID користувачів Telegram (префікси `telegram:` / `tg:` нормалізуються). - Не додавайте ID чатів груп або супергруп Telegram у `groupAllowFrom`. Від’ємні ID чатів мають бути в `channels.telegram.groups`. + Не додавайте ID чатів груп або супергруп Telegram у `groupAllowFrom`. Від’ємні ID чатів належать до `channels.telegram.groups`. Нечислові записи ігноруються для авторизації відправника. - Межа безпеки (`2026.2.25+`): авторизація відправника в групі **не** успадковує схвалення зі сховища сполучень DM. - Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` на рівні групи/теми. + Межа безпеки (`2026.2.25+`): автентифікація відправника групи **не** успадковує схвалення зі сховища сполучень DM. + Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` для конкретної групи/теми. Якщо `groupAllowFrom` не задано, Telegram повертається до config `allowFrom`, а не до сховища сполучень. Практичний шаблон для ботів з одним власником: задайте свій ID користувача в `channels.telegram.allowFrom`, залиште `groupAllowFrom` незаданим і дозвольте цільові групи в `channels.telegram.groups`. - Примітка щодо runtime: якщо `channels.telegram` повністю відсутній, runtime за замовчуванням fail-closed до `groupPolicy="allowlist"`, якщо `channels.defaults.groupPolicy` не задано явно. + Примітка runtime: якщо `channels.telegram` повністю відсутній, runtime за замовчуванням fail-closed до `groupPolicy="allowlist"`, якщо `channels.defaults.groupPolicy` не задано явно. - Приклад: дозволити будь-якому учаснику в одній конкретній групі: + Приклад: дозволити будь-якого учасника в одній конкретній групі: ```json5 { @@ -213,32 +213,32 @@ curl "https://api.telegram.org/bot/getUpdates" Поширена помилка: `groupAllowFrom` не є allowlist груп Telegram. - - Розміщуйте від’ємні ID чатів груп або супергруп Telegram, як-от `-1001234567890`, у `channels.telegram.groups`. - - Розміщуйте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть запускати бота. - - Використовуйте `groupAllowFrom: ["*"]` лише коли хочете, щоб будь-який учасник дозволеної групи міг говорити з ботом. + - Поміщайте від’ємні ID чатів груп або супергруп Telegram, як-от `-1001234567890`, у `channels.telegram.groups`. + - Поміщайте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть запускати бота. + - Використовуйте `groupAllowFrom: ["*"]` лише коли хочете, щоб будь-який учасник дозволеної групи міг спілкуватися з ботом. - - Відповіді в групах за замовчуванням потребують згадки. + + Групові відповіді за замовчуванням потребують згадування. - Згадка може надходити з: + Згадування може походити з: - - нативної згадки `@botusername`, або - - шаблонів згадок у: + - нативного згадування `@botusername`, або + - шаблонів згадування в: - `agents.list[].groupChat.mentionPatterns` - `messages.groupChat.mentionPatterns` - Перемикачі команд рівня сесії: + Перемикачі команд рівня сеансу: - `/activation always` - `/activation mention` - Вони оновлюють лише стан сесії. Для збереження використовуйте config. + Вони оновлюють лише стан сеансу. Для сталості використовуйте конфігурацію. - Приклад сталої config: + Приклад сталої конфігурації: ```json5 { @@ -252,44 +252,44 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Як отримати ID групового чату: + Отримання ID групового чату: - - переслати повідомлення групи до `@userinfobot` / `@getidsbot` - - або прочитати `chat.id` з `openclaw logs --follow` - - або переглянути Bot API `getUpdates` + - перешліть групове повідомлення до `@userinfobot` / `@getidsbot` + - або прочитайте `chat.id` з `openclaw logs --follow` + - або перевірте Bot API `getUpdates` ## Поведінка runtime -- Telegram належить процесу Gateway. -- Маршрутизація детермінована: вхідні повідомлення Telegram отримують відповідь у Telegram (модель не вибирає канали). -- Вхідні повідомлення нормалізуються в спільний конверт каналу з метаданими відповіді та placeholder для медіа. -- Групові сесії ізольовані за ID групи. Теми форуму додають `:topic:`, щоб теми залишалися ізольованими. -- DM повідомлення можуть містити `message_thread_id`; OpenClaw маршрутизує їх із thread-aware ключами сесій і зберігає ID thread для відповідей. -- Long polling використовує grammY runner з послідовністю на рівні чату/thread. Загальна конкурентність runner sink використовує `agents.defaults.maxConcurrent`. -- Long polling захищений усередині кожного процесу Gateway, щоб лише один активний poller міг використовувати токен бота одночасно. Якщо ви все ще бачите конфлікти `getUpdates` 409, інший OpenClaw Gateway, script або зовнішній poller, імовірно, використовує той самий токен. -- Перезапуски watchdog для long-polling за замовчуванням запускаються після 120 секунд без завершеної liveness `getUpdates`. Збільшуйте `channels.telegram.pollingStallThresholdMs` лише якщо ваше розгортання все ще бачить хибні перезапуски через polling-stall під час тривалої роботи. Значення в мілісекундах і дозволене від `30000` до `600000`; підтримуються перевизначення на рівні облікового запису. -- Telegram Bot API не підтримує read-receipt (`sendReadReceipts` не застосовується). +- Telegram належить процесу gateway. +- Маршрутизація детермінована: вхідні повідомлення Telegram відповідають назад у Telegram (модель не вибирає канали). +- Вхідні повідомлення нормалізуються в спільний конверт каналу з метаданими відповіді та placeholders для медіа. +- Групові сеанси ізольовані за ID групи. Теми форуму додають `:topic:`, щоб теми залишалися ізольованими. +- Повідомлення DM можуть містити `message_thread_id`; OpenClaw маршрутизує їх із ключами сеансів, що враховують треди, і зберігає ID треду для відповідей. +- Довге опитування використовує grammY runner із послідовністю для кожного чату/треду. Загальна конкурентність runner sink використовує `agents.defaults.maxConcurrent`. +- Довге опитування захищене всередині кожного процесу gateway, щоб лише один активний poller міг використовувати токен бота одночасно. Якщо ви все ще бачите конфлікти `getUpdates` 409, інший gateway OpenClaw, скрипт або зовнішній poller, імовірно, використовує той самий токен. +- Перезапуски watchdog довгого опитування за замовчуванням запускаються після 120 секунд без завершеної liveness `getUpdates`. Збільшуйте `channels.telegram.pollingStallThresholdMs` лише якщо ваше розгортання все ще бачить хибні перезапуски через polling-stall під час довготривалої роботи. Значення в мілісекундах і дозволене від `30000` до `600000`; підтримуються перевизначення для окремих облікових записів. +- Telegram Bot API не підтримує сповіщення про прочитання (`sendReadReceipts` не застосовується). ## Довідник функцій - OpenClaw може транслювати часткові відповіді в реальному часі: + OpenClaw може стримити часткові відповіді в реальному часі: - прямі чати: повідомлення попереднього перегляду + `editMessageText` - групи/теми: повідомлення попереднього перегляду + `editMessageText` Вимога: - - `channels.telegram.streaming` є `off | partial | block | progress` (за замовчуванням: `partial`) - - `progress` зіставляється з `partial` у Telegram (сумісність із міжканальним іменуванням) - - `streaming.preview.toolProgress` керує тим, чи оновлення інструментів/прогресу повторно використовують те саме відредаговане повідомлення попереднього перегляду (за замовчуванням: `true`, коли preview streaming активний) - - застарілі значення `channels.telegram.streamMode` і boolean `streaming` виявляються; виконайте `openclaw doctor --fix`, щоб перенести їх у `channels.telegram.streaming.mode` + - `channels.telegram.streaming` має значення `off | partial | block | progress` (за замовчуванням: `partial`) + - `progress` зіставляється з `partial` у Telegram (сумісність із міжканальним найменуванням) + - `streaming.preview.toolProgress` керує тим, чи оновлення інструментів/прогресу повторно використовують те саме редаговане повідомлення попереднього перегляду (за замовчуванням: `true`, коли активний preview streaming) + - застарілі `channels.telegram.streamMode` і булеві значення `streaming` виявляються; запустіть `openclaw doctor --fix`, щоб перенести їх у `channels.telegram.streaming.mode` - Оновлення попереднього перегляду tool-progress — це короткі рядки "Working...", які показуються під час роботи інструментів, наприклад виконання команд, читання файлів, оновлення планування або підсумки патчів. Telegram залишає їх увімкненими за замовчуванням, щоб відповідати випущеній поведінці OpenClaw від `v2026.4.22` і пізніше. Щоб залишити відредагований попередній перегляд для тексту відповіді, але приховати рядки tool-progress, задайте: + Оновлення попереднього перегляду прогресу інструментів — це короткі рядки «Працюю...», які показуються, поки виконуються інструменти, наприклад виконання команд, читання файлів, оновлення планування або підсумки patch. Telegram залишає їх увімкненими за замовчуванням, щоб відповідати випущеній поведінці OpenClaw від `v2026.4.22` і пізніше. Щоб зберегти редагований попередній перегляд для тексту відповіді, але приховати рядки прогресу інструментів, задайте: ```json { @@ -306,16 +306,16 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Використовуйте `streaming.mode: "off"` лише коли хочете доставку тільки фінального повідомлення: редагування попереднього перегляду Telegram вимикаються, а загальні повідомлення інструментів/прогресу пригнічуються замість надсилання окремими повідомленнями "Working...". Запити на схвалення, media payloads і помилки все ще маршрутизуються через звичайну фінальну доставку. Використовуйте `streaming.preview.toolProgress: false`, коли хочете залишити лише редагування попереднього перегляду відповіді, приховавши рядки статусу tool-progress. + Використовуйте `streaming.mode: "off"` лише коли хочете доставку тільки фінальної відповіді: редагування попереднього перегляду Telegram вимкнені, а загальні повідомлення інструментів/прогресу пригнічуються замість надсилання як окремі повідомлення «Працюю...». Запити схвалення, медіа payloads і помилки все ще маршрутизуються через звичайну фінальну доставку. Використовуйте `streaming.preview.toolProgress: false`, коли хочете лише зберегти редагування попереднього перегляду відповіді, приховавши рядки статусу прогресу інструментів. Для відповідей лише з текстом: - - короткі попередні перегляди в DM/групі/топіку: OpenClaw зберігає те саме повідомлення попереднього перегляду й виконує фінальне редагування на місці - - попередні перегляди, старші приблизно за одну хвилину: OpenClaw надсилає завершену відповідь як нове фінальне повідомлення, а потім очищає попередній перегляд, тому видима позначка часу в Telegram відображає час завершення, а не час створення попереднього перегляду + - короткі попередні перегляди DM/групи/теми: OpenClaw зберігає те саме повідомлення попереднього перегляду й виконує фінальне редагування на місці + - попередні перегляди, старші приблизно за одну хвилину: OpenClaw надсилає завершену відповідь як нове фінальне повідомлення, а потім очищає попередній перегляд, тож видима часова позначка Telegram відображає час завершення, а не час створення попереднього перегляду - Для складних відповідей (наприклад, медіанавантажень) OpenClaw повертається до звичайної фінальної доставки, а потім очищає повідомлення попереднього перегляду. + Для складних відповідей (наприклад, медіа-вмісту) OpenClaw повертається до звичайної фінальної доставки, а потім очищає повідомлення попереднього перегляду. - Потокове передавання попереднього перегляду відокремлене від блокового потокового передавання. Коли блокове потокове передавання явно ввімкнене для Telegram, OpenClaw пропускає потік попереднього перегляду, щоб уникнути подвійного потокового передавання. + Потокове передавання попереднього перегляду відокремлене від блокового потокового передавання. Коли блокове потокове передавання явно ввімкнено для Telegram, OpenClaw пропускає потік попереднього перегляду, щоб уникнути подвійного потокового передавання. Якщо нативний транспорт чернеток недоступний або відхилений, OpenClaw автоматично повертається до `sendMessage` + `editMessageText`. @@ -326,25 +326,25 @@ curl "https://api.telegram.org/bot/getUpdates" - + Вихідний текст використовує Telegram `parse_mode: "HTML"`. - - Текст, подібний до Markdown, рендериться в безпечний для Telegram HTML. - - Сирий HTML від моделі екранується, щоб зменшити кількість помилок парсингу Telegram. + - Текст у стилі Markdown перетворюється на безпечний для Telegram HTML. + - Необроблений HTML від моделі екранується, щоб зменшити кількість помилок розбору Telegram. - Якщо Telegram відхиляє розібраний HTML, OpenClaw повторює спробу як звичайний текст. Попередні перегляди посилань увімкнені за замовчуванням і можуть бути вимкнені через `channels.telegram.linkPreview: false`. - + Реєстрація меню команд Telegram обробляється під час запуску за допомогою `setMyCommands`. - Типові значення нативних команд: + Стандартні значення нативних команд: - `commands.native: "auto"` вмикає нативні команди для Telegram - Додайте користувацькі записи меню команд: + Додайте власні записи меню команд: ```json5 { @@ -361,40 +361,40 @@ curl "https://api.telegram.org/bot/getUpdates" Правила: - - імена нормалізуються (видаляється початковий `/`, переводяться в нижній регістр) + - імена нормалізуються (прибирається початковий `/`, переводяться в нижній регістр) - допустимий шаблон: `a-z`, `0-9`, `_`, довжина `1..32` - - користувацькі команди не можуть перевизначати нативні команди - - конфлікти/дублікати пропускаються й записуються в журнал + - власні команди не можуть перевизначати нативні команди + - конфлікти/дублікати пропускаються та журналюються Примітки: - - користувацькі команди є лише записами меню; вони не реалізують поведінку автоматично - - команди plugin/skill усе ще можуть працювати під час введення, навіть якщо їх не показано в меню Telegram + - власні команди є лише записами меню; вони не реалізують поведінку автоматично + - команди plugin/skill можуть усе ще працювати під час введення, навіть якщо їх не показано в меню Telegram - Якщо нативні команди вимкнено, вбудовані команди видаляються. Користувацькі/plugin-команди все ще можуть реєструватися, якщо це налаштовано. + Якщо нативні команди вимкнено, вбудовані команди видаляються. Власні команди/команди plugin можуть усе ще реєструватися, якщо налаштовані. - Поширені помилки налаштування: + Типові помилки налаштування: - - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після обрізання; зменште кількість plugin/skill/користувацьких команд або вимкніть `channels.telegram.commands.native`. - - Помилка `deleteWebhook`, `deleteMyCommands` або `setMyCommands` з `404: Not Found`, тоді як прямі команди curl до Bot API працюють, може означати, що `channels.telegram.apiRoot` було встановлено на повну кінцеву точку `/bot`. `apiRoot` має бути лише коренем Bot API, а `openclaw doctor --fix` видаляє випадковий кінцевий `/bot`. - - `getMe returned 401` означає, що Telegram відхилив налаштований токен бота. Оновіть `botToken`, `tokenFile` або `TELEGRAM_BOT_TOKEN` поточним токеном BotFather; OpenClaw зупиняється перед опитуванням, тому це не повідомляється як помилка очищення Webhook. - - `setMyCommands failed` з помилками мережі/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблокований. + - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після обрізання; зменште кількість команд plugin/skill/власних команд або вимкніть `channels.telegram.commands.native`. + - Помилка `deleteWebhook`, `deleteMyCommands` або `setMyCommands` з `404: Not Found`, коли прямі команди curl Bot API працюють, може означати, що `channels.telegram.apiRoot` було задано як повну кінцеву точку `/bot`. `apiRoot` має бути лише коренем Bot API, а `openclaw doctor --fix` видаляє випадковий кінцевий `/bot`. + - `getMe returned 401` означає, що Telegram відхилив налаштований токен бота. Оновіть `botToken`, `tokenFile` або `TELEGRAM_BOT_TOKEN` поточним токеном BotFather; OpenClaw зупиняється до опитування, тому це не повідомляється як помилка очищення Webhook. + - `setMyCommands failed` з помилками мережі/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблоковано. - ### Команди сполучення пристрою (plugin `device-pair`) + ### Команди сполучення пристрою (`device-pair` plugin) - Коли plugin `device-pair` встановлено: + Коли встановлено `device-pair` plugin: 1. `/pair` генерує код налаштування 2. вставте код у застосунок iOS - 3. `/pair pending` показує список запитів, що очікують (включно з роллю/областями доступу) + 3. `/pair pending` показує список запитів, що очікують (зокрема роль/області доступу) 4. схваліть запит: - `/pair approve ` для явного схвалення - `/pair approve`, коли є лише один запит, що очікує - `/pair approve latest` для найновішого - Код налаштування містить короткочасний bootstrap-токен. Вбудована передача bootstrap зберігає токен основного вузла на `scopes: []`; будь-який переданий токен оператора залишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки областей доступу bootstrap мають префікс ролі, тому цей список дозволів оператора задовольняє лише запити оператора; ролі, що не є операторськими, усе ще потребують областей доступу під власним префіксом ролі. + Код налаштування містить короткочасний bootstrap-токен. Вбудована передача bootstrap зберігає токен основного вузла на `scopes: []`; будь-який переданий токен оператора лишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки областей bootstrap мають префікс ролі, тож цей список дозволів оператора задовольняє лише запити оператора; неоператорським ролям усе ще потрібні області під власним префіксом ролі. - Якщо пристрій повторює спробу зі зміненими деталями автентифікації (наприклад, роль/області доступу/публічний ключ), попередній запит, що очікує, замінюється, а новий запит використовує інший `requestId`. Повторно виконайте `/pair pending` перед схваленням. + Якщо пристрій повторює спробу зі зміненими даними автентифікації (наприклад, роль/області доступу/публічний ключ), попередній запит, що очікує, замінюється, а новий запит використовує інший `requestId`. Повторно виконайте `/pair pending` перед схваленням. Докладніше: [Сполучення](/uk/channels/pairing#pair-via-telegram-recommended-for-ios). @@ -469,15 +469,15 @@ curl "https://api.telegram.org/bot/getUpdates" Дії інструментів Telegram включають: - - `sendMessage` (`to`, `content`, необов’язково `mediaUrl`, `replyToMessageId`, `messageThreadId`) + - `sendMessage` (`to`, `content`, необов’язкові `mediaUrl`, `replyToMessageId`, `messageThreadId`) - `react` (`chatId`, `messageId`, `emoji`) - `deleteMessage` (`chatId`, `messageId`) - `editMessage` (`chatId`, `messageId`, `content`) - - `createForumTopic` (`chatId`, `name`, необов’язково `iconColor`, `iconCustomEmojiId`) + - `createForumTopic` (`chatId`, `name`, необов’язкові `iconColor`, `iconCustomEmojiId`) - Дії повідомлень каналу надають зручні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`). + Дії повідомлень каналу надають ергономічні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`). - Елементи керування доступом: + Елементи керування обмеженнями: - `channels.telegram.actions.sendMessage` - `channels.telegram.actions.deleteMessage` @@ -485,14 +485,14 @@ curl "https://api.telegram.org/bot/getUpdates" - `channels.telegram.actions.sticker` (за замовчуванням: вимкнено) Примітка: `edit` і `topic-create` наразі ввімкнені за замовчуванням і не мають окремих перемикачів `channels.telegram.actions.*`. - Надсилання під час виконання використовують активний знімок конфігурації/секретів (запуск/перезавантаження), тому шляхи дій не виконують спеціального повторного розв’язання SecretRef для кожного надсилання. + Надсилання під час виконання використовують активний знімок конфігурації/секретів (запуск/перезавантаження), тому шляхи дій не виконують ситуативне повторне розв’язання SecretRef для кожного надсилання. Семантика видалення реакцій: [/tools/reactions](/uk/tools/reactions) - - Telegram підтримує явні теги гілкування відповідей у згенерованому виводі: + + Telegram підтримує явні теги гілок відповідей у згенерованому виводі: - `[[reply_to_current]]` відповідає на повідомлення, що запустило обробку - `[[reply_to:]]` відповідає на конкретний ідентифікатор повідомлення Telegram @@ -503,29 +503,29 @@ curl "https://api.telegram.org/bot/getUpdates" - `first` - `all` - Коли гілкування відповідей увімкнене й оригінальний текст або підпис Telegram доступний, OpenClaw автоматично включає нативний фрагмент цитати Telegram. Telegram обмежує нативний текст цитати 1024 кодовими одиницями UTF-16, тому довші повідомлення цитуються з початку й повертаються до звичайної відповіді, якщо Telegram відхиляє цитату. + Коли гілки відповідей увімкнені й доступний оригінальний текст або підпис Telegram, OpenClaw автоматично включає нативний уривок цитати Telegram. Telegram обмежує нативний текст цитати 1024 кодовими одиницями UTF-16, тому довші повідомлення цитуються від початку й повертаються до звичайної відповіді, якщо Telegram відхиляє цитату. - Примітка: `off` вимикає неявне гілкування відповідей. Явні теги `[[reply_to_*]]` усе ще враховуються. + Примітка: `off` вимикає неявні гілки відповідей. Явні теги `[[reply_to_*]]` усе ще враховуються. - - Форумні супергрупи: + + Супергрупи форуму: - - ключі сесій топіків додають `:topic:` - - відповіді й індикатор набору спрямовуються в гілку топіка - - шлях конфігурації топіка: + - ключі сеансів тем додають `:topic:` + - відповіді та індикатор введення спрямовуються в гілку теми + - шлях конфігурації теми: `channels.telegram.groups..topics.` - Особливий випадок загального топіка (`threadId=1`): + Особливий випадок загальної теми (`threadId=1`): - надсилання повідомлень пропускає `message_thread_id` (Telegram відхиляє `sendMessage(...thread_id=1)`) - - дії набору тексту все ще включають `message_thread_id` + - дії введення все одно включають `message_thread_id` - Успадкування топіків: записи топіків успадковують налаштування групи, якщо їх не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). - `agentId` застосовується лише до топіка й не успадковується з типових значень групи. + Успадкування теми: записи тем успадковують налаштування групи, якщо їх не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). + `agentId` застосовується лише до теми й не успадковується зі стандартних налаштувань групи. - **Маршрутизація агентів для кожного топіка**: кожен топік може маршрутизуватися до іншого агента через встановлення `agentId` у конфігурації топіка. Це дає кожному топіку власний ізольований робочий простір, пам’ять і сесію. Приклад: + **Маршрутизація агента для кожної теми**: Кожна тема може маршрутизуватися до іншого агента через задання `agentId` у конфігурації теми. Це дає кожній темі власний ізольований робочий простір, пам’ять і сеанс. Приклад: ```json5 { @@ -545,26 +545,26 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Тоді кожен топік має власний ключ сесії: `agent:zu:telegram:group:-1001234567890:topic:3` + Після цього кожна тема має власний ключ сеансу: `agent:zu:telegram:group:-1001234567890:topic:3` - **Постійна прив’язка ACP-топіка**: форумні топіки можуть закріплювати сесії стенда ACP через типізовані ACP-прив’язки верхнього рівня (`bindings[]` з `type: "acp"` і `match.channel: "telegram"`, `peer.kind: "group"` та ідентифікатором із кваліфікатором топіка, як-от `-1001234567890:topic:42`). Наразі область дії обмежена форумними топіками в групах/супергрупах. Див. [Агенти ACP](/uk/tools/acp-agents). + **Стійке прив’язування тем ACP**: Теми форуму можуть закріплювати сеанси ACP harness через типізовані ACP-прив’язки верхнього рівня (`bindings[]` з `type: "acp"` і `match.channel: "telegram"`, `peer.kind: "group"` та ідентифікатором із зазначенням теми на кшталт `-1001234567890:topic:42`). Наразі область дії обмежена темами форуму в групах/супергрупах. Див. [Агенти ACP](/uk/tools/acp-agents). - **Прив’язаний до гілки запуск ACP із чату**: `/acp spawn --thread here|auto` прив’язує поточний топік до нової сесії ACP; подальші повідомлення маршрутизуються туди напряму. OpenClaw закріплює підтвердження запуску в топіку. Потребує `channels.telegram.threadBindings.spawnAcpSessions=true`. + **Створення thread-bound ACP з чату**: `/acp spawn --thread here|auto` прив’язує поточну тему до нового сеансу ACP; подальші повідомлення маршрутизуються туди напряму. OpenClaw закріплює підтвердження створення в темі. Потрібно `channels.telegram.threadBindings.spawnAcpSessions=true`. - Контекст шаблону надає `MessageThreadId` і `IsForum`. DM-чати з `message_thread_id` зберігають маршрутизацію DM, але використовують ключі сесій з урахуванням гілок. + Контекст шаблону надає `MessageThreadId` і `IsForum`. DM-чати з `message_thread_id` зберігають маршрутизацію DM, але використовують ключі сеансів з урахуванням гілок. ### Аудіоповідомлення - Telegram розрізняє голосові нотатки та аудіофайли. + Telegram розрізняє голосові нотатки й аудіофайли. - за замовчуванням: поведінка аудіофайлу - - тег `[[audio_as_voice]]` у відповіді агента для примусового надсилання як голосової нотатки - - транскрипти вхідних голосових нотаток оформлюються як машинно згенерований, - ненадійний текст у контексті агента; виявлення згадок усе ще використовує сирий - транскрипт, тому voice-повідомлення з доступом через згадку продовжують працювати. + - тег `[[audio_as_voice]]` у відповіді агента примусово надсилає як голосову нотатку + - вхідні транскрипти голосових нотаток оформлюються як машинно згенерований, + ненадійний текст у контексті агента; виявлення згадок усе ще використовує необроблений + транскрипт, тому голосові повідомлення з обмеженням за згадкою продовжують працювати. Приклад дії повідомлення: @@ -580,7 +580,7 @@ curl "https://api.telegram.org/bot/getUpdates" ### Відеоповідомлення - Telegram розрізняє відеофайли та відеонотатки. + Telegram розрізняє відеофайли й відеонотатки. Приклад дії повідомлення: @@ -618,7 +618,7 @@ curl "https://api.telegram.org/bot/getUpdates" Стікери описуються один раз (коли можливо) і кешуються, щоб зменшити повторні виклики vision. - Увімкнути дії зі стікерами: + Увімкніть дії зі стікерами: ```json5 { @@ -657,7 +657,7 @@ curl "https://api.telegram.org/bot/getUpdates" - Реакції Telegram надходять як оновлення `message_reaction` (окремо від навантажень повідомлень). + Реакції Telegram надходять як оновлення `message_reaction` (окремо від вмісту повідомлень). Коли ввімкнено, OpenClaw ставить у чергу системні події на кшталт: @@ -665,23 +665,23 @@ curl "https://api.telegram.org/bot/getUpdates" Конфігурація: - - `channels.telegram.reactionNotifications`: `off | own | all` (за замовчуванням: `own`) - - `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (за замовчуванням: `minimal`) + - `channels.telegram.reactionNotifications`: `off | own | all` (типово: `own`) + - `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (типово: `minimal`) Примітки: - - `own` означає лише реакції користувача на повідомлення, надіслані ботом (у міру можливостей через кеш надісланих повідомлень). - - Події реакцій усе одно дотримуються контролів доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. - - Telegram не надає ідентифікатори потоків в оновленнях реакцій. - - групи без форуму спрямовуються до сеансу групового чату - - форумні групи спрямовуються до сеансу загальної теми групи (`:topic:1`), а не до точної початкової теми + - `own` означає реакції користувачів лише на повідомлення, надіслані ботом (best-effort через кеш надісланих повідомлень). + - Події реакцій усе одно поважають засоби контролю доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. + - Telegram не надає ID тредів в оновленнях реакцій. + - нефорумні групи спрямовуються до сесії групового чату + - форумні групи спрямовуються до сесії загальної теми групи (`:topic:1`), а не до точної початкової теми - `allowed_updates` для polling/webhook автоматично містить `message_reaction`. + `allowed_updates` для polling/webhook автоматично включає `message_reaction`. - - `ackReaction` надсилає емодзі підтвердження, поки OpenClaw обробляє вхідне повідомлення. + + `ackReaction` надсилає емодзі підтвердження, доки OpenClaw обробляє вхідне повідомлення. Порядок визначення: @@ -692,18 +692,18 @@ curl "https://api.telegram.org/bot/getUpdates" Примітки: - - Telegram очікує unicode-емодзі (наприклад, "👀"). - - Використовуйте `""`, щоб вимкнути реакцію для каналу або облікового запису. + - Telegram очікує unicode-емодзі (наприклад "👀"). + - Використовуйте `""`, щоб вимкнути реакцію для каналу або акаунта. - Записи конфігурації каналу ввімкнено за замовчуванням (`configWrites !== false`). + Записи конфігурації каналу ввімкнені типово (`configWrites !== false`). Записи, ініційовані Telegram, включають: - події міграції групи (`migrate_to_chat_id`) для оновлення `channels.telegram.groups` - - `/config set` і `/config unset` (потребує ввімкнення команди) + - `/config set` і `/config unset` (потребує ввімкнення команд) Вимкнення: @@ -720,37 +720,37 @@ curl "https://api.telegram.org/bot/getUpdates" - За замовчуванням використовується long polling. Для режиму webhook задайте `channels.telegram.webhookUrl` і `channels.telegram.webhookSecret`; необов’язкові `webhookPath`, `webhookHost`, `webhookPort` (типові значення `/telegram-webhook`, `127.0.0.1`, `8787`). + Типово використовується long polling. Для режиму webhook задайте `channels.telegram.webhookUrl` і `channels.telegram.webhookSecret`; необов'язкові `webhookPath`, `webhookHost`, `webhookPort` (типово `/telegram-webhook`, `127.0.0.1`, `8787`). - Локальний слухач прив’язується до `127.0.0.1:8787`. Для публічного входу або розмістіть reverse proxy перед локальним портом, або свідомо задайте `webhookHost: "0.0.0.0"`. + Локальний слухач прив'язується до `127.0.0.1:8787`. Для публічного входу або розмістіть reverse proxy перед локальним портом, або навмисно задайте `webhookHost: "0.0.0.0"`. - Режим webhook перевіряє захисти запиту, секретний токен Telegram і JSON-тіло, перш ніж повернути `200` до Telegram. - Потім OpenClaw обробляє оновлення асинхронно через ті самі смуги бота для кожного чату/теми, що використовуються long polling, тому повільні ходи агента не затримують ACK доставки Telegram. + Режим webhook перевіряє захист запитів, секретний токен Telegram і JSON-тіло, перш ніж повернути `200` до Telegram. + Після цього OpenClaw обробляє оновлення асинхронно через ті самі bot lanes для кожного чату/кожної теми, що й long polling, тому повільні ходи агента не затримують delivery ACK Telegram. - Типове значення `channels.telegram.textChunkLimit` — 4000. - - `channels.telegram.chunkMode="newline"` віддає перевагу межам абзаців (порожнім рядкам) перед поділом за довжиною. - - `channels.telegram.mediaMaxMb` (за замовчуванням 100) обмежує розмір вхідних і вихідних медіафайлів Telegram. - - `channels.telegram.timeoutSeconds` перевизначає timeout клієнта Telegram API (якщо не задано, застосовується типове значення grammY). - - `channels.telegram.pollingStallThresholdMs` за замовчуванням дорівнює `120000`; налаштовуйте між `30000` і `600000` лише для хибнопозитивних перезапусків через зупинку polling. - - історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (за замовчуванням 50); `0` вимикає. - - додатковий контекст відповіді/цитати/пересилання наразі передається як отримано. - - allowlist Telegram переважно обмежують, хто може запускати агента, а не є повною межею редагування додаткового контексту. + - `channels.telegram.chunkMode="newline"` надає перевагу межам абзаців (порожнім рядкам) перед розбиттям за довжиною. + - `channels.telegram.mediaMaxMb` (типово 100) обмежує розмір вхідних і вихідних медіа Telegram. + - `channels.telegram.timeoutSeconds` перевизначає тайм-аут клієнта Telegram API (якщо не задано, застосовується типове значення grammY). + - `channels.telegram.pollingStallThresholdMs` типово дорівнює `120000`; налаштовуйте між `30000` і `600000` лише для хибнопозитивних перезапусків через зупинку polling. + - історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (типово 50); `0` вимикає. + - додатковий контекст reply/quote/forward наразі передається як отриманий. + - Allowlist Telegram насамперед обмежують, хто може запускати агента, а не є повною межею редагування додаткового контексту. - Елементи керування історією DM: - `channels.telegram.dmHistoryLimit` - `channels.telegram.dms[""].historyLimit` - - конфігурація `channels.telegram.retry` застосовується до допоміжних засобів надсилання Telegram (CLI/інструменти/дії) для відновлюваних помилок вихідного API. + - конфігурація `channels.telegram.retry` застосовується до helper-ів надсилання Telegram (CLI/tools/actions) для відновлюваних вихідних помилок API. - Ціль надсилання CLI може бути числовим ідентифікатором чату або іменем користувача: + Ціль надсилання CLI може бути числовим ID чату або username: ```bash openclaw message send --channel telegram --target 123456789 --message "hi" openclaw message send --channel telegram --target @name --message "hi" ``` - Опитування Telegram використовують `openclaw message poll` і підтримують форумні теми: + Polls Telegram використовують `openclaw message poll` і підтримують форумні теми: ```bash openclaw message poll --channel telegram --target 123456789 \ @@ -760,7 +760,7 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ --poll-duration-seconds 300 --poll-public ``` - Прапорці опитувань лише для Telegram: + Прапорці poll лише для Telegram: - `--poll-duration-seconds` (5-600) - `--poll-anonymous` @@ -769,48 +769,48 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ Надсилання Telegram також підтримує: - - `--presentation` з блоками `buttons` для inline-клавіатур, коли `channels.telegram.capabilities.inlineButtons` це дозволяє + - `--presentation` з блоками `buttons` для inline keyboards, коли `channels.telegram.capabilities.inlineButtons` це дозволяє - `--pin` або `--delivery '{"pin":true}'`, щоб запросити закріплену доставку, коли бот може закріплювати в цьому чаті - - `--force-document`, щоб надсилати вихідні зображення та GIF як документи замість стиснених фото або завантажень анімованих медіа + - `--force-document`, щоб надсилати вихідні зображення та GIF як документи замість стиснених фото або завантажень animated-media Обмеження дій: - - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з опитуваннями - - `channels.telegram.actions.poll=false` вимикає створення опитувань Telegram, залишаючи звичайні надсилання ввімкненими + - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з polls + - `channels.telegram.actions.poll=false` вимикає створення polls Telegram, залишаючи звичайне надсилання ввімкненим - - Telegram підтримує підтвердження exec у DM підтверджувачів і може за бажанням публікувати запити у вихідному чаті або темі. Підтверджувачі мають бути числовими ідентифікаторами користувачів Telegram. + + Telegram підтримує exec-схвалення в DM апруверів і може додатково публікувати prompts у початковому чаті або темі. Апрувери мають бути числовими ID користувачів Telegram. Шлях конфігурації: - - `channels.telegram.execApprovals.enabled` (автоматично вмикається, коли можна визначити принаймні одного підтверджувача) - - `channels.telegram.execApprovals.approvers` (резервно використовує числові ID власників із `commands.ownerAllowFrom`) + - `channels.telegram.execApprovals.enabled` (автоматично вмикається, коли можна визначити принаймні одного апрувера) + - `channels.telegram.execApprovals.approvers` (повертається до числових ID власників із `commands.ownerAllowFrom`) - `channels.telegram.execApprovals.target`: `dm` (типово) | `channel` | `both` - `agentFilter`, `sessionFilter` - `channels.telegram.allowFrom`, `groupAllowFrom` і `defaultTo` керують тим, хто може спілкуватися з ботом і куди він надсилає звичайні відповіді. Вони не роблять когось підтверджувачем exec. Перше схвалене DM-сполучення ініціалізує `commands.ownerAllowFrom`, коли власника команд ще немає, тому налаштування з одним власником і далі працює без дублювання ID у `execApprovals.approvers`. + `channels.telegram.allowFrom`, `groupAllowFrom` і `defaultTo` керують тим, хто може говорити з ботом і куди він надсилає звичайні відповіді. Вони не роблять когось exec-апрувером. Перше схвалене DM pairing ініціалізує `commands.ownerAllowFrom`, коли власника команд ще немає, тому налаштування з одним власником усе одно працює без дублювання ID у `execApprovals.approvers`. - Доставка в канал показує текст команди в чаті; вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему для запиту підтвердження та подальшої відповіді. Підтвердження exec типово спливають через 30 хвилин. + Доставка в канал показує текст команди в чаті; вмикайте `channel` або `both` лише в довірених групах/темах. Коли prompt потрапляє до форумної теми, OpenClaw зберігає тему для prompt схвалення та наступного повідомлення. Exec-схвалення типово спливають через 30 хвилин. - Кнопки вбудованого підтвердження також потребують, щоб `channels.telegram.capabilities.inlineButtons` дозволяв цільову поверхню (`dm`, `group` або `all`). ID підтверджень із префіксом `plugin:` обробляються через підтвердження plugin; інші спершу обробляються через підтвердження exec. + Кнопки inline-схвалення також потребують, щоб `channels.telegram.capabilities.inlineButtons` дозволяв цільову поверхню (`dm`, `group` або `all`). ID схвалень із префіксом `plugin:` визначаються через схвалення plugin; інші спершу визначаються через exec-схвалення. - Див. [Підтвердження exec](/uk/tools/exec-approvals). + Див. [Exec-схвалення](/uk/tools/exec-approvals). -## Керування відповідями про помилки +## Елементи керування відповідями про помилки -Коли агент стикається з помилкою доставки або провайдера, Telegram може або відповісти текстом помилки, або приховати її. Цю поведінку керують два ключі конфігурації: +Коли агент стикається з помилкою доставки або провайдера, Telegram може або відповісти текстом помилки, або придушити її. Цю поведінку контролюють два ключі конфігурації: -| Ключ | Значення | Типово | Опис | -| ----------------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------------------- | -| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку в чат. `silent` повністю приховує відповіді про помилки. | -| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями про помилки в той самий чат. Запобігає спаму помилок під час збоїв. | +| Ключ | Значення | Типово | Опис | +| ----------------------------------- | ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------- | +| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку до чату. `silent` повністю придушує відповіді про помилки. | +| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями про помилки до того самого чату. Запобігає спаму помилками під час збоїв. | -Підтримуються перевизначення для окремих облікових записів, груп і тем (з таким самим успадкуванням, як в інших ключів конфігурації Telegram). +Підтримуються перевизначення для акаунта, групи та теми (та сама спадковість, що й для інших ключів конфігурації Telegram). ```json5 { @@ -835,46 +835,48 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ - Якщо `requireMention=false`, режим приватності Telegram має дозволяти повну видимість. - BotFather: `/setprivacy` -> Disable - - потім видаліть і повторно додайте бота до групи + - потім видаліть і знову додайте бота до групи - `openclaw channels status` попереджає, коли конфігурація очікує групові повідомлення без згадки. - - `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на членство. + - `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на membership. - швидкий тест сесії: `/activation always`. - + - - коли існує `channels.telegram.groups`, група має бути в списку (або містити `"*"`) - - перевірте членство бота в групі - - перегляньте журнали: `openclaw logs --follow` щодо причин пропуску + - коли `channels.telegram.groups` існує, група має бути в списку (або включати `"*"`) + - перевірте membership бота в групі + - перегляньте логи: `openclaw logs --follow` для причин пропуску - + - - авторизуйте ідентичність свого відправника (сполучення та/або числовий `allowFrom`) - - авторизація команд усе одно застосовується, навіть коли політика групи має значення `open` - - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що в нативному меню забагато записів; зменште кількість команд plugin/skill/користувацьких команд або вимкніть нативні меню - - `setMyCommands failed` із помилками network/fetch зазвичай вказує на проблеми доступності DNS/HTTPS до `api.telegram.org` + - авторизуйте свою ідентичність відправника (pairing і/або числовий `allowFrom`) + - авторизація команд усе одно застосовується, навіть коли політика групи — `open` + - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що native menu має забагато записів; зменште кількість plugin/skill/custom команд або вимкніть native menus + - `setMyCommands failed` з помилками network/fetch зазвичай вказує на проблеми DNS/HTTPS-доступності до `api.telegram.org` - + - - `getMe returned 401` — це збій автентифікації Telegram для налаштованого токена бота. - - Заново скопіюйте або згенеруйте токен бота в BotFather, потім оновіть `channels.telegram.botToken`, `channels.telegram.tokenFile`, `channels.telegram.accounts..botToken` або `TELEGRAM_BOT_TOKEN` для типового облікового запису. - - `deleteWebhook 401 Unauthorized` під час запуску також є збоєм автентифікації; трактування цього як "webhook не існує" лише відклало б той самий збій через поганий токен до пізніших викликів API. + - `getMe returned 401` — це помилка автентифікації Telegram для налаштованого bot token. + - Повторно скопіюйте або згенеруйте заново bot token у BotFather, потім оновіть `channels.telegram.botToken`, `channels.telegram.tokenFile`, `channels.telegram.accounts..botToken` або `TELEGRAM_BOT_TOKEN` для типового акаунта. + - `deleteWebhook 401 Unauthorized` під час запуску також є помилкою автентифікації; трактування її як "webhook не існує" лише відклало б той самий збій через поганий token до пізніших викликів API. - + - - Node 22+ + користувацький fetch/proxy може спричинити негайну поведінку abort, якщо типи AbortSignal не збігаються. - - Деякі хости спершу перетворюють `api.telegram.org` на IPv6; несправний вихідний IPv6-трафік може спричиняти періодичні збої API Telegram. - - Якщо журнали містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює ці помилки як відновлювані мережеві помилки. - - Якщо журнали містять `Polling stall detected`, OpenClaw перезапускає опитування й перебудовує транспорт Telegram після 120 секунд без завершеного long-poll liveness за замовчуванням. - - Збільшуйте `channels.telegram.pollingStallThresholdMs` лише тоді, коли довготривалі виклики `getUpdates` справні, але ваш хост усе одно повідомляє про хибні перезапуски через polling-stall. Постійні зависання зазвичай вказують на проблеми proxy, DNS, IPv6 або TLS egress між хостом і `api.telegram.org`. - - На VPS-хостах із нестабільним прямим egress/TLS маршрутизуйте виклики API Telegram через `channels.telegram.proxy`: + - Node 22+ + custom fetch/proxy може спричиняти негайну поведінку abort, якщо типи AbortSignal не збігаються. + - Деякі хости спершу резолвлять `api.telegram.org` в IPv6; зламаний IPv6 egress може спричиняти періодичні збої Telegram API. + - Якщо логи містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює ці спроби як відновлювані мережеві помилки. + - Якщо логи містять `Polling stall detected`, OpenClaw перезапускає polling і перебудовує транспорт Telegram після 120 секунд без завершеної liveness long-poll типово. + - Збільшуйте `channels.telegram.pollingStallThresholdMs` лише тоді, коли тривалі виклики `getUpdates` справні, але ваш хост усе одно повідомляє про хибні перезапуски через polling-stall. Постійні зупинки зазвичай вказують на проблеми proxy, DNS, IPv6 або TLS egress між хостом і `api.telegram.org`. + - Telegram також поважає process proxy env для транспорту Bot API, включно з `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` та їхніми lowercase-варіантами. `NO_PROXY` / `no_proxy` усе ще можуть обходити `api.telegram.org`. + - Якщо керований proxy OpenClaw налаштовано через `OPENCLAW_PROXY_URL` для service environment і стандартний proxy env відсутній, Telegram також використовує цей URL для транспорту Bot API. + - На VPS-хостах із нестабільним прямим egress/TLS спрямовуйте виклики Telegram API через `channels.telegram.proxy`: ```yaml channels: @@ -883,7 +885,7 @@ channels: ``` - Node 22+ типово використовує `autoSelectFamily=true` (крім WSL2) і `dnsResultOrder=ipv4first`. - - Якщо ваш хост є WSL2 або явно працює краще з поведінкою лише IPv4, примусово задайте вибір family: + - Якщо ваш хост — WSL2 або явно краще працює з поведінкою лише IPv4, примусово задайте вибір family: ```yaml channels: @@ -892,11 +894,11 @@ channels: autoSelectFamily: false ``` - - Відповіді з benchmark-діапазону RFC 2544 (`198.18.0.0/15`) уже дозволені - для завантажень медіа Telegram за замовчуванням. Якщо довірений fake-IP або - transparent proxy переписує `api.telegram.org` на іншу - приватну/внутрішню/спеціального використання адресу під час завантажень медіа, ви можете - увімкнути обхід лише для Telegram: + - Відповіді діапазону benchmark RFC 2544 (`198.18.0.0/15`) уже дозволені + для завантажень медіа Telegram типово. Якщо довірений fake-IP або + transparent proxy переписує `api.telegram.org` на якусь іншу + private/internal/special-use адресу під час завантаження медіа, ви можете + ввімкнути обхід лише для Telegram: ```yaml channels: @@ -905,26 +907,26 @@ channels: dangerouslyAllowPrivateNetwork: true ``` - - Таке саме явне ввімкнення доступне для кожного облікового запису за адресою + - Така сама явна згода доступна для кожного облікового запису за шляхом `channels.telegram.accounts..network.dangerouslyAllowPrivateNetwork`. - - Якщо ваш proxy перетворює хости медіа Telegram на `198.18.x.x`, спершу залиште - небезпечний прапорець вимкненим. Медіа Telegram уже дозволяє benchmark-діапазон - RFC 2544 за замовчуванням. + - Якщо ваш проксі перетворює хости медіа Telegram на `198.18.x.x`, спершу залиште + небезпечний прапорець вимкненим. Медіа Telegram уже за замовчуванням дозволяє + діапазон RFC 2544 для бенчмарків. - `channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист медіа Telegram - від SSRF. Використовуйте це лише в довірених проксі-середовищах під контролем - оператора, як-от Clash, Mihomo або маршрутизація fake-IP Surge, коли вони - синтезують приватні або спеціального використання відповіді поза діапазоном - тестування RFC 2544. Для звичайного публічного доступу Telegram через інтернет - залишайте це вимкненим. + `channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист + медіа Telegram від SSRF. Використовуйте його лише в довірених проксі-середовищах + під контролем оператора, як-от Clash, Mihomo або маршрутизація fake-IP у Surge, + коли вони синтезують приватні або спеціальні відповіді поза діапазоном RFC 2544 + для бенчмарків. Залишайте його вимкненим для звичайного доступу Telegram через + публічний інтернет. - Перевизначення середовища (тимчасові): - `OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_DNS_RESULT_ORDER=ipv4first` - - Перевірте DNS-відповіді: + - Перевірте відповіді DNS: ```bash dig +short api.telegram.org A @@ -934,7 +936,7 @@ dig +short api.telegram.org AAAA -Додаткова допомога: [Усунення несправностей каналів](/uk/channels/troubleshooting). +Додаткова довідка: [Усунення несправностей каналу](/uk/channels/troubleshooting). ## Довідник конфігурації @@ -944,13 +946,13 @@ dig +short api.telegram.org AAAA - запуск/автентифікація: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` має вказувати на звичайний файл; символьні посилання відхиляються) - контроль доступу: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, `bindings[]` верхнього рівня (`type: "acp"`) -- підтвердження виконання: `execApprovals`, `accounts.*.execApprovals` -- команди/меню: `commands.native`, `commands.nativeSkills`, `customCommands` +- схвалення виконання: `execApprovals`, `accounts.*.execApprovals` +- команда/меню: `commands.native`, `commands.nativeSkills`, `customCommands` - потоки/відповіді: `replyToMode` - потокове передавання: `streaming` (попередній перегляд), `streaming.preview.toolProgress`, `blockStreaming` - форматування/доставка: `textChunkLimit`, `chunkMode`, `linkPreview`, `responsePrefix` - медіа/мережа: `mediaMaxMb`, `timeoutSeconds`, `pollingStallThresholdMs`, `retry`, `network.autoSelectFamily`, `network.dangerouslyAllowPrivateNetwork`, `proxy` -- власний корінь API: `apiRoot` (лише корінь Bot API; не додавайте `/bot`) +- корінь власного API: `apiRoot` (лише корінь Bot API; не додавайте `/bot`) - webhook: `webhookUrl`, `webhookSecret`, `webhookPath`, `webhookHost` - дії/можливості: `capabilities.inlineButtons`, `actions.sendMessage|editMessage|deleteMessage|reactions|sticker` - реакції: `reactionNotifications`, `reactionLevel` @@ -960,14 +962,14 @@ dig +short api.telegram.org AAAA -Пріоритет кількох облікових записів: коли налаштовано два або більше ідентифікаторів облікових записів, задайте `channels.telegram.defaultAccount` (або додайте `channels.telegram.accounts.default`), щоб явно визначити типову маршрутизацію. Інакше OpenClaw повертається до першого нормалізованого ідентифікатора облікового запису, а `openclaw doctor` попереджає про це. Іменовані облікові записи успадковують `channels.telegram.allowFrom` / `groupAllowFrom`, але не значення `accounts.default.*`. +Пріоритет кількох облікових записів: коли налаштовано два або більше ID облікових записів, задайте `channels.telegram.defaultAccount` (або додайте `channels.telegram.accounts.default`), щоб зробити стандартну маршрутизацію явною. Інакше OpenClaw повертається до першого нормалізованого ID облікового запису, а `openclaw doctor` попереджає. Іменовані облікові записи успадковують `channels.telegram.allowFrom` / `groupAllowFrom`, але не значення `accounts.default.*`. ## Пов’язане - Сполучіть користувача Telegram із gateway. + Сполучіть користувача Telegram із Gateway. Поведінка списку дозволених груп і тем. diff --git a/docs/uk/plugins/sdk-migration.md b/docs/uk/plugins/sdk-migration.md index 0efcf15de..80c7f389d 100644 --- a/docs/uk/plugins/sdk-migration.md +++ b/docs/uk/plugins/sdk-migration.md @@ -2,59 +2,59 @@ read_when: - Ви бачите попередження OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED - Ви бачите попередження OPENCLAW_EXTENSION_API_DEPRECATED - - Ви використовували api.registerEmbeddedExtensionFactory до OpenClaw 2026.4.25 + - Ви використовували api.registerEmbeddedExtensionFactory до версії OpenClaw 2026.4.25 - Ви оновлюєте Plugin до сучасної архітектури Plugin - - Ви супроводжуєте зовнішній Plugin для OpenClaw + - Ви підтримуєте зовнішній Plugin для OpenClaw sidebarTitle: Migrate to SDK -summary: Перейдіть із застарілого шару зворотної сумісності на сучасний SDK для Plugin +summary: Перехід із застарілого шару зворотної сумісності на сучасний Plugin SDK title: Міграція Plugin SDK x-i18n: - generated_at: "2026-04-29T07:02:19Z" + generated_at: "2026-04-29T11:23:04Z" model: gpt-5.5 provider: openai - source_hash: f701495b97e2660b5d0b9b65866ddaa7fc3ce91e6610950c9fb034f983dc1340 + source_hash: 0ef5d3c435d84060bfd0e68fc32a7b2df196cd1cee20512cf793c024df0bfdc2 source_path: plugins/sdk-migration.md workflow: 16 --- OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури Plugin -із цілеспрямованими, задокументованими імпортами. Якщо ваш Plugin було створено до +із вузькими, задокументованими імпортами. Якщо ваш Plugin було створено до нової архітектури, цей посібник допоможе вам виконати міграцію. ## Що змінюється Стара система Plugin надавала дві широко відкриті поверхні, які дозволяли Plugin імпортувати -усе потрібне з однієї точки входу: +все потрібне з однієї точки входу: -- **`openclaw/plugin-sdk/compat`** — один імпорт, що повторно експортував десятки - допоміжних засобів. Його запровадили, щоб зберегти роботу старіших Plugin на основі хуків, поки - будувалася нова архітектура Plugin. -- **`openclaw/plugin-sdk/infra-runtime`** — широкий пакет runtime-допоміжних засобів, який - змішував системні події, стан heartbeat, черги доставки, допоміжні засоби fetch/proxy, - файлові допоміжні засоби, типи схвалення та непов’язані утиліти. -- **`openclaw/plugin-sdk/config-runtime`** — широкий пакет сумісності конфігурації, - який усе ще містить застарілі прямі допоміжні засоби завантаження/запису під час вікна - міграції. -- **`openclaw/extension-api`** — міст, який надавав Plugin прямий доступ до - допоміжних засобів з боку хоста, як-от вбудованого запуску агента. -- **`api.registerEmbeddedExtensionFactory(...)`** — вилучений хук bundled extension лише для Pi, - який міг спостерігати події embedded-runner, такі як +- **`openclaw/plugin-sdk/compat`** — єдиний імпорт, який повторно експортував десятки + допоміжних функцій. Його було введено, щоб підтримати роботу старіших Plugin на основі хуків, поки + створювалася нова архітектура Plugin. +- **`openclaw/plugin-sdk/infra-runtime`** — широкий barrel runtime-допоміжних функцій, який + змішував системні події, стан Heartbeat, черги доставки, допоміжні функції fetch/proxy, + файлові допоміжні функції, типи схвалень і непов’язані утиліти. +- **`openclaw/plugin-sdk/config-runtime`** — широкий barrel сумісності конфігурації, + який і далі містить застарілі прямі допоміжні функції завантаження/запису під час міграційного + вікна. +- **`openclaw/extension-api`** — міст, який давав Plugin прямий доступ до + допоміжних функцій на боці хоста, як-от вбудований runner агента. +- **`api.registerEmbeddedExtensionFactory(...)`** — вилучений хук bundled + розширення лише для Pi, який міг спостерігати події embedded-runner, такі як `tool_result`. Широкі поверхні імпорту тепер **застарілі**. Вони все ще працюють під час виконання, але нові Plugin не повинні їх використовувати, а наявні Plugin мають мігрувати до того, як наступний major release їх вилучить. API реєстрації embedded extension factory лише для Pi -було вилучено; натомість використовуйте middleware для результатів інструментів. +вилучено; натомість використовуйте middleware результатів інструментів. OpenClaw не вилучає й не переінтерпретовує задокументовану поведінку Plugin у тій самій -зміні, яка вводить заміну. Зміни контракту, що порушують сумісність, спершу мають пройти через +зміні, яка вводить заміну. Критичні зміни контракту спершу мають пройти через адаптер сумісності, діагностику, документацію та вікно deprecation. -Це стосується імпортів SDK, полів manifest, setup API, хуків і поведінки +Це стосується імпортів SDK, полів manifest, setup APIs, хуків і поведінки runtime-реєстрації. Шар зворотної сумісності буде вилучено в майбутньому major release. - Plugin, які все ще імпортують із цих поверхонь, зламаються, коли це станеться. + Plugin, які досі імпортують із цих поверхонь, зламаються, коли це станеться. Реєстрації embedded extension factory лише для Pi вже більше не завантажуються. @@ -62,70 +62,70 @@ runtime-реєстрації. Старий підхід спричиняв проблеми: -- **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки непов’язаних модулів -- **Циклічні залежності** — широкі повторні експорти спрощували створення циклів імпорту -- **Нечітка поверхня API** — не було способу визначити, які експорти стабільні, а які внутрішні +- **Повільний запуск** — імпорт однієї допоміжної функції завантажував десятки непов’язаних модулів +- **Циклічні залежності** — широкі повторні експорти спрощували створення циклів імпортів +- **Нечітка поверхня API** — не було способу зрозуміти, які експорти стабільні, а які внутрішні -Сучасний SDK Plugin це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) -є малим, самодостатнім модулем із чіткою метою та задокументованим контрактом. +Сучасний plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`) +є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом. -Legacy provider convenience seams для bundled channels також вилучено. -Channel-branded helper seams були приватними скороченнями mono-repo, а не стабільними -контрактами Plugin. Натомість використовуйте вузькі generic SDK subpaths. Усередині робочої області bundled -Plugin тримайте provider-owned helpers у власному `api.ts` або +Застарілі provider convenience seams для bundled channels також вилучено. +Channel-branded допоміжні seams були приватними скороченнями monorepo, а не стабільними +контрактами Plugin. Натомість використовуйте вузькі generic SDK subpaths. Усередині bundled +plugin workspace тримайте provider-owned допоміжні функції у власному `api.ts` або `runtime-api.ts` цього Plugin. -Поточні приклади bundled provider: +Поточні приклади bundled providers: -- Anthropic тримає специфічні для Claude допоміжні засоби stream у власному `api.ts` / - `contract-api.ts` seam -- OpenAI тримає provider builders, допоміжні засоби default-model і realtime provider +- Anthropic тримає специфічні для Claude stream-допоміжні функції у власному seam `api.ts` / + `contract-api.ts` +- OpenAI тримає provider builders, default-model helpers і realtime provider builders у власному `api.ts` -- OpenRouter тримає provider builder і допоміжні засоби onboarding/config у власному +- OpenRouter тримає provider builder і onboarding/config helpers у власному `api.ts` ## Політика сумісності -Для зовнішніх Plugin робота із сумісністю відбувається в такому порядку: +Для зовнішніх Plugin робота із сумісністю виконується в такому порядку: 1. додати новий контракт -2. залишити стару поведінку підключеною через адаптер сумісності -3. видавати діагностику або попередження, що називає старий шлях і заміну +2. залишити стару поведінку, підключену через адаптер сумісності +3. видавати діагностику або попередження, яке називає старий шлях і заміну 4. покрити обидва шляхи тестами 5. задокументувати deprecation і шлях міграції -6. вилучати лише після оголошеного вікна міграції, зазвичай у major release +6. вилучати лише після оголошеного міграційного вікна, зазвичай у major release Maintainers можуть перевірити поточну чергу міграції за допомогою `pnpm plugins:boundary-report`. Використовуйте `pnpm plugins:boundary-report:summary` для -стислих підрахунків, `--owner ` для одного Plugin або власника сумісності, і -`pnpm plugins:boundary-report:ci`, коли CI gate має падати через протерміновані +компактних підрахунків, `--owner ` для одного Plugin або власника сумісності, і +`pnpm plugins:boundary-report:ci`, коли CI gate має падати через прострочені записи сумісності, cross-owner reserved SDK imports або unused reserved SDK subpaths. Звіт групує застарілі -записи сумісності за датою вилучення, рахує локальні посилання в коді/документації, +записи сумісності за датою вилучення, підраховує локальні посилання в code/docs, показує cross-owner reserved SDK imports і підсумовує приватний -memory-host SDK bridge, щоб очищення сумісності залишалося явним, а не -покладалося на ad hoc пошуки. Reserved SDK subpaths повинні мати відстежене використання власником; -unused reserved helper exports слід вилучити з публічного SDK. +memory-host SDK bridge, щоб cleanup сумісності залишався явним, а не +покладався на ad hoc пошуки. Reserved SDK subpaths повинні мати tracked owner usage; +unused reserved helper exports слід вилучати з публічного SDK. -Якщо поле manifest усе ще приймається, автори Plugin можуть продовжувати його використовувати, доки -документація й діагностика не скажуть інакше. Новий код має надавати перевагу задокументованій +Якщо поле manifest усе ще приймається, authors Plugin можуть продовжувати ним користуватися, доки +документація й діагностика не скажуть інакше. Новий код має віддавати перевагу задокументованій заміні, але наявні Plugin не повинні ламатися під час звичайних minor releases. ## Як виконати міграцію - - Bundled Plugin мають припинити прямі виклики + + Bundled Plugin мають припинити безпосередньо викликати `api.runtime.config.loadConfig()` і - `api.runtime.config.writeConfigFile(...)`. Надавайте перевагу конфігурації, яку - вже було передано в активний шлях виклику. Довгоживучі handlers, яким потрібен + `api.runtime.config.writeConfigFile(...)`. Віддавайте перевагу конфігурації, яку вже було + передано в активний шлях виклику. Довгоживучі handlers, яким потрібен поточний snapshot процесу, можуть використовувати `api.runtime.config.current()`. Довгоживучі - agent tools мають використовувати `ctx.getRuntimeConfig()` з tool context усередині - `execute`, щоб інструмент, створений до запису конфігурації, усе ще бачив оновлену + agent tools мають використовувати `ctx.getRuntimeConfig()` з контексту інструмента всередині + `execute`, щоб інструмент, створений до запису конфігурації, все одно бачив оновлену runtime config. - Записи конфігурації мають проходити через транзакційні допоміжні засоби й вибирати + Записи конфігурації мають проходити через транзакційні helper-и й обирати after-write policy: ```typescript @@ -138,40 +138,40 @@ releases. ``` Використовуйте `afterWrite: { mode: "restart", reason: "..." }`, коли caller знає, - що зміна потребує чистого перезапуску gateway, і + що зміна потребує чистого перезапуску Gateway, і `afterWrite: { mode: "none", reason: "..." }` лише тоді, коли caller володіє - follow-up і навмисно хоче придушити reload planner. - Результати мутації містять типізований підсумок `followUp` для тестів і логування; - gateway залишається відповідальним за застосування або планування перезапуску. - `loadConfig` і `writeConfigFile` залишаються застарілими допоміжними засобами сумісності - для зовнішніх Plugin під час вікна міграції та один раз попереджають із - кодом сумісності `runtime-config-load-write`. Bundled Plugin і repo - runtime code захищені scanner guardrails у + follow-up і свідомо хоче приглушити reload planner. + Результати мутації містять типізований summary `followUp` для тестів і logging; + Gateway залишається відповідальним за застосування або планування перезапуску. + `loadConfig` і `writeConfigFile` залишаються застарілими helper-ами сумісності + для зовнішніх Plugin під час міграційного вікна й один раз попереджають із + compatibility code `runtime-config-load-write`. Bundled Plugin і runtime-код репозиторію + захищені scanner guardrails у `pnpm check:deprecated-internal-config-api` і - `pnpm check:no-runtime-action-load-config`: нове використання production Plugin - завершується помилкою одразу, прямі записи конфігурації падають, методи gateway server мають використовувати + `pnpm check:no-runtime-action-load-config`: нове production використання Plugin + одразу падає, прямі записи конфігурації падають, gateway server methods мають використовувати request runtime snapshot, runtime channel send/action/client helpers мають отримувати конфігурацію зі своєї межі, а довгоживучі runtime modules мають нуль дозволених ambient викликів `loadConfig()`. Новий код Plugin також має уникати імпорту широкого - пакета сумісності `openclaw/plugin-sdk/config-runtime`. Використовуйте вузький - SDK subpath, який відповідає задачі: + compatibility barrel `openclaw/plugin-sdk/config-runtime`. Використовуйте вузький + SDK subpath, що відповідає завданню: | Потреба | Імпорт | | --- | --- | - | Типи конфігурації, як-от `OpenClawConfig` | `openclaw/plugin-sdk/config-types` | - | Твердження для вже завантаженої конфігурації та пошук plugin-entry config | `openclaw/plugin-sdk/plugin-config-runtime` | + | Типи конфігурації, такі як `OpenClawConfig` | `openclaw/plugin-sdk/config-types` | + | Already-loaded config assertions і plugin-entry config lookup | `openclaw/plugin-sdk/plugin-config-runtime` | | Читання поточного runtime snapshot | `openclaw/plugin-sdk/runtime-config-snapshot` | | Записи конфігурації | `openclaw/plugin-sdk/config-mutation` | - | Допоміжні засоби session store | `openclaw/plugin-sdk/session-store-runtime` | - | Конфігурація Markdown table | `openclaw/plugin-sdk/markdown-table-runtime` | - | Runtime-допоміжні засоби group policy | `openclaw/plugin-sdk/runtime-group-policy` | - | Розв’язання secret input | `openclaw/plugin-sdk/secret-input-runtime` | + | Helper-и session store | `openclaw/plugin-sdk/session-store-runtime` | + | Markdown table config | `openclaw/plugin-sdk/markdown-table-runtime` | + | Runtime helper-и group policy | `openclaw/plugin-sdk/runtime-group-policy` | + | Secret input resolution | `openclaw/plugin-sdk/secret-input-runtime` | | Model/session overrides | `openclaw/plugin-sdk/model-session-runtime` | - Bundled Plugin і їхні тести scanner-guarded проти широкого - barrel, щоб імпорти й mocks залишалися локальними для потрібної їм поведінки. Широкий + Bundled Plugin та їхні тести захищені scanner-ами від широкого + barrel, щоб imports і mocks залишалися локальними до потрібної їм поведінки. Широкий barrel усе ще існує для зовнішньої сумісності, але новий код не повинен від нього залежати. @@ -179,7 +179,7 @@ releases. Bundled Plugin мають замінити Pi-only - handlers результатів інструментів `api.registerEmbeddedExtensionFactory(...)` на + `api.registerEmbeddedExtensionFactory(...)` tool-result handlers на runtime-neutral middleware. ```typescript @@ -191,7 +191,7 @@ releases. }); ``` - Одночасно оновіть manifest Plugin: + Водночас оновіть manifest Plugin: ```json { @@ -208,26 +208,26 @@ releases. Approval-capable channel Plugin тепер expose native approval behavior через - `approvalCapability.nativeRuntime` плюс спільний runtime-context registry. + `approvalCapability.nativeRuntime` плюс shared runtime-context registry. Ключові зміни: - Замініть `approvalCapability.handler.loadRuntime(...)` на `approvalCapability.nativeRuntime` - - Перенесіть approval-specific auth/delivery зі старої зв’язки `plugin.auth` / + - Перенесіть approval-specific auth/delivery зі старого wiring `plugin.auth` / `plugin.approvals` на `approvalCapability` - - `ChannelPlugin.approvals` вилучено з публічного контракту channel-plugin; - перенесіть поля delivery/native/render на `approvalCapability` + - `ChannelPlugin.approvals` вилучено з публічного contract channel-plugin; + перенесіть delivery/native/render fields на `approvalCapability` - `plugin.auth` залишається лише для channel login/logout flows; approval auth hooks там більше не читаються core - Реєструйте channel-owned runtime objects, як-от clients, tokens або Bolt apps, через `openclaw/plugin-sdk/channel-runtime-context` - Не надсилайте plugin-owned reroute notices із native approval handlers; - core тепер володіє routed-elsewhere notices з фактичних результатів доставки - - Передаючи `channelRuntime` у `createChannelManager(...)`, надавайте - реальну поверхню `createPluginRuntime().channel`. Часткові stubs відхиляються. + core тепер володіє routed-elsewhere notices з фактичних delivery results + - Передаючи `channelRuntime` у `createChannelManager(...)`, надайте + справжню поверхню `createPluginRuntime().channel`. Часткові stubs відхиляються. - Див. `/plugins/sdk-channel-plugins` для поточного компонування approval capability. + Див. `/plugins/sdk-channel-plugins` для поточного layout approval capability. @@ -249,7 +249,7 @@ releases. }); ``` - Якщо ваш caller навмисно не покладається на shell fallback, не встановлюйте + Якщо ваш caller не покладається свідомо на shell fallback, не встановлюйте `allowShellFallback` і натомість обробіть thrown error. @@ -266,7 +266,7 @@ releases. - + Кожен експорт зі старої поверхні відповідає конкретному сучасному шляху імпорту: ```typescript @@ -283,7 +283,7 @@ releases. import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth"; ``` - Для host-side helpers використовуйте injected plugin runtime замість прямого імпорту: + Для host-side helper-ів використовуйте injected plugin runtime замість прямого імпорту: ```typescript // Before (deprecated extension-api bridge) @@ -294,9 +294,9 @@ releases. const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt }); ``` - Такий самий шаблон застосовується до інших застарілих допоміжних функцій bridge: + Той самий шаблон застосовується до інших застарілих допоміжних засобів мосту: - | Старий імпорт | Сучасний еквівалент | + | Старий import | Сучасний відповідник | | --- | --- | | `resolveAgentDir` | `api.runtime.agent.resolveAgentDir` | | `resolveAgentWorkspaceDir` | `api.runtime.agent.resolveAgentWorkspaceDir` | @@ -304,48 +304,48 @@ releases. | `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` | | `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` | | `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` | - | допоміжні функції сховища сесій | `api.runtime.agent.session.*` | + | допоміжні засоби сховища сесій | `api.runtime.agent.session.*` | - `openclaw/plugin-sdk/infra-runtime` досі існує для зовнішньої - сумісності, але новий код має імпортувати сфокусовану поверхню допоміжних функцій, яка - йому фактично потрібна: + `openclaw/plugin-sdk/infra-runtime` усе ще існує для зовнішньої + сумісності, але новий код має імпортувати цільову поверхню допоміжних засобів, + яка йому справді потрібна: - | Потреба | Імпорт | + | Потреба | Import | | --- | --- | - | Допоміжні функції черги системних подій | `openclaw/plugin-sdk/system-event-runtime` | - | Допоміжні функції подій Heartbeat і видимості | `openclaw/plugin-sdk/heartbeat-runtime` | - | Спорожнення черги очікуваних доставок | `openclaw/plugin-sdk/delivery-queue-runtime` | + | Допоміжні засоби черги системних подій | `openclaw/plugin-sdk/system-event-runtime` | + | Допоміжні засоби подій Heartbeat і видимості | `openclaw/plugin-sdk/heartbeat-runtime` | + | Очищення черги очікуваної доставки | `openclaw/plugin-sdk/delivery-queue-runtime` | | Телеметрія активності каналу | `openclaw/plugin-sdk/channel-activity-runtime` | - | Кеші дедуплікації в памʼяті | `openclaw/plugin-sdk/dedupe-runtime` | - | Допоміжні функції безпечних шляхів до локальних файлів/медіа | `openclaw/plugin-sdk/file-access-runtime` | + | Кеші дедуплікації в пам'яті | `openclaw/plugin-sdk/dedupe-runtime` | + | Безпечні допоміжні засоби для шляхів локальних файлів/медіа | `openclaw/plugin-sdk/file-access-runtime` | | Fetch з урахуванням диспетчера | `openclaw/plugin-sdk/runtime-fetch` | - | Допоміжні функції proxy та захищеного fetch | `openclaw/plugin-sdk/fetch-runtime` | + | Допоміжні засоби проксі та захищеного fetch | `openclaw/plugin-sdk/fetch-runtime` | | Типи політики диспетчера SSRF | `openclaw/plugin-sdk/ssrf-dispatcher` | - | Типи запиту/вирішення схвалення | `openclaw/plugin-sdk/approval-runtime` | - | Допоміжні функції payload відповіді схвалення та команд | `openclaw/plugin-sdk/approval-reply-runtime` | - | Допоміжні функції форматування помилок | `openclaw/plugin-sdk/error-runtime` | + | Типи запиту/вирішення затвердження | `openclaw/plugin-sdk/approval-runtime` | + | Допоміжні засоби payload відповіді затвердження та команд | `openclaw/plugin-sdk/approval-reply-runtime` | + | Допоміжні засоби форматування помилок | `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/secure-random-runtime` | + | Обмежена конкурентність асинхронних завдань | `openclaw/plugin-sdk/concurrency-runtime` | | Числове приведення | `openclaw/plugin-sdk/number-runtime` | - | Асинхронне блокування в межах процесу | `openclaw/plugin-sdk/async-lock-runtime` | - | Блокування файлів | `openclaw/plugin-sdk/file-lock` | + | Локальний для процесу асинхронний lock | `openclaw/plugin-sdk/async-lock-runtime` | + | Файлові locks | `openclaw/plugin-sdk/file-lock` | - Вбудовані plugins захищені scanner від `infra-runtime`, тому код репозиторію - не може повернутися до широкого barrel. + Вбудовані Plugin-и захищено сканером від `infra-runtime`, тож код репозиторію + не може регресувати до широкого barrel. - + Новий код маршрутів каналів має використовувати `openclaw/plugin-sdk/channel-route`. - Старі назви route-key і comparable-target залишаються як псевдоніми - сумісності протягом вікна міграції, але нові plugins мають використовувати назви route, - які безпосередньо описують поведінку: + Старі назви ключа маршруту та порівнюваної цілі залишаються псевдонімами + сумісності протягом вікна міграції, але нові Plugin-и мають використовувати + назви маршрутів, які безпосередньо описують поведінку: - | Стара допоміжна функція | Сучасна допоміжна функція | + | Старий допоміжний засіб | Сучасний допоміжний засіб | | --- | --- | | `channelRouteIdentityKey(...)` | `channelRouteDedupeKey(...)` | | `channelRouteKey(...)` | `channelRouteCompactKey(...)` | @@ -355,11 +355,11 @@ releases. | `comparableChannelTargetsMatch(...)` | `channelRouteTargetsMatchExact(...)` | | `comparableChannelTargetsShareRoute(...)` | `channelRouteTargetsShareConversation(...)` | - Сучасні допоміжні функції route узгоджено нормалізують `{ channel, to, accountId, threadId }` - для нативних схвалень, придушення відповідей, дедуплікації вхідних повідомлень, - доставки cron і маршрутизації сесій. Якщо ваш plugin має власну граматику цілей, + Сучасні допоміжні засоби маршрутів узгоджено нормалізують `{ channel, to, accountId, threadId }` + для нативних затверджень, приглушення відповідей, вхідної дедуплікації, + доставки Cron і маршрутизації сесій. Якщо ваш Plugin має власну граматику цілі, використовуйте `resolveChannelRouteTargetWithParser(...)`, щоб адаптувати цей - parser до того самого контракту цілі route. + parser до того самого контракту цілі маршруту. @@ -371,211 +371,212 @@ releases. -## Довідник шляхів імпорту +## Довідник шляхів import - + | Шлях імпорту | Призначення | Ключові експорти | | --- | --- | --- | - | `plugin-sdk/plugin-entry` | Канонічний помічник точки входу Plugin | `definePluginEntry` | - | `plugin-sdk/core` | Застарілий загальний реекспорт для визначень/побудовників точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` | + | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб входу plugin | `definePluginEntry` | + | `plugin-sdk/core` | Застарілий парасольковий реекспорт для визначень/побудовників входів каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` | | `plugin-sdk/config-schema` | Експорт кореневої схеми конфігурації | `OpenClawSchema` | - | `plugin-sdk/provider-entry` | Помічник точки входу для одного провайдера | `defineSingleProviderPluginEntry` | - | `plugin-sdk/channel-core` | Сфокусовані визначення та побудовники точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/setup` | Спільні помічники майстра налаштування | Підказки списку дозволених, побудовники стану налаштування | - | `plugin-sdk/setup-runtime` | Помічники runtime часу налаштування | Безпечні для імпорту адаптери патчів налаштування, помічники нотаток пошуку, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані проксі налаштування | - | `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-helpers` | Вузькі помічники облікових записів | Помічники списку облікових записів/дій облікового запису | - | `plugin-sdk/channel-setup` | Адаптери майстра налаштування | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/channel-pairing` | Примітиви сполучення DM | `createChannelPairingController` | - | `plugin-sdk/channel-reply-pipeline` | Префікс відповіді, індикація введення та зв’язування доставлення джерела | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` | + | `plugin-sdk/provider-entry` | Допоміжний засіб входу для одного провайдера | `defineSingleProviderPluginEntry` | + | `plugin-sdk/channel-core` | Сфокусовані визначення та побудовники входів каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | + | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Запити списку дозволених, побудовники стану налаштування | + | `plugin-sdk/setup-runtime` | Допоміжні засоби runtime під час налаштування | Безпечні для імпорту адаптери патчів налаштування, допоміжні засоби приміток пошуку, `promptResolvedAllowFrom`, `splitSetupEntries`, делеговані проксі налаштування | + | `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` | Допоміжні засоби ID облікового запису | `DEFAULT_ACCOUNT_ID`, нормалізація ID облікового запису | + | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису | Допоміжні засоби пошуку облікового запису + типового fallback | + | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби облікового запису | Допоміжні засоби списку облікових записів/дій облікового запису | + | `plugin-sdk/channel-setup` | Адаптери майстра налаштування | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, плюс `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | + | `plugin-sdk/channel-pairing` | Примітиви створення пари через DM | `createChannelPairingController` | + | `plugin-sdk/channel-reply-pipeline` | Префікс відповіді, індикація введення та зв’язування доставки джерела | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` | | `plugin-sdk/channel-config-helpers` | Фабрики адаптерів конфігурації | `createHybridChannelConfigAdapter` | - | `plugin-sdk/channel-config-schema` | Побудовники схем конфігурації | Спільні примітиви схеми конфігурації каналів і лише універсальний побудовник | - | `plugin-sdk/bundled-channel-config-schema` | Вбудовані схеми конфігурації | Лише вбудовані plugins, що підтримуються OpenClaw; нові plugins мають визначати локальні для Plugin схеми | + | `plugin-sdk/channel-config-schema` | Побудовники схем конфігурації | Спільні примітиви схеми конфігурації каналів і лише загальний побудовник | + | `plugin-sdk/bundled-channel-config-schema` | Вбудовані схеми конфігурації | Лише вбудовані plugins, підтримувані OpenClaw; нові plugins мають визначати локальні для plugin схеми | | `plugin-sdk/channel-config-schema-legacy` | Застарілі вбудовані схеми конфігурації | Лише псевдонім сумісності; використовуйте `plugin-sdk/bundled-channel-config-schema` для підтримуваних вбудованих plugins | - | `plugin-sdk/telegram-command-config` | Помічники конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, перевірка дублікатів/конфліктів | - | `plugin-sdk/channel-policy` | Визначення політики груп/DM | `resolveChannelGroupRequireMention` | - | `plugin-sdk/channel-lifecycle` | Помічники стану облікового запису та життєвого циклу чернеткового потоку | `createAccountStatusSink`, помічники фіналізації попереднього перегляду чернетки | - | `plugin-sdk/inbound-envelope` | Помічники вхідного конверта | Спільні помічники маршруту та побудовника конвертів | - | `plugin-sdk/inbound-reply-dispatch` | Помічники вхідних відповідей | Спільні помічники запису та диспетчеризації | - | `plugin-sdk/messaging-targets` | Розбір цілей повідомлень | Помічники розбору/зіставлення цілей | - | `plugin-sdk/outbound-media` | Помічники вихідних медіа | Спільне завантаження вихідних медіа | - | `plugin-sdk/outbound-send-deps` | Помічники залежностей вихідного надсилання | Легкий пошук `resolveOutboundSendDep` без імпорту повного вихідного runtime | - | `plugin-sdk/outbound-runtime` | Помічники вихідного runtime | Помічники вихідного доставлення, делегата ідентичності/надсилання, сеансу, форматування та планування payload | - | `plugin-sdk/thread-bindings-runtime` | Помічники прив’язок потоків | Помічники життєвого циклу прив’язок потоків і адаптерів | - | `plugin-sdk/agent-media-payload` | Застарілі помічники payload медіа | Побудовник payload медіа агента для застарілих розкладок полів | - | `plugin-sdk/channel-runtime` | Застаріла прокладка сумісності | Лише застарілі утиліти runtime каналу | - | `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповідей | - | `plugin-sdk/runtime-store` | Постійне сховище Plugin | `createPluginRuntimeStore` | - | `plugin-sdk/runtime` | Широкі помічники runtime | Помічники runtime/логування/резервного копіювання/встановлення Plugin | - | `plugin-sdk/runtime-env` | Вузькі помічники середовища runtime | Логер/середовище runtime, timeout, повтор і помічники backoff | - | `plugin-sdk/plugin-runtime` | Спільні помічники runtime Plugin | Помічники команд/хуків/http/інтерактивності Plugin | - | `plugin-sdk/hook-runtime` | Помічники конвеєра хуків | Спільні помічники конвеєра webhook/внутрішніх хуків | - | `plugin-sdk/lazy-runtime` | Помічники лінивого runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Помічники процесів | Спільні помічники exec | - | `plugin-sdk/cli-runtime` | Помічники runtime CLI | Форматування команд, очікування, помічники версій | - | `plugin-sdk/gateway-runtime` | Помічники Gateway | Клієнт Gateway і помічники патчів стану каналу | - | `plugin-sdk/config-runtime` | Застаріла прокладка сумісності конфігурації | Надавайте перевагу `config-types`, `plugin-config-runtime`, `runtime-config-snapshot` і `config-mutation` | - | `plugin-sdk/telegram-command-config` | Помічники команд Telegram | Резервно-стабільні помічники перевірки команд Telegram, коли поверхня контракту вбудованого Telegram недоступна | - | `plugin-sdk/approval-runtime` | Помічники підказок схвалення | Payload схвалення exec/Plugin, помічники можливостей/профілів схвалення, власна маршрутизація/ runtime схвалень і форматування шляху відображення структурованого схвалення | - | `plugin-sdk/approval-auth-runtime` | Помічники автентифікації схвалень | Визначення approver, авторизація дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Помічники клієнта схвалень | Помічники власного профілю/фільтра схвалення exec | - | `plugin-sdk/approval-delivery-runtime` | Помічники доставлення схвалень | Адаптери власних можливостей/доставлення схвалень | - | `plugin-sdk/approval-gateway-runtime` | Помічники Gateway схвалень | Спільний помічник визначення Gateway схвалень | - | `plugin-sdk/approval-handler-adapter-runtime` | Помічники адаптера схвалень | Легкі помічники завантаження власного адаптера схвалень для гарячих точок входу каналів | - | `plugin-sdk/approval-handler-runtime` | Помічники обробника схвалень | Ширші помічники runtime обробника схвалень; надавайте перевагу вужчим швам адаптера/Gateway, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Помічники цілей схвалення | Помічники прив’язки власної цілі/облікового запису схвалення | - | `plugin-sdk/approval-reply-runtime` | Помічники відповідей на схвалення | Помічники payload відповіді схвалення exec/Plugin | - | `plugin-sdk/channel-runtime-context` | Помічники runtime-контексту каналу | Універсальні помічники реєстрації/отримання/відстеження runtime-контексту каналу | - | `plugin-sdk/security-runtime` | Помічники безпеки | Спільні помічники довіри, шлюзу DM, зовнішнього вмісту та збирання секретів | - | `plugin-sdk/ssrf-policy` | Помічники політики SSRF | Помічники списку дозволених хостів і політики приватної мережі | - | `plugin-sdk/ssrf-runtime` | Помічники runtime SSRF | Закріплений диспетчер, захищений 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` | Помічники дедуплікації | Кеші дедуплікації в пам’яті | - | `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` | Помічники повторів | `RetryConfig`, `retryAsync`, виконавці політик | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, перевірка дублікатів/конфліктів | + | `plugin-sdk/channel-policy` | Розв’язання політики груп/DM | `resolveChannelGroupRequireMention` | + | `plugin-sdk/channel-lifecycle` | Допоміжні засоби стану облікового запису та життєвого циклу чернеткового потоку | `createAccountStatusSink`, допоміжні засоби фіналізації попереднього перегляду чернетки | + | `plugin-sdk/inbound-envelope` | Допоміжні засоби вхідного конверта | Спільні допоміжні засоби маршруту + побудовника конверта | + | `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби вхідної відповіді | Спільні допоміжні засоби запису та диспетчеризації | + | `plugin-sdk/messaging-targets` | Розбір цілі повідомлення | Допоміжні засоби розбору/зіставлення цілі | + | `plugin-sdk/outbound-media` | Допоміжні засоби вихідних медіа | Спільне завантаження вихідних медіа | + | `plugin-sdk/outbound-send-deps` | Допоміжні засоби залежностей вихідного надсилання | Легкий пошук `resolveOutboundSendDep` без імпорту повного вихідного runtime | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідного runtime | Допоміжні засоби вихідної доставки, делегата ідентичності/надсилання, сесії, форматування та планування payload | + | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби прив’язки потоків | Допоміжні засоби життєвого циклу прив’язки потоків і адаптера | + | `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби payload медіа | Побудовник payload медіа агента для застарілих макетів полів | + | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише утиліти runtime каналів для застарілої сумісності | + | `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповіді | + | `plugin-sdk/runtime-store` | Постійне сховище plugin | `createPluginRuntimeStore` | + | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin | + | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби середовища runtime | Допоміжні засоби логера/середовища runtime, тайм-ауту, повтору та backoff | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime plugin | Допоміжні засоби команд/plugin hooks/http/інтерактивності plugin | + | `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра hooks | Спільні допоміжні засоби конвеєра Webhook/внутрішніх hooks | + | `plugin-sdk/lazy-runtime` | Ліниві допоміжні засоби runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` | + | `plugin-sdk/process-runtime` | Допоміжні засоби процесів | Спільні допоміжні засоби exec | + | `plugin-sdk/cli-runtime` | Допоміжні засоби runtime CLI | Форматування команд, очікування, допоміжні засоби версій | + | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Допоміжні засоби клієнта Gateway і патчів стану каналу | + | `plugin-sdk/config-runtime` | Застарілий shim сумісності конфігурації | Надавайте перевагу `config-types`, `plugin-config-runtime`, `runtime-config-snapshot` і `config-mutation` | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Стабільні щодо fallback допоміжні засоби перевірки команд Telegram, коли поверхня вбудованого контракту Telegram недоступна | + | `plugin-sdk/approval-runtime` | Допоміжні засоби запитів схвалення | Payload схвалення exec/plugin, допоміжні засоби можливостей/профілю схвалення, маршрутизація/допоміжні засоби runtime нативного схвалення та форматування структурованого шляху відображення схвалення | + | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби авторизації схвалення | Визначення approver, авторизація дії в тому самому чаті | + | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта схвалення | Допоміжні засоби профілю/фільтра нативного схвалення exec | + | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки схвалень | Адаптери можливостей/доставки нативного схвалення | + | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway схвалень | Спільний допоміжний засіб розв’язання Gateway схвалень | + | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера схвалення | Легкі допоміжні засоби завантаження адаптера нативного схвалення для гарячих точок входу каналів | + | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника схвалення | Ширші допоміжні засоби runtime обробника схвалення; надавайте перевагу вужчим швам адаптера/Gateway, коли їх достатньо | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілі схвалення | Допоміжні засоби прив’язки цілі/облікового запису нативного схвалення | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповіді на схвалення | Допоміжні засоби payload відповіді на схвалення exec/plugin | + | `plugin-sdk/channel-runtime-context` | Допоміжні засоби runtime-контексту каналу | Загальні допоміжні засоби реєстрації/отримання/спостереження runtime-контексту каналу | + | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби довіри, шлюзування DM, зовнішнього вмісту та збирання секретів | + | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби списку дозволених хостів і політики приватної мережі | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби runtime SSRF | Pinned-dispatcher, захищений 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, допоміжні засоби опцій EnvHttpProxyAgent | + | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації хостів | `normalizeHostname`, `normalizeScpRemoteHost` | + | `plugin-sdk/retry-runtime` | Допоміжні засоби повторів | `RetryConfig`, `retryAsync`, засоби виконання політик | | `plugin-sdk/allow-from` | Форматування списку дозволених | `formatAllowFromLowercase` | - | `plugin-sdk/allowlist-resolution` | Зіставлення вводу списку дозволених | `mapAllowlistResolutionInputs` | - | `plugin-sdk/command-auth` | Шлюз команд і помічники поверхні команд | `resolveControlCommandGate`, помічники авторизації відправника, помічники реєстру команд, зокрема форматування меню динамічних аргументів | + | `plugin-sdk/allowlist-resolution` | Зіставлення введення списку дозволених | `mapAllowlistResolutionInputs` | + | `plugin-sdk/command-auth` | Допоміжні засоби шлюзування команд і командної поверхні | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів | | `plugin-sdk/command-status` | Рендерери стану/довідки команд | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` | - | `plugin-sdk/secret-input` | Розбір введення секретів | Помічники введення секретів | - | `plugin-sdk/webhook-ingress` | Помічники запитів Webhook | Утиліти цілей Webhook | - | `plugin-sdk/webhook-request-guards` | Помічники захисту тіла Webhook | Помічники читання/обмеження тіла запиту | - | `plugin-sdk/reply-runtime` | Спільний runtime відповідей | Вхідна диспетчеризація, Heartbeat, планувальник відповідей, розбиття на фрагменти | - | `plugin-sdk/reply-dispatch-runtime` | Вузькі помічники диспетчеризації відповідей | Фіналізація, диспетчеризація провайдера та помічники міток розмов | - | `plugin-sdk/reply-history` | Помічники історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/secret-input` | Розбір секретного введення | Допоміжні засоби секретного введення | + | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів Webhook | Утиліти цілей Webhook | + | `plugin-sdk/webhook-request-guards` | Допоміжні засоби захисту тіла Webhook | Допоміжні засоби читання/обмеження тіла запиту | + | `plugin-sdk/reply-runtime` | Спільний runtime відповідей | Вхідна диспетчеризація, Heartbeat, планувальник відповідей, chunking | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Фіналізація, диспетчеризація провайдера та допоміжні засоби міток розмов | + | `plugin-sdk/reply-history` | Допоміжні засоби історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | Планування посилань відповіді | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Помічники фрагментів відповіді | Помічники фрагментації тексту/markdown | - | `plugin-sdk/session-store-runtime` | Помічники сховища сеансів | Помічники шляху сховища та updated-at | - | `plugin-sdk/state-paths` | Помічники шляхів стану | Помічники каталогів стану та OAuth | - | `plugin-sdk/routing` | Помічники маршрутизації/ключа сеансу | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, помічники нормалізації ключа сеансу | - | `plugin-sdk/status-helpers` | Помічники стану каналу | Побудовники зведення стану каналу/облікового запису, стандартні значення runtime-state, помічники метаданих проблем | - | `plugin-sdk/target-resolver-runtime` | Помічники визначення цілей | Спільні помічники визначення цілей | - | `plugin-sdk/string-normalization-runtime` | Помічники нормалізації рядків | Помічники нормалізації slug/рядків | - | `plugin-sdk/request-url` | Помічники URL запиту | Витягування рядкових URL з request-like вводів | - | `plugin-sdk/run-command` | Помічники команд з таймером | Виконавець команд з таймером і нормалізованими stdout/stderr | + | `plugin-sdk/reply-chunking` | Допоміжні засоби фрагментів відповіді | Допоміжні засоби chunking тексту/markdown | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій | Шлях сховища + допоміжні засоби updated-at | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів стану | Допоміжні засоби каталогів стану та OAuth | + | `plugin-sdk/routing` | Допоміжні засоби маршрутизації/ключа сесії | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації ключа сесії | + | `plugin-sdk/status-helpers` | Допоміжні засоби стану каналу | Побудовники підсумку стану каналу/облікового запису, типові значення runtime-state, допоміжні засоби метаданих проблем | + | `plugin-sdk/target-resolver-runtime` | Допоміжні засоби розв’язувача цілей | Спільні допоміжні засоби розв’язувача цілей | + | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації рядків | Допоміжні засоби нормалізації slug/рядків | + | `plugin-sdk/request-url` | Допоміжні засоби URL запиту | Витягувати рядкові URL з подібних до запиту вхідних даних | + | `plugin-sdk/run-command` | Допоміжні засоби команд із таймінгом | Засіб запуску команд із таймінгом і нормалізованими stdout/stderr | | `plugin-sdk/param-readers` | Зчитувачі параметрів | Спільні зчитувачі параметрів інструментів/CLI | - | `plugin-sdk/tool-payload` | Витягування payload інструмента | Витягування нормалізованих payload з об’єктів результатів інструмента | - | `plugin-sdk/tool-send` | Витягування надсилання інструмента | Витягування канонічних полів цілі надсилання з аргументів інструмента | - | `plugin-sdk/temp-path` | Допоміжні засоби шляхів temp | Спільні допоміжні засоби шляхів для тимчасових завантажень | - | `plugin-sdk/logging-core` | Допоміжні засоби журналювання | Допоміжні засоби журналювання підсистем і редагування чутливих даних | - | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби таблиць Markdown | Допоміжні засоби режиму таблиць Markdown | - | `plugin-sdk/reply-payload` | Типи відповідей на повідомлення | Типи корисного навантаження відповіді | - | `plugin-sdk/provider-setup` | Підібрані допоміжні засоби налаштування локального/самостійно розміщеного провайдера | Допоміжні засоби виявлення/конфігурації самостійно розміщеного провайдера | - | `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування самостійно розміщеного провайдера, сумісного з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації самостійно розміщеного провайдера | - | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби автентифікації провайдера під час виконання | Допоміжні засоби визначення API-ключа під час виконання | - | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключа провайдера | Допоміжні засоби онбордингу API-ключа/запису профілю | - | `plugin-sdk/provider-auth-result` | Допоміжні засоби результату автентифікації провайдера | Стандартний побудовник результату автентифікації OAuth | - | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу провайдера | Спільні допоміжні засоби інтерактивного входу | - | `plugin-sdk/provider-selection-runtime` | Допоміжні засоби вибору провайдера | Вибір налаштованого або автоматичного провайдера та об’єднання необробленої конфігурації провайдера | - | `plugin-sdk/provider-env-vars` | Допоміжні засоби env-var провайдера | Допоміжні засоби пошуку env-var автентифікації провайдера | - | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/відтворення провайдера | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політик відтворення, допоміжні засоби provider-endpoint і нормалізації model-id | - | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу провайдера | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-onboard` | Патчі онбордингу провайдера | Допоміжні засоби конфігурації онбордингу | - | `plugin-sdk/provider-http` | Допоміжні засоби HTTP провайдера | Узагальнені допоміжні засоби можливостей HTTP/кінцевих точок провайдера, включно з допоміжними засобами multipart-форми для транскрипції аудіо | - | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch провайдера | Допоміжні засоби реєстрації/кешу провайдера web-fetch | - | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search провайдера | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення вмикання Plugin | - | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search провайдера | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-сетери/гетери облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search провайдера | Допоміжні засоби реєстрації/кешу/виконання провайдера web-search | - | `plugin-sdk/provider-tools` | Допоміжні засоби сумісності інструментів/схем провайдера | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | Допоміжні засоби використання провайдера | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби використання провайдера | - | `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` | Допоміжні засоби транспорту провайдера | Нативні допоміжні засоби транспорту провайдера, як-от захищений fetch, перетворення транспортних повідомлень і записувані потоки транспортних подій | + | `plugin-sdk/tool-payload` | Витяг payload інструменту | Витягувати нормалізовані payload з об’єктів результату інструменту | + | `plugin-sdk/tool-send` | Витяг надсилання інструменту | Витягувати канонічні поля цілі надсилання з аргументів інструменту | + | `plugin-sdk/temp-path` | Помічники тимчасових шляхів | Спільні помічники шляхів для тимчасових завантажень | + | `plugin-sdk/logging-core` | Помічники журналювання | Помічники журналера підсистем і редагування конфіденційних даних | + | `plugin-sdk/markdown-table-runtime` | Помічники Markdown-таблиць | Помічники режиму Markdown-таблиць | + | `plugin-sdk/reply-payload` | Типи відповідей на повідомлення | Типи payload відповіді | + | `plugin-sdk/provider-setup` | Керовані помічники налаштування локальних/самостійно розміщених провайдерів | Помічники виявлення/конфігурації самостійно розміщених провайдерів | + | `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані помічники налаштування OpenAI-сумісних самостійно розміщених провайдерів | Ті самі помічники виявлення/конфігурації самостійно розміщених провайдерів | + | `plugin-sdk/provider-auth-runtime` | Помічники runtime-автентифікації провайдерів | Помічники runtime-визначення API-ключів | + | `plugin-sdk/provider-auth-api-key` | Помічники налаштування API-ключів провайдера | Помічники onboarding/запису профілю для API-ключів | + | `plugin-sdk/provider-auth-result` | Помічники auth-result провайдера | Стандартний builder OAuth auth-result | + | `plugin-sdk/provider-auth-login` | Помічники інтерактивного входу провайдера | Спільні помічники інтерактивного входу | + | `plugin-sdk/provider-selection-runtime` | Помічники вибору провайдера | Вибір налаштованого або автоматичного провайдера та об’єднання сирої конфігурації провайдера | + | `plugin-sdk/provider-env-vars` | Помічники env-var провайдера | Помічники пошуку env-var автентифікації провайдера | + | `plugin-sdk/provider-model-shared` | Спільні помічники моделей/відтворення провайдера | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні builders політик відтворення, помічники provider-endpoint і помічники нормалізації model-id | + | `plugin-sdk/provider-catalog-shared` | Спільні помічники каталогу провайдерів | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | + | `plugin-sdk/provider-onboard` | Патчі onboarding провайдера | Помічники onboarding-конфігурації | + | `plugin-sdk/provider-http` | HTTP-помічники провайдера | Загальні помічники можливостей HTTP/endpoint провайдера, зокрема помічники multipart form для транскрипції аудіо | + | `plugin-sdk/provider-web-fetch` | Помічники web-fetch провайдера | Помічники реєстрації/кешу web-fetch провайдера | + | `plugin-sdk/provider-web-search-config-contract` | Помічники конфігурації web-search провайдера | Вузькі помічники конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення plugin-enable | + | `plugin-sdk/provider-web-search-contract` | Помічники контракту web-search провайдера | Вузькі помічники контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setters/getters облікових даних | + | `plugin-sdk/provider-web-search` | Помічники web-search провайдера | Помічники реєстрації/кешу/runtime web-search провайдера | + | `plugin-sdk/provider-tools` | Помічники сумісності інструментів/схем провайдера | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та помічники сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-usage` | Помічники використання провайдера | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші помічники використання провайдера | + | `plugin-sdk/provider-stream` | Помічники wrapper потоку провайдера | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні помічники wrapper для Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | + | `plugin-sdk/provider-transport-runtime` | Помічники транспорту провайдера | Помічники нативного транспорту провайдера, як-от guarded fetch, перетворення транспортних повідомлень і writable transport event streams | | `plugin-sdk/keyed-async-queue` | Впорядкована асинхронна черга | `KeyedAsyncQueue` | - | `plugin-sdk/media-runtime` | Спільні допоміжні засоби медіа | Допоміжні засоби отримання/перетворення/зберігання медіа, визначення розмірів відео на основі ffprobe і побудовники корисного навантаження медіа | - | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації медіа | Спільні допоміжні засоби failover, вибору кандидатів і повідомлень про відсутні моделі для генерації зображень/відео/музики | - | `plugin-sdk/media-understanding` | Допоміжні засоби розуміння медіа | Типи провайдерів розуміння медіа плюс експорти допоміжних засобів для зображень/аудіо, орієнтовані на провайдерів | - | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Вилучення видимого для асистента тексту, допоміжні засоби рендерингу/фрагментації/таблиць Markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби directive-tag, утиліти safe-text і пов’язані допоміжні засоби тексту/журналювання | - | `plugin-sdk/text-chunking` | Допоміжні засоби фрагментації тексту | Допоміжний засіб фрагментації вихідного тексту | - | `plugin-sdk/speech` | Допоміжні засоби мовлення | Типи провайдерів мовлення плюс орієнтовані на провайдерів допоміжні засоби директив, реєстру, валідації та побудовник TTS, сумісний з OpenAI | - | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи провайдерів мовлення, реєстр, директиви, нормалізація | - | `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрипції в реальному часі | Типи провайдерів, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket | - | `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в реальному часі | Типи провайдерів, допоміжні засоби реєстру/визначення та допоміжні засоби bridge-сесій | - | `plugin-sdk/image-generation` | Допоміжні засоби генерації зображень | Типи провайдерів генерації зображень плюс допоміжні засоби ресурсів зображень/data URL і побудовник провайдера зображень, сумісний з OpenAI | - | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, failover, автентифікація та допоміжні засоби реєстру | - | `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/interactive-runtime` | Допоміжні засоби інтерактивної відповіді | Нормалізація/редукція корисного навантаження інтерактивної відповіді | + | `plugin-sdk/media-runtime` | Спільні помічники медіа | Помічники отримання/перетворення/збереження медіа, визначення розмірів відео на основі ffprobe та builders медіа payload | + | `plugin-sdk/media-generation-runtime` | Спільні помічники генерації медіа | Спільні помічники failover, вибір кандидатів і повідомлення про відсутні моделі для генерації зображень/відео/музики | + | `plugin-sdk/media-understanding` | Помічники розуміння медіа | Типи провайдера розуміння медіа, а також provider-facing експорти помічників зображень/аудіо | + | `plugin-sdk/text-runtime` | Спільні помічники тексту | Видалення видимого для асистента тексту, помічники рендерингу/розбиття на фрагменти/таблиць Markdown, помічники редагування конфіденційних даних, помічники directive-tag, утиліти safe-text і пов’язані помічники тексту/журналювання | + | `plugin-sdk/text-chunking` | Помічники розбиття тексту на фрагменти | Помічник розбиття вихідного тексту на фрагменти | + | `plugin-sdk/speech` | Помічники мовлення | Типи провайдера мовлення, а також provider-facing помічники директив, реєстру, валідації та OpenAI-сумісний builder TTS | + | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи провайдера мовлення, реєстр, директиви, нормалізація | + | `plugin-sdk/realtime-transcription` | Помічники транскрипції в реальному часі | Типи провайдера, помічники реєстру та спільний помічник WebSocket-сесії | + | `plugin-sdk/realtime-voice` | Помічники голосу в реальному часі | Типи провайдера, помічники реєстру/визначення та помічники bridge-сесій | + | `plugin-sdk/image-generation` | Помічники генерації зображень | Типи провайдера генерації зображень, а також помічники asset/data URL для зображень і OpenAI-сумісний builder провайдера зображень | + | `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, failover, автентифікація та помічники реєстру | + | `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/interactive-runtime` | Помічники інтерактивних відповідей | Нормалізація/зведення payload інтерактивної відповіді | | `plugin-sdk/channel-config-primitives` | Примітиви конфігурації каналу | Вузькі примітиви config-schema каналу | - | `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації каналу | Допоміжні засоби авторизації запису конфігурації каналу | + | `plugin-sdk/channel-config-writes` | Помічники запису конфігурації каналу | Помічники авторизації запису конфігурації каналу | | `plugin-sdk/channel-plugin-common` | Спільна преамбула каналу | Спільні експорти преамбули Plugin каналу | - | `plugin-sdk/channel-status` | Допоміжні засоби статусу каналу | Спільні допоміжні засоби знімка/зведення статусу каналу | - | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби конфігурації allowlist | Допоміжні засоби редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Допоміжні засоби групового доступу | Спільні допоміжні засоби рішень щодо групового доступу | - | `plugin-sdk/direct-dm` | Допоміжні засоби Direct-DM | Спільні допоміжні засоби автентифікації/захисту Direct-DM | - | `plugin-sdk/extension-shared` | Спільні допоміжні засоби розширень | Примітиви пасивного каналу/статусу та допоміжні примітиви ambient proxy | - | `plugin-sdk/webhook-targets` | Допоміжні засоби цілей Webhook | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів | - | `plugin-sdk/webhook-path` | Допоміжні засоби шляху Webhook | Допоміжні засоби нормалізації шляху Webhook | - | `plugin-sdk/web-media` | Спільні допоміжні засоби вебмедіа | Допоміжні засоби завантаження віддалених/локальних медіа | - | `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів plugin SDK | - | `plugin-sdk/memory-core` | Вбудовані допоміжні засоби memory-core | Поверхня допоміжних засобів менеджера/конфігурації/файлів/CLI пам’яті | - | `plugin-sdk/memory-core-engine-runtime` | Фасад виконання рушія пам’яті | Фасад виконання індексу/пошуку пам’яті | + | `plugin-sdk/channel-status` | Помічники статусу каналу | Спільні помічники snapshot/summary статусу каналу | + | `plugin-sdk/allowlist-config-edit` | Помічники конфігурації allowlist | Помічники редагування/читання конфігурації allowlist | + | `plugin-sdk/group-access` | Помічники групового доступу | Спільні помічники рішень щодо групового доступу | + | `plugin-sdk/direct-dm` | Помічники прямих DM | Спільні помічники автентифікації/guard для прямих DM | + | `plugin-sdk/extension-shared` | Спільні помічники extension | Примітиви помічників passive-channel/status та ambient proxy | + | `plugin-sdk/webhook-targets` | Помічники цілей Webhook | Реєстр цілей Webhook і помічники встановлення маршрутів | + | `plugin-sdk/webhook-path` | Помічники шляху Webhook | Помічники нормалізації шляху Webhook | + | `plugin-sdk/web-media` | Спільні помічники вебмедіа | Помічники завантаження віддалених/локальних медіа | + | `plugin-sdk/zod` | Реекспорт Zod | Реекспортований `zod` для споживачів SDK плагінів | + | `plugin-sdk/memory-core` | Вбудовані помічники memory-core | Поверхня помічників менеджера/конфігурації/файлів/CLI пам’яті | + | `plugin-sdk/memory-core-engine-runtime` | Runtime-фасад рушія пам’яті | Runtime-фасад індексу/пошуку пам’яті | | `plugin-sdk/memory-core-host-engine-foundation` | Базовий рушій хоста пам’яті | Експорти базового рушія хоста пам’яті | - | `plugin-sdk/memory-core-host-engine-embeddings` | Рушій embedding хоста пам’яті | Контракти embedding пам’яті, доступ до реєстру, локальний провайдер і узагальнені batch/remote допоміжні засоби; конкретні віддалені провайдери містяться у своїх Plugin-власниках | + | `plugin-sdk/memory-core-host-engine-embeddings` | Рушій embeddings хоста пам’яті | Контракти embeddings пам’яті, доступ до реєстру, локальний провайдер і загальні batch/remote помічники; конкретні віддалені провайдери живуть у власних plugins | | `plugin-sdk/memory-core-host-engine-qmd` | Рушій QMD хоста пам’яті | Експорти рушія QMD хоста пам’яті | | `plugin-sdk/memory-core-host-engine-storage` | Рушій сховища хоста пам’яті | Експорти рушія сховища хоста пам’яті | - | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті | Мультимодальні допоміжні засоби хоста пам’яті | - | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті | Допоміжні засоби запитів хоста пам’яті | - | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті | Допоміжні засоби секретів хоста пам’яті | - | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | Допоміжні засоби журналу подій хоста пам’яті | - | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | Допоміжні засоби статусу хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-cli` | Виконання CLI хоста пам’яті | Допоміжні засоби виконання CLI хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-core` | Ядро виконання хоста пам’яті | Допоміжні засоби ядра виконання хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/виконання хоста пам’яті | Допоміжні засоби файлів/виконання хоста пам’яті | - | `plugin-sdk/memory-host-core` | Псевдонім ядра виконання хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів ядра виконання хоста пам’яті | - | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті | - | `plugin-sdk/memory-host-files` | Псевдонім файлів/виконання хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів файлів/виконання хоста пам’яті | - | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого Markdown | Спільні допоміжні засоби керованого Markdown для суміжних із пам’яттю Plugin | - | `plugin-sdk/memory-host-search` | Фасад пошуку active memory | Фасад виконання менеджера пошуку active-memory з лінивим завантаженням | - | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів статусу хоста пам’яті | - | `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/memory-core-host-multimodal` | Мультимодальні помічники хоста пам’яті | Мультимодальні помічники хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Помічники запитів хоста пам’яті | Помічники запитів хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Помічники секретів хоста пам’яті | Помічники секретів хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Помічники журналу подій хоста пам’яті | Помічники журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Помічники статусу хоста пам’яті | Помічники статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime хоста пам’яті | CLI runtime-помічники хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-core` | Core runtime хоста пам’яті | Core runtime-помічники хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-files` | Помічники файлів/runtime хоста пам’яті | Помічники файлів/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Псевдонім core runtime хоста пам’яті | Vendor-neutral псевдонім для core runtime-помічників хоста пам’яті | + | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста пам’яті | Vendor-neutral псевдонім для помічників журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Псевдонім файлів/runtime хоста пам’яті | Vendor-neutral псевдонім для помічників файлів/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Помічники керованого Markdown | Спільні помічники managed-markdown для суміжних із пам’яттю plugins | + | `plugin-sdk/memory-host-search` | Фасад пошуку active memory | Лінивий runtime-фасад search-manager active-memory | + | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста пам’яті | Vendor-neutral псевдонім для помічників статусу хоста пам’яті | + | `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`. -Зарезервовані допоміжні шви вбудованих Plugin було вилучено з публічної мапи -експорту SDK, за винятком явно задокументованих фасадів сумісності, як-от -застарілий шим `plugin-sdk/discord`, залишений для опублікованого пакета -`@openclaw/discord@2026.3.13`. Допоміжні засоби, специфічні для власника, -містяться всередині пакета Plugin-власника; спільна поведінка хоста має -проходити через загальні контракти SDK, як-от `plugin-sdk/gateway-runtime`, -`plugin-sdk/security-runtime` і `plugin-sdk/plugin-config-runtime`. +Зарезервовані допоміжні межі вбудованих Plugin вилучено з карти експортів +публічного SDK, окрім явно задокументованих фасадів сумісності, як-от +застарілий shim `plugin-sdk/discord`, збережений для опублікованого пакета +`@openclaw/discord@2026.3.13`. Специфічні для власника допоміжні засоби +містяться всередині пакета Plugin, якому вони належать; спільна поведінка хоста +має проходити через загальні контракти SDK, як-от +`plugin-sdk/gateway-runtime`, `plugin-sdk/security-runtime` і +`plugin-sdk/plugin-config-runtime`. Використовуйте найвужчий імпорт, що відповідає завданню. Якщо не можете знайти -експорт, перевірте вихідний код у `src/plugin-sdk/` або запитайте -супроводжувачів, який загальний контракт має ним володіти. +експорт, перевірте джерело в `src/plugin-sdk/` або запитайте супровідників, який +загальний контракт має ним володіти. -## Активні застарілі API +## Активні застарілі елементи -Вужчі застарілі API, що застосовуються до SDK Plugin, контракту провайдера, -runtime-поверхні та маніфесту. Кожен із них усе ще працює сьогодні, але буде -вилучений у майбутньому мажорному випуску. Запис під кожним пунктом зіставляє -старий API з його канонічною заміною. +Вужчі застарілі елементи, що застосовуються до plugin SDK, контракту +провайдера, runtime-поверхні та маніфесту. Кожен із них усе ще працює сьогодні, +але буде вилучений у майбутньому мажорному випуску. Запис під кожним елементом +зіставляє старий API з його канонічною заміною. - + **Старе (`openclaw/plugin-sdk/command-auth`)**: `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage`. **Нове (`openclaw/plugin-sdk/command-status`)**: ті самі сигнатури, ті самі - експорти — лише імпортовані з вужчого підшляху. `command-auth` - реекспортує їх як заглушки сумісності. + експорти — просто імпортовані з вужчого підшляху. `command-auth` + реекспортує їх як сумісні заглушки. ```typescript // Before @@ -587,100 +588,97 @@ runtime-поверхні та маніфесту. Кожен із них усе - + **Старе**: `resolveInboundMentionRequirement({ facts, policy })` і `shouldDropInboundForMention(...)` з `openclaw/plugin-sdk/channel-inbound` або `openclaw/plugin-sdk/channel-mention-gating`. **Нове**: `resolveInboundMentionDecision({ facts, policy })` — повертає - один об'єкт рішення замість двох окремих викликів. + єдиний об’єкт рішення замість двох окремих викликів. - Низхідні Plugin каналів (Slack, Discord, Matrix, MS Teams) уже + Нижчі за ланцюжком channel plugins (Slack, Discord, Matrix, MS Teams) уже перейшли. - - `openclaw/plugin-sdk/channel-runtime` — це шим сумісності для старіших - Plugin каналів. Не імпортуйте його з нового коду; використовуйте - `openclaw/plugin-sdk/channel-runtime-context` для реєстрації runtime- - об'єктів. + + `openclaw/plugin-sdk/channel-runtime` є shim сумісності для старіших + channel plugins. Не імпортуйте його з нового коду; використовуйте + `openclaw/plugin-sdk/channel-runtime-context` для реєстрації runtime-об’єктів. - Допоміжні засоби `channelActions*` в `openclaw/plugin-sdk/channel-actions` - застаріли разом із сирими експортами каналу "actions". Натомість - виставляйте можливості через семантичну поверхню `presentation` — Plugin - каналів оголошують, що вони відображають (картки, кнопки, селекти), а не - які сирі назви дій вони приймають. + Допоміжні засоби `channelActions*` у `openclaw/plugin-sdk/channel-actions` + застаріли разом із raw-експортами channel "actions". Натомість виставляйте + можливості через семантичну поверхню `presentation` — channel plugins + оголошують, що вони рендерять (картки, кнопки, випадаючі списки), а не які + raw-назви дій вони приймають. - + **Старе**: фабрика `tool()` з `openclaw/plugin-sdk/provider-web-search`. - **Нове**: реалізуйте `createTool(...)` безпосередньо в Plugin провайдера. - OpenClaw більше не потребує допоміжного засобу SDK для реєстрації - обгортки інструмента. + **Нове**: реалізуйте `createTool(...)` безпосередньо в provider plugin. + OpenClaw більше не потребує допоміжного засобу SDK для реєстрації обгортки + інструмента. - + **Старе**: `formatInboundEnvelope(...)` (і - `ChannelMessageForAgent.channelEnvelope`) для побудови пласкої plaintext- - обгортки prompt із вхідних повідомлень каналу. + `ChannelMessageForAgent.channelEnvelope`) для створення плаского plaintext + prompt envelope з вхідних channel-повідомлень. **Нове**: `BodyForAgent` плюс структуровані блоки контексту користувача. - Plugin каналів додають метадані маршрутизації (thread, topic, reply-to, - reactions) як типізовані поля замість конкатенації їх у рядок prompt. - Допоміжний засіб `formatAgentEnvelope(...)` усе ще підтримується для - синтезованих обгорток, орієнтованих на асистента, але вхідні plaintext- - обгортки поступово вилучаються. + Channel plugins додають routing-метадані (thread, topic, reply-to, reactions) + як типізовані поля замість конкатенації їх у prompt-рядок. Допоміжний засіб + `formatAgentEnvelope(...)` усе ще підтримується для синтезованих envelope, + звернених до assistant, але вхідні plaintext envelopes поступово виводяться. Зачеплені області: `inbound_claim`, `message_received` і будь-який - кастомний Plugin каналу, що постобробляв текст `channelEnvelope`. + користувацький channel plugin, який постобробляв текст `channelEnvelope`. - - Чотири псевдоніми типів виявлення тепер є тонкими обгортками над типами - епохи каталогу: + + Чотири псевдоніми типів discovery тепер є тонкими обгортками над типами + catalog-era: - | Старий псевдонім | Новий тип | + | Старий псевдонім | Новий тип | | ------------------------- | ------------------------- | | `ProviderDiscoveryOrder` | `ProviderCatalogOrder` | | `ProviderDiscoveryContext`| `ProviderCatalogContext` | | `ProviderDiscoveryResult` | `ProviderCatalogResult` | | `ProviderPluginDiscovery` | `ProviderPluginCatalog` | - Плюс застарілий статичний набір `ProviderCapabilities` — Plugin - провайдерів мають використовувати явні хуки провайдера, як-от - `buildReplayPolicy`, `normalizeToolSchemas` і `wrapStreamFn`, замість - статичного об'єкта. + Плюс застарілий статичний набір `ProviderCapabilities` — provider plugins + мають використовувати явні provider hooks, як-от `buildReplayPolicy`, + `normalizeToolSchemas` і `wrapStreamFn`, замість статичного об’єкта. - - **Старе** (три окремі хуки в `ProviderThinkingPolicy`): + + **Старе** (три окремі hooks у `ProviderThinkingPolicy`): `isBinaryThinking(ctx)`, `supportsXHighThinking(ctx)` і `resolveDefaultThinkingLevel(ctx)`. - **Нове**: один `resolveThinkingProfile(ctx)`, який повертає - `ProviderThinkingProfile` з канонічним `id`, необов'язковим `label` і - ранжованим списком рівнів. OpenClaw автоматично знижує застарілі - збережені значення за рангом профілю. + **Нове**: єдиний `resolveThinkingProfile(ctx)`, що повертає + `ProviderThinkingProfile` з канонічним `id`, необов’язковим `label` і + ранжованим списком рівнів. OpenClaw автоматично понижує застарілі збережені + значення за рангом профілю. - Реалізуйте один хук замість трьох. Застарілі хуки продовжують працювати - протягом вікна застарівання, але не компонуються з результатом профілю. + Реалізуйте один hook замість трьох. Застарілі hooks працюють протягом вікна + застарівання, але не компонуються з результатом профілю. - + **Старе**: реалізація `resolveExternalOAuthProfiles(...)` без оголошення провайдера в маніфесті Plugin. **Нове**: оголосіть `contracts.externalAuthProviders` у маніфесті Plugin **і** реалізуйте `resolveExternalAuthProfiles(...)`. Старий шлях "auth - fallback" виводить попередження під час виконання і буде вилучений. + fallback" видає попередження під час виконання й буде вилучений. ```json { @@ -692,54 +690,53 @@ runtime-поверхні та маніфесту. Кожен із них усе - + **Старе** поле маніфесту: `providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }`. **Нове**: віддзеркальте той самий пошук env-var у `setup.providers[].envVars` - у маніфесті. Це консолідує метадані env для налаштування/статусу в одному - місці та уникає запуску runtime Plugin лише для відповіді на запити - env-var. + у маніфесті. Це об’єднує env-метадані setup/status в одному місці й уникає + запуску runtime Plugin лише для відповіді на env-var lookup. - `providerAuthEnvVars` залишається підтримуваним через адаптер сумісності - до завершення вікна застарівання. + `providerAuthEnvVars` залишається підтримуваним через адаптер сумісності, + доки не завершиться вікно застарівання. - + **Старе**: три окремі виклики — `api.registerMemoryPromptSection(...)`, `api.registerMemoryFlushPlan(...)`, `api.registerMemoryRuntime(...)`. - **Нове**: один виклик в API стану пам'яті — + **Нове**: один виклик в API memory-state — `registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime })`. - Ті самі слоти, один виклик реєстрації. Додаткові допоміжні засоби пам'яті + Ті самі слоти, один виклик реєстрації. Додаткові допоміжні засоби пам’яті (`registerMemoryPromptSupplement`, `registerMemoryCorpusSupplement`, - `registerMemoryEmbeddingProvider`) не зачіпаються. + `registerMemoryEmbeddingProvider`) не зачеплені. - - Два застарілі псевдоніми типів усе ще експортуються з `src/plugins/runtime/types.ts`: + + Два застарілі псевдоніми типів досі експортуються з `src/plugins/runtime/types.ts`: | Старе | Нове | | ----------------------------- | ------------------------------- | | `SubagentReadSessionParams` | `SubagentGetSessionMessagesParams` | | `SubagentReadSessionResult` | `SubagentGetSessionMessagesResult` | - Метод runtime `readSession` застарів на користь `getSessionMessages`. - Сигнатура та сама; старий метод викликає новий. + Runtime-метод `readSession` застарів на користь `getSessionMessages`. Та сама + сигнатура; старий метод викликає новий. **Старе**: `runtime.tasks.flow` (однина) повертав live-аксесор task-flow. - **Нове**: `runtime.tasks.managedFlows` зберігає керований runtime мутацій - TaskFlow для Plugin, що створюють, оновлюють, скасовують або запускають - дочірні завдання з потоку. Використовуйте `runtime.tasks.flows`, коли - Plugin потрібні лише читання на основі DTO. + **Нове**: `runtime.tasks.managedFlows` зберігає managed TaskFlow mutation + runtime для plugins, які створюють, оновлюють, скасовують або запускають + дочірні завдання з flow. Використовуйте `runtime.tasks.flows`, коли Plugin + потребує лише DTO-based читання. ```typescript // Before @@ -750,15 +747,15 @@ runtime-поверхні та маніфесту. Кожен із них усе - - Описано вище в "Як мігрувати → Перенесіть розширення результатів - інструментів Pi до middleware". Додано тут для повноти: вилучений шлях - лише для Pi `api.registerEmbeddedExtensionFactory(...)` замінено на - `api.registerAgentToolResultMiddleware(...)` з явним списком runtime - у `contracts.agentToolResultMiddleware`. + + Розглянуто вище в "Як мігрувати → Мігруйте розширення Pi tool-result на + middleware". Додано тут для повноти: вилучений шлях лише для Pi + `api.registerEmbeddedExtensionFactory(...)` замінено на + `api.registerAgentToolResultMiddleware(...)` з явним списком runtime у + `contracts.agentToolResultMiddleware`. - + `OpenClawSchemaType`, реекспортований з `openclaw/plugin-sdk`, тепер є однорядковим псевдонімом для `OpenClawConfig`. Надавайте перевагу канонічній назві. @@ -774,24 +771,24 @@ runtime-поверхні та маніфесту. Кожен із них усе -Застарілі API рівня розширень (усередині вбудованих Plugin каналів/провайдерів -під `extensions/`) відстежуються у власних barrel-файлах `api.ts` і -`runtime-api.ts`. Вони не впливають на контракти сторонніх Plugin і не +Застарілі елементи рівня Plugin (всередині вбудованих channel/provider plugins +у `extensions/`) відстежуються у власних barrel-файлах `api.ts` і +`runtime-api.ts`. Вони не впливають на контракти сторонніх plugins і не перелічені тут. Якщо ви напряму використовуєте локальний barrel вбудованого -Plugin, прочитайте коментарі про застарівання в цьому barrel перед оновленням. +Plugin, перед оновленням прочитайте коментарі про застарівання в цьому barrel. ## Графік вилучення | Коли | Що відбувається | | ---------------------- | ----------------------------------------------------------------------- | -| **Зараз** | Застарілі поверхні виводять runtime-попередження | -| **Наступний мажорний випуск** | Застарілі поверхні буде вилучено; Plugin, що досі їх використовують, не працюватимуть | +| **Зараз** | Застарілі поверхні видають runtime-попередження | +| **Наступний мажорний випуск** | Застарілі поверхні буде вилучено; plugins, які досі їх використовують, не працюватимуть | -Усі core Plugin уже мігровано. Зовнішні Plugin мають мігрувати до наступного +Усі core plugins уже мігровано. Зовнішні plugins мають мігрувати до наступного мажорного випуску. -## Тимчасове придушення попереджень +## Тимчасове приглушення попереджень Установіть ці змінні середовища, поки працюєте над міграцією: @@ -800,13 +797,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) — повний довідник імпортів підшляхів -- [Plugin каналів](/uk/plugins/sdk-channel-plugins) — створення Plugin каналів -- [Plugin провайдерів](/uk/plugins/sdk-provider-plugins) — створення Plugin провайдерів -- [Внутрішня архітектура Plugin](/uk/plugins/architecture) — глибокий огляд архітектури +- [Channel Plugins](/uk/plugins/sdk-channel-plugins) — створення channel plugins +- [Provider Plugins](/uk/plugins/sdk-provider-plugins) — створення provider plugins +- [Внутрішня будова Plugin](/uk/plugins/architecture) — поглиблений огляд архітектури - [Маніфест Plugin](/uk/plugins/manifest) — довідник схеми маніфесту diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md index c87a5d6f8..7677728ab 100644 --- a/docs/uk/plugins/sdk-subpaths.md +++ b/docs/uk/plugins/sdk-subpaths.md @@ -1,30 +1,30 @@ --- read_when: - - Вибір правильного підшляху plugin-sdk для імпорту Plugin - - Аудит підшляхів вбудованих Plugin і допоміжних поверхонь -summary: 'Каталог підшляхів Plugin SDK: які імпорти де розташовані, згруповано за областями' + - Вибір правильного підшляху plugin-sdk для імпорту в Plugin + - Аудит підшляхів вбудованих Plugin і допоміжних інтерфейсів +summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями' title: Підшляхи Plugin SDK x-i18n: - generated_at: "2026-04-29T07:02:05Z" + generated_at: "2026-04-29T11:22:47Z" model: gpt-5.5 provider: openai - source_hash: 5c7b6cea2d995bcf10a9143822201212cbf239684fa49572d990d34fc033d60c + source_hash: bb6ab50997d3f8cd78c1a70924e7349d577e70af7061fd0d43d4836830a90e9a source_path: plugins/sdk-subpaths.md workflow: 16 --- - Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`. - На цій сторінці наведено поширені підшляхи, згруповані за призначенням. Згенерований - повний список із 200+ підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`; - зарезервовані допоміжні підшляхи bundled-plugin теж наведені там, але є деталлю - реалізації, якщо сторінка документації явно не просуває їх. Мейнтейнері можуть перевіряти активні - зарезервовані допоміжні підшляхи за допомогою `pnpm plugins:boundary-report:summary`; невикористані - зарезервовані допоміжні експорти провалюють звіт CI, замість того щоб залишатися в публічному SDK + SDK плагінів надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`. + На цій сторінці наведено часто використовувані підшляхи, згруповані за призначенням. Згенерований + повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`; + зарезервовані підшляхи допоміжних засобів вбудованих плагінів також є там, але вони є деталлю + реалізації, якщо сторінка документації явно не робить їх рекомендованими. Супровідники можуть перевіряти активні + зарезервовані підшляхи допоміжних засобів за допомогою `pnpm plugins:boundary-report:summary`; невикористані + зарезервовані допоміжні експорти спричиняють збій звіту CI, а не залишаються в публічному SDK як неактивний борг сумісності. - Посібник з авторства Plugin дивіться в [огляді Plugin SDK](/uk/plugins/sdk-overview). + Посібник зі створення плагінів див. у [огляді Plugin SDK](/uk/plugins/sdk-overview). - ## Вхід Plugin + ## Точка входу Plugin | Підшлях | Ключові експорти | | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -32,19 +32,19 @@ x-i18n: | `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` | | `plugin-sdk/config-schema` | `OpenClawSchema` | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | - | `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів Plugin; для нових тестів Plugin віддавайте перевагу сфокусованим тестовим підшляхам | - | `plugin-sdk/plugin-test-api` | Мінімальний побудовник mock `OpenClawPluginApi` для unit-тестів прямої реєстрації Plugin | - | `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, пригнічення доставки, класифікації fallback, hook-ів інструментів, накладень prompt, схем і відновлення transcript | - | `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестів життєвого циклу облікового запису каналу, каталогу, send-config, runtime mock, hook, запису bundled channel, timestamp конверта, відповіді pairing і generic контракту каналу | - | `plugin-sdk/channel-target-testing` | Спільний набір тестів помилкових випадків розв’язання цілі каналу | - | `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів для реєстрації Plugin, маніфесту пакета, публічного артефакту, runtime API, import side-effect і прямого import | - | `plugin-sdk/plugin-test-runtime` | Фікстури runtime Plugin, registry, provider-registration, setup-wizard і runtime task-flow для тестів | - | `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів для provider runtime, автентифікації, discovery, onboard, catalog, media capability, replay policy, realtime STT live-audio, web-search/fetch і wizard | - | `plugin-sdk/provider-http-test-mocks` | Opt-in HTTP/auth mocks Vitest для тестів provider, які перевіряють `plugin-sdk/provider-http` | + | `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів плагінів; для нових тестів розширень надавайте перевагу сфокусованим тестовим підшляхам | + | `plugin-sdk/plugin-test-api` | Мінімальний builder моків `OpenClawPluginApi` для модульних тестів прямої реєстрації плагінів | + | `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, пригнічення доставки, класифікації fallback, хуків інструментів, накладень промптів, схем і відновлення транскриптів | + | `plugin-sdk/channel-test-helpers` | Допоміжні засоби тестування життєвого циклу акаунта каналу, директорії, конфігурації надсилання, мока runtime, хука, запису вбудованого каналу, часової позначки envelope, відповіді pairing і загальних контрактів каналів | + | `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 провайдера, автентифікації, виявлення, onboard, каталогу, медіаможливостей, політики replay, realtime STT live-audio, web-search/fetch і майстра | + | `plugin-sdk/provider-http-test-mocks` | Опціональні HTTP/auth моки Vitest для тестів провайдерів, які перевіряють `plugin-sdk/provider-http` | | `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/network, одноразового HTTP-сервера, вхідного запиту, live-test, тимчасової файлової системи та керування часом | - | `plugin-sdk/test-fixtures` | Загальні тестові фікстури CLI, sandbox, skill, agent-message, system-event, module reload, шляху bundled plugin, terminal, chunking, auth-token і typed-case | - | `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби mock для вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` | - | `plugin-sdk/migration` | Допоміжні засоби елементів provider міграції, як-от `createMigrationItem`, константи причин, маркери стану елементів, допоміжні засоби редагування та `summarizeMigrationItems` | + | `plugin-sdk/test-fixtures` | Загальні фікстури тестів CLI, sandbox, skill, agent-message, system-event, перезавантаження модуля, шляху вбудованого плагіна, terminal, chunking, auth-token і typed-case | + | `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби моків вбудованих модулів Node для використання у фабриках Vitest `vi.mock("node:*")` | + | `plugin-sdk/migration` | Допоміжні засоби елементів провайдера міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, допоміжні засоби редагування та `summarizeMigrationItems` | | `plugin-sdk/migration-runtime` | Допоміжні засоби runtime міграції, як-от `copyMigrationFileItem` і `writeMigrationReport` | @@ -52,279 +52,279 @@ x-i18n: | Підшлях | Ключові експорти | | --- | --- | | `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) | + | `plugin-sdk/config-schema` | Експорт Zod-схеми кореневого `openclaw.json` (`OpenClawSchema`) | | `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/setup` | Спільні допоміжні засоби setup wizard, prompt-и allowlist, побудовники стану setup | + | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, промпти allowlist, builder-и статусу налаштування | | `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` | Допоміжні засоби багатооблікової конфігурації/action-gate, допоміжні засоби fallback для default-account | + | `plugin-sdk/account-core` | Допоміжні засоби конфігурації кількох акаунтів/action-gate, допоміжні засоби fallback для акаунта за замовчуванням | | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id | - | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + default-fallback | + | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку акаунта + default-fallback | | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби account-list/account-action | | `plugin-sdk/channel-pairing` | `createChannelPairingController` | | `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` | | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` | - | `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та generic побудовник | - | `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації bundled каналів OpenClaw лише для підтримуваних bundled plugins | + | `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та загальний builder | + | `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації каналів OpenClaw для підтримуваних вбудованих плагінів лише | | `plugin-sdk/channel-config-schema-legacy` | Застарілий псевдонім сумісності для схем конфігурації bundled-channel | - | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/перевірки користувацьких команд Telegram із fallback на bundled-contract | - | `plugin-sdk/command-gating` | Вузькі допоміжні засоби authorization gate команд | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації кастомних команд Telegram з fallback вбудованого контракту | + | `plugin-sdk/command-gating` | Вузькі допоміжні засоби gate авторизації команд | | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` | | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, `createChannelRunQueue`, допоміжні засоби життєвого циклу/фіналізації draft stream | - | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби вхідного маршруту + побудовника конверта | - | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби record-and-dispatch для вхідних даних | - | `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей | + | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби вхідного маршруту + builder envelope | + | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та dispatch вхідних записів | + | `plugin-sdk/messaging-targets` | Допоміжні засоби парсингу/зіставлення цілей | | `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа | - | `plugin-sdk/outbound-send-deps` | Легковаговий пошук залежностей outbound send для адаптерів каналів | - | `plugin-sdk/outbound-runtime` | Допоміжні засоби outbound delivery, identity, send delegate, session, formatting і планування payload | + | `plugin-sdk/outbound-send-deps` | Легкий пошук залежностей вихідного надсилання для адаптерів каналів | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби планування вихідної доставки, ідентичності, делегата надсилання, сесії, форматування та payload | | `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll | - | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптера | - | `plugin-sdk/agent-media-payload` | Застарілий побудовник media payload агента | + | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding та адаптера | + | `plugin-sdk/agent-media-payload` | Застарілий builder payload медіа агента | | `plugin-sdk/conversation-runtime` | Допоміжні засоби conversation/thread binding, pairing і configured-binding | - | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot runtime config | + | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot runtime-конфігурації | | `plugin-sdk/runtime-group-policy` | Допоміжні засоби розв’язання runtime group-policy | - | `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary стану каналу | + | `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary статусу каналу | | `plugin-sdk/channel-config-primitives` | Вузькі примітиви channel config-schema | - | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації channel config-write | - | `plugin-sdk/channel-plugin-common` | Спільні експорти prelude для channel plugin | + | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу | + | `plugin-sdk/channel-plugin-common` | Спільні експорти prelude для плагіна каналу | | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist | - | `plugin-sdk/group-access` | Спільні допоміжні засоби рішень group-access | + | `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень group-access | | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для direct-DM | - | `plugin-sdk/discord` | Застарілий фасад сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності owner; нові plugins мають використовувати generic підшляхи channel SDK | - | `plugin-sdk/telegram-account` | Застарілий фасад сумісності розв’язання облікового запису Telegram для відстежуваної сумісності owner; нові plugins мають використовувати інжектовані runtime helpers або generic підшляхи channel SDK | - | `plugin-sdk/interactive-runtime` | Семантичне подання повідомлень, доставка та застарілі допоміжні засоби інтерактивної відповіді. Дивіться [Подання повідомлень](/uk/plugins/message-presentation) | - | `plugin-sdk/channel-inbound` | Barrel сумісності для inbound debounce, зіставлення mention, допоміжних засобів mention-policy і допоміжних засобів envelope | - | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби inbound debounce | + | `plugin-sdk/discord` | Застарілий фасад сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності власника; нові плагіни мають використовувати загальні підшляхи SDK каналів | + | `plugin-sdk/telegram-account` | Застарілий фасад сумісності розв’язання акаунта Telegram для відстежуваної сумісності власника; нові плагіни мають використовувати інжектовані runtime helpers або загальні підшляхи SDK каналів | + | `plugin-sdk/interactive-runtime` | Семантичне подання повідомлень, доставка та застарілі допоміжні засоби інтерактивної відповіді. Див. [Подання повідомлень](/uk/plugins/message-presentation) | + | `plugin-sdk/channel-inbound` | Barrel сумісності для вхідного debounce, зіставлення mention, допоміжних засобів mention-policy та envelope | + | `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби вхідного debounce | | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy, маркера mention і тексту mention без ширшої поверхні inbound runtime | - | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування inbound envelope | + | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope | | `plugin-sdk/channel-location` | Контекст розташування каналу та допоміжні засоби форматування | - | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для inbound drops і typing/ack failures | + | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для вхідних drop і помилок typing/ack | | `plugin-sdk/channel-send-result` | Типи результату відповіді | - | `plugin-sdk/channel-actions` | Допоміжні засоби message-action каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin | - | `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршруту, розв’язання цілі через parser, перетворення thread-id на рядок, дедуплікації/компактизації ключів маршруту, типи parsed-target і порівняння route/target | - | `plugin-sdk/channel-targets` | Допоміжні засоби розбору цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` | - | `plugin-sdk/channel-contract` | Типи контрактів каналу | - | `plugin-sdk/channel-feedback` | Підключення feedback/reaction | - | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target | + | `plugin-sdk/channel-actions` | Допоміжні засоби message-action каналу, а також застарілі допоміжні засоби нативних схем, збережені для сумісності плагінів | + | `plugin-sdk/channel-route` | Спільна нормалізація маршрутів, розв’язання цілей через парсер, приведення thread-id до рядка, dedupe/compact ключі маршрутів, типи parsed-target і допоміжні засоби порівняння route/target | + | `plugin-sdk/channel-targets` | Допоміжні засоби парсингу цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` | + | `plugin-sdk/channel-contract` | Типи контрактів каналів | + | `plugin-sdk/channel-feedback` | Зв’язування feedback/reaction | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment` і типи цілей secret | - + | Підшлях | Ключові експорти | | --- | --- | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | - | `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделі під час виконання | - | `plugin-sdk/lmstudio-runtime` | Підтримуваний runtime-фасад LM Studio для локальних стандартних налаштувань сервера, виявлення моделей, заголовків запитів і допоміжних засобів завантажених моделей | - | `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених провайдерів | - | `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування самостійно розміщених OpenAI-сумісних провайдерів | - | `plugin-sdk/cli-backend` | Стандартні налаштування бекенда CLI + константи watchdog | - | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime для визначення ключів API у provider plugins | - | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу ключів API/запису профілю, як-от `upsertApiKeyProfile` | + | `plugin-sdk/lmstudio` | Підтримуваний фасад постачальника LM Studio для налаштування, виявлення каталогу й підготовки моделей під час виконання | + | `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад часу виконання LM Studio для стандартних параметрів локального сервера, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей | + | `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених постачальників | + | `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування OpenAI-сумісних самостійно розміщених постачальників | + | `plugin-sdk/cli-backend` | Стандартні параметри бекенду CLI + константи сторожового процесу | + | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби розв’язання API-ключів під час виконання для Plugin постачальників | + | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу API-ключів/запису профілю, як-от `upsertApiKeyProfile` | | `plugin-sdk/provider-auth-result` | Стандартний конструктор результату автентифікації OAuth | - | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для provider plugins | - | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var автентифікації провайдера | + | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для Plugin постачальників | + | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку змінних середовища автентифікації постачальника | | `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 seams реєстру для контрактних тестів | + | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політик повторного відтворення, допоміжні засоби кінцевих точок постачальника та допоміжні засоби нормалізації ID моделей, як-от `normalizeNativeXaiModelId` | + | `plugin-sdk/provider-catalog-runtime` | Хук часу виконання для доповнення каталогу постачальників і шви реєстру Plugin-постачальників для контрактних тестів | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Загальні допоміжні засоби можливостей HTTP/endpoint провайдера, HTTP-помилки провайдера та допоміжні засоби multipart-форми для транскрипції аудіо | - | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` | - | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдера web-fetch | - | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/credential для web-search для провайдерів, яким не потрібне підключення plugin-enable | - | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/credential для web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, а також scoped setters/getters облікових даних | - | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime провайдера web-search | - | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | - | `plugin-sdk/provider-usage` | `fetchClaudeUsage` і подібні | - | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні допоміжні засоби wrapper для Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, як-от захищений fetch, перетворення transport message і writable transport event streams | + | `plugin-sdk/provider-http` | Універсальні допоміжні засоби можливостей HTTP/кінцевих точок постачальників, HTTP-помилки постачальників і допоміжні засоби multipart-форм для транскрипції аудіо | + | `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 | + | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту налаштування/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, і обмежені за областю сетери/гетери облікових даних | + | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/часу виконання постачальника 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` | Допоміжні засоби нативного транспорту постачальників, як-от захищений fetch, перетворення транспортних повідомлень і придатні для запису потоки транспортних подій | | `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу | - | `plugin-sdk/global-singleton` | Допоміжні засоби singleton/map/cache у межах процесу | - | `plugin-sdk/group-activation` | Допоміжні засоби вузького режиму активації групи та розбору команд | + | `plugin-sdk/global-singleton` | Допоміжні засоби локальних для процесу singleton/map/cache | + | `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` | Допоміжні засоби визначення approver і автентифікації дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілів/фільтрів нативного схвалення exec | - | `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки нативного схвалення | - | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval Gateway | - | `plugin-sdk/approval-handler-adapter-runtime` | Легкі допоміжні засоби завантаження нативного approval adapter для гарячих entrypoints каналу | - | `plugin-sdk/approval-handler-runtime` | Ширші runtime-допоміжні засоби обробника схвалень; віддавайте перевагу вужчим adapter/gateway seams, коли їх достатньо | - | `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі схвалення + прив'язування облікового запису | - | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді схвалення exec/plugin | - | `plugin-sdk/approval-runtime` | Допоміжні засоби payload схвалення exec/plugin, допоміжні засоби маршрутизації/runtime нативного схвалення та допоміжні засоби структурованого відображення схвалення, як-от `formatApprovalDisplayPath` | + | `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` | Ширші допоміжні засоби часу виконання обробника затверджень; віддавайте перевагу вужчим швам адаптера/Gateway, коли їх достатньо | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі затвердження + прив’язки облікового запису | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді затвердження exec/Plugin | + | `plugin-sdk/approval-runtime` | Допоміжні засоби payload затвердження exec/Plugin, допоміжні засоби маршрутизації/часу виконання нативних затверджень і допоміжні засоби структурованого відображення затверджень, як-от `formatApprovalDisplayPath` | | `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей | - | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби контрактного тестування каналів без широкого testing barrel | - | `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної session-target | + | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби контрактних тестів каналів без широкого тестового бареля | + | `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної цілі сеансу | | `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд | - | `plugin-sdk/command-primitives-runtime` | Легкі предикати тексту команд для гарячих шляхів каналу | - | `plugin-sdk/command-surface` | Нормалізація command-body і допоміжні засоби command-surface | + | `plugin-sdk/command-primitives-runtime` | Легкі предикати командного тексту для гарячих шляхів каналів | + | `plugin-sdk/command-surface` | Нормалізація тіла команди й допоміжні засоби поверхні команд | | `plugin-sdk/allow-from` | `formatAllowFromLowercase` | - | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/plugin | - | `plugin-sdk/secret-ref-runtime` | Вузькі `coerceSecretRef` і допоміжні засоби типізації SecretRef для розбору secret-contract/config | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання контрактів секретів для поверхонь секретів каналу/Plugin | + | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби типізації `coerceSecretRef` і SecretRef для розбору контрактів секретів/конфігурації | | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за сталий час і збирання секретів | - | `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватної мережі | - | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої infra runtime поверхні | - | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, захищеного від SSRF fetch, помилки SSRF і політики SSRF | + | `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж | + | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої інфраструктурної поверхні часу виконання | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, SSRF-захищеного fetch, помилки SSRF і політики SSRF | | `plugin-sdk/secret-input` | Допоміжні засоби розбору введення секретів | - | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook і приведення сирого websocket/body | - | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру/таймауту тіла запиту | + | `plugin-sdk/webhook-ingress` | Допоміжні засоби Webhook-запитів/цілей і приведення сирого websocket/body | + | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру/тайм-ауту тіла запиту | - + | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin | - | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff | - | `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору CDP URL і допоміжних засобів auth для керування браузером | - | `plugin-sdk/channel-runtime-context` | Допоміжні засоби реєстрації та пошуку загального runtime-контексту каналу | + | `plugin-sdk/runtime` | Широкі допоміжні засоби середовища виконання/логування/резервного копіювання/встановлення Plugin | + | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env середовища виконання, logger, timeout, retry і backoff | + | `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору CDP URL і допоміжних засобів автентифікації керування браузером | + | `plugin-sdk/channel-runtime-context` | Допоміжні засоби реєстрації та пошуку загального runtime-context каналу | | `plugin-sdk/runtime-store` | `createPluginRuntimeStore` | - | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд plugin/хуків/http/інтерактиву | - | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра Webhook/внутрішніх хуків | - | `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язування runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/інтерактивності Plugin | + | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби Webhook/внутрішнього конвеєра хуків | + | `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язки середовища виконання, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | | `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів | - | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику з аргументами та лінивих груп команд | - | `plugin-sdk/gateway-runtime` | Клієнт Gateway, CLI RPC Gateway, помилки протоколу Gateway і допоміжні засоби патчів статусу каналів | - | `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації plugin, як-от `OpenClawConfig` і типи конфігурації каналів/провайдерів | - | `plugin-sdk/plugin-config-runtime` | Допоміжні засоби runtime-пошуку конфігурації plugin, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` | + | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику аргументів і лінивих груп команд | + | `plugin-sdk/gateway-runtime` | Клієнт Gateway, RPC CLI gateway, помилки протоколу gateway і допоміжні засоби патчів статусу каналу | + | `plugin-sdk/config-types` | Поверхня конфігурації лише з типами для форм конфігурації Plugin, як-от `OpenClawConfig` і типи конфігурації каналів/провайдерів | + | `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації Plugin у середовищі виконання, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` | | `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної зміни конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` | - | `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot` і сетери тестових знімків | - | `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли пакетна контрактна поверхня Telegram недоступна | + | `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot`, і сетери тестових знімків | + | `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команди Telegram і перевірки дублікатів/конфліктів, навіть коли вбудована контрактна поверхня Telegram недоступна | | `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого barrel text-runtime | - | `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/plugin, конструктори approval-capability, допоміжні засоби auth/profile, native routing/runtime і форматування структурованого шляху відображення схвалення | - | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для вхідних повідомлень/відповідей, розбиття на частини, dispatch, Heartbeat, планувальник відповідей | + | `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/Plugin, збирачі можливостей схвалення, допоміжні засоби auth/profile, допоміжні засоби нативного маршрутизування/середовища виконання та форматування шляху структурованого відображення схвалення | + | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби середовища виконання вхідних повідомлень/відповідей, поділ на фрагменти, dispatch, Heartbeat, планувальник відповідей | | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді та міток розмов | - | `plugin-sdk/reply-history` | Спільні допоміжні засоби й маркери коротковіконної історії відповідей, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/reply-history` | Спільні допоміжні засоби й маркери історії відповідей у короткому вікні, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби розбиття тексту/markdown на частини | + | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби поділу тексту/markdown на фрагменти | | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сеансів, session-key, updated-at і зміни сховища | | `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/load/save сховища Cron | - | `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів State/OAuth | - | `plugin-sdk/routing` | Допоміжні засоби прив’язування route/session-key/account, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | - | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/account, типові значення runtime-state і допоміжні засоби метаданих issue | - | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби розпізнавача цілі | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів стану/OAuth | + | `plugin-sdk/routing` | Допоміжні засоби маршруту/session-key/прив’язки облікового запису, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | + | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/облікового запису, типові значення runtime-state і допоміжні засоби метаданих issue | + | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби resolver цілей | | `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/tool-payload` | Витяг нормалізованих payload із об’єктів результатів tool | - | `plugin-sdk/tool-send` | Витяг канонічних полів цілі надсилання з аргументів tool | + | `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/logging-core` | Допоміжні засоби logger підсистем і редагування секретних даних | - | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown і перетворення | - | `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення model/session, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` | - | `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації talk-провайдера | + | `plugin-sdk/logging-core` | Logger підсистеми та допоміжні засоби редагування чутливих даних | + | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму та перетворення таблиць Markdown | + | `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення моделі/сеансу, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` | + | `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації провайдера Talk | | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON | - | `plugin-sdk/file-lock` | Допоміжні засоби реентерабельного file-lock | + | `plugin-sdk/file-lock` | Допоміжні засоби реентерабельного блокування файлів | | `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового кешу дедуплікації | - | `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session і reply-dispatch ACP | - | `plugin-sdk/acp-runtime-backend` | Легкі допоміжні засоби реєстрації backend ACP і reply-dispatch для plugin, завантажених під час запуску | - | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язок ACP лише для читання без імпортів запуску lifecycle | - | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента | - | `plugin-sdk/boolean-param` | Нестрогий читач boolean-параметрів | - | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання збігів небезпечних назв | - | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою й токенів pairing | + | `plugin-sdk/acp-runtime` | Допоміжні засоби ACP середовища виконання/сеансу та reply-dispatch | + | `plugin-sdk/acp-runtime-backend` | Полегшені допоміжні засоби реєстрації backend ACP і reply-dispatch для Plugin, завантажених під час запуску | + | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язки ACP лише для читання без імпортів запуску життєвого циклу | + | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema середовища виконання агента | + | `plugin-sdk/boolean-param` | Нестрогий читач булевого параметра | + | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання зіставлення небезпечних назв | + | `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токена спарювання | | `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів пасивного каналу, статусу й ambient proxy | | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команди/провайдера `/models` | | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills | - | `plugin-sdk/native-command-registry` | Допоміжні засоби registry/build/serialize нативних команд | - | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих agent harness: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge tool OpenClaw, допоміжні засоби політики runtime-plan tool, класифікація результатів термінала, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб | + | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize нативних команд | + | `plugin-sdk/agent-harness` | Експериментальна поверхня довірених Plugin для низькорівневих harness агентів: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge tool OpenClaw, допоміжні засоби політики tool runtime-plan, класифікація результатів термінала, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб | | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI | - | `plugin-sdk/async-lock-runtime` | Process-local допоміжний засіб async lock для невеликих файлів стану runtime | + | `plugin-sdk/async-lock-runtime` | Допоміжний засіб async lock, локальний для процесу, для малих файлів стану середовища виконання | | `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу | - | `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності async task | - | `plugin-sdk/dedupe-runtime` | Допоміжні засоби in-memory кешу дедуплікації | - | `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб drain для вихідних pending-delivery | - | `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів local-file і media-source | - | `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій і видимості Heartbeat | + | `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності асинхронних завдань | + | `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу дедуплікації в пам’яті | + | `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб drain вихідних очікуваних доставок | + | `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів до локальних файлів і media-source | + | `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій Heartbeat і видимості | | `plugin-sdk/number-runtime` | Допоміжний засіб числового приведення | - | `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечних токенів/UUID | + | `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечного токена/UUID | | `plugin-sdk/system-event-runtime` | Допоміжні засоби черги системних подій | - | `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності transport | - | `plugin-sdk/infra-runtime` | Застарілий compatibility shim; використовуйте сфокусовані підшляхи runtime вище | + | `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності транспорту | + | `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте сфокусовані підшляхи середовища виконання вище | | `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу | - | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби diagnostic flag, event і trace-context | + | `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` | Обмежений читач response-body без широкої поверхні media runtime | - | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без configured binding routing або pairing stores | + | `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy, опція EnvHttpProxyAgent і допоміжні засоби pinned lookup | + | `plugin-sdk/runtime-fetch` | Dispatcher-aware fetch середовища виконання без імпортів proxy/guarded-fetch | + | `plugin-sdk/response-limit-runtime` | Обмежений reader response-body без широкої медійної поверхні середовища виконання | + | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без налаштованого маршрутизування прив’язок або сховищ спарювання | | `plugin-sdk/session-store-runtime` | Допоміжні засоби session-store без широких імпортів запису/обслуговування конфігурації | - | `plugin-sdk/context-visibility-runtime` | Розв’язання видимості контексту й фільтрація supplemental context без широких імпортів config/security | - | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging | + | `plugin-sdk/context-visibility-runtime` | Розв’язання видимості контексту та фільтрація додаткового контексту без широких імпортів конфігурації/безпеки | + | `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` | Допоміжні засоби dir/identity/workspace агента | - | `plugin-sdk/directory-runtime` | Config-backed запит/дедуплікація каталогів | + | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента | + | `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогу на основі конфігурації | | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/media-runtime` | Спільні помічники для отримання/перетворення/зберігання медіа, визначення розмірів відео на базі ffprobe та побудовники медіанавантажень | - | `plugin-sdk/media-store` | Вузькі помічники медіасховища, як-от `saveMediaBuffer` | - | `plugin-sdk/media-generation-runtime` | Спільні помічники відмовостійкості генерації медіа, вибір кандидатів і повідомлення про відсутню модель | - | `plugin-sdk/media-understanding` | Типи провайдера розуміння медіа плюс експорти помічників для зображень/аудіо, орієнтовані на провайдерів | - | `plugin-sdk/text-runtime` | Спільні помічники для тексту/markdown/логування, як-от вилучення видимого для асистента тексту, помічники рендерингу/розбиття/таблиць markdown, помічники редагування, помічники directive-tag і утиліти безпечного тексту | - | `plugin-sdk/text-chunking` | Помічник розбиття вихідного тексту | - | `plugin-sdk/speech` | Типи мовленнєвого провайдера плюс експорти директив, реєстру, валідації, побудовника TTS, сумісного з OpenAI, і мовленнєвих помічників, орієнтовані на провайдерів | - | `plugin-sdk/speech-core` | Спільні типи мовленнєвого провайдера, реєстр, директива, нормалізація та експорти мовленнєвих помічників | - | `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі, помічники реєстру та спільний помічник сесії WebSocket | - | `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та помічники реєстру | - | `plugin-sdk/image-generation` | Типи провайдера генерації зображень плюс помічники URL ресурсів/даних зображень і побудовник провайдера зображень, сумісний з OpenAI | - | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, відмовостійкість, автентифікація та помічники реєстру | + | `plugin-sdk/media-runtime` | Спільні допоміжні засоби для отримання/перетворення/зберігання медіа, визначення розмірів відео на основі ffprobe і побудови медіа-навантажень | + | `plugin-sdk/media-store` | Вузькі допоміжні засоби медіасховища, як-от `saveMediaBuffer` | + | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби резервного перемикання для генерації медіа, вибір кандидатів і повідомлення про відсутні моделі | + | `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, призначені для провайдерів | + | `plugin-sdk/text-runtime` | Спільні допоміжні засоби для тексту/Markdown/логування, як-от видалення видимого для асистента тексту, допоміжні засоби рендерингу/фрагментації/таблиць Markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту | + | `plugin-sdk/text-chunking` | Допоміжний засіб фрагментації вихідного тексту | + | `plugin-sdk/speech` | Типи провайдерів мовлення, а також експорти директив, реєстру, валідації, побудовника TTS, сумісного з OpenAI, і допоміжних засобів мовлення, призначені для провайдерів | + | `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, реєстр, директиви, нормалізація й експорти допоміжних засобів мовлення | + | `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket | + | `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру | + | `plugin-sdk/image-generation` | Типи провайдерів генерації зображень, а також допоміжні засоби URL для ресурсів/даних зображень і побудовник провайдера зображень, сумісний з OpenAI | + | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, резервне перемикання, автентифікація та допоміжні засоби реєстру | | `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики | - | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, помічники відмовостійкості, пошук провайдера та розбір model-ref | + | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби резервного перемикання, пошук провайдера та розбір model-ref | | `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео | - | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, помічники відмовостійкості, пошук провайдера та розбір model-ref | - | `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і помічники встановлення маршрутів | - | `plugin-sdk/webhook-path` | Помічники нормалізації шляху Webhook | - | `plugin-sdk/web-media` | Спільні помічники завантаження віддалених/локальних медіа | - | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів SDK Plugin | - | `plugin-sdk/testing` | Широкий compatibility barrel для застарілих тестів Plugin. Нові тести розширень мають натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `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/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера agent-runtime для тестів автентифікації, доставлення, fallback, tool-hook, prompt-overlay, схеми та проєкції transcript | - | `plugin-sdk/channel-test-helpers` | Орієнтовані на канали тестові помічники для generic actions/setup/status contracts, перевірок директорій, життєвого циклу запуску облікового запису, потоків send-config, runtime-моків, проблем статусу, вихідного доставлення та реєстрації hooks | - | `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок target-resolution для тестів каналів | - | `plugin-sdk/plugin-test-contracts` | Помічники контрактів пакета Plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту | - | `plugin-sdk/provider-test-contracts` | Помічники контрактів provider runtime, auth, discovery, onboard, catalog, wizard, media capability, replay policy, realtime STT live-audio, web-search/fetch і stream | - | `plugin-sdk/provider-http-test-mocks` | Opt-in HTTP/auth моки Vitest для тестів провайдера, які перевіряють `plugin-sdk/provider-http` | - | `plugin-sdk/test-fixtures` | Generic фікстури захоплення CLI runtime, sandbox context, skill writer, agent-message, system-event, module reload, bundled plugin path, terminal-text, chunking, auth-token і typed-case | - | `plugin-sdk/test-node-mocks` | Сфокусовані помічники моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` | + | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби резервного перемикання, пошук провайдера та розбір model-ref | + | `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів | + | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook | + | `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа | + | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів SDK plugin | + | `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів plugin. Нові тести plugin мають натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` | + | `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для unit-тестів прямої реєстрації plugin без імпорту мостів тестових допоміжних засобів репозиторію | + | `plugin-sdk/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера runtime агента для тестів автентифікації, доставки, fallback, хуків інструментів, prompt-overlay, схеми та проєкції transcript | + | `plugin-sdk/channel-test-helpers` | Орієнтовані на канали тестові допоміжні засоби для generic контрактів дій/налаштування/статусу, перевірок каталогів, життєвого циклу запуску облікового запису, threading send-config, runtime-моків, проблем статусу, вихідної доставки та реєстрації хуків | + | `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок розв’язання цілі для тестів каналів | + | `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів пакета plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту | + | `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime провайдера, автентифікації, виявлення, onboard, каталогу, майстра, медіаможливостей, політики replay, realtime STT live-audio, web-search/fetch і stream | + | `plugin-sdk/provider-http-test-mocks` | Опціональні HTTP/auth моки Vitest для тестів провайдера, що виконують `plugin-sdk/provider-http` | + | `plugin-sdk/test-fixtures` | Generic фікстури захоплення CLI runtime, контексту sandbox, writer для skill, agent-message, system-event, перезавантаження модуля, шляху до вбудованого plugin, terminal-text, chunking, auth-token і typed-case | + | `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/memory-core` | Поверхня bundled memory-core помічників для manager/config/file/CLI помічників | - | `plugin-sdk/memory-core-engine-runtime` | Runtime-фасад індексу/пошуку пам’яті | + | `plugin-sdk/memory-core` | Поверхня вбудованих допоміжних засобів 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 хоста пам’яті, доступ до реєстру, локальний провайдер і generic batch/remote помічники | + | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і generic 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-multimodal` | Мультимодальні помічники хоста пам’яті | - | `plugin-sdk/memory-core-host-query` | Помічники запитів хоста пам’яті | - | `plugin-sdk/memory-core-host-secret` | Помічники секретів хоста пам’яті | - | `plugin-sdk/memory-core-host-events` | Помічники журналу подій хоста пам’яті | - | `plugin-sdk/memory-core-host-status` | Помічники статусу хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-cli` | Помічники CLI runtime хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-core` | Помічники core runtime хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-files` | Помічники file/runtime хоста пам’яті | - | `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для помічників core runtime хоста пам’яті | - | `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для помічників журналу подій хоста пам’яті | - | `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для помічників file/runtime хоста пам’яті | - | `plugin-sdk/memory-host-markdown` | Спільні managed-markdown помічники для plugins, суміжних із пам’яттю | - | `plugin-sdk/memory-host-search` | Runtime-фасад active memory для доступу до search-manager | - | `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для помічників статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Нейтральний щодо постачальника alias для допоміжних засобів core runtime хоста пам’яті | + | `plugin-sdk/memory-host-events` | Нейтральний щодо постачальника alias для допоміжних засобів журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Нейтральний щодо постачальника alias для допоміжних засобів file/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для plugin, суміжних із пам’яттю | + | `plugin-sdk/memory-host-search` | Фасад runtime активної пам’яті для доступу до search-manager | + | `plugin-sdk/memory-host-status` | Нейтральний щодо постачальника alias для допоміжних засобів статусу хоста пам’яті | - - Наразі зарезервованих підшляхів bundled-helper SDK немає. Специфічні для власника - помічники розміщуються всередині пакета Plugin-власника, тоді як повторно використовувані контракти хоста + + Наразі немає зарезервованих підшляхів SDK для вбудованих допоміжних засобів. Специфічні для власника + допоміжні засоби розміщуються всередині пакета plugin власника, а повторно використовувані контракти хоста використовують generic підшляхи SDK, як-от `plugin-sdk/gateway-runtime`, `plugin-sdk/security-runtime` і `plugin-sdk/plugin-config-runtime`. @@ -332,6 +332,6 @@ x-i18n: ## Пов’язане -- [Огляд SDK Plugin](/uk/plugins/sdk-overview) -- [Налаштування SDK Plugin](/uk/plugins/sdk-setup) +- [Огляд SDK plugin](/uk/plugins/sdk-overview) +- [Налаштування SDK plugin](/uk/plugins/sdk-setup) - [Створення plugins](/uk/plugins/building-plugins)