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::Gemini31ProPreview,
10 ModelId::Gemini31ProPreviewCustomTools,
11 ModelId::Gemini3FlashPreview,
12 ModelId::Gemini3ProPreview,
13 ModelId::GPT5,
14 ModelId::OpenAIGptOss20b,
15 ModelId::ClaudeOpus45,
16 ModelId::ClaudeSonnet46,
17 ModelId::ClaudeOpus41,
18 ModelId::ClaudeSonnet45,
19 ModelId::DeepSeekReasoner,
20 ModelId::XaiGrok4,
21 ModelId::ZaiGlm5,
22 ModelId::OpenRouterGrokCodeFast1,
23 ]
24 }
25
26 pub fn default_orchestrator() -> Self {
28 ModelId::Gemini31ProPreview
29 }
30
31 pub fn default_subagent() -> Self {
33 ModelId::Gemini3FlashPreview
34 }
35
36 pub fn default_orchestrator_for_provider(provider: Provider) -> Self {
38 match provider {
39 Provider::Gemini => ModelId::Gemini31ProPreview,
40 Provider::OpenAI => ModelId::GPT5,
41 Provider::Anthropic => ModelId::ClaudeOpus45,
42 Provider::DeepSeek => ModelId::DeepSeekReasoner,
43 Provider::XAI => ModelId::XaiGrok4,
44 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
45 Provider::Ollama => ModelId::OllamaGptOss20b,
46 Provider::LmStudio => ModelId::LmStudioMetaLlama318BInstruct,
47 Provider::ZAI => ModelId::ZaiGlm5,
48 Provider::Moonshot => ModelId::Gemini31ProPreview, Provider::Minimax => ModelId::MinimaxM25,
50 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
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::DeepSeek => ModelId::DeepSeekChat,
61 Provider::XAI => ModelId::XaiGrok4Code,
62 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
63 Provider::Ollama => ModelId::OllamaQwen317b,
64 Provider::LmStudio => ModelId::LmStudioQwen257BInstruct,
65 Provider::ZAI => ModelId::OllamaGlm5Cloud,
66 Provider::Moonshot => ModelId::Gemini3FlashPreview, Provider::Minimax => ModelId::MinimaxM25,
68 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss20b,
69 }
70 }
71
72 pub fn default_single_for_provider(provider: Provider) -> Self {
74 match provider {
75 Provider::Gemini => ModelId::Gemini31ProPreview,
76 Provider::OpenAI => ModelId::GPT5,
77 Provider::Anthropic => ModelId::ClaudeOpus45,
78 Provider::DeepSeek => ModelId::DeepSeekReasoner,
79 Provider::XAI => ModelId::XaiGrok4,
80 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
81 Provider::Ollama => ModelId::OllamaGptOss20b,
82 Provider::LmStudio => ModelId::LmStudioMetaLlama318BInstruct,
83 Provider::ZAI => ModelId::ZaiGlm5,
84 Provider::Moonshot => ModelId::Gemini31ProPreview, Provider::Minimax => ModelId::MinimaxM25,
86 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
87 }
88 }
89}