From f5b7665002e488dc5f02bfcff4e9dd6acab6f856 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Tue, 7 Apr 2026 00:08:10 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/slack.md | 278 +++++++++++++++++++------------------- 1 file changed, 140 insertions(+), 138 deletions(-) diff --git a/docs/uk/channels/slack.md b/docs/uk/channels/slack.md index 102f903a1..2a94a8bf4 100644 --- a/docs/uk/channels/slack.md +++ b/docs/uk/channels/slack.md @@ -1,29 +1,29 @@ --- read_when: - - Налаштування Slack або налагодження режиму socket/HTTP у Slack + - Налаштування Slack або налагодження режиму Slack socket/HTTP summary: Налаштування Slack і поведінка під час виконання (Socket Mode + HTTP Request URLs) title: Slack x-i18n: - generated_at: "2026-04-06T09:17:31Z" + generated_at: "2026-04-07T00:08:10Z" model: gpt-5.4 provider: openai - source_hash: 11571e7e10cfbf4de91dc1b1ed6582cd94afdcf6c3356fdd3ccc770096c6dd31 + source_hash: 2b8fd2cc6c638ee82069f0af2c2b6f6f49c87da709b941433a0343724a9907ea source_path: channels/slack.md workflow: 15 --- # Slack -Статус: готовий до продакшену для особистих повідомлень і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; HTTP Request URLs також підтримуються. +Статус: готово до продакшну для приватних повідомлень і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; HTTP Request URLs також підтримуються. - - Особисті повідомлення Slack типово працюють у режимі зіставлення. + + Приватні повідомлення Slack типово працюють у режимі сполучення. - + Нативна поведінка команд і каталог команд. - + Міжканальна діагностика та сценарії відновлення. @@ -36,8 +36,8 @@ x-i18n: У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**: - - виберіть **from a manifest** і виберіть робочу область для свого застосунку - - вставте [приклад маніфесту](#manifest-and-scope-checklist) нижче й продовжуйте створення + - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку + - вставте [приклад manifest](#manifest-and-scope-checklist) нижче та продовжте створення - згенеруйте **App-Level Token** (`xapp-...`) з `connections:write` - установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`) @@ -57,7 +57,7 @@ x-i18n: } ``` - Резервне значення через env (лише для типового облікового запису): + Резервне джерело через env (лише для типового облікового запису): ```bash SLACK_APP_TOKEN=xapp-... @@ -82,8 +82,8 @@ openclaw gateway У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**: - - виберіть **from a manifest** і виберіть робочу область для свого застосунку - - вставте [приклад маніфесту](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням + - виберіть **from a manifest** і виберіть робочий простір для вашого застосунку + - вставте [приклад manifest](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням - збережіть **Signing Secret** для перевірки запитів - установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`) @@ -125,7 +125,7 @@ openclaw gateway -## Контрольний список маніфесту та scope +## Контрольний список manifest і scope @@ -291,12 +291,12 @@ openclaw gateway - Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (власне ім’я користувача та піктограму) замість типової ідентичності застосунку Slack. + Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (власне ім’я користувача та значок) замість типової ідентичності застосунку Slack. - Якщо ви використовуєте піктограму emoji, Slack очікує синтаксис `:emoji_name:`. + Якщо ви використовуєте значок emoji, Slack очікує синтаксис `:emoji_name:`. - - Якщо ви налаштовуєте `channels.slack.userToken`, типовими scope для читання є: + + Якщо ви налаштовуєте `channels.slack.userToken`, типовими scopes для читання є: - `channels:history`, `groups:history`, `im:history`, `mpim:history` - `channels:read`, `groups:read`, `im:read`, `mpim:read` @@ -304,7 +304,7 @@ openclaw gateway - `reactions:read` - `pins:read` - `emoji:read` - - `search:read` (якщо ви залежите від читання через пошук Slack) + - `search:read` (якщо ви залежите від читання через Slack search) @@ -312,31 +312,31 @@ openclaw gateway ## Модель токенів - `botToken` + `appToken` обов’язкові для Socket Mode. -- Режим HTTP вимагає `botToken` + `signingSecret`. +- Для режиму HTTP потрібні `botToken` + `signingSecret`. - `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті рядки або об’єкти SecretRef. -- Токени в конфігурації мають пріоритет над резервними значеннями env. -- Резервні значення env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до типового облікового запису. -- `userToken` (`xoxp-...`) задається лише в конфігурації (без резервного значення env) і типово працює в режимі лише для читання (`userTokenReadOnly: true`). +- Токени в конфігурації мають пріоритет над резервним джерелом через env. +- Резервне джерело через env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовується лише до типового облікового запису. +- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного джерела через env) і типово працює в режимі лише для читання (`userTokenReadOnly: true`). -Поведінка знімка стану: +Поведінка знімка статусу: - Перевірка облікового запису Slack відстежує поля `*Source` і `*Status` - для кожних облікових даних (`botToken`, `appToken`, `signingSecret`, `userToken`). + для кожного облікового запису (`botToken`, `appToken`, `signingSecret`, `userToken`). - Статус може бути `available`, `configured_unavailable` або `missing`. - `configured_unavailable` означає, що обліковий запис налаштовано через SecretRef - або інше не-inline джерело секретів, але поточний шлях команди/виконання + або інше не вбудоване джерело секрету, але поточна команда/шлях виконання не зміг визначити фактичне значення. - У режимі HTTP включається `signingSecretStatus`; у Socket Mode обов’язковою парою є `botTokenStatus` + `appTokenStatus`. -Для читання дій/каталогів перевага може надаватися токену користувача, якщо його налаштовано. Для запису пріоритет зберігається за bot token; запис через токен користувача дозволено лише коли `userTokenReadOnly: false` і bot token недоступний. +Для дій/читання каталогу user token може мати пріоритет, якщо його налаштовано. Для запису bot token залишається пріоритетним; запис через user token дозволено лише коли `userTokenReadOnly: false` і bot token недоступний. ## Дії та обмеження -Діями Slack керує `channels.slack.actions.*`. +Дії Slack контролюються через `channels.slack.actions.*`. Доступні групи дій у поточному інструментарії Slack: @@ -348,34 +348,34 @@ openclaw gateway | memberInfo | увімкнено | | emojiList | увімкнено | -Поточні дії для повідомлень Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`. +Поточні дії з повідомленнями Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`. ## Керування доступом і маршрутизація - - `channels.slack.dmPolicy` керує доступом до особистих повідомлень (застаріле: `channels.slack.dm.policy`): + + `channels.slack.dmPolicy` керує доступом до приватних повідомлень (застаріле: `channels.slack.dm.policy`): - `pairing` (типово) - `allowlist` - - `open` (вимагає, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`) + - `open` (потрібно, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`) - `disabled` - Прапорці особистих повідомлень: + Прапорці для приватних повідомлень: - `dm.enabled` (типово true) - `channels.slack.allowFrom` (рекомендовано) - `dm.allowFrom` (застаріле) - - `dm.groupEnabled` (групові особисті повідомлення типово false) + - `dm.groupEnabled` (групові приватні повідомлення типово false) - `dm.groupChannels` (необов’язковий allowlist MPIM) - Пріоритет для багатьох облікових записів: + Пріоритет для кількох облікових записів: - `channels.slack.accounts.default.allowFrom` застосовується лише до облікового запису `default`. - - Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не заданий. + - Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не задано. - Іменовані облікові записи не успадковують `channels.slack.accounts.default.allowFrom`. - Зіставлення в особистих повідомленнях використовує `openclaw pairing approve slack `. + Для сполучення в приватних повідомленнях використовується `openclaw pairing approve slack `. @@ -386,15 +386,15 @@ openclaw gateway - `allowlist` - `disabled` - Allowlist каналів міститься в `channels.slack.channels` і має використовувати стабільні ID каналів. + Allowlist каналів розміщується в `channels.slack.channels` і має використовувати стабільні ID каналів. - Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час виконання використовується `groupPolicy="allowlist"` і записується попередження (навіть якщо задано `channels.defaults.groupPolicy`). + Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час виконання використовується резервне значення `groupPolicy="allowlist"` і записується попередження в журнал (навіть якщо встановлено `channels.defaults.groupPolicy`). - Визначення імені/ID: + Визначення імен/ID: - - записи allowlist каналів і allowlist особистих повідомлень визначаються під час запуску, якщо доступ токена це дозволяє - - нерозв’язані записи імен каналів зберігаються як налаштовані, але типово ігноруються для маршрутизації - - авторизація вхідних подій і маршрутизація каналів типово орієнтовані на ID; пряме зіставлення за ім’ям користувача/slug вимагає `channels.slack.dangerouslyAllowNameMatching: true` + - записи allowlist каналів і allowlist приватних повідомлень визначаються під час запуску, якщо доступ токена це дозволяє + - записи з невизначеними іменами каналів зберігаються як налаштовані, але типово ігноруються для маршрутизації + - вхідна авторизація та маршрутизація каналів типово орієнтовані на ID; пряме зіставлення за ім’ям користувача/slug потребує `channels.slack.dangerouslyAllowNameMatching: true` @@ -405,9 +405,9 @@ openclaw gateway - явна згадка застосунку (`<@botId>`) - шаблони regex для згадок (`agents.list[].groupChat.mentionPatterns`, резервно `messages.groupChat.mentionPatterns`) - - неявна поведінка відповіді в ланцюжку боту + - неявна поведінка reply-to-bot у тредах (вимикається, коли `thread.requireExplicitMention` має значення `true`) - Керування на рівні каналу (`channels.slack.channels.`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`): + Елементи керування для кожного каналу (`channels.slack.channels.`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`): - `requireMention` - `users` (allowlist) @@ -415,35 +415,36 @@ openclaw gateway - `skills` - `systemPrompt` - `tools`, `toolsBySender` - - формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"` - (застарілі ключі без префікса, як і раніше, зіставляються лише з `id:`) + - формат ключів `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"` + (застарілі ключі без префікса все ще зіставляються лише з `id:`) -## Ланцюжки, сесії та теги відповіді +## Треди, сесії та теги reply -- Особисті повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`. -- З типовим `session.dmScope=main` особисті повідомлення Slack згортаються в основну сесію агента. +- Приватні повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`. +- Із типовим `session.dmScope=main` приватні повідомлення Slack згортаються в основну сесію агента. - Сесії каналів: `agent::slack:channel:`. -- Відповіді в ланцюжках можуть створювати суфікси сесій ланцюжків (`:thread:`), де це застосовно. +- Відповіді в тредах можуть створювати суфікси сесій тредів (`:thread:`), де це застосовно. - Типове значення `channels.slack.thread.historyScope` — `thread`; типове значення `thread.inheritParent` — `false`. -- `channels.slack.thread.initialHistoryLimit` керує тим, скільки наявних повідомлень ланцюжка отримується під час запуску нової сесії ланцюжка (типово `20`; задайте `0`, щоб вимкнути). +- `channels.slack.thread.initialHistoryLimit` керує кількістю наявних повідомлень треду, які отримуються під час запуску нової сесії треду (типово `20`; установіть `0`, щоб вимкнути). +- `channels.slack.thread.requireExplicitMention` (типово `false`): коли має значення `true`, пригнічує неявні згадки в тредах, тож бот відповідає лише на явні згадки `@bot` усередині тредів, навіть якщо бот уже брав участь у треді. Без цього відповіді в треді, де брав участь бот, обходять обмеження `requireMention`. -Параметри ланцюжків відповідей: +Елементи керування тредами відповідей: - `channels.slack.replyToMode`: `off|first|all|batched` (типово `off`) - `channels.slack.replyToModeByChatType`: для кожного `direct|group|channel` - застаріле резервне значення для прямих чатів: `channels.slack.dm.replyToMode` -Підтримуються ручні теги відповіді: +Підтримуються ручні теги reply: - `[[reply_to_current]]` - `[[reply_to:]]` -Примітка: `replyToMode="off"` вимикає **усі** ланцюжки відповідей у Slack, зокрема явні теги `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Різниця відображає моделі ланцюжків на платформах: ланцюжки Slack приховують повідомлення з каналу, тоді як відповіді Telegram лишаються видимими в основному потоці чату. +Примітка: `replyToMode="off"` вимикає **усі** треди відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Різниця відображає моделі тредів платформ: у Slack треди приховують повідомлення з каналу, тоді як у Telegram replies залишаються видимими в основному потоці чату. -## Реакції підтвердження +## Ack-реакції `ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення. @@ -452,29 +453,29 @@ openclaw gateway - `channels.slack.accounts..ackReaction` - `channels.slack.ackReaction` - `messages.ackReaction` -- резервне значення emoji ідентичності агента (`agents.list[].identity.emoji`, інакше `"👀"`) +- резервне значення emoji з ідентичності агента (`agents.list[].identity.emoji`, інакше "👀") Примітки: - Slack очікує shortcodes (наприклад, `"eyes"`). - Використовуйте `""`, щоб вимкнути реакцію для облікового запису Slack або глобально. -## Потокове передавання тексту +## Потокова передача тексту -`channels.slack.streaming` керує поведінкою попереднього перегляду в реальному часі: +`channels.slack.streaming` керує поведінкою live preview: -- `off`: вимкнути потоковий попередній перегляд у реальному часі. +- `off`: вимкнути live preview streaming. - `partial` (типово): замінювати текст попереднього перегляду останнім частковим виводом. -- `block`: додавати порційні оновлення попереднього перегляду. -- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати остаточний текст. +- `block`: додавати фрагментовані оновлення попереднього перегляду. +- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати фінальний текст. -`channels.slack.nativeStreaming` керує нативним потоковим передаванням тексту Slack, коли `streaming` має значення `partial` (типово: `true`). +`channels.slack.nativeStreaming` керує нативною потоковою передачею тексту Slack, коли `streaming` має значення `partial` (типово: `true`). -- Щоб відображалося нативне потокове передавання тексту, має бути доступний ланцюжок відповіді. Вибір ланцюжка все одно підпорядковується `replyToMode`. Без нього використовується звичайний чорновий попередній перегляд. -- Для медіа та нетекстових payload використовується звичайна доставка. -- Якщо потокове передавання переривається посеред відповіді, OpenClaw повертається до звичайної доставки для решти payload. +- Щоб з’явилася нативна потокова передача тексту, має бути доступний тред відповіді. Вибір треду, як і раніше, підпорядковується `replyToMode`. Без нього використовується звичайний чернетковий попередній перегляд. +- Медіа та нетекстові корисні навантаження повертаються до звичайної доставки. +- Якщо потокова передача зламається посеред відповіді, OpenClaw повернеться до звичайної доставки для решти корисних навантажень. -Використовуйте чорновий попередній перегляд замість нативного потокового передавання тексту Slack: +Використовуйте чернетковий попередній перегляд замість нативної потокової передачі тексту Slack: ```json5 { @@ -489,12 +490,12 @@ openclaw gateway Застарілі ключі: -- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрується в `channels.slack.streaming`. -- булеве `channels.slack.streaming` автоматично мігрується в `channels.slack.nativeStreaming`. +- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрує до `channels.slack.streaming`. +- булевий `channels.slack.streaming` автоматично мігрує до `channels.slack.nativeStreaming`. -## Резервна реакція друку +## Резервний варіант з typing reaction -`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а після завершення виконання прибирає її. Це найкорисніше поза відповідями в ланцюжках, де використовується типовий індикатор стану "is typing...". +`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це найкорисніше поза відповідями в тредах, де використовується типовий індикатор стану "is typing...". Порядок визначення: @@ -504,66 +505,66 @@ openclaw gateway Примітки: - Slack очікує shortcodes (наприклад, `"hourglass_flowing_sand"`). -- Реакція надсилається за принципом best-effort, а очищення автоматично намагається виконатися після завершення відповіді або сценарію помилки. +- Реакція надсилається за принципом best-effort, а очищення автоматично намагається виконатися після відповіді або завершення шляху помилки. ## Медіа, розбиття на частини та доставка - Вкладення файлів Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються в сховище медіа, якщо отримання успішне та дозволяють обмеження розміру. + Файлові вкладення Slack завантажуються з приватних URL-адрес, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження розміру. Типове обмеження розміру вхідних даних під час виконання — `20MB`, якщо не перевизначено через `channels.slack.mediaMaxMb`. - - текстові частини використовують `channels.slack.textChunkLimit` (типово 4000) + - текстові фрагменти використовують `channels.slack.textChunkLimit` (типово 4000) - `channels.slack.chunkMode="newline"` вмикає розбиття спочатку за абзацами - - надсилання файлів використовує API завантаження Slack і може включати відповіді в ланцюжках (`thread_ts`) - - обмеження вихідних медіа задається `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канал використовує типові значення kind MIME з конвеєра медіа + - надсилання файлів використовує API завантаження Slack і може включати відповіді в тредах (`thread_ts`) + - обмеження вихідних медіа дотримується `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канали використовують типові значення MIME-kind із конвеєра медіа Бажані явні цілі: - - `user:` для особистих повідомлень + - `user:` для приватних повідомлень - `channel:` для каналів - Особисті повідомлення Slack відкриваються через API розмов Slack під час надсилання до цілей користувача. + Приватні повідомлення Slack відкриваються через API бесід Slack під час надсилання до цілей користувача. -## Команди та поведінка слеш-команд +## Команди та поведінка slash -- Автоматичний режим нативних команд **вимкнений** для Slack (`commands.native: "auto"` не вмикає нативні команди Slack). +- Нативний автоматичний режим команд для Slack **вимкнено** (`commands.native: "auto"` не вмикає нативні команди Slack). - Увімкніть нативні обробники команд Slack через `channels.slack.commands.native: true` (або глобально `commands.native: true`). -- Коли нативні команди ввімкнені, зареєструйте відповідні слеш-команди в Slack (імена `/`), з одним винятком: +- Коли нативні команди ввімкнено, зареєструйте відповідні slash-команди у Slack (імена `/`), з одним винятком: - зареєструйте `/agentstatus` для команди status (Slack резервує `/status`) -- Якщо нативні команди не ввімкнені, ви можете запускати одну налаштовану слеш-команду через `channels.slack.slashCommand`. +- Якщо нативні команди не ввімкнено, можна запускати одну налаштовану slash-команду через `channels.slack.slashCommand`. - Нативні меню аргументів тепер адаптують свою стратегію відображення: - до 5 варіантів: блоки кнопок - 6-100 варіантів: статичне меню вибору - - понад 100 варіантів: зовнішній вибір з асинхронним фільтруванням варіантів, якщо доступні обробники опцій interactivity + - понад 100 варіантів: зовнішній вибір з асинхронною фільтрацією варіантів, якщо доступні обробники параметрів interactivity - якщо закодовані значення варіантів перевищують обмеження Slack, потік повертається до кнопок -- Для довгих payload варіантів меню аргументів слеш-команд використовують діалог підтвердження перед відправленням вибраного значення. +- Для довгих корисних навантажень варіантів меню аргументів slash-команд використовують діалог підтвердження перед відправленням вибраного значення. -Типові параметри слеш-команд: +Типові параметри slash-команд: - `enabled: false` - `name: "openclaw"` - `sessionPrefix: "slack:slash"` - `ephemeral: true` -Сесії слеш-команд використовують ізольовані ключі: +Сесії slash використовують ізольовані ключі: - `agent::slack:slash:` -і все одно маршрутизують виконання команди до цільової сесії розмови (`CommandTargetSessionKey`). +і все ще маршрутизують виконання команд відносно сесії цільової бесіди (`CommandTargetSessionKey`). ## Інтерактивні відповіді -Slack може відображати інтерактивні елементи керування відповідями, створеними агентом, але ця функція типово вимкнена. +Slack може відображати інтерактивні елементи керування відповідями, створеними агентом, але цю функцію типово вимкнено. Увімкніть її глобально: @@ -579,7 +580,7 @@ Slack може відображати інтерактивні елементи } ``` -Або увімкніть її лише для одного облікового запису Slack: +Або ввімкніть її лише для одного облікового запису Slack: ```json5 { @@ -597,7 +598,7 @@ Slack може відображати інтерактивні елементи } ``` -Коли це ввімкнено, агенти можуть виводити директиви відповіді лише для Slack: +Коли функцію ввімкнено, агенти можуть надсилати директиви відповідей лише для Slack: - `[[slack_buttons: Approve:approve, Reject:reject]]` - `[[slack_select: Choose a target | Canary:canary, Production:production]]` @@ -607,33 +608,34 @@ Slack може відображати інтерактивні елементи Примітки: - Це UI, специфічний для Slack. Інші канали не перекладають директиви Slack Block Kit у власні системи кнопок. -- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не сирі значення, створені агентом. -- Якщо згенеровані інтерактивні блоки перевищують обмеження Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання недійсного payload blocks. +- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не необроблені значення, створені агентом. +- Якщо згенеровані інтерактивні блоки перевищать обмеження Slack Block Kit, OpenClaw повернеться до початкової текстової відповіді замість надсилання недійсного корисного навантаження blocks. -## Exec approvals у Slack +## Погодження exec у Slack -Slack може працювати як нативний клієнт погодження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала. +Slack може діяти як нативний клієнт погодження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала. -- Для нативної маршрутизації в особисті повідомлення/канали використовуються `channels.slack.execApprovals.*`. -- Погодження plugin також можуть визначатися через ту саму Slack-native поверхню кнопок, коли запит уже потрапляє в Slack і тип id погодження — `plugin:`. -- Авторизація погоджувача все одно застосовується: лише користувачі, визначені як approvers, можуть погоджувати або відхиляти запити через Slack. +- Погодження exec використовують `channels.slack.execApprovals.*` для нативної маршрутизації до приватних повідомлень/каналів. +- Погодження plugin також можуть визначатися через ту саму поверхню нативних кнопок Slack, коли запит уже надходить у Slack, а тип ID погодження — `plugin:`. +- Авторизація того, хто погоджує, як і раніше, примусово застосовується: лише користувачі, визначені як approvers, можуть погоджувати або відхиляти запити через Slack. -Це використовує ту саму спільну поверхню кнопок погодження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на погодження відображаються як кнопки Block Kit безпосередньо в розмові. +Це використовує ту саму спільну поверхню кнопок погодження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити на погодження відображаються як кнопки Block Kit безпосередньо в бесіді. Коли ці кнопки присутні, вони є основним UX погодження; OpenClaw -має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що погодження в чаті недоступні або ручне погодження — єдиний шлях. +має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що +погодження в чаті недоступні або ручне погодження є єдиним шляхом. Шлях конфігурації: - `channels.slack.execApprovals.enabled` -- `channels.slack.execApprovals.approvers` (необов’язково; за можливості використовується резервне значення з `commands.ownerAllowFrom`) +- `channels.slack.execApprovals.approvers` (необов’язково; за можливості повертається до `commands.ownerAllowFrom`) - `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, типово: `dm`) - `agentFilter`, `sessionFilter` -Slack автоматично вмикає нативні exec approvals, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один +Slack автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один approver. Установіть `enabled: false`, щоб явно вимкнути Slack як нативний клієнт погодження. Установіть `enabled: true`, щоб примусово ввімкнути нативні погодження, коли approvers визначаються. -Типова поведінка без явної конфігурації Slack exec approval: +Типова поведінка без явної конфігурації погодження exec для Slack: ```json5 { @@ -643,8 +645,8 @@ approver. Установіть `enabled: false`, щоб явно вимкнут } ``` -Явна конфігурація Slack-native потрібна лише тоді, коли ви хочете перевизначити approvers, додати фільтри або -увімкнути доставку до початкового чату: +Явна нативна конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити approvers, додати фільтри або +вибрати доставку в чат походження: ```json5 { @@ -660,41 +662,41 @@ approver. Установіть `enabled: false`, щоб явно вимкнут } ``` -Спільне переспрямування `approvals.exec` — окреме. Використовуйте його лише тоді, коли запити на exec approval також мають -маршрутизуватися до інших чатів або явно позасмугових цілей. Спільне переспрямування `approvals.plugin` також -окреме; Slack-native кнопки все одно можуть визначати plugin approvals, коли ці запити вже потрапляють -до Slack. +Спільне переспрямування `approvals.exec` є окремим. Використовуйте його лише тоді, коли запити на погодження exec також мають +маршрутизуватися до інших чатів або явних цілей поза основним каналом. Спільне переспрямування `approvals.plugin` також є +окремим; нативні кнопки Slack усе ще можуть визначати погодження plugin, коли ці запити вже надходять +у Slack. -`/approve` у тому самому чаті також працює в каналах і особистих повідомленнях Slack, які вже підтримують команди. Повну модель переспрямування погоджень див. у [Exec approvals](/uk/tools/exec-approvals). +Команда `/approve` у тому самому чаті також працює в каналах і приватних повідомленнях Slack, які вже підтримують команди. Див. [Погодження exec](/uk/tools/exec-approvals), щоб ознайомитися з повною моделлю переспрямування погоджень. ## Події та операційна поведінка -- Редагування/видалення повідомлень і thread broadcast зіставляються в системні події. -- Події додавання/видалення реакцій зіставляються в системні події. -- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення pin зіставляються в системні події. -- `channel_id_changed` може мігрувати ключі конфігурації каналів, коли ввімкнено `configWrites`. -- Метадані topic/purpose каналу вважаються недовіреним контекстом і можуть бути впроваджені в контекст маршрутизації. -- Початкова історія ланцюжка та заповнення контексту історії на початку ланцюжка фільтруються за налаштованими allowlist відправників, де це застосовно. -- Дії блоків і взаємодії modal створюють структуровані системні події `Slack interaction: ...` з насиченими полями payload: - - дії блоків: вибрані значення, мітки, значення picker і метадані `workflow_*` - - події modal `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введеними даними форми +- Редагування/видалення повідомлень і трансляції тредів зіставляються із системними подіями. +- Події додавання/видалення реакцій зіставляються із системними подіями. +- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення закріплень зіставляються із системними подіями. +- `channel_id_changed` може мігрувати ключі конфігурації каналу, коли ввімкнено `configWrites`. +- Метадані теми/призначення каналу вважаються недовіреним контекстом і можуть бути ін’єктовані в контекст маршрутизації. +- Початкове повідомлення треду та початкове заповнення контексту історії треду фільтруються відповідно до налаштованих allowlist відправників, де це застосовно. +- Дії block і взаємодії modal створюють структуровані системні події `Slack interaction: ...` із насиченими полями корисного навантаження: + - дії block: вибрані значення, мітки, значення picker і метадані `workflow_*` + - події modal `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введеними значеннями форми -## Вказівники на довідник конфігурації +## Вказівники на довідкову конфігурацію -Основний довідник: +Основне посилання: - [Довідник конфігурації - Slack](/uk/gateway/configuration-reference#slack) Високосигнальні поля Slack: - mode/auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*` - - доступ до особистих повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels` - - перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний режим; тримайте вимкненим, якщо немає потреби) + - доступ до приватних повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels` + - перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний варіант; тримайте вимкненим, якщо не потрібно) - доступ до каналів: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention` - - ланцюжки/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit` + - треди/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit` - доставка: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `nativeStreaming` - операції/можливості: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly` -## Усунення несправностей +## Усунення проблем @@ -715,12 +717,12 @@ openclaw doctor - + Перевірте: - `channels.slack.dm.enabled` - `channels.slack.dmPolicy` (або застаріле `channels.slack.dm.policy`) - - погодження зіставлення / записи allowlist + - дозволи сполучення / записи allowlist ```bash openclaw pairing list slack @@ -728,17 +730,17 @@ openclaw pairing list slack - + Перевірте bot token + app token і ввімкнення Socket Mode в налаштуваннях застосунку Slack. Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або `appTokenStatus: "configured_unavailable"`, обліковий запис Slack налаштовано, але поточне середовище виконання не змогло визначити значення, - яке зберігається через SecretRef. + що підтримується SecretRef. - + Перевірте: - signing secret @@ -748,27 +750,27 @@ openclaw pairing list slack Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках облікового запису, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло - визначити signing secret, який зберігається через SecretRef. + визначити signing secret, що підтримується SecretRef. - - Перевірте, що саме ви мали на увазі: + + Перевірте, чи ви справді мали на увазі: - - режим нативних команд (`channels.slack.commands.native: true`) з реєстрацією відповідних слеш-команд у Slack - - або режим однієї слеш-команди (`channels.slack.slashCommand.enabled: true`) + - режим нативних команд (`channels.slack.commands.native: true`) з відповідними slash-командами, зареєстрованими у Slack + - або режим однієї slash-команди (`channels.slack.slashCommand.enabled: true`) Також перевірте `commands.useAccessGroups` і allowlist каналів/користувачів. -## Пов’язані матеріали +## Пов’язані розділи -- [Зіставлення](/uk/channels/pairing) +- [Сполучення](/uk/channels/pairing) - [Групи](/uk/channels/groups) - [Безпека](/uk/gateway/security) - [Маршрутизація каналів](/uk/channels/channel-routing) -- [Усунення несправностей](/uk/channels/troubleshooting) +- [Усунення проблем](/uk/channels/troubleshooting) - [Конфігурація](/uk/gateway/configuration) -- [Слеш-команди](/uk/tools/slash-commands) +- [Slash-команди](/uk/tools/slash-commands)