ai-dispatch 10.5.1

Multi-AI CLI team orchestrator
// Static agent profiles and model catalog rows (live-audit refreshed 2026-08-05).
// Exports: AGENT_PROFILES, AGENT_MODELS, AgentModel
// Deps: crate::types::AgentKind

use crate::types::AgentKind;

pub const AGENT_PROFILES: &[(AgentKind, &str, &str, &str, bool)] = &[
    (
        AgentKind::Gemini,
        "Research, coding, web search, file editing",
        "$0.10-$10/M blended",
        "research, explain, implement, create, analyze, build",
        true,
    ),
    (
        AgentKind::Antigravity,
        "Research, coding, web search, file editing with Antigravity CLI",
        "free (Google One / Gemini Code Assist) or BYOK",
        "research, explain, implement, create, analyze, build",
        true,
    ),
    (
        AgentKind::Qwen,
        "Research, coding with Qwen3-Coder models",
        "free (OAuth) or Alibaba Cloud subscription",
        "implement, refactor, research, explain",
        true,
    ),
    (
        AgentKind::Codex,
        "Complex implementation, multi-file refactors, test suites",
        "$0.10-$8/M blended",
        "implement, create, build, refactor, test",
        true,
    ),
    (
        AgentKind::Copilot,
        "General coding, repo navigation, tool-assisted implementation",
        "subscription",
        "implement, build, refactor, test, explain, debug",
        true,
    ),
    (
        AgentKind::OpenCode,
        "Simple edits, renames, type annotations, quick fixes",
        "free-$2/M blended",
        "rename, change, update, fix typo, add type",
        true,
    ),
    (
        AgentKind::Kilo,
        "Simple edits, renames, type annotations (free tier)",
        "free",
        "rename, change, update, fix typo, add type",
        true,
    ),
    (
        AgentKind::MiMoCode,
        "Coding via Xiaomi MiMo Code CLI (opencode-family)",
        "free / key-store",
        "implement, change, update, refactor, add type",
        true,
    ),
    (
        AgentKind::Cursor,
        "General coding, strong model selection, frontend",
        "$20/mo subscription",
        "implement, create, build, refactor, ui, frontend, css",
        true,
    ),
    (
        AgentKind::Droid,
        "Complex implementation, multi-file refactors, debugging",
        "$3-$15/M blended",
        "implement, create, build, refactor, test, debug",
        true,
    ),
    (
        AgentKind::Oz,
        "Complex implementation, multi-file refactors (Warp)",
        "Warp subscription",
        "implement, create, build, refactor, test",
        true,
    ),
    (
        AgentKind::Claude,
        "General coding, review, refactoring, research",
        "$1-$75/M blended",
        "implement, review, refactor, explain, research, test",
        true,
    ),
];

pub struct AgentModel {
    pub agent: AgentKind,
    pub model: &'static str,
    pub input_per_m: f64,
    pub output_per_m: f64,
    pub tier: &'static str,
    pub description: &'static str,
    pub capability: f64,
}

/// Catalog of defaults and routed tiers only — not a full provider dump.
pub const AGENT_MODELS: &[AgentModel] = &[
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.6-sol", input_per_m: 2.5, output_per_m: 15.0, tier: "premium", description: "Configured default (ChatGPT)", capability: 9.7 },
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.6-terra", input_per_m: 2.5, output_per_m: 15.0, tier: "premium", description: "Upgrade target of gpt-5.4", capability: 9.5 },
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.6-luna", input_per_m: 0.4, output_per_m: 1.6, tier: "cheap", description: "Upgrade target of gpt-5.4-mini", capability: 7.2 },
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.5", input_per_m: 2.5, output_per_m: 15.0, tier: "premium", description: "Latest, best quality", capability: 9.6 },
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.4", input_per_m: 2.5, output_per_m: 15.0, tier: "premium", description: "Reliable, good quality", capability: 9.3 },
    AgentModel { agent: AgentKind::Codex, model: "gpt-5.4-mini", input_per_m: 0.4, output_per_m: 1.6, tier: "cheap", description: "Balanced cost/quality", capability: 7.0 },
    AgentModel { agent: AgentKind::Gemini, model: "flash", input_per_m: 0.30, output_per_m: 2.50, tier: "cheap", description: "(version selected by gemini CLI)", capability: 8.0 },
    AgentModel { agent: AgentKind::Gemini, model: "pro", input_per_m: 1.25, output_per_m: 10.0, tier: "premium", description: "(version selected by gemini CLI)", capability: 9.0 },
    AgentModel { agent: AgentKind::Gemini, model: "flash-lite", input_per_m: 0.10, output_per_m: 0.40, tier: "cheap", description: "(version selected by gemini CLI)", capability: 6.5 },
    AgentModel { agent: AgentKind::Gemini, model: "gemini-3.1-pro-preview", input_per_m: 1.25, output_per_m: 10.0, tier: "premium", description: "Gemini 3.1 Pro (preview pricing)", capability: 9.0 },
    AgentModel { agent: AgentKind::Gemini, model: "gemini-3-flash-preview", input_per_m: 0.30, output_per_m: 2.50, tier: "cheap", description: "Gemini 3 Flash (preview pricing)", capability: 8.0 },
    AgentModel { agent: AgentKind::Gemini, model: "gemini-3-flash-lite-preview", input_per_m: 0.10, output_per_m: 0.40, tier: "cheap", description: "Gemini 3 Flash Lite (preview pricing)", capability: 6.5 },
    AgentModel { agent: AgentKind::Gemini, model: "gemini-2.5-flash", input_per_m: 0.30, output_per_m: 2.50, tier: "cheap", description: "Legacy 2.5 Flash (historical tasks)", capability: 7.3 },
    AgentModel { agent: AgentKind::Gemini, model: "gemini-2.5-pro", input_per_m: 1.25, output_per_m: 10.0, tier: "premium", description: "Legacy 2.5 Pro (historical tasks)", capability: 7.8 },
    AgentModel { agent: AgentKind::Antigravity, model: "gemini-3.6-flash-medium", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Flash medium (Google One / BYOK)", capability: 8.0 },
    AgentModel { agent: AgentKind::Antigravity, model: "gemini-3.1-pro-high", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Pro high (Google One / BYOK)", capability: 9.0 },
    AgentModel { agent: AgentKind::Antigravity, model: "claude-sonnet-4-6", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Claude Sonnet 4.6 via agy", capability: 8.5 },
    AgentModel { agent: AgentKind::Qwen, model: "coder-model", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Default Qwen Code model", capability: 7.4 },
    AgentModel { agent: AgentKind::OpenCode, model: "opencode/glm-5.2", input_per_m: 0.38, output_per_m: 1.98, tier: "cheap", description: "Paid, good quality", capability: 6.8 },
    AgentModel { agent: AgentKind::OpenCode, model: "opencode/kimi-k2.6", input_per_m: 0.45, output_per_m: 2.20, tier: "cheap", description: "Paid, good quality", capability: 6.3 },
    AgentModel { agent: AgentKind::OpenCode, model: "opencode/deepseek-v4-flash-free", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Free tier", capability: 5.0 },
    AgentModel { agent: AgentKind::OpenCode, model: "opencode/nemotron-3-ultra-free", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Free tier", capability: 4.3 },
    AgentModel { agent: AgentKind::OpenCode, model: "opencode/mimo-v2.5-free", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Free tier", capability: 4.3 },
    AgentModel { agent: AgentKind::Kilo, model: "kilo/kilo-auto/free", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "Free auto routing", capability: 3.8 },
    AgentModel { agent: AgentKind::MiMoCode, model: "mimo/mimo-auto", input_per_m: 0.0, output_per_m: 0.0, tier: "free", description: "MiMo Code (auto model)", capability: 3.8 },
    AgentModel { agent: AgentKind::Cursor, model: "auto", input_per_m: 0.0, output_per_m: 0.0, tier: "cheap", description: "CLI default auto routing", capability: 7.0 },
    AgentModel { agent: AgentKind::Cursor, model: "composer-2.5", input_per_m: 0.50, output_per_m: 2.50, tier: "standard", description: "Composer 2.5 frontier coding", capability: 8.5 },
    AgentModel { agent: AgentKind::Cursor, model: "gpt-5.4-high", input_per_m: 0.0, output_per_m: 0.0, tier: "premium", description: "GPT-5.4 High, premium pool", capability: 9.0 },
    AgentModel { agent: AgentKind::Codebuff, model: "auto", input_per_m: 0.0, output_per_m: 0.0, tier: "standard", description: "SDK-managed pricing", capability: 6.8 },
    AgentModel { agent: AgentKind::Droid, model: "claude-opus-5", input_per_m: 15.0, output_per_m: 75.0, tier: "premium", description: "CLI default", capability: 9.5 },
    AgentModel { agent: AgentKind::Droid, model: "sonnet", input_per_m: 3.0, output_per_m: 15.0, tier: "standard", description: "Balanced cost/quality", capability: 8.5 },
    AgentModel { agent: AgentKind::Droid, model: "opus", input_per_m: 15.0, output_per_m: 75.0, tier: "premium", description: "Strongest reasoning", capability: 9.5 },
    AgentModel { agent: AgentKind::Droid, model: "haiku", input_per_m: 0.25, output_per_m: 1.25, tier: "cheap", description: "Fast, simple tasks", capability: 5.8 },
    AgentModel { agent: AgentKind::Oz, model: "auto", input_per_m: 0.0, output_per_m: 0.0, tier: "standard", description: "Warp auto routing (default)", capability: 8.0 },
    AgentModel { agent: AgentKind::Oz, model: "auto-efficient", input_per_m: 0.0, output_per_m: 0.0, tier: "cheap", description: "Warp efficient auto", capability: 6.5 },
    AgentModel { agent: AgentKind::Oz, model: "auto-genius", input_per_m: 0.0, output_per_m: 0.0, tier: "premium", description: "Warp genius auto", capability: 9.0 },
    AgentModel { agent: AgentKind::Claude, model: "claude-opus-5", input_per_m: 15.0, output_per_m: 75.0, tier: "premium", description: "Canonical opus-5 (probe)", capability: 9.5 },
    AgentModel { agent: AgentKind::Claude, model: "sonnet", input_per_m: 3.0, output_per_m: 15.0, tier: "standard", description: "Balanced coding and review", capability: 8.8 },
    AgentModel { agent: AgentKind::Claude, model: "opus", input_per_m: 15.0, output_per_m: 75.0, tier: "premium", description: "Best quality", capability: 9.4 },
    AgentModel { agent: AgentKind::Claude, model: "haiku", input_per_m: 0.8, output_per_m: 4.0, tier: "cheap", description: "Fastest, lower-cost option", capability: 6.2 },
];