@@ -31,3 +31,121 @@ export * from "./vercel-ai-gateway.js"
3131export * from "./zai.js"
3232export * from "./deepinfra.js"
3333export * from "./minimax.js"
34+
35+ import { anthropicDefaultModelId } from "./anthropic.js"
36+ import { bedrockDefaultModelId } from "./bedrock.js"
37+ import { cerebrasDefaultModelId } from "./cerebras.js"
38+ import { chutesDefaultModelId } from "./chutes.js"
39+ import { claudeCodeDefaultModelId } from "./claude-code.js"
40+ import { deepSeekDefaultModelId } from "./deepseek.js"
41+ import { doubaoDefaultModelId } from "./doubao.js"
42+ import { featherlessDefaultModelId } from "./featherless.js"
43+ import { fireworksDefaultModelId } from "./fireworks.js"
44+ import { geminiDefaultModelId } from "./gemini.js"
45+ import { glamaDefaultModelId } from "./glama.js"
46+ import { groqDefaultModelId } from "./groq.js"
47+ import { ioIntelligenceDefaultModelId } from "./io-intelligence.js"
48+ import { litellmDefaultModelId } from "./lite-llm.js"
49+ import { mistralDefaultModelId } from "./mistral.js"
50+ import { moonshotDefaultModelId } from "./moonshot.js"
51+ import { openRouterDefaultModelId } from "./openrouter.js"
52+ import { qwenCodeDefaultModelId } from "./qwen-code.js"
53+ import { requestyDefaultModelId } from "./requesty.js"
54+ import { rooDefaultModelId } from "./roo.js"
55+ import { sambaNovaDefaultModelId } from "./sambanova.js"
56+ import { unboundDefaultModelId } from "./unbound.js"
57+ import { vertexDefaultModelId } from "./vertex.js"
58+ import { vscodeLlmDefaultModelId } from "./vscode-llm.js"
59+ import { xaiDefaultModelId } from "./xai.js"
60+ import { vercelAiGatewayDefaultModelId } from "./vercel-ai-gateway.js"
61+ import { internationalZAiDefaultModelId , mainlandZAiDefaultModelId } from "./zai.js"
62+ import { deepInfraDefaultModelId } from "./deepinfra.js"
63+ import { minimaxDefaultModelId } from "./minimax.js"
64+
65+ // Import the ProviderName type from provider-settings to avoid duplication
66+ import type { ProviderName } from "../provider-settings.js"
67+
68+ /**
69+ * Get the default model ID for a given provider.
70+ * This function returns only the provider's default model ID, without considering user configuration.
71+ * Used as a fallback when provider models are still loading.
72+ */
73+ export function getProviderDefaultModelId (
74+ provider : ProviderName ,
75+ options : { isChina ?: boolean } = { isChina : false } ,
76+ ) : string {
77+ switch ( provider ) {
78+ case "openrouter" :
79+ return openRouterDefaultModelId
80+ case "requesty" :
81+ return requestyDefaultModelId
82+ case "glama" :
83+ return glamaDefaultModelId
84+ case "unbound" :
85+ return unboundDefaultModelId
86+ case "litellm" :
87+ return litellmDefaultModelId
88+ case "xai" :
89+ return xaiDefaultModelId
90+ case "groq" :
91+ return groqDefaultModelId
92+ case "huggingface" :
93+ return "meta-llama/Llama-3.3-70B-Instruct"
94+ case "chutes" :
95+ return chutesDefaultModelId
96+ case "bedrock" :
97+ return bedrockDefaultModelId
98+ case "vertex" :
99+ return vertexDefaultModelId
100+ case "gemini" :
101+ return geminiDefaultModelId
102+ case "deepseek" :
103+ return deepSeekDefaultModelId
104+ case "doubao" :
105+ return doubaoDefaultModelId
106+ case "moonshot" :
107+ return moonshotDefaultModelId
108+ case "minimax" :
109+ return minimaxDefaultModelId
110+ case "zai" :
111+ return options ?. isChina ? mainlandZAiDefaultModelId : internationalZAiDefaultModelId
112+ case "openai-native" :
113+ return "gpt-4o" // Based on openai-native patterns
114+ case "mistral" :
115+ return mistralDefaultModelId
116+ case "openai" :
117+ return "" // OpenAI provider uses custom model configuration
118+ case "ollama" :
119+ return "" // Ollama uses dynamic model selection
120+ case "lmstudio" :
121+ return "" // LMStudio uses dynamic model selection
122+ case "deepinfra" :
123+ return deepInfraDefaultModelId
124+ case "vscode-lm" :
125+ return vscodeLlmDefaultModelId
126+ case "claude-code" :
127+ return claudeCodeDefaultModelId
128+ case "cerebras" :
129+ return cerebrasDefaultModelId
130+ case "sambanova" :
131+ return sambaNovaDefaultModelId
132+ case "fireworks" :
133+ return fireworksDefaultModelId
134+ case "featherless" :
135+ return featherlessDefaultModelId
136+ case "io-intelligence" :
137+ return ioIntelligenceDefaultModelId
138+ case "roo" :
139+ return rooDefaultModelId
140+ case "qwen-code" :
141+ return qwenCodeDefaultModelId
142+ case "vercel-ai-gateway" :
143+ return vercelAiGatewayDefaultModelId
144+ case "anthropic" :
145+ case "gemini-cli" :
146+ case "human-relay" :
147+ case "fake-ai" :
148+ default :
149+ return anthropicDefaultModelId
150+ }
151+ }
0 commit comments