# ============================================
# LettaBot Configuration
# ============================================

# Letta API Key (from app.letta.com)
LETTA_API_KEY=your_letta_api_key

# Working directory for agent workspace
# WORKING_DIR=/tmp/lettabot

# Persistent data directory override (agent store, cron jobs, logs)
# DATA_DIR=/absolute/path/to/lettabot-data

# Custom system prompt (optional)
# SYSTEM_PROMPT=You are a helpful assistant...

# Allowed tools (comma-separated)
# ALLOWED_TOOLS=Read,Glob,Grep,Task,web_search,conversation_search

# Disallowed tools (comma-separated)
# Default blocks plan-mode interactive tools that can stall headless agents
# DISALLOWED_TOOLS=EnterPlanMode,ExitPlanMode

# ============================================
# Telegram (required: at least one channel)
# ============================================
# Get token from @BotFather on Telegram
TELEGRAM_BOT_TOKEN=your_telegram_bot_token

# DM access policy: pairing (default), allowlist, open
# - pairing: Unknown senders get a code, must be approved via CLI
# - allowlist: Only users in TELEGRAM_ALLOWED_USERS can message
# - open: Anyone can message
# TELEGRAM_DM_POLICY=pairing

# Restrict to specific Telegram user IDs (comma-separated)
# Used when dmPolicy is 'allowlist', or as pre-approved users for 'pairing'
# TELEGRAM_ALLOWED_USERS=123456789,987654321

# ============================================
# Slack (optional)
# ============================================
# Get tokens from api.slack.com/apps
# Bot Token: xoxb-... (OAuth & Permissions)
# App Token: xapp-... (Socket Mode, enable in app settings)

# SLACK_BOT_TOKEN=xoxb-your-bot-token
# SLACK_APP_TOKEN=xapp-your-app-token

# Restrict to specific Slack user IDs (e.g., U01234567)
# SLACK_ALLOWED_USERS=U01234567,U98765432

# ============================================
# WhatsApp (optional)
# ============================================
# Enable WhatsApp (will show QR code on first run)
# WHATSAPP_ENABLED=true

# ============================================
# Signal (optional)
# ============================================
# Requires signal-cli: brew install signal-cli
# Link with: signal-cli link -n "LettaBot" (scan QR in Signal app)

# Your Signal phone number (E.164 format)
# SIGNAL_PHONE_NUMBER=+15551234567

# Path to signal-cli binary (default: signal-cli)
# SIGNAL_CLI_PATH=signal-cli

# HTTP daemon settings (default: 127.0.0.1:8090)
# SIGNAL_HTTP_HOST=127.0.0.1
# SIGNAL_HTTP_PORT=8090

# DM access policy: pairing (default), allowlist, open
# - pairing: Unknown senders get a code, must be approved via CLI
# - allowlist: Only users in SIGNAL_ALLOWED_USERS can message
# - open: Anyone can message
# SIGNAL_DM_POLICY=pairing

# Restrict to specific phone numbers (used with allowlist, or pre-approved for pairing)
# SIGNAL_ALLOWED_USERS=+15559876543,+15551112222

# Enable/disable Note to Self messages (default: true)
# SIGNAL_SELF_CHAT_MODE=true

# ============================================
# Polling (system-level background checks)
# ============================================
# Polls every minute by default for new emails, etc.
# POLLING_INTERVAL_MS=60000

# Gmail - requires gog CLI
# Install: brew install steipete/tap/gogcli
# Setup: gog auth add you@gmail.com --services gmail
# GMAIL_ACCOUNT=you@gmail.com

# Session storage path
# WHATSAPP_SESSION_PATH=./data/whatsapp-session

# Restrict to specific phone numbers (with country code)
# WHATSAPP_ALLOWED_USERS=+15551234567,+15559876543

# ============================================
# Cron Jobs (optional)
# ============================================
# Enable scheduled tasks
# CRON_ENABLED=true

# ============================================
# Memory Filesystem (optional)
# ============================================
# Enable memory filesystem (git-backed context repository)
# Syncs agent memory blocks to local files
# LETTABOT_MEMFS=true

# ============================================
# Heartbeat (optional)
# ============================================
# Explicit heartbeat toggle
# HEARTBEAT_ENABLED=true
#
# Heartbeat interval in minutes (set to enable heartbeat)
# Agent checks HEARTBEAT.md for tasks. Responds HEARTBEAT_OK if nothing to do.
# HEARTBEAT_INTERVAL_MIN=30

# Delivery target (format: channel:chatId). Defaults to last messaged chat.
# HEARTBEAT_TARGET=telegram:123456789

# Custom heartbeat prompt (optional)
# HEARTBEAT_PROMPT=Read HEARTBEAT.md if it exists. If nothing needs attention, reply HEARTBEAT_OK.

# ============================================
# Gmail Integration (optional)
# ============================================
# GMAIL_ENABLED=true
# GMAIL_WEBHOOK_PORT=8788
# GMAIL_WEBHOOK_TOKEN=your_webhook_secret
# GMAIL_CLIENT_ID=your_client_id.apps.googleusercontent.com
# GMAIL_CLIENT_SECRET=your_client_secret
# GMAIL_REFRESH_TOKEN=your_refresh_token
# GMAIL_TELEGRAM_USER=123456789

# ============================================
# Voice Memos / TTS (optional)
# ============================================
# TTS provider: "elevenlabs" (default) or "openai"
# TTS_PROVIDER=elevenlabs

# ElevenLabs (default provider)
# ELEVENLABS_API_KEY=sk_your_elevenlabs_key
# ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM
# ELEVENLABS_MODEL_ID=eleven_multilingual_v2

# OpenAI TTS (uses OPENAI_API_KEY from above)
# OPENAI_TTS_VOICE=alloy
# OPENAI_TTS_MODEL=tts-1

# ============================================
# API Server (for Docker/CLI integration)
# ============================================
# API key for CLI authentication (auto-generated if not set)
# Check bot server logs on first run to see the generated key
# LETTABOT_API_KEY=your-secret-key-here

# API server URL (for CLI when bot runs in Docker)
# LETTABOT_API_URL=http://localhost:8080

# API server port (default: 8080)
# PORT=8080

# API server bind address (default: 127.0.0.1 for security)
# Use 0.0.0.0 in Docker to expose on all interfaces
# API_HOST=127.0.0.1

# CORS allowed origin (default: same-origin only)
# Use '*' to allow all origins (not recommended for production)
# API_CORS_ORIGIN=*
