diff --git a/docs/uk/plugins/sdk-migration.md b/docs/uk/plugins/sdk-migration.md
index 6c855523f..20ff99456 100644
--- a/docs/uk/plugins/sdk-migration.md
+++ b/docs/uk/plugins/sdk-migration.md
@@ -2,36 +2,40 @@
read_when:
- Ви бачите попередження OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED
- Ви бачите попередження OPENCLAW_EXTENSION_API_DEPRECATED
- - Ви оновлюєте Plugin до сучасної архітектури plugin
+ - Ви оновлюєте Plugin до сучасної архітектури plugin-ів
- Ви підтримуєте зовнішній Plugin OpenClaw
sidebarTitle: Migrate to SDK
summary: Перейдіть із застарілого шару зворотної сумісності на сучасний Plugin SDK
title: Міграція Plugin SDK
x-i18n:
- generated_at: "2026-04-22T01:34:41Z"
+ generated_at: "2026-04-23T02:58:47Z"
model: gpt-5.4
provider: openai
- source_hash: 72c9fc2d77f5feda336a1119fc42ebe088d5037f99c2b3843e9f06efed20386d
+ source_hash: 0abdf5135b0e0a029348b77447ca713e43762a65934310088a098fee93cf9981
source_path: plugins/sdk-migration.md
workflow: 15
---
# Міграція Plugin SDK
-OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури plugin із цільовими, задокументованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію.
+OpenClaw перейшов від широкого шару зворотної сумісності до сучасної архітектури plugin-ів зі сфокусованими, задокументованими імпортами. Якщо ваш Plugin було створено до появи нової архітектури, цей посібник допоможе вам виконати міграцію.
## Що змінюється
-Стара система plugin надавала дві широкі поверхні, які дозволяли plugin імпортувати будь-що потрібне з однієї точки входу:
+Стара система plugin-ів надавала дві широкі поверхні, які дозволяли plugin-ам імпортувати
+все, що їм потрібно, з єдиної точки входу:
-- **`openclaw/plugin-sdk/compat`** — один імпорт, який повторно експортував десятки допоміжних засобів. Його було запроваджено, щоб старіші plugin на основі хуків продовжували працювати, поки будувалася нова архітектура plugin.
-- **`openclaw/extension-api`** — міст, який надавав plugin прямий доступ до допоміжних засобів на боці хоста, таких як вбудований запускальник агентів.
+- **`openclaw/plugin-sdk/compat`** — єдиний імпорт, який повторно експортував десятки
+ допоміжних засобів. Його було запроваджено, щоб зберегти працездатність старіших plugin-ів на основі хуків, поки будувалася нова архітектура plugin-ів.
+- **`openclaw/extension-api`** — міст, який надавав plugin-ам прямий доступ до
+ допоміжних засобів на боці хоста, таких як вбудований виконавець агентів.
-Обидві поверхні тепер **застарілі**. Вони все ще працюють під час виконання, але нові plugin не повинні їх використовувати, а наявні plugin слід мігрувати до того, як наступний мажорний випуск їх видалить.
+Обидві поверхні тепер **застарілі**. Вони все ще працюють під час виконання, але нові
+plugin-и не повинні їх використовувати, а наявні plugin-и мають виконати міграцію до того, як у наступному мажорному релізі їх буде вилучено.
- Шар зворотної сумісності буде видалено в одному з майбутніх мажорних випусків.
- Plugin, які досі імпортують із цих поверхонь, перестануть працювати, коли це станеться.
+ Шар зворотної сумісності буде вилучено в одному з майбутніх мажорних релізів.
+ Plugin-и, які все ще імпортують із цих поверхонь, перестануть працювати, коли це станеться.
## Чому це змінилося
@@ -40,57 +44,60 @@ OpenClaw перейшов від широкого шару зворотної с
- **Повільний запуск** — імпорт одного допоміжного засобу завантажував десятки не пов’язаних модулів
- **Циклічні залежності** — широкі повторні експорти спрощували створення циклів імпорту
-- **Нечітка поверхня API** — не було способу визначити, які експорти є стабільними, а які — внутрішніми
+- **Нечітка поверхня API** — не було способу визначити, які експорти є стабільними, а які внутрішніми
-Сучасний Plugin SDK вирішує цю проблему: кожен шлях імпорту (`openclaw/plugin-sdk/\`) є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом.
+Сучасний Plugin SDK це виправляє: кожен шлях імпорту (`openclaw/plugin-sdk/\`)
+є невеликим, самодостатнім модулем із чітким призначенням і задокументованим контрактом.
-Застарілі зручні шви provider для вбудованих каналів також прибрано. Імпорти
+Успадковані зручні поверхні provider-ів для вбудованих channel-ів також більше не існують. Імпорти
на кшталт `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`,
-допоміжні шви під брендом каналів і
+допоміжні поверхні з брендуванням channel-ів і
`openclaw/plugin-sdk/telegram-core` були приватними скороченнями монорепозиторію, а не
-стабільними контрактами plugin. Натомість використовуйте вузькі універсальні підшляхи SDK. Усередині робочого простору вбудованого plugin зберігайте допоміжні засоби, що належать provider, у власному
-`api.ts` або `runtime-api.ts` цього plugin.
+стабільними контрактами plugin-ів. Натомість використовуйте вузькі узагальнені підшляхи SDK. Усередині
+робочого простору вбудованого Plugin зберігайте допоміжні засоби, що належать provider-у, у власному
+`api.ts` або `runtime-api.ts` цього plugin-а.
-Поточні приклади вбудованих provider:
+Поточні приклади вбудованих provider-ів:
-- Anthropic зберігає допоміжні засоби потоків, специфічні для Claude, у власному шві `api.ts` /
+- Anthropic зберігає специфічні для Claude допоміжні засоби потоків у власній поверхні `api.ts` /
`contract-api.ts`
-- OpenAI зберігає конструктори provider, допоміжні засоби моделей за замовчуванням і конструктори provider реального часу у власному `api.ts`
-- OpenRouter зберігає конструктор provider і допоміжні засоби онбордингу/конфігурації у власному
+- OpenAI зберігає білдери provider-ів, допоміжні засоби моделей за замовчуванням і білдери
+ provider-ів realtime у власному `api.ts`
+- OpenRouter зберігає білдер provider-а та допоміжні засоби онбордингу/конфігурації у власному
`api.ts`
## Як виконати міграцію
- Plugin каналів із підтримкою approval тепер надають нативну поведінку approval через
- `approvalCapability.nativeRuntime` разом зі спільним реєстром контексту runtime.
+ Channel plugin-и з підтримкою approval тепер розкривають нативну поведінку approval через
+ `approvalCapability.nativeRuntime` разом зі спільним реєстром runtime-контексту.
Ключові зміни:
- Замініть `approvalCapability.handler.loadRuntime(...)` на
`approvalCapability.nativeRuntime`
- - Перенесіть специфічні для approval auth/delivery зі старої прив’язки `plugin.auth` /
+ - Перенесіть auth/доставку, специфічні для approval, із застарілої прив’язки `plugin.auth` /
`plugin.approvals` на `approvalCapability`
- - `ChannelPlugin.approvals` було видалено з публічного контракту plugin каналу;
+ - `ChannelPlugin.approvals` було вилучено з публічного контракту channel-plugin-а;
перенесіть поля delivery/native/render до `approvalCapability`
- - `plugin.auth` залишається лише для потоків входу/виходу каналу; хуки auth для approval
- там більше не зчитуються ядром
- - Реєструйте runtime-об’єкти, що належать каналу, такі як клієнти, токени або застосунки Bolt,
- через `openclaw/plugin-sdk/channel-runtime-context`
- - Не надсилайте повідомлення reroute, що належать plugin, із нативних обробників approval;
- тепер ядро відповідає за повідомлення про доставку в інше місце на основі фактичних результатів delivery
- - Під час передавання `channelRuntime` до `createChannelManager(...)` надавайте
- справжню поверхню `createPluginRuntime().channel`. Часткові заглушки відхиляються.
+ - `plugin.auth` залишається лише для потоків login/logout channel-ів; auth-хуки
+ approval там більше не зчитуються core
+ - Реєструйте об’єкти runtime, що належать channel-у, як-от клієнти, токени або Bolt
+ apps, через `openclaw/plugin-sdk/channel-runtime-context`
+ - Не надсилайте сповіщення reroute, що належать plugin-у, з нативних обробників approval;
+ сповіщення «маршрутизовано в інше місце» тепер належать core і базуються на фактичних результатах доставки
+ - Під час передавання `channelRuntime` у `createChannelManager(...)` надавайте
+ реальну поверхню `createPluginRuntime().channel`. Часткові заглушки відхиляються.
Поточну структуру можливостей approval див. у `/plugins/sdk-channel-plugins`.
-
- Якщо ваш Plugin використовує `openclaw/plugin-sdk/windows-spawn`, невизначені обгортки Windows
- `.cmd`/`.bat` тепер завершуються з закритою відмовою, якщо ви явно не передасте `allowShellFallback: true`.
+
+ Якщо ваш Plugin використовує `openclaw/plugin-sdk/windows-spawn`, нерозв’язані Windows
+ wrapper-и `.cmd`/`.bat` тепер аварійно завершуються за принципом fail closed, якщо ви явно не передасте `allowShellFallback: true`.
```typescript
// Before
@@ -105,13 +112,13 @@ OpenClaw перейшов від широкого шару зворотної с
});
```
- Якщо ваш виклик навмисно не покладається на резервний перехід до shell, не встановлюйте
- `allowShellFallback` і натомість обробляйте викинуту помилку.
+ Якщо ваш виклик навмисно не покладається на shell fallback, не задавайте
+ `allowShellFallback`, а натомість обробляйте згенеровану помилку.
- Знайдіть у своєму plugin імпорти з будь-якої застарілої поверхні:
+ Пошукайте у своєму Plugin імпорти з будь-якої із застарілих поверхонь:
```bash
grep -r "plugin-sdk/compat" my-plugin/
@@ -120,8 +127,8 @@ OpenClaw перейшов від широкого шару зворотної с
-
- Кожен експорт зі старої поверхні зіставляється з певним сучасним шляхом імпорту:
+
+ Кожен експорт зі старої поверхні відповідає певному сучасному шляху імпорту:
```typescript
// Before (deprecated backwards-compatibility layer)
@@ -137,7 +144,7 @@ OpenClaw перейшов від широкого шару зворотної с
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
```
- Для допоміжних засобів на боці хоста використовуйте впроваджений runtime plugin замість прямого імпорту:
+ Для допоміжних засобів на боці хоста використовуйте впроваджений runtime Plugin замість прямого імпорту:
```typescript
// Before (deprecated extension-api bridge)
@@ -148,7 +155,7 @@ OpenClaw перейшов від широкого шару зворотної с
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
```
- Той самий шаблон застосовується й до інших застарілих допоміжних засобів bridge:
+ Такий самий шаблон застосовується й до інших допоміжних засобів застарілого моста:
| Старий імпорт | Сучасний еквівалент |
| --- | --- |
@@ -158,7 +165,7 @@ OpenClaw перейшов від широкого шару зворотної с
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
- | допоміжні засоби сховища сесій | `api.runtime.agent.session.*` |
+ | session store helpers | `api.runtime.agent.session.*` |
@@ -173,175 +180,176 @@ OpenClaw перейшов від широкого шару зворотної с
## Довідник шляхів імпорту
- | Шлях імпорту | Призначення | Ключові експорти |
+ | Import path | Призначення | Ключові експорти |
| --- | --- | --- |
- | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу plugin | `definePluginEntry` |
- | `plugin-sdk/core` | Застарілий повторний експорт-парасолька для визначень/конструкторів точок входу каналів | `defineChannelPluginEntry`, `createChatChannelPlugin` |
+ | `plugin-sdk/plugin-entry` | Канонічний допоміжний засіб точки входу Plugin | `definePluginEntry` |
+ | `plugin-sdk/core` | Успадкований узагальнений повторний експорт для визначень/білдерів точок входу channel-ів | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Експорт кореневої схеми конфігурації | `OpenClawSchema` |
- | `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного provider | `defineSingleProviderPluginEntry` |
- | `plugin-sdk/channel-core` | Цільові визначення та конструктори точок входу каналів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
- | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Запити списку дозволених, конструктори статусу налаштування |
+ | `plugin-sdk/provider-entry` | Допоміжний засіб точки входу для одного provider-а | `defineSingleProviderPluginEntry` |
+ | `plugin-sdk/channel-core` | Сфокусовані визначення та білдери точок входу channel-ів | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
+ | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування | Запити allowlist, білдери статусу налаштування |
| `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-core` | Допоміжні засоби для кількох облікових записів | Допоміжні засоби списку/конфігурації/шлюзу дій облікового запису |
| `plugin-sdk/account-id` | Допоміжні засоби account-id | `DEFAULT_ACCOUNT_ID`, нормалізація account-id |
- | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису | Допоміжні засоби пошуку облікового запису + резервного використання значення за замовчуванням |
- | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби облікових записів | Допоміжні засоби списку облікових записів/дій з обліковими записами |
+ | `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` | Примітиви pairing для DM | `createChannelPairingController` |
- | `plugin-sdk/channel-reply-pipeline` | Проводка префікса відповіді + індикатора набору | `createChannelReplyPipeline` |
+ | `plugin-sdk/channel-pairing` | Примітиви сполучення DM | `createChannelPairingController` |
+ | `plugin-sdk/channel-reply-pipeline` | Префікс відповіді + зв’язування typing | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Фабрики адаптерів конфігурації | `createHybridChannelConfigAdapter` |
- | `plugin-sdk/channel-config-schema` | Конструктори схем конфігурації | Типи схем конфігурації каналу |
+ | `plugin-sdk/channel-config-schema` | Білдери схем конфігурації | Типи схем конфігурації channel-ів |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби конфігурації команд Telegram | Нормалізація назв команд, обрізання описів, валідація дублікатів/конфліктів |
| `plugin-sdk/channel-policy` | Визначення політики груп/DM | `resolveChannelGroupRequireMention` |
- | `plugin-sdk/channel-lifecycle` | Допоміжні засоби статусу облікового запису та життєвого циклу чернеткового потоку | `createAccountStatusSink`, допоміжні засоби фіналізації попереднього перегляду чернетки |
+ | `plugin-sdk/channel-lifecycle` | Допоміжні засоби життєвого циклу статусу облікового запису та потоку чернеток | `createAccountStatusSink`, допоміжні засоби фіналізації попереднього перегляду чернетки |
| `plugin-sdk/inbound-envelope` | Допоміжні засоби вхідного envelope | Спільні допоміжні засоби маршрутизації + побудови envelope |
| `plugin-sdk/inbound-reply-dispatch` | Допоміжні засоби вхідних відповідей | Спільні допоміжні засоби запису та диспетчеризації |
- | `plugin-sdk/messaging-targets` | Розбір цілей повідомлень | Допоміжні засоби розбору/зіставлення цілей |
- | `plugin-sdk/outbound-media` | Допоміжні засоби вихідних медіа | Спільне завантаження вихідних медіа |
+ | `plugin-sdk/messaging-targets` | Аналіз цілей повідомлень | Допоміжні засоби аналізу/зіставлення цілей |
+ | `plugin-sdk/outbound-media` | Допоміжні засоби вихідного медіа | Спільне завантаження вихідного медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідного runtime | Допоміжні засоби вихідної ідентичності/делегата надсилання та планування payload |
- | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби thread-binding | Допоміжні засоби життєвого циклу thread-binding та адаптерів |
- | `plugin-sdk/agent-media-payload` | Застарілі допоміжні засоби media payload | Конструктор media payload агента для застарілих макетів полів |
- | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише застарілі утиліти runtime каналу |
+ | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби прив’язок thread | Допоміжні засоби життєвого циклу прив’язок thread і адаптера |
+ | `plugin-sdk/agent-media-payload` | Успадковані допоміжні засоби media payload | Білдер media payload агента для успадкованих макетів полів |
+ | `plugin-sdk/channel-runtime` | Застарілий shim сумісності | Лише успадковані утиліти runtime channel-ів |
| `plugin-sdk/channel-send-result` | Типи результатів надсилання | Типи результатів відповіді |
- | `plugin-sdk/runtime-store` | Постійне сховище plugin | `createPluginRuntimeStore` |
- | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin |
+ | `plugin-sdk/runtime-store` | Постійне сховище Plugin | `createPluginRuntimeStore` |
+ | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime | Допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin-ів |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env | Logger/runtime env, допоміжні засоби timeout, retry і backoff |
- | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime plugin | Допоміжні засоби команд/хуків/http/interactive для plugin |
+ | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби runtime Plugin | Допоміжні засоби команд/хуків/http/інтерактивності Plugin |
| `plugin-sdk/hook-runtime` | Допоміжні засоби конвеєра hook | Спільні допоміжні засоби конвеєра Webhook/внутрішніх hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби процесів | Спільні допоміжні засоби exec |
| `plugin-sdk/cli-runtime` | Допоміжні засоби CLI runtime | Форматування команд, очікування, допоміжні засоби версій |
- | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Клієнт Gateway і допоміжні засоби патчів статусу каналу |
+ | `plugin-sdk/gateway-runtime` | Допоміжні засоби Gateway | Клієнт Gateway і допоміжні засоби patch статусу channel-ів |
| `plugin-sdk/config-runtime` | Допоміжні засоби конфігурації | Допоміжні засоби завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби команд Telegram | Допоміжні засоби валідації команд Telegram зі стабільним fallback, коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби запитів approval | Payload approval exec/plugin, допоміжні засоби можливостей/профілю approval, нативні допоміжні засоби маршрутизації/runtime approval |
- | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth для approval | Визначення approver, auth дій у тому самому чаті |
- | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта approval | Допоміжні засоби профілю/фільтра нативного approval exec |
- | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби delivery для approval | Адаптери можливостей/delivery нативного approval |
- | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway для approval | Спільний допоміжний засіб визначення Gateway для approval |
- | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера approval | Полегшені допоміжні засоби завантаження нативного адаптера approval для гарячих точок входу каналів |
- | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника approval | Ширші допоміжні засоби runtime обробника approval; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
- | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей approval | Допоміжні засоби нативної прив’язки цілей/облікових записів approval |
- | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповідей approval | Допоміжні засоби payload відповіді approval exec/plugin |
- | `plugin-sdk/channel-runtime-context` | Допоміжні засоби контексту runtime каналу | Універсальні допоміжні засоби register/get/watch контексту runtime каналу |
- | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби trust, гейтінгу DM, зовнішнього вмісту та збору секретів |
+ | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби auth approval | Визначення approver, auth дій у тому самому chat |
+ | `plugin-sdk/approval-client-runtime` | Допоміжні засоби клієнта approval | Допоміжні засоби профілю/фільтра нативного exec approval |
+ | `plugin-sdk/approval-delivery-runtime` | Допоміжні засоби доставки approval | Нативні адаптери можливостей/доставки approval |
+ | `plugin-sdk/approval-gateway-runtime` | Допоміжні засоби Gateway approval | Спільний допоміжний засіб визначення Gateway approval |
+ | `plugin-sdk/approval-handler-adapter-runtime` | Допоміжні засоби адаптера approval | Полегшені допоміжні засоби завантаження адаптера нативного approval для гарячих точок входу channel-ів |
+ | `plugin-sdk/approval-handler-runtime` | Допоміжні засоби обробника approval | Ширші допоміжні засоби runtime обробника approval; віддавайте перевагу вужчим поверхням adapter/gateway, коли їх достатньо |
+ | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілі approval | Допоміжні засоби нативної цілі approval/прив’язки облікового запису |
+ | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби відповіді approval | Допоміжні засоби payload відповіді exec/plugin approval |
+ | `plugin-sdk/channel-runtime-context` | Допоміжні засоби runtime-context channel-ів | Узагальнені допоміжні засоби register/get/watch для runtime-context channel-ів |
+ | `plugin-sdk/security-runtime` | Допоміжні засоби безпеки | Спільні допоміжні засоби довіри, шлюзу DM, зовнішнього вмісту та збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF | Допоміжні засоби allowlist хостів і політики приватної мережі |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби SSRF runtime | Допоміжні засоби pinned-dispatcher, guarded fetch, SSRF policy |
| `plugin-sdk/collection-runtime` | Допоміжні засоби обмеженого кешу | `pruneMapToMaxSize` |
- | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби гейтінгу діагностики | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
+ | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби шлюзу діагностики | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Допоміжні засоби форматування помилок | `formatUncaughtError`, `isApprovalNotFoundError`, допоміжні засоби графа помилок |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch/proxy | `resolveFetch`, допоміжні засоби proxy |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації хоста | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/retry-runtime` | Допоміжні засоби retry | `RetryConfig`, `retryAsync`, виконавці політик |
| `plugin-sdk/allow-from` | Форматування allowlist | `formatAllowFromLowercase` |
- | `plugin-sdk/allowlist-resolution` | Зіставлення вхідних даних allowlist | `mapAllowlistResolutionInputs` |
- | `plugin-sdk/command-auth` | Гейтинг команд і допоміжні засоби поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд |
+ | `plugin-sdk/allowlist-resolution` | Відображення вхідних даних allowlist | `mapAllowlistResolutionInputs` |
+ | `plugin-sdk/command-auth` | Шлюз команд і допоміжні засоби поверхні команд | `resolveControlCommandGate`, допоміжні засоби авторизації відправника, допоміжні засоби реєстру команд |
| `plugin-sdk/command-status` | Рендерери статусу/довідки команд | `buildCommandsMessage`, `buildCommandsMessagePaginated`, `buildHelpMessage` |
- | `plugin-sdk/secret-input` | Розбір секретного вводу | Допоміжні засоби секретного вводу |
- | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів Webhook | Утиліти цілей Webhook |
+ | `plugin-sdk/secret-input` | Аналіз секретного введення | Допоміжні засоби секретного введення |
+ | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів Webhook | Утиліти цілі Webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби guard для тіла запиту Webhook | Допоміжні засоби читання/обмеження тіла запиту |
- | `plugin-sdk/reply-runtime` | Спільний runtime відповіді | Вхідна диспетчеризація, Heartbeat, планувальник відповіді, chunking |
- | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Допоміжні засоби finalize + диспетчеризації provider |
+ | `plugin-sdk/reply-runtime` | Спільний runtime відповіді | Вхідна диспетчеризація, Heartbeat, планувальник відповіді, чанкування |
+ | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації відповідей | Допоміжні засоби finalize + диспетчеризації provider-а |
| `plugin-sdk/reply-history` | Допоміжні засоби історії відповідей | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
- | `plugin-sdk/reply-reference` | Планування посилань на відповіді | `createReplyReferencePlanner` |
- | `plugin-sdk/reply-chunking` | Допоміжні засоби chunk відповіді | Допоміжні засоби chunking тексту/markdown |
+ | `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` | Допоміжні засоби маршрутизації/session-key | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, допоміжні засоби нормалізації session-key |
- | `plugin-sdk/status-helpers` | Допоміжні засоби статусу каналу | Конструктори зведень статусу каналу/облікового запису, значення стану runtime за замовчуванням, допоміжні засоби метаданих проблем |
+ | `plugin-sdk/status-helpers` | Допоміжні засоби статусу channel-ів | Білдери підсумків статусу channel-ів/облікових записів, значення 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/request-url` | Допоміжні засоби URL запитів | Витягування рядкових URL з подібних до request вхідних даних |
+ | `plugin-sdk/run-command` | Допоміжні засоби команд із таймерами | Виконавець команд із таймером і нормалізованими stdout/stderr |
+ | `plugin-sdk/param-readers` | Читачі параметрів | Поширені читачі параметрів tool/CLI |
+ | `plugin-sdk/tool-payload` | Витягування payload tool | Витягування нормалізованих payload з об’єктів результатів tool |
+ | `plugin-sdk/tool-send` | Витягування send tool | Витягування канонічних полів цілі send з аргументів tool |
| `plugin-sdk/temp-path` | Допоміжні засоби тимчасових шляхів | Спільні допоміжні засоби шляхів тимчасового завантаження |
- | `plugin-sdk/logging-core` | Допоміжні засоби логування | Допоміжні засоби logger підсистеми та редагування чутливих даних |
- | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби markdown-таблиць | Допоміжні засоби режиму markdown-таблиць |
- | `plugin-sdk/reply-payload` | Типи відповідей повідомлень | Типи payload відповідей |
- | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted provider | Допоміжні засоби виявлення/конфігурації self-hosted provider |
- | `plugin-sdk/self-hosted-provider-setup` | Цільові допоміжні засоби налаштування self-hosted provider, сумісних з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації self-hosted provider |
- | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime auth provider | Допоміжні засоби визначення API-ключів runtime |
- | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключів provider | Допоміжні засоби онбордингу/запису профілю API-ключа |
- | `plugin-sdk/provider-auth-result` | Допоміжні засоби результату auth provider | Стандартний конструктор результату auth OAuth |
- | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного входу provider | Спільні допоміжні засоби інтерактивного входу |
- | `plugin-sdk/provider-env-vars` | Допоміжні засоби env vars provider | Допоміжні засоби пошуку env vars auth provider |
- | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay provider | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політик replay, допоміжні засоби endpoint provider та нормалізації model-id |
- | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу provider | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
- | `plugin-sdk/provider-onboard` | Патчі онбордингу provider | Допоміжні засоби конфігурації онбордингу |
- | `plugin-sdk/provider-http` | Допоміжні засоби HTTP provider | Універсальні допоміжні засоби HTTP/можливостей endpoint provider |
- | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch provider | Допоміжні засоби реєстрації/кешу provider web-fetch |
- | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search provider | Вузькі допоміжні засоби конфігурації/облікових даних web-search для provider, яким не потрібна прив’язка ввімкнення plugin |
- | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search provider | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-сетери/гетери облікових даних |
- | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search provider | Допоміжні засоби реєстрації/кешу/runtime provider web-search |
- | `plugin-sdk/provider-tools` | Допоміжні засоби compat інструментів/схем provider | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика, а також допоміжні засоби compat для xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
- | `plugin-sdk/provider-usage` | Допоміжні засоби usage provider | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби usage provider |
- | `plugin-sdk/provider-stream` | Допоміжні засоби обгорток потоків provider | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
- | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби транспорту provider | Нативні допоміжні засоби транспорту provider, такі як guarded fetch, перетворення транспортних повідомлень і потоки подій транспорту з можливістю запису |
+ | `plugin-sdk/logging-core` | Допоміжні засоби логування | Допоміжні засоби logger підсистеми та редагування |
+ | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби markdown-table | Допоміжні засоби режиму markdown-table |
+ | `plugin-sdk/reply-payload` | Типи reply повідомлень | Типи payload відповіді |
+ | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted provider-ів | Допоміжні засоби виявлення/конфігурації self-hosted provider-ів |
+ | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted provider-ів, сумісних з OpenAI | Ті самі допоміжні засоби виявлення/конфігурації self-hosted provider-ів |
+ | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime auth provider-а | Допоміжні засоби визначення API-ключа runtime |
+ | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби налаштування API-ключа provider-а | Допоміжні засоби онбордингу/запису профілю API-ключа |
+ | `plugin-sdk/provider-auth-result` | Допоміжні засоби auth-result provider-а | Стандартний білдер OAuth auth-result |
+ | `plugin-sdk/provider-auth-login` | Допоміжні засоби інтерактивного login provider-а | Спільні допоміжні засоби інтерактивного login |
+ | `plugin-sdk/provider-env-vars` | Допоміжні засоби env-var provider-а | Допоміжні засоби пошуку env-var auth provider-а |
+ | `plugin-sdk/provider-model-shared` | Спільні допоміжні засоби моделей/replay provider-а | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні білдери політики replay, допоміжні засоби endpoint provider-а та нормалізації model-id |
+ | `plugin-sdk/provider-catalog-shared` | Спільні допоміжні засоби каталогу provider-ів | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
+ | `plugin-sdk/provider-onboard` | Патчі онбордингу provider-а | Допоміжні засоби конфігурації онбордингу |
+ | `plugin-sdk/provider-http` | Допоміжні засоби HTTP provider-а | Узагальнені допоміжні засоби HTTP/можливостей endpoint provider-а |
+ | `plugin-sdk/provider-web-fetch` | Допоміжні засоби web-fetch provider-а | Допоміжні засоби реєстрації/кешу provider-а web-fetch |
+ | `plugin-sdk/provider-web-search-config-contract` | Допоміжні засоби конфігурації web-search provider-а | Вузькі допоміжні засоби конфігурації/облікових даних web-search для provider-ів, яким не потрібна прив’язка ввімкнення Plugin |
+ | `plugin-sdk/provider-web-search-contract` | Допоміжні засоби контракту web-search provider-а | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped сетери/гетери облікових даних |
+ | `plugin-sdk/provider-web-search` | Допоміжні засоби web-search provider-а | Допоміжні засоби реєстрації/кешу/runtime provider-а web-search |
+ | `plugin-sdk/provider-tools` | Допоміжні засоби сумісності tool/schema provider-а | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
+ | `plugin-sdk/provider-usage` | Допоміжні засоби використання provider-а | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` та інші допоміжні засоби використання provider-а |
+ | `plugin-sdk/provider-stream` | Допоміжні засоби обгортки потоку provider-а | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоку та спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
+ | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби транспорту provider-а | Нативні допоміжні засоби транспорту provider-а, як-от guarded fetch, перетворення транспортних повідомлень і потоки записуваних транспортних подій |
| `plugin-sdk/keyed-async-queue` | Упорядкована асинхронна черга | `KeyedAsyncQueue` |
- | `plugin-sdk/media-runtime` | Спільні допоміжні засоби медіа | Допоміжні засоби отримання/перетворення/збереження медіа, а також конструктори media payload |
- | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації медіа | Спільні допоміжні засоби failover, вибору кандидатів і повідомлень про відсутні моделі для генерації зображень/відео/музики |
- | `plugin-sdk/media-understanding` | Допоміжні засоби Media understanding | Типи provider для media understanding, а також експорти допоміжних засобів зображення/аудіо для provider |
- | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту | Видалення видимого асистенту тексту, допоміжні засоби рендерингу/chunking/таблиць markdown, редагування чутливих даних, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби тексту/логування |
- | `plugin-sdk/text-chunking` | Допоміжні засоби chunking тексту | Допоміжний засіб chunking вихідного тексту |
- | `plugin-sdk/speech` | Допоміжні засоби мовлення | Типи provider мовлення, а також допоміжні засоби директив, реєстру та валідації для provider |
- | `plugin-sdk/speech-core` | Спільне ядро мовлення | Типи provider мовлення, реєстр, директиви, нормалізація |
- | `plugin-sdk/realtime-transcription` | Допоміжні засоби транскрипції в реальному часі | Типи provider і допоміжні засоби реєстру |
- | `plugin-sdk/realtime-voice` | Допоміжні засоби голосу в реальному часі | Типи provider і допоміжні засоби реєстру |
+ | `plugin-sdk/media-runtime` | Спільні допоміжні засоби media | Допоміжні засоби fetch/transform/store media, а також білдери media payload |
+ | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби генерації media | Спільні допоміжні засоби failover, вибір кандидатів і повідомлення про відсутні моделі для генерації зображень/відео/музики |
+ | `plugin-sdk/media-understanding` | Допоміжні засоби media-understanding | Типи provider-ів media understanding, а також експорти допоміжних засобів зображень/аудіо для provider-ів |
+ | `plugin-sdk/text-runtime` | Спільні текстові допоміжні засоби | Видалення тексту, видимого помічнику, допоміжні засоби рендерингу/чанкування/таблиць markdown, редагування, допоміжні засоби тегів директив, утиліти безпечного тексту та пов’язані допоміжні засоби тексту/логування |
+ | `plugin-sdk/text-chunking` | Допоміжні засоби чанкування тексту | Допоміжний засіб чанкування вихідного тексту |
+ | `plugin-sdk/speech` | Допоміжні засоби speech | Типи provider-ів speech, а також допоміжні засоби директив, реєстру та валідації для provider-ів |
+ | `plugin-sdk/speech-core` | Спільне ядро speech | Типи provider-ів speech, реєстр, директиви, нормалізація |
+ | `plugin-sdk/realtime-transcription` | Допоміжні засоби realtime transcription | Типи provider-ів, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket |
+ | `plugin-sdk/realtime-voice` | Допоміжні засоби realtime voice | Типи provider-ів і допоміжні засоби реєстру |
| `plugin-sdk/image-generation-core` | Спільне ядро генерації зображень | Типи генерації зображень, failover, auth і допоміжні засоби реєстру |
- | `plugin-sdk/music-generation` | Допоміжні засоби генерації музики | Типи provider/запитів/результатів генерації музики |
- | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, допоміжні засоби failover, пошук provider і розбір model-ref |
- | `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи provider/запитів/результатів генерації відео |
- | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, допоміжні засоби failover, пошук provider і розбір model-ref |
- | `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивних відповідей | Нормалізація/зведення payload інтерактивних відповідей |
- | `plugin-sdk/channel-config-primitives` | Примітиви конфігурації каналу | Вузькі примітиви config-schema каналу |
- | `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації каналу | Допоміжні засоби авторизації запису конфігурації каналу |
- | `plugin-sdk/channel-plugin-common` | Спільний пролог каналу | Експорти спільного прологу plugin каналу |
- | `plugin-sdk/channel-status` | Допоміжні засоби статусу каналу | Спільні допоміжні засоби snapshot/summary статусу каналу |
+ | `plugin-sdk/music-generation` | Допоміжні засоби генерації музики | Типи provider-ів/запитів/результатів генерації музики |
+ | `plugin-sdk/music-generation-core` | Спільне ядро генерації музики | Типи генерації музики, допоміжні засоби failover, пошук provider-а та аналіз model-ref |
+ | `plugin-sdk/video-generation` | Допоміжні засоби генерації відео | Типи provider-ів/запитів/результатів генерації відео |
+ | `plugin-sdk/video-generation-core` | Спільне ядро генерації відео | Типи генерації відео, допоміжні засоби failover, пошук provider-а та аналіз model-ref |
+ | `plugin-sdk/interactive-runtime` | Допоміжні засоби інтерактивної відповіді | Нормалізація/зведення payload інтерактивної відповіді |
+ | `plugin-sdk/channel-config-primitives` | Примітиви конфігурації channel-ів | Вузькі примітиви config-schema channel-ів |
+ | `plugin-sdk/channel-config-writes` | Допоміжні засоби запису конфігурації channel-ів | Допоміжні засоби авторизації запису конфігурації channel-ів |
+ | `plugin-sdk/channel-plugin-common` | Спільна преамбула channel-ів | Експорти спільної преамбули channel plugin-ів |
+ | `plugin-sdk/channel-status` | Допоміжні засоби статусу channel-ів | Спільні допоміжні засоби snapshot/summary статусу channel-ів |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби конфігурації allowlist | Допоміжні засоби редагування/читання конфігурації allowlist |
| `plugin-sdk/group-access` | Допоміжні засоби доступу до груп | Спільні допоміжні засоби ухвалення рішень щодо доступу до груп |
- | `plugin-sdk/direct-dm` | Допоміжні засоби direct-DM | Спільні допоміжні засоби auth/guard для direct-DM |
- | `plugin-sdk/extension-shared` | Спільні допоміжні засоби extension | Примітиви допоміжних засобів passive-channel/status та ambient proxy |
- | `plugin-sdk/webhook-targets` | Допоміжні засоби цілей Webhook | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів |
+ | `plugin-sdk/direct-dm` | Допоміжні засоби direct-DM | Спільні допоміжні засоби auth/guard direct-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/web-media` | Спільні допоміжні засоби web media | Допоміжні засоби завантаження віддаленого/локального media |
| `plugin-sdk/zod` | Повторний експорт Zod | Повторно експортований `zod` для споживачів Plugin SDK |
- | `plugin-sdk/memory-core` | Вбудовані допоміжні засоби memory-core | Поверхня допоміжних засобів менеджера/config/файлів/CLI для memory |
- | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime engine memory | Фасад runtime індексу/пошуку memory |
- | `plugin-sdk/memory-core-host-engine-foundation` | Foundation engine хоста memory | Експорти foundation engine хоста memory |
- | `plugin-sdk/memory-core-host-engine-embeddings` | Embedding engine хоста memory | Контракти embeddings memory, доступ до реєстру, локальний provider і універсальні batch/remote допоміжні засоби; конкретні remote provider розміщуються у plugin, яким вони належать |
- | `plugin-sdk/memory-core-host-engine-qmd` | QMD engine хоста memory | Експорти QMD engine хоста memory |
- | `plugin-sdk/memory-core-host-engine-storage` | Storage engine хоста memory | Експорти storage engine хоста memory |
- | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста memory | Мультимодальні допоміжні засоби хоста memory |
- | `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста memory | Допоміжні засоби запитів хоста memory |
- | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста memory | Допоміжні засоби секретів хоста memory |
- | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста memory | Допоміжні засоби журналу подій хоста memory |
- | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста memory | Допоміжні засоби статусу хоста memory |
- | `plugin-sdk/memory-core-host-runtime-cli` | CLI runtime хоста memory | Допоміжні засоби CLI runtime хоста memory |
- | `plugin-sdk/memory-core-host-runtime-core` | Core runtime хоста memory | Допоміжні засоби core runtime хоста memory |
- | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста memory | Допоміжні засоби файлів/runtime хоста memory |
- | `plugin-sdk/memory-host-core` | Псевдонім core runtime хоста memory | Нейтральний до вендора псевдонім для допоміжних засобів core runtime хоста memory |
- | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста memory | Нейтральний до вендора псевдонім для допоміжних засобів журналу подій хоста memory |
- | `plugin-sdk/memory-host-files` | Псевдонім файлів/runtime хоста memory | Нейтральний до вендора псевдонім для допоміжних засобів файлів/runtime хоста memory |
- | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого markdown | Спільні допоміжні засоби керованого markdown для plugin, суміжних із memory |
- | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Лінивий фасад runtime менеджера пошуку active-memory |
- | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста memory | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста memory |
- | `plugin-sdk/memory-lancedb` | Вбудовані допоміжні засоби memory-lancedb | Поверхня допоміжних засобів memory-lancedb |
- | `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби та моки для тестування |
+ | `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 пам’яті, доступ до реєстру, локальний provider і узагальнені допоміжні засоби batch/remote; конкретні віддалені provider-и розміщуються у plugin-ах, яким вони належать |
+ | `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 runtime хоста пам’яті | Допоміжні засоби CLI runtime хоста пам’яті |
+ | `plugin-sdk/memory-core-host-runtime-core` | Базовий runtime хоста пам’яті | Допоміжні засоби базового runtime хоста пам’яті |
+ | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті | Допоміжні засоби файлів/runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-core` | Псевдонім базового runtime хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів базового runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-events` | Псевдонім журналу подій хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті |
+ | `plugin-sdk/memory-host-files` | Псевдонім файлів/runtime хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-markdown` | Допоміжні засоби керованого markdown | Спільні допоміжні засоби керованого markdown для plugin-ів, суміжних із пам’яттю |
+ | `plugin-sdk/memory-host-search` | Фасад пошуку Active Memory | Лінивий фасад runtime менеджера пошуку active memory |
+ | `plugin-sdk/memory-host-status` | Псевдонім статусу хоста пам’яті | Нейтральний щодо постачальника псевдонім для допоміжних засобів статусу хоста пам’яті |
+ | `plugin-sdk/memory-lancedb` | Допоміжні засоби вбудованого memory-lancedb | Поверхня допоміжних засобів memory-lancedb |
+ | `plugin-sdk/testing` | Утиліти тестування | Допоміжні засоби тестування та mock-и |
-Ця таблиця навмисно є поширеною підмножиною для міграції, а не повною поверхнею SDK. Повний список із понад 200 точок входу міститься в
+Ця таблиця навмисно є поширеною підмножиною для міграції, а не повною
+поверхнею SDK. Повний список із понад 200 точок входу міститься в
`scripts/lib/plugin-sdk-entrypoints.json`.
-Цей список усе ще включає деякі шви допоміжних засобів для вбудованих plugin, такі як
+Цей список усе ще включає деякі допоміжні поверхні вбудованих plugin-ів, як-от
`plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`,
-`plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й далі експортуються для
-підтримки та сумісності вбудованих plugin, але навмисно
+`plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Вони й надалі експортуються для
+підтримки та сумісності вбудованих plugin-ів, але навмисно
не включені до поширеної таблиці міграції та не є рекомендованою ціллю для
-нового коду plugin.
+нового коду plugin-ів.
Те саме правило застосовується й до інших сімейств вбудованих допоміжних засобів, таких як:
@@ -349,7 +357,7 @@ OpenClaw перейшов від широкого шару зворотної с
- Matrix: `plugin-sdk/matrix*`
- LINE: `plugin-sdk/line*`
- IRC: `plugin-sdk/irc*`
-- поверхні вбудованих допоміжних засобів/plugin, такі як `plugin-sdk/googlechat`,
+- поверхні вбудованих допоміжних засобів/plugin-ів, як-от `plugin-sdk/googlechat`,
`plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`,
`plugin-sdk/mattermost*`, `plugin-sdk/msteams`,
`plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`,
@@ -358,22 +366,22 @@ OpenClaw перейшов від широкого шару зворотної с
`plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`,
`plugin-sdk/thread-ownership` і `plugin-sdk/voice-call`
-`plugin-sdk/github-copilot-token` наразі надає вузьку поверхню допоміжних засобів токена:
-`DEFAULT_COPILOT_API_BASE_URL`,
+`plugin-sdk/github-copilot-token` наразі надає вузьку
+поверхню допоміжних засобів токенів `DEFAULT_COPILOT_API_BASE_URL`,
`deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken`.
Використовуйте найвужчий імпорт, який відповідає завданню. Якщо ви не можете знайти експорт,
-перевірте джерело в `src/plugin-sdk/` або запитайте в Discord.
+перевірте вихідний код у `src/plugin-sdk/` або запитайте в Discord.
-## Часова шкала видалення
+## Хронологія вилучення
-| Коли | Що відбувається |
+| Коли | Що відбувається |
| ---------------------- | ----------------------------------------------------------------------- |
-| **Зараз** | Застарілі поверхні генерують попередження під час виконання |
-| **Наступний мажорний випуск** | Застарілі поверхні буде видалено; plugin, які досі їх використовують, перестануть працювати |
+| **Зараз** | Застарілі поверхні виводять попередження під час виконання |
+| **Наступний мажорний реліз** | Застарілі поверхні буде вилучено; plugin-и, які все ще їх використовують, не працюватимуть |
-Усі core plugin уже мігровано. Зовнішнім plugin слід виконати міграцію
-до наступного мажорного випуску.
+Усі core plugin-и вже мігровано. Зовнішнім plugin-ам слід виконати
+міграцію до наступного мажорного релізу.
## Тимчасове приглушення попереджень
@@ -384,13 +392,13 @@ OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
```
-Це тимчасовий аварійний обхід, а не постійне рішення.
+Це тимчасовий обхідний шлях, а не постійне рішення.
## Пов’язане
- [Початок роботи](/uk/plugins/building-plugins) — створіть свій перший Plugin
- [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпортів підшляхів
-- [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — створення plugin каналів
-- [Плагіни provider](/uk/plugins/sdk-provider-plugins) — створення plugin provider
-- [Внутрішня будова Plugin](/uk/plugins/architecture) — глибоке занурення в архітектуру
+- [Channel Plugins](/uk/plugins/sdk-channel-plugins) — створення channel plugin-ів
+- [Provider Plugins](/uk/plugins/sdk-provider-plugins) — створення provider plugin-ів
+- [Внутрішня будова plugin-ів](/uk/plugins/architecture) — детальний розбір архітектури
- [Маніфест Plugin](/uk/plugins/manifest) — довідник схеми маніфесту
diff --git a/docs/uk/plugins/sdk-overview.md b/docs/uk/plugins/sdk-overview.md
index 773c6b971..bc1797110 100644
--- a/docs/uk/plugins/sdk-overview.md
+++ b/docs/uk/plugins/sdk-overview.md
@@ -1,24 +1,24 @@
---
read_when:
- - Потрібно знати, з якого підшляху SDK імпортувати
- - Вам потрібна довідка з усіх методів реєстрації в OpenClawPluginApi
+ - Вам потрібно знати, з якого підшляху SDK імпортувати
+ - Вам потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
- Ви шукаєте конкретний експорт SDK
sidebarTitle: SDK Overview
-summary: Карта імпорту, довідка з API реєстрації та архітектура SDK
+summary: Карта імпорту, довідник API реєстрації та архітектура SDK
title: Огляд Plugin SDK
x-i18n:
- generated_at: "2026-04-22T20:41:22Z"
+ generated_at: "2026-04-23T02:58:55Z"
model: gpt-5.4
provider: openai
- source_hash: da39299358c341cffe3e7adc6026cc5dca284514421d7dc1b641d9c0d3c98151
+ source_hash: 947f309c36e0a4d9c20639f5e18bc1b9d9e07af333414741ad36f24017716ae1
source_path: plugins/sdk-overview.md
workflow: 15
---
# Огляд Plugin SDK
-Plugin SDK — це типізований контракт між plugin-ами та ядром. Ця сторінка —
-довідник про **що імпортувати** і **що можна реєструвати**.
+Plugin SDK — це типізований контракт між plugins і core. Ця сторінка є
+довідником щодо **що імпортувати** і **що можна реєструвати**.
**Шукаєте практичний посібник?**
@@ -36,38 +36,39 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
-Кожен підшлях — це невеликий самодостатній модуль. Це пришвидшує запуск і
-запобігає проблемам із циклічними залежностями. Для специфічних для channel
-допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте
-для ширшої поверхні umbrella та спільних допоміжних засобів, таких як
+Кожен підшлях — це невеликий самодостатній модуль. Це забезпечує швидкий
+запуск і запобігає проблемам із циклічними залежностями. Для специфічних для channel
+допоміжних засобів входу/збирання надавайте перевагу `openclaw/plugin-sdk/channel-core`; залишайте `openclaw/plugin-sdk/core` для
+ширшої узагальнювальної поверхні та спільних допоміжних засобів, таких як
`buildChannelConfigSchema`.
-Не додавайте і не покладайтеся на зручні шви з назвами provider-ів, такі як
+Не додавайте і не використовуйте зручні seams з назвами providers, такі як
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або
-допоміжні шви з брендуванням channel-ів. Вбудовані plugin-и мають компонувати загальні
-підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а ядро
-має або використовувати ці локальні для plugin-ів barrel-файли, або додавати вузький загальний контракт SDK, якщо потреба справді є міжchannel-ною.
+допоміжні seams із брендуванням channel. Вбудовані plugins мають компонувати узагальнені
+підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а core
+має або використовувати ці локальні для plugin barrel-файли, або додавати вузький узагальнений SDK
+контракт, коли потреба справді є міжканальною.
Згенерована карта експорту все ще містить невеликий набір допоміжних
-швів вбудованих plugin-ів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
+seams для вбудованих plugins, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Ці
-підшляхи існують лише для підтримки вбудованих plugin-ів і сумісності; їх
-навмисно не включено до поширеної таблиці нижче, і вони не є
-рекомендованим шляхом імпорту для нових сторонніх plugin-ів.
+підшляхи існують лише для супроводу вбудованих plugins і сумісності; їх
+навмисно пропущено в поширеній таблиці нижче, і вони не є рекомендованим
+шляхом імпорту для нових сторонніх plugins.
## Довідник підшляхів
Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із
-200+ підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
+понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
-Зарезервовані допоміжні підшляхи вбудованих plugin-ів усе ще з’являються в цьому
-згенерованому списку. Розглядайте їх як деталі реалізації/поверхні сумісності,
-якщо на сторінці документації явно не зазначено один із них як публічний.
+Зарезервовані допоміжні підшляхи для вбудованих plugins усе ще з’являються в цьому
+згенерованому списку. Розглядайте їх як деталі реалізації/поверхні сумісності, якщо лише сторінка документації
+явно не просуває один із них як публічний.
-### Вхід plugin-а
+### Вхід plugin
-| Subpath | Key exports |
+| Subpath | Ключові експорти |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
@@ -75,245 +76,245 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
-
- | Subpath | Key exports |
+
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
- | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, підказки allowlist, білдери статусу налаштування |
+ | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, підказки allowlist, побудовники статусу налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
- | `plugin-sdk/account-core` | Допоміжні засоби для конфігурації/керування multi-account і резервного використання облікового запису за замовчуванням |
+ | `plugin-sdk/account-core` | Допоміжні засоби multi-account config/action-gate, допоміжні засоби резервного варіанта облікового запису за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
- | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного використання за замовчуванням |
- | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби списку облікових записів/дій з обліковими записами |
+ | `plugin-sdk/account-resolution` | Пошук облікового запису + допоміжні засоби резервного варіанта за замовчуванням |
+ | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби account-list/account-action |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
- | `plugin-sdk/channel-config-schema` | Типи схем конфігурації channel-ів |
- | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації Telegram custom-command із резервною підтримкою bundled-contract |
+ | `plugin-sdk/channel-config-schema` | Типи схеми конфігурації channel |
+ | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним варіантом контракту вбудованого plugin |
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби шлюзу авторизації команд |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
- | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації draft stream |
- | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації inbound + побудови envelope |
- | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису й диспетчеризації inbound-відповідей |
- | `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення target |
- | `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження outbound media |
- | `plugin-sdk/outbound-runtime` | Допоміжні засоби outbound identity, send delegate і планування payload |
+ | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації потоку чернетки |
+ | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних даних і побудови envelope |
+ | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису й диспетчеризації вхідних відповідей |
+ | `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
+ | `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
+ | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної ідентичності, делегата надсилання та планування payload |
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll |
- | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і adapter |
- | `plugin-sdk/agent-media-payload` | Застарілий білдер payload медіа agent-а |
- | `plugin-sdk/conversation-runtime` | Допоміжні засоби binding conversation/thread, pairing і configured-binding |
- | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot конфігурації runtime |
- | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy під час runtime |
- | `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary стану channel-а |
- | `plugin-sdk/channel-config-primitives` | Вузькі примітиви schema конфігурації channel-ів |
- | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації channel-а |
- | `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти channel plugin-ів |
- | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби читання/редагування конфігурації allowlist |
+ | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок thread і адаптера |
+ | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіа-payload агента |
+ | `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки conversation/thread, pairing і налаштованих прив’язок |
+ | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime |
+ | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy у runtime |
+ | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/зведення статусу channel |
+ | `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації channel |
+ | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації channel |
+ | `plugin-sdk/channel-plugin-common` | Спільні експортовані елементи prelude для channel plugin |
+ | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
| `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень щодо group-access |
- | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для direct-DM |
+ | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямого DM |
| `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Message Presentation](/uk/plugins/message-presentation) |
- | `plugin-sdk/channel-inbound` | Barrel сумісності для inbound debounce, mention matching, допоміжних засобів mention-policy і envelope helpers |
- | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy без ширшої поверхні inbound runtime |
- | `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування channel-а |
- | `plugin-sdk/channel-logging` | Допоміжні засоби логування channel-а для відкинутих inbound і збоїв typing/ack |
+ | `plugin-sdk/channel-inbound` | Барель сумісності для debounce вхідних даних, зіставлення mention, допоміжних засобів mention-policy та допоміжних засобів envelope |
+ | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy без ширшої поверхні runtime вхідних даних |
+ | `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування channel |
+ | `plugin-sdk/channel-logging` | Допоміжні засоби журналювання channel для відкидання вхідних даних і збоїв typing/ack |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
- | `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями channel-а, а також застарілі native schema helpers, збережені для сумісності plugin-ів |
- | `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення target |
- | `plugin-sdk/channel-contract` | Типи контракту channel-а |
+ | `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями channel, а також застарілі допоміжні засоби native schema, збережені для сумісності plugin |
+ | `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей |
+ | `plugin-sdk/channel-contract` | Типи контрактів channel |
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
- | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
+ | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей secret |
-
- | Subpath | Key exports |
+
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
- | `plugin-sdk/provider-setup` | Добірні допоміжні засоби налаштування локальних/self-hosted provider-ів |
- | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted provider-ів, сумісних з OpenAI |
- | `plugin-sdk/cli-backend` | Значення за замовчуванням для CLI backend + константи watchdog |
- | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API key під час runtime для provider plugin-ів |
- | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API key, такі як `upsertApiKeyProfile` |
- | `plugin-sdk/provider-auth-result` | Стандартний білдер OAuth auth-result |
- | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для provider plugin-ів |
- | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку auth env var для provider-ів |
+ | `plugin-sdk/provider-setup` | Добірні допоміжні засоби налаштування локального/self-hosted provider |
+ | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted provider, сумісного з OpenAI |
+ | `plugin-sdk/cli-backend` | Значення за замовчуванням backend CLI + константи watchdog |
+ | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-key у runtime для provider plugins |
+ | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-key, такі як `upsertApiKeyProfile` |
+ | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату auth OAuth |
+ | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для provider plugins |
+ | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var для auth provider |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
- | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні білдери replay-policy, допоміжні засоби provider endpoint, і допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
+ | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники replay-policy, допоміжні засоби endpoint provider і допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
- | `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/endpoint capability для provider-ів |
- | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
- | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch provider-ів |
- | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/credential для web-search для provider-ів, яким не потрібне підключення enable plugin |
- | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/credential для web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і setter/getter-и обмежених credential |
- | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime для web-search provider-ів |
- | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
+ | `plugin-sdk/provider-http` | Узагальнені допоміжні засоби HTTP/можливостей endpoint provider |
+ | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби contract config/selection для web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
+ | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування provider для web-fetch |
+ | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/credential для web-search для providers, яким не потрібне підключення enable plugin |
+ | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби contract config/credential для web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і засоби встановлення/отримання credential з областю дії |
+ | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime provider для web-search |
+ | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
- | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper, а також спільні допоміжні засоби wrapper для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
- | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native transport provider-ів, такі як guarded fetch, перетворення transport message і потоки подій writable transport |
- | `plugin-sdk/provider-onboard` | Допоміжні засоби patch конфігурації онбордингу |
+ | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
+ | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту provider, такі як guarded fetch, перетворення транспортних повідомлень і потоки подій транспорту з можливістю запису |
+ | `plugin-sdk/provider-onboard` | Допоміжні засоби виправлення конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
- | Subpath | Key exports |
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
- | `plugin-sdk/command-status` | Білдери повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
- | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth допоміжних дій у межах того самого чату |
+ | `plugin-sdk/command-status` | Побудовники повідомлень command/help, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
+ | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth для дій у тому самому chat |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval |
- | `plugin-sdk/approval-delivery-runtime` | Адаптери native approval capability/delivery |
- | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval Gateway |
- | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження native approval adapter для гарячих entrypoint-ів channel-ів |
- | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби approval handler runtime; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
- | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + прив’язки облікових записів |
- | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповідей exec/plugin approval |
+ | `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки native approval |
+ | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway approval |
+ | `plugin-sdk/approval-handler-adapter-runtime` | Легковагові допоміжні засоби завантаження адаптера native approval для гарячих entrypoint channel |
+ | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника approval; надавайте перевагу вужчим adapter/gateway seams, коли їх достатньо |
+ | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + account-binding |
+ | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді exec/plugin approval |
| `plugin-sdk/command-auth-native` | Допоміжні засоби native command auth + native session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації command-body і command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь secret channel/plugin |
- | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
+ | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби типізації `coerceSecretRef` і SecretRef для розбору secret-contract/config |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, external-content і збирання secret |
- | `plugin-sdk/ssrf-policy` | Допоміжні засоби host allowlist і політики SSRF для приватних мереж |
+ | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватної мережі |
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої поверхні infra runtime |
- | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом від SSRF і політики SSRF |
- | `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input |
- | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/target для Webhook |
- | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/тайм-аутів |
+ | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF |
+ | `plugin-sdk/secret-input` | Допоміжні засоби розбору введення secret |
+ | `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook |
+ | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body/timeout запиту |
- | Subpath | Key exports |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/install plugin-ів |
+ | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення plugin |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
- | `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context |
+ | `plugin-sdk/channel-runtime-context` | Узагальнені допоміжні засоби реєстрації та пошуку runtime-context channel |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
- | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive для plugin-ів |
- | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для Webhook/внутрішніх hook |
+ | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби command/hook/http/interactive для plugin |
+ | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime import/binding, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
- | `plugin-sdk/process-runtime` | Допоміжні засоби exec process |
- | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування і версій |
- | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і patch статусу channel-а |
- | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису config і пошуку config plugin-ів |
- | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів Telegram command і перевірки дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна |
+ | `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів |
+ | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій |
+ | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і виправлення статусу channel |
+ | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису config і пошуку config plugin |
+ | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назви/опису команди Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого barrel `text-runtime` |
- | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, білдери approval capability, допоміжні засоби auth/profile, native routing/runtime |
- | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, Heartbeat, planner відповіді |
+ | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники можливостей approval, допоміжні засоби auth/profile, допоміжні засоби native routing/runtime |
+ | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, Heartbeat, планувальник відповіді |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді |
- | `plugin-sdk/reply-history` | Спільні допоміжні засоби short-window reply-history, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
+ | `plugin-sdk/reply-history` | Спільні допоміжні засоби reply-history для короткого вікна, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
- | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху session store + updated-at |
- | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів state/OAuth |
- | `plugin-sdk/routing` | Допоміжні засоби route/session-key/прив’язки облікових записів, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
- | `plugin-sdk/status-helpers` | Спільні допоміжні засоби summary статусу channel-а/облікового запису, значення runtime-state за замовчуванням і допоміжні засоби метаданих проблем |
- | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби target 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` | Витягує канонічні поля target відправлення з аргументів tool |
- | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів для тимчасових завантажень |
- | `plugin-sdk/logging-core` | Допоміжні засоби logger підсистем і редагування чутливих даних |
+ | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій + updated-at |
+ | `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth |
+ | `plugin-sdk/routing` | Допоміжні засоби прив’язки route/session-key/account, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
+ | `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу channel/account, значення runtime-state за замовчуванням і допоміжні засоби метаданих issue |
+ | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілі |
+ | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/string |
+ | `plugin-sdk/request-url` | Витягування рядкових URL із вхідних даних типу fetch/request |
+ | `plugin-sdk/run-command` | Timed runner команд із нормалізованими результатами 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/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
| `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file-lock |
- | `plugin-sdk/persistent-dedupe` | Допоміжні засоби disk-backed кешу дедуплікації |
+ | `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу dedupe зберігання на диску |
| `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і reply-dispatch |
- | `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язок ACP лише для читання без імпортів запуску життєвого циклу |
- | `plugin-sdk/agent-config-primitives` | Вузькі примітиви schema конфігурації runtime agent-а |
- | `plugin-sdk/boolean-param` | Гнучкий зчитувач boolean параметрів |
- | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних назв |
- | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та pairing token |
+ | `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
+ | `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
+ | `plugin-sdk/boolean-param` | Гнучкий засіб читання boolean param |
+ | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів dangerous-name |
+ | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токена pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy |
- | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді provider-а/команди `/models` |
- | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills |
- | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native command |
- | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness agent-ів: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту OpenClaw tool і утиліти результатів attempt |
- | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I |
+ | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді provider для команди `/models` |
+ | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби виведення списку команд Skills |
+ | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native команд |
+ | `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих agent harnesses: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту інструментів OpenClaw і утиліти результатів attempt |
+ | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/Heartbeat |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби прапорців і подій діагностики |
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
- | `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch, proxy і pinned lookup |
+ | `plugin-sdk/fetch-runtime` | Допоміжні засоби wrapped fetch, proxy і pinned lookup |
| `plugin-sdk/runtime-fetch` | Dispatcher-aware runtime fetch без імпортів proxy/guarded-fetch |
- | `plugin-sdk/response-limit-runtime` | Зчитувач обмеженого response body без широкої поверхні media runtime |
- | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки conversation без routing налаштованих прив’язок або pairing store |
+ | `plugin-sdk/response-limit-runtime` | Засіб читання обмеженого body відповіді без широкої поверхні media runtime |
+ | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки conversation без маршрутизації налаштованих binding або сховищ pairing |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби читання session-store без широких імпортів запису/обслуговування config |
- | `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту і фільтрація додаткового контексту без широких імпортів config/security |
+ | `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту та фільтрація додаткового контексту без широких імпортів config/security |
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging |
- | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
- | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і запуску retry |
- | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace agent-а |
- | `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів із підтримкою config |
+ | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і хоста SCP |
+ | `plugin-sdk/retry-runtime` | Допоміжні засоби config retry і runner retry |
+ | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
+ | `plugin-sdk/directory-runtime` | Запит/усунення дублікатів каталогу на основі config |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
- | Subpath | Key exports |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також білдери media payload |
- | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибору candidate і повідомлень про відсутню model |
- | `plugin-sdk/media-understanding` | Типи provider-ів Media understanding, а також provider-facing експорти допоміжних засобів для зображень/аудіо |
- | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення видимого для асистента тексту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування чутливих даних, directive-tag helpers і safe-text utilities |
+ | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також побудовники media payload |
+ | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover генерації медіа, вибір candidate і повідомлення про відсутню model |
+ | `plugin-sdk/media-understanding` | Типи provider для розуміння медіа, а також експорти допоміжних засобів image/audio для provider |
+ | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення assistant-visible-text, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби directive-tag і утиліти safe-text |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
- | `plugin-sdk/speech` | Типи Speech provider-ів, а також provider-facing допоміжні засоби directive, registry і validation |
- | `plugin-sdk/speech-core` | Спільні типи Speech provider-ів, а також допоміжні засоби registry, directive і normalization |
- | `plugin-sdk/realtime-transcription` | Типи provider-ів Realtime transcription і допоміжні засоби registry |
- | `plugin-sdk/realtime-voice` | Типи provider-ів Realtime voice і допоміжні засоби registry |
- | `plugin-sdk/image-generation` | Типи provider-ів генерації зображень |
- | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, а також допоміжні засоби failover, auth і registry |
+ | `plugin-sdk/speech` | Типи provider для speech, а також допоміжні засоби directive, registry і validation для provider |
+ | `plugin-sdk/speech-core` | Спільні типи provider для speech, допоміжні засоби registry, directive і normalizaton |
+ | `plugin-sdk/realtime-transcription` | Типи provider для realtime transcription, допоміжні засоби registry і спільний допоміжний засіб сесії WebSocket |
+ | `plugin-sdk/realtime-voice` | Типи provider для realtime voice і допоміжні засоби registry |
+ | `plugin-sdk/image-generation` | Типи provider для генерації зображень |
+ | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і registry |
| `plugin-sdk/music-generation` | Типи provider/request/result для генерації музики |
- | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, а також допоміжні засоби failover, пошуку provider-а і розбору model-ref |
+ | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук provider і розбір model-ref |
| `plugin-sdk/video-generation` | Типи provider/request/result для генерації відео |
- | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, а також допоміжні засоби failover, пошуку provider-а і розбору model-ref |
- | `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру target-ів Webhook і встановлення route |
+ | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук provider і розбір model-ref |
+ | `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення route |
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
- | `plugin-sdk/zod` | Повторно експортований `zod` для користувачів plugin SDK |
+ | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів plugin SDK |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
- | Subpath | Key exports |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helpers |
- | `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексу/пошуку Memory |
+ | `plugin-sdk/memory-core` | Поверхня допоміжних засобів вбудованого memory-core для manager/config/file/CLI |
+ | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексу/пошуку Memory |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста Memory |
- | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста Memory, доступ до registry, локальний provider і загальні допоміжні засоби batch/remote |
+ | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста Memory, доступ до registry, локальний provider і узагальнені пакетні/віддалені допоміжні засоби |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста Memory |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста Memory |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста Memory |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста Memory |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret хоста Memory |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста Memory |
- | `plugin-sdk/memory-core-host-status` | Допоміжні засоби status хоста Memory |
- | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста Memory |
+ | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста Memory |
+ | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста Memory |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста Memory |
- | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби file/runtime хоста Memory |
- | `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для допоміжних засобів core runtime хоста Memory |
- | `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для допоміжних засобів журналу подій хоста Memory |
- | `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для допоміжних засобів file/runtime хоста Memory |
- | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого Markdown для plugin-ів, суміжних із memory |
- | `plugin-sdk/memory-host-search` | Active Memory runtime facade для доступу до search-manager |
- | `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для допоміжних засобів status хоста Memory |
- | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
+ | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста Memory |
+ | `plugin-sdk/memory-host-core` | Вендорно-нейтральний псевдонім для допоміжних засобів core runtime хоста Memory |
+ | `plugin-sdk/memory-host-events` | Вендорно-нейтральний псевдонім для допоміжних засобів журналу подій хоста Memory |
+ | `plugin-sdk/memory-host-files` | Вендорно-нейтральний псевдонім для допоміжних засобів файлів/runtime хоста Memory |
+ | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для plugins, суміжних із memory |
+ | `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до manager пошуку |
+ | `plugin-sdk/memory-host-status` | Вендорно-нейтральний псевдонім для допоміжних засобів статусу хоста Memory |
+ | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів вбудованого memory-lancedb |
-
- | Family | Current subpaths | Intended use |
+
+ | Family | Поточні підшляхи | Призначене використання |
| --- | --- | --- |
- | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser plugin-а (`browser-support` лишається barrel сумісності) |
- | Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime bundled Matrix |
- | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime bundled LINE |
- | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled IRC |
- | Допоміжні засоби для конкретних channel-ів | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шви сумісності/допоміжні шви bundled channel-ів |
- | Допоміжні засоби для auth/plugin-ів | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шви допоміжних засобів bundled feature/plugin-ів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
+ | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки вбудованого browser plugin (`browser-support` залишається barrel сумісності) |
+ | Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime вбудованого Matrix |
+ | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime вбудованого LINE |
+ | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів вбудованого IRC |
+ | Допоміжні засоби, специфічні для channel | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Поверхні сумісності/допоміжних засобів вбудованих channel |
+ | Допоміжні засоби, специфічні для auth/plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Поверхні допоміжних засобів вбудованих функцій/plugins; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
@@ -324,55 +325,55 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
### Реєстрація можливостей
-| Method | What it registers |
-| ------------------------------------------------ | ------------------------------------- |
-| `api.registerProvider(...)` | Виведення тексту (LLM) |
-| `api.registerAgentHarness(...)` | Експериментальний низькорівневий виконавець agent-а |
-| `api.registerCliBackend(...)` | Локальний CLI backend для inference |
-| `api.registerChannel(...)` | Канал обміну повідомленнями |
-| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
-| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція в реальному часі |
-| `api.registerRealtimeVoiceProvider(...)` | Дуплексні голосові сесії в реальному часі |
-| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
-| `api.registerImageGenerationProvider(...)` | Генерація зображень |
-| `api.registerMusicGenerationProvider(...)` | Генерація музики |
-| `api.registerVideoGenerationProvider(...)` | Генерація відео |
-| `api.registerWebFetchProvider(...)` | Provider веб-отримання / скрейпінгу |
-| `api.registerWebSearchProvider(...)` | Вебпошук |
+| Method | Що реєструє |
+| ------------------------------------------------ | ------------------------------------ |
+| `api.registerProvider(...)` | Виведення тексту (LLM) |
+| `api.registerAgentHarness(...)` | Експериментальний низькорівневий виконавець агента |
+| `api.registerCliBackend(...)` | Локальний backend виведення CLI |
+| `api.registerChannel(...)` | Канал повідомлень |
+| `api.registerSpeechProvider(...)` | Text-to-speech / синтез STT |
+| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція в realtime |
+| `api.registerRealtimeVoiceProvider(...)` | Дуплексні сеанси голосу в realtime |
+| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
+| `api.registerImageGenerationProvider(...)` | Генерація зображень |
+| `api.registerMusicGenerationProvider(...)` | Генерація музики |
+| `api.registerVideoGenerationProvider(...)` | Генерація відео |
+| `api.registerWebFetchProvider(...)` | Provider web fetch / scrape |
+| `api.registerWebSearchProvider(...)` | Вебпошук |
-### Інструменти й команди
+### Інструменти та команди
-| Method | What it registers |
-| ------------------------------- | --------------------------------------------- |
-| `api.registerTool(tool, opts?)` | Інструмент agent-а (обов’язковий або `{ optional: true }`) |
-| `api.registerCommand(def)` | Користувацька команда (оминає LLM) |
+| Method | Що реєструє |
+| ------------------------------- | ------------------------------------------- |
+| `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) |
+| `api.registerCommand(def)` | Користувацька команда (обходить LLM) |
### Інфраструктура
-| Method | What it registers |
-| ----------------------------------------------- | --------------------------------------- |
-| `api.registerHook(events, handler, opts?)` | Подієвий hook |
-| `api.registerHttpRoute(params)` | HTTP endpoint Gateway |
-| `api.registerGatewayMethod(name, handler)` | RPC-метод Gateway |
-| `api.registerCli(registrar, opts?)` | Підкоманда CLI |
-| `api.registerService(service)` | Фонова служба |
-| `api.registerInteractiveHandler(registration)` | Інтерактивний handler |
-| `api.registerEmbeddedExtensionFactory(factory)` | Фабрика extension embedded-runner для Pi |
-| `api.registerMemoryPromptSupplement(builder)` | Адитивний розділ prompt, суміжний із memory |
-| `api.registerMemoryCorpusSupplement(adapter)` | Адитивний корпус memory search/read |
+| Method | Що реєструє |
+| ----------------------------------------------- | -------------------------------------- |
+| `api.registerHook(events, handler, opts?)` | Хук події |
+| `api.registerHttpRoute(params)` | HTTP endpoint Gateway |
+| `api.registerGatewayMethod(name, handler)` | RPC-метод Gateway |
+| `api.registerCli(registrar, opts?)` | Підкоманда CLI |
+| `api.registerService(service)` | Фонова служба |
+| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник |
+| `api.registerEmbeddedExtensionFactory(factory)` | Фабрика extension вбудованого runner для Pi |
+| `api.registerMemoryPromptSupplement(builder)` | Адитивна секція prompt, суміжна з memory |
+| `api.registerMemoryCorpusSupplement(adapter)` | Адитивний corpus пошуку/читання memory |
-Зарезервовані простори імен адміністрування ядра (`config.*`, `exec.approvals.*`, `wizard.*`,
-`update.*`) завжди лишаються `operator.admin`, навіть якщо plugin намагається призначити
-вужчу область видимості методу Gateway. Для
-методів, що належать plugin-у, віддавайте перевагу префіксам, специфічним для plugin-а.
+Зарезервовані простори назв admin у core (`config.*`, `exec.approvals.*`, `wizard.*`,
+`update.*`) завжди залишаються `operator.admin`, навіть якщо plugin намагається призначити
+вужчу область методу Gateway. Для методів, що належать plugin,
+надавайте перевагу префіксам, специфічним для plugin.
-Використовуйте `api.registerEmbeddedExtensionFactory(...)`, коли plugin-у потрібен нативний для Pi
-таймінг подій під час embedded-запусків OpenClaw, наприклад асинхронні
-перезаписи `tool_result`, які мають відбутися до того, як буде надіслано
-фінальне повідомлення про результат tool. Наразі це шов bundled-plugin: лише bundled plugin-и можуть реєструвати його, і
+Використовуйте `api.registerEmbeddedExtensionFactory(...)`, коли plugin потребує нативного для Pi
+таймінгу подій під час вбудованих запусків OpenClaw, наприклад для асинхронних переписувань `tool_result`,
+які мають відбутися до того, як буде надіслано фінальне повідомлення з результатом інструмента.
+Сьогодні це surface для вбудованих plugins: лише вбудовані plugins можуть реєструвати її, і
вони мають оголошувати `contracts.embeddedExtensionFactories: ["pi"]` у
-`openclaw.plugin.json`. Для всього, що не потребує цього нижчорівневого шва,
-використовуйте звичайні hook-и plugin-ів OpenClaw.
+`openclaw.plugin.json`. Залишайте звичайні хук-и OpenClaw plugin для всього,
+що не потребує цього низькорівневого seam.
### Метадані реєстрації CLI
@@ -380,11 +381,11 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
- `commands`: явні корені команд, якими володіє registrar
- `descriptors`: дескриптори команд на етапі розбору, що використовуються для кореневої довідки CLI,
- маршрутизації та лінивої реєстрації CLI plugin-ів
+ маршрутизації та відкладеної реєстрації CLI plugin
-Якщо ви хочете, щоб команда plugin-а залишалася ліниво завантажуваною у звичайному кореневому шляху CLI,
-надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, що експонується цим
-registrar.
+Якщо ви хочете, щоб команда plugin залишалася відкладено завантажуваною у звичайному кореневому шляху CLI,
+надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, що його відкриває
+цей registrar.
```typescript
api.registerCli(
@@ -396,7 +397,7 @@ api.registerCli(
descriptors: [
{
name: "matrix",
- description: "Керуйте обліковими записами Matrix, верифікацією, пристроями та станом профілю",
+ description: "Керування обліковими записами Matrix, верифікацією, пристроями та станом профілю",
hasSubcommands: true,
},
],
@@ -404,138 +405,138 @@ api.registerCli(
);
```
-Використовуйте `commands` окремо лише тоді, коли вам не потрібна лінива реєстрація кореневого CLI.
-Цей eager шлях сумісності залишається підтримуваним, але він не встановлює
-заповнювачі з підтримкою descriptor для лінивого завантаження на етапі розбору.
+Використовуйте лише `commands`, коли вам не потрібна відкладена реєстрація кореневого CLI.
+Цей eager-шлях сумісності залишається підтримуваним, але він не встановлює
+placeholder-и на основі descriptor для відкладеного завантаження на етапі розбору.
-### Реєстрація CLI backend
+### Реєстрація backend CLI
-`api.registerCliBackend(...)` дає plugin-у змогу володіти конфігурацією за замовчуванням для локального
-AI CLI backend, такого як `codex-cli`.
+`api.registerCliBackend(...)` дає змогу plugin володіти конфігурацією за замовчуванням для локального
+backend AI CLI, такого як `codex-cli`.
-- Backend `id` стає префіксом provider-а в посиланнях на model, як-от `codex-cli/gpt-5`.
-- `config` backend-а використовує ту саму форму, що й `agents.defaults.cliBackends.`.
-- Користувацька config усе одно має пріоритет. OpenClaw зливає `agents.defaults.cliBackends.` поверх
- значення plugin-а за замовчуванням перед запуском CLI.
-- Використовуйте `normalizeConfig`, коли backend потребує сумісних перезаписів після злиття
+- `id` backend стає префіксом provider у посиланнях на model, як-от `codex-cli/gpt-5`.
+- `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.`.
+- Конфігурація користувача все одно має пріоритет. OpenClaw зливає `agents.defaults.cliBackends.` поверх
+ значення plugin за замовчуванням перед запуском CLI.
+- Використовуйте `normalizeConfig`, коли backend потребує переписувань для сумісності після злиття
(наприклад, нормалізації старих форм прапорців).
### Ексклюзивні слоти
-| Method | What it registers |
-| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `api.registerContextEngine(id, factory)` | Context engine (одночасно активний лише один). Колбек `assemble()` отримує `availableTools` і `citationsMode`, щоб engine міг адаптувати доповнення prompt. |
-| `api.registerMemoryCapability(capability)` | Уніфікована можливість memory |
-| `api.registerMemoryPromptSection(builder)` | Білдер розділу prompt для memory |
-| `api.registerMemoryFlushPlan(resolver)` | Resolver плану flush для memory |
-| `api.registerMemoryRuntime(runtime)` | Adapter runtime для memory |
+| Method | Що реєструє |
+| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `api.registerContextEngine(id, factory)` | Рушій контексту (одночасно активний лише один). Колбек `assemble()` отримує `availableTools` і `citationsMode`, щоб рушій міг адаптувати доповнення до prompt. |
+| `api.registerMemoryCapability(capability)` | Уніфіковану можливість memory |
+| `api.registerMemoryPromptSection(builder)` | Побудовник секції prompt для memory |
+| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану flush для memory |
+| `api.registerMemoryRuntime(runtime)` | Адаптер runtime для memory |
-### Adapters embedding для memory
+### Адаптери embedding для memory
-| Method | What it registers |
-| ---------------------------------------------- | ---------------------------------------------- |
-| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embedding для memory для активного plugin-а |
+| Method | Що реєструє |
+| ---------------------------------------------- | ------------------------------------------ |
+| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding для memory для активного plugin |
-- `registerMemoryCapability` — рекомендований API ексклюзивного plugin-а memory.
-- `registerMemoryCapability` також може експонувати `publicArtifacts.listArtifacts(...)`,
- щоб companion plugin-и могли споживати експортовані артефакти memory через
+- `registerMemoryCapability` — це пріоритетний API ексклюзивного memory-plugin.
+- `registerMemoryCapability` також може відкривати `publicArtifacts.listArtifacts(...)`,
+ щоб companion plugins могли споживати експортовані артефакти memory через
`openclaw/plugin-sdk/memory-host-core` замість звернення до приватного
- layout конкретного plugin-а memory.
+ layout конкретного memory plugin.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` і
- `registerMemoryRuntime` — це сумісні зі спадщиною API ексклюзивних plugin-ів memory.
-- `registerMemoryEmbeddingProvider` дає активному plugin-у memory змогу зареєструвати один
- або більше id adapter-ів embedding (наприклад, `openai`, `gemini` або користувацький
- id, визначений plugin-ом).
-- Користувацька config, як-от `agents.defaults.memorySearch.provider` і
- `agents.defaults.memorySearch.fallback`, визначається відносно зареєстрованих id цих
- adapter-ів.
+ `registerMemoryRuntime` — це сумісні зі спадщиною API ексклюзивного memory-plugin.
+- `registerMemoryEmbeddingProvider` дає змогу активному memory plugin реєструвати один
+ або кілька id адаптерів embedding (наприклад, `openai`, `gemini` або користувацький id,
+ визначений plugin).
+- Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і
+ `agents.defaults.memorySearch.fallback`, визначається відносно цих зареєстрованих
+ id адаптерів.
### Події та життєвий цикл
-| Method | What it does |
-| -------------------------------------------- | ----------------------------- |
-| `api.on(hookName, handler, opts?)` | Типізований hook життєвого циклу |
+| Method | Що робить |
+| -------------------------------------------- | ---------------------------- |
+| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| `api.onConversationBindingResolved(handler)` | Колбек прив’язки conversation |
-### Семантика рішень hook-ів
+### Семантика рішень hook
-- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який handler встановлює його, handler-и з нижчим пріоритетом пропускаються.
+- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням.
-- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який handler встановлює його, handler-и з нижчим пріоритетом пропускаються.
+- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням.
-- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який handler заявляє про dispatch, handler-и з нижчим пріоритетом і типовий шлях model dispatch пропускаються.
-- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який handler встановлює його, handler-и з нижчим пріоритетом пропускаються.
+- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере dispatch на себе, обробники з нижчим пріоритетом і стандартний шлях dispatch моделі пропускаються.
+- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як і пропуск `cancel`), а не перевизначенням.
-- `message_received`: використовуйте типізоване поле `threadId`, коли вам потрібна inbound маршрутизація thread/topic. Зберігайте `metadata` для специфічних для channel додаткових даних.
+- `message_received`: використовуйте типізоване поле `threadId`, коли потрібна маршрутизація вхідних thread/topic. Залишайте `metadata` для специфічних для channel додаткових даних.
- `message_sending`: використовуйте типізовані поля маршрутизації `replyToId` / `threadId`, перш ніж переходити до специфічного для channel `metadata`.
- `gateway_start`: використовуйте `ctx.config`, `ctx.workspaceDir` і `ctx.getCron?.()` для стану запуску, що належить Gateway, замість покладання на внутрішні hook-и `gateway:startup`.
### Поля об’єкта API
-| Field | Type | Description |
-| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
-| `api.id` | `string` | ID plugin-а |
-| `api.name` | `string` | Відображувана назва |
-| `api.version` | `string?` | Версія plugin-а (необов’язково) |
-| `api.description` | `string?` | Опис plugin-а (необов’язково) |
-| `api.source` | `string` | Шлях до джерела plugin-а |
-| `api.rootDir` | `string?` | Кореневий каталог plugin-а (необов’язково) |
-| `api.config` | `OpenClawConfig` | Поточний snapshot config (активний runtime snapshot у пам’яті, якщо доступний) |
-| `api.pluginConfig` | `Record` | Специфічна для plugin-а config з `plugins.entries..config` |
-| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
-| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) |
+| Field | Type | Опис |
+| ------------------------ | ------------------------- | -------------------------------------------------------------------------------------------- |
+| `api.id` | `string` | Id plugin |
+| `api.name` | `string` | Відображувана назва |
+| `api.version` | `string?` | Версія plugin (необов’язково) |
+| `api.description` | `string?` | Опис plugin (необов’язково) |
+| `api.source` | `string` | Шлях до джерела plugin |
+| `api.rootDir` | `string?` | Кореневий каталог plugin (необов’язково) |
+| `api.config` | `OpenClawConfig` | Поточний знімок config (активний знімок runtime у пам’яті, якщо доступний) |
+| `api.pluginConfig` | `Record` | Специфічна для plugin config з `plugins.entries..config` |
+| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
+| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це полегшене вікно запуску/налаштування до повного entry |
-| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня plugin-а |
+| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня plugin |
## Угода щодо внутрішніх модулів
-У межах вашого plugin-а використовуйте локальні barrel-файли для внутрішніх імпортів:
+Усередині вашого plugin використовуйте локальні barrel-файли для внутрішніх імпортів:
```
my-plugin/
api.ts # Публічні експорти для зовнішніх споживачів
runtime-api.ts # Лише внутрішні експорти runtime
- index.ts # Точка входу plugin-а
+ index.ts # Точка входу plugin
setup-entry.ts # Полегшений entry лише для налаштування (необов’язково)
```
Ніколи не імпортуйте власний plugin через `openclaw/plugin-sdk/`
- із production-коду. Спрямовуйте внутрішні імпорти через `./api.ts` або
+ у production code. Спрямовуйте внутрішні імпорти через `./api.ts` або
`./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
-Публічні поверхні bundled plugin-ів, завантажувані через facade (`api.ts`, `runtime-api.ts`,
-`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер віддають перевагу
-активному snapshot config runtime, якщо OpenClaw уже запущено. Якщо snapshot runtime
+Публічні поверхні вбудованих plugins, завантажувані через facade (`api.ts`, `runtime-api.ts`,
+`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер надають перевагу
+активному знімку config runtime, якщо OpenClaw уже запущено. Якщо знімок runtime
ще не існує, вони повертаються до визначеного config-файлу на диску.
-Provider plugin-и також можуть експортувати вузький локальний barrel контракту plugin-а, коли
-допоміжний засіб навмисно є специфічним для provider-а і ще не належить до загального підшляху SDK.
-Поточний bundled-приклад: provider Anthropic зберігає свої допоміжні засоби Claude
-stream у власному публічному шві `api.ts` / `contract-api.ts` замість
-просування логіки Anthropic beta-header і `service_tier` у загальний
+Plugins provider також можуть відкривати вузький локальний barrel контракту plugin, коли
+допоміжний засіб навмисно є специфічним для provider і ще не належить до узагальненого підшляху SDK.
+Поточний вбудований приклад: provider Anthropic зберігає свої допоміжні засоби потоку Claude
+у власному публічному seam `api.ts` / `contract-api.ts` замість
+просування логіки бета-заголовка Anthropic і `service_tier` в узагальнений
контракт `plugin-sdk/*`.
-Інші поточні bundled-приклади:
+Інші поточні вбудовані приклади:
-- `@openclaw/openai-provider`: `api.ts` експортує білдери provider-ів,
- допоміжні засоби моделей за замовчуванням і білдери realtime provider-ів
-- `@openclaw/openrouter-provider`: `api.ts` експортує білдер provider-а, а також
- допоміжні засоби onboarding/config
+- `@openclaw/openai-provider`: `api.ts` експортує побудовники provider,
+ допоміжні засоби моделей за замовчуванням і побудовники realtime provider
+- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник provider, а також
+ допоміжні засоби онбордингу/config
- Production-код extension також має уникати імпортів `openclaw/plugin-sdk/`.
- Якщо допоміжний засіб справді є спільним, просуньте його до нейтрального підшляху SDK,
- такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
- surface, орієнтованої на можливості, замість зв’язування двох plugin-ів між собою.
+ Production code extension також має уникати імпортів `openclaw/plugin-sdk/`.
+ Якщо допоміжний засіб справді є спільним, перенесіть його в нейтральний підшлях SDK,
+ такий як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншу
+ surface, орієнтовану на можливості, замість зв’язування двох plugins між собою.
## Пов’язані матеріали
- [Entry Points](/uk/plugins/sdk-entrypoints) — параметри `definePluginEntry` і `defineChannelPluginEntry`
-- [Runtime Helpers](/uk/plugins/sdk-runtime) — повний довідник простору імен `api.runtime`
+- [Runtime Helpers](/uk/plugins/sdk-runtime) — повний довідник простору назв `api.runtime`
- [Setup and Config](/uk/plugins/sdk-setup) — пакування, маніфести, схеми config
- [Testing](/uk/plugins/sdk-testing) — утиліти тестування та правила lint
-- [SDK Migration](/uk/plugins/sdk-migration) — міграція із застарілих surface
-- [Plugin Internals](/uk/plugins/architecture) — поглиблена архітектура і модель можливостей
+- [SDK Migration](/uk/plugins/sdk-migration) — міграція із застарілих surfaces
+- [Plugin Internals](/uk/plugins/architecture) — поглиблена архітектура та модель можливостей
diff --git a/docs/uk/plugins/sdk-provider-plugins.md b/docs/uk/plugins/sdk-provider-plugins.md
index 07fe77a36..a44e35538 100644
--- a/docs/uk/plugins/sdk-provider-plugins.md
+++ b/docs/uk/plugins/sdk-provider-plugins.md
@@ -1,37 +1,37 @@
---
read_when:
- - Ви створюєте новий plugin постачальника моделей
+ - Ви створюєте новий Plugin постачальника моделей
- Ви хочете додати до OpenClaw OpenAI-сумісний проксі або власну LLM
- - Вам потрібно зрозуміти автентифікацію постачальника, каталоги та хуки середовища виконання
+ - Вам потрібно зрозуміти автентифікацію постачальника, каталоги та runtime-хуки
sidebarTitle: Provider Plugins
-summary: Покроковий посібник зі створення plugin постачальника моделей для OpenClaw
-title: Створення plugin постачальників моделей
+summary: Покроковий посібник зі створення Plugin постачальника моделей для OpenClaw
+title: Створення Plugin постачальників моделей
x-i18n:
- generated_at: "2026-04-22T03:53:22Z"
+ generated_at: "2026-04-23T02:58:43Z"
model: gpt-5.4
provider: openai
- source_hash: 99376d2abfc968429ed19f03451beb0f3597d57c703f2ce60c6c51220656e850
+ source_hash: b46f72d7f636caf4b072ce84db2af5b6e6f4c8d4b75f6ea102c948c3865353c7
source_path: plugins/sdk-provider-plugins.md
workflow: 15
---
-# Створення plugin постачальників моделей
+# Створення Plugin постачальників моделей
-Цей посібник пояснює, як створити plugin постачальника, який додає постачальника
-моделей (LLM) до OpenClaw. Наприкінці у вас буде постачальник із каталогом
-моделей, автентифікацією через API key і динамічним визначенням моделей.
+Цей посібник покроково пояснює створення Plugin постачальника, який додає постачальника моделей
+(LLM) до OpenClaw. Наприкінці у вас буде постачальник із каталогом моделей,
+автентифікацією через API-ключ і динамічним визначенням моделей.
- Якщо ви ще не створювали жодного plugin для OpenClaw, спочатку прочитайте
+ Якщо ви раніше не створювали жодного Plugin для OpenClaw, спочатку прочитайте
[Початок роботи](/uk/plugins/building-plugins) про базову структуру пакета
та налаштування маніфесту.
- Plugins постачальників додають моделі до стандартного циклу інференсу OpenClaw. Якщо модель
- має працювати через власний native daemon агента, який керує потоками,
- Compaction або подіями інструментів, поєднайте постачальника з [agent harness](/uk/plugins/sdk-agent-harness),
- замість того щоб виносити деталі протоколу daemon у core.
+ Plugin постачальників додають моделі до стандартного циклу інференсу OpenClaw. Якщо модель
+ має працювати через нативний агент-демон, який керує потоками, Compaction або подіями
+ інструментів, поєднайте постачальника з [agent harness](/uk/plugins/sdk-agent-harness),
+ а не виносьте деталі протоколу демона в core.
## Покроковий розбір
@@ -97,12 +97,12 @@ x-i18n:
Маніфест оголошує `providerAuthEnvVars`, щоб OpenClaw міг виявляти
- облікові дані без завантаження runtime вашого plugin. Додайте `providerAuthAliases`,
- якщо варіант постачальника має повторно використовувати auth іншого id постачальника. `modelSupport`
- є необов’язковим і дає змогу OpenClaw автоматично завантажувати ваш plugin постачальника зі скорочених
- id моделей, таких як `acme-large`, ще до появи runtime hooks. Якщо ви публікуєте
+ облікові дані без завантаження runtime вашого Plugin. Додавайте `providerAuthAliases`,
+ коли варіант постачальника має повторно використовувати автентифікацію іншого ідентифікатора постачальника. `modelSupport`
+ є необов’язковим і дозволяє OpenClaw автоматично завантажувати ваш Plugin постачальника зі скорочених
+ ідентифікаторів моделей, як-от `acme-large`, ще до появи runtime-хуків. Якщо ви публікуєте
постачальника в ClawHub, поля `openclaw.compat` і `openclaw.build`
- у `package.json` є обов’язковими.
+ є обов’язковими в `package.json`.
@@ -182,8 +182,8 @@ x-i18n:
`openclaw onboard --acme-ai-api-key ` і вибрати
`acme-ai/acme-large` як свою модель.
- Якщо upstream-постачальник використовує інші control tokens, ніж OpenClaw, додайте
- невелике двонапрямне текстове перетворення замість заміни шляху потоку:
+ Якщо апстрім-постачальник використовує інші керівні токени, ніж OpenClaw, додайте
+ невелике двонапрямне текстове перетворення замість заміни шляху стримінгу:
```typescript
api.registerTextTransforms({
@@ -200,13 +200,13 @@ x-i18n:
});
```
- `input` переписує фінальний системний prompt і текстовий вміст повідомлень перед
- передаванням. `output` переписує текстові deltas асистента й фінальний текст до того,
- як OpenClaw розбере власні control markers або доставку каналу.
+ `input` переписує фінальний системний промпт і текстовий вміст повідомлення перед
+ передаванням. `output` переписує текстові дельти відповіді асистента та фінальний текст до того,
+ як OpenClaw розбере власні керівні маркери або доставку через канал.
- Для вбудованих постачальників, які лише реєструють одного текстового постачальника з auth через API key
- плюс один runtime на основі каталогу, краще використовувати вужчий
- helper `defineSingleProviderPluginEntry(...)`:
+ Для вбудованих постачальників, які реєструють лише одного текстового постачальника з автентифікацією
+ через API-ключ і одним runtime на основі каталогу, надавайте перевагу вужчому
+ допоміжному методу `defineSingleProviderPluginEntry(...)`:
```typescript
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
@@ -246,36 +246,38 @@ x-i18n:
});
```
- `buildProvider` — це шлях живого каталогу, який використовується, коли OpenClaw може визначити реальний
- auth постачальника. Він може виконувати специфічне для постачальника виявлення. Використовуйте
- `buildStaticProvider` лише для офлайн-рядків, які безпечно показувати до налаштування auth;
- він не повинен вимагати облікових даних або виконувати мережеві запити.
+ `buildProvider` — це шлях живого каталогу, який використовується, коли OpenClaw може визначити реальну
+ автентифікацію постачальника. Він може виконувати специфічне для постачальника виявлення.
+ Використовуйте `buildStaticProvider` лише для офлайнових рядків, які безпечно показувати до налаштування
+ автентифікації; він не повинен вимагати облікові дані або виконувати мережеві запити.
Відображення `models list --all` в OpenClaw наразі виконує статичні каталоги
- лише для вбудованих plugins постачальників, із порожньою конфігурацією, порожнім env і без
- шляхів agent/workspace.
+ лише для вбудованих Plugin постачальників, із порожньою конфігурацією, порожнім env та без
+ шляхів агента/робочого простору.
- Якщо вашому auth-процесу також потрібно патчити `models.providers.*`, aliases і
- модель постачальника за замовчуванням для агента під час onboarding, використовуйте preset helpers з
- `openclaw/plugin-sdk/provider-onboard`. Найвужчі helper-и:
+ Якщо вашому процесу автентифікації також потрібно змінювати `models.providers.*`, псевдоніми
+ та модель агента за замовчуванням під час onboard, використовуйте допоміжні пресети з
+ `openclaw/plugin-sdk/provider-onboard`. Найвужчі допоміжні методи:
`createDefaultModelPresetAppliers(...)`,
`createDefaultModelsPresetAppliers(...)` і
`createModelCatalogPresetAppliers(...)`.
- Коли native endpoint постачальника підтримує streamed usage blocks на звичайному
- транспорті `openai-completions`, краще використовувати спільні helper-и каталогу з
- `openclaw/plugin-sdk/provider-catalog-shared`, а не жорстко прописувати перевірки provider-id. Функції
+ Коли нативна кінцева точка постачальника підтримує потокові блоки використання в
+ звичайному транспорті `openai-completions`, надавайте перевагу спільним допоміжним методам каталогу з
+ `openclaw/plugin-sdk/provider-catalog-shared` замість жорсткого кодування перевірок ідентифікатора постачальника.
`supportsNativeStreamingUsageCompat(...)` і
- `applyProviderNativeStreamingUsageCompat(...)` визначають підтримку за мапою можливостей endpoint, тож native endpoints у стилі Moonshot/DashScope усе одно вмикаються, навіть якщо plugin використовує власний provider id.
+ `applyProviderNativeStreamingUsageCompat(...)` визначають підтримку за картою можливостей кінцевої точки,
+ тож нативні кінцеві точки в стилі Moonshot/DashScope також можуть підключатися, навіть якщо Plugin
+ використовує власний ідентифікатор постачальника.
-
- Якщо ваш постачальник приймає довільні id моделей (наприклад, proxy або router),
+
+ Якщо ваш постачальник приймає довільні ідентифікатори моделей (наприклад, проксі або маршрутизатор),
додайте `resolveDynamicModel`:
```typescript
api.registerProvider({
- // ... id, label, auth, catalog з прикладу вище
+ // ... id, label, auth, catalog from above
resolveDynamicModel: (ctx) => ({
id: ctx.modelId,
@@ -293,16 +295,16 @@ x-i18n:
```
Якщо для визначення потрібен мережевий виклик, використовуйте `prepareDynamicModel` для асинхронного
- прогріву — після його завершення `resolveDynamicModel` виконується знову.
+ прогріву — після його завершення `resolveDynamicModel` запускається знову.
-
- Більшості постачальників потрібні лише `catalog` + `resolveDynamicModel`. Додавайте hooks
- поступово, у міру потреб вашого постачальника.
+
+ Більшості постачальників потрібні лише `catalog` + `resolveDynamicModel`. Додавайте хуки
+ поступово, у міру того як вони потрібні вашому постачальнику.
- Спільні helper builders тепер охоплюють найпоширеніші сімейства replay/tool-compat,
- тож plugin-ам зазвичай не потрібно вручну під’єднувати кожен hook окремо:
+ Спільні конструктори допоміжних методів тепер покривають найпоширеніші сімейства replay/tool-compat,
+ тому Plugin зазвичай не потрібно вручну підключати кожен хук окремо:
```typescript
import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared";
@@ -322,17 +324,17 @@ x-i18n:
});
```
- Доступні сьогодні сімейства replay:
+ Доступні на сьогодні сімейства replay:
- | Сімейство | Що воно під’єднує |
+ | Сімейство | Що воно підключає |
| --- | --- |
- | `openai-compatible` | Спільну політику replay у стилі OpenAI для OpenAI-сумісних транспортів, включно з очищенням `tool-call-id`, виправленням порядку assistant-first і загальною валідацією Gemini-turn там, де це потрібно транспорту |
- | `anthropic-by-model` | Політику replay з урахуванням Claude, що вибирається за `modelId`, щоб транспорти Anthropic-message отримували очищення thinking-block, специфічне для Claude, лише коли визначена модель справді є id Claude |
- | `google-gemini` | Native політику replay для Gemini плюс очищення bootstrap replay і режим tagged reasoning-output |
- | `passthrough-gemini` | Очищення thought-signature Gemini для моделей Gemini, що працюють через OpenAI-сумісні proxy-транспорти; не вмикає native валідацію replay Gemini або переписування bootstrap |
- | `hybrid-anthropic-openai` | Гібридну політику для постачальників, які поєднують поверхні моделей Anthropic-message та OpenAI-compatible в одному plugin; необов’язкове відкидання thinking-block лише для Claude залишається обмеженим стороною Anthropic |
+ | `openai-compatible` | Спільна політика replay у стилі OpenAI для OpenAI-сумісних транспортів, включно з санітизацією ідентифікаторів викликів інструментів, виправленням порядку assistant-first і загальною валідацією Gemini-turn там, де це потрібно транспорту |
+ | `anthropic-by-model` | Claude-орієнтована політика replay, що вибирається за `modelId`, тож транспорти повідомлень Anthropic отримують специфічне очищення thinking-block Claude лише тоді, коли визначена модель справді є ідентифікатором Claude |
+ | `google-gemini` | Нативна політика replay Gemini плюс санітизація bootstrap replay і режим тегованого виводу reasoning |
+ | `passthrough-gemini` | Санітизація thought-signature Gemini для моделей Gemini, що працюють через OpenAI-сумісні проксі-транспорти; не вмикає нативну валідацію replay Gemini або переписування bootstrap |
+ | `hybrid-anthropic-openai` | Гібридна політика для постачальників, які поєднують поверхні моделей Anthropic-message та OpenAI-compatible в одному Plugin; необов’язкове відкидання thinking-block лише для Claude залишається обмеженим стороною Anthropic |
- Реальні приклади вбудованих рішень:
+ Реальні приклади з вбудованих Plugin:
- `google` і `google-gemini-cli`: `google-gemini`
- `openrouter`, `kilocode`, `opencode` і `opencode-go`: `passthrough-gemini`
@@ -340,19 +342,19 @@ x-i18n:
- `minimax`: `hybrid-anthropic-openai`
- `moonshot`, `ollama`, `xai` і `zai`: `openai-compatible`
- Доступні сьогодні сімейства потоків:
+ Доступні на сьогодні сімейства stream:
- | Сімейство | Що воно під’єднує |
+ | Сімейство | Що воно підключає |
| --- | --- |
- | `google-thinking` | Нормалізацію thinking payload Gemini на спільному шляху потоку |
- | `kilocode-thinking` | Обгортку Kilo reasoning на спільному шляху proxy-потоку, де `kilo/auto` і непідтримувані proxy reasoning id пропускають ін’єктований thinking |
- | `moonshot-thinking` | Мапінг binary native-thinking payload Moonshot із config + рівня `/think` |
- | `minimax-fast-mode` | Переписування моделі MiniMax fast-mode на спільному шляху потоку |
- | `openai-responses-defaults` | Спільні native обгортки OpenAI/Codex Responses: заголовки attribution, `/fast`/`serviceTier`, текстова verbosity, native Codex web search, формування payload для reasoning-compat і керування контекстом Responses |
- | `openrouter-thinking` | Обгортку reasoning OpenRouter для proxy-маршрутів, із централізованою обробкою пропусків для unsupported-model/`auto` |
- | `tool-stream-default-on` | Обгортку `tool_stream`, увімкнену за замовчуванням, для постачальників на кшталт Z.AI, які хочуть потокову передачу інструментів, якщо її явно не вимкнено |
+ | `google-thinking` | Нормалізація thinking payload Gemini на спільному шляху stream |
+ | `kilocode-thinking` | Обгортка reasoning Kilo на спільному шляху proxy stream, де `kilo/auto` та непідтримувані ідентифікатори reasoning proxy пропускають ін’єкцію thinking |
+ | `moonshot-thinking` | Відображення двійкового payload native-thinking Moonshot із config + рівня `/think` |
+ | `minimax-fast-mode` | Переписування моделі fast-mode MiniMax на спільному шляху stream |
+ | `openai-responses-defaults` | Спільні нативні обгортки OpenAI/Codex Responses: заголовки attribution, `/fast`/`serviceTier`, деталізація text, нативний вебпошук Codex, формування payload для reasoning-compat і керування контекстом Responses |
+ | `openrouter-thinking` | Обгортка reasoning OpenRouter для маршрутів proxy з централізованою обробкою пропусків для непідтримуваних моделей/`auto` |
+ | `tool-stream-default-on` | Обгортка `tool_stream`, увімкнена за замовчуванням, для постачальників на кшталт Z.AI, яким потрібен stream інструментів, якщо його явно не вимкнено |
- Реальні приклади вбудованих рішень:
+ Реальні приклади з вбудованих Plugin:
- `google` і `google-gemini-cli`: `google-thinking`
- `kilocode`: `kilocode-thinking`
@@ -363,79 +365,80 @@ x-i18n:
- `zai`: `tool-stream-default-on`
`openclaw/plugin-sdk/provider-model-shared` також експортує enum
- сімейств replay, а також спільні helper-и, з яких ці сімейства побудовані. До поширених публічних
+ сімейств replay, а також спільні допоміжні методи, з яких ці сімейства побудовані. До поширених публічних
експортів належать:
- `ProviderReplayFamily`
- `buildProviderReplayFamilyHooks(...)`
- - спільні builders replay, такі як `buildOpenAICompatibleReplayPolicy(...)`,
+ - спільні конструктори replay, як-от `buildOpenAICompatibleReplayPolicy(...)`,
`buildAnthropicReplayPolicyForModel(...)`,
`buildGoogleGeminiReplayPolicy(...)` і
`buildHybridAnthropicOrOpenAIReplayPolicy(...)`
- - helper-и replay для Gemini, такі як `sanitizeGoogleGeminiReplayHistory(...)`
+ - допоміжні методи replay Gemini, як-от `sanitizeGoogleGeminiReplayHistory(...)`
і `resolveTaggedReasoningOutputMode()`
- - helper-и endpoint/model, такі як `resolveProviderEndpoint(...)`,
+ - допоміжні методи endpoint/model, як-от `resolveProviderEndpoint(...)`,
`normalizeProviderId(...)`, `normalizeGooglePreviewModelId(...)` і
`normalizeNativeXaiModelId(...)`
- `openclaw/plugin-sdk/provider-stream` надає як builder сімейств,
- так і публічні helper-и-обгортки, які ці сімейства повторно використовують. До поширених публічних експортів
+ `openclaw/plugin-sdk/provider-stream` надає як конструктор сімейств, так і
+ публічні допоміжні методи обгорток, які ці сімейства повторно використовують. До поширених публічних експортів
належать:
- `ProviderStreamFamily`
- `buildProviderStreamFamilyHooks(...)`
- `composeProviderStreamWrappers(...)`
- - спільні обгортки OpenAI/Codex, такі як
+ - спільні обгортки OpenAI/Codex, як-от
`createOpenAIAttributionHeadersWrapper(...)`,
`createOpenAIFastModeWrapper(...)`,
`createOpenAIServiceTierWrapper(...)`,
`createOpenAIResponsesContextManagementWrapper(...)` і
`createCodexNativeWebSearchWrapper(...)`
- - спільні обгортки proxy/provider, такі як `createOpenRouterWrapper(...)`,
+ - спільні обгортки proxy/provider, як-от `createOpenRouterWrapper(...)`,
`createToolStreamWrapper(...)` і `createMinimaxFastModeWrapper(...)`
- Деякі stream helper-и навмисно залишаються локальними для постачальника. Поточний вбудований
+ Деякі допоміжні методи stream навмисно залишаються локальними для постачальника. Поточний вбудований
приклад: `@openclaw/anthropic-provider` експортує
`wrapAnthropicProviderStream`, `resolveAnthropicBetas`,
`resolveAnthropicFastMode`, `resolveAnthropicServiceTier` і
- низькорівневі builders обгорток Anthropic зі свого публічного seam
- `api.ts` / `contract-api.ts`. Ці helper-и залишаються специфічними для Anthropic, оскільки
- вони також кодують обробку beta для Claude OAuth і gating `context1m`.
+ низькорівневі конструктори обгорток Anthropic через свій публічний seam `api.ts` /
+ `contract-api.ts`. Ці допоміжні методи залишаються специфічними для Anthropic, оскільки
+ вони також кодують обробку Claude OAuth beta і gating `context1m`.
- Інші вбудовані постачальники також тримають transport-специфічні обгортки локально, коли
- поведінку не можна чисто розділити між сімействами. Поточний приклад: вбудований plugin xAI
- зберігає native формування xAI Responses у власному
- `wrapStreamFn`, включно з переписуванням alias `/fast`, `tool_stream` за замовчуванням,
- очищенням непідтримуваних strict-tool і видаленням payload reasoning, специфічного для xAI.
+ Інші вбудовані постачальники також тримають локальними обгортки, специфічні для транспорту, коли
+ поведінку неможливо чисто поділити між сімействами. Поточний приклад: вбудований Plugin xAI
+ зберігає нативне формування xAI Responses у власному
+ `wrapStreamFn`, включно з переписуванням псевдонімів `/fast`, типовим `tool_stream`,
+ очищенням непідтримуваних strict-tool і
+ видаленням payload reasoning, специфічного для xAI.
`openclaw/plugin-sdk/provider-tools` наразі надає одне спільне
- сімейство tool-schema плюс спільні helper-и schema/compat:
+ сімейство схеми інструментів плюс спільні допоміжні методи schema/compat:
- - `ProviderToolCompatFamily` документує спільний інвентар сімейств на сьогодні.
- - `buildProviderToolCompatFamilyHooks("gemini")` під’єднує очищення Gemini schema
- + діагностику для постачальників, яким потрібні безпечні для Gemini tool schemas.
+ - `ProviderToolCompatFamily` документує поточний перелік спільних сімейств.
+ - `buildProviderToolCompatFamilyHooks("gemini")` підключає очищення схеми Gemini
+ + діагностику для постачальників, яким потрібні безпечні для Gemini схеми інструментів.
- `normalizeGeminiToolSchemas(...)` і `inspectGeminiToolSchemas(...)`
- — це базові публічні helper-и schema для Gemini.
+ — це базові публічні допоміжні методи схем Gemini.
- `resolveXaiModelCompatPatch()` повертає вбудований compat patch xAI:
- `toolSchemaProfile: "xai"`, непідтримувані ключові слова schema, native підтримку
- `web_search` і декодування аргументів виклику інструментів із HTML-entity.
+ `toolSchemaProfile: "xai"`, непідтримувані ключові слова схеми, нативна
+ підтримка `web_search` і декодування аргументів виклику інструментів із HTML-entity.
- `applyXaiModelCompat(model)` застосовує той самий compat patch xAI до
визначеної моделі до того, як вона потрапить до runner.
- Реальний вбудований приклад: plugin xAI використовує `normalizeResolvedModel` плюс
- `contributeResolvedModelCompat`, щоб ці метадані compat залишалися власністю
- постачальника, а не жорстко прописували правила xAI в core.
+ Реальний приклад із вбудованих Plugin: Plugin xAI використовує `normalizeResolvedModel` плюс
+ `contributeResolvedModelCompat`, щоб ці метадані compat належали
+ постачальнику, а не були жорстко закодовані в core.
Той самий шаблон package-root також лежить в основі інших вбудованих постачальників:
- - `@openclaw/openai-provider`: `api.ts` експортує builders постачальника,
- helper-и моделей за замовчуванням і builders realtime-постачальника
- - `@openclaw/openrouter-provider`: `api.ts` експортує builder постачальника
- плюс helper-и onboarding/config
+ - `@openclaw/openai-provider`: `api.ts` експортує конструктори постачальників,
+ допоміжні методи моделі за замовчуванням і конструктори realtime постачальників
+ - `@openclaw/openrouter-provider`: `api.ts` експортує конструктор постачальника
+ плюс допоміжні методи onboard/config
-
- Для постачальників, яким потрібен обмін токенами перед кожним викликом inference:
+
+ Для постачальників, яким потрібен обмін токенів перед кожним викликом інференсу:
```typescript
prepareRuntimeAuth: async (ctx) => {
@@ -448,8 +451,8 @@ x-i18n:
},
```
-
- Для постачальників, яким потрібні користувацькі заголовки запиту або зміни тіла запиту:
+
+ Для постачальників, яким потрібні власні заголовки запитів або зміни тіла запиту:
```typescript
// wrapStreamFn returns a StreamFn derived from ctx.streamFn
@@ -466,9 +469,9 @@ x-i18n:
},
```
-
- Для постачальників, яким потрібні native заголовки запиту/сесії або метадані в
- generic HTTP або WebSocket transport:
+
+ Для постачальників, яким потрібні нативні заголовки запиту/сесії або метадані на
+ узагальнених транспортних рівнях HTTP або WebSocket:
```typescript
resolveTransportTurnState: (ctx) => ({
@@ -503,85 +506,85 @@ x-i18n:
-
- OpenClaw викликає hooks у такому порядку. Більшість постачальників використовують лише 2–3:
+
+ OpenClaw викликає хуки в такому порядку. Більшості постачальників потрібні лише 2–3:
- | # | Hook | Коли використовувати |
+ | # | Хук | Коли використовувати |
| --- | --- | --- |
| 1 | `catalog` | Каталог моделей або значення `baseUrl` за замовчуванням |
- | 2 | `applyConfigDefaults` | Глобальні значення за замовчуванням, що належать постачальнику, під час materialization config |
- | 3 | `normalizeModelId` | Очищення alias застарілих/preview model-id перед пошуком |
- | 4 | `normalizeTransport` | Очищення `api` / `baseUrl` сімейства постачальника перед generic збиранням моделі |
+ | 2 | `applyConfigDefaults` | Глобальні значення за замовчуванням, що належать постачальнику, під час матеріалізації config |
+ | 3 | `normalizeModelId` | Очищення псевдонімів `model-id` для legacy/preview перед пошуком |
+ | 4 | `normalizeTransport` | Очищення `api` / `baseUrl` для сімейства постачальника перед загальним збиранням моделі |
| 5 | `normalizeConfig` | Нормалізація config `models.providers.` |
| 6 | `applyNativeStreamingUsageCompat` | Переписування native streaming-usage compat для постачальників config |
- | 7 | `resolveConfigApiKey` | Визначення auth маркера env, що належить постачальнику |
- | 8 | `resolveSyntheticAuth` | Синтетичний auth для local/self-hosted або на основі config |
- | 9 | `shouldDeferSyntheticProfileAuth` | Опускання синтетичних placeholder-ів збереженого профілю нижче auth env/config |
- | 10 | `resolveDynamicModel` | Прийом довільних upstream id моделей |
+ | 7 | `resolveConfigApiKey` | Визначення автентифікації через env-marker, що належить постачальнику |
+ | 8 | `resolveSyntheticAuth` | Синтетична автентифікація для local/self-hosted або на основі config |
+ | 9 | `shouldDeferSyntheticProfileAuth` | Опускає синтетичні заповнювачі збереженого профілю нижче за автентифікацію env/config |
+ | 10 | `resolveDynamicModel` | Приймати довільні ідентифікатори апстрім-моделей |
| 11 | `prepareDynamicModel` | Асинхронне отримання метаданих перед визначенням |
- | 12 | `normalizeResolvedModel` | Переписування transport перед runner |
-
+ | 12 | `normalizeResolvedModel` | Переписування транспорту перед runner |
+
Нотатки щодо runtime fallback:
- - `normalizeConfig` спочатку перевіряє відповідного постачальника, потім інші
- plugins постачальників із підтримкою hook, доки один із них справді не змінить config.
- Якщо жоден provider hook не перепише підтримуваний запис config сімейства Google,
- усе одно застосовується вбудований нормалізатор Google config.
- - `resolveConfigApiKey` використовує provider hook, якщо він наданий. Вбудований
- шлях `amazon-bedrock` також має вбудований resolver маркера AWS env на цьому етапі,
- хоча runtime auth Bedrock усе ще використовує стандартний
+ - `normalizeConfig` спочатку перевіряє відповідний постачальник, а потім інші
+ Plugin постачальників, що підтримують хуки, доки один із них справді не змінить config.
+ Якщо жоден хук постачальника не перепише підтримуваний запис config сімейства Google,
+ усе одно буде застосовано вбудований нормалізатор config Google.
+ - `resolveConfigApiKey` використовує хук постачальника, якщо він доступний. Вбудований
+ шлях `amazon-bedrock` також має вбудований resolver AWS env-marker саме тут,
+ хоча автентифікація runtime Bedrock і далі використовує стандартний
ланцюжок AWS SDK.
- | 13 | `contributeResolvedModelCompat` | Прапори compat для моделей вендора за іншим сумісним transport |
- | 14 | `capabilities` | Застарілий статичний набір можливостей; лише для сумісності |
- | 15 | `normalizeToolSchemas` | Очищення tool-schema, що належить постачальнику, перед реєстрацією |
- | 16 | `inspectToolSchemas` | Діагностика tool-schema, що належить постачальнику |
- | 17 | `resolveReasoningOutputMode` | Контракт tagged vs native reasoning-output |
+ | 13 | `contributeResolvedModelCompat` | Прапорці compat для моделей вендора за іншим сумісним транспортом |
+ | 14 | `capabilities` | Статичний набір можливостей для legacy; лише сумісність |
+ | 15 | `normalizeToolSchemas` | Очищення схеми інструментів, що належить постачальнику, перед реєстрацією |
+ | 16 | `inspectToolSchemas` | Діагностика схеми інструментів, що належить постачальнику |
+ | 17 | `resolveReasoningOutputMode` | Контракт тегованого чи нативного виводу reasoning |
| 18 | `prepareExtraParams` | Параметри запиту за замовчуванням |
- | 19 | `createStreamFn` | Повністю користувацький transport `StreamFn` |
- | 20 | `wrapStreamFn` | Користувацькі обгортки заголовків/тіла на звичайному шляху потоку |
- | 21 | `resolveTransportTurnState` | Native заголовки/метадані для кожного turn |
- | 22 | `resolveWebSocketSessionPolicy` | Native заголовки сесії WS / cool-down |
- | 23 | `formatApiKey` | Користувацька форма runtime token |
- | 24 | `refreshOAuth` | Користувацьке оновлення OAuth |
- | 25 | `buildAuthDoctorHint` | Поради з відновлення auth |
- | 26 | `matchesContextOverflowError` | Визначення overflow, що належить постачальнику |
+ | 19 | `createStreamFn` | Повністю власний транспорт StreamFn |
+ | 20 | `wrapStreamFn` | Власні обгортки заголовків/тіла на звичайному шляху stream |
+ | 21 | `resolveTransportTurnState` | Нативні заголовки/метадані для кожного turn |
+ | 22 | `resolveWebSocketSessionPolicy` | Нативні заголовки сесії WS / cool-down |
+ | 23 | `formatApiKey` | Власна форма токена runtime |
+ | 24 | `refreshOAuth` | Власне оновлення OAuth |
+ | 25 | `buildAuthDoctorHint` | Підказка для відновлення автентифікації |
+ | 26 | `matchesContextOverflowError` | Виявлення переповнення контексту, що належить постачальнику |
| 27 | `classifyFailoverReason` | Класифікація rate-limit/overload, що належить постачальнику |
- | 28 | `isCacheTtlEligible` | Gating TTL кешу prompt |
- | 29 | `buildMissingAuthMessage` | Користувацька підказка про відсутній auth |
- | 30 | `suppressBuiltInModel` | Приховування застарілих upstream-рядків |
- | 31 | `augmentModelCatalog` | Синтетичні рядки forward-compat |
+ | 28 | `isCacheTtlEligible` | Керування TTL кешу промптів |
+ | 29 | `buildMissingAuthMessage` | Власна підказка про відсутню автентифікацію |
+ | 30 | `suppressBuiltInModel` | Приховати застарілі апстрім-рядки |
+ | 31 | `augmentModelCatalog` | Синтетичні рядки для прямої сумісності вперед |
| 32 | `resolveThinkingProfile` | Набір опцій `/think`, специфічний для моделі |
- | 33 | `isBinaryThinking` | Сумісність binary thinking увімкнено/вимкнено |
- | 34 | `supportsXHighThinking` | Сумісність підтримки reasoning `xhigh` |
- | 35 | `resolveDefaultThinkingLevel` | Сумісність політики `/think` за замовчуванням |
- | 36 | `isModernModelRef` | Відповідність live/smoke моделі |
- | 37 | `prepareRuntimeAuth` | Обмін токенами перед inference |
- | 38 | `resolveUsageAuth` | Користувацький розбір облікових даних usage |
- | 39 | `fetchUsageSnapshot` | Користувацький endpoint usage |
+ | 33 | `isBinaryThinking` | Сумісність із двійковим вмиканням/вимиканням thinking |
+ | 34 | `supportsXHighThinking` | Сумісність із підтримкою reasoning `xhigh` |
+ | 35 | `resolveDefaultThinkingLevel` | Сумісність із політикою `/think` за замовчуванням |
+ | 36 | `isModernModelRef` | Відповідність live/smoke моделей |
+ | 37 | `prepareRuntimeAuth` | Обмін токенів перед інференсом |
+ | 38 | `resolveUsageAuth` | Власний розбір облікових даних використання |
+ | 39 | `fetchUsageSnapshot` | Власна кінцева точка використання |
| 40 | `createEmbeddingProvider` | Адаптер embedding, що належить постачальнику, для пам’яті/пошуку |
- | 41 | `buildReplayPolicy` | Користувацька політика replay/Compaction транскрипту |
- | 42 | `sanitizeReplayHistory` | Переписування replay, специфічні для постачальника, після загального очищення |
+ | 41 | `buildReplayPolicy` | Власна політика replay/Compaction транскрипту |
+ | 42 | `sanitizeReplayHistory` | Переписування replay, специфічне для постачальника, після загального очищення |
| 43 | `validateReplayTurns` | Сувора валідація turn replay перед вбудованим runner |
- | 44 | `onModelSelected` | Callback після вибору моделі (наприклад, telemetry) |
+ | 44 | `onModelSelected` | Callback після вибору моделі (наприклад, телеметрія) |
- Примітка щодо налаштування prompt:
+ Примітка щодо налаштування промптів:
- - `resolveSystemPromptContribution` дає постачальнику змогу ін’єктувати
- cache-aware настанови для системного prompt для сімейства моделей. Віддавайте йому перевагу над
+ - `resolveSystemPromptContribution` дозволяє постачальнику додавати до
+ системного промпту підказки для сімейства моделей з урахуванням кешу. Надавайте йому перевагу над
`before_prompt_build`, коли поведінка належить одному сімейству постачальника/моделі
і має зберігати стабільний/динамічний поділ кешу.
- Докладні описи та приклади з реального світу дивіться в
- [Інтернали: Runtime hooks постачальника](/uk/plugins/architecture#provider-runtime-hooks).
+ Докладні описи та реальні приклади див. у
+ [Internals: Provider Runtime Hooks](/uk/plugins/architecture#provider-runtime-hooks).
- Plugin постачальника може реєструвати мовлення, транскрипцію в реальному часі, голос у реальному
- часі, розуміння медіа, генерацію зображень, генерацію відео, web fetch
- і web search поряд із текстовим inference:
+ Plugin постачальника може реєструвати speech, транскрипцію в realtime, голос у realtime,
+ розуміння медіа, генерацію зображень, генерацію відео, web fetch
+ і web search разом із текстовим інференсом:
```typescript
register(api) {
@@ -603,12 +606,34 @@ x-i18n:
id: "acme-ai",
label: "Acme Realtime Transcription",
isConfigured: () => true,
- createSession: (req) => ({
- connect: async () => {},
- sendAudio: () => {},
- close: () => {},
- isConnected: () => true,
- }),
+ createSession: (req) => {
+ const apiKey = String(req.providerConfig.apiKey ?? "");
+ return createRealtimeTranscriptionWebSocketSession({
+ providerId: "acme-ai",
+ callbacks: req,
+ url: "wss://api.example.com/v1/realtime-transcription",
+ headers: { Authorization: `Bearer ${apiKey}` },
+ onMessage: (event, transport) => {
+ if (event.type === "session.created") {
+ transport.sendJson({ type: "session.update" });
+ transport.markReady();
+ return;
+ }
+ if (event.type === "transcript.final") {
+ req.onTranscript?.(event.text);
+ }
+ },
+ sendAudio: (audio, transport) => {
+ transport.sendJson({
+ type: "audio.append",
+ audio: audio.toString("base64"),
+ });
+ },
+ onClose: (transport) => {
+ transport.sendJson({ type: "audio.end" });
+ },
+ });
+ },
});
api.registerRealtimeVoiceProvider({
@@ -664,7 +689,7 @@ x-i18n:
api.registerWebFetchProvider({
id: "acme-ai-fetch",
label: "Acme Fetch",
- hint: "Fetch pages through Acme's rendering backend.",
+ hint: "Отримуйте сторінки через backend рендерингу Acme.",
envVars: ["ACME_FETCH_API_KEY"],
placeholder: "acme-...",
signupUrl: "https://acme.example.com/fetch",
@@ -675,7 +700,7 @@ x-i18n:
acme.apiKey = value;
},
createTool: () => ({
- description: "Fetch a page through Acme Fetch.",
+ description: "Отримати сторінку через Acme Fetch.",
parameters: {},
execute: async (args) => ({ content: [] }),
}),
@@ -690,18 +715,18 @@ x-i18n:
```
OpenClaw класифікує це як plugin **hybrid-capability**. Це
- рекомендований шаблон для корпоративних plugins (один plugin на вендора). Див.
- [Інтернали: Володіння можливостями](/uk/plugins/architecture#capability-ownership-model).
+ рекомендований шаблон для корпоративних Plugin (один Plugin на вендора). Див.
+ [Internals: Capability Ownership](/uk/plugins/architecture#capability-ownership-model).
- Для генерації відео віддавайте перевагу показаній вище формі можливостей із урахуванням режимів:
- `generate`, `imageToVideo` і `videoToVideo`. Плоских агрегованих полів на кшталт
- `maxInputImages`, `maxInputVideos` і `maxDurationSeconds`
- недостатньо, щоб чисто оголосити підтримку режимів трансформації або вимкнених режимів.
+ Для генерації відео надавайте перевагу наведеній вище структурі можливостей із урахуванням режиму:
+ `generate`, `imageToVideo` і `videoToVideo`. Плоскі агреговані поля, як-от
+ `maxInputImages`, `maxInputVideos` і `maxDurationSeconds`,
+ недостатні, щоб коректно оголосити підтримку режимів перетворення або вимкнених режимів.
Постачальники генерації музики мають дотримуватися того самого шаблону:
- `generate` для генерації лише за prompt і `edit` для генерації
- на основі reference-image. Плоских агрегованих полів на кшталт `maxInputImages`,
- `supportsLyrics` і `supportsFormat` недостатньо, щоб оголосити підтримку `edit`;
+ `generate` для генерації лише за промптом і `edit` для генерації
+ на основі еталонного зображення. Плоскі агреговані поля, як-от `maxInputImages`,
+ `supportsLyrics` і `supportsFormat`, недостатні для оголошення підтримки редагування;
очікуваним контрактом є явні блоки `generate` / `edit`.
@@ -743,14 +768,14 @@ x-i18n:
## Публікація в ClawHub
-Plugins постачальників публікуються так само, як і будь-який інший зовнішній кодовий plugin:
+Plugin постачальників публікуються так само, як і будь-який інший зовнішній code Plugin:
```bash
clawhub package publish your-org/your-plugin --dry-run
clawhub package publish your-org/your-plugin
```
-Не використовуйте тут застарілий alias публікації лише для Skills; пакети plugin-ів мають використовувати
+Не використовуйте тут застарілий псевдонім публікації лише для Skills; пакети Plugin мають використовувати
`clawhub package publish`.
## Структура файлів
@@ -758,28 +783,28 @@ clawhub package publish your-org/your-plugin
```
/acme-ai/
├── package.json # Метадані openclaw.providers
-├── openclaw.plugin.json # Маніфест із метаданими auth постачальника
+├── openclaw.plugin.json # Маніфест із метаданими автентифікації постачальника
├── index.ts # definePluginEntry + registerProvider
└── src/
├── provider.test.ts # Тести
- └── usage.ts # Endpoint usage (необов’язково)
+ └── usage.ts # Кінцева точка використання (необов’язково)
```
-## Довідник порядку каталогу
+## Довідка щодо порядку каталогу
-`catalog.order` керує тим, коли ваш каталог зливається відносно вбудованих
+`catalog.order` визначає, коли ваш каталог об’єднується відносно вбудованих
постачальників:
| Порядок | Коли | Випадок використання |
| --------- | ------------- | ----------------------------------------------- |
-| `simple` | Перший прохід | Прості постачальники з API key |
-| `profile` | Після simple | Постачальники, обмежені профілями auth |
+| `simple` | Перший прохід | Прості постачальники з API-ключем |
+| `profile` | Після simple | Постачальники, прив’язані до профілів автентифікації |
| `paired` | Після profile | Синтез кількох пов’язаних записів |
-| `late` | Останній прохід | Перевизначення наявних постачальників (перемагає при колізії) |
+| `late` | Останній прохід | Перевизначення наявних постачальників (перемагає при конфлікті) |
## Наступні кроки
-- [Plugins каналів](/uk/plugins/sdk-channel-plugins) — якщо ваш plugin також надає канал
-- [SDK Runtime](/uk/plugins/sdk-runtime) — helper-и `api.runtime` (TTS, search, subagent)
-- [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпортів subpath
-- [Інтернали plugin-ів](/uk/plugins/architecture#provider-runtime-hooks) — деталі hooks і приклади вбудованих рішень
+- [Channel Plugins](/uk/plugins/sdk-channel-plugins) — якщо ваш Plugin також надає канал
+- [SDK Runtime](/uk/plugins/sdk-runtime) — допоміжні методи `api.runtime` (TTS, search, subagent)
+- [SDK Overview](/uk/plugins/sdk-overview) — повний довідник щодо імпортів subpath
+- [Plugin Internals](/uk/plugins/architecture#provider-runtime-hooks) — подробиці про хуки та приклади з вбудованих Plugin
diff --git a/docs/uk/providers/sglang.md b/docs/uk/providers/sglang.md
index c75185686..fde2a4d45 100644
--- a/docs/uk/providers/sglang.md
+++ b/docs/uk/providers/sglang.md
@@ -1,46 +1,52 @@
---
read_when:
- - Ви хочете запустити OpenClaw із локальним сервером SGLang
- - Ви хочете OpenAI-сумісні ендпоїнти `/v1` із власними моделями
+ - Ви хочете запустити OpenClaw з локальним сервером SGLang
+ - Ви хочете використовувати сумісні з OpenAI ендпоінти `/v1` із власними моделями
summary: Запустіть OpenClaw із SGLang (самостійно розміщений сервер, сумісний з OpenAI)
title: SGLang
x-i18n:
- generated_at: "2026-04-12T10:22:35Z"
+ generated_at: "2026-04-23T02:58:44Z"
model: gpt-5.4
provider: openai
- source_hash: e0a2e50a499c3d25dcdc3af425fb023c6e3f19ed88f533ecf0eb8a2cb7ec8b0d
+ source_hash: 96f243c6028d9de104c96c8e921e5bec1a685db06b80465617f33fe29d5c472d
source_path: providers/sglang.md
workflow: 15
---
# SGLang
-SGLang може обслуговувати моделі з відкритим кодом через **OpenAI-сумісний** HTTP API.
+SGLang може обслуговувати open-source моделі через **сумісний з OpenAI** HTTP API.
OpenClaw може підключатися до SGLang за допомогою API `openai-completions`.
-OpenClaw також може **автоматично виявляти** доступні моделі із SGLang, якщо ви
-увімкнете це за допомогою `SGLANG_API_KEY` (підійде будь-яке значення, якщо ваш сервер не вимагає автентифікації)
-і не визначите явний запис `models.providers.sglang`.
+OpenClaw також може **автоматично виявляти** доступні моделі з SGLang, коли ви
+явно вмикаєте це через `SGLANG_API_KEY` (підійде будь-яке значення, якщо ваш
+сервер не вимагає автентифікації) і не визначаєте явний запис
+`models.providers.sglang`.
+
+OpenClaw розглядає `sglang` як локального сумісного з OpenAI провайдера, який
+підтримує потоковий облік використання, тому лічильники токенів стану/контексту
+можуть оновлюватися на основі відповідей `stream_options.include_usage`.
## Початок роботи
- Запустіть SGLang із сервером, сумісним з OpenAI. Ваш базовий URL має надавати
- ендпоїнти `/v1` (наприклад, `/v1/models`, `/v1/chat/completions`). SGLang зазвичай працює на:
+ Запустіть SGLang із сервером, сумісним з OpenAI. Ваш базовий URL має
+ надавати ендпоінти `/v1` (наприклад `/v1/models`,
+ `/v1/chat/completions`). SGLang зазвичай працює на:
- `http://127.0.0.1:30000/v1`
-
- Підійде будь-яке значення, якщо на вашому сервері не налаштовано автентифікацію:
+
+ Якщо на вашому сервері не налаштовано автентифікацію, підійде будь-яке значення:
```bash
export SGLANG_API_KEY="sglang-local"
```
-
+
```bash
openclaw onboard
```
@@ -62,25 +68,25 @@ OpenClaw також може **автоматично виявляти** дос
## Виявлення моделей (неявний провайдер)
-Коли `SGLANG_API_KEY` встановлено (або існує профіль автентифікації) і ви **не**
-визначаєте `models.providers.sglang`, OpenClaw виконає запит до:
+Коли `SGLANG_API_KEY` задано (або існує профіль автентифікації) і ви **не**
+визначаєте `models.providers.sglang`, OpenClaw виконає запит:
- `GET http://127.0.0.1:30000/v1/models`
-і перетворить повернуті ідентифікатори на записи моделей.
+і перетворить повернуті ID на записи моделей.
-Якщо ви явно задаєте `models.providers.sglang`, автоматичне виявлення пропускається, і
-ви повинні визначити моделі вручну.
+Якщо ви явно задаєте `models.providers.sglang`, автовиявлення пропускається, і
+вам потрібно визначити моделі вручну.
## Явна конфігурація (ручне задання моделей)
-Використовуйте явну конфігурацію, якщо:
+Використовуйте явну конфігурацію, коли:
- SGLang працює на іншому хості/порту.
- Ви хочете зафіксувати значення `contextWindow`/`maxTokens`.
-- Ваш сервер вимагає справжній API-ключ (або ви хочете керувати заголовками).
+- Ваш сервер вимагає справжній API-ключ (або ви хочете контролювати заголовки).
```json5
{
@@ -110,20 +116,20 @@ OpenClaw також може **автоматично виявляти** дос
## Розширена конфігурація
-
- SGLang розглядається як OpenAI-сумісний бекенд `/v1` у стилі проксі, а не як
- нативний ендпоїнт OpenAI.
+
+ SGLang розглядається як сумісний з OpenAI бекенд `/v1` у стилі проксі, а не
+ як нативний ендпоінт OpenAI.
| Поведінка | SGLang |
|----------|--------|
- | Формування запиту лише для OpenAI | Не застосовується |
- | `service_tier`, Responses `store`, підказки кешу промптів | Не надсилаються |
- | Формування payload для сумісності reasoning | Не застосовується |
- | Приховані заголовки атрибуції (`originator`, `version`, `User-Agent`) | Не додаються для користувацьких базових URL SGLang |
+ | Формування запитів лише для OpenAI | Не застосовується |
+ | `service_tier`, `store` у Responses, підказки для prompt-cache | Не надсилаються |
+ | Формування payload для сумісності з reasoning | Не застосовується |
+ | Приховані заголовки атрибуції (`originator`, `version`, `User-Agent`) | Не додаються в користувацькі базові URL SGLang |
-
+
**Сервер недоступний**
Переконайтеся, що сервер запущено і він відповідає:
@@ -134,13 +140,13 @@ OpenClaw також може **автоматично виявляти** дос
**Помилки автентифікації**
- Якщо запити завершуються помилками автентифікації, установіть справжній `SGLANG_API_KEY`, який відповідає
- конфігурації вашого сервера, або явно налаштуйте провайдера в
- `models.providers.sglang`.
+ Якщо запити завершуються помилками автентифікації, задайте справжній
+ `SGLANG_API_KEY`, який відповідає конфігурації вашого сервера, або явно
+ налаштуйте провайдера в `models.providers.sglang`.
- Якщо ви запускаєте SGLang без автентифікації, будь-якого непорожнього значення для
- `SGLANG_API_KEY` достатньо, щоб увімкнути виявлення моделей.
+ Якщо ви запускаєте SGLang без автентифікації, будь-якого непорожнього
+ значення `SGLANG_API_KEY` достатньо, щоб явно ввімкнути виявлення моделей.
@@ -150,7 +156,7 @@ OpenClaw також може **автоматично виявляти** дос
- Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
+ Вибір провайдерів, посилань на моделі та поведінки failover.
Повна схема конфігурації, включно із записами провайдерів.
diff --git a/docs/uk/providers/vllm.md b/docs/uk/providers/vllm.md
index 9210da839..1464d6f20 100644
--- a/docs/uk/providers/vllm.md
+++ b/docs/uk/providers/vllm.md
@@ -1,14 +1,14 @@
---
read_when:
- - Ви хочете запустити OpenClaw із локальним сервером vLLM
- - Ви хочете OpenAI-сумісні ендпойнти `/v1` із власними моделями
-summary: Запустіть OpenClaw із vLLM (сумісний із OpenAI локальний сервер)
+ - Ви хочете запустити OpenClaw через локальний сервер vLLM
+ - Ви хочете OpenAI-сумісні ендпоінти `/v1` із власними моделями
+summary: Запустіть OpenClaw з vLLM (локальним сервером, сумісним з OpenAI)
title: vLLM
x-i18n:
- generated_at: "2026-04-12T10:22:35Z"
+ generated_at: "2026-04-23T02:58:44Z"
model: gpt-5.4
provider: openai
- source_hash: a43be9ae879158fcd69d50fb3a47616fd560e3c6fe4ecb3a109bdda6a63a6a80
+ source_hash: c6c4ceeb59cc10079630e45263485747eadfc66a66267d27579f466d0c0a91a1
source_path: providers/vllm.md
workflow: 15
---
@@ -17,20 +17,24 @@ x-i18n:
vLLM може обслуговувати open-source (і деякі кастомні) моделі через **OpenAI-сумісний** HTTP API. OpenClaw підключається до vLLM за допомогою API `openai-completions`.
-OpenClaw також може **автоматично виявляти** доступні моделі з vLLM, коли ви явно вмикаєте це за допомогою `VLLM_API_KEY` (підійде будь-яке значення, якщо ваш сервер не вимагає автентифікації) і не визначаєте явний запис `models.providers.vllm`.
+OpenClaw також може **автоматично виявляти** доступні моделі з vLLM, якщо ви ввімкнете це через `VLLM_API_KEY` (підійде будь-яке значення, якщо ваш сервер не вимагає автентифікації) і не визначите явний запис `models.providers.vllm`.
-| Властивість | Значення |
+OpenClaw розглядає `vllm` як локального OpenAI-сумісного провайдера, який підтримує
+потоковий облік використання, тож лічильники токенів статусу/контексту можуть оновлюватися з
+відповідей `stream_options.include_usage`.
+
+| Властивість | Значення |
| ---------------- | ---------------------------------------- |
| ID провайдера | `vllm` |
| API | `openai-completions` (OpenAI-сумісний) |
| Автентифікація | змінна середовища `VLLM_API_KEY` |
-| Базовий URL за замовчуванням | `http://127.0.0.1:8000/v1` |
+| Базовий URL за замовчуванням | `http://127.0.0.1:8000/v1` |
## Початок роботи
-
- Ваш базовий URL має надавати ендпойнти `/v1` (наприклад, `/v1/models`, `/v1/chat/completions`). vLLM зазвичай працює на:
+
+ Ваш базовий URL має надавати ендпоінти `/v1` (наприклад, `/v1/models`, `/v1/chat/completions`). vLLM зазвичай працює на:
```
http://127.0.0.1:8000/v1
@@ -46,7 +50,7 @@ OpenClaw також може **автоматично виявляти** дос
- Замініть на один із ID моделей вашого vLLM:
+ Замініть на один із ID ваших моделей vLLM:
```json5
{
@@ -59,7 +63,7 @@ OpenClaw також може **автоматично виявляти** дос
```
-
+
```bash
openclaw models list --provider vllm
```
@@ -68,21 +72,21 @@ OpenClaw також може **автоматично виявляти** дос
## Виявлення моделей (неявний провайдер)
-Коли `VLLM_API_KEY` встановлено (або існує профіль автентифікації) і ви **не** визначаєте `models.providers.vllm`, OpenClaw виконує запит:
+Коли встановлено `VLLM_API_KEY` (або існує профіль автентифікації) і ви **не** визначили `models.providers.vllm`, OpenClaw виконує запит:
```
GET http://127.0.0.1:8000/v1/models
```
-і перетворює повернуті ID на записи моделей.
+і перетворює повернені ID на записи моделей.
-Якщо ви явно задаєте `models.providers.vllm`, автоматичне виявлення пропускається, і вам потрібно визначити моделі вручну.
+Якщо ви явно вкажете `models.providers.vllm`, автоматичне виявлення буде пропущено, і вам доведеться визначити моделі вручну.
-## Явна конфігурація (моделі вручну)
+## Явна конфігурація (ручне визначення моделей)
-Використовуйте явну конфігурацію, коли:
+Використовуйте явну конфігурацію, якщо:
- vLLM працює на іншому хості або порту
- Ви хочете зафіксувати значення `contextWindow` або `maxTokens`
@@ -117,17 +121,17 @@ GET http://127.0.0.1:8000/v1/models
- vLLM розглядається як OpenAI-сумісний бекенд `/v1` у стилі проксі, а не як нативний
- ендпойнт OpenAI. Це означає:
+ vLLM розглядається як OpenAI-сумісний `/v1` бекенд у стилі проксі, а не як нативний
+ ендпоінт OpenAI. Це означає:
| Поведінка | Застосовується? |
|----------|----------|
| Нативне формування запитів OpenAI | Ні |
| `service_tier` | Не надсилається |
- | Відповіді `store` | Не надсилаються |
- | Підказки кешу промптів | Не надсилаються |
+ | `store` у відповідях | Не надсилається |
+ | Підказки для кешу промптів | Не надсилаються |
| Формування payload для сумісності з reasoning OpenAI | Не застосовується |
- | Приховані заголовки атрибуції OpenClaw | Не додаються в кастомні базові URL |
+ | Приховані заголовки атрибуції OpenClaw | Не додаються для кастомних базових URL |
@@ -161,7 +165,7 @@ GET http://127.0.0.1:8000/v1/models
-## Усунення неполадок
+## Усунення несправностей
@@ -176,7 +180,7 @@ GET http://127.0.0.1:8000/v1/models
- Якщо запити завершуються помилками автентифікації, установіть справжній `VLLM_API_KEY`, який відповідає конфігурації вашого сервера, або явно налаштуйте провайдера в `models.providers.vllm`.
+ Якщо запити завершуються з помилками автентифікації, установіть справжній `VLLM_API_KEY`, який відповідає конфігурації вашого сервера, або явно налаштуйте провайдера в `models.providers.vllm`.
Якщо ваш сервер vLLM не вимагає автентифікації, будь-яке непорожнє значення `VLLM_API_KEY` працює як сигнал явного ввімкнення для OpenClaw.
@@ -185,27 +189,27 @@ GET http://127.0.0.1:8000/v1/models
- Для автоматичного виявлення потрібно, щоб `VLLM_API_KEY` було встановлено **і** не було явного запису конфігурації `models.providers.vllm`. Якщо ви визначили провайдера вручну, OpenClaw пропускає виявлення й використовує лише оголошені вами моделі.
+ Для автоматичного виявлення потрібно, щоб `VLLM_API_KEY` було встановлено **і** щоб не було явного запису конфігурації `models.providers.vllm`. Якщо ви визначили провайдера вручну, OpenClaw пропускає виявлення і використовує лише ваші оголошені моделі.
-Більше допомоги: [Усунення неполадок](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
+Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq).
## Пов’язане
- Вибір провайдерів, посилань на моделі та поведінки failover.
+ Вибір провайдерів, посилань на моделі та поведінки резервного перемикання.
- Нативний провайдер OpenAI і поведінка OpenAI-сумісного маршруту.
+ Нативний провайдер OpenAI та поведінка OpenAI-сумісного маршруту.
Деталі автентифікації та правила повторного використання облікових даних.
-
+
Поширені проблеми та способи їх вирішення.