anygate 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,390 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/providers/provider-templates.ts
4
+ var PROVIDER_TEMPLATES = [
5
+ {
6
+ id: "groq",
7
+ name: "Groq",
8
+ authType: "api",
9
+ npm: "@ai-sdk/groq",
10
+ defaultBaseUrl: "https://api.groq.com/openai/v1",
11
+ signupUrl: "https://console.groq.com/keys",
12
+ modelSource: "api-list",
13
+ supported: true
14
+ },
15
+ {
16
+ id: "nvidia",
17
+ name: "Nvidia",
18
+ authType: "api",
19
+ npm: "@ai-sdk/openai-compatible",
20
+ defaultBaseUrl: "https://integrate.api.nvidia.com/v1",
21
+ signupUrl: "https://build.nvidia.com",
22
+ modelSource: "api-list",
23
+ supported: true
24
+ },
25
+ {
26
+ id: "mistral",
27
+ name: "Mistral",
28
+ authType: "api",
29
+ npm: "@ai-sdk/mistral",
30
+ defaultBaseUrl: "https://api.mistral.ai/v1",
31
+ signupUrl: "https://console.mistral.ai/api-keys",
32
+ modelSource: "api-list",
33
+ supported: true
34
+ },
35
+ {
36
+ id: "togetherai",
37
+ name: "Together AI",
38
+ authType: "api",
39
+ npm: "@ai-sdk/togetherai",
40
+ defaultBaseUrl: "https://api.together.xyz/v1",
41
+ signupUrl: "https://api.together.xyz/settings/api-keys",
42
+ modelSource: "api-list",
43
+ supported: true
44
+ },
45
+ {
46
+ id: "cerebras",
47
+ name: "Cerebras",
48
+ authType: "api",
49
+ npm: "@ai-sdk/cerebras",
50
+ defaultBaseUrl: "https://api.cerebras.ai/v1",
51
+ signupUrl: "https://cloud.cerebras.ai",
52
+ modelSource: "api-list",
53
+ supported: true
54
+ },
55
+ {
56
+ id: "deepinfra",
57
+ name: "DeepInfra",
58
+ authType: "api",
59
+ npm: "@ai-sdk/deepinfra",
60
+ defaultBaseUrl: "https://api.deepinfra.com/v1/openai",
61
+ signupUrl: "https://deepinfra.com/dash/api_keys",
62
+ modelSource: "api-list",
63
+ supported: true
64
+ },
65
+ {
66
+ id: "deepseek",
67
+ name: "DeepSeek",
68
+ authType: "api",
69
+ npm: "@ai-sdk/openai-compatible",
70
+ defaultBaseUrl: "https://api.deepseek.com/v1",
71
+ signupUrl: "https://platform.deepseek.com",
72
+ modelSource: "api-list",
73
+ supported: true
74
+ },
75
+ {
76
+ id: "zhipu",
77
+ name: "Zhipu AI (GLM)",
78
+ authType: "api",
79
+ npm: "@ai-sdk/openai-compatible",
80
+ defaultBaseUrl: "https://open.bigmodel.cn/api/paas/v4",
81
+ signupUrl: "https://open.bigmodel.cn",
82
+ modelSource: "api-list",
83
+ supported: true
84
+ },
85
+ {
86
+ id: "moonshot",
87
+ name: "Moonshot (Kimi)",
88
+ authType: "api",
89
+ npm: "@ai-sdk/openai-compatible",
90
+ defaultBaseUrl: "https://api.moonshot.cn/v1",
91
+ signupUrl: "https://platform.moonshot.cn",
92
+ modelSource: "api-list",
93
+ supported: true
94
+ },
95
+ {
96
+ id: "moonshot-global",
97
+ name: "Moonshot Global (kimi.ai)",
98
+ authType: "api",
99
+ npm: "@ai-sdk/openai-compatible",
100
+ defaultBaseUrl: "https://api.moonshot.ai/v1",
101
+ signupUrl: "https://platform.kimi.ai",
102
+ modelSource: "api-list",
103
+ supported: true
104
+ },
105
+ {
106
+ id: "kimi-code",
107
+ name: "Kimi Code (Subscription Required)",
108
+ authType: "api",
109
+ npm: "@ai-sdk/openai-compatible",
110
+ defaultBaseUrl: "https://api.kimi.com/coding/v1",
111
+ modelSource: "static-seed",
112
+ staticModels: [
113
+ { id: "kimi-for-coding", name: "Kimi Code K2.7 (Unified)" }
114
+ ],
115
+ supported: true
116
+ },
117
+ {
118
+ id: "xai",
119
+ name: "xAI",
120
+ authType: "api",
121
+ npm: "@ai-sdk/xai",
122
+ defaultBaseUrl: "https://api.x.ai/v1",
123
+ signupUrl: "https://console.x.ai",
124
+ modelSource: "api-list",
125
+ supported: true
126
+ },
127
+ {
128
+ id: "perplexity",
129
+ name: "Perplexity",
130
+ authType: "api",
131
+ npm: "@ai-sdk/perplexity",
132
+ defaultBaseUrl: "https://api.perplexity.ai",
133
+ signupUrl: "https://www.perplexity.ai/settings/api",
134
+ modelSource: "api-list",
135
+ supported: true
136
+ },
137
+ {
138
+ id: "cohere",
139
+ name: "Cohere",
140
+ authType: "api",
141
+ npm: "@ai-sdk/cohere",
142
+ defaultBaseUrl: "https://api.cohere.com/compatibility/v1",
143
+ signupUrl: "https://dashboard.cohere.com/api-keys",
144
+ modelSource: "api-list",
145
+ supported: true
146
+ },
147
+ {
148
+ id: "openai",
149
+ name: "OpenAI",
150
+ authType: "api",
151
+ npm: "@ai-sdk/openai",
152
+ defaultBaseUrl: "https://api.openai.com/v1",
153
+ signupUrl: "https://platform.openai.com/api-keys",
154
+ modelSource: "api-list",
155
+ supported: true
156
+ },
157
+ {
158
+ id: "google",
159
+ name: "Google Gemini",
160
+ authType: "api",
161
+ npm: "@ai-sdk/google",
162
+ defaultBaseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
163
+ signupUrl: "https://aistudio.google.com/apikey",
164
+ modelSource: "api-list",
165
+ supported: true
166
+ },
167
+ {
168
+ id: "alibaba",
169
+ name: "Alibaba DashScope",
170
+ authType: "api",
171
+ npm: "@ai-sdk/alibaba",
172
+ defaultBaseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
173
+ signupUrl: "https://dashscope.console.aliyun.com/apiKey",
174
+ modelSource: "api-list",
175
+ supported: true
176
+ },
177
+ {
178
+ id: "openrouter",
179
+ name: "OpenRouter",
180
+ authType: "api",
181
+ npm: "@openrouter/ai-sdk-provider",
182
+ defaultBaseUrl: "https://openrouter.ai/api/v1",
183
+ signupUrl: "https://openrouter.ai/keys",
184
+ modelSource: "api-list",
185
+ supported: true
186
+ },
187
+ {
188
+ id: "kilo",
189
+ name: "Kilo Code",
190
+ authType: "api",
191
+ npm: "@ai-sdk/openai-compatible",
192
+ defaultBaseUrl: "https://api.kilo.ai/api/gateway",
193
+ modelsPath: "/models",
194
+ signupUrl: "https://app.kilo.ai",
195
+ apiKeyOptional: true,
196
+ anonymousFreeModels: true,
197
+ modelSource: "api-list",
198
+ supported: true
199
+ },
200
+ {
201
+ id: "ollama",
202
+ name: "Ollama",
203
+ authType: "api",
204
+ npm: "@ai-sdk/openai-compatible",
205
+ defaultBaseUrl: "http://127.0.0.1:11434/v1",
206
+ urlPrompt: "Ollama API Base URL:",
207
+ apiKeyOptional: true,
208
+ modelSource: "api-list",
209
+ supported: true
210
+ },
211
+ {
212
+ id: "lmstudio",
213
+ name: "LM Studio",
214
+ authType: "api",
215
+ npm: "@ai-sdk/openai-compatible",
216
+ defaultBaseUrl: "http://127.0.0.1:1234/v1",
217
+ urlPrompt: "LM Studio API Base URL:",
218
+ apiKeyOptional: true,
219
+ modelSource: "api-list",
220
+ supported: true
221
+ },
222
+ {
223
+ id: "venice",
224
+ name: "Venice AI",
225
+ authType: "api",
226
+ npm: "venice-ai-sdk-provider",
227
+ defaultBaseUrl: "https://api.venice.ai/api/v1",
228
+ signupUrl: "https://venice.ai/settings/api",
229
+ modelSource: "api-list",
230
+ supported: true
231
+ },
232
+ {
233
+ id: "anthropic",
234
+ name: "Anthropic",
235
+ authType: "api",
236
+ npm: "@ai-sdk/anthropic",
237
+ defaultBaseUrl: "https://api.anthropic.com",
238
+ signupUrl: "https://console.anthropic.com/settings/keys",
239
+ modelSource: "api-list",
240
+ supported: true
241
+ },
242
+ {
243
+ id: "bedrock",
244
+ name: "Amazon Bedrock",
245
+ authType: "api",
246
+ npm: "@ai-sdk/amazon-bedrock",
247
+ modelSource: "manual-only",
248
+ supported: false,
249
+ unsupportedReason: "Requires AWS credentials \u2014 use anygate providers import from OpenCode for now."
250
+ },
251
+ {
252
+ id: "azure",
253
+ name: "Azure OpenAI",
254
+ authType: "api",
255
+ npm: "@ai-sdk/azure",
256
+ modelSource: "manual-only",
257
+ supported: false,
258
+ unsupportedReason: "Requires Azure deployment URLs \u2014 use anygate providers import from OpenCode for now."
259
+ },
260
+ {
261
+ id: "vertex",
262
+ name: "Google Vertex AI",
263
+ authType: "none",
264
+ npm: "@ai-sdk/google-vertex",
265
+ modelSource: "manual-only",
266
+ supported: false,
267
+ unsupportedReason: "Uses gcloud Application Default Credentials \u2014 not supported via API key import."
268
+ },
269
+ {
270
+ id: "opencode-cloud",
271
+ name: "OpenCode Zen / Go",
272
+ authType: "api",
273
+ npm: "@ai-sdk/openai-compatible",
274
+ signupUrl: "https://opencode.ai/auth",
275
+ modelSource: "zen-go-api",
276
+ supported: true
277
+ },
278
+ {
279
+ id: "zen",
280
+ name: "OpenCode Zen",
281
+ authType: "api",
282
+ npm: "@ai-sdk/openai-compatible",
283
+ signupUrl: "https://opencode.ai/auth",
284
+ modelSource: "zen-go-api",
285
+ supported: true,
286
+ addable: false
287
+ },
288
+ {
289
+ id: "go",
290
+ name: "OpenCode Go",
291
+ authType: "api",
292
+ npm: "@ai-sdk/openai-compatible",
293
+ signupUrl: "https://opencode.ai/auth",
294
+ modelSource: "zen-go-api",
295
+ supported: true,
296
+ addable: false
297
+ },
298
+ // Subscription OAuth providers — Authorization Code + PKCE (browser redirect)
299
+ // ⚠️ These extract tokens from paid subscriptions. Account risk — see plan docs.
300
+ {
301
+ id: "claude-code",
302
+ name: "Claude Code (Anthropic subscription)",
303
+ authType: "oauth",
304
+ npm: "@ai-sdk/anthropic",
305
+ defaultBaseUrl: "https://api.anthropic.com",
306
+ signupUrl: "https://claude.ai",
307
+ modelSource: "api-list",
308
+ supported: true,
309
+ hidden: true,
310
+ subscriptionRisk: true
311
+ },
312
+ {
313
+ id: "antigravity",
314
+ name: "Antigravity (Google Cloud Code Assist)",
315
+ authType: "oauth",
316
+ npm: "@ai-sdk/openai-compatible",
317
+ signupUrl: "https://antigravity.google",
318
+ modelSource: "api-list",
319
+ supported: true,
320
+ hidden: true,
321
+ subscriptionRisk: true
322
+ },
323
+ // OAuth-gated subscription providers — device code or broker sign-in
324
+ {
325
+ id: "xai-oauth",
326
+ name: "xAI Grok (SuperGrok)",
327
+ authType: "oauth",
328
+ npm: "@ai-sdk/xai",
329
+ signupUrl: "https://x.ai",
330
+ modelSource: "api-list",
331
+ supported: true
332
+ },
333
+ {
334
+ id: "openai-oauth",
335
+ name: "OpenAI (ChatGPT)",
336
+ authType: "oauth",
337
+ npm: "@ai-sdk/openai",
338
+ signupUrl: "https://chatgpt.com",
339
+ modelSource: "api-list",
340
+ supported: true
341
+ },
342
+ {
343
+ id: "github-copilot",
344
+ name: "GitHub Copilot",
345
+ authType: "oauth",
346
+ npm: "@ai-sdk/openai-compatible",
347
+ defaultBaseUrl: "https://api.githubcopilot.com",
348
+ modelsPath: "/models",
349
+ signupUrl: "https://github.com/features/copilot",
350
+ modelSource: "api-list",
351
+ headers: { "Editor-Version": "vscode/1.85.1" },
352
+ supported: true
353
+ }
354
+ ];
355
+ function listSupportedTemplates() {
356
+ return PROVIDER_TEMPLATES.filter((t) => t.supported && t.authType === "api" && t.addable !== false && !t.hidden).sort((a, b) => a.name.localeCompare(b.name));
357
+ }
358
+ function listAddableTemplates(configuredIds = []) {
359
+ const configured = new Set(configuredIds);
360
+ return listSupportedTemplates().filter((t) => {
361
+ if (t.id === "opencode-cloud") {
362
+ return !configured.has("zen") && !configured.has("go");
363
+ }
364
+ return !configured.has(t.id);
365
+ });
366
+ }
367
+ function listVisibleOAuthTemplates(configuredIds = []) {
368
+ const configured = new Set(configuredIds);
369
+ return PROVIDER_TEMPLATES.filter((t) => t.authType === "oauth" && t.supported && t.addable !== false && !t.hidden && !configured.has(t.id)).sort((a, b) => a.name.localeCompare(b.name));
370
+ }
371
+ function getTemplateById(id) {
372
+ return PROVIDER_TEMPLATES.find((t) => t.id === id);
373
+ }
374
+ function filterTemplates(templates, query) {
375
+ const q = query.trim().toLowerCase();
376
+ if (!q) return templates;
377
+ return templates.filter(
378
+ (t) => t.id.toLowerCase().includes(q) || t.name.toLowerCase().includes(q) || t.npm.toLowerCase().includes(q)
379
+ );
380
+ }
381
+
382
+ export {
383
+ PROVIDER_TEMPLATES,
384
+ listSupportedTemplates,
385
+ listAddableTemplates,
386
+ listVisibleOAuthTemplates,
387
+ getTemplateById,
388
+ filterTemplates
389
+ };
390
+ //# sourceMappingURL=chunk-YYSUTRMV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/provider-templates.ts"],"sourcesContent":["// src/provider-templates.ts — builtin provider templates for anygate providers add\r\n\r\nexport type ProviderAuthType = 'api' | 'oauth' | 'none';\r\nexport type ProviderModelSource = 'api-list' | 'static-seed' | 'manual-only' | 'zen-go-api';\r\n\r\nexport interface ProviderTemplate {\r\n id: string;\r\n name: string;\r\n authType: ProviderAuthType;\r\n npm: string;\r\n defaultBaseUrl?: string;\r\n modelsPath?: string;\r\n signupUrl?: string;\r\n urlPlaceholder?: string;\r\n urlPrompt?: string;\r\n apiKeyOptional?: boolean;\r\n anonymousFreeModels?: boolean;\r\n /** Static headers this provider requires on every request (model listing and runtime). */\r\n headers?: Record<string, string>;\r\n modelSource: ProviderModelSource;\r\n staticModels?: Array<{ id: string; name: string }>;\r\n supported: boolean;\r\n addable?: boolean;\r\n hidden?: boolean;\r\n unsupportedReason?: string;\r\n /** True for providers that extract subscription tokens — carries account risk. */\r\n subscriptionRisk?: boolean;\r\n}\r\n\r\n/** Templates aligned with SDK packages shipped in package.json (API-key providers first). */\r\nexport const PROVIDER_TEMPLATES: ProviderTemplate[] = [\r\n {\r\n id: 'groq',\r\n name: 'Groq',\r\n authType: 'api',\r\n npm: '@ai-sdk/groq',\r\n defaultBaseUrl: 'https://api.groq.com/openai/v1',\r\n signupUrl: 'https://console.groq.com/keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'nvidia',\r\n name: 'Nvidia',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://integrate.api.nvidia.com/v1',\r\n signupUrl: 'https://build.nvidia.com',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'mistral',\r\n name: 'Mistral',\r\n authType: 'api',\r\n npm: '@ai-sdk/mistral',\r\n defaultBaseUrl: 'https://api.mistral.ai/v1',\r\n signupUrl: 'https://console.mistral.ai/api-keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'togetherai',\r\n name: 'Together AI',\r\n authType: 'api',\r\n npm: '@ai-sdk/togetherai',\r\n defaultBaseUrl: 'https://api.together.xyz/v1',\r\n signupUrl: 'https://api.together.xyz/settings/api-keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'cerebras',\r\n name: 'Cerebras',\r\n authType: 'api',\r\n npm: '@ai-sdk/cerebras',\r\n defaultBaseUrl: 'https://api.cerebras.ai/v1',\r\n signupUrl: 'https://cloud.cerebras.ai',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'deepinfra',\r\n name: 'DeepInfra',\r\n authType: 'api',\r\n npm: '@ai-sdk/deepinfra',\r\n defaultBaseUrl: 'https://api.deepinfra.com/v1/openai',\r\n signupUrl: 'https://deepinfra.com/dash/api_keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'deepseek',\r\n name: 'DeepSeek',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.deepseek.com/v1',\r\n signupUrl: 'https://platform.deepseek.com',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'zhipu',\r\n name: 'Zhipu AI (GLM)',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://open.bigmodel.cn/api/paas/v4',\r\n signupUrl: 'https://open.bigmodel.cn',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'moonshot',\r\n name: 'Moonshot (Kimi)',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.moonshot.cn/v1',\r\n signupUrl: 'https://platform.moonshot.cn',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'moonshot-global',\r\n name: 'Moonshot Global (kimi.ai)',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.moonshot.ai/v1',\r\n signupUrl: 'https://platform.kimi.ai',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'kimi-code',\r\n name: 'Kimi Code (Subscription Required)',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.kimi.com/coding/v1',\r\n modelSource: 'static-seed',\r\n staticModels: [\r\n { id: 'kimi-for-coding', name: 'Kimi Code K2.7 (Unified)' }\r\n ],\r\n supported: true,\r\n },\r\n {\r\n id: 'xai',\r\n name: 'xAI',\r\n authType: 'api',\r\n npm: '@ai-sdk/xai',\r\n defaultBaseUrl: 'https://api.x.ai/v1',\r\n signupUrl: 'https://console.x.ai',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'perplexity',\r\n name: 'Perplexity',\r\n authType: 'api',\r\n npm: '@ai-sdk/perplexity',\r\n defaultBaseUrl: 'https://api.perplexity.ai',\r\n signupUrl: 'https://www.perplexity.ai/settings/api',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'cohere',\r\n name: 'Cohere',\r\n authType: 'api',\r\n npm: '@ai-sdk/cohere',\r\n defaultBaseUrl: 'https://api.cohere.com/compatibility/v1',\r\n signupUrl: 'https://dashboard.cohere.com/api-keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'openai',\r\n name: 'OpenAI',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai',\r\n defaultBaseUrl: 'https://api.openai.com/v1',\r\n signupUrl: 'https://platform.openai.com/api-keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'google',\r\n name: 'Google Gemini',\r\n authType: 'api',\r\n npm: '@ai-sdk/google',\r\n defaultBaseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai',\r\n signupUrl: 'https://aistudio.google.com/apikey',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'alibaba',\r\n name: 'Alibaba DashScope',\r\n authType: 'api',\r\n npm: '@ai-sdk/alibaba',\r\n defaultBaseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\r\n signupUrl: 'https://dashscope.console.aliyun.com/apiKey',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'openrouter',\r\n name: 'OpenRouter',\r\n authType: 'api',\r\n npm: '@openrouter/ai-sdk-provider',\r\n defaultBaseUrl: 'https://openrouter.ai/api/v1',\r\n signupUrl: 'https://openrouter.ai/keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'kilo',\r\n name: 'Kilo Code',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.kilo.ai/api/gateway',\r\n modelsPath: '/models',\r\n signupUrl: 'https://app.kilo.ai',\r\n apiKeyOptional: true,\r\n anonymousFreeModels: true,\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'ollama',\r\n name: 'Ollama',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'http://127.0.0.1:11434/v1',\r\n urlPrompt: 'Ollama API Base URL:',\r\n apiKeyOptional: true,\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'lmstudio',\r\n name: 'LM Studio',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'http://127.0.0.1:1234/v1',\r\n urlPrompt: 'LM Studio API Base URL:',\r\n apiKeyOptional: true,\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'venice',\r\n name: 'Venice AI',\r\n authType: 'api',\r\n npm: 'venice-ai-sdk-provider',\r\n defaultBaseUrl: 'https://api.venice.ai/api/v1',\r\n signupUrl: 'https://venice.ai/settings/api',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'anthropic',\r\n name: 'Anthropic',\r\n authType: 'api',\r\n npm: '@ai-sdk/anthropic',\r\n defaultBaseUrl: 'https://api.anthropic.com',\r\n signupUrl: 'https://console.anthropic.com/settings/keys',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'bedrock',\r\n name: 'Amazon Bedrock',\r\n authType: 'api',\r\n npm: '@ai-sdk/amazon-bedrock',\r\n modelSource: 'manual-only',\r\n supported: false,\r\n unsupportedReason: 'Requires AWS credentials — use anygate providers import from OpenCode for now.',\r\n },\r\n {\r\n id: 'azure',\r\n name: 'Azure OpenAI',\r\n authType: 'api',\r\n npm: '@ai-sdk/azure',\r\n modelSource: 'manual-only',\r\n supported: false,\r\n unsupportedReason: 'Requires Azure deployment URLs — use anygate providers import from OpenCode for now.',\r\n },\r\n {\r\n id: 'vertex',\r\n name: 'Google Vertex AI',\r\n authType: 'none',\r\n npm: '@ai-sdk/google-vertex',\r\n modelSource: 'manual-only',\r\n supported: false,\r\n unsupportedReason: 'Uses gcloud Application Default Credentials — not supported via API key import.',\r\n },\r\n {\r\n id: 'opencode-cloud',\r\n name: 'OpenCode Zen / Go',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n signupUrl: 'https://opencode.ai/auth',\r\n modelSource: 'zen-go-api',\r\n supported: true,\r\n },\r\n {\r\n id: 'zen',\r\n name: 'OpenCode Zen',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n signupUrl: 'https://opencode.ai/auth',\r\n modelSource: 'zen-go-api',\r\n supported: true,\r\n addable: false,\r\n },\r\n {\r\n id: 'go',\r\n name: 'OpenCode Go',\r\n authType: 'api',\r\n npm: '@ai-sdk/openai-compatible',\r\n signupUrl: 'https://opencode.ai/auth',\r\n modelSource: 'zen-go-api',\r\n supported: true,\r\n addable: false,\r\n },\r\n // Subscription OAuth providers — Authorization Code + PKCE (browser redirect)\r\n // ⚠️ These extract tokens from paid subscriptions. Account risk — see plan docs.\r\n {\r\n id: 'claude-code',\r\n name: 'Claude Code (Anthropic subscription)',\r\n authType: 'oauth',\r\n npm: '@ai-sdk/anthropic',\r\n defaultBaseUrl: 'https://api.anthropic.com',\r\n signupUrl: 'https://claude.ai',\r\n modelSource: 'api-list',\r\n supported: true,\r\n hidden: true,\r\n subscriptionRisk: true,\r\n },\r\n {\r\n id: 'antigravity',\r\n name: 'Antigravity (Google Cloud Code Assist)',\r\n authType: 'oauth',\r\n npm: '@ai-sdk/openai-compatible',\r\n signupUrl: 'https://antigravity.google',\r\n modelSource: 'api-list',\r\n supported: true,\r\n hidden: true,\r\n subscriptionRisk: true,\r\n },\r\n // OAuth-gated subscription providers — device code or broker sign-in\r\n {\r\n id: 'xai-oauth',\r\n name: 'xAI Grok (SuperGrok)',\r\n authType: 'oauth',\r\n npm: '@ai-sdk/xai',\r\n signupUrl: 'https://x.ai',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'openai-oauth',\r\n name: 'OpenAI (ChatGPT)',\r\n authType: 'oauth',\r\n npm: '@ai-sdk/openai',\r\n signupUrl: 'https://chatgpt.com',\r\n modelSource: 'api-list',\r\n supported: true,\r\n },\r\n {\r\n id: 'github-copilot',\r\n name: 'GitHub Copilot',\r\n authType: 'oauth',\r\n npm: '@ai-sdk/openai-compatible',\r\n defaultBaseUrl: 'https://api.githubcopilot.com',\r\n modelsPath: '/models',\r\n signupUrl: 'https://github.com/features/copilot',\r\n modelSource: 'api-list',\r\n headers: { 'Editor-Version': 'vscode/1.85.1' },\r\n supported: true,\r\n },\r\n];\r\n\r\nexport function listSupportedTemplates(): ProviderTemplate[] {\r\n return PROVIDER_TEMPLATES\r\n .filter(t => t.supported && t.authType === 'api' && t.addable !== false && !t.hidden)\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n}\r\n\r\n/** Supported templates not yet present in the user's registry. */\r\nexport function listAddableTemplates(configuredIds: Iterable<string> = []): ProviderTemplate[] {\r\n const configured = new Set(configuredIds);\r\n return listSupportedTemplates().filter(t => {\r\n if (t.id === 'opencode-cloud') {\r\n return !configured.has('zen') && !configured.has('go');\r\n }\r\n return !configured.has(t.id);\r\n });\r\n}\r\n\r\nexport function listVisibleOAuthTemplates(configuredIds: Iterable<string> = []): ProviderTemplate[] {\r\n const configured = new Set(configuredIds);\r\n return PROVIDER_TEMPLATES\r\n .filter(t => t.authType === 'oauth' && t.supported && t.addable !== false && !t.hidden && !configured.has(t.id))\r\n .sort((a, b) => a.name.localeCompare(b.name));\r\n}\r\n\r\nexport function getTemplateById(id: string): ProviderTemplate | undefined {\r\n return PROVIDER_TEMPLATES.find(t => t.id === id);\r\n}\r\n\r\nexport function filterTemplates(templates: ProviderTemplate[], query: string): ProviderTemplate[] {\r\n const q = query.trim().toLowerCase();\r\n if (!q) return templates;\r\n return templates.filter(\r\n t =>\r\n t.id.toLowerCase().includes(q) ||\r\n t.name.toLowerCase().includes(q) ||\r\n t.npm.toLowerCase().includes(q),\r\n );\r\n}\r\n"],"mappings":";;;AA8BO,IAAM,qBAAyC;AAAA,EACpD;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,cAAc;AAAA,MACZ,EAAE,IAAI,mBAAmB,MAAM,2BAA2B;AAAA,IAC5D;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,aAAa;AAAA,IACb,WAAW;AAAA,IACX,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,aAAa;AAAA,IACb,WAAW;AAAA,IACX,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,aAAa;AAAA,IACb,WAAW;AAAA,IACX,mBAAmB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,EACX;AAAA;AAAA;AAAA,EAGA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,kBAAkB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,kBAAkB;AAAA,EACpB;AAAA;AAAA,EAEA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,IACL,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa;AAAA,IACb,SAAS,EAAE,kBAAkB,gBAAgB;AAAA,IAC7C,WAAW;AAAA,EACb;AACF;AAEO,SAAS,yBAA6C;AAC3D,SAAO,mBACJ,OAAO,OAAK,EAAE,aAAa,EAAE,aAAa,SAAS,EAAE,YAAY,SAAS,CAAC,EAAE,MAAM,EACnF,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAChD;AAGO,SAAS,qBAAqB,gBAAkC,CAAC,GAAuB;AAC7F,QAAM,aAAa,IAAI,IAAI,aAAa;AACxC,SAAO,uBAAuB,EAAE,OAAO,OAAK;AAC1C,QAAI,EAAE,OAAO,kBAAkB;AAC7B,aAAO,CAAC,WAAW,IAAI,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI;AAAA,IACvD;AACA,WAAO,CAAC,WAAW,IAAI,EAAE,EAAE;AAAA,EAC7B,CAAC;AACH;AAEO,SAAS,0BAA0B,gBAAkC,CAAC,GAAuB;AAClG,QAAM,aAAa,IAAI,IAAI,aAAa;AACxC,SAAO,mBACJ,OAAO,OAAK,EAAE,aAAa,WAAW,EAAE,aAAa,EAAE,YAAY,SAAS,CAAC,EAAE,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,EAC9G,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,IAAI,CAAC;AAChD;AAEO,SAAS,gBAAgB,IAA0C;AACxE,SAAO,mBAAmB,KAAK,OAAK,EAAE,OAAO,EAAE;AACjD;AAEO,SAAS,gBAAgB,WAA+B,OAAmC;AAChG,QAAM,IAAI,MAAM,KAAK,EAAE,YAAY;AACnC,MAAI,CAAC,EAAG,QAAO;AACf,SAAO,UAAU;AAAA,IACf,OACE,EAAE,GAAG,YAAY,EAAE,SAAS,CAAC,KAC7B,EAAE,KAAK,YAAY,EAAE,SAAS,CAAC,KAC/B,EAAE,IAAI,YAAY,EAAE,SAAS,CAAC;AAAA,EAClC;AACF;","names":[]}