chore(i18n): refresh uk translations
This commit is contained in:
parent
e5617933eb
commit
9baaf1c50f
File diff suppressed because it is too large
Load Diff
@ -2,13 +2,13 @@
|
||||
read_when:
|
||||
- Ви створюєте плагін OpenClaw
|
||||
- Вам потрібно постачати схему конфігурації плагіна або налагоджувати помилки валідації плагіна
|
||||
summary: Маніфест плагіна + вимоги до JSON schema (сувора валідація конфігурації)
|
||||
summary: Вимоги до маніфесту плагіна + JSON schema (сувора валідація конфігурації)
|
||||
title: Маніфест плагіна
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T11:37:24Z"
|
||||
generated_at: "2026-04-12T02:30:56Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 42d454b560a8f6bf714c5d782f34216be1216d83d0a319d08d7349332c91a9e4
|
||||
source_hash: bf666b0f41f07641375a248f52e29ba6a68c3ec20404bedb6b52a20a5cd92e91
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,35 +17,35 @@ x-i18n:
|
||||
|
||||
Ця сторінка стосується лише **власного маніфесту плагіна OpenClaw**.
|
||||
|
||||
Сумісні макети пакетів описано в [Пакети плагінів](/uk/plugins/bundles).
|
||||
Сумісні макети пакунків описано в [Пакунки плагінів](/uk/plugins/bundles).
|
||||
|
||||
Сумісні формати пакетів використовують інші файли маніфесту:
|
||||
Сумісні формати пакунків використовують інші файли маніфесту:
|
||||
|
||||
- Пакет Codex: `.codex-plugin/plugin.json`
|
||||
- Пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
|
||||
- Пакунок Codex: `.codex-plugin/plugin.json`
|
||||
- Пакунок Claude: `.claude-plugin/plugin.json` або типовий макет компонентів Claude
|
||||
без маніфесту
|
||||
- Пакет Cursor: `.cursor-plugin/plugin.json`
|
||||
- Пакунок Cursor: `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw також автоматично виявляє ці макети пакетів, але вони не проходять валідацію
|
||||
OpenClaw також автоматично виявляє ці макети пакунків, але вони не проходять валідацію
|
||||
за схемою `openclaw.plugin.json`, описаною тут.
|
||||
|
||||
Для сумісних пакетів OpenClaw наразі читає метадані пакета, а також оголошені
|
||||
кореневі каталоги Skills, кореневі каталоги команд Claude, типові значення `settings.json` пакета Claude,
|
||||
типові значення LSP пакета Claude та підтримувані набори хуків, якщо макет відповідає
|
||||
Для сумісних пакунків OpenClaw наразі зчитує метадані пакунка, а також оголошені
|
||||
кореневі каталоги skill, кореневі каталоги команд Claude, типові значення `settings.json` у пакунку Claude,
|
||||
типові значення LSP у пакунку Claude та підтримувані набори hooks, якщо макет відповідає
|
||||
очікуванням середовища виконання OpenClaw.
|
||||
|
||||
Кожен власний плагін OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у
|
||||
Кожен власний плагін OpenClaw **має** постачатися з файлом `openclaw.plugin.json` у
|
||||
**корені плагіна**. OpenClaw використовує цей маніфест для валідації конфігурації
|
||||
**без виконання коду плагіна**. Відсутні або невалідні маніфести вважаються
|
||||
помилками плагіна і блокують валідацію конфігурації.
|
||||
помилками плагіна та блокують валідацію конфігурації.
|
||||
|
||||
Повний посібник із системи плагінів див. у [Плагіни](/uk/tools/plugin).
|
||||
Для власної моделі можливостей і поточних рекомендацій щодо зовнішньої сумісності:
|
||||
Дивіться повний посібник із системи плагінів: [Плагіни](/uk/tools/plugin).
|
||||
Щодо власної моделі можливостей і поточних рекомендацій щодо зовнішньої сумісності:
|
||||
[Модель можливостей](/uk/plugins/architecture#public-capability-model).
|
||||
|
||||
## Для чого потрібен цей файл
|
||||
## Що робить цей файл
|
||||
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw читає до завантаження коду
|
||||
`openclaw.plugin.json` — це метадані, які OpenClaw зчитує перед завантаженням коду
|
||||
вашого плагіна.
|
||||
|
||||
Використовуйте його для:
|
||||
@ -54,27 +54,25 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
- валідації конфігурації
|
||||
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску
|
||||
середовища виконання плагіна
|
||||
- легких підказок активації, які поверхні control-plane можуть перевіряти до
|
||||
завантаження середовища виконання
|
||||
- легких дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до
|
||||
завантаження середовища виконання
|
||||
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження
|
||||
середовища виконання плагіна
|
||||
- скорочених метаданих належності до сімейства моделей, які мають автоматично активувати
|
||||
плагін до завантаження середовища виконання
|
||||
- статичних знімків належності можливостей, що використовуються для сумісної обв’язки
|
||||
bundled-плагінів і покриття контрактів
|
||||
- метаданих конфігурації каналу, специфічних для каналу, які мають зливатися в поверхні
|
||||
каталогу та валідації без завантаження середовища виконання
|
||||
- легковагих підказок активації, які поверхні control plane можуть перевіряти до завантаження runtime
|
||||
- легковагих дескрипторів налаштування, які поверхні setup/onboarding можуть перевіряти до завантаження
|
||||
runtime
|
||||
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження runtime плагіна
|
||||
- скорочених метаданих належності до сімейств моделей, які мають автоматично активувати
|
||||
плагін до завантаження runtime
|
||||
- статичних знімків належності можливостей, які використовуються для bundled compat wiring і
|
||||
покриття контрактів
|
||||
- метаданих конфігурації каналу, специфічних для каналу, які мають об’єднуватися в поверхні каталогу та валідації
|
||||
без завантаження runtime
|
||||
- підказок UI для конфігурації
|
||||
|
||||
Не використовуйте його для:
|
||||
|
||||
- реєстрації поведінки під час виконання
|
||||
- оголошення кодових entrypoint
|
||||
- реєстрації поведінки runtime
|
||||
- оголошення entrypoint коду
|
||||
- метаданих встановлення npm
|
||||
|
||||
Це належить до коду вашого плагіна та `package.json`.
|
||||
Це належить вашому коду плагіна та `package.json`.
|
||||
|
||||
## Мінімальний приклад
|
||||
|
||||
@ -145,64 +143,64 @@ OpenClaw також автоматично виявляє ці макети па
|
||||
}
|
||||
```
|
||||
|
||||
## Довідка щодо полів верхнього рівня
|
||||
## Довідник полів верхнього рівня
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `id` | Так | `string` | Канонічний id плагіна. Це id, який використовується в `plugins.entries.<id>`. |
|
||||
| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього плагіна. |
|
||||
| `enabledByDefault` | Ні | `true` | Позначає bundled-плагін як увімкнений типово. Пропустіть це поле або встановіть будь-яке значення, відмінне від `true`, щоб залишити плагін вимкненим типово. |
|
||||
| `enabledByDefault` | Ні | `true` | Позначає bundled plugin як увімкнений за замовчуванням. Опустіть це поле або встановіть будь-яке значення, відмінне від `true`, щоб плагін залишався вимкненим за замовчуванням. |
|
||||
| `legacyPluginIds` | Ні | `string[]` | Застарілі id, які нормалізуються до цього канонічного id плагіна. |
|
||||
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Id провайдерів, які мають автоматично вмикати цей плагін, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
|
||||
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує винятковий вид плагіна, який використовується `plugins.slots.*`. |
|
||||
| `channels` | Ні | `string[]` | Id каналів, якими володіє цей плагін. Використовується для виявлення та валідації конфігурації. |
|
||||
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Id провайдерів, які мають автоматично вмикати цей плагін, коли на них посилаються auth, config або model refs. |
|
||||
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує виключний тип плагіна, який використовується `plugins.slots.*`. |
|
||||
| `channels` | Ні | `string[]` | Id каналів, якими володіє цей плагін. Використовуються для виявлення та валідації конфігурації. |
|
||||
| `providers` | Ні | `string[]` | Id провайдерів, якими володіє цей плагін. |
|
||||
| `modelSupport` | Ні | `object` | Скорочені метадані сімейства моделей, якими володіє маніфест, що використовуються для автоматичного завантаження плагіна до середовища виконання. |
|
||||
| `cliBackends` | Ні | `string[]` | Id backend у CLI, якими володіє цей плагін. Використовується для автоактивації під час запуску з явних посилань у конфігурації. |
|
||||
| `commandAliases` | Ні | `object[]` | Назви команд, якими володіє цей плагін, що мають створювати діагностику конфігурації й CLI з урахуванням плагіна до завантаження середовища виконання. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані env для автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду плагіна. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | Id провайдерів, які мають повторно використовувати інший id провайдера для пошуку автентифікації, наприклад coding-провайдер, що ділить API key і профілі автентифікації з базовим провайдером. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані env каналу, які OpenClaw може перевіряти без завантаження коду плагіна. Використовуйте це для налаштування каналу через env або поверхонь автентифікації, які мають бачити типові помічники запуску/конфігурації. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Легкі метадані варіантів автентифікації для picker онбордингу, визначення бажаного провайдера та простого зв’язування прапорців CLI. |
|
||||
| `activation` | Ні | `object` | Легкі підказки активації для завантаження, що запускається провайдером, командою, каналом, маршрутом і можливістю. Лише метадані; фактична поведінка як і раніше належить середовищу виконання плагіна. |
|
||||
| `setup` | Ні | `object` | Легкі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання плагіна. |
|
||||
| `contracts` | Ні | `object` | Статичний bundled-знімок можливостей для 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 і підказки чутливості для полів конфігурації. |
|
||||
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, якими володіє маніфест, що використовуються для автоматичного завантаження плагіна до runtime. |
|
||||
| `cliBackends` | Ні | `string[]` | Id backend для висновування в CLI, якими володіє цей плагін. Використовуються для автоматичної активації під час запуску з явних посилань у config. |
|
||||
| `commandAliases` | Ні | `object[]` | Назви команд, якими володіє цей плагін, і які мають створювати діагностику конфігурації та CLI з урахуванням плагіна до завантаження runtime. |
|
||||
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Легковагі метадані env для auth провайдера, які OpenClaw може перевіряти без завантаження коду плагіна. |
|
||||
| `providerAuthAliases` | Ні | `Record<string, string>` | Id провайдерів, які мають повторно використовувати інший id провайдера для пошуку auth, наприклад coding provider, що спільно використовує API key базового провайдера та профілі auth. |
|
||||
| `channelEnvVars` | Ні | `Record<string, string[]>` | Легковагі метадані env каналу, які OpenClaw може перевіряти без завантаження коду плагіна. Використовуйте це для налаштування каналів через env або поверхонь auth, які мають бачити загальні helpers запуску/config. |
|
||||
| `providerAuthChoices` | Ні | `object[]` | Легковагі метадані вибору auth для picker-ів онбордингу, визначення preferred provider і простого зв’язування прапорців CLI. |
|
||||
| `activation` | Ні | `object` | Легковагі підказки активації для завантаження, що запускається провайдером, командою, каналом, маршрутом або можливістю. Лише метадані; фактичною поведінкою як і раніше володіє runtime плагіна. |
|
||||
| `setup` | Ні | `object` | Легковагі дескриптори setup/onboarding, які поверхні виявлення та налаштування можуть перевіряти без завантаження runtime плагіна. |
|
||||
| `contracts` | Ні | `object` | Статичний знімок bundled capability для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і належності tool. |
|
||||
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації каналу, якими володіє маніфест, що об’єднуються в поверхні виявлення та валідації до завантаження runtime. |
|
||||
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня плагіна. |
|
||||
| `name` | Ні | `string` | Людинозрозуміла назва плагіна. |
|
||||
| `description` | Ні | `string` | Короткий опис, що показується в поверхнях плагіна. |
|
||||
| `version` | Ні | `string` | Інформаційна версія плагіна. |
|
||||
| `uiHints` | Ні | `Record<string, object>` | Мітки UI, placeholders і підказки щодо чутливості для полів конфігурації. |
|
||||
|
||||
## Довідка щодо `providerAuthChoices`
|
||||
## Довідник `providerAuthChoices`
|
||||
|
||||
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
|
||||
OpenClaw читає це до завантаження середовища виконання провайдера.
|
||||
Кожен запис `providerAuthChoices` описує один варіант онбордингу або auth.
|
||||
OpenClaw зчитує це до завантаження runtime провайдера.
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| --------------------- | ----------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Так | `string` | Id провайдера, до якого належить цей варіант. |
|
||||
| `method` | Так | `string` | Id методу автентифікації, до якого слід спрямувати запит. |
|
||||
| `choiceId` | Так | `string` | Стабільний id варіанта автентифікації, який використовується в онбордингу та потоках CLI. |
|
||||
| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо пропущено, OpenClaw використовує `choiceId`. |
|
||||
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для picker. |
|
||||
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних picker, керованих асистентом. |
|
||||
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант із picker асистента, але все одно дозволяє ручний вибір через CLI. |
|
||||
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів до цього варіанта-заміни. |
|
||||
| `groupId` | Ні | `string` | Необов’язковий id групи для групування пов’язаних варіантів. |
|
||||
| `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 провайдера, до якого належить цей варіант. |
|
||||
| `method` | Так | `string` | Id методу auth, до якого слід диспетчеризувати. |
|
||||
| `choiceId` | Так | `string` | Стабільний id варіанта auth, який використовується в потоках онбордингу та CLI. |
|
||||
| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо її не вказано, OpenClaw використовує `choiceId`. |
|
||||
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для picker-а. |
|
||||
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних picker-ах, керованих асистентом. |
|
||||
| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант із picker-ів асистента, але все ще дозволяє ручний вибір через CLI. |
|
||||
| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі id варіантів, які мають перенаправляти користувачів на цей варіант-заміну. |
|
||||
| `groupId` | Ні | `string` | Необов’язковий id групи для групування пов’язаних варіантів. |
|
||||
| `groupLabel` | Ні | `string` | Мітка для користувача для цієї групи. |
|
||||
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
|
||||
| `optionKey` | Ні | `string` | Внутрішній ключ параметра для простих потоків auth з одним прапорцем. |
|
||||
| `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`
|
||||
|
||||
Використовуйте `commandAliases`, коли плагін володіє назвою runtime-команди, яку користувачі можуть
|
||||
помилково помістити в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
|
||||
використовує ці метадані для діагностики без імпорту коду середовища виконання плагіна.
|
||||
використовує ці метадані для діагностики без імпорту коду runtime плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -216,19 +214,19 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| ------------ | ----------- | ----------------- | ------------------------------------------------------------------------ |
|
||||
| `name` | Так | `string` | Назва команди, яка належить цьому плагіну. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу команду CLI. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід запропонувати для операцій CLI, якщо вона існує. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------ | ----------- | ----------------- | --------------------------------------------------------------------------- |
|
||||
| `name` | Так | `string` | Назва команди, яка належить цьому плагіну. |
|
||||
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не кореневу команду CLI. |
|
||||
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід рекомендувати для операцій CLI, якщо вона існує. |
|
||||
|
||||
## Довідка щодо `activation`
|
||||
## Довідник `activation`
|
||||
|
||||
Використовуйте `activation`, коли плагін може дешево оголосити, які події control-plane
|
||||
Використовуйте `activation`, коли плагін може дешево оголосити, які події control plane
|
||||
мають активувати його пізніше.
|
||||
|
||||
Цей блок містить лише метадані. Він не реєструє поведінку під час виконання і
|
||||
не замінює `register(...)`, `setupEntry` чи інші entrypoint runtime/плагіна.
|
||||
Цей блок містить лише метадані. Він не реєструє поведінку runtime і не
|
||||
замінює `register(...)`, `setupEntry` або інші runtime/plugin entrypoint-и.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -242,18 +240,18 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------ |
|
||||
| `onProviders` | Ні | `string[]` | Id провайдерів, які мають активувати цей плагін за запитом. |
|
||||
| `onCommands` | Ні | `string[]` | Id команд, які мають активувати цей плагін. |
|
||||
| `onChannels` | Ні | `string[]` | Id каналів, які мають активувати цей плагін. |
|
||||
| `onRoutes` | Ні | `string[]` | Види маршрутів, які мають активувати цей плагін. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки щодо можливостей, які використовуються в плануванні активації control-plane. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ---------------- | ----------- | ---------------------------------------------------- | --------------------------------------------------------------- |
|
||||
| `onProviders` | Ні | `string[]` | Id провайдерів, які мають активувати цей плагін за запитом. |
|
||||
| `onCommands` | Ні | `string[]` | Id команд, які мають активувати цей плагін. |
|
||||
| `onChannels` | Ні | `string[]` | Id каналів, які мають активувати цей плагін. |
|
||||
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей плагін. |
|
||||
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються в плануванні активації control plane. |
|
||||
|
||||
## Довідка щодо `setup`
|
||||
## Довідник `setup`
|
||||
|
||||
Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні дешеві метадані, якими володіє плагін,
|
||||
до завантаження середовища виконання.
|
||||
Використовуйте `setup`, коли поверхням setup та онбордингу потрібні дешеві метадані,
|
||||
якими володіє плагін, до завантаження runtime.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -272,30 +270,40 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Поле верхнього рівня `cliBackends` залишається валідним і надалі описує backend інференсу CLI.
|
||||
`setup.cliBackends` — це поверхня дескриптора, специфічна для налаштування,
|
||||
для потоків control-plane/налаштування, яка має залишатися лише метаданими.
|
||||
`cliBackends` верхнього рівня залишається валідним і надалі описує backend-и
|
||||
висновування CLI. `setup.cliBackends` — це поверхня дескрипторів, специфічна для setup,
|
||||
для потоків control plane/setup, яка має залишатися лише метаданими.
|
||||
|
||||
### Довідка щодо `setup.providers`
|
||||
Якщо вони присутні, `setup.providers` і `setup.cliBackends` є бажаною
|
||||
поверхнею пошуку на основі дескрипторів для виявлення setup. Якщо дескриптор лише
|
||||
звужує коло плагінів-кандидатів, а setup все ще потребує багатших runtime hooks під час setup,
|
||||
встановіть `requiresRuntime: true` і залиште `setup-api` як резервний шлях виконання.
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| ------------- | ----------- | ---------- | -------------------------------------------------------------------------------- |
|
||||
| `id` | Так | `string` | Id провайдера, який показується під час налаштування або онбордингу. |
|
||||
| `authMethods` | Ні | `string[]` | Id методів налаштування/автентифікації, які цей провайдер підтримує без завантаження повного runtime. |
|
||||
| `envVars` | Ні | `string[]` | Env vars, які типові поверхні налаштування/статусу можуть перевіряти до завантаження runtime плагіна. |
|
||||
Оскільки пошук setup може виконувати код `setup-api`, яким володіє плагін, нормалізовані
|
||||
значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед
|
||||
виявлених плагінів. Неоднозначна належність завершується без вибору замість того, щоб
|
||||
обирати переможця за порядком виявлення.
|
||||
|
||||
### Довідник `setup.providers`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------- | ----------- | ---------- | -------------------------------------------------------------------------------------- |
|
||||
| `id` | Так | `string` | Id провайдера, який надається під час setup або онбордингу. Нормалізовані id мають бути глобально унікальними. |
|
||||
| `authMethods` | Ні | `string[]` | Id методів setup/auth, які цей провайдер підтримує без завантаження повного runtime. |
|
||||
| `envVars` | Ні | `string[]` | Env vars, які загальні поверхні setup/status можуть перевіряти до завантаження runtime плагіна. |
|
||||
|
||||
### Поля `setup`
|
||||
|
||||
| Поле | Обов’язкове | Тип | Що це означає |
|
||||
| ------------------ | ----------- | ---------- | ------------------------------------------------------------------------ |
|
||||
| `providers` | Ні | `object[]` | Дескриптори налаштування провайдерів, які показуються під час налаштування та онбордингу. |
|
||||
| `cliBackends` | Ні | `string[]` | Id backend, доступних під час налаштування без повної активації runtime. |
|
||||
| `configMigrations` | Ні | `string[]` | Id міграцій конфігурації, якими володіє поверхня налаштування цього плагіна. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує налаштування виконання runtime плагіна після пошуку дескриптора. |
|
||||
| Поле | Обов’язкове | Тип | Що воно означає |
|
||||
| ------------------ | ----------- | ---------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Ні | `object[]` | Дескриптори setup провайдерів, доступні під час setup та онбордингу. |
|
||||
| `cliBackends` | Ні | `string[]` | Id backend-ів для часу setup, які використовуються для пошуку setup за принципом descriptor-first. Нормалізовані id мають бути глобально унікальними. |
|
||||
| `configMigrations` | Ні | `string[]` | Id міграцій конфігурації, якими володіє поверхня setup цього плагіна. |
|
||||
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` після пошуку за дескриптором. |
|
||||
|
||||
## Довідка щодо `uiHints`
|
||||
## Довідник `uiHints`
|
||||
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу.
|
||||
`uiHints` — це мапа від назв полів конфігурації до невеликих підказок для відображення.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -310,9 +318,9 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
Кожна підказка поля може містити:
|
||||
Кожна підказка для поля може містити:
|
||||
|
||||
| Поле | Тип | Що це означає |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ---------- | --------------------------------------- |
|
||||
| `label` | `string` | Мітка поля для користувача. |
|
||||
| `help` | `string` | Короткий допоміжний текст. |
|
||||
@ -321,10 +329,10 @@ OpenClaw читає це до завантаження середовища ви
|
||||
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
|
||||
| `placeholder` | `string` | Текст placeholder для полів форми. |
|
||||
|
||||
## Довідка щодо `contracts`
|
||||
## Довідник `contracts`
|
||||
|
||||
Використовуйте `contracts` лише для статичних метаданих належності можливостей, які OpenClaw може
|
||||
читати без імпорту runtime плагіна.
|
||||
зчитувати без імпорту runtime плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -344,22 +352,22 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
Кожен список є необов’язковим:
|
||||
|
||||
| Поле | Тип | Що це означає |
|
||||
| -------------------------------- | ---------- | -------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Id speech-провайдерів, якими володіє цей плагін. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів realtime transcription, якими володіє цей плагін. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Id провайдерів realtime voice, якими володіє цей плагін. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Id провайдерів media-understanding, якими володіє цей плагін. |
|
||||
| `imageGenerationProviders` | `string[]` | Id провайдерів image-generation, якими володіє цей плагін. |
|
||||
| `videoGenerationProviders` | `string[]` | Id провайдерів video-generation, якими володіє цей плагін. |
|
||||
| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей плагін. |
|
||||
| `webSearchProviders` | `string[]` | Id провайдерів web search, якими володіє цей плагін. |
|
||||
| `tools` | `string[]` | Назви інструментів агента, якими володіє цей плагін, для bundled-перевірок контрактів. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| -------------------------------- | ---------- | ------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Id speech-провайдерів, якими володіє цей плагін. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів realtime-transcription, якими володіє цей плагін. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Id провайдерів realtime-voice, якими володіє цей плагін. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Id провайдерів media-understanding, якими володіє цей плагін. |
|
||||
| `imageGenerationProviders` | `string[]` | Id провайдерів image-generation, якими володіє цей плагін. |
|
||||
| `videoGenerationProviders` | `string[]` | Id провайдерів video-generation, якими володіє цей плагін. |
|
||||
| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей плагін. |
|
||||
| `webSearchProviders` | `string[]` | Id провайдерів web-search, якими володіє цей плагін. |
|
||||
| `tools` | `string[]` | Назви agent tool, якими володіє цей плагін, для bundled перевірок контрактів. |
|
||||
|
||||
## Довідка щодо `channelConfigs`
|
||||
## Довідник `channelConfigs`
|
||||
|
||||
Використовуйте `channelConfigs`, коли плагіну каналу потрібні дешеві метадані конфігурації
|
||||
до завантаження runtime.
|
||||
Використовуйте `channelConfigs`, коли плагіну каналу потрібні дешеві метадані конфігурації до
|
||||
завантаження runtime.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -379,7 +387,7 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
},
|
||||
"label": "Matrix",
|
||||
"description": "Підключення до homeserver Matrix",
|
||||
"description": "Matrix homeserver connection",
|
||||
"preferOver": ["matrix-legacy"]
|
||||
}
|
||||
}
|
||||
@ -388,18 +396,19 @@ OpenClaw читає це до завантаження середовища ви
|
||||
|
||||
Кожен запис каналу може містити:
|
||||
|
||||
| Поле | Тип | Що це означає |
|
||||
| ------------ | ------------------------ | --------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові мітки UI/placeholders/підказки чутливості для цього розділу конфігурації каналу. |
|
||||
| `label` | `string` | Мітка каналу, що зливається в поверхні picker та inspect, коли метадані runtime ще не готові. |
|
||||
| `description`| `string` | Короткий опис каналу для поверхонь inspect і каталогу. |
|
||||
| `preferOver` | `string[]` | Id застарілих або нижчопріоритетних плагінів, які цей канал має випереджати в поверхнях вибору. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| ------------- | ------------------------ | ----------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
|
||||
| `uiHints` | `Record<string, object>` | Необов’язкові мітки UI/placeholders/підказки чутливості для цього розділу конфігурації каналу. |
|
||||
| `label` | `string` | Мітка каналу, що об’єднується в picker та inspect surfaces, коли метадані runtime ще не готові. |
|
||||
| `description` | `string` | Короткий опис каналу для поверхонь inspect і catalog. |
|
||||
| `preferOver` | `string[]` | Застарілі або нижчопріоритетні id плагінів, які цей канал має випереджати в поверхнях вибору. |
|
||||
|
||||
## Довідка щодо `modelSupport`
|
||||
## Довідник `modelSupport`
|
||||
|
||||
Використовуйте `modelSupport`, коли OpenClaw має визначати ваш плагін провайдера з
|
||||
коротких id моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime плагіна.
|
||||
коротких id моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime
|
||||
плагіна.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -410,75 +419,75 @@ OpenClaw читає це до завантаження середовища ви
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw застосовує такий пріоритет:
|
||||
OpenClaw застосовує таку пріоритетність:
|
||||
|
||||
- явні посилання `provider/model` використовують метадані маніфесту власника `providers`
|
||||
- `modelPatterns` мають пріоритет над `modelPrefixes`
|
||||
- якщо збігаються один не-bundled плагін і один bundled-плагін, перемагає не-bundled
|
||||
- явні посилання `provider/model` використовують метадані маніфесту `providers`, якими володіє плагін
|
||||
- `modelPatterns` мають вищий пріоритет за `modelPrefixes`
|
||||
- якщо збігаються один небандлований плагін і один bundled plugin, перемагає небандлований
|
||||
плагін
|
||||
- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкажуть провайдера
|
||||
- решта неоднозначностей ігноруються, доки користувач або config не вкаже провайдера
|
||||
|
||||
Поля:
|
||||
|
||||
| Поле | Тип | Що це означає |
|
||||
| --------------- | ---------- | ------------------------------------------------------------------------------ |
|
||||
| `modelPrefixes` | `string[]` | Префікси, які зіставляються через `startsWith` із короткими id моделей. |
|
||||
| `modelPatterns` | `string[]` | Джерела regex, що зіставляються з короткими id моделей після видалення суфікса профілю. |
|
||||
| Поле | Тип | Що воно означає |
|
||||
| --------------- | ---------- | ------------------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` із короткими id моделей. |
|
||||
| `modelPatterns` | `string[]` | Джерела regex, які зіставляються з короткими id моделей після видалення суфікса профілю. |
|
||||
|
||||
Застарілі ключі можливостей верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб
|
||||
Застарілі ключі можливостей верхнього рівня не рекомендуються. Використовуйте `openclaw doctor --fix`, щоб
|
||||
перемістити `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` і `webSearchProviders` у `contracts`; звичайне
|
||||
`webFetchProviders` і `webSearchProviders` до `contracts`; звичайне
|
||||
завантаження маніфесту більше не трактує ці поля верхнього рівня як
|
||||
належність можливостей.
|
||||
|
||||
## Маніфест і package.json
|
||||
## Маніфест проти package.json
|
||||
|
||||
Ці два файли виконують різні завдання:
|
||||
Ці два файли виконують різні ролі:
|
||||
|
||||
| Файл | Для чого його використовувати |
|
||||
| Файл | Використовуйте його для |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду плагіна |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для entrypoint, обмежень встановлення, налаштування або метаданих каталогу |
|
||||
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані вибору auth і підказки UI, які мають існувати до запуску коду плагіна |
|
||||
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, який використовується для entrypoint-ів, обмежень установлення, setup або метаданих каталогу |
|
||||
|
||||
Якщо ви не впевнені, куди має належати певний фрагмент метаданих, користуйтеся таким правилом:
|
||||
|
||||
- якщо OpenClaw повинен знати це до завантаження коду плагіна, помістіть це в `openclaw.plugin.json`
|
||||
- якщо це стосується пакування, entry-файлів або поведінки встановлення npm, помістіть це в `package.json`
|
||||
- якщо OpenClaw має знати це до завантаження коду плагіна, помістіть це в `openclaw.plugin.json`
|
||||
- якщо це стосується пакування, файлів входу або поведінки встановлення npm, помістіть це в `package.json`
|
||||
|
||||
### Поля `package.json`, які впливають на виявлення
|
||||
### Поля package.json, які впливають на виявлення
|
||||
|
||||
Частина метаданих плагіна до runtime навмисно зберігається в `package.json` у блоці
|
||||
`openclaw`, а не в `openclaw.plugin.json`.
|
||||
|
||||
Важливі приклади:
|
||||
|
||||
| Поле | Що це означає |
|
||||
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Оголошує entrypoint власних плагінів. |
|
||||
| `openclaw.setupEntry` | Легкий entrypoint лише для налаштування, який використовується під час онбордингу та відкладеного запуску каналу. |
|
||||
| `openclaw.channel` | Легкі метадані каталогу каналів, такі як мітки, шляхи до документації, псевдоніми та текст для вибору. |
|
||||
| `openclaw.channel.configuredState` | Легкі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.channel.persistedAuthState` | Легкі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже щось увійшло в систему?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки встановлення/оновлення для bundled-плагінів і зовнішньо опублікованих плагінів. |
|
||||
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
|
||||
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із нижньою межею semver, наприклад `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення bundled-плагіна, коли конфігурація невалідна. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє завантажувати поверхні каналу лише для налаштування до повного плагіна каналу під час запуску. |
|
||||
| Поле | Що воно означає |
|
||||
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `openclaw.extensions` | Оголошує entrypoint-и власних плагінів. |
|
||||
| `openclaw.setupEntry` | Легковагий entrypoint лише для setup, який використовується під час онбордингу та відкладеного запуску каналу. |
|
||||
| `openclaw.channel` | Легковагі метадані каталогу каналів, як-от мітки, шляхи до документації, псевдоніми та текст для вибору. |
|
||||
| `openclaw.channel.configuredState` | Легковагі метадані перевірки configured-state, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.channel.persistedAuthState` | Легковагі метадані перевірки persisted-auth, які можуть відповісти на запитання «чи вже десь виконано вхід?» без завантаження повного runtime каналу. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки встановлення/оновлення для bundled і зовнішньо опублікованих плагінів. |
|
||||
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
|
||||
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw, із нижньою межею semver на кшталт `>=2026.3.22`. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення bundled plugin, коли конфігурація невалідна. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для setup завантажуватися до повного плагіна каналу під час запуску. |
|
||||
|
||||
`openclaw.install.minHostVersion` перевіряється під час встановлення та
|
||||
`openclaw.install.minHostVersion` застосовується під час встановлення та
|
||||
завантаження реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають
|
||||
плагін на старіших хостах.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке застосування. Воно
|
||||
не робить довільно зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє потокам встановлення
|
||||
відновлюватися після певних застарілих збоїв оновлення bundled-плагінів, наприклад відсутнього шляху до bundled-плагіна
|
||||
або застарілого запису `channels.<id>` для того самого
|
||||
bundled-плагіна. Непов’язані помилки конфігурації все одно блокують встановлення та спрямовують операторів
|
||||
не робить довільні зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє потокам встановлення
|
||||
відновлюватися після певних застарілих збоїв оновлення bundled plugin, наприклад
|
||||
відсутнього шляху bundled plugin або застарілого запису `channels.<id>` для того самого
|
||||
bundled plugin. Непов’язані помилки конфігурації все одно блокують встановлення та спрямовують операторів
|
||||
до `openclaw doctor --fix`.
|
||||
|
||||
`openclaw.channel.persistedAuthState` — це метадані пакета для маленького модуля перевірки:
|
||||
`openclaw.channel.persistedAuthState` — це метадані пакунка для маленького модуля перевірки:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -494,12 +503,11 @@ bundled-плагіна. Непов’язані помилки конфігур
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли потокам налаштування, doctor або configured-state потрібна дешева перевірка автентифікації
|
||||
так/ні до завантаження повного плагіна каналу. Цільовий експорт має бути невеликою
|
||||
функцією, що лише читає збережений стан; не спрямовуйте її через повний barrel runtime каналу.
|
||||
Використовуйте це, коли потокам setup, doctor або configured-state потрібна дешева перевірка auth
|
||||
типу так/ні до завантаження повного плагіна каналу. Цільовий export має бути невеликою
|
||||
функцією, яка лише читає збережений стан; не спрямовуйте її через повний barrel runtime каналу.
|
||||
|
||||
`openclaw.channel.configuredState` має таку саму форму для дешевих перевірок
|
||||
налаштованого стану лише через env:
|
||||
`openclaw.channel.configuredState` має ту саму форму для дешевих перевірок configured-state лише через env:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -515,63 +523,63 @@ bundled-плагіна. Непов’язані помилки конфігур
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте це, коли канал може визначити налаштований стан за env або іншими невеликими
|
||||
не-runtime входами. Якщо перевірка потребує повного визначення конфігурації або реального
|
||||
runtime каналу, залиште цю логіку в хуку плагіна `config.hasConfiguredState`.
|
||||
Використовуйте це, коли канал може визначити configured-state через env або інші невеликі
|
||||
входи, не пов’язані з runtime. Якщо перевірка потребує повного розв’язання config або справжнього
|
||||
runtime каналу, залиште цю логіку в hook `config.hasConfiguredState` плагіна.
|
||||
|
||||
## Вимоги до JSON Schema
|
||||
|
||||
- **Кожен плагін повинен постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію.
|
||||
- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час runtime.
|
||||
- **Кожен плагін має постачатися з JSON Schema**, навіть якщо він не приймає конфігурації.
|
||||
- Порожня схема припустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
|
||||
- Схеми проходять валідацію під час читання/запису config, а не під час runtime.
|
||||
|
||||
## Поведінка валідації
|
||||
|
||||
- Невідомі ключі `channels.*` є **помилками**, якщо тільки id каналу не оголошено
|
||||
маніфестом плагіна.
|
||||
- Невідомі ключі `channels.*` є **помилками**, якщо тільки id каналу не оголошений
|
||||
у маніфесті плагіна.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
|
||||
повинні посилатися на **виявлювані** id плагінів. Невідомі id є **помилками**.
|
||||
- Якщо плагін встановлено, але він має зламаний або відсутній маніфест чи схему,
|
||||
мають посилатися на id плагінів, які **можна виявити**. Невідомі id є **помилками**.
|
||||
- Якщо плагін установлено, але він має зламаний або відсутній маніфест чи схему,
|
||||
валідація завершується помилкою, а Doctor повідомляє про помилку плагіна.
|
||||
- Якщо конфігурація плагіна існує, але сам плагін **вимкнений**, конфігурація зберігається, і
|
||||
у Doctor + журналах відображається **попередження**.
|
||||
- Якщо конфігурація плагіна існує, але сам плагін **вимкнено**, конфігурація зберігається, і
|
||||
у Doctor + logs відображається **попередження**.
|
||||
|
||||
Повну схему `plugins.*` див. у [Довідник конфігурації](/uk/gateway/configuration).
|
||||
Дивіться [Довідник конфігурації](/uk/gateway/configuration) для повної схеми `plugins.*`.
|
||||
|
||||
## Примітки
|
||||
|
||||
- Маніфест **обов’язковий для власних плагінів OpenClaw**, включно із завантаженням із локальної файлової системи.
|
||||
- Runtime і далі завантажує модуль плагіна окремо; маніфест використовується лише для
|
||||
- Runtime, як і раніше, завантажує модуль плагіна окремо; маніфест призначений лише для
|
||||
виявлення + валідації.
|
||||
- Власні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та
|
||||
ключі без лапок допускаються, якщо кінцеве значення все одно є об’єктом.
|
||||
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання
|
||||
тут власних ключів верхнього рівня.
|
||||
- `providerAuthEnvVars` — це шлях дешевих метаданих для перевірок автентифікації, валідації
|
||||
env-маркерів та подібних поверхонь автентифікації провайдера, які не повинні запускати runtime плагіна
|
||||
ключі без лапок допускаються, якщо кінцеве значення все ще є об’єктом.
|
||||
- Завантажувач маніфестів читає лише задокументовані поля маніфесту. Уникайте додавання
|
||||
власних ключів верхнього рівня сюди.
|
||||
- `providerAuthEnvVars` — це дешевий шлях метаданих для перевірок auth, валідації
|
||||
env-marker та подібних поверхонь auth провайдера, які не повинні запускати runtime плагіна
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthAliases` дозволяє варіантам провайдерів повторно використовувати vars env автентифікації,
|
||||
профілі автентифікації, автентифікацію на основі конфігурації та варіант онбордингу з API key іншого провайдера
|
||||
- `providerAuthAliases` дозволяє варіантам провайдерів повторно використовувати auth
|
||||
env vars, auth profiles, auth на основі config та варіант онбордингу API key іншого провайдера
|
||||
без жорсткого кодування цього зв’язку в core.
|
||||
- `channelEnvVars` — це шлях дешевих метаданих для fallback через shell-env, підказок налаштування
|
||||
- `channelEnvVars` — це дешевий шлях метаданих для резервного використання shell-env, підказок setup
|
||||
та подібних поверхонь каналів, які не повинні запускати runtime плагіна
|
||||
лише для перевірки назв env.
|
||||
- `providerAuthChoices` — це шлях дешевих метаданих для picker варіантів автентифікації,
|
||||
визначення `--auth-choice`, мапінгу бажаного провайдера та простої реєстрації
|
||||
прапорців CLI для онбордингу до завантаження runtime провайдера. Для метаданих wizard runtime,
|
||||
які потребують коду провайдера, див.
|
||||
[Хуки runtime провайдера](/uk/plugins/architecture#provider-runtime-hooks).
|
||||
- Виняткові види плагінів вибираються через `plugins.slots.*`.
|
||||
- `providerAuthChoices` — це дешевий шлях метаданих для picker-ів вибору auth,
|
||||
розв’язання `--auth-choice`, мапінгу preferred provider і простої реєстрації прапорців CLI
|
||||
під час онбордингу до завантаження runtime провайдера. Для метаданих wizard runtime,
|
||||
які потребують коду провайдера, дивіться
|
||||
[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` можна не вказувати, якщо
|
||||
плагіну вони не потрібні.
|
||||
- Якщо ваш плагін залежить від native-модулів, задокументуйте кроки збирання та будь-які
|
||||
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
|
||||
- Якщо ваш плагін залежить від native modules, задокументуйте кроки збірки та всі
|
||||
вимоги до allowlist менеджера пакунків (наприклад, pnpm `allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## Пов’язане
|
||||
## Пов’язані матеріали
|
||||
|
||||
- [Створення плагінів](/uk/plugins/building-plugins) — початок роботи з плагінами
|
||||
- [Архітектура плагінів](/uk/plugins/architecture) — внутрішня архітектура
|
||||
|
||||
Loading…
Reference in New Issue
Block a user