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::Gemini25FlashPreview,
10 ModelId::Gemini25Pro,
11 ModelId::GPT5,
12 ModelId::OpenAIGptOss20b,
13 ModelId::ClaudeOpus45,
14 ModelId::ClaudeOpus41,
15 ModelId::ClaudeSonnet45,
16 ModelId::DeepSeekReasoner,
17 ModelId::XaiGrok4,
18 ModelId::ZaiGlm46,
19 ModelId::OpenRouterGrokCodeFast1,
20 ]
21 }
22
23 pub fn default_orchestrator() -> Self {
25 ModelId::Gemini25Pro
26 }
27
28 pub fn default_subagent() -> Self {
30 ModelId::Gemini25FlashPreview
31 }
32
33 pub fn default_orchestrator_for_provider(provider: Provider) -> Self {
35 match provider {
36 Provider::Gemini => ModelId::Gemini25Pro,
37 Provider::OpenAI => ModelId::GPT5,
38 Provider::Anthropic => ModelId::ClaudeOpus45,
39 Provider::DeepSeek => ModelId::DeepSeekReasoner,
40 Provider::XAI => ModelId::XaiGrok4,
41 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
42 Provider::Ollama => ModelId::OllamaGptOss20b,
43 Provider::LmStudio => ModelId::LmStudioMetaLlama318BInstruct,
44 Provider::ZAI => ModelId::ZaiGlm46,
45 Provider::Moonshot => ModelId::OpenRouterGrokCodeFast1,
46 Provider::Minimax => ModelId::MinimaxM21,
47 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
48 }
49 }
50
51 pub fn default_subagent_for_provider(provider: Provider) -> Self {
53 match provider {
54 Provider::Gemini => ModelId::Gemini25FlashPreview,
55 Provider::OpenAI => ModelId::GPT5Mini,
56 Provider::Anthropic => ModelId::ClaudeSonnet45,
57 Provider::DeepSeek => ModelId::DeepSeekChat,
58 Provider::XAI => ModelId::XaiGrok4Code,
59 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
60 Provider::Ollama => ModelId::OllamaQwen317b,
61 Provider::LmStudio => ModelId::LmStudioQwen257BInstruct,
62 Provider::ZAI => ModelId::ZaiGlm45Flash,
63 Provider::Moonshot => ModelId::OpenRouterGrokCodeFast1,
64 Provider::Minimax => ModelId::MinimaxM21Lightning,
65 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss20b,
66 }
67 }
68
69 pub fn default_single_for_provider(provider: Provider) -> Self {
71 match provider {
72 Provider::Gemini => ModelId::Gemini25FlashPreview,
73 Provider::OpenAI => ModelId::GPT5,
74 Provider::Anthropic => ModelId::ClaudeOpus45,
75 Provider::DeepSeek => ModelId::DeepSeekReasoner,
76 Provider::XAI => ModelId::XaiGrok4,
77 Provider::OpenRouter => ModelId::OpenRouterGrokCodeFast1,
78 Provider::Ollama => ModelId::OllamaGptOss20b,
79 Provider::LmStudio => ModelId::LmStudioMetaLlama318BInstruct,
80 Provider::ZAI => ModelId::ZaiGlm46,
81 Provider::Moonshot => ModelId::OpenRouterGrokCodeFast1,
82 Provider::Minimax => ModelId::MinimaxM21,
83 Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
84 }
85 }
86}