chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-07 08:06:01 +00:00
parent f50bf3d03c
commit 3da0024f7c
3 changed files with 1046 additions and 1013 deletions

View File

@ -1,15 +1,15 @@
---
read_when:
- Ви хочете зрозуміти, як OpenClaw збирає контекст моделі
- Ви перемикаєтеся між застарілим механізмом і механізмом плагіна
- Ви перемикаєтеся між застарілим механізмом і механізмом на основі плагіна
- Ви створюєте плагін механізму контексту
summary: 'Механізм контексту: розширюване збирання контексту, compaction і життєвий цикл subagent'
summary: 'Механізм контексту: підключуване збирання контексту, компактування та життєвий цикл субагентів'
title: Механізм контексту
x-i18n:
generated_at: "2026-04-05T18:00:54Z"
generated_at: "2026-04-07T08:01:17Z"
model: gpt-5.4
provider: openai
source_hash: 19fd8cbb0e953f58fd84637fc4ceefc65984312cf2896d338318bc8cf860e6d9
source_hash: e8290ac73272eee275bce8e481ac7959b65386752caa68044d0c6f3e450acfb1
source_path: concepts/context-engine.md
workflow: 15
---
@ -17,8 +17,8 @@ x-i18n:
# Механізм контексту
**Механізм контексту** керує тим, як OpenClaw будує контекст моделі для кожного запуску.
Він визначає, які повідомлення включати, як підсумовувати старішу історію та
як керувати контекстом через межі subagent.
Він вирішує, які повідомлення включати, як підсумовувати давнішу історію та
як керувати контекстом через межі субагентів.
OpenClaw постачається з вбудованим механізмом `legacy`. Плагіни можуть реєструвати
альтернативні механізми, які замінюють активний життєвий цикл механізму контексту.
@ -35,8 +35,8 @@ cat ~/.openclaw/openclaw.json | jq '.plugins.slots.contextEngine'
### Встановлення плагіна механізму контексту
Плагіни механізму контексту встановлюються так само, як і будь-який інший плагін OpenClaw. Спочатку встановіть плагін,
а потім виберіть механізм у slot:
Плагіни механізму контексту встановлюються так само, як і будь-які інші плагіни OpenClaw. Спочатку встановіть
його, а потім виберіть механізм у слоті:
```bash
# Install from npm
@ -67,38 +67,38 @@ openclaw plugins install -l ./my-context-engine
Після встановлення та налаштування перезапустіть gateway.
Щоб повернутися до вбудованого механізму, задайте `contextEngine` значення `"legacy"` (або
повністю видаліть цей ключ — `"legacy"` є типовим значенням).
Щоб повернутися до вбудованого механізму, встановіть `contextEngine` у `"legacy"` (або
повністю видаліть цей ключ — `"legacy"` використовується за замовчуванням).
## Як це працює
Щоразу, коли OpenClaw запускає промпт моделі, механізм контексту бере участь
Щоразу, коли OpenClaw запускає запит моделі, механізм контексту бере участь
у чотирьох точках життєвого циклу:
1. **Ingest** — викликається, коли нове повідомлення додається до сесії. Механізм
1. **Ingest** — викликається, коли до сесії додається нове повідомлення. Механізм
може зберегти або проіндексувати повідомлення у власному сховищі даних.
2. **Assemble** — викликається перед кожним запуском моделі. Механізм повертає впорядкований
набір повідомлень (і необов’язковий `systemPromptAddition`), який уміщується
в бюджет токенів.
набір повідомлень (і необов’язковий `systemPromptAddition`), які вміщаються в
бюджет токенів.
3. **Compact** — викликається, коли вікно контексту заповнене або коли користувач запускає
`/compact`. Механізм підсумовує старішу історію, щоб звільнити місце.
4. **After turn** — викликається після завершення запуску. Механізм може зберігати стан,
запускати фоновий compaction або оновлювати індекси.
`/compact`. Механізм підсумовує давнішу історію, щоб звільнити місце.
4. **After turn** — викликається після завершення запуску. Механізм може зберегти стан,
запустити фонове компактування або оновити індекси.
### Життєвий цикл subagent (необов’язково)
### Життєвий цикл субагента (необов’язково)
Наразі OpenClaw викликає один хук життєвого циклу subagent:
Наразі OpenClaw викликає один хук життєвого циклу субагента:
- **onSubagentEnded** — очищення після завершення або прибирання сесії subagent.
- **onSubagentEnded** — очищення після завершення сесії субагента або її прибирання.
Хук `prepareSubagentSpawn` є частиною інтерфейсу для майбутнього використання, але
runtime його ще не викликає.
середовище виконання поки що його не викликає.
### Доповнення до системного промпта
### Додавання до системного промпту
Метод `assemble` може повертати рядок `systemPromptAddition`. OpenClaw
додає його на початок системного промпта для запуску. Це дає механізмам змогу вставляти
динамічні вказівки для пригадування, інструкції з retrieval або підказки з урахуванням контексту
додає його на початок системного промпту для запуску. Це дозволяє механізмам додавати
динамічні вказівки для пригадування, інструкції для retrieval або підказки з урахуванням контексту
без потреби у статичних файлах робочого простору.
## Механізм legacy
@ -106,22 +106,24 @@ runtime його ще не викликає.
Вбудований механізм `legacy` зберігає початкову поведінку OpenClaw:
- **Ingest**: no-op (менеджер сесій безпосередньо обробляє збереження повідомлень).
- **Assemble**: наскрізний прохід (наявний конвеєр sanitize → validate → limit
у runtime обробляє збирання контексту).
- **Compact**: делегує вбудованому compaction із підсумовуванням, який створює
єдиний підсумок старіших повідомлень і зберігає недавні повідомлення без змін.
- **Assemble**: pass-through (наявний конвеєр sanitize → validate → limit
у середовищі виконання обробляє збирання контексту).
- **Compact**: делегує вбудованому компактуванню з підсумовуванням, яке створює
єдине резюме старіших повідомлень і зберігає недоторканими недавні повідомлення.
- **After turn**: no-op.
Механізм legacy не реєструє інструменти й не надає `systemPromptAddition`.
Коли `plugins.slots.contextEngine` не задано (або має значення `"legacy"`), цей
Коли `plugins.slots.contextEngine` не встановлено (або встановлено в `"legacy"`), цей
механізм використовується автоматично.
## Механізми плагінів
## Механізми на основі плагінів
Плагін може зареєструвати механізм контексту через API плагінів:
Плагін може зареєструвати механізм контексту за допомогою API плагінів:
```ts
import { buildMemorySystemPromptAddition } from "openclaw/plugin-sdk/core";
export default function register(api) {
api.registerContextEngine("my-engine", () => ({
info: {
@ -135,12 +137,15 @@ export default function register(api) {
return { ingested: true };
},
async assemble({ sessionId, messages, tokenBudget }) {
async assemble({ sessionId, messages, tokenBudget, availableTools, citationsMode }) {
// Return messages that fit the budget
return {
messages: buildContext(messages, tokenBudget),
estimatedTokens: countTokens(messages),
systemPromptAddition: "Use lcm_grep to search history...",
systemPromptAddition: buildMemorySystemPromptAddition({
availableTools: availableTools ?? new Set(),
citationsMode,
}),
};
},
@ -175,59 +180,59 @@ export default function register(api) {
| Елемент | Тип | Призначення |
| ------------------ | -------- | -------------------------------------------------------- |
| `info` | Властивість | Ідентифікатор, назва, версія механізму та ознака володіння compaction |
| `info` | Властивість | Ідентифікатор механізму, назва, версія та чи керує він компактуванням |
| `ingest(params)` | Метод | Зберегти одне повідомлення |
| `assemble(params)` | Метод | Побудувати контекст для запуску моделі (повертає `AssembleResult`) |
| `compact(params)` | Метод | Підсумувати/зменшити контекст |
| `compact(params)` | Метод | Підсумувати/скоротити контекст |
`assemble` повертає `AssembleResult` з такими полями:
- `messages`впорядковані повідомлення, які надсилаються моделі.
- `estimatedTokens` (обов’язково, `number`) — оцінка механізму для загальної
кількості токенів у зібраному контексті. OpenClaw використовує це для рішень
про поріг compaction і для діагностичної звітності.
- `systemPromptAddition` (необов’язково, `string`) — додається на початок системного промпта.
- `messages`упорядковані повідомлення для надсилання моделі.
- `estimatedTokens` (обов’язкове, `number`) — оцінка механізмом загальної кількості
токенів у зібраному контексті. OpenClaw використовує це для рішень щодо порогу компактування
та діагностичної звітності.
- `systemPromptAddition` (необов’язкове, `string`) — додається на початок системного промпту.
Необов’язкові елементи:
| Елемент | Тип | Призначення |
| ----------------------------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| Елемент | Тип | Призначення |
| ----------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------- |
| `bootstrap(params)` | Метод | Ініціалізувати стан механізму для сесії. Викликається один раз, коли механізм уперше бачить сесію (наприклад, імпорт історії). |
| `ingestBatch(params)` | Метод | Обробити завершений хід як пакет. Викликається після завершення запуску, одразу з усіма повідомленнями цього ходу. |
| `afterTurn(params)` | Метод | Робота життєвого циклу після запуску (збереження стану, запуск фонового compaction). |
| `prepareSubagentSpawn(params)`| Метод | Налаштувати спільний стан для дочірньої сесії. |
| `onSubagentEnded(params)` | Метод | Очистити стан після завершення subagent. |
| `dispose()` | Метод | Звільнити ресурси. Викликається під час завершення роботи gateway або перезавантаження плагіна — не для кожної сесії. |
| `ingestBatch(params)` | Метод | Прийняти завершений хід пакетом. Викликається після завершення запуску з усіма повідомленнями цього ходу одразу. |
| `afterTurn(params)` | Метод | Робота життєвого циклу після запуску (збереження стану, запуск фонового компактування). |
| `prepareSubagentSpawn(params)`| Метод | Налаштувати спільний стан для дочірньої сесії. |
| `onSubagentEnded(params)` | Метод | Очистити ресурси після завершення субагента. |
| `dispose()` | Метод | Звільнити ресурси. Викликається під час вимкнення gateway або перезавантаження плагіна — не для кожної сесії. |
### ownsCompaction
`ownsCompaction` визначає, чи залишатиметься ввімкненим вбудований auto-compaction Pi у межах спроби
для цього запуску:
`ownsCompaction` визначає, чи залишається вбудоване автоматичне компактування Pi під час спроби
увімкненим для запуску:
- `true` — механізм сам керує поведінкою compaction. OpenClaw вимикає вбудований
auto-compaction Pi для цього запуску, а реалізація `compact()` у механізмі
відповідає за `/compact`, compaction для відновлення після переповнення та будь-який проактивний
compaction, який механізм хоче виконувати в `afterTurn()`.
- `false` або не задано — вбудований auto-compaction Pi усе ще може виконуватися під час
виконання промпта, але метод `compact()` активного механізму все одно викликається для
- `true` — механізм керує поведінкою компактування. OpenClaw вимикає вбудоване в Pi
автоматичне компактування для цього запуску, а реалізація `compact()` механізму
відповідає за `/compact`, компактування для відновлення після переповнення та будь-яке проактивне
компактування, яке він хоче виконувати в `afterTurn()`.
- `false` або не встановлено — вбудоване автоматичне компактування Pi все ще може виконуватися під час
виконання промпту, але метод `compact()` активного механізму все одно викликається для
`/compact` і відновлення після переповнення.
`ownsCompaction: false` **не** означає, що OpenClaw автоматично повертається до
шляху compaction механізму legacy.
`ownsCompaction: false` **не** означає, що OpenClaw автоматично повертається
до шляху компактування механізму legacy.
Це означає, що існують два коректні шаблони для плагінів:
Це означає, що існують два коректні шаблони плагінів:
- **Режим володіння** — реалізуйте власний алгоритм compaction і задайте
- **Режим керування** — реалізуйте власний алгоритм компактування й встановіть
`ownsCompaction: true`.
- **Режим делегування**задайте `ownsCompaction: false` і нехай `compact()` викликає
- **Режим делегування**встановіть `ownsCompaction: false` і зробіть так, щоб `compact()` викликав
`delegateCompactionToRuntime(...)` з `openclaw/plugin-sdk/core`, щоб використовувати
вбудовану поведінку compaction OpenClaw.
вбудовану поведінку компактування OpenClaw.
No-op `compact()` небезпечний для активного механізму без власного керування, оскільки
він вимикає звичайний шлях `/compact` і compaction для відновлення після переповнення для
цього slot механізму.
No-op `compact()` є небезпечним для активного некеруючого механізму, оскільки він
вимикає звичайний шлях компактування `/compact` і відновлення після переповнення для цього
слота механізму.
## Довідник конфігурації
## Довідка з конфігурації
```json5
{
@ -241,41 +246,47 @@ No-op `compact()` небезпечний для активного механі
}
```
Slot є взаємовиключним під час виконання — лише один зареєстрований механізм контексту
визначається для певного запуску або операції compaction. Інші увімкнені
плагіни `kind: "context-engine"` усе ще можуть завантажуватися і виконувати свій код
реєстрації; `plugins.slots.contextEngine` лише вибирає, який зареєстрований id механізму
OpenClaw має визначити, коли йому потрібен механізм контексту.
Слот є ексклюзивним під час виконання — лише один зареєстрований механізм контексту
визначається для певного запуску або операції компактування. Інші увімкнені
плагіни `kind: "context-engine"` все одно можуть завантажуватися й виконувати свій код
реєстрації; `plugins.slots.contextEngine` лише вибирає, який зареєстрований ідентифікатор механізму
OpenClaw визначає, коли йому потрібен механізм контексту.
## Зв’язок із compaction і пам’яттю
## Зв’язок із компактуванням і пам’яттю
- **Compaction** — це одна з відповідальностей механізму контексту. Механізм legacy
делегує до вбудованого підсумовування OpenClaw. Механізми плагінів можуть реалізовувати
будь-яку стратегію compaction (підсумки DAG, vector retrieval тощо).
делегує вбудованому підсумовуванню OpenClaw. Механізми на основі плагінів можуть реалізовувати
будь-яку стратегію компактування (DAG-резюме, vector retrieval тощо).
- **Плагіни пам’яті** (`plugins.slots.memory`) відокремлені від механізмів контексту.
Плагіни пам’яті надають пошук/retrieval; механізми контексту керують тим, що
Плагіни пам’яті забезпечують пошук/retrieval; механізми контексту контролюють, що
бачить модель. Вони можуть працювати разом — механізм контексту може використовувати дані
плагіна пам’яті під час assemble.
- **Обрізання сесії** (trim старих результатів інструментів у пам’яті) усе ще виконується
плагіна пам’яті під час збирання. Механізмам на основі плагінів, яким потрібен активний шлях
промпту пам’яті, слід віддавати перевагу `buildMemorySystemPromptAddition(...)` з
`openclaw/plugin-sdk/core`, який перетворює активні секції промпту пам’яті
на готовий до додавання на початок `systemPromptAddition`. Якщо механізму потрібен контроль
нижчого рівня, він усе одно може отримувати сирі рядки з
`openclaw/plugin-sdk/memory-host-core` через
`buildActiveMemoryPromptSection(...)`.
- **Обрізання сесії** (скорочення старих результатів інструментів у пам’яті) усе ще виконується
незалежно від того, який механізм контексту активний.
## Поради
- Використовуйте `openclaw doctor`, щоб перевірити, що ваш механізм завантажується правильно.
- Якщо ви перемикаєте механізми, наявні сесії продовжують роботу зі своєю поточною історією.
Новий механізм перебирає керування для майбутніх запусків.
- Використовуйте `openclaw doctor`, щоб перевірити, чи ваш механізм завантажується правильно.
- Якщо ви перемикаєте механізми, наявні сесії продовжують працювати з поточною історією.
Новий механізм перебирає роботу на себе для майбутніх запусків.
- Помилки механізму журналюються й відображаються в діагностиці. Якщо механізм плагіна
не вдається зареєструвати або вибраний id механізму не вдається визначити, OpenClaw
не виконує автоматичне резервне повернення; запуски завершуються помилкою, доки ви не виправите плагін або
не вдається зареєструвати або не вдається визначити вибраний ідентифікатор механізму, OpenClaw
не виконує автоматичний перехід; запуски завершуються з помилкою, доки ви не виправите плагін або
не перемкнете `plugins.slots.contextEngine` назад на `"legacy"`.
- Для розробки використовуйте `openclaw plugins install -l ./my-engine`, щоб прив’язати
- Для розробки використовуйте `openclaw plugins install -l ./my-engine`, щоб підключити
локальний каталог плагіна без копіювання.
Див. також: [Compaction](/concepts/compaction), [Контекст](/concepts/context),
[Плагіни](/tools/plugin), [Маніфест плагіна](/plugins/manifest).
Див. також: [Компактування](/uk/concepts/compaction), [Контекст](/uk/concepts/context),
[Плагіни](/uk/tools/plugin), [Маніфест плагіна](/uk/plugins/manifest).
## Пов’язане
- [Контекст](/concepts/context) — як будується контекст для ходів агента
- [Архітектура плагінів](/plugins/architecture) — реєстрація плагінів механізму контексту
- [Compaction](/concepts/compaction) — підсумовування довгих розмов
- [Контекст](/uk/concepts/context) — як будується контекст для ходів агента
- [Архітектура плагінів](/uk/plugins/architecture) — реєстрація плагінів механізму контексту
- [Компактування](/uk/concepts/compaction) — підсумовування довгих розмов

File diff suppressed because it is too large Load Diff

View File

@ -4,27 +4,27 @@ read_when:
- Вам потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
- Ви шукаєте конкретний експорт SDK
sidebarTitle: SDK Overview
summary: Карта імпортів, довідник API реєстрації та архітектура SDK
summary: Карта імпорту, довідник API реєстрації та архітектура SDK
title: Огляд Plugin SDK
x-i18n:
generated_at: "2026-04-07T07:39:30Z"
generated_at: "2026-04-07T08:02:41Z"
model: gpt-5.4
provider: openai
source_hash: 9f05178454058038cd69a58bc8392e2574a48a61fbaef9b7db9eba2ffa9f1374
source_hash: 6ba11d1708a117f3872a09fd0bebb0481d36b89b473aec861192e8c2745ef727
source_path: plugins/sdk-overview.md
workflow: 15
---
# Огляд Plugin SDK
Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка є
довідником для **що імпортувати** і **що можна реєструвати**.
Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка
довідник про **що імпортувати** і **що можна зареєструвати**.
<Tip>
**Шукаєте практичний посібник?**
**Шукаєте покроковий посібник?**
- Перший плагін? Почніть із [Getting Started](/uk/plugins/building-plugins)
- Плагін каналу? Див. [Channel Plugins](/uk/plugins/sdk-channel-plugins)
- Плагін провайдера? Див. [Provider Plugins](/uk/plugins/sdk-provider-plugins)
- Плагін каналу? Дивіться [Channel Plugins](/uk/plugins/sdk-channel-plugins)
- Плагін провайдера? Дивіться [Provider Plugins](/uk/plugins/sdk-provider-plugins)
</Tip>
## Угода щодо імпорту
@ -37,38 +37,38 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
Кожен підшлях — це невеликий самодостатній модуль. Це зберігає швидкий запуск і
запобігає проблемам із циклічними залежностями. Для специфічних до каналу
допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core`
залишайте для ширшої узагальненої поверхні та спільних допоміжних засобів, таких як
запобігає проблемам із циклічними залежностями. Для специфічних для каналу
допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте
для ширшої узагальненої поверхні та спільних допоміжних засобів, таких як
`buildChannelConfigSchema`.
Не додавайте і не використовуйте зручні шви з іменами провайдерів, такі як
Не додавайте і не покладайтеся на зручні шви, названі на честь провайдерів, такі як
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або
допоміжні шви з брендингом каналу. Вбудовані плагіни мають компонувати
загальні підшляхи SDK всередині власних barrel-файлів `api.ts` або `runtime-api.ts`, а ядро
має або використовувати ці локальні для плагіна barrel-файли, або додавати вузький загальний SDK
контракт, коли потреба справді є міжканальною.
допоміжні шви з брендингом каналів. Вбудовані плагіни мають компонувати
загальні підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а ядро
має або використовувати ці локальні для плагіна barrel-файли, або додати вузький загальний SDK
контракт, якщо потреба справді є міжканальною.
Згенерована карта експортів усе ще містить невеликий набір допоміжних
Згенерована карта експорту все ще містить невеликий набір допоміжних
швів вбудованих плагінів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Ці
підшляхи існують лише для супроводу вбудованих плагінів і сумісності; вони
навмисно не включені до загальної таблиці нижче і не є рекомендованим
підшляхи існують лише для підтримки та сумісності вбудованих плагінів; вони
навмисно пропущені в загальній таблиці нижче і не є рекомендованим
шляхом імпорту для нових сторонніх плагінів.
## Довідник підшляхів
Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із
понад 200 підшляхів міститься у `scripts/lib/plugin-sdk-entrypoints.json`.
понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому згенерованому списку.
Ставтеся до них як до поверхонь деталей реалізації/сумісності, якщо лише сторінка документації
явно не просуває один із них як публічний.
Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому
згенерованому списку. Вважайте їх деталями реалізації/поверхнями сумісності, якщо
сторінка документації явно не оголошує якийсь із них публічним.
### Вхідна точка плагіна
### Entry плагіна
| Підшлях | Ключові експорти |
| Підшлях | Ключові експорти |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
@ -82,46 +82,46 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, побудовники статусу налаштування |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити списку allowlist, збирачі статусу налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Допоміжні засоби багатокористувацької конфігурації/керування шлюзами дій, допоміжні засоби резервного облікового запису за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного вибору за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби списку облікових записів/дій облікових записів |
| `plugin-sdk/account-core` | Допоміжні засоби багатооблікового запису config/action-gate, допоміжні засоби резервного вибору типового облікового запису |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації id облікового запису |
| `plugin-sdk/account-resolution` | Пошук облікового запису + допоміжні засоби резервного вибору типового значення |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби списку облікових записів/дій з обліковими записами |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Типи схем конфігурації каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним використанням вбудованого контракту |
| `plugin-sdk/channel-config-schema` | Типи схеми конфігурації каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним варіантом для вбудованого контракту |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби побудови вхідного маршруту + envelope |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних повідомлень + побудови envelope |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних даних |
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби ідентичності/делегування надсилання вихідних даних |
| `plugin-sdk/thread-bindings-runtime` | Життєвий цикл прив’язок потоків і допоміжні засоби адаптерів |
| `plugin-sdk/agent-media-payload` | Застарілий побудовник медіапейлоаду агента |
| `plugin-sdk/conversation-runtime` | Прив’язка розмови/потоку, pairинг і допоміжні засоби налаштованих прив’язок |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби делегування вихідної ідентичності/надсилання |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу та адаптера прив’язок потоків |
| `plugin-sdk/agent-media-payload` | Застарілий збирач медіапейлоаду агента |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмови/потоку, парування та налаштованих прив’язок |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку статусу каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви config-schema каналу |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку стану каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви schema конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагінів каналів |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
| `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо доступу до груп |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямих DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/редукції інтерактивних payload відповіді |
| `plugin-sdk/channel-inbound` | Допоміжні засоби debounce вхідних даних, зіставлення згадок, політики згадок і допоміжні засоби envelope |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень щодо групового доступу |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту для прямих DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/скорочення інтерактивного reply payload |
| `plugin-sdk/channel-inbound` | Допоміжні засоби debounce для вхідних повідомлень, зіставлення згадок, політики згадок і допоміжні засоби envelope |
| `plugin-sdk/channel-send-result` | Типи результату відповіді |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/channel-contract` | Типи контрактів каналу |
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби контракту секретів, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
| `plugin-sdk/channel-contract` | Типи контракту каналу |
| `plugin-sdk/channel-feedback` | Налаштування зворотного зв’язку/реакцій |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби секретного контракту, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
</Accordion>
<Accordion title="Підшляхи провайдерів">
@ -129,131 +129,131 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдера, сумісного з OpenAI |
| `plugin-sdk/cli-backend` | Значення за замовчуванням для CLI backend + константи watchdog |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI |
| `plugin-sdk/cli-backend` | Типові значення CLI backend + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний побудовник OAuth auth-result |
| `plugin-sdk/provider-auth-result` | Стандартний збирач результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var для auth провайдера |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для автентифікації провайдера |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політики replay, допоміжні засоби endpoint провайдерів та допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні збирачі політик replay, допоміжні засоби endpoint провайдерів і допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Загальні допоміжні засоби для HTTP/endpoint можливостей провайдерів |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch провайдерів |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-сетери/гетери облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime для web-search провайдерів |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + diagnostics, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint провайдера |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу для web-fetch провайдера |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/credential для web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime для web-search провайдера |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення + діагностика схеми Gemini та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper та спільні допоміжні обгортки Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
| `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-onboard` | Допоміжні засоби внесення патчів до конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
</Accordion>
<Accordion title="Підшляхи auth і безпеки">
<Accordion title="Підшляхи автентифікації та безпеки">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth дій у тому самому чаті |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення апрувера та авторизації дій у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval |
| `plugin-sdk/approval-delivery-runtime` | Адаптери native approval capability/delivery |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей native approval + прив’язки облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для exec/plugin approval |
| `plugin-sdk/command-auth-native` | Допоміжні засоби native command auth + native session-target |
| `plugin-sdk/approval-delivery-runtime` | Адаптери доставки/можливостей native approval |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + прив’язки облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби reply payload для approval exec/plugin |
| `plugin-sdk/command-auth-native` | Native command auth + допоміжні засоби native session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та поверхні команди |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та поверхні команд |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору контрактів секретів для поверхонь секретів каналу/плагіна |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізація SecretRef для розбору secret-contract/config |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту та збору секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/тайм-ауту |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору секретних контрактів для секретних поверхонь каналу/плагіна |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору секретних контрактів/конфігурації |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, external-content і збору секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом від SSRF і політики SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору секретного вводу |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body/timeout для запитів |
</Accordion>
<Accordion title="Підшляхи runtime і сховища">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/plugin-install |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/interactive плагінів |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра webhook/internal hook |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби command/hook/http/interactive для плагінів |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime import/binding, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів |
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта gateway та патчів статусу каналу |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта gateway і патчів статусу каналу |
| `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Нормалізація імен/описів команд Telegram та перевірки на дублікати/конфлікти, навіть коли поверхня контракту вбудованого Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, 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` | Спільні допоміжні засоби коротковіконної історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram та перевірки на дублікати/конфлікти, навіть коли поверхня вбудованого контракту Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби approval exec/plugin, збирачі approval-capability, допоміжні засоби auth/profile, native routing/runtime |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, heartbeat, планувальник reply |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize для reply |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби short-window reply-history, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій + updated-at |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/прив’язки облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, значення стану runtime за замовчуванням і допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілей |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогу state/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби прив’язки маршруту/ключа сесії/облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, типові значення стану runtime та допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілі |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
| `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних вхідних даних |
| `plugin-sdk/run-command` | Виконавець команд із таймінгом і нормалізованими результатами stdout/stderr |
| `plugin-sdk/param-readers` | Загальні читачі параметрів tool/CLI |
| `plugin-sdk/tool-send` | Витяг канонічних полів цілі надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасових завантажень |
| `plugin-sdk/logging-core` | Допоміжні засоби logger підсистеми та редагування чутливих даних |
| `plugin-sdk/request-url` | Витягування рядкових URL із введення, подібного до fetch/request |
| `plugin-sdk/run-command` | Виконавець команд із таймером і нормалізованими результатами stdout/stderr |
| `plugin-sdk/param-readers` | Поширені читачі параметрів tool/CLI |
| `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з аргументів інструмента |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляху тимчасового завантаження |
| `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і редагування чутливих даних |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму Markdown-таблиць |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state |
| `plugin-sdk/file-lock` | Допоміжні засоби re-entrant file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковим зберіганням |
| `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і reply-dispatch |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
| `plugin-sdk/file-lock` | Допоміжні засоби повторно-вхідного file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового кешу dedupe |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session і reply-dispatch для ACP |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви schema конфігурації runtime агента |
| `plugin-sdk/boolean-param` | Гнучкий читач булевих параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення зіставлення небезпечних імен |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команді `/models`/провайдера |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби списку команд Skills |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native-команд |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення зіставлення небезпечних назв |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів сполучення |
| `plugin-sdk/extension-shared` | Спільні примітиви для passive-channel, статусу та ambient proxy helper |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді `/models` command/provider |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize для native command |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/heartbeat |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби diagnostic flag і event |
| `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби wrapped fetch, proxy і pinned lookup |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій |
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch, proxy та pinned lookup |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації імені хоста та SCP-хоста |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконавця retry |
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів на основі конфігурації |
| `plugin-sdk/directory-runtime` | Запит/усунення дублікатів каталогів на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Підшляхи можливостей і тестування">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також побудовники медіапейлоадів |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також збирачі медіапейлоадів |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
| `plugin-sdk/media-understanding` | Типи провайдерів media understanding і provider-facing експорти допоміжних засобів для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту/markdown/logging, такі як видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, редагування чутливих даних, допоміжні засоби тегів директив і утиліти безпечного тексту |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
| `plugin-sdk/speech` | Типи speech-провайдерів і provider-facing допоміжні засоби директив, реєстру та валідації |
| `plugin-sdk/speech-core` | Спільні типи speech-провайдерів, допоміжні засоби реєстру, директив і нормалізації |
| `plugin-sdk/realtime-transcription` | Типи провайдерів realtime transcription і допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Типи провайдерів realtime voice і допоміжні засоби реєстру |
| `plugin-sdk/media-understanding` | Типи провайдера media understanding, а також орієнтовані на провайдерів експорти допоміжних засобів для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як вилучення видимого для асистента тексту, допоміжні засоби render/chunking/table для markdown, редагування чутливих даних, допоміжні засоби тегів директив і safe-text утиліти |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking для вихідного тексту |
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також орієнтовані на провайдерів допоміжні засоби для директив, реєстру та валідації |
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, допоміжні засоби реєстру, директив і нормалізації |
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, failover, auth і допоміжні засоби реєстру |
| `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера і розбір model-ref |
| `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера і розбір model-ref |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і реєстру |
| `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та розбір model-ref |
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та розбір model-ref |
| `plugin-sdk/webhook-targets` | Реєстр цілей webhook і допоміжні засоби встановлення маршрутів |
| `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` |
</Accordion>
@ -266,32 +266,32 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
| `plugin-sdk/memory-core-host-engine-embeddings` | Експорти embedding engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби query хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби files/runtime хоста пам’яті |
| `plugin-sdk/memory-host-core` | Нейтральний до вендора псевдонім для допоміжних засобів core runtime хоста пам’яті |
| `plugin-sdk/memory-host-events` | Нейтральний до вендора псевдонім для допоміжних засобів журналу подій хоста пам’яті |
| `plugin-sdk/memory-host-files` | Нейтральний до вендора псевдонім для допоміжних засобів files/runtime хоста пам’яті |
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для memory-adjacent плагінів |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-core` | Нейтральний щодо вендора псевдонім для допоміжних засобів core runtime хоста пам’яті |
| `plugin-sdk/memory-host-events` | Нейтральний щодо вендора псевдонім для допоміжних засобів журналу подій хоста пам’яті |
| `plugin-sdk/memory-host-files` | Нейтральний щодо вендора псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для плагінів, суміжних із пам’яттю |
| `plugin-sdk/memory-host-search` | Активний фасад runtime пам’яті для доступу до search-manager |
| `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста пам’яті |
| `plugin-sdk/memory-host-status` | Нейтральний щодо вендора псевдонім для допоміжних засобів статусу хоста пам’яті |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
</Accordion>
<Accordion title="Зарезервовані підшляхи вбудованих helper-модулів">
<Accordion title="Зарезервовані підшляхи допоміжних засобів вбудованих плагінів">
| Сімейство | Поточні підшляхи | Призначення |
| --- | --- | --- |
| 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-плагіна (`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 |
| Допоміжні засоби, специфічні для каналу | `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` | Шви сумісності/допоміжні засоби вбудованих каналів |
| Допоміжні засоби, специфічні для auth/плагіна | `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` | Шви допоміжних засобів вбудованих функцій/плагінів; `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` | Поверхня helper/runtime вбудованого Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня helper/runtime вбудованого LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів вбудованого IRC |
| Допоміжні засоби, специфічні для каналів | `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` | Шви сумісності/допоміжних засобів для вбудованих каналів |
| Допоміжні засоби, специфічні для 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` | Шви допоміжних засобів для вбудованих можливостей/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
@ -302,56 +302,56 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
### Реєстрація можливостей
| Метод | Що реєструє |
| ------------------------------------------------ | ------------------------------- |
| `api.registerProvider(...)` | Текстовий inference (LLM) |
| `api.registerCliBackend(...)` | Локальний CLI backend inference |
| `api.registerChannel(...)` | Канал обміну повідомленнями |
| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція realtime |
| `api.registerRealtimeVoiceProvider(...)` | Дуплексні сесії realtime voice |
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
| `api.registerImageGenerationProvider(...)` | Генерація зображень |
| `api.registerMusicGenerationProvider(...)` | Генерація музики |
| Метод | Що він реєструє |
| ------------------------------------------------ | -------------------------------- |
| `api.registerProvider(...)` | Текстовий inference (LLM) |
| `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(...)` | Провайдер web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Веб-пошук |
| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Вебпошук |
### Інструменти та команди
| Метод | Що реєструє |
| ------------------------------ | --------------------------------------------- |
| Метод | Що він реєструє |
| ------------------------------- | --------------------------------------------- |
| `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) |
| `api.registerCommand(def)` | Користувацька команда (обходить LLM) |
| `api.registerCommand(def)` | Користувацька команда (обходить LLM) |
### Інфраструктура
| Метод | Що реєструє |
| --------------------------------------------- | -------------------------------------- |
| `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.registerMemoryPromptSupplement(builder)` | Додатковий розділ prompt, суміжний із пам’яттю |
| `api.registerMemoryCorpusSupplement(adapter)` | Додатковий корпус пошуку/читання пам’яті |
| Метод | Що він реєструє |
| ---------------------------------------------- | --------------------------------------- |
| `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.registerMemoryPromptSupplement(builder)` | Адитивний розділ prompt, суміжний із пам’яттю |
| `api.registerMemoryCorpusSupplement(adapter)` | Адитивний корпус пошуку/читання пам’яті |
Зарезервовані простори імен core admin (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) завжди лишаються `operator.admin`, навіть якщо плагін намагається призначити
вужчу область дії методу gateway. Для методів, що належать плагіну, віддавайте перевагу
префіксам, специфічним для плагіна.
Зарезервовані простори імен адміністрування ядра (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) завжди залишаються `operator.admin`, навіть якщо плагін намагається призначити
вужчу область методу gateway. Для
методів, що належать плагіну, віддавайте перевагу префіксам, специфічним для плагіна.
### Метадані реєстрації CLI
`api.registerCli(registrar, opts?)` приймає два види метаданих верхнього рівня:
`api.registerCli(registrar, opts?)` приймає два типи метаданих верхнього рівня:
- `commands`: явні корені команд, якими володіє registrar
- `descriptors`: дескриптори команд на етапі розбору, що використовуються для кореневої довідки CLI,
маршрутизації та лінивої реєстрації CLI плагіна
- `commands`: явні корені команд, які належать registrar
- `descriptors`: дескриптори команд на етапі розбору, які використовуються для довідки кореневого CLI,
маршрутизації та ледачої реєстрації CLI плагіна
Якщо ви хочете, щоб команда плагіна лишалася ліниво завантажуваною у звичайному кореневому шляху CLI,
надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, відкритий цим
Якщо ви хочете, щоб команда плагіна залишалася ледачо завантажуваною в
звичайному шляху кореневого CLI, надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, що експонується цим
registrar.
```typescript
@ -364,7 +364,7 @@ api.registerCli(
descriptors: [
{
name: "matrix",
description: "Керування обліковими записами Matrix, верифікацією, пристроями та станом профілю",
description: "Керуйте обліковими записами Matrix, верифікацією, пристроями та станом профілю",
hasSubcommands: true,
},
],
@ -372,81 +372,87 @@ api.registerCli(
);
```
Використовуйте лише `commands`, лише якщо вам не потрібна лінива коренева реєстрація CLI.
Цей eager-шлях сумісності все ще підтримується, але він не встановлює
плейсхолдери на основі дескрипторів для лінивого завантаження на етапі розбору.
Використовуйте лише `commands`, якщо вам не потрібна ледача реєстрація кореневого CLI.
Цей сумісний eager-шлях залишається підтримуваним, але він не встановлює
placeholders на основі descriptor для ледачого завантаження на етапі розбору.
### Реєстрація CLI backend
`api.registerCliBackend(...)` дає плагіну змогу володіти конфігурацією за замовчуванням для локального
`api.registerCliBackend(...)` дає змогу плагіну володіти типовою конфігурацією для локального
AI CLI backend, такого як `codex-cli`.
- `id` backend стає префіксом провайдера в model ref, як-от `codex-cli/gpt-5`.
- `id` backend стає префіксом провайдера в model ref на кшталт `codex-cli/gpt-5`.
- `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.<id>`.
- Конфігурація користувача все одно має пріоритет. OpenClaw зливає `agents.defaults.cliBackends.<id>` поверх
значень плагіна за замовчуванням перед запуском CLI.
типового значення плагіна перед запуском CLI.
- Використовуйте `normalizeConfig`, коли backend потребує переписування для сумісності після злиття
(наприклад, для нормалізації старих форм прапорців).
(наприклад, нормалізації старих форм прапорців).
### Ексклюзивні слоти
| Метод | Що реєструє |
| ----------------------------------------- | ----------------------------------- |
| `api.registerContextEngine(id, factory)` | Контекстний рушій (лише один активний одночасно) |
| `api.registerMemoryPromptSection(builder)` | Побудовник розділу prompt пам’яті |
| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану скидання пам’яті |
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті |
| Метод | Що він реєструє |
| ------------------------------------------ | ------------------------------------- |
| `api.registerContextEngine(id, factory)` | Контекстний рушій (одночасно активний лише один) |
| `api.registerMemoryCapability(capability)` | Уніфікована можливість пам’яті |
| `api.registerMemoryPromptSection(builder)` | Конструктор розділу prompt пам’яті |
| `api.registerMemoryFlushPlan(resolver)` | Resolver плану очищення пам’яті |
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті |
### Адаптери memory embedding
### Адаптери вбудовування пам’яті
| Метод | Що реєструє |
| --------------------------------------------- | ------------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер memory embedding для активного плагіна |
| Метод | Що він реєструє |
| ---------------------------------------------- | ---------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding пам’яті для активного плагіна |
- `registerMemoryCapability` — це рекомендований API ексклюзивного плагіна пам’яті.
- `registerMemoryCapability` також може експонувати `publicArtifacts.listArtifacts(...)`,
щоб супутні плагіни могли споживати експортовані артефакти пам’яті через
`openclaw/plugin-sdk/memory-host-core` замість звернення до приватної
структури конкретного плагіна пам’яті.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` і
`registerMemoryRuntime` є ексклюзивними для плагінів пам’яті.
- `registerMemoryEmbeddingProvider` дозволяє активному плагіну пам’яті реєструвати один
або кілька id embedding-адаптерів (наприклад, `openai`, `gemini` або custom
plugin-defined id).
`registerMemoryRuntime` — це застарілі, але сумісні API ексклюзивних плагінів пам’яті.
- `registerMemoryEmbeddingProvider` дає активному плагіну пам’яті змогу зареєструвати один
або більше id адаптерів embedding (наприклад, `openai`, `gemini` або користувацький
id, визначений плагіном).
- Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і
`agents.defaults.memorySearch.fallback`, визначається відносно цих зареєстрованих
id адаптерів.
### Події та життєвий цикл
| Метод | Що робить |
| ------------------------------------------- | ---------------------------- |
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| Метод | Що він робить |
| -------------------------------------------- | ----------------------------- |
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| `api.onConversationBindingResolved(handler)` | Зворотний виклик прив’язки розмови |
### Семантика рішень hook
### Семантика рішень хука
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропущений `block`), а не як перевизначення.
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропущений `block`), а не як перевизначення.
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере диспетчеризацію на себе, обробники з нижчим пріоритетом і стандартний шлях диспетчеризації моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` трактується як відсутність рішення (так само, як пропущений `cancel`), а не як перевизначення.
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник заявляє про диспетчеризацію, обробники з нижчим пріоритетом і типовий шлях диспетчеризації моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює його, обробники з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як пропуск `cancel`), а не перевизначенням.
### Поля об’єкта API
| Поле | Тип | Опис |
| ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | id плагіна |
| `api.name` | `string` | Відображувана назва |
| `api.version` | `string?` | Версія плагіна (необов’язково) |
| `api.description` | `string?` | Опис плагіна (необов’язково) |
| `api.source` | `string` | Шлях до джерела плагіна |
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, коли доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Специфічна для плагіна конфігурація з `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) |
| Поле | Тип | Опис |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | ID плагіна |
| `api.name` | `string` | Назва для відображення |
| `api.version` | `string?` | Версія плагіна (необов’язково) |
| `api.description` | `string?` | Опис плагіна (необов’язково) |
| `api.source` | `string` | Шлях до джерела плагіна |
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, коли доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Конфігурація, специфічна для плагіна, з `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger з обмеженою областю (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це легке вікно запуску/налаштування до повного entry |
| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна |
| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна |
## Угода щодо внутрішніх модулів
## Внутрішня угода щодо модулів
Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів:
@ -455,39 +461,39 @@ my-plugin/
api.ts # Публічні експорти для зовнішніх споживачів
runtime-api.ts # Лише внутрішні експорти runtime
index.ts # Точка входу плагіна
setup-entry.ts # Легка вхідна точка лише для налаштування (необов’язково)
setup-entry.ts # Полегшений entry лише для налаштування (необов’язково)
```
<Warning>
Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/<your-plugin>`
у production-коді. Виконуйте внутрішні імпорти через `./api.ts` або
`./runtime-api.ts`. Шлях SDK є лише зовнішнім контрактом.
у production-коді. Спрямовуйте внутрішні імпорти через `./api.ts` або
`./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
</Warning>
Публічні поверхні вбудованих плагінів, завантажувані через фасад (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер віддають перевагу
активному знімку конфігурації runtime, коли OpenClaw уже працює. Якщо знімок runtime
ще не існує, вони повертаються до визначеного конфігураційного файлу на диску.
Фасадно-завантажувані публічні поверхні вбудованих плагінів (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли) тепер віддають перевагу
активному знімку конфігурації runtime, якщо OpenClaw уже запущено. Якщо знімок runtime
ще не існує, вони повертаються до визначеного файла конфігурації на диску.
Плагіни провайдерів також можуть відкривати вузький локальний для плагіна barrel контракту, коли
допоміжний засіб навмисно є специфічним для провайдера і ще не належить до загального підшляху SDK.
Поточний вбудований приклад: провайдер Anthropic зберігає свої допоміжні засоби Claude
stream у власному публічному шві `api.ts` / `contract-api.ts` замість
просування логіки Anthropic beta-header і `service_tier` до загального
контракту `plugin-sdk/*`.
Плагіни провайдерів також можуть експонувати вузький локальний barrel-файл контракту плагіна, коли
певний допоміжний засіб навмисно є специфічним для провайдера і ще не належить до
загального підшляху SDK. Поточний вбудований приклад: провайдер Anthropic зберігає свої
допоміжні засоби потоків Claude у власному публічному шві `api.ts` / `contract-api.ts`
замість просування логіки beta-header Anthropic і `service_tier` у загальний
контракт `plugin-sdk/*`.
Інші поточні вбудовані приклади:
- `@openclaw/openai-provider`: `api.ts` експортує побудовники провайдерів,
допоміжні засоби моделей за замовчуванням і побудовники realtime-провайдерів
- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник провайдера, а також
- `@openclaw/openai-provider`: `api.ts` експортує збирачі провайдерів,
допоміжні засоби типових моделей і збирачі realtime-провайдерів
- `@openclaw/openrouter-provider`: `api.ts` експортує збирач провайдера, а також
допоміжні засоби онбордингу/конфігурації
<Warning>
Production-код розширень також має уникати імпортів `openclaw/plugin-sdk/<other-plugin>`.
Якщо допоміжний засіб справді є спільним, перенесіть його до нейтрального підшляху SDK,
наприклад `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
поверхні, орієнтованої на можливість, замість жорсткого зв’язування двох плагінів між собою.
такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
поверхні, орієнтованої на можливість, замість зв’язування двох плагінів між собою.
</Warning>
## Пов’язане
@ -497,4 +503,4 @@ stream у власному публічному шві `api.ts` / `contract-api.
- [Setup and Config](/uk/plugins/sdk-setup) — пакування, маніфести, схеми конфігурації
- [Testing](/uk/plugins/sdk-testing) — утиліти тестування та правила lint
- [SDK Migration](/uk/plugins/sdk-migration) — міграція із застарілих поверхонь
- [Plugin Internals](/uk/plugins/architecture) — детальна архітектура та модель можливостей
- [Plugin Internals](/uk/plugins/architecture) — глибока архітектура та модель можливостей