chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-30 03:20:12 +00:00
parent 5a53ab1de3
commit 0db6c7cde4
3 changed files with 530 additions and 529 deletions

View File

@ -1,27 +1,27 @@
---
read_when:
- Ви хочете встановити плагіни Gateway або сумісні пакети чи керувати ними
- Ви хочете діагностувати збої завантаження Plugin
- Ви хочете встановити Plugin-и Gateway чи сумісні пакети або керувати ними
- Ви хочете налагодити збої завантаження Plugin
sidebarTitle: Plugins
summary: Довідник CLI для `openclaw plugins` (list, install, marketplace, uninstall, enable/disable, deps, doctor)
title: Плагіни
summary: Довідка CLI для `openclaw plugins` (list, install, marketplace, uninstall, enable/disable, deps, doctor)
title: Plugins
x-i18n:
generated_at: "2026-04-29T22:27:02Z"
generated_at: "2026-04-30T03:18:02Z"
model: gpt-5.5
provider: openai
source_hash: c1ba79bccbbb74e3403188afc2dffc06e4215d433e2b23ed998b1fb09419601b
source_hash: 381e3243eaefb5b5e31db8fd2ba459773649a6ef427080a12018ea92b25f707c
source_path: cli/plugins.md
workflow: 16
---
Керуйте plugins Gateway, пакетами хуків і сумісними бандлами.
Керуйте Gateway plugins, пакетами hooks і сумісними bundles.
<CardGroup cols={2}>
<Card title="Система Plugin" href="/uk/tools/plugin">
Посібник для кінцевих користувачів із встановлення, увімкнення та усунення несправностей plugins.
Посібник для кінцевих користувачів із встановлення, увімкнення й усунення неполадок plugins.
</Card>
<Card title="Бандли Plugin" href="/uk/plugins/bundles">
Модель сумісності бандлів.
<Card title="Bundles Plugin" href="/uk/plugins/bundles">
Модель сумісності bundle.
</Card>
<Card title="Маніфест Plugin" href="/uk/plugins/manifest">
Поля маніфесту та схема конфігурації.
@ -59,16 +59,16 @@ openclaw plugins marketplace list <marketplace>
openclaw plugins marketplace list <marketplace> --json
```
Для дослідження повільного встановлення, інспектування, видалення або оновлення реєстру запускайте
Для розслідування повільного встановлення, перевірки, видалення або оновлення registry запустіть
команду з `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`. Трасування записує таймінги фаз
у stderr і зберігає JSON-вивід придатним для розбору. Див. [Налагодження](/uk/help/debugging#plugin-lifecycle-trace).
у stderr і зберігає JSON-вивід придатним для парсингу. Див. [Налагодження](/uk/help/debugging#plugin-lifecycle-trace).
<Note>
Вбудовані plugins постачаються з OpenClaw. Деякі ввімкнені за замовчуванням (наприклад, вбудовані постачальники моделей, вбудовані постачальники мовлення та вбудований браузерний Plugin); інші потребують `plugins enable`.
Вбудовані plugins постачаються з OpenClaw. Деякі ввімкнені за замовчуванням (наприклад, вбудовані providers моделей, вбудовані providers мовлення та вбудований browser plugin); інші потребують `plugins enable`.
Нативні plugins OpenClaw повинні постачати `openclaw.plugin.json` із вбудованою JSON Schema (`configSchema`, навіть якщо вона порожня). Сумісні бандли натомість використовують власні маніфести бандлів.
Нативні OpenClaw plugins мають постачати `openclaw.plugin.json` з вбудованою JSON Schema (`configSchema`, навіть якщо вона порожня). Сумісні bundles натомість використовують власні маніфести bundle.
`plugins list` показує `Format: openclaw` або `Format: bundle`. Детальний вивід list/info також показує підтип бандла (`codex`, `claude` або `cursor`) і виявлені можливості бандла.
`plugins list` показує `Format: openclaw` або `Format: bundle`. Детальний вивід list/info також показує підтип bundle (`codex`, `claude` або `cursor`) та виявлені можливості bundle.
</Note>
### Встановлення
@ -87,89 +87,89 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
```
<Warning>
Голі назви пакетів спочатку перевіряються в ClawHub, потім у npm. Ставтеся до встановлення plugins як до запуску коду. Віддавайте перевагу зафіксованим версіям.
Голі назви packages перевіряються спочатку в ClawHub, потім у npm. Ставтеся до встановлення plugins як до запуску коду. Надавайте перевагу закріпленим версіям.
</Warning>
<Note>
ClawHub є основною поверхнею розповсюдження й пошуку для більшості plugins. Npm
залишається підтримуваним резервним і прямим шляхом встановлення. Під час міграції до
ClawHub OpenClaw все ще постачає деякі пакети plugins, що належать OpenClaw, `@openclaw/*`
у npm; версії цих пакетів можуть відставати від вбудованого вихідного коду між релізними
потягами plugins. Якщо npm повідомляє, що пакет Plugin, який належить OpenClaw, застарілий, ця
опублікована версія є старим зовнішнім артефактом; використовуйте Plugin, вбудований у
поточний OpenClaw, або локальний checkout, доки не буде опубліковано новіший пакет npm.
ClawHub є основною поверхнею розповсюдження та виявлення для більшості plugins. Npm
залишається підтримуваним запасним і прямим шляхом встановлення. Під час міграції до
ClawHub OpenClaw досі постачає деякі належні OpenClaw packages plugins `@openclaw/*`
в npm; версії цих packages можуть відставати від вбудованого вихідного коду між
циклами випуску plugins. Якщо npm повідомляє, що належний OpenClaw package plugin
є застарілим, ця опублікована версія є старим зовнішнім артефактом; використовуйте plugin,
вбудований у поточний OpenClaw, або локальний checkout, доки не буде опубліковано новіший package npm.
</Note>
<AccordionGroup>
<Accordion title="Включення конфігурації та відновлення недійсної конфігурації">
Якщо ваш розділ `plugins` підтримується однофайловим `$include`, `plugins install/update/enable/disable/uninstall` записують зміни в цей включений файл і залишають `openclaw.json` без змін. Кореневі включення, масиви включень і включення з сусідніми перевизначеннями аварійно завершуються закрито замість сплощення. Див. [Включення конфігурації](/uk/gateway/configuration) щодо підтримуваних форм.
<Accordion title="Config includes і відновлення після недійсної конфігурації">
Якщо ваш розділ `plugins` базується на однофайловому `$include`, `plugins install/update/enable/disable/uninstall` записують зміни до цього включеного файлу й залишають `openclaw.json` без змін. Кореневі includes, масиви includes та includes із сусідніми перевизначеннями завершуються закрито замість flattening. Див. [Config includes](/uk/gateway/configuration) щодо підтримуваних форм.
Якщо конфігурація недійсна під час встановлення, `plugins install` зазвичай аварійно завершується закрито й повідомляє спочатку запустити `openclaw doctor --fix`. Під час запуску Gateway недійсна конфігурація одного Plugin ізолюється до цього Plugin, щоб інші канали та plugins могли продовжувати роботу; `openclaw doctor --fix` може помістити недійсний запис Plugin у карантин. Єдиний задокументований виняток під час встановлення — вузький шлях відновлення вбудованого Plugin для plugins, які явно підключаються до `openclaw.install.allowInvalidConfigRecovery`.
Якщо під час встановлення конфігурація недійсна, `plugins install` зазвичай завершується закрито й повідомляє спершу запустити `openclaw doctor --fix`. Під час запуску Gateway недійсна конфігурація одного plugin ізолюється до цього plugin, щоб інші channels і plugins могли продовжувати роботу; `openclaw doctor --fix` може помістити недійсний запис plugin у карантин. Єдиний документований виняток під час встановлення — вузький шлях відновлення для вбудованих plugins, які явно вмикають `openclaw.install.allowInvalidConfigRecovery`.
</Accordion>
<Accordion title="--force і повторне встановлення проти оновлення">
`--force` повторно використовує наявну ціль встановлення й перезаписує вже встановлений Plugin або пакет хуків на місці. Використовуйте його, коли ви навмисно повторно встановлюєте той самий id з нового локального шляху, архіву, пакета ClawHub або артефакту npm. Для звичайних оновлень уже відстежуваного Plugin npm віддавайте перевагу `openclaw plugins update <id-or-npm-spec>`.
<Accordion title="--force і повторне встановлення проти update">
`--force` повторно використовує наявну ціль встановлення й перезаписує вже встановлений plugin або hook pack на місці. Використовуйте це, коли навмисно перевстановлюєте той самий id з нового локального шляху, архіву, package ClawHub або артефакту npm. Для звичайних оновлень уже відстежуваного npm plugin надавайте перевагу `openclaw plugins update <id-or-npm-spec>`.
Якщо ви запускаєте `plugins install` для id Plugin, який уже встановлено, OpenClaw зупиняється й спрямовує вас до `plugins update <id-or-npm-spec>` для звичайного оновлення або до `plugins install <package> --force`, коли ви справді хочете перезаписати поточне встановлення з іншого джерела.
Якщо ви запускаєте `plugins install` для id plugin, який уже встановлено, OpenClaw зупиняється й указує на `plugins update <id-or-npm-spec>` для звичайного оновлення або на `plugins install <package> --force`, коли справді потрібно перезаписати поточне встановлення з іншого джерела.
</Accordion>
<Accordion title="Область дії --pin">
`--pin` застосовується лише до встановлень npm. Він не підтримується з `--marketplace`, оскільки встановлення marketplace зберігають метадані джерела marketplace замість специфікації npm.
`--pin` застосовується лише до встановлень npm. Він не підтримується з `--marketplace`, бо marketplace-встановлення зберігають метадані джерела marketplace замість spec npm.
</Accordion>
<Accordion title="--dangerously-force-unsafe-install">
`--dangerously-force-unsafe-install` — це аварійна опція для хибних спрацьовувань вбудованого сканера небезпечного коду. Вона дозволяє продовжити встановлення, навіть коли вбудований сканер повідомляє про знахідки `critical`, але **не** обходить блокування політики хуків `before_install` Plugin і **не** обходить збої сканування.
`--dangerously-force-unsafe-install` — це аварійний параметр для хибних спрацьовувань у вбудованому сканері небезпечного коду. Він дозволяє продовжити встановлення навіть тоді, коли вбудований сканер повідомляє про знахідки `critical`, але він **не** обходить блокування політики hook `before_install` plugin і **не** обходить збої сканування.
Цей прапорець CLI застосовується до потоків встановлення/оновлення Plugin. Встановлення залежностей Skills, підтримувані Gateway, використовують відповідне перевизначення запиту `dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим потоком завантаження/встановлення Skills з ClawHub.
Цей прапорець CLI застосовується до потоків встановлення/оновлення plugin. Встановлення залежностей skills, підтримувані Gateway, використовують відповідне перевизначення запиту `dangerouslyForceUnsafeInstall`, тоді як `openclaw skills install` залишається окремим потоком завантаження/встановлення skill із ClawHub.
Якщо Plugin, який ви опублікували в ClawHub, заблоковано скануванням реєстру, скористайтеся кроками видавця в [ClawHub](/uk/tools/clawhub).
Якщо plugin, який ви опублікували в ClawHub, заблоковано registry scan, скористайтеся кроками для видавця в [ClawHub](/uk/tools/clawhub).
</Accordion>
<Accordion title="Пакети хуків і специфікації npm">
`plugins install` також є поверхнею встановлення для пакетів хуків, які експортують `openclaw.hooks` у `package.json`. Використовуйте `openclaw hooks` для фільтрованої видимості хуків і ввімкнення окремих хуків, а не для встановлення пакетів.
<Accordion title="Hook packs і npm specs">
`plugins install` також є поверхнею встановлення для hook packs, які оголошують `openclaw.hooks` у `package.json`. Використовуйте `openclaw hooks` для відфільтрованої видимості hooks і ввімкнення окремих hooks, а не для встановлення package.
Специфікації npm є **лише реєстровими** (назва пакета + необов’язкова **точна версія** або **dist-tag**). Специфікації Git/URL/file і діапазони semver відхиляються. Встановлення залежностей виконується локально в проєкті з `--ignore-scripts` для безпеки, навіть якщо ваша оболонка має глобальні налаштування встановлення npm.
Specs npm є **лише registry** (назва package + необов’язкова **точна версія** або **dist-tag**). Specs Git/URL/file і semver ranges відхиляються. Встановлення залежностей запускаються локально для проєкту з `--ignore-scripts` задля безпеки, навіть якщо ваша оболонка має глобальні налаштування встановлення npm.
Використовуйте `npm:<package>`, коли хочете пропустити пошук у ClawHub і встановити напряму з npm. Голі специфікації пакетів усе ще віддають перевагу ClawHub і повертаються до npm лише тоді, коли ClawHub не має цього пакета або версії.
Використовуйте `npm:<package>`, коли хочете пропустити пошук у ClawHub і встановити безпосередньо з npm. Голі specs package все одно надають перевагу ClawHub і повертаються до npm лише тоді, коли ClawHub не має такого package або версії.
Голі специфікації та `@latest` залишаються на стабільному треку. Якщо npm розв’язує будь-яку з них у попередній реліз, OpenClaw зупиняється й просить явно підключитися за допомогою тегу попереднього релізу, такого як `@beta`/`@rc`, або точної версії попереднього релізу, такої як `@1.2.3-beta.4`.
Голі specs і `@latest` залишаються на stable track. Якщо npm resolves будь-який із них до prerelease, OpenClaw зупиняється й просить явно ввімкнути це за допомогою prerelease tag, як-от `@beta`/`@rc`, або точної prerelease version, як-от `@1.2.3-beta.4`.
Якщо гола специфікація встановлення збігається з id вбудованого Plugin (наприклад, `diffs`), OpenClaw встановлює вбудований Plugin напряму. Щоб встановити пакет npm з тією самою назвою, використовуйте явну scoped-специфікацію (наприклад, `@scope/diffs`).
Якщо голий install spec збігається з id вбудованого plugin (наприклад `diffs`), OpenClaw встановлює вбудований plugin безпосередньо. Щоб установити package npm з такою самою назвою, використовуйте явний scoped spec (наприклад `@scope/diffs`).
</Accordion>
<Accordion title="Архіви">
Підтримувані архіви: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Архіви нативних plugins OpenClaw повинні містити дійсний `openclaw.plugin.json` у корені витягнутого Plugin; архіви, які містять лише `package.json`, відхиляються до того, як OpenClaw запише записи встановлення.
Підтримувані архіви: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Архіви нативних OpenClaw plugin мають містити дійсний `openclaw.plugin.json` у корені розпакованого plugin; архіви, що містять лише `package.json`, відхиляються до того, як OpenClaw запише install records.
Встановлення з Claude marketplace також підтримуються.
Встановлення Claude marketplace також підтримуються.
</Accordion>
</AccordionGroup>
Встановлення ClawHub використовують явний локатор `clawhub:<package>`:
Встановлення ClawHub використовують явний locator `clawhub:<package>`:
```bash
openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
```
OpenClaw тепер також віддає перевагу ClawHub для голих npm-безпечних специфікацій Plugin. Він повертається до npm лише якщо ClawHub не має цього пакета або версії:
OpenClaw тепер також надає перевагу ClawHub для голих npm-safe specs plugin. Він повертається до npm лише тоді, коли ClawHub не має такого package або версії:
```bash
openclaw plugins install openclaw-codex-app-server
```
Використовуйте `npm:`, щоб примусити розв’язання лише через npm, наприклад коли ClawHub недоступний або ви знаєте, що пакет існує лише в npm:
Використовуйте `npm:`, щоб примусово застосувати лише npm resolution, наприклад коли ClawHub недоступний або ви знаєте, що package існує лише в npm:
```bash
openclaw plugins install npm:openclaw-codex-app-server
openclaw plugins install npm:@scope/plugin-name@1.0.1
```
OpenClaw завантажує архів пакета з ClawHub, перевіряє оголошену сумісність API Plugin / мінімальну сумісність Gateway, а потім встановлює його через звичайний архівний шлях. Записані встановлення зберігають метадані джерела ClawHub для пізніших оновлень.
Неверсійовані встановлення ClawHub зберігають неверсійовану записану специфікацію, щоб `openclaw plugins update` міг стежити за новішими релізами ClawHub; явні селектори версії або тегу, такі як `clawhub:pkg@1.2.3` і `clawhub:pkg@beta`, залишаються зафіксованими на цьому селекторі.
OpenClaw завантажує архів package з ClawHub, перевіряє оголошену сумісність plugin API / minimum gateway, а потім встановлює його через звичайний шлях архіву. Записані встановлення зберігають свої метадані джерела ClawHub для подальших оновлень.
Неверсійовані встановлення ClawHub зберігають неверсійований записаний spec, щоб `openclaw plugins update` міг відстежувати новіші випуски ClawHub; явні selectors версії або tag, як-от `clawhub:pkg@1.2.3` і `clawhub:pkg@beta`, залишаються закріпленими за цим selector.
#### Скорочення marketplace
#### Скорочений запис marketplace
Використовуйте скорочення `plugin@marketplace`, коли назва marketplace існує в локальному кеші реєстру Claude за адресою `~/.claude/plugins/known_marketplaces.json`:
Використовуйте скорочення `plugin@marketplace`, коли назва marketplace існує в локальному cache registry Claude за адресою `~/.claude/plugins/known_marketplaces.json`:
```bash
openclaw plugins marketplace list <marketplace-name>
@ -189,25 +189,25 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
<Tab title="Джерела marketplace">
- назва відомого marketplace Claude з `~/.claude/plugins/known_marketplaces.json`
- локальний корінь marketplace або шлях `marketplace.json`
- скорочення репозиторію GitHub, таке як `owner/repo`
- URL репозиторію GitHub, такий як `https://github.com/owner/repo`
- скорочення repo GitHub, як-от `owner/repo`
- URL repo GitHub, як-от `https://github.com/owner/repo`
- git URL
</Tab>
<Tab title="Правила віддаленого marketplace">
Для віддалених marketplaces, завантажених з GitHub або git, записи Plugin повинні залишатися всередині клонованого репозиторію marketplace. OpenClaw приймає джерела з відносними шляхами з цього репозиторію та відхиляє HTTP(S), абсолютні шляхи, git, GitHub та інші непутівні джерела Plugin з віддалених маніфестів.
Для віддалених marketplaces, завантажених із GitHub або git, записи plugin мають залишатися всередині клонованого repo marketplace. OpenClaw приймає джерела з відносними шляхами з цього repo й відхиляє HTTP(S), абсолютні шляхи, git, GitHub та інші не-path джерела plugin з віддалених маніфестів.
</Tab>
</Tabs>
Для локальних шляхів і архівів OpenClaw автоматично виявляє:
Для локальних шляхів і архівів OpenClaw автоматично визначає:
- нативні plugins OpenClaw (`openclaw.plugin.json`)
- Codex-сумісні бандли (`.codex-plugin/plugin.json`)
- Claude-сумісні бандли (`.claude-plugin/plugin.json` або стандартний макет компонентів Claude)
- Cursor-сумісні бандли (`.cursor-plugin/plugin.json`)
- нативні OpenClaw plugins (`openclaw.plugin.json`)
- Codex-сумісні bundles (`.codex-plugin/plugin.json`)
- Claude-сумісні bundles (`.claude-plugin/plugin.json` або стандартний layout components Claude)
- Cursor-сумісні bundles (`.cursor-plugin/plugin.json`)
<Note>
Сумісні бандли встановлюються у звичайний корінь Plugin і беруть участь у тому самому потоці list/info/enable/disable. Наразі підтримуються Skills бандлів, command-skills Claude, типові значення Claude `settings.json`, типові значення Claude `.lsp.json` / оголошені маніфестом `lspServers`, command-skills Cursor і сумісні каталоги хуків Codex; інші виявлені можливості бандлів показуються в діагностиці/info, але ще не підключені до виконання під час роботи.
Сумісні bundles встановлюються у звичайний корінь plugin і беруть участь у тому самому потоці list/info/enable/disable. Нині підтримуються bundle skills, command-skills Claude, defaults Claude `settings.json`, defaults Claude `.lsp.json` / оголошені в manifest `lspServers`, command-skills Cursor і сумісні directories hooks Codex; інші виявлені можливості bundle показуються в diagnostics/info, але ще не під’єднані до виконання runtime.
</Note>
### Список
@ -223,26 +223,26 @@ openclaw plugins list --json
Показати лише ввімкнені plugins.
</ParamField>
<ParamField path="--verbose" type="boolean">
Перемкнутися з табличного подання на рядки деталей для кожного Plugin із метаданими джерела/походження/версії/активації.
Перемкнутися з табличного подання на рядки деталізації для кожного plugin із метаданими source/origin/version/activation.
</ParamField>
<ParamField path="--json" type="boolean">
Машинозчитуваний інвентар і діагностика реєстру.
Машиночитний inventory плюс diagnostics registry.
</ParamField>
<Note>
`plugins list` спершу читає збережений локальний реєстр Plugin, із похідним резервним варіантом лише з маніфесту, коли реєстр відсутній або недійсний. Це корисно, щоб перевірити, чи Plugin встановлено, увімкнено та видно для планування холодного запуску, але це не live-зонд runtime для процесу Gateway, який уже працює. Після зміни коду Plugin, увімкнення, політики хуків або `plugins.load.paths` перезапустіть Gateway, який обслуговує канал, перш ніж очікувати запуску нового коду `register(api)` або хуків. Для віддалених/контейнерних розгортань переконайтеся, що перезапускаєте фактичний дочірній процес `openclaw gateway run`, а не лише процес-обгортку.
`plugins list` спочатку читає збережений локальний реєстр Plugin, із запасним варіантом, виведеним лише з маніфестів, коли реєстр відсутній або недійсний. Це корисно для перевірки, чи Plugin встановлено, увімкнено та видно для планування холодного запуску, але це не живий runtime-зонд уже запущеного процесу Gateway. Після зміни коду Plugin, увімкнення, політики хуків або `plugins.load.paths` перезапустіть Gateway, який обслуговує канал, перш ніж очікувати запуску нового коду `register(api)` або хуків. Для віддалених/контейнерних розгортань перевірте, що ви перезапускаєте фактичний дочірній процес `openclaw gateway run`, а не лише процес-обгортку.
</Note>
Для роботи з вбудованим Plugin усередині запакованого Docker-образу примонтуйте каталог
джерельного коду Plugin поверх відповідного запакованого шляху джерельного коду, наприклад
`/app/extensions/synology-chat`. OpenClaw виявить це примонтоване накладання джерельного коду
раніше за `/app/dist/extensions/synology-chat`; звичайний скопійований каталог джерельного коду
залишається інертним, тож стандартні запаковані встановлення й надалі використовують скомпільований dist.
Для роботи з вбудованим Plugin усередині запакованого образу Docker примонтуйте каталог
джерел Plugin поверх відповідного запакованого шляху джерел, наприклад
`/app/extensions/synology-chat`. OpenClaw виявить це змонтоване накладання джерел
перед `/app/dist/extensions/synology-chat`; звичайний скопійований каталог джерел
залишається неактивним, тому звичайні запаковані встановлення й далі використовують скомпільований dist.
Для налагодження runtime-хуків:
- `openclaw plugins inspect <id> --json` показує зареєстровані хуки й діагностику з проходу інспекції із завантаженням модуля.
- `openclaw gateway status --deep --require-rpc` підтверджує доступний Gateway, підказки щодо служби/процесу, шлях конфігурації та стан RPC.
- `openclaw gateway status --deep --require-rpc` підтверджує доступний Gateway, підказки щодо сервісу/процесу, шлях конфігурації та стан RPC.
- Невбудовані хуки розмов (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) потребують `plugins.entries.<id>.hooks.allowConversationAccess=true`.
Використовуйте `--link`, щоб уникнути копіювання локального каталогу (додає до `plugins.load.paths`):
@ -252,16 +252,16 @@ openclaw plugins install -l ./my-plugin
```
<Note>
`--force` не підтримується з `--link`, оскільки пов’язані встановлення повторно використовують шлях джерельного коду замість копіювання поверх керованої цілі встановлення.
`--force` не підтримується з `--link`, бо пов’язані встановлення повторно використовують шлях джерел замість копіювання поверх керованої цілі встановлення.
Використовуйте `--pin` для npm-встановлень, щоб зберегти розв’язану точну специфікацію (`name@version`) у керованому індексі Plugin, зберігаючи типову поведінку без фіксації.
Використовуйте `--pin` для npm-встановлень, щоб зберегти розв’язану точну специфікацію (`name@version`) у керованому індексі Plugin, зберігаючи типову поведінку без фіксації версії.
</Note>
### Індекс Plugin
Метадані встановлення Plugin є станом, керованим машиною, а не користувацькою конфігурацією. Встановлення й оновлення записують їх у `plugins/installs.json` в активному каталозі стану OpenClaw. Його карта верхнього рівня `installRecords` є довговічним джерелом метаданих встановлення, включно із записами для пошкоджених або відсутніх маніфестів Plugin. Масив `plugins` є похідним від маніфесту кешем холодного реєстру. Файл містить попередження не редагувати його та використовується `openclaw plugins update`, видаленням, діагностикою та холодним реєстром Plugin.
Метадані встановлення Plugin є станом, керованим машиною, а не користувацькою конфігурацією. Встановлення й оновлення записують їх у `plugins/installs.json` під активним каталогом стану OpenClaw. Його верхньорівнева мапа `installRecords` є довговічним джерелом метаданих встановлення, включно із записами для пошкоджених або відсутніх маніфестів Plugin. Масив `plugins` є холодним кешем реєстру, виведеним із маніфестів. Файл містить попередження не редагувати його й використовується `openclaw plugins update`, видаленням, діагностикою та холодним реєстром Plugin.
Коли OpenClaw бачить доставлені застарілі записи `plugins.installs` у конфігурації, він переміщує їх в індекс Plugin і видаляє ключ конфігурації; якщо будь-який із записів завершується невдало, записи конфігурації зберігаються, щоб метадані встановлення не були втрачені.
Коли OpenClaw бачить поставлені застарілі записи `plugins.installs` у конфігурації, він переносить їх в індекс Plugin і видаляє ключ конфігурації; якщо будь-який запис не вдається, записи конфігурації зберігаються, щоб метадані встановлення не було втрачено.
### Runtime-залежності
@ -272,9 +272,9 @@ openclaw plugins deps --prune
openclaw plugins deps --json
```
`plugins deps` інспектує запакований етап runtime-залежностей для вбудованих Plugin, що належать OpenClaw. Це не шлях встановлення/оновлення для сторонніх npm або ClawHub Plugin.
`plugins deps` інспектує запакований етап runtime-залежностей для вбудованих Plugin, що належать OpenClaw і вибрані конфігурацією Plugin, увімкненими/налаштованими каналами, налаштованими провайдерами моделей або типовими значеннями вбудованих маніфестів. Це не шлях встановлення/оновлення для сторонніх npm або ClawHub Plugin.
Використовуйте `--repair`, коли запаковане встановлення повідомляє про відсутні вбудовані runtime-залежності під час запуску Gateway або `plugins doctor`. Відновлення встановлює лише відсутні залежності увімкнених вбудованих Plugin із вимкненими lifecycle-скриптами. Використовуйте `--prune`, щоб видалити застарілі невідомі зовнішні корені runtime-залежностей, залишені старішими запакованими макетами.
Використовуйте `--repair`, коли запаковане встановлення повідомляє про відсутні runtime-залежності вбудованих Plugin під час запуску Gateway або `plugins doctor`. Виправлення встановлює лише відсутні залежності увімкнених вбудованих Plugin із вимкненими lifecycle-скриптами. Використовуйте `--prune`, щоб видалити застарілі невідомі корені зовнішніх runtime-залежностей, залишені старішими запакованими макетами.
### Видалення
@ -284,7 +284,7 @@ openclaw plugins uninstall <id> --dry-run
openclaw plugins uninstall <id> --keep-files
```
`uninstall` видаляє записи Plugin з `plugins.entries`, збереженого індексу Plugin, записів allow/deny-списків Plugin і пов’язаних записів `plugins.load.paths`, коли це застосовно. Якщо не задано `--keep-files`, видалення також прибирає відстежуваний керований каталог встановлення, коли він розташований усередині кореня розширень Plugin OpenClaw. Для Plugin активної пам’яті слот пам’яті скидається до `memory-core`.
`uninstall` видаляє записи Plugin з `plugins.entries`, збереженого індексу Plugin, записів списків allow/deny для Plugin, а також пов’язаних записів `plugins.load.paths`, коли це застосовно. Якщо `--keep-files` не задано, видалення також прибирає відстежуваний керований каталог встановлення, коли він розташований усередині кореня розширень Plugin OpenClaw. Для Active Memory Plugin слот пам’яті скидається до `memory-core`.
<Note>
`--keep-config` підтримується як застарілий псевдонім для `--keep-files`.
@ -304,21 +304,21 @@ openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-ins
<AccordionGroup>
<Accordion title="Розв’язання ідентифікатора Plugin проти npm-специфікації">
Коли ви передаєте ідентифікатор Plugin, OpenClaw повторно використовує записану специфікацію встановлення для цього Plugin. Це означає, що раніше збережені dist-теги, як-от `@beta`, і точні зафіксовані версії продовжують використовуватися в наступних запусках `update <id>`.
Коли ви передаєте ідентифікатор Plugin, OpenClaw повторно використовує записану специфікацію встановлення для цього Plugin. Це означає, що раніше збережені dist-теги, як-от `@beta`, і точні зафіксовані версії й далі використовуються під час наступних запусків `update <id>`.
Для npm-встановлень ви також можете передати явну специфікацію npm-пакета з dist-тегом або точною версією. OpenClaw розв’язує цю назву пакета назад до відстежуваного запису Plugin, оновлює цей встановлений Plugin і записує нову npm-специфікацію для майбутніх оновлень на основі ідентифікатора.
Для npm-встановлень ви також можете передати явну специфікацію npm-пакета з dist-тегом або точною версією. OpenClaw зіставляє цю назву пакета назад із відстежуваним записом Plugin, оновлює цей встановлений Plugin і записує нову npm-специфікацію для майбутніх оновлень на основі ідентифікатора.
Передавання назви npm-пакета без версії або тегу також розв’язується назад до відстежуваного запису Plugin. Використовуйте це, коли Plugin було зафіксовано на точній версії, а ви хочете повернути його до типової лінії релізів реєстру.
Передавання назви npm-пакета без версії або тега також зіставляється назад із відстежуваним записом Plugin. Використовуйте це, коли Plugin був зафіксований на точній версії, а ви хочете повернути його до типової лінії релізів реєстру.
</Accordion>
<Accordion title="Перевірки версій і дрейф цілісності">
Перед live npm-оновленням OpenClaw перевіряє встановлену версію пакета щодо метаданих npm-реєстру. Якщо встановлена версія і записана ідентичність артефакту вже збігаються з розв’язаною ціллю, оновлення пропускається без завантаження, перевстановлення або переписування `openclaw.json`.
Перед живим npm-оновленням OpenClaw перевіряє встановлену версію пакета за метаданими npm-реєстру. Якщо встановлена версія й записана ідентичність артефакта вже збігаються з розв’язаною ціллю, оновлення пропускається без завантаження, перевстановлення або переписування `openclaw.json`.
Коли існує збережений хеш цілісності, а хеш отриманого артефакту змінюється, OpenClaw трактує це як дрейф npm-артефакту. Інтерактивна команда `openclaw plugins update` друкує очікуваний і фактичний хеші та просить підтвердження перед продовженням. Неінтерактивні помічники оновлення завершуються закрито, якщо викликач не надає явну політику продовження.
Коли існує збережений хеш цілісності, а хеш отриманого артефакта змінюється, OpenClaw трактує це як дрейф npm-артефакта. Інтерактивна команда `openclaw plugins update` друкує очікуваний і фактичний хеші та просить підтвердження перед продовженням. Неінтерактивні помічники оновлення завершуються відмовою, якщо викликач не надає явну політику продовження.
</Accordion>
<Accordion title="--dangerously-force-unsafe-install під час оновлення">
`--dangerously-force-unsafe-install` також доступний у `plugins update` як аварійний override для хибнопозитивних спрацювань вбудованого сканування небезпечного коду під час оновлень Plugin. Він усе одно не обходить блокування політики `before_install` Plugin або блокування через збій сканування, і застосовується лише до оновлень Plugin, а не до оновлень пакетів хуків.
`--dangerously-force-unsafe-install` також доступний у `plugins update` як аварійне перевизначення для хибнопозитивних спрацювань вбудованого сканування небезпечного коду під час оновлень Plugin. Він усе одно не обходить блокування політики `before_install` Plugin або блокування через помилку сканування, і застосовується лише до оновлень Plugin, а не до оновлень пакетів хуків.
</Accordion>
</AccordionGroup>
@ -329,19 +329,19 @@ openclaw plugins inspect <id>
openclaw plugins inspect <id> --json
```
Глибока інтроспекція одного Plugin. Показує ідентичність, стан завантаження, джерело, зареєстровані можливості, хуки, інструменти, команди, служби, методи Gateway, HTTP-маршрути, прапорці політик, діагностику, метадані встановлення, можливості пакета та будь-яку виявлену підтримку MCP або LSP-сервера.
Глибока інтроспекція одного Plugin. Показує ідентичність, стан завантаження, джерело, зареєстровані можливості, хуки, інструменти, команди, сервіси, методи Gateway, HTTP-маршрути, прапори політики, діагностику, метадані встановлення, можливості пакета та будь-яку виявлену підтримку серверів MCP або LSP.
Кожен Plugin класифікується за тим, що він фактично реєструє під час runtime:
- **plain-capability** — один тип можливості (наприклад, Plugin лише провайдера)
- **plain-capability** — один тип можливості (наприклад, Plugin лише для провайдера)
- **hybrid-capability** — кілька типів можливостей (наприклад, текст + мовлення + зображення)
- **hook-only** — лише хуки, без можливостей або поверхонь
- **non-capability** — інструменти/команди/служби, але без можливостей
- **non-capability** — інструменти/команди/сервіси, але без можливостей
Докладніше про модель можливостей див. у [Формах Plugin](/uk/plugins/architecture#plugin-shapes).
Див. [Форми Plugin](/uk/plugins/architecture#plugin-shapes), щоб дізнатися більше про модель можливостей.
<Note>
Прапорець `--json` виводить машиночитний звіт, придатний для скриптів і аудиту. `inspect --all` рендерить таблицю для всього парку зі стовпцями форми, типів можливостей, повідомлень сумісності, можливостей пакета та зведення хуків. `info` є псевдонімом для `inspect`.
Прапор `--json` виводить машинозчитуваний звіт, придатний для скриптів і аудиту. `inspect --all` відображає таблицю для всього парку зі стовпцями форми, типів можливостей, сповіщень сумісності, можливостей пакета та зведення хуків. `info` є псевдонімом для `inspect`.
</Note>
### Doctor
@ -350,9 +350,9 @@ openclaw plugins inspect <id> --json
openclaw plugins doctor
```
`doctor` повідомляє про помилки завантаження Plugin, діагностику маніфесту/виявлення та повідомлення сумісності. Коли все чисто, він друкує `No plugin issues detected.`
`doctor` повідомляє про помилки завантаження Plugin, діагностику маніфесту/виявлення та сповіщення сумісності. Коли все чисто, він друкує `No plugin issues detected.`
Для збоїв форми модуля, як-от відсутніх експортів `register`/`activate`, повторно запустіть із `OPENCLAW_PLUGIN_LOAD_DEBUG=1`, щоб додати компактне зведення форми експортів у діагностичний вивід.
Для збоїв форми модуля, як-от відсутніх експортів `register`/`activate`, повторно запустіть із `OPENCLAW_PLUGIN_LOAD_DEBUG=1`, щоб включити компактне зведення форми експортів у діагностичний вивід.
### Реєстр
@ -362,12 +362,12 @@ openclaw plugins registry --refresh
openclaw plugins registry --json
```
Локальний реєстр Plugin — це збережена холодна read model OpenClaw для ідентичності встановлених Plugin, увімкнення, метаданих джерела та володіння внесками. Звичайний запуск, пошук власника провайдера, класифікація налаштування каналу та інвентаризація Plugin можуть читати його без імпорту runtime-модулів Plugin.
Локальний реєстр Plugin є збереженою холодною read model OpenClaw для ідентичності встановлених Plugin, увімкнення, метаданих джерела та власності внесків. Звичайний запуск, пошук власника провайдера, класифікація налаштування каналу та інвентаризація Plugin можуть читати його без імпорту runtime-модулів Plugin.
Використовуйте `plugins registry`, щоб перевірити, чи наявний, актуальний або застарілий збережений реєстр. Використовуйте `--refresh`, щоб перебудувати його зі збереженого індексу Plugin, політики конфігурації та метаданих маніфесту/пакета. Це шлях відновлення, а не шлях runtime-активації.
Використовуйте `plugins registry`, щоб перевірити, чи збережений реєстр присутній, актуальний або застарілий. Використовуйте `--refresh`, щоб перебудувати його зі збереженого індексу Plugin, політики конфігурації та метаданих маніфесту/пакета. Це шлях виправлення, а не шлях runtime-активації.
<Warning>
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` — це застарілий аварійний перемикач сумісності для збоїв читання реєстру. Надавайте перевагу `plugins registry --refresh` або `openclaw doctor --fix`; резервний env-варіант призначений лише для екстреного відновлення запуску під час розгортання міграції.
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` є застарілим аварійним перемикачем сумісності для збоїв читання реєстру. Віддавайте перевагу `plugins registry --refresh` або `openclaw doctor --fix`; env-запасний варіант призначений лише для аварійного відновлення запуску під час розгортання міграції.
</Warning>
### Marketplace
@ -377,7 +377,7 @@ openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json
```
Список Marketplace приймає локальний шлях Marketplace, шлях `marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub або git URL. `--json` друкує розв’язану мітку джерела разом із розібраним маніфестом Marketplace і записами Plugin.
Список Marketplace приймає локальний шлях Marketplace, шлях `marketplace.json`, скорочення GitHub на кшталт `owner/repo`, URL репозиторію GitHub або git URL. `--json` друкує розв’язану мітку джерела, а також розібраний маніфест Marketplace і записи Plugin.
## Пов’язане

View File

@ -3,18 +3,18 @@ read_when:
- Додавання або змінення міграцій doctor
- Запровадження несумісних змін конфігурації
sidebarTitle: Doctor
summary: 'Команда doctor: перевірки справності, міграції конфігурації та кроки відновлення'
summary: 'Команда doctor: перевірки стану, міграції конфігурації та кроки відновлення'
title: Діагностика
x-i18n:
generated_at: "2026-04-28T11:11:27Z"
generated_at: "2026-04-30T03:17:55Z"
model: gpt-5.5
provider: openai
source_hash: 347ce9a2f87632292319aa740389dca8763bd26dd398fb0edeb5b70cc16b949a
source_hash: c27b8e85eb0a577e676f0e6e205262775ff37303453e64fc1bc2adaf8b51147c
source_path: gateway/doctor.md
workflow: 16
---
`openclaw doctor` — це інструмент відновлення та міграції для OpenClaw. Він виправляє застарілі конфігурацію/стан, перевіряє справність і надає практичні кроки для відновлення.
`openclaw doctor` — це інструмент ремонту та міграції для OpenClaw. Він виправляє застарілі конфігурації/стан, перевіряє працездатність і надає практичні кроки для ремонту.
## Швидкий старт
@ -22,7 +22,7 @@ x-i18n:
openclaw doctor
```
### Режими без інтерфейсу та автоматизації
### Headless-режим і режими автоматизації
<Tabs>
<Tab title="--yes">
@ -30,7 +30,7 @@ openclaw doctor
openclaw doctor --yes
```
Прийняти значення за замовчуванням без запитів (зокрема кроки перезапуску/сервісу/відновлення sandbox, коли застосовно).
Прийняти типові значення без запитів (зокрема кроки ремонту перезапуску/служби/пісочниці, коли застосовно).
</Tab>
<Tab title="--repair">
@ -38,7 +38,7 @@ openclaw doctor
openclaw doctor --repair
```
Застосувати рекомендовані виправлення без запитів (виправлення + перезапуски, де це безпечно).
Застосувати рекомендовані ремонти без запитів (ремонти та перезапуски, де це безпечно).
</Tab>
<Tab title="--repair --force">
@ -46,7 +46,7 @@ openclaw doctor
openclaw doctor --repair --force
```
Також застосувати агресивні виправлення (перезаписує власні конфіги supervisor).
Також застосувати агресивні ремонти (перезаписує користувацькі конфігурації супервізора).
</Tab>
<Tab title="--non-interactive">
@ -54,7 +54,7 @@ openclaw doctor
openclaw doctor --non-interactive
```
Запустити без запитів і застосувати лише безпечні міграції (нормалізація конфігурації + переміщення стану на диску). Пропускає дії перезапуску/сервісу/sandbox, які потребують підтвердження людини. Міграції застарілого стану запускаються автоматично, коли їх виявлено.
Запустити без запитів і застосувати лише безпечні міграції (нормалізація конфігурації та переміщення стану на диску). Пропускає дії перезапуску/служби/пісочниці, які потребують підтвердження людини. Міграції застарілого стану запускаються автоматично, коли їх виявлено.
</Tab>
<Tab title="--deep">
@ -62,12 +62,12 @@ openclaw doctor
openclaw doctor --deep
```
Сканувати системні сервіси на наявність додаткових установок Gateway (launchd/systemd/schtasks).
Сканувати системні служби на наявність додаткових встановлень gateway (launchd/systemd/schtasks).
</Tab>
</Tabs>
Якщо хочете переглянути зміни перед записом, спочатку відкрийте файл конфігурації:
Якщо хочете переглянути зміни перед записом, спершу відкрийте файл конфігурації:
```bash
cat ~/.openclaw/openclaw.json
@ -77,102 +77,102 @@ cat ~/.openclaw/openclaw.json
<AccordionGroup>
<Accordion title="Health, UI, and updates">
- Необов’язкове попереднє оновлення для git-установок (лише інтерактивно).
- Перевірка актуальності UI-протоколу (перезбирає Control UI, коли схема протоколу новіша).
- Перевірка справності + запит на перезапуск.
- Зведення стану Skills (доступні/відсутні/заблоковані) і стан Plugin.
- Необов’язкове попереднє оновлення для git-встановлень (лише інтерактивно).
- Перевірка актуальності протоколу UI (перезбирає Control UI, коли схема протоколу новіша).
- Перевірка працездатності та запит на перезапуск.
- Зведення стану Skills (придатні/відсутні/заблоковані) і стан Plugin.
</Accordion>
<Accordion title="Config and migrations">
- Нормалізація конфігурації для застарілих значень.
- Міграція конфігурації Talk із застарілих пласких полів `talk.*` до `talk.provider` + `talk.providers.<provider>`.
- Перевірки міграції браузера для застарілих конфігів розширення Chrome і готовності Chrome MCP.
- Міграція конфігурації Talk із застарілих плоских полів `talk.*` у `talk.provider` + `talk.providers.<provider>`.
- Перевірки міграції браузера для застарілих конфігурацій розширення Chrome і готовності Chrome MCP.
- Попередження про перевизначення провайдера OpenCode (`models.providers.opencode` / `models.providers.opencode-go`).
- Попередження про затінення Codex OAuth (`models.providers.openai-codex`).
- Перевірка передумов OAuth TLS для профілів OpenAI Codex OAuth.
- Міграція застарілого стану на диску (sessions/agent dir/авторизація WhatsApp).
- Міграція застарілого стану на диску (сеанси/каталог агента/автентифікація WhatsApp).
- Міграція застарілих ключів контракту маніфесту Plugin (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Міграція застарілого сховища cron (`jobId`, `schedule.cron`, поля delivery/payload верхнього рівня, `provider` у payload, прості резервні webhook-завдання `notify: true`).
- Міграція застарілого сховища Cron (`jobId`, `schedule.cron`, поля delivery/payload верхнього рівня, payload `provider`, прості резервні webhook-завдання `notify: true`).
- Міграція застарілої runtime-політики агента до `agents.defaults.agentRuntime` і `agents.list[].agentRuntime`.
- Очищення застарілої конфігурації Plugin, коли plugins увімкнені; коли `plugins.enabled=false`, застарілі посилання на Plugin вважаються інертною containment-конфігурацією і зберігаються.
- Очищення застарілої конфігурації Plugin, коли Plugins увімкнено; коли `plugins.enabled=false`, застарілі посилання на Plugin вважаються інертною containment-конфігурацією та зберігаються.
</Accordion>
<Accordion title="State and integrity">
- Перевірка lock-файлів сесій і очищення застарілих lock-файлів.
- Відновлення транскриптів сесій для дубльованих гілок переписування prompt, створених ураженими збірками 2026.4.24.
- Перевірки цілісності стану та дозволів (sessions, transcripts, state dir).
- Перевірка lock-файлів сеансів і очищення застарілих блокувань.
- Ремонт транскриптів сеансів для дубльованих гілок prompt-rewrite, створених ураженими збірками 2026.4.24.
- Перевірки цілісності стану та дозволів (сеанси, транскрипти, каталог стану).
- Перевірки дозволів файлу конфігурації (chmod 600) під час локального запуску.
- Справність автентифікації моделей: перевіряє завершення строку дії OAuth, може оновлювати токени, строк дії яких спливає, і повідомляє про cooldown/disabled-стани auth-profile.
- Виявлення додаткового каталогу workspace (`~/openclaw`).
- Стан автентифікації моделі: перевіряє завершення дії OAuth, може оновлювати токени, термін дії яких спливає, і повідомляє про стани cooldown/disabled auth-profile.
- Виявлення додаткового каталогу робочого простору (`~/openclaw`).
</Accordion>
<Accordion title="Gateway, services, and supervisors">
- Відновлення образу sandbox, коли sandboxing увімкнено.
- Міграція застарілого сервісу та виявлення додаткових Gateway.
- Ремонт образу пісочниці, коли sandboxing увімкнено.
- Міграція застарілої служби та виявлення додаткового Gateway.
- Міграція застарілого стану каналу Matrix (у режимі `--fix` / `--repair`).
- Runtime-перевірки Gateway (сервіс установлено, але він не запущений; кешована мітка launchd).
- Попередження стану каналу (перевіряються з запущеного Gateway).
- Аудит конфігурації supervisor (launchd/systemd/schtasks) з необов’язковим відновленням.
- Очищення середовища вбудованого proxy для сервісів Gateway, які захопили shell-значення `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` під час встановлення або оновлення.
- Runtime-перевірки Gateway (службу встановлено, але не запущено; кешована мітка launchd).
- Попередження про стан каналів (зондуються із запущеного gateway).
- Аудит конфігурації супервізора (launchd/systemd/schtasks) із необов’язковим ремонтом.
- Очищення середовища вбудованого проксі для служб gateway, які захопили значення shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` під час встановлення або оновлення.
- Перевірки найкращих практик runtime Gateway (Node проти Bun, шляхи version-manager).
- Діагностика конфліктів порту Gateway (за замовчуванням `18789`).
- Діагностика конфліктів порту Gateway (типово `18789`).
</Accordion>
<Accordion title="Auth, security, and pairing">
- Попередження безпеки для відкритих політик DM.
- Перевірки автентифікації Gateway для режиму локального токена (пропонує генерацію токена, коли джерела токена немає; не перезаписує конфіги token SecretRef).
- Виявлення проблем pairing пристрою (очікувані первинні запити на pairing, очікувані оновлення ролі/обсягу, застарілий drift локального кешу device-token і auth drift paired-record).
- Перевірки автентифікації Gateway для режиму локального токена (пропонує генерацію токена, коли немає джерела токена; не перезаписує конфігурації token SecretRef).
- Виявлення проблем pairing пристрою (очікувані перші запити pair, очікувані підвищення ролі/обсягу, застарілий drift кешу локального device-token і auth drift paired-запису).
</Accordion>
<Accordion title="Workspace and shell">
- Перевірка systemd linger у Linux.
- Перевірка розміру bootstrap-файлу workspace (попередження про обрізання/наближення до ліміту для контекстних файлів).
- Перевірка стану shell completion і автоінсталяція/оновлення.
- Перевірка готовності embedding-провайдера пошуку пам’яті (локальна модель, ключ remote API або QMD-бінарник).
- Перевірки source-установки (невідповідність pnpm workspace, відсутні UI-ресурси, відсутній бінарник tsx).
- Записує оновлену конфігурацію + metadata майстра.
- Перевірка розміру bootstrap-файлу робочого простору (попередження про обрізання/наближення до ліміту для context-файлів).
- Перевірка стану shell completion і автоматичне встановлення/оновлення.
- Перевірка готовності провайдера embedding для пошуку пам’яті (локальна модель, віддалений API-ключ або QMD binary).
- Перевірки встановлення з вихідного коду (невідповідність pnpm workspace, відсутні UI assets, відсутній tsx binary).
- Записує оновлену конфігурацію та метадані wizard.
</Accordion>
</AccordionGroup>
## Backfill і reset Dreams UI
## Backfill і reset в інтерфейсі Dreams
Сцена Dreams у Control UI містить дії **Backfill**, **Reset** і **Clear Grounded** для workflow grounded dreaming. Ці дії використовують RPC-методи gateway у стилі doctor, але вони **не** є частиною CLI-відновлення/міграції `openclaw doctor`.
Сцена Dreams у Control UI містить дії **Backfill**, **Reset** і **Clear Grounded** для робочого процесу grounded dreaming. Ці дії використовують RPC-методи в стилі gateway doctor, але вони **не** є частиною ремонту/міграції CLI `openclaw doctor`.
Що вони роблять:
- **Backfill** сканує історичні файли `memory/YYYY-MM-DD.md` в активному workspace, запускає grounded REM diary pass і записує оборотні backfill-записи в `DREAMS.md`.
- **Reset** видаляє з `DREAMS.md` лише позначені backfill diary entries.
- **Clear Grounded** видаляє лише staged grounded-only короткострокові записи, які походять з історичного replay і ще не накопичили live recall або daily support.
- **Backfill** сканує історичні файли `memory/YYYY-MM-DD.md` в активному робочому просторі, запускає grounded REM diary pass і записує оборотні backfill-записи в `DREAMS.md`.
- **Reset** видаляє з `DREAMS.md` лише ті позначені backfill diary entries.
- **Clear Grounded** видаляє лише staged grounded-only short-term entries, що походять з історичного replay і ще не накопичили live recall або daily support.
Чого вони самі **не** роблять:
- вони не редагують `MEMORY.md`
- вони не запускають повні міграції doctor
- вони не додають автоматично grounded candidates до live short-term promotion store, якщо ви спочатку явно не запустите staged CLI path
- вони автоматично не додають grounded candidates у live short-term promotion store, якщо ви явно не запустите спершу staged CLI path
Якщо хочете, щоб grounded historical replay впливав на звичайний deep promotion lane, натомість використайте CLI-потік:
Якщо хочете, щоб grounded historical replay впливав на звичайну deep promotion lane, натомість використайте CLI flow:
```bash
openclaw memory rem-backfill --path ./memory --stage-short-term
```
Це додає grounded durable candidates до short-term dreaming store, залишаючи `DREAMS.md` поверхнею для перегляду.
Це додає grounded durable candidates у short-term dreaming store, залишаючи `DREAMS.md` поверхнею для перегляду.
## Детальна поведінка та обґрунтування
## Детальна поведінка й обґрунтування
<AccordionGroup>
<Accordion title="0. Optional update (git installs)">
Якщо це git checkout і doctor працює інтерактивно, він пропонує оновитися (fetch/rebase/build) перед запуском doctor.
</Accordion>
<Accordion title="1. Config normalization">
Якщо конфігурація містить застарілі форми значень (наприклад, `messages.ackReaction` без channel-specific override), doctor нормалізує їх до поточної схеми.
Якщо конфігурація містить застарілі форми значень (наприклад `messages.ackReaction` без перевизначення для конкретного каналу), doctor нормалізує їх до поточної схеми.
Це включає застарілі пласкі поля Talk. Поточна публічна конфігурація Talk — це `talk.provider` + `talk.providers.<provider>`. Doctor переписує старі форми `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` у provider map.
Це включає застарілі плоскі поля Talk. Поточна публічна конфігурація Talk — це `talk.provider` + `talk.providers.<provider>`. Doctor переписує старі форми `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` у мапу провайдера.
</Accordion>
<Accordion title="2. Legacy config key migrations">
Коли конфігурація містить застарілі ключі, інші команди відмовляються запускатися і просять вас виконати `openclaw doctor`.
Коли конфігурація містить застарілі ключі, інші команди відмовляються запускатися та просять виконати `openclaw doctor`.
Doctor:
@ -180,7 +180,7 @@ openclaw memory rem-backfill --path ./memory --stage-short-term
- Покаже застосовану міграцію.
- Перепише `~/.openclaw/openclaw.json` з оновленою схемою.
Gateway також автоматично запускає міграції doctor під час старту, коли виявляє застарілий формат конфігурації, тож застарілі конфіги відновлюються без ручного втручання. Міграції сховища cron-завдань обробляються командою `openclaw doctor --fix`.
Gateway також автоматично запускає міграції doctor під час старту, коли виявляє застарілий формат конфігурації, тож застарілі конфігурації ремонтуються без ручного втручання. Міграції сховища завдань Cron обробляються командою `openclaw doctor --fix`.
Поточні міграції:
@ -205,86 +205,86 @@ openclaw memory rem-backfill --path ./memory --stage-short-term
- `plugins.entries.voice-call.config.streaming.sttProvider``plugins.entries.voice-call.config.streaming.provider`
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold``plugins.entries.voice-call.config.streaming.providers.openai.*`
- `bindings[].match.accountID``bindings[].match.accountId`
- Для каналів із названими `accounts`, але залишковими top-level channel values для одного акаунта, перемістити ці account-scoped values у promoted account, вибраний для цього каналу (`accounts.default` для більшості каналів; Matrix може зберегти наявну matching named/default ціль)
- Для каналів із названими `accounts`, але з залишковими top-level значеннями каналу для одного облікового запису, перемістити ці account-scoped значення в promoted account, вибраний для цього каналу (`accounts.default` для більшості каналів; Matrix може зберегти наявну відповідну named/default ціль)
- `identity``agents.list[].identity`
- `agent.*``agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks` → `agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
- видалити `agents.defaults.llm`; використовуйте `models.providers.<id>.timeoutSeconds` для таймаутів повільного провайдера/моделі
- видалити `agents.defaults.llm`; використовуйте `models.providers.<id>.timeoutSeconds` для повільних provider/model timeouts
- `browser.ssrfPolicy.allowPrivateNetwork``browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
- `browser.profiles.*.driver: "extension"``"existing-session"`
- видалити `browser.relayBindHost` (застаріле налаштування extension relay)
- застаріле `models.providers.*.api: "openai"``"openai-completions"` (startup Gateway також пропускає провайдерів, у яких `api` встановлено на майбутнє або невідоме enum-значення, замість fail closed)
- видалити `browser.relayBindHost` (застаріле налаштування relay extension)
- застаріле `models.providers.*.api: "openai"``"openai-completions"` (startup gateway також пропускає провайдерів, чий `api` задано як майбутнє або невідоме enum-значення, замість fail closed)
Попередження doctor також містять рекомендації account-default для multi-account каналів:
Попередження doctor також містять вказівки щодо account-default для multi-account channels:
- Якщо налаштовано два або більше записів `channels.<channel>.accounts` без `channels.<channel>.defaultAccount` або `accounts.default`, doctor попереджає, що fallback routing може вибрати неочікуваний акаунт.
- Якщо `channels.<channel>.defaultAccount` встановлено на невідомий account ID, doctor попереджає і перелічує налаштовані account IDs.
- Якщо налаштовано два або більше записів `channels.<channel>.accounts` без `channels.<channel>.defaultAccount` або `accounts.default`, doctor попереджає, що fallback routing може вибрати неочікуваний обліковий запис.
- Якщо `channels.<channel>.defaultAccount` установлено на невідомий ID облікового запису, doctor попереджає та перелічує налаштовані ID облікових записів.
</Accordion>
<Accordion title="2b. Перевизначення провайдера OpenCode">
Якщо ви вручну додали `models.providers.opencode`, `opencode-zen` або `opencode-go`, це перевизначає вбудований каталог OpenCode з `@mariozechner/pi-ai`. Це може примусово спрямувати моделі до неправильного API або обнулити вартість. Doctor попереджає, щоб ви могли прибрати перевизначення й відновити маршрутизацію API та вартість для кожної моделі.
Якщо ви вручну додали `models.providers.opencode`, `opencode-zen` або `opencode-go`, це перевизначає вбудований каталог OpenCode з `@mariozechner/pi-ai`. Це може примусово спрямувати моделі до неправильного API або обнулити витрати. Doctor попереджає, щоб ви могли прибрати перевизначення й відновити маршрутизацію API та витрати для кожної моделі.
</Accordion>
<Accordion title="2c. Міграція браузера та готовність Chrome MCP">
Якщо конфігурація браузера все ще вказує на видалений шлях розширення Chrome, doctor нормалізує її до поточної моделі підключення Chrome MCP локально на хості:
Якщо ваша конфігурація браузера досі вказує на вилучений шлях розширення Chrome, doctor нормалізує її до поточної моделі підключення Chrome MCP на локальному хості:
- `browser.profiles.*.driver: "extension"` стає `"existing-session"`
- `browser.relayBindHost` видаляється
- `browser.relayBindHost` вилучається
Doctor також перевіряє локальний на хості шлях Chrome MCP, коли ви використовуєте `defaultProfile: "user"` або налаштований профіль `existing-session`:
Doctor також перевіряє шлях Chrome MCP на локальному хості, коли ви використовуєте `defaultProfile: "user"` або налаштований профіль `existing-session`:
- перевіряє, чи встановлено Google Chrome на тому самому хості для стандартних профілів автоматичного підключення
- перевіряє, чи Google Chrome встановлено на тому самому хості для стандартних профілів автоматичного підключення
- перевіряє виявлену версію Chrome і попереджає, якщо вона нижча за Chrome 144
- нагадує ввімкнути віддалене налагодження на сторінці інспектування браузера (наприклад, `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` або `edge://inspect/#remote-debugging`)
- нагадує ввімкнути віддалене налагодження на сторінці перевірки браузера (наприклад `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` або `edge://inspect/#remote-debugging`)
Doctor не може ввімкнути для вас налаштування на боці Chrome. Локальний на хості Chrome MCP усе ще потребує:
Doctor не може ввімкнути налаштування на стороні Chrome за вас. Chrome MCP на локальному хості досі потребує:
- браузера на основі Chromium версії 144+ на хості gateway/node
- локально запущеного браузера
- увімкненого віддаленого налагодження в цьому браузері
- браузер на основі Chromium 144+ на хості Gateway/Node
- браузер, запущений локально
- віддалене налагодження, увімкнене в цьому браузері
- підтвердження першого запиту згоди на підключення в браузері
Готовність тут стосується лише локальних передумов підключення. Existing-session зберігає поточні обмеження маршрутів Chrome MCP; розширені маршрути, як-от `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії, усе ще потребують керованого браузера або сирого профілю CDP.
Готовність тут стосується лише передумов локального підключення. Existing-session зберігає поточні обмеження маршрутів Chrome MCP; розширені маршрути, як-от `responsebody`, експорт PDF, перехоплення завантажень і пакетні дії, досі потребують керованого браузера або сирого профілю CDP.
Ця перевірка **не** застосовується до Docker, sandbox, remote-browser чи інших headless-потоків. Вони й надалі використовують сирий CDP.
Ця перевірка **не** застосовується до Docker, sandbox, remote-browser або інших headless-потоків. Вони й надалі використовують сирий CDP.
</Accordion>
<Accordion title="2d. Передумови TLS для OAuth">
Коли налаштовано профіль OpenAI Codex OAuth, doctor перевіряє кінцеву точку авторизації OpenAI, щоб переконатися, що локальний стек TLS Node/OpenSSL може перевірити ланцюжок сертифікатів. Якщо перевірка завершується помилкою сертифіката (наприклад, `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, протермінований сертифікат або самопідписаний сертифікат), doctor виводить інструкції з виправлення для конкретної платформи. На macOS із Homebrew Node виправленням зазвичай є `brew postinstall ca-certificates`. З `--deep` перевірка виконується навіть тоді, коли gateway справний.
<Accordion title="2d. Передумови OAuth TLS">
Коли налаштовано профіль OpenAI Codex OAuth, doctor перевіряє endpoint авторизації OpenAI, щоб підтвердити, що локальний стек Node/OpenSSL TLS може перевірити ланцюг сертифікатів. Якщо перевірка завершується помилкою сертифіката (наприклад `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, прострочений сертифікат або самопідписаний сертифікат), doctor друкує поради з виправлення для конкретної платформи. На macOS із Homebrew Node виправленням зазвичай є `brew postinstall ca-certificates`. З `--deep` перевірка виконується навіть якщо gateway справний.
</Accordion>
<Accordion title="2e. Перевизначення провайдера Codex OAuth">
Якщо раніше ви додали застарілі налаштування транспорту OpenAI у `models.providers.openai-codex`, вони можуть затіняти вбудований шлях провайдера Codex OAuth, який новіші випуски використовують автоматично. Doctor попереджає, коли бачить ці старі налаштування транспорту поруч із Codex OAuth, щоб ви могли прибрати або переписати застаріле перевизначення транспорту й повернути вбудовану маршрутизацію та резервну поведінку. Користувацькі проксі та перевизначення лише заголовків досі підтримуються й не спричиняють це попередження.
Якщо раніше ви додали застарілі транспортні налаштування OpenAI у `models.providers.openai-codex`, вони можуть затіняти вбудований шлях провайдера Codex OAuth, який новіші випуски використовують автоматично. Doctor попереджає, коли бачить ці старі транспортні налаштування разом із Codex OAuth, щоб ви могли прибрати або переписати застаріле транспортне перевизначення й повернути вбудовану поведінку маршрутизації/резервного переходу. Користувацькі проксі та перевизначення лише заголовків досі підтримуються й не спричиняють це попередження.
</Accordion>
<Accordion title="2f. Попередження маршрутів Plugin Codex">
Коли ввімкнено вбудований Plugin Codex, doctor також перевіряє, чи основні посилання на моделі `openai-codex/*` усе ще розв’язуються через стандартний runner PI. Така комбінація коректна, коли вам потрібна автентифікація Codex OAuth/підписки через PI, але її легко сплутати з нативним app-server harness Codex. Doctor попереджає та вказує на явну форму app-server: `openai/*` плюс `agentRuntime.id: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`.
Коли ввімкнено вбудований Plugin Codex, doctor також перевіряє, чи основні посилання на моделі `openai-codex/*` досі розв'язуються через стандартний runner PI. Така комбінація коректна, коли ви хочете використовувати Codex OAuth/автентифікацію підписки через PI, але її легко сплутати з нативним harness app-server Codex. Doctor попереджає й указує на явну форму app-server: `openai/*` плюс `agentRuntime.id: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`.
Doctor не виправляє це автоматично, бо обидва маршрути коректні:
- `openai-codex/*` + PI означає «використовувати автентифікацію Codex OAuth/підписки через звичайний runner OpenClaw».
- `openai-codex/*` + PI означає «використовувати Codex OAuth/автентифікацію підписки через звичайний runner OpenClaw».
- `openai/*` + `runtime: "codex"` означає «запустити вбудований turn через нативний app-server Codex».
- `/codex ...` означає «керувати нативною розмовою Codex із чату або привязати її».
- `/codex ...` означає «керувати нативною розмовою Codex із чату або прив'язати її».
- `/acp ...` або `runtime: "acp"` означає «використовувати зовнішній адаптер ACP/acpx».
Якщо зявляється попередження, виберіть потрібний маршрут і вручну відредагуйте конфігурацію. Залиште попередження без змін, коли PI Codex OAuth є навмисним.
Якщо з'являється попередження, виберіть потрібний маршрут і відредагуйте конфігурацію вручну. Залишайте попередження без змін, коли PI Codex OAuth є навмисним.
</Accordion>
<Accordion title="3. Міграції застарілого стану (структура диска)">
Doctor може мігрувати старіші структури на диску до поточної структури:
Doctor може мігрувати старіші дискові структури в поточну структуру:
- Сховище сеансів + транскрипти:
- з `~/.openclaw/sessions/` до `~/.openclaw/agents/<agentId>/sessions/`
- Каталог агента:
- з `~/.openclaw/agent/` до `~/.openclaw/agents/<agentId>/agent/`
- Стан автентифікації WhatsApp (Baileys):
- зі застарілого `~/.openclaw/credentials/*.json` (крім `oauth.json`)
- до `~/.openclaw/credentials/whatsapp/<accountId>/...` (типовий ідентифікатор облікового запису: `default`)
- із застарілих `~/.openclaw/credentials/*.json` (крім `oauth.json`)
- до `~/.openclaw/credentials/whatsapp/<accountId>/...` (стандартний id облікового запису: `default`)
Ці міграції виконуються за принципом максимально можливих зусиль і є ідемпотентними; doctor видаватиме попередження, коли залишає застарілі каталоги як резервні копії. Gateway/CLI також автоматично мігрує застарілі сеанси + каталог агента під час запуску, щоб історія/автентифікація/моделі потрапляли в шлях для окремого агента без ручного запуску doctor. Автентифікацію WhatsApp навмисно мігрує лише `openclaw doctor`. Нормалізація постачальника розмов/мапи постачальників тепер порівнює за структурною рівністю, тому відмінності лише в порядку ключів більше не запускають повторні бездіяльні зміни `doctor --fix`.
Ці міграції виконуються за принципом best-effort і є ідемпотентними; doctor видаватиме попередження, коли залишає будь-які застарілі папки як резервні копії. Gateway/CLI також автоматично мігрує застарілі сеанси + каталог агента під час запуску, тож історія/автентифікація/моделі потрапляють у шлях окремого агента без ручного запуску doctor. Автентифікація WhatsApp навмисно мігрується лише через `openclaw doctor`. Нормалізація провайдера розмов/мапи провайдерів тепер порівнює за структурною рівністю, тому відмінності лише в порядку ключів більше не спричиняють повторних no-op змін `doctor --fix`.
</Accordion>
<Accordion title="3a. Міграції застарілих маніфестів Plugin">
Doctor сканує всі встановлені маніфести Plugin на наявність застарілих ключів можливостей верхнього рівня (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`). Коли їх знайдено, він пропонує перемістити їх до об’єкта `contracts` і переписати файл маніфесту на місці. Ця міграція є ідемпотентною; якщо ключ `contracts` уже має ті самі значення, застарілий ключ видаляється без дублювання даних.
Doctor сканує всі встановлені маніфести Plugin на наявність застарілих ключів можливостей верхнього рівня (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`). Коли їх знайдено, він пропонує перемістити їх в об'єкт `contracts` і переписати файл маніфесту на місці. Ця міграція ідемпотентна; якщо ключ `contracts` уже має ті самі значення, застарілий ключ вилучається без дублювання даних.
</Accordion>
<Accordion title="3b. Міграції застарілого сховища cron">
<Accordion title="3b. Міграції застарілого сховища Cron">
Doctor також перевіряє сховище завдань cron (`~/.openclaw/cron/jobs.json` за замовчуванням або `cron.store`, якщо перевизначено) на наявність старих форм завдань, які планувальник досі приймає для сумісності.
Поточні очищення cron включають:
@ -293,194 +293,194 @@ openclaw memory rem-backfill --path ./memory --stage-short-term
- `schedule.cron``schedule.expr`
- поля payload верхнього рівня (`message`, `model`, `thinking`, ...) → `payload`
- поля delivery верхнього рівня (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
- псевдоніми delivery для `provider` у payload → явний `delivery.channel`
- прості застарілі резервні завдання webhook з `notify: true` → явний `delivery.mode="webhook"` з `delivery.to=cron.webhook`
- псевдоніми delivery для payload `provider` → явний `delivery.channel`
- прості застарілі резервні webhook-завдання `notify: true` → явний `delivery.mode="webhook"` з `delivery.to=cron.webhook`
Doctor автоматично мігрує завдання `notify: true` лише тоді, коли може зробити це без зміни поведінки. Якщо завдання поєднує застарілий резервний notify з наявним режимом delivery, що не є webhook, doctor попереджає й залишає це завдання для ручної перевірки.
Doctor автоматично мігрує завдання `notify: true` лише тоді, коли може зробити це без зміни поведінки. Якщо завдання поєднує застарілий резервний notify з наявним режимом delivery, що не є webhook, doctor попереджає й залишає це завдання для ручного перегляду.
</Accordion>
<Accordion title="3c. Очищення блокувань сеансів">
Doctor сканує кожен каталог сеансів агента на наявність застарілих файлів блокування запису — файлів, що залишилися після аварійного завершення сеансу. Для кожного знайденого файлу блокування він повідомляє: шлях, PID, чи PID досі активний, вік блокування та чи вважається воно застарілим (мертвий PID або старше 30 хвилин). У режимі `--fix` / `--repair` він автоматично видаляє застарілі файли блокування; інакше друкує примітку й вказує повторно запустити з `--fix`.
Doctor сканує кожен каталог сеансів агента на наявність застарілих файлів блокування запису — файлів, що лишилися після аварійного завершення сеансу. Для кожного знайденого файлу блокування він повідомляє: шлях, PID, чи PID досі активний, вік блокування та чи вважається воно застарілим (мертвий PID або старше ніж 30 хвилин). У режимі `--fix` / `--repair` він автоматично видаляє застарілі файли блокування; інакше друкує примітку й просить повторно запустити з `--fix`.
</Accordion>
<Accordion title="3d. Відновлення гілки транскрипту сеансу">
Doctor сканує JSONL-файли сеансів агента на дубльовану форму гілки, створену помилкою перезапису транскрипту запиту 2026.4.24: покинутий користувацький хід із внутрішнім runtime-контекстом OpenClaw плюс активний сусідній хід, що містить той самий видимий користувацький запит. У режимі `--fix` / `--repair` doctor створює резервну копію кожного ураженого файлу поруч з оригіналом і переписує транскрипт до активної гілки, щоб історія Gateway і зчитувачі пам’яті більше не бачили дубльовані ходи.
<Accordion title="3d. Виправлення гілок транскриптів сеансів">
Doctor сканує JSONL-файли сеансів агента на дубльовану форму гілки, створену помилкою переписування транскрипта prompt 2026.4.24: покинутий turn користувача з внутрішнім runtime-контекстом OpenClaw плюс активний sibling із тим самим видимим prompt користувача. У режимі `--fix` / `--repair` doctor створює резервну копію кожного ураженого файлу поруч з оригіналом і переписує транскрипт на активну гілку, щоб історія gateway і читачі пам'яті більше не бачили дубльованих turn.
</Accordion>
<Accordion title="4. Перевірки цілісності стану (збереження сеансів, маршрутизація та безпека)">
Каталог стану — це операційний стовбур. Якщо він зникне, ви втратите сеанси, облікові дані, журнали та конфігурацію (якщо не маєте резервних копій деінде).
Каталог стану — це операційний стовбур системи. Якщо він зникне, ви втратите сеанси, облікові дані, журнали й конфігурацію (якщо не маєте резервних копій деінде).
Doctor перевіряє:
- **Каталог стану відсутній**: попереджає про катастрофічну втрату стану, пропонує повторно створити каталог і нагадує, що не може відновити відсутні дані.
- **Дозволи каталогу стану**: перевіряє можливість запису; пропонує виправити дозволи (і видає підказку `chown`, коли виявлено невідповідність власника/групи).
- **Каталог стану macOS із хмарною синхронізацією**: попереджає, коли стан визначається під iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) або `~/Library/CloudStorage/...`, оскільки шляхи з синхронізацією можуть спричиняти повільніший I/O та перегони блокування/синхронізації.
- **Каталог стану Linux на SD або eMMC**: попереджає, коли стан визначається на джерелі монтування `mmcblk*`, оскільки випадковий I/O на SD або eMMC може бути повільнішим і швидше зношуватися під час записів сеансів і облікових даних.
- **Каталоги сеансів відсутні**: `sessions/` і каталог сховища сеансів потрібні для збереження історії та уникнення збоїв `ENOENT`.
- **Невідповідність транскриптів**: попереджає, коли в нещодавніх записах сеансів бракує файлів транскриптів.
- **Основний сеанс "1-line JSONL"**: позначає випадок, коли основний транскрипт має лише один рядок (історія не накопичується).
- **Кілька каталогів стану**: попереджає, коли в різних домашніх каталогах існує кілька папок `~/.openclaw` або коли `OPENCLAW_STATE_DIR` вказує в інше місце (історія може розділитися між інсталяціями).
- **Каталог стану macOS, синхронізований із хмарою**: попереджає, коли стан розв'язується під iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) або `~/Library/CloudStorage/...`, бо шляхи з синхронізацією можуть спричиняти повільніший I/O і гонки блокування/синхронізації.
- **Каталог стану Linux на SD або eMMC**: попереджає, коли стан розв'язується до джерела монтування `mmcblk*`, бо випадковий I/O на SD або eMMC може бути повільнішим і швидше зношувати носій під час записів сеансів і облікових даних.
- **Каталоги сеансів відсутні**: `sessions/` і каталог сховища сеансів потрібні для збереження історії та уникнення аварій `ENOENT`.
- **Невідповідність транскрипта**: попереджає, коли в останніх записах сеансів бракує файлів транскриптів.
- **Основний сеанс "1-line JSONL"**: позначає випадки, коли основний транскрипт має лише один рядок (історія не накопичується).
- **Кілька каталогів стану**: попереджає, коли кілька папок `~/.openclaw` існують у різних домашніх каталогах або коли `OPENCLAW_STATE_DIR` указує в інше місце (історія може розділитися між інсталяціями).
- **Нагадування про віддалений режим**: якщо `gateway.mode=remote`, doctor нагадує запустити його на віддаленому хості (стан зберігається там).
- **Дозволи файлу конфігурації**: попереджає, якщо `~/.openclaw/openclaw.json` доступний для читання групі/усім, і пропонує посилити дозволи до `600`.
- **Дозволи файлу конфігурації**: попереджає, якщо `~/.openclaw/openclaw.json` доступний для читання групі/всім, і пропонує посилити дозволи до `600`.
</Accordion>
<Accordion title="5. Справність автентифікації моделей (завершення терміну OAuth)">
Doctor перевіряє профілі OAuth у сховищі автентифікації, попереджає, коли термін дії токенів завершується/завершився, і може оновити їх, коли це безпечно. Якщо профіль Anthropic OAuth/токена застарів, він пропонує ключ Anthropic API або шлях setup-token Anthropic. Запити на оновлення зявляються лише під час інтерактивного запуску (TTY); `--non-interactive` пропускає спроби оновлення.
<Accordion title="5. Стан автентифікації моделей (закінчення терміну OAuth)">
Doctor перевіряє профілі OAuth у сховищі автентифікації, попереджає, коли термін дії токенів наближається до завершення або вже завершився, і може оновити їх, коли це безпечно. Якщо профіль Anthropic OAuth/токена застарів, він пропонує ключ API Anthropic або шлях setup-token Anthropic. Запити на оновлення з'являються лише під час інтерактивного запуску (TTY); `--non-interactive` пропускає спроби оновлення.
Коли оновлення OAuth остаточно не вдається (наприклад, `refresh_token_reused`, `invalid_grant` або постачальник повідомляє, що потрібно ввійти знову), doctor повідомляє, що потрібна повторна автентифікація, і друкує точну команду `openclaw models auth login --provider ...`, яку слід виконати.
Коли оновлення OAuth завершується остаточною помилкою (наприклад `refresh_token_reused`, `invalid_grant` або провайдер повідомляє, що потрібно знову ввійти), doctor повідомляє, що потрібна повторна автентифікація, і друкує точну команду `openclaw models auth login --provider ...`, яку потрібно виконати.
Doctor також повідомляє про профілі автентифікації, які тимчасово непридатні через:
Doctor також повідомляє про профілі автентифікації, які тимчасово непридатні до використання через:
- короткі періоди очікування (обмеження швидкості/тайм-аути/збої автентифікації)
- довші вимкнення (збої білінгу/кредитів)
- короткі cooldown (обмеження частоти/тайм-аути/помилки автентифікації)
- довші вимкнення (помилки billing/credit)
</Accordion>
<Accordion title="6. Перевірка моделі hooks">
Якщо `hooks.gmail.model` задано, doctor перевіряє посилання на модель за каталогом і allowlist та попереджає, коли його не вдасться розв’язати або воно заборонене.
Якщо встановлено `hooks.gmail.model`, doctor перевіряє посилання на модель за каталогом і allowlist та попереджає, коли воно не розв'язується або не дозволене.
</Accordion>
<Accordion title="7. Відновлення образу sandbox">
Коли sandboxing увімкнено, doctor перевіряє Docker-образи та пропонує зібрати або перемкнутися на застарілі назви, якщо поточного образу бракує.
<Accordion title="7. Виправлення образу sandbox">
Коли sandboxing увімкнено, doctor перевіряє образи Docker і пропонує зібрати або перемкнутися на застарілі назви, якщо поточний образ відсутній.
</Accordion>
<Accordion title="7b. Runtime-залежності bundled plugins">
Doctor перевіряє runtime-залежності лише для bundled plugins, які активні в поточній конфігурації або ввімкнені за замовчуванням у їхньому bundled manifest, наприклад `plugins.entries.discord.enabled: true`, застарілий `channels.discord.enabled: true` або default-enabled bundled provider. Якщо якихось бракує, doctor повідомляє про пакети та встановлює їх у режимі `openclaw doctor --fix` / `openclaw doctor --repair`. Зовнішні plugins усе ще використовують `openclaw plugins install` / `openclaw plugins update`; doctor не встановлює залежності для довільних шляхів plugin.
<Accordion title="7b. Runtime-залежності вбудованих Plugin">
Doctor перевіряє runtime-залежності лише для вбудованих Plugin, активних у поточній конфігурації або ввімкнених за замовчуванням у їхньому вбудованому маніфесті, наприклад `plugins.entries.discord.enabled: true`, застарілий `channels.discord.enabled: true`, налаштовані `models.providers.*` / посилання на модель агента або вбудований Plugin, увімкнений за замовчуванням без власності провайдера. Якщо чогось бракує, doctor повідомляє пакети й установлює їх у режимі `openclaw doctor --fix` / `openclaw doctor --repair`. Зовнішні Plugin досі використовують `openclaw plugins install` / `openclaw plugins update`; doctor не встановлює залежності для довільних шляхів Plugin.
Під час виправлення doctor інсталяції npm для вбудованих runtime-залежностей показують прогрес spinner у TTY-сеансах і періодичний рядковий прогрес у piped/headless виводі. Gateway і локальний CLI також можуть на вимогу виправляти runtime-залежності активних вбудованих plugin перед імпортом вбудованого plugin. Ці інсталяції обмежені коренем інсталяції runtime plugin, виконуються з вимкненими scripts, не записують package lock і захищені блокуванням install-root, щоб одночасні запуски CLI або Gateway не змінювали те саме дерево `node_modules` одночасно.
Під час відновлення doctor інсталяції npm для вбудованих залежностей середовища виконання показують прогрес спінера в TTY-сеансах і періодичний рядковий прогрес у конвеєрному/headless-виводі. Gateway і локальний CLI також можуть на вимогу відновлювати активні залежності середовища виконання вбудованих Plugin перед імпортом вбудованого Plugin. Ці інсталяції обмежені коренем інсталяції середовища виконання Plugin, запускаються з вимкненими скриптами, не записують package lock і захищені блокуванням кореня інсталяції, щоб одночасні запуски CLI або Gateway не змінювали одне й те саме дерево `node_modules` одночасно.
</Accordion>
<Accordion title="8. Міграції служби Gateway і підказки з очищення">
Doctor виявляє застарілі служби gateway (launchd/systemd/schtasks) і пропонує видалити їх та встановити службу OpenClaw, використовуючи поточний порт gateway. Він також може сканувати додаткові gateway-подібні служби й виводити підказки з очищення. Gateway-служби OpenClaw з іменами профілів вважаються повноцінними й не позначаються як "extra."
<Accordion title="8. Міграції сервісу Gateway і підказки з очищення">
Doctor виявляє застарілі сервіси gateway (launchd/systemd/schtasks) і пропонує видалити їх та встановити сервіс OpenClaw із поточним портом gateway. Він також може сканувати додаткові gateway-подібні сервіси й виводити підказки з очищення. Сервіси OpenClaw gateway з іменами профілів вважаються повноцінними й не позначаються як "додаткові".
У Linux, якщо gateway-служба рівня користувача відсутня, але існує системна gateway-служба OpenClaw, doctor не встановлює другу службу рівня користувача автоматично. Перевірте за допомогою `openclaw gateway status --deep` або `openclaw doctor --deep`, потім видаліть дублікат або задайте `OPENCLAW_SERVICE_REPAIR_POLICY=external`, коли системний supervisor керує життєвим циклом gateway.
У Linux, якщо сервіс gateway рівня користувача відсутній, але існує сервіс OpenClaw gateway системного рівня, doctor не встановлює другий сервіс рівня користувача автоматично. Перевірте за допомогою `openclaw gateway status --deep` або `openclaw doctor --deep`, а потім видаліть дублікат або задайте `OPENCLAW_SERVICE_REPAIR_POLICY=external`, коли життєвим циклом gateway керує системний супервізор.
</Accordion>
<Accordion title="8b. Міграція Startup Matrix">
Коли обліковий запис каналу Matrix має pending або actionable міграцію застарілого стану, doctor (у режимі `--fix` / `--repair`) створює знімок перед міграцією, а потім запускає best-effort кроки міграції: міграцію застарілого стану Matrix і підготовку застарілого зашифрованого стану. Обидва кроки не є фатальними; помилки журналюються, а запуск продовжується. У режимі лише читання (`openclaw doctor` без `--fix`) ця перевірка повністю пропускається.
<Accordion title="8b. Міграція запуску Matrix">
Коли обліковий запис каналу Matrix має очікувану або доступну до виконання міграцію застарілого стану, doctor (у режимі `--fix` / `--repair`) створює знімок перед міграцією, а потім запускає найкращі можливі кроки міграції: міграцію застарілого стану Matrix і підготовку застарілого зашифрованого стану. Обидва кроки не є фатальними; помилки журналюються, а запуск продовжується. У режимі лише для читання (`openclaw doctor` без `--fix`) ця перевірка повністю пропускається.
</Accordion>
<Accordion title="8c. Спарювання пристроїв і дрейф автентифікації">
Doctor тепер перевіряє стан спарювання пристроїв як частину звичайного проходу перевірки справності.
<Accordion title="8c. Сполучення пристроїв і розбіжність автентифікації">
Doctor тепер перевіряє стан сполучення пристроїв як частину звичайного проходу перевірки справності.
Що він повідомляє:
- pending запити першого спарювання
- pending підвищення ролі для вже спарених пристроїв
- pending розширення scope для вже спарених пристроїв
- виправлення невідповідності публічного ключа, коли id пристрою все ще збігається, але ідентичність пристрою більше не відповідає затвердженому запису
- спарені записи без активного токена для затвердженої ролі
- спарені токени, чиї scopes відхилилися від затвердженої базової лінії спарювання
- локальні кешовані записи device-token для поточної машини, що передують ротації токена на боці gateway або містять застарілі метадані scope
- очікувані запити першого сполучення
- очікувані підвищення ролей для вже сполучених пристроїв
- очікувані підвищення областей доступу для вже сполучених пристроїв
- виправлення невідповідності публічного ключа, коли ідентифікатор пристрою все ще збігається, але ідентичність пристрою вже не збігається із затвердженим записом
- сполучені записи без активного токена для затвердженої ролі
- сполучені токени, області доступу яких відхилилися від затвердженого базового рівня сполучення
- локальні кешовані записи токенів пристрою для поточної машини, які передують ротації токена на боці gateway або містять застарілі метадані областей доступу
Doctor не схвалює запити спарювання автоматично й не ротує device tokens автоматично. Натомість він виводить точні наступні кроки:
Doctor не схвалює запити сполучення автоматично й не виконує автоматичну ротацію токенів пристроїв. Натомість він виводить точні наступні кроки:
- перегляньте pending запити за допомогою `openclaw devices list`
- схваліть точний запит за допомогою `openclaw devices approve <requestId>`
- згенеруйте свіжий токен ротацією за допомогою `openclaw devices rotate --device <deviceId> --role <role>`
- видаліть і повторно схваліть застарілий запис за допомогою `openclaw devices remove <deviceId>`
- переглянути очікувані запити за допомогою `openclaw devices list`
- схвалити точний запит за допомогою `openclaw devices approve <requestId>`
- згенерувати свіжий токен ротацією за допомогою `openclaw devices rotate --device <deviceId> --role <role>`
- видалити й повторно схвалити застарілий запис за допомогою `openclaw devices remove <deviceId>`
Це закриває поширену прогалину "already paired but still getting pairing required": doctor тепер відрізняє перше спарювання від pending підвищень ролі/scope та від дрейфу застарілого токена/ідентичності пристрою.
Це закриває поширену прогалину "уже сполучено, але все ще потрібне сполучення": doctor тепер відрізняє перше сполучення від очікуваних підвищень ролі/області доступу та від розбіжності застарілого токена/ідентичності пристрою.
</Accordion>
<Accordion title="9. Попередження безпеки">
Doctor видає попередження, коли provider відкритий для DM без allowlist або коли policy налаштовано небезпечним способом.
Doctor виводить попередження, коли провайдер відкритий для DM без списку дозволених адресатів або коли політика налаштована небезпечним способом.
</Accordion>
<Accordion title="10. systemd linger (Linux)">
Якщо запуск відбувається як служба користувача systemd, doctor гарантує, що lingering увімкнено, щоб gateway залишався активним після виходу з системи.
Якщо запущено як сервіс користувача systemd, doctor забезпечує ввімкнення linger, щоб gateway залишався активним після виходу із системи.
</Accordion>
<Accordion title="11. Стан workspace (skills, plugins і застарілі каталоги)">
Doctor виводить підсумок стану workspace для agent за замовчуванням:
<Accordion title="11. Стан робочого простору (skills, plugins і застарілі каталоги)">
Doctor виводить підсумок стану робочого простору для стандартного агента:
- **Стан Skills**: рахує eligible, missing-requirements і allowlist-blocked skills.
- **Застарілі каталоги workspace**: попереджає, коли `~/openclaw` або інші застарілі каталоги workspace існують поруч із поточним workspace.
- **Стан Plugin**: рахує enabled/disabled/errored plugins; перелічує plugin IDs для будь-яких помилок; повідомляє можливості bundled plugin.
- **Попередження сумісності Plugin**: позначає plugins, які мають проблеми сумісності з поточним runtime.
- **Діагностика Plugin**: показує будь-які попередження або помилки під час завантаження, видані registry plugin.
- **Стан Skills**: підраховує придатні, з відсутніми вимогами та заблоковані списком дозволених Skills.
- **Застарілі каталоги робочого простору**: попереджає, коли `~/openclaw` або інші застарілі каталоги робочого простору існують поруч із поточним робочим простором.
- **Стан Plugin**: підраховує ввімкнені/вимкнені/з помилками plugins; перелічує ID Plugin для будь-яких помилок; повідомляє можливості пакетного Plugin.
- **Попередження сумісності Plugin**: позначає plugins, що мають проблеми сумісності з поточним середовищем виконання.
- **Діагностика Plugin**: показує будь-які попередження або помилки під час завантаження, які видав реєстр Plugin.
</Accordion>
<Accordion title="11b. Розмір bootstrap-файлу">
Doctor перевіряє, чи bootstrap-файли workspace (наприклад, `AGENTS.md`, `CLAUDE.md` або інші injected context files) наближаються до налаштованого бюджету символів або перевищують його. Він повідомляє для кожного файлу raw vs. injected кількість символів, відсоток обрізання, причину обрізання (`max/file` або `max/total`) і загальну кількість injected символів як частку загального бюджету. Коли файли обрізані або близькі до ліміту, doctor виводить поради щодо налаштування `agents.defaults.bootstrapMaxChars` і `agents.defaults.bootstrapTotalMaxChars`.
<Accordion title="11b. Розмір bootstrap-файла">
Doctor перевіряє, чи bootstrap-файли робочого простору (наприклад `AGENTS.md`, `CLAUDE.md` або інші впроваджені контекстні файли) близькі до налаштованого бюджету символів або перевищують його. Він повідомляє для кожного файла кількість сирих і впроваджених символів, відсоток обрізання, причину обрізання (`max/file` або `max/total`) і загальну кількість впроваджених символів як частку від загального бюджету. Коли файли обрізані або близькі до ліміту, doctor виводить поради щодо налаштування `agents.defaults.bootstrapMaxChars` і `agents.defaults.bootstrapTotalMaxChars`.
</Accordion>
<Accordion title="11d. Очищення застарілих channel plugin">
Коли `openclaw doctor --fix` видаляє відсутній channel plugin, він також видаляє dangling channel-scoped config, який посилався на цей plugin: записи `channels.<id>`, heartbeat targets, що називали channel, і overrides `agents.*.models["<channel>/*"]`. Це запобігає boot loops Gateway, коли channel runtime зник, але config усе ще просить gateway прив’язатися до нього.
<Accordion title="11d. Очищення застарілого Plugin каналу">
Коли `openclaw doctor --fix` видаляє відсутній Plugin каналу, він також видаляє висячі налаштування в області каналу, які посилалися на цей Plugin: записи `channels.<id>`, цілі heartbeat, що називали канал, і перевизначення `agents.*.models["<channel>/*"]`. Це запобігає циклам завантаження Gateway, коли середовище виконання каналу зникло, але конфігурація все ще просить gateway прив’язатися до нього.
</Accordion>
<Accordion title="11c. Автодоповнення shell">
Doctor перевіряє, чи встановлено tab completion для поточного shell (zsh, bash, fish або PowerShell):
<Accordion title="11c. Автодоповнення оболонки">
Doctor перевіряє, чи встановлено автодоповнення клавішею Tab для поточної оболонки (zsh, bash, fish або PowerShell):
- Якщо профіль shell використовує повільний динамічний шаблон completion (`source <(openclaw completion ...)`), doctor оновлює його до швидшого варіанта з кешованим файлом.
- Якщо completion налаштовано в профілі, але cache file відсутній, doctor автоматично регенерує cache.
- Якщо completion взагалі не налаштовано, doctor пропонує встановити його (лише інтерактивний режим; пропускається з `--non-interactive`).
- Якщо профіль оболонки використовує повільний шаблон динамічного автодоповнення (`source <(openclaw completion ...)`), doctor оновлює його до швидшого варіанта кешованого файла.
- Якщо автодоповнення налаштовано в профілі, але файл кешу відсутній, doctor автоматично регенерує кеш.
- Якщо автодоповнення взагалі не налаштовано, doctor пропонує встановити його (лише в інтерактивному режимі; пропускається з `--non-interactive`).
Запустіть `openclaw completion --write-state`, щоб регенерувати cache вручну.
Запустіть `openclaw completion --write-state`, щоб регенерувати кеш вручну.
</Accordion>
<Accordion title="12. Перевірки автентифікації Gateway (локальний токен)">
Doctor перевіряє готовність автентифікації локального gateway token.
Doctor перевіряє готовність автентифікації локального gateway за токеном.
- Якщо token mode потребує token і не існує джерела token, doctor пропонує згенерувати його.
- Якщо `gateway.auth.token` керується SecretRef, але недоступний, doctor попереджає й не перезаписує його plaintext.
- `openclaw doctor --generate-gateway-token` примусово генерує лише тоді, коли не налаштовано token SecretRef.
- Якщо режим токена потребує токена, а джерела токена немає, doctor пропонує згенерувати його.
- Якщо `gateway.auth.token` керується SecretRef, але недоступний, doctor попереджає й не перезаписує його відкритим текстом.
- `openclaw doctor --generate-gateway-token` примусово генерує токен лише тоді, коли не налаштовано SecretRef токена.
</Accordion>
<Accordion title="12b. SecretRef-aware виправлення лише для читання">
Деякі repair flows мають перевіряти налаштовані credentials без послаблення runtime fail-fast поведінки.
<Accordion title="12b. Відновлення лише для читання з урахуванням SecretRef">
Деякі потоки відновлення мають перевіряти налаштовані облікові дані без послаблення fail-fast поведінки середовища виконання.
- `openclaw doctor --fix` тепер використовує ту саму read-only модель summary SecretRef, що й status-family commands, для targeted config repairs.
- Приклад: виправлення Telegram `allowFrom` / `groupAllowFrom` `@username` намагається використати налаштовані credentials bot, коли вони доступні.
- Якщо Telegram bot token налаштовано через SecretRef, але він недоступний у поточному command path, doctor повідомляє, що credential налаштований, але недоступний, і пропускає авто-розв’язання замість аварійного завершення або помилкового повідомлення, що token відсутній.
- `openclaw doctor --fix` тепер використовує ту саму модель підсумку SecretRef лише для читання, що й команди сімейства status, для цільових виправлень конфігурації.
- Приклад: виправлення Telegram `allowFrom` / `groupAllowFrom` `@username` намагається використовувати налаштовані облікові дані бота, коли вони доступні.
- Якщо токен бота Telegram налаштовано через SecretRef, але він недоступний у поточному шляху команди, doctor повідомляє, що облікові дані налаштовані, але недоступні, і пропускає автоматичне розв’язання замість аварійного завершення або хибного повідомлення, що токен відсутній.
</Accordion>
<Accordion title="13. Перевірка справності Gateway + перезапуск">
Doctor запускає health check і пропонує перезапустити gateway, коли він виглядає несправним.
Doctor запускає перевірку справності й пропонує перезапустити gateway, коли він виглядає несправним.
</Accordion>
<Accordion title="13b. Готовність пошуку пам’яті">
Doctor перевіряє, чи налаштований provider embedding для пошуку пам’яті готовий для agent за замовчуванням. Поведінка залежить від налаштованого backend і provider:
<Accordion title="13b. Готовність пошуку в пам’яті">
Doctor перевіряє, чи налаштований провайдер embedding для пошуку в пам’яті готовий для стандартного агента. Поведінка залежить від налаштованого бекенда та провайдера:
- **QMD backend**: перевіряє, чи binary `qmd` доступний і може запускатися. Якщо ні, виводить guidance з виправлення, включно з npm package і опцією manual binary path.
- **Явний local provider**: перевіряє наявність локального model file або розпізнаного remote/downloadable model URL. Якщо відсутній, пропонує перейти на remote provider.
- **Явний remote provider** (`openai`, `voyage` тощо): перевіряє, чи API key присутній в environment або auth store. Виводить actionable fix hints, якщо відсутній.
- **Auto provider**: спочатку перевіряє доступність local model, потім пробує кожен remote provider у порядку auto-selection.
- **Бекенд QMD**: перевіряє, чи доступний і чи може запускатися бінарний файл `qmd`. Якщо ні, виводить інструкції з виправлення, зокрема npm-пакет і можливість указати шлях до бінарного файла вручну.
- **Явний локальний провайдер**: перевіряє локальний файл моделі або розпізнану URL-адресу віддаленої/доступної для завантаження моделі. Якщо відсутня, пропонує перейти на віддаленого провайдера.
- **Явний віддалений провайдер** (`openai`, `voyage` тощо): перевіряє наявність API-ключа в середовищі або сховищі автентифікації. Виводить дієві підказки з виправлення, якщо ключ відсутній.
- **Автоматичний провайдер**: спочатку перевіряє доступність локальної моделі, а потім пробує кожного віддаленого провайдера в порядку автоматичного вибору.
Коли доступний cached gateway probe result (gateway був здоровим на момент перевірки), doctor зіставляє його результат із CLI-visible config і відзначає будь-яку розбіжність. Doctor не запускає свіжий embedding ping у default path; використовуйте команду deep memory status, коли потрібна live provider check.
Коли доступний кешований результат зондування gateway (gateway був справним на момент перевірки), doctor зіставляє його результат із конфігурацією, видимою для CLI, і зазначає будь-яку розбіжність. Doctor не запускає свіжий embedding ping у стандартному шляху; використовуйте глибоку команду стану пам’яті, коли потрібна жива перевірка провайдера.
Використайте `openclaw memory status --deep`, щоб перевірити готовність embedding у runtime.
Використовуйте `openclaw memory status --deep`, щоб перевірити готовність embedding під час виконання.
</Accordion>
<Accordion title="14. Попередження стану channel">
Якщо gateway справний, doctor запускає channel status probe і повідомляє попередження із запропонованими виправленнями.
<Accordion title="14. Попередження стану каналу">
Якщо gateway справний, doctor запускає зондування стану каналу й повідомляє попередження із запропонованими виправленнями.
</Accordion>
<Accordion title="15. Аудит і виправлення config supervisor">
Doctor перевіряє встановлений config supervisor (launchd/systemd/schtasks) на відсутні або застарілі defaults (наприклад, залежності systemd network-online і restart delay). Коли він знаходить невідповідність, він рекомендує оновлення й може переписати service file/task до поточних defaults.
<Accordion title="15. Аудит і відновлення конфігурації супервізора">
Doctor перевіряє встановлену конфігурацію супервізора (launchd/systemd/schtasks) на відсутні або застарілі стандартні значення (наприклад, залежності systemd від network-online і затримку перезапуску). Коли він знаходить невідповідність, він рекомендує оновлення й може переписати файл сервісу/завдання до поточних стандартних значень.
Примітки:
- `openclaw doctor` запитує підтвердження перед переписуванням config supervisor.
- `openclaw doctor --yes` приймає default repair prompts.
- `openclaw doctor --repair` застосовує рекомендовані виправлення без prompts.
- `openclaw doctor --repair --force` перезаписує custom supervisor configs.
- `OPENCLAW_SERVICE_REPAIR_POLICY=external` залишає doctor у режимі read-only для життєвого циклу gateway service. Він усе ще повідомляє service health і виконує non-service repairs, але пропускає service install/start/restart/bootstrap, переписування supervisor config і cleanup legacy service, тому що external supervisor керує цим lifecycle.
- У Linux doctor не переписує command/entrypoint metadata, доки відповідний systemd gateway unit активний. Він також ігнорує inactive non-legacy extra gateway-like units під час сканування duplicate-service, щоб companion service files не створювали cleanup noise.
- Якщо token auth потребує token і `gateway.auth.token` керується SecretRef, doctor service install/repair перевіряє SecretRef, але не зберігає resolved plaintext token values у metadata environment supervisor service.
- Doctor виявляє managed `.env`/SecretRef-backed service environment values, які старіші інсталяції LaunchAgent, systemd або Windows Scheduled Task вбудували inline, і переписує service metadata так, щоб ці values завантажувалися з runtime source замість supervisor definition.
- Doctor виявляє, коли service command усе ще фіксує старий `--port` після зміни `gateway.port`, і переписує service metadata на поточний port.
- Якщо token auth потребує token і налаштований token SecretRef unresolved, doctor блокує install/repair path з actionable guidance.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не задано, doctor блокує install/repair, доки mode не буде задано явно.
- Для Linux user-systemd units перевірки doctor щодо token drift тепер включають джерела і `Environment=`, і `EnvironmentFile=` під час порівняння service auth metadata.
- Doctor service repairs відмовляються переписувати, зупиняти або перезапускати gateway service зі старішого binary OpenClaw, коли config востаннє був записаний новішою версією. Див. [усунення неполадок Gateway](/uk/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
- `openclaw doctor` запитує підтвердження перед переписуванням конфігурації супервізора.
- `openclaw doctor --yes` приймає стандартні запити на відновлення.
- `openclaw doctor --repair` застосовує рекомендовані виправлення без запитів.
- `openclaw doctor --repair --force` перезаписує користувацькі конфігурації супервізора.
- `OPENCLAW_SERVICE_REPAIR_POLICY=external` залишає doctor у режимі лише для читання для життєвого циклу сервісу gateway. Він усе ще повідомляє справність сервісу й виконує відновлення, не пов’язані із сервісом, але пропускає встановлення/запуск/перезапуск/bootstrap сервісу, переписування конфігурації супервізора та очищення застарілих сервісів, бо цим життєвим циклом керує зовнішній супервізор.
- У Linux doctor не переписує метадані команди/entrypoint, поки відповідний systemd-модуль gateway активний. Він також ігнорує неактивні незастарілі додаткові gateway-подібні модулі під час сканування дубльованих сервісів, щоб супутні файли сервісів не створювали шум очищення.
- Якщо автентифікація за токеном потребує токена, а `gateway.auth.token` керується SecretRef, встановлення/відновлення сервісу doctor перевіряє SecretRef, але не зберігає розв’язані значення токена відкритим текстом у метаданих середовища сервісу супервізора.
- Doctor виявляє керовані `.env`/SecretRef значення середовища сервісу, які старіші встановлення LaunchAgent, systemd або Windows Scheduled Task вбудували inline, і переписує метадані сервісу так, щоб ці значення завантажувалися з джерела середовища виконання, а не з визначення супервізора.
- Doctor виявляє, коли команда сервісу все ще фіксує старий `--port` після зміни `gateway.port`, і переписує метадані сервісу на поточний порт.
- Якщо автентифікація за токеном потребує токена, а налаштований SecretRef токена не розв’язано, doctor блокує шлях встановлення/відновлення з дієвими інструкціями.
- Якщо налаштовано і `gateway.auth.token`, і `gateway.auth.password`, а `gateway.auth.mode` не задано, doctor блокує встановлення/відновлення, доки режим не буде задано явно.
- Для Linux user-systemd модулів перевірки розбіжності токена doctor тепер включають джерела і `Environment=`, і `EnvironmentFile=` під час порівняння метаданих автентифікації сервісу.
- Відновлення сервісу doctor відмовляються переписувати, зупиняти або перезапускати сервіс gateway зі старішого бінарного файла OpenClaw, коли конфігурацію востаннє було записано новішою версією. Див. [усунення неполадок Gateway](/uk/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
- Ви завжди можете примусово виконати повне переписування через `openclaw gateway install --force`.
</Accordion>
<Accordion title="16. Середовище виконання Gateway + діагностика портів">
Діагностика перевіряє середовище виконання сервісу (PID, останній статус завершення) і попереджає, коли сервіс встановлено, але він фактично не працює. Вона також перевіряє конфлікти портів на порту шлюзу (типово `18789`) і повідомляє ймовірні причини (шлюз уже запущено, SSH-тунель).
<Accordion title="16. Діагностика середовища виконання Gateway і портів">
Doctor перевіряє середовище виконання сервісу (PID, останній стан виходу) і попереджає, коли сервіс установлено, але він фактично не працює. Він також перевіряє конфлікти портів на порту gateway (типово `18789`) і повідомляє ймовірні причини (gateway уже запущено, SSH-тунель).
</Accordion>
<Accordion title="17. Найкращі практики середовища виконання Gateway">
Діагностика попереджає, коли сервіс шлюзу працює на Bun або через шлях Node, керований менеджером версій (`nvm`, `fnm`, `volta`, `asdf` тощо). Канали WhatsApp + Telegram потребують Node, а шляхи менеджера версій можуть ламатися після оновлень, бо сервіс не завантажує ініціалізацію вашої оболонки. Діагностика пропонує перейти на системне встановлення Node, коли воно доступне (Homebrew/apt/choco).
Doctor попереджає, коли сервіс gateway працює на Bun або зі шляху Node, керованого менеджером версій (`nvm`, `fnm`, `volta`, `asdf` тощо). Канали WhatsApp + Telegram потребують Node, а шляхи менеджера версій можуть зламатися після оновлень, оскільки сервіс не завантажує ініціалізацію вашої оболонки. Doctor пропонує перейти на системне встановлення Node, коли воно доступне (Homebrew/apt/choco).
Нововстановлені або відновлені сервіси зберігають явні корені середовища (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) і стабільні користувацькі каталоги бінарних файлів, але вгадані резервні каталоги менеджера версій записуються до service PATH лише тоді, коли ці каталоги існують на диску. Завдяки цьому згенерований supervisor PATH узгоджується з тим самим аудитом мінімального PATH, який діагностика запускає пізніше.
Нововстановлені або відновлені сервіси зберігають явні корені середовища (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) і стабільні каталоги користувацьких бінарних файлів, але вгадані резервні каталоги менеджерів версій записуються до service PATH лише тоді, коли ці каталоги існують на диску. Це підтримує згенерований supervisor PATH узгодженим із тією самою перевіркою мінімального PATH, яку doctor запускає пізніше.
</Accordion>
<Accordion title="18. Запис конфігурації + метадані майстра">
Діагностика зберігає всі зміни конфігурації та проставляє метадані майстра, щоб зафіксувати запуск діагностики.
Doctor зберігає будь-які зміни конфігурації та ставить позначку в метаданих майстра, щоб зафіксувати запуск doctor.
</Accordion>
<Accordion title="19. Поради щодо робочого простору (резервна копія + система памʼяті)">
Діагностика пропонує систему памʼяті робочого простору, якщо її немає, і виводить пораду щодо резервного копіювання, якщо робочий простір ще не перебуває під керуванням git.
<Accordion title="19. Поради щодо робочої області (резервна копія + система пам’яті)">
Doctor пропонує систему пам’яті робочої області, якщо її немає, і друкує пораду щодо резервної копії, якщо робоча область ще не перебуває під керуванням git.
Див. [/concepts/agent-workspace](/uk/concepts/agent-workspace), щоб отримати повний посібник зі структури робочого простору та резервного копіювання git (рекомендовано приватний GitHub або GitLab).
Див. [/concepts/agent-workspace](/uk/concepts/agent-workspace), щоб отримати повний посібник зі структури робочої області та резервного копіювання в git (рекомендовано приватний GitHub або GitLab).
</Accordion>
</AccordionGroup>

View File

@ -1,30 +1,30 @@
---
read_when:
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
- Аудит підшляхів вбудованих Plugin і допоміжних інтерфейсів
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розташовані, згруповані за розділами'
- Аудит підшляхів вбудованих плагінів і допоміжних поверхонь
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розташовані, згруповано за областями'
title: Підшляхи Plugin SDK
x-i18n:
generated_at: "2026-04-29T19:09:24Z"
generated_at: "2026-04-30T03:17:57Z"
model: gpt-5.5
provider: openai
source_hash: 60fe10982b9aa01af76bfbd72475168c8138f68dd410b4488b6b6c4c00097e53
source_hash: 6a8c431c1835fff6720a00984171e3f55886363654074d81859f50ca28a35104
source_path: plugins/sdk-subpaths.md
workflow: 16
---
Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
Ця сторінка каталогізує часто використовувані підшляхи, згруповані за призначенням. Згенерований
повний список із понад 200 підшляхів зберігається в `scripts/lib/plugin-sdk-entrypoints.json`;
зарезервовані допоміжні підшляхи bundled-plugin також є там, але вони є деталлю
реалізації, якщо сторінка документації явно не підносить їх до публічного контракту. Мейнтейнери можуть перевіряти активні
зарезервовані допоміжні підшляхи за допомогою `pnpm plugins:boundary-report:summary`; невикористані
зарезервовані допоміжні експорти провалюють CI-звіт замість того, щоб залишатися в публічному SDK
як неактивний борг сумісності.
На цій сторінці каталогізовано часто використовувані підшляхи, згруповані за призначенням. Згенерований
повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
зарезервовані підшляхи допоміжних засобів bundled-plugin наведені там, але є деталлю
реалізації, якщо сторінка документації явно не просуває їх. Мейнтейнери можуть перевіряти активні
зарезервовані підшляхи допоміжних засобів за допомогою `pnpm plugins:boundary-report:summary`; невикористані
зарезервовані допоміжні експорти провалюють звіт CI замість того, щоб залишатися в публічному SDK
як пасивний борг сумісності.
Посібник з авторства плагінів див. у [огляді Plugin SDK](/uk/plugins/sdk-overview).
Посібник зі створення Plugin див. в [Огляді Plugin SDK](/uk/plugins/sdk-overview).
## Вхідна точка Plugin
## Точка входу Plugin
| Підшлях | Ключові експорти |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@ -32,299 +32,300 @@ x-i18n:
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів плагінів; для нових тестів розширень віддавайте перевагу сфокусованим тестовим підшляхам |
| `plugin-sdk/plugin-test-api` | Мінімальний mock builder `OpenClawPluginApi` для unit-тестів прямої реєстрації плагіна |
| `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, придушення доставки, класифікації fallback, хуків інструментів, накладень промптів, схем і відновлення транскрипта |
| `plugin-sdk/channel-test-helpers` | Тестові помічники для життєвого циклу облікового запису каналу, каталогу, send-config, mock runtime, хуків, bundled entry каналу, часової позначки конверта, відповіді pairing і загальних контрактів каналу |
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів Plugin; для нових тестів розширень віддавайте перевагу сфокусованим тестовим підшляхам |
| `plugin-sdk/plugin-test-api` | Мінімальний mock builder `OpenClawPluginApi` для прямих модульних тестів реєстрації Plugin |
| `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, приглушення доставки, класифікації fallback, хуків інструментів, накладок prompt, схем і відновлення transcript |
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестів життєвого циклу облікового запису каналу, каталогу, send-config, runtime mock, hook, точки входу bundled channel, timestamp envelope, відповіді pairing і загального контракту каналу |
| `plugin-sdk/channel-target-testing` | Спільний набір тестів для випадків помилок розв’язання цілі каналу |
| `plugin-sdk/plugin-test-contracts` | Помічники контрактів реєстрації плагіна, package manifest, публічного артефакту, runtime API, побічного ефекту імпорту та прямого імпорту |
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime плагіна, registry, provider-registration, setup-wizard і runtime task-flow для тестів |
| `plugin-sdk/provider-test-contracts` | Помічники контрактів provider runtime, автентифікації, discovery, onboard, каталогу, медіаможливостей, політики replay, realtime STT live-audio, web-search/fetch і wizard |
| `plugin-sdk/provider-http-test-mocks` | Opt-in HTTP/auth mocks Vitest для тестів провайдера, які перевіряють `plugin-sdk/provider-http` |
| `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/network, одноразового HTTP-сервера, вхідного запиту, live-test, тимчасової файлової системи та керування часом |
| `plugin-sdk/test-fixtures` | Узагальнені тестові фікстури CLI, sandbox, skill, agent-message, system-event, перезавантаження модуля, шляху bundled plugin, термінала, chunking, auth-token і typed-case |
| `plugin-sdk/test-node-mocks` | Сфокусовані помічники mock для вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
| `plugin-sdk/migration` | Помічники елементів провайдера міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, помічники редагування та `summarizeMigrationItems` |
| `plugin-sdk/migration-runtime` | Runtime-помічники міграції, як-от `copyMigrationFileItem`, `withCachedMigrationConfigRuntime` і `writeMigrationReport` |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби для контрактів реєстрації Plugin, маніфесту пакета, публічного артефакту, runtime API, побічного ефекту імпорту та прямого імпорту |
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime Plugin, registry, provider-registration, setup-wizard і runtime task-flow для тестів |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби для контрактів runtime provider, автентифікації, discovery, onboard, catalog, media capability, replay policy, realtime STT live-audio, web-search/fetch і wizard |
| `plugin-sdk/provider-http-test-mocks` | Необов’язкові HTTP/auth mocks Vitest для тестів provider, які перевіряють `plugin-sdk/provider-http` |
| `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/network, одноразового HTTP-сервера, вхідного запиту, live-test, тимчасової файлової системи та time-control |
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури CLI, sandbox, skill, agent-message, system-event, module reload, шляху bundled Plugin, terminal, chunking, auth-token і typed-case |
| `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби mock для вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
| `plugin-sdk/migration` | Допоміжні засоби елементів provider міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, допоміжні засоби редагування та `summarizeMigrationItems` |
| `plugin-sdk/migration-runtime` | Допоміжні засоби runtime міграції, як-от `copyMigrationFileItem`, `withCachedMigrationConfigRuntime` і `writeMigrationReport` |
<AccordionGroup>
<Accordion title="Підшляхи каналів">
<Accordion title="Підшляхи каналу">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/config-schema` | Експорт Zod-схеми кореневого `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Спільні помічники setup wizard, промпти allowlist, builders статусу setup |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, prompts allowlist, builders статусу налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Помічники multi-account config/action-gate, помічники fallback для default-account |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, помічники нормалізації account-id |
| `plugin-sdk/account-resolution` | Помічники пошуку облікового запису та default-fallback |
| `plugin-sdk/account-helpers` | Вузькі помічники account-list/account-action |
| `plugin-sdk/account-core` | Допоміжні засоби multi-account config/action-gate, допоміжні засоби fallback для default-account |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису й default-fallback |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби account-list/account-action |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter`, `resolveChannelDmAccess`, `resolveChannelDmAllowFrom`, `resolveChannelDmPolicy`, `normalizeChannelDmPolicy`, `normalizeLegacyDmAliases` |
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та узагальнений builder |
| `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації bundled каналів OpenClaw лише для підтримуваних bundled plugins |
| `plugin-sdk/channel-config-schema-legacy` | Застарілий псевдонім сумісності для схем конфігурації bundled-channel |
| `plugin-sdk/telegram-command-config` | Помічники нормалізації/валідації користувацьких команд Telegram із fallback bundled-contract |
| `plugin-sdk/command-gating` | Вузькі помічники gate авторизації команд |
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та загальний builder |
| `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації bundled каналів OpenClaw лише для підтримуваних bundled Plugin |
| `plugin-sdk/channel-config-schema-legacy` | Застарілий alias сумісності для схем конфігурації bundled-channel |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із fallback bundled-contract |
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби gate авторизації команд |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, `createChannelRunQueue`, помічники життєвого циклу/фіналізації draft stream |
| `plugin-sdk/inbound-envelope` | Спільні помічники inbound route і envelope builder |
| `plugin-sdk/inbound-reply-dispatch` | Спільні помічники record-and-dispatch для inbound |
| `plugin-sdk/messaging-targets` | Помічники parsing/matching цілей |
| `plugin-sdk/outbound-media` | Спільні помічники завантаження outbound media |
| `plugin-sdk/outbound-send-deps` | Легкий пошук outbound send залежностей для адаптерів каналів |
| `plugin-sdk/outbound-runtime` | Помічники outbound delivery, identity, send delegate, session, formatting і payload planning |
| `plugin-sdk/poll-runtime` | Вузькі помічники нормалізації poll |
| `plugin-sdk/thread-bindings-runtime` | Помічники життєвого циклу thread-binding і адаптера |
| `plugin-sdk/agent-media-payload` | Застарілий builder медіакорисного навантаження агента |
| `plugin-sdk/conversation-runtime` | Помічники conversation/thread binding, pairing і configured-binding |
| `plugin-sdk/runtime-config-snapshot` | Помічник runtime config snapshot |
| `plugin-sdk/runtime-group-policy` | Помічники розв’язання runtime group-policy |
| `plugin-sdk/channel-status` | Спільні помічники snapshot/summary статусу каналу |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, `createChannelRunQueue`, допоміжні засоби життєвого циклу/фіналізації draft stream |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби inbound route + envelope builder |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби inbound record-and-dispatch |
| `plugin-sdk/messaging-targets` | Допоміжні засоби parsing/matching цілей |
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження outbound media |
| `plugin-sdk/outbound-send-deps` | Легкий пошук залежностей outbound send для адаптерів каналів |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби планування outbound delivery, identity, send delegate, session, formatting і payload |
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптера |
| `plugin-sdk/agent-media-payload` | Застарілий builder agent media payload |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби conversation/thread binding, pairing і configured-binding |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб runtime config snapshot |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби розв’язання runtime group-policy |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary статусу каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви channel config-schema |
| `plugin-sdk/channel-config-writes` | Помічники авторизації channel config-write |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти channel plugin |
| `plugin-sdk/allowlist-config-edit` | Помічники редагування/читання allowlist config |
| `plugin-sdk/group-access` | Спільні помічники рішень group-access |
| `plugin-sdk/direct-dm` | Спільні помічники direct-DM auth/guard |
| `plugin-sdk/discord` | Застарілий фасад сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності власника; нові плагіни мають використовувати узагальнені підшляхи channel SDK |
| `plugin-sdk/telegram-account` | Застарілий фасад сумісності Telegram account-resolution для відстежуваної сумісності власника; нові плагіни мають використовувати інжектовані runtime-помічники або узагальнені підшляхи channel SDK |
| `plugin-sdk/interactive-runtime` | Семантична презентація повідомлень, доставка та застарілі помічники interactive reply. Див. [Презентація повідомлень](/uk/plugins/message-presentation) |
| `plugin-sdk/channel-inbound` | Barrel сумісності для inbound debounce, mention matching, помічників mention-policy і envelope |
| `plugin-sdk/channel-inbound-debounce` | Вузькі помічники inbound debounce |
| `plugin-sdk/channel-mention-gating` | Вузькі помічники mention-policy, mention marker і mention text без ширшої surface inbound runtime |
| `plugin-sdk/channel-envelope` | Вузькі помічники форматування inbound envelope |
| `plugin-sdk/channel-location` | Помічники context і formatting для channel location |
| `plugin-sdk/channel-logging` | Помічники logging каналу для inbound drops і typing/ack failures |
| `plugin-sdk/channel-send-result` | Типи результату reply |
| `plugin-sdk/channel-actions` | Помічники message-action каналу, а також застарілі помічники native schema, збережені для сумісності плагінів |
| `plugin-sdk/channel-route` | Спільні помічники нормалізації route, parser-driven target resolution, stringification thread-id, dedupe/compact route keys, типів parsed-target і порівняння route/target |
| `plugin-sdk/channel-targets` | Помічники parsing цілей; викликачі порівняння route мають використовувати `plugin-sdk/channel-route` |
| `plugin-sdk/channel-contract` | Типи контрактів каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації channel config-write |
| `plugin-sdk/channel-plugin-common` | Спільні експорти prelude Plugin каналу |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання allowlist config |
| `plugin-sdk/group-access` | Спільні допоміжні засоби рішень group-access |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для direct-DM |
| `plugin-sdk/discord` | Застарілий facade сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності власника; нові Plugin мають використовувати загальні підшляхи SDK каналу |
| `plugin-sdk/telegram-account` | Застарілий facade сумісності розв’язання облікового запису Telegram для відстежуваної сумісності власника; нові Plugin мають використовувати injected runtime helpers або загальні підшляхи SDK каналу |
| `plugin-sdk/zalouser` | Застарілий facade сумісності Zalo Personal для опублікованих пакетів Lark/Zalo, які досі імпортують авторизацію команд відправника; нові Plugin мають використовувати `plugin-sdk/command-auth` |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби семантичного представлення повідомлень, доставки та застарілих interactive reply. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
| `plugin-sdk/channel-inbound` | Barrel сумісності для inbound debounce, mention matching, допоміжних засобів mention-policy і envelope helpers |
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби inbound debounce |
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy, маркерів згадки та тексту згадки без ширшої поверхні inbound runtime |
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування inbound envelope |
| `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування місця каналу |
| `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для inbound drops і збоїв typing/ack |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/channel-actions` | Допоміжні засоби message-action каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
| `plugin-sdk/channel-route` | Спільна нормалізація маршруту, parser-driven розв’язання цілей, перетворення thread-id на рядок, dedupe/compact route keys, типи parsed-target і допоміжні засоби порівняння route/target |
| `plugin-sdk/channel-targets` | Допоміжні засоби парсингу цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` |
| `plugin-sdk/channel-contract` | Типи контракту каналу |
| `plugin-sdk/channel-feedback` | Зв’язування feedback/reaction |
| `plugin-sdk/channel-secret-runtime` | Вузькі помічники secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment` і типи secret target |
</Accordion>
<Accordion title="Підшляхи постачальників">
<Accordion title="Підшляхи провайдера">
| Підшлях | Основні експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/lmstudio` | Підтримуваний фасад постачальника LM Studio для налаштування, виявлення каталогу та підготовки моделей під час виконання |
| `plugin-sdk/lmstudio-runtime` | Підтримуваний runtime-фасад LM Studio для локальних стандартних параметрів сервера, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей |
| `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених постачальників |
| `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування сумісних з OpenAI самостійно розміщених постачальників |
| `plugin-sdk/cli-backend` | Стандартні параметри бекенду CLI + константи сторожового контролю |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключів під час виконання для plugin постачальників |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби початкового налаштування API-ключів/запису профілів, як-от `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний побудовник результату автентифікації OAuth |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для plugin постачальників |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку змінних середовища автентифікації постачальника |
| `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделі під час виконання |
| `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад середовища виконання LM Studio для стандартних параметрів локального сервера, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей |
| `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування OpenAI-сумісних самостійно розміщених провайдерів |
| `plugin-sdk/cli-backend` | Стандартні параметри бекенда CLI + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключів під час виконання для Plugin провайдерів |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/API-ключа та запису профілю, як-от `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний конструктор результату автентифікації OAuth |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для Plugin провайдерів |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку змінних середовища автентифікації провайдера |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політик повторного відтворення, допоміжні засоби endpoint постачальника та допоміжні засоби нормалізації model-id, як-от `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-runtime` | Runtime-хук розширення каталогу постачальника та шви реєстру plugin-постачальників для контрактних тестів |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політики replay, допоміжні засоби кінцевих точок провайдера та допоміжні засоби нормалізації ідентифікаторів моделей, як-от `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-runtime` | Runtime-хук доповнення каталогу провайдера та шви реєстру plugin-провайдерів для контрактних тестів |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Універсальні допоміжні засоби можливостей HTTP/endpoint постачальника, HTTP-помилки постачальника та допоміжні засоби multipart-форми для аудіотранскрипції |
| `plugin-sdk/provider-http` | Універсальні допоміжні засоби можливостей HTTP/кінцевих точок провайдера, HTTP-помилки провайдера та допоміжні засоби multipart-форм для транскрипції аудіо |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування постачальника web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних вебпошуку для постачальників, яким не потрібне підключення ввімкнення plugin |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних вебпошуку, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, а також scoped setters/getters облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime постачальника вебпошуку |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика, а також допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування провайдера web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення увімкнення plugin |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, а також scoped сетери/гетери облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/середовища виконання провайдера web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` і подібне |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту постачальника, як-от захищений fetch, перетворення транспортних повідомлень і записувані потоки транспортних подій |
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації початкового налаштування |
| `plugin-sdk/global-singleton` | Допоміжні засоби singleton/map/cache у межах процесу |
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, як-от захищений fetch, перетворення транспортних повідомлень і записувані потоки транспортних подій |
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації групи та розбору команд |
</Accordion>
<Accordion title="Підшляхи автентифікації та безпеки">
| Підшлях | Основні експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів, допоміжні засоби авторизації відправників |
| `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та автентифікації дій у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтрів нативного затвердження exec |
| `plugin-sdk/approval-delivery-runtime` | Нативні адаптери можливостей/доставки затверджень |
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway для затверджень |
| `plugin-sdk/approval-handler-adapter-runtime` | Легковагові допоміжні засоби завантаження нативного адаптера затверджень для гарячих entrypoint каналів |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника затверджень; віддавайте перевагу вужчим швам адаптера/Gateway, коли їх достатньо |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі затвердження + прив’язки облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді на затвердження exec/plugin |
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload затвердження exec/plugin, нативні допоміжні засоби маршрутизації/runtime затверджень і допоміжні засоби структурованого відображення затверджень, як-от `formatApprovalDisplayPath` |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів, допоміжні засоби авторизації відправника |
| `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і same-chat автентифікації дій |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра нативного exec approval |
| `plugin-sdk/approval-delivery-runtime` | Адаптери нативної можливості/доставлення approval |
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway для approval |
| `plugin-sdk/approval-handler-adapter-runtime` | Легкі допоміжні засоби завантаження нативного адаптера approval для гарячих entrypoint-ів каналів |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби середовища виконання обробника approval; надавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі approval + прив’язування облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді exec/plugin approval |
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload exec/plugin approval, допоміжні засоби маршрутизації/середовища виконання нативного approval і допоміжні засоби структурованого відображення approval, як-от `formatApprovalDisplayPath` |
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей |
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби контрактного тестування каналів без широкого testing barrel |
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної цілі сеансу |
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel |
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-primitives-runtime` | Легковагові предикати тексту команд для гарячих шляхів каналів |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та command-surface |
| `plugin-sdk/command-primitives-runtime` | Легкі предикати тексту команд для гарячих шляхів каналів |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації command-body і command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналів/plugin |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/plugin |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за сталий час і збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж |
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої runtime-поверхні інфраструктури |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, захищеного від SSRF fetch, помилки SSRF і політики SSRF |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за сталий час і збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватної мережі |
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої runtime-поверхні infra |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, SSRF-захищений fetch, SSRF-помилка та політика SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору введення секретів |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook і приведення сирого websocket/body |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби Webhook-запиту/цілі та приведення raw websocket/body |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/тайм-ауту |
</Accordion>
<Accordion title="Підшляхи середовища виконання та сховища">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/runtime` | Широкі помічники середовища виконання, журналювання, резервного копіювання та встановлення plugin |
| `plugin-sdk/runtime-env` | Вузькі помічники env середовища виконання, logger, timeout, retry та backoff |
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору URL CDP та помічників автентифікації керування браузером |
| `plugin-sdk/channel-runtime-context` | Загальні помічники реєстрації та пошуку runtime-context каналу |
| `plugin-sdk/runtime` | Широкі допоміжні засоби для середовища виконання, логування, резервного копіювання та встановлення Plugin |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби для середовища виконання, середовища, логера, тайм-ауту, повторних спроб і backoff |
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованих профілю/стандартних значень, розбору CDP URL і допоміжних засобів автентифікації керування браузером |
| `plugin-sdk/channel-runtime-context` | Допоміжні засоби реєстрації та пошуку загального контексту середовища виконання каналу |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Спільні помічники команд, хуків, http та інтерактивних можливостей plugin |
| `plugin-sdk/hook-runtime` | Спільні помічники конвеєра webhook/внутрішніх хуків |
| `plugin-sdk/lazy-runtime` | Помічники лінивого імпорту/прив’язування середовища виконання, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Помічники виконання процесів |
| `plugin-sdk/cli-runtime` | Помічники форматування CLI, очікування, версії, виклику з аргументами та лінивих груп команд |
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, помічник запуску клієнта після готовності циклу подій, CLI RPC Gateway, помилки протоколу Gateway та помічники виправлень статусу каналу |
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації plugin, як-от `OpenClawConfig`, і типів конфігурації каналів/провайдерів |
| `plugin-sdk/plugin-config-runtime` | Помічники пошуку plugin-config у середовищі виконання, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
| `plugin-sdk/config-mutation` | Помічники транзакційної зміни конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
| `plugin-sdk/runtime-config-snapshot` | Помічники знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot`, і сетери тестових знімків |
| `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли вбудована контрактна поверхня Telegram недоступна |
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на посилання файлів без широкого barrel text-runtime |
| `plugin-sdk/approval-runtime` | Помічники схвалення exec/plugin, побудовники можливостей схвалення, помічники auth/profile, помічники native routing/runtime і форматування шляхів структурованого відображення схвалень |
| `plugin-sdk/reply-runtime` | Спільні помічники середовища виконання inbound/reply, поділу на фрагменти, dispatch, Heartbeat, планувальник відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі помічники dispatch/finalize відповідей і міток розмов |
| `plugin-sdk/reply-history` | Спільні помічники історії відповідей короткого вікна та маркери, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд, хуків, HTTP та інтерактивної роботи Plugin |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра Webhook/внутрішніх хуків |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язування середовища виконання, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів |
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику з аргументами та лінивих груп команд |
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, допоміжний засіб запуску клієнта, готового до циклу подій, CLI RPC Gateway, помилки протоколу Gateway та допоміжні засоби виправлення стану каналу |
| `plugin-sdk/config-types` | Поверхня конфігурації лише з типами для форм конфігурації Plugin, як-от `OpenClawConfig`, і типів конфігурації каналів/провайдерів |
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації Plugin у середовищі виконання, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної зміни конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot`, і сетери тестових знімків |
| `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли вбудована поверхня контракту Telegram недоступна |
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого barrel text-runtime |
| `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення виконання/Plugin, побудовники можливостей схвалення, допоміжні засоби автентифікації/профілю, допоміжні засоби нативної маршрутизації/середовища виконання та форматування шляхів структурованого відображення схвалень |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби середовища виконання для вхідних повідомлень/відповідей, розбиття на частини, диспетчеризація, Heartbeat, планувальник відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби диспетчеризації/фіналізації відповідей і міток розмов |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби короткого вікна історії відповідей і маркери, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі помічники поділу text/markdown на фрагменти |
| `plugin-sdk/session-store-runtime` | Помічники шляху сховища сесій, session-key, updated-at і зміни сховища |
| `plugin-sdk/cron-store-runtime` | Помічники шляху/завантаження/збереження сховища Cron |
| `plugin-sdk/state-paths` | Помічники шляхів каталогів стану/OAuth |
| `plugin-sdk/routing` | Помічники маршруту/session-key/прив’язування акаунта, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні помічники підсумку статусу каналу/акаунта, типові значення runtime-state і помічники метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні помічники resolver цілей |
| `plugin-sdk/string-normalization-runtime` | Помічники нормалізації slug/рядків |
| `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних входів |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби розбиття тексту/Markdown на частини |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сеансів, ключа сеансу, часу оновлення та зміни сховища |
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/завантаження/збереження сховища Cron |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів стану/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сеансу/прив’язування облікового запису, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення стану каналу/облікового запису, стандартні значення стану середовища виконання та допоміжні засоби метаданих проблем |
| `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-payload` | Витягування нормалізованих payload із об’єктів результату tool |
| `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з args tool |
| `plugin-sdk/temp-path` | Спільні помічники шляху тимчасового завантаження |
| `plugin-sdk/logging-core` | Помічники logger підсистеми та редагування чутливих даних |
| `plugin-sdk/markdown-table-runtime` | Помічники режиму та перетворення таблиць Markdown |
| `plugin-sdk/model-session-runtime` | Помічники перевизначення моделі/сесії, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
| `plugin-sdk/talk-config-runtime` | Помічники розв’язання конфігурації провайдера Talk |
| `plugin-sdk/json-store` | Невеликі помічники читання/запису стану JSON |
| `plugin-sdk/file-lock` | Помічники реентерабельного file-lock |
| `plugin-sdk/persistent-dedupe` | Помічники дискового dedupe cache |
| `plugin-sdk/acp-runtime` | Помічники середовища виконання/сесії ACP і reply-dispatch |
| `plugin-sdk/acp-runtime-backend` | Легковажні помічники реєстрації backend ACP і reply-dispatch для plugins, завантажених під час запуску |
| `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язування ACP лише для читання без імпортів запуску lifecycle |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema середовища виконання агента |
| `plugin-sdk/boolean-param` | Нестрогий читач булевого параметра |
| `plugin-sdk/dangerous-name-runtime` | Помічники розв’язання збігів небезпечних назв |
| `plugin-sdk/device-bootstrap` | Помічники початкового налаштування пристрою та токенів парування |
| `plugin-sdk/extension-shared` | Спільні примітиви пасивного каналу, статусу та помічника ambient proxy |
| `plugin-sdk/models-provider-runtime` | Помічники відповіді команди/провайдера `/models` |
| `plugin-sdk/skill-commands-runtime` | Помічники переліку команд Skills |
| `plugin-sdk/native-command-registry` | Помічники registry/build/serialize нативних команд |
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агентів: типи harness, помічники steer/abort для active-run, помічники bridge tool OpenClaw, помічники політики tool runtime-plan, класифікація результатів термінала, помічники форматування/деталізації прогресу tool і утиліти результатів спроб |
| `plugin-sdk/provider-zai-endpoint` | Помічники виявлення endpoint Z.AI |
| `plugin-sdk/async-lock-runtime` | Помічник локального для процесу async lock для невеликих файлів стану середовища виконання |
| `plugin-sdk/channel-activity-runtime` | Помічник телеметрії активності каналу |
| `plugin-sdk/concurrency-runtime` | Помічник обмеженої конкурентності async tasks |
| `plugin-sdk/dedupe-runtime` | Помічники in-memory dedupe cache |
| `plugin-sdk/delivery-queue-runtime` | Помічник drain вихідних pending-delivery |
| `plugin-sdk/file-access-runtime` | Помічники безпечних шляхів локальних файлів і джерел медіа |
| `plugin-sdk/heartbeat-runtime` | Помічники подій і видимості Heartbeat |
| `plugin-sdk/number-runtime` | Помічник числового приведення |
| `plugin-sdk/secure-random-runtime` | Помічники безпечних токенів/UUID |
| `plugin-sdk/system-event-runtime` | Помічники черги системних подій |
| `plugin-sdk/transport-ready-runtime` | Помічник очікування готовності транспорту |
| `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте сфокусовані підшляхи середовища виконання вище |
| `plugin-sdk/collection-runtime` | Невеликі помічники bounded cache |
| `plugin-sdk/diagnostic-runtime` | Помічники діагностичних прапорців, подій і trace-context |
| `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні помічники класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy, опція EnvHttpProxyAgent і помічники pinned lookup |
| `plugin-sdk/runtime-fetch` | Dispatcher-aware fetch середовища виконання без імпортів proxy/guarded-fetch |
| `plugin-sdk/response-limit-runtime` | Читач обмеженого response-body без широкої поверхні media runtime |
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язування розмови без налаштованої маршрутизації прив’язувань або сховищ парування |
| `plugin-sdk/session-store-runtime` | Помічники session-store без широких імпортів запису/обслуговування конфігурації |
| `plugin-sdk/param-readers` | Спільні зчитувачі параметрів інструментів/CLI |
| `plugin-sdk/tool-payload` | Витяг нормалізованих payload з об’єктів результатів інструментів |
| `plugin-sdk/tool-send` | Витяг канонічних полів цілі надсилання з аргументів інструменту |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасового завантаження |
| `plugin-sdk/logging-core` | Допоміжні засоби логера підсистеми та редагування секретів |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму та перетворення таблиць Markdown |
| `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення моделі/сеансу, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації провайдера Talk |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
| `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного блокування файлів |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з підтримкою на диску |
| `plugin-sdk/acp-runtime` | Допоміжні засоби середовища виконання/сеансу ACP і диспетчеризації відповідей |
| `plugin-sdk/acp-runtime-backend` | Легковажні допоміжні засоби реєстрації бекенда ACP і диспетчеризації відповідей для Plugin, завантажених під час запуску |
| `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язування ACP лише для читання без імпортів запуску життєвого циклу |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації середовища виконання агента |
| `plugin-sdk/boolean-param` | Нестрогий зчитувач булевих параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання збігів небезпечних імен |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів сполучення |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів пасивного каналу, стану та ambient proxy |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команди/провайдера `/models` |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/побудови/серіалізації нативних команд |
| `plugin-sdk/agent-harness` | Експериментальна поверхня довіреного Plugin для низькорівневих harness агентів: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби моста інструментів OpenClaw, допоміжні засоби політик інструментів плану середовища виконання, класифікація результатів термінала, допоміжні засоби форматування/деталізації прогресу інструментів і утиліти результатів спроб |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/async-lock-runtime` | Допоміжний засіб локального для процесу асинхронного блокування для невеликих файлів стану середовища виконання |
| `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу |
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності асинхронних завдань |
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу дедуплікації в пам’яті |
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб спорожнення черги очікуваних вихідних доставок |
| `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів локальних файлів і джерел медіа |
| `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій Heartbeat і видимості |
| `plugin-sdk/number-runtime` | Допоміжний засіб числового приведення |
| `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечних токенів/UUID |
| `plugin-sdk/system-event-runtime` | Допоміжні засоби черги системних подій |
| `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності транспорту |
| `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте наведені вище сфокусовані підшляхи середовища виконання |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорів, подій і контексту трасування |
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy, опція EnvHttpProxyAgent і допоміжні засоби закріпленого lookup |
| `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch |
| `plugin-sdk/response-limit-runtime` | Обмежений читач тіла відповіді без широкої поверхні середовища виконання медіа |
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язування розмови без налаштованої маршрутизації прив’язувань або сховищ сполучення |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сеансів без широких імпортів запису/обслуговування конфігурації |
| `plugin-sdk/context-visibility-runtime` | Розв’язання видимості контексту та фільтрація додаткового контексту без широких імпортів конфігурації/безпеки |
| `plugin-sdk/string-coerce-runtime` | Вузькі помічники приведення та нормалізації primitive record/string без імпортів markdown/logging |
| `plugin-sdk/host-runtime` | Помічники нормалізації hostname і SCP host |
| `plugin-sdk/retry-runtime` | Помічники конфігурації retry і виконавця retry |
| `plugin-sdk/agent-runtime` | Помічники каталогу/ідентичності/workspace агента |
| `plugin-sdk/directory-runtime` | Запит/дедуплікація directory на основі конфігурації |
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення й нормалізації примітивних записів/рядків без імпортів markdown/логування |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації повторних спроб і виконавця повторних спроб |
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/робочої області агента |
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогу на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Підшляхи можливостей і тестування">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби для отримання/перетворення/зберігання медіа, визначення розмірів відео на основі ffprobe та побудовники медіа-навантажень |
| `plugin-sdk/media-store` | Вузькі допоміжні засоби сховища медіа, як-от `saveMediaBuffer` |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби резервного перемикання для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
| `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, призначені для провайдерів |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби для тексту/markdown/логування, як-от видалення видимого для асистента тексту, допоміжні засоби рендерингу/нарізання на фрагменти/таблиць markdown, допоміжні засоби редагування, директивних тегів і безпечного тексту |
| `plugin-sdk/text-chunking` | Допоміжний засіб нарізання вихідного тексту на фрагменти |
| `plugin-sdk/speech` | Типи мовленнєвих провайдерів, а також експорти директив, реєстру, валідації, OpenAI-сумісного побудовника TTS і допоміжних мовленнєвих засобів, призначені для провайдерів |
| `plugin-sdk/speech-core` | Спільні типи мовленнєвих провайдерів, реєстр, директива, нормалізація та експорти допоміжних мовленнєвих засобів |
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сеансу WebSocket |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень, а також допоміжні засоби URL-адрес ресурсів/даних зображень і OpenAI-сумісний побудовник провайдера зображень |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, резервне перемикання, автентифікація та допоміжні засоби реєстру |
| `plugin-sdk/media-runtime` | Спільні помічники для отримання/перетворення/збереження медіа, визначення розмірів відео на основі ffprobe та побудовники медіа-навантажень |
| `plugin-sdk/media-store` | Вузькі помічники сховища медіа, як-от `saveMediaBuffer` |
| `plugin-sdk/media-generation-runtime` | Спільні помічники аварійного перемикання для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
| `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також експорти помічників зображень/аудіо для провайдерів |
| `plugin-sdk/text-runtime` | Спільні помічники для тексту/markdown/логування, як-от вилучення тексту, видимого асистенту, помічники рендерингу/розбиття/таблиць markdown, помічники редагування, помічники тегів директив і утиліти безпечного тексту |
| `plugin-sdk/text-chunking` | Помічник розбиття вихідного тексту |
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також експорти директив, реєстру, валідації, побудовника TTS, сумісного з OpenAI, і помічників мовлення для провайдерів |
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, реєстр, директиви, нормалізація та експорти помічників мовлення |
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, помічники реєстру та спільний помічник сесії WebSocket |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та помічники реєстру |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень, а також помічники ресурсів зображень/data URL і побудовник провайдера зображень, сумісний з OpenAI |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, аварійне перемикання, автентифікація та помічники реєстру |
| `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби резервного перемикання, пошук провайдера та розбір посилань на моделі |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, помічники аварійного перемикання, пошук провайдера та розбір model-ref |
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби резервного перемикання, пошук провайдера та розбір посилань на моделі |
| `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів |
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів SDK Plugin |
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів Plugin. Нові тести розширень мають натомість імпортувати цільові підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для прямих модульних тестів реєстрації Plugin без імпорту містків тестових допоміжних засобів репозиторію |
| `plugin-sdk/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера agent-runtime для тестів автентифікації, доставки, резервного сценарію, tool-hook, prompt-overlay, схеми та проєкції транскрипту |
| `plugin-sdk/channel-test-helpers` | Орієнтовані на канали тестові допоміжні засоби для загальних контрактів дій/налаштування/стану, тверджень щодо каталогів, життєвого циклу запуску акаунта, потоків send-config, моків runtime, проблем стану, вихідної доставки та реєстрації hook |
| `plugin-sdk/channel-target-testing` | Спільний набір сценаріїв помилок розв’язання цілі для тестів каналів |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів пакета Plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime провайдера, автентифікації, виявлення, onboard, каталогу, wizard, медіаможливостей, політики повторного відтворення, realtime STT live-audio, web-search/fetch і stream |
| `plugin-sdk/provider-http-test-mocks` | Опційні HTTP/auth моки Vitest для тестів провайдерів, які перевіряють `plugin-sdk/provider-http` |
| `plugin-sdk/test-fixtures` | Загальні фікстури захоплення runtime CLI, контексту пісочниці, записувача skill, повідомлень агента, системних подій, перезавантаження модулів, шляху до вбудованого Plugin, тексту термінала, нарізання на фрагменти, токена автентифікації та типізованих кейсів |
| `plugin-sdk/test-node-mocks` | Цільові допоміжні засоби моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, помічники аварійного перемикання, пошук провайдера та розбір model-ref |
| `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і помічники встановлення маршрутів |
| `plugin-sdk/webhook-path` | Помічники нормалізації шляхів Webhook |
| `plugin-sdk/web-media` | Спільні помічники завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів plugin SDK |
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів plugin. Нові тести extension мають натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
| `plugin-sdk/plugin-test-api` | Мінімальний помічник `createTestPluginApi` для модульних тестів прямої реєстрації plugin без імпорту мостів тестових помічників репозиторію |
| `plugin-sdk/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера agent-runtime для тестів автентифікації, доставки, fallback, tool-hook, prompt-overlay, схеми та проєкції транскрипту |
| `plugin-sdk/channel-test-helpers` | Тестові помічники, орієнтовані на канали, для загальних контрактів actions/setup/status, перевірок каталогу, життєвого циклу запуску облікового запису, потоків send-config, runtime-моків, проблем стану, вихідної доставки та реєстрації hook |
| `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок розв’язання цілі для тестів каналів |
| `plugin-sdk/plugin-test-contracts` | Помічники контрактів пакета plugin, реєстрації, публічного артефакту, прямого імпорту, API runtime та побічних ефектів імпорту |
| `plugin-sdk/provider-test-contracts` | Помічники контрактів runtime провайдера, автентифікації, виявлення, onboard, каталогу, майстра, медіа-можливостей, політики відтворення, live-audio STT у реальному часі, web-search/fetch і stream |
| `plugin-sdk/provider-http-test-mocks` | Опційні HTTP/auth моки Vitest для тестів провайдерів, що перевіряють `plugin-sdk/provider-http` |
| `plugin-sdk/test-fixtures` | Загальні фікстури захоплення runtime CLI, контексту sandbox, автора skill, agent-message, system-event, перезавантаження модуля, шляху bundled plugin, terminal-text, chunking, auth-token і typed-case |
| `plugin-sdk/test-node-mocks` | Сфокусовані помічники моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
</Accordion>
<Accordion title="Підшляхи пам’яті">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/memory-core` | Поверхня вбудованих допоміжних засобів memory-core для допоміжних засобів менеджера/config/файлів/CLI |
| `plugin-sdk/memory-core` | Поверхня помічників bundled memory-core для помічників manager/config/file/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексу/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embeddings хоста пам’яті, доступ до реєстру, локальний провайдер і загальні batch/remote допоміжні засоби |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби стану хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-core` | Вендорно-нейтральний псевдонім для допоміжних засобів core runtime хоста пам’яті |
| `plugin-sdk/memory-host-events` | Вендорно-нейтральний псевдонім для допоміжних засобів журналу подій хоста пам’яті |
| `plugin-sdk/memory-host-files` | Вендорно-нейтральний псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для суміжних із пам’яттю Plugin |
| `plugin-sdk/memory-host-search` | Фасад runtime active memory для доступу до search-manager |
| `plugin-sdk/memory-host-status` | Вендорно-нейтральний псевдонім для допоміжних засобів стану хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти рушія основи хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і загальні batch/remote помічники |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти рушія QMD хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти рушія сховища хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні помічники хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Помічники запитів хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Помічники секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Помічники журналу подій хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Помічники стану хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-cli` | Помічники CLI runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-core` | Помічники core runtime хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Помічники файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-core` | Вендор-нейтральний псевдонім для помічників core runtime хоста пам’яті |
| `plugin-sdk/memory-host-events` | Вендор-нейтральний псевдонім для помічників журналу подій хоста пам’яті |
| `plugin-sdk/memory-host-files` | Вендор-нейтральний псевдонім для помічників файлів/runtime хоста пам’яті |
| `plugin-sdk/memory-host-markdown` | Спільні помічники managed-markdown для plugin, суміжних із пам’яттю |
| `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до search-manager |
| `plugin-sdk/memory-host-status` | Вендор-нейтральний псевдонім для помічників стану хоста пам’яті |
</Accordion>
<Accordion title="Зарезервовані підшляхи вбудованих допоміжних засобів">
Наразі немає зарезервованих підшляхів SDK для вбудованих допоміжних засобів. Специфічні для власника
допоміжні засоби містяться всередині пакета Plugin-власника, тоді як багаторазові контракти хоста
<Accordion title="Зарезервовані підшляхи bundled-helper">
Наразі немає зарезервованих підшляхів SDK bundled-helper. Помічники, специфічні для власника,
містяться всередині пакета plugin власника, тоді як повторно використовувані контракти хоста
використовують загальні підшляхи SDK, як-от `plugin-sdk/gateway-runtime`,
`plugin-sdk/security-runtime` і `plugin-sdk/plugin-config-runtime`.
</Accordion>
@ -332,6 +333,6 @@ x-i18n:
## Пов’язане
- [Огляд SDK Plugin](/uk/plugins/sdk-overview)
- [Налаштування SDK Plugin](/uk/plugins/sdk-setup)
- [Створення Plugin](/uk/plugins/building-plugins)
- [Огляд Plugin SDK](/uk/plugins/sdk-overview)
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
- [Створення plugin](/uk/plugins/building-plugins)