Implements on-demand Google tools (not adapter) for email and calendar access via OAuth2. Features: - OAuth2 user consent flow with automatic token refresh - 3 Gmail tools: send_email, read_emails, get_email - 3 Calendar tools: read_calendar, create_calendar_event, search_calendar - Lazy loading pattern for Google clients - Secure token storage with file permissions - Browser-based setup: python bot_runner.py --setup-google Architecture: - Tools-only approach (zero API calls when not in use) - User-initiated actions only (no continuous polling) - MIME message creation for emails with threading support - HTML to text conversion for email parsing - ISO 8601 timestamp handling for calendar events Files added: - google_tools/oauth_manager.py: OAuth2 flow and token management - google_tools/gmail_client.py: Gmail API wrapper - google_tools/calendar_client.py: Calendar API wrapper - google_tools/utils.py: Email/MIME helpers - config/scheduled_tasks.yaml: Example scheduled tasks config Files modified: - tools.py: Added 6 Google tool handlers with lazy initialization - bot_runner.py: Added --setup-google command for OAuth authorization - requirements.txt: Added Google API dependencies - .gitignore: Added google_credentials.yaml and google_oauth_token.json Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
26 lines
457 B
Plaintext
26 lines
457 B
Plaintext
# Core dependencies
|
|
watchdog>=3.0.0
|
|
anthropic>=0.40.0
|
|
requests>=2.31.0
|
|
|
|
# Hybrid search dependencies
|
|
fastembed>=0.7.0
|
|
usearch>=2.23.0
|
|
numpy>=2.0.0
|
|
|
|
# Adapter dependencies
|
|
pyyaml>=6.0.1
|
|
|
|
# Slack adapter (Socket Mode)
|
|
slack-bolt>=1.18.0
|
|
slack-sdk>=3.23.0
|
|
|
|
# Telegram adapter
|
|
python-telegram-bot>=20.7
|
|
|
|
# Google API dependencies (Gmail and Calendar)
|
|
google-auth>=2.23.0
|
|
google-auth-oauthlib>=1.1.0
|
|
google-auth-httplib2>=0.1.1
|
|
google-api-python-client>=2.108.0
|