chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-28 02:33:48 +00:00
parent ab57a6f458
commit 6162bdb61a
2 changed files with 339 additions and 327 deletions

View File

@ -1,14 +1,14 @@
---
read_when:
- Вибір правильного підшляху plugin-sdk для імпорту плагіна
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
- Аудит підшляхів bundled-plugin і допоміжних поверхонь
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями'
summary: 'Каталог підшляхів Plugin SDK: які імпорти де знаходяться, згруповано за областями'
title: Підшляхи Plugin SDK
x-i18n:
generated_at: "2026-04-28T02:07:53Z"
generated_at: "2026-04-28T02:31:40Z"
model: gpt-5.4
provider: openai
source_hash: c56a83c4cf89a40286328bd58079af21a1f5fcf2392c5f6a1e08f873c65e49d6
source_hash: ff81bf9044554635d0b139da2dc0dd6b5e25912ccda1e35fd3c6739d35046369
source_path: plugins/sdk-subpaths.md
workflow: 15
---
@ -16,312 +16,314 @@ x-i18n:
Plugin SDK представлено як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
На цій сторінці наведено каталог найуживаніших підшляхів, згрупованих за призначенням. Згенерований
повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
зарезервовані допоміжні підшляхи bundled-plugin також наведено там, але вони є деталями
реалізації, якщо тільки окрема сторінка документації явно не рекомендує їх.
зарезервовані допоміжні підшляхи bundled-plugin також з’являються там, але є
деталями реалізації, якщо лише сторінка документації явно не просуває їх.
Посібник зі створення плагінів дивіться в [Огляд Plugin SDK](/uk/plugins/sdk-overview).
Посібник з розробки Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview).
## Вхід плагіна
## Точка входу 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/testing` | Широкий сумісний barrel для застарілих тестів плагінів; для нових тестів розширень віддавайте перевагу цільовим тестовим підшляхам |
| `plugin-sdk/plugin-test-api` | Мінімальний побудовник моку `OpenClawPluginApi` для модульних тестів прямої реєстрації плагінів |
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестів життєвого циклу облікових записів каналу, каталогів, конфігурації надсилання, моку runtime, hook і загального контракту каналу |
| `plugin-sdk/channel-target-testing` | Спільний набір тестів для випадків помилок під час визначення цілі каналу |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби для контрактів реєстрації плагіна, маніфесту пакета, публічного артефакту, runtime API, побічних ефектів імпорту та прямого імпорту |
| `plugin-sdk/plugin-test-runtime` | Фікстури для тестів runtime плагіна, реєстру, реєстрації провайдера, майстра налаштування та runtime TaskFlow |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби для контрактів runtime провайдера, автентифікації, виявлення, онбордингу, каталогу, мультимедійних можливостей, web-search/fetch і майстра |
| `plugin-sdk/provider-http-test-mocks` | Опціональні моки HTTP/автентифікації Vitest для тестів провайдера, які використовують `plugin-sdk/provider-http` |
| `plugin-sdk/test-env` | Фікстури середовища тестування, fetch/мережі, live-тестів, тимчасової файлової системи та керування часом |
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури CLI, sandbox, skill, повідомлень агента, системних подій, термінала, chunking, токенів автентифікації та типізованих випадків |
| `plugin-sdk/migration` | Допоміжні засоби для елементів провайдера міграції, такі як `createMigrationItem`, константи причин, маркери статусу елементів, засоби редагування та `summarizeMigrationItems` |
| `plugin-sdk/migration-runtime` | Допоміжні засоби для runtime міграції, такі як `copyMigrationFileItem` і `writeMigrationReport` |
| Підшлях | Ключові експорти |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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/testing` | Широкий сумісний barrel для застарілих тестів Plugin; для нових тестів розширень віддавайте перевагу спеціалізованим тестовим підшляхам |
| `plugin-sdk/plugin-test-api` | Мінімальний конструктор моків `OpenClawPluginApi` для прямих unit-тестів реєстрації Plugin |
| `plugin-sdk/channel-test-helpers` | Життєвий цикл облікового запису каналу, каталог, send-config, мок runtime, hook, bundled channel entry, часова позначка envelope, відповідь pairing та допоміжні засоби тестування загального контракту каналу |
| `plugin-sdk/channel-target-testing` | Спільний набір тестів для випадків помилок під час визначення цілі каналу |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів для реєстрації Plugin, package manifest, публічного артефакту, runtime API, побічних ефектів імпорту та прямого імпорту |
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime Plugin, registry, реєстрації provider, setup wizard і runtime TaskFlow для тестів |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів для runtime provider, auth, discovery, onboard, catalog, можливостей медіа, політики replay, realtime STT live-audio, web-search/fetch і wizard |
| `plugin-sdk/provider-http-test-mocks` | Opt-in моки HTTP/auth для Vitest у тестах provider, що використовують `plugin-sdk/provider-http` |
| `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/network, тимчасового HTTP-сервера, вхідного запиту, live-test, тимчасової файлової системи та керування часом |
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури для CLI, sandbox, skill, agent-message, system-event, перезавантаження модуля, шляху bundled plugin, terminal, chunking, auth-token і typed-case |
| `plugin-sdk/test-node-mocks` | Спеціалізовані допоміжні засоби моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
| `plugin-sdk/migration` | Допоміжні засоби елементів migration provider, такі як `createMigrationItem`, константи причин, маркери статусу елемента, допоміжні засоби редагування та `summarizeMigrationItems` |
| `plugin-sdk/migration-runtime` | Допоміжні засоби runtime migration, такі як `copyMigrationFileItem` і `writeMigrationReport` |
<AccordionGroup>
<Accordion title="Підшляхи каналів">
| Підшлях | Основні експорти |
| Підшлях | Ключові експорти |
| --- | --- |
| `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` | Спільні допоміжні засоби setup wizard, підказки allowlist, конструктори статусу setup |
| `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` | Допоміжні засоби для конфігурації/гейтів дій багатьох облікових записів і резервного використання облікового запису за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ідентифікатора облікового запису |
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного використання облікового запису за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списків облікових записів/дій з обліковими записами |
| `plugin-sdk/account-core` | Допоміжні засоби для конфігурації кількох облікових записів/керування шлюзами дій, допоміжні засоби резервного використання облікового запису за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації 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/bundled-channel-config-schema` | Схеми конфігурації каналів bundled OpenClaw лише для підтримуваних bundled-плагінів |
| `plugin-sdk/channel-config-schema-legacy` | Застарілий псевдонім сумісності для bundled-схем конфігурації каналів |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним bundled-контрактом |
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби для шлюзування авторизації команд |
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та універсальний конструктор |
| `plugin-sdk/bundled-channel-config-schema` | Bundled схеми конфігурації каналів OpenClaw лише для підтримуваних bundled Plugin |
| `plugin-sdk/channel-config-schema-legacy` | Застарілий сумісний псевдонім для bundled схем конфігурації каналів |
| `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/messaging-targets` | Допоміжні засоби для розбору/зіставлення цілей |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації draft stream |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби для маршрутизації вхідних даних + конструктора 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/poll-runtime` | Вузькі допоміжні засоби нормалізації опитувань |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптерів |
| `plugin-sdk/agent-media-payload` | Застарілий побудовник мультимедійного payload агента |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби для binding розмов/потоків, pairing та налаштованих binding |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби для вихідної доставки, ідентичності, делегата надсилання, сесії, форматування та планування payload |
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll |
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок thread та адаптерів |
| `plugin-sdk/agent-media-payload` | Застарілий конструктор payload медіа агента |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби для conversation/thread binding, pairing і configured-binding |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку стану каналу |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy у runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/зведення статусу каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin каналу |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
| `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/group-access` | Спільні допоміжні засоби для рішень щодо group-access |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для direct-DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби семантичного представлення повідомлень, доставки та застарілих інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
| `plugin-sdk/channel-inbound` | Compatibility barrel для допоміжних засобів debounce вхідних даних, зіставлення згадок, політики згадок і envelope |
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних даних |
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок, маркерів згадок і тексту згадок без ширшої поверхні runtime вхідних даних |
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби для політики згадок, маркерів згадок і тексту згадок без ширшої поверхні inbound runtime |
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope |
| `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування каналу |
| `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для відкидання вхідних даних і збоїв typing/ack |
| `plugin-sdk/channel-send-result` | Типи результатів відповідей |
| `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби нативної схеми, збережені для сумісності плагінів |
| `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршрутів, визначення цілей на основі парсера, перетворення thread-id у рядок, dedupe/compact ключів маршрутів, типів parsed-target і порівняння маршрутів/цілей |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
| `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршрутів, визначення цілі на основі parser, перетворення thread-id на рядок, dedupe/compact ключів маршрутів, типів parsed-target і порівняння route/target |
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` |
| `plugin-sdk/channel-contract` | Типи контрактів каналів |
| `plugin-sdk/channel-contract` | Типи контракту каналу |
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-контрактів, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret-цілей |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів |
</Accordion>
<Accordion title="Підшляхи провайдерів">
| Підшлях | Основні експорти |
<Accordion title="Підшляхи Provider">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделей у runtime |
| `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` | Значення за замовчуванням для бекенду CLI + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу API-ключа/запису профілю, такі як `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку змінних середовища автентифікації провайдера |
| `plugin-sdk/lmstudio` | Підтримуваний фасад provider LM Studio для setup, виявлення catalog і підготовки моделі runtime |
| `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад runtime LM Studio для локальних значень сервера за замовчуванням, виявлення моделей, заголовків запитів і допоміжних засобів loaded-model |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби setup для локальних/self-hosted provider |
| `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби setup self-hosted provider, сумісного з OpenAI |
| `plugin-sdk/cli-backend` | Значення за замовчуванням для backend CLI + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для Plugin provider |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби onboarding/profile-write для API-ключів, такі як `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний конструктор auth-result OAuth |
| `plugin-sdk/provider-auth-login` | Спільні інтерактивні допоміжні засоби входу для Plugin provider |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env var для auth provider |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політик replay, допоміжні засоби endpoint провайдерів і нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-runtime` | Hook runtime для розширення каталогу провайдерів і seams реєстру plugin-provider для контрактних тестів |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори replay-policy, допоміжні засоби endpoint provider та допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-runtime` | Хук runtime для розширення catalog provider і шви registry plugin-provider для контрактних тестів |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `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 для провайдерів, яким не потрібне підключення увімкнення плагіна |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, а також scoped-сетери/гетери облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime провайдера web-search |
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/можливостей endpoint provider, помилки HTTP provider і допоміжні засоби multipart form для транскрипції аудіо |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу provider web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/облікових даних для web-search для provider, яким не потрібне підключення enable Plugin |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/облікових даних для web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setters/getters облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешу/runtime provider web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика та допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні допоміжні засоби wrapper для Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, такі як guarded fetch, трансформації transport message і доступні для запису потоки transport event |
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчингу конфігурації онбордингу |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток stream і спільні допоміжні засоби обгорток Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-transport-runtime` | Власні допоміжні засоби транспорту provider, такі як guarded fetch, перетворення transport message і writable event stream транспорту |
| `plugin-sdk/provider-onboard` | Допоміжні засоби patch конфігурації onboarding |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації групи та розбору команд |
</Accordion>
<Accordion title="Підшляхи автентифікації та безпеки">
| Підшлях | Основні експорти |
<Accordion title="Підшляхи auth і безпеки">
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, включно з форматуванням меню динамічних аргументів, допоміжні засоби авторизації відправника |
| `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та автентифікації дій у межах того самого чату |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра нативного exec approval |
| `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки нативного approval |
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення gateway approval |
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження адаптера нативного approval handler для гарячих точок входу каналів |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime для approval handler; віддавайте перевагу вужчим seams адаптера/gateway, якщо їх достатньо |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілі нативного approval + binding облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді exec/plugin approval |
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload exec/plugin approval, допоміжні засоби маршрутизації/runtime нативного approval і допоміжні засоби структурованого відображення approval, такі як `formatApprovalDisplayPath` |
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання dedupe для вхідних відповідей |
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контрактів каналів без широкого testing barrel |
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби native session-target |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби registry команд, включно з форматуванням меню динамічних аргументів, допоміжні засоби авторизації відправника |
| `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth дій у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Власні допоміжні засоби профілю/фільтра approval exec |
| `plugin-sdk/approval-delivery-runtime` | Власні адаптери можливостей/доставки approval |
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення Gateway approval |
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження власного адаптера approval для hot channel entrypoint |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime handler approval; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
| `plugin-sdk/approval-native-runtime` | Власні допоміжні засоби для цілі approval + прив’язки облікового запису |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді на approval exec/plugin |
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload approval exec/plugin, власні допоміжні засоби маршрутизації/runtime approval і допоміжні засоби структурованого відображення approval, такі як `formatApprovalDisplayPath` |
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання dedupe вхідних відповідей |
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контракту каналу без широкого testing barrel |
| `plugin-sdk/command-auth-native` | Власні допоміжні засоби auth команд, форматування меню динамічних аргументів і цілі сесії native |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналів |
| `plugin-sdk/command-surface` | Нормалізація тіла команди та допоміжні засоби command-surface |
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для hot channel path |
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації body команди та command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-контрактів для поверхонь секретів каналів/плагінів |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-контрактів/конфігурації |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів у сталий час і збирання секретів |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору secret-contract для поверхонь секретів channel/plugin |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, шлюзування DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за constant-time і збору секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої поверхні infra runtime |
| `plugin-sdk/ssrf-runtime` | pinned-dispatcher, fetch із захистом від SSRF, помилка SSRF і допоміжні засоби політики SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору секретного вводу |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF, помилка SSRF і політика SSRF |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запиту/цілі Webhook і приведення raw websocket/body |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби для розміру тіла запиту/тайм-ауту |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру body/timeout запиту |
</Accordion>
<Accordion title="Підшляхи runtime і сховища">
| Підшлях | Основні експорти |
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення плагінів |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення Plugin |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/значень за замовчуванням, розбору URL CDP і допоміжних засобів автентифікації browser-control |
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку runtime-context каналу |
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/значень за замовчуванням, розбору URL CDP і допоміжних засобів auth browser-control |
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive плагіна |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy імпорту/binding runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/hook/http/interactive для Plugin |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для Webhook/внутрішніх hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime import/binding, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів |
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версій, виклику аргументів і lazy command-group |
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, CLI RPC Gateway, помилки протоколу Gateway і допоміжні засоби patch стану каналу |
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації плагінів, таких як `OpenClawConfig`, і типів конфігурації каналів/провайдерів |
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації плагіна в runtime, такі як `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway, Gateway CLI RPC, помилок протоколу Gateway і patch статусу каналу |
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації Plugin, таких як `OpenClawConfig` і типи конфігурації channel/provider |
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку plugin-config у runtime, такі як `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної мутації конфігурації, такі як `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, такі як `getRuntimeConfig`, `getRuntimeConfigSnapshot` і сетери тестового знімка |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли bundled-поверхня контракту Telegram недоступна |
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого barrel text-runtime |
| `plugin-sdk/approval-runtime` | Допоміжні засоби approval exec/plugin, побудовники можливостей approval, допоміжні засоби auth/profile, допоміжні засоби нативної маршрутизації/runtime і форматування шляхів структурованого відображення approval |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime вхідних даних/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповідей і міток розмов |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби та маркери історії відповідей короткого вікна, такі як `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, такі як `getRuntimeConfig`, `getRuntimeConfigSnapshot` і setters тестових знімків |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня bundled контракту Telegram недоступна |
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на посилання на файли без широкого barrel `text-runtime` |
| `plugin-sdk/approval-runtime` | Допоміжні засоби approval exec/plugin, конструктори можливостей approval, допоміжні засоби auth/profile, власні допоміжні засоби routing/runtime і форматування шляху структурованого відображення approval |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для inbound/reply, chunking, dispatch, Heartbeat, планувальник reply |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize reply і допоміжні засоби міток conversation |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби коротковіконної історії reply і маркери, такі як `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/Markdown |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій, ключа сесії, updated-at і мутації сховища |
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/завантаження/збереження сховища Cron |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів стану/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/binding облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку стану каналу/облікового запису, значень стану runtime за замовчуванням і метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілі |
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/load/save для сховища Cron |
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth |
| `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/прив’язки облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/облікового запису, значень runtime-state за замовчуванням і метаданих issue |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби resolver цілей |
| `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/tool-payload` | Витягування нормалізованих payload з об’єктів результатів tool |
| `plugin-sdk/tool-send` | Витягування канонічних полів цілі надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасових завантажень |
| `plugin-sdk/request-url` | Витяг рядкових URL із вхідних даних, подібних до fetch/request |
| `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` | Допоміжні засоби logger підсистеми та редагування |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму таблиць Markdown і перетворення |
| `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення моделі/сесії, такі як `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби визначення конфігурації talk-провайдера |
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби визначення конфігурації talk provider |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
| `plugin-sdk/file-lock` | Повторно вхідні допоміжні засоби file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу dedupe з дисковою підтримкою |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесії ACP і dispatch відповідей |
| `plugin-sdk/acp-binding-resolve-runtime` | Визначення binding ACP лише для читання без імпортів запуску життєвого циклу |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
| `plugin-sdk/boolean-param` | Читач параметрів логічних значень із м’яким приведенням |
| `plugin-sdk/file-lock` | Допоміжні засоби реентрантного file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби dedupe-кешу зберігання на диску |
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/сесії ACP і dispatch reply |
| `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язок ACP лише для читання без import запуску життєвого циклу |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента |
| `plugin-sdk/boolean-param` | Гнучкий зчитувач boolean-параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних назв |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та токенів pairing |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою і токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів passive-channel, status і ambient proxy |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповідей команди `/models`/провайдера |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби виведення списку команд skill |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/побудови/серіалізації нативних команд |
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge tool OpenClaw, допоміжні засоби політики tool плану runtime, класифікація результатів terminal, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби reply для команди `/models`/provider |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд skill |
| `plugin-sdk/native-command-registry` | Допоміжні засоби registry/build/serialize власних команд |
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні засоби steer/abort для active-run, допоміжні засоби мосту tool OpenClaw, допоміжні засоби політики runtime-plan tool, класифікація результатів terminal, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I |
| `plugin-sdk/async-lock-runtime` | Допоміжний засіб process-local async lock для невеликих файлів стану runtime |
| `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу |
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності async-задач |
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу dedupe в пам’яті |
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби dedupe-кешу в пам’яті |
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб спорожнення черги очікуваної вихідної доставки |
| `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів до локальних файлів і джерел медіа |
| `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/infra-runtime` | Застарілий compatibility shim; використовуйте спеціалізовані підшляхи runtime вище |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців, подій і trace-context |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби прапорців, подій і 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` | Читач обмеженого тіла відповіді без широкої поверхні media runtime |
| `plugin-sdk/session-binding-runtime` | Поточний стан binding розмови без маршрутизації налаштованого binding або сховищ pairing |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби session-store без широких імпортів запису/обслуговування конфігурації |
| `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту й фільтрація додаткового контексту без широких імпортів config/security |
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації примітивних записів/рядків без імпортів markdown/logging |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і хостів SCP |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконавця retry |
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/робочого простору агента |
| `plugin-sdk/directory-runtime` | Запит/усунення дублікатів каталогів із підтримкою конфігурації |
| `plugin-sdk/runtime-fetch` | Runtime fetch з урахуванням dispatcher без import proxy/guarded-fetch |
| `plugin-sdk/response-limit-runtime` | Зчитувач обмеженого body відповіді без широкої поверхні media runtime |
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки conversation без routing налаштованої прив’язки або сховищ pairing |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби сховища сесій без широких import запису/обслуговування конфігурації |
| `plugin-sdk/context-visibility-runtime` | Допоміжні засоби визначення видимості контексту та фільтрації додаткового контексту без широких import конфігурації/безпеки |
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення й нормалізації primitive record/string без import markdown/logging |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації імені хоста і хоста SCP |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і runner retry |
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
| `plugin-sdk/directory-runtime` | Запит/dedup каталогу на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Підшляхи можливостей і тестування">
| Підшлях | Основні експорти |
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також побудовники media payload |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також конструктори payload медіа |
| `plugin-sdk/media-store` | Вузькі допоміжні засоби сховища медіа, такі як `saveMediaBuffer` |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибору кандидатів і повідомлень про відсутню модель |
| `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, орієнтованих на провайдерів |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як вилучення видимого асистенту тексту, допоміжні засоби рендерингу/chunking/таблиць Markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
| `plugin-sdk/media-understanding` | Типи provider для розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, орієнтовані на provider |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також експорти директив, реєстру, валідації, сумісного з OpenAI побудовника TTS і допоміжних засобів мовлення, орієнтованих на провайдерів |
| `plugin-sdk/speech-core` | Спільні експорти типів провайдерів мовлення, реєстру, директив, нормалізації та допоміжних засобів мовлення |
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket |
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень, а також допоміжні засоби ресурсів зображень/data URL |
| `plugin-sdk/image-generation-core` | Спільні допоміжні засоби типів, failover, auth і реєстру генерації зображень |
| `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики |
| `plugin-sdk/music-generation-core` | Спільні допоміжні засоби типів, failover, пошуку провайдера та розбору model-ref для генерації музики |
| `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео |
| `plugin-sdk/video-generation-core` | Спільні допоміжні засоби типів, failover, пошуку провайдера та розбору model-ref для генерації відео |
| `plugin-sdk/webhook-targets` | Допоміжні засоби реєстру цілей Webhook і встановлення маршрутів |
| `plugin-sdk/speech` | Типи provider мовлення, а також експорти допоміжних засобів директив, registry, валідації, TTS-конструктора, сумісного з OpenAI, і мовлення, орієнтованих на provider |
| `plugin-sdk/speech-core` | Спільні типи provider мовлення, експорти допоміжних засобів registry, директив, нормалізації та мовлення |
| `plugin-sdk/realtime-transcription` | Типи provider транскрипції в реальному часі, допоміжні засоби registry і спільний допоміжний засіб сесії WebSocket |
| `plugin-sdk/realtime-voice` | Типи provider голосу в реальному часі та допоміжні засоби registry |
| `plugin-sdk/image-generation` | Типи provider генерації зображень, а також допоміжні засоби ресурсів зображень/URL даних |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні засоби failover, auth і registry |
| `plugin-sdk/music-generation` | Типи provider/request/result для генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук provider і розбір model-ref |
| `plugin-sdk/video-generation` | Типи provider/request/result для генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук provider і розбір model-ref |
| `plugin-sdk/webhook-targets` | Допоміжні засоби registry цілей Webhook і встановлення маршрутів |
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK |
| `plugin-sdk/testing` | Широкий сумісний barrel для застарілих тестів плагінів. Нові тести розширень мають натомість імпортувати сфокусовані підшляхи SDK, такі як `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для модульних тестів прямої реєстрації плагінів без імпорту bridge допоміжних засобів тестування репозиторію |
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби тестування, орієнтовані на канали, для загальних контрактів дій/налаштування/стану, перевірок каталогів, життєвого циклу запуску облікового запису, thread-ing конфігурації надсилання, моків runtime, проблем стану, вихідної доставки та реєстрації hook |
| `plugin-sdk/channel-target-testing` | Спільний набір перевірок випадків помилок визначення цілі для тестів каналів |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів пакета плагіна, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime провайдера, auth, discovery, onboard, каталогу, майстра, мультимедійних можливостей, web-search/fetch і stream |
| `plugin-sdk/provider-http-test-mocks` | Опціональні моки HTTP/auth для Vitest для тестів провайдера, які використовують `plugin-sdk/provider-http` |
| `plugin-sdk/test-fixtures` | Загальні фікстури захоплення runtime CLI, контексту sandbox, writer для Skills, повідомлень агента, системних подій, тексту термінала, chunking, auth-token і типізованих випадків |
| `plugin-sdk/testing` | Широкий compatibility barrel для застарілих тестів Plugin. Нові тести розширень мають натомість імпортувати спеціалізовані підшляхи SDK, такі як `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для прямих unit-тестів реєстрації Plugin без імпорту мостів допоміжних засобів тестування репозиторію |
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби тестування, орієнтовані на канал, для загальних контрактів actions/setup/status, перевірок каталогу, життєвого циклу запуску облікового запису, threading send-config, моків runtime, issues статусу, вихідної доставки та реєстрації hook |
| `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок визначення цілі для тестів каналів |
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів для package Plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів для runtime provider, auth, discovery, onboard, catalog, wizard, можливостей медіа, політики replay, realtime STT live-audio, web-search/fetch і stream |
| `plugin-sdk/provider-http-test-mocks` | Opt-in моки HTTP/auth для Vitest у тестах provider, що використовують `plugin-sdk/provider-http` |
| `plugin-sdk/test-fixtures` | Загальні фікстури захоплення runtime CLI, контексту sandbox, записувача skill, agent-message, system-event, перезавантаження модуля, шляху bundled plugin, terminal-text, chunking, auth-token і typed-case |
| `plugin-sdk/test-node-mocks` | Спеціалізовані допоміжні засоби моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
</Accordion>
<Accordion title="Підшляхи пам’яті">
| Підшлях | Основні експорти |
| Підшлях | Ключові експорти |
| --- | --- |
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helpers |
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/конфігурації/файлів/допоміжних засобів CLI |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку пам’яті |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і загальні batch/remote helper-и |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до registry, локальний provider і загальні допоміжні засоби batch/remote |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти engine QMD хоста пам’яті |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти engine зберігання хоста пам’яті |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби стану хоста пам’яті |
| `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-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-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до search-manager |
| `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 для доступу до менеджера пошуку |
| `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста пам’яті |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
</Accordion>
<Accordion title="Зарезервовані підшляхи bundled-helper">
| Сімейство | Поточні підшляхи | Призначення |
| --- | --- | --- |
| 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` залишається 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` | Допоміжні засоби підтримки Plugin bundled browser. `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` | Застарілі seams сумісності/допоміжних засобів bundled channel. Нові плагіни мають імпортувати загальні підшляхи SDK або локальні barrel-и плагіна. |
| Допоміжні засоби, специфічні для auth/плагінів | `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` |
| Допоміжні засоби, специфічні для каналу | `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 каналів. Нові 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 можливостей/Plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
@ -329,4 +331,4 @@ x-i18n:
- [Огляд Plugin SDK](/uk/plugins/sdk-overview)
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
- [Створення плагінів](/uk/plugins/building-plugins)
- [Створення Plugin](/uk/plugins/building-plugins)

View File

@ -7,46 +7,47 @@ sidebarTitle: Testing
summary: Утиліти та шаблони тестування для плагінів OpenClaw
title: Тестування Plugin
x-i18n:
generated_at: "2026-04-28T02:07:58Z"
generated_at: "2026-04-28T02:31:35Z"
model: gpt-5.4
provider: openai
source_hash: 264c652d0a857a4e5b570d177011b04318757d30c5169bbcf432c038e6b8b7d5
source_hash: 624b0ea8c50cdb8deaf275654a3ea9211fc8b1b520b596ebebc791e22453689a
source_path: plugins/sdk-testing.md
workflow: 15
---
Довідник з утиліт тестування, шаблонів і lint-контролю для плагінів OpenClaw.
Довідник з утиліт тестування, шаблонів і примусового застосування lint для плагінів OpenClaw.
<Tip>
**Шукаєте приклади тестів?** Практичні посібники містять готові приклади тестів:
**Шукаєте приклади тестів?** Посібники how-to містять готові приклади тестів:
[Тести плагінів каналів](/uk/plugins/sdk-channel-plugins#step-6-test) і
[Тести плагінів провайдерів](/uk/plugins/sdk-provider-plugins#step-6-test).
</Tip>
## Утиліти тестування
**Імпорт мока API Plugin:** `openclaw/plugin-sdk/plugin-test-api`
**Імпорт макета API Plugin:** `openclaw/plugin-sdk/plugin-test-api`
**Імпорт контрактів каналів:** `openclaw/plugin-sdk/channel-contract-testing`
**Імпорт контракту каналу:** `openclaw/plugin-sdk/channel-contract-testing`
**Імпорт допоміжних засобів тестування каналів:** `openclaw/plugin-sdk/channel-test-helpers`
**Імпорт допоміжних засобів тестування каналу:** `openclaw/plugin-sdk/channel-test-helpers`
**Імпорт тестування цілей каналу:** `openclaw/plugin-sdk/channel-target-testing`
**Імпорт тестування цілі каналу:** `openclaw/plugin-sdk/channel-target-testing`
**Імпорт контрактів Plugin:** `openclaw/plugin-sdk/plugin-test-contracts`
**Імпорт контракту Plugin:** `openclaw/plugin-sdk/plugin-test-contracts`
**Імпорт тестування середовища виконання Plugin:** `openclaw/plugin-sdk/plugin-test-runtime`
**Імпорт контрактів провайдерів:** `openclaw/plugin-sdk/provider-test-contracts`
**Імпорт контракту провайдера:** `openclaw/plugin-sdk/provider-test-contracts`
**Імпорт HTTP-моків провайдерів:** `openclaw/plugin-sdk/provider-http-test-mocks`
**Імпорт HTTP-макета провайдера:** `openclaw/plugin-sdk/provider-http-test-mocks`
**Імпорт тестування середовища/мережі:** `openclaw/plugin-sdk/test-env`
**Імпорт загальних фікстур:** `openclaw/plugin-sdk/test-fixtures`
Для нових тестів плагінів віддавайте перевагу наведеним нижче спеціалізованим підшляхам. Широкий
barrel `openclaw/plugin-sdk/testing` підтримується лише для сумісності зі застарілим кодом.
**Імпорт макета вбудованого модуля Node:** `openclaw/plugin-sdk/test-node-mocks`
Для нових тестів плагінів віддавайте перевагу наведеним нижче сфокусованим підшляхам. Широкий barrel `openclaw/plugin-sdk/testing` призначений лише для сумісності зі застарілими рішеннями.
```typescript
import {
@ -61,76 +62,92 @@ import { describePluginRegistrationContract } from "openclaw/plugin-sdk/plugin-t
import { registerSingleProviderPlugin } from "openclaw/plugin-sdk/plugin-test-runtime";
import { describeOpenAIProviderRuntimeContract } from "openclaw/plugin-sdk/provider-test-contracts";
import { getProviderHttpMocks } from "openclaw/plugin-sdk/provider-http-test-mocks";
import { withEnv, withFetchPreconnect } from "openclaw/plugin-sdk/test-env";
import { createCliRuntimeCapture, typedCases } from "openclaw/plugin-sdk/test-fixtures";
import { withEnv, withFetchPreconnect, withServer } from "openclaw/plugin-sdk/test-env";
import {
bundledPluginRoot,
createCliRuntimeCapture,
typedCases,
} from "openclaw/plugin-sdk/test-fixtures";
import { mockNodeBuiltinModule } from "openclaw/plugin-sdk/test-node-mocks";
```
### Доступні експорти
| Export | Призначення |
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `createTestPluginApi` | Створює мінімальний мок API Plugin для прямих модульних тестів реєстрації. Імпортуйте з `plugin-sdk/plugin-test-api` |
| `expectChannelInboundContextContract` | Перевіряє форму вхідного контексту каналу. Імпортуйте з `plugin-sdk/channel-contract-testing` |
| `installChannelOutboundPayloadContractSuite` | Підключає набір контрактних тестів для вихідного payload каналу. Імпортуйте з `plugin-sdk/channel-contract-testing` |
| `createStartAccountContext` | Створює контексти життєвого циклу облікового запису каналу. Імпортуйте з `plugin-sdk/channel-test-helpers` |
| `installChannelActionsContractSuite` | Підключає загальний набір контрактних тестів для дій із повідомленнями каналу. Імпортуйте з `plugin-sdk/channel-test-helpers` |
| `installChannelSetupContractSuite` | Підключає загальний набір контрактних тестів для налаштування каналу. Імпортуйте з `plugin-sdk/channel-test-helpers` |
| `installChannelStatusContractSuite` | Підключає загальний набір контрактних тестів для статусу каналу. Імпортуйте з `plugin-sdk/channel-test-helpers` |
| `expectDirectoryIds` | Перевіряє id директорій із функції списку директорій. Імпортуйте з `plugin-sdk/channel-test-helpers` |
| `describePluginRegistrationContract` | Підключає перевірки контракту реєстрації Plugin. Імпортуйте з `plugin-sdk/plugin-test-contracts` |
| `registerSingleProviderPlugin` | Реєструє один Plugin провайдера в smoke-тестах завантажувача. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `registerProviderPlugin` | Захоплює всі типи провайдерів з одного Plugin. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `registerProviderPlugins` | Захоплює реєстрації провайдерів у кількох Plugin. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `requireRegisteredProvider` | Перевіряє, що колекція провайдерів містить id. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `createRuntimeEnv` | Створює змокане середовище виконання CLI/Plugin. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `createPluginSetupWizardStatus` | Створює допоміжні засоби статусу налаштування для плагінів каналів. Імпортуйте з `plugin-sdk/plugin-test-runtime` |
| `describeOpenAIProviderRuntimeContract` | Підключає перевірки контракту середовища виконання для сімейства провайдерів. Імпортуйте з `plugin-sdk/provider-test-contracts` |
| `expectExplicitVideoGenerationCapabilities` | Перевіряє, що відеопровайдери явно оголошують можливості режиму генерації. Імпортуйте з `plugin-sdk/provider-test-contracts` |
| `expectExplicitMusicGenerationCapabilities` | Перевіряє, що музичні провайдери явно оголошують можливості генерації/редагування. Імпортуйте з `plugin-sdk/provider-test-contracts` |
| `mockSuccessfulDashscopeVideoTask` | Підключає успішну відповідь для відеозавдання, сумісного з DashScope. Імпортуйте з `plugin-sdk/provider-test-contracts` |
| `getProviderHttpMocks` | Надає доступ до опційних Vitest-моків HTTP/auth провайдерів. Імпортуйте з `plugin-sdk/provider-http-test-mocks` |
| `installProviderHttpMockCleanup` | Скидає HTTP/auth-моки провайдерів після кожного тесту. Імпортуйте з `plugin-sdk/provider-http-test-mocks` |
| `installCommonResolveTargetErrorCases` | Спільні тестові сценарії для обробки помилок розв’язання цілей. Імпортуйте з `plugin-sdk/channel-target-testing` |
| `shouldAckReaction` | Перевіряє, чи повинен канал додати ack-реакцію. Імпортуйте з `plugin-sdk/channel-feedback` |
| `removeAckReactionAfterReply` | Видаляє ack-реакцію після доставки відповіді. Імпортуйте з `plugin-sdk/channel-feedback` |
| `createTestRegistry` | Створює фікстуру реєстру плагінів каналів. Імпортуйте з `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `createEmptyPluginRegistry` | Створює порожню фікстуру реєстру плагінів. Імпортуйте з `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `setActivePluginRegistry` | Встановлює фікстуру реєстру для тестів середовища виконання Plugin. Імпортуйте з `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `createRequestCaptureJsonFetch` | Захоплює JSON fetch-запити в тестах допоміжних медіафункцій. Імпортуйте з `plugin-sdk/test-env` |
| `withFetchPreconnect` | Запускає fetch-тести з установленими preconnect-хуками. Імпортуйте з `plugin-sdk/test-env` |
| `withEnv` / `withEnvAsync` | Тимчасово змінює змінні середовища. Імпортуйте з `plugin-sdk/test-env` |
| `createTempHomeEnv` / `withTempDir` | Створює ізольовані файлові фікстури для тестів. Імпортуйте з `plugin-sdk/test-env` |
| `createMockServerResponse` | Створює мінімальний мок відповіді HTTP-сервера. Імпортуйте з `plugin-sdk/test-env` |
| `createCliRuntimeCapture` | Захоплює вивід середовища виконання CLI у тестах. Імпортуйте з `plugin-sdk/test-fixtures` |
| `createSandboxTestContext` | Створює тестові контексти sandbox. Імпортуйте з `plugin-sdk/test-fixtures` |
| `writeSkill` | Записує фікстури Skills. Імпортуйте з `plugin-sdk/test-fixtures` |
| `makeAgentAssistantMessage` | Створює фікстури повідомлень стенограми агента. Імпортуйте з `plugin-sdk/test-fixtures` |
| `peekSystemEvents` / `resetSystemEventsForTest` | Переглядає та скидає фікстури системних подій. Імпортуйте з `plugin-sdk/test-fixtures` |
| `sanitizeTerminalText` | Очищає вивід термінала для перевірок. Імпортуйте з `plugin-sdk/test-fixtures` |
| `countLines` / `hasBalancedFences` | Перевіряє форму chunking-виводу. Імпортуйте з `plugin-sdk/test-fixtures` |
| `runProviderCatalog` | Виконує хук каталогу провайдерів із тестовими залежностями |
| `resolveProviderWizardOptions` | Розв’язує варіанти майстра налаштування провайдера в контрактних тестах |
| `resolveProviderModelPickerEntries` | Розв’язує елементи вибору моделей провайдера в контрактних тестах |
| `buildProviderPluginMethodChoice` | Створює id варіантів майстра провайдера для перевірок |
| `setProviderWizardProvidersResolverForTest` | Впроваджує провайдерів майстра для ізольованих тестів |
| `createProviderUsageFetch` | Створює фікстури fetch для використання провайдера |
| `useFrozenTime` / `useRealTime` | Заморожує та відновлює таймери для тестів, чутливих до часу. Імпортуйте з `plugin-sdk/test-env` |
| `createTestWizardPrompter` | Створює змоканий prompter майстра налаштування |
| `createRuntimeTaskFlow` | Створює ізольований стан runtime TaskFlow |
| `typedCases` | Зберігає літеральні типи для таблично-орієнтованих тестів. Імпортуйте з `plugin-sdk/test-fixtures` |
| Експорт | Призначення |
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `createTestPluginApi` | Створює мінімальний макет API плагіна для прямих unit-тестів реєстрації. Імпорт із `plugin-sdk/plugin-test-api` |
| `expectChannelInboundContextContract` | Перевіряє форму вхідного контексту каналу. Імпорт із `plugin-sdk/channel-contract-testing` |
| `installChannelOutboundPayloadContractSuite` | Додає набір контрактних тестів для вихідного payload каналу. Імпорт із `plugin-sdk/channel-contract-testing` |
| `createStartAccountContext` | Створює контексти життєвого циклу облікового запису каналу. Імпорт із `plugin-sdk/channel-test-helpers` |
| `installChannelActionsContractSuite` | Додає загальний набір контрактних тестів для дій із повідомленнями каналу. Імпорт із `plugin-sdk/channel-test-helpers` |
| `installChannelSetupContractSuite` | Додає загальний набір контрактних тестів для налаштування каналу. Імпорт із `plugin-sdk/channel-test-helpers` |
| `installChannelStatusContractSuite` | Додає загальний набір контрактних тестів для стану каналу. Імпорт із `plugin-sdk/channel-test-helpers` |
| `expectDirectoryIds` | Перевіряє id каталогу з функції списку каталогів. Імпорт із `plugin-sdk/channel-test-helpers` |
| `assertBundledChannelEntries` | Перевіряє, що точки входу вбудованого каналу надають очікуваний публічний контракт. Імпорт із `plugin-sdk/channel-test-helpers` |
| `formatEnvelopeTimestamp` | Форматує детерміновані часові мітки envelope. Імпорт із `plugin-sdk/channel-test-helpers` |
| `expectPairingReplyText` | Перевіряє текст відповіді для pairing каналу та витягує його код. Імпорт із `plugin-sdk/channel-test-helpers` |
| `describePluginRegistrationContract` | Додає перевірки контракту реєстрації Plugin. Імпорт із `plugin-sdk/plugin-test-contracts` |
| `registerSingleProviderPlugin` | Реєструє один плагін провайдера в smoke-тестах завантажувача. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `registerProviderPlugin` | Захоплює всі типи провайдерів з одного плагіна. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `registerProviderPlugins` | Захоплює реєстрації провайдерів у кількох плагінах. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `requireRegisteredProvider` | Перевіряє, що колекція провайдерів містить id. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `createRuntimeEnv` | Створює макетоване середовище виконання CLI/плагіна. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `createPluginSetupWizardStatus` | Створює допоміжні засоби стану майстра налаштування для плагінів каналів. Імпорт із `plugin-sdk/plugin-test-runtime` |
| `describeOpenAIProviderRuntimeContract` | Додає перевірки контракту середовища виконання для сімейства провайдерів. Імпорт із `plugin-sdk/provider-test-contracts` |
| `expectPassthroughReplayPolicy` | Перевіряє, що політики повторного відтворення провайдера пропускають інструменти та метадані, які належать провайдеру. Імпорт із `plugin-sdk/provider-test-contracts` |
| `runRealtimeSttLiveTest` | Запускає live-тест провайдера realtime STT зі спільними аудіофікстурами. Імпорт із `plugin-sdk/provider-test-contracts` |
| `normalizeTranscriptForMatch` | Нормалізує вивід live-транскрипту перед нечіткими перевірками. Імпорт із `plugin-sdk/provider-test-contracts` |
| `expectExplicitVideoGenerationCapabilities` | Перевіряє, що відеопровайдери явно оголошують можливості режиму генерації. Імпорт із `plugin-sdk/provider-test-contracts` |
| `expectExplicitMusicGenerationCapabilities` | Перевіряє, що музичні провайдери явно оголошують можливості генерації/редагування. Імпорт із `plugin-sdk/provider-test-contracts` |
| `mockSuccessfulDashscopeVideoTask` | Додає відповідь успішного відеозавдання, сумісного з DashScope. Імпорт із `plugin-sdk/provider-test-contracts` |
| `getProviderHttpMocks` | Надає доступ до opt-in макетів Vitest для HTTP/auth провайдера. Імпорт із `plugin-sdk/provider-http-test-mocks` |
| `installProviderHttpMockCleanup` | Скидає HTTP/auth-макети провайдера після кожного тесту. Імпорт із `plugin-sdk/provider-http-test-mocks` |
| `installCommonResolveTargetErrorCases` | Спільні тестові випадки для обробки помилок розв’язання цілі. Імпорт із `plugin-sdk/channel-target-testing` |
| `shouldAckReaction` | Перевіряє, чи має канал додати ack-реакцію. Імпорт із `plugin-sdk/channel-feedback` |
| `removeAckReactionAfterReply` | Видаляє ack-реакцію після доставки відповіді. Імпорт із `plugin-sdk/channel-feedback` |
| `createTestRegistry` | Створює фікстуру реєстру плагінів каналу. Імпорт із `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `createEmptyPluginRegistry` | Створює порожню фікстуру реєстру плагінів. Імпорт із `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `setActivePluginRegistry` | Встановлює фікстуру реєстру для runtime-тестів плагіна. Імпорт із `plugin-sdk/plugin-test-runtime` або `plugin-sdk/channel-test-helpers` |
| `createRequestCaptureJsonFetch` | Захоплює JSON-запити fetch у тестах медіадопоміжних засобів. Імпорт із `plugin-sdk/test-env` |
| `withServer` | Запускає тести з тимчасовим локальним HTTP-сервером. Імпорт із `plugin-sdk/test-env` |
| `createMockIncomingRequest` | Створює мінімальний об’єкт вхідного HTTP-запиту. Імпорт із `plugin-sdk/test-env` |
| `withFetchPreconnect` | Запускає fetch-тести зі встановленими preconnect-хуками. Імпорт із `plugin-sdk/test-env` |
| `withEnv` / `withEnvAsync` | Тимчасово змінює змінні середовища. Імпорт із `plugin-sdk/test-env` |
| `createTempHomeEnv` / `withTempHome` / `withTempDir` | Створює ізольовані фікстури файлової системи для тестів. Імпорт із `plugin-sdk/test-env` |
| `createMockServerResponse` | Створює мінімальний макет відповіді HTTP-сервера. Імпорт із `plugin-sdk/test-env` |
| `createCliRuntimeCapture` | Захоплює вивід середовища виконання CLI у тестах. Імпорт із `plugin-sdk/test-fixtures` |
| `importFreshModule` | Імпортує модуль ESM зі свіжим query-token, щоб обійти кеш модуля. Імпорт із `plugin-sdk/test-fixtures` |
| `bundledPluginRoot` / `bundledPluginFile` | Визначає шляхи до фікстур вихідного коду або dist вбудованого плагіна. Імпорт із `plugin-sdk/test-fixtures` |
| `mockNodeBuiltinModule` | Встановлює вузькі макети Vitest для вбудованих модулів Node. Імпорт із `plugin-sdk/test-node-mocks` |
| `createSandboxTestContext` | Створює тестові контексти sandbox. Імпорт із `plugin-sdk/test-fixtures` |
| `writeSkill` | Записує фікстури Skills. Імпорт із `plugin-sdk/test-fixtures` |
| `makeAgentAssistantMessage` | Створює фікстури повідомлень транскрипту агента. Імпорт із `plugin-sdk/test-fixtures` |
| `peekSystemEvents` / `resetSystemEventsForTest` | Переглядає та скидає фікстури системних подій. Імпорт із `plugin-sdk/test-fixtures` |
| `sanitizeTerminalText` | Очищає текст термінала для перевірок. Імпорт із `plugin-sdk/test-fixtures` |
| `countLines` / `hasBalancedFences` | Перевіряє форму chunking-виводу. Імпорт із `plugin-sdk/test-fixtures` |
| `runProviderCatalog` | Виконує хук каталогу провайдера з тестовими залежностями |
| `resolveProviderWizardOptions` | Визначає варіанти майстра налаштування провайдера в контрактних тестах |
| `resolveProviderModelPickerEntries` | Визначає елементи вибору моделей провайдера в контрактних тестах |
| `buildProviderPluginMethodChoice` | Створює id варіантів майстра провайдера для перевірок |
| `setProviderWizardProvidersResolverForTest` | Інжектує провайдери майстра для ізольованих тестів |
| `createProviderUsageFetch` | Створює фікстури fetch використання провайдера |
| `useFrozenTime` / `useRealTime` | Заморожує та відновлює таймери для чутливих до часу тестів. Імпорт із `plugin-sdk/test-env` |
| `createTestWizardPrompter` | Створює макетований prompter майстра налаштування |
| `createRuntimeTaskFlow` | Створює ізольований стан runtime TaskFlow |
| `typedCases` | Зберігає літеральні типи для таблично-керованих тестів. Імпорт із `plugin-sdk/test-fixtures` |
Набори контрактних тестів для вбудованих плагінів також використовують підшляхи SDK для тестування для допоміжних засобів тестових фікстур реєстру, маніфесту, публічних артефактів і runtime. Набори лише для core, які залежать від вбудованого інвентаря OpenClaw, залишаються в `src/plugins/contracts`.
Нові тести розширень тримайте на документованому спеціалізованому підшляху SDK, наприклад
Набори контрактних тестів для вбудованих плагінів також використовують підшляхи тестування SDK для допоміжних засобів тестування лише для тестів: реєстру, маніфесту, публічних артефактів і runtime-фікстур. Набори, призначені лише для core і залежні від вбудованого inventory OpenClaw, залишаються в `src/plugins/contracts`.
Тримайте нові тести розширень на задокументованому сфокусованому підшляху SDK, наприклад
`plugin-sdk/plugin-test-api`, `plugin-sdk/channel-contract-testing`,
`plugin-sdk/channel-test-helpers`, `plugin-sdk/plugin-test-contracts`,
`plugin-sdk/plugin-test-runtime`, `plugin-sdk/provider-test-contracts`,
`plugin-sdk/provider-http-test-mocks`, `plugin-sdk/test-env` або
`plugin-sdk/test-fixtures`, замість імпортування широкого суміснісного barrel `plugin-sdk/testing`,
файлів репозиторію `src/**` або напряму мостів репозиторію `test/helpers/plugins/*`.
`plugin-sdk/test-fixtures`, замість імпорту широкого compatibility barrel
`plugin-sdk/testing`, файлів репозиторію `src/**` або напряму мостів репозиторію `test/helpers/plugins/*`.
### Типи
Спеціалізовані підшляхи тестування також повторно експортують типи, корисні у тестових файлах:
Сфокусовані підшляхи тестування також повторно експортують типи, корисні у файлах тестів:
```typescript
import type {
@ -141,10 +158,9 @@ import type { OpenClawConfig } from "openclaw/plugin-sdk/config-types";
import type { MockFn, PluginRuntime, RuntimeEnv } from "openclaw/plugin-sdk/plugin-test-runtime";
```
## Тестування розв’язання цілей
## Тестування розв’язання цілі
Використовуйте `installCommonResolveTargetErrorCases`, щоб додати стандартні сценарії помилок для
розв’язання цілей каналу:
Використовуйте `installCommonResolveTargetErrorCases`, щоб додати стандартні випадки помилок для розв’язання цілі каналу:
```typescript
import { describe } from "vitest";
@ -153,13 +169,13 @@ import { installCommonResolveTargetErrorCases } from "openclaw/plugin-sdk/channe
describe("my-channel target resolution", () => {
installCommonResolveTargetErrorCases({
resolveTarget: ({ to, mode, allowFrom }) => {
// Your channel's target resolution logic
// Логіка розв’язання цілі вашого каналу
return myChannelResolveTarget({ to, mode, allowFrom });
},
implicitAllowFrom: ["user1", "user2"],
});
// Add channel-specific test cases
// Додайте специфічні для каналу тестові випадки
it("should resolve @username targets", () => {
// ...
});
@ -170,26 +186,20 @@ describe("my-channel target resolution", () => {
### Тестування контрактів реєстрації
Модульні тести, які передають вручну написаний мок `api` до `register(api)`, не перевіряють
ворота прийняття завантажувача OpenClaw. Додайте принаймні один smoke-тест на основі завантажувача
для кожної поверхні реєстрації, від якої залежить ваш Plugin, особливо для хуків і
ексклюзивних можливостей, таких як пам’ять.
Unit-тести, які передають власноруч написаний макет `api` до `register(api)`, не перевіряють acceptance gates завантажувача OpenClaw. Додайте щонайменше один smoke-тест із підтримкою завантажувача для кожної поверхні реєстрації, від якої залежить ваш плагін, особливо для хуків і ексклюзивних можливостей, таких як пам’ять.
Справжній завантажувач відхиляє реєстрацію Plugin, якщо бракує потрібних метаданих або якщо
Plugin викликає API можливості, якою він не володіє. Наприклад,
`api.registerHook(...)` вимагає назву хука, а
`api.registerMemoryCapability(...)` вимагає, щоб маніфест Plugin або експортований запис
оголошував `kind: "memory"`.
Реальний завантажувач відхиляє реєстрацію плагіна, якщо бракує обов’язкових метаданих або якщо плагін викликає API можливості, якою він не володіє. Наприклад,
`api.registerHook(...)` вимагає ім’я хука, а
`api.registerMemoryCapability(...)` вимагає, щоб маніфест плагіна або експортована точка входу оголошували `kind: "memory"`.
### Тестування доступу до runtime-конфігурації
### Тестування доступу до конфігурації runtime
Віддавайте перевагу спільному моку runtime Plugin з `openclaw/plugin-sdk/channel-test-helpers`
під час тестування вбудованих плагінів каналів. Його застарілі моки `runtime.config.loadConfig()` і
`runtime.config.writeConfigFile(...)` за замовчуванням викидають помилку, щоб тести виявляли нове
використання API сумісності. Перевизначайте ці моки лише тоді, коли тест
явно покриває застарілу поведінку сумісності.
Під час тестування вбудованих плагінів каналів віддавайте перевагу спільному макету runtime плагіна з `openclaw/plugin-sdk/channel-test-helpers`.
Його застарілі макети `runtime.config.loadConfig()` і
`runtime.config.writeConfigFile(...)` за замовчуванням генерують помилку, щоб тести виявляли нове використання compatibility API. Перевизначайте ці макети лише тоді, коли тест
явно покриває застарілу behavior сумісності.
### Модульне тестування плагіна каналу
### Unit-тестування плагіна каналу
```typescript
import { describe, it, expect, vi } from "vitest";
@ -219,13 +229,13 @@ describe("my-channel plugin", () => {
const inspection = myPlugin.setup.inspectAccount(cfg, undefined);
expect(inspection.configured).toBe(true);
expect(inspection.tokenStatus).toBe("available");
// No token value exposed
// Значення токена не розкривається
expect(inspection).not.toHaveProperty("token");
});
});
```
### Модульне тестування плагіна провайдера
### Unit-тестування плагіна провайдера
```typescript
import { describe, it, expect } from "vitest";
@ -234,7 +244,7 @@ describe("my-provider plugin", () => {
it("should resolve dynamic models", () => {
const model = myProvider.resolveDynamicModel({
modelId: "custom-model-v2",
// ... context
// ... контекст
});
expect(model.id).toBe("custom-model-v2");
@ -245,7 +255,7 @@ describe("my-provider plugin", () => {
it("should return catalog when API key is available", async () => {
const result = await myProvider.catalog.run({
resolveProviderApiKey: () => ({ apiKey: "test-key" }),
// ... context
// ... контекст
});
expect(result?.provider?.models).toHaveLength(2);
@ -253,9 +263,9 @@ describe("my-provider plugin", () => {
});
```
### Мокування runtime Plugin
### Макетування runtime плагіна
Для коду, який використовує `createPluginRuntimeStore`, мокуйте runtime у тестах:
Для коду, який використовує `createPluginRuntimeStore`, макетуйте runtime у тестах:
```typescript
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
@ -266,42 +276,42 @@ const store = createPluginRuntimeStore<PluginRuntime>({
errorMessage: "test runtime not set",
});
// In test setup
// У налаштуванні тесту
const mockRuntime = {
agent: {
resolveAgentDir: vi.fn().mockReturnValue("/tmp/agent"),
// ... other mocks
// ... інші макети
},
config: {
current: vi.fn(() => ({}) as const),
mutateConfigFile: vi.fn(),
replaceConfigFile: vi.fn(),
},
// ... other namespaces
// ... інші простори імен
} as unknown as PluginRuntime;
store.setRuntime(mockRuntime);
// After tests
// Після тестів
store.clearRuntime();
```
### Тестування з per-instance stub
### Тестування з per-instance stubs
Віддавайте перевагу per-instance stub замість мутації прототипу:
Віддавайте перевагу per-instance stubs замість мутації прототипу:
```typescript
// Preferred: per-instance stub
// Рекомендовано: per-instance stub
const client = new MyChannelClient();
client.sendMessage = vi.fn().mockResolvedValue({ id: "msg-1" });
// Avoid: prototype mutation
// Уникайте: мутація прототипу
// MyChannelClient.prototype.sendMessage = vi.fn();
```
## Контрактні тести (плагіни в репозиторії)
Вбудовані плагіни мають контрактні тести, які перевіряють належність реєстрації:
Вбудовані плагіни мають контрактні тести, які перевіряють право власності на реєстрацію:
```bash
pnpm test -- src/plugins/contracts/
@ -310,9 +320,9 @@ pnpm test -- src/plugins/contracts/
Ці тести перевіряють:
- Які плагіни реєструють які провайдери
- Які плагіни реєструють які мовленнєві провайдери
- Які плагіни реєструють які speech-провайдери
- Коректність форми реєстрації
- Відповідність runtime-контракту
- Відповідність контракту runtime
### Запуск scoped-тестів
@ -330,36 +340,36 @@ pnpm test -- src/plugins/contracts/auth.contract.test.ts
pnpm test -- src/plugins/contracts/runtime.contract.test.ts
```
## Lint-контроль (плагіни в репозиторії)
## Примусове застосування lint (плагіни в репозиторії)
Три правила перевіряються через `pnpm check` для плагінів у репозиторії:
Три правила примусово перевіряються через `pnpm check` для плагінів у репозиторії:
1. **Без монолітних імпортів із кореня** -- кореневий barrel `openclaw/plugin-sdk` відхиляється
2. **Без прямих імпортів `src/`** -- плагіни не можуть напряму імпортувати `../../src/`
3. **Без самоімпортів** -- плагіни не можуть імпортувати власний підшлях `plugin-sdk/<name>`
1. **Без монолітних імпортів із root** -- root barrel `openclaw/plugin-sdk` відхиляється
2. **Без прямих імпортів із `src/`** -- плагіни не можуть напряму імпортувати `../../src/`
3. **Без self-imports** -- плагіни не можуть імпортувати власний підшлях `plugin-sdk/<name>`
Зовнішні плагіни не підпадають під ці lint-правила, але дотримуватися тих самих
На зовнішні плагіни ці правила lint не поширюються, але дотримуватися тих самих
шаблонів рекомендується.
## Конфігурація тестування
## Конфігурація тестів
OpenClaw використовує Vitest із порогами покриття V8. Для тестів плагінів:
```bash
# Run all tests
# Запустити всі тести
pnpm test
# Run specific plugin tests
# Запустити тести конкретного плагіна
pnpm test -- <bundled-plugin-root>/my-channel/src/channel.test.ts
# Run with a specific test name filter
# Запустити з фільтром за конкретною назвою тесту
pnpm test -- <bundled-plugin-root>/my-channel/ -t "resolves account"
# Run with coverage
# Запустити з покриттям
pnpm test:coverage
```
Якщо локальні запуски спричиняють тиск на пам’ять:
Якщо локальні запуски створюють тиск на пам’ять:
```bash
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test
@ -368,6 +378,6 @@ OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test
## Пов’язане
- [Огляд SDK](/uk/plugins/sdk-overview) -- правила імпорту
- [Плагіни каналів SDK](/uk/plugins/sdk-channel-plugins) -- інтерфейс плагінів каналів
- [Плагіни провайдерів SDK](/uk/plugins/sdk-provider-plugins) -- хуки плагінів провайдерів
- [Плагіни каналів SDK](/uk/plugins/sdk-channel-plugins) -- інтерфейс плагіна каналу
- [Плагіни провайдерів SDK](/uk/plugins/sdk-provider-plugins) -- хуки плагіна провайдера
- [Створення плагінів](/uk/plugins/building-plugins) -- посібник для початку роботи