diff --git a/docs/uk/plugins/sdk-subpaths.md b/docs/uk/plugins/sdk-subpaths.md
index fe0bf59a7..eceb77b3f 100644
--- a/docs/uk/plugins/sdk-subpaths.md
+++ b/docs/uk/plugins/sdk-subpaths.md
@@ -2,278 +2,278 @@
read_when:
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
- Аудит підшляхів bundled-plugin і допоміжних поверхонь
-summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями'
+summary: 'Каталог підшляхів Plugin SDK: які імпорти де знаходяться, згруповано за областями'
title: Підшляхи Plugin SDK
x-i18n:
- generated_at: "2026-04-27T20:08:43Z"
+ generated_at: "2026-04-27T21:05:09Z"
model: gpt-5.4
provider: openai
- source_hash: b55ce02a25cfe9fe1bea2263bad31b50cc72c06affa451cc9cecac4404e70d79
+ source_hash: ceab4e0a5ecceacbb06584fcc8fe47b394511822d9435cc1fd7bba1572492a63
source_path: plugins/sdk-subpaths.md
workflow: 15
---
- Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
- На цій сторінці наведено каталог найуживаніших підшляхів, згрупованих за призначенням. Згенерований
- повний список із понад 200 підшляхів розміщено в `scripts/lib/plugin-sdk-entrypoints.json`;
- зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але вони є
- деталлю реалізації, якщо лише якась сторінка документації не просуває їх явно.
+ Plugin SDK представлений як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
+ Ця сторінка каталогізує найуживаніші підшляхи, згруповані за призначенням. Згенерований
+ повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
+ зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталями
+ реалізації, якщо лише сторінка документації явно не рекомендує їх.
- Щоб ознайомитися з посібником з розробки Plugin, див. [Огляд Plugin SDK](/uk/plugins/sdk-overview).
+ Посібник з розробки Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview).
- ## Точка входу Plugin
+ ## Вхідна точка Plugin
- | Підшлях | Ключові експорти |
- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
- | `plugin-sdk/plugin-entry` | `definePluginEntry` |
- | `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
- | `plugin-sdk/config-schema` | `OpenClawSchema` |
- | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
- | `plugin-sdk/migration` | Допоміжні елементи провайдера міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, допоміжні засоби редагування та `summarizeMigrationItems` |
- | `plugin-sdk/migration-runtime` | Допоміжні засоби міграції під час виконання, як-от `copyMigrationFileItem` і `writeMigrationReport` |
+ | Subpath | Ключові експорти |
+ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
+ | `plugin-sdk/plugin-entry` | `definePluginEntry` |
+ | `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
+ | `plugin-sdk/config-schema` | `OpenClawSchema` |
+ | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
+ | `plugin-sdk/migration` | Допоміжні засоби елементів постачальника міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, засоби редагування та `summarizeMigrationItems` |
+ | `plugin-sdk/migration-runtime` | Допоміжні засоби міграції під час виконання, як-от `copyMigrationFileItem` і `writeMigrationReport` |
- | Підшлях | Ключові експорти |
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
- | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, побудовники статусу налаштування |
+ | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, підказки allowlist, побудовники статусу налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
- | `plugin-sdk/account-core` | Допоміжні засоби конфігурації та action gate для кількох облікових записів, допоміжні засоби резервного використання облікового запису за замовчуванням |
- | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації id облікового запису |
- | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного використання облікового запису за замовчуванням |
- | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів/дій з обліковими записами |
+ | `plugin-sdk/account-core` | Допоміжні засоби конфігурації та керування доступом для кількох облікових записів, допоміжні засоби резервного використання типового облікового запису |
+ | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ідентифікатора облікового запису |
+ | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису та резервного використання типового |
+ | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списку облікових записів і дій з ними |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
- | `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та універсальний побудовник |
+ | `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та універсальний конструктор |
| `plugin-sdk/channel-config-schema-legacy` | Застарілі схеми конфігурації bundled-channel лише для сумісності з bundled |
- | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервною сумісністю контракту bundled |
- | `plugin-sdk/command-gating` | Вузькі допоміжні засоби gate авторизації команд |
+ | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/перевірки користувацьких команд Telegram із резервною сумісністю bundled-contract |
+ | `plugin-sdk/command-gating` | Вузькі допоміжні засоби авторизаційних обмежень для команд |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
- | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/завершення потоку чернеток |
- | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби для вхідної маршрутизації та побудови envelope |
- | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби для запису та диспетчеризації вхідних відповідей |
+ | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації потоку чернеток |
+ | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних повідомлень і побудови конвертів |
+ | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних відповідей |
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
- | `plugin-sdk/outbound-send-deps` | Полегшений пошук залежностей вихідного надсилання для адаптерів каналів |
- | `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної доставки, ідентичності, делегата надсилання, сесій, форматування та планування payload |
+ | `plugin-sdk/outbound-send-deps` | Полегшений пошук залежностей надсилання вихідних повідомлень для адаптерів каналів |
+ | `plugin-sdk/outbound-runtime` | Допоміжні засоби доставки вихідних повідомлень, ідентичності, делегата надсилання, сеансу, форматування та планування payload |
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації опитувань |
- | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків і адаптерів |
- | `plugin-sdk/agent-media-payload` | Застарілий побудовник media payload агента |
- | `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмов/потоків, спарювання та налаштованих прив’язок |
+ | `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків та адаптерів |
+ | `plugin-sdk/agent-media-payload` | Застарілий конструктор payload медіа агента |
+ | `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмов/потоків, pairing і налаштованих прив’язок |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації під час виконання |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики під час виконання |
- | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку статусу каналу |
+ | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімків/підсумків статусу каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin каналу |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
- | `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень щодо доступу груп |
- | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямих DM |
+ | `plugin-sdk/group-access` | Спільні допоміжні засоби рішень щодо доступу до груп |
+ | `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту direct-DM |
| `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
- | `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних повідомлень, зіставлення згадок, допоміжних засобів політики згадок і допоміжних засобів envelope |
+ | `plugin-sdk/channel-inbound` | Сумісний barrel для debounce вхідних повідомлень, зіставлення згадок, допоміжних засобів політики згадок і допоміжних засобів конвертів |
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних повідомлень |
- | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок і тексту згадок без ширшої поверхні вхідного runtime |
- | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope |
- | `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування каналу |
- | `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкинутих вхідних повідомлень і збоїв typing/ack |
+ | `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок і тексту згадок без ширшої поверхні runtime для вхідних повідомлень |
+ | `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування конвертів вхідних повідомлень |
+ | `plugin-sdk/channel-location` | Допоміжні засоби контексту розташування каналу та форматування |
+ | `plugin-sdk/channel-logging` | Допоміжні засоби журналювання каналу для відкидання вхідних повідомлень і збоїв typing/ack |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей |
- | `plugin-sdk/channel-contract` | Типи контракту каналу |
- | `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
- | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби контрактів секретів, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
+ | `plugin-sdk/channel-contract` | Типи контрактів каналу |
+ | `plugin-sdk/channel-feedback` | Підключення відгуків/реакцій |
+ | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
- | Підшлях | Ключові експорти |
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделей під час виконання |
- | `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад runtime LM Studio для локальних типових значень сервера, виявлення моделей, заголовків запитів і допоміжних засобів завантажених моделей |
+ | `plugin-sdk/lmstudio-runtime` | Підтримуваний runtime-фасад LM Studio для типових параметрів локального сервера, виявлення моделей, заголовків запитів і допоміжних засобів завантажених моделей |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдерів, сумісних з OpenAI |
- | `plugin-sdk/cli-backend` | Типові значення backend CLI + константи watchdog |
- | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API key під час виконання для Plugin провайдерів |
- | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу API key/запису профілю, як-от `upsertApiKeyProfile` |
- | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату auth OAuth |
+ | `plugin-sdk/cli-backend` | Типові значення CLI backend і константи watchdog |
+ | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключів під час виконання для Plugin провайдерів |
+ | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, як-от `upsertApiKeyProfile` |
+ | `plugin-sdk/provider-auth-result` | Стандартний конструктор результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для Plugin провайдерів |
- | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку auth env var для провайдерів |
+ | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars автентифікації провайдера |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
- | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політик replay, допоміжні засоби endpoint провайдерів і допоміжні засоби нормалізації id моделей, як-от `normalizeNativeXaiModelId` |
+ | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політик replay, допоміжні засоби endpoint провайдерів і допоміжні засоби нормалізації model-id, як-от `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
- | `plugin-sdk/provider-http` | Універсальні допоміжні засоби HTTP/можливостей endpoint провайдера, HTTP-помилки провайдера та допоміжні засоби multipart form для аудіотранскрипції |
+ | `plugin-sdk/provider-http` | Універсальні допоміжні засоби HTTP/endpoint-можливостей провайдерів, помилки HTTP провайдерів і допоміжні засоби multipart form для транскрибування аудіо |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контрактів конфігурації/вибору web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` |
- | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдера web-fetch |
- | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення enable Plugin |
- | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контрактів конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scope-овані setter/getter облікових даних |
- | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime провайдера web-search |
- | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
+ | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch провайдерів |
+ | `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби конфігурації/облікових даних web-search для провайдерів, яким не потрібне підключення активації Plugin |
+ | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контрактів конфігурації/облікових даних web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних |
+ | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime для web-search провайдерів |
+ | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика та допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
- | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native transport провайдерів, як-от guarded fetch, трансформації транспортних повідомлень і потоки подій writable transport |
- | `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
+ | `plugin-sdk/provider-transport-runtime` | Допоміжні засоби native transport провайдерів, як-от guarded fetch, трансформації transport message і потоки подій writable transport |
+ | `plugin-sdk/provider-onboard` | Допоміжні засоби виправлення конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації груп і розбору команд |
-
- | Підшлях | Ключові експорти |
+
+ | Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, включно з форматуванням меню динамічних аргументів, допоміжні засоби авторизації відправника |
- | `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
- | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та auth дій у межах того самого чату |
- | `plugin-sdk/approval-client-runtime` | Native допоміжні засоби профілю/фільтра затвердження exec |
- | `plugin-sdk/approval-delivery-runtime` | Native адаптери можливостей/доставки затверджень |
- | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення gateway затверджень |
- | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені native допоміжні засоби завантаження адаптера затверджень для гарячих точок входу каналів |
- | `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime обробника затверджень; віддавайте перевагу вужчим адаптерним/gateway швам, якщо їх достатньо |
- | `plugin-sdk/approval-native-runtime` | Native допоміжні засоби цілей затвердження + прив’язки облікового запису |
- | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді на затвердження exec/plugin |
- | `plugin-sdk/approval-runtime` | Допоміжні засоби payload затвердження exec/plugin, native допоміжні засоби маршрутизації/runtime затверджень і допоміжні засоби структурованого відображення затверджень, як-от `formatApprovalDisplayPath` |
+ | `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
+ | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та автентифікації дій у тому самому чаті |
+ | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілів/фільтрів затвердження для native exec |
+ | `plugin-sdk/approval-delivery-runtime` | Native-адаптери можливостей/доставки затверджень |
+ | `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval gateway |
+ | `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження native-адаптера затвердження для гарячих вхідних точок каналів |
+ | `plugin-sdk/approval-handler-runtime` | Ширші runtime-допоміжні засоби обробника затверджень; віддавайте перевагу вужчим adapter/gateway seams, якщо їх достатньо |
+ | `plugin-sdk/approval-native-runtime` | Допоміжні засоби native target затвердження та прив’язки облікових записів |
+ | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для затвердження exec/plugin |
+ | `plugin-sdk/approval-runtime` | Допоміжні засоби payload затвердження exec/plugin, native-допоміжні засоби маршрутизації/runtime затверджень і допоміжні засоби структурованого відображення затверджень, як-от `formatApprovalDisplayPath` |
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей |
- | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel |
- | `plugin-sdk/command-auth-native` | Native auth команд, форматування меню динамічних аргументів і native допоміжні засоби цільових сесій |
+ | `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контрактів каналів без широкого testing barrel |
+ | `plugin-sdk/command-auth-native` | Native-автентифікація команд, форматування меню динамічних аргументів і native-допоміжні засоби session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналів |
- | `plugin-sdk/command-surface` | Нормалізація тіла команд і допоміжні засоби command surface |
+ | `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
- | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання контрактів секретів для поверхонь секретів channel/plugin |
- | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для парсингу контрактів секретів/конфігурації |
- | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, gate для DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за сталий час і збирання секретів |
- | `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
- | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned dispatcher без широкої infra runtime surface |
- | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned dispatcher, fetch із захистом від SSRF, помилка SSRF і допоміжні засоби політики SSRF |
- | `plugin-sdk/secret-input` | Допоміжні засоби парсингу введення секретів |
- | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook і приведення необроблених websocket/body |
- | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body/тайм-ауту запиту |
+ | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору secret-contract для поверхонь секретів channel/plugin |
+ | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
+ | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього контенту, редагування чутливого тексту, порівняння секретів за сталий час і збору секретів |
+ | `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж |
+ | `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої infra runtime-поверхні |
+ | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом від SSRF, помилка SSRF і допоміжні засоби політики SSRF |
+ | `plugin-sdk/secret-input` | Допоміжні засоби розбору введення секретів |
+ | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook і приведення raw websocket/body |
+ | `plugin-sdk/webhook-request-guards` | Допоміжні засоби для обмеження розміру body/timeout запиту |
- | Підшлях | Ключові експорти |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення Plugin |
- | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, логера, тайм-аутів, повторних спроб і backoff |
- | `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованих профілів/типових значень, парсингу CDP URL і допоміжних засобів auth browser-control |
- | `plugin-sdk/channel-runtime-context` | Універсальні допоміжні засоби реєстрації та пошуку channel runtime-context |
+ | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/журналювання/резервного копіювання/встановлення Plugin |
+ | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
+ | `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору CDP URL і допоміжних засобів автентифікації browser-control |
+ | `plugin-sdk/channel-runtime-context` | Універсальні допоміжні засоби реєстрації та пошуку runtime-context каналу |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
- | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/інтерактивності Plugin |
- | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра Webhook/внутрішніх хуків |
- | `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язки runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
+ | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hooks/http/interactive для Plugin |
+ | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для Webhook/internal hooks |
+ | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy-імпорту/прив’язки runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів |
- | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версій, виклику аргументів і лінивих груп команд |
- | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway, CLI RPC Gateway, помилок протоколу Gateway і патчів статусу каналу |
- | `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації Plugin, як-от `OpenClawConfig` і типів конфігурації каналів/провайдерів |
+ | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, wait, version, invocation аргументів і lazy command-group |
+ | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway, CLI RPC Gateway, помилок протоколу Gateway і patch-допоміжні засоби статусу каналу |
+ | `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації Plugin, як-от `OpenClawConfig` і типи конфігурації каналів/провайдерів |
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації Plugin під час виконання, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної мутації конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
- | `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot` і setter-и тестових знімків |
- | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли bundled поверхня контракту Telegram недоступна |
- | `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файли без широкого barrel `text-runtime` |
- | `plugin-sdk/approval-runtime` | Допоміжні засоби затвердження exec/plugin, побудовники можливостей затвердження, допоміжні засоби auth/профілів, native допоміжні засоби маршрутизації/runtime і форматування шляху структурованого відображення затверджень |
- | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime вхідних повідомлень/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
+ | `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot`, і setter-и тестових знімків |
+ | `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли bundled Telegram contract surface недоступна |
+ | `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого text-runtime barrel |
+ | `plugin-sdk/approval-runtime` | Допоміжні засоби затвердження exec/plugin, конструктори можливостей затвердження, допоміжні засоби auth/profile, native-допоміжні засоби маршрутизації/runtime і форматування шляху структурованого відображення затвердження |
+ | `plugin-sdk/reply-runtime` | Спільні runtime-допоміжні засоби вхідних повідомлень/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповідей і міток розмов |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби коротковіконної історії відповідей, як-от `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
- | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/Markdown |
- | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій, ключів сесій, updated-at і мутації сховища |
+ | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking для text/markdown |
+ | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій, session-key, updated-at і мутації сховища |
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/завантаження/збереження сховища Cron |
- | `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів state/OAuth |
- | `plugin-sdk/routing` | Допоміжні засоби прив’язки маршрутів/ключів сесій/облікових записів, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
- | `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, типових значень runtime state і метаданих проблем |
+ | `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth |
+ | `plugin-sdk/routing` | Допоміжні засоби route/session-key/прив’язки облікових записів, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
+ | `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумків статусу каналу/облікового запису, типові значення runtime-state і допоміжні засоби метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілей |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
| `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних входів |
- | `plugin-sdk/run-command` | Виконавець команд із таймером і нормалізованими результатами stdout/stderr |
- | `plugin-sdk/param-readers` | Поширені засоби читання параметрів tool/CLI |
+ | `plugin-sdk/run-command` | Runner команд із таймером і нормалізованими результатами stdout/stderr |
+ | `plugin-sdk/param-readers` | Типові читачі параметрів tool/CLI |
| `plugin-sdk/tool-payload` | Витягування нормалізованих payload з об’єктів результатів tool |
- | `plugin-sdk/tool-send` | Витягування канонічних полів цілей надсилання з аргументів tool |
- | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасових завантажень |
- | `plugin-sdk/logging-core` | Допоміжні засоби логера підсистеми та редагування |
- | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму й перетворення таблиць Markdown |
+ | `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з аргументів tool |
+ | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасового завантаження |
+ | `plugin-sdk/logging-core` | Допоміжні засоби subsystem logger і редагування |
+ | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму й конвертації таблиць Markdown |
| `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення моделі/сесії, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
- | `plugin-sdk/talk-config-runtime` | Допоміжні засоби визначення конфігурації talk-провайдера |
- | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
- | `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file lock |
- | `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковим зберіганням |
+ | `plugin-sdk/talk-config-runtime` | Допоміжні засоби визначення конфігурації talk provider |
+ | `plugin-sdk/json-store` | Допоміжні засоби читання/запису малого JSON state |
+ | `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідних file-lock |
+ | `plugin-sdk/persistent-dedupe` | Допоміжні засоби disk-backed кешу дедуплікації |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесій ACP і dispatch відповідей |
| `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язок ACP лише для читання без імпортів запуску життєвого циклу |
- | `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
- | `plugin-sdk/boolean-param` | Засіб читання нечіткого булевого параметра |
- | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних назв |
- | `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токенів спарювання |
- | `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, статусу та ambient proxy |
- | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповідей команди `/models`/провайдера |
- | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби виведення списку команд Skills |
- | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native команд |
- | `plugin-sdk/agent-harness` | Експериментальна surface довіреного Plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби мосту tool OpenClaw, допоміжні засоби політики tool плану runtime, класифікація результатів terminal, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
- | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
- | `plugin-sdk/async-lock-runtime` | Допоміжний засіб process-local async lock для невеликих файлів стану runtime |
- | `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу |
- | `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності асинхронних завдань |
- | `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу дедуплікації в пам’яті |
- | `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб осушення черги очікуваної вихідної доставки |
- | `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів локальних файлів і джерел медіа |
+ | `plugin-sdk/agent-config-primitives` | Вузькі примітиви runtime config-schema агента |
+ | `plugin-sdk/boolean-param` | Гнучкий читач boolean-параметрів |
+ | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних імен |
+ | `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів pairing |
+ | `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, статусу й ambient proxy |
+ | `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповідей `/models` command/provider |
+ | `plugin-sdk/skill-commands-runtime` | Допоміжні засоби списку команд Skills |
+ | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native-команд |
+ | `plugin-sdk/agent-harness` | Експериментальна trusted-plugin поверхня для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту OpenClaw tool, допоміжні засоби політики runtime-plan tool, класифікація результатів terminal, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
+ | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I |
+ | `plugin-sdk/async-lock-runtime` | Допоміжний засіб process-local async lock для малих файлів runtime state |
+ | `plugin-sdk/channel-activity-runtime` | Допоміжний засіб telemetry активності каналу |
+ | `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої async-конкурентності задач |
+ | `plugin-sdk/dedupe-runtime` | Допоміжні засоби in-memory кешу дедуплікації |
+ | `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб drain для pending-delivery вихідних повідомлень |
+ | `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів до локальних файлів і джерел медіа |
| `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій і видимості Heartbeat |
- | `plugin-sdk/number-runtime` | Допоміжний засіб приведення числових значень |
+ | `plugin-sdk/number-runtime` | Допоміжний засіб числового приведення |
| `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечних токенів/UUID |
| `plugin-sdk/system-event-runtime` | Допоміжні засоби черги системних подій |
- | `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності транспорту |
- | `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте наведені вище сфокусовані підшляхи runtime |
- | `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
- | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців, подій і trace context |
+ | `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності transport |
+ | `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте сфокусовані runtime-підшляхи вище |
+ | `plugin-sdk/collection-runtime` | Допоміжні засоби малого обмеженого кешу |
+ | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби diagnostic flag, event і trace-context |
| `plugin-sdk/error-runtime` | Допоміжні засоби графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Допоміжні засоби обгорнутого fetch, proxy і pinned lookup |
- | `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без імпортів proxy/guarded-fetch |
- | `plugin-sdk/response-limit-runtime` | Засіб читання body відповіді з обмеженням без широкої media runtime surface |
- | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації налаштованих прив’язок або сховищ спарювання |
- | `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій без широких імпортів запису/обслуговування конфігурації |
- | `plugin-sdk/context-visibility-runtime` | Допоміжні засоби визначення видимості контексту та фільтрації додаткового контексту без широких імпортів конфігурації/безпеки |
- | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації примітивних записів/рядків без імпортів markdown/логування |
+ | `plugin-sdk/runtime-fetch` | Dispatcher-aware runtime fetch без імпортів proxy/guarded-fetch |
+ | `plugin-sdk/response-limit-runtime` | Обмежений reader тіла відповіді без широкої media runtime-поверхні |
+ | `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації налаштованих прив’язок або pairing stores |
+ | `plugin-sdk/session-store-runtime` | Допоміжні засоби session-store без широких імпортів запису/обслуговування конфігурації |
+ | `plugin-sdk/context-visibility-runtime` | Допоміжні засоби визначення видимості контексту та фільтрації додаткового контексту без широких імпортів config/security |
+ | `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення й нормалізації primitive record/string без імпортів markdown/logging |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
- | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації повторних спроб і виконавця повторних спроб |
- | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогів/ідентичності/робочого простору агента |
- | `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів на основі конфігурації |
+ | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і runner retry |
+ | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
+ | `plugin-sdk/directory-runtime` | Запит/dedup каталогів на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
- | Підшлях | Ключові експорти |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також побудовники media payload |
- | `plugin-sdk/media-store` | Вузькі допоміжні засоби media store, як-от `saveMediaBuffer` |
- | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутні моделі |
- | `plugin-sdk/media-understanding` | Типи провайдерів для розуміння медіа, а також провайдер-орієнтовані експорти допоміжних засобів для зображень/аудіо |
- | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту/Markdown/логування, як-от видалення тексту, видимого асистенту, допоміжні засоби рендерингу/chunking/таблиць Markdown, допоміжні засоби редагування, допоміжні засоби directive tag і утиліти безпечного тексту |
+ | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори media payload |
+ | `plugin-sdk/media-store` | Вузькі допоміжні засоби сховища медіа, як-от `saveMediaBuffer` |
+ | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибору кандидатів і повідомлень про відсутню модель |
+ | `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також орієнтовані на провайдерів експорти допоміжних засобів для зображень/аудіо |
+ | `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, як-от вилучення тексту, видимого асистенту, допоміжні засоби рендерингу/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
- | `plugin-sdk/speech` | Типи провайдерів мовлення, а також провайдер-орієнтовані експорти директив, реєстру, валідації та допоміжних засобів мовлення |
+ | `plugin-sdk/speech` | Типи провайдерів мовлення, а також орієнтовані на провайдерів експорти директив, реєстру, валідації та допоміжних засобів мовлення |
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, експорти реєстру, директив, нормалізації та допоміжних засобів мовлення |
- | `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесій WebSocket |
+ | `plugin-sdk/realtime-transcription` | Типи провайдерів транскрибування в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб WebSocket session |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і реєстру |
| `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики |
- | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та парсинг model ref |
+ | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера та розбір model-ref |
| `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео |
- | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та парсинг model ref |
+ | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера та розбір model-ref |
| `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення маршрутів |
- | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляхів Webhook |
+ | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
- | `plugin-sdk/zod` | Повторно експортований `zod` для користувачів Plugin SDK |
- | `plugin-sdk/testing` | Публічні допоміжні засоби тестування extensions, зокрема `installCommonResolveTargetErrorCases`, `shouldAckReaction`, `writeSkill`, `createTestRegistry` і завантаження env для live generation |
+ | `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK |
+ | `plugin-sdk/testing` | Публічні допоміжні засоби тестування розширень, включно з mock-об’єктами реєстру/runtime Plugin, допоміжними засобами schema/media/live-test, `installCommonResolveTargetErrorCases`, `writeSkill`, `createTestRegistry` і завантаженням env для live generation |
- | Підшлях | Ключові експорти |
+ | Subpath | Ключові експорти |
| --- | --- |
- | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/конфігурації/файлів/допоміжних засобів CLI |
- | `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку пам’яті |
+ | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helpers |
+ | `plugin-sdk/memory-core-engine-runtime` | Runtime-фасад індексації/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
- | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і універсальні пакетні/віддалені допоміжні засоби |
+ | `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embeddings хоста пам’яті, доступ до реєстру, локальний провайдер і універсальні пакетні/віддалені допоміжні засоби |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
@@ -281,27 +281,27 @@ x-i18n:
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті |
- | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI хоста пам’яті |
- | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
+ | `plugin-sdk/memory-core-host-runtime-cli` | Runtime-допоміжні засоби CLI хоста пам’яті |
+ | `plugin-sdk/memory-core-host-runtime-core` | Основні runtime-допоміжні засоби хоста пам’яті |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби файлів/runtime хоста пам’яті |
- | `plugin-sdk/memory-host-core` | Незалежний від постачальника псевдонім для допоміжних засобів core runtime хоста пам’яті |
- | `plugin-sdk/memory-host-events` | Незалежний від постачальника псевдонім для допоміжних засобів журналу подій хоста пам’яті |
- | `plugin-sdk/memory-host-files` | Незалежний від постачальника псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
- | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого Markdown для Plugin, суміжних із пам’яттю |
- | `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до менеджера пошуку |
- | `plugin-sdk/memory-host-status` | Незалежний від постачальника псевдонім для допоміжних засобів статусу хоста пам’яті |
+ | `plugin-sdk/memory-host-core` | Нейтральний до вендора псевдонім для основних runtime-допоміжних засобів хоста пам’яті |
+ | `plugin-sdk/memory-host-events` | Нейтральний до вендора псевдонім для допоміжних засобів журналу подій хоста пам’яті |
+ | `plugin-sdk/memory-host-files` | Нейтральний до вендора псевдонім для допоміжних засобів файлів/runtime хоста пам’яті |
+ | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для Plugin, пов’язаних із пам’яттю |
+ | `plugin-sdk/memory-host-search` | Runtime-фасад Active Memory для доступу до search-manager |
+ | `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста пам’яті |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
- | Сімейство | Поточні підшляхи | Призначення |
+ | Family | Поточні підшляхи | Призначення |
| --- | --- | --- |
- | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser Plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `browser-support` залишається compatibility barrel. |
+ | Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser plugin. `browser-profiles` експортує `resolveBrowserConfig`, `resolveProfile`, `ResolvedBrowserConfig`, `ResolvedBrowserProfile` і `ResolvedBrowserTabCleanupConfig` для нормалізованої форми `browser.tabCleanup`. `browser-support` залишається compatibility barrel. |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime bundled Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime bundled LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled IRC |
- | Допоміжні засоби, специфічні для каналу | `plugin-sdk/googlechat`, `plugin-sdk/googlechat-runtime-shared`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu`, `plugin-sdk/feishu-conversation`, `plugin-sdk/feishu-setup`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/telegram-command-ui`, `plugin-sdk/tlon`, `plugin-sdk/twitch`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` | Застарілі шви сумісності/допоміжних засобів bundled channel. Нові Plugin мають імпортувати універсальні підшляхи SDK або локальні barrel Plugin. |
- | Допоміжні засоби auth/специфічні для Plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diagnostics-prometheus`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/memory-core`, `plugin-sdk/memory-lancedb`, `plugin-sdk/opencode`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шви допоміжних засобів bundled features/Plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
+ | Допоміжні засоби для конкретних каналів | `plugin-sdk/googlechat`, `plugin-sdk/googlechat-runtime-shared`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu`, `plugin-sdk/feishu-conversation`, `plugin-sdk/feishu-setup`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/telegram-command-ui`, `plugin-sdk/tlon`, `plugin-sdk/twitch`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` | Застарілі compatibility/helper seams bundled channel. Нові Plugin мають імпортувати універсальні підшляхи SDK або локальні barrel-файли Plugin. |
+ | Допоміжні засоби для auth/plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diagnostics-prometheus`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/memory-core`, `plugin-sdk/memory-lancedb`, `plugin-sdk/opencode`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Допоміжні seams для bundled feature/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
diff --git a/docs/uk/reference/RELEASING.md b/docs/uk/reference/RELEASING.md
index 7a5778c18..bf07054e6 100644
--- a/docs/uk/reference/RELEASING.md
+++ b/docs/uk/reference/RELEASING.md
@@ -1,122 +1,125 @@
---
read_when:
- Шукаю визначення публічних каналів релізу
- - Запуск валідації релізу або перевірки прийнятності пакета
- - Шукаю найменування версій і каденцію
-summary: Релізні лінії, контрольний список оператора, поля валідації, найменування версій і каденція
-title: Політика релізів
+ - Запуск валідації релізу або приймання пакета
+ - Шукаю іменування версій і каденс
+summary: Лейни релізу, контрольний список оператора, блоки валідації, іменування версій і каденс
+title: Політика релізу
x-i18n:
- generated_at: "2026-04-27T19:39:05Z"
+ generated_at: "2026-04-27T21:05:08Z"
model: gpt-5.4
provider: openai
- source_hash: 1ad73d75e54bd21cb740b64af0b33cc9d38283de8917544d5795990d3f0aacb6
+ source_hash: f3ff3c7887c59005a977522e3a0e80ea3458e29d12f6976397b0749d8001d914
source_path: reference/RELEASING.md
workflow: 15
---
-OpenClaw має три публічні лінії релізів:
+OpenClaw має три публічні лейни релізу:
- stable: теговані релізи, які за замовчуванням публікуються в npm `beta`, або в npm `latest`, якщо це явно запитано
-- beta: теги попередніх релізів, які публікуються в npm `beta`
-- dev: рухома вершина `main`
+- beta: теги передрелізів, які публікуються в npm `beta`
+- dev: рухома голова `main`
-## Найменування версій
+## Іменування версій
-- Версія стабільного релізу: `YYYY.M.D`
+- Версія stable-релізу: `YYYY.M.D`
- Git-тег: `vYYYY.M.D`
-- Версія виправного стабільного релізу: `YYYY.M.D-N`
+- Версія коригувального stable-релізу: `YYYY.M.D-N`
- Git-тег: `vYYYY.M.D-N`
-- Версія бета-попереднього релізу: `YYYY.M.D-beta.N`
+- Версія beta-передрелізу: `YYYY.M.D-beta.N`
- Git-тег: `vYYYY.M.D-beta.N`
-- Не додавайте нулі на початку місяця або дня
-- `latest` означає поточний опублікований стабільний npm-реліз
-- `beta` означає поточну ціль інсталяції бета-версії
-- Стабільні та виправні стабільні релізи за замовчуванням публікуються в npm `beta`; оператори релізів можуть явно націлити `latest` або пізніше просунути перевірену бета-збірку
-- Кожен стабільний реліз OpenClaw постачається разом із npm-пакетом і застосунком для macOS;
- бета-релізи зазвичай спочатку проходять валідацію та публікацію шляху npm/package, а
- збірка/підпис/нотаризація застосунку для macOS зарезервовані для stable, якщо це не запитано явно
+- Не додавайте провідні нулі до місяця або дня
+- `latest` означає поточний просунутий stable-реліз npm
+- `beta` означає поточну ціль встановлення beta
+- Stable-релізи та коригувальні stable-релізи за замовчуванням публікуються в npm `beta`; оператори релізу можуть явно вибрати `latest` або просунути перевірену beta-збірку пізніше
+- Кожен stable-реліз OpenClaw постачається разом із npm-пакетом і застосунком macOS;
+ beta-релізи зазвичай спочатку проходять валідацію та публікацію шляху npm/package, а
+ збірка/підпис/нотаризація застосунку macOS зарезервовані для stable, якщо явно не запитано
-## Каденція релізів
+## Каденс релізів
-- Релізи спочатку проходять через beta
-- Stable іде лише після того, як найновішу beta валідовано
-- Супровідники зазвичай створюють релізи з гілки `release/YYYY.M.D`, створеної
+- Релізи рухаються за схемою beta-first
+- Stable іде лише після валідації останньої beta
+- Мейнтейнери зазвичай роблять релізи з гілки `release/YYYY.M.D`, створеної
з поточної `main`, щоб валідація релізу та виправлення не блокували нову
розробку в `main`
-- Якщо beta-тег уже було запушено або опубліковано й потрібне виправлення, супровідники створюють
- наступний тег `-beta.N` замість видалення або перевідтворення старого beta-тега
-- Детальна процедура релізу, схвалення, облікові дані та примітки щодо відновлення
- доступні лише для супровідників
+- Якщо beta-тег уже було запушено або опубліковано й він потребує виправлення, мейнтейнери створюють
+ наступний тег `-beta.N` замість видалення або повторного створення старого beta-тегу
+- Детальна процедура релізу, погодження, облікові дані та примітки щодо відновлення
+ доступні лише мейнтейнерам
## Контрольний список оператора релізу
-Цей контрольний список — публічна форма процесу релізу. Приватні облікові дані,
+Цей контрольний список — публічний контур процесу релізу. Приватні облікові дані,
підписування, нотаризація, відновлення dist-tag і деталі аварійного відкату
-залишаються в закритому для супровідників runbook релізів.
+залишаються в runbook релізу лише для мейнтейнерів.
-1. Почніть із поточної `main`: підтягніть останні зміни, підтвердьте, що цільовий коміт запушено,
+1. Почніть з поточної `main`: отримайте останні зміни, підтвердьте, що цільовий коміт запушено,
і що поточний CI для `main` достатньо зелений, щоб відгалужуватися від нього.
2. Перепишіть верхню секцію `CHANGELOG.md` на основі реальної історії комітів за допомогою
- `/changelog`, залишайте записи орієнтованими на користувача, закомітьте це, запуште
- і ще раз виконайте rebase/pull перед створенням гілки.
+ `/changelog`, залишайте записи орієнтованими на користувача, закомітьте це, запуште і
+ ще раз виконайте rebase/pull перед створенням гілки.
3. Перегляньте записи сумісності релізу в
`src/plugins/compat/registry.ts` і
`src/commands/doctor/shared/deprecation-compat.ts`. Видаляйте прострочену
сумісність лише тоді, коли шлях оновлення залишається покритим, або зафіксуйте, чому її
- навмисно залишено.
+ навмисно збережено.
4. Створіть `release/YYYY.M.D` з поточної `main`; не виконуйте звичайну роботу з релізом
безпосередньо в `main`.
-5. Оновіть усі необхідні місця з версією для запланованого тега, потім виконайте
- локальний детермінований попередній прогін:
+5. Оновіть кожне обов’язкове місце з версією для запланованого тегу, а потім виконайте
+ локальний детермінований preflight:
`pnpm check:test-types`, `pnpm check:architecture`,
- `pnpm build && pnpm ui:build` і `pnpm release:check`.
-6. Запустіть `OpenClaw NPM Release` з `preflight_only=true`. Поки тега ще немає,
+ `pnpm build && pnpm ui:build`, і `pnpm release:check`.
+6. Запустіть `OpenClaw NPM Release` з `preflight_only=true`. До появи тегу
для preflight лише з метою валідації дозволено повний 40-символьний SHA гілки релізу.
Збережіть успішний `preflight_run_id`.
7. Запустіть усі передрелізні тести через `Full Release Validation` для
- гілки релізу, тега або повного SHA коміту. Це єдина ручна точка входу
- для чотирьох великих полів тестування релізу: Vitest, Docker, QA Lab і Package.
-8. Якщо валідація не пройшла, виправте проблему в гілці релізу і перезапустіть найменший збоєвий
- файл, лінію, завдання workflow, профіль пакета, allowlist провайдера або моделі, який
- доводить виправлення. Повторно запускайте повний umbrella лише тоді, коли змінена поверхня
+ гілки релізу, тегу або повного SHA коміту. Це єдина ручна точка входу
+ для чотирьох великих блоків тестування релізу: Vitest, Docker, QA Lab і Package.
+8. Якщо валідація не пройшла, виправте проблему в гілці релізу і повторно запустіть найменший невдалий
+ файл, лейн, завдання workflow, профіль пакета, allowlist провайдера або моделі, який
+ підтверджує виправлення. Повторно запускайте повну парасольку лише тоді, коли змінена поверхня
робить попередні докази неактуальними.
9. Для beta створіть тег `vYYYY.M.D-beta.N`, опублікуйте з npm dist-tag `beta`, а потім запустіть
post-publish package acceptance для опублікованого пакета `openclaw@YYYY.M.D-beta.N`
- або `openclaw@beta`. Якщо запушена або опублікована beta потребує виправлення, створюйте
+ або `openclaw@beta`. Якщо запушена або опублікована beta потребує виправлення, створіть
наступний `-beta.N`; не видаляйте і не переписуйте стару beta.
-10. Для stable продовжуйте лише після того, як перевірена beta або кандидат на реліз має
- потрібні докази валідації. Стабільна публікація в npm повторно використовує успішний
- preflight-артефакт через `preflight_run_id`; готовність stable-релізу для macOS
+10. Для stable продовжуйте лише після того, як перевірена beta або кандидат на реліз матиме
+ необхідні докази валідації. Stable-публікація в npm повторно використовує успішний
+ артефакт preflight через `preflight_run_id`; готовність stable-релізу для macOS
також вимагає упакованих `.zip`, `.dmg`, `.dSYM.zip` і оновленого
`appcast.xml` у `main`.
-11. Після публікації запустіть верифікатор npm після публікації, за потреби —
- окремий Telegram E2E для опублікованого npm, коли вам потрібне підтвердження каналу після публікації,
- за потреби просування dist-tag, нотатки GitHub release/prerelease з
+11. Після публікації запустіть верифікатор npm після публікації, необов’язковий окремий
+ Telegram E2E для опублікованого npm, коли потрібен доказ каналу після публікації,
+ просування dist-tag за потреби, примітки GitHub release/prerelease з
повної відповідної секції `CHANGELOG.md`, а також кроки
- анонсу релізу.
+ оголошення релізу.
-## Попередній прогін релізу
+## Preflight релізу
-- Запускайте `pnpm check:test-types` перед попереднім прогоном релізу, щоб TypeScript для тестів
- залишався покритим поза межами швидшого локального бар’єра `pnpm check`
-- Запускайте `pnpm check:architecture` перед попереднім прогоном релізу, щоб ширші перевірки
- циклів імпорту та меж архітектури були зеленими поза межами швидшого локального бар’єра
+- Запускайте `pnpm check:test-types` перед release preflight, щоб TypeScript для тестів
+ залишався покритим поза швидшим локальним gate `pnpm check`
+- Запускайте `pnpm check:architecture` перед release preflight, щоб ширші перевірки
+ циклів імпорту та меж архітектури були зеленими поза швидшим локальним gate
- Запускайте `pnpm build && pnpm ui:build` перед `pnpm release:check`, щоб очікувані
- артефакти релізу `dist/*` і зібраний Control UI існували для кроку
+ артефакти релізу `dist/*` і бандл Control UI існували для кроку
валідації pack
-- Запускайте ручний workflow `Full Release Validation` перед схваленням релізу, щоб
- запустити всі передрелізні поля тестування з однієї точки входу. Він приймає гілку,
- тег або повний SHA коміту, викликає ручний `CI` і викликає
+- Запускайте ручний workflow `Full Release Validation` перед погодженням релізу, щоб
+ запустити всі блоки передрелізного тестування з однієї точки входу. Він приймає гілку,
+ тег або повний SHA коміту, викликає вручну `CI` і викликає
`OpenClaw Release Checks` для install smoke, package acceptance, наборів Docker
- шляху релізу, live/E2E, OpenWebUI, QA Lab parity, Matrix і Telegram
- ліній. Вказуйте `npm_telegram_package_spec` лише після того, як пакет уже було
- опубліковано і також має запускатися Telegram E2E після публікації. Приклад:
+ для шляху релізу, live/E2E, OpenWebUI, QA Lab parity, Matrix і лейнів
+ Telegram. Вказуйте `npm_telegram_package_spec` лише після того, як пакет уже
+ опубліковано і також має виконуватися Telegram E2E після публікації. Вказуйте
+ `evidence_package_spec`, коли приватний звіт доказів має підтверджувати, що
+ валідація відповідає опублікованому npm-пакету без примусового запуску Telegram E2E.
+ Приклад:
`gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D`
-- Запускайте ручний workflow `Package Acceptance`, коли вам потрібне додаткове підтвердження
- для кандидата пакета, поки триває робота над релізом. Використовуйте `source=npm` для
+- Запускайте ручний workflow `Package Acceptance`, коли потрібен побічний доказ
+ для кандидата пакета, поки робота над релізом триває. Використовуйте `source=npm` для
`openclaw@beta`, `openclaw@latest` або точної версії релізу; `source=ref`,
- щоб запакувати довірену гілку/тег/SHA `package_ref` з поточною
- обв’язкою `workflow_ref`; `source=url` для HTTPS tarball з обов’язковим
+ щоб упакувати довірену гілку/тег/SHA `package_ref` з поточним harness
+ `workflow_ref`; `source=url` для HTTPS tarball з обов’язковим
SHA-256; або `source=artifact` для tarball, завантаженого іншим запуском GitHub
Actions. Workflow визначає кандидата як
`package-under-test`, повторно використовує планувальник Docker E2E шляху релізу для цього
@@ -124,148 +127,149 @@ OpenClaw має три публічні лінії релізів:
`telegram_mode=mock-openai` або `telegram_mode=live-frontier`.
Приклад: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f telegram_mode=mock-openai`
Поширені профілі:
- - `smoke`: лінії install/channel/agent, мережі gateway і перезавантаження конфігурації
- - `package`: нативні для артефакта лінії пакета/оновлення/Plugin без OpenWebUI або live ClawHub
+ - `smoke`: лейни install/channel/agent, мережі Gateway і перезавантаження конфігурації
+ - `package`: артефактно-нативні лейни пакета/оновлення/Plugin без OpenWebUI або live ClawHub
- `product`: профіль package плюс канали MCP, очищення cron/subagent,
вебпошук OpenAI і OpenWebUI
- - `full`: частини Docker шляху релізу з OpenWebUI
- - `custom`: точний вибір `docker_lanes` для сфокусованого повторного запуску
-- Запускайте ручний workflow `CI` безпосередньо, коли вам потрібне лише повне нормальне
- покриття CI для кандидата релізу. Ручний виклик CI обходить обмеження changed
- і примусово запускає Linux Node shards, bundled-plugin shards, channel
- contracts, сумісність з Node 22, `check`, `check-additional`, build smoke,
- перевірки документації, Python Skills, Windows, macOS, Android і лінії i18n для Control UI.
+ - `full`: частини Docker release-path з OpenWebUI
+ - `custom`: точний вибір `docker_lanes` для цільового повторного запуску
+- Запускайте ручний workflow `CI` безпосередньо, коли потрібне лише повне звичайне покриття
+ CI для кандидата на реліз. Ручний запуск CI оминає changed scoping і примусово запускає
+ Linux Node shards, shards bundled-plugin, контракти каналів, сумісність Node 22, `check`,
+ `check-additional`, build smoke, перевірки документації, Python Skills, Windows, macOS, Android і
+ лейни i18n для Control UI.
Приклад: `gh workflow run ci.yml --ref release/YYYY.M.D`
- Запускайте `pnpm qa:otel:smoke` під час валідації телеметрії релізу. Це проганяє
QA-lab через локальний приймач OTLP/HTTP і перевіряє експортовані назви trace span,
обмежені атрибути та редагування вмісту/ідентифікаторів без потреби в
- Opik, Langfuse або іншому зовнішньому збирачі.
+ Opik, Langfuse або іншому зовнішньому collector.
- Запускайте `pnpm release:check` перед кожним тегованим релізом
- Перевірки релізу тепер виконуються в окремому ручному workflow:
`OpenClaw Release Checks`
-- `OpenClaw Release Checks` також запускає QA Lab mock parity gate і швидкий
- live Matrix profile та лінію Telegram QA перед схваленням релізу. Live
- лінії використовують середовище `qa-live-shared`; Telegram також використовує оренду
- облікових даних Convex CI. Запускайте ручний workflow `QA-Lab - All Lanes` з
- `matrix_profile=all` і `matrix_shards=true`, коли вам потрібен повний інвентар
- Matrix transport, media та E2EE паралельно.
-- Крос-ОС валідація install і upgrade під час виконання є частиною публічних
+- `OpenClaw Release Checks` також запускає QA Lab mock parity gate разом із швидким
+ live-профілем Matrix і лейном Telegram QA перед погодженням релізу. Live-лейни використовують
+ середовище `qa-live-shared`; Telegram також використовує оренду облікових даних Convex CI.
+ Запускайте ручний workflow `QA-Lab - All Lanes` з
+ `matrix_profile=all` і `matrix_shards=true`, коли потрібен повний паралельний інвентар
+ транспорту, медіа та E2EE Matrix.
+- Крос-ОС валідація встановлення та оновлення під час виконання є частиною публічних
`OpenClaw Release Checks` і `Full Release Validation`, які викликають
- повторно використовуваний workflow
+ reusable workflow
`.github/workflows/openclaw-cross-os-release-checks-reusable.yml` безпосередньо
-- Такий поділ навмисний: реальний шлях npm-релізу має залишатися коротким,
+- Цей поділ навмисний: зберігайте справжній шлях npm-релізу коротким,
детермінованим і зосередженим на артефактах, тоді як повільніші live-перевірки залишаються
- у власній лінії, щоб не затримувати і не блокувати публікацію
+ у власному лейні, щоб не затримувати й не блокувати публікацію
- Перевірки релізу, що використовують секрети, слід запускати через `Full Release
Validation` або з workflow ref `main`/release, щоб логіка workflow і
секрети залишалися контрольованими
- `OpenClaw Release Checks` приймає гілку, тег або повний SHA коміту, якщо
визначений коміт досяжний з гілки OpenClaw або тега релізу
-- Попередній прогін `OpenClaw NPM Release` лише для валідації також приймає поточний
- повний 40-символьний SHA коміту гілки workflow без вимоги запушеного тега
-- Цей шлях із SHA призначений лише для валідації й не може бути просунутий до реальної публікації
-- У режимі SHA workflow синтезує `v` лише для перевірки
- метаданих пакета; реальна публікація все одно вимагає реального тега релізу
-- Обидва workflows зберігають реальний шлях публікації та просування на GitHub-hosted
- runners, тоді як незмінний шлях валідації може використовувати більші
+- Валідаційний preflight `OpenClaw NPM Release` також приймає поточний
+ повний 40-символьний SHA коміту гілки workflow без вимоги запушеного тегу
+- Цей шлях із SHA призначений лише для валідації і не може бути підвищений до справжньої публікації
+- У режимі SHA workflow синтезує `v` лише для
+ перевірки метаданих пакета; справжня публікація все одно вимагає реального тега релізу
+- Обидва workflows залишають справжній шлях публікації та просування на GitHub-hosted
+ runners, тоді як немутуючий шлях валідації може використовувати більші
Blacksmith Linux runners
- Цей workflow запускає
`OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache`
- з використанням обох секретів workflow `OPENAI_API_KEY` і `ANTHROPIC_API_KEY`
-- Попередній прогін npm release більше не чекає на окрему лінію release checks
+ з використанням обох workflow secrets: `OPENAI_API_KEY` і `ANTHROPIC_API_KEY`
+- npm release preflight більше не чекає на окремий лейн перевірок релізу
- Запускайте `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts`
- (або відповідний beta/correction тег) перед схваленням
+ (або відповідний beta/correction тег) перед погодженням
- Після публікації в npm запускайте
`node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D`
- (або відповідну beta/correction версію), щоб перевірити шлях інсталяції
- з опублікованого реєстру в чистому тимчасовому prefix
+ (або відповідну beta/correction версію), щоб перевірити шлях встановлення з
+ опублікованого реєстру в новому тимчасовому префіксі
- Після публікації beta запускайте `OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live`,
- щоб перевірити onboarding встановленого пакета, налаштування Telegram і реальний Telegram E2E
- проти опублікованого npm-пакета з використанням спільного орендованого пулу
- облікових даних Telegram. Для разових локальних запусків супровідники можуть не вказувати змінні Convex
- і передавати три облікові дані через env `OPENCLAW_QA_TELEGRAM_*` безпосередньо.
-- Супровідники можуть запускати ту саму перевірку після публікації з GitHub Actions через
- ручний workflow `NPM Telegram Beta E2E`. Він навмисно є лише ручним
- і не запускається після кожного merge.
-- Автоматизація релізів супровідників тепер використовує preflight-then-promote:
- - реальна публікація в npm має пройти успішний npm `preflight_run_id`
- - реальна публікація в npm має запускатися з тієї самої гілки `main` або
+ щоб перевірити onboarding встановленого пакета, налаштування Telegram і справжній Telegram E2E
+ проти опублікованого npm-пакета, використовуючи спільний пул орендованих облікових даних Telegram.
+ Для локальних одноразових перевірок мейнтейнера можна не вказувати змінні Convex і передати
+ безпосередньо три env-облікові дані `OPENCLAW_QA_TELEGRAM_*`.
+- Мейнтейнери можуть запускати ту саму перевірку після публікації через GitHub Actions за допомогою
+ ручного workflow `NPM Telegram Beta E2E`. Він навмисно лише ручний і
+ не запускається після кожного merge.
+- Автоматизація релізів мейнтейнера тепер використовує схему preflight-then-promote:
+ - справжня публікація в npm має пройти успішний npm `preflight_run_id`
+ - справжню публікацію в npm слід запускати з тієї самої гілки `main` або
`release/YYYY.M.D`, що й успішний запуск preflight
- - стабільні npm-релізи за замовчуванням спрямовані в `beta`
- - стабільна публікація в npm може явно націлювати `latest` через input workflow
- - зміна npm dist-tag на основі токена тепер розміщена в
+ - stable npm-релізи за замовчуванням використовують `beta`
+ - stable-публікація в npm може явно націлюватися на `latest` через вхідні дані workflow
+ - мутація npm dist-tag на основі токена тепер знаходиться в
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
- з міркувань безпеки, тому що `npm dist-tag add` усе ще потребує `NPM_TOKEN`, тоді як
+ з міркувань безпеки, оскільки `npm dist-tag add` досі потребує `NPM_TOKEN`, тоді як
публічний репозиторій зберігає публікацію лише через OIDC
- публічний `macOS Release` призначений лише для валідації
- - реальна приватна публікація для mac має пройти успішні приватні
- `preflight_run_id` і `validate_run_id`
- - реальні шляхи публікації просувають підготовлені артефакти замість їх повторної збірки
-- Для виправних стабільних релізів на кшталт `YYYY.M.D-N` верифікатор після публікації
- також перевіряє той самий шлях оновлення в тимчасовому prefix з `YYYY.M.D` до `YYYY.M.D-N`,
- щоб виправні релізи не могли непомітно залишати старі глобальні інсталяції на
- базовому стабільному payload
-- Попередній прогін npm release завершується з відмовою за замовчуванням, якщо tarball не містить
- і `dist/control-ui/index.html`, і непорожній payload `dist/control-ui/assets/`,
- щоб ми знову не випустили порожню панель браузера
-- Перевірка після публікації також перевіряє, що інсталяція з опублікованого реєстру
- містить непорожні runtime-залежності bundled Plugin у кореневому макеті
- `dist/*`. Реліз, який постачається з відсутніми або порожніми payload залежностей
- bundled Plugin, не проходить postpublish verifier і не може бути просунутий
+ - справжня приватна публікація mac має пройти успішні приватні `preflight_run_id`
+ і `validate_run_id` для mac
+ - справжні шляхи публікації просувають підготовлені артефакти замість їх повторного збирання
+- Для коригувальних stable-релізів на кшталт `YYYY.M.D-N` верифікатор після публікації
+ також перевіряє той самий шлях оновлення в тимчасовому префіксі з `YYYY.M.D` до `YYYY.M.D-N`,
+ щоб корекції релізу не могли непомітно залишити старі глобальні встановлення на
+ базовому stable-навантаженні
+- npm release preflight завершується із закритою помилкою, якщо tarball не містить і `dist/control-ui/index.html`,
+ і непорожнє навантаження `dist/control-ui/assets/`, щоб ми знову не
+ випустили порожню браузерну панель керування
+- Перевірка після публікації також перевіряє, що встановлення з опублікованого реєстру
+ містить непорожні runtime-залежності bundled Plugin у кореневому
+ макеті `dist/*`. Реліз, який постачається з відсутнім або порожнім навантаженням
+ залежностей bundled Plugin, не проходить верифікатор після публікації і не може бути просунутий
до `latest`.
-- `pnpm test:install:smoke` також застосовує бюджет `unpackedSize` для `npm pack`
- до tarball кандидата на оновлення, тому installer e2e виявляє випадкове роздуття pack
- до шляху публікації релізу
-- Якщо робота над релізом зачепила планування CI, маніфести часу розширень або
- матриці тестів розширень, перед схваленням заново згенеруйте й перегляньте
- матричні результати workflow `checks-node-extensions`, якими володіє planner, з `.github/workflows/ci.yml`,
- щоб примітки до релізу не описували застарілу структуру CI
-- Готовність stable-релізу для macOS також включає поверхні оновлювача:
- - GitHub release має врешті містити упаковані `.zip`, `.dmg` і `.dSYM.zip`
+- `pnpm test:install:smoke` також примусово перевіряє бюджет `unpackedSize` для npm pack
+ у tarball кандидата на оновлення, щоб installer e2e виявляв випадкове збільшення
+ пакета до шляху публікації релізу
+- Якщо робота над релізом торкалася планування CI, маніфестів часу extension або
+ матриць тестів extension, перед погодженням заново згенеруйте й перегляньте
+ матричні виводи `checks-node-extensions`, якими володіє planner, з `.github/workflows/ci.yml`,
+ щоб примітки до релізу не описували застарілу схему CI
+- Готовність stable-релізу macOS також включає поверхні оновлювача:
+ - GitHub release має зрештою містити упаковані `.zip`, `.dmg` і `.dSYM.zip`
- `appcast.xml` у `main` має вказувати на новий stable zip після публікації
- - упакований застосунок має зберігати non-debug bundle id, непорожній Sparkle feed
- URL і `CFBundleVersion` на рівні або вище канонічного мінімального Sparkle build
+ - упакований застосунок має зберігати non-debug bundle id, непорожню
+ Sparkle feed URL і `CFBundleVersion` на рівні або вище канонічного мінімального build-рівня Sparkle
для цієї версії релізу
-## Поля тестування релізу
+## Блоки тестування релізу
-`Full Release Validation` — це спосіб, яким оператори запускають усі передрелізні тести з
-однієї точки входу. Запускайте його з довіреного workflow ref `main` і передавайте гілку релізу,
-тег або повний SHA коміту як `ref`:
+`Full Release Validation` — це спосіб, яким оператори запускають усі передрелізні тести
+з однієї точки входу. Запускайте його з довіреного workflow ref `main` і передавайте
+гілку релізу, тег або повний SHA коміту як `ref`:
```bash
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
- -f mode=both
+ -f mode=both \
+ -f evidence_package_spec=openclaw@YYYY.M.D-beta.N
```
-Workflow визначає цільовий ref, викликає ручний `CI` з
+Workflow визначає цільовий ref, викликає вручну `CI` з
`target_ref=`, викликає `OpenClaw Release Checks` і
за потреби викликає окремий Telegram E2E після публікації, коли
-встановлено `npm_telegram_package_spec`. Потім `OpenClaw Release Checks` розгалужує
-install smoke, крос-ОС release checks, live/E2E покриття Docker шляху релізу,
-Package Acceptance з Telegram QA для пакета, QA Lab parity, live Matrix і
-live Telegram. Повний запуск прийнятний лише тоді, коли підсумок `Full Release Validation`
-показує `normal_ci` і `release_checks` як успішні, а будь-який необов’язковий дочірній
+встановлено `npm_telegram_package_spec`. Далі `OpenClaw Release Checks` розгалужує
+install smoke, крос-ОС перевірки релізу, live/E2E покриття Docker release-path,
+Package Acceptance із Telegram package QA, QA Lab parity, live Matrix і
+live Telegram. Повний запуск є прийнятним лише тоді, коли у підсумку `Full Release Validation`
+показано `normal_ci` і `release_checks` як успішні, а будь-який необов’язковий дочірній
`npm_telegram` або успішний, або навмисно пропущений.
-Дочірні workflows викликаються з довіреного ref, який запускає `Full Release
-Validation`, зазвичай `--ref main`, навіть коли цільовий `ref` вказує на старішу
-гілку або тег релізу. Окремого input workflow-ref для Full Release Validation
-немає; вибирайте довірену обв’язку, вибираючи ref запуску workflow.
+Дочірні workflows викликаються з довіреного ref, що запускає `Full Release
+Validation`, зазвичай `--ref main`, навіть якщо цільовий `ref` вказує на
+старішу гілку релізу або тег. Окремого входу workflow-ref для Full Release Validation
+немає; вибирайте довірений harness, вибираючи ref запуску workflow.
Використовуйте ці варіанти залежно від етапу релізу:
```bash
-# Валідовувати неопубліковану гілку кандидата релізу.
+# Валідувати неопубліковану гілку кандидата на реліз.
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both
-# Валідовувати точний запушений коміт.
+# Валідувати точний запушений коміт.
gh workflow run full-release-validation.yml \
--ref main \
-f ref=<40-char-sha> \
@@ -278,38 +282,38 @@ gh workflow run full-release-validation.yml \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
+ -f evidence_package_spec=openclaw@YYYY.M.D-beta.N \
-f npm_telegram_package_spec=openclaw@YYYY.M.D-beta.N \
-f npm_telegram_provider_mode=mock-openai
```
-Не використовуйте повний umbrella як перший повторний запуск після точкового виправлення. Якщо одне поле
-не проходить, використовуйте збійний дочірній workflow, job, Docker lane, профіль
-пакета, провайдера моделі або QA lane для наступного підтвердження. Повторно запускайте повний
-umbrella лише тоді, коли виправлення змінило спільну оркестрацію релізу або
-зробило попередні докази для всіх полів неактуальними. Фінальний верифікатор umbrella
-повторно перевіряє записані run id дочірніх workflows, тому після успішного повторного запуску
-дочірнього workflow повторно запускайте лише збійний батьківський job
-`Verify full validation`.
+Не використовуйте повну парасольку як перший повторний запуск після точкового виправлення. Якщо один блок
+не пройшов, використовуйте невдалий дочірній workflow, job, Docker lane, профіль пакета, модель
+провайдера або QA-лейн для наступного підтвердження. Повторно запускайте повну парасольку лише тоді, коли
+виправлення змінило спільну оркестрацію релізу або зробило попередні докази для всіх блоків
+неактуальними. Фінальний верифікатор парасольки повторно перевіряє записані run id дочірніх workflow,
+тож після успішного повторного запуску дочірнього workflow повторно запускайте лише
+невдалий батьківський job `Verify full validation`.
### Vitest
-Поле Vitest — це дочірній workflow ручного `CI`. Ручний CI навмисно
-обходить обмеження changed і примусово запускає звичайний граф тестів для
-кандидата релізу: Linux Node shards, bundled-plugin shards, channel contracts, сумісність з Node 22,
-`check`, `check-additional`, build smoke, перевірки документації, Python
+Блок Vitest — це дочірній ручний workflow `CI`. Ручний CI навмисно
+оминає changed scoping і примусово запускає звичайний тестовий граф для
+кандидата на реліз: Linux Node shards, bundled-plugin shards, channel contracts, Node 22
+compatibility, `check`, `check-additional`, build smoke, docs checks, Python
Skills, Windows, macOS, Android і i18n для Control UI.
-Використовуйте це поле, щоб відповісти на запитання «чи пройшло дерево вихідного коду повний звичайний набір тестів?»
+Використовуйте цей блок, щоб відповісти на запитання «чи пройшло дерево вихідного коду повний звичайний набір тестів?»
Це не те саме, що валідація продукту на шляху релізу. Докази, які слід зберігати:
-- Підсумок `Full Release Validation`, що показує URL запущеного `CI`
-- Зелений запуск `CI` на точному цільовому SHA
-- Назви збійних або повільних shard із job `CI` під час розслідування регресій
-- Артефакти таймінгів Vitest, такі як `.artifacts/vitest-shard-timings.json`, коли
+- підсумок `Full Release Validation`, що показує URL запущеного прогону `CI`
+- зелений прогін `CI` на точному цільовому SHA
+- назви shard-ів, що впали або працювали повільно, із job-ів CI під час дослідження регресій
+- артефакти часу Vitest, такі як `.artifacts/vitest-shard-timings.json`, коли
запуск потребує аналізу продуктивності
Запускайте ручний CI безпосередньо лише тоді, коли релізу потрібен детермінований звичайний CI, але
-не Docker, QA Lab, live, крос-ОС або package поля:
+не потрібні блоки Docker, QA Lab, live, cross-OS або Package:
```bash
gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
@@ -317,94 +321,94 @@ gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
### Docker
-Поле Docker розміщене в `OpenClaw Release Checks` через
+Блок Docker знаходиться в `OpenClaw Release Checks` через
`openclaw-live-and-e2e-checks-reusable.yml`, а також через workflow
-`install-smoke` у режимі релізу. Воно валідовує кандидата релізу через упаковані
-Docker-середовища, а не лише через тести на рівні вихідного коду.
+`install-smoke` у режимі релізу. Він валідовує кандидата на реліз через упаковані
+середовища Docker, а не лише через тести на рівні вихідного коду.
Покриття Docker для релізу включає:
-- повний install smoke з увімкненим повільним Bun global install smoke
-- репозиторні E2E-лінії
-- Docker-частини шляху релізу: `core`, `package-update-openai`,
+- повний install smoke з увімкненим повільним smoke глобального встановлення Bun
+- лейни E2E для репозиторію
+- частини Docker для шляху релізу: `core`, `package-update-openai`,
`package-update-anthropic`, `package-update-core`, `plugins-runtime-core`,
`plugins-runtime-install-a`, `plugins-runtime-install-b` і
`bundled-channels`
-- покриття OpenWebUI всередині частини `plugins-runtime-core`, якщо це запитано
-- розділені лінії залежностей bundled-channel у власній частині `bundled-channels`
- замість послідовної all-in-one bundled-channel лінії
-- розділені лінії встановлення/видалення bundled Plugin
+- покриття OpenWebUI всередині частини `plugins-runtime-core`, коли це запитано
+- розділені лейни залежностей bundled-channel у власній частині `bundled-channels`
+ замість послідовного all-in-one лейна bundled-channel
+- розділені лейни встановлення/видалення bundled Plugin
`bundled-plugin-install-uninstall-0` до
`bundled-plugin-install-uninstall-7`
-- набори live/E2E для провайдерів і покриття live-моделей Docker, коли release checks
+- live/E2E набори провайдерів і покриття live-моделей Docker, коли перевірки релізу
включають live-набори
Використовуйте артефакти Docker перед повторним запуском. Планувальник шляху релізу
-вивантажує `.artifacts/docker-tests/` з журналами ліній, `summary.json`, `failures.json`,
-таймінгами фаз, JSON плану планувальника і командами повторного запуску. Для точкового відновлення
-використовуйте `docker_lanes=` у повторно використовуваному workflow live/E2E замість
-повторного запуску всіх частин релізу. Згенеровані команди повторного запуску включають попередні
-`package_artifact_run_id` і підготовлені input образів Docker, коли вони доступні, тому
-збійна лінія може повторно використати той самий tarball і образи GHCR.
+вивантажує `.artifacts/docker-tests/` з логами лейнів, `summary.json`, `failures.json`,
+часом фаз, JSON плану планувальника та командами повторного запуску. Для точкового відновлення
+використовуйте `docker_lanes=` у reusable workflow live/E2E замість
+повторного запуску всіх частин релізу. Згенеровані команди повторного запуску включають попередній
+`package_artifact_run_id` і підготовлені вхідні дані образів Docker, коли вони доступні, щоб
+лейн, що впав, міг повторно використати той самий tarball і образи GHCR.
### QA Lab
-Поле QA Lab також є частиною `OpenClaw Release Checks`. Це релізний бар’єр для
-агентної поведінки та рівня каналів, окремий від механіки пакетів Vitest і Docker.
+Блок QA Lab також є частиною `OpenClaw Release Checks`. Це gate
+агентної поведінки та поведінки на рівні каналів для релізу, окремий від механіки пакетів Vitest і Docker.
Покриття QA Lab для релізу включає:
-- mock parity gate, який порівнює лінію кандидата OpenAI з базовим рівнем Opus 4.6
- за допомогою agentic parity pack
-- швидкий live Matrix QA profile із середовищем `qa-live-shared`
-- live Telegram QA lane з орендою облікових даних Convex CI
+- mock parity gate, що порівнює кандидатний лейн OpenAI з базовим рівнем Opus 4.6
+ за допомогою пакета agentic parity
+- швидкий live-профіль Matrix QA з використанням середовища `qa-live-shared`
+- live-лейн Telegram QA з орендою облікових даних Convex CI
- `pnpm qa:otel:smoke`, коли телеметрія релізу потребує явного локального підтвердження
-Використовуйте це поле, щоб відповісти на запитання «чи правильно поводиться реліз у QA-сценаріях і
-live-потоках каналів?» Під час схвалення релізу зберігайте URL артефактів для ліній parity, Matrix і Telegram.
-Повне покриття Matrix залишається доступним як ручний шардований запуск QA-Lab, а не як
-типова критична для релізу лінія.
+Використовуйте цей блок, щоб відповісти на запитання «чи правильно поводиться реліз у QA-сценаріях і
+live-потоках каналів?» Під час погодження релізу зберігайте URL артефактів для лейнів parity, Matrix і Telegram.
+Повне покриття Matrix залишається доступним як ручний шардований запуск QA-Lab, а не
+як типовий критичний для релізу лейн.
### Package
-Поле Package — це бар’єр для продукту, який можна інсталювати. Воно базується на
-`Package Acceptance` і резолвері
-`scripts/resolve-openclaw-package-candidate.mjs`. Резолвер нормалізує
+Блок Package — це gate для встановлюваного продукту. Його підтримують
+`Package Acceptance` і resolver
+`scripts/resolve-openclaw-package-candidate.mjs`. Resolver нормалізує
кандидата в tarball `package-under-test`, який споживає Docker E2E, валідовує
інвентар пакета, записує версію пакета і SHA-256 та зберігає
-ref обв’язки workflow окремо від ref джерела пакета.
+ref harness workflow окремо від ref джерела пакета.
-Підтримувані джерела кандидатів:
+Підтримувані джерела кандидата:
- `source=npm`: `openclaw@beta`, `openclaw@latest` або точна версія релізу OpenClaw
-- `source=ref`: запакувати довірену гілку, тег або повний SHA коміту `package_ref`
- з вибраною обв’язкою `workflow_ref`
+- `source=ref`: упакувати довірену гілку, тег або повний SHA коміту `package_ref`
+ з вибраним harness `workflow_ref`
- `source=url`: завантажити HTTPS `.tgz` з обов’язковим `package_sha256`
- `source=artifact`: повторно використати `.tgz`, вивантажений іншим запуском GitHub Actions
`OpenClaw Release Checks` запускає Package Acceptance з `source=ref`,
`package_ref=`, `suite_profile=custom`,
`docker_lanes=bundled-channel-deps-compat plugins-offline` і
-`telegram_mode=mock-openai`. Docker-частини шляху релізу покривають
-лінії install, update і plugin-update, що перетинаються; Package Acceptance зберігає
-нативну для артефактів сумісність bundled-channel, офлайн-фікстури Plugin і Telegram
+`telegram_mode=mock-openai`. Частини Docker для шляху релізу покривають
+лейни встановлення, оновлення та оновлення Plugin, що перетинаються; Package Acceptance
+зберігає артефактно-нативну сумісність bundled-channel, офлайн-фікстури Plugin і Telegram
package QA проти того самого визначеного tarball. Це GitHub-native
заміна для більшості покриття package/update, яке раніше вимагало
-Parallels. Крос-ОС release checks усе ще важливі для специфічної для ОС адаптації,
-інсталятора та поведінки платформи, але для валідації package/update продукту слід
-надавати перевагу Package Acceptance.
+Parallels. Cross-OS перевірки релізу все ще важливі для специфічної для ОС поведінки onboarding,
+інсталятора та платформи, але валідація продукту package/update має
+віддавати перевагу Package Acceptance.
Історична поблажливість package-acceptance навмисно обмежена в часі. Пакети до
`2026.4.25` можуть використовувати шлях сумісності для прогалин у метаданих, уже опублікованих
-в npm: приватні записи інвентарю QA, відсутні в tarball, відсутній
-`gateway install --wrapper`, відсутні patch-файли у git-фікстурі, похідній від tarball,
-відсутній збережений `update.channel`, застарілі розташування записів встановлення Plugin,
-відсутність збереження записів встановлення marketplace і міграція метаданих конфігурації під час
-`plugins update`. Пакети після `2026.4.25` повинні відповідати сучасним контрактам пакета;
+у npm: приватні записи інвентарю QA, відсутні в tarball; відсутній
+`gateway install --wrapper`; відсутні patch-файли у git-фікстурі, похідній від tarball;
+відсутній збережений `update.channel`; історичні розташування install-record для Plugin;
+відсутнє збереження install-record marketplace; і міграція метаданих конфігурації під час `plugins update`.
+Пакети після `2026.4.25` мають відповідати сучасним контрактам пакета;
ті самі прогалини призводять до провалу валідації релізу.
Використовуйте ширші профілі Package Acceptance, коли питання релізу стосується
-реального пакета, який можна встановити:
+реального встановлюваного пакета:
```bash
gh workflow run package-acceptance.yml \
@@ -417,43 +421,43 @@ gh workflow run package-acceptance.yml \
Поширені профілі пакета:
-- `smoke`: швидкі лінії інсталяції package/channel/agent, мережі gateway і
+- `smoke`: швидкі лейни package install/channel/agent, мережі Gateway і
перезавантаження конфігурації
-- `package`: контракти package для install/update/plugin без live ClawHub; це типовий варіант для release-check
+- `package`: контракти package install/update/plugin без live ClawHub; це типовий варіант release-check
- `product`: `package` плюс канали MCP, очищення cron/subagent, вебпошук OpenAI
і OpenWebUI
-- `full`: Docker-частини шляху релізу з OpenWebUI
-- `custom`: точний список `docker_lanes` для сфокусованих повторних запусків
+- `full`: частини Docker шляху релізу з OpenWebUI
+- `custom`: точний список `docker_lanes` для точкових повторних запусків
-Для Telegram-підтвердження кандидата пакета увімкніть `telegram_mode=mock-openai` або
+Для доказу Telegram для кандидата пакета вмикайте `telegram_mode=mock-openai` або
`telegram_mode=live-frontier` у Package Acceptance. Workflow передає
-визначений tarball `package-under-test` у Telegram lane; окремий
-workflow Telegram, як і раніше, приймає опубліковану npm-специфікацію для перевірок після публікації.
+визначений tarball `package-under-test` у лейн Telegram; окремий
+workflow Telegram як і раніше приймає специфікацію опублікованого npm для перевірок після публікації.
## Вхідні параметри workflow npm
-`OpenClaw NPM Release` приймає такі керовані оператором input:
+`OpenClaw NPM Release` приймає такі вхідні параметри, контрольовані оператором:
-- `tag`: обов’язковий тег релізу, такий як `v2026.4.2`, `v2026.4.2-1` або
+- `tag`: обов’язковий тег релізу, наприклад `v2026.4.2`, `v2026.4.2-1` або
`v2026.4.2-beta.1`; коли `preflight_only=true`, це також може бути поточний
- повний 40-символьний SHA коміту гілки workflow для preflight лише з валідацією
-- `preflight_only`: `true` лише для валідації/збірки/пакета, `false` для
+ повний 40-символьний SHA коміту гілки workflow для preflight лише з метою валідації
+- `preflight_only`: `true` лише для валідації/збирання/пакета, `false` для
реального шляху публікації
-- `preflight_run_id`: обов’язковий у реальному шляху публікації, щоб workflow повторно використовував
+- `preflight_run_id`: обов’язковий у реальному шляху публікації, щоб workflow повторно використав
підготовлений tarball з успішного запуску preflight
- `npm_dist_tag`: цільовий npm-тег для шляху публікації; за замовчуванням `beta`
-`OpenClaw Release Checks` приймає такі керовані оператором input:
+`OpenClaw Release Checks` приймає такі вхідні параметри, контрольовані оператором:
- `ref`: гілка, тег або повний SHA коміту для валідації. Перевірки, що використовують секрети,
- вимагають, щоб визначений коміт був досяжним із гілки OpenClaw або
+ вимагають, щоб визначений коміт був досяжний з гілки OpenClaw або
тега релізу.
Правила:
-- Теги stable і correction можуть публікуватися або в `beta`, або в `latest`
-- Теги beta prerelease можуть публікуватися лише в `beta`
-- Для `OpenClaw NPM Release` input у вигляді повного SHA коміту дозволений лише коли
+- Stable- і correction-теги можуть публікуватися або в `beta`, або в `latest`
+- Beta prerelease-теги можуть публікуватися лише в `beta`
+- Для `OpenClaw NPM Release` вхідний повний SHA коміту дозволено лише коли
`preflight_only=true`
- `OpenClaw Release Checks` і `Full Release Validation` завжди
призначені лише для валідації
@@ -462,39 +466,39 @@ workflow Telegram, як і раніше, приймає опубліковану
## Послідовність stable npm-релізу
-Під час створення stable npm-релізу:
+Під час випуску stable npm-релізу:
1. Запустіть `OpenClaw NPM Release` з `preflight_only=true`
- - Поки тега ще немає, ви можете використовувати поточний повний SHA коміту гілки workflow
- для dry run workflow preflight лише з валідацією
-2. Виберіть `npm_dist_tag=beta` для звичайного beta-first процесу або `latest` лише
- коли ви навмисно хочете прямої stable-публікації
-3. Запустіть `Full Release Validation` на гілці релізу, тегу релізу або повному
- SHA коміту, коли вам потрібні звичайний CI плюс live prompt cache, Docker, QA Lab,
- Matrix і Telegram покриття з одного ручного workflow
-4. Якщо вам навмисно потрібен лише детермінований звичайний граф тестів, натомість запустіть
- ручний workflow `CI` на ref релізу
+ - До появи тегу можна використовувати поточний повний SHA коміту гілки workflow
+ для dry run workflow preflight лише з метою валідації
+2. Виберіть `npm_dist_tag=beta` для звичайного потоку beta-first або `latest` лише
+ коли ви навмисно хочете пряму stable-публікацію
+3. Запустіть `Full Release Validation` для гілки релізу, тега релізу або повного
+ SHA коміту, коли потрібні звичайний CI плюс покриття live prompt cache, Docker, QA Lab,
+ Matrix і Telegram з одного ручного workflow
+4. Якщо навмисно потрібен лише детермінований звичайний тестовий граф, замість цього запустіть
+ ручний workflow `CI` для ref релізу
5. Збережіть успішний `preflight_run_id`
6. Знову запустіть `OpenClaw NPM Release` з `preflight_only=false`, тим самим
`tag`, тим самим `npm_dist_tag` і збереженим `preflight_run_id`
-7. Якщо реліз потрапив у `beta`, використовуйте приватний
+7. Якщо реліз потрапив у `beta`, використайте приватний
workflow `openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`,
щоб просунути цю stable-версію з `beta` до `latest`
-8. Якщо реліз навмисно було опубліковано одразу в `latest` і `beta`
- має негайно наслідувати ту саму stable-збірку, використовуйте той самий приватний
- workflow, щоб націлити обидва dist-tag на stable-версію, або дозвольте його запланованій
- self-healing синхронізації пересунути `beta` пізніше
+8. Якщо реліз навмисно був опублікований безпосередньо в `latest`, а `beta`
+ має одразу слідувати за тією ж stable-збіркою, використайте той самий приватний
+ workflow, щоб спрямувати обидва dist-tag на stable-версію, або дозвольте його запланованій
+ self-healing синхронізації перемістити `beta` пізніше
-Зміна dist-tag розміщена в приватному репозиторії з міркувань безпеки, тому що вона все ще
+Мутація dist-tag живе в приватному репозиторії з міркувань безпеки, оскільки вона все ще
потребує `NPM_TOKEN`, тоді як публічний репозиторій зберігає публікацію лише через OIDC.
-Це робить як шлях прямої публікації, так і шлях beta-first просування
+Це зберігає і шлях прямої публікації, і шлях просування beta-first
задокументованими та видимими для оператора.
-Якщо супровіднику доводиться перейти до локальної npm-автентифікації, виконуйте будь-які команди
-1Password CLI (`op`) лише в межах окремої tmux-сесії. Не викликайте `op`
-безпосередньо з основної оболонки агента; запуск усередині tmux робить запити,
-сповіщення та обробку OTP спостережуваними й запобігає повторним сповіщенням хоста.
+Якщо мейнтейнеру доводиться повертатися до локальної npm-автентифікації, виконуйте будь-які команди
+1Password CLI (`op`) лише в окремій сесії tmux. Не викликайте `op`
+безпосередньо з основної оболонки агента; запуск усередині tmux робить prompts,
+alerts і обробку OTP спостережуваними та запобігає повторним сповіщенням на хості.
## Публічні посилання
@@ -508,10 +512,10 @@ workflow Telegram, як і раніше, приймає опубліковану
- [`scripts/package-mac-dist.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-dist.sh)
- [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh)
-Супровідники використовують приватну документацію релізів у
+Мейнтейнери використовують приватну документацію релізу в
[`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md)
як фактичний runbook.
## Пов’язане
-- [Канали релізів](/uk/install/development-channels)
+- [Канали релізу](/uk/install/development-channels)
diff --git a/docs/uk/tools/slash-commands.md b/docs/uk/tools/slash-commands.md
index 545e53e53..5d31f5471 100644
--- a/docs/uk/tools/slash-commands.md
+++ b/docs/uk/tools/slash-commands.md
@@ -3,20 +3,20 @@ read_when:
- Використання або налаштування команд чату
- Налагодження маршрутизації команд або дозволів
sidebarTitle: Slash commands
-summary: 'Слеш-команди: текстові проти нативних, конфігурація та підтримувані команди'
+summary: 'Слеш-команди: текстові чи нативні, конфігурація та підтримувані команди'
title: Слеш-команди
x-i18n:
- generated_at: "2026-04-26T08:15:42Z"
+ generated_at: "2026-04-27T21:05:09Z"
model: gpt-5.4
provider: openai
- source_hash: 75bf58d02738e30bfdc00ad1c264b2f066eebd2819f4ea0209f504f279755993
+ source_hash: ce0d9d28e74cd81d0484990dab6a4c83ea03a84d267f78f0488c53552ddcba38
source_path: tools/slash-commands.md
workflow: 15
---
-Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`. Команда чату bash лише для хоста використовує `! ` (з псевдонімом `/bash `).
+Команди обробляє Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, яке починається з `/`. Чат-команда bash лише для хоста використовує `! ` (із псевдонімом `/bash `).
-Коли розмову або тред прив’язано до сесії ACP, звичайний подальший текст маршрутизується до цього harness ACP. Команди керування Gateway все одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` і `/unfocus` залишаються локальними щоразу, коли для цієї поверхні ввімкнено обробку команд.
+Коли розмова або гілка прив’язана до сеансу ACP, звичайний подальший текст маршрутизується до цього ACP harness. Команди керування Gateway усе одно залишаються локальними: `/acp ...` завжди потрапляє до обробника команд OpenClaw ACP, а `/status` і `/unfocus` залишаються локальними всюди, де для цієї поверхні ввімкнено обробку команд.
Є дві пов’язані системи:
@@ -27,16 +27,16 @@ x-i18n:
`/think`, `/fast`, `/verbose`, `/trace`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`.
- - Директиви вилучаються з повідомлення до того, як модель його побачить.
- - У звичайних повідомленнях чату (не лише з директивами) вони трактуються як "вбудовані підказки" і **не** зберігають налаштування сесії.
- - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сесії та повертають підтвердження.
- - Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, використовується лише цей список дозволу; інакше авторизація походить зі списків дозволу каналу/прив’язки плюс `commands.useAccessGroups`. Для неавторизованих відправників директиви трактуються як звичайний текст.
+ - Директиви видаляються з повідомлення до того, як його побачить модель.
+ - У звичайних чат-повідомленнях (не лише з директивами) вони розглядаються як «вбудовані підказки» і **не** зберігають налаштування сеансу.
+ - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сеансі та повертають підтвердження.
+ - Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, використовується лише цей список дозволених; інакше авторизація визначається списками дозволених каналу/спарюванням і `commands.useAccessGroups`. Для неавторизованих відправників директиви обробляються як звичайний текст.
- Лише для відправників зі списку дозволу/авторизованих: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
+ Лише для відправників зі списку дозволених/авторизованих: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
- Вони виконуються негайно, вилучаються до того, як модель побачить повідомлення, а решта тексту продовжує проходити звичайним потоком.
+ Вони виконуються негайно, видаляються до того, як повідомлення побачить модель, а решта тексту проходить звичайним шляхом.
@@ -69,16 +69,16 @@ x-i18n:
```
- Вмикає розбір `/...` у повідомленнях чату. На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити `false`.
+ Вмикає розбір `/...` у чат-повідомленнях. На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити `false`.
- Реєструє нативні команди. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте слеш-команди); ігнорується для провайдерів без нативної підтримки. Щоб перевизначити для окремого провайдера, задайте `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native` (bool або `"auto"`). Значення `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються у застосунку Slack і не видаляються автоматично.
+ Реєструє нативні команди. Auto: увімкнено для Discord/Telegram; вимкнено для Slack (поки ви не додасте slash-команди); ігнорується для провайдерів без нативної підтримки. Щоб перевизначити для конкретного провайдера, установіть `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native` (bool або `"auto"`). Значення `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються в застосунку Slack і не видаляються автоматично.
- Реєструє команди **Skills** нативно, коли це підтримується. Авто: увімкнено для Discord/Telegram; вимкнено для Slack (у Slack потрібно створити слеш-команду для кожного skill). Щоб перевизначити для окремого провайдера, задайте `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills` (bool або `"auto"`).
+ Реєструє нативно команди **Skill**, якщо це підтримується. Auto: увімкнено для Discord/Telegram; вимкнено для Slack (у Slack потрібно створити slash-команду для кожного Skill). Щоб перевизначити для конкретного провайдера, установіть `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills` (bool або `"auto"`).
- Вмикає `! ` для запуску shell-команд хоста (`/bash ` — псевдонім; потребує списків дозволу `tools.elevated`).
+ Вмикає `! ` для виконання команд shell на хості (`/bash ` — псевдонім; потрібні списки дозволених `tools.elevated`).
Керує тим, скільки часу bash чекає перед переходом у фоновий режим (`0` одразу переводить у фон).
@@ -90,7 +90,7 @@ x-i18n:
Вмикає `/mcp` (читає/записує конфігурацію MCP, якою керує OpenClaw, у `mcp.servers`).
- Вмикає `/plugins` (виявлення/статус plugin-ів, а також керування встановленням і ввімкненням/вимкненням).
+ Вмикає `/plugins` (виявлення/стан плагінів, а також встановлення й елементи керування ввімкненням/вимкненням).
Вмикає `/debug` (лише перевизначення під час виконання).
@@ -99,119 +99,121 @@ x-i18n:
Вмикає `/restart`, а також дії інструментів перезапуску gateway.
- Встановлює явний список дозволу власника для поверхонь команд/інструментів, доступних лише власнику. Окремо від `commands.allowFrom`.
+ Задає явний список дозволених для власника для поверхонь команд/інструментів лише для власника. Окремо від `commands.allowFrom`.
- Для кожного каналу: змушує команди лише для власника вимагати **ідентичність власника** для виконання на цій поверхні. Якщо `true`, відправник має або відповідати визначеному кандидату у власники (наприклад, запису в `commands.ownerAllowFrom` або нативним метаданим власника провайдера), або мати внутрішню область доступу `operator.admin` на внутрішньому каналі повідомлень. Підстановний запис у `allowFrom` каналу або порожній/невизначений список кандидатів у власники **не** є достатнім — команди лише для власника в цьому каналі забороняються за замовчуванням. Залишайте це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися лише `ownerAllowFrom` і стандартними списками дозволу команд.
+ Для кожного каналу: змушує команди лише для власника вимагати **ідентичність власника** для виконання на цій поверхні. Якщо `true`, відправник має або відповідати визначеному кандидату у власники (наприклад, запису в `commands.ownerAllowFrom` або нативним метаданим власника провайдера), або мати внутрішню область дії `operator.admin` на внутрішньому каналі повідомлень. Запис-шаблон у `allowFrom` каналу або порожній/невизначений список кандидатів у власники **не** є достатнім — команди лише для власника в цьому каналі за замовчуванням блокуються. Залиште це вимкненим, якщо хочете, щоб команди лише для власника обмежувалися лише `ownerAllowFrom` і стандартними списками дозволених для команд.
- Керує тим, як ідентифікатори власника відображаються в системному prompt.
+ Керує тим, як ідентифікатори власника відображаються в system prompt.
- За потреби задає секрет HMAC, який використовується, коли `commands.ownerDisplay="hash"`.
+ Необов’язково задає секрет HMAC, який використовується, коли `commands.ownerDisplay="hash"`.
- Список дозволу для авторизації команд за провайдером. Якщо налаштовано, це єдине джерело авторизації для команд і директив (списки дозволу каналу/прив’язки та `commands.useAccessGroups` ігноруються). Використовуйте `"*"` як глобальне значення за замовчуванням; ключі для конкретних провайдерів мають пріоритет.
+ Список дозволених за провайдером для авторизації команд. Якщо налаштовано, це єдине джерело авторизації для команд і директив (списки дозволених каналу/спарювання та `commands.useAccessGroups` ігноруються). Використовуйте `"*"` як глобальне значення за замовчуванням; ключі конкретних провайдерів мають вищий пріоритет.
- Застосовує списки дозволу/політики до команд, якщо `commands.allowFrom` не задано.
+ Застосовує списки дозволених/політики для команд, коли `commands.allowFrom` не задано.
## Список команд
Поточне джерело істини:
-- вбудовані core-команди походять із `src/auto-reply/commands-registry.shared.ts`
-- згенеровані dock-команди походять із `src/auto-reply/commands-registry.data.ts`
-- команди plugin-ів походять із викликів `registerCommand()` у plugin-ах
-- фактична доступність у вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених plugin-ів
+- вбудовані базові команди походять із `src/auto-reply/commands-registry.shared.ts`
+- згенеровані команди dock походять із `src/auto-reply/commands-registry.data.ts`
+- команди плагінів походять із викликів `registerCommand()` плагінів
+- фактична доступність у вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених плагінів
-### Вбудовані команди core
+### Вбудовані базові команди
-
- - `/new [model]` запускає нову сесію; `/reset` — псевдонім для скидання.
- - `/reset soft [message]` зберігає поточний transcript, скидає повторно використані ідентифікатори сесій CLI backend і повторно запускає завантаження startup/system-prompt на місці.
- - `/compact [instructions]` стискає контекст сесії. Див. [Compaction](/uk/concepts/compaction).
+
+ - `/new [model]` запускає новий сеанс; `/reset` — псевдонім для скидання.
+ - `/reset soft [message]` зберігає поточний transcript, скидає повторно використані ідентифікатори сеансів CLI backend і повторно запускає завантаження startup/system prompt на місці.
+ - `/compact [instructions]` стискає контекст сеансу. Див. [Compaction](/uk/concepts/compaction).
- `/stop` перериває поточний запуск.
- - `/session idle ` і `/session max-age ` керують строком дії прив’язки до треду.
- - `/export-session [path]` експортує поточну сесію в HTML. Псевдонім: `/export`.
- - `/export-trajectory [path]` експортує JSONL [trajectory bundle](/uk/tools/trajectory) для поточної сесії. Псевдонім: `/trajectory`.
+ - `/session idle ` і `/session max-age ` керують строком дії прив’язки до гілки.
+ - `/export-session [path]` експортує поточний сеанс у HTML. Псевдонім: `/export`.
+ - `/export-trajectory [path]` експортує JSONL [trajectory bundle](/uk/tools/trajectory) для поточного сеансу. Псевдонім: `/trajectory`.
- - `/think ` задає рівень мислення. Варіанти надходять із профілю провайдера активної моделі; поширені рівні: `off`, `minimal`, `low`, `medium` і `high`, а також спеціальні рівні на кшталт `xhigh`, `adaptive`, `max` або бінарний `on` лише там, де це підтримується. Псевдоніми: `/thinking`, `/t`.
+ - `/think ` задає рівень мислення. Варіанти надходять із профілю провайдера активної моделі; поширені рівні — `off`, `minimal`, `low`, `medium` і `high`, а також користувацькі рівні, як-от `xhigh`, `adaptive`, `max`, або двійкове `on` лише там, де це підтримується. Псевдоніми: `/thinking`, `/t`.
- `/verbose on|off|full` перемикає докладний вивід. Псевдонім: `/v`.
- - `/trace on|off` перемикає вивід трасування plugin-ів для поточної сесії.
+ - `/trace on|off` перемикає вивід трасування плагіна для поточного сеансу.
- `/fast [status|on|off]` показує або задає швидкий режим.
- - `/reasoning [on|off|stream]` перемикає видимість reasoning. Псевдонім: `/reason`.
- - `/elevated [on|off|ask|full]` перемикає elevated mode. Псевдонім: `/elev`.
- - `/exec host= security= ask= node=` показує або задає значення exec за замовчуванням.
+ - `/reasoning [on|off|stream]` перемикає видимість міркувань. Псевдонім: `/reason`.
+ - `/elevated [on|off|ask|full]` перемикає режим elevated. Псевдонім: `/elev`.
+ - `/exec host= security= ask= node=` показує або задає типові значення exec.
- `/model [name|#|status]` показує або задає модель.
- `/models [provider] [page] [limit=|size=|all]` перелічує провайдерів або моделі для провайдера.
- `/queue ` керує поведінкою черги (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`), а також параметрами на кшталт `debounce:2s cap:25 drop:summarize`.
-
+
- `/help` показує короткий довідковий підсумок.
- `/commands` показує згенерований каталог команд.
- - `/tools [compact|verbose]` показує, чим поточний агент може користуватися прямо зараз.
- - `/status` показує статус виконання/середовища виконання, зокрема мітки `Execution`/`Runtime` і використання/квоти провайдера, якщо доступно.
- - `/crestodian ` запускає помічник налаштування й відновлення Crestodian із приватного повідомлення власника.
- - `/tasks` перелічує активні/нещодавні фонові завдання для поточної сесії.
+ - `/tools [compact|verbose]` показує, що поточний агент може використовувати просто зараз.
+ - `/status` показує стан виконання/середовища виконання, включно з мітками `Execution`/`Runtime` і використанням/квотою провайдера, якщо доступно.
+ - `/crestodian ` запускає помічник налаштування та відновлення Crestodian із DM власника.
+ - `/tasks` перелічує активні/нещодавні фонові завдання для поточного сеансу.
- `/context [list|detail|json]` пояснює, як збирається контекст.
- `/whoami` показує ваш ідентифікатор відправника. Псевдонім: `/id`.
- `/usage off|tokens|full|cost` керує нижнім колонтитулом використання для кожної відповіді або виводить локальний підсумок вартості.
-
- - `/skill [input]` запускає skill за назвою.
- - `/allowlist [list|add|remove] ...` керує записами списку дозволу. Лише текстовий режим.
- - `/approve ` обробляє запити на підтвердження exec.
- - `/btw ` ставить побічне запитання без зміни майбутнього контексту сесії. Див. [BTW](/uk/tools/btw).
+
+ - `/skill [input]` запускає Skill за назвою.
+ - `/allowlist [list|add|remove] ...` керує записами списку дозволених. Лише текст.
+ - `/approve ` обробляє запити на схвалення exec.
+ - `/btw ` ставить побічне запитання без зміни майбутнього контексту сеансу. Див. [BTW](/uk/tools/btw).
-
- - `/subagents list|kill|log|info|send|steer|spawn` керує запусками subagent-ів для поточної сесії.
- - `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сесіями ACP і параметрами середовища виконання.
- - `/focus ` прив’язує поточний тред Discord або тему/розмову Telegram до цільової сесії.
- - `/unfocus` знімає поточну прив’язку.
- - `/agents` перелічує агентів, прив’язаних до треду, для поточної сесії.
- - `/kill ` перериває один або всі запущені subagent-и.
- - `/steer ` надсилає керуюче повідомлення до запущеного subagent-а. Псевдонім: `/tell`.
+
+ - `/subagents list|kill|log|info|send|steer|spawn` керує запусками sub-agent для поточного сеансу.
+ - `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сеансами ACP і параметрами середовища виконання.
+ - `/focus ` прив’язує поточну гілку Discord або тему/розмову Telegram до цільового сеансу.
+ - `/unfocus` видаляє поточну прив’язку.
+ - `/agents` перелічує агентів, прив’язаних до гілки, для поточного сеансу.
+ - `/kill ` перериває один або всі запущені sub-agent.
+ - `/steer ` надсилає керування запущеному sub-agent. Псевдонім: `/tell`.
-
- - `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потребує `commands.config: true`.
- - `/mcp show|get|set|unset` читає або записує конфігурацію сервера MCP, якою керує OpenClaw, у `mcp.servers`. Лише для власника. Потребує `commands.mcp: true`.
- - `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан plugin-ів. `/plugin` — псевдонім. Запис — лише для власника. Потребує `commands.plugins: true`.
- - `/debug show|set|unset|reset` керує перевизначеннями конфігурації лише під час виконання. Лише для власника. Потребує `commands.debug: true`.
- - `/restart` перезапускає OpenClaw, якщо ввімкнено. За замовчуванням: увімкнено; щоб вимкнути, задайте `commands.restart: false`.
+
+ - `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потрібно `commands.config: true`.
+ - `/mcp show|get|set|unset` читає або записує конфігурацію MCP-сервера, якою керує OpenClaw, у `mcp.servers`. Лише для власника. Потрібно `commands.mcp: true`.
+ - `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан плагіна. `/plugin` — псевдонім. Запис — лише для власника. Потрібно `commands.plugins: true`.
+ - `/debug show|set|unset|reset` керує перевизначеннями конфігурації лише під час виконання. Лише для власника. Потрібно `commands.debug: true`.
+ - `/restart` перезапускає OpenClaw, якщо ввімкнено. Типово: увімкнено; установіть `commands.restart: false`, щоб вимкнути.
- `/send on|off|inherit` задає політику надсилання. Лише для власника.
- `/tts on|off|status|chat|latest|provider|limit|summary|audio|help` керує TTS. Див. [TTS](/uk/tools/tts).
- `/activation mention|always` задає режим активації групи.
- - `/bash ` запускає shell-команду хоста. Лише текстовий режим. Псевдонім: `! `. Потребує `commands.bash: true` і списків дозволу `tools.elevated`.
+ - `/bash ` запускає команду shell на хості. Лише текст. Псевдонім: `! `. Потрібно `commands.bash: true` і списки дозволених `tools.elevated`.
- `!poll [sessionId]` перевіряє фонове завдання bash.
- `!stop [sessionId]` зупиняє фонове завдання bash.
-### Згенеровані dock-команди
+### Згенеровані команди dock
-Dock-команди генеруються з channel plugin-ів із підтримкою нативних команд. Поточний вбудований набір:
+Команди dock генеруються з плагінів каналів із підтримкою нативних команд. Поточний вбудований набір:
- `/dock-discord` (псевдонім: `/dock_discord`)
- `/dock-mattermost` (псевдонім: `/dock_mattermost`)
- `/dock-slack` (псевдонім: `/dock_slack`)
- `/dock-telegram` (псевдонім: `/dock_telegram`)
-### Команди вбудованих plugin-ів
+Використовуйте команди dock із прямого чату, щоб перемкнути маршрут відповіді поточного сеансу на інший пов’язаний канал. Відправник джерела й цільовий співрозмовник мають бути в одній групі `session.identityLinks`, наприклад `["telegram:123", "discord:456"]`.
-Вбудовані plugin-и можуть додавати більше слеш-команд. Поточні вбудовані команди в цьому репозиторії:
+### Команди вбудованих плагінів
-- `/dreaming [on|off|status|help]` перемикає Dreaming пам’яті. Див. [Dreaming](/uk/concepts/dreaming).
-- `/pair [qr|status|pending|approve|cleanup|notify]` керує потоком прив’язки/налаштування пристрою. Див. [Pairing](/uk/channels/pairing).
-- `/phone status|arm [duration]|disarm` тимчасово озброює високоризикові команди вузла телефону.
+Вбудовані плагіни можуть додавати більше slash-команд. Поточні вбудовані команди в цьому репозиторії:
+
+- `/dreaming [on|off|status|help]` перемикає memory dreaming. Див. [Dreaming](/uk/concepts/dreaming).
+- `/pair [qr|status|pending|approve|cleanup|notify]` керує потоком спарювання/налаштування пристрою. Див. [Pairing](/uk/channels/pairing).
+- `/phone status|arm [duration]|disarm` тимчасово вмикає високоризикові команди phone node.
- `/voice status|list [limit]|set ` керує конфігурацією голосу Talk. У Discord назва нативної команди — `/talkvoice`.
-- `/card ...` надсилає набори rich card для LINE. Див. [LINE](/uk/channels/line).
-- `/codex status|models|threads|resume|compact|review|account|mcp|skills` перевіряє та керує вбудованим harness app-server Codex. Див. [Codex harness](/uk/plugins/codex-harness).
+- `/card ...` надсилає попередньо налаштовані rich card для LINE. Див. [LINE](/uk/channels/line).
+- `/codex status|models|threads|resume|compact|review|account|mcp|skills` перевіряє та керує вбудованим app-server harness Codex. Див. [Codex harness](/uk/plugins/codex-harness).
- Команди лише для QQBot:
- `/bot-ping`
- `/bot-version`
@@ -219,83 +221,83 @@ Dock-команди генеруються з channel plugin-ів із підт
- `/bot-upgrade`
- `/bot-logs`
-### Динамічні команди skill-ів
+### Динамічні команди Skill
-Skills, які може викликати користувач, також доступні як слеш-команди:
+Skills, які може викликати користувач, також доступні як slash-команди:
-- `/skill [input]` завжди працює як універсальна точка входу.
-- skills також можуть з’являтися як прямі команди, наприклад `/prose`, коли їх реєструє skill/plugin.
-- реєстрація нативних команд skill-ів керується через `commands.nativeSkills` і `channels..commands.nativeSkills`.
+- `/skill [input]` завжди працює як загальна точка входу.
+- Skills також можуть з’являтися як прямі команди на кшталт `/prose`, коли Skill/плагін їх реєструє.
+- Реєстрація нативних команд Skill керується `commands.nativeSkills` і `channels..commands.nativeSkills`.
-
- - Команди приймають необов’язковий `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- - `/new ` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст трактується як тіло повідомлення.
- - Для повного розподілу використання за провайдерами використовуйте `openclaw status --usage`.
+
+ - Команди приймають необов’язковий `:` між командою й аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
+ - `/new ` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст обробляється як тіло повідомлення.
+ - Для повного розподілу використання провайдера використовуйте `openclaw status --usage`.
- `/allowlist add|remove` потребує `commands.config=true` і враховує `configWrites` каналу.
- - У каналах із кількома обліковими записами `/allowlist --account `, націлений на конфігурацію, і `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису.
- - `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальний підсумок вартості з логів сесій OpenClaw.
- - `/restart` увімкнено за замовчуванням; щоб вимкнути, задайте `commands.restart: false`.
- - `/plugins install ` приймає ті самі специфікації plugin-ів, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:`.
- - `/plugins enable|disable` оновлює конфігурацію plugin-ів і може запросити перезапуск.
+ - У багатoоблікових каналах орієнтовані на конфігурацію `/allowlist --account ` і `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису.
+ - `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальний підсумок вартості з журналів сеансу OpenClaw.
+ - `/restart` увімкнено за замовчуванням; установіть `commands.restart: false`, щоб вимкнути його.
+ - `/plugins install ` приймає ті самі специфікації плагінів, що й `openclaw plugins install`: локальний шлях/архів, npm package або `clawhub:`.
+ - `/plugins enable|disable` оновлює конфігурацію плагіна й може запропонувати перезапуск.
- - Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступна як текстова команда). `join` потребує guild і вибраного голосового/stage-каналу. Потребує `channels.discord.voice` і нативних команд.
- - Команди прив’язки до тредів Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують, щоб ефективні прив’язки до тредів були ввімкнені (`session.threadBindings.enabled` і/або `channels.discord.threadBindings.enabled`).
+ - Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (недоступна як текст). `join` потребує guild і вибраного голосового/stage-каналу. Потрібні `channels.discord.voice` і нативні команди.
+ - Команди прив’язки до гілки Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) вимагають, щоб ефективні прив’язки до гілки були ввімкнені (`session.threadBindings.enabled` і/або `channels.discord.threadBindings.enabled`).
- Довідник команд ACP і поведінка середовища виконання: [ACP agents](/uk/tools/acp-agents).
- - `/verbose` призначено для налагодження та додаткової видимості; у звичайному використанні тримайте його **вимкненим**.
- - `/trace` вужчий за `/verbose`: він показує лише рядки trace/debug, що належать plugin-ам, і не вмикає звичайну докладну балаканину інструментів.
- - `/fast on|off` зберігає перевизначення сесії. Щоб очистити його й повернутися до значень конфігурації за замовчуванням, використовуйте опцію `inherit` в інтерфейсі Sessions.
- - `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних ендпоінтах Responses, тоді як прямі публічні запити Anthropic, зокрема трафік з автентифікацією OAuth, надісланий до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
- - Підсумки помилок інструментів усе одно показуються, коли це доречно, але детальний текст помилки включається лише коли `/verbose` має значення `on` або `full`.
- - `/reasoning`, `/verbose` і `/trace` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє reasoning, вивід інструментів або діагностику plugin-ів, які ви не мали наміру показувати. Краще залишати їх вимкненими, особливо в групових чатах.
+ - `/verbose` призначено для налагодження й додаткової видимості; у звичайному використанні тримайте його **вимкненим**.
+ - `/trace` вужчий за `/verbose`: він показує лише рядки trace/debug, що належать плагіну, і не вмикає звичайний докладний вивід інструментів.
+ - `/fast on|off` зберігає перевизначення для сеансу. Щоб очистити його й повернутися до значень конфігурації за замовчуванням, використовуйте опцію `inherit` в інтерфейсі Sessions.
+ - `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних endpoints Responses, тоді як прямі публічні запити Anthropic, зокрема трафік з автентифікацією OAuth, надісланий до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
+ - Підсумки збоїв інструментів усе одно показуються, коли це доречно, але детальний текст збою включається лише коли `/verbose` має значення `on` або `full`.
+ - `/reasoning`, `/verbose` і `/trace` ризиковані в групових налаштуваннях: вони можуть розкрити внутрішні міркування, вивід інструментів або діагностику плагіна, яку ви не планували показувати. Краще залишати їх вимкненими, особливо в групових чатах.
- - `/model` негайно зберігає нову модель сесії.
- - Якщо агент неактивний, наступний запуск одразу її використовує.
- - Якщо запуск уже активний, OpenClaw позначає живе перемикання як відкладене і перезапускає з новою моделлю лише в чистій точці повторної спроби.
- - Якщо активність інструментів або вивід відповіді вже почалися, відкладене перемикання може залишатися в черзі до пізнішої можливості повторної спроби або до наступного ходу користувача.
- - У локальному TUI `/crestodian [request]` повертає зі звичайного TUI агента до Crestodian. Це окремо від режиму порятунку каналу повідомлень і не надає віддалених повноважень на зміну конфігурації.
+ - `/model` негайно зберігає нову модель сеансу.
+ - Якщо агент неактивний, наступний запуск одразу її використає.
+ - Якщо запуск уже активний, OpenClaw позначає живе перемикання як відкладене й перезапускає на новій моделі лише в чистій точці повторної спроби.
+ - Якщо активність інструмента або вивід відповіді вже почалися, відкладене перемикання може залишатися в черзі до пізнішої можливості повторної спроби або до наступного ходу користувача.
+ - У локальному TUI, `/crestodian [request]` повертає з нормального TUI агента до Crestodian. Це окремо від режиму порятунку каналу повідомлень і не надає віддалених повноважень на зміну конфігурації.
- - **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволу обробляються негайно (обхід черги + моделі).
- - **Обмеження згадкою в групі:** повідомлення лише з командами від відправників зі списку дозволу обходять вимоги згадки.
- - **Вбудовані скорочення (лише для відправників зі списку дозволу):** деякі команди також працюють, коли вони вбудовані у звичайне повідомлення, і вилучаються до того, як модель побачить решту тексту.
- - Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту продовжує проходити звичайним потоком.
+ - **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволених обробляються негайно (в обхід черги й моделі).
+ - **Обмеження згадкою в групі:** повідомлення лише з командами від відправників зі списку дозволених обходять вимоги щодо згадки.
+ - **Вбудовані скорочення (лише для відправників зі списку дозволених):** деякі команди також працюють, коли вбудовані в звичайне повідомлення, і видаляються до того, як модель побачить решту тексту.
+ - Приклад: `hey /status` запускає відповідь зі статусом, а решта тексту проходить звичайним шляхом.
- Наразі: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
- - Неавторизовані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` трактуються як звичайний текст.
+ - Неавторизовані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` обробляються як звичайний текст.
-
- - **Команди skill-ів:** skills типу `user-invocable` доступні як слеш-команди. Імена нормалізуються до `a-z0-9_` (макс. 32 символи); у разі колізій додаються числові суфікси (наприклад, `_2`).
- - `/skill [input]` запускає skill за назвою (корисно, коли обмеження нативних команд не дозволяють мати окрему команду для кожного skill-а).
- - За замовчуванням команди skill-ів пересилаються моделі як звичайний запит.
- - Skills можуть за бажанням оголосити `command-dispatch: tool`, щоб маршрутизувати команду безпосередньо до інструмента (детерміновано, без моделі).
- - Приклад: `/prose` (plugin OpenProse) — див. [OpenProse](/uk/prose).
- - **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і кнопкові меню, коли ви пропускаєте обов’язкові аргументи). Telegram і Slack показують кнопкове меню, коли команда підтримує варіанти вибору, а ви пропускаєте аргумент. Динамічні варіанти вибору визначаються відносно моделі цільової сесії, тож параметри, залежні від моделі, як-от рівні `/think`, слідують за перевизначенням `/model` цієї сесії.
+
+ - **Команди Skill:** Skills із `user-invocable` доступні як slash-команди. Назви санітизуються до `a-z0-9_` (максимум 32 символи); для колізій додаються числові суфікси (наприклад, `_2`).
+ - `/skill [input]` запускає Skill за назвою (корисно, коли обмеження нативних команд не дозволяють мати окрему команду для кожного Skill).
+ - За замовчуванням команди Skill пересилаються моделі як звичайний запит.
+ - Skills можуть за бажанням оголошувати `command-dispatch: tool`, щоб маршрутизувати команду безпосередньо до інструмента (детерміновано, без моделі).
+ - Приклад: `/prose` (плагін OpenProse) — див. [OpenProse](/uk/prose).
+ - **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і меню кнопок, коли ви пропускаєте обов’язкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує варіанти, а ви пропускаєте аргумент. Динамічні варіанти визначаються відносно цільової моделі сеансу, тому специфічні для моделі параметри, як-от рівні `/think`, дотримуються перевизначення `/model` цього сеансу.
## `/tools`
-`/tools` відповідає на питання про середовище виконання, а не про конфігурацію: **чим цей агент може користуватися прямо зараз у цій розмові**.
+`/tools` відповідає на запитання про середовище виконання, а не про конфігурацію: **що цей агент може використовувати прямо зараз у цій розмові**.
-- Типове `/tools` є компактним і оптимізованим для швидкого перегляду.
+- Типовий `/tools` — компактний і оптимізований для швидкого перегляду.
- `/tools verbose` додає короткі описи.
-- Поверхні з нативними командами, які підтримують аргументи, надають той самий перемикач режимів `compact|verbose`.
-- Результати прив’язані до сесії, тому зміна агента, каналу, треду, авторизації відправника або моделі може змінити вивід.
-- `/tools` включає інструменти, які реально доступні під час виконання, зокрема core-інструменти, інструменти під’єднаних plugin-ів і інструменти, що належать каналу.
+- Поверхні з нативними командами, які підтримують аргументи, надають той самий перемикач режиму `compact|verbose`.
+- Результати прив’язані до сеансу, тому зміна агента, каналу, гілки, авторизації відправника або моделі може змінити вивід.
+- `/tools` включає інструменти, які справді доступні під час виконання, зокрема базові інструменти, інструменти підключених плагінів і інструменти, що належать каналу.
-Для редагування профілів і перевизначень використовуйте панель Tools у Control UI або поверхні конфігурації/каталогу, а не сприймайте `/tools` як статичний каталог.
+Для редагування профілів і перевизначень використовуйте панель Tools у Control UI або поверхні конфігурації/каталогу, а не розглядайте `/tools` як статичний каталог.
## Поверхні використання (що де показується)
-- **Використання/квота провайдера** (наприклад, "Claude 80% left") відображається в `/status` для провайдера поточної моделі, коли ввімкнено відстеження використання. OpenClaw нормалізує вікна провайдерів до `% left`; для MiniMax поля відсотка лише залишку інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису chat-моделі разом із міткою плану, позначеною моделлю.
-- **Рядки токенів/кешу** в `/status` можуть повертатися до останнього запису використання transcript-а, якщо живий знімок сесії неповний. Наявні ненульові живі значення все одно мають пріоритет, а резервне використання transcript-а також може відновити мітку активної моделі середовища виконання та більший сумарний обсяг, орієнтований на prompt, коли збережені підсумки відсутні або менші.
-- **Execution проти Runtime:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично виконує сесію: `OpenClaw Pi Default`, `OpenAI Codex`, CLI backend або ACP backend.
+- **Використання/квота провайдера** (приклад: "Claude 80% left") з’являється в `/status` для поточного провайдера моделі, коли відстеження використання ввімкнено. OpenClaw нормалізує вікна провайдерів до `% left`; для MiniMax поля відсотка, що містять лише залишок, інвертуються перед показом, а відповіді `model_remains` надають перевагу запису chat-model плюс мітці тарифного плану з тегом моделі.
+- **Рядки токенів/кешу** в `/status` можуть повертатися до останнього запису використання transcript, коли живий знімок сеансу розріджений. Наявні ненульові живі значення все одно мають пріоритет, а fallback до transcript також може відновити мітку активної моделі середовища виконання плюс більший загальний показник, орієнтований на prompt, коли збережені підсумки відсутні або менші.
+- **Execution проти runtime:** `/status` повідомляє `Execution` для ефективного шляху sandbox і `Runtime` для того, хто фактично виконує сеанс: `OpenClaw Pi Default`, `OpenAI Codex`, CLI backend або ACP backend.
- **Токени/вартість для кожної відповіді** керуються через `/usage off|tokens|full` (додаються до звичайних відповідей).
-- `/model status` стосується **моделей/auth/ендпоінтів**, а не використання.
+- `/model status` стосується **моделей/автентифікації/endpoints**, а не використання.
## Вибір моделі (`/model`)
@@ -314,14 +316,14 @@ Skills, які може викликати користувач, також до
Нотатки:
-- `/model` і `/model list` показують компактний нумерований вибір (сімейство моделей + доступні провайдери).
-- У Discord `/model` і `/models` відкривають інтерактивний засіб вибору з випадними списками провайдерів і моделей, а також кроком Submit.
+- `/model` і `/model list` показують компактний, пронумерований засіб вибору (сімейство моделей + доступні провайдери).
+- У Discord `/model` і `/models` відкривають інтерактивний засіб вибору зі спадними списками провайдера й моделі та кроком Submit.
- `/model <#>` вибирає з цього засобу вибору (і за можливості надає перевагу поточному провайдеру).
-- `/model status` показує докладний вигляд, зокрема налаштований ендпоінт провайдера (`baseUrl`) і режим API (`api`), якщо доступно.
+- `/model status` показує докладний вигляд, зокрема налаштований endpoint провайдера (`baseUrl`) і режим API (`api`), якщо доступно.
## Перевизначення налагодження
-`/debug` дає змогу задавати перевизначення конфігурації **лише під час виконання** (пам’ять, не диск). Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.debug: true`.
+`/debug` дає змогу задавати **перевизначення конфігурації лише під час виконання** (пам’ять, не диск). Лише для власника. Типово вимкнено; увімкніть через `commands.debug: true`.
Приклади:
@@ -337,9 +339,9 @@ Skills, які може викликати користувач, також до
Перевизначення застосовуються негайно до нових читань конфігурації, але **не** записуються в `openclaw.json`. Використовуйте `/debug reset`, щоб очистити всі перевизначення й повернутися до конфігурації на диску.
-## Вивід trace plugin-ів
+## Вивід trace плагіна
-`/trace` дає змогу перемикати **рядки trace/debug plugin-ів у межах сесії** без увімкнення повного verbose-режиму.
+`/trace` дає змогу перемикати **рядки trace/debug плагіна в межах сеансу** без увімкнення повного verbose-режиму.
Приклади:
@@ -351,16 +353,16 @@ Skills, які може викликати користувач, також до
Нотатки:
-- `/trace` без аргументу показує поточний стан trace для сесії.
-- `/trace on` вмикає рядки trace plugin-ів для поточної сесії.
+- `/trace` без аргументу показує поточний стан trace для сеансу.
+- `/trace on` вмикає рядки trace плагіна для поточного сеансу.
- `/trace off` знову їх вимикає.
-- Рядки trace plugin-ів можуть з’являтися в `/status` і як додаткове діагностичне повідомлення після звичайної відповіді асистента.
-- `/trace` не замінює `/debug`; `/debug` як і раніше керує перевизначеннями конфігурації лише під час виконання.
-- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/статусу все ще належить до `/verbose`.
+- Рядки trace плагіна можуть з’являтися в `/status` і як додаткове діагностичне повідомлення після звичайної відповіді асистента.
+- `/trace` не замінює `/debug`; `/debug` і далі керує перевизначеннями конфігурації лише під час виконання.
+- `/trace` не замінює `/verbose`; звичайний докладний вивід інструментів/статусу все ще належить `/verbose`.
## Оновлення конфігурації
-`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.config: true`.
+`/config` записує у вашу конфігурацію на диску (`openclaw.json`). Лише для власника. Типово вимкнено; увімкніть через `commands.config: true`.
Приклади:
@@ -373,12 +375,12 @@ Skills, які може викликати користувач, також до
```
-Перед записом конфігурація проходить валідацію; неприпустимі зміни відхиляються. Оновлення `/config` зберігаються після перезапуску.
+Перед записом конфігурація проходить перевірку; недійсні зміни відхиляються. Оновлення `/config` зберігаються після перезапуску.
## Оновлення MCP
-`/mcp` записує визначення серверів MCP, якими керує OpenClaw, у `mcp.servers`. Лише для власника. За замовчуванням вимкнено; увімкніть через `commands.mcp: true`.
+`/mcp` записує визначення MCP-серверів, якими керує OpenClaw, у `mcp.servers`. Лише для власника. Типово вимкнено; увімкніть через `commands.mcp: true`.
Приклади:
@@ -390,12 +392,12 @@ Skills, які може викликати користувач, також до
```
-`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, якими володіє Pi. Адаптери середовища виконання вирішують, які транспорти реально можна виконувати.
+`/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, якими володіє Pi. Адаптери середовища виконання вирішують, які транспорти справді можна виконати.
-## Оновлення plugin-ів
+## Оновлення плагінів
-`/plugins` дає операторам змогу перевіряти виявлені plugin-и та перемикати їх увімкнення в конфігурації. Для сценаріїв лише читання можна використовувати `/plugin` як псевдонім. За замовчуванням вимкнено; увімкніть через `commands.plugins: true`.
+`/plugins` дає змогу операторам перевіряти виявлені плагіни й перемикати стан увімкнення в конфігурації. Для сценаріїв лише читання можна використовувати `/plugin` як псевдонім. Типово вимкнено; увімкніть через `commands.plugins: true`.
Приклади:
@@ -408,41 +410,41 @@ Skills, які може викликати користувач, також до
```
-- `/plugins list` і `/plugins show` використовують реальне виявлення plugin-ів у поточному робочому просторі разом із конфігурацією на диску.
-- `/plugins enable|disable` оновлює лише конфігурацію plugin-ів; воно не встановлює й не видаляє plugin-и.
+- `/plugins list` і `/plugins show` використовують реальне виявлення плагінів відносно поточного робочого простору та конфігурації на диску.
+- `/plugins enable|disable` оновлює лише конфігурацію плагіна; він не встановлює й не видаляє плагіни.
- Після змін `enable/disable` перезапустіть gateway, щоб застосувати їх.
-## Нотатки щодо поверхонь
+## Нотатки про поверхні
-
- - **Текстові команди** виконуються у звичайній сесії чату (приватні повідомлення спільно використовують `main`, групи мають власну сесію).
- - **Нативні команди** використовують ізольовані сесії:
+
+ - **Текстові команди** виконуються у звичайному чат-сеансі (DM використовують спільний `main`, групи мають власний сеанс).
+ - **Нативні команди** використовують ізольовані сеанси:
- Discord: `agent::discord:slash:`
- - Slack: `agent::slack:slash:` (префікс налаштовується через `channels.slack.slashCommand.sessionPrefix`)
- - Telegram: `telegram:slash:` (націлюється на сесію чату через `CommandTargetSessionKey`)
- - **`/stop`** націлюється на активну сесію чату, щоб можна було перервати поточний запуск.
+ - Slack: `agent::slack:slash:` (префікс можна налаштувати через `channels.slack.slashCommand.sessionPrefix`)
+ - Telegram: `telegram:slash:` (націлюється на чат-сеанс через `CommandTargetSessionKey`)
+ - **`/stop`** націлюється на активний чат-сеанс, щоб можна було перервати поточний запуск.
- `channels.slack.slashCommand` усе ще підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну слеш-команду Slack для кожної вбудованої команди (з тими самими назвами, що й у `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit.
+ `channels.slack.slashCommand` досі підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну slash-команду Slack для кожної вбудованої команди (з тими самими назвами, що й у `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit.
- Виняток для нативних команд Slack: реєструйте `/agentstatus` (а не `/status`), оскільки Slack резервує `/status`. Текстова команда `/status` у повідомленнях Slack усе одно працює.
+ Виняток для нативних команд Slack: реєструйте `/agentstatus` (а не `/status`), тому що Slack резервує `/status`. Текстова `/status` у повідомленнях Slack усе одно працює.
## Побічні запитання BTW
-`/btw` — це швидке **побічне запитання** щодо поточної сесії.
+`/btw` — це швидке **побічне запитання** щодо поточного сеансу.
На відміну від звичайного чату:
-- воно використовує поточну сесію як фоновий контекст,
-- виконується як окремий одноразовий виклик **без інструментів**,
-- не змінює майбутній контекст сесії,
-- не записується в історію transcript,
-- доставляється як живий побічний результат, а не як звичайне повідомлення асистента.
+- воно використовує поточний сеанс як фоновий контекст,
+- воно виконується як окремий одноразовий виклик **без інструментів**,
+- воно не змінює майбутній контекст сеансу,
+- воно не записується в історію transcript,
+- воно доставляється як живий побічний результат, а не як звичайне повідомлення асистента.
Це робить `/btw` корисним, коли вам потрібне тимчасове уточнення, поки основне завдання триває.
@@ -452,10 +454,10 @@ Skills, які може викликати користувач, також до
/btw what are we doing right now?
```
-Див. [BTW Side Questions](/uk/tools/btw) для повного опису поведінки та деталей UX клієнта.
+Див. [BTW Side Questions](/uk/tools/btw), щоб дізнатися повну поведінку та подробиці UX клієнта.
## Пов’язане
-- [Створення skill-ів](/uk/tools/creating-skills)
+- [Створення Skills](/uk/tools/creating-skills)
- [Skills](/uk/tools/skills)
- [Конфігурація Skills](/uk/tools/skills-config)