@@ -65,39 +65,47 @@ func providerSpecs() []ProviderSpec {
6565 APIProtocolID : "openai-chat-completions" , AdapterID : "kimi" ,
6666 },
6767 {
68- ProviderID : "z-ai" , DisplayName : "Z.AI" , DeploymentID : "z-ai-direct" , SortOrder : 7 ,
68+ ProviderID : "zai_coding" , DisplayName : "Z.AI — Coding Plan" , DeploymentID : "zai_coding-direct" , SortOrder : 7 ,
69+ RequiresKey : true , CredentialEnv : "ZAI_CODING_API_KEY" ,
70+ BaseURLEnv : []string {"ZAI_CODING_BASE_URL" , "ZAI_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
71+ ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://api.z.ai/api/coding/paas/v4" ,
72+ LiveFetcherKey : "zai_coding" , LiveCatalogKey : "zai_coding" ,
73+ APIProtocolID : "openai-chat-completions" , AdapterID : "zai_coding" ,
74+ },
75+ {
76+ ProviderID : "zai_payg" , DisplayName : "Z.AI — Pay-as-you-go" , DeploymentID : "zai_payg-direct" , SortOrder : 8 ,
6977 RequiresKey : true , CredentialEnv : "ZAI_API_KEY" ,
7078 BaseURLEnv : []string {"ZAI_BASE_URL" , "ZAI_API_BASE" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
7179 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://api.z.ai/api/paas/v4" ,
72- LiveFetcherKey : "z-ai " , LiveCatalogKey : "z-ai " ,
73- APIProtocolID : "openai-chat-completions" , AdapterID : "z-ai " ,
80+ LiveFetcherKey : "zai_payg " , LiveCatalogKey : "zai_payg " ,
81+ APIProtocolID : "openai-chat-completions" , AdapterID : "zai_payg " ,
7482 },
7583 {
76- ProviderID : "xiaomi_mimo_token_plan" , DisplayName : "Xiaomi MiMo — Token Plan" , DeploymentID : "xiaomi_mimo_token_plan-direct" , SortOrder : 8 ,
84+ ProviderID : "xiaomi_mimo_token_plan" , DisplayName : "Xiaomi MiMo — Token Plan" , DeploymentID : "xiaomi_mimo_token_plan-direct" , SortOrder : 9 ,
7785 RequiresKey : true , CredentialEnv : "XIAOMI_MIMO_TOKEN_PLAN_API_KEY" ,
7886 BaseURLEnv : []string {"XIAOMI_MIMO_TOKEN_PLAN_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
7987 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "" ,
8088 LiveFetcherKey : "xiaomi_mimo_token_plan" , LiveCatalogKey : "xiaomi_mimo_token_plan" ,
8189 APIProtocolID : "openai-chat-completions" , AdapterID : "xiaomi_mimo" ,
8290 },
8391 {
84- ProviderID : "xiaomi_mimo_payg" , DisplayName : "Xiaomi MiMo — Pay-as-you-go" , DeploymentID : "xiaomi_mimo_payg-direct" , SortOrder : 9 ,
92+ ProviderID : "xiaomi_mimo_payg" , DisplayName : "Xiaomi MiMo — Pay-as-you-go" , DeploymentID : "xiaomi_mimo_payg-direct" , SortOrder : 10 ,
8593 RequiresKey : true , CredentialEnv : "XIAOMI_MIMO_PAYG_API_KEY" ,
8694 BaseURLEnv : []string {"XIAOMI_MIMO_PAYG_BASE_URL" , "XIAOMI_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
8795 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://api.xiaomimimo.com/v1" ,
8896 LiveFetcherKey : "xiaomi_mimo_payg" , LiveCatalogKey : "xiaomi_mimo_payg" ,
8997 APIProtocolID : "openai-chat-completions" , AdapterID : "xiaomi_mimo" ,
9098 },
9199 {
92- ProviderID : "minimax_token_plan" , DisplayName : "MiniMax — Token Plan" , DeploymentID : "minimax_token_plan-direct" , SortOrder : 10 ,
100+ ProviderID : "minimax_token_plan" , DisplayName : "MiniMax — Token Plan" , DeploymentID : "minimax_token_plan-direct" , SortOrder : 11 ,
93101 RequiresKey : true , CredentialEnv : "MINIMAX_TOKEN_PLAN_API_KEY" ,
94102 BaseURLEnv : []string {"MINIMAX_TOKEN_PLAN_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
95103 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://api.minimax.io/v1" ,
96104 LiveFetcherKey : "minimax_token_plan" , LiveCatalogKey : "minimax_token_plan" ,
97105 APIProtocolID : "openai-chat-completions" , AdapterID : "openai" ,
98106 },
99107 {
100- ProviderID : "minimax_payg" , DisplayName : "MiniMax — Pay-as-you-go" , DeploymentID : "minimax_payg-direct" , SortOrder : 11 ,
108+ ProviderID : "minimax_payg" , DisplayName : "MiniMax — Pay-as-you-go" , DeploymentID : "minimax_payg-direct" , SortOrder : 12 ,
101109 RequiresKey : true , CredentialEnv : "MINIMAX_PAYG_API_KEY" ,
102110 BaseURLEnv : []string {"MINIMAX_PAYG_BASE_URL" , "MINIMAX_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
103111 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://api.minimax.io/v1" ,
@@ -107,15 +115,15 @@ func providerSpecs() []ProviderSpec {
107115
108116 // ── Cloud platform providers ──────────────────────────────────────
109117 {
110- ProviderID : "azure" , DisplayName : "Azure OpenAI" , DeploymentID : "openai-azure" , SortOrder : 12 ,
118+ ProviderID : "azure" , DisplayName : "Azure OpenAI" , DeploymentID : "openai-azure" , SortOrder : 13 ,
111119 RequiresKey : true , CredentialEnv : "AZURE_OPENAI_API_KEY" ,
112120 BaseURLEnv : []string {"AZURE_OPENAI_ENDPOINT" },
113121 ProbeKind : ProbeNone ,
114122 LiveFetcherKey : "azure" , LiveCatalogKey : "azure" ,
115123 APIProtocolID : "openai-chat-completions" , AdapterID : "openai-azure" ,
116124 },
117125 {
118- ProviderID : "bedrock" , DisplayName : "Amazon Bedrock" , DeploymentID : "anthropic-bedrock" , SortOrder : 13 ,
126+ ProviderID : "bedrock" , DisplayName : "Amazon Bedrock" , DeploymentID : "anthropic-bedrock" , SortOrder : 14 ,
119127 RequiresKey : true , CredentialEnv : "AWS_SECRET_ACCESS_KEY" ,
120128 CredentialEnvFallbacks : []string {"AWS_ACCESS_KEY_ID" , "AWS_SESSION_TOKEN" },
121129 BaseURLEnv : []string {"AWS_REGION" , "AWS_DEFAULT_REGION" },
@@ -124,7 +132,7 @@ func providerSpecs() []ProviderSpec {
124132 APIProtocolID : "anthropic-messages" , AdapterID : "anthropic-bedrock" ,
125133 },
126134 {
127- ProviderID : "vertex" , DisplayName : "Vertex AI" , DeploymentID : "gemini-vertex" , SortOrder : 14 ,
135+ ProviderID : "vertex" , DisplayName : "Vertex AI" , DeploymentID : "gemini-vertex" , SortOrder : 15 ,
128136 RequiresKey : true , CredentialEnv : "VERTEX_ACCESS_TOKEN" ,
129137 CredentialEnvFallbacks : []string {"GOOGLE_OAUTH_ACCESS_TOKEN" },
130138 BaseURLEnv : []string {"VERTEX_PROJECT_ID" , "VERTEX_REGION" },
@@ -135,7 +143,7 @@ func providerSpecs() []ProviderSpec {
135143
136144 // ── Aggregators ───────────────────────────────────────────────────
137145 {
138- ProviderID : "openrouter" , DisplayName : "OpenRouter" , DeploymentID : "openrouter" , SortOrder : 15 ,
146+ ProviderID : "openrouter" , DisplayName : "OpenRouter" , DeploymentID : "openrouter" , SortOrder : 16 ,
139147 RequiresKey : true , CredentialEnv : "OPENROUTER_API_KEY" ,
140148 BaseURLEnv : []string {"OPENROUTER_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
141149 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://openrouter.ai/api/v1" ,
@@ -145,15 +153,15 @@ func providerSpecs() []ProviderSpec {
145153
146154 // ── Niche ─────────────────────────────────────────────────────────
147155 {
148- ProviderID : "canopywave" , DisplayName : "CanopyWave" , DeploymentID : "canopywave" , SortOrder : 16 ,
156+ ProviderID : "canopywave" , DisplayName : "CanopyWave" , DeploymentID : "canopywave" , SortOrder : 17 ,
149157 RequiresKey : true , CredentialEnv : "CANOPYWAVE_API_KEY" ,
150158 BaseURLEnv : []string {"CANOPYWAVE_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
151159 ProbeKind : ProbeOpenAIModels , ProbeBaseURL : "https://inference.canopywave.io/v1" ,
152160 LiveFetcherKey : "canopywave" , LiveCatalogKey : "canopywave" ,
153161 APIProtocolID : "openai-chat-completions" , AdapterID : "canopywave" ,
154162 },
155163 {
156- ProviderID : "opencodego" , DisplayName : "OpenCode Go" , DeploymentID : "opencodego" , SortOrder : 17 ,
164+ ProviderID : "opencodego" , DisplayName : "OpenCode Go" , DeploymentID : "opencodego" , SortOrder : 18 ,
157165 RequiresKey : true , CredentialEnv : "OPENCODEGO_API_KEY" ,
158166 BaseURLEnv : []string {"OPENCODEGO_BASE_URL" , "OPENAI_BASE_URL" , "OPENAI_API_BASE" },
159167 ProbeKind : ProbeOpenAIModels ,
@@ -164,7 +172,7 @@ func providerSpecs() []ProviderSpec {
164172
165173 // ── Local ─────────────────────────────────────────────────────────
166174 {
167- ProviderID : "ollama" , DisplayName : "Ollama" , DeploymentID : "ollama-local" , SortOrder : 18 ,
175+ ProviderID : "ollama" , DisplayName : "Ollama" , DeploymentID : "ollama-local" , SortOrder : 19 ,
168176 RequiresKey : false , CredentialEnv : "OLLAMA_BASE_URL" ,
169177 BaseURLEnv : []string {"OLLAMA_BASE_URL" },
170178 ProbeKind : ProbeOllama ,
0 commit comments