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)