chore(i18n): refresh uk translations
This commit is contained in:
parent
cffd59ae31
commit
92d8bfacae
File diff suppressed because it is too large
Load Diff
@ -1,73 +1,77 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви створюєте плагін OpenClaw
|
||||
- Вам потрібно постачати схему конфігурації плагіна або налагоджувати помилки валідації плагіна
|
||||
summary: Маніфест плагіна + вимоги до JSON schema (сувора валідація конфігурації)
|
||||
title: Маніфест плагіна
|
||||
- Ви створюєте plugin для OpenClaw
|
||||
- Вам потрібно надати схему конфігурації plugin або налагодити помилки валідації plugin
|
||||
summary: Вимоги до маніфесту Plugin + JSON schema (сувора валідація конфігурації)
|
||||
title: Маніфест Plugin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T08:09:11Z"
|
||||
generated_at: "2026-04-12T09:53:31Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4074b3639bf24606d6087597f28e29afc85f4ea628a713e9d984b441a16f1c13
|
||||
source_hash: 08745ead2c2ab83e56dc041ec3187deead6f0439cb8c8423db03c2e3f5c78e9e
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Маніфест плагіна (`openclaw.plugin.json`)
|
||||
# Маніфест Plugin (`openclaw.plugin.json`)
|
||||
|
||||
Ця сторінка стосується лише **власного маніфесту плагіна OpenClaw**.
|
||||
Ця сторінка стосується лише **власного маніфесту Plugin для OpenClaw**.
|
||||
|
||||
Щоб дізнатися про сумісні макети пакетів, див. [Пакети плагінів](/uk/plugins/bundles).
|
||||
Сумісні компонування пакетів описано в [Plugin bundles](/uk/plugins/bundles).
|
||||
|
||||
Сумісні формати пакетів використовують інші файли маніфесту:
|
||||
|
||||
- Пакет Codex: `.codex-plugin/plugin.json`
|
||||
- Пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
|
||||
- Пакет Claude: `.claude-plugin/plugin.json` або стандартне компонування компонентів Claude
|
||||
без маніфесту
|
||||
- Пакет Cursor: `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw також автоматично виявляє ці макети пакетів, але вони не проходять валідацію
|
||||
за схемою `openclaw.plugin.json`, описаною тут.
|
||||
OpenClaw також автоматично виявляє ці компонування пакетів, але вони не проходять валідацію
|
||||
відповідно до схеми `openclaw.plugin.json`, описаної тут.
|
||||
|
||||
Для сумісних пакетів OpenClaw наразі читає метадані пакета, а також оголошені
|
||||
кореневі каталоги skills, кореневі каталоги команд Claude, стандартні значення `settings.json` пакета Claude,
|
||||
стандартні значення LSP пакета Claude та підтримувані набори hooks, коли макет відповідає
|
||||
Для сумісних пакетів OpenClaw наразі читає метадані пакета разом з оголошеними
|
||||
коренями skill, коренями команд Claude, типовими значеннями `settings.json` для пакетів Claude,
|
||||
типовими значеннями LSP для пакетів Claude та підтримуваними наборами hook, коли компонування відповідає
|
||||
очікуванням середовища виконання OpenClaw.
|
||||
|
||||
Кожен власний плагін OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у
|
||||
**корені плагіна**. OpenClaw використовує цей маніфест для валідації конфігурації
|
||||
**без виконання коду плагіна**. Відсутні або недійсні маніфести вважаються
|
||||
помилками плагіна й блокують валідацію конфігурації.
|
||||
Кожен власний Plugin для OpenClaw **повинен** містити файл `openclaw.plugin.json` у
|
||||
**корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
|
||||
**без виконання коду plugin**. Відсутні або невалідні маніфести вважаються
|
||||
помилками plugin і блокують валідацію конфігурації.
|
||||
|
||||
Див. повний посібник із системи плагінів: [Плагіни](/uk/tools/plugin).
|
||||
Щодо власної моделі можливостей і поточних вказівок щодо зовнішньої сумісності:
|
||||
[Модель можливостей](/uk/plugins/architecture#public-capability-model).
|
||||
Дивіться повний посібник із системи plugin: [Plugins](/uk/tools/plugin).
|
||||
Для власної моделі capability та поточних вказівок щодо зовнішньої сумісності:
|
||||
[Модель capability](/uk/plugins/architecture#public-capability-model).
|
||||
|
||||
## Що робить цей файл
|
||||
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw читає до завантаження коду
|
||||
вашого плагіна.
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw читає перед завантаженням коду
|
||||
вашого plugin.
|
||||
|
||||
Використовуйте його для:
|
||||
|
||||
- ідентичності плагіна
|
||||
- ідентифікації plugin
|
||||
- валідації конфігурації
|
||||
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску середовища виконання плагіна
|
||||
- легких підказок активації, які поверхні control-plane можуть перевіряти до завантаження середовища виконання
|
||||
- легких дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до завантаження середовища виконання
|
||||
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання плагіна
|
||||
- скорочених метаданих володіння сімействами моделей, які мають автоматично активувати плагін до завантаження середовища виконання
|
||||
- статичних знімків володіння можливостями, що використовуються для wiring сумісності пакетів і покриття контрактів
|
||||
- метаданих конфігурації каналів, які мають об’єднуватися з поверхнями каталогу та валідації без завантаження середовища виконання
|
||||
- метаданих auth і onboarding, які мають бути доступні без запуску середовища виконання plugin
|
||||
- недорогих підказок активації, які поверхні control-plane можуть перевіряти до завантаження runtime
|
||||
- недорогих дескрипторів налаштування, які поверхні setup/onboarding можуть перевіряти до
|
||||
завантаження runtime
|
||||
- метаданих alias та auto-enable, які мають визначатися до завантаження runtime plugin
|
||||
- скорочених метаданих володіння сімействами моделей, які мають автоматично активувати
|
||||
plugin до завантаження runtime
|
||||
- статичних знімків володіння capability, що використовуються для вбудованої compat-обв’язки та
|
||||
перевірки контрактів
|
||||
- метаданих конфігурації, специфічних для channel, які мають об’єднуватися в каталог і поверхні
|
||||
валідації без завантаження runtime
|
||||
- підказок UI для конфігурації
|
||||
|
||||
Не використовуйте його для:
|
||||
|
||||
- реєстрації поведінки середовища виконання
|
||||
- оголошення кодових entrypoint
|
||||
- реєстрації поведінки runtime
|
||||
- оголошення entrypoint коду
|
||||
- метаданих встановлення npm
|
||||
|
||||
Це належить коду вашого плагіна та `package.json`.
|
||||
Для цього призначені код вашого plugin і `package.json`.
|
||||
|
||||
## Мінімальний приклад
|
||||
|
||||
@ -88,7 +92,7 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
{
|
||||
"id": "openrouter",
|
||||
"name": "OpenRouter",
|
||||
"description": "Плагін провайдера OpenRouter",
|
||||
"description": "OpenRouter provider plugin",
|
||||
"version": "1.0.0",
|
||||
"providers": ["openrouter"],
|
||||
"modelSupport": {
|
||||
@ -109,19 +113,19 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
"provider": "openrouter",
|
||||
"method": "api-key",
|
||||
"choiceId": "openrouter-api-key",
|
||||
"choiceLabel": "Ключ API OpenRouter",
|
||||
"choiceLabel": "OpenRouter API key",
|
||||
"groupId": "openrouter",
|
||||
"groupLabel": "OpenRouter",
|
||||
"optionKey": "openrouterApiKey",
|
||||
"cliFlag": "--openrouter-api-key",
|
||||
"cliOption": "--openrouter-api-key <key>",
|
||||
"cliDescription": "Ключ API OpenRouter",
|
||||
"cliDescription": "OpenRouter API key",
|
||||
"onboardingScopes": ["text-inference"]
|
||||
}
|
||||
],
|
||||
"uiHints": {
|
||||
"apiKey": {
|
||||
"label": "Ключ API",
|
||||
"label": "API key",
|
||||
"placeholder": "sk-or-v1-...",
|
||||
"sensitive": true
|
||||
}
|
||||
@ -142,60 +146,60 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `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, якими володіє цей плагін. Використовуються для автоматичної активації під час запуску з явних посилань конфігурації. |
|
||||
| `commandAliases` | Ні | `object[]` | Назви команд, якими володіє цей плагін і які мають створювати діагностику конфігурації та CLI з урахуванням плагіна до завантаження середовища виконання. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані змінних середовища для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду плагіна. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | Ідентифікатори провайдерів, які мають повторно використовувати інший ідентифікатор провайдера для пошуку автентифікації, наприклад провайдер кодування, що спільно використовує ключ API базового провайдера та профілі автентифікації. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані змінних середовища каналу, які OpenClaw може перевіряти без завантаження коду плагіна. Використовуйте це для поверхонь налаштування або автентифікації каналів через змінні середовища, які мають бачити загальні допоміжні засоби запуску/конфігурації. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Легкі метадані варіантів автентифікації для селекторів онбордингу, визначення пріоритетного провайдера та простого wiring прапорців CLI. |
|
||||
| `activation` | Ні | `object` | Легкі підказки активації для завантаження, яке запускається провайдером, командою, каналом, маршрутом і можливістю. Лише метадані; фактичною поведінкою все одно володіє середовище виконання плагіна. |
|
||||
| `setup` | Ні | `object` | Легкі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання плагіна. |
|
||||
| `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, заповнювачі та підказки щодо чутливості для полів конфігурації. |
|
||||
| `id` | Так | `string` | Канонічний id plugin. Це id, який використовується в `plugins.entries.<id>`. |
|
||||
| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього plugin. |
|
||||
| `enabledByDefault` | Ні | `true` | Позначає вбудований plugin як увімкнений за замовчуванням. Пропустіть це поле або встановіть будь-яке значення, відмінне від `true`, щоб plugin залишався вимкненим за замовчуванням. |
|
||||
| `legacyPluginIds` | Ні | `string[]` | Застарілі id, які нормалізуються до цього канонічного id plugin. |
|
||||
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | id provider, які мають автоматично вмикати цей plugin, коли auth, config або посилання на модель згадують їх. |
|
||||
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип plugin, що використовується `plugins.slots.*`. |
|
||||
| `channels` | Ні | `string[]` | id channel, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. |
|
||||
| `providers` | Ні | `string[]` | id provider, якими володіє цей plugin. |
|
||||
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, якими володіє маніфест і які використовуються для автоматичного завантаження plugin до runtime. |
|
||||
| `cliBackends` | Ні | `string[]` | id backend CLI, якими володіє цей plugin. Використовується для автоматичної активації під час запуску на основі явних посилань у config. |
|
||||
| `commandAliases` | Ні | `object[]` | Імена команд, якими володіє цей plugin і які мають формувати діагностику config і CLI з урахуванням plugin до завантаження runtime. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані змінних середовища для auth provider, які OpenClaw може перевіряти без завантаження коду plugin. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | id provider, які мають повторно використовувати інший id provider для пошуку auth, наприклад coding-provider, який спільно використовує базовий API key provider та профілі auth. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані змінних середовища для channel, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для setup channel через env або поверхонь auth, які мають бачити загальні helpers startup/config. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів auth для засобів вибору в onboarding, визначення preferred-provider і простої обв’язки прапорців CLI. |
|
||||
| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, яке запускається provider, командою, channel, маршрутом або capability. Лише метадані; фактична поведінка, як і раніше, належить runtime plugin. |
|
||||
| `setup` | Ні | `object` | Недорогі дескриптори setup/onboarding, які поверхні виявлення та налаштування можуть перевіряти без завантаження runtime plugin. |
|
||||
| `contracts` | Ні | `object` | Статичний знімок вбудованих capability для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і володіння tools. |
|
||||
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації channel, якими володіє маніфест і які об’єднуються в поверхні виявлення та валідації до завантаження runtime. |
|
||||
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. |
|
||||
| `name` | Ні | `string` | Зрозуміла людині назва plugin. |
|
||||
| `description` | Ні | `string` | Короткий опис, що показується в поверхнях plugin. |
|
||||
| `version` | Ні | `string` | Інформаційна версія plugin. |
|
||||
| `uiHints` | Ні | `Record<string, object>` | Підписи UI, placeholders і підказки щодо чутливості для полів конфігурації. |
|
||||
|
||||
## Довідник `providerAuthChoices`
|
||||
|
||||
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
|
||||
OpenClaw читає це до завантаження середовища виконання провайдера.
|
||||
Кожен запис `providerAuthChoices` описує один варіант onboarding або auth.
|
||||
OpenClaw читає це до завантаження runtime provider.
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `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"]`. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Так | `string` | id provider, до якого належить цей варіант. |
|
||||
| `method` | Так | `string` | id методу auth, до якого слід маршрутизувати. |
|
||||
| `choiceId` | Так | `string` | Стабільний id варіанта auth, який використовується в потоках onboarding і CLI. |
|
||||
| `choiceLabel` | Ні | `string` | Підпис для користувача. Якщо поле пропущено, OpenClaw використовує `choiceId`. |
|
||||
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для засобу вибору. |
|
||||
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних засобах вибору, керованих асистентом. |
|
||||
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант у засобах вибору асистента, але все одно дозволяє ручний вибір через CLI. |
|
||||
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів на цей варіант-заміну. |
|
||||
| `groupId` | Ні | `string` | Необов’язковий id групи для групування пов’язаних варіантів. |
|
||||
| `groupLabel` | Ні | `string` | Підпис цієї групи для користувача. |
|
||||
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
|
||||
| `optionKey` | Ні | `string` | Внутрішній ключ option для простих потоків auth з одним прапорцем. |
|
||||
| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
|
||||
| `cliOption` | Ні | `string` | Повна форма option CLI, наприклад `--openrouter-api-key <key>`. |
|
||||
| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. |
|
||||
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | У яких поверхнях onboarding має показуватися цей варіант. Якщо поле пропущено, використовується `["text-inference"]` за замовчуванням. |
|
||||
|
||||
## Довідник `commandAliases`
|
||||
|
||||
Використовуйте `commandAliases`, коли плагін володіє назвою команди середовища виконання, яку користувачі можуть
|
||||
помилково додати до `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
|
||||
використовує ці метадані для діагностики без імпорту коду середовища виконання плагіна.
|
||||
Використовуйте `commandAliases`, коли plugin володіє назвою runtime-команди, яку користувачі можуть
|
||||
помилково помістити в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
|
||||
використовує ці метадані для діагностики без імпорту коду runtime plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -209,22 +213,22 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------ | ----------- | ----------------- | ---------------------------------------------------------------------------- |
|
||||
| `name` | Так | `string` | Назва команди, яка належить цьому плагіну. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу команду CLI. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід рекомендувати для операцій CLI, якщо вона існує. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------ | ----------- | ----------------- | ------------------------------------------------------------------------ |
|
||||
| `name` | Так | `string` | Назва команди, яка належить цьому plugin. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає alias як чат-команду slash, а не кореневу команду CLI. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку можна запропонувати для операцій CLI, якщо вона існує. |
|
||||
|
||||
## Довідник `activation`
|
||||
|
||||
Використовуйте `activation`, коли плагін може з невеликими витратами оголосити, які події control-plane
|
||||
Використовуйте `activation`, коли plugin може недорого оголосити, які події control-plane
|
||||
мають активувати його пізніше.
|
||||
|
||||
Цей блок містить лише метадані. Він не реєструє поведінку середовища виконання і не
|
||||
замінює `register(...)`, `setupEntry` або інші entrypoint середовища виконання/плагіна.
|
||||
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням плагіна, тому
|
||||
відсутність метаданих активації лише впливає на продуктивність; це не повинно змінювати
|
||||
коректність.
|
||||
Цей блок містить лише метадані. Він не реєструє поведінку runtime і не
|
||||
замінює `register(...)`, `setupEntry` або інші entrypoint runtime/plugin.
|
||||
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням plugin, тому
|
||||
відсутність метаданих активації зазвичай впливає лише на продуктивність; вона не має
|
||||
змінювати коректність, поки ще існують застарілі fallback-и володіння маніфестом.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -238,22 +242,26 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| `onProviders` | Ні | `string[]` | Ідентифікатори провайдерів, які мають активувати цей плагін на запит. |
|
||||
| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей плагін. |
|
||||
| `onChannels` | Ні | `string[]` | Ідентифікатори каналів, які мають активувати цей плагін. |
|
||||
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей плагін. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки щодо можливостей, які використовуються в плануванні активації control-plane. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------- |
|
||||
| `onProviders` | Ні | `string[]` | id provider, які мають активувати цей plugin за запитом. |
|
||||
| `onCommands` | Ні | `string[]` | id команд, які мають активувати цей plugin. |
|
||||
| `onChannels` | Ні | `string[]` | id channel, які мають активувати цей plugin. |
|
||||
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки capability, що використовуються для планування активації control-plane. |
|
||||
|
||||
Зокрема для планування, що запускається командами, OpenClaw усе ще повертається до
|
||||
застарілих `commandAliases[].cliCommand` або `commandAliases[].name`, коли плагін
|
||||
ще не додав явні метадані `activation.onCommands`.
|
||||
Поточні активні споживачі:
|
||||
|
||||
- планування CLI, що запускається командою, використовує як fallback застарілі
|
||||
`commandAliases[].cliCommand` або `commandAliases[].name`
|
||||
- планування setup/runtime, що запускається provider, використовує як fallback застаріле
|
||||
володіння `providers[]` і верхньорівневим `cliBackends[]`, коли явні
|
||||
метадані активації provider відсутні
|
||||
|
||||
## Довідник `setup`
|
||||
|
||||
Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні легкі метадані, що належать плагіну,
|
||||
до завантаження середовища виконання.
|
||||
Використовуйте `setup`, коли поверхням setup та onboarding потрібні недорогі метадані plugin,
|
||||
що належать plugin, до завантаження runtime.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -272,40 +280,41 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Верхньорівневе `cliBackends` залишається дійсним і далі описує backend виведення CLI.
|
||||
`setup.cliBackends` — це поверхня дескрипторів, специфічна для налаштування, для
|
||||
потоків control-plane/налаштування, які мають залишатися лише метаданими.
|
||||
Верхньорівневе `cliBackends` залишається валідним і надалі описує backend-и
|
||||
інференсу CLI. `setup.cliBackends` — це поверхня дескрипторів, специфічна для setup,
|
||||
для потоків control-plane/setup, які мають залишатися лише метаданими.
|
||||
|
||||
Якщо присутні, `setup.providers` і `setup.cliBackends` є бажаною
|
||||
поверхнею пошуку на основі дескрипторів для виявлення налаштування. Якщо дескриптор лише
|
||||
звужує кандидатний плагін, а налаштуванню все ще потрібні багатші хуки середовища виконання під час налаштування,
|
||||
установіть `requiresRuntime: true` і залиште `setup-api` як резервний шлях виконання.
|
||||
Якщо вони присутні, `setup.providers` і `setup.cliBackends` є бажаною
|
||||
поверхнею пошуку setup у стилі descriptor-first для виявлення setup. Якщо дескриптор лише
|
||||
звужує кандидатний plugin, а setup все ще потребує багатших hook runtime на етапі setup,
|
||||
встановіть `requiresRuntime: true` і залиште `setup-api` як
|
||||
fallback-шлях виконання.
|
||||
|
||||
Оскільки пошук налаштування може виконувати код `setup-api`, що належить плагіну,
|
||||
нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` повинні залишатися унікальними серед
|
||||
виявлених плагінів. Неоднозначне володіння призводить до безпечної відмови замість вибору
|
||||
переможця за порядком виявлення.
|
||||
Оскільки пошук setup може виконувати код `setup-api`, що належить plugin,
|
||||
нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед
|
||||
виявлених plugin. Неоднозначне володіння завершується без вибору замість того, щоб
|
||||
обирати переможця за порядком виявлення.
|
||||
|
||||
### Довідник `setup.providers`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | ---------- | --------------------------------------------------------------------------------------- |
|
||||
| `id` | Так | `string` | Ідентифікатор провайдера, доступний під час налаштування або онбордингу. Зберігайте нормалізовані ідентифікатори глобально унікальними. |
|
||||
| `authMethods` | Ні | `string[]` | Ідентифікатори методів налаштування/автентифікації, які цей провайдер підтримує без завантаження повного середовища виконання. |
|
||||
| `envVars` | Ні | `string[]` | Змінні середовища, які загальні поверхні налаштування/статусу можуть перевіряти до завантаження середовища виконання плагіна. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | ---------- | ---------------------------------------------------------------------------------------- |
|
||||
| `id` | Так | `string` | id provider, який відкривається під час setup або onboarding. Зберігайте нормалізовані id глобально унікальними. |
|
||||
| `authMethods` | Ні | `string[]` | id методів setup/auth, які цей provider підтримує без завантаження повного runtime. |
|
||||
| `envVars` | Ні | `string[]` | Змінні середовища, які загальні поверхні setup/status можуть перевіряти до завантаження runtime plugin. |
|
||||
|
||||
### Поля `setup`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------------ | ----------- | ---------- | ------------------------------------------------------------------------------------------------ |
|
||||
| `providers` | Ні | `object[]` | Дескриптори налаштування провайдерів, доступні під час налаштування та онбордингу. |
|
||||
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend часу налаштування, що використовуються для пошуку налаштування на основі дескрипторів. Зберігайте нормалізовані ідентифікатори глобально унікальними. |
|
||||
| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, якими володіє поверхня налаштування цього плагіна. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує налаштування виконання `setup-api` після пошуку за дескриптором. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------------ | ----------- | ---------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Ні | `object[]` | Дескриптори setup provider, що відкриваються під час setup та onboarding. |
|
||||
| `cliBackends` | Ні | `string[]` | id backend-ів на етапі setup, що використовуються для пошуку setup у стилі descriptor-first. Зберігайте нормалізовані id глобально унікальними. |
|
||||
| `configMigrations` | Ні | `string[]` | id міграцій config, які належать поверхні setup цього plugin. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` навіть після пошуку за дескриптором. |
|
||||
|
||||
## Довідник `uiHints`
|
||||
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу.
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок для відображення.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -320,21 +329,21 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Кожна підказка поля може містити:
|
||||
Кожна підказка для поля може містити:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ---------- | -------------------------------------- |
|
||||
| `label` | `string` | Підпис поля для користувача. |
|
||||
| `help` | `string` | Короткий допоміжний текст. |
|
||||
| `tags` | `string[]` | Необов’язкові теги UI. |
|
||||
| `tags` | `string[]` | Необов’язкові UI-теги. |
|
||||
| `advanced` | `boolean` | Позначає поле як розширене. |
|
||||
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
|
||||
| `placeholder` | `string` | Текст-заповнювач для полів форми. |
|
||||
| `placeholder` | `string` | Текст placeholder для полів форми. |
|
||||
|
||||
## Довідник `contracts`
|
||||
|
||||
Використовуйте `contracts` лише для статичних метаданих володіння можливостями, які OpenClaw може
|
||||
читати без імпорту середовища виконання плагіна.
|
||||
Використовуйте `contracts` лише для статичних метаданих володіння capability, які OpenClaw може
|
||||
читати без імпорту runtime plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -354,22 +363,22 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
Кожен список є необов’язковим:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| -------------------------------- | ---------- | -------------------------------------------------------------- |
|
||||
| `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[]` | Назви інструментів агента, якими володіє цей плагін, для перевірок контрактів пакетів. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| -------------------------------- | ---------- | ------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | id speech-provider, якими володіє цей plugin. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | id provider для realtime-transcription, якими володіє цей plugin. |
|
||||
| `realtimeVoiceProviders` | `string[]` | id provider для realtime-voice, якими володіє цей plugin. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | id provider для media-understanding, якими володіє цей plugin. |
|
||||
| `imageGenerationProviders` | `string[]` | id provider для image-generation, якими володіє цей plugin. |
|
||||
| `videoGenerationProviders` | `string[]` | id provider для video-generation, якими володіє цей plugin. |
|
||||
| `webFetchProviders` | `string[]` | id provider для web-fetch, якими володіє цей plugin. |
|
||||
| `webSearchProviders` | `string[]` | id provider для web-search, якими володіє цей plugin. |
|
||||
| `tools` | `string[]` | Назви agent tool, якими володіє цей plugin для перевірок вбудованих контрактів. |
|
||||
|
||||
## Довідник `channelConfigs`
|
||||
|
||||
Використовуйте `channelConfigs`, коли плагіну каналу потрібні легкі метадані конфігурації до
|
||||
завантаження середовища виконання.
|
||||
Використовуйте `channelConfigs`, коли plugin channel потребує недорогих метаданих конфігурації до
|
||||
завантаження runtime.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -389,28 +398,27 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
},
|
||||
"label": "Matrix",
|
||||
"description": "Підключення до homeserver Matrix",
|
||||
"description": "Matrix homeserver connection",
|
||||
"preferOver": ["matrix-legacy"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Кожен запис каналу може містити:
|
||||
Кожен запис channel може містити:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ------------------------ | ---------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові підписи UI/заповнювачі/підказки чутливості для цього розділу конфігурації каналу. |
|
||||
| `label` | `string` | Підпис каналу, що об’єднується з поверхнями селектора та інспектування, коли метадані середовища виконання ще не готові. |
|
||||
| `description` | `string` | Короткий опис каналу для поверхонь інспектування та каталогу. |
|
||||
| `preferOver` | `string[]` | Застарілі або менш пріоритетні ідентифікатори плагінів, які цей канал має випереджати на поверхнях вибору. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації channel. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові підписи UI/placeholders/підказки чутливості для цього розділу конфігурації channel. |
|
||||
| `label` | `string` | Підпис channel, що об’єднується в поверхні вибору та inspect, коли метадані runtime ще не готові. |
|
||||
| `description` | `string` | Короткий опис channel для поверхонь inspect і catalog. |
|
||||
| `preferOver` | `string[]` | id застарілих plugin або plugin з нижчим пріоритетом, які цей channel має випереджати в поверхнях вибору. |
|
||||
|
||||
## Довідник `modelSupport`
|
||||
|
||||
Використовуйте `modelSupport`, коли OpenClaw має визначати ваш плагін провайдера за
|
||||
скороченими ідентифікаторами моделей, як-от `gpt-5.4` або `claude-sonnet-4.6`, до завантаження
|
||||
середовища виконання плагіна.
|
||||
Використовуйте `modelSupport`, коли OpenClaw має визначати ваш plugin provider за
|
||||
скороченими id моделей на кшталт `gpt-5.4` або `claude-sonnet-4.6` до завантаження runtime plugin.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -423,73 +431,73 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
OpenClaw застосовує такий пріоритет:
|
||||
|
||||
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику
|
||||
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать відповідному provider
|
||||
- `modelPatterns` мають вищий пріоритет за `modelPrefixes`
|
||||
- якщо збігаються один непакетний плагін і один пакетний плагін, перемагає непакетний
|
||||
плагін
|
||||
- решта неоднозначностей ігноруються, доки користувач або конфігурація не вкажуть провайдера
|
||||
- якщо збігаються один невбудований plugin і один вбудований plugin, перемагає невбудований
|
||||
plugin
|
||||
- решта неоднозначностей ігнорується, доки користувач або config не вкаже provider
|
||||
|
||||
Поля:
|
||||
|
||||
| Поле | Тип | Що воно означає |
|
||||
| --------------- | ---------- | -------------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Префікси, які зіставляються через `startsWith` зі скороченими ідентифікаторами моделей. |
|
||||
| `modelPatterns` | `string[]` | Джерела regex, які зіставляються зі скороченими ідентифікаторами моделей після видалення суфікса профілю. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| --------------- | ---------- | ----------------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Префікси, які звіряються через `startsWith` зі скороченими id моделей. |
|
||||
| `modelPatterns` | `string[]` | Джерела regex, які звіряються зі скороченими id моделей після видалення суфікса профілю. |
|
||||
|
||||
Застарілі ключі можливостей верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб
|
||||
Застарілі ключі capability верхнього рівня застаріли. Використовуйте `openclaw doctor --fix`, щоб
|
||||
перемістити `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` і `webSearchProviders` до `contracts`; звичайне
|
||||
завантаження маніфесту більше не розглядає ці поля верхнього рівня як
|
||||
володіння можливостями.
|
||||
`webFetchProviders` і `webSearchProviders` під `contracts`; звичайне
|
||||
завантаження маніфесту більше не трактує ці поля верхнього рівня як
|
||||
володіння capability.
|
||||
|
||||
## Маніфест порівняно з package.json
|
||||
|
||||
Ці два файли виконують різні завдання:
|
||||
Ці два файли виконують різні задачі:
|
||||
|
||||
| Файл | Для чого його використовувати |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду плагіна |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для entrypoint, обмежень встановлення, налаштування або метаданих каталогу |
|
||||
| Файл | Для чого його використовувати |
|
||||
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація config, метадані варіантів auth і підказки UI, які мають існувати до запуску коду plugin |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, який використовується для entrypoint, обмежень встановлення, setup або метаданих catalog |
|
||||
|
||||
Якщо ви не впевнені, куди належить певний фрагмент метаданих, використовуйте таке правило:
|
||||
Якщо ви не впевнені, куди має належати певний фрагмент метаданих, використовуйте таке правило:
|
||||
|
||||
- якщо OpenClaw повинен знати це до завантаження коду плагіна, помістіть це в `openclaw.plugin.json`
|
||||
- якщо це стосується пакування, файлів entrypoint або поведінки встановлення npm, помістіть це в `package.json`
|
||||
- якщо OpenClaw має знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json`
|
||||
- якщо це стосується пакування, entry-файлів або поведінки встановлення npm, помістіть це в `package.json`
|
||||
|
||||
### Поля package.json, які впливають на виявлення
|
||||
### Поля `package.json`, які впливають на виявлення
|
||||
|
||||
Деякі метадані плагіна до запуску середовища виконання навмисно зберігаються в `package.json` у блоці
|
||||
Деякі метадані plugin до запуску runtime навмисно зберігаються в `package.json` у блоці
|
||||
`openclaw`, а не в `openclaw.plugin.json`.
|
||||
|
||||
Важливі приклади:
|
||||
|
||||
| Поле | Що воно означає |
|
||||
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `openclaw.extensions` | Оголошує власні entrypoint плагіна. |
|
||||
| `openclaw.setupEntry` | Легкий entrypoint лише для налаштування, який використовується під час онбордингу та відкладеного запуску каналу. |
|
||||
| `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` | Дозволяє вузький шлях відновлення перевстановлення пакетного плагіна, коли конфігурація недійсна. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для налаштування завантажуватися до повного плагіна каналу під час запуску. |
|
||||
| Поле | Що воно означає |
|
||||
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Оголошує власні entrypoint plugin. |
|
||||
| `openclaw.setupEntry` | Легковаговий entrypoint лише для setup, який використовується під час onboarding і відкладеного запуску channel. |
|
||||
| `openclaw.channel` | Недорогі метадані catalog channel, як-от підписи, шляхи до документації, alias і текст для вибору. |
|
||||
| `openclaw.channel.configuredState` | Легковагові метадані перевірки configured-state, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime channel. |
|
||||
| `openclaw.channel.persistedAuthState` | Легковагові метадані перевірки persisted-auth, які можуть відповісти на запитання «чи вже десь виконано вхід?» без завантаження повного runtime channel. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки встановлення/оновлення для вбудованих і зовнішньо опублікованих plugin. |
|
||||
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
|
||||
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із semver-нижньою межею на кшталт `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення через перевстановлення вбудованого plugin, коли config невалідний. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє завантажувати поверхні channel лише для setup до повного plugin channel під час startup. |
|
||||
|
||||
`openclaw.install.minHostVersion` застосовується під час встановлення та
|
||||
завантаження реєстру маніфестів. Недійсні значення відхиляються; новіші, але дійсні значення пропускають
|
||||
плагін на старіших хостах.
|
||||
завантаження реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають
|
||||
plugin на старіших хостах.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке призначення. Воно
|
||||
не робить довільно зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє потокам встановлення
|
||||
відновлюватися після певних застарілих збоїв оновлення пакетних плагінів, наприклад
|
||||
відсутнього шляху до пакетного плагіна або застарілого запису `channels.<id>` для того самого
|
||||
пакетного плагіна. Непов’язані помилки конфігурації все одно блокують встановлення та спрямовують операторів
|
||||
`openclaw.install.allowInvalidConfigRecovery` є навмисно вузьким. Воно
|
||||
не робить довільно зламані config придатними до встановлення. Наразі воно лише дозволяє
|
||||
потокам встановлення відновлюватися після певних застарілих збоїв оновлення вбудованих plugin, таких як
|
||||
відсутній шлях до вбудованого plugin або застарілий запис `channels.<id>` для цього ж
|
||||
вбудованого plugin. Не пов’язані помилки config, як і раніше, блокують встановлення та спрямовують операторів
|
||||
до `openclaw doctor --fix`.
|
||||
|
||||
`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного модуля перевірки:
|
||||
`openclaw.channel.persistedAuthState` — це метадані пакета для маленького модуля перевірки:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -505,13 +513,13 @@ OpenClaw застосовує такий пріоритет:
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли потокам налаштування, doctor або configured-state потрібна легка
|
||||
перевірка автентифікації «так/ні» до завантаження повного плагіна каналу. Цільовий експорт має бути невеликою
|
||||
функцією, яка читає лише збережений стан; не спрямовуйте його через повний barrel середовища виконання
|
||||
каналу.
|
||||
Використовуйте це, коли потоки setup, doctor або configured-state потребують недорогої перевірки auth
|
||||
у форматі так/ні до завантаження повного plugin channel. Цільовий export має бути невеликою
|
||||
функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel runtime
|
||||
channel.
|
||||
|
||||
`openclaw.channel.configuredState` має ту саму форму для легких перевірок
|
||||
налаштованого стану лише через env:
|
||||
`openclaw.channel.configuredState` використовує ту саму форму для недорогих перевірок
|
||||
configured лише через env:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -527,65 +535,64 @@ OpenClaw застосовує такий пріоритет:
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли канал може визначити налаштований стан за env або іншими невеликими
|
||||
вхідними даними, що не належать середовищу виконання. Якщо перевірка потребує повного визначення конфігурації або реального
|
||||
середовища виконання каналу, залиште цю логіку в hook `config.hasConfiguredState`
|
||||
плагіна.
|
||||
Використовуйте це, коли channel може визначити configured-state через env або інші невеликі
|
||||
вхідні дані, не пов’язані з runtime. Якщо перевірка потребує повного визначення config або реального
|
||||
runtime channel, залиште цю логіку в hook plugin `config.hasConfiguredState`.
|
||||
|
||||
## Вимоги до JSON Schema
|
||||
|
||||
- **Кожен плагін повинен постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію.
|
||||
- Порожня схема є допустимою (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання.
|
||||
- **Кожен plugin повинен містити JSON Schema**, навіть якщо він не приймає config.
|
||||
- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису config, а не під час runtime.
|
||||
|
||||
## Поведінка валідації
|
||||
|
||||
- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор каналу не оголошено
|
||||
в маніфесті плагіна.
|
||||
- Невідомі ключі `channels.*` є **помилками**, якщо тільки id channel не оголошено
|
||||
в маніфесті plugin.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
|
||||
повинні посилатися на **доступні для виявлення** ідентифікатори плагінів. Невідомі ідентифікатори є **помилками**.
|
||||
- Якщо плагін установлено, але він має зламаний або відсутній маніфест чи схему,
|
||||
валідація завершується помилкою, а Doctor повідомляє про помилку плагіна.
|
||||
- Якщо конфігурація плагіна існує, але сам плагін **вимкнений**, конфігурація зберігається, і
|
||||
попередження **відображається** в Doctor та журналах.
|
||||
мають посилатися на id plugin, які **можна виявити**. Невідомі id є **помилками**.
|
||||
- Якщо plugin встановлено, але він має зламаний або відсутній маніфест чи схему,
|
||||
валідація завершується помилкою, а Doctor повідомляє про помилку plugin.
|
||||
- Якщо config plugin існує, але plugin **вимкнено**, config зберігається, і
|
||||
у Doctor + логах відображається **попередження**.
|
||||
|
||||
Повну схему `plugins.*` див. у [Довіднику з конфігурації](/uk/gateway/configuration).
|
||||
Дивіться [Довідник конфігурації](/uk/gateway/configuration) для повної схеми `plugins.*`.
|
||||
|
||||
## Примітки
|
||||
|
||||
- Маніфест **обов’язковий для власних плагінів OpenClaw**, зокрема для локальних завантажень із файлової системи.
|
||||
- Середовище виконання все одно завантажує модуль плагіна окремо; маніфест використовується лише для
|
||||
- Маніфест **обов’язковий для власних Plugin OpenClaw**, зокрема для завантаження з локальної файлової системи.
|
||||
- Runtime, як і раніше, окремо завантажує модуль plugin; маніфест використовується лише для
|
||||
виявлення + валідації.
|
||||
- Власні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та
|
||||
ключі без лапок дозволені, якщо кінцеве значення все одно є об’єктом.
|
||||
- Завантажувач маніфестів читає лише задокументовані поля маніфесту. Уникайте додавання
|
||||
власних ключів верхнього рівня тут.
|
||||
- `providerAuthEnvVars` — це легкий шлях метаданих для перевірок автентифікації, валідації
|
||||
env-маркерів та подібних поверхонь автентифікації провайдерів, які не повинні запускати середовище виконання плагіна
|
||||
- Власні маніфести розбираються за допомогою JSON5, тому коментарі, завершальні коми та
|
||||
ключі без лапок допускаються, якщо кінцеве значення все одно є об’єктом.
|
||||
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання
|
||||
власних ключів верхнього рівня.
|
||||
- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок auth, валідації
|
||||
env-маркерів та подібних поверхонь auth provider, які не повинні запускати runtime plugin
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthAliases` дозволяє варіантам провайдерів повторно використовувати env vars автентифікації іншого провайдера,
|
||||
профілі автентифікації, автентифікацію на основі конфігурації та варіант
|
||||
онбордингу з API-ключем без жорсткого кодування цього зв’язку в core.
|
||||
- `channelEnvVars` — це легкий шлях метаданих для резервного використання shell-env, підказок
|
||||
налаштування та подібних поверхонь каналів, які не повинні запускати середовище виконання плагіна
|
||||
- `providerAuthAliases` дозволяє варіантам provider повторно використовувати auth
|
||||
env vars, профілі auth, auth на основі config та варіант onboarding API key іншого provider
|
||||
без жорсткого кодування цього зв’язку в core.
|
||||
- `channelEnvVars` — це недорогий шлях метаданих для fallback через shell-env, запитів setup
|
||||
та подібних поверхонь channel, які не повинні запускати runtime plugin
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthChoices` — це легкий шлях метаданих для селекторів варіантів автентифікації,
|
||||
визначення `--auth-choice`, зіставлення пріоритетного провайдера та простої реєстрації
|
||||
прапорців CLI онбордингу до завантаження середовища виконання провайдера. Щодо метаданих
|
||||
майстра середовища виконання, які потребують коду провайдера, див.
|
||||
[Хуки середовища виконання провайдера](/uk/plugins/architecture#provider-runtime-hooks).
|
||||
- Ексклюзивні типи плагінів вибираються через `plugins.slots.*`.
|
||||
- `providerAuthChoices` — це недорогий шлях метаданих для засобів вибору варіантів auth,
|
||||
визначення `--auth-choice`, зіставлення preferred-provider і простої реєстрації
|
||||
прапорців CLI для onboarding до завантаження runtime provider. Для метаданих wizard runtime,
|
||||
які потребують коду provider, див.
|
||||
[Hook runtime provider](/uk/plugins/architecture#provider-runtime-hooks).
|
||||
- Ексклюзивні типи plugin вибираються через `plugins.slots.*`.
|
||||
- `kind: "memory"` вибирається через `plugins.slots.memory`.
|
||||
- `kind: "context-engine"` вибирається через `plugins.slots.contextEngine`
|
||||
(типово: вбудований `legacy`).
|
||||
- `channels`, `providers`, `cliBackends` і `skills` можна не вказувати, коли
|
||||
плагіну вони не потрібні.
|
||||
- Якщо ваш плагін залежить від власних модулів, задокументуйте кроки збирання та всі
|
||||
- `channels`, `providers`, `cliBackends` і `skills` можна пропустити, якщо
|
||||
plugin їх не потребує.
|
||||
- Якщо ваш plugin залежить від native-модулів, задокументуйте кроки збирання та всі
|
||||
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Створення плагінів](/uk/plugins/building-plugins) — початок роботи з плагінами
|
||||
- [Архітектура плагінів](/uk/plugins/architecture) — внутрішня архітектура
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник Plugin SDK
|
||||
- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з plugins
|
||||
- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник SDK Plugin
|
||||
|
||||
Loading…
Reference in New Issue
Block a user