chore(i18n): refresh uk translations
This commit is contained in:
parent
26e7ff8808
commit
34692aa933
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви створюєте Plugin для OpenClaw
|
||||
- Вам потрібно постачати схему конфігурації plugin або налагоджувати помилки валідації plugin
|
||||
summary: Вимоги до маніфесту Plugin + JSON schema (сувора валідація конфігурації)
|
||||
- Ви створюєте плагін OpenClaw
|
||||
- Вам потрібно надати схему конфігурації плагіна або налагодити помилки валідації плагіна
|
||||
summary: Маніфест Plugin + вимоги до JSON schema (сувора валідація конфігурації)
|
||||
title: Маніфест Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-18T18:55:31Z"
|
||||
generated_at: "2026-04-18T19:19:34Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: fa9976ac0e63a3902d9cc401ff9620fd903856c038f08a19a4f64fd7b23bc437
|
||||
source_hash: b9ee47b5d2a95ac6862fc1a02874a6378ab61168490699dcb82d62df7fd0bc64
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,57 +17,58 @@ x-i18n:
|
||||
|
||||
Ця сторінка стосується лише **власного маніфесту Plugin OpenClaw**.
|
||||
|
||||
Сумісні макети пакетів описано в розділі [Пакети Plugin](/uk/plugins/bundles).
|
||||
Сумісні макети bundle див. у [Plugin bundles](/uk/plugins/bundles).
|
||||
|
||||
Сумісні формати пакетів використовують інші файли маніфесту:
|
||||
Сумісні формати bundle використовують інші файли маніфесту:
|
||||
|
||||
- Пакет Codex: `.codex-plugin/plugin.json`
|
||||
- Пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
|
||||
- Codex bundle: `.codex-plugin/plugin.json`
|
||||
- Claude bundle: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
|
||||
без маніфесту
|
||||
- Пакет Cursor: `.cursor-plugin/plugin.json`
|
||||
- Cursor bundle: `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw також автоматично виявляє ці макети пакетів, але вони не проходять валідацію
|
||||
OpenClaw також автоматично виявляє ці макети bundle, але вони не проходять валідацію
|
||||
за схемою `openclaw.plugin.json`, описаною тут.
|
||||
|
||||
Для сумісних пакетів OpenClaw наразі читає метадані пакета разом із оголошеними
|
||||
коренями skills, коренями команд Claude, типовими значеннями Claude package `settings.json`,
|
||||
типовими значеннями Claude package LSP і підтримуваними наборами хуків, коли макет відповідає
|
||||
Для сумісних bundle OpenClaw наразі зчитує метадані bundle разом із оголошеними
|
||||
коренями Skills, коренями команд Claude, типовими значеннями Claude bundle `settings.json`,
|
||||
типовими значеннями Claude bundle LSP та підтримуваними наборами hook, якщо макет відповідає
|
||||
очікуванням середовища виконання OpenClaw.
|
||||
|
||||
Кожен власний Plugin OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у
|
||||
**корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
|
||||
**без виконання коду plugin**. Відсутні або некоректні маніфести вважаються
|
||||
помилками plugin і блокують валідацію конфігурації.
|
||||
Кожен власний Plugin OpenClaw **повинен** містити файл `openclaw.plugin.json` у
|
||||
**корені плагіна**. OpenClaw використовує цей маніфест для валідації конфігурації
|
||||
**без виконання коду плагіна**. Відсутні або невалідні маніфести вважаються
|
||||
помилками плагіна та блокують валідацію конфігурації.
|
||||
|
||||
Див. повний посібник із системи plugin: [Plugins](/uk/tools/plugin).
|
||||
Щодо власної моделі можливостей і актуальних рекомендацій із зовнішньої сумісності:
|
||||
Див. повний посібник із системи плагінів: [Plugins](/uk/tools/plugin).
|
||||
Для власної моделі можливостей і поточних рекомендацій щодо зовнішньої сумісності:
|
||||
[Модель можливостей](/uk/plugins/architecture#public-capability-model).
|
||||
|
||||
## Що робить цей файл
|
||||
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw читає перед завантаженням коду
|
||||
вашого plugin.
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw зчитує перед завантаженням коду
|
||||
вашого плагіна.
|
||||
|
||||
Використовуйте його для:
|
||||
|
||||
- ідентичності plugin
|
||||
- ідентифікації плагіна
|
||||
- валідації конфігурації
|
||||
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску
|
||||
середовища виконання plugin
|
||||
- недорогих підказок активації, які можуть перевіряти поверхні площини керування до
|
||||
середовища виконання плагіна
|
||||
- дешевих підказок активації, які поверхні control plane можуть перевіряти до
|
||||
завантаження середовища виконання
|
||||
- недорогих дескрипторів налаштування, які можуть перевіряти поверхні налаштування/онбордингу до
|
||||
- дешевих дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до
|
||||
завантаження середовища виконання
|
||||
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання plugin
|
||||
- скорочених метаданих належності до сімейства моделей, які мають автоматично активувати
|
||||
plugin до завантаження середовища виконання
|
||||
- статичних знімків належності можливостей, що використовуються для вбудованої compat-обв’язки та
|
||||
- метаданих псевдонімів та автоувімкнення, які мають визначатися до завантаження
|
||||
середовища виконання плагіна
|
||||
- скорочених метаданих володіння сімейством моделей, які мають автоматично активувати
|
||||
плагін до завантаження середовища виконання
|
||||
- статичних знімків володіння можливостями, що використовуються для вбудованого compat-підключення та
|
||||
покриття контрактів
|
||||
- недорогих метаданих засобу запуску QA, які спільний хост `openclaw qa` може перевіряти
|
||||
до завантаження середовища виконання plugin
|
||||
- метаданих конфігурації, специфічних для каналів, які мають об’єднуватися з поверхнями каталогу та валідації
|
||||
без завантаження середовища виконання
|
||||
- підказок інтерфейсу конфігурації
|
||||
- дешевих метаданих виконавця QA, які спільний хост `openclaw qa` може перевіряти
|
||||
до завантаження середовища виконання плагіна
|
||||
- метаданих конфігурації, специфічних для каналу, які мають об’єднуватися в каталог і поверхні
|
||||
валідації без завантаження середовища виконання
|
||||
- підказок UI для конфігурації
|
||||
|
||||
Не використовуйте його для:
|
||||
|
||||
@ -75,7 +76,7 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
- оголошення точок входу коду
|
||||
- метаданих встановлення npm
|
||||
|
||||
Це належить до коду вашого plugin і `package.json`.
|
||||
Це належить вашому коду плагіна та `package.json`.
|
||||
|
||||
## Мінімальний приклад
|
||||
|
||||
@ -151,62 +152,63 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `id` | Так | `string` | Канонічний ідентифікатор plugin. Це ідентифікатор, який використовується в `plugins.entries.<id>`. |
|
||||
| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього plugin. |
|
||||
| `enabledByDefault` | Ні | `true` | Позначає вбудований plugin як увімкнений типово. Не вказуйте це поле або встановіть будь-яке значення, відмінне від `true`, щоб plugin типово залишався вимкненим. |
|
||||
| `legacyPluginIds` | Ні | `string[]` | Застарілі ідентифікатори, які нормалізуються до цього канонічного ідентифікатора plugin. |
|
||||
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Ідентифікатори providers, які мають автоматично вмикати цей plugin, коли в них згадуються auth, config або посилання на моделі. |
|
||||
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує взаємовиключний тип plugin, що використовується `plugins.slots.*`. |
|
||||
| `channels` | Ні | `string[]` | Ідентифікатори каналів, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. |
|
||||
| `providers` | Ні | `string[]` | Ідентифікатори providers, якими володіє цей plugin. |
|
||||
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, що належать маніфесту та використовуються для автоматичного завантаження plugin до запуску середовища виконання. |
|
||||
| `cliBackends` | Ні | `string[]` | Ідентифікатори CLI backend, якими володіє цей plugin. Використовується для автоматичної активації під час запуску на основі явних посилань у конфігурації. |
|
||||
| `syntheticAuthRefs` | Ні | `string[]` | Посилання на provider або CLI backend, для яких слід перевіряти синтетичний auth-хук plugin під час холодного виявлення моделей до завантаження середовища виконання. |
|
||||
| `commandAliases` | Ні | `object[]` | Імена команд, якими володіє цей plugin і які мають створювати діагностику конфігурації та CLI з урахуванням plugin до завантаження середовища виконання. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Недорогі env-метадані auth provider, які OpenClaw може перевіряти без завантаження коду plugin. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | Ідентифікатори providers, які мають повторно використовувати інший ідентифікатор provider для пошуку auth, наприклад provider для кодування, який спільно використовує API key і профілі auth базового provider. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Недорогі env-метадані каналів, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для поверхонь налаштування або auth каналів на основі env, які мають бачити загальні помічники запуску/конфігурації. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів auth для селекторів онбордингу, визначення пріоритетного provider і простого зв’язування з CLI flags. |
|
||||
| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, що запускається providers, командами, каналами, маршрутами й можливостями. Це лише метадані; фактична поведінка все одно належить середовищу виконання plugin. |
|
||||
| `setup` | Ні | `object` | Недорогі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання plugin. |
|
||||
| `qaRunners` | Ні | `object[]` | Недорогі дескриптори засобів запуску QA, які використовує спільний хост `openclaw qa` до завантаження середовища виконання plugin. |
|
||||
| `contracts` | Ні | `object` | Статичний знімок можливостей вбудованого пакета для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і належності інструментів. |
|
||||
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації каналів, що належать маніфесту та об’єднуються з поверхнями виявлення й валідації до завантаження середовища виконання. |
|
||||
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. |
|
||||
| `name` | Ні | `string` | Зрозуміла для людини назва plugin. |
|
||||
| `description` | Ні | `string` | Короткий опис, який показується в поверхнях plugin. |
|
||||
| `version` | Ні | `string` | Інформаційна версія plugin. |
|
||||
| `uiHints` | Ні | `Record<string, object>` | Мітки інтерфейсу, плейсхолдери та підказки щодо чутливості для полів конфігурації. |
|
||||
| `id` | Так | `string` | Канонічний ідентифікатор плагіна. Це ідентифікатор, що використовується в `plugins.entries.<id>`. |
|
||||
| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього плагіна. |
|
||||
| `enabledByDefault` | Ні | `true` | Позначає вбудований плагін як увімкнений за замовчуванням. Не вказуйте це поле або встановіть будь-яке значення, відмінне від `true`, щоб залишити плагін вимкненим за замовчуванням. |
|
||||
| `legacyPluginIds` | Ні | `string[]` | Застарілі ідентифікатори, які нормалізуються до цього канонічного ідентифікатора плагіна. |
|
||||
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Ідентифікатори провайдерів, які мають автоматично вмикати цей плагін, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
|
||||
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує винятковий тип плагіна, що використовується `plugins.slots.*`. |
|
||||
| `channels` | Ні | `string[]` | Ідентифікатори каналів, які належать цьому плагіну. Використовуються для виявлення та валідації конфігурації. |
|
||||
| `providers` | Ні | `string[]` | Ідентифікатори провайдерів, які належать цьому плагіну. |
|
||||
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, що належать маніфесту та використовуються для автоматичного завантаження плагіна до запуску середовища виконання. |
|
||||
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend для виведення в CLI, які належать цьому плагіну. Використовуються для автоактивації під час запуску на основі явних посилань у конфігурації. |
|
||||
| `syntheticAuthRefs` | Ні | `string[]` | Посилання на провайдерів або backend CLI, для яких потрібно перевіряти синтетичний hook автентифікації, що належить плагіну, під час холодного виявлення моделей до завантаження середовища виконання. |
|
||||
| `nonSecretAuthMarkers` | Ні | `string[]` | Значення-заповнювачі ключів API, що належать вбудованому плагіну і представляють не секретний локальний стан, OAuth або стан ambient-облікових даних. |
|
||||
| `commandAliases` | Ні | `object[]` | Імена команд, які належать цьому плагіну та мають створювати діагностику конфігурації й CLI з урахуванням плагіна до завантаження середовища виконання. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані env для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду плагіна. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | Ідентифікатори провайдерів, які мають повторно використовувати інший ідентифікатор провайдера для пошуку автентифікації, наприклад provайдер кодування, що використовує той самий API key та auth profiles. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані env для каналу, які OpenClaw може перевіряти без завантаження коду плагіна. Використовуйте це для налаштування каналів або поверхонь автентифікації на основі env, які мають бачити загальні допоміжні засоби запуску/конфігурації. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів автентифікації для селекторів онбордингу, визначення бажаного провайдера та простого підключення прапорців CLI. |
|
||||
| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, яке запускається провайдером, командою, каналом, маршрутом і можливостями. Лише метадані; фактична поведінка все одно належить середовищу виконання плагіна. |
|
||||
| `setup` | Ні | `object` | Недорогі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання плагіна. |
|
||||
| `qaRunners` | Ні | `object[]` | Недорогі дескриптори виконавців QA, які використовуються спільним хостом `openclaw qa` до завантаження середовища виконання плагіна. |
|
||||
| `contracts` | Ні | `object` | Статичний знімок вбудованих можливостей для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і володіння інструментами. |
|
||||
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації каналу, що належать маніфесту й об’єднуються в поверхні виявлення та валідації до завантаження середовища виконання. |
|
||||
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня плагіна. |
|
||||
| `name` | Ні | `string` | Зрозуміла людині назва плагіна. |
|
||||
| `description` | Ні | `string` | Короткий опис, що показується в поверхнях плагіна. |
|
||||
| `version` | Ні | `string` | Інформаційна версія плагіна. |
|
||||
| `uiHints` | Ні | `Record<string, object>` | Підписи UI, placeholders і підказки щодо чутливості для полів конфігурації. |
|
||||
|
||||
## Довідник `providerAuthChoices`
|
||||
|
||||
Кожен запис `providerAuthChoices` описує один варіант онбордингу або auth.
|
||||
OpenClaw читає це до завантаження середовища виконання provider.
|
||||
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
|
||||
OpenClaw зчитує це до завантаження середовища виконання провайдера.
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Так | `string` | Ідентифікатор provider, до якого належить цей варіант. |
|
||||
| `method` | Так | `string` | Ідентифікатор методу auth, до якого слід спрямовувати. |
|
||||
| `choiceId` | Так | `string` | Стабільний ідентифікатор варіанта auth, який використовується потоками онбордингу та CLI. |
|
||||
| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо поле не вказано, OpenClaw використовує `choiceId`. |
|
||||
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. |
|
||||
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих асистентом. |
|
||||
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант із селекторів асистента, але все одно дозволяє ручний вибір через CLI. |
|
||||
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі ідентифікатори варіантів, які мають перенаправляти користувачів на цей замінний варіант. |
|
||||
| `groupId` | Ні | `string` | Необов’язковий ідентифікатор групи для групування пов’язаних варіантів. |
|
||||
| `groupLabel` | Ні | `string` | Мітка цієї групи для користувача. |
|
||||
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
|
||||
| `optionKey` | Ні | `string` | Внутрішній ключ опції для простих потоків auth з одним flag. |
|
||||
| `cliFlag` | Ні | `string` | Назва CLI flag, наприклад `--openrouter-api-key`. |
|
||||
| `cliOption` | Ні | `string` | Повна форма CLI option, наприклад `--openrouter-api-key <key>`. |
|
||||
| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. |
|
||||
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має відображатися цей варіант. Якщо поле не вказано, типово використовується `["text-inference"]`. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Так | `string` | Ідентифікатор провайдера, до якого належить цей варіант. |
|
||||
| `method` | Так | `string` | Ідентифікатор методу автентифікації, до якого слід маршрутизувати. |
|
||||
| `choiceId` | Так | `string` | Стабільний ідентифікатор варіанта автентифікації, який використовується в потоках онбордингу та CLI. |
|
||||
| `choiceLabel` | Ні | `string` | Підпис для користувача. Якщо не вказано, OpenClaw використовує `choiceId`. |
|
||||
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. |
|
||||
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих асистентом. |
|
||||
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант у селекторах асистента, але все ще дозволяє ручний вибір через CLI. |
|
||||
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі ідентифікатори варіантів, які мають перенаправляти користувачів на цей варіант-заміну. |
|
||||
| `groupId` | Ні | `string` | Необов’язковий ідентифікатор групи для групування пов’язаних варіантів. |
|
||||
| `groupLabel` | Ні | `string` | Підпис цієї групи для користувача. |
|
||||
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
|
||||
| `optionKey` | Ні | `string` | Внутрішній ключ параметра для простих потоків автентифікації з одним прапорцем. |
|
||||
| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
|
||||
| `cliOption` | Ні | `string` | Повна форма параметра CLI, наприклад `--openrouter-api-key <key>`. |
|
||||
| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. |
|
||||
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має з’являтися цей варіант. Якщо не вказано, типовим значенням є `["text-inference"]`. |
|
||||
|
||||
## Довідник `commandAliases`
|
||||
|
||||
Використовуйте `commandAliases`, коли plugin володіє назвою runtime-команди, яку користувачі можуть
|
||||
помилково вказати в `plugins.allow` або спробувати запустити як кореневу CLI-команду. OpenClaw
|
||||
використовує ці метадані для діагностики без імпорту коду середовища виконання plugin.
|
||||
Використовуйте `commandAliases`, коли плагін володіє назвою команди середовища виконання, яку користувачі можуть
|
||||
помилково додати в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
|
||||
використовує ці метадані для діагностики без імпорту коду середовища виконання плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -220,23 +222,23 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------ | ----------- | ----------------- | -------------------------------------------------------------------------- |
|
||||
| `name` | Так | `string` | Назва команди, яка належить цьому plugin. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу CLI-команду. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева CLI-команда, яку слід рекомендувати для CLI-операцій, якщо вона існує. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------ | ----------- | ----------------- | ------------------------------------------------------------------------ |
|
||||
| `name` | Так | `string` | Назва команди, що належить цьому плагіну. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не кореневу команду CLI. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід запропонувати для операцій CLI, якщо вона існує. |
|
||||
|
||||
## Довідник `activation`
|
||||
|
||||
Використовуйте `activation`, коли plugin може недорого оголосити, які події площини керування
|
||||
Використовуйте `activation`, коли плагін може недорого оголосити, які події control plane
|
||||
мають активувати його пізніше.
|
||||
|
||||
## Довідник `qaRunners`
|
||||
|
||||
Використовуйте `qaRunners`, коли plugin додає один або кілька транспортних засобів запуску під
|
||||
спільним коренем `openclaw qa`. Зберігайте ці метадані недорогими й статичними; фактичною
|
||||
реєстрацією CLI усе одно керує середовище виконання plugin через легковагову
|
||||
поверхню `runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`.
|
||||
Використовуйте `qaRunners`, коли плагін додає один або кілька transport runner під
|
||||
спільним коренем `openclaw qa`. Зберігайте ці метадані дешевими та статичними; фактичною реєстрацією CLI
|
||||
все одно керує середовище виконання плагіна через легку поверхню
|
||||
`runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -249,16 +251,16 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | -------- | ------------------------------------------------------------------- |
|
||||
| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | -------- | -------------------------------------------------------------------- |
|
||||
| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. |
|
||||
| `description` | Ні | `string` | Резервний текст довідки, який використовується, коли спільному хосту потрібна stub-команда. |
|
||||
|
||||
Цей блок — лише метадані. Він не реєструє поведінку runtime і не
|
||||
Цей блок є лише метаданими. Він не реєструє поведінку середовища виконання і не
|
||||
замінює `register(...)`, `setupEntry` або інші точки входу runtime/plugin.
|
||||
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням plugin, тому
|
||||
відсутність метаданих активації зазвичай лише впливає на продуктивність; вона не повинна
|
||||
змінювати коректність, доки ще існують застарілі резервні механізми належності маніфесту.
|
||||
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням плагіна, тож
|
||||
відсутність метаданих активації зазвичай впливає лише на продуктивність; це не повинно
|
||||
змінювати коректність, доки все ще існують застарілі резервні варіанти володіння маніфестом.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -272,27 +274,27 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | -------------------------------------------------------------- |
|
||||
| `onProviders` | Ні | `string[]` | Ідентифікатори providers, які мають активувати цей plugin на запит. |
|
||||
| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей plugin. |
|
||||
| `onChannels` | Ні | `string[]` | Ідентифікатори каналів, які мають активувати цей plugin. |
|
||||
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються для планування активації площини керування. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `onProviders` | Ні | `string[]` | Ідентифікатори провайдерів, які мають активувати цей плагін за запитом. |
|
||||
| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей плагін. |
|
||||
| `onChannels` | Ні | `string[]` | Ідентифікатори каналів, які мають активувати цей плагін. |
|
||||
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей плагін. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються в плануванні активації control plane. |
|
||||
|
||||
Поточні активні споживачі:
|
||||
|
||||
- CLI-планування, що запускається командами, використовує резервний механізм
|
||||
`commandAliases[].cliCommand` або `commandAliases[].name`
|
||||
- планування налаштування/каналів, що запускається каналами, використовує резервний механізм застарілої
|
||||
належності `channels[]`, коли явні метадані активації каналу відсутні
|
||||
- планування налаштування/runtime, що запускається providers, використовує резервний механізм застарілої
|
||||
належності `providers[]` і верхньорівневого `cliBackends[]`, коли явні метадані активації provider
|
||||
відсутні
|
||||
- CLI-планування, що запускається командою, використовує як резервний варіант
|
||||
застарілі `commandAliases[].cliCommand` або `commandAliases[].name`
|
||||
- планування налаштування/каналу, що запускається каналом, використовує як резервний варіант
|
||||
застаріле володіння `channels[]`, якщо явні метадані активації каналу відсутні
|
||||
- планування налаштування/runtime, що запускається провайдером, використовує як резервний варіант
|
||||
застаріле володіння `providers[]` і верхньорівневе володіння `cliBackends[]`, якщо явні метадані
|
||||
активації провайдера відсутні
|
||||
|
||||
## Довідник `setup`
|
||||
|
||||
Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні недорогі метадані, що належать plugin,
|
||||
Використовуйте `setup`, коли поверхням налаштування й онбордингу потрібні недорогі метадані плагіна
|
||||
до завантаження середовища виконання.
|
||||
|
||||
```json
|
||||
@ -312,41 +314,41 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Верхньорівневе `cliBackends` залишається чинним і надалі описує CLI backend висновку.
|
||||
`setup.cliBackends` — це поверхня дескрипторів, специфічна для налаштування, для
|
||||
потоків площини керування/налаштування, які мають залишатися лише метаданими.
|
||||
Верхньорівневе `cliBackends` залишається валідним і продовжує описувати backend для виведення в CLI.
|
||||
`setup.cliBackends` — це поверхня дескрипторів, специфічна для налаштування, для потоків
|
||||
control plane/налаштування, яка має залишатися лише метаданими.
|
||||
|
||||
Якщо вони присутні, `setup.providers` і `setup.cliBackends` є пріоритетною
|
||||
поверхнею пошуку на основі дескрипторів для виявлення налаштування. Якщо дескриптор лише
|
||||
звужує коло кандидатів plugin, а налаштуванню все одно потрібні багатші runtime-хуки під час налаштування,
|
||||
звужує кандидатний плагін, а налаштуванню все ще потрібні багатші hook середовища виконання на етапі налаштування,
|
||||
встановіть `requiresRuntime: true` і залиште `setup-api` як
|
||||
резервний шлях виконання.
|
||||
|
||||
Оскільки пошук налаштування може виконувати код `setup-api`, що належить plugin,
|
||||
Оскільки пошук налаштування може виконувати код `setup-api`, що належить плагіну,
|
||||
нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед
|
||||
виявлених plugins. Неоднозначна належність призводить до безпечної відмови замість вибору
|
||||
переможця за порядком виявлення.
|
||||
виявлених плагінів. Неоднозначне володіння завершується безпечним блокуванням замість вибору
|
||||
переможця на основі порядку виявлення.
|
||||
|
||||
### Довідник `setup.providers`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | ---------- | ------------------------------------------------------------------------------------- |
|
||||
| `id` | Так | `string` | Ідентифікатор provider, який надається під час налаштування або онбордингу. Нормалізовані ідентифікатори мають бути глобально унікальними. |
|
||||
| `authMethods` | Ні | `string[]` | Ідентифікатори методів налаштування/auth, які цей provider підтримує без завантаження повного runtime. |
|
||||
| `envVars` | Ні | `string[]` | Змінні env, які загальні поверхні налаштування/статусу можуть перевіряти до завантаження runtime plugin. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | ---------- | ------------------------------------------------------------------------------------------ |
|
||||
| `id` | Так | `string` | Ідентифікатор провайдера, що показується під час налаштування або онбордингу. Нормалізовані ідентифікатори мають бути глобально унікальними. |
|
||||
| `authMethods` | Ні | `string[]` | Ідентифікатори методів налаштування/автентифікації, які цей провайдер підтримує без завантаження повного середовища виконання. |
|
||||
| `envVars` | Ні | `string[]` | Змінні env, які загальні поверхні налаштування/статусу можуть перевіряти до завантаження середовища виконання плагіна. |
|
||||
|
||||
### Поля `setup`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------------ | ----------- | ---------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Ні | `object[]` | Дескриптори налаштування providers, які надаються під час налаштування та онбордингу. |
|
||||
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend для часу налаштування, що використовуються для пошуку налаштування за принципом descriptor-first. Нормалізовані ідентифікатори мають бути глобально унікальними. |
|
||||
| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, якими володіє поверхня налаштування цього plugin. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує налаштування виконання `setup-api` після пошуку за дескриптором. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------------ | ----------- | ---------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Ні | `object[]` | Дескриптори налаштування провайдерів, що показуються під час налаштування та онбордингу. |
|
||||
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend на етапі налаштування, що використовуються для пошуку налаштування на основі дескрипторів. Нормалізовані ідентифікатори мають бути глобально унікальними. |
|
||||
| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, що належать поверхні налаштування цього плагіна. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує налаштування виконання `setup-api` після пошуку дескриптора. |
|
||||
|
||||
## Довідник `uiHints`
|
||||
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок для рендерингу.
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -361,21 +363,21 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Кожна підказка для поля може містити:
|
||||
Кожна підказка поля може містити:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ---------- | -------------------------------------- |
|
||||
| `label` | `string` | Мітка поля для користувача. |
|
||||
| `help` | `string` | Короткий допоміжний текст. |
|
||||
| `tags` | `string[]` | Необов’язкові UI-теги. |
|
||||
| `advanced` | `boolean` | Позначає поле як розширене. |
|
||||
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
|
||||
| `placeholder` | `string` | Текст-плейсхолдер для полів форми. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ---------- | --------------------------------------- |
|
||||
| `label` | `string` | Підпис поля для користувача. |
|
||||
| `help` | `string` | Короткий допоміжний текст. |
|
||||
| `tags` | `string[]` | Необов’язкові теги UI. |
|
||||
| `advanced` | `boolean` | Позначає поле як розширене. |
|
||||
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
|
||||
| `placeholder` | `string` | Текст placeholder для полів форми. |
|
||||
|
||||
## Довідник `contracts`
|
||||
|
||||
Використовуйте `contracts` лише для статичних метаданих належності можливостей, які OpenClaw може
|
||||
прочитати без імпорту runtime plugin.
|
||||
Використовуйте `contracts` лише для статичних метаданих володіння можливостями, які OpenClaw може
|
||||
зчитувати без імпорту середовища виконання плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -395,22 +397,22 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
Кожен список є необов’язковим:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| -------------------------------- | ---------- | ----------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Ідентифікатори speech providers, якими володіє цей plugin. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Ідентифікатори providers для транскрипції в реальному часі, якими володіє цей plugin. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Ідентифікатори providers для голосу в реальному часі, якими володіє цей plugin. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Ідентифікатори providers для media-understanding, якими володіє цей plugin. |
|
||||
| `imageGenerationProviders` | `string[]` | Ідентифікатори providers для image-generation, якими володіє цей plugin. |
|
||||
| `videoGenerationProviders` | `string[]` | Ідентифікатори providers для video-generation, якими володіє цей plugin. |
|
||||
| `webFetchProviders` | `string[]` | Ідентифікатори providers для web-fetch, якими володіє цей plugin. |
|
||||
| `webSearchProviders` | `string[]` | Ідентифікатори providers для web search, якими володіє цей plugin. |
|
||||
| `tools` | `string[]` | Назви інструментів агента, якими володіє цей plugin, для перевірок контрактів вбудованих пакетів. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| -------------------------------- | ---------- | ------------------------------------------------------------ |
|
||||
| `speechProviders` | `string[]` | Ідентифікатори speech-провайдерів, які належать цьому плагіну. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Ідентифікатори провайдерів realtime-transcription, які належать цьому плагіну. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Ідентифікатори провайдерів realtime-voice, які належать цьому плагіну. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Ідентифікатори провайдерів media-understanding, які належать цьому плагіну. |
|
||||
| `imageGenerationProviders` | `string[]` | Ідентифікатори провайдерів image-generation, які належать цьому плагіну. |
|
||||
| `videoGenerationProviders` | `string[]` | Ідентифікатори провайдерів video-generation, які належать цьому плагіну. |
|
||||
| `webFetchProviders` | `string[]` | Ідентифікатори провайдерів web-fetch, які належать цьому плагіну. |
|
||||
| `webSearchProviders` | `string[]` | Ідентифікатори провайдерів web search, які належать цьому плагіну. |
|
||||
| `tools` | `string[]` | Назви інструментів агента, які належать цьому плагіну для перевірок вбудованих контрактів. |
|
||||
|
||||
## Довідник `channelConfigs`
|
||||
|
||||
Використовуйте `channelConfigs`, коли channel plugin потребує недорогих метаданих конфігурації до
|
||||
завантаження runtime.
|
||||
Використовуйте `channelConfigs`, коли плагіну каналу потрібні недорогі метадані конфігурації
|
||||
до завантаження середовища виконання.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -439,18 +441,18 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
Кожен запис каналу може містити:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкове для кожного оголошеного запису конфігурації каналу. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові UI-мітки/плейсхолдери/підказки чутливості для цього розділу конфігурації каналу. |
|
||||
| `label` | `string` | Мітка каналу, що об’єднується з поверхнями вибору та перегляду, коли метадані runtime ще не готові. |
|
||||
| `description` | `string` | Короткий опис каналу для поверхонь перегляду та каталогу. |
|
||||
| `preferOver` | `string[]` | Застарілі або нижчопріоритетні ідентифікатори plugins, які цей канал має випереджати на поверхнях вибору. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові підписи UI/placeholders/підказки чутливості для цього розділу конфігурації каналу. |
|
||||
| `label` | `string` | Підпис каналу, що об’єднується в поверхні вибору та перевірки, коли метадані середовища виконання ще не готові. |
|
||||
| `description` | `string` | Короткий опис каналу для поверхонь перевірки та каталогу. |
|
||||
| `preferOver` | `string[]` | Ідентифікатори застарілих або менш пріоритетних плагінів, які цей канал має випереджати в поверхнях вибору. |
|
||||
|
||||
## Довідник `modelSupport`
|
||||
|
||||
Використовуйте `modelSupport`, коли OpenClaw має визначати ваш provider plugin із
|
||||
скорочених ідентифікаторів моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime plugin.
|
||||
Використовуйте `modelSupport`, коли OpenClaw має виводити ваш плагін провайдера з
|
||||
скорочених ідентифікаторів моделей на кшталт `gpt-5.4` або `claude-sonnet-4.6` до завантаження середовища виконання плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -461,76 +463,76 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw застосовує таку пріоритетність:
|
||||
OpenClaw застосовує такий пріоритет:
|
||||
|
||||
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику
|
||||
- `modelPatterns` мають вищий пріоритет за `modelPrefixes`
|
||||
- якщо збігаються один невбудований plugin і один вбудований plugin, перемагає невбудований
|
||||
plugin
|
||||
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкажуть provider
|
||||
- якщо збігаються один невбудований плагін і один вбудований плагін, перемагає невбудований
|
||||
плагін
|
||||
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкажуть провайдера
|
||||
|
||||
Поля:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| --------------- | ---------- | ---------------------------------------------------------------------------- |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| --------------- | ---------- | ---------------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими ідентифікаторами моделей. |
|
||||
| `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими ідентифікаторами моделей після видалення суфікса профілю. |
|
||||
|
||||
Застарілі ключі можливостей верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб
|
||||
перемістити `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
перенести `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` і `webSearchProviders` до `contracts`; звичайне
|
||||
завантаження маніфесту більше не розглядає ці поля верхнього рівня як
|
||||
належність можливостей.
|
||||
завантаження маніфесту більше не трактує ці поля верхнього рівня як
|
||||
володіння можливостями.
|
||||
|
||||
## Маніфест і package.json
|
||||
|
||||
Ці два файли виконують різні завдання:
|
||||
Ці два файли виконують різні ролі:
|
||||
|
||||
| Файл | Для чого його використовувати |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані вибору auth і підказки інтерфейсу, які мають існувати до запуску коду plugin |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмеження встановлення, налаштування або метаданих каталогу |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду плагіна |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, контролю встановлення, налаштування або метаданих каталогу |
|
||||
|
||||
Якщо ви не впевнені, куди належить певний фрагмент метаданих, користуйтеся таким правилом:
|
||||
Якщо ви не впевнені, куди має належати певний фрагмент метаданих, використовуйте таке правило:
|
||||
|
||||
- якщо OpenClaw має знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json`
|
||||
- якщо OpenClaw має знати це до завантаження коду плагіна, помістіть це в `openclaw.plugin.json`
|
||||
- якщо це стосується пакування, файлів точок входу або поведінки встановлення npm, помістіть це в `package.json`
|
||||
|
||||
### Поля `package.json`, які впливають на виявлення
|
||||
### Поля package.json, що впливають на виявлення
|
||||
|
||||
Деякі метадані plugin до запуску runtime навмисно розміщені в `package.json` у блоці
|
||||
Деякі метадані плагіна до запуску середовища виконання навмисно розміщуються в `package.json` у блоці
|
||||
`openclaw`, а не в `openclaw.plugin.json`.
|
||||
|
||||
Важливі приклади:
|
||||
|
||||
| Поле | Що воно означає |
|
||||
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Оголошує власні точки входу plugin. |
|
||||
| `openclaw.extensions` | Оголошує власні точки входу Plugin. |
|
||||
| `openclaw.setupEntry` | Легка точка входу лише для налаштування, що використовується під час онбордингу та відкладеного запуску каналу. |
|
||||
| `openclaw.channel` | Недорогі метадані каталогу каналів, як-от мітки, шляхи до документації, псевдоніми та текст вибору. |
|
||||
| `openclaw.channel.configuredState` | Недорогі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.channel.persistedAuthState` | Недорогі метадані перевірки збереженого auth-стану, які можуть відповісти на запитання «чи вже є щось із виконаним входом?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки для встановлення/оновлення вбудованих і зовнішньо опублікованих plugins. |
|
||||
| `openclaw.channel` | Недорогі метадані каталогу каналів, як-от підписи, шляхи до документації, псевдоніми та текст для вибору. |
|
||||
| `openclaw.channel.configuredState` | Недорогі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного середовища виконання каналу. |
|
||||
| `openclaw.channel.persistedAuthState` | Недорогі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже є будь-що підписане?» без завантаження повного середовища виконання каналу. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки щодо встановлення/оновлення для вбудованих і зовнішньо опублікованих плагінів. |
|
||||
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
|
||||
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw, із semver-нижньою межею на кшталт `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення вбудованого plugin, коли конфігурація недійсна. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для налаштування завантажуватися до повного plugin каналу під час запуску. |
|
||||
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із нижньою межею semver, наприклад `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення через перевстановлення вбудованого плагіна, коли конфігурація невалідна. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для налаштування завантажуватися до повного плагіна каналу під час запуску. |
|
||||
|
||||
`openclaw.install.minHostVersion` примусово перевіряється під час встановлення та
|
||||
завантаження реєстру маніфестів. Недійсні значення відхиляються; новіші, але коректні значення пропускають
|
||||
plugin на старіших хостах.
|
||||
`openclaw.install.minHostVersion` примусово застосовується під час встановлення та
|
||||
завантаження реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають
|
||||
плагін на старіших хостах.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` є навмисно вузьким. Воно
|
||||
не робить довільно зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє
|
||||
потокам встановлення відновлюватися після певних застарілих збоїв оновлення вбудованих plugins, таких як
|
||||
відсутній шлях до вбудованого plugin або застарілий запис `channels.<id>` для того самого
|
||||
вбудованого plugin. Непов’язані помилки конфігурації все одно блокують встановлення й спрямовують операторів
|
||||
`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке застосування. Воно не
|
||||
робить довільні зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє
|
||||
потокам встановлення відновлюватися після певних застарілих збоїв оновлення вбудованих плагінів, наприклад
|
||||
відсутнього шляху до вбудованого плагіна або застарілого запису `channels.<id>` для того самого
|
||||
вбудованого плагіна. Непов’язані помилки конфігурації все одно блокують встановлення й спрямовують операторів
|
||||
до `openclaw doctor --fix`.
|
||||
|
||||
`openclaw.channel.persistedAuthState` — це метадані package для маленького
|
||||
модуля перевірки:
|
||||
`openclaw.channel.persistedAuthState` — це метадані пакета для маленького
|
||||
модуля-перевірки:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -546,11 +548,12 @@ plugin на старіших хостах.
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли потокам налаштування, doctor або configured-state потрібна недорога
|
||||
перевірка auth у форматі так/ні до завантаження повного plugin каналу. Цільовий експорт має бути невеликою
|
||||
функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel runtime каналу.
|
||||
Використовуйте це, коли потокам налаштування, doctor або configured-state потрібна недорога перевірка
|
||||
автентифікації типу так/ні до завантаження повного плагіна каналу. Цільовий експорт має бути невеликою
|
||||
функцією, яка лише читає збережений стан; не маршрутизуйте її через повний barrel
|
||||
середовища виконання каналу.
|
||||
|
||||
`openclaw.channel.configuredState` має таку саму форму для недорогих перевірок
|
||||
`openclaw.channel.configuredState` має ту саму форму для недорогих перевірок
|
||||
налаштованого стану лише через env:
|
||||
|
||||
```json
|
||||
@ -567,67 +570,73 @@ plugin на старіших хостах.
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли канал може визначити налаштований стан на основі env або інших невеликих
|
||||
вхідних даних, не пов’язаних із runtime. Якщо для перевірки потрібне повне визначення конфігурації або реальний
|
||||
runtime каналу, натомість залиште цю логіку в хуку plugin `config.hasConfiguredState`.
|
||||
Використовуйте це, коли канал може визначити налаштований стан через env або інші малі
|
||||
вхідні дані без середовища виконання. Якщо перевірка потребує повного визначення конфігурації або реального
|
||||
середовища виконання каналу, натомість залиште цю логіку в hook `config.hasConfiguredState`
|
||||
плагіна.
|
||||
|
||||
## Вимоги до JSON Schema
|
||||
|
||||
- **Кожен plugin повинен постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію.
|
||||
- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час runtime.
|
||||
- **Кожен плагін повинен містити JSON Schema**, навіть якщо він не приймає жодної конфігурації.
|
||||
- Порожня схема припустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання.
|
||||
|
||||
## Поведінка валідації
|
||||
|
||||
- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор каналу не оголошено
|
||||
в маніфесті plugin.
|
||||
в маніфесті плагіна.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
|
||||
мають посилатися на **виявлювані** ідентифікатори plugins. Невідомі ідентифікатори є **помилками**.
|
||||
- Якщо plugin встановлено, але його маніфест або схема пошкоджені чи відсутні,
|
||||
валідація завершується помилкою, а Doctor повідомляє про помилку plugin.
|
||||
- Якщо конфігурація plugin існує, але plugin **вимкнений**, конфігурація зберігається, і
|
||||
в Doctor + журналах відображається **попередження**.
|
||||
повинні посилатися на **виявлювані** ідентифікатори плагінів. Невідомі ідентифікатори є **помилками**.
|
||||
- Якщо плагін встановлено, але має зламаний або відсутній маніфест чи схему,
|
||||
валідація завершується помилкою, а Doctor повідомляє про помилку плагіна.
|
||||
- Якщо конфігурація плагіна існує, але плагін **вимкнено**, конфігурація зберігається, і
|
||||
у Doctor + журналах відображається **попередження**.
|
||||
|
||||
Див. [Довідник із конфігурації](/uk/gateway/configuration), щоб ознайомитися з повною схемою `plugins.*`.
|
||||
Повну схему `plugins.*` див. у [Довідник конфігурації](/uk/gateway/configuration).
|
||||
|
||||
## Примітки
|
||||
|
||||
- Маніфест **обов’язковий для власних Plugin OpenClaw**, включно із завантаженням із локальної файлової системи.
|
||||
- Runtime як і раніше завантажує модуль plugin окремо; маніфест призначений лише для
|
||||
- Маніфест є **обов’язковим для власних Plugin OpenClaw**, зокрема для завантажень із локальної файлової системи.
|
||||
- Середовище виконання все одно завантажує модуль плагіна окремо; маніфест використовується лише для
|
||||
виявлення + валідації.
|
||||
- Власні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та
|
||||
ключі без лапок допускаються, якщо кінцеве значення все ще є об’єктом.
|
||||
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання
|
||||
тут користувацьких ключів верхнього рівня.
|
||||
- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок auth, валідації
|
||||
env-маркерів і подібних поверхонь auth provider, які не повинні запускати runtime plugin
|
||||
ключі без лапок приймаються, якщо кінцеве значення все ще є об’єктом.
|
||||
- Завантажувач маніфесту зчитує лише задокументовані поля маніфесту. Уникайте додавання
|
||||
тут власних ключів верхнього рівня.
|
||||
- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок автентифікації, валідації
|
||||
env-marker та подібних поверхонь автентифікації провайдера, які не повинні запускати середовище виконання плагіна
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthAliases` дозволяє варіантам provider повторно використовувати auth-змінні env,
|
||||
профілі auth, auth на основі конфігурації та варіант онбордингу з API key іншого provider
|
||||
- `providerAuthAliases` дає змогу варіантам провайдера повторно використовувати змінні env автентифікації,
|
||||
auth profiles, автентифікацію на основі конфігурації та варіант онбордингу з API key іншого провайдера
|
||||
без жорсткого кодування цього зв’язку в core.
|
||||
- `syntheticAuthRefs` — це недорогий шлях метаданих для синтетичних
|
||||
auth-хуків, що належать provider і мають бути видимими для холодного виявлення моделей до того, як з’явиться реєстр
|
||||
runtime. Перелічуйте лише ті посилання, чий runtime provider або CLI backend справді
|
||||
реалізує `resolveSyntheticAuth`.
|
||||
- `channelEnvVars` — це недорогий шлях метаданих для резервного використання env оболонки, запитів налаштування
|
||||
та подібних поверхонь каналів, які не повинні запускати runtime plugin
|
||||
- `syntheticAuthRefs` — це недорогий шлях метаданих для синтетичних hook автентифікації, що належать провайдеру,
|
||||
які мають бути видимими для холодного виявлення моделей до появи
|
||||
реєстру runtime. Вказуйте лише ті посилання, runtime-провайдер або backend CLI яких
|
||||
дійсно реалізує `resolveSyntheticAuth`.
|
||||
- `nonSecretAuthMarkers` — це недорогий шлях метаданих для значень-заповнювачів ключів API,
|
||||
що належать вбудованому плагіну, як-от локальні, OAuth або маркери ambient-облікових даних.
|
||||
Core трактує їх як не секретні для відображення автентифікації та аудиту секретів без
|
||||
жорсткого кодування провайдера-власника.
|
||||
- `channelEnvVars` — це недорогий шлях метаданих для резервного використання shell-env, підказок
|
||||
налаштування та подібних поверхонь каналу, які не повинні запускати середовище виконання плагіна
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthChoices` — це недорогий шлях метаданих для селекторів варіантів auth,
|
||||
визначення `--auth-choice`, зіставлення пріоритетного provider і простої реєстрації CLI flag під час онбордингу
|
||||
до завантаження runtime provider. Метадані runtime wizard, які потребують коду provider, див. у
|
||||
[Хуки runtime provider](/uk/plugins/architecture#provider-runtime-hooks).
|
||||
- Взаємовиключні типи plugins вибираються через `plugins.slots.*`.
|
||||
- `providerAuthChoices` — це недорогий шлях метаданих для селекторів варіантів автентифікації,
|
||||
визначення `--auth-choice`, зіставлення бажаного провайдера та простої реєстрації
|
||||
прапорців CLI для онбордингу до завантаження середовища виконання провайдера. Для метаданих wizard середовища виконання,
|
||||
які потребують коду провайдера, див.
|
||||
[Runtime hooks провайдера](/uk/plugins/architecture#provider-runtime-hooks).
|
||||
- Виняткові типи плагінів вибираються через `plugins.slots.*`.
|
||||
- `kind: "memory"` вибирається через `plugins.slots.memory`.
|
||||
- `kind: "context-engine"` вибирається через `plugins.slots.contextEngine`
|
||||
(типово: вбудований `legacy`).
|
||||
(типове значення: вбудований `legacy`).
|
||||
- `channels`, `providers`, `cliBackends` і `skills` можна не вказувати, якщо
|
||||
plugin їх не потребує.
|
||||
- Якщо ваш plugin залежить від native modules, задокументуйте кроки збирання та всі
|
||||
плагіну вони не потрібні.
|
||||
- Якщо ваш плагін залежить від власних модулів, задокументуйте кроки збирання та всі
|
||||
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з plugins
|
||||
- [Створення плагінів](/uk/plugins/building-plugins) — початок роботи з плагінами
|
||||
- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник по Plugin SDK
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник SDK Plugin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user