chore(i18n): refresh uk translations
This commit is contained in:
parent
f50bf3d03c
commit
3da0024f7c
@ -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
@ -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) — глибока архітектура та модель можливостей
|
||||
|
||||
Loading…
Reference in New Issue
Block a user