chore(i18n): refresh uk translations
This commit is contained in:
parent
c80bf58e88
commit
aed949068f
@ -1,28 +1,28 @@
|
||||
---
|
||||
read_when:
|
||||
- Робота над функціями Telegram або Webhook
|
||||
summary: Статус підтримки, можливості та налаштування бота Telegram
|
||||
summary: Стан підтримки, можливості та конфігурація бота Telegram
|
||||
title: Telegram
|
||||
x-i18n:
|
||||
generated_at: "2026-04-29T05:56:58Z"
|
||||
generated_at: "2026-04-29T11:22:40Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 0bf75d82f21658a1ca547b2e4ab229f7b6e47537a2379bf52bd7a18f0677664b
|
||||
source_hash: 06f186bfe9e9f8a90219cc4f440dcc79fdeb8d1b7a31799c934339680d6812ef
|
||||
source_path: channels/telegram.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Готово для production для DM ботів і груп через grammY. Long polling є режимом за замовчуванням; режим Webhook є необов’язковим.
|
||||
Готово до production для особистих повідомлень ботам і груп через grammY. Довге опитування є режимом за замовчуванням; режим Webhook необов’язковий.
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Сполучення" icon="link" href="/uk/channels/pairing">
|
||||
Політика DM за замовчуванням для Telegram — сполучення.
|
||||
Типова політика DM для Telegram — сполучення.
|
||||
</Card>
|
||||
<Card title="Усунення несправностей каналів" icon="wrench" href="/uk/channels/troubleshooting">
|
||||
Міжканальна діагностика та інструкції з відновлення.
|
||||
Міжканальна діагностика й інструкції з відновлення.
|
||||
</Card>
|
||||
<Card title="Конфігурація Gateway" icon="settings" href="/uk/gateway/configuration">
|
||||
Повні шаблони й приклади конфігурації каналів.
|
||||
Повні шаблони конфігурації каналів і приклади.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -30,9 +30,9 @@ x-i18n:
|
||||
|
||||
<Steps>
|
||||
<Step title="Створіть токен бота в BotFather">
|
||||
Відкрийте Telegram і почніть чат із **@BotFather** (переконайтеся, що handle точно `@BotFather`).
|
||||
Відкрийте Telegram і напишіть **@BotFather** (переконайтеся, що handle точно `@BotFather`).
|
||||
|
||||
Виконайте `/newbot`, дотримуйтеся підказок і збережіть токен.
|
||||
Виконайте `/newbot`, дотримуйтесь підказок і збережіть токен.
|
||||
|
||||
</Step>
|
||||
|
||||
@ -51,12 +51,12 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
Резервний варіант через env: `TELEGRAM_BOT_TOKEN=...` (лише обліковий запис за замовчуванням).
|
||||
Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, потім запустіть Gateway.
|
||||
Резервний env: `TELEGRAM_BOT_TOKEN=...` (лише обліковий запис за замовчуванням).
|
||||
Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, потім запустіть gateway.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Запустіть Gateway і схваліть перший DM">
|
||||
<Step title="Запустіть gateway і схваліть перший DM">
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
@ -74,34 +74,34 @@ openclaw pairing approve telegram <CODE>
|
||||
</Steps>
|
||||
|
||||
<Note>
|
||||
Порядок визначення токена враховує облікові записи. На практиці значення config мають пріоритет над резервним env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням.
|
||||
Порядок визначення токена враховує обліковий запис. На практиці значення config мають пріоритет над резервним env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням.
|
||||
</Note>
|
||||
|
||||
## Налаштування на боці Telegram
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Режим приватності та видимість у групах">
|
||||
Боти Telegram за замовчуванням використовують **Privacy Mode**, який обмежує, які групові повідомлення вони отримують.
|
||||
<Accordion title="Режим приватності та видимість груп">
|
||||
Боти Telegram за замовчуванням використовують **режим приватності**, який обмежує, які групові повідомлення вони отримують.
|
||||
|
||||
Якщо бот має бачити всі повідомлення групи, виконайте одне з такого:
|
||||
Якщо бот має бачити всі групові повідомлення, або:
|
||||
|
||||
- вимкніть режим приватності через `/setprivacy`, або
|
||||
- зробіть бота адміністратором групи.
|
||||
|
||||
Після перемикання режиму приватності видаліть і повторно додайте бота в кожній групі, щоб Telegram застосував зміну.
|
||||
Після перемикання режиму приватності видаліть і знову додайте бота в кожну групу, щоб Telegram застосував зміну.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Дозволи групи">
|
||||
Статус адміністратора керується в налаштуваннях групи Telegram.
|
||||
Статус адміністратора контролюється в налаштуваннях групи Telegram.
|
||||
|
||||
Боти-адміністратори отримують усі повідомлення групи, що корисно для постійно активної поведінки в групі.
|
||||
Боти-адміністратори отримують усі групові повідомлення, що корисно для постійно активної поведінки в групі.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Корисні перемикачі BotFather">
|
||||
|
||||
- `/setjoingroups`, щоб дозволити/заборонити додавання до груп
|
||||
- `/setjoingroups` для дозволу/заборони додавання до груп
|
||||
- `/setprivacy` для поведінки видимості в групах
|
||||
|
||||
</Accordion>
|
||||
@ -111,35 +111,35 @@ openclaw pairing approve telegram <CODE>
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Політика DM">
|
||||
`channels.telegram.dmPolicy` керує доступом до особистих повідомлень:
|
||||
`channels.telegram.dmPolicy` керує доступом до прямих повідомлень:
|
||||
|
||||
- `pairing` (за замовчуванням)
|
||||
- `allowlist` (потребує принаймні одного ID відправника в `allowFrom`)
|
||||
- `allowlist` (потребує щонайменше одного ID відправника в `allowFrom`)
|
||||
- `open` (потребує, щоб `allowFrom` містив `"*"`)
|
||||
- `disabled`
|
||||
|
||||
`dmPolicy: "open"` з `allowFrom: ["*"]` дозволяє будь-якому обліковому запису Telegram, який знайде або вгадає ім’я користувача бота, керувати ботом. Використовуйте це лише для навмисно публічних ботів із суворо обмеженими інструментами; боти з одним власником мають використовувати `allowlist` із числовими ID користувачів.
|
||||
`dmPolicy: "open"` з `allowFrom: ["*"]` дозволяє будь-якому обліковому запису Telegram, який знайде або вгадає ім’я користувача бота, керувати ботом. Використовуйте це лише для навмисно публічних ботів із жорстко обмеженими інструментами; боти з одним власником мають використовувати `allowlist` із числовими ID користувачів.
|
||||
|
||||
`channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` приймаються й нормалізуються.
|
||||
У конфігураціях із кількома обліковими записами обмежувальний верхньорівневий `channels.telegram.allowFrom` розглядається як межа безпеки: записи рівня облікового запису `allowFrom: ["*"]` не роблять цей обліковий запис публічним, якщо ефективний allowlist облікового запису після злиття все ще не містить явний wildcard.
|
||||
`dmPolicy: "allowlist"` з порожнім `allowFrom` блокує всі DM і відхиляється валідацією config.
|
||||
У конфігураціях із кількома обліковими записами обмежувальний верхньорівневий `channels.telegram.allowFrom` трактується як межа безпеки: записи рівня облікового запису `allowFrom: ["*"]` не роблять цей обліковий запис публічним, якщо ефективний allowlist облікового запису після злиття все ще не містить явного wildcard.
|
||||
`dmPolicy: "allowlist"` із порожнім `allowFrom` блокує всі DM і відхиляється валідацією конфігурації.
|
||||
Налаштування запитує лише числові ID користувачів.
|
||||
Якщо ви оновилися й ваша config містить записи allowlist `@username`, виконайте `openclaw doctor --fix`, щоб їх розв’язати (best-effort; потребує токена бота Telegram).
|
||||
Якщо ви оновилися й ваша конфігурація містить записи allowlist `@username`, запустіть `openclaw doctor --fix`, щоб їх визначити (найкраще з можливого; потребує токена бота Telegram).
|
||||
Якщо раніше ви покладалися на файли allowlist зі сховища сполучень, `openclaw doctor --fix` може відновити записи в `channels.telegram.allowFrom` у потоках allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID).
|
||||
|
||||
Для ботів з одним власником надавайте перевагу `dmPolicy: "allowlist"` з явними числовими ID `allowFrom`, щоб політика доступу залишалася сталою в config (замість залежності від попередніх схвалень сполучення).
|
||||
Для ботів з одним власником надавайте перевагу `dmPolicy: "allowlist"` із явними числовими ID `allowFrom`, щоб політика доступу була сталою в конфігурації (замість залежності від попередніх схвалень сполучення).
|
||||
|
||||
Поширена плутанина: схвалення сполучення DM не означає «цей відправник авторизований усюди».
|
||||
Сполучення надає доступ до DM. Якщо власник команд ще не існує, перше схвалене сполучення також встановлює `commands.ownerAllowFrom`, щоб команди лише для власника та схвалення exec мали явний обліковий запис оператора.
|
||||
Авторизація відправника в групі все ще походить з явних allowlist у config.
|
||||
Якщо ви хочете «я авторизований один раз, і працюють як DM, так і групові команди», додайте свій числовий ID користувача Telegram у `channels.telegram.allowFrom`; для команд лише для власника переконайтеся, що `commands.ownerAllowFrom` містить `telegram:<your user id>`.
|
||||
Поширена плутанина: схвалення сполучення DM не означає «цей відправник авторизований всюди».
|
||||
Сполучення надає доступ до DM. Якщо власника команд ще немає, перше схвалене сполучення також задає `commands.ownerAllowFrom`, щоб команди лише для власника й схвалення exec мали явний обліковий запис оператора.
|
||||
Авторизація відправника в групі все одно походить із явних allowlist у конфігурації.
|
||||
Якщо ви хочете «я авторизований один раз, і працюють і DM, і групові команди», помістіть свій числовий ID користувача Telegram у `channels.telegram.allowFrom`; для команд лише для власника переконайтеся, що `commands.ownerAllowFrom` містить `telegram:<your user id>`.
|
||||
|
||||
### Як знайти свій ID користувача Telegram
|
||||
|
||||
Безпечніше (без стороннього бота):
|
||||
|
||||
1. Напишіть DM своєму боту.
|
||||
2. Виконайте `openclaw logs --follow`.
|
||||
1. Напишіть своєму боту в DM.
|
||||
2. Запустіть `openclaw logs --follow`.
|
||||
3. Прочитайте `from.id`.
|
||||
|
||||
Офіційний метод Bot API:
|
||||
@ -153,7 +153,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
</Tab>
|
||||
|
||||
<Tab title="Політика груп і allowlist">
|
||||
Два елементи керування застосовуються разом:
|
||||
Разом застосовуються два елементи керування:
|
||||
|
||||
1. **Які групи дозволені** (`channels.telegram.groups`)
|
||||
- немає config `groups`:
|
||||
@ -161,22 +161,22 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
- з `groupPolicy: "allowlist"` (за замовчуванням): групи блокуються, доки ви не додасте записи `groups` (або `"*"`)
|
||||
- `groups` налаштовано: працює як allowlist (явні ID або `"*"`)
|
||||
|
||||
2. **Яким відправникам дозволено в групах** (`channels.telegram.groupPolicy`)
|
||||
2. **Які відправники дозволені в групах** (`channels.telegram.groupPolicy`)
|
||||
- `open`
|
||||
- `allowlist` (за замовчуванням)
|
||||
- `disabled`
|
||||
|
||||
`groupAllowFrom` використовується для фільтрації відправників у групах. Якщо не задано, Telegram повертається до `allowFrom`.
|
||||
`groupAllowFrom` використовується для фільтрації відправників у групі. Якщо не задано, Telegram повертається до `allowFrom`.
|
||||
Записи `groupAllowFrom` мають бути числовими ID користувачів Telegram (префікси `telegram:` / `tg:` нормалізуються).
|
||||
Не додавайте ID чатів груп або супергруп Telegram у `groupAllowFrom`. Від’ємні ID чатів мають бути в `channels.telegram.groups`.
|
||||
Не додавайте ID чатів груп або супергруп Telegram у `groupAllowFrom`. Від’ємні ID чатів належать до `channels.telegram.groups`.
|
||||
Нечислові записи ігноруються для авторизації відправника.
|
||||
Межа безпеки (`2026.2.25+`): авторизація відправника в групі **не** успадковує схвалення зі сховища сполучень DM.
|
||||
Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` на рівні групи/теми.
|
||||
Межа безпеки (`2026.2.25+`): автентифікація відправника групи **не** успадковує схвалення зі сховища сполучень DM.
|
||||
Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` для конкретної групи/теми.
|
||||
Якщо `groupAllowFrom` не задано, Telegram повертається до config `allowFrom`, а не до сховища сполучень.
|
||||
Практичний шаблон для ботів з одним власником: задайте свій ID користувача в `channels.telegram.allowFrom`, залиште `groupAllowFrom` незаданим і дозвольте цільові групи в `channels.telegram.groups`.
|
||||
Примітка щодо runtime: якщо `channels.telegram` повністю відсутній, runtime за замовчуванням fail-closed до `groupPolicy="allowlist"`, якщо `channels.defaults.groupPolicy` не задано явно.
|
||||
Примітка runtime: якщо `channels.telegram` повністю відсутній, runtime за замовчуванням fail-closed до `groupPolicy="allowlist"`, якщо `channels.defaults.groupPolicy` не задано явно.
|
||||
|
||||
Приклад: дозволити будь-якому учаснику в одній конкретній групі:
|
||||
Приклад: дозволити будь-якого учасника в одній конкретній групі:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -213,32 +213,32 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
<Warning>
|
||||
Поширена помилка: `groupAllowFrom` не є allowlist груп Telegram.
|
||||
|
||||
- Розміщуйте від’ємні ID чатів груп або супергруп Telegram, як-от `-1001234567890`, у `channels.telegram.groups`.
|
||||
- Розміщуйте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть запускати бота.
|
||||
- Використовуйте `groupAllowFrom: ["*"]` лише коли хочете, щоб будь-який учасник дозволеної групи міг говорити з ботом.
|
||||
- Поміщайте від’ємні ID чатів груп або супергруп Telegram, як-от `-1001234567890`, у `channels.telegram.groups`.
|
||||
- Поміщайте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть запускати бота.
|
||||
- Використовуйте `groupAllowFrom: ["*"]` лише коли хочете, щоб будь-який учасник дозволеної групи міг спілкуватися з ботом.
|
||||
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Поведінка згадок">
|
||||
Відповіді в групах за замовчуванням потребують згадки.
|
||||
<Tab title="Поведінка згадування">
|
||||
Групові відповіді за замовчуванням потребують згадування.
|
||||
|
||||
Згадка може надходити з:
|
||||
Згадування може походити з:
|
||||
|
||||
- нативної згадки `@botusername`, або
|
||||
- шаблонів згадок у:
|
||||
- нативного згадування `@botusername`, або
|
||||
- шаблонів згадування в:
|
||||
- `agents.list[].groupChat.mentionPatterns`
|
||||
- `messages.groupChat.mentionPatterns`
|
||||
|
||||
Перемикачі команд рівня сесії:
|
||||
Перемикачі команд рівня сеансу:
|
||||
|
||||
- `/activation always`
|
||||
- `/activation mention`
|
||||
|
||||
Вони оновлюють лише стан сесії. Для збереження використовуйте config.
|
||||
Вони оновлюють лише стан сеансу. Для сталості використовуйте конфігурацію.
|
||||
|
||||
Приклад сталої config:
|
||||
Приклад сталої конфігурації:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -252,44 +252,44 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
}
|
||||
```
|
||||
|
||||
Як отримати ID групового чату:
|
||||
Отримання ID групового чату:
|
||||
|
||||
- переслати повідомлення групи до `@userinfobot` / `@getidsbot`
|
||||
- або прочитати `chat.id` з `openclaw logs --follow`
|
||||
- або переглянути Bot API `getUpdates`
|
||||
- перешліть групове повідомлення до `@userinfobot` / `@getidsbot`
|
||||
- або прочитайте `chat.id` з `openclaw logs --follow`
|
||||
- або перевірте Bot API `getUpdates`
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Поведінка runtime
|
||||
|
||||
- Telegram належить процесу Gateway.
|
||||
- Маршрутизація детермінована: вхідні повідомлення Telegram отримують відповідь у Telegram (модель не вибирає канали).
|
||||
- Вхідні повідомлення нормалізуються в спільний конверт каналу з метаданими відповіді та placeholder для медіа.
|
||||
- Групові сесії ізольовані за ID групи. Теми форуму додають `:topic:<threadId>`, щоб теми залишалися ізольованими.
|
||||
- DM повідомлення можуть містити `message_thread_id`; OpenClaw маршрутизує їх із thread-aware ключами сесій і зберігає ID thread для відповідей.
|
||||
- Long polling використовує grammY runner з послідовністю на рівні чату/thread. Загальна конкурентність runner sink використовує `agents.defaults.maxConcurrent`.
|
||||
- Long polling захищений усередині кожного процесу Gateway, щоб лише один активний poller міг використовувати токен бота одночасно. Якщо ви все ще бачите конфлікти `getUpdates` 409, інший OpenClaw Gateway, script або зовнішній poller, імовірно, використовує той самий токен.
|
||||
- Перезапуски watchdog для long-polling за замовчуванням запускаються після 120 секунд без завершеної liveness `getUpdates`. Збільшуйте `channels.telegram.pollingStallThresholdMs` лише якщо ваше розгортання все ще бачить хибні перезапуски через polling-stall під час тривалої роботи. Значення в мілісекундах і дозволене від `30000` до `600000`; підтримуються перевизначення на рівні облікового запису.
|
||||
- Telegram Bot API не підтримує read-receipt (`sendReadReceipts` не застосовується).
|
||||
- Telegram належить процесу gateway.
|
||||
- Маршрутизація детермінована: вхідні повідомлення Telegram відповідають назад у Telegram (модель не вибирає канали).
|
||||
- Вхідні повідомлення нормалізуються в спільний конверт каналу з метаданими відповіді та placeholders для медіа.
|
||||
- Групові сеанси ізольовані за ID групи. Теми форуму додають `:topic:<threadId>`, щоб теми залишалися ізольованими.
|
||||
- Повідомлення DM можуть містити `message_thread_id`; OpenClaw маршрутизує їх із ключами сеансів, що враховують треди, і зберігає ID треду для відповідей.
|
||||
- Довге опитування використовує grammY runner із послідовністю для кожного чату/треду. Загальна конкурентність runner sink використовує `agents.defaults.maxConcurrent`.
|
||||
- Довге опитування захищене всередині кожного процесу gateway, щоб лише один активний poller міг використовувати токен бота одночасно. Якщо ви все ще бачите конфлікти `getUpdates` 409, інший gateway OpenClaw, скрипт або зовнішній poller, імовірно, використовує той самий токен.
|
||||
- Перезапуски watchdog довгого опитування за замовчуванням запускаються після 120 секунд без завершеної liveness `getUpdates`. Збільшуйте `channels.telegram.pollingStallThresholdMs` лише якщо ваше розгортання все ще бачить хибні перезапуски через polling-stall під час довготривалої роботи. Значення в мілісекундах і дозволене від `30000` до `600000`; підтримуються перевизначення для окремих облікових записів.
|
||||
- Telegram Bot API не підтримує сповіщення про прочитання (`sendReadReceipts` не застосовується).
|
||||
|
||||
## Довідник функцій
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Попередній перегляд live stream (редагування повідомлень)">
|
||||
OpenClaw може транслювати часткові відповіді в реальному часі:
|
||||
OpenClaw може стримити часткові відповіді в реальному часі:
|
||||
|
||||
- прямі чати: повідомлення попереднього перегляду + `editMessageText`
|
||||
- групи/теми: повідомлення попереднього перегляду + `editMessageText`
|
||||
|
||||
Вимога:
|
||||
|
||||
- `channels.telegram.streaming` є `off | partial | block | progress` (за замовчуванням: `partial`)
|
||||
- `progress` зіставляється з `partial` у Telegram (сумісність із міжканальним іменуванням)
|
||||
- `streaming.preview.toolProgress` керує тим, чи оновлення інструментів/прогресу повторно використовують те саме відредаговане повідомлення попереднього перегляду (за замовчуванням: `true`, коли preview streaming активний)
|
||||
- застарілі значення `channels.telegram.streamMode` і boolean `streaming` виявляються; виконайте `openclaw doctor --fix`, щоб перенести їх у `channels.telegram.streaming.mode`
|
||||
- `channels.telegram.streaming` має значення `off | partial | block | progress` (за замовчуванням: `partial`)
|
||||
- `progress` зіставляється з `partial` у Telegram (сумісність із міжканальним найменуванням)
|
||||
- `streaming.preview.toolProgress` керує тим, чи оновлення інструментів/прогресу повторно використовують те саме редаговане повідомлення попереднього перегляду (за замовчуванням: `true`, коли активний preview streaming)
|
||||
- застарілі `channels.telegram.streamMode` і булеві значення `streaming` виявляються; запустіть `openclaw doctor --fix`, щоб перенести їх у `channels.telegram.streaming.mode`
|
||||
|
||||
Оновлення попереднього перегляду tool-progress — це короткі рядки "Working...", які показуються під час роботи інструментів, наприклад виконання команд, читання файлів, оновлення планування або підсумки патчів. Telegram залишає їх увімкненими за замовчуванням, щоб відповідати випущеній поведінці OpenClaw від `v2026.4.22` і пізніше. Щоб залишити відредагований попередній перегляд для тексту відповіді, але приховати рядки tool-progress, задайте:
|
||||
Оновлення попереднього перегляду прогресу інструментів — це короткі рядки «Працюю...», які показуються, поки виконуються інструменти, наприклад виконання команд, читання файлів, оновлення планування або підсумки patch. Telegram залишає їх увімкненими за замовчуванням, щоб відповідати випущеній поведінці OpenClaw від `v2026.4.22` і пізніше. Щоб зберегти редагований попередній перегляд для тексту відповіді, але приховати рядки прогресу інструментів, задайте:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -306,16 +306,16 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте `streaming.mode: "off"` лише коли хочете доставку тільки фінального повідомлення: редагування попереднього перегляду Telegram вимикаються, а загальні повідомлення інструментів/прогресу пригнічуються замість надсилання окремими повідомленнями "Working...". Запити на схвалення, media payloads і помилки все ще маршрутизуються через звичайну фінальну доставку. Використовуйте `streaming.preview.toolProgress: false`, коли хочете залишити лише редагування попереднього перегляду відповіді, приховавши рядки статусу tool-progress.
|
||||
Використовуйте `streaming.mode: "off"` лише коли хочете доставку тільки фінальної відповіді: редагування попереднього перегляду Telegram вимкнені, а загальні повідомлення інструментів/прогресу пригнічуються замість надсилання як окремі повідомлення «Працюю...». Запити схвалення, медіа payloads і помилки все ще маршрутизуються через звичайну фінальну доставку. Використовуйте `streaming.preview.toolProgress: false`, коли хочете лише зберегти редагування попереднього перегляду відповіді, приховавши рядки статусу прогресу інструментів.
|
||||
|
||||
Для відповідей лише з текстом:
|
||||
|
||||
- короткі попередні перегляди в DM/групі/топіку: OpenClaw зберігає те саме повідомлення попереднього перегляду й виконує фінальне редагування на місці
|
||||
- попередні перегляди, старші приблизно за одну хвилину: OpenClaw надсилає завершену відповідь як нове фінальне повідомлення, а потім очищає попередній перегляд, тому видима позначка часу в Telegram відображає час завершення, а не час створення попереднього перегляду
|
||||
- короткі попередні перегляди DM/групи/теми: OpenClaw зберігає те саме повідомлення попереднього перегляду й виконує фінальне редагування на місці
|
||||
- попередні перегляди, старші приблизно за одну хвилину: OpenClaw надсилає завершену відповідь як нове фінальне повідомлення, а потім очищає попередній перегляд, тож видима часова позначка Telegram відображає час завершення, а не час створення попереднього перегляду
|
||||
|
||||
Для складних відповідей (наприклад, медіанавантажень) OpenClaw повертається до звичайної фінальної доставки, а потім очищає повідомлення попереднього перегляду.
|
||||
Для складних відповідей (наприклад, медіа-вмісту) OpenClaw повертається до звичайної фінальної доставки, а потім очищає повідомлення попереднього перегляду.
|
||||
|
||||
Потокове передавання попереднього перегляду відокремлене від блокового потокового передавання. Коли блокове потокове передавання явно ввімкнене для Telegram, OpenClaw пропускає потік попереднього перегляду, щоб уникнути подвійного потокового передавання.
|
||||
Потокове передавання попереднього перегляду відокремлене від блокового потокового передавання. Коли блокове потокове передавання явно ввімкнено для Telegram, OpenClaw пропускає потік попереднього перегляду, щоб уникнути подвійного потокового передавання.
|
||||
|
||||
Якщо нативний транспорт чернеток недоступний або відхилений, OpenClaw автоматично повертається до `sendMessage` + `editMessageText`.
|
||||
|
||||
@ -326,25 +326,25 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Форматування та резервний HTML">
|
||||
<Accordion title="Форматування та резервний HTML-режим">
|
||||
Вихідний текст використовує Telegram `parse_mode: "HTML"`.
|
||||
|
||||
- Текст, подібний до Markdown, рендериться в безпечний для Telegram HTML.
|
||||
- Сирий HTML від моделі екранується, щоб зменшити кількість помилок парсингу Telegram.
|
||||
- Текст у стилі Markdown перетворюється на безпечний для Telegram HTML.
|
||||
- Необроблений HTML від моделі екранується, щоб зменшити кількість помилок розбору Telegram.
|
||||
- Якщо Telegram відхиляє розібраний HTML, OpenClaw повторює спробу як звичайний текст.
|
||||
|
||||
Попередні перегляди посилань увімкнені за замовчуванням і можуть бути вимкнені через `channels.telegram.linkPreview: false`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Нативні команди та користувацькі команди">
|
||||
<Accordion title="Нативні команди та власні команди">
|
||||
Реєстрація меню команд Telegram обробляється під час запуску за допомогою `setMyCommands`.
|
||||
|
||||
Типові значення нативних команд:
|
||||
Стандартні значення нативних команд:
|
||||
|
||||
- `commands.native: "auto"` вмикає нативні команди для Telegram
|
||||
|
||||
Додайте користувацькі записи меню команд:
|
||||
Додайте власні записи меню команд:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -361,40 +361,40 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
Правила:
|
||||
|
||||
- імена нормалізуються (видаляється початковий `/`, переводяться в нижній регістр)
|
||||
- імена нормалізуються (прибирається початковий `/`, переводяться в нижній регістр)
|
||||
- допустимий шаблон: `a-z`, `0-9`, `_`, довжина `1..32`
|
||||
- користувацькі команди не можуть перевизначати нативні команди
|
||||
- конфлікти/дублікати пропускаються й записуються в журнал
|
||||
- власні команди не можуть перевизначати нативні команди
|
||||
- конфлікти/дублікати пропускаються та журналюються
|
||||
|
||||
Примітки:
|
||||
|
||||
- користувацькі команди є лише записами меню; вони не реалізують поведінку автоматично
|
||||
- команди plugin/skill усе ще можуть працювати під час введення, навіть якщо їх не показано в меню Telegram
|
||||
- власні команди є лише записами меню; вони не реалізують поведінку автоматично
|
||||
- команди plugin/skill можуть усе ще працювати під час введення, навіть якщо їх не показано в меню Telegram
|
||||
|
||||
Якщо нативні команди вимкнено, вбудовані команди видаляються. Користувацькі/plugin-команди все ще можуть реєструватися, якщо це налаштовано.
|
||||
Якщо нативні команди вимкнено, вбудовані команди видаляються. Власні команди/команди plugin можуть усе ще реєструватися, якщо налаштовані.
|
||||
|
||||
Поширені помилки налаштування:
|
||||
Типові помилки налаштування:
|
||||
|
||||
- `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після обрізання; зменште кількість plugin/skill/користувацьких команд або вимкніть `channels.telegram.commands.native`.
|
||||
- Помилка `deleteWebhook`, `deleteMyCommands` або `setMyCommands` з `404: Not Found`, тоді як прямі команди curl до Bot API працюють, може означати, що `channels.telegram.apiRoot` було встановлено на повну кінцеву точку `/bot<TOKEN>`. `apiRoot` має бути лише коренем Bot API, а `openclaw doctor --fix` видаляє випадковий кінцевий `/bot<TOKEN>`.
|
||||
- `getMe returned 401` означає, що Telegram відхилив налаштований токен бота. Оновіть `botToken`, `tokenFile` або `TELEGRAM_BOT_TOKEN` поточним токеном BotFather; OpenClaw зупиняється перед опитуванням, тому це не повідомляється як помилка очищення Webhook.
|
||||
- `setMyCommands failed` з помилками мережі/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблокований.
|
||||
- `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після обрізання; зменште кількість команд plugin/skill/власних команд або вимкніть `channels.telegram.commands.native`.
|
||||
- Помилка `deleteWebhook`, `deleteMyCommands` або `setMyCommands` з `404: Not Found`, коли прямі команди curl Bot API працюють, може означати, що `channels.telegram.apiRoot` було задано як повну кінцеву точку `/bot<TOKEN>`. `apiRoot` має бути лише коренем Bot API, а `openclaw doctor --fix` видаляє випадковий кінцевий `/bot<TOKEN>`.
|
||||
- `getMe returned 401` означає, що Telegram відхилив налаштований токен бота. Оновіть `botToken`, `tokenFile` або `TELEGRAM_BOT_TOKEN` поточним токеном BotFather; OpenClaw зупиняється до опитування, тому це не повідомляється як помилка очищення Webhook.
|
||||
- `setMyCommands failed` з помилками мережі/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблоковано.
|
||||
|
||||
### Команди сполучення пристрою (plugin `device-pair`)
|
||||
### Команди сполучення пристрою (`device-pair` plugin)
|
||||
|
||||
Коли plugin `device-pair` встановлено:
|
||||
Коли встановлено `device-pair` plugin:
|
||||
|
||||
1. `/pair` генерує код налаштування
|
||||
2. вставте код у застосунок iOS
|
||||
3. `/pair pending` показує список запитів, що очікують (включно з роллю/областями доступу)
|
||||
3. `/pair pending` показує список запитів, що очікують (зокрема роль/області доступу)
|
||||
4. схваліть запит:
|
||||
- `/pair approve <requestId>` для явного схвалення
|
||||
- `/pair approve`, коли є лише один запит, що очікує
|
||||
- `/pair approve latest` для найновішого
|
||||
|
||||
Код налаштування містить короткочасний bootstrap-токен. Вбудована передача bootstrap зберігає токен основного вузла на `scopes: []`; будь-який переданий токен оператора залишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки областей доступу bootstrap мають префікс ролі, тому цей список дозволів оператора задовольняє лише запити оператора; ролі, що не є операторськими, усе ще потребують областей доступу під власним префіксом ролі.
|
||||
Код налаштування містить короткочасний bootstrap-токен. Вбудована передача bootstrap зберігає токен основного вузла на `scopes: []`; будь-який переданий токен оператора лишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки областей bootstrap мають префікс ролі, тож цей список дозволів оператора задовольняє лише запити оператора; неоператорським ролям усе ще потрібні області під власним префіксом ролі.
|
||||
|
||||
Якщо пристрій повторює спробу зі зміненими деталями автентифікації (наприклад, роль/області доступу/публічний ключ), попередній запит, що очікує, замінюється, а новий запит використовує інший `requestId`. Повторно виконайте `/pair pending` перед схваленням.
|
||||
Якщо пристрій повторює спробу зі зміненими даними автентифікації (наприклад, роль/області доступу/публічний ключ), попередній запит, що очікує, замінюється, а новий запит використовує інший `requestId`. Повторно виконайте `/pair pending` перед схваленням.
|
||||
|
||||
Докладніше: [Сполучення](/uk/channels/pairing#pair-via-telegram-recommended-for-ios).
|
||||
|
||||
@ -469,15 +469,15 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
<Accordion title="Дії повідомлень Telegram для агентів і автоматизації">
|
||||
Дії інструментів Telegram включають:
|
||||
|
||||
- `sendMessage` (`to`, `content`, необов’язково `mediaUrl`, `replyToMessageId`, `messageThreadId`)
|
||||
- `sendMessage` (`to`, `content`, необов’язкові `mediaUrl`, `replyToMessageId`, `messageThreadId`)
|
||||
- `react` (`chatId`, `messageId`, `emoji`)
|
||||
- `deleteMessage` (`chatId`, `messageId`)
|
||||
- `editMessage` (`chatId`, `messageId`, `content`)
|
||||
- `createForumTopic` (`chatId`, `name`, необов’язково `iconColor`, `iconCustomEmojiId`)
|
||||
- `createForumTopic` (`chatId`, `name`, необов’язкові `iconColor`, `iconCustomEmojiId`)
|
||||
|
||||
Дії повідомлень каналу надають зручні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`).
|
||||
Дії повідомлень каналу надають ергономічні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`).
|
||||
|
||||
Елементи керування доступом:
|
||||
Елементи керування обмеженнями:
|
||||
|
||||
- `channels.telegram.actions.sendMessage`
|
||||
- `channels.telegram.actions.deleteMessage`
|
||||
@ -485,14 +485,14 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
- `channels.telegram.actions.sticker` (за замовчуванням: вимкнено)
|
||||
|
||||
Примітка: `edit` і `topic-create` наразі ввімкнені за замовчуванням і не мають окремих перемикачів `channels.telegram.actions.*`.
|
||||
Надсилання під час виконання використовують активний знімок конфігурації/секретів (запуск/перезавантаження), тому шляхи дій не виконують спеціального повторного розв’язання SecretRef для кожного надсилання.
|
||||
Надсилання під час виконання використовують активний знімок конфігурації/секретів (запуск/перезавантаження), тому шляхи дій не виконують ситуативне повторне розв’язання SecretRef для кожного надсилання.
|
||||
|
||||
Семантика видалення реакцій: [/tools/reactions](/uk/tools/reactions)
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Теги гілкування відповідей">
|
||||
Telegram підтримує явні теги гілкування відповідей у згенерованому виводі:
|
||||
<Accordion title="Теги гілок відповідей">
|
||||
Telegram підтримує явні теги гілок відповідей у згенерованому виводі:
|
||||
|
||||
- `[[reply_to_current]]` відповідає на повідомлення, що запустило обробку
|
||||
- `[[reply_to:<id>]]` відповідає на конкретний ідентифікатор повідомлення Telegram
|
||||
@ -503,29 +503,29 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
- `first`
|
||||
- `all`
|
||||
|
||||
Коли гілкування відповідей увімкнене й оригінальний текст або підпис Telegram доступний, OpenClaw автоматично включає нативний фрагмент цитати Telegram. Telegram обмежує нативний текст цитати 1024 кодовими одиницями UTF-16, тому довші повідомлення цитуються з початку й повертаються до звичайної відповіді, якщо Telegram відхиляє цитату.
|
||||
Коли гілки відповідей увімкнені й доступний оригінальний текст або підпис Telegram, OpenClaw автоматично включає нативний уривок цитати Telegram. Telegram обмежує нативний текст цитати 1024 кодовими одиницями UTF-16, тому довші повідомлення цитуються від початку й повертаються до звичайної відповіді, якщо Telegram відхиляє цитату.
|
||||
|
||||
Примітка: `off` вимикає неявне гілкування відповідей. Явні теги `[[reply_to_*]]` усе ще враховуються.
|
||||
Примітка: `off` вимикає неявні гілки відповідей. Явні теги `[[reply_to_*]]` усе ще враховуються.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Топіки форуму та поведінка гілок">
|
||||
Форумні супергрупи:
|
||||
<Accordion title="Теми форуму та поведінка гілок">
|
||||
Супергрупи форуму:
|
||||
|
||||
- ключі сесій топіків додають `:topic:<threadId>`
|
||||
- відповіді й індикатор набору спрямовуються в гілку топіка
|
||||
- шлях конфігурації топіка:
|
||||
- ключі сеансів тем додають `:topic:<threadId>`
|
||||
- відповіді та індикатор введення спрямовуються в гілку теми
|
||||
- шлях конфігурації теми:
|
||||
`channels.telegram.groups.<chatId>.topics.<threadId>`
|
||||
|
||||
Особливий випадок загального топіка (`threadId=1`):
|
||||
Особливий випадок загальної теми (`threadId=1`):
|
||||
|
||||
- надсилання повідомлень пропускає `message_thread_id` (Telegram відхиляє `sendMessage(...thread_id=1)`)
|
||||
- дії набору тексту все ще включають `message_thread_id`
|
||||
- дії введення все одно включають `message_thread_id`
|
||||
|
||||
Успадкування топіків: записи топіків успадковують налаштування групи, якщо їх не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`).
|
||||
`agentId` застосовується лише до топіка й не успадковується з типових значень групи.
|
||||
Успадкування теми: записи тем успадковують налаштування групи, якщо їх не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`).
|
||||
`agentId` застосовується лише до теми й не успадковується зі стандартних налаштувань групи.
|
||||
|
||||
**Маршрутизація агентів для кожного топіка**: кожен топік може маршрутизуватися до іншого агента через встановлення `agentId` у конфігурації топіка. Це дає кожному топіку власний ізольований робочий простір, пам’ять і сесію. Приклад:
|
||||
**Маршрутизація агента для кожної теми**: Кожна тема може маршрутизуватися до іншого агента через задання `agentId` у конфігурації теми. Це дає кожній темі власний ізольований робочий простір, пам’ять і сеанс. Приклад:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -545,26 +545,26 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
}
|
||||
```
|
||||
|
||||
Тоді кожен топік має власний ключ сесії: `agent:zu:telegram:group:-1001234567890:topic:3`
|
||||
Після цього кожна тема має власний ключ сеансу: `agent:zu:telegram:group:-1001234567890:topic:3`
|
||||
|
||||
**Постійна прив’язка ACP-топіка**: форумні топіки можуть закріплювати сесії стенда ACP через типізовані ACP-прив’язки верхнього рівня (`bindings[]` з `type: "acp"` і `match.channel: "telegram"`, `peer.kind: "group"` та ідентифікатором із кваліфікатором топіка, як-от `-1001234567890:topic:42`). Наразі область дії обмежена форумними топіками в групах/супергрупах. Див. [Агенти ACP](/uk/tools/acp-agents).
|
||||
**Стійке прив’язування тем ACP**: Теми форуму можуть закріплювати сеанси ACP harness через типізовані ACP-прив’язки верхнього рівня (`bindings[]` з `type: "acp"` і `match.channel: "telegram"`, `peer.kind: "group"` та ідентифікатором із зазначенням теми на кшталт `-1001234567890:topic:42`). Наразі область дії обмежена темами форуму в групах/супергрупах. Див. [Агенти ACP](/uk/tools/acp-agents).
|
||||
|
||||
**Прив’язаний до гілки запуск ACP із чату**: `/acp spawn <agent> --thread here|auto` прив’язує поточний топік до нової сесії ACP; подальші повідомлення маршрутизуються туди напряму. OpenClaw закріплює підтвердження запуску в топіку. Потребує `channels.telegram.threadBindings.spawnAcpSessions=true`.
|
||||
**Створення thread-bound ACP з чату**: `/acp spawn <agent> --thread here|auto` прив’язує поточну тему до нового сеансу ACP; подальші повідомлення маршрутизуються туди напряму. OpenClaw закріплює підтвердження створення в темі. Потрібно `channels.telegram.threadBindings.spawnAcpSessions=true`.
|
||||
|
||||
Контекст шаблону надає `MessageThreadId` і `IsForum`. DM-чати з `message_thread_id` зберігають маршрутизацію DM, але використовують ключі сесій з урахуванням гілок.
|
||||
Контекст шаблону надає `MessageThreadId` і `IsForum`. DM-чати з `message_thread_id` зберігають маршрутизацію DM, але використовують ключі сеансів з урахуванням гілок.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Аудіо, відео та стікери">
|
||||
### Аудіоповідомлення
|
||||
|
||||
Telegram розрізняє голосові нотатки та аудіофайли.
|
||||
Telegram розрізняє голосові нотатки й аудіофайли.
|
||||
|
||||
- за замовчуванням: поведінка аудіофайлу
|
||||
- тег `[[audio_as_voice]]` у відповіді агента для примусового надсилання як голосової нотатки
|
||||
- транскрипти вхідних голосових нотаток оформлюються як машинно згенерований,
|
||||
ненадійний текст у контексті агента; виявлення згадок усе ще використовує сирий
|
||||
транскрипт, тому voice-повідомлення з доступом через згадку продовжують працювати.
|
||||
- тег `[[audio_as_voice]]` у відповіді агента примусово надсилає як голосову нотатку
|
||||
- вхідні транскрипти голосових нотаток оформлюються як машинно згенерований,
|
||||
ненадійний текст у контексті агента; виявлення згадок усе ще використовує необроблений
|
||||
транскрипт, тому голосові повідомлення з обмеженням за згадкою продовжують працювати.
|
||||
|
||||
Приклад дії повідомлення:
|
||||
|
||||
@ -580,7 +580,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
### Відеоповідомлення
|
||||
|
||||
Telegram розрізняє відеофайли та відеонотатки.
|
||||
Telegram розрізняє відеофайли й відеонотатки.
|
||||
|
||||
Приклад дії повідомлення:
|
||||
|
||||
@ -618,7 +618,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
Стікери описуються один раз (коли можливо) і кешуються, щоб зменшити повторні виклики vision.
|
||||
|
||||
Увімкнути дії зі стікерами:
|
||||
Увімкніть дії зі стікерами:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -657,7 +657,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Сповіщення про реакції">
|
||||
Реакції Telegram надходять як оновлення `message_reaction` (окремо від навантажень повідомлень).
|
||||
Реакції Telegram надходять як оновлення `message_reaction` (окремо від вмісту повідомлень).
|
||||
|
||||
Коли ввімкнено, OpenClaw ставить у чергу системні події на кшталт:
|
||||
|
||||
@ -665,23 +665,23 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
Конфігурація:
|
||||
|
||||
- `channels.telegram.reactionNotifications`: `off | own | all` (за замовчуванням: `own`)
|
||||
- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (за замовчуванням: `minimal`)
|
||||
- `channels.telegram.reactionNotifications`: `off | own | all` (типово: `own`)
|
||||
- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` (типово: `minimal`)
|
||||
|
||||
Примітки:
|
||||
|
||||
- `own` означає лише реакції користувача на повідомлення, надіслані ботом (у міру можливостей через кеш надісланих повідомлень).
|
||||
- Події реакцій усе одно дотримуються контролів доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються.
|
||||
- Telegram не надає ідентифікатори потоків в оновленнях реакцій.
|
||||
- групи без форуму спрямовуються до сеансу групового чату
|
||||
- форумні групи спрямовуються до сеансу загальної теми групи (`:topic:1`), а не до точної початкової теми
|
||||
- `own` означає реакції користувачів лише на повідомлення, надіслані ботом (best-effort через кеш надісланих повідомлень).
|
||||
- Події реакцій усе одно поважають засоби контролю доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються.
|
||||
- Telegram не надає ID тредів в оновленнях реакцій.
|
||||
- нефорумні групи спрямовуються до сесії групового чату
|
||||
- форумні групи спрямовуються до сесії загальної теми групи (`:topic:1`), а не до точної початкової теми
|
||||
|
||||
`allowed_updates` для polling/webhook автоматично містить `message_reaction`.
|
||||
`allowed_updates` для polling/webhook автоматично включає `message_reaction`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Реакції підтвердження">
|
||||
`ackReaction` надсилає емодзі підтвердження, поки OpenClaw обробляє вхідне повідомлення.
|
||||
<Accordion title="Ack-реакції">
|
||||
`ackReaction` надсилає емодзі підтвердження, доки OpenClaw обробляє вхідне повідомлення.
|
||||
|
||||
Порядок визначення:
|
||||
|
||||
@ -692,18 +692,18 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
|
||||
Примітки:
|
||||
|
||||
- Telegram очікує unicode-емодзі (наприклад, "👀").
|
||||
- Використовуйте `""`, щоб вимкнути реакцію для каналу або облікового запису.
|
||||
- Telegram очікує unicode-емодзі (наприклад "👀").
|
||||
- Використовуйте `""`, щоб вимкнути реакцію для каналу або акаунта.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Записи конфігурації з подій і команд Telegram">
|
||||
Записи конфігурації каналу ввімкнено за замовчуванням (`configWrites !== false`).
|
||||
Записи конфігурації каналу ввімкнені типово (`configWrites !== false`).
|
||||
|
||||
Записи, ініційовані Telegram, включають:
|
||||
|
||||
- події міграції групи (`migrate_to_chat_id`) для оновлення `channels.telegram.groups`
|
||||
- `/config set` і `/config unset` (потребує ввімкнення команди)
|
||||
- `/config set` і `/config unset` (потребує ввімкнення команд)
|
||||
|
||||
Вимкнення:
|
||||
|
||||
@ -720,37 +720,37 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Long polling проти webhook">
|
||||
За замовчуванням використовується long polling. Для режиму webhook задайте `channels.telegram.webhookUrl` і `channels.telegram.webhookSecret`; необов’язкові `webhookPath`, `webhookHost`, `webhookPort` (типові значення `/telegram-webhook`, `127.0.0.1`, `8787`).
|
||||
Типово використовується long polling. Для режиму webhook задайте `channels.telegram.webhookUrl` і `channels.telegram.webhookSecret`; необов'язкові `webhookPath`, `webhookHost`, `webhookPort` (типово `/telegram-webhook`, `127.0.0.1`, `8787`).
|
||||
|
||||
Локальний слухач прив’язується до `127.0.0.1:8787`. Для публічного входу або розмістіть reverse proxy перед локальним портом, або свідомо задайте `webhookHost: "0.0.0.0"`.
|
||||
Локальний слухач прив'язується до `127.0.0.1:8787`. Для публічного входу або розмістіть reverse proxy перед локальним портом, або навмисно задайте `webhookHost: "0.0.0.0"`.
|
||||
|
||||
Режим webhook перевіряє захисти запиту, секретний токен Telegram і JSON-тіло, перш ніж повернути `200` до Telegram.
|
||||
Потім OpenClaw обробляє оновлення асинхронно через ті самі смуги бота для кожного чату/теми, що використовуються long polling, тому повільні ходи агента не затримують ACK доставки Telegram.
|
||||
Режим webhook перевіряє захист запитів, секретний токен Telegram і JSON-тіло, перш ніж повернути `200` до Telegram.
|
||||
Після цього OpenClaw обробляє оновлення асинхронно через ті самі bot lanes для кожного чату/кожної теми, що й long polling, тому повільні ходи агента не затримують delivery ACK Telegram.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Обмеження, повторні спроби та цілі CLI">
|
||||
- Типове значення `channels.telegram.textChunkLimit` — 4000.
|
||||
- `channels.telegram.chunkMode="newline"` віддає перевагу межам абзаців (порожнім рядкам) перед поділом за довжиною.
|
||||
- `channels.telegram.mediaMaxMb` (за замовчуванням 100) обмежує розмір вхідних і вихідних медіафайлів Telegram.
|
||||
- `channels.telegram.timeoutSeconds` перевизначає timeout клієнта Telegram API (якщо не задано, застосовується типове значення grammY).
|
||||
- `channels.telegram.pollingStallThresholdMs` за замовчуванням дорівнює `120000`; налаштовуйте між `30000` і `600000` лише для хибнопозитивних перезапусків через зупинку polling.
|
||||
- історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (за замовчуванням 50); `0` вимикає.
|
||||
- додатковий контекст відповіді/цитати/пересилання наразі передається як отримано.
|
||||
- allowlist Telegram переважно обмежують, хто може запускати агента, а не є повною межею редагування додаткового контексту.
|
||||
- `channels.telegram.chunkMode="newline"` надає перевагу межам абзаців (порожнім рядкам) перед розбиттям за довжиною.
|
||||
- `channels.telegram.mediaMaxMb` (типово 100) обмежує розмір вхідних і вихідних медіа Telegram.
|
||||
- `channels.telegram.timeoutSeconds` перевизначає тайм-аут клієнта Telegram API (якщо не задано, застосовується типове значення grammY).
|
||||
- `channels.telegram.pollingStallThresholdMs` типово дорівнює `120000`; налаштовуйте між `30000` і `600000` лише для хибнопозитивних перезапусків через зупинку polling.
|
||||
- історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (типово 50); `0` вимикає.
|
||||
- додатковий контекст reply/quote/forward наразі передається як отриманий.
|
||||
- Allowlist Telegram насамперед обмежують, хто може запускати агента, а не є повною межею редагування додаткового контексту.
|
||||
- Елементи керування історією DM:
|
||||
- `channels.telegram.dmHistoryLimit`
|
||||
- `channels.telegram.dms["<user_id>"].historyLimit`
|
||||
- конфігурація `channels.telegram.retry` застосовується до допоміжних засобів надсилання Telegram (CLI/інструменти/дії) для відновлюваних помилок вихідного API.
|
||||
- конфігурація `channels.telegram.retry` застосовується до helper-ів надсилання Telegram (CLI/tools/actions) для відновлюваних вихідних помилок API.
|
||||
|
||||
Ціль надсилання CLI може бути числовим ідентифікатором чату або іменем користувача:
|
||||
Ціль надсилання CLI може бути числовим ID чату або username:
|
||||
|
||||
```bash
|
||||
openclaw message send --channel telegram --target 123456789 --message "hi"
|
||||
openclaw message send --channel telegram --target @name --message "hi"
|
||||
```
|
||||
|
||||
Опитування Telegram використовують `openclaw message poll` і підтримують форумні теми:
|
||||
Polls Telegram використовують `openclaw message poll` і підтримують форумні теми:
|
||||
|
||||
```bash
|
||||
openclaw message poll --channel telegram --target 123456789 \
|
||||
@ -760,7 +760,7 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
|
||||
--poll-duration-seconds 300 --poll-public
|
||||
```
|
||||
|
||||
Прапорці опитувань лише для Telegram:
|
||||
Прапорці poll лише для Telegram:
|
||||
|
||||
- `--poll-duration-seconds` (5-600)
|
||||
- `--poll-anonymous`
|
||||
@ -769,48 +769,48 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
|
||||
|
||||
Надсилання Telegram також підтримує:
|
||||
|
||||
- `--presentation` з блоками `buttons` для inline-клавіатур, коли `channels.telegram.capabilities.inlineButtons` це дозволяє
|
||||
- `--presentation` з блоками `buttons` для inline keyboards, коли `channels.telegram.capabilities.inlineButtons` це дозволяє
|
||||
- `--pin` або `--delivery '{"pin":true}'`, щоб запросити закріплену доставку, коли бот може закріплювати в цьому чаті
|
||||
- `--force-document`, щоб надсилати вихідні зображення та GIF як документи замість стиснених фото або завантажень анімованих медіа
|
||||
- `--force-document`, щоб надсилати вихідні зображення та GIF як документи замість стиснених фото або завантажень animated-media
|
||||
|
||||
Обмеження дій:
|
||||
|
||||
- `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з опитуваннями
|
||||
- `channels.telegram.actions.poll=false` вимикає створення опитувань Telegram, залишаючи звичайні надсилання ввімкненими
|
||||
- `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з polls
|
||||
- `channels.telegram.actions.poll=false` вимикає створення polls Telegram, залишаючи звичайне надсилання ввімкненим
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підтвердження exec у Telegram">
|
||||
Telegram підтримує підтвердження exec у DM підтверджувачів і може за бажанням публікувати запити у вихідному чаті або темі. Підтверджувачі мають бути числовими ідентифікаторами користувачів Telegram.
|
||||
<Accordion title="Exec-схвалення в Telegram">
|
||||
Telegram підтримує exec-схвалення в DM апруверів і може додатково публікувати prompts у початковому чаті або темі. Апрувери мають бути числовими ID користувачів Telegram.
|
||||
|
||||
Шлях конфігурації:
|
||||
|
||||
- `channels.telegram.execApprovals.enabled` (автоматично вмикається, коли можна визначити принаймні одного підтверджувача)
|
||||
- `channels.telegram.execApprovals.approvers` (резервно використовує числові ID власників із `commands.ownerAllowFrom`)
|
||||
- `channels.telegram.execApprovals.enabled` (автоматично вмикається, коли можна визначити принаймні одного апрувера)
|
||||
- `channels.telegram.execApprovals.approvers` (повертається до числових ID власників із `commands.ownerAllowFrom`)
|
||||
- `channels.telegram.execApprovals.target`: `dm` (типово) | `channel` | `both`
|
||||
- `agentFilter`, `sessionFilter`
|
||||
|
||||
`channels.telegram.allowFrom`, `groupAllowFrom` і `defaultTo` керують тим, хто може спілкуватися з ботом і куди він надсилає звичайні відповіді. Вони не роблять когось підтверджувачем exec. Перше схвалене DM-сполучення ініціалізує `commands.ownerAllowFrom`, коли власника команд ще немає, тому налаштування з одним власником і далі працює без дублювання ID у `execApprovals.approvers`.
|
||||
`channels.telegram.allowFrom`, `groupAllowFrom` і `defaultTo` керують тим, хто може говорити з ботом і куди він надсилає звичайні відповіді. Вони не роблять когось exec-апрувером. Перше схвалене DM pairing ініціалізує `commands.ownerAllowFrom`, коли власника команд ще немає, тому налаштування з одним власником усе одно працює без дублювання ID у `execApprovals.approvers`.
|
||||
|
||||
Доставка в канал показує текст команди в чаті; вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему для запиту підтвердження та подальшої відповіді. Підтвердження exec типово спливають через 30 хвилин.
|
||||
Доставка в канал показує текст команди в чаті; вмикайте `channel` або `both` лише в довірених групах/темах. Коли prompt потрапляє до форумної теми, OpenClaw зберігає тему для prompt схвалення та наступного повідомлення. Exec-схвалення типово спливають через 30 хвилин.
|
||||
|
||||
Кнопки вбудованого підтвердження також потребують, щоб `channels.telegram.capabilities.inlineButtons` дозволяв цільову поверхню (`dm`, `group` або `all`). ID підтверджень із префіксом `plugin:` обробляються через підтвердження plugin; інші спершу обробляються через підтвердження exec.
|
||||
Кнопки inline-схвалення також потребують, щоб `channels.telegram.capabilities.inlineButtons` дозволяв цільову поверхню (`dm`, `group` або `all`). ID схвалень із префіксом `plugin:` визначаються через схвалення plugin; інші спершу визначаються через exec-схвалення.
|
||||
|
||||
Див. [Підтвердження exec](/uk/tools/exec-approvals).
|
||||
Див. [Exec-схвалення](/uk/tools/exec-approvals).
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Керування відповідями про помилки
|
||||
## Елементи керування відповідями про помилки
|
||||
|
||||
Коли агент стикається з помилкою доставки або провайдера, Telegram може або відповісти текстом помилки, або приховати її. Цю поведінку керують два ключі конфігурації:
|
||||
Коли агент стикається з помилкою доставки або провайдера, Telegram може або відповісти текстом помилки, або придушити її. Цю поведінку контролюють два ключі конфігурації:
|
||||
|
||||
| Ключ | Значення | Типово | Опис |
|
||||
| ----------------------------------- | ----------------- | ------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку в чат. `silent` повністю приховує відповіді про помилки. |
|
||||
| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями про помилки в той самий чат. Запобігає спаму помилок під час збоїв. |
|
||||
| Ключ | Значення | Типово | Опис |
|
||||
| ----------------------------------- | ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку до чату. `silent` повністю придушує відповіді про помилки. |
|
||||
| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями про помилки до того самого чату. Запобігає спаму помилками під час збоїв. |
|
||||
|
||||
Підтримуються перевизначення для окремих облікових записів, груп і тем (з таким самим успадкуванням, як в інших ключів конфігурації Telegram).
|
||||
Підтримуються перевизначення для акаунта, групи та теми (та сама спадковість, що й для інших ключів конфігурації Telegram).
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -835,46 +835,48 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
|
||||
|
||||
- Якщо `requireMention=false`, режим приватності Telegram має дозволяти повну видимість.
|
||||
- BotFather: `/setprivacy` -> Disable
|
||||
- потім видаліть і повторно додайте бота до групи
|
||||
- потім видаліть і знову додайте бота до групи
|
||||
- `openclaw channels status` попереджає, коли конфігурація очікує групові повідомлення без згадки.
|
||||
- `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на членство.
|
||||
- `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на membership.
|
||||
- швидкий тест сесії: `/activation always`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Бот узагалі не бачить групові повідомлення">
|
||||
<Accordion title="Бот взагалі не бачить групові повідомлення">
|
||||
|
||||
- коли існує `channels.telegram.groups`, група має бути в списку (або містити `"*"`)
|
||||
- перевірте членство бота в групі
|
||||
- перегляньте журнали: `openclaw logs --follow` щодо причин пропуску
|
||||
- коли `channels.telegram.groups` існує, група має бути в списку (або включати `"*"`)
|
||||
- перевірте membership бота в групі
|
||||
- перегляньте логи: `openclaw logs --follow` для причин пропуску
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Команди працюють частково або зовсім не працюють">
|
||||
<Accordion title="Команди працюють частково або взагалі не працюють">
|
||||
|
||||
- авторизуйте ідентичність свого відправника (сполучення та/або числовий `allowFrom`)
|
||||
- авторизація команд усе одно застосовується, навіть коли політика групи має значення `open`
|
||||
- `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що в нативному меню забагато записів; зменште кількість команд plugin/skill/користувацьких команд або вимкніть нативні меню
|
||||
- `setMyCommands failed` із помилками network/fetch зазвичай вказує на проблеми доступності DNS/HTTPS до `api.telegram.org`
|
||||
- авторизуйте свою ідентичність відправника (pairing і/або числовий `allowFrom`)
|
||||
- авторизація команд усе одно застосовується, навіть коли політика групи — `open`
|
||||
- `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що native menu має забагато записів; зменште кількість plugin/skill/custom команд або вимкніть native menus
|
||||
- `setMyCommands failed` з помилками network/fetch зазвичай вказує на проблеми DNS/HTTPS-доступності до `api.telegram.org`
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Під час запуску повідомляється про неавторизований токен">
|
||||
<Accordion title="Запуск повідомляє про неавторизований token">
|
||||
|
||||
- `getMe returned 401` — це збій автентифікації Telegram для налаштованого токена бота.
|
||||
- Заново скопіюйте або згенеруйте токен бота в BotFather, потім оновіть `channels.telegram.botToken`, `channels.telegram.tokenFile`, `channels.telegram.accounts.<id>.botToken` або `TELEGRAM_BOT_TOKEN` для типового облікового запису.
|
||||
- `deleteWebhook 401 Unauthorized` під час запуску також є збоєм автентифікації; трактування цього як "webhook не існує" лише відклало б той самий збій через поганий токен до пізніших викликів API.
|
||||
- `getMe returned 401` — це помилка автентифікації Telegram для налаштованого bot token.
|
||||
- Повторно скопіюйте або згенеруйте заново bot token у BotFather, потім оновіть `channels.telegram.botToken`, `channels.telegram.tokenFile`, `channels.telegram.accounts.<id>.botToken` або `TELEGRAM_BOT_TOKEN` для типового акаунта.
|
||||
- `deleteWebhook 401 Unauthorized` під час запуску також є помилкою автентифікації; трактування її як "webhook не існує" лише відклало б той самий збій через поганий token до пізніших викликів API.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Нестабільність опитування або мережі">
|
||||
<Accordion title="Нестабільність polling або мережі">
|
||||
|
||||
- Node 22+ + користувацький fetch/proxy може спричинити негайну поведінку abort, якщо типи AbortSignal не збігаються.
|
||||
- Деякі хости спершу перетворюють `api.telegram.org` на IPv6; несправний вихідний IPv6-трафік може спричиняти періодичні збої API Telegram.
|
||||
- Якщо журнали містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює ці помилки як відновлювані мережеві помилки.
|
||||
- Якщо журнали містять `Polling stall detected`, OpenClaw перезапускає опитування й перебудовує транспорт Telegram після 120 секунд без завершеного long-poll liveness за замовчуванням.
|
||||
- Збільшуйте `channels.telegram.pollingStallThresholdMs` лише тоді, коли довготривалі виклики `getUpdates` справні, але ваш хост усе одно повідомляє про хибні перезапуски через polling-stall. Постійні зависання зазвичай вказують на проблеми proxy, DNS, IPv6 або TLS egress між хостом і `api.telegram.org`.
|
||||
- На VPS-хостах із нестабільним прямим egress/TLS маршрутизуйте виклики API Telegram через `channels.telegram.proxy`:
|
||||
- Node 22+ + custom fetch/proxy може спричиняти негайну поведінку abort, якщо типи AbortSignal не збігаються.
|
||||
- Деякі хости спершу резолвлять `api.telegram.org` в IPv6; зламаний IPv6 egress може спричиняти періодичні збої Telegram API.
|
||||
- Якщо логи містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює ці спроби як відновлювані мережеві помилки.
|
||||
- Якщо логи містять `Polling stall detected`, OpenClaw перезапускає polling і перебудовує транспорт Telegram після 120 секунд без завершеної liveness long-poll типово.
|
||||
- Збільшуйте `channels.telegram.pollingStallThresholdMs` лише тоді, коли тривалі виклики `getUpdates` справні, але ваш хост усе одно повідомляє про хибні перезапуски через polling-stall. Постійні зупинки зазвичай вказують на проблеми proxy, DNS, IPv6 або TLS egress між хостом і `api.telegram.org`.
|
||||
- Telegram також поважає process proxy env для транспорту Bot API, включно з `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` та їхніми lowercase-варіантами. `NO_PROXY` / `no_proxy` усе ще можуть обходити `api.telegram.org`.
|
||||
- Якщо керований proxy OpenClaw налаштовано через `OPENCLAW_PROXY_URL` для service environment і стандартний proxy env відсутній, Telegram також використовує цей URL для транспорту Bot API.
|
||||
- На VPS-хостах із нестабільним прямим egress/TLS спрямовуйте виклики Telegram API через `channels.telegram.proxy`:
|
||||
|
||||
```yaml
|
||||
channels:
|
||||
@ -883,7 +885,7 @@ channels:
|
||||
```
|
||||
|
||||
- Node 22+ типово використовує `autoSelectFamily=true` (крім WSL2) і `dnsResultOrder=ipv4first`.
|
||||
- Якщо ваш хост є WSL2 або явно працює краще з поведінкою лише IPv4, примусово задайте вибір family:
|
||||
- Якщо ваш хост — WSL2 або явно краще працює з поведінкою лише IPv4, примусово задайте вибір family:
|
||||
|
||||
```yaml
|
||||
channels:
|
||||
@ -892,11 +894,11 @@ channels:
|
||||
autoSelectFamily: false
|
||||
```
|
||||
|
||||
- Відповіді з benchmark-діапазону RFC 2544 (`198.18.0.0/15`) уже дозволені
|
||||
для завантажень медіа Telegram за замовчуванням. Якщо довірений fake-IP або
|
||||
transparent proxy переписує `api.telegram.org` на іншу
|
||||
приватну/внутрішню/спеціального використання адресу під час завантажень медіа, ви можете
|
||||
увімкнути обхід лише для Telegram:
|
||||
- Відповіді діапазону benchmark RFC 2544 (`198.18.0.0/15`) уже дозволені
|
||||
для завантажень медіа Telegram типово. Якщо довірений fake-IP або
|
||||
transparent proxy переписує `api.telegram.org` на якусь іншу
|
||||
private/internal/special-use адресу під час завантаження медіа, ви можете
|
||||
ввімкнути обхід лише для Telegram:
|
||||
|
||||
```yaml
|
||||
channels:
|
||||
@ -905,26 +907,26 @@ channels:
|
||||
dangerouslyAllowPrivateNetwork: true
|
||||
```
|
||||
|
||||
- Таке саме явне ввімкнення доступне для кожного облікового запису за адресою
|
||||
- Така сама явна згода доступна для кожного облікового запису за шляхом
|
||||
`channels.telegram.accounts.<accountId>.network.dangerouslyAllowPrivateNetwork`.
|
||||
- Якщо ваш proxy перетворює хости медіа Telegram на `198.18.x.x`, спершу залиште
|
||||
небезпечний прапорець вимкненим. Медіа Telegram уже дозволяє benchmark-діапазон
|
||||
RFC 2544 за замовчуванням.
|
||||
- Якщо ваш проксі перетворює хости медіа Telegram на `198.18.x.x`, спершу залиште
|
||||
небезпечний прапорець вимкненим. Медіа Telegram уже за замовчуванням дозволяє
|
||||
діапазон RFC 2544 для бенчмарків.
|
||||
|
||||
<Warning>
|
||||
`channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист медіа Telegram
|
||||
від SSRF. Використовуйте це лише в довірених проксі-середовищах під контролем
|
||||
оператора, як-от Clash, Mihomo або маршрутизація fake-IP Surge, коли вони
|
||||
синтезують приватні або спеціального використання відповіді поза діапазоном
|
||||
тестування RFC 2544. Для звичайного публічного доступу Telegram через інтернет
|
||||
залишайте це вимкненим.
|
||||
`channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист
|
||||
медіа Telegram від SSRF. Використовуйте його лише в довірених проксі-середовищах
|
||||
під контролем оператора, як-от Clash, Mihomo або маршрутизація fake-IP у Surge,
|
||||
коли вони синтезують приватні або спеціальні відповіді поза діапазоном RFC 2544
|
||||
для бенчмарків. Залишайте його вимкненим для звичайного доступу Telegram через
|
||||
публічний інтернет.
|
||||
</Warning>
|
||||
|
||||
- Перевизначення середовища (тимчасові):
|
||||
- `OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=1`
|
||||
- `OPENCLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY=1`
|
||||
- `OPENCLAW_TELEGRAM_DNS_RESULT_ORDER=ipv4first`
|
||||
- Перевірте DNS-відповіді:
|
||||
- Перевірте відповіді DNS:
|
||||
|
||||
```bash
|
||||
dig +short api.telegram.org A
|
||||
@ -934,7 +936,7 @@ dig +short api.telegram.org AAAA
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
Додаткова допомога: [Усунення несправностей каналів](/uk/channels/troubleshooting).
|
||||
Додаткова довідка: [Усунення несправностей каналу](/uk/channels/troubleshooting).
|
||||
|
||||
## Довідник конфігурації
|
||||
|
||||
@ -944,13 +946,13 @@ dig +short api.telegram.org AAAA
|
||||
|
||||
- запуск/автентифікація: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` має вказувати на звичайний файл; символьні посилання відхиляються)
|
||||
- контроль доступу: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, `bindings[]` верхнього рівня (`type: "acp"`)
|
||||
- підтвердження виконання: `execApprovals`, `accounts.*.execApprovals`
|
||||
- команди/меню: `commands.native`, `commands.nativeSkills`, `customCommands`
|
||||
- схвалення виконання: `execApprovals`, `accounts.*.execApprovals`
|
||||
- команда/меню: `commands.native`, `commands.nativeSkills`, `customCommands`
|
||||
- потоки/відповіді: `replyToMode`
|
||||
- потокове передавання: `streaming` (попередній перегляд), `streaming.preview.toolProgress`, `blockStreaming`
|
||||
- форматування/доставка: `textChunkLimit`, `chunkMode`, `linkPreview`, `responsePrefix`
|
||||
- медіа/мережа: `mediaMaxMb`, `timeoutSeconds`, `pollingStallThresholdMs`, `retry`, `network.autoSelectFamily`, `network.dangerouslyAllowPrivateNetwork`, `proxy`
|
||||
- власний корінь API: `apiRoot` (лише корінь Bot API; не додавайте `/bot<TOKEN>`)
|
||||
- корінь власного API: `apiRoot` (лише корінь Bot API; не додавайте `/bot<TOKEN>`)
|
||||
- webhook: `webhookUrl`, `webhookSecret`, `webhookPath`, `webhookHost`
|
||||
- дії/можливості: `capabilities.inlineButtons`, `actions.sendMessage|editMessage|deleteMessage|reactions|sticker`
|
||||
- реакції: `reactionNotifications`, `reactionLevel`
|
||||
@ -960,14 +962,14 @@ dig +short api.telegram.org AAAA
|
||||
</Accordion>
|
||||
|
||||
<Note>
|
||||
Пріоритет кількох облікових записів: коли налаштовано два або більше ідентифікаторів облікових записів, задайте `channels.telegram.defaultAccount` (або додайте `channels.telegram.accounts.default`), щоб явно визначити типову маршрутизацію. Інакше OpenClaw повертається до першого нормалізованого ідентифікатора облікового запису, а `openclaw doctor` попереджає про це. Іменовані облікові записи успадковують `channels.telegram.allowFrom` / `groupAllowFrom`, але не значення `accounts.default.*`.
|
||||
Пріоритет кількох облікових записів: коли налаштовано два або більше ID облікових записів, задайте `channels.telegram.defaultAccount` (або додайте `channels.telegram.accounts.default`), щоб зробити стандартну маршрутизацію явною. Інакше OpenClaw повертається до першого нормалізованого ID облікового запису, а `openclaw doctor` попереджає. Іменовані облікові записи успадковують `channels.telegram.allowFrom` / `groupAllowFrom`, але не значення `accounts.default.*`.
|
||||
</Note>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Сполучення" icon="link" href="/uk/channels/pairing">
|
||||
Сполучіть користувача Telegram із gateway.
|
||||
Сполучіть користувача Telegram із Gateway.
|
||||
</Card>
|
||||
<Card title="Групи" icon="users" href="/uk/channels/groups">
|
||||
Поведінка списку дозволених груп і тем.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,30 +1,30 @@
|
||||
---
|
||||
read_when:
|
||||
- Вибір правильного підшляху plugin-sdk для імпорту Plugin
|
||||
- Аудит підшляхів вбудованих Plugin і допоміжних поверхонь
|
||||
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розташовані, згруповано за областями'
|
||||
- Вибір правильного підшляху plugin-sdk для імпорту в Plugin
|
||||
- Аудит підшляхів вбудованих Plugin і допоміжних інтерфейсів
|
||||
summary: 'Каталог підшляхів Plugin SDK: які імпорти де розміщені, згруповано за областями'
|
||||
title: Підшляхи Plugin SDK
|
||||
x-i18n:
|
||||
generated_at: "2026-04-29T07:02:05Z"
|
||||
generated_at: "2026-04-29T11:22:47Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 5c7b6cea2d995bcf10a9143822201212cbf239684fa49572d990d34fc033d60c
|
||||
source_hash: bb6ab50997d3f8cd78c1a70924e7349d577e70af7061fd0d43d4836830a90e9a
|
||||
source_path: plugins/sdk-subpaths.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Plugin SDK надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
|
||||
На цій сторінці наведено поширені підшляхи, згруповані за призначенням. Згенерований
|
||||
повний список із 200+ підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані допоміжні підшляхи bundled-plugin теж наведені там, але є деталлю
|
||||
реалізації, якщо сторінка документації явно не просуває їх. Мейнтейнері можуть перевіряти активні
|
||||
зарезервовані допоміжні підшляхи за допомогою `pnpm plugins:boundary-report:summary`; невикористані
|
||||
зарезервовані допоміжні експорти провалюють звіт CI, замість того щоб залишатися в публічному SDK
|
||||
SDK плагінів надається як набір вузьких підшляхів у `openclaw/plugin-sdk/`.
|
||||
На цій сторінці наведено часто використовувані підшляхи, згруповані за призначенням. Згенерований
|
||||
повний список із понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`;
|
||||
зарезервовані підшляхи допоміжних засобів вбудованих плагінів також є там, але вони є деталлю
|
||||
реалізації, якщо сторінка документації явно не робить їх рекомендованими. Супровідники можуть перевіряти активні
|
||||
зарезервовані підшляхи допоміжних засобів за допомогою `pnpm plugins:boundary-report:summary`; невикористані
|
||||
зарезервовані допоміжні експорти спричиняють збій звіту CI, а не залишаються в публічному SDK
|
||||
як неактивний борг сумісності.
|
||||
|
||||
Посібник з авторства Plugin дивіться в [огляді Plugin SDK](/uk/plugins/sdk-overview).
|
||||
Посібник зі створення плагінів див. у [огляді Plugin SDK](/uk/plugins/sdk-overview).
|
||||
|
||||
## Вхід Plugin
|
||||
## Точка входу Plugin
|
||||
|
||||
| Підшлях | Ключові експорти |
|
||||
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
@ -32,19 +32,19 @@ x-i18n:
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів Plugin; для нових тестів Plugin віддавайте перевагу сфокусованим тестовим підшляхам |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний побудовник mock `OpenClawPluginApi` для unit-тестів прямої реєстрації Plugin |
|
||||
| `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, пригнічення доставки, класифікації fallback, hook-ів інструментів, накладень prompt, схем і відновлення transcript |
|
||||
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби для тестів життєвого циклу облікового запису каналу, каталогу, send-config, runtime mock, hook, запису bundled channel, timestamp конверта, відповіді pairing і generic контракту каналу |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір тестів помилкових випадків розв’язання цілі каналу |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів для реєстрації Plugin, маніфесту пакета, публічного артефакту, runtime API, import side-effect і прямого import |
|
||||
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime Plugin, registry, provider-registration, setup-wizard і runtime task-flow для тестів |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів для provider runtime, автентифікації, discovery, onboard, catalog, media capability, replay policy, realtime STT live-audio, web-search/fetch і wizard |
|
||||
| `plugin-sdk/provider-http-test-mocks` | Opt-in HTTP/auth mocks Vitest для тестів provider, які перевіряють `plugin-sdk/provider-http` |
|
||||
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів плагінів; для нових тестів розширень надавайте перевагу сфокусованим тестовим підшляхам |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний builder моків `OpenClawPluginApi` для модульних тестів прямої реєстрації плагінів |
|
||||
| `plugin-sdk/agent-runtime-test-contracts` | Фікстури контрактів нативного адаптера agent-runtime для профілів автентифікації, пригнічення доставки, класифікації fallback, хуків інструментів, накладень промптів, схем і відновлення транскриптів |
|
||||
| `plugin-sdk/channel-test-helpers` | Допоміжні засоби тестування життєвого циклу акаунта каналу, директорії, конфігурації надсилання, мока runtime, хука, запису вбудованого каналу, часової позначки envelope, відповіді pairing і загальних контрактів каналів |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір тестів випадків помилок розв’язання цілі каналу |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів реєстрації плагіна, маніфесту пакета, публічного артефакту, runtime API, побічного ефекту імпорту та прямого імпорту |
|
||||
| `plugin-sdk/plugin-test-runtime` | Фікстури runtime плагіна, реєстру, реєстрації провайдера, майстра налаштування та runtime TaskFlow для тестів |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime провайдера, автентифікації, виявлення, onboard, каталогу, медіаможливостей, політики replay, realtime STT live-audio, web-search/fetch і майстра |
|
||||
| `plugin-sdk/provider-http-test-mocks` | Опціональні HTTP/auth моки Vitest для тестів провайдерів, які перевіряють `plugin-sdk/provider-http` |
|
||||
| `plugin-sdk/test-env` | Фікстури тестового середовища, fetch/network, одноразового HTTP-сервера, вхідного запиту, live-test, тимчасової файлової системи та керування часом |
|
||||
| `plugin-sdk/test-fixtures` | Загальні тестові фікстури CLI, sandbox, skill, agent-message, system-event, module reload, шляху bundled plugin, terminal, chunking, auth-token і typed-case |
|
||||
| `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби mock для вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
|
||||
| `plugin-sdk/migration` | Допоміжні засоби елементів provider міграції, як-от `createMigrationItem`, константи причин, маркери стану елементів, допоміжні засоби редагування та `summarizeMigrationItems` |
|
||||
| `plugin-sdk/test-fixtures` | Загальні фікстури тестів CLI, sandbox, skill, agent-message, system-event, перезавантаження модуля, шляху вбудованого плагіна, terminal, chunking, auth-token і typed-case |
|
||||
| `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби моків вбудованих модулів Node для використання у фабриках Vitest `vi.mock("node:*")` |
|
||||
| `plugin-sdk/migration` | Допоміжні засоби елементів провайдера міграції, як-от `createMigrationItem`, константи причин, маркери статусу елементів, допоміжні засоби редагування та `summarizeMigrationItems` |
|
||||
| `plugin-sdk/migration-runtime` | Допоміжні засоби runtime міграції, як-от `copyMigrationFileItem` і `writeMigrationReport` |
|
||||
|
||||
<AccordionGroup>
|
||||
@ -52,279 +52,279 @@ x-i18n:
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `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` | Спільні допоміжні засоби setup wizard, prompt-и allowlist, побудовники стану setup |
|
||||
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, промпти allowlist, builder-и статусу налаштування |
|
||||
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
|
||||
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | Допоміжні засоби багатооблікової конфігурації/action-gate, допоміжні засоби fallback для default-account |
|
||||
| `plugin-sdk/account-core` | Допоміжні засоби конфігурації кількох акаунтів/action-gate, допоміжні засоби fallback для акаунта за замовчуванням |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку облікового запису + default-fallback |
|
||||
| `plugin-sdk/account-resolution` | Допоміжні засоби пошуку акаунта + default-fallback |
|
||||
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби account-list/account-action |
|
||||
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
||||
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline`, `resolveChannelSourceReplyDeliveryMode` |
|
||||
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та generic побудовник |
|
||||
| `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації bundled каналів OpenClaw лише для підтримуваних bundled plugins |
|
||||
| `plugin-sdk/channel-config-schema` | Спільні примітиви схеми конфігурації каналу та загальний builder |
|
||||
| `plugin-sdk/bundled-channel-config-schema` | Схеми конфігурації каналів OpenClaw для підтримуваних вбудованих плагінів лише |
|
||||
| `plugin-sdk/channel-config-schema-legacy` | Застарілий псевдонім сумісності для схем конфігурації bundled-channel |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/перевірки користувацьких команд Telegram із fallback на bundled-contract |
|
||||
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби authorization gate команд |
|
||||
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації кастомних команд Telegram з fallback вбудованого контракту |
|
||||
| `plugin-sdk/command-gating` | Вузькі допоміжні засоби gate авторизації команд |
|
||||
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, `createChannelRunQueue`, допоміжні засоби життєвого циклу/фіналізації draft stream |
|
||||
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби вхідного маршруту + побудовника конверта |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби record-and-dispatch для вхідних даних |
|
||||
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення цілей |
|
||||
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби вхідного маршруту + builder envelope |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та dispatch вхідних записів |
|
||||
| `plugin-sdk/messaging-targets` | Допоміжні засоби парсингу/зіставлення цілей |
|
||||
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
|
||||
| `plugin-sdk/outbound-send-deps` | Легковаговий пошук залежностей outbound send для адаптерів каналів |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні засоби outbound delivery, identity, send delegate, session, formatting і планування payload |
|
||||
| `plugin-sdk/outbound-send-deps` | Легкий пошук залежностей вихідного надсилання для адаптерів каналів |
|
||||
| `plugin-sdk/outbound-runtime` | Допоміжні засоби планування вихідної доставки, ідентичності, делегата надсилання, сесії, форматування та payload |
|
||||
| `plugin-sdk/poll-runtime` | Вузькі допоміжні засоби нормалізації poll |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding і адаптера |
|
||||
| `plugin-sdk/agent-media-payload` | Застарілий побудовник media payload агента |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Допоміжні засоби життєвого циклу thread-binding та адаптера |
|
||||
| `plugin-sdk/agent-media-payload` | Застарілий builder payload медіа агента |
|
||||
| `plugin-sdk/conversation-runtime` | Допоміжні засоби conversation/thread binding, pairing і configured-binding |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot runtime config |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot runtime-конфігурації |
|
||||
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби розв’язання runtime group-policy |
|
||||
| `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary стану каналу |
|
||||
| `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary статусу каналу |
|
||||
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви channel config-schema |
|
||||
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації channel config-write |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні експорти prelude для channel plugin |
|
||||
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації каналу |
|
||||
| `plugin-sdk/channel-plugin-common` | Спільні експорти prelude для плагіна каналу |
|
||||
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні засоби рішень group-access |
|
||||
| `plugin-sdk/group-access` | Спільні допоміжні засоби ухвалення рішень group-access |
|
||||
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для direct-DM |
|
||||
| `plugin-sdk/discord` | Застарілий фасад сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності owner; нові plugins мають використовувати generic підшляхи channel SDK |
|
||||
| `plugin-sdk/telegram-account` | Застарілий фасад сумісності розв’язання облікового запису Telegram для відстежуваної сумісності owner; нові plugins мають використовувати інжектовані runtime helpers або generic підшляхи channel SDK |
|
||||
| `plugin-sdk/interactive-runtime` | Семантичне подання повідомлень, доставка та застарілі допоміжні засоби інтерактивної відповіді. Дивіться [Подання повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Barrel сумісності для inbound debounce, зіставлення mention, допоміжних засобів mention-policy і допоміжних засобів envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби inbound debounce |
|
||||
| `plugin-sdk/discord` | Застарілий фасад сумісності Discord для опублікованого `@openclaw/discord@2026.3.13` і відстежуваної сумісності власника; нові плагіни мають використовувати загальні підшляхи SDK каналів |
|
||||
| `plugin-sdk/telegram-account` | Застарілий фасад сумісності розв’язання акаунта Telegram для відстежуваної сумісності власника; нові плагіни мають використовувати інжектовані runtime helpers або загальні підшляхи SDK каналів |
|
||||
| `plugin-sdk/interactive-runtime` | Семантичне подання повідомлень, доставка та застарілі допоміжні засоби інтерактивної відповіді. Див. [Подання повідомлень](/uk/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Barrel сумісності для вхідного debounce, зіставлення mention, допоміжних засобів mention-policy та envelope |
|
||||
| `plugin-sdk/channel-inbound-debounce` | Вузькі допоміжні засоби вхідного debounce |
|
||||
| `plugin-sdk/channel-mention-gating` | Вузькі допоміжні засоби mention-policy, маркера mention і тексту mention без ширшої поверхні inbound runtime |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування inbound envelope |
|
||||
| `plugin-sdk/channel-envelope` | Вузькі допоміжні засоби форматування вхідного envelope |
|
||||
| `plugin-sdk/channel-location` | Контекст розташування каналу та допоміжні засоби форматування |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для inbound drops і typing/ack failures |
|
||||
| `plugin-sdk/channel-logging` | Допоміжні засоби логування каналу для вхідних drop і помилок typing/ack |
|
||||
| `plugin-sdk/channel-send-result` | Типи результату відповіді |
|
||||
| `plugin-sdk/channel-actions` | Допоміжні засоби message-action каналу, а також застарілі допоміжні засоби native schema, збережені для сумісності Plugin |
|
||||
| `plugin-sdk/channel-route` | Спільні допоміжні засоби нормалізації маршруту, розв’язання цілі через parser, перетворення thread-id на рядок, дедуплікації/компактизації ключів маршруту, типи parsed-target і порівняння route/target |
|
||||
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` |
|
||||
| `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-actions` | Допоміжні засоби message-action каналу, а також застарілі допоміжні засоби нативних схем, збережені для сумісності плагінів |
|
||||
| `plugin-sdk/channel-route` | Спільна нормалізація маршрутів, розв’язання цілей через парсер, приведення thread-id до рядка, dedupe/compact ключі маршрутів, типи parsed-target і допоміжні засоби порівняння route/target |
|
||||
| `plugin-sdk/channel-targets` | Допоміжні засоби парсингу цілей; виклики порівняння маршрутів мають використовувати `plugin-sdk/channel-route` |
|
||||
| `plugin-sdk/channel-contract` | Типи контрактів каналів |
|
||||
| `plugin-sdk/channel-feedback` | Зв’язування feedback/reaction |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, як-от `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment` і типи цілей secret |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи провайдера">
|
||||
<Accordion title="Підшляхи постачальників">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/lmstudio` | Підтримуваний фасад провайдера LM Studio для налаштування, виявлення каталогу та підготовки моделі під час виконання |
|
||||
| `plugin-sdk/lmstudio-runtime` | Підтримуваний runtime-фасад LM Studio для локальних стандартних налаштувань сервера, виявлення моделей, заголовків запитів і допоміжних засобів завантажених моделей |
|
||||
| `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених провайдерів |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування самостійно розміщених OpenAI-сумісних провайдерів |
|
||||
| `plugin-sdk/cli-backend` | Стандартні налаштування бекенда CLI + константи watchdog |
|
||||
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби runtime для визначення ключів API у provider plugins |
|
||||
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу ключів API/запису профілю, як-от `upsertApiKeyProfile` |
|
||||
| `plugin-sdk/lmstudio` | Підтримуваний фасад постачальника LM Studio для налаштування, виявлення каталогу й підготовки моделей під час виконання |
|
||||
| `plugin-sdk/lmstudio-runtime` | Підтримуваний фасад часу виконання LM Studio для стандартних параметрів локального сервера, виявлення моделей, заголовків запитів і допоміжних засобів для завантажених моделей |
|
||||
| `plugin-sdk/provider-setup` | Відібрані допоміжні засоби налаштування локальних/самостійно розміщених постачальників |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Спеціалізовані допоміжні засоби налаштування OpenAI-сумісних самостійно розміщених постачальників |
|
||||
| `plugin-sdk/cli-backend` | Стандартні параметри бекенду CLI + константи сторожового процесу |
|
||||
| `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` | Спільні допоміжні засоби інтерактивного входу для provider plugins |
|
||||
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env-var автентифікації провайдера |
|
||||
| `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, допоміжні засоби endpoint провайдера та допоміжні засоби нормалізації model-id, як-от `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-runtime` | Runtime-хук доповнення каталогу провайдера та plugin-provider seams реєстру для контрактних тестів |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні конструктори політик повторного відтворення, допоміжні засоби кінцевих точок постачальника та допоміжні засоби нормалізації ID моделей, як-от `normalizeNativeXaiModelId` |
|
||||
| `plugin-sdk/provider-catalog-runtime` | Хук часу виконання для доповнення каталогу постачальників і шви реєстру Plugin-постачальників для контрактних тестів |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `buildManifestModelProviderConfig`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | Загальні допоміжні засоби можливостей HTTP/endpoint провайдера, HTTP-помилки провайдера та допоміжні засоби multipart-форми для транскрипції аудіо |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби контракту config/selection для web-fetch, як-от `enablePluginInConfig` і `WebFetchProviderPlugin` |
|
||||
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешу провайдера web-fetch |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Вузькі допоміжні засоби config/credential для web-search для провайдерів, яким не потрібне підключення plugin-enable |
|
||||
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби контракту config/credential для web-search, як-от `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, а також scoped setters/getters облікових даних |
|
||||
| `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`, типи stream wrapper і спільні допоміжні засоби wrapper для Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту провайдера, як-от захищений fetch, перетворення transport message і writable transport event streams |
|
||||
| `plugin-sdk/provider-http` | Універсальні допоміжні засоби можливостей HTTP/кінцевих точок постачальників, HTTP-помилки постачальників і допоміжні засоби multipart-форм для транскрипції аудіо |
|
||||
| `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`, і обмежені за областю сетери/гетери облікових даних |
|
||||
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/часу виконання постачальника web-search |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схем Gemini + діагностика, а також допоміжні засоби сумісності xAI, як-от `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи обгорток потоків і спільні допоміжні засоби обгорток Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
|
||||
| `plugin-sdk/provider-transport-runtime` | Допоміжні засоби нативного транспорту постачальників, як-от захищений fetch, перетворення транспортних повідомлень і придатні для запису потоки транспортних подій |
|
||||
| `plugin-sdk/provider-onboard` | Допоміжні засоби патчів конфігурації онбордингу |
|
||||
| `plugin-sdk/global-singleton` | Допоміжні засоби singleton/map/cache у межах процесу |
|
||||
| `plugin-sdk/group-activation` | Допоміжні засоби вузького режиму активації групи та розбору команд |
|
||||
| `plugin-sdk/global-singleton` | Допоміжні засоби локальних для процесу singleton/map/cache |
|
||||
| `plugin-sdk/group-activation` | Вузькі допоміжні засоби режиму активації групи та розбору команд |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи автентифікації та безпеки">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів, допоміжні засоби авторизації відправника |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, зокрема форматування меню динамічних аргументів, допоміжні засоби авторизації відправників |
|
||||
| `plugin-sdk/command-status` | Конструктори повідомлень команд/довідки, як-от `buildCommandsMessagePaginated` і `buildHelpMessage` |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і автентифікації дій у тому самому чаті |
|
||||
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілів/фільтрів нативного схвалення exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки нативного схвалення |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення approval Gateway |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Легкі допоміжні засоби завантаження нативного approval adapter для гарячих entrypoints каналу |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші runtime-допоміжні засоби обробника схвалень; віддавайте перевагу вужчим adapter/gateway seams, коли їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі схвалення + прив'язування облікового запису |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді схвалення exec/plugin |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload схвалення exec/plugin, допоміжні засоби маршрутизації/runtime нативного схвалення та допоміжні засоби структурованого відображення схвалення, як-от `formatApprovalDisplayPath` |
|
||||
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби розв’язання затверджувача та автентифікації дій у тому самому чаті |
|
||||
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби нативного профілю/фільтра затвердження exec |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Нативні адаптери можливостей/доставки затверджень |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб розв’язання Gateway затверджень |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Легкі допоміжні засоби завантаження нативних адаптерів затверджень для гарячих точок входу каналів |
|
||||
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби часу виконання обробника затверджень; віддавайте перевагу вужчим швам адаптера/Gateway, коли їх достатньо |
|
||||
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби нативної цілі затвердження + прив’язки облікового запису |
|
||||
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповіді затвердження exec/Plugin |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби payload затвердження exec/Plugin, допоміжні засоби маршрутизації/часу виконання нативних затверджень і допоміжні засоби структурованого відображення затверджень, як-от `formatApprovalDisplayPath` |
|
||||
| `plugin-sdk/reply-dedupe` | Вузькі допоміжні засоби скидання дедуплікації вхідних відповідей |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби контрактного тестування каналів без широкого testing barrel |
|
||||
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної session-target |
|
||||
| `plugin-sdk/channel-contract-testing` | Вузькі допоміжні засоби контрактних тестів каналів без широкого тестового бареля |
|
||||
| `plugin-sdk/command-auth-native` | Нативна автентифікація команд, форматування меню динамічних аргументів і допоміжні засоби нативної цілі сеансу |
|
||||
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
|
||||
| `plugin-sdk/command-primitives-runtime` | Легкі предикати тексту команд для гарячих шляхів каналу |
|
||||
| `plugin-sdk/command-surface` | Нормалізація command-body і допоміжні засоби command-surface |
|
||||
| `plugin-sdk/command-primitives-runtime` | Легкі предикати командного тексту для гарячих шляхів каналів |
|
||||
| `plugin-sdk/command-surface` | Нормалізація тіла команди й допоміжні засоби поверхні команд |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь секретів каналу/plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Вузькі `coerceSecretRef` і допоміжні засоби типізації SecretRef для розбору secret-contract/config |
|
||||
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання контрактів секретів для поверхонь секретів каналу/Plugin |
|
||||
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби типізації `coerceSecretRef` і SecretRef для розбору контрактів секретів/конфігурації |
|
||||
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, обмеження DM, зовнішнього вмісту, редагування чутливого тексту, порівняння секретів за сталий час і збирання секретів |
|
||||
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватної мережі |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої infra runtime поверхні |
|
||||
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, захищеного від SSRF fetch, помилки SSRF і політики SSRF |
|
||||
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і політики SSRF для приватних мереж |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Вузькі допоміжні засоби pinned-dispatcher без широкої інфраструктурної поверхні часу виконання |
|
||||
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, SSRF-захищеного fetch, помилки SSRF і політики SSRF |
|
||||
| `plugin-sdk/secret-input` | Допоміжні засоби розбору введення секретів |
|
||||
| `plugin-sdk/webhook-ingress` | Допоміжні засоби запитів/цілей Webhook і приведення сирого websocket/body |
|
||||
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру/таймауту тіла запиту |
|
||||
| `plugin-sdk/webhook-ingress` | Допоміжні засоби Webhook-запитів/цілей і приведення сирого websocket/body |
|
||||
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби розміру/тайм-ауту тіла запиту |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи runtime і сховища">
|
||||
<Accordion title="Підшляхи середовища виконання та сховища">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/логування/резервного копіювання/встановлення plugin |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору CDP URL і допоміжних засобів auth для керування браузером |
|
||||
| `plugin-sdk/channel-runtime-context` | Допоміжні засоби реєстрації та пошуку загального runtime-контексту каналу |
|
||||
| `plugin-sdk/runtime` | Широкі допоміжні засоби середовища виконання/логування/резервного копіювання/встановлення Plugin |
|
||||
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env середовища виконання, logger, timeout, retry і backoff |
|
||||
| `plugin-sdk/browser-config` | Підтримуваний фасад конфігурації браузера для нормалізованого профілю/типових значень, розбору CDP URL і допоміжних засобів автентифікації керування браузером |
|
||||
| `plugin-sdk/channel-runtime-context` | Допоміжні засоби реєстрації та пошуку загального runtime-context каналу |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд plugin/хуків/http/інтерактиву |
|
||||
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби конвеєра Webhook/внутрішніх хуків |
|
||||
| `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язування runtime, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби команд/хуків/http/інтерактивності Plugin |
|
||||
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби Webhook/внутрішнього конвеєра хуків |
|
||||
| `plugin-sdk/lazy-runtime` | Допоміжні засоби лінивого імпорту/прив’язки середовища виконання, як-от `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
|
||||
| `plugin-sdk/process-runtime` | Допоміжні засоби виконання процесів |
|
||||
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику з аргументами та лінивих груп команд |
|
||||
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, CLI RPC Gateway, помилки протоколу Gateway і допоміжні засоби патчів статусу каналів |
|
||||
| `plugin-sdk/config-types` | Поверхня конфігурації лише для типів для форм конфігурації plugin, як-от `OpenClawConfig` і типи конфігурації каналів/провайдерів |
|
||||
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби runtime-пошуку конфігурації plugin, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
|
||||
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування, версії, виклику аргументів і лінивих груп команд |
|
||||
| `plugin-sdk/gateway-runtime` | Клієнт Gateway, RPC CLI gateway, помилки протоколу gateway і допоміжні засоби патчів статусу каналу |
|
||||
| `plugin-sdk/config-types` | Поверхня конфігурації лише з типами для форм конфігурації Plugin, як-от `OpenClawConfig` і типи конфігурації каналів/провайдерів |
|
||||
| `plugin-sdk/plugin-config-runtime` | Допоміжні засоби пошуку конфігурації Plugin у середовищі виконання, як-от `requireRuntimeConfig`, `resolvePluginConfigObject` і `resolveLivePluginConfigObject` |
|
||||
| `plugin-sdk/config-mutation` | Допоміжні засоби транзакційної зміни конфігурації, як-от `mutateConfigFile`, `replaceConfigFile` і `logConfigUpdated` |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot` і сетери тестових знімків |
|
||||
| `plugin-sdk/telegram-command-config` | Нормалізація назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли пакетна контрактна поверхня Telegram недоступна |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Допоміжні засоби знімка конфігурації поточного процесу, як-от `getRuntimeConfig`, `getRuntimeConfigSnapshot`, і сетери тестових знімків |
|
||||
| `plugin-sdk/telegram-command-config` | Нормалізація назви/опису команди Telegram і перевірки дублікатів/конфліктів, навіть коли вбудована контрактна поверхня Telegram недоступна |
|
||||
| `plugin-sdk/text-autolink-runtime` | Виявлення автопосилань на файлові посилання без широкого barrel text-runtime |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/plugin, конструктори approval-capability, допоміжні засоби auth/profile, native routing/runtime і форматування структурованого шляху відображення схвалення |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби runtime для вхідних повідомлень/відповідей, розбиття на частини, dispatch, Heartbeat, планувальник відповідей |
|
||||
| `plugin-sdk/approval-runtime` | Допоміжні засоби схвалення exec/Plugin, збирачі можливостей схвалення, допоміжні засоби auth/profile, допоміжні засоби нативного маршрутизування/середовища виконання та форматування шляху структурованого відображення схвалення |
|
||||
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби середовища виконання вхідних повідомлень/відповідей, поділ на фрагменти, dispatch, Heartbeat, планувальник відповідей |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize відповіді та міток розмов |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні засоби й маркери коротковіконної історії відповідей, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-history` | Спільні допоміжні засоби й маркери історії відповідей у короткому вікні, як-от `buildHistoryContext`, `HISTORY_CONTEXT_MARKER`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби розбиття тексту/markdown на частини |
|
||||
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби поділу тексту/markdown на фрагменти |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби шляху сховища сеансів, session-key, updated-at і зміни сховища |
|
||||
| `plugin-sdk/cron-store-runtime` | Допоміжні засоби шляху/load/save сховища Cron |
|
||||
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів каталогів State/OAuth |
|
||||
| `plugin-sdk/routing` | Допоміжні засоби прив’язування route/session-key/account, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/account, типові значення runtime-state і допоміжні засоби метаданих issue |
|
||||
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби розпізнавача цілі |
|
||||
| `plugin-sdk/state-paths` | Допоміжні засоби шляхів до каталогів стану/OAuth |
|
||||
| `plugin-sdk/routing` | Допоміжні засоби маршруту/session-key/прив’язки облікового запису, як-от `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
|
||||
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби зведення статусу каналу/облікового запису, типові значення runtime-state і допоміжні засоби метаданих issue |
|
||||
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби resolver цілей |
|
||||
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/рядків |
|
||||
| `plugin-sdk/request-url` | Витяг рядкових URL із fetch/request-подібних входів |
|
||||
| `plugin-sdk/run-command` | Запускач команд із таймером і нормалізованими результатами stdout/stderr |
|
||||
| `plugin-sdk/param-readers` | Загальні читачі параметрів tool/CLI |
|
||||
| `plugin-sdk/tool-payload` | Витяг нормалізованих payload із об’єктів результатів tool |
|
||||
| `plugin-sdk/tool-send` | Витяг канонічних полів цілі надсилання з аргументів tool |
|
||||
| `plugin-sdk/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/model-session-runtime` | Допоміжні засоби перевизначення model/session, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
|
||||
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації talk-провайдера |
|
||||
| `plugin-sdk/logging-core` | Logger підсистеми та допоміжні засоби редагування чутливих даних |
|
||||
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму та перетворення таблиць Markdown |
|
||||
| `plugin-sdk/model-session-runtime` | Допоміжні засоби перевизначення моделі/сеансу, як-от `applyModelOverrideToSessionEntry` і `resolveAgentMaxConcurrent` |
|
||||
| `plugin-sdk/talk-config-runtime` | Допоміжні засоби розв’язання конфігурації провайдера Talk |
|
||||
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису стану JSON |
|
||||
| `plugin-sdk/file-lock` | Допоміжні засоби реентерабельного file-lock |
|
||||
| `plugin-sdk/file-lock` | Допоміжні засоби реентерабельного блокування файлів |
|
||||
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби дискового кешу дедуплікації |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні засоби runtime/session і reply-dispatch ACP |
|
||||
| `plugin-sdk/acp-runtime-backend` | Легкі допоміжні засоби реєстрації backend ACP і reply-dispatch для plugin, завантажених під час запуску |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язок ACP лише для читання без імпортів запуску lifecycle |
|
||||
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema runtime агента |
|
||||
| `plugin-sdk/boolean-param` | Нестрогий читач boolean-параметрів |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання збігів небезпечних назв |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою й токенів pairing |
|
||||
| `plugin-sdk/acp-runtime` | Допоміжні засоби ACP середовища виконання/сеансу та reply-dispatch |
|
||||
| `plugin-sdk/acp-runtime-backend` | Полегшені допоміжні засоби реєстрації backend ACP і reply-dispatch для Plugin, завантажених під час запуску |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Розв’язання прив’язки ACP лише для читання без імпортів запуску життєвого циклу |
|
||||
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви config-schema середовища виконання агента |
|
||||
| `plugin-sdk/boolean-param` | Нестрогий читач булевого параметра |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби розв’язання зіставлення небезпечних назв |
|
||||
| `plugin-sdk/device-bootstrap` | Допоміжні засоби початкового налаштування пристрою та токена спарювання |
|
||||
| `plugin-sdk/extension-shared` | Спільні примітиви допоміжних засобів пасивного каналу, статусу й ambient proxy |
|
||||
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді команди/провайдера `/models` |
|
||||
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби переліку команд Skills |
|
||||
| `plugin-sdk/native-command-registry` | Допоміжні засоби registry/build/serialize нативних команд |
|
||||
| `plugin-sdk/agent-harness` | Експериментальна поверхня trusted-plugin для низькорівневих agent harness: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge tool OpenClaw, допоміжні засоби політики runtime-plan tool, класифікація результатів термінала, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize нативних команд |
|
||||
| `plugin-sdk/agent-harness` | Експериментальна поверхня довірених Plugin для низькорівневих harness агентів: типи harness, допоміжні засоби steer/abort активного запуску, допоміжні засоби bridge tool OpenClaw, допоміжні засоби політики tool runtime-plan, класифікація результатів термінала, допоміжні засоби форматування/деталізації прогресу tool і утиліти результатів спроб |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
|
||||
| `plugin-sdk/async-lock-runtime` | Process-local допоміжний засіб async lock для невеликих файлів стану runtime |
|
||||
| `plugin-sdk/async-lock-runtime` | Допоміжний засіб async lock, локальний для процесу, для малих файлів стану середовища виконання |
|
||||
| `plugin-sdk/channel-activity-runtime` | Допоміжний засіб телеметрії активності каналу |
|
||||
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності async task |
|
||||
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби in-memory кешу дедуплікації |
|
||||
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб drain для вихідних pending-delivery |
|
||||
| `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів local-file і media-source |
|
||||
| `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій і видимості Heartbeat |
|
||||
| `plugin-sdk/concurrency-runtime` | Допоміжний засіб обмеженої конкурентності асинхронних завдань |
|
||||
| `plugin-sdk/dedupe-runtime` | Допоміжні засоби кешу дедуплікації в пам’яті |
|
||||
| `plugin-sdk/delivery-queue-runtime` | Допоміжний засіб drain вихідних очікуваних доставок |
|
||||
| `plugin-sdk/file-access-runtime` | Допоміжні засоби безпечних шляхів до локальних файлів і media-source |
|
||||
| `plugin-sdk/heartbeat-runtime` | Допоміжні засоби подій Heartbeat і видимості |
|
||||
| `plugin-sdk/number-runtime` | Допоміжний засіб числового приведення |
|
||||
| `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечних токенів/UUID |
|
||||
| `plugin-sdk/secure-random-runtime` | Допоміжні засоби безпечного токена/UUID |
|
||||
| `plugin-sdk/system-event-runtime` | Допоміжні засоби черги системних подій |
|
||||
| `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності transport |
|
||||
| `plugin-sdk/infra-runtime` | Застарілий compatibility shim; використовуйте сфокусовані підшляхи runtime вище |
|
||||
| `plugin-sdk/transport-ready-runtime` | Допоміжний засіб очікування готовності транспорту |
|
||||
| `plugin-sdk/infra-runtime` | Застарілий shim сумісності; використовуйте сфокусовані підшляхи середовища виконання вище |
|
||||
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби обмеженого кешу |
|
||||
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби diagnostic flag, event і trace-context |
|
||||
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичного прапорця, події та trace-context |
|
||||
| `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy і допоміжні засоби pinned lookup |
|
||||
| `plugin-sdk/runtime-fetch` | Runtime fetch із підтримкою dispatcher без імпортів proxy/guarded-fetch |
|
||||
| `plugin-sdk/response-limit-runtime` | Обмежений читач response-body без широкої поверхні media runtime |
|
||||
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без configured binding routing або pairing stores |
|
||||
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy, опція EnvHttpProxyAgent і допоміжні засоби pinned lookup |
|
||||
| `plugin-sdk/runtime-fetch` | Dispatcher-aware fetch середовища виконання без імпортів proxy/guarded-fetch |
|
||||
| `plugin-sdk/response-limit-runtime` | Обмежений reader response-body без широкої медійної поверхні середовища виконання |
|
||||
| `plugin-sdk/session-binding-runtime` | Поточний стан прив’язки розмови без налаштованого маршрутизування прив’язок або сховищ спарювання |
|
||||
| `plugin-sdk/session-store-runtime` | Допоміжні засоби session-store без широких імпортів запису/обслуговування конфігурації |
|
||||
| `plugin-sdk/context-visibility-runtime` | Розв’язання видимості контексту й фільтрація supplemental context без широких імпортів config/security |
|
||||
| `plugin-sdk/string-coerce-runtime` | Вузькі допоміжні засоби приведення та нормалізації primitive record/string без імпортів markdown/logging |
|
||||
| `plugin-sdk/context-visibility-runtime` | Розв’язання видимості контексту та фільтрація додаткового контексту без широких імпортів конфігурації/безпеки |
|
||||
| `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` | Допоміжні засоби dir/identity/workspace агента |
|
||||
| `plugin-sdk/directory-runtime` | Config-backed запит/дедуплікація каталогів |
|
||||
| `plugin-sdk/agent-runtime` | Допоміжні засоби каталогу/ідентичності/workspace агента |
|
||||
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогу на основі конфігурації |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи можливостей і тестування">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | Спільні помічники для отримання/перетворення/зберігання медіа, визначення розмірів відео на базі ffprobe та побудовники медіанавантажень |
|
||||
| `plugin-sdk/media-store` | Вузькі помічники медіасховища, як-от `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-generation-runtime` | Спільні помічники відмовостійкості генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
|
||||
| `plugin-sdk/media-understanding` | Типи провайдера розуміння медіа плюс експорти помічників для зображень/аудіо, орієнтовані на провайдерів |
|
||||
| `plugin-sdk/text-runtime` | Спільні помічники для тексту/markdown/логування, як-от вилучення видимого для асистента тексту, помічники рендерингу/розбиття/таблиць markdown, помічники редагування, помічники directive-tag і утиліти безпечного тексту |
|
||||
| `plugin-sdk/text-chunking` | Помічник розбиття вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи мовленнєвого провайдера плюс експорти директив, реєстру, валідації, побудовника TTS, сумісного з OpenAI, і мовленнєвих помічників, орієнтовані на провайдерів |
|
||||
| `plugin-sdk/speech-core` | Спільні типи мовленнєвого провайдера, реєстр, директива, нормалізація та експорти мовленнєвих помічників |
|
||||
| `plugin-sdk/realtime-transcription` | Типи провайдера транскрипції в реальному часі, помічники реєстру та спільний помічник сесії WebSocket |
|
||||
| `plugin-sdk/realtime-voice` | Типи провайдера голосу в реальному часі та помічники реєстру |
|
||||
| `plugin-sdk/image-generation` | Типи провайдера генерації зображень плюс помічники URL ресурсів/даних зображень і побудовник провайдера зображень, сумісний з OpenAI |
|
||||
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, відмовостійкість, автентифікація та помічники реєстру |
|
||||
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби для отримання/перетворення/зберігання медіа, визначення розмірів відео на основі ffprobe і побудови медіа-навантажень |
|
||||
| `plugin-sdk/media-store` | Вузькі допоміжні засоби медіасховища, як-от `saveMediaBuffer` |
|
||||
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби резервного перемикання для генерації медіа, вибір кандидатів і повідомлення про відсутні моделі |
|
||||
| `plugin-sdk/media-understanding` | Типи провайдерів розуміння медіа, а також експорти допоміжних засобів для зображень/аудіо, призначені для провайдерів |
|
||||
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби для тексту/Markdown/логування, як-от видалення видимого для асистента тексту, допоміжні засоби рендерингу/фрагментації/таблиць Markdown, допоміжні засоби редагування, допоміжні засоби тегів директив і утиліти безпечного тексту |
|
||||
| `plugin-sdk/text-chunking` | Допоміжний засіб фрагментації вихідного тексту |
|
||||
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також експорти директив, реєстру, валідації, побудовника TTS, сумісного з OpenAI, і допоміжних засобів мовлення, призначені для провайдерів |
|
||||
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, реєстр, директиви, нормалізація й експорти допоміжних засобів мовлення |
|
||||
| `plugin-sdk/realtime-transcription` | Типи провайдерів транскрипції в реальному часі, допоміжні засоби реєстру та спільний допоміжний засіб сесії WebSocket |
|
||||
| `plugin-sdk/realtime-voice` | Типи провайдерів голосу в реальному часі та допоміжні засоби реєстру |
|
||||
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень, а також допоміжні засоби URL для ресурсів/даних зображень і побудовник провайдера зображень, сумісний з OpenAI |
|
||||
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, резервне перемикання, автентифікація та допоміжні засоби реєстру |
|
||||
| `plugin-sdk/music-generation` | Типи провайдера/запиту/результату генерації музики |
|
||||
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, помічники відмовостійкості, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні засоби резервного перемикання, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/video-generation` | Типи провайдера/запиту/результату генерації відео |
|
||||
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, помічники відмовостійкості, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і помічники встановлення маршрутів |
|
||||
| `plugin-sdk/webhook-path` | Помічники нормалізації шляху Webhook |
|
||||
| `plugin-sdk/web-media` | Спільні помічники завантаження віддалених/локальних медіа |
|
||||
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів SDK Plugin |
|
||||
| `plugin-sdk/testing` | Широкий compatibility barrel для застарілих тестів Plugin. Нові тести розширень мають натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний помічник `createTestPluginApi` для прямих модульних тестів реєстрації Plugin без імпорту мостів тестових помічників репозиторію |
|
||||
| `plugin-sdk/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера agent-runtime для тестів автентифікації, доставлення, fallback, tool-hook, prompt-overlay, схеми та проєкції transcript |
|
||||
| `plugin-sdk/channel-test-helpers` | Орієнтовані на канали тестові помічники для generic actions/setup/status contracts, перевірок директорій, життєвого циклу запуску облікового запису, потоків send-config, runtime-моків, проблем статусу, вихідного доставлення та реєстрації hooks |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок target-resolution для тестів каналів |
|
||||
| `plugin-sdk/plugin-test-contracts` | Помічники контрактів пакета Plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
|
||||
| `plugin-sdk/provider-test-contracts` | Помічники контрактів provider runtime, auth, discovery, onboard, catalog, wizard, media capability, replay policy, realtime STT live-audio, web-search/fetch і stream |
|
||||
| `plugin-sdk/provider-http-test-mocks` | Opt-in HTTP/auth моки Vitest для тестів провайдера, які перевіряють `plugin-sdk/provider-http` |
|
||||
| `plugin-sdk/test-fixtures` | Generic фікстури захоплення CLI runtime, sandbox context, skill writer, agent-message, system-event, module reload, bundled plugin path, terminal-text, chunking, auth-token і typed-case |
|
||||
| `plugin-sdk/test-node-mocks` | Сфокусовані помічники моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
|
||||
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні засоби резервного перемикання, пошук провайдера та розбір model-ref |
|
||||
| `plugin-sdk/webhook-targets` | Реєстр цілей Webhook і допоміжні засоби встановлення маршрутів |
|
||||
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації шляху Webhook |
|
||||
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
|
||||
| `plugin-sdk/zod` | Повторно експортований `zod` для споживачів SDK plugin |
|
||||
| `plugin-sdk/testing` | Широкий barrel сумісності для застарілих тестів plugin. Нові тести plugin мають натомість імпортувати сфокусовані підшляхи SDK, як-от `plugin-sdk/agent-runtime-test-contracts`, `plugin-sdk/plugin-test-runtime`, `plugin-sdk/channel-test-helpers`, `plugin-sdk/test-env` або `plugin-sdk/test-fixtures` |
|
||||
| `plugin-sdk/plugin-test-api` | Мінімальний допоміжний засіб `createTestPluginApi` для unit-тестів прямої реєстрації plugin без імпорту мостів тестових допоміжних засобів репозиторію |
|
||||
| `plugin-sdk/agent-runtime-test-contracts` | Нативні фікстури контрактів адаптера runtime агента для тестів автентифікації, доставки, fallback, хуків інструментів, prompt-overlay, схеми та проєкції transcript |
|
||||
| `plugin-sdk/channel-test-helpers` | Орієнтовані на канали тестові допоміжні засоби для generic контрактів дій/налаштування/статусу, перевірок каталогів, життєвого циклу запуску облікового запису, threading send-config, runtime-моків, проблем статусу, вихідної доставки та реєстрації хуків |
|
||||
| `plugin-sdk/channel-target-testing` | Спільний набір випадків помилок розв’язання цілі для тестів каналів |
|
||||
| `plugin-sdk/plugin-test-contracts` | Допоміжні засоби контрактів пакета plugin, реєстрації, публічного артефакту, прямого імпорту, runtime API та побічних ефектів імпорту |
|
||||
| `plugin-sdk/provider-test-contracts` | Допоміжні засоби контрактів runtime провайдера, автентифікації, виявлення, onboard, каталогу, майстра, медіаможливостей, політики replay, realtime STT live-audio, web-search/fetch і stream |
|
||||
| `plugin-sdk/provider-http-test-mocks` | Опціональні HTTP/auth моки Vitest для тестів провайдера, що виконують `plugin-sdk/provider-http` |
|
||||
| `plugin-sdk/test-fixtures` | Generic фікстури захоплення CLI runtime, контексту sandbox, writer для skill, agent-message, system-event, перезавантаження модуля, шляху до вбудованого plugin, terminal-text, chunking, auth-token і typed-case |
|
||||
| `plugin-sdk/test-node-mocks` | Сфокусовані допоміжні засоби моків вбудованих модулів Node для використання всередині фабрик Vitest `vi.mock("node:*")` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Підшляхи пам’яті">
|
||||
| Підшлях | Ключові експорти |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/memory-core` | Поверхня bundled memory-core помічників для manager/config/file/CLI помічників |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Runtime-фасад індексу/пошуку пам’яті |
|
||||
| `plugin-sdk/memory-core` | Поверхня вбудованих допоміжних засобів memory-core для допоміжних засобів manager/config/file/CLI |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime індексу/пошуку пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і generic batch/remote помічники |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Контракти embedding хоста пам’яті, доступ до реєстру, локальний провайдер і generic batch/remote допоміжні засоби |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні помічники хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-query` | Помічники запитів хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-secret` | Помічники секретів хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-events` | Помічники журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-status` | Помічники статусу хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Помічники CLI runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Помічники core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Помічники file/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для помічників core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для помічників журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для помічників file/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні managed-markdown помічники для plugins, суміжних із пам’яттю |
|
||||
| `plugin-sdk/memory-host-search` | Runtime-фасад active memory для доступу до search-manager |
|
||||
| `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для помічників статусу хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби секретів хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби CLI runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби file/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-core` | Нейтральний щодо постачальника alias для допоміжних засобів core runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-events` | Нейтральний щодо постачальника alias для допоміжних засобів журналу подій хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-files` | Нейтральний щодо постачальника alias для допоміжних засобів file/runtime хоста пам’яті |
|
||||
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для plugin, суміжних із пам’яттю |
|
||||
| `plugin-sdk/memory-host-search` | Фасад runtime активної пам’яті для доступу до search-manager |
|
||||
| `plugin-sdk/memory-host-status` | Нейтральний щодо постачальника alias для допоміжних засобів статусу хоста пам’яті |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Зарезервовані підшляхи bundled-helper">
|
||||
Наразі зарезервованих підшляхів bundled-helper SDK немає. Специфічні для власника
|
||||
помічники розміщуються всередині пакета Plugin-власника, тоді як повторно використовувані контракти хоста
|
||||
<Accordion title="Зарезервовані підшляхи вбудованих допоміжних засобів">
|
||||
Наразі немає зарезервованих підшляхів SDK для вбудованих допоміжних засобів. Специфічні для власника
|
||||
допоміжні засоби розміщуються всередині пакета plugin власника, а повторно використовувані контракти хоста
|
||||
використовують generic підшляхи SDK, як-от `plugin-sdk/gateway-runtime`,
|
||||
`plugin-sdk/security-runtime` і `plugin-sdk/plugin-config-runtime`.
|
||||
</Accordion>
|
||||
@ -332,6 +332,6 @@ x-i18n:
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд SDK Plugin](/uk/plugins/sdk-overview)
|
||||
- [Налаштування SDK Plugin](/uk/plugins/sdk-setup)
|
||||
- [Огляд SDK plugin](/uk/plugins/sdk-overview)
|
||||
- [Налаштування SDK plugin](/uk/plugins/sdk-setup)
|
||||
- [Створення plugins](/uk/plugins/building-plugins)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user