Skip to main content

vtcode_config/models/model_id/
defaults.rs

1use crate::models::Provider;
2
3use super::ModelId;
4
5impl ModelId {
6    /// Get recommended fallback models in order of preference
7    pub fn fallback_models() -> Vec<ModelId> {
8        vec![
9            ModelId::ClaudeSonnet5,
10            ModelId::ClaudeOpus5,
11            ModelId::GPT56Sol,
12            ModelId::Gemini38Flash,
13            ModelId::OpenAIGptOss20b,
14            ModelId::ZaiGlm53,
15        ]
16    }
17
18    /// Get the default model for general use
19    pub(crate) fn default_model() -> Self {
20        ModelId::ClaudeSonnet5
21    }
22
23    /// Get the default orchestrator model (more capable)
24    pub fn default_orchestrator() -> Self {
25        ModelId::ClaudeSonnet5
26    }
27
28    /// Get provider-specific defaults for orchestrator
29    pub fn default_orchestrator_for_provider(provider: Provider) -> Self {
30        match provider {
31            Provider::Gemini => ModelId::Gemini38Flash,
32            Provider::OpenAI => ModelId::GPT56Sol,
33            Provider::Anthropic => ModelId::ClaudeOpus55,
34            Provider::Copilot => ModelId::CopilotAuto,
35            Provider::Minimax => ModelId::MinimaxM3,
36            Provider::MiMo => ModelId::MiMoV26Pro,
37            Provider::Mistral => ModelId::MistralLarge3,
38            Provider::DeepSeek => ModelId::DeepSeekFlash,
39            Provider::Meta => ModelId::MetaMuseSpark13,
40            Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
41            Provider::Moonshot => ModelId::MoonshotKimiK3,
42            Provider::OpenRouter => ModelId::OpenRouterXiaomiMimoV26Pro,
43            Provider::Ollama => ModelId::OllamaGptOss20b,
44            Provider::OllamaCloud => ModelId::OllamaGptOss120bCloud,
45            Provider::LmStudio => ModelId::GPT56Sol,
46            Provider::LlamaCpp => ModelId::LlamaCppGptOss20b,
47            Provider::ZAI => ModelId::ZaiGlm53,
48            Provider::OpenCodeZen => ModelId::ClaudeSonnet5,
49            Provider::OpenCodeGo => ModelId::OpenCodeGoMinimaxM3,
50            Provider::Qwen => ModelId::DeepSeekFlash,
51            Provider::StepFun => ModelId::StepFun37Flash,
52            Provider::Evolink => ModelId::EvolinkGemini31Pro,
53            Provider::XAI => ModelId::XaiGrok47,
54            Provider::NVIDIA => ModelId::NvidiaNemotron3Ultra550bA55b,
55            Provider::MergeGateway => ModelId::MergeGatewayDefaultRouting,
56            Provider::Vercel => ModelId::VercelAnthropicClaudeSonnet5,
57            _ => ModelId::ClaudeSonnet5,
58        }
59    }
60
61    /// Get provider-specific defaults for single agent
62    pub fn default_single_for_provider(provider: Provider) -> Self {
63        match provider {
64            Provider::Gemini => ModelId::Gemini38Flash,
65            Provider::OpenAI => ModelId::GPT56Sol,
66            Provider::Anthropic => ModelId::ClaudeSonnet5,
67            Provider::Copilot => ModelId::CopilotAuto,
68            Provider::Minimax => ModelId::MinimaxM3,
69            Provider::MiMo => ModelId::MiMoV26Pro,
70            Provider::Mistral => ModelId::MistralLarge3,
71            Provider::DeepSeek => ModelId::DeepSeekFlash,
72            Provider::Meta => ModelId::MetaMuseSpark13,
73            Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
74            Provider::Moonshot => ModelId::MoonshotKimiK3,
75            Provider::OpenRouter => ModelId::OpenRouterXiaomiMimoV26Pro,
76            Provider::Ollama => ModelId::OllamaGptOss20b,
77            Provider::OllamaCloud => ModelId::OllamaGptOss120bCloud,
78            Provider::LmStudio => ModelId::GPT56Sol,
79            Provider::LlamaCpp => ModelId::LlamaCppGptOss20b,
80            Provider::ZAI => ModelId::ZaiGlm53,
81            Provider::OpenCodeZen => ModelId::ClaudeSonnet5,
82            Provider::OpenCodeGo => ModelId::OpenCodeGoMinimaxM3,
83            Provider::Qwen => ModelId::DeepSeekFlash,
84            Provider::StepFun => ModelId::StepFun37Flash,
85            Provider::Evolink => ModelId::EvolinkGemini31Pro,
86            Provider::XAI => ModelId::XaiGrok47,
87            Provider::NVIDIA => ModelId::NvidiaNemotron3Ultra550bA55b,
88            Provider::MergeGateway => ModelId::MergeGatewayDefaultRouting,
89            Provider::Vercel => ModelId::VercelAnthropicClaudeSonnet5,
90            _ => ModelId::ClaudeSonnet5,
91        }
92    }
93}