chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-14 20:35:33 +00:00
parent 7a364ba4e5
commit b048d924fa
2 changed files with 699 additions and 656 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,71 +1,73 @@
---
read_when:
- Ви створюєте Plugin для OpenClaw
- Вам потрібно постачати схему конфігурації plugin або налагодити помилки валідації plugin
summary: Вимоги до маніфесту Plugin + JSON schema (сувора валідація конфігурації)
- Вам потрібно надати схему конфігурації plugin або налагодити помилки валідації plugin
summary: Вимоги до маніфесту Plugin + схеми JSON (сувора валідація конфігурації)
title: Маніфест Plugin
x-i18n:
generated_at: "2026-04-12T16:25:38Z"
generated_at: "2026-04-14T20:31:17Z"
model: gpt-5.4
provider: openai
source_hash: 93b57c7373e4ccd521b10945346db67991543bd2bed4cc8b6641e1f215b48579
source_hash: ba2183bfa8802871e4ef33a0ebea290606e8351e9e83e25ee72456addb768730
source_path: plugins/manifest.md
workflow: 15
---
# Маніфест Plugin (`openclaw.plugin.json`)
Ця сторінка стосується лише **нативного маніфесту Plugin OpenClaw**.
Ця сторінка стосується лише **власного маніфесту Plugin OpenClaw**.
Сумісні макети пакетів описано тут: [Пакети Plugin](/uk/plugins/bundles).
Щоб дізнатися про сумісні макети bundle, див. [Пакети Plugin](/uk/plugins/bundles).
Сумісні формати пакетів використовують інші файли маніфесту:
Сумісні формати bundle використовують інші файли маніфесту:
- Пакет Codex: `.codex-plugin/plugin.json`
- Пакет Claude: `.claude-plugin/plugin.json` або типовий макет компонента Claude
- Codex bundle: `.codex-plugin/plugin.json`
- Claude bundle: `.claude-plugin/plugin.json` або стандартний макет компонента Claude
без маніфесту
- Пакет Cursor: `.cursor-plugin/plugin.json`
- Cursor bundle: `.cursor-plugin/plugin.json`
OpenClaw також автоматично визначає ці макети пакетів, але вони не проходять валідацію
OpenClaw також автоматично виявляє ці макети bundle, але вони не проходять валідацію
за схемою `openclaw.plugin.json`, описаною тут.
Для сумісних пакетів OpenClaw наразі читає метадані пакета, а також оголошені
корені skills, корені команд Claude, типові значення `settings.json` пакета Claude,
типові значення LSP пакета Claude та підтримувані набори хуків, якщо макет відповідає
Для сумісних bundle OpenClaw наразі читає метадані bundle, а також оголошені
кореневі каталоги skill, кореневі каталоги команд Claude, типові значення `settings.json` для bundle Claude,
типові значення LSP для bundle Claude та підтримувані набори hook, якщо макет відповідає
очікуванням середовища виконання OpenClaw.
Кожен нативний Plugin OpenClaw **має** містити файл `openclaw.plugin.json` у
Кожен власний Plugin OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у
**корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації
**без виконання коду plugin**. Відсутні або недійсні маніфести вважаються
**без виконання коду plugin**. Відсутні або невалідні маніфести вважаються
помилками plugin і блокують валідацію конфігурації.
Дивіться повний посібник по системі plugin: [Plugins](/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 читає перед завантаженням коду вашого
plugin.
`openclaw.plugin.json` — це метадані, які OpenClaw читає до завантаження коду
вашого plugin.
Використовуйте його для:
- ідентичності plugin
- ідентифікації plugin
- валідації конфігурації
- метаданих автентифікації та онбордингу, які мають бути доступні без запуску
середовища виконання plugin
- недорогих підказок активації, які поверхні площини керування можуть перевіряти до
- легких підказок активації, які поверхні площини керування можуть перевіряти до
завантаження середовища виконання
- недорогих дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до
- легких дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до
завантаження середовища виконання
- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання plugin
- скорочених метаданих належності до сімейств моделей, які мають автоматично активувати
- метаданих псевдонімів та автоувімкнення, які мають визначатися до завантаження середовища виконання plugin
- скорочених метаданих належності до сімейства моделей, які мають автоматично активувати
plugin до завантаження середовища виконання
- статичних знімків належності можливостей, які використовуються для вбудованої сумісної прив’язки та
- статичних знімків належності capability, що використовуються для bundled wiring сумісності та
покриття контрактів
- метаданих конфігурації для конкретних каналів, які мають об’єднуватися в поверхні каталогу та валідації
- легких метаданих виконувача QA, які спільний хост `openclaw qa` може перевіряти
до завантаження середовища виконання plugin
- метаданих конфігурації, специфічних для channel, які мають об’єднуватися з поверхнями каталогу та валідації
без завантаження середовища виконання
- підказок інтерфейсу для конфігурації
- підказок UI для конфігурації
Не використовуйте його для:
@ -73,7 +75,7 @@ plugin.
- оголошення точок входу коду
- метаданих встановлення npm
Це належить коду вашого plugin і `package.json`.
Це належить вашому коду plugin і `package.json`.
## Мінімальний приклад
@ -94,7 +96,7 @@ plugin.
{
"id": "openrouter",
"name": "OpenRouter",
"description": "Plugin провайдера OpenRouter",
"description": "OpenRouter provider plugin",
"version": "1.0.0",
"providers": ["openrouter"],
"modelSupport": {
@ -115,19 +117,19 @@ plugin.
"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
}
@ -146,61 +148,62 @@ plugin.
## Довідник полів верхнього рівня
| Поле | Обов’язкове | Тип | Що воно означає |
| Поле | Обов’язкове | Тип | Що це означає |
| ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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 провайдерів, які мають автоматично вмикати цей plugin, коли автентифікація, конфігурація або посилання на моделі згадують їх. |
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип plugin, що використовується в `plugins.slots.*`. |
| `channels` | Ні | `string[]` | Id каналів, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. |
| `providers` | Ні | `string[]` | Id провайдерів, якими володіє цей plugin. |
| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, що належать маніфесту та використовуються для автозавантаження plugin до запуску середовища виконання. |
| `cliBackends` | Ні | `string[]` | Id backend CLI, якими володіє цей plugin. Використовується для автоактивації під час запуску на основі явних посилань у конфігурації. |
| `commandAliases` | Ні | `object[]` | Імена команд, якими володіє цей plugin і які мають формувати діагностику конфігурації та CLI з урахуванням plugin до завантаження середовища виконання. |
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані змінних середовища автентифікації провайдера, які OpenClaw може перевіряти без завантаження коду plugin. |
| `providerAuthAliases` | Ні | `Record<string, string>` | Id провайдерів, які мають повторно використовувати інший id провайдера для пошуку автентифікації, наприклад провайдер кодування, який спільно використовує базовий ключ API провайдера та профілі автентифікації. |
| `channelEnvVars` | Ні | `Record<string, string[]>` | Недорогі метадані змінних середовища каналу, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для поверхонь налаштування або автентифікації каналу через змінні середовища, які мають бачити типові допоміжні засоби запуску/конфігурації. |
| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів автентифікації для засобів вибору під час онбордингу, визначення бажаного провайдера та простого зв’язування прапорців CLI. |
| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, що запускається провайдером, командою, каналом, маршрутом і можливостями. Лише метадані; фактичною поведінкою як і раніше володіє середовище виконання plugin. |
| `setup` | Ні | `object` | Недорогі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання plugin. |
| `contracts` | Ні | `object` | Статичний знімок вбудованих можливостей для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і належності інструментів. |
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації каналів, що належать маніфесту та об’єднуються в поверхні виявлення й валідації до завантаження середовища виконання. |
| `id` | Так | `string` | Канонічний ідентифікатор plugin. Це ідентифікатор, який використовується в `plugins.entries.<id>`. |
| `configSchema` | Так | `object` | Вбудована схема JSON для конфігурації цього plugin. |
| `enabledByDefault` | Ні | `true` | Позначає bundled plugin як увімкнений типово. Не вказуйте його або задайте будь-яке значення, відмінне від `true`, щоб plugin залишався вимкненим типово. |
| `legacyPluginIds` | Ні | `string[]` | Застарілі ідентифікатори, які нормалізуються до цього канонічного ідентифікатора plugin. |
| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Ідентифікатори provider, які мають автоматично вмикати цей plugin, коли автентифікація, конфігурація або посилання на модель згадують їх. |
| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує ексклюзивний тип plugin, який використовується `plugins.slots.*`. |
| `channels` | Ні | `string[]` | Ідентифікатори channel, що належать цьому plugin. Використовуються для виявлення та валідації конфігурації. |
| `providers` | Ні | `string[]` | Ідентифікатори provider, що належать цьому plugin. |
| `modelSupport` | Ні | `object` | Скорочені метадані сімейства моделей, що належать маніфесту та використовуються для автозавантаження plugin до середовища виконання. |
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend CLI, що належать цьому plugin. Використовуються для автоактивації під час запуску з явних посилань у конфігурації. |
| `commandAliases` | Ні | `object[]` | Імена команд, що належать цьому plugin і мають формувати діагностику конфігурації та CLI з урахуванням plugin до завантаження середовища виконання. |
| `providerAuthEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані змінних середовища для автентифікації provider, які OpenClaw може перевіряти без завантаження коду plugin. |
| `providerAuthAliases` | Ні | `Record<string, string>` | Ідентифікатори provider, які мають повторно використовувати інший ідентифікатор provider для пошуку автентифікації, наприклад provider для кодування, що спільно використовує API key та профілі автентифікації базового provider. |
| `channelEnvVars` | Ні | `Record<string, string[]>` | Легкі метадані змінних середовища для channel, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для поверхонь налаштування або автентифікації channel на основі змінних середовища, які мають бачити загальні допоміжні засоби запуску/конфігурації. |
| `providerAuthChoices` | Ні | `object[]` | Легкі метадані варіантів автентифікації для засобів вибору в онбордингу, визначення бажаного provider та простого зв’язування прапорців CLI. |
| `activation` | Ні | `object` | Легкі підказки активації для завантаження, яке запускається provider, командою, channel, маршрутом і capability. Лише метадані; фактична поведінка, як і раніше, належить середовищу виконання plugin. |
| `setup` | Ні | `object` | Легкі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання plugin. |
| `qaRunners` | Ні | `object[]` | Легкі дескриптори виконувачів QA, які використовуються спільним хостом `openclaw qa` до завантаження середовища виконання plugin. |
| `contracts` | Ні | `object` | Статичний bundled-знімок capability для speech, транскрибування в реальному часі, голосу в реальному часі, media-understanding, генерації зображень, генерації музики, генерації відео, web-fetch, web search і належності tools. |
| `channelConfigs` | Ні | `Record<string, object>` | Метадані конфігурації channel, що належать маніфесту та об’єднуються з поверхнями виявлення й валідації до завантаження середовища виконання. |
| `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. |
| `name` | Ні | `string` | Зрозуміла для людини назва plugin. |
| `description` | Ні | `string` | Короткий опис, який показується в поверхнях plugin. |
| `name` | Ні | `string` | Зрозуміла людині назва plugin. |
| `description` | Ні | `string` | Короткий опис, що показується на поверхнях plugin. |
| `version` | Ні | `string` | Інформаційна версія plugin. |
| `uiHints` | Ні | `Record<string, object>` | Мітки інтерфейсу, заповнювачі та підказки чутливості для полів конфігурації. |
| `uiHints` | Ні | `Record<string, object>` | Підписи UI, заповнювачі та підказки щодо чутливості для полів конфігурації. |
## Довідник `providerAuthChoices`
Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації.
OpenClaw читає це до завантаження середовища виконання провайдера.
OpenClaw читає це до завантаження середовища виконання provider.
| Поле | Обов’язкове | Тип | Що воно означає |
| --------------------- | ----------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `provider` | Так | `string` | Id провайдера, до якого належить цей варіант. |
| `method` | Так | `string` | Id методу автентифікації, до якого треба спрямувати запит. |
| `choiceId` | Так | `string` | Стабільний id варіанта автентифікації, що використовується в потоках онбордингу та 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` | Внутрішній ключ опції для простих потоків автентифікації з одним прапорцем. |
| `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` | Ідентифікатор provider, якому належить цей варіант. |
| `method` | Так | `string` | Ідентифікатор методу автентифікації, до якого слід спрямувати. |
| `choiceId` | Так | `string` | Стабільний ідентифікатор варіанта автентифікації, який використовується онбордингом і потоками CLI. |
| `choiceLabel` | Ні | `string` | Підпис для користувача. Якщо не вказано, OpenClaw використовує `choiceId`. |
| `choiceHint` | Ні | `string` | Короткий допоміжний текст для засобу вибору. |
| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних засобах вибору, керованих assistant. |
| `assistantVisibility`| Ні | `"visible"` \| `"manual-only"` | Приховує варіант із засобів вибору assistant, але все ще дозволяє ручний вибір через CLI. |
| `deprecatedChoiceIds`| Ні | `string[]` | Застарілі ідентифікатори варіантів, які мають перенаправляти користувачів до цього варіанта-замінника. |
| `groupId` | Ні | `string` | Необов’язковий ідентифікатор групи для групування пов’язаних варіантів. |
| `groupLabel` | Ні | `string` | Підпис цієї групи для користувача. |
| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. |
| `optionKey` | Ні | `string` | Внутрішній ключ опції для простих потоків автентифікації з одним прапорцем. |
| `cliFlag` | Ні | `string` | Назва прапорця CLI, наприклад `--openrouter-api-key`. |
| `cliOption` | Ні | `string` | Повна форма опції CLI, наприклад `--openrouter-api-key <key>`. |
| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. |
| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має з’являтися цей варіант. Якщо не вказано, за замовчуванням це `["text-inference"]`. |
## Довідник `commandAliases`
Використовуйте `commandAliases`, коли Plugin володіє назвою команди середовища виконання, яку користувачі можуть
помилково додати до `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
Використовуйте `commandAliases`, коли plugin володіє назвою команди середовища виконання, яку користувачі можуть
помилково вказати в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw
використовує ці метадані для діагностики без імпорту коду середовища виконання plugin.
```json
@ -215,22 +218,45 @@ OpenClaw читає це до завантаження середовища ви
}
```
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------ | ----------- | ----------------- | ------------------------------------------------------------------------------ |
| `name` | Так | `string` | Назва команди, що належить цьому plugin. |
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не кореневу команду CLI. |
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід підказати для операцій CLI, якщо є. |
| Поле | Обов’язкове | Тип | Що це означає |
| ------------ | ----------- | ----------------- | -------------------------------------------------------------------------- |
| `name` | Так | `string` | Назва команди, яка належить цьому plugin. |
| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу команду CLI. |
| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід запропонувати для операцій CLI, якщо вона існує. |
## Довідник `activation`
Використовуйте `activation`, коли plugin може недорого оголосити, які події площини керування
мають активувати його пізніше.
Цей блок містить лише метадані. Він не реєструє поведінку середовища виконання і не
замінює `register(...)`, `setupEntry` чи інші точки входу runtime/plugin.
## Довідник `qaRunners`
Використовуйте `qaRunners`, коли plugin додає один або кілька виконувачів транспорту в межах
спільного кореня `openclaw qa`. Зберігайте ці метадані легкими й статичними; середовище виконання plugin
як і раніше відповідає за фактичну реєстрацію CLI через легку
поверхню `runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`.
```json
{
"qaRunners": [
{
"commandName": "matrix",
"description": "Run the Docker-backed Matrix live QA lane against a disposable homeserver"
}
]
}
```
| Поле | Обов’язкове | Тип | Що це означає |
| ------------- | ----------- | -------- | ---------------------------------------------------------------------- |
| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. |
| `description` | Ні | `string` | Резервний текст довідки, що використовується, коли спільному хосту потрібна stub-команда. |
Цей блок — лише метадані. Він не реєструє поведінку середовища виконання і
не замінює `register(...)`, `setupEntry` або інші точки входу середовища виконання/plugin.
Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням plugin, тому
відсутність метаданих активації зазвичай впливає лише на продуктивність; вона не повинна
змінювати коректність, доки все ще існують застарілі резервні варіанти володіння через маніфест.
відсутність метаданих активації зазвичай впливає лише на продуктивність; це не має
змінювати коректність, доки все ще існують застарілі резервні механізми володіння маніфестом.
```json
{
@ -244,28 +270,28 @@ OpenClaw читає це до завантаження середовища ви
}
```
| Поле | Обов’язкове | Тип | Що воно означає |
| ---------------- | ----------- | ---------------------------------------------------- | ---------------------------------------------------------------- |
| `onProviders` | Ні | `string[]` | Id провайдерів, які мають активувати цей plugin за запитом. |
| `onCommands` | Ні | `string[]` | Id команд, які мають активувати цей plugin. |
| `onChannels` | Ні | `string[]` | Id каналів, які мають активувати цей plugin. |
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. |
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються для планування активації площини керування. |
| Поле | Обов’язкове | Тип | Що це означає |
| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------- |
| `onProviders` | Ні | `string[]` | Ідентифікатори provider, які мають активувати цей plugin за запитом. |
| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей plugin. |
| `onChannels` | Ні | `string[]` | Ідентифікатори channel, які мають активувати цей plugin. |
| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. |
| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки capability, що використовуються для планування активації площини керування. |
Поточні активні споживачі:
- планування CLI, що запускається командою, використовує резервний варіант
- планування CLI, що запускається командою, використовує застарілий резервний механізм
`commandAliases[].cliCommand` або `commandAliases[].name`
- планування налаштування/каналу, що запускається каналом, використовує резервний варіант застарілого володіння
`channels[]`, якщо явні метадані активації каналу відсутні
- планування налаштування/runtime, що запускається провайдером, використовує резервний варіант застарілого
володіння `providers[]` і верхньорівневого `cliBackends[]`, якщо явні метадані активації провайдера
відсутні
- планування налаштування/channel, що запускається channel, використовує застарілий резервний механізм належності
`channels[]`, коли явні метадані активації channel відсутні
- планування налаштування/середовища виконання, що запускається provider, використовує застарілий резервний механізм
`providers[]` і належності верхньорівневих `cliBackends[]`, коли явні метадані
активації provider відсутні
## Довідник `setup`
Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні недорогі метадані plugin
до завантаження runtime.
Використовуйте `setup`, коли поверхням налаштування й онбордингу потрібні недорогі метадані plugin, якими він володіє,
до завантаження середовища виконання.
```json
{
@ -284,36 +310,37 @@ OpenClaw читає це до завантаження середовища ви
}
```
Верхньорівневий `cliBackends` залишається дійсним і надалі описує backend CLI для inference.
`setup.cliBackends` — це поверхня дескрипторів, специфічна для setup, для потоків
площини керування/setup, які мають залишатися лише метаданими.
Верхньорівневе `cliBackends` залишається валідним і, як і раніше, описує backend-и
інференсу CLI. `setup.cliBackends` — це поверхня дескрипторів, специфічна для setup,
для потоків площини керування/setup, яка має залишатися лише метаданими.
Якщо `setup.providers` і `setup.cliBackends` присутні, вони є бажаною
поверхнею пошуку setup за принципом «спочатку дескриптор» для виявлення setup. Якщо дескриптор лише
звужує кандидатний plugin, а setup усе ще потребує багатших runtime-хуків під час setup,
встановіть `requiresRuntime: true` і залиште `setup-api` як резервний шлях виконання.
За наявності `setup.providers` і `setup.cliBackends` є бажаною поверхнею пошуку
для виявлення setup на основі дескрипторів. Якщо дескриптор лише звужує коло
потенційних plugin, а setup все ще потребує багатших hook середовища виконання під час setup,
установіть `requiresRuntime: true` і залиште `setup-api` як
резервний шлях виконання.
Оскільки пошук setup може виконувати код plugin `setup-api`, нормалізовані
значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед
виявлених plugin. Неоднозначне володіння завершується безпечною відмовою замість вибору
виявлених plugin. Неоднозначна належність завершується безпечною відмовою, а не вибором
переможця за порядком виявлення.
### Довідник `setup.providers`
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------- | ----------- | ---------- | -------------------------------------------------------------------------------- |
| `id` | Так | `string` | Id провайдера, доступний під час setup або онбордингу. Зберігайте нормалізовані id глобально унікальними. |
| `authMethods` | Ні | `string[]` | Id методів setup/автентифікації, які цей провайдер підтримує без завантаження повного runtime. |
| `envVars` | Ні | `string[]` | Змінні середовища, які типові поверхні setup/status можуть перевіряти до завантаження runtime plugin. |
| Поле | Обов’язкове | Тип | Що це означає |
| ------------- | ----------- | ---------- | ------------------------------------------------------------------------------------- |
| `id` | Так | `string` | Ідентифікатор provider, який надається під час setup або онбордингу. Підтримуйте глобальну унікальність нормалізованих ідентифікаторів. |
| `authMethods` | Ні | `string[]` | Ідентифікатори методів setup/автентифікації, які цей provider підтримує без завантаження повного середовища виконання. |
| `envVars` | Ні | `string[]` | Змінні середовища, які загальні поверхні setup/status можуть перевіряти до завантаження середовища виконання plugin. |
### Поля `setup`
| Поле | Обов’язкове | Тип | Що воно означає |
| ------------------ | ----------- | ---------- | ------------------------------------------------------------------------------------------------ |
| `providers` | Ні | `object[]` | Дескриптори setup провайдера, доступні під час setup та онбордингу. |
| `cliBackends` | Ні | `string[]` | Id backend часу setup, що використовуються для пошуку setup за принципом «спочатку дескриптор». Зберігайте нормалізовані id глобально унікальними. |
| `configMigrations` | Ні | `string[]` | Id міграцій конфігурації, якими володіє поверхня setup цього plugin. |
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` після пошуку за дескриптором. |
| Поле | Обов’язкове | Тип | Що це означає |
| ------------------ | ----------- | ---------- | ---------------------------------------------------------------------------------------------------- |
| `providers` | Ні | `object[]` | Дескриптори setup provider, доступні під час setup та онбордингу. |
| `cliBackends` | Ні | `string[]` | Ідентифікатори backend-ів на етапі setup, що використовуються для пошуку setup на основі дескрипторів. Підтримуйте глобальну унікальність нормалізованих ідентифікаторів. |
| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, якими володіє поверхня setup цього plugin. |
| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` після пошуку за дескриптором. |
## Довідник `uiHints`
@ -334,19 +361,19 @@ OpenClaw читає це до завантаження середовища ви
Кожна підказка поля може містити:
| Поле | Тип | Що воно означає |
| Поле | Тип | Що це означає |
| ------------- | ---------- | -------------------------------------- |
| `label` | `string` | Мітка поля для користувача. |
| `label` | `string` | Підпис поля для користувача. |
| `help` | `string` | Короткий допоміжний текст. |
| `tags` | `string[]` | Необов’язкові теги інтерфейсу. |
| `tags` | `string[]` | Необов’язкові теги UI. |
| `advanced` | `boolean` | Позначає поле як розширене. |
| `sensitive` | `boolean` | Позначає поле як секретне або чутливе. |
| `placeholder` | `string` | Текст-заповнювач для полів форми. |
## Довідник `contracts`
Використовуйте `contracts` лише для статичних метаданих володіння можливостями, які OpenClaw може
читати без імпорту runtime plugin.
Використовуйте `contracts` лише для статичних метаданих належності capability, які OpenClaw може
читати без імпорту середовища виконання plugin.
```json
{
@ -364,24 +391,24 @@ OpenClaw читає це до завантаження середовища ви
}
```
Кожен список є необов’язковим:
Кожен список необов’язковий:
| Поле | Тип | Що воно означає |
| -------------------------------- | ---------- | --------------------------------------------------------- |
| `speechProviders` | `string[]` | Id speech-провайдерів, якими володіє цей plugin. |
| `realtimeTranscriptionProviders` | `string[]` | Id провайдерів транскрипції в реальному часі, якими володіє цей plugin. |
| `realtimeVoiceProviders` | `string[]` | Id voice-провайдерів у реальному часі, якими володіє цей plugin. |
| `mediaUnderstandingProviders` | `string[]` | Id провайдерів розуміння медіа, якими володіє цей plugin. |
| `imageGenerationProviders` | `string[]` | Id провайдерів генерації зображень, якими володіє цей plugin. |
| `videoGenerationProviders` | `string[]` | Id провайдерів генерації відео, якими володіє цей plugin. |
| `webFetchProviders` | `string[]` | Id провайдерів web-fetch, якими володіє цей plugin. |
| `webSearchProviders` | `string[]` | Id провайдерів web search, якими володіє цей plugin. |
| `tools` | `string[]` | Назви інструментів агента, якими володіє цей plugin, для перевірок вбудованих контрактів. |
| Поле | Тип | Що це означає |
| -------------------------------- | ---------- | ----------------------------------------------------------- |
| `speechProviders` | `string[]` | Ідентифікатори speech provider, якими володіє цей plugin. |
| `realtimeTranscriptionProviders` | `string[]` | Ідентифікатори provider транскрибування в реальному часі, якими володіє цей plugin. |
| `realtimeVoiceProviders` | `string[]` | Ідентифікатори provider голосу в реальному часі, якими володіє цей plugin. |
| `mediaUnderstandingProviders` | `string[]` | Ідентифікатори provider media-understanding, якими володіє цей plugin. |
| `imageGenerationProviders` | `string[]` | Ідентифікатори provider генерації зображень, якими володіє цей plugin. |
| `videoGenerationProviders` | `string[]` | Ідентифікатори provider генерації відео, якими володіє цей plugin. |
| `webFetchProviders` | `string[]` | Ідентифікатори provider web-fetch, якими володіє цей plugin. |
| `webSearchProviders` | `string[]` | Ідентифікатори provider web search, якими володіє цей plugin. |
| `tools` | `string[]` | Назви tool агента, якими володіє цей plugin, для bundled-перевірок контрактів. |
## Довідник `channelConfigs`
Використовуйте `channelConfigs`, коли channel plugin потребує недорогих метаданих конфігурації до
завантаження runtime.
Використовуйте `channelConfigs`, коли channel plugin потребує недорогих метаданих конфігурації
до завантаження середовища виконання.
```json
{
@ -401,27 +428,28 @@ OpenClaw читає це до завантаження середовища ви
}
},
"label": "Matrix",
"description": "Підключення до homeserver Matrix",
"description": "Matrix homeserver connection",
"preferOver": ["matrix-legacy"]
}
}
}
```
Кожен запис каналу може містити:
Кожен запис channel може містити:
| Поле | Тип | Що воно означає |
| ------------- | ------------------------ | ---------------------------------------------------------------------------------------------- |
| `schema` | `object` | JSON Schema для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації каналу. |
| `uiHints` | `Record<string, object>` | Необов’язкові мітки інтерфейсу/заповнювачі/підказки чутливості для цього розділу конфігурації каналу. |
| `label` | `string` | Мітка каналу, що об’єднується в поверхні вибору та інспекції, коли метадані runtime ще не готові. |
| `description` | `string` | Короткий опис каналу для поверхонь інспекції та каталогу. |
| `preferOver` | `string[]` | Id застарілих plugin або plugin з нижчим пріоритетом, які цей канал має випереджати на поверхнях вибору. |
| Поле | Тип | Що це означає |
| ------------- | ------------------------ | -------------------------------------------------------------------------------------------- |
| `schema` | `object` | Схема JSON для `channels.<id>`. Обов’язкова для кожного оголошеного запису конфігурації channel. |
| `uiHints` | `Record<string, object>` | Необов’язкові підписи UI/заповнювачі/підказки чутливості для цього розділу конфігурації channel. |
| `label` | `string` | Підпис channel, що об’єднується з поверхнями вибору та інспектування, коли метадані середовища виконання ще не готові. |
| `description` | `string` | Короткий опис channel для поверхонь інспектування та каталогу. |
| `preferOver` | `string[]` | Ідентифікатори застарілих plugin або plugin із нижчим пріоритетом, які цей channel має перевершувати на поверхнях вибору. |
## Довідник `modelSupport`
Використовуйте `modelSupport`, коли OpenClaw має визначати ваш provider plugin на основі
скорочених id моделей, як-от `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime plugin.
Використовуйте `modelSupport`, коли OpenClaw має виводити ваш provider plugin із
скорочених ідентифікаторів моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження
середовища виконання plugin.
```json
{
@ -434,74 +462,73 @@ OpenClaw читає це до завантаження середовища ви
OpenClaw застосовує такий пріоритет:
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що визначають власника
- явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику
- `modelPatterns` мають пріоритет над `modelPrefixes`
- якщо збігаються один невбудований plugin і один вбудований plugin, перемагає невбудований
- якщо збігаються один небудований plugin і один bundled plugin, перемагає небудований
plugin
- решта неоднозначностей ігноруються, доки користувач або конфігурація не вкаже провайдера
- решта неоднозначностей ігноруються, доки користувач або конфігурація не вкажуть provider
Поля:
| Поле | Тип | Що воно означає |
| --------------- | ---------- | -------------------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Префікси, що звіряються через `startsWith` зі скороченими id моделей. |
| `modelPatterns` | `string[]` | Джерела regex, що звіряються зі скороченими id моделей після видалення суфікса профілю. |
| Поле | Тип | Що це означає |
| --------------- | ---------- | ------------------------------------------------------------------------------------ |
| `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими ідентифікаторами моделей. |
| `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими ідентифікаторами моделей після видалення суфікса профілю. |
Застарілі ключі можливостей верхнього рівня більше не рекомендуються. Використовуйте `openclaw doctor --fix`, щоб
перенести `speechProviders`, `realtimeTranscriptionProviders`,
Застарілі ключі capability верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб
перемістити `speechProviders`, `realtimeTranscriptionProviders`,
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
`imageGenerationProviders`, `videoGenerationProviders`,
`webFetchProviders` і `webSearchProviders` до `contracts`; звичайне
завантаження маніфесту більше не трактує ці поля верхнього рівня як
належність можливостей.
належність capability.
## Маніфест у порівнянні з package.json
## Маніфест і `package.json`
Ці два файли виконують різні завдання:
Ці два файли виконують різні ролі:
| Файл | Для чого його використовувати |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки інтерфейсу, які мають існувати до запуску коду plugin |
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмежень встановлення, setup або метаданих каталогу |
| Файл | Для чого використовувати |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду plugin |
| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмежень установлення, setup або метаданих каталогу |
Якщо ви не впевнені, куди має належати певний фрагмент метаданих, користуйтеся таким правилом:
- якщо OpenClaw має знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json`
- якщо це стосується пакування, файлів точок входу або поведінки встановлення npm, помістіть це в `package.json`
### Поля `package.json`, що впливають на виявлення
### Поля `package.json`, які впливають на виявлення
Частина метаданих plugin до runtime навмисно зберігається в `package.json` у блоці
Деякі метадані plugin до середовища виконання навмисно розміщуються в `package.json` у блоці
`openclaw`, а не в `openclaw.plugin.json`.
Важливі приклади:
| Поле | Що воно означає |
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.extensions` | Оголошує нативні точки входу plugin. |
| `openclaw.setupEntry` | Легка точка входу лише для setup, що використовується під час онбордингу та відкладеного запуску каналів. |
| `openclaw.channel` | Недорогі метадані каталогу каналів, як-от мітки, шляхи до документації, псевдоніми та текст для вибору. |
| `openclaw.channel.configuredState` | Недорогі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. |
| `openclaw.channel.persistedAuthState` | Недорогі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже десь виконано вхід?» без завантаження повного runtime каналу. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки встановлення/оновлення для вбудованих і зовнішньо опублікованих plugin. |
| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. |
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із semver-нижньою межею на кшталт `>=2026.3.22`. |
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення вбудованого plugin, коли конфігурація недійсна. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналів лише для setup завантажуватися до повного channel plugin під час запуску. |
| Поле | Що це означає |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.extensions` | Оголошує власні точки входу plugin. |
| `openclaw.setupEntry` | Легка точка входу лише для setup, що використовується під час онбордингу та відкладеного запуску channel. |
| `openclaw.channel` | Легкі метадані каталогу channel, як-от підписи, шляхи до документації, псевдоніми та текст для вибору. |
| `openclaw.channel.configuredState` | Легкі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує setup лише через env?» без завантаження повного середовища виконання channel. |
| `openclaw.channel.persistedAuthState` | Легкі метадані перевірки збереженого стану автентифікації, які можуть відповісти на запитання «чи вже є хоч один вхід у систему?» без завантаження повного середовища виконання channel. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки для встановлення/оновлення bundled plugin і plugin, опублікованих зовнішньо. |
| `openclaw.install.defaultChoice` | Бажаний шлях установлення, коли доступно кілька джерел установлення. |
| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw із використанням нижньої межі semver, наприклад `>=2026.3.22`. |
| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення через перевстановлення bundled plugin, коли конфігурація невалідна. |
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням channel лише для setup завантажуватися до повного channel plugin під час запуску. |
`openclaw.install.minHostVersion` перевіряється під час встановлення та завантаження
реєстру маніфестів. Недійсні значення відхиляються; новіші, але коректні значення пропускають
`openclaw.install.minHostVersion` застосовується під час установлення та завантаження
реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають
plugin на старіших хостах.
`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке застосування. Воно
не робить довільно зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє
потокам встановлення відновлюватися після конкретних застарілих збоїв оновлення вбудованих plugin, наприклад
відсутнього шляху до вбудованого plugin або застарілого запису `channels.<id>` для цього самого
вбудованого plugin. Непов’язані помилки конфігурації й далі блокують встановлення та спрямовують
не робить довільні зламані конфігурації придатними для встановлення. Наразі воно лише дозволяє
потокам установлення відновлюватися після певних застарілих збоїв оновлення bundled plugin, наприклад
відсутнього шляху bundled plugin або застарілого запису `channels.<id>` для того самого
bundled plugin. Непов’язані помилки конфігурації все одно блокують установлення та спрямовують
операторів до `openclaw doctor --fix`.
`openclaw.channel.persistedAuthState` — це метадані пакета для крихітного
модуля перевірки:
`openclaw.channel.persistedAuthState` — це метадані пакета для невеликого модуля перевірки:
```json
{
@ -517,11 +544,12 @@ plugin на старіших хостах.
}
```
Використовуйте це, коли потоки setup, doctor або configured-state потребують недорогої перевірки
автентифікації типу так/ні до завантаження повного channel plugin. Цільовий експорт має бути невеликою
функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel runtime каналу.
Використовуйте це, коли потокам setup, doctor або configured-state потрібна недорога
перевірка автентифікації з відповіддю так/ні до завантаження повного channel plugin. Цільовий
експорт має бути невеликою функцією, яка читає лише збережений стан; не спрямовуйте її через повний
barrel середовища виконання channel.
`openclaw.channel.configuredState` використовує таку саму форму для недорогих перевірок
`openclaw.channel.configuredState` має таку саму форму для недорогих перевірок
налаштованого стану лише через env:
```json
@ -538,64 +566,65 @@ plugin на старіших хостах.
}
```
Використовуйте це, коли канал може визначити налаштований стан через env або інші невеликі
входи без runtime. Якщо перевірка потребує повного визначення конфігурації або реального
runtime каналу, залиште цю логіку у хуку plugin `config.hasConfiguredState`.
Використовуйте це, коли channel може визначити налаштований стан із env або інших невеликих
вхідних даних поза середовищем виконання. Якщо перевірка потребує повного розв’язання конфігурації або реального
середовища виконання channel, натомість залишайте цю логіку в hook `config.hasConfiguredState`
plugin.
## Вимоги до JSON Schema
## Вимоги до схеми JSON
- **Кожен plugin має постачати JSON Schema**, навіть якщо він не приймає конфігурацію.
- Порожня схема є прийнятною (наприклад, `{ "type": "object", "additionalProperties": false }`).
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час runtime.
- **Кожен plugin повинен постачатися зі схемою JSON**, навіть якщо він не приймає жодної конфігурації.
- Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`).
- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання.
## Поведінка валідації
- Невідомі ключі `channels.*` є **помилками**, якщо тільки id каналу не оголошено
- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор channel не оголошено
в маніфесті plugin.
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` і `plugins.slots.*`
мають посилатися на **виявлювані** id plugin. Невідомі id є **помилками**.
- Якщо plugin встановлено, але його маніфест або схема пошкоджені чи відсутні,
валідація завершується помилкою, а Doctor повідомляє про помилку plugin.
- Якщо конфігурація plugin існує, але plugin **вимкнений**, конфігурація зберігається, і
в Doctor + логах з’являється **попередження**.
повинні посилатися на **виявлювані** ідентифікатори plugin. Невідомі ідентифікатори є **помилками**.
- Якщо plugin установлено, але він має зламаний або відсутній маніфест чи схему,
валідація завершується помилкою, і Doctor повідомляє про помилку plugin.
- Якщо конфігурація plugin існує, але plugin **вимкнено**, конфігурація зберігається, і
у Doctor + журналах з’являється **попередження**.
Повну схему `plugins.*` дивіться в [Довіднику з конфігурації](/uk/gateway/configuration).
Див. [Довідник із конфігурації](/uk/gateway/configuration), щоб переглянути повну схему `plugins.*`.
## Примітки
- Маніфест **обов’язковий для нативних Plugin OpenClaw**, зокрема для завантажень із локальної файлової системи.
- Runtime, як і раніше, завантажує модуль plugin окремо; маніфест використовується лише для
виявлення + валідації.
- Нативні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та
ключі без лапок допускаються, якщо кінцеве значення все ще є об’єктом.
- Маніфест **обов’язковий для власних Plugin OpenClaw**, зокрема для завантаження з локальної файлової системи.
- Середовище виконання все одно завантажує модуль plugin окремо; маніфест призначений лише для
виявлення та валідації.
- Власні маніфести розбираються за допомогою JSON5, тому коментарі, коми в кінці списку та
ключі без лапок допускаються, якщо кінцеве значення все одно залишається об’єктом.
- Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання
власних ключів верхнього рівня тут.
власних ключів верхнього рівня сюди.
- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок автентифікації, валідації
env-маркерів і подібних поверхонь автентифікації провайдерів, які не повинні запускати runtime plugin
лише для перевірки імен env.
- `providerAuthAliases` дозволяє варіантам провайдера повторно використовувати змінні середовища
автентифікації іншого провайдера, профілі автентифікації, автентифікацію на основі конфігурації та
варіант онбордингу з ключем API без жорсткого кодування цього зв’язку в core.
- `channelEnvVars` — це недорогий шлях метаданих для резервного використання shell-env, підказок setup
і подібних поверхонь каналів, які не повинні запускати runtime plugin
лише для перевірки імен env.
маркерів env і подібних поверхонь автентифікації provider, які не повинні запускати
середовище виконання plugin лише для перевірки назв env.
- `providerAuthAliases` дає змогу варіантам provider повторно використовувати змінні середовища автентифікації,
профілі автентифікації, автентифікацію на основі конфігурації та варіант онбордингу
з API key іншого provider без жорсткого кодування цього зв’язку в core.
- `channelEnvVars` — це недорогий шлях метаданих для резервного використання env оболонки, підказок
setup і подібних поверхонь channel, які не повинні запускати середовище виконання plugin
лише для перевірки назв env.
- `providerAuthChoices` — це недорогий шлях метаданих для засобів вибору варіантів автентифікації,
визначення `--auth-choice`, мапінгу бажаного провайдера та простої реєстрації прапорців CLI
для онбордингу до завантаження runtime провайдера. Для метаданих wizard у runtime,
які потребують коду провайдера, див.
[Хуки runtime провайдера](/uk/plugins/architecture#provider-runtime-hooks).
розв’язання `--auth-choice`, зіставлення бажаного provider і простої реєстрації
прапорців CLI для онбордингу до завантаження середовища виконання provider. Для метаданих
майстра середовища виконання, що потребують коду provider, див.
[Hook середовища виконання 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 залежить від нативних модулів, задокументуйте кроки збірки та всі
- Якщо ваш plugin залежить від власних модулів, задокументуйте кроки збірки та будь-які
вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts`
- `pnpm rebuild <package>`).
## Пов’язані матеріали
## Пов’язане
- [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з plugins
- [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник по SDK Plugin
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник із SDK Plugin