返回 CodeWhale
models.rs
根目录 / crates / tui / src / config / models.rs
1 //! Static provider model-name and base-URL constants.
2 //!
3 //! These are pure data tables (default model identifiers, base URLs, and
4 //! curated model lists) extracted verbatim from `config.rs` to keep the
5 //! configuration monolith focused on loading/normalization logic. They are
6 //! re-exported from `crate::config` via `pub use models::*;`, so every existing
7 //! `crate::config::<CONST>` path keeps resolving unchanged (#3311).
8
9 pub const DEFAULT_TEXT_MODEL: &str = "deepseek-flash";
10 pub const DEFAULT_DEEPSEEK_BASE_URL: &str = "https://api.deepseek.com/beta";
11 pub const DEFAULT_DEEPSEEK_ANTHROPIC_MODEL: &str = DEFAULT_TEXT_MODEL;
12 pub const DEFAULT_DEEPSEEK_ANTHROPIC_BASE_URL: &str = "https://api.deepseek.com/anthropic";
13 pub const DEFAULT_NVIDIA_NIM_MODEL: &str = "deepseek-ai/deepseek-v4-pro";
14 pub const DEFAULT_NVIDIA_NIM_FLASH_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
15 pub const DEFAULT_NVIDIA_NIM_BASE_URL: &str = "https://integrate.api.nvidia.com/v1";
16 pub const DEFAULT_OPENAI_MODEL: &str = codewhale_config::provider::OPENAI_DEFAULT_MODEL;
17 pub const DEFAULT_OPENAI_BASE_URL: &str = "https://api.openai.com/v1";
18 pub const DEFAULT_ATLASCLOUD_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
19 pub const DEFAULT_ATLASCLOUD_BASE_URL: &str = "https://api.atlascloud.ai/v1";
20 pub const DEFAULT_WANJIE_ARK_MODEL: &str = "deepseek-reasoner";
21 pub const DEFAULT_VOLCENGINE_MODEL: &str = "DeepSeek-V4-Pro";
22 pub const DEFAULT_VOLCENGINE_FLASH_MODEL: &str = "DeepSeek-V4-Flash";
23 pub const DEFAULT_VOLCENGINE_BASE_URL: &str = "https://ark.cn-beijing.volces.com/api/coding/v3";
24 pub const DEFAULT_WANJIE_ARK_BASE_URL: &str = "https://maas-openapi.wanjiedata.com/api/v1";
25 pub const DEFAULT_OPENROUTER_MODEL: &str = "deepseek/deepseek-v4-pro";
26 pub const DEFAULT_OPENROUTER_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
27 pub const DEFAULT_ORCAROUTER_MODEL: &str = "deepseek/deepseek-v4-pro";
28 pub const DEFAULT_ORCAROUTER_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
29 pub const OPENROUTER_ARCEE_TRINITY_LARGE_THINKING_MODEL: &str = "arcee-ai/trinity-large-thinking";
30 pub const OPENROUTER_GEMMA_4_31B_MODEL: &str = "google/gemma-4-31b-it";
31 pub const OPENROUTER_GEMMA_4_26B_A4B_MODEL: &str = "google/gemma-4-26b-a4b-it";
32 pub const OPENROUTER_GLM_5_1_MODEL: &str = "z-ai/glm-5.1";
33 pub const OPENROUTER_GLM_5_2_MODEL: &str = "z-ai/glm-5.2";
34 pub const OPENROUTER_GLM_5_3_MODEL: &str = "z-ai/glm-5.3";
35 pub const OPENROUTER_GLM_5_3_FLASH_MODEL: &str = "z-ai/glm-5.3-flash";
36 pub const OPENROUTER_GLM_5_TURBO_MODEL: &str = "z-ai/glm-5-turbo";
37 pub const OPENROUTER_KIMI_K2_7_CODE_MODEL: &str = "moonshotai/kimi-k2.7-code";
38 pub const OPENROUTER_KIMI_K2_6_MODEL: &str = "moonshotai/kimi-k2.6";
39 pub const OPENROUTER_MINIMAX_M3_MODEL: &str = "minimax/minimax-m3";
40 pub const OPENROUTER_NEMOTRON_3_NANO_OMNI_MODEL: &str =
41 "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free";
42 pub const OPENROUTER_QWEN_3_6_FLASH_MODEL: &str = "qwen/qwen3.6-flash";
43 pub const OPENROUTER_QWEN_3_6_35B_A3B_MODEL: &str = "qwen/qwen3.6-35b-a3b";
44 pub const OPENROUTER_QWEN_3_6_MAX_PREVIEW_MODEL: &str = "qwen/qwen3.6-max-preview";
45 pub const OPENROUTER_QWEN_3_6_27B_MODEL: &str = "qwen/qwen3.6-27b";
46 pub const OPENROUTER_QWEN_3_6_PLUS_MODEL: &str = "qwen/qwen3.6-plus";
47 pub const OPENROUTER_QWEN_3_7_PLUS_MODEL: &str = "qwen/qwen3.7-plus";
48 pub const OPENROUTER_QWEN_3_7_MAX_MODEL: &str = "qwen/qwen3.7-max";
49 pub const OPENROUTER_QWEN_3_8_FLASH_MODEL: &str = "qwen/qwen3.8-flash";
50 pub const OPENROUTER_MINIMAX_M2_7_MODEL: &str = "minimax/minimax-m2.7";
51 pub const OPENROUTER_NEMOTRON_3_ULTRA_MODEL: &str = "nvidia/nemotron-3-ultra-550b-a55b";
52 pub const OPENROUTER_TENCENT_HY3_PREVIEW_MODEL: &str = "tencent/hy3-preview";
53 pub const OPENROUTER_XIAOMI_MIMO_V2_5_PRO_MODEL: &str = "xiaomi/mimo-v2.5-pro";
54 pub const OPENROUTER_XIAOMI_MIMO_V2_5_MODEL: &str = "xiaomi/mimo-v2.5";
55 pub const RECENT_OPENROUTER_LARGE_MODELS: &[&str] = &[
56 OPENROUTER_ARCEE_TRINITY_LARGE_THINKING_MODEL,
57 OPENROUTER_MINIMAX_M3_MODEL,
58 OPENROUTER_XIAOMI_MIMO_V2_5_PRO_MODEL,
59 OPENROUTER_XIAOMI_MIMO_V2_5_MODEL,
60 OPENROUTER_QWEN_3_6_FLASH_MODEL,
61 OPENROUTER_QWEN_3_6_35B_A3B_MODEL,
62 OPENROUTER_QWEN_3_6_MAX_PREVIEW_MODEL,
63 OPENROUTER_QWEN_3_6_27B_MODEL,
64 OPENROUTER_QWEN_3_6_PLUS_MODEL,
65 OPENROUTER_QWEN_3_7_PLUS_MODEL,
66 OPENROUTER_QWEN_3_7_MAX_MODEL,
67 OPENROUTER_QWEN_3_8_FLASH_MODEL,
68 OPENROUTER_MINIMAX_M2_7_MODEL,
69 OPENROUTER_NEMOTRON_3_ULTRA_MODEL,
70 OPENROUTER_KIMI_K2_7_CODE_MODEL,
71 OPENROUTER_KIMI_K2_6_MODEL,
72 OPENROUTER_GLM_5_1_MODEL,
73 OPENROUTER_GLM_5_2_MODEL,
74 OPENROUTER_GLM_5_3_MODEL,
75 OPENROUTER_GLM_5_3_FLASH_MODEL,
76 OPENROUTER_TENCENT_HY3_PREVIEW_MODEL,
77 OPENROUTER_GEMMA_4_31B_MODEL,
78 OPENROUTER_GEMMA_4_26B_A4B_MODEL,
79 OPENROUTER_NEMOTRON_3_NANO_OMNI_MODEL,
80 ];
81 pub const DEFAULT_OPENROUTER_BASE_URL: &str = "https://openrouter.ai/api/v1";
82 pub const DEFAULT_ORCAROUTER_BASE_URL: &str = "https://api.orcarouter.ai/v1";
83 pub const DEFAULT_XIAOMI_MIMO_MODEL: &str = "mimo-v2.5-pro";
84 pub const XIAOMI_MIMO_V2_5_PRO_ULTRASPEED_MODEL: &str = "mimo-v2.5-pro-ultraspeed";
85 pub const XIAOMI_MIMO_PAY_AS_YOU_GO_BASE_URL: &str = "https://api.xiaomimimo.com/v1";
86 pub const DEFAULT_XIAOMI_MIMO_BASE_URL: &str = "https://token-plan-sgp.xiaomimimo.com/v1";
87 pub const XIAOMI_MIMO_TOKEN_PLAN_CN_BASE_URL: &str = "https://token-plan-cn.xiaomimimo.com/v1";
88 pub const XIAOMI_MIMO_TOKEN_PLAN_SGP_BASE_URL: &str = DEFAULT_XIAOMI_MIMO_BASE_URL;
89 pub const XIAOMI_MIMO_TOKEN_PLAN_AMS_BASE_URL: &str = "https://token-plan-ams.xiaomimimo.com/v1";
90 pub const XIAOMI_MIMO_V2_5_OMNI_MODEL: &str = "mimo-v2.5";
91 pub const XIAOMI_MIMO_ASR_MODEL: &str = "mimo-v2.5-asr";
92 pub const XIAOMI_MIMO_TTS_MODEL: &str = "mimo-v2.5-tts";
93 pub const XIAOMI_MIMO_TTS_VOICE_DESIGN_MODEL: &str = "mimo-v2.5-tts-voicedesign";
94 pub const XIAOMI_MIMO_TTS_VOICE_CLONE_MODEL: &str = "mimo-v2.5-tts-voiceclone";
95 pub const XIAOMI_MIMO_V2_TTS_MODEL: &str = "mimo-v2-tts";
96 pub const DEFAULT_NOVITA_MODEL: &str = "deepseek/deepseek-v4-pro";
97 pub const DEFAULT_NOVITA_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
98 pub const DEFAULT_NOVITA_BASE_URL: &str = "https://api.novita.ai/openai/v1";
99 pub const DEFAULT_FIREWORKS_MODEL: &str = "accounts/fireworks/models/deepseek-v4-pro";
100 pub const DEFAULT_FIREWORKS_BASE_URL: &str = "https://api.fireworks.ai/inference/v1";
101 pub const DEFAULT_SILICONFLOW_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
102 pub const DEFAULT_SILICONFLOW_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
103 pub const DEFAULT_SILICONFLOW_BASE_URL: &str = "https://api.siliconflow.com/v1";
104 pub const DEFAULT_SILICONFLOW_CN_BASE_URL: &str = "https://api.siliconflow.cn/v1";
105 pub const DEFAULT_ARCEE_MODEL: &str = "trinity-large-thinking";
106 pub const ARCEE_TRINITY_LARGE_PREVIEW_MODEL: &str = "trinity-large-preview";
107 pub const ARCEE_TRINITY_MINI_MODEL: &str = "trinity-mini";
108 pub const DEFAULT_ARCEE_BASE_URL: &str = "https://api.arcee.ai/api/v1";
109 pub const DEFAULT_MOONSHOT_MODEL: &str = "kimi-k2.7-code";
110 /// Moonshot's direct pay-as-you-go K3 wire model id.
111 pub const MOONSHOT_KIMI_K3_MODEL: &str = "kimi-k3";
112 pub const MOONSHOT_KIMI_K2_6_MODEL: &str = "kimi-k2.6";
113 pub const DEFAULT_MOONSHOT_BASE_URL: &str = "https://api.moonshot.ai/v1";
114 pub const DEFAULT_KIMI_CODE_MODEL: &str = "kimi-for-coding";
115 pub const DEFAULT_KIMI_CODE_BASE_URL: &str = "https://api.kimi.com/coding/v1";
116 pub const KIMI_CODE_MEMBERSHIP_PLAN_CONSOLE_URL: &str =
117 codewhale_config::provider::KIMI_CODE_MEMBERSHIP_PLAN_CONSOLE_URL;
118 /// Official Kimi Code route model id. It is deliberately distinct from
119 /// Moonshot's pay-as-you-go `kimi-k3` catalog id.
120 pub const KIMI_CODE_K3_MODEL: &str = "k3";
121 /// Official fixed-256K Kimi Code K3 wire model id. This is a distinct
122 /// membership-route model, not a client-side context alias for `k3`.
123 pub const KIMI_CODE_K3_256K_MODEL: &str = "k3-256k";
124 /// Kimi Code membership high-speed wire model id. Membership route only, not
125 /// a direct Moonshot platform catalog model.
126 pub const KIMI_CODE_HIGHSPEED_MODEL: &str = "kimi-for-coding-highspeed";
127 // The K3 contract constants (`KIMI_CODE_K3_CONTEXT_WINDOW_TOKENS`,
128 // `KIMI_K3_CONTEXT_WINDOW_TOKENS`, and the distinct default/direct output
129 // limits) live in `codewhale_models` — the model-facts table, which also compiles
130 // standalone in integration tests — so the facts have exactly one home.
131 // Re-export only the route-owned floor, which existing `crate::config` call
132 // sites import.
133 pub use codewhale_models::KIMI_CODE_K3_CONTEXT_WINDOW_TOKENS;
134 pub const DEFAULT_SGLANG_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
135 pub const DEFAULT_SGLANG_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
136 pub const DEFAULT_SGLANG_BASE_URL: &str = "http://localhost:30000/v1";
137 pub const DEFAULT_VLLM_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
138 pub const DEFAULT_VLLM_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
139 pub const DEFAULT_VLLM_BASE_URL: &str = "http://localhost:8000/v1";
140 /// Unresolved local-Ollama default. A live provider-catalog refresh must
141 /// replace this with a tag `GET /v1/models` actually returned. Do not send
142 /// this string as a model id.
143 pub const DEFAULT_OLLAMA_MODEL: &str = "unknown";
144
145 /// True when `model` is the pre-refresh local-Ollama placeholder, not a tag.
146 #[must_use]
147 pub fn is_unresolved_local_ollama_model(model: &str) -> bool {
148 model.trim().eq_ignore_ascii_case(DEFAULT_OLLAMA_MODEL)
149 }
150 pub const DEFAULT_OLLAMA_BASE_URL: &str = "http://localhost:11434/v1";
151 pub const DEFAULT_OLLAMA_CLOUD_MODEL: &str = "gpt-oss:120b";
152 pub const DEFAULT_OLLAMA_CLOUD_BASE_URL: &str = codewhale_config::provider::OLLAMA_CLOUD_BASE_URL;
153 pub const DEFAULT_HUGGINGFACE_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
154 pub const DEFAULT_HUGGINGFACE_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
155 pub const DEFAULT_HUGGINGFACE_BASE_URL: &str = "https://router.huggingface.co/v1";
156 pub const DEFAULT_MODELSCOPE_MODEL: &str = "Qwen/Qwen3.5-397B-A17B";
157 pub const DEFAULT_MODELSCOPE_BASE_URL: &str = "https://api-inference.modelscope.cn/v1";
158 pub const DEFAULT_DEEPINFRA_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
159 pub const DEFAULT_DEEPINFRA_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
160 pub const DEFAULT_DEEPINFRA_BASE_URL: &str = "https://api.deepinfra.com/v1/openai";
161 pub const DEFAULT_TOGETHER_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
162 pub const DEFAULT_TOGETHER_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
163 pub const TOGETHER_INKLING_MODEL: &str = "thinkingmachines/inkling";
164 pub const DEFAULT_TOGETHER_BASE_URL: &str = "https://api.together.xyz/v1";
165 pub const DEFAULT_QIANFAN_MODEL: &str = "ernie-4.0-turbo-8k";
166 pub const DEFAULT_QIANFAN_BASE_URL: &str = "https://api.baiduqianfan.ai/v1";
167 pub const DEFAULT_OPENAI_CODEX_MODEL: &str = "gpt-5.6";
168 pub const DEFAULT_OPENAI_CODEX_BASE_URL: &str = "https://chatgpt.com/backend-api";
169 /// Conservative offline floor for an OAuth model absent from a fresh Codex
170 /// roster. Fresh account-scoped cache metadata overrides this in route_runtime.
171 pub const OPENAI_CODEX_EFFECTIVE_CONTEXT_WINDOW_TOKENS: u32 = 128_000;
172 /// Legacy `deepseek-cn` provider alias.
173 ///
174 /// DeepSeek's official API host is the same worldwide. Keep this alias for
175 /// old configs, but route it through the normal beta-enabled DeepSeek default.
176 /// Legacy typo hostname `api.deepseeki.com` remains recognized in URL
177 /// heuristics for backward compatibility.
178 pub const DEFAULT_DEEPSEEKCN_BASE_URL: &str = DEFAULT_DEEPSEEK_BASE_URL;
179 pub const COMMON_DEEPSEEK_MODELS: &[&str] = &[
180 "deepseek-v4-pro",
181 "deepseek-v4-flash",
182 "deepseek-v4-flash-vision-exp",
183 "deepseek-ai/deepseek-v4-pro",
184 "deepseek-ai/deepseek-v4-flash",
185 "deepseek/deepseek-v4-pro",
186 "deepseek/deepseek-v4-flash",
187 ];
188 pub const OFFICIAL_DEEPSEEK_MODELS: &[&str] = &[
189 "deepseek-v4-pro",
190 // V4.1 Flash ships as the unversioned id `deepseek-flash`, verified live on
191 // api.deepseek.com /v1/models 2026-09-10 — the account roster returns
192 // exactly `deepseek-flash` and `deepseek-v4-pro`. The version number was
193 // dropped, so guessing `deepseek-v4.1-flash` would have been a dead route.
194 "deepseek-flash",
195 "deepseek-v4-flash",
196 // Vision-experimental sibling of v4-flash; verified live on
197 // api.deepseek.com /models 2026-08-21. Same family aliases apply.
198 "deepseek-v4-flash-vision-exp",
199 ];
200 pub const OFFICIAL_OPENAI_MODELS: &[&str] = &[
201 DEFAULT_OPENAI_MODEL,
202 "gpt-5.6-sol",
203 "gpt-5.6-terra",
204 "gpt-5.6-luna",
205 ];
206 // GLM-5.3 is live on the Z.ai Coding Plan (2026-08-13) and is the default
207 // for new Z.ai routes. Limits and reasoning options still inherit from
208 // glm-5.2 until Z.ai publishes distinct 5.3 numbers; no USD price is
209 // claimed. Scope is first-party Z.ai plus its OpenRouter mirror only.
210 // Correct at crates/config/assets/models_dev.bundled.json
211 // `_meta.pending_release_metadata` when distinct 5.3 facts exist.
212 // Explicit GLM-5.2 selections keep their own id: only the default moved.
213 pub const DEFAULT_ZAI_MODEL: &str = ZAI_GLM_5_3_MODEL;
214 pub const ZAI_GLM_5_1_MODEL: &str = "GLM-5.1";
215 pub const ZAI_GLM_5_2_MODEL: &str = "GLM-5.2";
216 pub const ZAI_GLM_5_3_MODEL: &str = "GLM-5.3";
217 pub const ZAI_GLM_5_3_FLASH_MODEL: &str = "GLM-5.3-Flash";
218 pub const ZAI_GLM_5_TURBO_MODEL: &str = "GLM-5-Turbo";
219 pub const DEFAULT_ZAI_BASE_URL: &str = "https://api.z.ai/api/coding/paas/v4";
220 pub const DEFAULT_STEPFUN_MODEL: &str = "step-3.7-flash";
221 pub const DEFAULT_STEPFUN_BASE_URL: &str = "https://api.stepfun.ai/v1";
222 /// StepFun's Step Plan subscription endpoint. Billed against a plan allowance
223 /// rather than per-token, so it is a separate route from pay-as-you-go and is
224 /// never inferred — the user picks it during provider setup (#4526).
225 pub const DEFAULT_STEPFUN_PLAN_BASE_URL: &str = "https://api.stepfun.ai/step_plan/v1";
226 pub const DEFAULT_ANTHROPIC_MODEL: &str = "claude-sonnet-4-6";
227 pub const ANTHROPIC_OPUS_MODEL: &str = "claude-opus-4-8";
228 pub const ANTHROPIC_HAIKU_MODEL: &str = "claude-haiku-4-5";
229 pub const DEFAULT_ANTHROPIC_BASE_URL: &str = "https://api.anthropic.com";
230 pub const DEFAULT_OPENMODEL_MODEL: &str = "deepseek-v4-flash";
231 pub const DEFAULT_OPENMODEL_BASE_URL: &str = "https://api.openmodel.ai";
232 pub const DEFAULT_MINIMAX_MODEL: &str = "MiniMax-M3";
233 pub const MINIMAX_M2_7_MODEL: &str = "MiniMax-M2.7";
234 pub const MINIMAX_M2_7_HIGHSPEED_MODEL: &str = "MiniMax-M2.7-highspeed";
235 pub const MINIMAX_M2_5_MODEL: &str = "MiniMax-M2.5";
236 pub const MINIMAX_M2_5_HIGHSPEED_MODEL: &str = "MiniMax-M2.5-highspeed";
237 pub const MINIMAX_M2_1_MODEL: &str = "MiniMax-M2.1";
238 pub const MINIMAX_M2_1_HIGHSPEED_MODEL: &str = "MiniMax-M2.1-highspeed";
239 pub const MINIMAX_M2_MODEL: &str = "MiniMax-M2";
240 pub const DEFAULT_MINIMAX_BASE_URL: &str = "https://api.minimax.io/v1";
241 pub const DEFAULT_MINIMAX_ANTHROPIC_BASE_URL: &str = "https://api.minimax.io/anthropic";
242 pub const DEFAULT_SAKANA_MODEL: &str = "fugu";
243 pub const SAKANA_FUGU_ULTRA_MODEL: &str = "fugu-ultra-20260615";
244 pub const DEFAULT_SAKANA_BASE_URL: &str = "https://api.sakana.ai/v1";
245 pub const DEFAULT_LONGCAT_MODEL: &str = "LongCat-2.0";
246 pub const DEFAULT_LONGCAT_BASE_URL: &str = "https://api.longcat.chat/openai/v1";
247 pub const DEFAULT_OPENCODE_GO_MODEL: &str = "deepseek-v4-pro";
248 pub const DEFAULT_OPENCODE_GO_BASE_URL: &str = "https://opencode.ai/zen/go/v1";
249 pub use codewhale_config::opencode_go_models;
250 pub const DEFAULT_OPENCODE_ZEN_MODEL: &str = "gpt-5.6";
251 pub const DEFAULT_OPENCODE_ZEN_BASE_URL: &str = "https://opencode.ai/zen/v1";
252 pub const DEFAULT_META_MODEL: &str = "muse-spark-1.2";
253 pub const DEFAULT_META_BASE_URL: &str = "https://api.meta.ai/v1";
254 pub const XAI_GROK_4_6_MODEL: &str = "grok-4.6";
255 pub const DEFAULT_XAI_MODEL: &str = XAI_GROK_4_6_MODEL;
256 pub const XAI_GROK_4_5_MODEL: &str = "grok-4.5";
257 pub const XAI_GROK_4_3_MODEL: &str = "grok-4.3";
258 pub const XAI_GROK_BUILD_MODEL: &str = "grok-build";
259 pub const XAI_GROK_COMPOSER_2_5_FAST_MODEL: &str = "grok-composer-2.5-fast";
260 pub const XAI_GROK_4_20_0309_REASONING_MODEL: &str = "grok-4.20-0309-reasoning";
261 pub const XAI_GROK_4_20_0309_NON_REASONING_MODEL: &str = "grok-4.20-0309-non-reasoning";
262 pub const DEFAULT_XAI_BASE_URL: &str = "https://api.x.ai/v1";
263 pub const DEFAULT_MISTRAL_MODEL: &str = "mistral-code-latest";
264 pub const DEFAULT_MISTRAL_BASE_URL: &str = "https://api.mistral.ai/v1";
265 pub const DEFAULT_ANTIGRAVITY_MODEL: &str = "legacy-antigravity-disabled";
266 pub const DEFAULT_ANTIGRAVITY_BASE_URL: &str = "https://legacy-antigravity.invalid";
267 pub const DEFAULT_GOOGLE_MODEL: &str = "gemini-3.1-pro-preview";
268 pub const DEFAULT_GOOGLE_BASE_URL: &str =
269 "https://generativelanguage.googleapis.com/v1beta/openai/";
270 pub const DEFAULT_TELECOMJS_MODEL: &str = "deepseek-v4-pro";
271 pub const DEFAULT_TELECOMJS_BASE_URL: &str = "https://aigw.telecomjs.com/v1";
272 pub const DEFAULT_EDENAI_MODEL: &str = "deepseek/deepseek-v4-pro";
273 pub const DEFAULT_EDENAI_BASE_URL: &str = "https://api.edenai.run/v3";
274 pub const DEFAULT_ZENMUX_MODEL: &str = "deepseek/deepseek-v4.1-flash";
275 pub const DEFAULT_ZENMUX_BASE_URL: &str = "https://zenmux.ai/api/v1";
276 pub const DEFAULT_CSDN_MODEL: &str = "glm_for_coding";
277 pub const DEFAULT_CSDN_BASE_URL: &str = "https://ai.csdn.net/api/model/v1";
278 // Concentrate (OpenAI Responses-compatible AI gateway) defaults; mirrors
279 // crates/config/src/provider_defaults.rs for the docs drift check.
280 pub const DEFAULT_CONCENTRATE_MODEL: &str = "deepseek-v4-pro";
281 pub const DEFAULT_CONCENTRATE_BASE_URL: &str = "https://api.concentrate.ai/v1";
282 // Codewhale API (account-backed model access) defaults; mirrors
283 // codewhale_config::DEFAULT_CODEWHALE_*.
284 pub const DEFAULT_CODEWHALE_MODEL: &str = "deepseek/deepseek-v4-pro";
285 pub const DEFAULT_CODEWHALE_BASE_URL: &str = "https://api.codewhale.net/v1";
286 // Alibaba Cloud Model Studio (DashScope) defaults
287 pub const DEFAULT_MODELSTUDIO_TOKEN_PLAN_MODEL: &str = "qwen3.8-max";
288 pub const DEFAULT_MODELSTUDIO_TOKEN_PLAN_BASE_URL: &str =
289 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1";
290 pub const MODELSTUDIO_TOKEN_PLAN_ANTHROPIC_BASE_URL: &str =
291 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic";
292 pub const DEFAULT_MODELSTUDIO_CODING_PLAN_BASE_URL: &str =
293 "https://coding-intl.dashscope.aliyuncs.com/v1";
294 pub const MODELSTUDIO_CODING_PLAN_ANTHROPIC_BASE_URL: &str =
295 "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic";
296
296 lines RUST