From 14c70bed7cf1dfee2a7b519068759e93484d4323 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Fri, 24 Apr 2026 21:17:25 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/plugins/google-meet.md | 366 ++++++++++++++++++++++----------- 1 file changed, 244 insertions(+), 122 deletions(-) diff --git a/docs/uk/plugins/google-meet.md b/docs/uk/plugins/google-meet.md index c017865ad..cf0882fbf 100644 --- a/docs/uk/plugins/google-meet.md +++ b/docs/uk/plugins/google-meet.md @@ -1,39 +1,41 @@ --- read_when: - - Ви хочете, щоб агент OpenClaw приєднався до дзвінка Google Meet - - Ви налаштовуєте Chrome, Node Chrome або Twilio як транспорт Google Meet -summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими параметрами голосового зв’язку в реальному часі' + - Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet + - Ви хочете, щоб агент OpenClaw створив новий виклик Google Meet + - Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet +summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі' title: Плагін Google Meet x-i18n: - generated_at: "2026-04-24T19:55:51Z" + generated_at: "2026-04-24T21:15:37Z" model: gpt-5.4 provider: openai - source_hash: 08d1bc95465cc1a6063d5ef6707babf69d16f7f244bd4a9e88a28e3f7a62b2f9 + source_hash: 8c109e07170601a81f1802bcfb1477d82ff22d69966f73c7811d4c158a1854d7 source_path: plugins/google-meet.md workflow: 15 --- -Підтримка учасника Google Meet для OpenClaw — Plugin є навмисно явним за дизайном: +Підтримка учасників Google Meet для OpenClaw — плагін навмисно зроблено явним: -- Він приєднується лише за явною URL-адресою `https://meet.google.com/...`. -- Голосовий режим `realtime` є типовим режимом. -- Голосовий режим у реальному часі може звертатися назад до повного агента OpenClaw, коли потрібні глибші міркування або інструменти. -- Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу. -- Автентифікація починається з персонального Google OAuth або вже виконаного входу в профіль Chrome. +- Він приєднується лише до явного URL `https://meet.google.com/...`. +- Він може створити новий простір Meet через API Google Meet, а потім приєднатися за поверненим URL. +- `realtime` — це типовий режим голосу. +- Голос у режимі реального часу може повертатися до повного агента OpenClaw, коли потрібні глибше міркування або інструменти. +- Агенти вибирають поведінку приєднання через `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу. +- Автентифікація починається як особистий Google OAuth або вже виконаний вхід у профіль Chrome. - Автоматичного оголошення згоди немає. -- Типовим аудіобекендом Chrome є `BlackHole 2ch`. -- Chrome може працювати локально або на підключеному вузлі host. -- Twilio приймає номер для дзвінка плюс необов’язковий PIN або послідовність DTMF. -- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв агентської телеконференції. +- Типовий аудіобекенд Chrome — `BlackHole 2ch`. +- Chrome може працювати локально або на під’єднаному вузлі. +- Twilio приймає номер для дозвону та необов’язковий PIN або послідовність DTMF. +- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв телеконференцій агента. ## Швидкий старт -Установіть локальні аудіозалежності та налаштуйте постачальника голосу в реальному часі для бекенда. OpenAI є типовим; Google Gemini Live також працює з `realtime.provider: "google"`: +Установіть локальні аудіозалежності та налаштуйте постачальника голосу реального часу для бекенду. Типовим є OpenAI; Google Gemini Live також працює з `realtime.provider: "google"`: ```bash brew install blackhole-2ch sox export OPENAI_API_KEY=sk-... -# or +# або export GEMINI_API_KEY=... ``` @@ -71,7 +73,9 @@ command -v rec play openclaw googlemeet setup ``` -Вивід налаштування призначений для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, прив’язку до Node, відкладений вступ у режимі реального часу, а також, коли налаштовано делегування Twilio, чи готові Plugin `voice-call` і облікові дані Twilio. Будь-яку перевірку `ok: false` слід вважати блокувальним фактором перед тим, як просити агента приєднатися. Використовуйте `openclaw googlemeet setup --json` для скриптів або машинозчитуваного виводу. +Вивід налаштування призначено для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, закріплення вузла, відкладений вступ у режимі реального часу та, якщо налаштовано делегування Twilio, чи готові плагін `voice-call` і облікові дані Twilio. +Вважайте будь-яку перевірку `ok: false` блокером, перш ніж просити агента приєднатися. +Для скриптів або машинозчитуваного виводу використовуйте `openclaw googlemeet setup --json`. Приєднайтеся до зустрічі: @@ -90,18 +94,42 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij } ``` -Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двонапрямний міст моделі реального часу, тому він не відповідатиме голосом у зустрічі. +Створіть нову зустріч, а потім приєднайтеся до неї: -Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф типу Loopback; одного пристрою BlackHole достатньо для першого smoke test, але може бути луна. +```bash +openclaw googlemeet create +openclaw googlemeet join https://meet.google.com/new-abcd-xyz --transport chrome-node +``` + +Або скажіть агенту: «Створи Google Meet, приєднайся до нього з голосом у режимі реального часу і надішли мені посилання». Агент має викликати `google_meet` з `action: "create"`, скопіювати повернений `meetingUri`, а потім викликати `google_meet` з `action: "join"` і цим URL. + +```json +{ + "action": "create" +} +``` + +```json +{ + "action": "join", + "url": "https://meet.google.com/new-abcd-xyz", + "transport": "chrome-node", + "mode": "realtime" +} +``` + +Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двобічний міст моделі реального часу, тому вона не буде відповідати голосом у зустрічі. + +Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати відлуння. ### Локальний Gateway + Parallels Chrome -Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол host у VM. Один раз увімкніть у VM вбудований Plugin, щоб вузол рекламував команду Chrome: +Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол у VM. Увімкніть вбудований плагін у VM один раз, щоб вузол рекламував команду Chrome: Що де працює: -- Host Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник реального часу та конфігурація Plugin Google Meet. -- Parallels macOS VM: CLI/вузол host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google. +- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник режиму реального часу та конфігурація плагіна Google Meet. +- macOS VM у Parallels: CLI/node host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google. - Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування постачальника моделі. Установіть залежності у VM: @@ -129,20 +157,20 @@ command -v rec play openclaw plugins enable google-meet ``` -Запустіть вузол host у VM: +Запустіть вузол у VM: ```bash openclaw node run --host --port 18789 --display-name parallels-macos ``` -Якщо `` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхилить незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі: +Якщо `` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхиляє незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node run --host --port 18789 --display-name parallels-macos ``` -Використовуйте ту саму змінну середовища під час встановлення вузла як LaunchAgent: +Використовуйте ту саму змінну середовища, коли встановлюєте вузол як LaunchAgent: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ @@ -152,20 +180,20 @@ openclaw node restart `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` — це змінна середовища процесу, а не параметр `openclaw.json`. `openclaw node install` зберігає її в середовищі LaunchAgent, якщо вона присутня в команді встановлення. -Схваліть вузол з host Gateway: +Підтвердьте вузол із хоста Gateway: ```bash openclaw devices list openclaw devices approve ``` -Підтвердьте, що Gateway бачить вузол і що він рекламує і `googlemeet.chrome`, і можливість браузера/`browser.proxy`: +Підтвердьте, що Gateway бачить вузол і що він рекламує як `googlemeet.chrome`, так і можливість браузера/`browser.proxy`: ```bash openclaw nodes status ``` -Маршрутизуйте Meet через цей вузол на host Gateway: +Спрямуйте Meet через цей вузол на хості Gateway: ```json5 { @@ -195,7 +223,7 @@ openclaw nodes status } ``` -Тепер приєднуйтесь звичайним способом з host Gateway: +Тепер приєднуйтеся як зазвичай із хоста Gateway: ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij @@ -203,53 +231,54 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij або попросіть агента використати інструмент `google_meet` з `transport: "chrome-node"`. -Для smoke test однією командою, який створює або повторно використовує сеанс, промовляє відому фразу та виводить стан сеансу: +Для smoke-тесту однією командою, який створює або повторно використовує сеанс, вимовляє відому фразу та виводить стан сеансу: ```bash openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij ``` -Якщо профіль браузера не має виконаного входу, Meet очікує допуску від host або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` з `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити оператору це повідомлення й повторити спробу лише після завершення ручної дії в браузері. +Якщо в профілі браузера не виконано вхід, Meet очікує допуску хостом або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` разом із `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити це повідомлення оператору й повторити спробу лише після завершення ручної дії в браузері. -Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає вузол лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька сумісних вузлів, установіть `chromeNode.node` на id вузла, display name або віддалену IP-адресу. +Якщо `chromeNode.node` пропущено, OpenClaw виконує автовибір лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька придатних вузлів, установіть `chromeNode.node` на id вузла, відображуване ім’я або віддалену IP-адресу. -Поширені перевірки збоїв: +Поширені перевірки помилок: -- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, схваліть pairing і переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що host Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`. +- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, підтвердьте сполучення та переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що хост Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`. - `BlackHole 2ch audio device not found on the node`: установіть `blackhole-2ch` у VM і перезавантажте VM. -- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште встановленим `chrome.guestName` для гостьового приєднання. Автоматичне гостьове приєднання використовує автоматизацію браузера OpenClaw через browser proxy вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявної сесії. -- Дубльовані вкладки Meet: залиште увімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для тієї самої URL-адреси Meet перед відкриттям нової. -- Немає аудіо: у Meet маршрутизуйте мікрофон/динамік через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію типу Loopback. +- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште `chrome.guestName` встановленим для гостьового приєднання. Автоприєднання гостя використовує автоматизацію браузера OpenClaw через проксі браузера вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявного сеансу. +- Дубльовані вкладки Meet: залиште ввімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для того самого URL Meet перед відкриттям нової. +- Немає аудіо: у Meet спрямовуйте аудіо мікрофона/динаміка через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію в стилі Loopback. ## Примітки щодо встановлення -Типовий режим реального часу Chrome використовує два зовнішні інструменти: +Типовий режим Chrome realtime використовує два зовнішні інструменти: -- `sox`: утиліта командного рядка для роботи з аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц. -- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який можуть маршрутизуватися Chrome/Meet. +- `sox`: утиліта командного рядка для аудіо. Плагін використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц. +- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який Chrome/Meet можуть маршрутизувати аудіо. -OpenClaw не постачає та не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності host через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або appliance, що постачає BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole від upstream або отримайте окрему ліцензію від Existential Audio. +OpenClaw не включає й не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності хоста через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole має ліцензію GPL-3.0. Якщо ви збираєте інсталятор або appliance, що включає BlackHole разом з OpenClaw, перегляньте умови вихідної ліцензії BlackHole або отримайте окрему ліцензію від Existential Audio. ## Транспорти ### Chrome -Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS Plugin перевіряє наявність `BlackHole 2ch` перед запуском. Якщо налаштовано, він також виконує команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на host Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на підключеному Node, наприклад у Parallels macOS VM. +Транспорт Chrome відкриває URL Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS плагін перед запуском перевіряє наявність `BlackHole 2ch`. +Якщо налаштовано, він також запускає команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на під’єднаному вузлі, наприклад у macOS VM Parallels. ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome-node ``` -Маршрутизуйте аудіо мікрофона та динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху. +Спрямуйте аудіо мікрофона та динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху. ### Twilio -Транспорт Twilio — це строгий план набору, делегований Plugin Voice Call. Він не аналізує сторінки Meet у пошуку номерів телефону. +Транспорт Twilio — це строгий план набору, делегований плагіну Voice Call. Він не аналізує сторінки Meet, щоб витягти телефонні номери. -Використовуйте його, коли участь через Chrome недоступна або коли вам потрібен резервний варіант телефонного набору. Google Meet має надавати номер для підключення телефоном і PIN для зустрічі; OpenClaw не знаходить їх на сторінці Meet. +Використовуйте це, коли участь через Chrome недоступна або коли вам потрібен резервний варіант із телефонним дозвоном. Google Meet має показувати номер для телефонного дозвону та PIN для зустрічі; OpenClaw не визначає їх зі сторінки Meet. -Увімкніть Plugin Voice Call на host Gateway, а не на Chrome node: +Увімкніть плагін Voice Call на хості Gateway, а не на вузлі Chrome: ```json5 { @@ -260,7 +289,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome enabled: true, config: { defaultTransport: "chrome-node", - // or set "twilio" if Twilio should be the default + // або встановіть "twilio", якщо Twilio має бути типовим }, }, "voice-call": { @@ -282,7 +311,7 @@ export TWILIO_AUTH_TOKEN=... export TWILIO_FROM_NUMBER=+15550001234 ``` -Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації Plugin не з’являються в уже запущеному процесі Gateway, доки його не буде перезавантажено. +Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації плагіна не з’являються в уже запущеному процесі Gateway, доки він не буде перезавантажений. Потім перевірте: @@ -292,7 +321,7 @@ openclaw plugins list | grep -E 'google-meet|voice-call' openclaw googlemeet setup ``` -Коли делегування Twilio підключено, `googlemeet setup` містить успішні перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`. +Коли делегування Twilio налаштоване, `googlemeet setup` містить успішні перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`. ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij \ @@ -301,7 +330,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ --pin 123456 ``` -Використовуйте `--dtmf-sequence`, коли зустріч вимагає користувацької послідовності: +Використовуйте `--dtmf-sequence`, коли зустріч потребує власної послідовності: ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij \ @@ -312,15 +341,23 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ ## OAuth і попередня перевірка -Доступ до Google Meet Media API спочатку використовує персональний OAuth client. Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, а потім виконайте: +Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте +`oauth.clientId` і за потреби `oauth.clientSecret`, а потім виконайте: ```bash openclaw googlemeet auth login --json ``` -Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE, callback localhost на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`. +Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE, +локальний callback на `http://localhost:8085/oauth2callback` і ручний +потік копіювання/вставлення з `--manual`. -Як резервні варіанти приймаються такі змінні середовища: +Згода OAuth включає створення просторів Meet, доступ на читання просторів Meet і +доступ на читання медіаданих конференцій Meet. Якщо ви пройшли автентифікацію до того, як з’явилася +підтримка створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб +refresh token мав область доступу `meetings.space.created`. + +Ці змінні середовища приймаються як резервні варіанти: - `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID` - `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET` @@ -331,32 +368,52 @@ openclaw googlemeet auth login --json - `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` або `GOOGLE_MEET_DEFAULT_MEETING` - `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` або `GOOGLE_MEET_PREVIEW_ACK` -Визначте URL-адресу Meet, код або `spaces/{id}` через `spaces.get`: +Розв’яжіть URL Meet, код або `spaces/{id}` через `spaces.get`: ```bash openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij ``` -Запустіть попередню перевірку перед роботою з медіа: +Виконайте попередню перевірку перед роботою з медіа: ```bash openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij ``` -Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, принципал OAuth і учасники зустрічі зареєстровані в програмі Google Workspace Developer Preview Program для медіа-API Meet. +Створіть новий простір Meet з тією самою конфігурацією OAuth: + +```bash +openclaw googlemeet create +``` + +Команда виводить нові `meeting uri` і `space`. Агенти можуть використовувати +інструмент `google_meet` з `action: "create"` для створення зустрічі, а потім викликати +`action: "join"` з поверненим `meetingUri`. + +Створення простору Meet створює лише URL зустрічі. Транспорт Chrome або Chrome-node +усе одно потребує профілю Google Chrome з виконаним входом, щоб приєднатися через +браузер. Якщо в профілі виконано вихід, OpenClaw повідомляє +`manualActionRequired: true` і просить оператора завершити вхід у Google перед +повторною спробою приєднання. + +Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud +project, OAuth principal і учасники зустрічі зареєстровані в програмі +Google Workspace Developer Preview Program для медіа-API Meet. ## Конфігурація -Поширений шлях Chrome у режимі реального часу потребує лише увімкненого Plugin, BlackHole, SoX і ключа постачальника голосу в реальному часі для бекенда. OpenAI є типовим; установіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live: +Звичайному шляху Chrome realtime потрібні лише ввімкнений плагін, BlackHole, SoX +і ключ постачальника голосу реального часу для бекенду. Типовим є OpenAI; установіть +`realtime.provider: "google"`, щоб використовувати Google Gemini Live: ```bash brew install blackhole-2ch sox export OPENAI_API_KEY=sk-... -# or +# або export GEMINI_API_KEY=... ``` -Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`: +Установіть конфігурацію плагіна в `plugins.entries.google-meet.config`: ```json5 { @@ -377,16 +434,24 @@ export GEMINI_API_KEY=... - `defaultMode: "realtime"` - `chromeNode.node`: необов’язковий id/ім’я/IP вузла для `chrome-node` - `chrome.audioBackend: "blackhole-2ch"` -- `chrome.guestName: "OpenClaw Agent"`: ім’я, що використовується на екрані гостьового входу Meet без входу в систему -- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now з найкращим зусиллям через автоматизацію браузера OpenClaw на `chrome-node` -- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість відкриття дублікатів -- `chrome.waitForInCallMs: 20000`: чекати, поки вкладка Meet повідомить про перебування в дзвінку, перш ніж буде запущено вступ у режимі реального часу -- `chrome.audioInputCommand`: команда SoX `rec`, яка записує аудіо 8 кГц G.711 mu-law у stdout -- `chrome.audioOutputCommand`: команда SoX `play`, яка читає аудіо 8 кГц G.711 mu-law зі stdin +- `chrome.guestName: "OpenClaw Agent"`: ім’я, яке використовується на екрані + гостя Meet без входу +- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now у + режимі best-effort через автоматизацію браузера OpenClaw на `chrome-node` +- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість + відкриття дублікатів +- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet не повідомить про стан in-call, + перш ніж буде запущено вступ у режимі реального часу +- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо G.711 mu-law 8 кГц + у stdout +- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо G.711 mu-law 8 кГц + із stdin - `realtime.provider: "openai"` - `realtime.toolPolicy: "safe-read-only"` -- `realtime.instructions`: короткі усні відповіді, з `openclaw_agent_consult` для глибших відповідей -- `realtime.introMessage`: коротка усна перевірка готовності під час підключення мосту реального часу; установіть `""`, щоб приєднатися беззвучно +- `realtime.instructions`: короткі усні відповіді, з + `openclaw_agent_consult` для глибших відповідей +- `realtime.introMessage`: коротка усна перевірка готовності, коли міст + реального часу підключається; установіть `""`, щоб приєднуватися беззвучно Необов’язкові перевизначення: @@ -406,7 +471,7 @@ export GEMINI_API_KEY=... realtime: { provider: "google", toolPolicy: "owner", - introMessage: "Say exactly: I'm here.", + introMessage: "Скажи рівно: I'm here.", providers: { google: { model: "gemini-2.5-flash-native-audio-preview-12-2025", @@ -432,7 +497,10 @@ export GEMINI_API_KEY=... } ``` -`voiceCall.enabled` типово має значення `true`; із транспортом Twilio він делегує фактичний PSTN-дзвінок і DTMF до Plugin Voice Call. Якщо `voice-call` не увімкнено, Google Meet усе ще може перевіряти й записувати план набору, але не може здійснити дзвінок Twilio. +`voiceCall.enabled` типово має значення `true`; з транспортом Twilio він делегує +фактичний PSTN-виклик і DTMF плагіну Voice Call. Якщо `voice-call` не +ввімкнено, Google Meet усе одно може перевірити й записати план набору, але не може +виконати виклик Twilio. ## Інструмент @@ -447,47 +515,67 @@ export GEMINI_API_KEY=... } ``` -Використовуйте `transport: "chrome"`, коли Chrome працює на host Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на підключеному Node, наприклад у Parallels VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на host Gateway, тому облікові дані моделі залишаються там. +Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте +`transport: "chrome-node"`, коли Chrome працює на під’єднаному вузлі, наприклад у Parallels +VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на +хості Gateway, тому облікові дані моделі залишаються там. -Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити id сеансу. Використовуйте `action: "speak"` з `sessionId` і `message`, щоб агент реального часу негайно заговорив. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, запустити відому фразу й повернути стан `inCall`, коли host Chrome може його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс як завершений. +Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити ID сеансу. Використовуйте +`action: "speak"` із `sessionId` і `message`, щоб змусити агента реального часу +говорити негайно. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, +запустити відому фразу й повернути стан `inCall`, якщо хост Chrome може +його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс завершеним. -`status` містить стан Chrome, коли він доступний: +`status` включає стан Chrome, коли він доступний: -- `inCall`: Chrome, імовірно, перебуває всередині дзвінка Meet -- `micMuted`: стан мікрофона Meet з найкращим зусиллям -- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профілю браузера потрібен ручний вхід, допуск host Meet, дозволи, або виправлення керування браузером, перш ніж мовлення зможе працювати +- `inCall`: Chrome, імовірно, перебуває всередині виклику Meet +- `micMuted`: best-effort стан мікрофона Meet +- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профіль + браузера потребує ручного входу, допуску хостом Meet, дозволів або + виправлення керування браузером, перш ніж мовлення зможе працювати - `providerConnected` / `realtimeReady`: стан голосового мосту реального часу -- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане мостом або надіслане до нього +- `lastInputAt` / `lastOutputAt`: час останнього аудіо, отриманого від мосту або надісланого до нього ```json { "action": "speak", "sessionId": "meet_...", - "message": "Say exactly: I'm here and listening." + "message": "Скажи рівно: I'm here and listening." } ``` ## Консультація агента в режимі реального часу -Режим реального часу Chrome оптимізовано для живого голосового циклу. Постачальник голосу в реальному часі чує аудіо зустрічі й говорить через налаштований аудіоміст. Коли моделі реального часу потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`. +Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник +голосу реального часу чує аудіо зустрічі та говорить через налаштований +аудіоміст. Коли моделі реального часу потрібні глибше міркування, актуальна +інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`. -Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом нещодавнього транскрипту зустрічі та повертає стислу усну відповідь до голосового сеансу реального часу. Потім голосова модель може озвучити цю відповідь назад у зустріч. +Інструмент консультації у фоновому режимі запускає звичайного агента OpenClaw +із контекстом нещодавньої розшифровки зустрічі й повертає стислу усну відповідь +до голосового сеансу реального часу. Потім голосова модель може озвучити цю +відповідь назад у зустріч. `realtime.toolPolicy` керує запуском консультації: -- `safe-read-only`: надавати інструмент консультації та обмежувати звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`. -- `owner`: надавати інструмент консультації та дозволяти звичайному агенту використовувати звичайну політику інструментів агента. -- `none`: не надавати інструмент консультації голосовій моделі реального часу. +- `safe-read-only`: показати інструмент консультації та обмежити звичайного агента + інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і + `memory_get`. +- `owner`: показати інструмент консультації та дозволити звичайному агенту використовувати + звичайну політику інструментів агента. +- `none`: не показувати інструмент консультації моделі голосу реального часу. -Ключ сеансу консультації має область дії в межах кожного сеансу Meet, тому подальші виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі. +Ключ сеансу консультації має область дії в межах одного сеансу Meet, тому +наступні виклики консультації можуть повторно використовувати попередній контекст +консультації під час тієї самої зустрічі. -Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до дзвінка: +Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до виклику: ```bash openclaw googlemeet speak meet_... "Say exactly: I'm here and listening." ``` -Для повного smoke test приєднання та мовлення: +Для повного smoke-тесту join-and-speak: ```bash openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ @@ -495,9 +583,9 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ --message "Say exactly: I'm here and listening." ``` -## Контрольний список live test +## Контрольний список live-тесту -Використовуйте цю послідовність перед передаванням зустрічі агенту без нагляду: +Використовуйте цю послідовність перед передачею зустрічі агенту без нагляду: ```bash openclaw googlemeet setup @@ -510,11 +598,12 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ Очікуваний стан Chrome-node: - `googlemeet setup` повністю зелений. -- `nodes status` показує, що вибраний вузол підключено. +- `nodes status` показує, що вибраний вузол підключений. - Вибраний вузол рекламує і `googlemeet.chrome`, і `browser.proxy`. -- Вкладка Meet приєднується до дзвінка, а `test-speech` повертає стан Chrome з `inCall: true`. +- Вкладка Meet приєднується до виклику, а `test-speech` повертає стан Chrome з + `inCall: true`. -Для smoke test Twilio використовуйте зустріч, яка надає деталі телефонного підключення: +Для smoke-тесту Twilio використовуйте зустріч, яка показує деталі телефонного дозвону: ```bash openclaw googlemeet setup @@ -526,27 +615,29 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ Очікуваний стан Twilio: -- `googlemeet setup` містить зелені перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`. +- `googlemeet setup` включає зелені перевірки `twilio-voice-call-plugin` і + `twilio-voice-call-credentials`. - `voicecall` доступний у CLI після перезавантаження Gateway. - Повернений сеанс має `transport: "twilio"` і `twilio.voiceCallId`. -- `googlemeet leave ` завершує делегований голосовий дзвінок. +- `googlemeet leave ` завершує делегований голосовий виклик. ## Усунення несправностей ### Агент не бачить інструмент Google Meet -Підтвердьте, що Plugin увімкнено в конфігурації Gateway, і перезавантажте Gateway: +Підтвердьте, що плагін увімкнено в конфігурації Gateway, і перезавантажте Gateway: ```bash openclaw plugins list | grep google-meet openclaw googlemeet setup ``` -Якщо ви щойно змінили `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. Запущений агент бачить лише ті інструменти Plugin, які зареєстровані поточним процесом Gateway. +Якщо ви щойно відредагували `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. +Запущений агент бачить лише інструменти плагінів, зареєстровані поточним процесом Gateway. ### Немає підключеного вузла з підтримкою Google Meet -На host вузла виконайте: +На хості вузла виконайте: ```bash openclaw plugins enable google-meet @@ -555,7 +646,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node run --host --port 18789 --display-name parallels-macos ``` -На host Gateway схваліть вузол і перевірте команди: +На хості Gateway підтвердьте вузол і перевірте команди: ```bash openclaw devices list @@ -563,7 +654,7 @@ openclaw devices approve openclaw nodes status ``` -Вузол має бути підключений і містити `googlemeet.chrome` та `browser.proxy`. +Вузол має бути підключений і перелічувати `googlemeet.chrome` та `browser.proxy`. Конфігурація Gateway має дозволяти ці команди вузла: ```json5 @@ -578,38 +669,58 @@ openclaw nodes status ### Браузер відкривається, але агент не може приєднатися -Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він повідомляє `manualActionRequired: true`, покажіть оператору `manualActionMessage` і припиніть повторні спроби, доки дію в браузері не буде завершено. +Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він +повідомляє `manualActionRequired: true`, покажіть `manualActionMessage` оператору +та припиніть повторні спроби, доки дію в браузері не буде завершено. Поширені ручні дії: - Увійти в профіль Chrome. -- Допустити гостя з облікового запису host Meet. +- Допустити гостя з облікового запису хоста Meet. - Надати Chrome дозволи на мікрофон/камеру. -- Закрити або виправити зависле діалогове вікно дозволів Meet. +- Закрити або виправити завислий діалог дозволів Meet. + +### Не вдається створити зустріч + +`googlemeet create` використовує endpoint `spaces.create` API Google Meet. Підтвердьте: + +- налаштовано `oauth.clientId` і `oauth.refreshToken`, або наявні відповідні + змінні середовища `OPENCLAW_GOOGLE_MEET_*`. +- refresh token було створено після додавання підтримки create. Старі токени можуть + не мати області доступу `meetings.space.created`; повторно виконайте + `openclaw googlemeet auth login --json` і оновіть конфігурацію плагіна. +- Google Cloud project і OAuth principal мають право використовувати потрібні + області доступу API Google Meet. ### Агент приєднується, але не говорить -Перевірте шлях реального часу: +Перевірте шлях realtime: ```bash openclaw googlemeet setup openclaw googlemeet status ``` -Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно не запускає двонапрямний голосовий міст реального часу. +Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно +не запускає двобічний голосовий міст реального часу. Також перевірте: -- На host Gateway доступний ключ постачальника реального часу, наприклад `OPENAI_API_KEY` або `GEMINI_API_KEY`. -- `BlackHole 2ch` видно на host Chrome. -- `rec` і `play` існують на host Chrome. -- Мікрофон і динамік Meet маршрутизуються через віртуальний аудіошлях, який використовує OpenClaw. +- На хості Gateway доступний ключ постачальника режиму реального часу, наприклад + `OPENAI_API_KEY` або `GEMINI_API_KEY`. +- `BlackHole 2ch` видимий на хості Chrome. +- `rec` і `play` існують на хості Chrome. +- Мікрофон і динамік Meet маршрутизовано через віртуальний аудіошлях, який використовує + OpenClaw. -### Перевірки налаштування Twilio завершуються невдачею +### Не проходять перевірки налаштування Twilio -`twilio-voice-call-plugin` завершується невдачею, коли `voice-call` не дозволено або не увімкнено. Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте Gateway. +`twilio-voice-call-plugin` завершується помилкою, коли `voice-call` не дозволено або не ввімкнено. +Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте +Gateway. -`twilio-voice-call-credentials` завершується невдачею, коли в бекенді Twilio відсутні account SID, auth token або номер абонента. Установіть їх на host Gateway: +`twilio-voice-call-credentials` завершується помилкою, коли в бекенді Twilio бракує account +SID, auth token або номера абонента. Установіть це на хості Gateway: ```bash export TWILIO_ACCOUNT_SID=AC... @@ -623,9 +734,10 @@ export TWILIO_FROM_NUMBER=+15550001234 openclaw googlemeet setup ``` -### Дзвінок Twilio починається, але так і не входить у зустріч +### Виклик Twilio починається, але ніколи не входить у зустріч -Підтвердьте, що подія Meet надає деталі телефонного підключення. Передайте точний номер для підключення та PIN або користувацьку послідовність DTMF: +Підтвердьте, що подія Meet містить деталі телефонного дозвону. Передайте точний номер +для дозвону та PIN або власну послідовність DTMF: ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij \ @@ -634,24 +746,34 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ --dtmf-sequence ww123456# ``` -Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза перед введенням PIN. +Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза +перед введенням PIN. ## Примітки -Офіційний медіа-API Google Meet орієнтований на отримання, тому для мовлення в дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin зберігає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонне підключення. +Офіційний media API Google Meet орієнтований на отримання, тому для мовлення у виклику Meet +усе одно потрібен шлях учасника. Цей плагін робить цю межу видимою: +Chrome відповідає за участь через браузер і локальну маршрутизацію аудіо; Twilio відповідає за +участь через телефонний дозвін. -Режиму реального часу Chrome потрібне одне з такого: +Режиму Chrome realtime потрібне одне з такого: -- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі реального часу та передає аудіо 8 кГц G.711 mu-law між цими командами та вибраним постачальником голосу реального часу. -- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона. +- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує + мостом моделі реального часу та передає аудіо G.711 mu-law 8 кГц між цими + командами й вибраним постачальником голосу реального часу. +- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним + аудіошляхом і має завершитися після запуску або перевірки свого демона. -Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв типу Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників луною назад у дзвінок. +Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі +віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний +пристрій BlackHole може повертати в дзвінок відлуння інших учасників. -`googlemeet speak` запускає активний аудіоміст реального часу для сеансу Chrome. -`googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через Plugin Voice Call, `leave` також завершує базовий голосовий дзвінок. +`googlemeet speak` запускає активний аудіоміст реального часу для сеансу +Chrome. `googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих +через плагін Voice Call, `leave` також завершує базовий голосовий виклик. ## Пов’язане -- [Plugin Voice Call](/uk/plugins/voice-call) +- [Плагін Voice Call](/uk/plugins/voice-call) - [Режим розмови](/uk/nodes/talk) -- [Створення Plugin](/uk/plugins/building-plugins) +- [Створення плагінів](/uk/plugins/building-plugins)