use super::{
EDIT_TOOL_EDIT, EDIT_TOOL_PATCH, ModelCatalogEntry, OPENROUTER_REASONING, PROVIDER_OPENROUTER,
REASONING_HIGH, REASONING_MEDIUM, ReasoningOption,
};
#[allow(clippy::too_many_arguments)]
const fn openrouter_model(
id: &'static str,
display_name: &'static str,
description: &'static str,
context_window: u32,
default_reasoning: &'static str,
supported_reasoning: &'static [ReasoningOption],
supports_images: bool,
supports_structured: bool,
edit_tool: &'static str,
) -> ModelCatalogEntry {
ModelCatalogEntry {
id,
display_name,
description,
provider: PROVIDER_OPENROUTER,
default_reasoning,
supported_reasoning,
context_window,
max_context_window: context_window,
auto_compact_token_limit: context_window.saturating_mul(9) / 10,
supports_compaction: false,
supports_images,
supports_tools: true,
supports_structured,
edit_tool: Some(edit_tool),
hidden: false,
}
}
pub(super) const X_AI_GROK_4_6: ModelCatalogEntry = openrouter_model(
"x-ai/grok-4.6",
"Grok 4.6",
"OpenRouter route for xAI's flagship model for coding and long-running agent workflows.",
500_000,
REASONING_HIGH,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const X_AI_GROK_4_7: ModelCatalogEntry = openrouter_model(
"x-ai/grok-4.7",
"Grok 4.7",
"OpenRouter route for Grok 4.7 (x-ai): 500K-token context, up to 450K output tokens, tool use, image input, reasoning.",
500_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const MOONSHOTAI_KIMI_K3: ModelCatalogEntry = openrouter_model(
"moonshotai/kimi-k3",
"Kimi K3",
"OpenRouter route for Kimi K3 (moonshotai): 1M-token context, up to 943K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const MOONSHOTAI_KIMI_K2_7_CODE: ModelCatalogEntry = openrouter_model(
"moonshotai/kimi-k2.7-code",
"Kimi K2.7 Code",
"OpenRouter route for Kimi K2.7 Code (moonshotai): 262K-token context, up to 235K output tokens, tool use, image input, reasoning.",
262_144,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const MOONSHOTAI_KIMI_K2_6: ModelCatalogEntry = openrouter_model(
"moonshotai/kimi-k2.6",
"Kimi K2.6",
"OpenRouter route for Kimi K2.6 (moonshotai): 262K-token context, up to 235K output tokens, tool use, image input, reasoning.",
262_144,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const ANTHROPIC_CLAUDE_OPUS_5_5: ModelCatalogEntry = openrouter_model(
"anthropic/claude-opus-5.5",
"Claude Opus 5.5",
"OpenRouter route for Claude Opus 5.5 (anthropic): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const ANTHROPIC_CLAUDE_SONNET_5_5: ModelCatalogEntry = openrouter_model(
"anthropic/claude-sonnet-5.5",
"Claude Sonnet 5.5",
"OpenRouter route for Claude Sonnet 5.5 (anthropic): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const ANTHROPIC_CLAUDE_HAIKU_5_5: ModelCatalogEntry = openrouter_model(
"anthropic/claude-haiku-5.5",
"Claude Haiku 5.5",
"OpenRouter route for Claude Haiku 5.5 (anthropic): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const ANTHROPIC_CLAUDE_FABLE_5_1: ModelCatalogEntry = openrouter_model(
"anthropic/claude-fable-5.1",
"Claude Fable 5.1",
"OpenRouter route for Claude Fable 5.1 (anthropic): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const ANTHROPIC_CLAUDE_OPUS_5: ModelCatalogEntry = openrouter_model(
"anthropic/claude-opus-5",
"Claude Opus 5",
"OpenRouter route for Claude Opus 5 (anthropic): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const OPENAI_GPT_6_1_SOL: ModelCatalogEntry = openrouter_model(
"openai/gpt-6.1-sol",
"GPT-6.1 Sol",
"OpenRouter route for GPT-6.1 Sol (openai): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_050_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const OPENAI_GPT_6_SOL: ModelCatalogEntry = openrouter_model(
"openai/gpt-6-sol",
"GPT-6 Sol",
"OpenRouter route for GPT-6 Sol (openai): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_050_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const OPENAI_GPT_6_LUNA: ModelCatalogEntry = openrouter_model(
"openai/gpt-6-luna",
"GPT-6 Luna",
"OpenRouter route for GPT-6 Luna (openai): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_050_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const OPENAI_GPT_6_ASTRA: ModelCatalogEntry = openrouter_model(
"openai/gpt-6-astra",
"GPT-6 Astra",
"OpenRouter route for GPT-6 Astra (openai): 1M-token context, up to 128K output tokens, tool use, image input, reasoning.",
1_050_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_PATCH,
);
pub(super) const GOOGLE_GEMINI_3_8_FLASH: ModelCatalogEntry = openrouter_model(
"google/gemini-3.8-flash",
"Gemini 3.8 Flash",
"OpenRouter route for Gemini 3.8 Flash (google): 1M-token context, up to 65K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const GOOGLE_GEMINI_3_7_FLASH: ModelCatalogEntry = openrouter_model(
"google/gemini-3.7-flash",
"Gemini 3.7 Flash",
"OpenRouter route for Gemini 3.7 Flash (google): 1M-token context, up to 65K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const DEEPSEEK_DEEPSEEK_V4_PRO_0813: ModelCatalogEntry = openrouter_model(
"deepseek/deepseek-v4-pro-0813",
"DeepSeek V4 Pro 0813",
"OpenRouter route for DeepSeek V4 Pro 0813 (deepseek): 1M-token context, up to 393K output tokens, tool use, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
false,
true,
EDIT_TOOL_EDIT,
);
pub(super) const DEEPSEEK_DEEPSEEK_V4_1_FLASH: ModelCatalogEntry = openrouter_model(
"deepseek/deepseek-v4.1-flash",
"DeepSeek V4.1 Flash",
"OpenRouter route for DeepSeek V4.1 Flash (deepseek): 1M-token context, up to 943K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const QWEN_QWEN3_8_MAX_0902: ModelCatalogEntry = openrouter_model(
"qwen/qwen3.8-max-0902",
"Qwen3.8 Max (0902)",
"OpenRouter route for Qwen3.8 Max (0902) (qwen): 1M-token context, up to 131K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const QWEN_QWEN3_8_FLASH: ModelCatalogEntry = openrouter_model(
"qwen/qwen3.8-flash",
"Qwen3.8 Flash",
"OpenRouter route for Qwen3.8 Flash (qwen): 1M-token context, up to 131K output tokens, tool use, image input, reasoning.",
1_000_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const Z_AI_GLM_5_3: ModelCatalogEntry = openrouter_model(
"z-ai/glm-5.3",
"GLM 5.3",
"OpenRouter route for GLM 5.3 (z-ai): 1M-token context, up to 943K output tokens, tool use, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
false,
true,
EDIT_TOOL_EDIT,
);
pub(super) const Z_AI_GLM_5_3_FLASH: ModelCatalogEntry = openrouter_model(
"z-ai/glm-5.3-flash",
"GLM 5.3 Flash",
"OpenRouter route for GLM 5.3 Flash (z-ai): 1M-token context, up to 943K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const XIAOMI_MIMO_V2_6_PRO: ModelCatalogEntry = openrouter_model(
"xiaomi/mimo-v2.6-pro",
"MiMo-V2.6-Pro",
"OpenRouter route for MiMo-V2.6-Pro (xiaomi): 1M-token context, up to 131K output tokens, tool use, image input, reasoning.",
1_050_000,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const MISTRALAI_MISTRAL_LARGE_4_0: ModelCatalogEntry = openrouter_model(
"mistralai/mistral-large-4-0",
"Mistral Large 4",
"OpenRouter route for Mistral Large 4 (mistralai): 1M-token context, up to 262K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);
pub(super) const META_MUSE_SPARK_1_3: ModelCatalogEntry = openrouter_model(
"meta/muse-spark-1.3",
"Muse Spark 1.3",
"OpenRouter route for Muse Spark 1.3 (meta): 1M-token context, up to 943K output tokens, tool use, image input, reasoning.",
1_048_576,
REASONING_MEDIUM,
OPENROUTER_REASONING,
true,
true,
EDIT_TOOL_EDIT,
);