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::CommandCode,
"General coding, multi-file implementation, model-routing across providers",
"commandcode.ai subscription / credits",
"implement, create, build, refactor, test, explain",
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,
),
(
AgentKind::Grok,
"General coding via Grok CLI",
"unknown",
"implement, explain, refactor, research",
false,
),
];
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,
}
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::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 },
AgentModel { agent: AgentKind::Grok, model: "grok-4.5", input_per_m: 0.0, output_per_m: 0.0, tier: "unknown", description: "CLI default (price unknown)", capability: 8.0 },
];