Навык: Google Workspace
google-workspace — встроенный навык Велеса для работы с сервисами Google: Gmail, календарём, диском, контактами, таблицами и документами.
Навык перенесён из Hermes Agent и адаптирован под хранилище секретов Велеса. Файл клиента Google, токен доступа и временное состояние авторизации сохраняются не открытыми файлами, а в зашифрованном локальном хранилище.
Когда использовать
Навык подходит, когда Велесу нужно:- найти или прочитать письма в Gmail;
- отправить ответ после подтверждения пользователя;
- посмотреть или создать событие в календаре Google;
- найти, загрузить, скачать, переместить в корзину или открыть доступ к файлам на диске Google;
- прочитать или обновить таблицу Google;
- создать, прочитать или дополнить документ Google;
- найти контакт в адресной книге Google.
Что входит в навык
В каталогеveles/skills/google-workspace/ находятся:
SKILL.md— инструкция для Велеса;scripts/setup.py— пошаговая настройка доступа;scripts/google_api.py— единый командный интерфейс к сервисам Google;scripts/gws_bridge.py— мост для внешней программыgws;scripts/google_secrets.py— работа с зашифрованными секретами Велеса;references/gmail-search-syntax.md— справка по поисковым операторам Gmail.
google_api.py сначала пытается использовать gws, если она установлена. Если gws нет, он работает через библиотеки Google для Python.
Первичная настройка
Пользователю нужен проект Google Cloud, включённые интерфейсы Gmail, Calendar, Drive, Sheets, Docs и People, а также файл клиента OAuth 2.0 типа “Desktop app”. Удобная команда для настройки:skills.google-workspace.google_client_secret_json— файл клиента Google;skills.google-workspace.google_token_json— токен Google;skills.google-workspace.google_oauth_pending_json— временное состояние авторизации до обмена кода на токен.
VELES_SECRETS_MASTER_KEY. Если ключ не задан, скрипт настройки остановится с ошибкой и объяснит, что нужно настроить главный ключ секретов.
Использование
Удобная команда для работы:Правила безопасности
Велес должен получить явное подтверждение пользователя перед действиями, которые меняют внешние данные:- отправка писем и ответов;
- создание или удаление событий календаря;
- удаление файлов с диска Google;
- выдача доступа к файлам;
- изменение таблиц и документов.
Частые проблемы
NOT_AUTHENTICATED означает, что настройка ещё не завершена или в секретах нет токена Google. Запустите setup.py --check, затем повторите шаги авторизации.
REFRESH_FAILED обычно означает, что токен отозван или устарел. Нужно заново получить ссылку авторизации и обменять новый код.
HttpError 403: Insufficient Permission означает, что текущему токену не хватает разрешений. Обычно помогает setup.py --revoke и повторная авторизация с нужным набором сервисов.
HttpError 403: Access Not Configured означает, что нужный интерфейс Google не включён в проекте Google Cloud.
ModuleNotFoundError означает, что не установлены библиотеки Google для Python. Для локальной установки можно использовать:
