vtcode_config/models/model_id/
defaults.rs1use crate::models::Provider;
2
3use super::ModelId;
4
5impl ModelId {
6 pub fn fallback_models() -> Vec<ModelId> {
8 vec![
9 ModelId::Gemini3FlashPreview,
10 ModelId::GPT52,
11 ModelId::GPT5,
12 ModelId::OpenAIGptOss20b,
13 ModelId::ClaudeOpus45,
14 ModelId::ClaudeSonnet46,
15 ModelId::ClaudeOpus41,
16 ModelId::ClaudeSonnet45,
17 ModelId::DeepSeekReasoner,
18 ModelId::ZaiGlm5,
19 ]
20 }
21
22 pub fn default_model() -> Self {
24 ModelId::Gemini3FlashPreview
25 }
26
27 pub fn default_orchestrator() -> Self {
29 ModelId::Gemini31ProPreview
30 }
31
32 pub fn default_subagent() -> Self {
34 ModelId::Gemini3FlashPreview
35 }
36
37 pub fn default_orchestrator_for_provider(provider: Provider) -> Self {
39 match provider {
40 Provider::Gemini => ModelId::Gemini31ProPreview,
41 Provider::OpenAI => ModelId::GPT5,
42 Provider::Anthropic => ModelId::ClaudeOpus45,
43 Provider::Minimax => ModelId::MinimaxM25,
44 Provider::DeepSeek => ModelId::DeepSeekReasoner,
45 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
46 Provider::Moonshot => ModelId::Gemini31ProPreview,
47 Provider::OpenRouter => ModelId::OpenRouterQwen3Coder,
48 Provider::Ollama => ModelId::OllamaGptOss20b,
49 Provider::LmStudio => ModelId::GPT5,
50 Provider::ZAI => ModelId::ZaiGlm5,
51 }
52 }
53
54 pub fn default_subagent_for_provider(provider: Provider) -> Self {
56 match provider {
57 Provider::Gemini => ModelId::Gemini3FlashPreview,
58 Provider::OpenAI => ModelId::GPT5Mini,
59 Provider::Anthropic => ModelId::ClaudeSonnet45,
60 Provider::Minimax => ModelId::MinimaxM25,
61 Provider::DeepSeek => ModelId::DeepSeekChat,
62 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss20b,
63 Provider::Moonshot => ModelId::Gemini3FlashPreview,
64 Provider::OpenRouter => ModelId::OpenRouterQwen3Coder,
65 Provider::Ollama => ModelId::OllamaQwen317b,
66 Provider::LmStudio => ModelId::GPT5Mini,
67 Provider::ZAI => ModelId::OllamaGlm5Cloud,
68 }
69 }
70
71 pub fn default_single_for_provider(provider: Provider) -> Self {
73 match provider {
74 Provider::Gemini => ModelId::Gemini3FlashPreview,
75 Provider::OpenAI => ModelId::GPT5,
76 Provider::Anthropic => ModelId::ClaudeOpus41,
77 Provider::Minimax => ModelId::MinimaxM25,
78 Provider::DeepSeek => ModelId::DeepSeekReasoner,
79 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
80 Provider::Moonshot => ModelId::Gemini3FlashPreview,
81 Provider::OpenRouter => ModelId::OpenRouterQwen3Coder,
82 Provider::Ollama => ModelId::OllamaGptOss20b,
83 Provider::LmStudio => ModelId::GPT5,
84 Provider::ZAI => ModelId::ZaiGlm5,
85 }
86 }
87}