返回 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 pub(crate) const DEFAULT_DEEPSEEK_MODEL: &str = "deepseek-v4-pro";
9 pub(crate) const DEFAULT_DEEPSEEK_ANTHROPIC_MODEL: &str = DEFAULT_DEEPSEEK_MODEL;
10 pub(crate) const DEFAULT_NVIDIA_NIM_MODEL: &str = "deepseek-ai/deepseek-v4-pro";
11 pub(crate) const DEFAULT_NVIDIA_NIM_FLASH_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
12 pub(crate) const DEFAULT_OPENAI_MODEL: &str = "deepseek-v4-pro";
13 pub(crate) const DEFAULT_DEEPSEEK_BASE_URL: &str = "https://api.deepseek.com/beta";
14 pub(crate) const DEFAULT_DEEPSEEK_ANTHROPIC_BASE_URL: &str = "https://api.deepseek.com/anthropic";
15 pub(crate) const DEFAULT_NVIDIA_NIM_BASE_URL: &str = "https://integrate.api.nvidia.com/v1";
16 pub(crate) const DEFAULT_OPENAI_CODEX_MODEL: &str = "gpt-5.6";
17 pub(crate) const DEFAULT_ANTHROPIC_MODEL: &str = "claude-sonnet-4-6";
18 pub(crate) const DEFAULT_ANTHROPIC_BASE_URL: &str = "https://api.anthropic.com";
19 pub(crate) const DEFAULT_OPENMODEL_MODEL: &str = "deepseek-v4-flash";
20 pub(crate) const DEFAULT_OPENMODEL_BASE_URL: &str = "https://api.openmodel.ai";
21 pub(crate) const DEFAULT_OPENAI_CODEX_BASE_URL: &str = "https://chatgpt.com/backend-api";
22 pub(crate) const DEFAULT_OPENAI_BASE_URL: &str = "https://api.openai.com/v1";
23 pub(crate) const DEFAULT_ATLASCLOUD_MODEL: &str = "deepseek-ai/deepseek-v4-flash";
24 pub(crate) const DEFAULT_ATLASCLOUD_BASE_URL: &str = "https://api.atlascloud.ai/v1";
25 pub(crate) const DEFAULT_WANJIE_ARK_MODEL: &str = "deepseek-reasoner";
26 pub(crate) const DEFAULT_WANJIE_ARK_BASE_URL: &str = "https://maas-openapi.wanjiedata.com/api/v1";
27 pub(crate) const DEFAULT_VOLCENGINE_MODEL: &str = "DeepSeek-V4-Pro";
28 pub(crate) const DEFAULT_VOLCENGINE_BASE_URL: &str =
29 "https://ark.cn-beijing.volces.com/api/coding/v3";
30 pub(crate) const DEFAULT_OPENROUTER_MODEL: &str = "deepseek/deepseek-v4-pro";
31 pub(crate) const DEFAULT_OPENROUTER_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
32 pub(crate) const OPENROUTER_ARCEE_TRINITY_LARGE_THINKING_MODEL: &str =
33 "arcee-ai/trinity-large-thinking";
34 pub(crate) const OPENROUTER_GEMMA_4_31B_MODEL: &str = "google/gemma-4-31b-it";
35 pub(crate) const OPENROUTER_GEMMA_4_26B_A4B_MODEL: &str = "google/gemma-4-26b-a4b-it";
36 pub(crate) const OPENROUTER_GLM_5_1_MODEL: &str = "z-ai/glm-5.1";
37 pub(crate) const OPENROUTER_GLM_5_2_MODEL: &str = "z-ai/glm-5.2";
38 // GLM-5.3: metadata INHERITED FROM glm-5.2 PENDING OFFICIAL Z.AI RELEASE
39 // METADATA (2026-08-03). Zhipu/Z.ai had not released GLM-5.3 on that date, so
40 // this id was never verified against OpenRouter's model metadata and cannot be
41 // until Z.ai ships it; it is registered so the alias resolves to OpenRouter
42 // rather than being rewritten to another vendor's model. See
43 // models_dev.bundled.json `_meta.pending_release_metadata`.
44 pub(crate) const OPENROUTER_GLM_5_3_MODEL: &str = "z-ai/glm-5.3";
45 pub(crate) const OPENROUTER_KIMI_K2_7_CODE_MODEL: &str = "moonshotai/kimi-k2.7-code";
46 pub(crate) const OPENROUTER_KIMI_K2_6_MODEL: &str = "moonshotai/kimi-k2.6";
47 pub(crate) const OPENROUTER_MINIMAX_M3_MODEL: &str = "minimax/minimax-m3";
48 pub(crate) const OPENROUTER_MINIMAX_M2_7_MODEL: &str = "minimax/minimax-m2.7";
49 pub(crate) const OPENROUTER_NEMOTRON_3_NANO_OMNI_MODEL: &str =
50 "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free";
51 pub(crate) const OPENROUTER_QWEN_3_6_FLASH_MODEL: &str = "qwen/qwen3.6-flash";
52 pub(crate) const OPENROUTER_QWEN_3_6_35B_A3B_MODEL: &str = "qwen/qwen3.6-35b-a3b";
53 pub(crate) const OPENROUTER_QWEN_3_6_MAX_PREVIEW_MODEL: &str = "qwen/qwen3.6-max-preview";
54 pub(crate) const OPENROUTER_QWEN_3_6_27B_MODEL: &str = "qwen/qwen3.6-27b";
55 pub(crate) const OPENROUTER_QWEN_3_6_PLUS_MODEL: &str = "qwen/qwen3.6-plus";
56 pub(crate) const OPENROUTER_QWEN_3_7_PLUS_MODEL: &str = "qwen/qwen3.7-plus";
57 pub(crate) const OPENROUTER_QWEN_3_7_MAX_MODEL: &str = "qwen/qwen3.7-max";
58 pub(crate) const OPENROUTER_TENCENT_HY3_PREVIEW_MODEL: &str = "tencent/hy3-preview";
59 pub(crate) const OPENROUTER_XIAOMI_MIMO_V2_5_PRO_MODEL: &str = "xiaomi/mimo-v2.5-pro";
60 pub(crate) const OPENROUTER_XIAOMI_MIMO_V2_5_MODEL: &str = "xiaomi/mimo-v2.5";
61 pub(crate) const DEFAULT_XIAOMI_MIMO_MODEL: &str = "mimo-v2.5-pro";
62 pub(crate) const XIAOMI_MIMO_V2_5_PRO_ULTRASPEED_MODEL: &str = "mimo-v2.5-pro-ultraspeed";
63 pub(crate) const XIAOMI_MIMO_V2_5_OMNI_MODEL: &str = "mimo-v2.5";
64 pub(crate) const XIAOMI_MIMO_ASR_MODEL: &str = "mimo-v2.5-asr";
65 pub(crate) const XIAOMI_MIMO_TTS_MODEL: &str = "mimo-v2.5-tts";
66 pub(crate) const XIAOMI_MIMO_TTS_VOICE_DESIGN_MODEL: &str = "mimo-v2.5-tts-voicedesign";
67 pub(crate) const XIAOMI_MIMO_TTS_VOICE_CLONE_MODEL: &str = "mimo-v2.5-tts-voiceclone";
68 pub(crate) const XIAOMI_MIMO_V2_TTS_MODEL: &str = "mimo-v2-tts";
69 pub(crate) const DEFAULT_NOVITA_MODEL: &str = "deepseek/deepseek-v4-pro";
70 pub(crate) const DEFAULT_NOVITA_FLASH_MODEL: &str = "deepseek/deepseek-v4-flash";
71 pub(crate) const DEFAULT_FIREWORKS_MODEL: &str = "accounts/fireworks/models/deepseek-v4-pro";
72 pub(crate) const DEFAULT_SILICONFLOW_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
73 pub(crate) const DEFAULT_SILICONFLOW_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
74 pub(crate) const DEFAULT_ARCEE_MODEL: &str = "trinity-large-thinking";
75 pub(crate) const ARCEE_TRINITY_LARGE_PREVIEW_MODEL: &str = "trinity-large-preview";
76 pub(crate) const ARCEE_TRINITY_MINI_MODEL: &str = "trinity-mini";
77 pub(crate) const DEFAULT_MOONSHOT_MODEL: &str = "kimi-k2.7-code";
78 pub(crate) const MOONSHOT_KIMI_K2_6_MODEL: &str = "kimi-k2.6";
79 pub(crate) const DEFAULT_MOONSHOT_BASE_URL: &str = "https://api.moonshot.ai/v1";
80 pub(crate) const DEFAULT_KIMI_CODE_MODEL: &str = "kimi-for-coding";
81 pub(crate) const DEFAULT_KIMI_CODE_BASE_URL: &str = "https://api.kimi.com/coding/v1";
82 pub(crate) const DEFAULT_SGLANG_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
83 pub(crate) const DEFAULT_SGLANG_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
84 pub(crate) const DEFAULT_OPENROUTER_BASE_URL: &str = "https://openrouter.ai/api/v1";
85 pub(crate) const XIAOMI_MIMO_PAY_AS_YOU_GO_BASE_URL: &str = "https://api.xiaomimimo.com/v1";
86 pub(crate) const DEFAULT_XIAOMI_MIMO_BASE_URL: &str = "https://token-plan-sgp.xiaomimimo.com/v1";
87 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_CN_BASE_URL: &str =
88 "https://token-plan-cn.xiaomimimo.com/v1";
89 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_SGP_BASE_URL: &str = DEFAULT_XIAOMI_MIMO_BASE_URL;
90 pub(crate) const XIAOMI_MIMO_TOKEN_PLAN_AMS_BASE_URL: &str =
91 "https://token-plan-ams.xiaomimimo.com/v1";
92 pub(crate) const DEFAULT_NOVITA_BASE_URL: &str = "https://api.novita.ai/openai/v1";
93 pub(crate) const DEFAULT_FIREWORKS_BASE_URL: &str = "https://api.fireworks.ai/inference/v1";
94 pub(crate) const DEFAULT_SILICONFLOW_BASE_URL: &str = "https://api.siliconflow.com/v1";
95 pub(crate) const DEFAULT_SILICONFLOW_CN_BASE_URL: &str = "https://api.siliconflow.cn/v1";
96 pub(crate) const DEFAULT_ARCEE_BASE_URL: &str = "https://api.arcee.ai/api/v1";
97 pub(crate) const DEFAULT_HUGGINGFACE_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
98 pub(crate) const DEFAULT_HUGGINGFACE_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
99 pub(crate) const DEFAULT_HUGGINGFACE_BASE_URL: &str = "https://router.huggingface.co/v1";
100 pub(crate) const DEFAULT_TOGETHER_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
101 pub(crate) const DEFAULT_TOGETHER_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
102 pub(crate) const DEFAULT_TOGETHER_BASE_URL: &str = "https://api.together.xyz/v1";
103 pub(crate) const DEFAULT_QIANFAN_MODEL: &str = "ernie-4.0-turbo-8k";
104 pub(crate) const DEFAULT_QIANFAN_BASE_URL: &str = "https://api.baiduqianfan.ai/v1";
105 pub(crate) const DEFAULT_SGLANG_BASE_URL: &str = "http://localhost:30000/v1";
106 pub(crate) const DEFAULT_VLLM_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
107 pub(crate) const DEFAULT_VLLM_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
108 pub(crate) const DEFAULT_VLLM_BASE_URL: &str = "http://localhost:8000/v1";
109 pub(crate) const DEFAULT_OLLAMA_MODEL: &str = "deepseek-v4-flash";
110 pub(crate) const DEFAULT_OLLAMA_BASE_URL: &str = "http://localhost:11434/v1";
111
112 // Z.ai (GLM Coding Plan) defaults
113 pub(crate) const DEFAULT_ZAI_MODEL: &str = "GLM-5.2";
114 // GLM-5.3 is a peer of the default, never the default. Its capability/limit
115 // metadata is INHERITED FROM glm-5.2 PENDING OFFICIAL Z.AI RELEASE METADATA
116 // (2026-08-03). See models_dev.bundled.json `_meta.pending_release_metadata`.
117 pub(crate) const ZAI_GLM_5_3_MODEL: &str = "GLM-5.3";
118 pub(crate) const ZAI_GLM_5_1_MODEL: &str = "GLM-5.1";
119 pub(crate) const ZAI_GLM_5_TURBO_MODEL: &str = "GLM-5-Turbo";
120 pub(crate) const DEFAULT_ZAI_BASE_URL: &str = "https://api.z.ai/api/coding/paas/v4";
121 // StepFun / StepFlash defaults
122 pub(crate) const DEFAULT_STEPFUN_MODEL: &str = "step-3.7-flash";
123 pub(crate) const DEFAULT_STEPFUN_BASE_URL: &str = "https://api.stepfun.ai/v1";
124 // MiniMax defaults
125 pub(crate) const DEFAULT_MINIMAX_MODEL: &str = "MiniMax-M3";
126 pub(crate) const MINIMAX_M2_7_MODEL: &str = "MiniMax-M2.7";
127 pub(crate) const MINIMAX_M2_7_HIGHSPEED_MODEL: &str = "MiniMax-M2.7-highspeed";
128 pub(crate) const MINIMAX_M2_5_MODEL: &str = "MiniMax-M2.5";
129 pub(crate) const MINIMAX_M2_5_HIGHSPEED_MODEL: &str = "MiniMax-M2.5-highspeed";
130 pub(crate) const MINIMAX_M2_1_MODEL: &str = "MiniMax-M2.1";
131 pub(crate) const MINIMAX_M2_1_HIGHSPEED_MODEL: &str = "MiniMax-M2.1-highspeed";
132 pub(crate) const MINIMAX_M2_MODEL: &str = "MiniMax-M2";
133 pub(crate) const DEFAULT_MINIMAX_BASE_URL: &str = "https://api.minimax.io/v1";
134 pub(crate) const DEFAULT_MINIMAX_ANTHROPIC_BASE_URL: &str = "https://api.minimax.io/anthropic";
135 pub(crate) const DEFAULT_DEEPINFRA_MODEL: &str = "deepseek-ai/DeepSeek-V4-Pro";
136 pub(crate) const DEFAULT_DEEPINFRA_FLASH_MODEL: &str = "deepseek-ai/DeepSeek-V4-Flash";
137 pub(crate) const DEFAULT_DEEPINFRA_BASE_URL: &str = "https://api.deepinfra.com/v1/openai";
138 // Sakana AI Fugu defaults
139 pub(crate) const DEFAULT_SAKANA_MODEL: &str = "fugu";
140 pub(crate) const DEFAULT_SAKANA_BASE_URL: &str = "https://api.sakana.ai/v1";
141 // Meituan LongCat defaults
142 pub(crate) const DEFAULT_LONGCAT_MODEL: &str = "LongCat-2.0";
143 pub(crate) const DEFAULT_LONGCAT_BASE_URL: &str = "https://api.longcat.chat/openai/v1";
144 // OpenCode Go Chat Completions defaults. The Go catalog also contains models
145 // served only through Anthropic Messages; those are deliberately not listed by
146 // this provider until Codewhale can route wire formats per model.
147 pub(crate) const DEFAULT_OPENCODE_GO_MODEL: &str = "deepseek-v4-pro";
148 pub(crate) const DEFAULT_OPENCODE_GO_BASE_URL: &str = "https://opencode.ai/zen/go/v1";
149 pub(crate) const OPENCODE_GO_GROK_4_5_MODEL: &str = "grok-4.5";
150 pub(crate) const OPENCODE_GO_GLM_5_2_MODEL: &str = "glm-5.2";
151 pub(crate) const OPENCODE_GO_GLM_5_1_MODEL: &str = "glm-5.1";
152 pub(crate) const OPENCODE_GO_KIMI_K3_MODEL: &str = "kimi-k3";
153 pub(crate) const OPENCODE_GO_KIMI_K2_7_CODE_MODEL: &str = "kimi-k2.7-code";
154 pub(crate) const OPENCODE_GO_KIMI_K2_6_MODEL: &str = "kimi-k2.6";
155 pub(crate) const OPENCODE_GO_DEEPSEEK_V4_FLASH_MODEL: &str = "deepseek-v4-flash";
156 pub(crate) const OPENCODE_GO_MIMO_V2_5_MODEL: &str = "mimo-v2.5";
157 pub(crate) const OPENCODE_GO_MIMO_V2_5_PRO_MODEL: &str = "mimo-v2.5-pro";
158
159 // OpenCode Zen is a model-aware gateway. The default is a documented
160 // Responses model, but every executable route must still obtain its protocol
161 // from a provider-scoped catalog offering.
162 pub(crate) const DEFAULT_OPENCODE_ZEN_MODEL: &str = "gpt-5.6";
163 pub(crate) const DEFAULT_OPENCODE_ZEN_BASE_URL: &str = "https://opencode.ai/zen/v1";
164 // Meta Model API / Muse Spark defaults
165 pub(crate) const DEFAULT_META_MODEL: &str = "muse-spark-1.2";
166 pub(crate) const DEFAULT_META_BASE_URL: &str = "https://api.meta.ai/v1";
167 // xAI / Grok API-key route defaults
168 pub(crate) const DEFAULT_XAI_MODEL: &str = "grok-4.5";
169 pub(crate) const DEFAULT_XAI_BASE_URL: &str = "https://api.x.ai/v1";
170 // TelecomJS (Jiangsu Telecom TokenHub) defaults
171 pub(crate) const DEFAULT_TELECOMJS_MODEL: &str = "deepseek-v4-pro";
172 pub(crate) const DEFAULT_TELECOMJS_BASE_URL: &str = "https://aigw.telecomjs.com/v1";
173 // Alibaba Cloud Model Studio (DashScope) defaults
174 // Token Plan (Personal / Team): shared endpoint, OpenAI + Anthropic dialects
175 pub(crate) const DEFAULT_MODELSTUDIO_TOKEN_PLAN_MODEL: &str = "qwen3.8-max";
176 pub(crate) const DEFAULT_MODELSTUDIO_TOKEN_PLAN_BASE_URL: &str =
177 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1";
178 pub(crate) const MODELSTUDIO_TOKEN_PLAN_ANTHROPIC_BASE_URL: &str =
179 "https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic";
180 // Coding Plan: separate endpoint, OpenAI + Anthropic dialects
181 pub(crate) const DEFAULT_MODELSTUDIO_CODING_PLAN_BASE_URL: &str =
182 "https://coding-intl.dashscope.aliyuncs.com/v1";
183 pub(crate) const MODELSTUDIO_CODING_PLAN_ANTHROPIC_BASE_URL: &str =
184 "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic";
185
185 lines RUST