From cf3c03a7ddc77098659a20062ec77b83c5db23f2 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sat, 25 Apr 2026 07:35:37 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/plugins/google-meet.md | 598 +++++++++++++++++---------------- 1 file changed, 307 insertions(+), 291 deletions(-) diff --git a/docs/uk/plugins/google-meet.md b/docs/uk/plugins/google-meet.md index 459b0915e..72b8f3046 100644 --- a/docs/uk/plugins/google-meet.md +++ b/docs/uk/plugins/google-meet.md @@ -3,35 +3,35 @@ read_when: - Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet - Ви хочете, щоб агент OpenClaw створив новий виклик Google Meet - Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet -summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio із типовими налаштуваннями голосу в реальному часі' +summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі' title: Плагін Google Meet x-i18n: - generated_at: "2026-04-25T07:28:35Z" + generated_at: "2026-04-25T07:33:10Z" model: gpt-5.4 provider: openai - source_hash: e03741b598614233496d208b2fff85077f31a4c37814c1c915dc6d6fda32ef2e + source_hash: b1188bafd278197a094d37a4fe3310971a03852560a293edafe987b8618e1a09 source_path: plugins/google-meet.md workflow: 15 --- -Підтримка учасників Google Meet для OpenClaw — плагін є навмисно явним за своєю конструкцією: +Підтримка учасника Google Meet для OpenClaw — плагін навмисно має явний дизайн: - Він приєднується лише за явною URL-адресою `https://meet.google.com/...`. - Він може створити новий простір Meet через API Google Meet, а потім приєднатися за поверненою URL-адресою. -- Голос `realtime` є типовим режимом. -- Голос у режимі realtime може повертатися до повного агента OpenClaw, коли потрібні глибші міркування або інструменти. -- Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/зворотного мовлення або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту realtime. -- Автентифікація починається як персональний Google OAuth або вже виконаний вхід у профіль Chrome. +- Голос `realtime` є режимом за замовчуванням. +- Голос у режимі реального часу може повертатися до повноцінного агента OpenClaw, коли потрібні глибші міркування або інструменти. +- Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/відповідей, або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту `realtime`. +- Автентифікація починається як особистий Google OAuth або вже авторизований профіль Chrome. - Автоматичного оголошення про згоду немає. -- Типовий аудіобекенд Chrome — `BlackHole 2ch`. +- Типовим аудіобекендом Chrome є `BlackHole 2ch`. - Chrome може працювати локально або на підключеному вузлі. - Twilio приймає номер для дозвону та необов’язкову послідовність PIN або DTMF. - Команда CLI — `googlemeet`; `meet` зарезервовано для ширших робочих процесів телеконференцій агента. ## Швидкий старт -Установіть локальні аудіозалежності та налаштуйте постачальника голосу realtime для бекенда. -OpenAI є типовим; Google Gemini Live також працює з +Установіть локальні аудіозалежності та налаштуйте бекенд-провайдера голосу `realtime`. +Типовим є OpenAI; Google Gemini Live також працює з `realtime.provider: "google"`: ```bash @@ -41,20 +41,21 @@ export OPENAI_API_KEY=sk-... export GEMINI_API_KEY=... ``` -`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew потребує перезавантаження, перш ніж macOS зробить пристрій видимим: +`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew +вимагає перезавантаження, перш ніж macOS зробить пристрій доступним: ```bash sudo reboot ``` -Після перезавантаження перевірте обидві складові: +Після перезавантаження перевірте обидва компоненти: ```bash system_profiler SPAudioDataType | grep -i BlackHole command -v rec play ``` -Увімкніть Plugin: +Увімкніть плагін: ```json5 { @@ -75,11 +76,11 @@ command -v rec play openclaw googlemeet setup ``` -Вивід налаштування призначено для читання агентом. Він повідомляє про профіль Chrome, -аудіоміст, закріплення за Node, відкладене представлення realtime, а також, коли делегування Twilio -налаштоване, чи готові плагін `voice-call` і облікові дані Twilio. -Розглядайте будь-яку перевірку `ok: false` як блокер перед тим, як просити агента приєднатися. -Для скриптів або машинозчитуваного виводу використовуйте `openclaw googlemeet setup --json`. +Вивід налаштування призначений для читання агентом. Він повідомляє про профіль Chrome, +аудіоміст, прив’язку до вузла, відкладений вступ `realtime` і, коли налаштовано делегування Twilio, +чи готові плагін `voice-call` і облікові дані Twilio. +Будь-яку перевірку `ok: false` слід вважати блокувальним фактором, перш ніж просити агента приєднатися. +Для сценаріїв або машинозчитуваного виводу використовуйте `openclaw googlemeet setup --json`. Приєднайтеся до зустрічі: @@ -112,26 +113,25 @@ openclaw googlemeet create --no-join `googlemeet create` має два шляхи: -- Створення через API: використовується, коли налаштовано облікові дані OAuth Google Meet. Це - найбільш детермінований шлях, який не залежить від стану UI браузера. -- Резервний варіант через браузер: використовується, коли облікові дані OAuth відсутні. OpenClaw використовує - закріплений Node Chrome, відкриває `https://meet.google.com/new`, чекає, доки Google - перенаправить на реальну URL-адресу з кодом зустрічі, а потім повертає цю URL-адресу. Цей шлях вимагає, - щоб профіль OpenClaw Chrome на вузлі вже мав виконаний вхід у Google. - Автоматизація браузера обробляє власний початковий запит дозволу на мікрофон від Meet; цей запит +- Створення через API: використовується, коли налаштовано облікові дані Google Meet OAuth. Це + найбільш детермінований шлях, який не залежить від стану інтерфейсу браузера. +- Резервний варіант через браузер: використовується, коли облікових даних OAuth немає. OpenClaw використовує + закріплений вузол Chrome, відкриває `https://meet.google.com/new`, чекає, поки Google + перенаправить на справжню URL-адресу з кодом зустрічі, а потім повертає цю URL-адресу. Цей шлях вимагає, + щоб профіль OpenClaw Chrome на вузлі вже був авторизований у Google. + Автоматизація браузера обробляє власний початковий запит Meet щодо мікрофона; цей запит не вважається збоєм входу в Google. Потоки приєднання та створення також намагаються повторно використати наявну вкладку Meet перед відкриттям - нової. Зіставлення ігнорує нешкідливі рядки запиту URL, як-от `authuser`, тому - повторна спроба агента має сфокусувати вже відкриту зустріч замість створення другої - вкладки Chrome. + нової. Під час зіставлення ігноруються нешкідливі рядки параметрів URL, наприклад `authuser`, тому + повторна спроба агента має сфокусувати вже відкриту зустріч, а не створювати другу вкладку Chrome. Вивід команди/інструмента містить поле `source` (`api` або `browser`), щоб агенти -могли пояснити, який шлях було використано. `create` типово приєднується до нової зустрічі та +могли пояснити, який шлях було використано. `create` за замовчуванням приєднується до нової зустрічі та повертає `joined: true` разом із сеансом приєднання. Щоб лише згенерувати URL-адресу, використовуйте -`create --no-join` у CLI або передайте `"join": false` інструменту. +`create --no-join` у CLI або передайте `"join": false` до інструмента. -Або скажіть агенту: "Створи Google Meet, приєднайся до нього з голосом realtime і надішли -мені посилання." Агент має викликати `google_meet` з `action: "create"` і +Або скажіть агенту: "Створи Google Meet, приєднайся до нього з голосом `realtime` і надішли +мені посилання." Агент має викликати `google_meet` з `action: "create"`, а потім поділитися поверненим `meetingUri`. ```json @@ -142,43 +142,46 @@ openclaw googlemeet create --no-join } ``` -Для приєднання лише зі спостереженням/керуванням браузером установіть `"mode": "transcribe"`. Це -не запускає дуплексний міст моделі realtime, тож він не говоритиме назад у +Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це +не запускає двосторонній міст моделі `realtime`, тому він не буде відповідати голосом у зустріч. -Під час сеансів realtime статус `google_meet` містить стан браузера та працездатність -аудіомосту, такі як `inCall`, `manualActionRequired`, `providerConnected`, -`realtimeReady`, `audioInputActive`, `audioOutputActive`, часові мітки останнього введення/виведення, лічильники байтів і стан закриття моста. Якщо з’являється -безпечний запит сторінки Meet, автоматизація браузера обробляє його, коли це можливо. Вхід, допуск хостом і запити дозволів браузера/ОС повідомляються як ручна дія з причиною та -повідомленням, яке агент має передати. +Під час сеансів `realtime` статус `google_meet` містить відомості про стан браузера та аудіомосту, +такі як `inCall`, `manualActionRequired`, `providerConnected`, +`realtimeReady`, `audioInputActive`, `audioOutputActive`, часові мітки останнього вводу/виводу, +лічильники байтів і стан закриття мосту. Якщо з’являється безпечний запит сторінки Meet, +автоматизація браузера обробляє його, коли це можливо. Запити на вхід, допуск від хоста та +дозволи браузера/ОС повідомляються як ручна дія з причиною та +повідомленням для передачі агентом. -Chrome приєднується як профіль Chrome з виконаним входом. У Meet виберіть `BlackHole 2ch` для -шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого дуплексного аудіо використовуйте -окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо -для першого smoke-тесту, але він може давати відлуння. +Chrome приєднується як авторизований профіль Chrome. У Meet виберіть `BlackHole 2ch` для +шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двостороннього аудіо використовуйте +окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole +достатньо для першого smoke-тесту, але може виникати відлуння. ### Локальний Gateway + Parallels Chrome Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть -вузол у VM. Увімкніть вбудований плагін у VM один раз, щоб вузол -оголошував команду Chrome: +хост вузла у VM. Увімкніть вбудований плагін у VM один раз, щоб вузол +рекламував команду Chrome: -Що де працює: +Що де запускається: -- Хост Gateway: OpenClaw Gateway, робоча область агента, ключі моделі/API, постачальник realtime +- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, провайдер `realtime` і конфігурація плагіна Google Meet. -- Parallels macOS VM: OpenClaw CLI/хост вузла, Google Chrome, SoX, BlackHole 2ch, - і профіль Chrome з виконаним входом у Google. -- Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування постачальника моделі. +- Parallels macOS VM: CLI/хост вузла OpenClaw, Google Chrome, SoX, BlackHole 2ch, + і профіль Chrome, авторизований у Google. +- Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або + налаштування провайдера моделі. -Установіть залежності у VM: +Установіть залежності VM: ```bash brew install blackhole-2ch sox ``` -Перезавантажте VM після встановлення BlackHole, щоб macOS зробила `BlackHole 2ch` видимим: +Після встановлення BlackHole перезавантажте VM, щоб macOS зробила `BlackHole 2ch` доступним: ```bash sudo reboot @@ -203,8 +206,8 @@ openclaw plugins enable google-meet openclaw node run --host --port 18789 --display-name parallels-macos ``` -Якщо `` — це LAN IP і ви не використовуєте TLS, вузол відхиляє -простий WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі: +Якщо `` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхилить +простий WebSocket, якщо ви явно не дозволите це для довіреної приватної мережі: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ @@ -219,19 +222,19 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node restart ``` -`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` — це змінна середовища процесу, а не параметр -`openclaw.json`. `openclaw node install` зберігає її в середовищі LaunchAgent, +`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` — це змінна середовища процесу, а не +налаштування `openclaw.json`. `openclaw node install` зберігає її в середовищі LaunchAgent, коли вона присутня в команді встановлення. -Схваліть вузол із хоста Gateway: +Підтвердьте вузол з хоста Gateway: ```bash openclaw devices list openclaw devices approve ``` -Підтвердьте, що Gateway бачить вузол і що він оголошує і `googlemeet.chrome`, -і можливість браузера/`browser.proxy`: +Підтвердьте, що Gateway бачить вузол і що він рекламує як `googlemeet.chrome`, +так і можливість браузера/`browser.proxy`: ```bash openclaw nodes status @@ -267,7 +270,7 @@ openclaw nodes status } ``` -Тепер приєднуйтесь звичайним способом із хоста Gateway: +Тепер приєднуйтеся звичайним способом з хоста Gateway: ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij @@ -275,8 +278,8 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij або попросіть агента використати інструмент `google_meet` з `transport: "chrome-node"`. -Для smoke-тесту однією командою, який створює або повторно використовує сеанс, промовляє відому -фразу та виводить стан сеансу: +Для smoke-тесту однією командою, який створює або повторно використовує сеанс, промовляє +відоме речення та виводить стан сеансу: ```bash openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij @@ -284,65 +287,66 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij Під час приєднання автоматизація браузера OpenClaw заповнює ім’я гостя, натискає Join/Ask to join і приймає початковий вибір Meet "Use microphone", коли з’являється цей запит. -Під час створення зустрічі лише через браузер вона також може продовжити повз той самий запит -без мікрофона, якщо Meet не показує кнопку використання мікрофона. -Якщо в профілі браузера не виконано вхід, Meet очікує -допуску хостом, Chrome потребує дозволу на мікрофон/камеру або Meet застряг на -запиті, який автоматизація не змогла розв’язати, результат join/test-speech повідомляє +Під час створення зустрічі лише через браузер вона також може пройти +той самий запит без мікрофона, якщо Meet не показує кнопку use-microphone. +Якщо профіль браузера не авторизований, Meet очікує +допуску від хоста, Chrome потребує дозволу на мікрофон/камеру, або Meet застряг на +запиті, який автоматизація не змогла обробити, результат join/test-speech повідомляє `manualActionRequired: true` разом із `manualActionReason` і -`manualActionMessage`. Агенти повинні припинити повторювати спроби приєднання, -повідомити саме це повідомлення разом із поточними `browserUrl`/`browserTitle`, +`manualActionMessage`. Агенти мають припинити повторні спроби приєднання, +передати саме це повідомлення разом із поточними `browserUrl`/`browserTitle`, і повторювати спробу лише після завершення ручної дії в браузері. -Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає лише тоді, коли рівно один -підключений вузол оголошує і `googlemeet.chrome`, і керування браузером. Якщо -підключено кілька сумісних вузлів, установіть `chromeNode.node` на id вузла, +Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає вузол лише тоді, коли рівно один +підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо +підключено кілька придатних вузлів, установіть `chromeNode.node` на ідентифікатор вузла, відображуване ім’я або віддалену IP-адресу. Поширені перевірки збоїв: - `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, - схваліть сполучення та переконайтеся, що в VM виконано `openclaw plugins enable google-meet` і - `openclaw plugins enable browser`. Також підтвердьте, що + підтвердьте сполучення і переконайтеся, що у 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` установленим для приєднання як гість. Автоприєднання гостя використовує +- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера у VM або + залиште `chrome.guestName` встановленим для гостьового входу. Автоматичне гостьове приєднання використовує автоматизацію браузера OpenClaw через проксі браузера вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявного сеансу. - Дубльовані вкладки Meet: залиште `chrome.reuseExistingTab: true` увімкненим. OpenClaw активує наявну вкладку для тієї самої URL-адреси Meet перед відкриттям нової, а - створення зустрічі в браузері повторно використовує вкладку `https://meet.google.com/new`, що вже виконується, - або вкладку запиту облікового запису Google, перш ніж відкрити іншу. -- Немає аудіо: у Meet спрямуйте мікрофон/динамік через шлях віртуального аудіопристрою, - який використовує OpenClaw; використовуйте окремі віртуальні пристрої або маршрутизацію - у стилі Loopback для чистого дуплексного аудіо. + створення зустрічі в браузері повторно використовує вкладку `https://meet.google.com/new`, + що перебуває в процесі, або вкладку запиту облікового запису Google, перш ніж відкривати ще одну. +- Немає звуку: у Meet спрямуйте мікрофон/динамік через шлях віртуального аудіопристрою, + який використовує OpenClaw; для чистого двостороннього аудіо використовуйте окремі віртуальні пристрої + або маршрутизацію у стилі Loopback. ## Примітки щодо встановлення -Типовий варіант realtime для Chrome використовує два зовнішні інструменти: +Типовий режим `realtime` для Chrome використовує два зовнішні інструменти: -- `sox`: утиліта командного рядка для аудіо. Плагін використовує її команди `rec` і `play` +- `sox`: утиліта командного рядка для роботи з аудіо. Плагін використовує її команди `rec` і `play` для типового аудіомосту 8 кГц G.711 mu-law. -- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює - аудіопристрій `BlackHole 2ch`, через який Chrome/Meet можуть маршрутизувати звук. +- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, + через який Chrome/Meet можуть маршрутизувати звук. -OpenClaw не постачає в комплекті та не розповсюджує жоден із цих пакетів. Документація просить користувачів -установлювати їх як залежності хоста через Homebrew. SoX ліцензовано за -`LGPL-2.0-only AND GPL-2.0-only`; BlackHole — за GPL-3.0. Якщо ви збираєте -інсталятор або appliance, який постачає BlackHole разом з OpenClaw, перегляньте -висхідні умови ліцензування BlackHole або отримайте окрему ліцензію від Existential Audio. +OpenClaw не постачає і не розповсюджує жоден із цих пакетів. У документації користувачам +пропонується встановити їх як залежності хоста через Homebrew. SoX ліцензовано як +`LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або +пристрій, що постачається з BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole +від постачальника або отримайте окрему ліцензію від Existential Audio. ## Транспорти ### Chrome -Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome -з виконаним входом. У macOS плагін перевіряє наявність `BlackHole 2ch` перед запуском. -Якщо налаштовано, він також виконує команду перевірки працездатності аудіомосту та команду запуску +Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як авторизований +профіль Chrome. На macOS плагін перед запуском перевіряє наявність `BlackHole 2ch`. +Якщо налаштовано, він також виконує команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на підключеному вузлі, наприклад у Parallels macOS VM. @@ -353,17 +357,17 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome ``` Спрямуйте аудіо мікрофона та динаміка Chrome через локальний аудіоміст OpenClaw. -Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування -замість тихого приєднання без аудіошляху. +Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування, +замість того щоб тихо приєднатися без аудіошляху. ### Twilio Транспорт Twilio — це суворий план набору, делегований плагіну Voice Call. Він -не аналізує сторінки Meet, щоб знаходити телефонні номери. +не аналізує сторінки Meet, щоб отримати номери телефонів. Використовуйте це, коли участь через Chrome недоступна або коли вам потрібен резервний -варіант дозвону телефоном. Google Meet має показувати номер для дозвону та PIN для -зустрічі; OpenClaw не виявляє їх на сторінці Meet. +варіант із телефонним дозвоном. Google Meet має показувати номер для дозвону та PIN для +зустрічі; OpenClaw не отримує ці дані зі сторінки Meet. Увімкніть плагін Voice Call на хості Gateway, а не на вузлі Chrome: @@ -390,8 +394,8 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome } ``` -Надайте облікові дані Twilio через середовище або конфігурацію. Середовище зберігає -секрети поза `openclaw.json`: +Надайте облікові дані Twilio через середовище або конфігурацію. Середовище дозволяє +не зберігати секрети в `openclaw.json`: ```bash export TWILIO_ACCOUNT_SID=AC... @@ -400,7 +404,7 @@ export TWILIO_FROM_NUMBER=+15550001234 ``` Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації плагіна -не з’являються в уже запущеному процесі Gateway, доки він не буде перезавантажений. +не з’являються в уже запущеному процесі Gateway, доки його не буде перезавантажено. Потім перевірте: @@ -410,7 +414,7 @@ openclaw plugins list | grep -E 'google-meet|voice-call' openclaw googlemeet setup ``` -Коли делегування Twilio підключено, `googlemeet setup` містить успішні +Коли делегування Twilio налаштовано, `googlemeet setup` містить успішні перевірки `twilio-voice-call-plugin` і `twilio-voice-call-credentials`. ```bash @@ -432,18 +436,19 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ ## OAuth і попередня перевірка OAuth є необов’язковим для створення посилання Meet, оскільки `googlemeet create` може -використовувати резервний варіант через автоматизацію браузера. Налаштуйте OAuth, коли вам потрібне офіційне створення через API, -визначення простору або перевірки попередньої готовності Meet Media API. +використовувати резервний варіант через автоматизацію браузера. Налаштуйте OAuth, якщо вам потрібне офіційне створення через API, +визначення простору або попередні перевірки Meet Media API. -Доступ до API Google Meet використовує OAuth користувача: створіть OAuth-клієнт Google Cloud, +Доступ до Google Meet API використовує OAuth користувача: створіть клієнт OAuth у Google Cloud, запросіть потрібні області доступу, авторизуйте обліковий запис Google, а потім збережіть -отриманий токен оновлення в конфігурації плагіна Google Meet або надайте +отриманий refresh token у конфігурації плагіна Google Meet або надайте змінні середовища `OPENCLAW_GOOGLE_MEET_*`. OAuth не замінює шлях приєднання через Chrome. Транспорти Chrome і Chrome-node -усе ще приєднуються через профіль Chrome з виконаним входом, BlackHole/SoX і підключений -вузол, коли ви використовуєте участь через браузер. OAuth призначений лише для офіційного шляху Google -Meet API: створення просторів зустрічей, визначення просторів і запуск перевірок попередньої готовності Meet Media API. +усе одно приєднуються через авторизований профіль Chrome, BlackHole/SoX і підключений +вузол, коли ви використовуєте участь через браузер. OAuth потрібен лише для офіційного +шляху Google Meet API: створення просторів зустрічей, визначення просторів і запуску +попередніх перевірок Meet Media API. ### Створення облікових даних Google @@ -453,38 +458,38 @@ Meet API: створення просторів зустрічей, визнач 2. Увімкніть **Google Meet REST API** для цього проєкту. 3. Налаштуйте екран згоди OAuth. - **Internal** — найпростіший варіант для організації Google Workspace. - - **External** підходить для персональних/тестових налаштувань; поки застосунок перебуває в стані Testing, + - **External** працює для персональних/тестових налаштувань; поки застосунок перебуває у статусі Testing, додайте кожен обліковий запис Google, який авторизуватиме застосунок, як тестового користувача. 4. Додайте області доступу, які запитує OpenClaw: - `https://www.googleapis.com/auth/meetings.space.created` - `https://www.googleapis.com/auth/meetings.space.readonly` - `https://www.googleapis.com/auth/meetings.conference.media.readonly` -5. Створіть ідентифікатор OAuth-клієнта. +5. Створіть OAuth client ID. - Тип застосунку: **Web application**. - - Авторизований URI перенаправлення: + - Дозволений redirect URI: ```text http://localhost:8085/oauth2callback ``` -6. Скопіюйте ідентифікатор клієнта та секрет клієнта. +6. Скопіюйте client ID і client secret. `meetings.space.created` потрібен для Google Meet `spaces.create`. `meetings.space.readonly` дозволяє OpenClaw визначати простори за URL-адресами/кодами Meet. -`meetings.conference.media.readonly` призначено для попередньої готовності Meet Media API і роботи з медіа; -Google може вимагати участі в Developer Preview для фактичного використання Media API. +`meetings.conference.media.readonly` призначений для попередніх перевірок Meet Media API і роботи +з медіа; Google може вимагати участі в Developer Preview для фактичного використання Media API. Якщо вам потрібні лише приєднання через Chrome на основі браузера, повністю пропустіть OAuth. -### Створення токена оновлення +### Отримання refresh token -Налаштуйте `oauth.clientId` і, за бажанням, `oauth.clientSecret`, або передайте їх як +Налаштуйте `oauth.clientId` і, за бажання, `oauth.clientSecret`, або передайте їх як змінні середовища, а потім виконайте: ```bash openclaw googlemeet auth login --json ``` -Команда виводить блок конфігурації `oauth` з токеном оновлення. Вона використовує PKCE, +Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE, локальний callback на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`. @@ -540,35 +545,37 @@ openclaw googlemeet auth login --json --manual } ``` -Надавайте перевагу змінним середовища, коли не хочете зберігати токен оновлення в конфігурації. -Якщо присутні і значення конфігурації, і значення середовища, плагін спочатку використовує конфігурацію, -а потім резервний варіант із середовища. +Надавайте перевагу змінним середовища, якщо не хочете зберігати refresh token у конфігурації. +Якщо присутні і значення в конфігурації, і значення середовища, плагін спочатку використовує конфігурацію, +а потім резервні значення середовища. -Згода OAuth включає створення просторів Meet, доступ на читання до просторів Meet і доступ на читання до медіа -конференції Meet. Якщо ви проходили автентифікацію до того, як з’явилася підтримка -створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб токен оновлення -мав область доступу `meetings.space.created`. +Згода OAuth включає створення просторів Meet, доступ на читання до просторів Meet і доступ на читання до +медіа конференцій Meet. Якщо ви проходили автентифікацію до того, як з’явилася підтримка +створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб refresh +token мав область доступу `meetings.space.created`. ### Перевірка OAuth за допомогою doctor -Запустіть doctor для OAuth, коли вам потрібна швидка перевірка працездатності без секретів: +Запустіть OAuth doctor, коли потрібна швидка перевірка стану без доступу до секретів: ```bash openclaw googlemeet doctor --oauth --json ``` -Це не завантажує середовище виконання Chrome і не потребує підключеного вузла Chrome. Воно -перевіряє, що конфігурація OAuth існує і що токен оновлення може створити токен доступу. Звіт JSON містить лише поля стану, такі як `ok`, `configured`, -`tokenSource`, `expiresAt` і повідомлення перевірки; він не виводить токен доступу, токен оновлення чи секрет клієнта. +Це не завантажує середовище виконання Chrome і не вимагає підключеного вузла Chrome. Воно +перевіряє, що конфігурація OAuth існує і що refresh token може отримати access +token. Звіт у JSON містить лише поля стану, як-от `ok`, `configured`, +`tokenSource`, `expiresAt` і повідомлення перевірок; він не виводить access +token, refresh token або client secret. Поширені результати: | Перевірка | Значення | | -------------------- | --------------------------------------------------------------------------------------- | -| `oauth-config` | Наявні `oauth.clientId` плюс `oauth.refreshToken` або кешований токен доступу. | -| `oauth-token` | Кешований токен доступу все ще чинний, або токен оновлення створив новий токен доступу. | -| `meet-spaces-get` | Необов’язкова перевірка `--meeting` визначила наявний простір Meet. | -| `meet-spaces-create` | Необов’язкова перевірка `--create-space` створила новий простір Meet. | +| `oauth-config` | Наявні `oauth.clientId` плюс `oauth.refreshToken`, або кешований access token. | +| `oauth-token` | Кешований access token усе ще дійсний, або refresh token отримав новий access token. | +| `meet-spaces-get` | Необов’язкова перевірка `--meeting` визначила наявний простір Meet. | +| `meet-spaces-create` | Необов’язкова перевірка `--create-space` створила новий простір Meet. | Щоб також підтвердити ввімкнення Google Meet API і область доступу `spaces.create`, виконайте перевірку створення з побічним ефектом: @@ -578,11 +585,11 @@ openclaw googlemeet doctor --oauth --create-space --json openclaw googlemeet create --no-join --json ``` -`--create-space` створює тимчасову URL-адресу Meet. Використовуйте її, коли потрібно підтвердити, +`--create-space` створює тимчасову URL-адресу Meet. Використовуйте це, коли потрібно підтвердити, що в проєкті Google Cloud увімкнено Meet API і що авторизований обліковий запис має область доступу `meetings.space.created`. -Щоб підтвердити доступ на читання до наявного простору зустрічі: +Щоб підтвердити доступ на читання для наявного простору зустрічі: ```bash openclaw googlemeet doctor --oauth --meeting https://meet.google.com/abc-defg-hij --json @@ -590,17 +597,17 @@ openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij ``` `doctor --oauth --meeting` і `resolve-space` підтверджують доступ на читання до наявного -простору, до якого має доступ авторизований обліковий запис Google. `403` від цих перевірок -зазвичай означає, що Google Meet REST API вимкнено, токен оновлення з наданою згодою -не має потрібної області доступу, або обліковий запис Google не має доступу до цього простору Meet. -Помилка токена оновлення означає, що потрібно повторно виконати `openclaw googlemeet auth login +простору, до якого має доступ авторизований обліковий запис Google. `403` у відповідь на ці перевірки +зазвичай означає, що Google Meet REST API вимкнено, у refresh token після згоди +відсутня потрібна область доступу або обліковий запис Google не має доступу до цього простору Meet. +Помилка refresh token означає, що слід повторно виконати `openclaw googlemeet auth login --json` і зберегти новий блок `oauth`. Для резервного варіанта через браузер облікові дані OAuth не потрібні. У цьому режимі Google -auth надходить із профілю Chrome з виконаним входом на вибраному вузлі, а не з +auth надходить із авторизованого профілю Chrome на вибраному вузлі, а не з конфігурації OpenClaw. -Як резервні варіанти приймаються такі змінні середовища: +Як резервні значення приймаються такі змінні середовища: - `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID` - `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET` @@ -623,7 +630,7 @@ openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij ``` -Перелічіть артефакти зустрічі та відвідуваність після того, як Meet створить записи конференції: +Виведіть артефакти зустрічі та відвідуваність після того, як Meet створить записи конференції: ```bash openclaw googlemeet artifacts --meeting https://meet.google.com/abc-defg-hij @@ -631,25 +638,28 @@ openclaw googlemeet attendance --meeting https://meet.google.com/abc-defg-hij openclaw googlemeet export --meeting https://meet.google.com/abc-defg-hij --output ./meet-export ``` -З `--meeting` команди `artifacts` і `attendance` типово використовують останній запис конференції. -Передайте `--all-conference-records`, якщо хочете отримати кожен збережений запис +З `--meeting` команди `artifacts` і `attendance` за замовчуванням використовують +найновіший запис конференції. Передайте `--all-conference-records`, якщо вам потрібні всі збережені записи для цієї зустрічі. -Пошук у Calendar може визначити URL-адресу зустрічі з Google Calendar перед читанням +Пошук у календарі може визначити URL-адресу зустрічі з Google Calendar перед читанням артефактів Meet: ```bash openclaw googlemeet latest --today +openclaw googlemeet calendar-events --today --json openclaw googlemeet artifacts --event "Weekly sync" openclaw googlemeet attendance --today --format csv --output attendance.csv ``` -`--today` шукає в сьогоднішньому календарі `primary` подію Calendar із -посиланням Google Meet. Використовуйте `--event ` для пошуку за відповідним текстом події і -`--calendar ` для неосновного календаря. Пошук у Calendar потребує нового +`--today` шукає в сьогоднішньому календарі `primary` подію Calendar з +посиланням Google Meet. Використовуйте `--event ` для пошуку збігів у тексті події, і +`--calendar ` для неосновного календаря. Пошук у календарі вимагає свіжого входу OAuth, який включає область доступу лише для читання подій Calendar. +`calendar-events` попередньо показує відповідні події Meet і позначає подію, яку +виберуть `latest`, `artifacts`, `attendance` або `export`. -Якщо ви вже знаєте ідентифікатор запису конференції, звертайтеся до нього безпосередньо: +Якщо ви вже знаєте id запису конференції, звертайтеся безпосередньо до нього: ```bash openclaw googlemeet latest --meeting https://meet.google.com/abc-defg-hij @@ -666,22 +676,35 @@ openclaw googlemeet attendance --conference-record conferenceRecords/abc123 \ --format markdown --output meet-attendance.md openclaw googlemeet attendance --conference-record conferenceRecords/abc123 \ --format csv --output meet-attendance.csv +openclaw googlemeet export --conference-record conferenceRecords/abc123 \ + --include-doc-bodies --zip --output meet-export ``` -`artifacts` повертає метадані запису конференції, а також метадані ресурсів учасників, записів, -транскриптів, структурованих записів транскрипту та smart-note, коли Google надає їх -для зустрічі. Використовуйте `--no-transcript-entries`, щоб пропустити +`artifacts` повертає метадані запису конференції разом із метаданими ресурсів учасників, запису, +транскрипту, структурованих записів транскрипту та smart-note, коли +Google надає їх для зустрічі. Використовуйте `--no-transcript-entries`, щоб пропустити пошук записів для великих зустрічей. `attendance` розгортає учасників у рядки сеансів учасників із часом першої/останньої появи, загальною тривалістю сеансу, -позначками запізнення/раннього виходу та об’єднанням дублікатів ресурсів учасників за -користувачем із виконаним входом або відображуваним ім’ям. Передайте `--no-merge-duplicates`, щоб залишити сирі -ресурси учасників окремими, `--late-after-minutes` для налаштування виявлення запізнення -і `--early-before-minutes` для налаштування виявлення раннього виходу. +прапорцями пізнього входу/раннього виходу та об’єднанням дублікатів ресурсів учасників за авторизованим +користувачем або відображуваним ім’ям. Передайте `--no-merge-duplicates`, щоб зберегти окремі +сирі ресурси учасників, `--late-after-minutes`, щоб налаштувати визначення запізнення, і +`--early-before-minutes`, щоб налаштувати визначення раннього виходу. `export` записує папку, що містить `summary.md`, `attendance.csv`, -`transcript.md`, `artifacts.json` і `attendance.json`. Ці команди використовують -Meet REST API лише для ресурсів Meet; завантаження тіла документа Google Docs/Drive -навмисно не входить до сфери охоплення, оскільки для цього потрібен окремий доступ до Google Docs/Drive. +`transcript.md`, `artifacts.json` і `attendance.json`. Передайте `--zip`, щоб також +записати переносний архів поруч із папкою. Передайте `--include-doc-bodies`, щоб +експортувати текст пов’язаних Google Docs для транскрипту та smart-note через Google Drive +`files.export`; для цього потрібен новий вхід OAuth, який включає область доступу Drive Meet +readonly. Без `--include-doc-bodies` експорт містить лише метадані Meet +і структуровані записи транскрипту. + +Запустіть захищений live smoke для реальної збереженої зустрічі: + +```bash +OPENCLAW_LIVE_TEST=1 \ +OPENCLAW_GOOGLE_MEET_LIVE_MEETING=https://meet.google.com/abc-defg-hij \ +pnpm test:live -- extensions/google-meet/google-meet.live.test.ts +``` Створіть новий простір Meet: @@ -691,11 +714,11 @@ openclaw googlemeet create Команда виводить новий `meeting uri`, джерело та сеанс приєднання. За наявності облікових даних OAuth вона використовує офіційний Google Meet API. Без облікових даних OAuth вона -використовує профіль браузера з виконаним входом на закріпленому вузлі Chrome як резервний варіант. Агенти можуть +використовує авторизований профіль браузера закріпленого вузла Chrome як резервний варіант. Агенти можуть використовувати інструмент `google_meet` з `action: "create"`, щоб створити й приєднатися за один -крок. Для створення лише URL-адреси передайте `"join": false`. +крок. Для створення лише URL передайте `"join": false`. -Приклад виводу JSON для резервного варіанта через браузер: +Приклад виводу JSON із резервного варіанта через браузер: ```json { @@ -715,31 +738,31 @@ openclaw googlemeet create } ``` -Якщо резервний варіант через браузер натрапляє на вхід у Google або блокування дозволів Meet, перш ніж -він зможе створити URL-адресу, метод Gateway повертає відповідь із помилкою, а -інструмент `google_meet` повертає структуровані дані замість простого рядка: +Якщо резервний варіант через браузер натрапляє на вхід Google або блокування дозволів Meet до того, +як зможе створити URL, метод Gateway повертає відповідь із помилкою, а +інструмент `google_meet` повертає структуровані відомості замість простого рядка: ```json { "source": "browser", - "error": "google-login-required: Sign in to Google in the OpenClaw browser profile, then retry meeting creation.", + "error": "google-login-required: Увійдіть у Google в профілі браузера OpenClaw, а потім повторіть створення зустрічі.", "manualActionRequired": true, "manualActionReason": "google-login-required", - "manualActionMessage": "Sign in to Google in the OpenClaw browser profile, then retry meeting creation.", + "manualActionMessage": "Увійдіть у Google в профілі браузера OpenClaw, а потім повторіть створення зустрічі.", "browser": { "nodeId": "ba0f4e4bc...", "targetId": "tab-1", "browserUrl": "https://accounts.google.com/signin", - "browserTitle": "Sign in - Google Accounts" + "browserTitle": "Вхід — Google Accounts" } } ``` -Коли агент бачить `manualActionRequired: true`, він має повідомити -`manualActionMessage` разом із контекстом вузла/вкладки браузера та припинити відкривати нові -вкладки Meet, доки оператор не виконає крок у браузері. +Коли агент бачить `manualActionRequired: true`, він має передати +`manualActionMessage` разом із контекстом вузла/вкладки браузера і припинити відкривати нові +вкладки Meet, доки оператор не завершить дію в браузері. -Приклад виводу JSON для створення через API: +Приклад виводу JSON зі створення через API: ```json { @@ -760,20 +783,20 @@ openclaw googlemeet create } ``` -Створення Meet типово також виконує приєднання. Транспорту Chrome або Chrome-node все ще -потрібен профіль Google Chrome з виконаним входом, щоб приєднатися через браузер. Якщо -в профілі виконано вихід, OpenClaw повідомляє `manualActionRequired: true` або +Створення Meet за замовчуванням виконує приєднання. Транспорт Chrome або Chrome-node усе ще +потребує авторизованого профілю Google Chrome для приєднання через браузер. Якщо +профіль вийшов із системи, OpenClaw повідомляє `manualActionRequired: true` або помилку резервного варіанта браузера й просить оператора завершити вхід у Google перед повторною спробою. Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud -проєкт, суб’єкт OAuth і учасники зустрічі зареєстровані в Google +проєкт, OAuth principal і учасники зустрічі зареєстровані в програмі Google Workspace Developer Preview Program для медіа-API Meet. ## Конфігурація -Поширеному шляху realtime через Chrome потрібні лише ввімкнений плагін, BlackHole, SoX -і ключ постачальника голосу realtime для бекенда. OpenAI є типовим; установіть +Типовий шлях Chrome `realtime` потребує лише ввімкненого плагіна, BlackHole, SoX +і ключа бекенд-провайдера голосу `realtime`. Типовим є OpenAI; установіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live: ```bash @@ -798,30 +821,30 @@ export GEMINI_API_KEY=... } ``` -Типові значення: +Значення за замовчуванням: - `defaultTransport: "chrome"` - `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.guestName: "OpenClaw Agent"`: ім’я, яке використовується на екрані гостя Meet + без входу +- `chrome.autoJoin: true`: найкраща можлива спроба заповнення імені гостя й натискання Join Now + через автоматизацію браузера OpenClaw на `chrome-node` - `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість відкриття дублікатів -- `chrome.waitForInCallMs: 20000`: чекати, поки вкладка Meet повідомить про стан in-call, - перш ніж буде запущено вступне повідомлення realtime -- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо 8 кГц G.711 mu-law +- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet повідомить про стан у дзвінку, + перед тим як буде запущено вступ `realtime` +- `chrome.audioInputCommand`: команда SoX `rec`, яка записує аудіо 8 кГц G.711 mu-law у stdout -- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо 8 кГц G.711 mu-law +- `chrome.audioOutputCommand`: команда SoX `play`, яка читає аудіо 8 кГц G.711 mu-law зі stdin - `realtime.provider: "openai"` - `realtime.toolPolicy: "safe-read-only"` -- `realtime.instructions`: короткі усні відповіді, з +- `realtime.instructions`: короткі усні відповіді з `openclaw_agent_consult` для глибших відповідей -- `realtime.introMessage`: коротка усна перевірка готовності, коли підключається міст realtime; - установіть `""`, щоб приєднуватися беззвучно +- `realtime.introMessage`: коротка усна перевірка готовності, коли міст `realtime` + підключається; установіть `""`, щоб приєднатися без звуку Необов’язкові перевизначення: @@ -841,7 +864,7 @@ export GEMINI_API_KEY=... realtime: { provider: "google", toolPolicy: "owner", - introMessage: "Say exactly: I'm here.", + introMessage: "Скажи рівно: Я тут.", providers: { google: { model: "gemini-2.5-flash-native-audio-preview-12-2025", @@ -867,10 +890,10 @@ export GEMINI_API_KEY=... } ``` -Для `voiceCall.enabled` типовим є `true`; із транспортом Twilio він делегує -фактичний PSTN-виклик і DTMF плагіну Voice Call. Якщо `voice-call` не ввімкнено, -Google Meet усе ще може перевіряти та записувати план набору, але не може -здійснювати виклик Twilio. +`voiceCall.enabled` за замовчуванням має значення `true`; з транспортом Twilio він делегує +фактичний PSTN-дзвінок і DTMF плагіну Voice Call. Якщо `voice-call` не +увімкнено, Google Meet усе ще може перевірити та записати план набору, але не може +виконати дзвінок Twilio. ## Інструмент @@ -887,56 +910,55 @@ Google Meet усе ще може перевіряти та записувати Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на підключеному вузлі, наприклад у Parallels -VM. В обох випадках модель realtime і `openclaw_agent_consult` працюють на +VM. В обох випадках модель `realtime` і `openclaw_agent_consult` працюють на хості Gateway, тому облікові дані моделі залишаються там. -Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити ID сеансу. Використовуйте -`action: "speak"` із `sessionId` і `message`, щоб змусити агента realtime -говорити негайно. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, -запустити відому фразу та повернути стан `inCall`, коли хост Chrome може його повідомити. Використовуйте -`action: "leave"`, щоб позначити сеанс як завершений. +Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити id сеансу. Використовуйте +`action: "speak"` із `sessionId` і `message`, щоб змусити агента `realtime` +негайно говорити. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, +запустити відому фразу та повернути стан `inCall`, коли хост Chrome може +його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс як завершений. `status` містить стан Chrome, коли він доступний: - `inCall`: схоже, що Chrome перебуває всередині виклику Meet -- `micMuted`: стан мікрофона Meet за найкращою можливою оцінкою -- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профіль - браузера потребує ручного входу, допуску хостом у Meet, дозволів або - відновлення керування браузером, перш ніж мовлення зможе працювати -- `providerConnected` / `realtimeReady`: стан голосового мосту realtime -- `lastInputAt` / `lastOutputAt`: час останнього аудіо, отриманого від моста або надісланого до нього +- `micMuted`: найкраща можлива оцінка стану мікрофона Meet +- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профілю + браузера потрібен ручний вхід, допуск хоста Meet, дозволи або + відновлення керування браузером, перш ніж мовлення запрацює +- `providerConnected` / `realtimeReady`: стан голосового мосту `realtime` +- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане з мосту або надіслане до нього ```json { "action": "speak", "sessionId": "meet_...", - "message": "Say exactly: I'm here and listening." + "message": "Скажи рівно: Я тут і слухаю." } ``` -## Консультація агента realtime +## Консультація агента в режимі реального часу -Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник голосу realtime +Режим Chrome `realtime` оптимізований для живого голосового циклу. Провайдер голосу `realtime` чує аудіо зустрічі та говорить через налаштований аудіоміст. -Коли моделі realtime потрібні глибші міркування, актуальна інформація або звичайні +Коли моделі `realtime` потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`. -Інструмент консультації запускає звичайного агента OpenClaw за лаштунками з контекстом -нещодавньої транскрипції зустрічі та повертає стислу усну відповідь до голосового сеансу realtime. -Потім голосова модель може промовити цю відповідь назад у зустріч. -Він використовує той самий спільний інструмент консультації realtime, що й Voice Call. +Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом +нещодавнього транскрипту зустрічі та повертає стислу усну відповідь до голосового сеансу `realtime`. Потім голосова модель може озвучити цю відповідь назад у зустріч. +Він використовує той самий спільний інструмент консультації `realtime`, що й Voice Call. `realtime.toolPolicy` керує запуском консультації: -- `safe-read-only`: показати інструмент консультації та обмежити звичайного агента - до `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і +- `safe-read-only`: показувати інструмент консультації та обмежувати звичайного агента + інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`. -- `owner`: показати інструмент консультації та дозволити звичайному агенту використовувати звичайну - політику інструментів агента. -- `none`: не показувати інструмент консультації моделі голосу realtime. +- `owner`: показувати інструмент консультації та дозволяти звичайному агенту використовувати + стандартну політику інструментів агента. +- `none`: не показувати інструмент консультації моделі голосу `realtime`. -Ключ сеансу консультації має область дії в межах кожного сеансу Meet, тож подальші виклики консультації -можуть повторно використовувати попередній контекст консультації протягом тієї самої зустрічі. +Ключ сеансу консультації обмежений окремим сеансом Meet, тому подальші виклики консультації +можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі. Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до виклику: @@ -952,9 +974,9 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ --message "Say exactly: I'm here and listening." ``` -## Контрольний список живого тесту +## Контрольний список live-тесту -Використовуйте цю послідовність перед передачею зустрічі агенту без нагляду: +Використовуйте цю послідовність перед передаванням зустрічі агенту без нагляду: ```bash openclaw googlemeet setup @@ -968,13 +990,13 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ - `googlemeet setup` повністю зелений. - `googlemeet setup` містить `chrome-node-connected`, коли `chrome-node` є - типовим транспортом або вузол закріплено. + транспортом за замовчуванням або вузол закріплено. - `nodes status` показує, що вибраний вузол підключено. -- Вибраний вузол оголошує і `googlemeet.chrome`, і `browser.proxy`. +- Вибраний вузол рекламує і `googlemeet.chrome`, і `browser.proxy`. - Вкладка Meet приєднується до виклику, а `test-speech` повертає стан Chrome з `inCall: true`. -Для віддаленого хоста Chrome, такого як Parallels macOS VM, це найкоротша +Для віддаленого хоста Chrome, наприклад Parallels macOS VM, це найкоротша безпечна перевірка після оновлення Gateway або VM: ```bash @@ -987,8 +1009,8 @@ openclaw nodes invoke \ ``` Це доводить, що плагін Gateway завантажено, вузол VM підключено з -поточним токеном, а аудіоміст Meet доступний до того, як агент відкриє -справжню вкладку зустрічі. +поточним токеном, а аудіоміст Meet доступний ще до того, як агент відкриє +реальну вкладку зустрічі. Для smoke-тесту Twilio використовуйте зустріч, яка показує дані для телефонного дозвону: @@ -1008,7 +1030,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ - Повернений сеанс має `transport: "twilio"` і `twilio.voiceCallId`. - `googlemeet leave ` завершує делегований голосовий виклик. -## Усунення неполадок +## Усунення несправностей ### Агент не бачить інструмент Google Meet @@ -1019,9 +1041,8 @@ openclaw plugins list | grep google-meet openclaw googlemeet setup ``` -Якщо ви щойно редагували `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. -Запущений агент бачить лише інструменти плагіна, зареєстровані поточним процесом -Gateway. +Якщо ви щойно змінили `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. +Запущений агент бачить лише інструменти плагінів, зареєстровані поточним процесом Gateway. ### Немає підключеного вузла з підтримкою Google Meet @@ -1034,7 +1055,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node run --host --port 18789 --display-name parallels-macos ``` -На хості Gateway схваліть вузол і перевірте команди: +На хості Gateway підтвердьте вузол і перевірте команди: ```bash openclaw devices list @@ -1042,7 +1063,7 @@ openclaw devices approve openclaw nodes status ``` -Вузол має бути підключений і містити `googlemeet.chrome` плюс `browser.proxy`. +Вузол має бути підключений і містити `googlemeet.chrome` та `browser.proxy`. Конфігурація Gateway має дозволяти ці команди вузла: ```json5 @@ -1055,9 +1076,9 @@ openclaw nodes status } ``` -Якщо `googlemeet setup` не проходить `chrome-node-connected` або журнал Gateway повідомляє -`gateway token mismatch`, перевстановіть або перезапустіть вузол з поточним токеном Gateway. -Для LAN Gateway це зазвичай означає: +Якщо `googlemeet setup` не проходить перевірку `chrome-node-connected` або журнал Gateway повідомляє +`gateway token mismatch`, перевстановіть або перезапустіть вузол із поточним токеном Gateway. +Для Gateway у LAN це зазвичай означає: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ @@ -1068,7 +1089,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ --force ``` -Потім перезавантажте службу вузла та повторно виконайте: +Потім перезавантажте службу вузла і повторно виконайте: ```bash openclaw googlemeet setup @@ -1077,7 +1098,7 @@ openclaw nodes status --connected ### Браузер відкривається, але агент не може приєднатися -Запустіть `googlemeet test-speech` і перевірте повернутий стан Chrome. Якщо він +Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він повідомляє `manualActionRequired: true`, покажіть оператору `manualActionMessage` і припиніть повторні спроби, доки дію в браузері не буде завершено. @@ -1086,31 +1107,27 @@ openclaw nodes status --connected - Увійти в профіль Chrome. - Допустити гостя з облікового запису хоста Meet. - Надати Chrome дозволи на мікрофон/камеру, коли з’являється власний запит дозволу Chrome. -- Закрити або відновити зависле діалогове вікно дозволів Meet. +- Закрити або виправити зависле діалогове вікно дозволів Meet. Не повідомляйте "not signed in" лише тому, що Meet показує "Do you want people to -hear you in the meeting?" Це проміжний екран вибору аудіо в Meet; OpenClaw -натискає **Use microphone** через автоматизацію браузера, коли це можливо, і продовжує -чекати на реальний стан зустрічі. Для резервного варіанта створення лише через браузер OpenClaw -може натиснути **Continue without microphone**, оскільки для створення URL-адреси не потрібен -аудіошлях realtime. +hear you in the meeting?" Це проміжний екран вибору аудіо в Meet; OpenClaw натискає **Use microphone** через автоматизацію браузера, коли це можливо, і продовжує чекати реального стану зустрічі. Для резервного варіанта створення лише через браузер OpenClaw може натиснути **Continue without microphone**, оскільки для створення URL не потрібен аудіошлях `realtime`. ### Не вдається створити зустріч -`googlemeet create` спочатку використовує кінцеву точку Google Meet API `spaces.create`, -коли налаштовано облікові дані OAuth. Без облікових даних OAuth він переходить до резервного -варіанта через браузер закріпленого вузла Chrome. Переконайтеся: +`googlemeet create` спочатку використовує endpoint Google Meet API `spaces.create`, +коли налаштовано облікові дані OAuth. Без облікових даних OAuth він переходить +до резервного варіанта через браузер закріпленого вузла Chrome. Переконайтеся, що: - Для створення через API: налаштовано `oauth.clientId` і `oauth.refreshToken`, або присутні відповідні змінні середовища `OPENCLAW_GOOGLE_MEET_*`. -- Для створення через API: токен оновлення було створено після додавання підтримки - створення. У старіших токенах може бракувати області доступу `meetings.space.created`; повторно виконайте +- Для створення через API: refresh token було отримано після додавання + підтримки створення. У старіших токенів може бракувати області доступу `meetings.space.created`; повторно виконайте `openclaw googlemeet auth login --json` і оновіть конфігурацію плагіна. - Для резервного варіанта через браузер: `defaultTransport: "chrome-node"` і `chromeNode.node` вказують на підключений вузол із `browser.proxy` і `googlemeet.chrome`. -- Для резервного варіанта через браузер: профіль OpenClaw Chrome на цьому вузлі має виконаний вхід - у Google і може відкривати `https://meet.google.com/new`. +- Для резервного варіанта через браузер: профіль OpenClaw Chrome на цьому вузлі авторизований + у Google і може відкрити `https://meet.google.com/new`. - Для резервного варіанта через браузер: повторні спроби повторно використовують наявну вкладку `https://meet.google.com/new` або вкладку запиту облікового запису Google перед відкриттям нової вкладки. Якщо агент перевищив час очікування, повторіть виклик інструмента, а не відкривайте вручну ще одну вкладку Meet. @@ -1121,59 +1138,58 @@ hear you in the meeting?" Це проміжний екран вибору ауд - Для резервного варіанта через браузер: якщо Meet показує "Do you want people to hear you in the meeting?", залиште вкладку відкритою. OpenClaw має натиснути **Use microphone** або, для резервного варіанта лише створення, **Continue without microphone** через автоматизацію - браузера і продовжити очікування згенерованої URL-адреси Meet. Якщо це не вдається, помилка - має згадувати `meet-audio-choice-required`, а не `google-login-required`. + браузера та продовжити чекати згенеровану URL-адресу Meet. Якщо він не може цього зробити, у + помилці має згадуватися `meet-audio-choice-required`, а не `google-login-required`. ### Агент приєднується, але не говорить -Перевірте шлях realtime: +Перевірте шлях `realtime`: ```bash openclaw googlemeet setup openclaw googlemeet doctor ``` -Використовуйте `mode: "realtime"` для прослуховування/зворотного мовлення. `mode: "transcribe"` навмисно -не запускає дуплексний голосовий міст realtime. +Використовуйте `mode: "realtime"` для прослуховування/відповідей. `mode: "transcribe"` навмисно +не запускає двосторонній голосовий міст `realtime`. Також перевірте: -- На хості Gateway доступний ключ постачальника realtime, наприклад +- На хості Gateway доступний ключ провайдера `realtime`, наприклад `OPENAI_API_KEY` або `GEMINI_API_KEY`. -- `BlackHole 2ch` видимий на хості Chrome. +- `BlackHole 2ch` видно на хості Chrome. - `rec` і `play` існують на хості Chrome. -- Мікрофон і динамік Meet спрямовано через шлях віртуального аудіо, який використовує +- Мікрофон і динамік Meet маршрутизуються через шлях віртуального аудіо, який використовує OpenClaw. -`googlemeet doctor [session-id]` виводить сеанс, вузол, стан in-call, -причину ручної дії, підключення постачальника realtime, `realtimeReady`, активність -аудіовходу/аудіовиходу, часові мітки останнього аудіо, лічильники байтів і URL-адресу браузера. +`googlemeet doctor [session-id]` виводить сеанс, вузол, стан у дзвінку, +причину ручної дії, підключення провайдера `realtime`, `realtimeReady`, активність аудіовходу/виходу, часові мітки останнього аудіо, лічильники байтів і URL браузера. Використовуйте `googlemeet status [session-id]`, коли потрібен сирий JSON. Використовуйте -`googlemeet doctor --oauth`, коли потрібно перевірити оновлення Google Meet OAuth -без розкриття токенів; додайте `--meeting` або `--create-space`, коли також потрібне підтвердження Google Meet API. +`googlemeet doctor --oauth`, коли потрібно перевірити оновлення OAuth Google Meet +без розкриття токенів; додайте `--meeting` або `--create-space`, коли також потрібне підтвердження через Google Meet API. -Якщо агент перевищив час очікування і ви бачите, що вкладка Meet уже відкрита, перевірте цю вкладку -без відкриття іншої: +Якщо агент перевищив час очікування і ви вже бачите відкриту вкладку Meet, перевірте цю вкладку +без відкриття нової: ```bash openclaw googlemeet recover-tab openclaw googlemeet recover-tab https://meet.google.com/abc-defg-hij ``` -Еквівалентна дія інструмента — `recover_current_tab`. Вона фокусує і перевіряє +Еквівалентна дія інструмента — `recover_current_tab`. Вона фокусує й перевіряє наявну вкладку Meet на налаштованому вузлі Chrome. Вона не відкриває нову вкладку і не -створює новий сеанс; вона повідомляє про поточне блокування, таке як вхід, допуск, +створює новий сеанс; вона повідомляє про поточне блокування, наприклад вхід, допуск, дозволи або стан вибору аудіо. Команда CLI звертається до налаштованого -Gateway, тому Gateway має бути запущений, а вузол Chrome має бути підключений. +Gateway, тому Gateway має працювати, а вузол Chrome має бути підключений. ### Не проходять перевірки налаштування Twilio -`twilio-voice-call-plugin` не проходить, коли `voice-call` не дозволено або не ввімкнено. +`twilio-voice-call-plugin` не проходить перевірку, коли `voice-call` не дозволено або не ввімкнено. Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте Gateway. -`twilio-voice-call-credentials` не проходить, коли в бекенді Twilio відсутні account -SID, auth token або номер абонента. Установіть їх на хості Gateway: +`twilio-voice-call-credentials` не проходить перевірку, коли в бекенді Twilio бракує account +SID, auth token або номера абонента. Установіть їх на хості Gateway: ```bash export TWILIO_ACCOUNT_SID=AC... @@ -1189,22 +1205,22 @@ openclaw voicecall setup openclaw voicecall smoke ``` -`voicecall smoke` типово перевіряє лише готовність. Щоб виконати dry-run для конкретного номера: +`voicecall smoke` за замовчуванням лише перевіряє готовність. Щоб виконати dry-run для конкретного номера: ```bash openclaw voicecall smoke --to "+15555550123" ``` -Додавайте `--yes` лише тоді, коли ви навмисно хочете здійснити реальний вихідний -виклик-сповіщення: +Додавайте `--yes` лише тоді, коли ви свідомо хочете здійснити реальний вихідний +дзвінок-сповіщення: ```bash openclaw voicecall smoke --to "+15555550123" --yes ``` -### Виклик Twilio починається, але ніколи не входить у зустріч +### Дзвінок Twilio починається, але ніколи не входить у зустріч -Підтвердьте, що подія Meet показує дані телефонного дозвону. Передайте точний номер +Переконайтеся, що подія Meet показує дані для телефонного дозвону. Передайте точний номер для дозвону та PIN або спеціальну послідовність DTMF: ```bash @@ -1214,34 +1230,34 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ --dtmf-sequence ww123456# ``` -Використовуйте початкові `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза +Використовуйте початкові `w` або коми в `--dtmf-sequence`, якщо провайдеру потрібна пауза перед введенням PIN. ## Примітки -Офіційний медіа-API Google Meet орієнтований на отримання, тому для мовлення в +Офіційний медіа-API Google Meet орієнтований на прийом, тому для мовлення в виклик Meet усе ще потрібен шлях учасника. Цей плагін зберігає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонний дозвін. -Режиму Chrome realtime потрібне одне з такого: +Для режиму Chrome `realtime` потрібне одне з такого: -- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw володіє - мостом моделі realtime і передає аудіо 8 кГц G.711 mu-law між цими - командами та вибраним постачальником голосу realtime. -- `chrome.audioBridgeCommand`: зовнішня команда мосту володіє всім локальним +- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує + мостом моделі `realtime` і передає аудіо 8 кГц G.711 mu-law між цими + командами та вибраним провайдером голосу `realtime`. +- `chrome.audioBridgeCommand`: зовнішня команда моста керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона. -Для чистого дуплексного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі +Для чистого двостороннього аудіо маршрутизуйте вивід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний -пристрій BlackHole може повертати в дзвінок відлуння інших учасників. +пристрій BlackHole може повертати голоси інших учасників назад у виклик. -`googlemeet speak` запускає активний аудіоміст realtime для сеансу Chrome. +`googlemeet speak` запускає активний аудіоміст `realtime` для сеансу Chrome. `googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через плагін Voice Call, `leave` також завершує базовий голосовий виклик. ## Пов’язане -- [Плагін Voice call](/uk/plugins/voice-call) +- [Плагін Voice Call](/uk/plugins/voice-call) - [Режим Talk](/uk/nodes/talk) - [Створення плагінів](/uk/plugins/building-plugins)