# Agent Orchestration Environment Configuration
# Copy this file to .env and fill in your values

# =============================================================================
# API Keys (Required for respective agents)
# =============================================================================

# Anthropic API Key (for Claude Agent SDK)
ANTHROPIC_API_KEY=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

# OpenAI API Key (for OpenAI Agents SDK / Codex)
OPENAI_API_KEY=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

# Google API Key (for Gemini CLI / API)
GOOGLE_API_KEY=AIzaSyBjsSeBecwsiiQUXSMb65sq5jcCBVBpfhM

# =============================================================================
# Database Configuration
# =============================================================================

# SQLite database path (relative to project root)
DATABASE_PATH=data/orchestrator.db

# =============================================================================
# Agent Budgets (Daily Limits)
# =============================================================================

# Claude Code daily limits
CLAUDE_CODE_DAILY_TOKEN_LIMIT=500000
CLAUDE_CODE_DAILY_COST_LIMIT=50.0

# Gemini CLI daily limits
GEMINI_CLI_DAILY_TOKEN_LIMIT=1000000
GEMINI_CLI_DAILY_COST_LIMIT=0.0

# Codex daily limits
CODEX_DAILY_TOKEN_LIMIT=200000
CODEX_DAILY_COST_LIMIT=20.0

# =============================================================================
# Control Loop Configuration
# =============================================================================

# Health check interval in seconds
HEALTH_CHECK_INTERVAL=60

# Maximum auto-prompt attempts before escalating
MAX_AUTO_PROMPT_ATTEMPTS=2

# Stuck detection thresholds (minutes)
STUCK_IDLE_THRESHOLD_MINUTES=10
STUCK_ERROR_THRESHOLD_COUNT=3

# =============================================================================
# Risk Gate Configuration
# =============================================================================

# Default risk level for unclassified actions (low, medium, high)
DEFAULT_RISK_LEVEL=medium

# Approval timeout in seconds (for async handler)
APPROVAL_TIMEOUT_SECONDS=3600

# =============================================================================
# Webhook Configuration (V2 Interrupt Handler)
# =============================================================================

# Webhook URL for approval notifications (optional)
# WEBHOOK_URL=https://hooks.slack.com/services/xxx

# Webhook secret for verification
# WEBHOOK_SECRET=your-secret-here

# Slack channel for notifications
# SLACK_CHANNEL=#agent-approvals

# =============================================================================
# Observability Configuration
# =============================================================================

# AI Observer endpoint (optional)
# AI_OBSERVER_URL=http://localhost:3000

# Token Audit MCP endpoint (optional)
# TOKEN_AUDIT_MCP_URL=http://localhost:8080

# =============================================================================
# Workspace Configuration
# =============================================================================

# Git worktree base path (relative to project root parent)
WORKTREE_BASE_PATH=../

# Protected branches (comma-separated)
PROTECTED_BRANCHES=main,master,prod

# =============================================================================
# Logging Configuration
# =============================================================================

# Log level (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFO

# Log file path (optional, logs to stdout if not set)
# LOG_FILE=logs/orchestrator.log

# Enable secret redaction in logs (highly recommended)
REDACT_SECRETS=true
