| 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 |