返回 CodeWhale
provider_defaults.rs
根目录 / crates / config / src / provider_defaults.rs
1 //! Built-in provider default seeds: per-provider default model ids and
2 //! base URLs, plus the named model/tier constants the alias-normalization
3 //! tables resolve to. Extracted verbatim from `lib.rs` (#3311) to separate
4 //! these provider execution defaults from config schema/loading code; values
5 //! are unchanged. Re-exported `pub(crate)` at the crate root so existing
6 //! `crate::DEFAULT_*` references keep resolving.
7
8 // V4.1 Flash remains the selected default. The September 11 vendor reversal
9 // keeps V4 Pro available with unchanged billing; explicit Pro selections stay Pro.
10 pub(crate) const DEFAULT_DEEPSEEK_MODEL: &str = "deepseek-flash";
11 pub(crate) const DEFAULT_DEEPSEEK_ANTHROPIC_MODEL: &str = DEFAULT_DEEPSEEK_MODEL;
12 pub(crate) const DEFAULT_NVIDIA_NIM_MODEL: &str = "deepseek-ai/deepseek-v4-pro";
13 pub(crate) const DEFAULT_NVIDIA_NIM_FLASH_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
14 // A DeepSeek id here guaranteed a 404 against the default OpenAI endpoint:
15 // unlike the hosted-aggregator rows below, api.openai.com serves no DeepSeek
16 // models. Default to OpenAI's own flagship instead (#5588).
17 pub(crate) const DEFAULT_OPENAI_MODEL: &str = "gpt-5.6";
18 pub(crate) const DEFAULT_DEEPSEEK_BASE_URL: &str = "https://api.deepseek.com/beta";
19 pub(crate) const DEFAULT_DEEPSEEK_ANTHROPIC_BASE_URL: &str = "https://api.deepseek.com/anthropic";
20 pub(crate) const DEFAULT_NVIDIA_NIM_BASE_URL: &str = "https://integrate.api.nvidia.com/v1";
21 pub(crate) const DEFAULT_OPENAI_CODEX_MODEL: &str = "gpt-5.6";
22 pub(crate) const DEFAULT_ANTHROPIC_MODEL: &str = "claude-sonnet-4-6";
23 pub(crate) const DEFAULT_ANTHROPIC_BASE_URL: &str = "https://api.anthropic.com";
24 pub(crate) const DEFAULT_OPENMODEL_MODEL: &str = "deepseek-v4-flash";
25 pub(crate) const DEFAULT_OPENMODEL_BASE_URL: &str = "https://api.openmodel.ai";
26 pub(crate) const DEFAULT_OPENAI_CODEX_BASE_URL: &str = "https://chatgpt.com/backend-api";
27 pub(crate) const DEFAULT_OPENAI_BASE_URL: &str = "https://api.openai.com/v1";
28 pub(crate) const DEFAULT_ATLASCLOUD_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
29 pub(crate) const DEFAULT_ATLASCLOUD_BASE_URL: &str = "https://api.atlascloud.ai/v1";
30 pub(crate) const DEFAULT_WANJIE_ARK_MODEL: &str = "deepseek-reasoner";
31 pub(crate) const DEFAULT_WANJIE_ARK_BASE_URL: &str = "https://maas-openapi.wanjiedata.com/api/v1";
32 pub(crate) const DEFAULT_VOLCENGINE_MODEL: &str = "DeepSeek-V4-Pro";
33 pub(crate) const DEFAULT_VOLCENGINE_BASE_URL: &str =
34 "https://ark.cn-beijing.volces.com/api/coding/v3";
35 pub(crate) const DEFAULT_OPENROUTER_MODEL: &str = "deepseek/deepseek-v4-pro";
36 pub(crate) const DEFAULT_OPENROUTER_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
37 pub(crate) const DEFAULT_ORCAROUTER_MODEL: &str = "deepseek/deepseek-v4-pro";
38 pub(crate) const DEFAULT_ORCAROUTER_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
39 /// OrcaRouter's own auto-routing model: picks the best upstream model per
40 /// request. Resolved from the bare `auto` alias on the OrcaRouter provider.
41 pub(crate) const ORCAROUTER_AUTO_MODEL: &str = "orcarouter/auto";
42 pub(crate) const OPENROUTER_ARCEE_TRINITY_LARGE_THINKING_MODEL: &str =
43 "arcee-ai/trinity-large-thinking";
44 pub(crate) const OPENROUTER_GEMMA_4_31B_MODEL: &str = "google/gemma-4-31b-it";
45 pub(crate) const OPENROUTER_GEMMA_4_26B_A4B_MODEL: &str = "google/gemma-4-26b-a4b-it";
46 pub(crate) const OPENROUTER_GLM_5_1_MODEL: &str = "z-ai/glm-5.1";
47 pub(crate) const OPENROUTER_GLM_5_2_MODEL: &str = "z-ai/glm-5.2";
48 // GLM-5.3 is live on the Z.ai Coding Plan (2026-08-13). Capability/limit
49 // metadata still inherits from glm-5.2 until Z.ai publishes distinct 5.3
50 // numbers. No USD price. The OpenRouter id is registered so the alias
51 // resolves to OpenRouter rather than another vendor. See
52 // models_dev.bundled.json `_meta.pending_release_metadata`.
53 pub(crate) const OPENROUTER_GLM_5_3_MODEL: &str = "z-ai/glm-5.3";
54 // GLM-5.3-Flash (2026-08-26): first natively multimodal GLM-5, 1M context,
55 // published USD list $0.15/$0.50 (50% promo until 2026-09-09 UTC+8 is not
56 // the durable row). OpenRouter mirror is z-ai/glm-5.3-flash.
57 pub(crate) const OPENROUTER_GLM_5_3_FLASH_MODEL: &str = "z-ai/glm-5.3-flash";
58 pub(crate) const OPENROUTER_KIMI_K2_7_CODE_MODEL: &str = "moonshotai/kimi-k2.7-code";
59 pub(crate) const OPENROUTER_KIMI_K2_6_MODEL: &str = "moonshotai/kimi-k2.6";
60 pub(crate) const OPENROUTER_MINIMAX_M3_MODEL: &str = "minimax/minimax-m3";
61 pub(crate) const OPENROUTER_MINIMAX_M2_7_MODEL: &str = "minimax/minimax-m2.7";
62 pub(crate) const OPENROUTER_NEMOTRON_3_NANO_OMNI_MODEL: &str =
63 "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free";
64 pub(crate) const OPENROUTER_QWEN_3_6_FLASH_MODEL: &str = "qwen/qwen3.6-flash";
65 pub(crate) const OPENROUTER_QWEN_3_6_35B_A3B_MODEL: &str = "qwen/qwen3.6-35b-a3b";
66 pub(crate) const OPENROUTER_QWEN_3_6_MAX_PREVIEW_MODEL: &str = "qwen/qwen3.6-max-preview";
67 pub(crate) const OPENROUTER_QWEN_3_6_27B_MODEL: &str = "qwen/qwen3.6-27b";
68 pub(crate) const OPENROUTER_QWEN_3_6_PLUS_MODEL: &str = "qwen/qwen3.6-plus";
69 pub(crate) const OPENROUTER_QWEN_3_7_PLUS_MODEL: &str = "qwen/qwen3.7-plus";
70 pub(crate) const OPENROUTER_QWEN_3_7_MAX_MODEL: &str = "qwen/qwen3.7-max";
71 pub(crate) const OPENROUTER_QWEN_3_8_FLASH_MODEL: &str = "qwen/qwen3.8-flash";
72 pub(crate) const OPENROUTER_TENCENT_HY3_PREVIEW_MODEL: &str = "tencent/hy3-preview";
73 pub(crate) const OPENROUTER_XIAOMI_MIMO_V2_5_PRO_MODEL: &str = "xiaomi/mimo-v2.5-pro";
74 pub(crate) const OPENROUTER_XIAOMI_MIMO_V2_5_MODEL: &str = "xiaomi/mimo-v2.5";
75 pub(crate) const DEFAULT_XIAOMI_MIMO_MODEL: &str = "mimo-v2.5-pro";
76 pub(crate) const XIAOMI_MIMO_V2_5_PRO_ULTRASPEED_MODEL: &str = "mimo-v2.5-pro-ultraspeed";
77 pub(crate) const XIAOMI_MIMO_V2_5_OMNI_MODEL: &str = "mimo-v2.5";
78 pub(crate) const XIAOMI_MIMO_ASR_MODEL: &str = "mimo-v2.5-asr";
79 pub(crate) const XIAOMI_MIMO_TTS_MODEL: &str = "mimo-v2.5-tts";
80 pub(crate) const XIAOMI_MIMO_TTS_VOICE_DESIGN_MODEL: &str = "mimo-v2.5-tts-voicedesign";
81 pub(crate) const XIAOMI_MIMO_TTS_VOICE_CLONE_MODEL: &str = "mimo-v2.5-tts-voiceclone";
82 pub(crate) const XIAOMI_MIMO_V2_TTS_MODEL: &str = "mimo-v2-tts";
83 pub(crate) const DEFAULT_NOVITA_MODEL: &str = "deepseek/deepseek-v4-pro";
84 pub(crate) const DEFAULT_NOVITA_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
85 pub(crate) const DEFAULT_FIREWORKS_MODEL: &str = "accounts/fireworks/models/deepseek-v4-pro";
86 pub(crate) const DEFAULT_SILICONFLOW_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
87 pub(crate) const DEFAULT_SILICONFLOW_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
88 pub(crate) const DEFAULT_ARCEE_MODEL: &str = "trinity-large-thinking";
89 pub(crate) const ARCEE_TRINITY_LARGE_PREVIEW_MODEL: &str = "trinity-large-preview";
90 pub(crate) const ARCEE_TRINITY_MINI_MODEL: &str = "trinity-mini";
91 pub(crate) const DEFAULT_MOONSHOT_MODEL: &str = "kimi-k2.7-code";
92 pub(crate) const MOONSHOT_KIMI_K2_6_MODEL: &str = "kimi-k2.6";
93 pub(crate) const DEFAULT_MOONSHOT_BASE_URL: &str = "https://api.moonshot.ai/v1";
94 pub(crate) const MOONSHOT_CN_BASE_URL: &str = "https://api.moonshot.cn/v1";
95 pub(crate) const DEFAULT_KIMI_CODE_MODEL: &str = "kimi-for-coding";
96 pub(crate) const DEFAULT_KIMI_CODE_BASE_URL: &str = "https://api.kimi.com/coding/v1";
97 pub(crate) const DEFAULT_SGLANG_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
98 pub(crate) const DEFAULT_SGLANG_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
99 pub(crate) const DEFAULT_OPENROUTER_BASE_URL: &str = "https://openrouter.ai/api/v1";
100 pub(crate) const DEFAULT_ORCAROUTER_BASE_URL: &str = "https://api.orcarouter.ai/v1";
101 pub(crate) const XIAOMI_MIMO_PAY_AS_YOU_GO_BASE_URL: &str = "https://api.xiaomimimo.com/v1";
102 pub(crate) const DEFAULT_XIAOMI_MIMO_BASE_URL: &str = "https://token-plan-sgp.xiaomimimo.com/v1";
103 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_CN_BASE_URL: &str =
104 "https://token-plan-cn.xiaomimimo.com/v1";
105 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_SGP_BASE_URL: &str = DEFAULT_XIAOMI_MIMO_BASE_URL;
106 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_AMS_BASE_URL: &str =
107 "https://token-plan-ams.xiaomimimo.com/v1";
108 pub(crate) const DEFAULT_NOVITA_BASE_URL: &str = "https://api.novita.ai/openai/v1";
109 pub(crate) const DEFAULT_FIREWORKS_BASE_URL: &str = "https://api.fireworks.ai/inference/v1";
110 pub(crate) const DEFAULT_SILICONFLOW_BASE_URL: &str = "https://api.siliconflow.com/v1";
111 pub(crate) const DEFAULT_SILICONFLOW_CN_BASE_URL: &str = "https://api.siliconflow.cn/v1";
112 pub(crate) const DEFAULT_ARCEE_BASE_URL: &str = "https://api.arcee.ai/api/v1";
113 pub(crate) const DEFAULT_HUGGINGFACE_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
114 pub(crate) const DEFAULT_HUGGINGFACE_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
115 pub(crate) const DEFAULT_HUGGINGFACE_BASE_URL: &str = "https://router.huggingface.co/v1";
116 pub(crate) const DEFAULT_MODELSCOPE_MODEL: &str = "Qwen/Qwen3.5-397B-A17B";
117 pub(crate) const DEFAULT_MODELSCOPE_BASE_URL: &str = "https://api-inference.modelscope.cn/v1";
118 pub(crate) const DEFAULT_TOGETHER_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
119 pub(crate) const DEFAULT_TOGETHER_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
120 pub(crate) const DEFAULT_TOGETHER_BASE_URL: &str = "https://api.together.xyz/v1";
121 pub(crate) const DEFAULT_QIANFAN_MODEL: &str = "ernie-4.0-turbo-8k";
122 pub(crate) const DEFAULT_QIANFAN_BASE_URL: &str = "https://api.baiduqianfan.ai/v1";
123 pub(crate) const DEFAULT_SGLANG_BASE_URL: &str = "http://localhost:30000/v1";
124 pub(crate) const DEFAULT_VLLM_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
125 pub(crate) const DEFAULT_VLLM_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
126 pub(crate) const DEFAULT_VLLM_BASE_URL: &str = "http://localhost:8000/v1";
127 /// Unresolved local-Ollama default. A live `GET /v1/models` (Ollama's
128 /// OpenAI-compat catalog, same tags as `/api/tags`) must supply the real id;
129 /// this marker must never be sent as a model name.
130 pub(crate) const DEFAULT_OLLAMA_MODEL: &str = "unknown";
131 pub(crate) const DEFAULT_OLLAMA_BASE_URL: &str = "http://localhost:11434/v1";
132 pub(crate) const DEFAULT_OLLAMA_CLOUD_MODEL: &str = "gpt-oss:120b";
133 pub(crate) const DEFAULT_OLLAMA_CLOUD_BASE_URL: &str = "https://ollama.com/v1";
134
135 // Z.ai (GLM Coding Plan) defaults. GLM-5.3 is live on the Z.ai Coding Plan
136 // (2026-08-13) and is the default for new Z.ai routes. Capability/limit
137 // metadata still inherits from glm-5.2 until Z.ai publishes distinct 5.3
138 // numbers; no USD price is claimed. See models_dev.bundled.json
139 // `_meta.pending_release_metadata`. Explicit GLM-5.2 selections keep their
140 // own id: only the default moved.
141 pub(crate) const DEFAULT_ZAI_MODEL: &str = ZAI_GLM_5_3_MODEL;
142 pub(crate) const ZAI_GLM_5_3_MODEL: &str = "GLM-5.3";
143 pub(crate) const ZAI_GLM_5_3_FLASH_MODEL: &str = "GLM-5.3-Flash";
144 pub(crate) const ZAI_GLM_5_2_MODEL: &str = "GLM-5.2";
145 pub(crate) const ZAI_GLM_5_1_MODEL: &str = "GLM-5.1";
146 pub(crate) const ZAI_GLM_5_TURBO_MODEL: &str = "GLM-5-Turbo";
147 pub(crate) const DEFAULT_ZAI_BASE_URL: &str = "https://api.z.ai/api/coding/paas/v4";
148 // StepFun / StepFlash defaults
149 pub(crate) const DEFAULT_STEPFUN_MODEL: &str = "step-3.7-flash";
150 pub(crate) const DEFAULT_STEPFUN_BASE_URL: &str = "https://api.stepfun.ai/v1";
151 // MiniMax defaults
152 pub(crate) const DEFAULT_MINIMAX_MODEL: &str = "MiniMax-M3";
153 pub(crate) const MINIMAX_M2_7_MODEL: &str = "MiniMax-M2.7";
154 pub(crate) const MINIMAX_M2_7_HIGHSPEED_MODEL: &str = "MiniMax-M2.7-highspeed";
155 pub(crate) const MINIMAX_M2_5_MODEL: &str = "MiniMax-M2.5";
156 pub(crate) const MINIMAX_M2_5_HIGHSPEED_MODEL: &str = "MiniMax-M2.5-highspeed";
157 pub(crate) const MINIMAX_M2_1_MODEL: &str = "MiniMax-M2.1";
158 pub(crate) const MINIMAX_M2_1_HIGHSPEED_MODEL: &str = "MiniMax-M2.1-highspeed";
159 pub(crate) const MINIMAX_M2_MODEL: &str = "MiniMax-M2";
160 pub(crate) const DEFAULT_MINIMAX_BASE_URL: &str = "https://api.minimax.io/v1";
161 pub(crate) const DEFAULT_MINIMAX_ANTHROPIC_BASE_URL: &str = "https://api.minimax.io/anthropic";
162 pub(crate) const DEFAULT_DEEPINFRA_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
163 pub(crate) const DEFAULT_DEEPINFRA_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
164 pub(crate) const DEFAULT_DEEPINFRA_BASE_URL: &str = "https://api.deepinfra.com/v1/openai";
165 // Sakana AI Fugu defaults
166 pub(crate) const DEFAULT_SAKANA_MODEL: &str = "fugu";
167 pub(crate) const DEFAULT_SAKANA_BASE_URL: &str = "https://api.sakana.ai/v1";
168 // Meituan LongCat defaults
169 pub(crate) const DEFAULT_LONGCAT_MODEL: &str = "LongCat-2.0";
170 pub(crate) const DEFAULT_LONGCAT_BASE_URL: &str = "https://api.longcat.chat/openai/v1";
171 // OpenCode Go keeps its Chat default and resolves other model protocols from
172 // the shared opencode_go roster.
173 pub(crate) const DEFAULT_OPENCODE_GO_MODEL: &str = "deepseek-v4-pro";
174 pub(crate) const DEFAULT_OPENCODE_GO_BASE_URL: &str = "https://opencode.ai/zen/go/v1";
175 pub(crate) const OPENCODE_GO_GROK_4_5_MODEL: &str = "grok-4.5";
176 pub(crate) const OPENCODE_GO_GLM_5_2_MODEL: &str = "glm-5.2";
177 pub(crate) const OPENCODE_GO_GLM_5_1_MODEL: &str = "glm-5.1";
178 pub(crate) const OPENCODE_GO_KIMI_K3_MODEL: &str = "kimi-k3";
179 pub(crate) const OPENCODE_GO_KIMI_K2_7_CODE_MODEL: &str = "kimi-k2.7-code";
180 pub(crate) const OPENCODE_GO_KIMI_K2_6_MODEL: &str = "kimi-k2.6";
181 pub(crate) const OPENCODE_GO_DEEPSEEK_V4_FLASH_MODEL: &str = "deepseek-v4-flash";
182 pub(crate) const OPENCODE_GO_MIMO_V2_5_MODEL: &str = "mimo-v2.5";
183 pub(crate) const OPENCODE_GO_MIMO_V2_5_PRO_MODEL: &str = "mimo-v2.5-pro";
184
185 // OpenCode Zen is a model-aware gateway. The default is a documented
186 // Responses model, but every executable route must still obtain its protocol
187 // from a provider-scoped catalog offering.
188 pub(crate) const DEFAULT_OPENCODE_ZEN_MODEL: &str = "gpt-5.6";
189 pub(crate) const DEFAULT_OPENCODE_ZEN_BASE_URL: &str = "https://opencode.ai/zen/v1";
190 // Meta Model API / Muse Spark defaults
191 pub(crate) const DEFAULT_META_MODEL: &str = "muse-spark-1.2";
192 pub(crate) const DEFAULT_META_BASE_URL: &str = "https://api.meta.ai/v1";
193 // xAI / Grok API-key route defaults
194 pub(crate) const DEFAULT_XAI_MODEL: &str = "grok-4.6";
195 pub(crate) const DEFAULT_XAI_BASE_URL: &str = "https://api.x.ai/v1";
196 // Mistral AI (la Plateforme) defaults
197 pub(crate) const DEFAULT_MISTRAL_MODEL: &str = "mistral-code-latest";
198 pub(crate) const DEFAULT_MISTRAL_BASE_URL: &str = "https://api.mistral.ai/v1";
199 // TelecomJS (Jiangsu Telecom TokenHub) defaults
200 pub(crate) const DEFAULT_TELECOMJS_MODEL: &str = "deepseek-v4-pro";
201 pub(crate) const DEFAULT_TELECOMJS_BASE_URL: &str = "https://aigw.telecomjs.com/v1";
202 // Eden AI (OpenAI-compatible AI gateway) defaults
203 pub(crate) const DEFAULT_EDENAI_MODEL: &str = "deepseek/deepseek-v4-pro";
204 pub(crate) const DEFAULT_EDENAI_BASE_URL: &str = "https://api.edenai.run/v3";
205 // ZenMux (OpenAI-compatible AI gateway) defaults. Default model verified
206 // present in the live keyless catalog at https://zenmux.ai/api/v1/models.
207 pub(crate) const DEFAULT_ZENMUX_MODEL: &str = "deepseek/deepseek-v4.1-flash";
208 pub(crate) const DEFAULT_ZENMUX_BASE_URL: &str = "https://zenmux.ai/api/v1";
209 // Concentrate (OpenAI Responses-compatible AI gateway) defaults. Contract:
210 // https://concentrate.ai/docs/api-reference/introduction — base URL, bearer
211 // Universal API key, `POST /v1/responses`, unauthenticated `GET /v1/models`.
212 // The default is a plain catalog id (the gateway picks the upstream provider);
213 // `provider/model` pins a provider and `concentrate/auto` is the gateway router.
214 pub(crate) const DEFAULT_CONCENTRATE_MODEL: &str = "deepseek-v4-pro";
215 pub(crate) const DEFAULT_CONCENTRATE_BASE_URL: &str = "https://api.concentrate.ai/v1";
216 pub(crate) const DEFAULT_CSDN_MODEL: &str = "glm_for_coding";
217 pub(crate) const DEFAULT_CSDN_BASE_URL: &str = "https://ai.csdn.net/api/model/v1";
218 // Codewhale API (account-backed model access) defaults. The account control
219 // plane serves an OpenAI-shaped `GET /v1/models` whose rows carry the wire
220 // protocol per model, so this route is model-aware and its catalog is the
221 // account's own connected providers. The default is a bootstrap hint only.
222 pub(crate) const DEFAULT_CODEWHALE_MODEL: &str = "deepseek/deepseek-v4-pro";
223 pub(crate) const DEFAULT_CODEWHALE_BASE_URL: &str = "https://api.codewhale.net/v1";
224 // Alibaba Cloud Model Studio (DashScope) defaults
225 // Token Plan (Personal / Team): shared endpoint, OpenAI + Anthropic dialects
226 pub(crate) const DEFAULT_MODELSTUDIO_TOKEN_PLAN_MODEL: &str = "qwen3.8-max";
227 pub(crate) const DEFAULT_MODELSTUDIO_TOKEN_PLAN_BASE_URL: &str =
228 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1";
229 pub(crate) const MODELSTUDIO_TOKEN_PLAN_ANTHROPIC_BASE_URL: &str =
230 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic";
231 // Coding Plan: separate endpoint, OpenAI + Anthropic dialects
232 pub(crate) const DEFAULT_MODELSTUDIO_CODING_PLAN_BASE_URL: &str =
233 "https://coding-intl.dashscope.aliyuncs.com/v1";
234 pub(crate) const MODELSTUDIO_CODING_PLAN_ANTHROPIC_BASE_URL: &str =
235 "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic";
236
237 /// Google Gemini OpenAI-compatible Chat Completions base URL.
238 pub const DEFAULT_GOOGLE_BASE_URL: &str =
239 "https://generativelanguage.googleapis.com/v1beta/openai/";
240 /// Default Gemini model for the Google provider (preview flagship, 2026-08).
241 pub const DEFAULT_GOOGLE_MODEL: &str = "gemini-3.1-pro-preview";
242
243 /// Non-network endpoint for the legacy Antigravity configuration tombstone.
244 ///
245 /// `.invalid` is reserved and cannot resolve. Existing configuration remains
246 /// readable solely so Codewhale can guide the user to clear it safely.
247 pub const DEFAULT_ANTIGRAVITY_BASE_URL: &str = "https://legacy-antigravity.invalid";
248 /// Non-runnable model marker for the legacy Antigravity tombstone.
249 pub const DEFAULT_ANTIGRAVITY_MODEL: &str = "legacy-antigravity-disabled";
250
250 lines RUST