//! # Full-Stack: Agent with LLM Routing
//!
//! Demonstrates agent execution with intelligent LLM provider selection.
//!
//! ## What This Example Shows
//! - Registering an agent
//! - Routing LLM requests to optimal providers
//! - Cost tracking during execution
//! - Handling budget limits
//!
//! ## Run
//! ```bash
//! cargo run --example 01-agent-with-routing
//! ```

fn main() {
    println!("=== Full-Stack: Agent with LLM Routing ===\n");

    // Step 1: Initialize agent
    println!("Step 1: Initialize Agent");
    println!("  ID: developer-001");
    println!("  Role: developer");
    println!("  Provider: auto-select\n");

    // Step 2: Define routing rules
    println!("Step 2: LLM Provider Selection");
    println!("  Task type: code_generation");
    println!("  Primary: Claude Opus ($3/1M tokens)");
    println!("  Fallback: GPT-4 ($10/1M tokens)");
    println!("  Cheap: Ollama (free)\n");

    // Step 3: Submit task
    println!("Step 3: Submit Task");
    println!("  Task: Implement authentication module");
    println!("  Input tokens: 1,500");
    println!("  Output tokens: 800");
    println!("  Total tokens: 2,300\n");

    // Step 4: Route and execute
    println!("Step 4: Provider Selection");
    println!("  Budget remaining: $250/month");
    println!("  Selected provider: Claude (best quality)");
    println!("  Estimated cost: $0.18\n");

    // Step 5: Track costs
    println!("Step 5: Execution & Cost Tracking");
    println!("  Provider: Claude");
    println!("  Input cost: $0.045 (1,500 * $3 / 1M)");
    println!("  Output cost: $0.024 (800 * $3 / 1M)");
    println!("  Total cost: $0.069");
    println!("  Remaining budget: $249.93\n");

    // Step 6: Task completion
    println!("Step 6: Task Completion");
    println!("  Status: ✓ Success");
    println!("  Duration: 2.5s");
    println!("  Quality: Excellent");
    println!("  Cost efficiency: 0.72 tokens/$\n");

    // Step 7: Summary
    println!("=== Summary ===");
    println!("✓ Task completed successfully");
    println!("✓ Budget optimized with provider selection");
    println!("✓ Cost tracking enabled for reporting");
    println!("✓ Agent learning updated");
}
