@autonsh/cli 0.18.0 → 0.19.1

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.
Files changed (121) hide show
  1. package/dist/chat.d.ts +1 -1
  2. package/dist/chat.js +177 -119
  3. package/dist/chat.js.map +1 -1
  4. package/dist/completion.d.ts +2 -0
  5. package/dist/completion.js +379 -0
  6. package/dist/completion.js.map +1 -0
  7. package/dist/config-validation.d.ts +10 -0
  8. package/dist/config-validation.js +101 -0
  9. package/dist/config-validation.js.map +1 -0
  10. package/dist/config.d.ts +9 -3
  11. package/dist/config.js +23 -11
  12. package/dist/config.js.map +1 -1
  13. package/dist/doctor.d.ts +18 -0
  14. package/dist/doctor.js +409 -0
  15. package/dist/doctor.js.map +1 -0
  16. package/dist/errors.d.ts +22 -0
  17. package/dist/errors.js +60 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/index.js +62 -64
  20. package/dist/index.js.map +1 -1
  21. package/dist/input.d.ts +43 -0
  22. package/dist/input.js +288 -0
  23. package/dist/input.js.map +1 -0
  24. package/dist/llm/factory.d.ts +5 -0
  25. package/dist/llm/factory.js +54 -0
  26. package/dist/llm/factory.js.map +1 -0
  27. package/dist/llm/index.d.ts +9 -0
  28. package/dist/llm/index.js +11 -0
  29. package/dist/llm/index.js.map +1 -0
  30. package/dist/llm/provider.d.ts +27 -0
  31. package/dist/llm/provider.js +98 -0
  32. package/dist/llm/provider.js.map +1 -0
  33. package/dist/llm/providers/anthropic.d.ts +23 -0
  34. package/dist/llm/providers/anthropic.js +198 -0
  35. package/dist/llm/providers/anthropic.js.map +1 -0
  36. package/dist/llm/providers/google.d.ts +31 -0
  37. package/dist/llm/providers/google.js +190 -0
  38. package/dist/llm/providers/google.js.map +1 -0
  39. package/dist/llm/providers/ollama.d.ts +21 -0
  40. package/dist/llm/providers/ollama.js +157 -0
  41. package/dist/llm/providers/ollama.js.map +1 -0
  42. package/dist/llm/providers/openai-compatible.d.ts +22 -0
  43. package/dist/llm/providers/openai-compatible.js +175 -0
  44. package/dist/llm/providers/openai-compatible.js.map +1 -0
  45. package/dist/llm/providers/openai.d.ts +20 -0
  46. package/dist/llm/providers/openai.js +167 -0
  47. package/dist/llm/providers/openai.js.map +1 -0
  48. package/dist/llm/registry.d.ts +19 -0
  49. package/dist/llm/registry.js +421 -0
  50. package/dist/llm/registry.js.map +1 -0
  51. package/dist/llm/types.d.ts +174 -0
  52. package/dist/llm/types.js +3 -0
  53. package/dist/llm/types.js.map +1 -0
  54. package/dist/login.d.ts +1 -1
  55. package/dist/login.js +14 -14
  56. package/dist/login.js.map +1 -1
  57. package/dist/mcp/client.d.ts +36 -0
  58. package/dist/mcp/client.js +199 -0
  59. package/dist/mcp/client.js.map +1 -0
  60. package/dist/mcp/config.d.ts +10 -0
  61. package/dist/mcp/config.js +43 -0
  62. package/dist/mcp/config.js.map +1 -0
  63. package/dist/mcp/index.d.ts +4 -0
  64. package/dist/mcp/index.js +6 -0
  65. package/dist/mcp/index.js.map +1 -0
  66. package/dist/mcp/types.d.ts +104 -0
  67. package/dist/mcp/types.js +3 -0
  68. package/dist/mcp/types.js.map +1 -0
  69. package/dist/model.d.ts +3 -14
  70. package/dist/model.js +131 -91
  71. package/dist/model.js.map +1 -1
  72. package/dist/ollama.d.ts +10 -0
  73. package/dist/ollama.js +11 -0
  74. package/dist/ollama.js.map +1 -0
  75. package/dist/repomap.d.ts +37 -0
  76. package/dist/repomap.js +431 -0
  77. package/dist/repomap.js.map +1 -0
  78. package/dist/skills/index.d.ts +3 -0
  79. package/dist/skills/index.js +5 -0
  80. package/dist/skills/index.js.map +1 -0
  81. package/dist/skills/registry.d.ts +16 -0
  82. package/dist/skills/registry.js +128 -0
  83. package/dist/skills/registry.js.map +1 -0
  84. package/dist/skills/types.d.ts +48 -0
  85. package/dist/skills/types.js +3 -0
  86. package/dist/skills/types.js.map +1 -0
  87. package/dist/statusline.d.ts +21 -0
  88. package/dist/statusline.js +69 -0
  89. package/dist/statusline.js.map +1 -0
  90. package/dist/streaming.d.ts +25 -0
  91. package/dist/streaming.js +94 -0
  92. package/dist/streaming.js.map +1 -0
  93. package/dist/theme.d.ts +54 -0
  94. package/dist/theme.js +115 -0
  95. package/dist/theme.js.map +1 -0
  96. package/dist/tools/builtin.d.ts +11 -0
  97. package/dist/tools/builtin.js +491 -0
  98. package/dist/tools/builtin.js.map +1 -0
  99. package/dist/tools/index.d.ts +3 -0
  100. package/dist/tools/index.js +5 -0
  101. package/dist/tools/index.js.map +1 -0
  102. package/dist/tools/types.d.ts +186 -0
  103. package/dist/tools/types.js +29 -0
  104. package/dist/tools/types.js.map +1 -0
  105. package/dist/ui.d.ts +5 -0
  106. package/dist/ui.js +50 -83
  107. package/dist/ui.js.map +1 -1
  108. package/dist/verbose.d.ts +20 -0
  109. package/dist/verbose.js +75 -0
  110. package/dist/verbose.js.map +1 -0
  111. package/package.json +13 -2
  112. package/templates/api-json/task.yaml +0 -2
  113. package/templates/coding/task.yaml +1 -1
  114. package/templates/cron-digester/task.yaml +0 -2
  115. package/templates/harness/task.yaml +0 -11
  116. package/templates/multi-agent/agent.ts +7 -8
  117. package/templates/multi-agent/task.yaml +1 -3
  118. package/templates/research/task.yaml +0 -28
  119. package/templates/support/task.yaml +0 -2
  120. package/templates/webhook-echo/task.yaml +0 -2
  121. package/templates/with-approval/task.yaml +0 -2
@@ -0,0 +1,421 @@
1
+ // registry.ts — Model registry. Based on zero/internal/modelregistry/models.go + catalog.go
2
+ // Built-in model catalog (subset of zero's catalog)
3
+ const BUILTIN_MODELS = [
4
+ // OpenAI
5
+ {
6
+ id: "gpt-4o",
7
+ displayName: "GPT-4o",
8
+ apiModel: "gpt-4o",
9
+ provider: "openai",
10
+ apiProviders: ["openai", "openai-compatible"],
11
+ contextLimits: { contextWindow: 128000, maxOutputTokens: 16384 },
12
+ reasoningEfforts: ["none"],
13
+ defaultReasoningEffort: "none",
14
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "prompt-cache"],
15
+ cost: {
16
+ currency: "USD",
17
+ unit: "per_1m_tokens",
18
+ inputPerMillion: 2.50,
19
+ outputPerMillion: 10.00,
20
+ cachedInputPerMillion: 1.25,
21
+ cacheWritePerMillion: 3.125,
22
+ tiers: [],
23
+ source: "openai.com/pricing",
24
+ sourceLastVerified: "2025-08-01",
25
+ notes: ["vision included"],
26
+ },
27
+ status: "active",
28
+ aliases: ["4o", "gpt4o"],
29
+ matchPatterns: ["gpt[\\s-]?4o"],
30
+ description: "Flagship multimodal model",
31
+ },
32
+ {
33
+ id: "gpt-4o-mini",
34
+ displayName: "GPT-4o mini",
35
+ apiModel: "gpt-4o-mini",
36
+ provider: "openai",
37
+ apiProviders: ["openai", "openai-compatible"],
38
+ contextLimits: { contextWindow: 128000, maxOutputTokens: 16384 },
39
+ reasoningEfforts: ["none"],
40
+ defaultReasoningEffort: "none",
41
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "prompt-cache"],
42
+ cost: {
43
+ currency: "USD",
44
+ unit: "per_1m_tokens",
45
+ inputPerMillion: 0.15,
46
+ outputPerMillion: 0.60,
47
+ cachedInputPerMillion: 0.075,
48
+ cacheWritePerMillion: 0.1875,
49
+ tiers: [],
50
+ source: "openai.com/pricing",
51
+ sourceLastVerified: "2025-08-01",
52
+ notes: [],
53
+ },
54
+ status: "active",
55
+ aliases: ["4o-mini", "gpt4o-mini"],
56
+ matchPatterns: ["gpt[\\s-]?4o[\\s-]?mini"],
57
+ description: "Fast, cost-efficient multimodal model",
58
+ },
59
+ {
60
+ id: "o1-preview",
61
+ displayName: "o1 Preview",
62
+ apiModel: "o1-preview",
63
+ provider: "openai",
64
+ apiProviders: ["openai"],
65
+ contextLimits: { contextWindow: 128000, maxOutputTokens: 32768 },
66
+ reasoningEfforts: ["low", "medium", "high"],
67
+ defaultReasoningEffort: "medium",
68
+ capabilities: ["chat", "streaming", "tool-calling", "reasoning", "system-prompt"],
69
+ cost: {
70
+ currency: "USD",
71
+ unit: "per_1m_tokens",
72
+ inputPerMillion: 15.00,
73
+ outputPerMillion: 60.00,
74
+ cachedInputPerMillion: 7.50,
75
+ cacheWritePerMillion: 18.75,
76
+ tiers: [],
77
+ source: "openai.com/pricing",
78
+ sourceLastVerified: "2025-08-01",
79
+ notes: ["reasoning model"],
80
+ },
81
+ status: "preview",
82
+ aliases: ["o1"],
83
+ matchPatterns: ["o1[\\s-]?preview"],
84
+ description: "Reasoning model for complex problems",
85
+ },
86
+ // Anthropic
87
+ {
88
+ id: "claude-3-5-sonnet",
89
+ displayName: "Claude 3.5 Sonnet",
90
+ apiModel: "claude-3-5-sonnet-20241022",
91
+ provider: "anthropic",
92
+ apiProviders: ["anthropic", "openai-compatible"],
93
+ contextLimits: { contextWindow: 200000, maxOutputTokens: 8192 },
94
+ reasoningEfforts: ["none"],
95
+ defaultReasoningEffort: "none",
96
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "prompt-cache"],
97
+ cost: {
98
+ currency: "USD",
99
+ unit: "per_1m_tokens",
100
+ inputPerMillion: 3.00,
101
+ outputPerMillion: 15.00,
102
+ cachedInputPerMillion: 0.30,
103
+ cacheWritePerMillion: 3.75,
104
+ tiers: [],
105
+ source: "anthropic.com/pricing",
106
+ sourceLastVerified: "2025-08-01",
107
+ notes: [],
108
+ },
109
+ status: "active",
110
+ aliases: ["sonnet", "sonnet-3.5", "claude-sonnet"],
111
+ matchPatterns: ["claude[\\s-]?3[\\s-]?5[\\s-]?sonnet", "sonnet[\\s-]?3[\\s-]?5"],
112
+ description: "Best balance of intelligence and speed",
113
+ },
114
+ {
115
+ id: "claude-3-5-haiku",
116
+ displayName: "Claude 3.5 Haiku",
117
+ apiModel: "claude-3-5-haiku-20241022",
118
+ provider: "anthropic",
119
+ apiProviders: ["anthropic", "openai-compatible"],
120
+ contextLimits: { contextWindow: 200000, maxOutputTokens: 8192 },
121
+ reasoningEfforts: ["none"],
122
+ defaultReasoningEffort: "none",
123
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "prompt-cache"],
124
+ cost: {
125
+ currency: "USD",
126
+ unit: "per_1m_tokens",
127
+ inputPerMillion: 1.00,
128
+ outputPerMillion: 5.00,
129
+ cachedInputPerMillion: 0.10,
130
+ cacheWritePerMillion: 1.25,
131
+ tiers: [],
132
+ source: "anthropic.com/pricing",
133
+ sourceLastVerified: "2025-08-01",
134
+ notes: [],
135
+ },
136
+ status: "active",
137
+ aliases: ["haiku", "haiku-3.5", "claude-haiku"],
138
+ matchPatterns: ["claude[\\s-]?3[\\s-]?5[\\s-]?haiku", "haiku[\\s-]?3[\\s-]?5"],
139
+ description: "Fast, cost-efficient model",
140
+ },
141
+ // Google
142
+ {
143
+ id: "gemini-1.5-pro",
144
+ displayName: "Gemini 1.5 Pro",
145
+ apiModel: "gemini-1.5-pro",
146
+ provider: "google",
147
+ apiProviders: ["google"],
148
+ contextLimits: { contextWindow: 2000000, maxOutputTokens: 8192 },
149
+ reasoningEfforts: ["none"],
150
+ defaultReasoningEffort: "none",
151
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "long-context"],
152
+ cost: {
153
+ currency: "USD",
154
+ unit: "per_1m_tokens",
155
+ inputPerMillion: 3.50,
156
+ outputPerMillion: 10.50,
157
+ cachedInputPerMillion: 0.875,
158
+ cacheWritePerMillion: 0,
159
+ tiers: [],
160
+ source: "ai.google.dev/pricing",
161
+ sourceLastVerified: "2025-08-01",
162
+ notes: ["2M context window"],
163
+ },
164
+ status: "active",
165
+ aliases: ["gemini-pro", "1.5-pro"],
166
+ matchPatterns: ["gemini[\\s-]?1[\\s-]?5[\\s-]?pro"],
167
+ description: "Long-context multimodal model",
168
+ },
169
+ {
170
+ id: "gemini-1.5-flash",
171
+ displayName: "Gemini 1.5 Flash",
172
+ apiModel: "gemini-1.5-flash",
173
+ provider: "google",
174
+ apiProviders: ["google"],
175
+ contextLimits: { contextWindow: 1000000, maxOutputTokens: 8192 },
176
+ reasoningEfforts: ["none"],
177
+ defaultReasoningEffort: "none",
178
+ capabilities: ["chat", "streaming", "tool-calling", "vision", "json-mode", "system-prompt", "long-context"],
179
+ cost: {
180
+ currency: "USD",
181
+ unit: "per_1m_tokens",
182
+ inputPerMillion: 0.075,
183
+ outputPerMillion: 0.30,
184
+ cachedInputPerMillion: 0.01875,
185
+ cacheWritePerMillion: 0,
186
+ tiers: [],
187
+ source: "ai.google.dev/pricing",
188
+ sourceLastVerified: "2025-08-01",
189
+ notes: ["1M context window"],
190
+ },
191
+ status: "active",
192
+ aliases: ["gemini-flash", "1.5-flash"],
193
+ matchPatterns: ["gemini[\\s-]?1[\\s-]?5[\\s-]?flash"],
194
+ description: "Fast, cost-efficient long-context model",
195
+ },
196
+ // OpenAI-compatible (Groq, OpenRouter, DeepSeek, etc.)
197
+ {
198
+ id: "llama-3.1-70b",
199
+ displayName: "Llama 3.1 70B",
200
+ apiModel: "llama-3.1-70b-versatile",
201
+ provider: "openai-compatible",
202
+ apiProviders: ["openai-compatible"],
203
+ contextLimits: { contextWindow: 131072, maxOutputTokens: 8192 },
204
+ reasoningEfforts: ["none"],
205
+ defaultReasoningEffort: "none",
206
+ capabilities: ["chat", "streaming", "tool-calling", "json-mode", "system-prompt"],
207
+ cost: {
208
+ currency: "USD",
209
+ unit: "per_1m_tokens",
210
+ inputPerMillion: 0.59,
211
+ outputPerMillion: 0.79,
212
+ cachedInputPerMillion: 0,
213
+ cacheWritePerMillion: 0,
214
+ tiers: [],
215
+ source: "groq.com/pricing",
216
+ sourceLastVerified: "2025-08-01",
217
+ notes: ["via Groq"],
218
+ },
219
+ status: "active",
220
+ aliases: ["llama-70b", "llama3-70b"],
221
+ matchPatterns: ["llama[\\s-]?3[\\s-]?1[\\s-]?70b"],
222
+ description: "Open-source 70B parameter model",
223
+ },
224
+ {
225
+ id: "llama-3.1-8b",
226
+ displayName: "Llama 3.1 8B",
227
+ apiModel: "llama-3.1-8b-instant",
228
+ provider: "openai-compatible",
229
+ apiProviders: ["openai-compatible"],
230
+ contextLimits: { contextWindow: 131072, maxOutputTokens: 8192 },
231
+ reasoningEfforts: ["none"],
232
+ defaultReasoningEffort: "none",
233
+ capabilities: ["chat", "streaming", "tool-calling", "json-mode", "system-prompt"],
234
+ cost: {
235
+ currency: "USD",
236
+ unit: "per_1m_tokens",
237
+ inputPerMillion: 0.05,
238
+ outputPerMillion: 0.08,
239
+ cachedInputPerMillion: 0,
240
+ cacheWritePerMillion: 0,
241
+ tiers: [],
242
+ source: "groq.com/pricing",
243
+ sourceLastVerified: "2025-08-01",
244
+ notes: ["via Groq"],
245
+ },
246
+ status: "active",
247
+ aliases: ["llama-8b", "llama3-8b"],
248
+ matchPatterns: ["llama[\\s-]?3[\\s-]?1[\\s-]?8b"],
249
+ description: "Fast open-source 8B model",
250
+ },
251
+ // DeepSeek
252
+ {
253
+ id: "deepseek-v3",
254
+ displayName: "DeepSeek V3",
255
+ apiModel: "deepseek-chat",
256
+ provider: "openai-compatible",
257
+ apiProviders: ["openai-compatible"],
258
+ contextLimits: { contextWindow: 128000, maxOutputTokens: 8192 },
259
+ reasoningEfforts: ["none"],
260
+ defaultReasoningEffort: "none",
261
+ capabilities: ["chat", "streaming", "tool-calling", "json-mode", "system-prompt"],
262
+ cost: {
263
+ currency: "USD",
264
+ unit: "per_1m_tokens",
265
+ inputPerMillion: 0.14,
266
+ outputPerMillion: 0.28,
267
+ cachedInputPerMillion: 0,
268
+ cacheWritePerMillion: 0,
269
+ tiers: [],
270
+ source: "deepseek.com/pricing",
271
+ sourceLastVerified: "2025-08-01",
272
+ notes: [],
273
+ },
274
+ status: "active",
275
+ aliases: ["deepseek", "ds-v3"],
276
+ matchPatterns: ["deepseek[\\s-]?v3", "deepseek[\\s-]?chat"],
277
+ description: "Strong open-source MoE model",
278
+ },
279
+ {
280
+ id: "deepseek-r1",
281
+ displayName: "DeepSeek R1",
282
+ apiModel: "deepseek-reasoner",
283
+ provider: "openai-compatible",
284
+ apiProviders: ["openai-compatible"],
285
+ contextLimits: { contextWindow: 128000, maxOutputTokens: 32768 },
286
+ reasoningEfforts: ["low", "medium", "high"],
287
+ defaultReasoningEffort: "medium",
288
+ capabilities: ["chat", "streaming", "tool-calling", "reasoning", "json-mode", "system-prompt"],
289
+ cost: {
290
+ currency: "USD",
291
+ unit: "per_1m_tokens",
292
+ inputPerMillion: 0.55,
293
+ outputPerMillion: 2.19,
294
+ cachedInputPerMillion: 0,
295
+ cacheWritePerMillion: 0,
296
+ tiers: [],
297
+ source: "deepseek.com/pricing",
298
+ sourceLastVerified: "2025-08-01",
299
+ notes: ["reasoning model"],
300
+ },
301
+ status: "active",
302
+ aliases: ["r1", "deepseek-r1"],
303
+ matchPatterns: ["deepseek[\\s-]?r1", "deepseek[\\s-]?reasoner"],
304
+ description: "Open-source reasoning model",
305
+ },
306
+ ];
307
+ function cloneModelEntry(entry) {
308
+ return { ...entry, cost: { ...entry.cost, tiers: [...entry.cost.tiers] } };
309
+ }
310
+ function normalizePattern(pattern) {
311
+ return pattern.toLowerCase().trim();
312
+ }
313
+ export class ModelRegistry {
314
+ entries = new Map();
315
+ models = [];
316
+ patterns = [];
317
+ constructor(entries = BUILTIN_MODELS) {
318
+ for (const entry of entries) {
319
+ this.registerEntry(entry);
320
+ }
321
+ }
322
+ registerEntry(entry) {
323
+ const cloned = cloneModelEntry(entry);
324
+ const keys = [entry.id, entry.apiModel, ...entry.aliases].map(normalizePattern).filter(Boolean);
325
+ for (const key of keys) {
326
+ if (this.entries.has(key) && this.entries.get(key).id !== entry.id) {
327
+ console.warn(`Duplicate model key: ${key} for ${entry.id} and ${this.entries.get(key).id}`);
328
+ continue;
329
+ }
330
+ this.entries.set(key, cloned);
331
+ }
332
+ for (const pattern of entry.matchPatterns) {
333
+ try {
334
+ this.patterns.push({ re: new RegExp(pattern, "i"), modelId: cloned.id });
335
+ }
336
+ catch {
337
+ console.warn(`Invalid regex pattern for ${entry.id}: ${pattern}`);
338
+ }
339
+ }
340
+ this.models.push(cloned);
341
+ }
342
+ get(id) {
343
+ return this.entries.get(normalizePattern(id));
344
+ }
345
+ getAll() {
346
+ return [...this.models];
347
+ }
348
+ resolve(query) {
349
+ const normalized = normalizePattern(query);
350
+ // Exact match first
351
+ const exact = this.entries.get(normalized);
352
+ if (exact)
353
+ return exact;
354
+ // Pattern match
355
+ for (const { re, modelId } of this.patterns) {
356
+ if (re.test(normalized)) {
357
+ const entry = this.entries.get(modelId);
358
+ if (entry)
359
+ return entry;
360
+ }
361
+ }
362
+ return undefined;
363
+ }
364
+ resolveWithFallback(query) {
365
+ const direct = this.resolve(query);
366
+ if (direct) {
367
+ if (direct.deprecation?.fallbackId) {
368
+ const fallback = this.get(direct.deprecation.fallbackId);
369
+ if (fallback && (!direct.deprecation.hardDate || new Date(direct.deprecation.hardDate) > new Date())) {
370
+ return fallback;
371
+ }
372
+ }
373
+ return direct;
374
+ }
375
+ // Default fallback
376
+ return this.get("gpt-4o-mini");
377
+ }
378
+ getUpgradeTarget(entry) {
379
+ if (!entry.upgradeTargetId)
380
+ return undefined;
381
+ return this.get(entry.upgradeTargetId);
382
+ }
383
+ getReasoningEfforts(modelId) {
384
+ const entry = this.get(modelId);
385
+ return entry?.reasoningEfforts ?? ["none"];
386
+ }
387
+ supportsCapability(modelId, capability) {
388
+ const entry = this.get(modelId);
389
+ return entry?.capabilities.includes(capability) ?? false;
390
+ }
391
+ estimateCost(modelId, inputTokens, outputTokens, cachedInputTokens = 0) {
392
+ const entry = this.get(modelId);
393
+ if (!entry)
394
+ return 0;
395
+ const cost = entry.cost;
396
+ let total = 0;
397
+ // Check tiers first
398
+ for (const tier of cost.tiers) {
399
+ if (tier.upToInputTokens > 0 && inputTokens <= tier.upToInputTokens) {
400
+ total += (inputTokens / 1e6) * tier.inputPerMillion;
401
+ total += (outputTokens / 1e6) * tier.outputPerMillion;
402
+ total += (cachedInputTokens / 1e6) * tier.cachedInputPerMillion;
403
+ return total;
404
+ }
405
+ }
406
+ // Base pricing
407
+ total += (inputTokens / 1e6) * cost.inputPerMillion;
408
+ total += (outputTokens / 1e6) * cost.outputPerMillion;
409
+ total += (cachedInputTokens / 1e6) * cost.cachedInputPerMillion;
410
+ return total;
411
+ }
412
+ }
413
+ // Singleton instance
414
+ export const defaultRegistry = new ModelRegistry();
415
+ export function getDefaultRegistry() {
416
+ return defaultRegistry;
417
+ }
418
+ export function registerModel(entry) {
419
+ defaultRegistry.registerEntry(entry);
420
+ }
421
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/llm/registry.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAc5F,oDAAoD;AACpD,MAAM,cAAc,GAAiB;IACnC,SAAS;IACT;QACE,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QAC7C,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,KAAK;YACvB,qBAAqB,EAAE,IAAI;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,oBAAoB;YAC5B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;SAC3B;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACxB,aAAa,EAAE,CAAC,cAAc,CAAC;QAC/B,WAAW,EAAE,2BAA2B;KACzC;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QAC7C,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,KAAK;YAC5B,oBAAoB,EAAE,MAAM;YAC5B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,oBAAoB;YAC5B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;QAClC,aAAa,EAAE,CAAC,yBAAyB,CAAC;QAC1C,WAAW,EAAE,uCAAuC;KACrD;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC3C,sBAAsB,EAAE,QAAQ;QAChC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC;QACjF,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,KAAK;YACvB,qBAAqB,EAAE,IAAI;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,oBAAoB;YAC5B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;SAC3B;QACD,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,aAAa,EAAE,CAAC,kBAAkB,CAAC;QACnC,WAAW,EAAE,sCAAsC;KACpD;IACD,YAAY;IACZ;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,4BAA4B;QACtC,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAChD,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;QAC/D,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,KAAK;YACvB,qBAAqB,EAAE,IAAI;YAC3B,oBAAoB,EAAE,IAAI;YAC1B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,uBAAuB;YAC/B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC;QAClD,aAAa,EAAE,CAAC,qCAAqC,EAAE,wBAAwB,CAAC;QAChF,WAAW,EAAE,wCAAwC;KACtD;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,2BAA2B;QACrC,QAAQ,EAAE,WAAW;QACrB,YAAY,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAChD,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;QAC/D,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,IAAI;YAC3B,oBAAoB,EAAE,IAAI;YAC1B,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,uBAAuB;YAC/B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC;QAC/C,aAAa,EAAE,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;QAC9E,WAAW,EAAE,4BAA4B;KAC1C;IACD,SAAS;IACT;QACE,EAAE,EAAE,gBAAgB;QACpB,WAAW,EAAE,gBAAgB;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,aAAa,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE;QAChE,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,KAAK;YACvB,qBAAqB,EAAE,KAAK;YAC5B,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,uBAAuB;YAC/B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,mBAAmB,CAAC;SAC7B;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;QAClC,aAAa,EAAE,CAAC,kCAAkC,CAAC;QACnD,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,WAAW,EAAE,kBAAkB;QAC/B,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,aAAa,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE;QAChE,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3G,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,OAAO;YAC9B,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,uBAAuB;YAC/B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,mBAAmB,CAAC;SAC7B;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;QACtC,aAAa,EAAE,CAAC,oCAAoC,CAAC;QACrD,WAAW,EAAE,yCAAyC;KACvD;IACD,uDAAuD;IACvD;QACE,EAAE,EAAE,eAAe;QACnB,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;QAC/D,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC;QACjF,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,kBAAkB;YAC1B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,UAAU,CAAC;SACpB;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACpC,aAAa,EAAE,CAAC,iCAAiC,CAAC;QAClD,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,EAAE,EAAE,cAAc;QAClB,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;QAC/D,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC;QACjF,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,kBAAkB;YAC1B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,UAAU,CAAC;SACpB;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QAClC,aAAa,EAAE,CAAC,gCAAgC,CAAC;QACjD,WAAW,EAAE,2BAA2B;KACzC;IACD,WAAW;IACX;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;QAC/D,gBAAgB,EAAE,CAAC,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC;QACjF,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,sBAAsB;YAC9B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;QAC9B,aAAa,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;QAC3D,WAAW,EAAE,8BAA8B;KAC5C;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE;QAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC3C,sBAAsB,EAAE,QAAQ;QAChC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC;QAC9F,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,sBAAsB;YAC9B,kBAAkB,EAAE,YAAY;YAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;SAC3B;QACD,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;QAC9B,aAAa,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;QAC/D,WAAW,EAAE,6BAA6B;KAC3C;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,KAAiB;IACxC,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACxC,MAAM,GAAiB,EAAE,CAAC;IAC1B,QAAQ,GAAsC,EAAE,CAAC;IAEzD,YAAY,UAAwB,cAAc;QAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAiB;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,QAAQ,KAAK,CAAC,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7F,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC3C,oBAAoB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,gBAAgB;QAChB,KAAK,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACzD,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrG,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,mBAAmB;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,KAAiB;QAChC,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,KAAK,EAAE,gBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,UAA2B;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;IAC3D,CAAC;IAED,YAAY,CAAC,OAAe,EAAE,WAAmB,EAAE,YAAoB,EAAE,iBAAiB,GAAG,CAAC;QAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAErB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,oBAAoB;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACpE,KAAK,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBACpD,KAAK,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACtD,KAAK,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QACpD,KAAK,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACtD,KAAK,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,qBAAqB;AACrB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,aAAa,EAAE,CAAC;AAEnD,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,174 @@
1
+ export type ProviderKind = "openai" | "anthropic" | "google" | "openai-compatible" | "ollama";
2
+ export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | "ultra";
3
+ export type ModelCapability = "chat" | "streaming" | "tool-calling" | "vision" | "json-mode" | "reasoning" | "system-prompt" | "prompt-cache" | "long-context";
4
+ export type ModelStatus = "active" | "preview" | "deprecated";
5
+ export interface ContextLimits {
6
+ contextWindow: number;
7
+ maxOutputTokens: number;
8
+ }
9
+ export interface ModelCost {
10
+ currency: "USD";
11
+ unit: "per_1m_tokens";
12
+ inputPerMillion: number;
13
+ outputPerMillion: number;
14
+ cachedInputPerMillion: number;
15
+ cacheWritePerMillion: number;
16
+ tiers: ModelCostTier[];
17
+ source: string;
18
+ sourceLastVerified: string;
19
+ notes: string[];
20
+ }
21
+ export interface ModelCostTier {
22
+ upToInputTokens: number;
23
+ inputPerMillion: number;
24
+ outputPerMillion: number;
25
+ cachedInputPerMillion: number;
26
+ cacheWritePerMillion: number;
27
+ note: string;
28
+ }
29
+ export interface ModelEntry {
30
+ id: string;
31
+ displayName: string;
32
+ apiModel: string;
33
+ provider: ProviderKind;
34
+ apiProviders: ProviderKind[];
35
+ contextLimits: ContextLimits;
36
+ reasoningEfforts: ReasoningEffort[];
37
+ defaultReasoningEffort: ReasoningEffort;
38
+ capabilities: ModelCapability[];
39
+ cost: ModelCost;
40
+ status: ModelStatus;
41
+ aliases: string[];
42
+ matchPatterns: string[];
43
+ deprecation?: DeprecationRule;
44
+ upgradeTargetId?: string;
45
+ description: string;
46
+ }
47
+ export interface DeprecationRule {
48
+ fallbackId: string;
49
+ softDate?: string;
50
+ hardDate?: string;
51
+ warningMsg?: string;
52
+ }
53
+ export interface ProviderConfig {
54
+ id: string;
55
+ label: string;
56
+ kind: ProviderKind;
57
+ apiKey?: string;
58
+ baseUrl?: string;
59
+ defaultModel?: string;
60
+ customHeaders?: Record<string, string>;
61
+ oauthResolver?: TokenResolver;
62
+ oauthLoginKey?: string;
63
+ maxTokens?: number;
64
+ parseThinkTags?: boolean;
65
+ }
66
+ export interface TokenResolver {
67
+ (): Promise<{
68
+ token: string;
69
+ account?: string;
70
+ } | null>;
71
+ }
72
+ export interface GenerationOptions {
73
+ temperature?: number;
74
+ topP?: number;
75
+ topK?: number;
76
+ maxTokens?: number;
77
+ stopSequences?: string[];
78
+ reasoningEffort?: ReasoningEffort;
79
+ responseFormat?: "text" | "json" | {
80
+ type: "json_schema";
81
+ jsonSchema: object;
82
+ };
83
+ }
84
+ export interface Message {
85
+ role: "system" | "user" | "assistant" | "tool";
86
+ content: string | ContentPart[];
87
+ toolCallId?: string;
88
+ toolCalls?: ToolCall[];
89
+ }
90
+ export interface ContentPart {
91
+ type: "text" | "image" | "tool_result";
92
+ text?: string;
93
+ imageUrl?: {
94
+ url: string;
95
+ detail?: "low" | "high" | "auto";
96
+ };
97
+ toolResult?: {
98
+ toolCallId: string;
99
+ content: string | object;
100
+ isError?: boolean;
101
+ };
102
+ }
103
+ export interface ToolCall {
104
+ id: string;
105
+ type: "function";
106
+ function: {
107
+ name: string;
108
+ arguments: string;
109
+ };
110
+ }
111
+ export interface ToolDefinition {
112
+ name: string;
113
+ description: string;
114
+ parameters: object;
115
+ strict?: boolean;
116
+ }
117
+ export interface LLMRequest {
118
+ model: string;
119
+ messages: Message[];
120
+ tools?: ToolDefinition[];
121
+ toolChoice?: "auto" | "none" | {
122
+ type: "function";
123
+ function: {
124
+ name: string;
125
+ };
126
+ };
127
+ generation?: GenerationOptions;
128
+ system?: string;
129
+ providerOptions?: Record<string, unknown>;
130
+ }
131
+ export interface LLMResponse {
132
+ id: string;
133
+ model: string;
134
+ content: string | ContentPart[] | ToolCall[] | object[];
135
+ toolCalls?: ToolCall[];
136
+ usage: Usage;
137
+ stopReason: "end_turn" | "max_tokens" | "tool_use" | "stop_sequence" | string;
138
+ costUsd?: number;
139
+ }
140
+ export interface Usage {
141
+ inputTokens: number;
142
+ outputTokens: number;
143
+ cachedInputTokens?: number;
144
+ cacheWriteTokens?: number;
145
+ totalTokens: number;
146
+ }
147
+ export interface StreamChunk {
148
+ type: "content" | "tool_call" | "tool_call_delta" | "usage" | "complete" | "error";
149
+ content?: string;
150
+ toolCall?: ToolCall;
151
+ toolCallDelta?: {
152
+ index: number;
153
+ name?: string;
154
+ arguments?: string;
155
+ };
156
+ usage?: Usage;
157
+ error?: string;
158
+ stopReason?: LLMResponse["stopReason"];
159
+ }
160
+ export interface Provider {
161
+ readonly id: string;
162
+ readonly kind: ProviderKind;
163
+ readonly model: string;
164
+ readonly maxTokens?: number;
165
+ generate(request: LLMRequest): Promise<LLMResponse>;
166
+ stream(request: LLMRequest): AsyncGenerator<StreamChunk>;
167
+ listModels(): Promise<string[]>;
168
+ validateConfig(): Promise<ValidationResult>;
169
+ }
170
+ export type ProviderImplementation = Provider;
171
+ export interface ValidationResult {
172
+ ok: boolean;
173
+ message?: string;
174
+ }
@@ -0,0 +1,3 @@
1
+ // types.ts — Core LLM types (provider-agnostic). Based on opencode/packages/llm/src/schema + zero/internal/modelregistry.
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AAAA,0HAA0H"}
package/dist/login.d.ts CHANGED
@@ -5,7 +5,7 @@ export interface ProviderInfo {
5
5
  keyVar: string;
6
6
  baseEnv: string;
7
7
  keyUrl: string;
8
- provider: "gemini" | "openai-compat" | "ollama";
8
+ kind: "google" | "openai-compatible" | "ollama";
9
9
  }
10
10
  export declare const FREE_PRESETS: ProviderInfo[];
11
11
  /** Envs extras p/ deploy: injeta key/base do provider ativo se o user não