diff --git a/docs/uk/plugins/sdk-overview.md b/docs/uk/plugins/sdk-overview.md index 6fdcf9921..90fe86f6a 100644 --- a/docs/uk/plugins/sdk-overview.md +++ b/docs/uk/plugins/sdk-overview.md @@ -1,16 +1,16 @@ --- read_when: - Вам потрібно знати, з якого підшляху SDK імпортувати - - Вам потрібен довідник з усіх методів реєстрації в OpenClawPluginApi + - Вам потрібен довідник для всіх методів реєстрації в OpenClawPluginApi - Ви шукаєте конкретний експорт SDK sidebarTitle: SDK Overview -summary: Карта імпорту, довідник API реєстрації та архітектура SDK +summary: Карта імпортів, довідник API реєстрації та архітектура SDK title: Огляд Plugin SDK x-i18n: - generated_at: "2026-04-07T06:54:42Z" + generated_at: "2026-04-07T07:39:30Z" model: gpt-5.4 provider: openai - source_hash: 533bc3027ed8ad50b706518a4f58e75f6ef717fc8b36f242e928cae54d20985f + source_hash: 9f05178454058038cd69a58bc8392e2574a48a61fbaef9b7db9eba2ffa9f1374 source_path: plugins/sdk-overview.md workflow: 15 --- @@ -18,10 +18,10 @@ x-i18n: # Огляд Plugin SDK Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка є -довідником з **того, що імпортувати** і **що можна реєструвати**. +довідником для **що імпортувати** і **що можна реєструвати**. - **Шукаєте покроковий посібник?** + **Шукаєте практичний посібник?** - Перший плагін? Почніть із [Getting Started](/uk/plugins/building-plugins) - Плагін каналу? Див. [Channel Plugins](/uk/plugins/sdk-channel-plugins) - Плагін провайдера? Див. [Provider Plugins](/uk/plugins/sdk-provider-plugins) @@ -36,37 +36,37 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry"; import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core"; ``` -Кожен підшлях — це невеликий самодостатній модуль. Це пришвидшує запуск і -запобігає проблемам із циклічними залежностями. Для специфічних для каналів -хелперів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; а -`openclaw/plugin-sdk/core` залишайте для ширшої поверхні umbrella та спільних -хелперів, таких як `buildChannelConfigSchema`. +Кожен підшлях — це невеликий самодостатній модуль. Це зберігає швидкий запуск і +запобігає проблемам із циклічними залежностями. Для специфічних до каналу +допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` +залишайте для ширшої узагальненої поверхні та спільних допоміжних засобів, таких як +`buildChannelConfigSchema`. -Не додавайте й не використовуйте зручні шари з назвами провайдерів, такі як +Не додавайте і не використовуйте зручні шви з іменами провайдерів, такі як `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`, `openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або -допоміжні шари з брендингом каналів. Вбудовані плагіни мають компонувати -загальні підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а -ядро має або використовувати ці локальні barrel-файли плагіна, або додавати -вузький загальний контракт SDK, якщо потреба справді є міжканальною. +допоміжні шви з брендингом каналу. Вбудовані плагіни мають компонувати +загальні підшляхи SDK всередині власних barrel-файлів `api.ts` або `runtime-api.ts`, а ядро +має або використовувати ці локальні для плагіна barrel-файли, або додавати вузький загальний SDK +контракт, коли потреба справді є міжканальною. -Згенерована карта експортів усе ще містить невеликий набір допоміжних шарів -для вбудованих плагінів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, +Згенерована карта експортів усе ще містить невеликий набір допоміжних +швів вбудованих плагінів, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Ці -підшляхи існують лише для підтримки та сумісності вбудованих плагінів; їх -навмисно не включено до загальної таблиці нижче, і вони не є рекомендованим +підшляхи існують лише для супроводу вбудованих плагінів і сумісності; вони +навмисно не включені до загальної таблиці нижче і не є рекомендованим шляхом імпорту для нових сторонніх плагінів. ## Довідник підшляхів Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із -понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`. +понад 200 підшляхів міститься у `scripts/lib/plugin-sdk-entrypoints.json`. -Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому -згенерованому списку. Розглядайте їх як поверхні деталей реалізації/сумісності, -якщо лише сторінка документації явно не визначає одну з них як публічну. +Зарезервовані допоміжні підшляхи вбудованих плагінів усе ще з’являються в цьому згенерованому списку. +Ставтеся до них як до поверхонь деталей реалізації/сумісності, якщо лише сторінка документації +явно не просуває один із них як публічний. -### Точка входу плагіна +### Вхідна точка плагіна | Підшлях | Ключові експорти | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | @@ -82,276 +82,277 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core"; | `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | | `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) | | `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/setup` | Спільні хелпери майстра налаштування, запити allowlist, побудовники статусу налаштування | + | `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, запити allowlist, побудовники статусу налаштування | | `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` | | `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` | | `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` | - | `plugin-sdk/account-core` | Хелпери багатокористувацької конфігурації/action-gate, хелпери fallback для облікового запису за замовчуванням | - | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, хелпери нормалізації account-id | - | `plugin-sdk/account-resolution` | Пошук облікових записів + хелпери fallback за замовчуванням | - | `plugin-sdk/account-helpers` | Вузькі хелпери списку облікових записів/дій з обліковими записами | + | `plugin-sdk/account-core` | Допоміжні засоби багатокористувацької конфігурації/керування шлюзами дій, допоміжні засоби резервного облікового запису за замовчуванням | + | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id | + | `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + резервного вибору за замовчуванням | + | `plugin-sdk/account-helpers` | Вузькі допоміжні засоби списку облікових записів/дій облікових записів | | `plugin-sdk/channel-pairing` | `createChannelPairingController` | | `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` | | `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` | - | `plugin-sdk/channel-config-schema` | Типи схеми конфігурації каналу | - | `plugin-sdk/telegram-command-config` | Хелпери нормалізації/валідації користувацьких команд Telegram із fallback на вбудований контракт | + | `plugin-sdk/channel-config-schema` | Типи схем конфігурації каналу | + | `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram із резервним використанням вбудованого контракту | | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` | | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` | - | `plugin-sdk/inbound-envelope` | Спільні хелпери побудови route та envelope для вхідних повідомлень | - | `plugin-sdk/inbound-reply-dispatch` | Спільні хелпери запису та диспетчеризації вхідних повідомлень | - | `plugin-sdk/messaging-targets` | Хелпери розбору/зіставлення цілей | - | `plugin-sdk/outbound-media` | Спільні хелпери завантаження вихідних медіа | - | `plugin-sdk/outbound-runtime` | Хелпери делегування вихідної ідентичності/надсилання | - | `plugin-sdk/thread-bindings-runtime` | Хелпери життєвого циклу та адаптера для прив’язок потоків | - | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіапейлоада агента | - | `plugin-sdk/conversation-runtime` | Хелпери прив’язки розмови/потоку, pairing та configured-binding | - | `plugin-sdk/runtime-config-snapshot` | Хелпер знімка конфігурації runtime | - | `plugin-sdk/runtime-group-policy` | Хелпери визначення group-policy у runtime | - | `plugin-sdk/channel-status` | Спільні хелпери знімка/підсумку стану каналу | - | `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу | - | `plugin-sdk/channel-config-writes` | Хелпери авторизації запису конфігурації каналу | + | `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби побудови вхідного маршруту + envelope | + | `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних даних | + | `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей | + | `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа | + | `plugin-sdk/outbound-runtime` | Допоміжні засоби ідентичності/делегування надсилання вихідних даних | + | `plugin-sdk/thread-bindings-runtime` | Життєвий цикл прив’язок потоків і допоміжні засоби адаптерів | + | `plugin-sdk/agent-media-payload` | Застарілий побудовник медіапейлоаду агента | + | `plugin-sdk/conversation-runtime` | Прив’язка розмови/потоку, pairинг і допоміжні засоби налаштованих прив’язок | + | `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації runtime | + | `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення групової політики runtime | + | `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/підсумку статусу каналу | + | `plugin-sdk/channel-config-primitives` | Вузькі примітиви config-schema каналу | + | `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу | | `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагіна каналу | - | `plugin-sdk/allowlist-config-edit` | Хелпери читання/редагування конфігурації allowlist | - | `plugin-sdk/group-access` | Спільні хелпери рішень щодо group-access | - | `plugin-sdk/direct-dm` | Спільні хелпери auth/guard для прямих DM | - | `plugin-sdk/interactive-runtime` | Хелпери нормалізації/редукції інтерактивного reply payload | - | `plugin-sdk/channel-inbound` | Хелпери debounce для вхідних повідомлень, зіставлення згадок, mention-policy та envelope | - | `plugin-sdk/channel-send-result` | Типи результатів reply | + | `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist | + | `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо доступу до груп | + | `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямих DM | + | `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/редукції інтерактивних payload відповіді | + | `plugin-sdk/channel-inbound` | Допоміжні засоби debounce вхідних даних, зіставлення згадок, політики згадок і допоміжні засоби envelope | + | `plugin-sdk/channel-send-result` | Типи результатів відповіді | | `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` | - | `plugin-sdk/channel-targets` | Хелпери розбору/зіставлення цілей | - | `plugin-sdk/channel-contract` | Типи контракту каналу | + | `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення цілей | + | `plugin-sdk/channel-contract` | Типи контрактів каналу | | `plugin-sdk/channel-feedback` | Підключення feedback/reaction | - | `plugin-sdk/channel-secret-runtime` | Вузькі хелпери secret-контракту, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби контракту секретів, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи цілей секретів | | Підшлях | Ключові експорти | | --- | --- | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | - | `plugin-sdk/provider-setup` | Кураторські хелпери налаштування локальних/self-hosted провайдерів | - | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані хелпери налаштування self-hosted провайдерів, сумісних з OpenAI | + | `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локальних/self-hosted провайдерів | + | `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted провайдера, сумісного з OpenAI | | `plugin-sdk/cli-backend` | Значення за замовчуванням для CLI backend + константи watchdog | - | `plugin-sdk/provider-auth-runtime` | Хелпери визначення API-ключів у runtime для плагінів провайдерів | - | `plugin-sdk/provider-auth-api-key` | Хелпери онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` | - | `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth auth | - | `plugin-sdk/provider-auth-login` | Спільні хелпери інтерактивного входу для плагінів провайдерів | - | `plugin-sdk/provider-env-vars` | Хелпери пошуку env vars для auth провайдера | + | `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API-ключа в runtime для плагінів провайдерів | + | `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` | + | `plugin-sdk/provider-auth-result` | Стандартний побудовник OAuth auth-result | + | `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для плагінів провайдерів | + | `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var для auth провайдера | | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` | - | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники replay-policy, хелпери endpoint провайдера та хелпери нормалізації model-id, такі як `normalizeNativeXaiModelId` | + | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політики replay, допоміжні засоби endpoint провайдерів та допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Загальні хелпери HTTP/endpoint capability для провайдера | - | `plugin-sdk/provider-web-fetch` | Хелпери реєстрації/кешування web-fetch провайдера | - | `plugin-sdk/provider-web-search-contract` | Вузькі хелпери контракту конфігурації/облікових даних web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних | - | `plugin-sdk/provider-web-search` | Хелпери реєстрації/кешування/runtime для web-search провайдера | - | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також хелпери сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-http` | Загальні допоміжні засоби для HTTP/endpoint можливостей провайдерів | + | `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` | + | `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch провайдерів | + | `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-сетери/гетери облікових даних | + | `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime для web-search провайдерів | + | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + diagnostics, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | | `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні | - | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper та спільні хелпери wrapper для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-onboard` | Хелпери патчів конфігурації онбордингу | - | `plugin-sdk/global-singleton` | Хелпери process-local singleton/map/cache | + | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper та спільні допоміжні обгортки Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | + | `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу | + | `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/command-auth` | `resolveControlCommandGate`, хелпери реєстру команд, хелпери авторизації відправника | - | `plugin-sdk/approval-auth-runtime` | Хелпери визначення approver та auth дій у тому самому чаті | - | `plugin-sdk/approval-client-runtime` | Хелпери профілю/фільтра native exec approval | + | `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника | + | `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth дій у тому самому чаті | + | `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval | | `plugin-sdk/approval-delivery-runtime` | Адаптери native approval capability/delivery | - | `plugin-sdk/approval-native-runtime` | Хелпери native approval target + account-binding | - | `plugin-sdk/approval-reply-runtime` | Хелпери payload відповіді для approval exec/plugin | - | `plugin-sdk/command-auth-native` | Native command auth + хелпери native session-target | - | `plugin-sdk/command-detection` | Спільні хелпери виявлення команд | - | `plugin-sdk/command-surface` | Хелпери нормалізації command-body та command-surface | + | `plugin-sdk/approval-native-runtime` | Допоміжні засоби цілей native approval + прив’язки облікового запису | + | `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді для exec/plugin approval | + | `plugin-sdk/command-auth-native` | Допоміжні засоби native command auth + native session-target | + | `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд | + | `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та поверхні команди | | `plugin-sdk/allow-from` | `formatAllowFromLowercase` | - | `plugin-sdk/channel-secret-runtime` | Вузькі хелпери збирання secret-контракту для поверхонь secret каналу/плагіна | - | `plugin-sdk/secret-ref-runtime` | Вузькі хелпери `coerceSecretRef` і типізації SecretRef для парсингу secret-контракту/конфігурації | - | `plugin-sdk/security-runtime` | Спільні хелпери trust, DM gating, external-content і збирання secret | - | `plugin-sdk/ssrf-policy` | Хелпери policy для SSRF щодо allowlist хостів і приватних мереж | - | `plugin-sdk/ssrf-runtime` | Хелпери pinned-dispatcher, fetch із захистом SSRF та policy SSRF | - | `plugin-sdk/secret-input` | Хелпери парсингу secret input | - | `plugin-sdk/webhook-ingress` | Хелпери запитів/цілей webhook | - | `plugin-sdk/webhook-request-guards` | Хелпери для розміру body/timeout запиту | + | `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збору контрактів секретів для поверхонь секретів каналу/плагіна | + | `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізація SecretRef для розбору secret-contract/config | + | `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту та збору секретів | + | `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж | + | `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із захистом SSRF і політики SSRF | + | `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input | + | `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей webhook | + | `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру тіла запиту/тайм-ауту | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/runtime` | Широкі хелпери runtime/logging/backup/установлення плагінів | - | `plugin-sdk/runtime-env` | Вузькі хелпери runtime env, logger, timeout, retry і backoff | + | `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/plugin-install | + | `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff | | `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 import/binding для runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | - | `plugin-sdk/process-runtime` | Хелпери виконання процесів | - | `plugin-sdk/cli-runtime` | Хелпери форматування CLI, очікування та версії | - | `plugin-sdk/gateway-runtime` | Хелпери клієнта gateway і патчів status каналу | - | `plugin-sdk/config-runtime` | Хелпери завантаження/запису конфігурації | - | `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня контракту вбудованого Telegram недоступна | - | `plugin-sdk/approval-runtime` | Хелпери approval для exec/plugin, побудовники approval-capability, хелпери auth/profile, native routing/runtime | - | `plugin-sdk/reply-runtime` | Спільні runtime-хелпери для inbound/reply, chunking, dispatch, heartbeat, planner відповіді | - | `plugin-sdk/reply-dispatch-runtime` | Вузькі хелпери dispatch/finalize відповіді | - | `plugin-sdk/reply-history` | Спільні хелпери коротковіконної history відповіді, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/interactive плагінів | + | `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра webhook/internal hook | + | `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy runtime import/binding, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` | + | `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів | + | `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій | + | `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта gateway та патчів статусу каналу | + | `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації | + | `plugin-sdk/telegram-command-config` | Нормалізація імен/описів команд Telegram та перевірки на дублікати/конфлікти, навіть коли поверхня контракту вбудованого Telegram недоступна | + | `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, auth/profile, native routing/runtime | + | `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, heartbeat, планувальник відповідей | + | `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповідей | + | `plugin-sdk/reply-history` | Спільні допоміжні засоби коротковіконної історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` | | `plugin-sdk/reply-reference` | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Вузькі хелпери chunking тексту/markdown | - | `plugin-sdk/session-store-runtime` | Хелпери шляху сховища сесій + updated-at | - | `plugin-sdk/state-paths` | Хелпери шляхів до каталогу state/OAuth | - | `plugin-sdk/routing` | Хелпери route/session-key/account binding, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | - | `plugin-sdk/status-helpers` | Спільні хелпери підсумку status каналу/облікового запису, значення runtime-state за замовчуванням і хелпери метаданих issues | - | `plugin-sdk/target-resolver-runtime` | Спільні хелпери визначення target | - | `plugin-sdk/string-normalization-runtime` | Хелпери нормалізації slug/рядків | - | `plugin-sdk/request-url` | Витягує URL-рядки з fetch/request-подібних вхідних даних | - | `plugin-sdk/run-command` | Runner команд із таймером і нормалізованими результатами stdout/stderr | - | `plugin-sdk/param-readers` | Спільні читачі параметрів tool/CLI | - | `plugin-sdk/tool-send` | Витягує канонічні поля цілі надсилання з аргументів tool | - | `plugin-sdk/temp-path` | Спільні хелпери шляху до тимчасового завантаження | - | `plugin-sdk/logging-core` | Хелпери logger підсистеми та редагування чутливих даних | - | `plugin-sdk/markdown-table-runtime` | Хелпери режиму таблиць Markdown | - | `plugin-sdk/json-store` | Невеликі хелпери читання/запису JSON state | - | `plugin-sdk/file-lock` | Повторно вхідні хелпери file-lock | - | `plugin-sdk/persistent-dedupe` | Хелпери disk-backed dedupe cache | - | `plugin-sdk/acp-runtime` | ACP runtime/session і хелпери reply-dispatch | - | `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми runtime-конфігурації агента | - | `plugin-sdk/boolean-param` | Нестрогий читач boolean-параметрів | - | `plugin-sdk/dangerous-name-runtime` | Хелпери визначення збігів небезпечних назв | - | `plugin-sdk/device-bootstrap` | Хелпери bootstrap пристрою та токенів pairing | - | `plugin-sdk/extension-shared` | Спільні примітиви helper для passive-channel, status і ambient proxy | - | `plugin-sdk/models-provider-runtime` | Хелпери відповіді `/models` command/provider | - | `plugin-sdk/skill-commands-runtime` | Хелпери переліку Skills-команд | - | `plugin-sdk/native-command-registry` | Хелпери реєстру/build/serialize native command | - | `plugin-sdk/provider-zai-endpoint` | Хелпери визначення endpoint Z.AI | - | `plugin-sdk/infra-runtime` | Хелпери system event/heartbeat | - | `plugin-sdk/collection-runtime` | Невеликі хелпери bounded cache | - | `plugin-sdk/diagnostic-runtime` | Хелпери diagnostic flag і event | - | `plugin-sdk/error-runtime` | Хелпери графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` | - | `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy та хелпери pinned lookup | - | `plugin-sdk/host-runtime` | Хелпери нормалізації hostname і SCP host | - | `plugin-sdk/retry-runtime` | Хелпери конфігурації retry і retry runner | - | `plugin-sdk/agent-runtime` | Хелпери каталогу/ідентичності/workspace агента | - | `plugin-sdk/directory-runtime` | Запит/dedup каталогу на основі конфігурації | + | `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown | + | `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сесій + updated-at | + | `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів state/OAuth | + | `plugin-sdk/routing` | Допоміжні засоби маршруту/ключа сесії/прив’язки облікового запису, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` | + | `plugin-sdk/status-helpers` | Спільні допоміжні засоби підсумку статусу каналу/облікового запису, значення стану runtime за замовчуванням і допоміжні засоби метаданих проблем | + | `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби визначення цілей | + | `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків | + | `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних вхідних даних | + | `plugin-sdk/run-command` | Виконавець команд із таймінгом і нормалізованими результатами stdout/stderr | + | `plugin-sdk/param-readers` | Загальні читачі параметрів tool/CLI | + | `plugin-sdk/tool-send` | Витяг канонічних полів цілі надсилання з аргументів tool | + | `plugin-sdk/temp-path` | Спільні допоміжні засоби шляхів тимчасових завантажень | + | `plugin-sdk/logging-core` | Допоміжні засоби logger підсистеми та редагування чутливих даних | + | `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму Markdown-таблиць | + | `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state | + | `plugin-sdk/file-lock` | Допоміжні засоби re-entrant file-lock | + | `plugin-sdk/persistent-dedupe` | Допоміжні засоби кешу дедуплікації з дисковим зберіганням | + | `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і reply-dispatch | + | `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента | + | `plugin-sdk/boolean-param` | Гнучкий читач булевих параметрів | + | `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення зіставлення небезпечних імен | + | `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` | Допоміжні засоби списку команд Skills | + | `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native-команд | + | `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.A.I | + | `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/heartbeat | + | `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу | + | `plugin-sdk/diagnostic-runtime` | Допоміжні засоби diagnostic flag і event | + | `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` | + | `plugin-sdk/fetch-runtime` | Допоміжні засоби wrapped fetch, proxy і pinned lookup | + | `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host | + | `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконавця retry | + | `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента | + | `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів на основі конфігурації | | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/media-runtime` | Спільні хелпери fetch/transform/store для медіа, а також побудовники медіапейлоадів | - | `plugin-sdk/media-generation-runtime` | Спільні хелпери failover для генерації медіа, вибір кандидатів і повідомлення про відсутні моделі | - | `plugin-sdk/media-understanding` | Типи провайдера media understanding і provider-facing експорти helper для зображень/аудіо | - | `plugin-sdk/text-runtime` | Спільні хелпери text/markdown/logging, такі як видалення видимого для помічника тексту, рендер/chunking/table-хелпери Markdown, хелпери редагування чутливих даних, хелпери directive-tag і утиліти безпечного тексту | - | `plugin-sdk/text-chunking` | Хелпер chunking вихідного тексту | - | `plugin-sdk/speech` | Типи speech-провайдера та provider-facing хелпери directive, registry і validation | - | `plugin-sdk/speech-core` | Спільні типи speech-провайдера, registry, directive і хелпери нормалізації | - | `plugin-sdk/realtime-transcription` | Типи провайдера realtime transcription і хелпери registry | - | `plugin-sdk/realtime-voice` | Типи провайдера realtime voice і хелпери registry | - | `plugin-sdk/image-generation` | Типи провайдера генерації зображень | - | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, failover, auth і хелпери registry | - | `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/webhook-path` | Хелпери нормалізації шляху webhook | - | `plugin-sdk/web-media` | Спільні хелпери завантаження віддалених/локальних медіа | - | `plugin-sdk/zod` | Повторно експортований `zod` для користувачів plugin SDK | + | `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store медіа, а також побудовники медіапейлоадів | + | `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель | + | `plugin-sdk/media-understanding` | Типи провайдерів media understanding і provider-facing експорти допоміжних засобів для зображень/аудіо | + | `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту/markdown/logging, такі як видалення тексту, видимого асистенту, допоміжні засоби render/chunking/table для markdown, редагування чутливих даних, допоміжні засоби тегів директив і утиліти безпечного тексту | + | `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту | + | `plugin-sdk/speech` | Типи speech-провайдерів і provider-facing допоміжні засоби директив, реєстру та валідації | + | `plugin-sdk/speech-core` | Спільні типи speech-провайдерів, допоміжні засоби реєстру, директив і нормалізації | + | `plugin-sdk/realtime-transcription` | Типи провайдерів realtime transcription і допоміжні засоби реєстру | + | `plugin-sdk/realtime-voice` | Типи провайдерів realtime voice і допоміжні засоби реєстру | + | `plugin-sdk/image-generation` | Типи провайдерів генерації зображень | + | `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, failover, auth і допоміжні засоби реєстру | + | `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики | + | `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби failover, пошук провайдера і розбір model-ref | + | `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео | + | `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби failover, пошук провайдера і розбір model-ref | + | `plugin-sdk/webhook-targets` | Реєстр цілей webhook і допоміжні засоби встановлення маршрутів | + | `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху webhook | + | `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа | + | `plugin-sdk/zod` | Повторно експортований `zod` для користувачів Plugin SDK | | `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` | | Підшлях | Ключові експорти | | --- | --- | - | `plugin-sdk/memory-core` | Поверхня helper memory-core для вбудованих модулів manager/config/file/CLI | - | `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексації/пошуку пам’яті | + | `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/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 engine хоста пам’яті | | `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті | | `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті | - | `plugin-sdk/memory-core-host-multimodal` | Мультимодальні хелпери хоста пам’яті | - | `plugin-sdk/memory-core-host-query` | Хелпери запитів хоста пам’яті | - | `plugin-sdk/memory-core-host-secret` | Secret-хелпери хоста пам’яті | - | `plugin-sdk/memory-core-host-events` | Хелпери журналу подій хоста пам’яті | - | `plugin-sdk/memory-core-host-status` | Хелпери статусу хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-cli` | Хелпери CLI runtime хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-core` | Основні runtime-хелпери хоста пам’яті | - | `plugin-sdk/memory-core-host-runtime-files` | Хелпери файлів/runtime хоста пам’яті | - | `plugin-sdk/memory-host-core` | Нейтральний щодо постачальника alias для основних runtime-хелперів хоста пам’яті | - | `plugin-sdk/memory-host-events` | Нейтральний щодо постачальника alias для хелперів журналу подій хоста пам’яті | - | `plugin-sdk/memory-host-files` | Нейтральний щодо постачальника alias для хелперів файлів/runtime хоста пам’яті | - | `plugin-sdk/memory-host-markdown` | Спільні хелпери керованого Markdown для плагінів, суміжних із пам’яттю | - | `plugin-sdk/memory-host-search` | Active memory runtime facade для доступу до search-manager | - | `plugin-sdk/memory-host-status` | Нейтральний щодо постачальника alias для хелперів статусу хоста пам’яті | - | `plugin-sdk/memory-lancedb` | Поверхня helper memory-lancedb для вбудованих модулів | + | `plugin-sdk/memory-core-host-multimodal` | Допоміжні засоби multimodal хоста пам’яті | + | `plugin-sdk/memory-core-host-query` | Допоміжні засоби query хоста пам’яті | + | `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті | + | `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті | + | `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті | + | `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби files/runtime хоста пам’яті | + | `plugin-sdk/memory-host-core` | Нейтральний до вендора псевдонім для допоміжних засобів core runtime хоста пам’яті | + | `plugin-sdk/memory-host-events` | Нейтральний до вендора псевдонім для допоміжних засобів журналу подій хоста пам’яті | + | `plugin-sdk/memory-host-files` | Нейтральний до вендора псевдонім для допоміжних засобів files/runtime хоста пам’яті | + | `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби керованого markdown для memory-adjacent плагінів | + | `plugin-sdk/memory-host-search` | Активний фасад runtime пам’яті для доступу до search-manager | + | `plugin-sdk/memory-host-status` | Нейтральний до вендора псевдонім для допоміжних засобів статусу хоста пам’яті | + | `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb | | Сімейство | Поточні підшляхи | Призначення | | --- | --- | --- | - | 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` | Хелпери підтримки вбудованого browser plugin (`browser-support` залишається 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` | Поверхня helper/runtime для вбудованого Matrix | - | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня helper/runtime для вбудованого LINE | - | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня helper для вбудованого IRC | - | Хелпери для конкретних каналів | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шари сумісності/helper для вбудованих каналів | - | Хелпери для auth/специфічних плагінів | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шари helper для вбудованих функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | + | 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` | Допоміжні засоби підтримки вбудованого browser-плагіна (`browser-support` лишається 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 для вбудованого Matrix | + | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime для вбудованого LINE | + | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів для вбудованого IRC | + | Допоміжні засоби, специфічні для каналу | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шви сумісності/допоміжні засоби вбудованих каналів | + | Допоміжні засоби, специфічні для auth/плагіна | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шви допоміжних засобів вбудованих функцій/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` | ## API реєстрації -Колбек `register(api)` отримує об’єкт `OpenClawPluginApi` з такими +Зворотний виклик `register(api)` отримує об’єкт `OpenClawPluginApi` з такими методами: ### Реєстрація можливостей -| Метод | Що він реєструє | -| ------------------------------------------------ | -------------------------------- | -| `api.registerProvider(...)` | Текстовий inference (LLM) | -| `api.registerCliBackend(...)` | Локальний inference backend для CLI | -| `api.registerChannel(...)` | Канал обміну повідомленнями | -| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT | -| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція в realtime | -| `api.registerRealtimeVoiceProvider(...)` | Дуплексні сеанси голосу в realtime | -| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео | -| `api.registerImageGenerationProvider(...)` | Генерація зображень | -| `api.registerMusicGenerationProvider(...)` | Генерація музики | +| Метод | Що реєструє | +| ------------------------------------------------ | ------------------------------- | +| `api.registerProvider(...)` | Текстовий inference (LLM) | +| `api.registerCliBackend(...)` | Локальний CLI backend inference | +| `api.registerChannel(...)` | Канал обміну повідомленнями | +| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT | +| `api.registerRealtimeTranscriptionProvider(...)` | Потокова транскрипція realtime | +| `api.registerRealtimeVoiceProvider(...)` | Дуплексні сесії realtime voice | +| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео | +| `api.registerImageGenerationProvider(...)` | Генерація зображень | +| `api.registerMusicGenerationProvider(...)` | Генерація музики | | `api.registerVideoGenerationProvider(...)` | Генерація відео | -| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape | -| `api.registerWebSearchProvider(...)` | Web search | +| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape | +| `api.registerWebSearchProvider(...)` | Веб-пошук | ### Інструменти та команди -| Метод | Що він реєструє | -| ------------------------------- | --------------------------------------------- | +| Метод | Що реєструє | +| ------------------------------ | --------------------------------------------- | | `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) | -| `api.registerCommand(def)` | Користувацька команда (обходить LLM) | +| `api.registerCommand(def)` | Користувацька команда (обходить LLM) | ### Інфраструктура -| Метод | Що він реєструє | -| ---------------------------------------------- | --------------------------------------- | -| `api.registerHook(events, handler, opts?)` | Event hook | -| `api.registerHttpRoute(params)` | HTTP endpoint gateway | -| `api.registerGatewayMethod(name, handler)` | RPC-метод gateway | -| `api.registerCli(registrar, opts?)` | Підкоманда CLI | -| `api.registerService(service)` | Фонова служба | -| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник | +| Метод | Що реєструє | +| --------------------------------------------- | -------------------------------------- | +| `api.registerHook(events, handler, opts?)` | Хук події | +| `api.registerHttpRoute(params)` | HTTP endpoint gateway | +| `api.registerGatewayMethod(name, handler)` | Метод RPC gateway | +| `api.registerCli(registrar, opts?)` | Підкоманда CLI | +| `api.registerService(service)` | Фонова служба | +| `api.registerInteractiveHandler(registration)` | Інтерактивний обробник | | `api.registerMemoryPromptSupplement(builder)` | Додатковий розділ prompt, суміжний із пам’яттю | -| `api.registerMemoryCorpusSupplement(adapter)` | Додатковий corpus пошуку/читання пам’яті | +| `api.registerMemoryCorpusSupplement(adapter)` | Додатковий корпус пошуку/читання пам’яті | Зарезервовані простори імен core admin (`config.*`, `exec.approvals.*`, `wizard.*`, -`update.*`) завжди залишаються `operator.admin`, навіть якщо плагін намагається -призначити вужчу область дії методу gateway. Для методів, що належать плагіну, -віддавайте перевагу префіксам, специфічним для плагіна. +`update.*`) завжди лишаються `operator.admin`, навіть якщо плагін намагається призначити +вужчу область дії методу gateway. Для методів, що належать плагіну, віддавайте перевагу +префіксам, специфічним для плагіна. ### Метадані реєстрації CLI `api.registerCli(registrar, opts?)` приймає два види метаданих верхнього рівня: -- `commands`: явні корені команд, якими володіє реєстратор -- `descriptors`: дескриптори команд на етапі парсингу, що використовуються для довідки кореневого CLI, +- `commands`: явні корені команд, якими володіє registrar +- `descriptors`: дескриптори команд на етапі розбору, що використовуються для кореневої довідки CLI, маршрутизації та лінивої реєстрації CLI плагіна -Якщо ви хочете, щоб команда плагіна залишалася ліниво завантажуваною в -звичайному шляху кореневого CLI, надайте `descriptors`, які покривають кожен -корінь команди верхнього рівня, відкритий цим реєстратором. +Якщо ви хочете, щоб команда плагіна лишалася ліниво завантажуваною у звичайному кореневому шляху CLI, +надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, відкритий цим +registrar. ```typescript api.registerCli( @@ -371,124 +372,122 @@ api.registerCli( ); ``` -Використовуйте лише `commands`, якщо вам не потрібна лінива реєстрація -кореневого CLI. Цей шлях сумісності з eager-loading і далі підтримується, але -він не встановлює placeholder-елементи з підтримкою descriptors для лінивого -завантаження під час парсингу. +Використовуйте лише `commands`, лише якщо вам не потрібна лінива коренева реєстрація CLI. +Цей eager-шлях сумісності все ще підтримується, але він не встановлює +плейсхолдери на основі дескрипторів для лінивого завантаження на етапі розбору. ### Реєстрація CLI backend -`api.registerCliBackend(...)` дає змогу плагіну володіти конфігурацією за -замовчуванням для локального AI CLI backend, такого як `codex-cli`. +`api.registerCliBackend(...)` дає плагіну змогу володіти конфігурацією за замовчуванням для локального +AI CLI backend, такого як `codex-cli`. -- `id` backend стає префіксом провайдера в model refs, таких як `codex-cli/gpt-5`. +- `id` backend стає префіксом провайдера в model ref, як-от `codex-cli/gpt-5`. - `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.`. - Конфігурація користувача все одно має пріоритет. OpenClaw зливає `agents.defaults.cliBackends.` поверх - значень за замовчуванням плагіна перед запуском CLI. -- Використовуйте `normalizeConfig`, якщо backend потребує переписування для сумісності після злиття + значень плагіна за замовчуванням перед запуском CLI. +- Використовуйте `normalizeConfig`, коли backend потребує переписування для сумісності після злиття (наприклад, для нормалізації старих форм прапорців). ### Ексклюзивні слоти -| Метод | Що він реєструє | -| ------------------------------------------ | ------------------------------------- | -| `api.registerContextEngine(id, factory)` | Context engine (одночасно активний лише один) | -| `api.registerMemoryPromptSection(builder)` | Побудовник розділу prompt пам’яті | -| `api.registerMemoryFlushPlan(resolver)` | Resolver плану очищення пам’яті | -| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті | +| Метод | Що реєструє | +| ----------------------------------------- | ----------------------------------- | +| `api.registerContextEngine(id, factory)` | Контекстний рушій (лише один активний одночасно) | +| `api.registerMemoryPromptSection(builder)` | Побудовник розділу prompt пам’яті | +| `api.registerMemoryFlushPlan(resolver)` | Резолвер плану скидання пам’яті | +| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті | -### Адаптери embedding для пам’яті +### Адаптери memory embedding -| Метод | Що він реєструє | -| ---------------------------------------------- | ---------------------------------------------- | -| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер embedding пам’яті для активного плагіна | +| Метод | Що реєструє | +| --------------------------------------------- | ------------------------------------------------- | +| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер memory embedding для активного плагіна | - `registerMemoryPromptSection`, `registerMemoryFlushPlan` і `registerMemoryRuntime` є ексклюзивними для плагінів пам’яті. -- `registerMemoryEmbeddingProvider` дає змогу активному плагіну пам’яті - зареєструвати один або кілька id адаптерів embedding (наприклад `openai`, - `gemini` або користувацький id, визначений плагіном). +- `registerMemoryEmbeddingProvider` дозволяє активному плагіну пам’яті реєструвати один + або кілька id embedding-адаптерів (наприклад, `openai`, `gemini` або custom + plugin-defined id). - Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і `agents.defaults.memorySearch.fallback`, визначається відносно цих зареєстрованих id адаптерів. ### Події та життєвий цикл -| Метод | Що він робить | -| -------------------------------------------- | ----------------------------- | -| `api.on(hookName, handler, opts?)` | Типізований lifecycle hook | -| `api.onConversationBindingResolved(handler)` | Колбек прив’язки розмови | +| Метод | Що робить | +| ------------------------------------------- | ---------------------------- | +| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу | +| `api.onConversationBindingResolved(handler)` | Зворотний виклик прив’язки розмови | ### Семантика рішень hook - `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються. -- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням. +- `before_tool_call`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропущений `block`), а не як перевизначення. - `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються. -- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як і пропуск `block`), а не перевизначенням. -- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере dispatch на себе, обробники з нижчим пріоритетом і стандартний шлях dispatch моделі пропускаються. +- `before_install`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропущений `block`), а не як перевизначення. +- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який обробник бере диспетчеризацію на себе, обробники з нижчим пріоритетом і стандартний шлях диспетчеризації моделі пропускаються. - `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який обробник встановлює це значення, обробники з нижчим пріоритетом пропускаються. -- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як і пропуск `cancel`), а не перевизначенням. +- `message_sending`: повернення `{ cancel: false }` трактується як відсутність рішення (так само, як пропущений `cancel`), а не як перевизначення. ### Поля об’єкта API -| Поле | Тип | Опис | -| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- | -| `api.id` | `string` | Id плагіна | -| `api.name` | `string` | Назва для відображення | -| `api.version` | `string?` | Версія плагіна (необов’язково) | -| `api.description` | `string?` | Опис плагіна (необов’язково) | -| `api.source` | `string` | Шлях до джерела плагіна | -| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) | -| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, якщо доступний) | -| `api.pluginConfig` | `Record` | Конфігурація, специфічна для плагіна, з `plugins.entries..config` | -| `api.runtime` | `PluginRuntime` | [Хелпери runtime](/uk/plugins/sdk-runtime) | -| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) | +| Поле | Тип | Опис | +| ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------- | +| `api.id` | `string` | id плагіна | +| `api.name` | `string` | Відображувана назва | +| `api.version` | `string?` | Версія плагіна (необов’язково) | +| `api.description` | `string?` | Опис плагіна (необов’язково) | +| `api.source` | `string` | Шлях до джерела плагіна | +| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) | +| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, коли доступний) | +| `api.pluginConfig` | `Record` | Специфічна для плагіна конфігурація з `plugins.entries..config` | +| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) | +| `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) | | `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це легке вікно запуску/налаштування до повного entry | -| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна | +| `api.resolvePath(input)` | `(string) => string` | Визначення шляху відносно кореня плагіна | ## Угода щодо внутрішніх модулів -У межах вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів: +Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів: ``` my-plugin/ api.ts # Публічні експорти для зовнішніх споживачів - runtime-api.ts # Експорти runtime лише для внутрішнього використання + runtime-api.ts # Лише внутрішні експорти runtime index.ts # Точка входу плагіна - setup-entry.ts # Легка точка входу лише для налаштування (необов’язково) + setup-entry.ts # Легка вхідна точка лише для налаштування (необов’язково) ``` Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/` - у production-коді. Для внутрішніх імпортів використовуйте `./api.ts` або + у production-коді. Виконуйте внутрішні імпорти через `./api.ts` або `./runtime-api.ts`. Шлях SDK є лише зовнішнім контрактом. -Facade-loaded публічні поверхні вбудованих плагінів (`api.ts`, `runtime-api.ts`, -`index.ts`, `setup-entry.ts` та подібні публічні entry-файли) тепер віддають -перевагу активному знімку конфігурації runtime, якщо OpenClaw уже запущено. Якщо -знімок runtime ще не існує, вони повертаються до визначеного файлу конфігурації на диску. +Публічні поверхні вбудованих плагінів, завантажувані через фасад (`api.ts`, `runtime-api.ts`, +`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер віддають перевагу +активному знімку конфігурації runtime, коли OpenClaw уже працює. Якщо знімок runtime +ще не існує, вони повертаються до визначеного конфігураційного файлу на диску. -Плагіни провайдерів також можуть відкривати вузький локальний barrel-файл -контракту плагіна, коли helper навмисно є специфічним для певного провайдера і -ще не належить до загального підшляху SDK. Поточний вбудований приклад: -провайдер Anthropic зберігає свої хелпери потоку Claude у власному публічному -шарі `api.ts` / `contract-api.ts` замість просування логіки beta-header Anthropic -та `service_tier` у загальний контракт `plugin-sdk/*`. +Плагіни провайдерів також можуть відкривати вузький локальний для плагіна barrel контракту, коли +допоміжний засіб навмисно є специфічним для провайдера і ще не належить до загального підшляху SDK. +Поточний вбудований приклад: провайдер Anthropic зберігає свої допоміжні засоби Claude +stream у власному публічному шві `api.ts` / `contract-api.ts` замість +просування логіки Anthropic beta-header і `service_tier` до загального +контракту `plugin-sdk/*`. Інші поточні вбудовані приклади: -- `@openclaw/openai-provider`: `api.ts` експортує побудовники провайдера, - хелпери моделей за замовчуванням і побудовники realtime-провайдера -- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник провайдера та - хелпери онбордингу/конфігурації +- `@openclaw/openai-provider`: `api.ts` експортує побудовники провайдерів, + допоміжні засоби моделей за замовчуванням і побудовники realtime-провайдерів +- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник провайдера, а також + допоміжні засоби онбордингу/конфігурації - Production-код розширень також має уникати імпортів - `openclaw/plugin-sdk/`. Якщо helper справді є спільним, - перенесіть його до нейтрального підшляху SDK, такого як - `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої - поверхні, орієнтованої на можливості, замість зв’язування двох плагінів між собою. + Production-код розширень також має уникати імпортів `openclaw/plugin-sdk/`. + Якщо допоміжний засіб справді є спільним, перенесіть його до нейтрального підшляху SDK, + наприклад `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої + поверхні, орієнтованої на можливість, замість жорсткого зв’язування двох плагінів між собою. ## Пов’язане