diff --git a/docs/uk/plugins/manifest.md b/docs/uk/plugins/manifest.md index 0138b832b..b751fa639 100644 --- a/docs/uk/plugins/manifest.md +++ b/docs/uk/plugins/manifest.md @@ -1,14 +1,14 @@ --- read_when: - Ви створюєте Plugin для OpenClaw - - Вам потрібно надати схему конфігурації plugin або налагодити помилки валідації plugin -summary: Вимоги до маніфесту Plugin + схеми JSON (сувора валідація конфігурації) + - Вам потрібно постачати схему конфігурації plugin або налагоджувати помилки валідації plugin +summary: Вимоги до маніфесту Plugin + JSON schema (сувора валідація конфігурації) title: Маніфест Plugin x-i18n: - generated_at: "2026-04-14T20:31:17Z" + generated_at: "2026-04-18T18:55:31Z" model: gpt-5.4 provider: openai - source_hash: ba2183bfa8802871e4ef33a0ebea290606e8351e9e83e25ee72456addb768730 + source_hash: fa9976ac0e63a3902d9cc401ff9620fd903856c038f08a19a4f64fd7b23bc437 source_path: plugins/manifest.md workflow: 15 --- @@ -17,57 +17,57 @@ x-i18n: Ця сторінка стосується лише **власного маніфесту Plugin OpenClaw**. -Щоб дізнатися про сумісні макети bundle, див. [Пакети Plugin](/uk/plugins/bundles). +Сумісні макети пакетів описано в розділі [Пакети Plugin](/uk/plugins/bundles). -Сумісні формати bundle використовують інші файли маніфесту: +Сумісні формати пакетів використовують інші файли маніфесту: -- Codex bundle: `.codex-plugin/plugin.json` -- Claude bundle: `.claude-plugin/plugin.json` або стандартний макет компонента Claude +- Пакет Codex: `.codex-plugin/plugin.json` +- Пакет Claude: `.claude-plugin/plugin.json` або стандартний макет компонента Claude без маніфесту -- Cursor bundle: `.cursor-plugin/plugin.json` +- Пакет Cursor: `.cursor-plugin/plugin.json` -OpenClaw також автоматично виявляє ці макети bundle, але вони не проходять валідацію +OpenClaw також автоматично виявляє ці макети пакетів, але вони не проходять валідацію за схемою `openclaw.plugin.json`, описаною тут. -Для сумісних bundle OpenClaw наразі читає метадані bundle, а також оголошені -кореневі каталоги skill, кореневі каталоги команд Claude, типові значення `settings.json` для bundle Claude, -типові значення LSP для bundle Claude та підтримувані набори hook, якщо макет відповідає +Для сумісних пакетів OpenClaw наразі читає метадані пакета разом із оголошеними +коренями skills, коренями команд Claude, типовими значеннями Claude package `settings.json`, +типовими значеннями Claude package LSP і підтримуваними наборами хуків, коли макет відповідає очікуванням середовища виконання OpenClaw. Кожен власний Plugin OpenClaw **повинен** постачатися з файлом `openclaw.plugin.json` у **корені plugin**. OpenClaw використовує цей маніфест для валідації конфігурації -**без виконання коду plugin**. Відсутні або невалідні маніфести вважаються +**без виконання коду plugin**. Відсутні або некоректні маніфести вважаються помилками plugin і блокують валідацію конфігурації. -Див. повний посібник із системи Plugin: [Plugins](/uk/tools/plugin). -Для власної моделі capability і поточних рекомендацій щодо зовнішньої сумісності: -[Модель capability](/uk/plugins/architecture#public-capability-model). +Див. повний посібник із системи plugin: [Plugins](/uk/tools/plugin). +Щодо власної моделі можливостей і актуальних рекомендацій із зовнішньої сумісності: +[Модель можливостей](/uk/plugins/architecture#public-capability-model). ## Що робить цей файл -`openclaw.plugin.json` — це метадані, які OpenClaw читає до завантаження коду +`openclaw.plugin.json` — це метадані, які OpenClaw читає перед завантаженням коду вашого plugin. Використовуйте його для: -- ідентифікації plugin +- ідентичності plugin - валідації конфігурації - метаданих автентифікації та онбордингу, які мають бути доступні без запуску середовища виконання plugin -- легких підказок активації, які поверхні площини керування можуть перевіряти до +- недорогих підказок активації, які можуть перевіряти поверхні площини керування до завантаження середовища виконання -- легких дескрипторів налаштування, які поверхні налаштування/онбордингу можуть перевіряти до +- недорогих дескрипторів налаштування, які можуть перевіряти поверхні налаштування/онбордингу до завантаження середовища виконання -- метаданих псевдонімів та автоувімкнення, які мають визначатися до завантаження середовища виконання plugin +- метаданих псевдонімів і автоувімкнення, які мають визначатися до завантаження середовища виконання plugin - скорочених метаданих належності до сімейства моделей, які мають автоматично активувати plugin до завантаження середовища виконання -- статичних знімків належності capability, що використовуються для bundled wiring сумісності та +- статичних знімків належності можливостей, що використовуються для вбудованої compat-обв’язки та покриття контрактів -- легких метаданих виконувача QA, які спільний хост `openclaw qa` може перевіряти +- недорогих метаданих засобу запуску QA, які спільний хост `openclaw qa` може перевіряти до завантаження середовища виконання plugin -- метаданих конфігурації, специфічних для channel, які мають об’єднуватися з поверхнями каталогу та валідації +- метаданих конфігурації, специфічних для каналів, які мають об’єднуватися з поверхнями каталогу та валідації без завантаження середовища виконання -- підказок UI для конфігурації +- підказок інтерфейсу конфігурації Не використовуйте його для: @@ -75,7 +75,7 @@ OpenClaw також автоматично виявляє ці макети bund - оголошення точок входу коду - метаданих встановлення npm -Це належить вашому коду plugin і `package.json`. +Це належить до коду вашого plugin і `package.json`. ## Мінімальний приклад @@ -103,6 +103,7 @@ OpenClaw також автоматично виявляє ці макети bund "modelPrefixes": ["router-"] }, "cliBackends": ["openrouter-cli"], + "syntheticAuthRefs": ["openrouter-cli"], "providerAuthEnvVars": { "openrouter": ["OPENROUTER_API_KEY"] }, @@ -148,62 +149,63 @@ OpenClaw також автоматично виявляє ці макети bund ## Довідник полів верхнього рівня -| Поле | Обов’язкове | Тип | Що це означає | +| Поле | Обов’язкове | Тип | Що воно означає | | ----------------------------------- | ----------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `id` | Так | `string` | Канонічний ідентифікатор plugin. Це ідентифікатор, який використовується в `plugins.entries.`. | -| `configSchema` | Так | `object` | Вбудована схема JSON для конфігурації цього plugin. | -| `enabledByDefault` | Ні | `true` | Позначає bundled plugin як увімкнений типово. Не вказуйте його або задайте будь-яке значення, відмінне від `true`, щоб plugin залишався вимкненим типово. | +| `configSchema` | Так | `object` | Вбудована JSON Schema для конфігурації цього plugin. | +| `enabledByDefault` | Ні | `true` | Позначає вбудований 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` | Легкі метадані змінних середовища для автентифікації provider, які OpenClaw може перевіряти без завантаження коду plugin. | -| `providerAuthAliases` | Ні | `Record` | Ідентифікатори provider, які мають повторно використовувати інший ідентифікатор provider для пошуку автентифікації, наприклад provider для кодування, що спільно використовує API key та профілі автентифікації базового provider. | -| `channelEnvVars` | Ні | `Record` | Легкі метадані змінних середовища для 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` | Метадані конфігурації channel, що належать маніфесту та об’єднуються з поверхнями виявлення й валідації до завантаження середовища виконання. | +| `autoEnableWhenConfiguredProviders` | Ні | `string[]` | Ідентифікатори providers, які мають автоматично вмикати цей plugin, коли в них згадуються auth, config або посилання на моделі. | +| `kind` | Ні | `"memory"` \| `"context-engine"` | Оголошує взаємовиключний тип plugin, що використовується `plugins.slots.*`. | +| `channels` | Ні | `string[]` | Ідентифікатори каналів, якими володіє цей plugin. Використовується для виявлення та валідації конфігурації. | +| `providers` | Ні | `string[]` | Ідентифікатори providers, якими володіє цей plugin. | +| `modelSupport` | Ні | `object` | Скорочені метадані сімейств моделей, що належать маніфесту та використовуються для автоматичного завантаження plugin до запуску середовища виконання. | +| `cliBackends` | Ні | `string[]` | Ідентифікатори CLI backend, якими володіє цей plugin. Використовується для автоматичної активації під час запуску на основі явних посилань у конфігурації. | +| `syntheticAuthRefs` | Ні | `string[]` | Посилання на provider або CLI backend, для яких слід перевіряти синтетичний auth-хук plugin під час холодного виявлення моделей до завантаження середовища виконання. | +| `commandAliases` | Ні | `object[]` | Імена команд, якими володіє цей plugin і які мають створювати діагностику конфігурації та CLI з урахуванням plugin до завантаження середовища виконання. | +| `providerAuthEnvVars` | Ні | `Record` | Недорогі env-метадані auth provider, які OpenClaw може перевіряти без завантаження коду plugin. | +| `providerAuthAliases` | Ні | `Record` | Ідентифікатори providers, які мають повторно використовувати інший ідентифікатор provider для пошуку auth, наприклад provider для кодування, який спільно використовує API key і профілі auth базового provider. | +| `channelEnvVars` | Ні | `Record` | Недорогі env-метадані каналів, які OpenClaw може перевіряти без завантаження коду plugin. Використовуйте це для поверхонь налаштування або auth каналів на основі env, які мають бачити загальні помічники запуску/конфігурації. | +| `providerAuthChoices` | Ні | `object[]` | Недорогі метадані варіантів auth для селекторів онбордингу, визначення пріоритетного provider і простого зв’язування з CLI flags. | +| `activation` | Ні | `object` | Недорогі підказки активації для завантаження, що запускається providers, командами, каналами, маршрутами й можливостями. Це лише метадані; фактична поведінка все одно належить середовищу виконання plugin. | +| `setup` | Ні | `object` | Недорогі дескриптори налаштування/онбордингу, які поверхні виявлення та налаштування можуть перевіряти без завантаження середовища виконання plugin. | +| `qaRunners` | Ні | `object[]` | Недорогі дескриптори засобів запуску QA, які використовує спільний хост `openclaw qa` до завантаження середовища виконання plugin. | +| `contracts` | Ні | `object` | Статичний знімок можливостей вбудованого пакета для speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search і належності інструментів. | +| `channelConfigs` | Ні | `Record` | Метадані конфігурації каналів, що належать маніфесту та об’єднуються з поверхнями виявлення й валідації до завантаження середовища виконання. | | `skills` | Ні | `string[]` | Каталоги Skills для завантаження, відносно кореня plugin. | -| `name` | Ні | `string` | Зрозуміла людині назва plugin. | -| `description` | Ні | `string` | Короткий опис, що показується на поверхнях plugin. | +| `name` | Ні | `string` | Зрозуміла для людини назва plugin. | +| `description` | Ні | `string` | Короткий опис, який показується в поверхнях plugin. | | `version` | Ні | `string` | Інформаційна версія plugin. | -| `uiHints` | Ні | `Record` | Підписи UI, заповнювачі та підказки щодо чутливості для полів конфігурації. | +| `uiHints` | Ні | `Record` | Мітки інтерфейсу, плейсхолдери та підказки щодо чутливості для полів конфігурації. | ## Довідник `providerAuthChoices` -Кожен запис `providerAuthChoices` описує один варіант онбордингу або автентифікації. +Кожен запис `providerAuthChoices` описує один варіант онбордингу або auth. OpenClaw читає це до завантаження середовища виконання provider. -| Поле | Обов’язкове | Тип | Що це означає | -| -------------------- | ----------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| `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 `. | -| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. | -| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має з’являтися цей варіант. Якщо не вказано, за замовчуванням це `["text-inference"]`. | +| Поле | Обов’язкове | Тип | Що воно означає | +| --------------------- | ----------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `provider` | Так | `string` | Ідентифікатор provider, до якого належить цей варіант. | +| `method` | Так | `string` | Ідентифікатор методу auth, до якого слід спрямовувати. | +| `choiceId` | Так | `string` | Стабільний ідентифікатор варіанта auth, який використовується потоками онбордингу та CLI. | +| `choiceLabel` | Ні | `string` | Мітка для користувача. Якщо поле не вказано, OpenClaw використовує `choiceId`. | +| `choiceHint` | Ні | `string` | Короткий допоміжний текст для селектора. | +| `assistantPriority` | Ні | `number` | Менші значення сортуються раніше в інтерактивних селекторах, керованих асистентом. | +| `assistantVisibility` | Ні | `"visible"` \| `"manual-only"` | Приховує варіант із селекторів асистента, але все одно дозволяє ручний вибір через CLI. | +| `deprecatedChoiceIds` | Ні | `string[]` | Застарілі ідентифікатори варіантів, які мають перенаправляти користувачів на цей замінний варіант. | +| `groupId` | Ні | `string` | Необов’язковий ідентифікатор групи для групування пов’язаних варіантів. | +| `groupLabel` | Ні | `string` | Мітка цієї групи для користувача. | +| `groupHint` | Ні | `string` | Короткий допоміжний текст для групи. | +| `optionKey` | Ні | `string` | Внутрішній ключ опції для простих потоків auth з одним flag. | +| `cliFlag` | Ні | `string` | Назва CLI flag, наприклад `--openrouter-api-key`. | +| `cliOption` | Ні | `string` | Повна форма CLI option, наприклад `--openrouter-api-key `. | +| `cliDescription` | Ні | `string` | Опис, що використовується в довідці CLI. | +| `onboardingScopes` | Ні | `Array<"text-inference" \| "image-generation">` | На яких поверхнях онбордингу має відображатися цей варіант. Якщо поле не вказано, типово використовується `["text-inference"]`. | ## Довідник `commandAliases` -Використовуйте `commandAliases`, коли plugin володіє назвою команди середовища виконання, яку користувачі можуть -помилково вказати в `plugins.allow` або спробувати запустити як кореневу команду CLI. OpenClaw +Використовуйте `commandAliases`, коли plugin володіє назвою runtime-команди, яку користувачі можуть +помилково вказати в `plugins.allow` або спробувати запустити як кореневу CLI-команду. OpenClaw використовує ці метадані для діагностики без імпорту коду середовища виконання plugin. ```json @@ -218,11 +220,11 @@ OpenClaw читає це до завантаження середовища ви } ``` -| Поле | Обов’язкове | Тип | Що це означає | +| Поле | Обов’язкове | Тип | Що воно означає | | ------------ | ----------- | ----------------- | -------------------------------------------------------------------------- | | `name` | Так | `string` | Назва команди, яка належить цьому plugin. | -| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу команду CLI. | -| `cliCommand` | Ні | `string` | Пов’язана коренева команда CLI, яку слід запропонувати для операцій CLI, якщо вона існує. | +| `kind` | Ні | `"runtime-slash"` | Позначає псевдонім як slash-команду чату, а не як кореневу CLI-команду. | +| `cliCommand` | Ні | `string` | Пов’язана коренева CLI-команда, яку слід рекомендувати для CLI-операцій, якщо вона існує. | ## Довідник `activation` @@ -231,9 +233,9 @@ OpenClaw читає це до завантаження середовища ви ## Довідник `qaRunners` -Використовуйте `qaRunners`, коли plugin додає один або кілька виконувачів транспорту в межах -спільного кореня `openclaw qa`. Зберігайте ці метадані легкими й статичними; середовище виконання plugin -як і раніше відповідає за фактичну реєстрацію CLI через легку +Використовуйте `qaRunners`, коли plugin додає один або кілька транспортних засобів запуску під +спільним коренем `openclaw qa`. Зберігайте ці метадані недорогими й статичними; фактичною +реєстрацією CLI усе одно керує середовище виконання plugin через легковагову поверхню `runtime-api.ts`, яка експортує `qaRunnerCliRegistrations`. ```json @@ -247,16 +249,16 @@ OpenClaw читає це до завантаження середовища ви } ``` -| Поле | Обов’язкове | Тип | Що це означає | -| ------------- | ----------- | -------- | ---------------------------------------------------------------------- | -| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. | -| `description` | Ні | `string` | Резервний текст довідки, що використовується, коли спільному хосту потрібна stub-команда. | +| Поле | Обов’язкове | Тип | Що воно означає | +| ------------- | ----------- | -------- | ------------------------------------------------------------------- | +| `commandName` | Так | `string` | Підкоманда, змонтована під `openclaw qa`, наприклад `matrix`. | +| `description` | Ні | `string` | Резервний текст довідки, який використовується, коли спільному хосту потрібна stub-команда. | -Цей блок — лише метадані. Він не реєструє поведінку середовища виконання і -не замінює `register(...)`, `setupEntry` або інші точки входу середовища виконання/plugin. +Цей блок — лише метадані. Він не реєструє поведінку runtime і не +замінює `register(...)`, `setupEntry` або інші точки входу runtime/plugin. Поточні споживачі використовують його як підказку для звуження перед ширшим завантаженням plugin, тому -відсутність метаданих активації зазвичай впливає лише на продуктивність; це не має -змінювати коректність, доки все ще існують застарілі резервні механізми володіння маніфестом. +відсутність метаданих активації зазвичай лише впливає на продуктивність; вона не повинна +змінювати коректність, доки ще існують застарілі резервні механізми належності маніфесту. ```json { @@ -270,27 +272,27 @@ OpenClaw читає це до завантаження середовища ви } ``` -| Поле | Обов’язкове | Тип | Що це означає | -| ---------------- | ----------- | ---------------------------------------------------- | ------------------------------------------------------------------- | -| `onProviders` | Ні | `string[]` | Ідентифікатори provider, які мають активувати цей plugin за запитом. | -| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей plugin. | -| `onChannels` | Ні | `string[]` | Ідентифікатори channel, які мають активувати цей plugin. | -| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. | -| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки capability, що використовуються для планування активації площини керування. | +| Поле | Обов’язкове | Тип | Що воно означає | +| ---------------- | ----------- | ---------------------------------------------------- | -------------------------------------------------------------- | +| `onProviders` | Ні | `string[]` | Ідентифікатори providers, які мають активувати цей plugin на запит. | +| `onCommands` | Ні | `string[]` | Ідентифікатори команд, які мають активувати цей plugin. | +| `onChannels` | Ні | `string[]` | Ідентифікатори каналів, які мають активувати цей plugin. | +| `onRoutes` | Ні | `string[]` | Типи маршрутів, які мають активувати цей plugin. | +| `onCapabilities` | Ні | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Загальні підказки можливостей, що використовуються для планування активації площини керування. | Поточні активні споживачі: -- планування CLI, що запускається командою, використовує застарілий резервний механізм +- CLI-планування, що запускається командами, використовує резервний механізм `commandAliases[].cliCommand` або `commandAliases[].name` -- планування налаштування/channel, що запускається channel, використовує застарілий резервний механізм належності - `channels[]`, коли явні метадані активації channel відсутні -- планування налаштування/середовища виконання, що запускається provider, використовує застарілий резервний механізм - `providers[]` і належності верхньорівневих `cliBackends[]`, коли явні метадані - активації provider відсутні +- планування налаштування/каналів, що запускається каналами, використовує резервний механізм застарілої + належності `channels[]`, коли явні метадані активації каналу відсутні +- планування налаштування/runtime, що запускається providers, використовує резервний механізм застарілої + належності `providers[]` і верхньорівневого `cliBackends[]`, коли явні метадані активації provider + відсутні ## Довідник `setup` -Використовуйте `setup`, коли поверхням налаштування й онбордингу потрібні недорогі метадані plugin, якими він володіє, +Використовуйте `setup`, коли поверхням налаштування та онбордингу потрібні недорогі метадані, що належать plugin, до завантаження середовища виконання. ```json @@ -310,41 +312,41 @@ OpenClaw читає це до завантаження середовища ви } ``` -Верхньорівневе `cliBackends` залишається валідним і, як і раніше, описує backend-и -інференсу CLI. `setup.cliBackends` — це поверхня дескрипторів, специфічна для setup, -для потоків площини керування/setup, яка має залишатися лише метаданими. +Верхньорівневе `cliBackends` залишається чинним і надалі описує CLI backend висновку. +`setup.cliBackends` — це поверхня дескрипторів, специфічна для налаштування, для +потоків площини керування/налаштування, які мають залишатися лише метаданими. -За наявності `setup.providers` і `setup.cliBackends` є бажаною поверхнею пошуку -для виявлення setup на основі дескрипторів. Якщо дескриптор лише звужує коло -потенційних plugin, а setup все ще потребує багатших hook середовища виконання під час setup, -установіть `requiresRuntime: true` і залиште `setup-api` як +Якщо вони присутні, `setup.providers` і `setup.cliBackends` є пріоритетною +поверхнею пошуку на основі дескрипторів для виявлення налаштування. Якщо дескриптор лише +звужує коло кандидатів plugin, а налаштуванню все одно потрібні багатші runtime-хуки під час налаштування, +встановіть `requiresRuntime: true` і залиште `setup-api` як резервний шлях виконання. -Оскільки пошук setup може виконувати код plugin `setup-api`, нормалізовані -значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед -виявлених plugin. Неоднозначна належність завершується безпечною відмовою, а не вибором +Оскільки пошук налаштування може виконувати код `setup-api`, що належить plugin, +нормалізовані значення `setup.providers[].id` і `setup.cliBackends[]` мають залишатися унікальними серед +виявлених plugins. Неоднозначна належність призводить до безпечної відмови замість вибору переможця за порядком виявлення. ### Довідник `setup.providers` -| Поле | Обов’язкове | Тип | Що це означає | +| Поле | Обов’язкове | Тип | Що воно означає | | ------------- | ----------- | ---------- | ------------------------------------------------------------------------------------- | -| `id` | Так | `string` | Ідентифікатор provider, який надається під час setup або онбордингу. Підтримуйте глобальну унікальність нормалізованих ідентифікаторів. | -| `authMethods` | Ні | `string[]` | Ідентифікатори методів setup/автентифікації, які цей provider підтримує без завантаження повного середовища виконання. | -| `envVars` | Ні | `string[]` | Змінні середовища, які загальні поверхні setup/status можуть перевіряти до завантаження середовища виконання plugin. | +| `id` | Так | `string` | Ідентифікатор provider, який надається під час налаштування або онбордингу. Нормалізовані ідентифікатори мають бути глобально унікальними. | +| `authMethods` | Ні | `string[]` | Ідентифікатори методів налаштування/auth, які цей provider підтримує без завантаження повного runtime. | +| `envVars` | Ні | `string[]` | Змінні env, які загальні поверхні налаштування/статусу можуть перевіряти до завантаження runtime plugin. | ### Поля `setup` -| Поле | Обов’язкове | Тип | Що це означає | +| Поле | Обов’язкове | Тип | Що воно означає | | ------------------ | ----------- | ---------- | ---------------------------------------------------------------------------------------------------- | -| `providers` | Ні | `object[]` | Дескриптори setup provider, доступні під час setup та онбордингу. | -| `cliBackends` | Ні | `string[]` | Ідентифікатори backend-ів на етапі setup, що використовуються для пошуку setup на основі дескрипторів. Підтримуйте глобальну унікальність нормалізованих ідентифікаторів. | -| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, якими володіє поверхня setup цього plugin. | -| `requiresRuntime` | Ні | `boolean` | Чи потребує setup виконання `setup-api` після пошуку за дескриптором. | +| `providers` | Ні | `object[]` | Дескриптори налаштування providers, які надаються під час налаштування та онбордингу. | +| `cliBackends` | Ні | `string[]` | Ідентифікатори backend для часу налаштування, що використовуються для пошуку налаштування за принципом descriptor-first. Нормалізовані ідентифікатори мають бути глобально унікальними. | +| `configMigrations` | Ні | `string[]` | Ідентифікатори міграцій конфігурації, якими володіє поверхня налаштування цього plugin. | +| `requiresRuntime` | Ні | `boolean` | Чи потребує налаштування виконання `setup-api` після пошуку за дескриптором. | ## Довідник `uiHints` -`uiHints` — це мапа від назв полів конфігурації до невеликих підказок рендерингу. +`uiHints` — це мапа від назв полів конфігурації до невеликих підказок для рендерингу. ```json { @@ -359,21 +361,21 @@ OpenClaw читає це до завантаження середовища ви } ``` -Кожна підказка поля може містити: +Кожна підказка для поля може містити: -| Поле | Тип | Що це означає | +| Поле | Тип | Що воно означає | | ------------- | ---------- | -------------------------------------- | -| `label` | `string` | Підпис поля для користувача. | +| `label` | `string` | Мітка поля для користувача. | | `help` | `string` | Короткий допоміжний текст. | -| `tags` | `string[]` | Необов’язкові теги UI. | +| `tags` | `string[]` | Необов’язкові UI-теги. | | `advanced` | `boolean` | Позначає поле як розширене. | | `sensitive` | `boolean` | Позначає поле як секретне або чутливе. | -| `placeholder` | `string` | Текст-заповнювач для полів форми. | +| `placeholder` | `string` | Текст-плейсхолдер для полів форми. | ## Довідник `contracts` -Використовуйте `contracts` лише для статичних метаданих належності capability, які OpenClaw може -читати без імпорту середовища виконання plugin. +Використовуйте `contracts` лише для статичних метаданих належності можливостей, які OpenClaw може +прочитати без імпорту runtime plugin. ```json { @@ -391,24 +393,24 @@ OpenClaw читає це до завантаження середовища ви } ``` -Кожен список необов’язковий: +Кожен список є необов’язковим: -| Поле | Тип | Що це означає | +| Поле | Тип | Що воно означає | | -------------------------------- | ---------- | ----------------------------------------------------------- | -| `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-перевірок контрактів. | +| `speechProviders` | `string[]` | Ідентифікатори speech providers, якими володіє цей plugin. | +| `realtimeTranscriptionProviders` | `string[]` | Ідентифікатори providers для транскрипції в реальному часі, якими володіє цей plugin. | +| `realtimeVoiceProviders` | `string[]` | Ідентифікатори providers для голосу в реальному часі, якими володіє цей plugin. | +| `mediaUnderstandingProviders` | `string[]` | Ідентифікатори providers для media-understanding, якими володіє цей plugin. | +| `imageGenerationProviders` | `string[]` | Ідентифікатори providers для image-generation, якими володіє цей plugin. | +| `videoGenerationProviders` | `string[]` | Ідентифікатори providers для video-generation, якими володіє цей plugin. | +| `webFetchProviders` | `string[]` | Ідентифікатори providers для web-fetch, якими володіє цей plugin. | +| `webSearchProviders` | `string[]` | Ідентифікатори providers для web search, якими володіє цей plugin. | +| `tools` | `string[]` | Назви інструментів агента, якими володіє цей plugin, для перевірок контрактів вбудованих пакетів. | ## Довідник `channelConfigs` -Використовуйте `channelConfigs`, коли channel plugin потребує недорогих метаданих конфігурації -до завантаження середовища виконання. +Використовуйте `channelConfigs`, коли channel plugin потребує недорогих метаданих конфігурації до +завантаження runtime. ```json { @@ -435,21 +437,20 @@ OpenClaw читає це до завантаження середовища ви } ``` -Кожен запис channel може містити: +Кожен запис каналу може містити: -| Поле | Тип | Що це означає | -| ------------- | ------------------------ | -------------------------------------------------------------------------------------------- | -| `schema` | `object` | Схема JSON для `channels.`. Обов’язкова для кожного оголошеного запису конфігурації channel. | -| `uiHints` | `Record` | Необов’язкові підписи UI/заповнювачі/підказки чутливості для цього розділу конфігурації channel. | -| `label` | `string` | Підпис channel, що об’єднується з поверхнями вибору та інспектування, коли метадані середовища виконання ще не готові. | -| `description` | `string` | Короткий опис channel для поверхонь інспектування та каталогу. | -| `preferOver` | `string[]` | Ідентифікатори застарілих plugin або plugin із нижчим пріоритетом, які цей channel має перевершувати на поверхнях вибору. | +| Поле | Тип | Що воно означає | +| ------------- | ------------------------ | ---------------------------------------------------------------------------------------- | +| `schema` | `object` | JSON Schema для `channels.`. Обов’язкове для кожного оголошеного запису конфігурації каналу. | +| `uiHints` | `Record` | Необов’язкові UI-мітки/плейсхолдери/підказки чутливості для цього розділу конфігурації каналу. | +| `label` | `string` | Мітка каналу, що об’єднується з поверхнями вибору та перегляду, коли метадані runtime ще не готові. | +| `description` | `string` | Короткий опис каналу для поверхонь перегляду та каталогу. | +| `preferOver` | `string[]` | Застарілі або нижчопріоритетні ідентифікатори plugins, які цей канал має випереджати на поверхнях вибору. | ## Довідник `modelSupport` -Використовуйте `modelSupport`, коли OpenClaw має виводити ваш provider plugin із -скорочених ідентифікаторів моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження -середовища виконання plugin. +Використовуйте `modelSupport`, коли OpenClaw має визначати ваш provider plugin із +скорочених ідентифікаторів моделей, таких як `gpt-5.4` або `claude-sonnet-4.6`, до завантаження runtime plugin. ```json { @@ -460,75 +461,76 @@ OpenClaw читає це до завантаження середовища ви } ``` -OpenClaw застосовує такий пріоритет: +OpenClaw застосовує таку пріоритетність: - явні посилання `provider/model` використовують метадані маніфесту `providers`, що належать власнику -- `modelPatterns` мають пріоритет над `modelPrefixes` -- якщо збігаються один небудований plugin і один bundled plugin, перемагає небудований +- `modelPatterns` мають вищий пріоритет за `modelPrefixes` +- якщо збігаються один невбудований plugin і один вбудований plugin, перемагає невбудований plugin -- решта неоднозначностей ігноруються, доки користувач або конфігурація не вкажуть provider +- решта неоднозначностей ігнорується, доки користувач або конфігурація не вкажуть provider Поля: -| Поле | Тип | Що це означає | -| --------------- | ---------- | ------------------------------------------------------------------------------------ | +| Поле | Тип | Що воно означає | +| --------------- | ---------- | ---------------------------------------------------------------------------- | | `modelPrefixes` | `string[]` | Префікси, що зіставляються через `startsWith` зі скороченими ідентифікаторами моделей. | | `modelPatterns` | `string[]` | Джерела regex, що зіставляються зі скороченими ідентифікаторами моделей після видалення суфікса профілю. | -Застарілі ключі capability верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб +Застарілі ключі можливостей верхнього рівня не рекомендовані. Використовуйте `openclaw doctor --fix`, щоб перемістити `speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders` і `webSearchProviders` до `contracts`; звичайне -завантаження маніфесту більше не трактує ці поля верхнього рівня як -належність capability. +завантаження маніфесту більше не розглядає ці поля верхнього рівня як +належність можливостей. -## Маніфест і `package.json` +## Маніфест і package.json -Ці два файли виконують різні ролі: +Ці два файли виконують різні завдання: -| Файл | Для чого використовувати | +| Файл | Для чого його використовувати | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані варіантів автентифікації та підказки UI, які мають існувати до запуску коду plugin | -| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмежень установлення, setup або метаданих каталогу | +| `openclaw.plugin.json` | Виявлення, валідація конфігурації, метадані вибору auth і підказки інтерфейсу, які мають існувати до запуску коду plugin | +| `package.json` | Метадані npm, встановлення залежностей і блок `openclaw`, що використовується для точок входу, обмеження встановлення, налаштування або метаданих каталогу | -Якщо ви не впевнені, куди має належати певний фрагмент метаданих, користуйтеся таким правилом: +Якщо ви не впевнені, куди належить певний фрагмент метаданих, користуйтеся таким правилом: - якщо OpenClaw має знати це до завантаження коду plugin, помістіть це в `openclaw.plugin.json` - якщо це стосується пакування, файлів точок входу або поведінки встановлення npm, помістіть це в `package.json` ### Поля `package.json`, які впливають на виявлення -Деякі метадані plugin до середовища виконання навмисно розміщуються в `package.json` у блоці +Деякі метадані plugin до запуску runtime навмисно розміщені в `package.json` у блоці `openclaw`, а не в `openclaw.plugin.json`. Важливі приклади: -| Поле | Що це означає | +| Поле | Що воно означає | | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| `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.extensions` | Оголошує власні точки входу plugin. | +| `openclaw.setupEntry` | Легка точка входу лише для налаштування, що використовується під час онбордингу та відкладеного запуску каналу. | +| `openclaw.channel` | Недорогі метадані каталогу каналів, як-от мітки, шляхи до документації, псевдоніми та текст вибору. | +| `openclaw.channel.configuredState` | Недорогі метадані перевірки налаштованого стану, які можуть відповісти на запитання «чи вже існує налаштування лише через env?» без завантаження повного runtime каналу. | +| `openclaw.channel.persistedAuthState` | Недорогі метадані перевірки збереженого auth-стану, які можуть відповісти на запитання «чи вже є щось із виконаним входом?» без завантаження повного runtime каналу. | +| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Підказки для встановлення/оновлення вбудованих і зовнішньо опублікованих plugins. | +| `openclaw.install.defaultChoice` | Бажаний шлях встановлення, коли доступно кілька джерел встановлення. | +| `openclaw.install.minHostVersion` | Мінімальна підтримувана версія хоста OpenClaw, із semver-нижньою межею на кшталт `>=2026.3.22`. | +| `openclaw.install.allowInvalidConfigRecovery` | Дозволяє вузький шлях відновлення перевстановлення вбудованого plugin, коли конфігурація недійсна. | +| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Дозволяє поверхням каналу лише для налаштування завантажуватися до повного plugin каналу під час запуску. | -`openclaw.install.minHostVersion` застосовується під час установлення та завантаження -реєстру маніфестів. Невалідні значення відхиляються; новіші, але валідні значення пропускають +`openclaw.install.minHostVersion` примусово перевіряється під час встановлення та +завантаження реєстру маніфестів. Недійсні значення відхиляються; новіші, але коректні значення пропускають plugin на старіших хостах. -`openclaw.install.allowInvalidConfigRecovery` навмисно має вузьке застосування. Воно -не робить довільні зламані конфігурації придатними для встановлення. Наразі воно лише дозволяє -потокам установлення відновлюватися після певних застарілих збоїв оновлення bundled plugin, наприклад -відсутнього шляху bundled plugin або застарілого запису `channels.` для того самого -bundled plugin. Непов’язані помилки конфігурації все одно блокують установлення та спрямовують -операторів до `openclaw doctor --fix`. +`openclaw.install.allowInvalidConfigRecovery` є навмисно вузьким. Воно +не робить довільно зламані конфігурації придатними до встановлення. Наразі воно лише дозволяє +потокам встановлення відновлюватися після певних застарілих збоїв оновлення вбудованих plugins, таких як +відсутній шлях до вбудованого plugin або застарілий запис `channels.` для того самого +вбудованого plugin. Непов’язані помилки конфігурації все одно блокують встановлення й спрямовують операторів +до `openclaw doctor --fix`. -`openclaw.channel.persistedAuthState` — це метадані пакета для невеликого модуля перевірки: +`openclaw.channel.persistedAuthState` — це метадані package для маленького +модуля перевірки: ```json { @@ -544,10 +546,9 @@ bundled plugin. Непов’язані помилки конфігурації } ``` -Використовуйте це, коли потокам setup, doctor або configured-state потрібна недорога -перевірка автентифікації з відповіддю так/ні до завантаження повного channel plugin. Цільовий -експорт має бути невеликою функцією, яка читає лише збережений стан; не спрямовуйте її через повний -barrel середовища виконання channel. +Використовуйте це, коли потокам налаштування, doctor або configured-state потрібна недорога +перевірка auth у форматі так/ні до завантаження повного plugin каналу. Цільовий експорт має бути невеликою +функцією, яка читає лише збережений стан; не спрямовуйте її через повний barrel runtime каналу. `openclaw.channel.configuredState` має таку саму форму для недорогих перевірок налаштованого стану лише через env: @@ -566,60 +567,62 @@ barrel середовища виконання channel. } ``` -Використовуйте це, коли channel може визначити налаштований стан із env або інших невеликих -вхідних даних поза середовищем виконання. Якщо перевірка потребує повного розв’язання конфігурації або реального -середовища виконання channel, натомість залишайте цю логіку в hook `config.hasConfiguredState` -plugin. +Використовуйте це, коли канал може визначити налаштований стан на основі env або інших невеликих +вхідних даних, не пов’язаних із runtime. Якщо для перевірки потрібне повне визначення конфігурації або реальний +runtime каналу, натомість залиште цю логіку в хуку plugin `config.hasConfiguredState`. -## Вимоги до схеми JSON +## Вимоги до JSON Schema -- **Кожен plugin повинен постачатися зі схемою JSON**, навіть якщо він не приймає жодної конфігурації. +- **Кожен plugin повинен постачатися з JSON Schema**, навіть якщо він не приймає конфігурацію. - Порожня схема допустима (наприклад, `{ "type": "object", "additionalProperties": false }`). -- Схеми проходять валідацію під час читання/запису конфігурації, а не під час виконання. +- Схеми проходять валідацію під час читання/запису конфігурації, а не під час runtime. ## Поведінка валідації -- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор channel не оголошено +- Невідомі ключі `channels.*` є **помилками**, якщо тільки ідентифікатор каналу не оголошено в маніфесті plugin. - `plugins.entries.`, `plugins.allow`, `plugins.deny` і `plugins.slots.*` - повинні посилатися на **виявлювані** ідентифікатори plugin. Невідомі ідентифікатори є **помилками**. -- Якщо plugin установлено, але він має зламаний або відсутній маніфест чи схему, - валідація завершується помилкою, і Doctor повідомляє про помилку plugin. -- Якщо конфігурація plugin існує, але plugin **вимкнено**, конфігурація зберігається, і - у Doctor + журналах з’являється **попередження**. + мають посилатися на **виявлювані** ідентифікатори plugins. Невідомі ідентифікатори є **помилками**. +- Якщо plugin встановлено, але його маніфест або схема пошкоджені чи відсутні, + валідація завершується помилкою, а Doctor повідомляє про помилку plugin. +- Якщо конфігурація plugin існує, але plugin **вимкнений**, конфігурація зберігається, і + в Doctor + журналах відображається **попередження**. -Див. [Довідник із конфігурації](/uk/gateway/configuration), щоб переглянути повну схему `plugins.*`. +Див. [Довідник із конфігурації](/uk/gateway/configuration), щоб ознайомитися з повною схемою `plugins.*`. ## Примітки -- Маніфест **обов’язковий для власних Plugin OpenClaw**, зокрема для завантаження з локальної файлової системи. -- Середовище виконання все одно завантажує модуль plugin окремо; маніфест призначений лише для - виявлення та валідації. -- Власні маніфести розбираються за допомогою JSON5, тому коментарі, коми в кінці списку та - ключі без лапок допускаються, якщо кінцеве значення все одно залишається об’єктом. +- Маніфест **обов’язковий для власних Plugin OpenClaw**, включно із завантаженням із локальної файлової системи. +- Runtime як і раніше завантажує модуль plugin окремо; маніфест призначений лише для + виявлення + валідації. +- Власні маніфести розбираються за допомогою JSON5, тому коментарі, кінцеві коми та + ключі без лапок допускаються, якщо кінцеве значення все ще є об’єктом. - Завантажувач маніфесту читає лише задокументовані поля маніфесту. Уникайте додавання - власних ключів верхнього рівня сюди. -- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок автентифікації, валідації - маркерів env і подібних поверхонь автентифікації provider, які не повинні запускати - середовище виконання plugin лише для перевірки назв env. -- `providerAuthAliases` дає змогу варіантам provider повторно використовувати змінні середовища автентифікації, - профілі автентифікації, автентифікацію на основі конфігурації та варіант онбордингу - з API key іншого provider без жорсткого кодування цього зв’язку в core. -- `channelEnvVars` — це недорогий шлях метаданих для резервного використання env оболонки, підказок - setup і подібних поверхонь channel, які не повинні запускати середовище виконання plugin + тут користувацьких ключів верхнього рівня. +- `providerAuthEnvVars` — це недорогий шлях метаданих для перевірок auth, валідації + env-маркерів і подібних поверхонь auth provider, які не повинні запускати runtime plugin лише для перевірки назв env. -- `providerAuthChoices` — це недорогий шлях метаданих для засобів вибору варіантів автентифікації, - розв’язання `--auth-choice`, зіставлення бажаного provider і простої реєстрації - прапорців CLI для онбордингу до завантаження середовища виконання provider. Для метаданих - майстра середовища виконання, що потребують коду provider, див. - [Hook середовища виконання provider](/uk/plugins/architecture#provider-runtime-hooks). -- Ексклюзивні типи plugin вибираються через `plugins.slots.*`. +- `providerAuthAliases` дозволяє варіантам provider повторно використовувати auth-змінні env, + профілі auth, auth на основі конфігурації та варіант онбордингу з API key іншого provider + без жорсткого кодування цього зв’язку в core. +- `syntheticAuthRefs` — це недорогий шлях метаданих для синтетичних + auth-хуків, що належать provider і мають бути видимими для холодного виявлення моделей до того, як з’явиться реєстр + runtime. Перелічуйте лише ті посилання, чий runtime provider або CLI backend справді + реалізує `resolveSyntheticAuth`. +- `channelEnvVars` — це недорогий шлях метаданих для резервного використання env оболонки, запитів налаштування + та подібних поверхонь каналів, які не повинні запускати runtime plugin + лише для перевірки назв env. +- `providerAuthChoices` — це недорогий шлях метаданих для селекторів варіантів auth, + визначення `--auth-choice`, зіставлення пріоритетного provider і простої реєстрації CLI flag під час онбордингу + до завантаження runtime provider. Метадані runtime wizard, які потребують коду provider, див. у + [Хуки runtime provider](/uk/plugins/architecture#provider-runtime-hooks). +- Взаємовиключні типи plugins вибираються через `plugins.slots.*`. - `kind: "memory"` вибирається через `plugins.slots.memory`. - `kind: "context-engine"` вибирається через `plugins.slots.contextEngine` (типово: вбудований `legacy`). - `channels`, `providers`, `cliBackends` і `skills` можна не вказувати, якщо plugin їх не потребує. -- Якщо ваш plugin залежить від власних модулів, задокументуйте кроки збірки та будь-які +- Якщо ваш plugin залежить від native modules, задокументуйте кроки збирання та всі вимоги до allowlist менеджера пакетів (наприклад, pnpm `allow-build-scripts` - `pnpm rebuild `). @@ -627,4 +630,4 @@ plugin. - [Створення Plugins](/uk/plugins/building-plugins) — початок роботи з plugins - [Архітектура Plugin](/uk/plugins/architecture) — внутрішня архітектура -- [Огляд SDK](/uk/plugins/sdk-overview) — довідник із SDK Plugin +- [Огляд SDK](/uk/plugins/sdk-overview) — довідник по Plugin SDK