chore(i18n): refresh uk translations
This commit is contained in:
parent
6b0da2c909
commit
dbd9dd8731
@ -1,34 +1,34 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви створюєте новий плагін провайдера моделі
|
||||
- Ви хочете додати до OpenClaw OpenAI-сумісний проксі або власну LLM
|
||||
- Вам потрібно зрозуміти автентифікацію провайдера, каталоги та runtime-хуки
|
||||
- Ви створюєте новий Plugin постачальника моделей
|
||||
- Ви хочете додати OpenAI-сумісний проксі або власну LLM до OpenClaw
|
||||
- Вам потрібно зрозуміти автентифікацію постачальника, каталоги та runtime-хуки
|
||||
sidebarTitle: Provider plugins
|
||||
summary: Покроковий посібник зі створення плагіна провайдера моделі для OpenClaw
|
||||
title: Створення плагінів провайдерів
|
||||
summary: Покроковий посібник зі створення Plugin постачальника моделей для OpenClaw
|
||||
title: Створення Plugin постачальників моделей
|
||||
x-i18n:
|
||||
generated_at: "2026-04-24T03:07:38Z"
|
||||
generated_at: "2026-04-24T18:37:32Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: bef17d1e9944f041c29a578ceab20835d82c8e846a401048676211237fdbc499
|
||||
source_hash: ddfe0e61aa08dda3134728e364fbbf077fe0edfb16e31fc102adc9585bc8c1ac
|
||||
source_path: plugins/sdk-provider-plugins.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Цей посібник покроково пояснює, як створити плагін провайдера, що додає провайдера моделі
|
||||
(LLM) до OpenClaw. Наприкінці у вас буде провайдер із каталогом моделей,
|
||||
Цей посібник проводить через створення Plugin постачальника, який додає постачальника моделей
|
||||
(LLM) до OpenClaw. Наприкінці у вас буде постачальник із каталогом моделей,
|
||||
автентифікацією через API-ключ і динамічним визначенням моделей.
|
||||
|
||||
<Info>
|
||||
Якщо ви раніше не створювали жодного плагіна OpenClaw, спершу прочитайте
|
||||
[Getting Started](/uk/plugins/building-plugins) для базової структури пакета
|
||||
Якщо ви ще не створювали жодного Plugin для OpenClaw, спочатку прочитайте
|
||||
[Початок роботи](/uk/plugins/building-plugins) про базову структуру пакета
|
||||
та налаштування маніфесту.
|
||||
</Info>
|
||||
|
||||
<Tip>
|
||||
Плагіни провайдерів додають моделі до стандартного циклу інференсу OpenClaw. Якщо модель
|
||||
має працювати через нативний демон агента, який керує потоками, Compaction або
|
||||
подіями інструментів, поєднуйте провайдера з [agent harness](/uk/plugins/sdk-agent-harness),
|
||||
Plugin постачальників додають моделі до звичайного циклу inference в OpenClaw. Якщо модель
|
||||
має працювати через нативний агент-демон, який керує потоками, Compaction або подіями
|
||||
інструментів, поєднуйте постачальника з [agent harness](/uk/plugins/sdk-agent-harness),
|
||||
а не виносьте деталі протоколу демона в core.
|
||||
</Tip>
|
||||
|
||||
@ -61,7 +61,7 @@ x-i18n:
|
||||
{
|
||||
"id": "acme-ai",
|
||||
"name": "Acme AI",
|
||||
"description": "Провайдер моделей Acme AI",
|
||||
"description": "Acme AI model provider",
|
||||
"providers": ["acme-ai"],
|
||||
"modelSupport": {
|
||||
"modelPrefixes": ["acme-"]
|
||||
@ -77,12 +77,12 @@ x-i18n:
|
||||
"provider": "acme-ai",
|
||||
"method": "api-key",
|
||||
"choiceId": "acme-ai-api-key",
|
||||
"choiceLabel": "API-ключ Acme AI",
|
||||
"choiceLabel": "Acme AI API key",
|
||||
"groupId": "acme-ai",
|
||||
"groupLabel": "Acme AI",
|
||||
"cliFlag": "--acme-ai-api-key",
|
||||
"cliOption": "--acme-ai-api-key <key>",
|
||||
"cliDescription": "API-ключ Acme AI"
|
||||
"cliDescription": "Acme AI API key"
|
||||
}
|
||||
],
|
||||
"configSchema": {
|
||||
@ -94,17 +94,17 @@ x-i18n:
|
||||
</CodeGroup>
|
||||
|
||||
Маніфест оголошує `providerAuthEnvVars`, щоб OpenClaw міг виявляти
|
||||
облікові дані без завантаження runtime вашого плагіна. Додавайте `providerAuthAliases`,
|
||||
коли варіант провайдера має повторно використовувати auth іншого id провайдера. `modelSupport`
|
||||
необов’язковий і дозволяє OpenClaw автоматично завантажувати ваш плагін провайдера зі скорочених
|
||||
ідентифікаторів моделей, як-от `acme-large`, ще до появи runtime-хуків. Якщо ви публікуєте
|
||||
провайдера в ClawHub, поля `openclaw.compat` і `openclaw.build`
|
||||
облікові дані без завантаження runtime вашого Plugin. Додавайте `providerAuthAliases`,
|
||||
коли варіант постачальника має повторно використовувати автентифікацію іншого id постачальника. `modelSupport`
|
||||
є необов’язковим і дозволяє OpenClaw автоматично завантажувати ваш Plugin постачальника зі скорочених
|
||||
id моделей, як-от `acme-large`, ще до появи runtime-хуків. Якщо ви публікуєте
|
||||
постачальника в ClawHub, поля `openclaw.compat` і `openclaw.build`
|
||||
обов’язкові в `package.json`.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Зареєструйте провайдера">
|
||||
Мінімальному провайдеру потрібні `id`, `label`, `auth` і `catalog`:
|
||||
<Step title="Зареєструйте постачальника">
|
||||
Мінімальний постачальник потребує `id`, `label`, `auth` і `catalog`:
|
||||
|
||||
```typescript index.ts
|
||||
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
||||
@ -113,7 +113,7 @@ x-i18n:
|
||||
export default definePluginEntry({
|
||||
id: "acme-ai",
|
||||
name: "Acme AI",
|
||||
description: "Провайдер моделей Acme AI",
|
||||
description: "Acme AI model provider",
|
||||
register(api) {
|
||||
api.registerProvider({
|
||||
id: "acme-ai",
|
||||
@ -125,12 +125,12 @@ x-i18n:
|
||||
createProviderApiKeyAuthMethod({
|
||||
providerId: "acme-ai",
|
||||
methodId: "api-key",
|
||||
label: "API-ключ Acme AI",
|
||||
hint: "API-ключ з вашої панелі Acme AI",
|
||||
label: "Acme AI API key",
|
||||
hint: "API key from your Acme AI dashboard",
|
||||
optionKey: "acmeAiApiKey",
|
||||
flagName: "--acme-ai-api-key",
|
||||
envVar: "ACME_AI_API_KEY",
|
||||
promptMessage: "Введіть свій API-ключ Acme AI",
|
||||
promptMessage: "Enter your Acme AI API key",
|
||||
defaultModel: "acme-ai/acme-large",
|
||||
}),
|
||||
],
|
||||
@ -175,12 +175,12 @@ x-i18n:
|
||||
});
|
||||
```
|
||||
|
||||
Це вже робочий провайдер. Тепер користувачі можуть виконати
|
||||
Це вже робочий постачальник. Тепер користувачі можуть виконати
|
||||
`openclaw onboard --acme-ai-api-key <key>` і вибрати
|
||||
`acme-ai/acme-large` як свою модель.
|
||||
|
||||
Якщо провайдер вище за потоком використовує інші керувальні токени, ніж OpenClaw, додайте
|
||||
невелике двонапрямлене текстове перетворення замість заміни шляху потоку:
|
||||
Якщо постачальник upstream використовує інші керувальні токени, ніж OpenClaw, додайте
|
||||
невелике двонапрямне текстове перетворення замість заміни шляху потоку:
|
||||
|
||||
```typescript
|
||||
api.registerTextTransforms({
|
||||
@ -197,13 +197,13 @@ x-i18n:
|
||||
});
|
||||
```
|
||||
|
||||
`input` переписує фінальний системний промпт і вміст текстових повідомлень перед
|
||||
транспортуванням. `output` переписує текстові дельти асистента й фінальний текст до того, як
|
||||
OpenClaw розбере власні керувальні маркери або доставку каналу.
|
||||
`input` переписує фінальний системний prompt і текстовий вміст повідомлення перед
|
||||
передачею. `output` переписує текстові дельти відповіді асистента і фінальний текст до того,
|
||||
як OpenClaw розбере власні керувальні маркери або доставку через канал.
|
||||
|
||||
Для вбудованих провайдерів, які реєструють лише одного текстового провайдера з автентифікацією
|
||||
через API-ключ плюс один runtime, підкріплений каталогом, надавайте перевагу вужчому
|
||||
helper `defineSingleProviderPluginEntry(...)`:
|
||||
Для вбудованих постачальників, які реєструють лише одного текстового постачальника з
|
||||
автентифікацією через API-ключ плюс один runtime на основі каталогу, віддавайте перевагу
|
||||
вужчому helper `defineSingleProviderPluginEntry(...)`:
|
||||
|
||||
```typescript
|
||||
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
|
||||
@ -211,19 +211,19 @@ x-i18n:
|
||||
export default defineSingleProviderPluginEntry({
|
||||
id: "acme-ai",
|
||||
name: "Acme AI",
|
||||
description: "Провайдер моделей Acme AI",
|
||||
description: "Acme AI model provider",
|
||||
provider: {
|
||||
label: "Acme AI",
|
||||
docsPath: "/providers/acme-ai",
|
||||
auth: [
|
||||
{
|
||||
methodId: "api-key",
|
||||
label: "API-ключ Acme AI",
|
||||
hint: "API-ключ з вашої панелі Acme AI",
|
||||
label: "Acme AI API key",
|
||||
hint: "API key from your Acme AI dashboard",
|
||||
optionKey: "acmeAiApiKey",
|
||||
flagName: "--acme-ai-api-key",
|
||||
envVar: "ACME_AI_API_KEY",
|
||||
promptMessage: "Введіть свій API-ключ Acme AI",
|
||||
promptMessage: "Enter your Acme AI API key",
|
||||
defaultModel: "acme-ai/acme-large",
|
||||
},
|
||||
],
|
||||
@ -243,38 +243,38 @@ x-i18n:
|
||||
});
|
||||
```
|
||||
|
||||
`buildProvider` — це шлях живого каталогу, який використовується, коли OpenClaw може визначити справжній
|
||||
auth провайдера. Він може виконувати виявлення, специфічне для провайдера. Використовуйте
|
||||
`buildStaticProvider` лише для офлайн-рядків, які безпечно показувати до налаштування auth;
|
||||
`buildProvider` — це шлях живого каталогу, який використовується, коли OpenClaw може визначити реальну
|
||||
автентифікацію постачальника. Він може виконувати специфічне для постачальника виявлення. Використовуйте
|
||||
`buildStaticProvider` лише для офлайн-рядків, які безпечно показувати до налаштування автентифікації;
|
||||
він не повинен вимагати облікових даних або виконувати мережеві запити.
|
||||
Поточне відображення `models list --all` в OpenClaw виконує статичні каталоги
|
||||
лише для вбудованих плагінів провайдерів, із порожньою конфігурацією, порожнім env і без
|
||||
Поточне відображення `models list --all` в OpenClaw наразі виконує статичні каталоги
|
||||
лише для вбудованих Plugin постачальників, з порожньою конфігурацією, порожнім env і без
|
||||
шляхів агента/робочого простору.
|
||||
|
||||
Якщо вашому auth-потоку також потрібно змінювати `models.providers.*`, aliases і
|
||||
модель агента за замовчуванням під час onboarding, використовуйте preset-helper-и з
|
||||
`openclaw/plugin-sdk/provider-onboard`. Найвужчі helper-и —
|
||||
Якщо ваш потік автентифікації також має оновлювати `models.providers.*`, псевдоніми та
|
||||
модель агента за замовчуванням під час onboarding, використовуйте preset helper-и з
|
||||
`openclaw/plugin-sdk/provider-onboard`. Найвужчі helper-и:
|
||||
`createDefaultModelPresetAppliers(...)`,
|
||||
`createDefaultModelsPresetAppliers(...)` і
|
||||
`createModelCatalogPresetAppliers(...)`.
|
||||
|
||||
Коли нативний ендпоїнт провайдера підтримує блоки використання в потоці на
|
||||
звичайному транспорті `openai-completions`, надавайте перевагу спільним helper-ам каталогів із
|
||||
`openclaw/plugin-sdk/provider-catalog-shared` замість жорстко закодованих перевірок id провайдера.
|
||||
Коли нативний endpoint постачальника підтримує потокові блоки usage у звичайному
|
||||
транспорті `openai-completions`, віддавайте перевагу спільним helper-ам каталогу з
|
||||
`openclaw/plugin-sdk/provider-catalog-shared`, а не жорстко прописаним перевіркам id постачальника.
|
||||
`supportsNativeStreamingUsageCompat(...)` і
|
||||
`applyProviderNativeStreamingUsageCompat(...)` визначають підтримку з мапи можливостей ендпоїнта,
|
||||
тож нативні ендпоїнти у стилі Moonshot/DashScope все одно долучаються, навіть коли плагін
|
||||
використовує власний id провайдера.
|
||||
`applyProviderNativeStreamingUsageCompat(...)` визначають підтримку за картою можливостей endpoint, тому
|
||||
нативні endpoint-и Moonshot/DashScope також можуть увімкнутися, навіть якщо Plugin використовує
|
||||
власний id постачальника.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Додайте динамічне визначення моделей">
|
||||
Якщо ваш провайдер приймає довільні ідентифікатори моделей (як проксі або маршрутизатор),
|
||||
<Step title="Додайте динамічне визначення моделі">
|
||||
Якщо ваш постачальник приймає довільні id моделей (як проксі або роутер),
|
||||
додайте `resolveDynamicModel`:
|
||||
|
||||
```typescript
|
||||
api.registerProvider({
|
||||
// ... id, label, auth, catalog з прикладу вище
|
||||
// ... id, label, auth, catalog from above
|
||||
|
||||
resolveDynamicModel: (ctx) => ({
|
||||
id: ctx.modelId,
|
||||
@ -292,16 +292,16 @@ x-i18n:
|
||||
```
|
||||
|
||||
Якщо для визначення потрібен мережевий виклик, використовуйте `prepareDynamicModel` для асинхронного
|
||||
прогрівання — після його завершення `resolveDynamicModel` запускається знову.
|
||||
прогріву — після його завершення `resolveDynamicModel` виконується повторно.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Додайте runtime-хуки (за потреби)">
|
||||
Більшості провайдерів потрібні лише `catalog` + `resolveDynamicModel`. Додавайте хуки
|
||||
поступово, у міру потреби вашого провайдера.
|
||||
Більшості постачальників потрібні лише `catalog` + `resolveDynamicModel`. Додавайте хуки
|
||||
поступово, відповідно до потреб вашого постачальника.
|
||||
|
||||
Спільні helper-builder-и тепер покривають найпоширеніші сімейства replay/tool-compat,
|
||||
тому плагінам зазвичай не потрібно вручну підключати кожен хук окремо:
|
||||
Спільні builder helper-и тепер покривають найпоширеніші сімейства replay/tool-compat,
|
||||
тож Plugin зазвичай не потрібно вручну підключати кожен хук окремо:
|
||||
|
||||
```typescript
|
||||
import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared";
|
||||
@ -323,41 +323,41 @@ x-i18n:
|
||||
|
||||
Доступні сьогодні сімейства replay:
|
||||
|
||||
| Family | Що саме підключає | Вбудовані приклади |
|
||||
| Сімейство | Що воно підключає | Приклади вбудованих |
|
||||
| --- | --- | --- |
|
||||
| `openai-compatible` | Спільну політику replay у стилі OpenAI для OpenAI-сумісних транспортів, включно з очищенням tool-call-id, виправленням порядку assistant-first і загальною валідацією Gemini-turn там, де це потрібно транспорту | `moonshot`, `ollama`, `xai`, `zai` |
|
||||
| `anthropic-by-model` | Політику replay з урахуванням Claude, яка обирається за `modelId`, тож транспорти повідомлень Anthropic отримують очищення thinking-block, специфічне для Claude, лише коли визначена модель справді є ідентифікатором Claude | `amazon-bedrock`, `anthropic-vertex` |
|
||||
| `google-gemini` | Нативну політику replay для Gemini плюс очищення bootstrap replay і режим tagged reasoning-output | `google`, `google-gemini-cli` |
|
||||
| `passthrough-gemini` | Очищення thought-signature Gemini для моделей Gemini, що працюють через OpenAI-сумісні проксі-транспорти; не вмикає нативну валідацію replay Gemini або переписування bootstrap | `openrouter`, `kilocode`, `opencode`, `opencode-go` |
|
||||
| `hybrid-anthropic-openai` | Гібридну політику для провайдерів, які поєднують поверхні моделей Anthropic-message і OpenAI-compatible в одному плагіні; необов’язкове відкидання thinking-block лише для Claude лишається обмеженим стороною Anthropic | `minimax` |
|
||||
| `openai-compatible` | Спільна політика replay у стилі OpenAI для OpenAI-сумісних транспортів, зокрема санітизація id викликів інструментів, виправлення порядку assistant-first і загальна валідація Gemini-turn там, де це потрібно транспорту | `moonshot`, `ollama`, `xai`, `zai` |
|
||||
| `anthropic-by-model` | Політика replay з урахуванням Claude, яка вибирається за `modelId`, щоб транспорти повідомлень Anthropic отримували очищення блоків thinking, специфічне для Claude, лише тоді, коли визначена модель справді має id Claude | `amazon-bedrock`, `anthropic-vertex` |
|
||||
| `google-gemini` | Нативна політика replay Gemini плюс санітизація bootstrap replay і режим tagged reasoning-output | `google`, `google-gemini-cli` |
|
||||
| `passthrough-gemini` | Санітизація thought-signature Gemini для моделей Gemini, що працюють через OpenAI-сумісні проксі-транспорти; не вмикає нативну валідацію replay Gemini або переписування bootstrap | `openrouter`, `kilocode`, `opencode`, `opencode-go` |
|
||||
| `hybrid-anthropic-openai` | Гібридна політика для постачальників, які поєднують поверхні моделей Anthropic-message та OpenAI-compatible в одному Plugin; необов’язкове відкидання thinking-блоків лише для Claude залишається обмеженим стороною Anthropic | `minimax` |
|
||||
|
||||
Доступні сьогодні сімейства потоків:
|
||||
|
||||
| Family | Що саме підключає | Вбудовані приклади |
|
||||
| Сімейство | Що воно підключає | Приклади вбудованих |
|
||||
| --- | --- | --- |
|
||||
| `google-thinking` | Нормалізацію thinking-payload Gemini на спільному шляху потоку | `google`, `google-gemini-cli` |
|
||||
| `kilocode-thinking` | Обгортку reasoning Kilo на спільному шляху проксі-потоку, де `kilo/auto` і непідтримувані proxy reasoning id пропускають ін’єктований thinking | `kilocode` |
|
||||
| `moonshot-thinking` | Мапінг binary native-thinking payload Moonshot з конфігурації + рівня `/think` | `moonshot` |
|
||||
| `google-thinking` | Нормалізація payload thinking Gemini на спільному шляху потоку | `google`, `google-gemini-cli` |
|
||||
| `kilocode-thinking` | Обгортка reasoning Kilo на спільному шляху проксі-потоку, де `kilo/auto` та непідтримувані id reasoning проксі пропускають ін’єкцію thinking | `kilocode` |
|
||||
| `moonshot-thinking` | Відображення payload нативного binary thinking Moonshot із config + рівня `/think` | `moonshot` |
|
||||
| `minimax-fast-mode` | Переписування моделі MiniMax fast-mode на спільному шляху потоку | `minimax`, `minimax-portal` |
|
||||
| `openai-responses-defaults` | Спільні нативні обгортки OpenAI/Codex Responses: заголовки атрибуції, `/fast`/`serviceTier`, деталізація тексту, нативний вебпошук Codex, формування reasoning-compat payload і керування контекстом Responses | `openai`, `openai-codex` |
|
||||
| `openrouter-thinking` | Обгортку reasoning OpenRouter для proxy-маршрутів, де пропуски для unsupported-model/`auto` централізовано обробляються | `openrouter` |
|
||||
| `tool-stream-default-on` | Обгортку `tool_stream`, увімкнену за замовчуванням, для провайдерів на кшталт Z.AI, які хочуть потокову передачу інструментів, якщо її явно не вимкнено | `zai` |
|
||||
| `openai-responses-defaults` | Спільні нативні обгортки OpenAI/Codex Responses: заголовки attribution, `/fast`/`serviceTier`, verbosity тексту, нативний веб-пошук Codex, формування payload для сумісності reasoning і керування контекстом Responses | `openai`, `openai-codex` |
|
||||
| `openrouter-thinking` | Обгортка reasoning OpenRouter для маршрутів проксі, де пропуски для непідтримуваних моделей/`auto` централізовано обробляються | `openrouter` |
|
||||
| `tool-stream-default-on` | Обгортка `tool_stream`, увімкнена за замовчуванням, для постачальників на кшталт Z.AI, яким потрібен потоковий режим інструментів, якщо його явно не вимкнено | `zai` |
|
||||
|
||||
<Accordion title="SDK seams, які забезпечують роботу family builder-ів">
|
||||
Кожен family builder складається з низькорівневих публічних helper-ів, експортованих із того самого пакета, до яких можна звернутися, коли провайдеру потрібно вийти за межі типового шаблону:
|
||||
<Accordion title="SDK seams, що забезпечують family builders">
|
||||
Кожен family builder складається з нижчерівневих публічних helper-ів, експортованих із того самого пакета, які можна використовувати, коли постачальнику потрібно відійти від типового шаблону:
|
||||
|
||||
- `openclaw/plugin-sdk/provider-model-shared` — `ProviderReplayFamily`, `buildProviderReplayFamilyHooks(...)` і сирі builder-и replay (`buildOpenAICompatibleReplayPolicy`, `buildAnthropicReplayPolicyForModel`, `buildGoogleGeminiReplayPolicy`, `buildHybridAnthropicOrOpenAIReplayPolicy`). Також експортує helper-и replay для Gemini (`sanitizeGoogleGeminiReplayHistory`, `resolveTaggedReasoningOutputMode`) і helper-и для endpoint/model (`resolveProviderEndpoint`, `normalizeProviderId`, `normalizeGooglePreviewModelId`, `normalizeNativeXaiModelId`).
|
||||
- `openclaw/plugin-sdk/provider-stream` — `ProviderStreamFamily`, `buildProviderStreamFamilyHooks(...)`, `composeProviderStreamWrappers(...)`, а також спільні обгортки OpenAI/Codex (`createOpenAIAttributionHeadersWrapper`, `createOpenAIFastModeWrapper`, `createOpenAIServiceTierWrapper`, `createOpenAIResponsesContextManagementWrapper`, `createCodexNativeWebSearchWrapper`) і спільні обгортки proxy/provider (`createOpenRouterWrapper`, `createToolStreamWrapper`, `createMinimaxFastModeWrapper`).
|
||||
- `openclaw/plugin-sdk/provider-tools` — `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks("gemini")`, базові helper-и схем Gemini (`normalizeGeminiToolSchemas`, `inspectGeminiToolSchemas`) і helper-и compat для xAI (`resolveXaiModelCompatPatch()`, `applyXaiModelCompat(model)`). Вбудований плагін xAI використовує `normalizeResolvedModel` + `contributeResolvedModelCompat` разом із ними, щоб правила xAI залишалися у власності провайдера.
|
||||
- `openclaw/plugin-sdk/provider-model-shared` — `ProviderReplayFamily`, `buildProviderReplayFamilyHooks(...)` і базові builder-и replay (`buildOpenAICompatibleReplayPolicy`, `buildAnthropicReplayPolicyForModel`, `buildGoogleGeminiReplayPolicy`, `buildHybridAnthropicOrOpenAIReplayPolicy`). Також експортує helper-и replay для Gemini (`sanitizeGoogleGeminiReplayHistory`, `resolveTaggedReasoningOutputMode`) і helper-и endpoint/моделей (`resolveProviderEndpoint`, `normalizeProviderId`, `normalizeGooglePreviewModelId`, `normalizeNativeXaiModelId`).
|
||||
- `openclaw/plugin-sdk/provider-stream` — `ProviderStreamFamily`, `buildProviderStreamFamilyHooks(...)`, `composeProviderStreamWrappers(...)`, а також спільні обгортки OpenAI/Codex (`createOpenAIAttributionHeadersWrapper`, `createOpenAIFastModeWrapper`, `createOpenAIServiceTierWrapper`, `createOpenAIResponsesContextManagementWrapper`, `createCodexNativeWebSearchWrapper`) і спільні обгортки проксі/постачальників (`createOpenRouterWrapper`, `createToolStreamWrapper`, `createMinimaxFastModeWrapper`).
|
||||
- `openclaw/plugin-sdk/provider-tools` — `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks("gemini")`, базові helper-и схем Gemini (`normalizeGeminiToolSchemas`, `inspectGeminiToolSchemas`) і helper-и сумісності xAI (`resolveXaiModelCompatPatch()`, `applyXaiModelCompat(model)`). Вбудований Plugin xAI використовує `normalizeResolvedModel` + `contributeResolvedModelCompat` разом із ними, щоб правила xAI залишалися у власності постачальника.
|
||||
|
||||
Деякі stream-helper-и навмисно залишаються локальними для провайдера. `@openclaw/anthropic-provider` зберігає `wrapAnthropicProviderStream`, `resolveAnthropicBetas`, `resolveAnthropicFastMode`, `resolveAnthropicServiceTier` і низькорівневі builder-и обгорток Anthropic у власному публічному seam `api.ts` / `contract-api.ts`, оскільки вони кодують обробку Claude OAuth beta та gating для `context1m`. Аналогічно, плагін xAI зберігає нативне формування xAI Responses у власному `wrapStreamFn` (aliases для `/fast`, типовий `tool_stream`, очищення unsupported strict-tool, видалення reasoning-payload, специфічного для xAI).
|
||||
Деякі helper-и потоків навмисно залишаються локальними для постачальника. `@openclaw/anthropic-provider` зберігає `wrapAnthropicProviderStream`, `resolveAnthropicBetas`, `resolveAnthropicFastMode`, `resolveAnthropicServiceTier` і нижчерівневі builder-и обгорток Anthropic у власному публічному seam `api.ts` / `contract-api.ts`, тому що вони кодують обробку beta Claude OAuth і gating `context1m`. Plugin xAI так само зберігає формування нативних Responses xAI у власному `wrapStreamFn` (псевдоніми `/fast`, `tool_stream` за замовчуванням, очищення непідтримуваних strict-tool, видалення payload reasoning, специфічного для xAI).
|
||||
|
||||
Той самий шаблон package-root також лежить в основі `@openclaw/openai-provider` (builder-и провайдера, helper-и моделі за замовчуванням, builder-и realtime-провайдера) і `@openclaw/openrouter-provider` (builder провайдера плюс helper-и onboarding/config).
|
||||
Такий самий шаблон package-root також лежить в основі `@openclaw/openai-provider` (builder-и постачальника, helper-и моделі за замовчуванням, builder-и realtime provider) і `@openclaw/openrouter-provider` (builder постачальника плюс helper-и onboarding/config).
|
||||
</Accordion>
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Обмін токенами">
|
||||
Для провайдерів, яким потрібен обмін токенами перед кожним викликом інференсу:
|
||||
<Tab title="Обмін токенів">
|
||||
Для постачальників, яким потрібен обмін токенів перед кожним викликом inference:
|
||||
|
||||
```typescript
|
||||
prepareRuntimeAuth: async (ctx) => {
|
||||
@ -370,11 +370,11 @@ x-i18n:
|
||||
},
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Користувацькі заголовки">
|
||||
Для провайдерів, яким потрібні користувацькі заголовки запиту або модифікації тіла:
|
||||
<Tab title="Власні заголовки">
|
||||
Для постачальників, яким потрібні власні заголовки запитів або модифікації тіла запиту:
|
||||
|
||||
```typescript
|
||||
// wrapStreamFn повертає StreamFn, похідний від ctx.streamFn
|
||||
// wrapStreamFn returns a StreamFn derived from ctx.streamFn
|
||||
wrapStreamFn: (ctx) => {
|
||||
if (!ctx.streamFn) return undefined;
|
||||
const inner = ctx.streamFn;
|
||||
@ -389,8 +389,8 @@ x-i18n:
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Ідентичність нативного транспорту">
|
||||
Для провайдерів, яким потрібні нативні заголовки/метадані запиту або сесії на
|
||||
узагальнених HTTP- або WebSocket-транспортах:
|
||||
Для постачальників, яким потрібні нативні заголовки запиту/сесії або metadata у
|
||||
стандартних HTTP- чи WebSocket-транспортах:
|
||||
|
||||
```typescript
|
||||
resolveTransportTurnState: (ctx) => ({
|
||||
@ -410,8 +410,8 @@ x-i18n:
|
||||
}),
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Використання й білінг">
|
||||
Для провайдерів, які надають дані про використання/білінг:
|
||||
<Tab title="Використання та білінг">
|
||||
Для постачальників, які надають дані про використання/білінг:
|
||||
|
||||
```typescript
|
||||
resolveUsageAuth: async (ctx) => {
|
||||
@ -425,99 +425,123 @@ x-i18n:
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Accordion title="Усі доступні хуки провайдера">
|
||||
OpenClaw викликає хуки в такому порядку. Більшість провайдерів використовують лише 2–3:
|
||||
<Accordion title="Усі доступні хуки постачальника">
|
||||
OpenClaw викликає хуки в такому порядку. Більшість постачальників використовують лише 2–3:
|
||||
|
||||
| # | Hook | Коли використовувати |
|
||||
| # | Хук | Коли використовувати |
|
||||
| --- | --- | --- |
|
||||
| 1 | `catalog` | Каталог моделей або значення `baseUrl` за замовчуванням |
|
||||
| 2 | `applyConfigDefaults` | Глобальні значення за замовчуванням, що належать провайдеру, під час матеріалізації конфігурації |
|
||||
| 3 | `normalizeModelId` | Очищення aliases застарілих/preview model-id перед пошуком |
|
||||
| 4 | `normalizeTransport` | Очищення `api` / `baseUrl` для сімейства провайдера перед загальним збиранням моделі |
|
||||
| 5 | `normalizeConfig` | Нормалізувати конфігурацію `models.providers.<id>` |
|
||||
| 6 | `applyNativeStreamingUsageCompat` | Переписування compat нативного streaming-usage для config-провайдерів |
|
||||
| 7 | `resolveConfigApiKey` | Визначення auth через env-marker, що належить провайдеру |
|
||||
| 8 | `resolveSyntheticAuth` | Синтетичний auth для local/self-hosted або на основі конфігурації |
|
||||
| 9 | `shouldDeferSyntheticProfileAuth` | Опустити синтетичні заповнювачі stored-profile нижче auth через env/config |
|
||||
| 10 | `resolveDynamicModel` | Приймати довільні upstream model-id |
|
||||
| 11 | `prepareDynamicModel` | Асинхронне отримання метаданих перед визначенням |
|
||||
| 2 | `applyConfigDefaults` | Глобальні значення за замовчуванням, що належать постачальнику, під час materialization config |
|
||||
| 3 | `normalizeModelId` | Очищення псевдонімів legacy/preview model-id перед пошуком |
|
||||
| 4 | `normalizeTransport` | Очищення `api` / `baseUrl` для сімейства постачальника перед загальним складанням моделі |
|
||||
| 5 | `normalizeConfig` | Нормалізація config `models.providers.<id>` |
|
||||
| 6 | `applyNativeStreamingUsageCompat` | Переписування native streaming-usage compat для config-постачальників |
|
||||
| 7 | `resolveConfigApiKey` | Визначення автентифікації через env-marker, що належить постачальнику |
|
||||
| 8 | `resolveSyntheticAuth` | Synthetic auth для local/self-hosted або на основі config |
|
||||
| 9 | `shouldDeferSyntheticProfileAuth` | Опускає synthetic placeholder-и збережених профілів нижче за автентифікацію env/config |
|
||||
| 10 | `resolveDynamicModel` | Прийняття довільних upstream id моделей |
|
||||
| 11 | `prepareDynamicModel` | Асинхронне отримання metadata перед визначенням |
|
||||
| 12 | `normalizeResolvedModel` | Переписування транспорту перед runner |
|
||||
| 13 | `contributeResolvedModelCompat` | Прапори compat для моделей вендора за іншим сумісним транспортом |
|
||||
| 14 | `capabilities` | Застарілий статичний набір можливостей; лише для сумісності |
|
||||
| 15 | `normalizeToolSchemas` | Очищення схем інструментів, що належить провайдеру, перед реєстрацією |
|
||||
| 16 | `inspectToolSchemas` | Діагностика схем інструментів, що належить провайдеру |
|
||||
| 17 | `resolveReasoningOutputMode` | Контракт tagged vs native reasoning-output |
|
||||
| 13 | `contributeResolvedModelCompat` | Прапорці compat для моделей постачальника за іншим сумісним транспортом |
|
||||
| 14 | `capabilities` | Legacy static capability bag; лише для сумісності |
|
||||
| 15 | `normalizeToolSchemas` | Очищення схем інструментів, що належить постачальнику, перед реєстрацією |
|
||||
| 16 | `inspectToolSchemas` | Діагностика схем інструментів, що належить постачальнику |
|
||||
| 17 | `resolveReasoningOutputMode` | Контракт tagged або native reasoning-output |
|
||||
| 18 | `prepareExtraParams` | Параметри запиту за замовчуванням |
|
||||
| 19 | `createStreamFn` | Повністю користувацький транспорт StreamFn |
|
||||
| 20 | `wrapStreamFn` | Користувацькі обгортки заголовків/тіла на звичайному шляху потоку |
|
||||
| 21 | `resolveTransportTurnState` | Нативні заголовки/метадані для кожного turn |
|
||||
| 22 | `resolveWebSocketSessionPolicy` | Нативні заголовки сесії WS / cool-down |
|
||||
| 23 | `formatApiKey` | Користувацька форма runtime-токена |
|
||||
| 24 | `refreshOAuth` | Користувацьке оновлення OAuth |
|
||||
| 25 | `buildAuthDoctorHint` | Порада з відновлення auth |
|
||||
| 26 | `matchesContextOverflowError` | Виявлення переповнення, що належить провайдеру |
|
||||
| 27 | `classifyFailoverReason` | Класифікація rate-limit/overload, що належить провайдеру |
|
||||
| 28 | `isCacheTtlEligible` | Gating TTL кешу промптів |
|
||||
| 29 | `buildMissingAuthMessage` | Користувацька підказка про відсутній auth |
|
||||
| 30 | `suppressBuiltInModel` | Приховати застарілі upstream-рядки |
|
||||
| 31 | `augmentModelCatalog` | Синтетичні рядки для forward-compat |
|
||||
| 19 | `createStreamFn` | Повністю власний транспорт `StreamFn` |
|
||||
| 20 | `wrapStreamFn` | Власні обгортки заголовків/тіла на стандартному шляху потоку |
|
||||
| 21 | `resolveTransportTurnState` | Нативні заголовки/metadata для кожного turn |
|
||||
| 22 | `resolveWebSocketSessionPolicy` | Нативні заголовки сесії WS/cool-down |
|
||||
| 23 | `formatApiKey` | Власний формат runtime-токена |
|
||||
| 24 | `refreshOAuth` | Власне оновлення OAuth |
|
||||
| 25 | `buildAuthDoctorHint` | Підказка щодо виправлення автентифікації |
|
||||
| 26 | `matchesContextOverflowError` | Визначення переповнення контексту, що належить постачальнику |
|
||||
| 27 | `classifyFailoverReason` | Класифікація rate-limit/overload, що належить постачальнику |
|
||||
| 28 | `isCacheTtlEligible` | Gating TTL кешу prompt |
|
||||
| 29 | `buildMissingAuthMessage` | Власна підказка про відсутню автентифікацію |
|
||||
| 30 | `suppressBuiltInModel` | Приховування застарілих upstream-рядків |
|
||||
| 31 | `augmentModelCatalog` | Synthetic рядки для forward-compat |
|
||||
| 32 | `resolveThinkingProfile` | Набір параметрів `/think`, специфічний для моделі |
|
||||
| 33 | `isBinaryThinking` | Сумісність binary thinking увімк./вимк. |
|
||||
| 34 | `supportsXHighThinking` | Сумісність підтримки reasoning `xhigh` |
|
||||
| 35 | `resolveDefaultThinkingLevel` | Сумісність політики `/think` за замовчуванням |
|
||||
| 36 | `isModernModelRef` | Зіставлення live/smoke-моделей |
|
||||
| 37 | `prepareRuntimeAuth` | Обмін токенами перед інференсом |
|
||||
| 38 | `resolveUsageAuth` | Користувацький розбір облікових даних використання |
|
||||
| 39 | `fetchUsageSnapshot` | Користувацький ендпоїнт використання |
|
||||
| 40 | `createEmbeddingProvider` | Адаптер embedding, що належить провайдеру, для пам’яті/пошуку |
|
||||
| 41 | `buildReplayPolicy` | Користувацька політика replay/Compaction транскрипту |
|
||||
| 42 | `sanitizeReplayHistory` | Переписування replay, специфічні для провайдера, після загального очищення |
|
||||
| 43 | `validateReplayTurns` | Сувора валідація replay-turn перед вбудованим runner |
|
||||
| 44 | `onModelSelected` | Зворотний виклик після вибору моделі (наприклад, телеметрія) |
|
||||
| 36 | `isModernModelRef` | Зіставлення live/smoke моделей |
|
||||
| 37 | `prepareRuntimeAuth` | Обмін токенів перед inference |
|
||||
| 38 | `resolveUsageAuth` | Власний парсинг облікових даних usage |
|
||||
| 39 | `fetchUsageSnapshot` | Власний endpoint usage |
|
||||
| 40 | `createEmbeddingProvider` | Адаптер embedding, що належить постачальнику, для пам’яті/пошуку |
|
||||
| 41 | `buildReplayPolicy` | Власна політика replay/Compaction транскрипту |
|
||||
| 42 | `sanitizeReplayHistory` | Переписування replay, специфічне для постачальника, після загального очищення |
|
||||
| 43 | `validateReplayTurns` | Строга валідація replay-turn перед вбудованим runner |
|
||||
| 44 | `onModelSelected` | Зворотний виклик після вибору моделі (наприклад, telemetry) |
|
||||
|
||||
Примітки щодо runtime fallback:
|
||||
|
||||
- `normalizeConfig` спочатку перевіряє відповідний провайдер, а потім інші плагіни провайдерів із hook-можливостями, доки один із них справді не змінить конфігурацію. Якщо жоден hook провайдера не перепише підтримуваний запис конфігурації сімейства Google, усе одно застосовується вбудований нормалізатор конфігурації Google.
|
||||
- `resolveConfigApiKey` використовує hook провайдера, якщо його надано. Вбудований шлях `amazon-bedrock` також має тут вбудований resolver auth через AWS env-marker, хоча сам Bedrock runtime auth і надалі використовує стандартний ланцюжок AWS SDK.
|
||||
- `resolveSystemPromptContribution` дозволяє провайдеру ін’єктувати системні підказки для сімейства моделей з урахуванням кешу. Надавайте йому перевагу над `before_prompt_build`, коли поведінка належить одному провайдеру/сімейству моделей і має зберігати стабільний/динамічний поділ кешу.
|
||||
- `normalizeConfig` спочатку перевіряє зіставленого постачальника, потім інші Plugin постачальників із hook-можливостями, доки один із них справді не змінить config. Якщо жоден хук постачальника не перепише підтримуваний запис config сімейства Google, усе одно застосовується вбудований нормалізатор Google config.
|
||||
- `resolveConfigApiKey` використовує хук постачальника, якщо він доступний. Вбудований шлях `amazon-bedrock` також має тут вбудований resolver AWS env-marker, хоча сама runtime-автентифікація Bedrock усе ще використовує стандартний ланцюжок AWS SDK.
|
||||
- `resolveSystemPromptContribution` дозволяє постачальнику додавати cache-aware вказівки до системного prompt для сімейства моделей. Віддавайте йому перевагу над `before_prompt_build`, коли поведінка належить одному сімейству постачальника/моделей і має зберігати стабільний/динамічний поділ кешу.
|
||||
|
||||
Докладні описи та реальні приклади див. у [Internals: Provider Runtime Hooks](/uk/plugins/architecture-internals#provider-runtime-hooks).
|
||||
Детальні описи та реальні приклади дивіться в [Внутрішня архітектура: Runtime-хуки постачальника](/uk/plugins/architecture-internals#provider-runtime-hooks).
|
||||
</Accordion>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Додайте додаткові можливості (необов’язково)">
|
||||
Плагін провайдера може реєструвати синтез мовлення, транскрибування в realtime,
|
||||
голос у realtime, розуміння медіа, генерацію зображень, генерацію відео, web fetch
|
||||
і web search поряд із текстовим інференсом. OpenClaw класифікує це як
|
||||
плагін **hybrid-capability** — рекомендований шаблон для корпоративних плагінів
|
||||
(один плагін на вендора). Див.
|
||||
[Internals: Capability Ownership](/uk/plugins/architecture#capability-ownership-model).
|
||||
Plugin постачальника може реєструвати speech, realtime transcription, realtime
|
||||
voice, розуміння медіа, генерацію зображень, генерацію відео, web fetch
|
||||
і web search поряд із текстовим inference. OpenClaw класифікує це як
|
||||
Plugin із **hybrid-capability** — рекомендований шаблон для корпоративних Plugin
|
||||
(один Plugin на одного постачальника). Див.
|
||||
[Внутрішня архітектура: Власність можливостей](/uk/plugins/architecture#capability-ownership-model).
|
||||
|
||||
Реєструйте кожну можливість усередині `register(api)` поруч із наявним викликом
|
||||
`api.registerProvider(...)`. Вибирайте лише ті вкладки, які вам потрібні:
|
||||
Реєструйте кожну можливість у `register(api)` поряд із вашим наявним
|
||||
викликом `api.registerProvider(...)`. Обирайте лише ті вкладки, які вам потрібні:
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Мовлення (TTS)">
|
||||
<Tab title="Speech (TTS)">
|
||||
```typescript
|
||||
import {
|
||||
assertOkOrThrowProviderError,
|
||||
postJsonRequest,
|
||||
} from "openclaw/plugin-sdk/provider-http";
|
||||
|
||||
api.registerSpeechProvider({
|
||||
id: "acme-ai",
|
||||
label: "Acme Speech",
|
||||
isConfigured: ({ config }) => Boolean(config.messages?.tts),
|
||||
synthesize: async (req) => ({
|
||||
audioBuffer: Buffer.from(/* PCM data */),
|
||||
outputFormat: "mp3",
|
||||
fileExtension: ".mp3",
|
||||
voiceCompatible: false,
|
||||
}),
|
||||
synthesize: async (req) => {
|
||||
const { response, release } = await postJsonRequest({
|
||||
url: "https://api.example.com/v1/speech",
|
||||
headers: new Headers({ "Content-Type": "application/json" }),
|
||||
body: { text: req.text },
|
||||
timeoutMs: req.timeoutMs,
|
||||
fetchFn: fetch,
|
||||
auditContext: "acme speech",
|
||||
});
|
||||
try {
|
||||
await assertOkOrThrowProviderError(response, "Acme Speech API error");
|
||||
return {
|
||||
audioBuffer: Buffer.from(await response.arrayBuffer()),
|
||||
outputFormat: "mp3",
|
||||
fileExtension: ".mp3",
|
||||
voiceCompatible: false,
|
||||
};
|
||||
} finally {
|
||||
await release();
|
||||
}
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
Використовуйте `assertOkOrThrowProviderError(...)` для HTTP-збоїв постачальника, щоб
|
||||
Plugin спільно використовували обмежене читання тіла помилки, парсинг JSON-помилок і
|
||||
суфікси request-id.
|
||||
</Tab>
|
||||
<Tab title="Транскрибування в realtime">
|
||||
Надавайте перевагу `createRealtimeTranscriptionWebSocketSession(...)` — спільний
|
||||
helper обробляє перехоплення проксі, backoff повторних підключень, flush під час закриття, ready-handshake,
|
||||
чергу аудіо та діагностику подій закриття. Ваш плагін
|
||||
лише відображає upstream-події.
|
||||
<Tab title="Realtime transcription">
|
||||
Віддавайте перевагу `createRealtimeTranscriptionWebSocketSession(...)` — спільний
|
||||
helper обробляє перехоплення проксі, backoff повторного підключення, flush під час закриття, ready-handshake,
|
||||
чергування аудіо та діагностику подій закриття. Ваш Plugin
|
||||
лише відображає події upstream.
|
||||
|
||||
```typescript
|
||||
api.registerRealtimeTranscriptionProvider({
|
||||
@ -555,13 +579,13 @@ x-i18n:
|
||||
});
|
||||
```
|
||||
|
||||
Провайдери пакетного STT, які надсилають multipart-аудіо через POST, мають використовувати
|
||||
Пакетні постачальники STT, які надсилають multipart audio через POST, повинні використовувати
|
||||
`buildAudioTranscriptionFormData(...)` з
|
||||
`openclaw/plugin-sdk/provider-http`. Цей helper нормалізує імена
|
||||
файлів для вивантаження, зокрема AAC-вивантаження, яким потрібне ім’я файлу у стилі M4A для
|
||||
сумісних API транскрибування.
|
||||
`openclaw/plugin-sdk/provider-http`. Helper нормалізує
|
||||
імена файлів завантаження, зокрема завантаження AAC, яким потрібне ім’я файлу у стилі M4A для
|
||||
сумісних API транскрипції.
|
||||
</Tab>
|
||||
<Tab title="Голос у realtime">
|
||||
<Tab title="Realtime voice">
|
||||
```typescript
|
||||
api.registerRealtimeVoiceProvider({
|
||||
id: "acme-ai",
|
||||
@ -584,16 +608,16 @@ x-i18n:
|
||||
api.registerMediaUnderstandingProvider({
|
||||
id: "acme-ai",
|
||||
capabilities: ["image", "audio"],
|
||||
describeImage: async (req) => ({ text: "Фото..." }),
|
||||
transcribeAudio: async (req) => ({ text: "Транскрипт..." }),
|
||||
describeImage: async (req) => ({ text: "A photo of..." }),
|
||||
transcribeAudio: async (req) => ({ text: "Transcript..." }),
|
||||
});
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Генерація зображень і відео">
|
||||
Можливості відео використовують **форму з урахуванням режиму**: `generate`,
|
||||
`imageToVideo` і `videoToVideo`. Плоских агрегованих полів, як-от
|
||||
`maxInputImages` / `maxInputVideos` / `maxDurationSeconds`, недостатньо,
|
||||
щоб чисто оголошувати підтримку режиму трансформації або вимкнені режими.
|
||||
Можливості відео використовують форму **mode-aware**: `generate`,
|
||||
`imageToVideo` і `videoToVideo`. Плоских агрегованих полів на кшталт
|
||||
`maxInputImages` / `maxInputVideos` / `maxDurationSeconds` недостатньо,
|
||||
щоб коректно оголошувати підтримку transform-mode або вимкнені режими.
|
||||
Генерація музики використовує той самий шаблон із явними блоками `generate` /
|
||||
`edit`.
|
||||
|
||||
@ -616,12 +640,12 @@ x-i18n:
|
||||
});
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Web fetch і пошук">
|
||||
<Tab title="Web fetch і search">
|
||||
```typescript
|
||||
api.registerWebFetchProvider({
|
||||
id: "acme-ai-fetch",
|
||||
label: "Acme Fetch",
|
||||
hint: "Отримуйте сторінки через rendering-бекенд Acme.",
|
||||
hint: "Отримання сторінок через backend рендерингу Acme.",
|
||||
envVars: ["ACME_FETCH_API_KEY"],
|
||||
placeholder: "acme-...",
|
||||
signupUrl: "https://acme.example.com/fetch",
|
||||
@ -652,11 +676,11 @@ x-i18n:
|
||||
<Step title="Тестування">
|
||||
```typescript src/provider.test.ts
|
||||
import { describe, it, expect } from "vitest";
|
||||
// Експортуйте об’єкт конфігурації провайдера з index.ts або окремого файла
|
||||
// Export your provider config object from index.ts or a dedicated file
|
||||
import { acmeProvider } from "./provider.js";
|
||||
|
||||
describe("acme-ai provider", () => {
|
||||
it("визначає динамічні моделі", () => {
|
||||
it("resolves dynamic models", () => {
|
||||
const model = acmeProvider.resolveDynamicModel!({
|
||||
modelId: "acme-beta-v3",
|
||||
} as any);
|
||||
@ -664,14 +688,14 @@ x-i18n:
|
||||
expect(model.provider).toBe("acme-ai");
|
||||
});
|
||||
|
||||
it("повертає каталог, коли ключ доступний", async () => {
|
||||
it("returns catalog when key is available", async () => {
|
||||
const result = await acmeProvider.catalog!.run({
|
||||
resolveProviderApiKey: () => ({ apiKey: "test-key" }),
|
||||
} as any);
|
||||
expect(result?.provider?.models).toHaveLength(2);
|
||||
});
|
||||
|
||||
it("повертає null для каталогу, коли ключа немає", async () => {
|
||||
it("returns null catalog when no key", async () => {
|
||||
const result = await acmeProvider.catalog!.run({
|
||||
resolveProviderApiKey: () => ({ apiKey: undefined }),
|
||||
} as any);
|
||||
@ -685,14 +709,14 @@ x-i18n:
|
||||
|
||||
## Публікація в ClawHub
|
||||
|
||||
Плагіни провайдерів публікуються так само, як і будь-які інші зовнішні кодові плагіни:
|
||||
Plugin постачальників публікуються так само, як і будь-який інший зовнішній code Plugin:
|
||||
|
||||
```bash
|
||||
clawhub package publish your-org/your-plugin --dry-run
|
||||
clawhub package publish your-org/your-plugin
|
||||
```
|
||||
|
||||
Не використовуйте тут застарілий alias публікації лише для skill; пакети плагінів мають використовувати
|
||||
Не використовуйте тут застарілий псевдонім публікації лише для Skills; пакети Plugin мають використовувати
|
||||
`clawhub package publish`.
|
||||
|
||||
## Структура файлів
|
||||
@ -700,34 +724,34 @@ clawhub package publish your-org/your-plugin
|
||||
```
|
||||
<bundled-plugin-root>/acme-ai/
|
||||
├── package.json # метадані openclaw.providers
|
||||
├── openclaw.plugin.json # Маніфест із метаданими auth провайдера
|
||||
├── openclaw.plugin.json # Маніфест із метаданими автентифікації постачальника
|
||||
├── index.ts # definePluginEntry + registerProvider
|
||||
└── src/
|
||||
├── provider.test.ts # Тести
|
||||
└── usage.ts # Ендпоїнт використання (необов’язково)
|
||||
└── usage.ts # Endpoint usage (необов’язково)
|
||||
```
|
||||
|
||||
## Довідник порядку каталогів
|
||||
## Довідник порядку каталогу
|
||||
|
||||
`catalog.order` керує тим, коли ваш каталог об’єднується відносно вбудованих
|
||||
провайдерів:
|
||||
`catalog.order` визначає, коли ваш каталог зливається відносно вбудованих
|
||||
постачальників:
|
||||
|
||||
| Order | Коли | Випадок використання |
|
||||
| Порядок | Коли | Варіант використання |
|
||||
| --------- | ------------- | ----------------------------------------------- |
|
||||
| `simple` | Перший прохід | Звичайні провайдери з API-ключем |
|
||||
| `profile` | Після simple | Провайдери, обмежені профілями auth |
|
||||
| `paired` | Після profile | Синтез кількох пов’язаних записів |
|
||||
| `late` | Останній прохід | Перевизначення наявних провайдерів (виграє при колізії) |
|
||||
| `simple` | Перший прохід | Звичайні постачальники з API-ключем |
|
||||
| `profile` | Після simple | Постачальники, обмежені профілями автентифікації |
|
||||
| `paired` | Після profile | Синтез кількох пов’язаних записів |
|
||||
| `late` | Останній прохід | Перевизначення наявних постачальників (перемагає при конфлікті) |
|
||||
|
||||
## Наступні кроки
|
||||
|
||||
- [Плагіни каналів](/uk/plugins/sdk-channel-plugins) — якщо ваш плагін також надає канал
|
||||
- [SDK Runtime](/uk/plugins/sdk-runtime) — helper-и `api.runtime` (TTS, search, підагент)
|
||||
- [Channel Plugins](/uk/plugins/sdk-channel-plugins) — якщо ваш Plugin також надає канал
|
||||
- [SDK Runtime](/uk/plugins/sdk-runtime) — helper-и `api.runtime` (TTS, search, subagent)
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview) — повний довідник імпортів subpath
|
||||
- [Внутрішня архітектура плагінів](/uk/plugins/architecture-internals#provider-runtime-hooks) — подробиці про хуки та вбудовані приклади
|
||||
- [Внутрішня архітектура Plugin](/uk/plugins/architecture-internals#provider-runtime-hooks) — деталі хуків і приклади вбудованих
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
|
||||
- [Створення плагінів](/uk/plugins/building-plugins)
|
||||
- [Створення плагінів каналів](/uk/plugins/sdk-channel-plugins)
|
||||
- [Створення Plugin](/uk/plugins/building-plugins)
|
||||
- [Створення Channel Plugins](/uk/plugins/sdk-channel-plugins)
|
||||
|
||||
@ -1,282 +1,282 @@
|
||||
---
|
||||
read_when:
|
||||
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
|
||||
- Аудит підшляхів bundled-plugin і поверхонь допоміжних API
|
||||
summary: 'Каталог підшляхів Plugin SDK: які імпорти де знаходяться, згруповано за областями'
|
||||
- Аудит підшляхів bundled-plugin і допоміжних поверхонь
|
||||
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями'
|
||||
title: Підшляхи Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-24T08:35:12Z"
|
||||
generated_at: "2026-04-24T18:37:32Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 20b923e392b3ec65cfc958ccc7452b52d82bc372ae57cc9becad74a5085ed71b
|
||||
source_hash: 502fe07a2e1c8c6d70c5750d7a229e0262ecb94d4e535516a9cb939a8fa3e28c
|
||||
source_path: plugins/sdk-subpaths.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Plugin SDK представлено як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
|
||||
На цій сторінці наведено каталог найуживаніших підшляхів, згрупованих за призначенням. Згенерований
|
||||
повний список із понад 200 підшляхів міститься у `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталлю
|
||||
Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
|
||||
Ця сторінка каталогізує найуживаніші підшляхи, згруповані за призначенням. Згенерований
|
||||
повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані допоміжні підшляхи bundled-plugin також наведені там, але є деталями
|
||||
реалізації, якщо лише сторінка документації явно не просуває їх.
|
||||
|
||||
Посібник з розробки Plugin див. у [Огляд Plugin SDK](/uk/plugins/sdk-overview).
|
||||
Посібник з розробки Plugin див. у [огляді Plugin SDK](/uk/plugins/sdk-overview).
|
||||
|
||||
## Точка входу Plugin
|
||||
|
||||
| Subpath | Ключові експорти |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| Підшлях | Ключові експорти |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `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/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Channel subpaths">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи каналів">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/config-schema` | Кореневий експорт Zod-схеми `openclaw.json` (`OpenClawSchema`) |
|
||||
| `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` | Допоміжні функції для конфігурації багатьох акаунтів/шлюзу дій, допоміжні функції резервного вибору типового акаунта |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні функції нормалізації account-id |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні функції пошуку акаунта + резервного вибору типового |
|
||||
| `plugin-sdk/account-helpers` | Вузькі допоміжні функції для списку акаунтів/дій над акаунтами |
|
||||
| `plugin-sdk/account-core` | Допоміжні засоби для конфігурації багатьох облікових записів/шлюзів дій, допоміжні засоби резервного використання облікового запису за замовчуванням |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації ідентифікатора облікового запису |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису та резервного використання за замовчуванням |
|
||||
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списків облікових записів/дій облікових записів |
|
||||
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
||||
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Типи схеми конфігурації Channel |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні функції нормалізації/валідації користувацьких команд Telegram з резервним bundled-contract |
|
||||
| `plugin-sdk/command-gating` | Вузькі допоміжні функції шлюзу авторизації команд |
|
||||
| `plugin-sdk/channel-config-schema` | Типи схем конфігурації каналу |
|
||||
| `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/outbound-media` | Спільні допоміжні функції завантаження вихідних медіа |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні функції вихідної ідентичності, делегата надсилання та планування payload |
|
||||
| `plugin-sdk/poll-runtime` | Вузькі допоміжні функції нормалізації опитувань |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні функції життєвого циклу прив’язок потоків і адаптерів |
|
||||
| `plugin-sdk/agent-media-payload` | Застарілий побудовник media payload агента |
|
||||
| `plugin-sdk/conversation-runtime` | Допоміжні функції прив’язки розмов/потоків, pairing і configured-binding |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжна функція знімка конфігурації середовища виконання |
|
||||
| `plugin-sdk/runtime-group-policy` | Допоміжні функції визначення group-policy у середовищі виконання |
|
||||
| `plugin-sdk/channel-status` | Спільні допоміжні функції знімка/підсумку статусу Channel |
|
||||
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації Channel |
|
||||
| `plugin-sdk/channel-config-writes` | Допоміжні функції авторизації запису конфігурації Channel |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin Channel |
|
||||
| `plugin-sdk/allowlist-config-edit` | Допоміжні функції редагування/читання конфігурації allowlist |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні функції рішень щодо доступу груп |
|
||||
| `plugin-sdk/direct-dm` | Спільні допоміжні функції auth/guard для прямих DM |
|
||||
| `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні функції інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Barrel сумісності для debounce вхідних повідомлень, зіставлення згадок, допоміжних функцій mention-policy та envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні функції debounce вхідних повідомлень |
|
||||
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні функції mention-policy і тексту згадок без ширшої поверхні середовища вхідних повідомлень |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні функції форматування envelope вхідних повідомлень |
|
||||
| `plugin-sdk/channel-location` | Допоміжні функції контексту та форматування розташування Channel |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні функції логування Channel для відкинутих вхідних повідомлень і збоїв typing/ack |
|
||||
| `plugin-sdk/channel-send-result` | Типи результату відповіді |
|
||||
| `plugin-sdk/channel-actions` | Допоміжні функції дій із повідомленнями Channel, а також застарілі допоміжні функції native schema, збережені для сумісності Plugin |
|
||||
| `plugin-sdk/channel-targets` | Допоміжні функції розбору/зіставлення цілей |
|
||||
| `plugin-sdk/channel-contract` | Типи контракту Channel |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, допоміжні засоби життєвого циклу/фіналізації потоку чернетки |
|
||||
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних даних та побудови envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних відповідей |
|
||||
| `plugin-sdk/messaging-targets` | Допоміжні засоби парсингу/зіставлення цілей |
|
||||
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіаданих |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної ідентичності, делегування надсилання та планування корисного навантаження |
|
||||
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації опитувань |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу прив’язок потоків та адаптерів |
|
||||
| `plugin-sdk/agent-media-payload` | Застарілий збирач media payload агента |
|
||||
| `plugin-sdk/conversation-runtime` | Допоміжні засоби прив’язки розмови/потоку, pairing і налаштованих прив’язок |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб знімка конфігурації часу виконання |
|
||||
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби розв’язання групової політики часу виконання |
|
||||
| `plugin-sdk/channel-status` | Спільні допоміжні засоби знімка/зведення стану каналу |
|
||||
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
|
||||
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти Plugin каналу |
|
||||
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби читання/редагування конфігурації allowlist |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні засоби рішень щодо групового доступу |
|
||||
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби авторизації/захисту прямих DM |
|
||||
| `plugin-sdk/interactive-runtime` | Семантичне представлення повідомлень, доставка та застарілі допоміжні засоби інтерактивних відповідей. Див. [Представлення повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Barrel сумісності для debounce вхідних даних, зіставлення згадок, допоміжних засобів політики згадок та допоміжних засобів envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби debounce вхідних даних |
|
||||
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби політики згадок і тексту згадок без ширшої поверхні runtime вхідних даних |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope |
|
||||
| `plugin-sdk/channel-location` | Допоміжні засоби контексту та форматування розташування каналу |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні засоби журналювання каналу для відкинутих вхідних даних і збоїв typing/ack |
|
||||
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
|
||||
| `plugin-sdk/channel-actions` | Допоміжні засоби дій із повідомленнями каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
|
||||
| `plugin-sdk/channel-targets` | Допоміжні засоби парсингу/зіставлення цілей |
|
||||
| `plugin-sdk/channel-contract` | Типи контрактів каналу |
|
||||
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Provider subpaths">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи провайдерів">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/provider-setup` | Кураторські допоміжні функції налаштування локальних/self-hosted Provider |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні функції налаштування self-hosted Provider, сумісних з OpenAI |
|
||||
| `plugin-sdk/cli-backend` | Типові значення CLI backend + константи watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | Допоміжні функції визначення API-ключа під час виконання для Provider Plugin |
|
||||
| `plugin-sdk/provider-auth-api-key` | Допоміжні функції онбордингу/запису профілю API-ключа, такі як `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | Стандартний побудовник результату auth OAuth |
|
||||
| `plugin-sdk/provider-auth-login` | Спільні інтерактивні допоміжні функції входу для Provider Plugin |
|
||||
| `plugin-sdk/provider-env-vars` | Допоміжні функції пошуку env-var auth Provider |
|
||||
| `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-ключів під час виконання для Plugin провайдерів |
|
||||
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілів API-ключів, такі як `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/provider-auth-result` | Стандартний збирач результату OAuth-автентифікації |
|
||||
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для Plugin провайдерів |
|
||||
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку змінних середовища автентифікації провайдера |
|
||||
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники replay-policy, допоміжні функції endpoint Provider і допоміжні функції нормалізації model-id, такі як `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні збирачі політик replay, допоміжні засоби endpoint провайдерів і допоміжні засоби нормалізації ідентифікаторів моделей, такі як `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | Загальні допоміжні функції HTTP/можливостей endpoint Provider, включно з допоміжними функціями multipart form для аудіотранскрипції |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні функції контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | Допоміжні функції реєстрації/кешування Provider web-fetch |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні функції конфігурації/облікових даних web-search для Provider, яким не потрібне підключення ввімкнення Plugin |
|
||||
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні функції контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, і scoped setter/getter для облікових даних |
|
||||
| `plugin-sdk/provider-web-search` | Допоміжні функції реєстрації/кешування/середовища виконання Provider web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні функції сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `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 |
|
||||
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту конфігурації/облікових даних web-search, такі як `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped-засоби встановлення/отримання облікових даних |
|
||||
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime провайдерів web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini та діагностика, а також допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні функції обгорток Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Власні допоміжні функції транспорту Provider, такі як guarded fetch, трансформації транспортних повідомлень і потоки подій транспорту з можливістю запису |
|
||||
| `plugin-sdk/provider-onboard` | Допоміжні функції патчу конфігурації онбордингу |
|
||||
| `plugin-sdk/global-singleton` | Допоміжні функції process-local singleton/map/cache |
|
||||
| `plugin-sdk/group-activation` | Вузькі допоміжні функції режиму активації груп і розбору команд |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Власні допоміжні засоби транспорту провайдерів, такі як guarded fetch, трансформації транспортних повідомлень і потоки подій транспорту з можливістю запису |
|
||||
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
|
||||
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
|
||||
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації груп і парсингу команд |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи auth і security">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи автентифікації та безпеки">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні функції реєстру команд, допоміжні функції авторизації відправника |
|
||||
| `plugin-sdk/command-status` | Побудовники повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні функції визначення схвалювача та auth дій у межах того самого чату |
|
||||
| `plugin-sdk/approval-client-runtime` | Власні допоміжні функції профілю/фільтра схвалення exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Власні адаптери можливостей/доставки схвалення |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільна допоміжна функція визначення Gateway схвалення |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні функції завантаження власного адаптера схвалення для гарячих точок входу Channel |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні функції середовища виконання обробника схвалення; надавайте перевагу вужчим поверхням adapter/gateway, якщо їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Власні допоміжні функції цілі схвалення + прив’язки акаунта |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні функції payload відповіді на схвалення exec/plugin |
|
||||
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні функції скидання дедуплікації вхідних відповідей |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні функції тестування контракту Channel без широкого testing barrel |
|
||||
| `plugin-sdk/command-auth-native` | Власні допоміжні функції auth команд + цілі сесії native |
|
||||
| `plugin-sdk/command-detection` | Спільні допоміжні функції виявлення команд |
|
||||
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів Channel |
|
||||
| `plugin-sdk/command-surface` | Допоміжні функції нормалізації тіла команд і поверхні команд |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
|
||||
| `plugin-sdk/command-status` | Збирачі повідомлень команд/довідки, такі як `buildCommandsMessagePaginated` і `buildHelpMessage` |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення затверджувача та автентифікації дій у тому самому чаті |
|
||||
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Native-адаптери можливостей/доставки approval |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval Gateway |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні засоби завантаження native-адаптера approval для гарячих точок входу каналів |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime-обробника approval; віддавайте перевагу вужчим adapter/gateway seam, коли їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби native-цілі approval і прив’язки облікового запису |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді exec/plugin approval |
|
||||
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби тестування контрактів каналу без широкого testing barrel |
|
||||
| `plugin-sdk/command-auth-native` | Native-автентифікація команд і допоміжні засоби native session-target |
|
||||
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
|
||||
| `plugin-sdk/command-primitives-runtime` | Полегшені предикати тексту команд для гарячих шляхів каналу |
|
||||
| `plugin-sdk/command-surface` | Допоміжні засоби нормалізації тіла команди та command-surface |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції збирання secret-contract для поверхонь секретів channel/plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні функції `coerceSecretRef` і типізації SecretRef для парсингу secret-contract/config |
|
||||
| `plugin-sdk/security-runtime` | Спільні допоміжні функції довіри, шлюзу DM, зовнішнього вмісту та збирання секретів |
|
||||
| `plugin-sdk/ssrf-policy` | Допоміжні функції політики SSRF для allowlist хостів і приватних мереж |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні функції pinned-dispatcher без широкої поверхні infra runtime |
|
||||
| `plugin-sdk/ssrf-runtime` | Допоміжні функції pinned-dispatcher, fetch із захистом SSRF і політики SSRF |
|
||||
| `plugin-sdk/secret-input` | Допоміжні функції парсингу введення секретів |
|
||||
| `plugin-sdk/webhook-ingress` | Допоміжні функції запиту/цілі Webhook |
|
||||
| `plugin-sdk/webhook-request-guards` | Допоміжні функції розміру тіла запиту/тайм-ауту |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для секретних поверхонь каналу/plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для парсингу secret-contract/config |
|
||||
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього вмісту та збирання секретів |
|
||||
| `plugin-sdk/ssrf-policy` | Допоміжні засоби політики SSRF для allowlist хостів і приватних мереж |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої інфраструктурної runtime-поверхні |
|
||||
| `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` | Допоміжні засоби розміру тіла запиту/тайм-ауту |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи runtime і storage">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи runtime та сховища">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні функції runtime/logging/backup/встановлення plugin |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні функції env runtime, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні функції реєстрації та пошуку runtime-context Channel |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби runtime env, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку channel runtime-context |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | Спільні допоміжні функції команд/hook/http/interactive для plugin |
|
||||
| `plugin-sdk/hook-runtime` | Спільні допоміжні функції pipeline Webhook/внутрішніх hook |
|
||||
| `plugin-sdk/lazy-runtime` | Допоміжні функції lazy import/binding runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | Допоміжні функції exec процесів |
|
||||
| `plugin-sdk/cli-runtime` | Допоміжні функції форматування CLI, очікування та версії |
|
||||
| `plugin-sdk/gateway-runtime` | Допоміжні функції клієнта Gateway і patch статусу Channel |
|
||||
| `plugin-sdk/config-runtime` | Допоміжні функції завантаження/запису конфігурації та пошуку конфігурації plugin |
|
||||
| `plugin-sdk/telegram-command-config` | Нормалізація імен/описів команд Telegram та перевірки дублікатів/конфліктів, навіть коли поверхня контракту bundled Telegram недоступна |
|
||||
| `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 |
|
||||
| `plugin-sdk/gateway-runtime` | Допоміжні засоби клієнта Gateway і патчів статусу каналу |
|
||||
| `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації та пошуку конфігурації plugin |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації назви/опису команд Telegram і перевірок дублікатів/конфліктів, навіть коли поверхня bundled Telegram contract недоступна |
|
||||
| `plugin-sdk/text-autolink-runtime` | Виявлення autolink посилань на файли без широкого text-runtime barrel |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні функції схвалення exec/plugin, побудовники можливостей схвалення, допоміжні функції auth/профілів, власні допоміжні функції маршрутизації/runtime |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні функції runtime для вхідних повідомлень/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні функції dispatch/finalize відповідей і міток conversation |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні функції коротковіконної історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, збирачі approval-capability, допоміжні засоби auth/profile, native routing/runtime helpers |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime вхідних даних/відповідей, chunking, dispatch, Heartbeat, планувальник відповідей |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповідей і ярликів розмов |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні засоби короткого вікна історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Вузькі допоміжні функції chunking тексту/markdown |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні функції шляху session store + updated-at |
|
||||
| `plugin-sdk/state-paths` | Допоміжні функції шляхів директорій state/OAuth |
|
||||
| `plugin-sdk/routing` | Допоміжні функції route/session-key/прив’язки акаунта, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Спільні допоміжні функції зведення статусу Channel/акаунта, типові значення runtime-state і допоміжні функції метаданих проблем |
|
||||
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні функції визначення цілей |
|
||||
| `plugin-sdk/string-normalization-runtime` | Допоміжні функції нормалізації slug/рядків |
|
||||
| `plugin-sdk/request-url` | Витягання рядкових URL із fetch/request-подібних входів |
|
||||
| `plugin-sdk/run-command` | Виконавець команд із таймером та нормалізованими результатами stdout/stderr |
|
||||
| `plugin-sdk/param-readers` | Поширені рідери параметрів tool/CLI |
|
||||
| `plugin-sdk/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/json-store` | Невеликі допоміжні функції читання/запису стану JSON |
|
||||
| `plugin-sdk/file-lock` | Допоміжні функції повторно вхідного file-lock |
|
||||
| `plugin-sdk/persistent-dedupe` | Допоміжні функції кешу дедуплікації зберігання на диску |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні функції runtime/сесії ACP і dispatch відповідей |
|
||||
| `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-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/json-store` | Допоміжні засоби читання/запису малого JSON state |
|
||||
| `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідного file-lock |
|
||||
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового кешу дедуплікації |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і dispatch відповідей |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Визначення прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
|
||||
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
|
||||
| `plugin-sdk/boolean-param` | Нестрогий рідер булевих параметрів |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні функції визначення збігів небезпечних назв |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні функції початкового налаштування пристрою та токенів pairing |
|
||||
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних функцій passive-channel, статусу та ambient proxy |
|
||||
| `plugin-sdk/models-provider-runtime` | Допоміжні функції команди `/models`/відповідей Provider |
|
||||
| `plugin-sdk/skill-commands-runtime` | Допоміжні функції виведення списку команд Skills |
|
||||
| `plugin-sdk/native-command-registry` | Власні допоміжні функції реєстру/build/serialize команд |
|
||||
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих harness агента: типи harness, допоміжні функції steer/abort активного запуску, допоміжні функції моста tool OpenClaw, форматування/detail прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Допоміжні функції виявлення endpoint Z.AI |
|
||||
| `plugin-sdk/infra-runtime` | Допоміжні функції системних подій/Heartbeat |
|
||||
| `plugin-sdk/collection-runtime` | Невеликі допоміжні функції обмеженого кешу |
|
||||
| `plugin-sdk/diagnostic-runtime` | Допоміжні функції діагностичних прапорців і подій |
|
||||
| `plugin-sdk/error-runtime` | Допоміжні функції графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Допоміжні функції обгорнутого fetch, proxy і pinned lookup |
|
||||
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента |
|
||||
| `plugin-sdk/boolean-param` | Читач loose boolean-параметрів |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення збігів небезпечних імен |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та pairing token |
|
||||
| `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/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих agent harness: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge інструментів OpenClaw, форматування/деталізація прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
|
||||
| `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/Heartbeat |
|
||||
| `plugin-sdk/collection-runtime` | Допоміжні засоби малого обмеженого кешу |
|
||||
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій |
|
||||
| `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` | Поточний стан прив’язки розмови без маршрутизації configured binding або pairing store |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні функції читання session store без широких імпортів запису/обслуговування конфігурації |
|
||||
| `plugin-sdk/response-limit-runtime` | Читач тіла відповіді з обмеженням без широкої media runtime-поверхні |
|
||||
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без маршрутизації налаштованих прив’язок або pairing store |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби читання сховища сесій без широких імпортів запису/обслуговування конфігурації |
|
||||
| `plugin-sdk/context-visibility-runtime` | Визначення видимості контексту та фільтрація додаткового контексту без широких імпортів config/security |
|
||||
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні функції приведення й нормалізації primitive record/string без імпортів markdown/logging |
|
||||
| `plugin-sdk/host-runtime` | Допоміжні функції нормалізації hostname і SCP host |
|
||||
| `plugin-sdk/retry-runtime` | Допоміжні функції конфігурації retry і виконавця retry |
|
||||
| `plugin-sdk/agent-runtime` | Допоміжні функції директорії/ідентичності/робочого простору агента |
|
||||
| `plugin-sdk/directory-runtime` | Запит/dedup директорій на основі конфігурації |
|
||||
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging |
|
||||
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації імен хостів і SCP host |
|
||||
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконавця retry |
|
||||
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/робочого простору агента |
|
||||
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогу на основі конфігурації |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи capability і testing">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи можливостей і тестування">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | Спільні допоміжні функції fetch/transform/store для медіа, а також побудовники media payload |
|
||||
| `plugin-sdk/media-store` | Вузькі допоміжні функції media store, такі як `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні функції failover генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
|
||||
| `plugin-sdk/media-understanding` | Типи Provider для розуміння медіа, а також орієнтовані на Provider експорти допоміжних функцій зображень/аудіо |
|
||||
| `plugin-sdk/text-runtime` | Спільні допоміжні функції text/markdown/logging, такі як вилучення видимого для асистента тексту, допоміжні функції render/chunking/table для Markdown, допоміжні функції редагування чутливих даних, допоміжні функції тегів директив і утиліти безпечного тексту |
|
||||
| `plugin-sdk/text-chunking` | Допоміжна функція chunking вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи speech Provider, а також орієнтовані на Provider допоміжні функції директив, реєстру та валідації |
|
||||
| `plugin-sdk/speech-core` | Спільні типи speech Provider, а також допоміжні функції реєстру, директив і нормалізації |
|
||||
| `plugin-sdk/realtime-transcription` | Типи Provider для транскрипції в реальному часі, допоміжні функції реєстру та спільна допоміжна функція сесії WebSocket |
|
||||
| `plugin-sdk/realtime-voice` | Типи Provider для голосу в реальному часі та допоміжні функції реєстру |
|
||||
| `plugin-sdk/image-generation` | Типи Provider для генерації зображень |
|
||||
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, а також допоміжні функції failover, auth і реєстру |
|
||||
| `plugin-sdk/music-generation` | Типи Provider/запитів/результатів для генерації музики |
|
||||
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні функції failover, пошуку Provider і парсингу model-ref |
|
||||
| `plugin-sdk/video-generation` | Типи Provider/запитів/результатів для генерації відео |
|
||||
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні функції failover, пошуку Provider і парсингу model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Допоміжні функції реєстру цілей Webhook і встановлення route |
|
||||
| `plugin-sdk/webhook-path` | Допоміжні функції нормалізації шляху Webhook |
|
||||
| `plugin-sdk/web-media` | Спільні допоміжні функції завантаження віддалених/локальних медіа |
|
||||
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів Plugin SDK |
|
||||
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також збирачі media payload |
|
||||
| `plugin-sdk/media-store` | Вузькі допоміжні засоби media store, такі як `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибору кандидатів і повідомлень про відсутні моделі |
|
||||
| `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також provider-facing експорти допоміжних засобів для зображень/аудіо |
|
||||
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби text/markdown/logging, такі як видалення тексту, видимого асистенту, допоміжні засоби рендерингу/chunking/таблиць Markdown, допоміжні засоби редагування чутливих даних, допоміжні засоби directive tag і утиліти safe-text |
|
||||
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також provider-facing експорти directive, registry, validation і speech helper |
|
||||
| `plugin-sdk/speech-core` | Спільні експорти типів провайдерів мовлення, registry, directive, normalization і speech helper |
|
||||
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби registry і спільний допоміжний засіб сесії WebSocket |
|
||||
| `plugin-sdk/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/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи Memory">
|
||||
| Subpath | Ключові експорти |
|
||||
<Accordion title="Підшляхи пам’яті">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/memory-core` | Поверхня допоміжних API bundled memory-core для допоміжних функцій manager/config/file/CLI |
|
||||
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для менеджера/конфігурації/файлів/допоміжних засобів CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексації/пошуку Memory |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста Memory, доступ до registry, локальний Provider і загальні допоміжні функції batch/remote |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста Memory, доступ до registry, локальний провайдер і загальні batch/remote helper |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Допоміжні функції multimodal хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-query` | Допоміжні функції запитів хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-secret` | Допоміжні функції секретів хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-events` | Допоміжні функції журналу подій хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-status` | Допоміжні функції статусу хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні функції CLI runtime хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні функції core runtime хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні функції файлів/runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для допоміжних функцій core runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для допоміжних функцій журналу подій хоста Memory |
|
||||
| `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для допоміжних функцій файлів/runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні функції managed-markdown для Plugin, суміжних із Memory |
|
||||
| `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до search-manager |
|
||||
| `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для допоміжних функцій статусу хоста Memory |
|
||||
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних API bundled memory-lancedb |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні helper хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-query` | Helper запитів хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-secret` | Helper секретів хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-events` | Helper журналу подій хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-status` | Helper статусу хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Helper runtime CLI хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Helper базового runtime хоста Memory |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Helper файлів/runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-core` | Вендорно-нейтральний псевдонім для helper базового runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-events` | Вендорно-нейтральний псевдонім для helper журналу подій хоста Memory |
|
||||
| `plugin-sdk/memory-host-files` | Вендорно-нейтральний псевдонім для helper файлів/runtime хоста Memory |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні helper керованого markdown для plugin, пов’язаних із пам’яттю |
|
||||
| `plugin-sdk/memory-host-search` | Фасад runtime Active Memory для доступу до менеджера пошуку |
|
||||
| `plugin-sdk/memory-host-status` | Вендорно-нейтральний псевдонім для helper статусу хоста Memory |
|
||||
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Зарезервовані підшляхи bundled-helper">
|
||||
| Family | Поточні підшляхи | Призначення |
|
||||
| Сімейство | Поточні підшляхи | Призначення |
|
||||
| --- | --- | --- |
|
||||
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні API підтримки bundled 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` | Поверхня допоміжних API/runtime bundled Matrix |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних API/runtime bundled LINE |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних API bundled IRC |
|
||||
| Channel-specific helpers | `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` | Поверхні сумісності/допоміжних API bundled Channel |
|
||||
| Auth/plugin-specific helpers | `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` | Поверхні допоміжних API bundled функцій/Plugin; `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` | Допоміжні helper підтримки bundled 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 bundled Matrix |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня helper/runtime bundled LINE |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня helper bundled 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` | Seam сумісності/helper bundled каналів |
|
||||
| Допоміжні засоби, специфічні для auth/plugin | `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` | Seam helper bundled функцій/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -284,4 +284,4 @@ x-i18n:
|
||||
|
||||
- [Огляд Plugin SDK](/uk/plugins/sdk-overview)
|
||||
- [Налаштування Plugin SDK](/uk/plugins/sdk-setup)
|
||||
- [Створення Plugin](/uk/plugins/building-plugins)
|
||||
- [Створення plugin](/uk/plugins/building-plugins)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user