# =============================================================================
# AutoHeal Playwright Python Demo - Environment Configuration
# =============================================================================
# Copy this file to .env and update values as needed.
#
# Legend:
#   [REQUIRED] - Must be set for the application to work
#   [OPTIONAL] - Has a sensible default, can be omitted
#
# Usage: cp .env.example .env

# =============================================================================
# AI Provider Configuration
# =============================================================================
# GROQ is the DEFAULT provider - no need to set AUTOHEAL_AI_PROVIDER
# For other providers, you MUST set AUTOHEAL_AI_PROVIDER explicitly
#
# Provider        | Required Settings
# ----------------|----------------------------------------------------------
# GROQ (default)  | GROQ_API_KEY only (AUTOHEAL_AI_PROVIDER not needed)
# OPENAI          | AUTOHEAL_AI_PROVIDER=OPENAI + OPENAI_API_KEY
# GOOGLE_GEMINI   | AUTOHEAL_AI_PROVIDER=GOOGLE_GEMINI + GEMINI_API_KEY
# ANTHROPIC_CLAUDE| AUTOHEAL_AI_PROVIDER=ANTHROPIC_CLAUDE + ANTHROPIC_API_KEY
# DEEPSEEK        | AUTOHEAL_AI_PROVIDER=DEEPSEEK + DEEPSEEK_API_KEY
# GROK            | AUTOHEAL_AI_PROVIDER=GROK + GROK_API_KEY
# LOCAL_MODEL     | AUTOHEAL_AI_PROVIDER=LOCAL_MODEL (no API key needed)
#
# AUTOHEAL_MODEL is OPTIONAL for ALL providers - each has a sensible default:
#   GROQ:             llama-3.3-70b-versatile
#   OPENAI:           gpt-4o-mini
#   GOOGLE_GEMINI:    gemini-2.0-flash
#   ANTHROPIC_CLAUDE: claude-3-5-sonnet-20241022
#   DEEPSEEK:         deepseek-chat
#   GROK:             grok-beta
#   LOCAL_MODEL:      llama2
# =============================================================================

# -----------------------------------------------------------------------------
# Option 1: GROQ (Default - FREE tier available)
# -----------------------------------------------------------------------------
# [REQUIRED] Get from https://console.groq.com
GROQ_API_KEY=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
# [OPTIONAL] Model override (default: llama-3.3-70b-versatile)
# AUTOHEAL_MODEL=llama-3.3-70b-versatile

# -----------------------------------------------------------------------------
# Option 2: OpenAI
# -----------------------------------------------------------------------------
# [REQUIRED] Uncomment both lines below
# AUTOHEAL_AI_PROVIDER=OPENAI
# OPENAI_API_KEY=your-openai-api-key-here
# [OPTIONAL] Model override (default: gpt-4o-mini)
# AUTOHEAL_MODEL=gpt-4o

# -----------------------------------------------------------------------------
# Option 3: Google Gemini
# -----------------------------------------------------------------------------
# [REQUIRED] Uncomment both lines below
# AUTOHEAL_AI_PROVIDER=GOOGLE_GEMINI
# GEMINI_API_KEY=your-gemini-api-key-here
# [OPTIONAL] Model override (default: gemini-2.0-flash)
# AUTOHEAL_MODEL=gemini-2.0-flash

# -----------------------------------------------------------------------------
# Option 4: Anthropic Claude
# -----------------------------------------------------------------------------
# [REQUIRED] Uncomment both lines below
# AUTOHEAL_AI_PROVIDER=ANTHROPIC_CLAUDE
# ANTHROPIC_API_KEY=your-anthropic-api-key-here
# [OPTIONAL] Model override (default: claude-3-5-sonnet-20241022)
# AUTOHEAL_MODEL=claude-3-5-sonnet-20241022

# -----------------------------------------------------------------------------
# Option 5: DeepSeek
# -----------------------------------------------------------------------------
# [REQUIRED] Uncomment both lines below
# AUTOHEAL_AI_PROVIDER=DEEPSEEK
# DEEPSEEK_API_KEY=your-deepseek-api-key-here
# [OPTIONAL] Model override (default: deepseek-chat)
# AUTOHEAL_MODEL=deepseek-chat

# -----------------------------------------------------------------------------
# Option 6: Grok
# -----------------------------------------------------------------------------
# [REQUIRED] Uncomment both lines below
# AUTOHEAL_AI_PROVIDER=GROK
# GROK_API_KEY=your-grok-api-key-here
# [OPTIONAL] Model override (default: grok-beta)
# AUTOHEAL_MODEL=grok-beta

# -----------------------------------------------------------------------------
# Option 7: Local LLM (Ollama) - No API key required!
# -----------------------------------------------------------------------------
# Setup:
#   1. Install Ollama: https://ollama.com/download
#   2. Pull a model:   ollama pull llama3
#   3. Uncomment the line below
#
# [REQUIRED] Uncomment to use local model
# AUTOHEAL_AI_PROVIDER=LOCAL_MODEL
# [OPTIONAL] API URL (default: http://localhost:11434/v1/chat/completions)
# AUTOHEAL_API_URL=http://localhost:11434/v1/chat/completions
# [OPTIONAL] Model override (default: llama2)
# AUTOHEAL_MODEL=llama3
#
# Popular Ollama models:
#   llama2, llama3    - General purpose
#   codellama         - Code understanding
#   mistral           - Fast and efficient
#   llava, bakllava   - Vision-capable

# =============================================================================
# AI Configuration (All Optional - have sensible defaults)
# =============================================================================
# [OPTIONAL] AI request timeout in milliseconds (default: 30000)
# AUTOHEAL_AI_TIMEOUT=30000

# [OPTIONAL] Maximum retry attempts for failed AI calls (default: 3)
# AUTOHEAL_AI_MAX_RETRIES=3

# [OPTIONAL] Enable screenshot-based visual element detection (default: true)
# AUTOHEAL_AI_VISUAL_ANALYSIS_ENABLED=true

# [OPTIONAL] Temperature for DOM analysis (default: 0.1, range: 0.0-2.0)
# AUTOHEAL_AI_TEMPERATURE_DOM=0.1

# [OPTIONAL] Maximum tokens for DOM analysis response (default: 2000)
# AUTOHEAL_AI_MAX_TOKENS_DOM=2000

# =============================================================================
# Cache Configuration (All Optional)
# =============================================================================
# [OPTIONAL] Cache type (default: CAFFEINE)
# Options: CAFFEINE (in-memory), PERSISTENT_FILE (disk), REDIS, HYBRID
# AUTOHEAL_CACHE_TYPE=CAFFEINE

# [OPTIONAL] Maximum cached selector mappings (default: 10000)
# AUTOHEAL_CACHE_MAXIMUM_SIZE=10000

# [OPTIONAL] Cache expiry after write in ms (default: 86400000 = 24 hours)
# AUTOHEAL_CACHE_EXPIRE_AFTER_WRITE_MS=86400000

# [OPTIONAL] Cache expiry after access in ms (default: 7200000 = 2 hours)
# AUTOHEAL_CACHE_EXPIRE_AFTER_ACCESS_MS=7200000

# [OPTIONAL] Enable cache statistics (default: true)
# AUTOHEAL_CACHE_RECORD_STATS=true

# =============================================================================
# Performance Configuration (All Optional)
# =============================================================================
# [OPTIONAL] Concurrent healing threads (default: 4)
# AUTOHEAL_PERFORMANCE_THREAD_POOL_SIZE=4

# [OPTIONAL] Element location timeout in ms (default: 45000)
# AUTOHEAL_PERFORMANCE_ELEMENT_TIMEOUT_MS=45000

# [OPTIONAL] Enable performance metrics (default: true)
# AUTOHEAL_PERFORMANCE_ENABLE_METRICS=true

# [OPTIONAL] Execution strategy (default: SMART_SEQUENTIAL)
# Options: SMART_SEQUENTIAL, DOM_ONLY, VISUAL_FIRST, SEQUENTIAL, PARALLEL
# AUTOHEAL_PERFORMANCE_EXECUTION_STRATEGY=SMART_SEQUENTIAL

# =============================================================================
# Resilience Configuration (All Optional)
# =============================================================================
# [OPTIONAL] Max retry attempts (default: 3)
# AUTOHEAL_RESILIENCE_RETRY_MAX_ATTEMPTS=3

# [OPTIONAL] Retry delay in ms (default: 1000)
# AUTOHEAL_RESILIENCE_RETRY_DELAY_MS=1000

# [OPTIONAL] Circuit breaker failure threshold (default: 5)
# AUTOHEAL_RESILIENCE_CIRCUIT_BREAKER_THRESHOLD=5

# [OPTIONAL] Circuit breaker timeout in ms (default: 300000 = 5 minutes)
# AUTOHEAL_RESILIENCE_CIRCUIT_BREAKER_TIMEOUT_MS=300000

# =============================================================================
# Reporting Configuration (All Optional)
# =============================================================================
# [OPTIONAL] Enable healing reports (default: true)
# AUTOHEAL_REPORTING_ENABLED=true

# [OPTIONAL] Generate HTML reports (default: true)
# AUTOHEAL_REPORTING_GENERATE_HTML=true

# [OPTIONAL] Generate JSON reports (default: true)
# AUTOHEAL_REPORTING_GENERATE_JSON=true

# [OPTIONAL] Console logging (default: true)
# AUTOHEAL_REPORTING_CONSOLE_LOGGING=true

# [OPTIONAL] Report output directory (default: ./autoheal-reports)
# AUTOHEAL_REPORTING_OUTPUT_DIRECTORY=./autoheal-reports

# =============================================================================
# Browser Configuration (Demo-specific, All Optional)
# =============================================================================
# [OPTIONAL] Run headless (default: true)
# BROWSER_HEADLESS=true

# [OPTIONAL] Slow down operations in ms (default: 100)
# BROWSER_SLOW_MO=100

# [OPTIONAL] Viewport dimensions (default: 1920x1080)
# BROWSER_VIEWPORT_WIDTH=1920
# BROWSER_VIEWPORT_HEIGHT=1080

# =============================================================================
# Test Credentials (Demo-specific, Optional)
# =============================================================================
# [OPTIONAL] SauceDemo credentials (https://www.saucedemo.com)
# TEST_USERNAME=standard_user
# TEST_PASSWORD=secret_sauce

# =============================================================================
# Debug Configuration (Optional)
# =============================================================================
# [OPTIONAL] Enable detailed logging (default: false)
# AUTOHEAL_DEBUG=false