ai.matey.utils 0.2.2 → 0.4.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.
Files changed (43) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/cjs/embeddings.js +153 -0
  3. package/dist/cjs/embeddings.js.map +1 -0
  4. package/dist/cjs/index.js +9 -0
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/model-registry-data.js +725 -0
  7. package/dist/cjs/model-registry-data.js.map +1 -0
  8. package/dist/cjs/model-registry.js +175 -0
  9. package/dist/cjs/model-registry.js.map +1 -0
  10. package/dist/cjs/streaming.js +61 -1
  11. package/dist/cjs/streaming.js.map +1 -1
  12. package/dist/cjs/structured-output.js +17 -5
  13. package/dist/cjs/structured-output.js.map +1 -1
  14. package/dist/cjs/tools.js +218 -0
  15. package/dist/cjs/tools.js.map +1 -0
  16. package/dist/esm/embeddings.js +145 -0
  17. package/dist/esm/embeddings.js.map +1 -0
  18. package/dist/esm/index.js +7 -0
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/model-registry-data.js +722 -0
  21. package/dist/esm/model-registry-data.js.map +1 -0
  22. package/dist/esm/model-registry.js +162 -0
  23. package/dist/esm/model-registry.js.map +1 -0
  24. package/dist/esm/streaming.js +61 -1
  25. package/dist/esm/streaming.js.map +1 -1
  26. package/dist/esm/structured-output.js +17 -5
  27. package/dist/esm/structured-output.js.map +1 -1
  28. package/dist/esm/tools.js +211 -0
  29. package/dist/esm/tools.js.map +1 -0
  30. package/dist/types/embeddings.d.ts +80 -0
  31. package/dist/types/embeddings.d.ts.map +1 -0
  32. package/dist/types/index.d.ts +4 -0
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/types/model-registry-data.d.ts +23 -0
  35. package/dist/types/model-registry-data.d.ts.map +1 -0
  36. package/dist/types/model-registry.d.ts +80 -0
  37. package/dist/types/model-registry.d.ts.map +1 -0
  38. package/dist/types/streaming.d.ts +18 -0
  39. package/dist/types/streaming.d.ts.map +1 -1
  40. package/dist/types/structured-output.d.ts.map +1 -1
  41. package/dist/types/tools.d.ts +70 -0
  42. package/dist/types/tools.d.ts.map +1 -0
  43. package/package.json +1 -1
@@ -0,0 +1,722 @@
1
+ /**
2
+ * Model Registry Seed Data
3
+ *
4
+ * The built-in model database consumed by the model registry
5
+ * (see ./model-registry.ts). Pricing is USD per 1M tokens.
6
+ *
7
+ * UPDATING THIS FILE
8
+ * - This file is intentionally the only place in the monorepo where model
9
+ * metadata is hardcoded. Everything else (pricing helpers, capability
10
+ * inference, cost tracking, token counting) derives from it.
11
+ * - Add new models at the top of their provider section; mark superseded
12
+ * models `deprecated: true` instead of deleting them (cost tracking for
13
+ * historical usage still needs their prices).
14
+ * - Users can add or correct models at runtime with `registerModels()`,
15
+ * so an out-of-date seed never blocks anyone.
16
+ *
17
+ * Data last refreshed: 2026-07-04 (verified against provider pricing pages).
18
+ *
19
+ * @module
20
+ */
21
+ export const MODEL_REGISTRY_SEED = [
22
+ // ==========================================================================
23
+ // OpenAI
24
+ // ==========================================================================
25
+ {
26
+ id: 'gpt-5.1',
27
+ provider: 'openai',
28
+ family: 'gpt-5',
29
+ releaseDate: '2025-11-12',
30
+ contextWindow: 400000,
31
+ maxOutputTokens: 128000,
32
+ pricing: { inputPer1M: 1.25, outputPer1M: 10.0, cachedInputPer1M: 0.125 },
33
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
34
+ latency: { p50: 1400, p95: 3200 },
35
+ qualityScore: 98,
36
+ },
37
+ {
38
+ id: 'gpt-5',
39
+ provider: 'openai',
40
+ family: 'gpt-5',
41
+ releaseDate: '2025-08-07',
42
+ contextWindow: 400000,
43
+ maxOutputTokens: 128000,
44
+ pricing: { inputPer1M: 1.25, outputPer1M: 10.0, cachedInputPer1M: 0.125 },
45
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
46
+ latency: { p50: 1500, p95: 3400 },
47
+ qualityScore: 97,
48
+ },
49
+ {
50
+ id: 'gpt-5-mini',
51
+ provider: 'openai',
52
+ family: 'gpt-5',
53
+ releaseDate: '2025-08-07',
54
+ contextWindow: 400000,
55
+ maxOutputTokens: 128000,
56
+ pricing: { inputPer1M: 0.25, outputPer1M: 2.0, cachedInputPer1M: 0.025 },
57
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
58
+ latency: { p50: 800, p95: 1800 },
59
+ qualityScore: 88,
60
+ },
61
+ {
62
+ id: 'gpt-5-nano',
63
+ provider: 'openai',
64
+ family: 'gpt-5',
65
+ releaseDate: '2025-08-07',
66
+ contextWindow: 400000,
67
+ maxOutputTokens: 128000,
68
+ pricing: { inputPer1M: 0.05, outputPer1M: 0.4, cachedInputPer1M: 0.005 },
69
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
70
+ latency: { p50: 500, p95: 1100 },
71
+ qualityScore: 78,
72
+ },
73
+ {
74
+ id: 'gpt-4.1',
75
+ provider: 'openai',
76
+ family: 'gpt-4',
77
+ releaseDate: '2025-04-14',
78
+ contextWindow: 1047576,
79
+ maxOutputTokens: 32768,
80
+ pricing: { inputPer1M: 2.0, outputPer1M: 8.0, cachedInputPer1M: 0.5 },
81
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
82
+ latency: { p50: 1300, p95: 2800 },
83
+ qualityScore: 94,
84
+ },
85
+ {
86
+ id: 'gpt-4.1-mini',
87
+ provider: 'openai',
88
+ family: 'gpt-4',
89
+ releaseDate: '2025-04-14',
90
+ contextWindow: 1047576,
91
+ maxOutputTokens: 32768,
92
+ pricing: { inputPer1M: 0.4, outputPer1M: 1.6, cachedInputPer1M: 0.1 },
93
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
94
+ latency: { p50: 700, p95: 1500 },
95
+ qualityScore: 85,
96
+ },
97
+ {
98
+ id: 'o3',
99
+ provider: 'openai',
100
+ family: 'o-series',
101
+ releaseDate: '2025-04-16',
102
+ contextWindow: 200000,
103
+ maxOutputTokens: 100000,
104
+ pricing: { inputPer1M: 2.0, outputPer1M: 8.0, cachedInputPer1M: 0.5 },
105
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
106
+ latency: { p50: 4000, p95: 12000 },
107
+ qualityScore: 96,
108
+ },
109
+ {
110
+ id: 'o4-mini',
111
+ provider: 'openai',
112
+ family: 'o-series',
113
+ releaseDate: '2025-04-16',
114
+ contextWindow: 200000,
115
+ maxOutputTokens: 100000,
116
+ pricing: { inputPer1M: 1.1, outputPer1M: 4.4, cachedInputPer1M: 0.275 },
117
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
118
+ latency: { p50: 2500, p95: 7000 },
119
+ qualityScore: 91,
120
+ },
121
+ {
122
+ id: 'gpt-4o',
123
+ provider: 'openai',
124
+ family: 'gpt-4',
125
+ releaseDate: '2024-05-13',
126
+ deprecated: true,
127
+ contextWindow: 128000,
128
+ maxOutputTokens: 4096,
129
+ pricing: { inputPer1M: 5.0, outputPer1M: 15.0 },
130
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
131
+ latency: { p50: 1200, p95: 2500 },
132
+ qualityScore: 96,
133
+ },
134
+ {
135
+ id: 'gpt-4o-mini',
136
+ provider: 'openai',
137
+ family: 'gpt-4',
138
+ releaseDate: '2024-07-18',
139
+ deprecated: true,
140
+ contextWindow: 128000,
141
+ maxOutputTokens: 16384,
142
+ pricing: { inputPer1M: 0.15, outputPer1M: 0.6 },
143
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
144
+ latency: { p50: 600, p95: 1200 },
145
+ qualityScore: 80,
146
+ },
147
+ {
148
+ id: 'gpt-4-turbo',
149
+ provider: 'openai',
150
+ family: 'gpt-4',
151
+ releaseDate: '2024-04-09',
152
+ deprecated: true,
153
+ contextWindow: 128000,
154
+ maxOutputTokens: 4096,
155
+ pricing: { inputPer1M: 10.0, outputPer1M: 30.0 },
156
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
157
+ latency: { p50: 1800, p95: 3500 },
158
+ qualityScore: 95,
159
+ },
160
+ {
161
+ id: 'gpt-4-turbo-preview',
162
+ provider: 'openai',
163
+ family: 'gpt-4',
164
+ releaseDate: '2024-01-25',
165
+ deprecated: true,
166
+ contextWindow: 128000,
167
+ maxOutputTokens: 4096,
168
+ pricing: { inputPer1M: 10.0, outputPer1M: 30.0 },
169
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
170
+ latency: { p50: 1800, p95: 3500 },
171
+ qualityScore: 94,
172
+ },
173
+ {
174
+ id: 'gpt-4',
175
+ provider: 'openai',
176
+ family: 'gpt-4',
177
+ releaseDate: '2023-03-14',
178
+ deprecated: true,
179
+ contextWindow: 8192,
180
+ maxOutputTokens: 4096,
181
+ pricing: { inputPer1M: 30.0, outputPer1M: 60.0 },
182
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
183
+ latency: { p50: 2000, p95: 4000 },
184
+ qualityScore: 95,
185
+ },
186
+ {
187
+ id: 'gpt-3.5-turbo',
188
+ provider: 'openai',
189
+ family: 'gpt-3.5',
190
+ releaseDate: '2023-03-01',
191
+ deprecated: true,
192
+ contextWindow: 16385,
193
+ maxOutputTokens: 4096,
194
+ pricing: { inputPer1M: 0.5, outputPer1M: 1.5 },
195
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
196
+ latency: { p50: 800, p95: 1500 },
197
+ qualityScore: 75,
198
+ },
199
+ {
200
+ id: 'text-embedding-3-small',
201
+ provider: 'openai',
202
+ family: 'text-embedding-3',
203
+ kind: 'embedding',
204
+ releaseDate: '2024-01-25',
205
+ contextWindow: 8191,
206
+ pricing: { inputPer1M: 0.02, outputPer1M: 0 },
207
+ embeddingDimensions: 1536,
208
+ },
209
+ {
210
+ id: 'text-embedding-3-large',
211
+ provider: 'openai',
212
+ family: 'text-embedding-3',
213
+ kind: 'embedding',
214
+ releaseDate: '2024-01-25',
215
+ contextWindow: 8191,
216
+ pricing: { inputPer1M: 0.13, outputPer1M: 0 },
217
+ embeddingDimensions: 3072,
218
+ },
219
+ // ==========================================================================
220
+ // Anthropic
221
+ // ==========================================================================
222
+ {
223
+ id: 'claude-sonnet-5',
224
+ provider: 'anthropic',
225
+ family: 'claude-5',
226
+ releaseDate: '2026-06-30',
227
+ contextWindow: 1000000,
228
+ maxOutputTokens: 128000,
229
+ // Standard pricing; introductory $2/$10 applies through 2026-08-31
230
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0, cachedInputPer1M: 0.3 },
231
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
232
+ latency: { p50: 1400, p95: 2900 },
233
+ qualityScore: 98,
234
+ },
235
+ {
236
+ id: 'claude-opus-4-5-20251101',
237
+ provider: 'anthropic',
238
+ family: 'claude-4',
239
+ aliases: ['claude-opus-4-5', 'claude-opus-4.5'],
240
+ releaseDate: '2025-11-24',
241
+ contextWindow: 200000,
242
+ maxOutputTokens: 64000,
243
+ pricing: { inputPer1M: 5.0, outputPer1M: 25.0, cachedInputPer1M: 0.5 },
244
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
245
+ latency: { p50: 2000, p95: 4500 },
246
+ qualityScore: 99,
247
+ },
248
+ {
249
+ id: 'claude-sonnet-4-5-20250929',
250
+ provider: 'anthropic',
251
+ family: 'claude-4',
252
+ aliases: ['claude-sonnet-4-5', 'claude-sonnet-4.5'],
253
+ releaseDate: '2025-09-29',
254
+ contextWindow: 200000,
255
+ maxOutputTokens: 64000,
256
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0, cachedInputPer1M: 0.3 },
257
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
258
+ latency: { p50: 1500, p95: 3000 },
259
+ qualityScore: 97,
260
+ },
261
+ {
262
+ id: 'claude-haiku-4-5-20251001',
263
+ provider: 'anthropic',
264
+ family: 'claude-4',
265
+ aliases: ['claude-haiku-4-5', 'claude-haiku-4.5'],
266
+ releaseDate: '2025-10-01',
267
+ contextWindow: 200000,
268
+ maxOutputTokens: 64000,
269
+ pricing: { inputPer1M: 1.0, outputPer1M: 5.0, cachedInputPer1M: 0.1 },
270
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
271
+ latency: { p50: 600, p95: 1300 },
272
+ qualityScore: 90,
273
+ },
274
+ {
275
+ id: 'claude-opus-4-1-20250805',
276
+ provider: 'anthropic',
277
+ family: 'claude-4',
278
+ aliases: ['claude-opus-4-1', 'claude-opus-4.1'],
279
+ releaseDate: '2025-08-05',
280
+ deprecated: true,
281
+ contextWindow: 200000,
282
+ maxOutputTokens: 32000,
283
+ pricing: { inputPer1M: 15.0, outputPer1M: 75.0, cachedInputPer1M: 1.5 },
284
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
285
+ latency: { p50: 2400, p95: 5000 },
286
+ qualityScore: 98,
287
+ },
288
+ {
289
+ id: 'claude-sonnet-4-20250514',
290
+ provider: 'anthropic',
291
+ family: 'claude-4',
292
+ aliases: ['claude-sonnet-4'],
293
+ releaseDate: '2025-05-14',
294
+ deprecated: true,
295
+ contextWindow: 200000,
296
+ maxOutputTokens: 64000,
297
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0, cachedInputPer1M: 0.3 },
298
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
299
+ latency: { p50: 1500, p95: 3100 },
300
+ qualityScore: 95,
301
+ },
302
+ {
303
+ id: 'claude-3-5-sonnet-20241022',
304
+ provider: 'anthropic',
305
+ family: 'claude-3',
306
+ aliases: ['claude-3-5-sonnet'],
307
+ releaseDate: '2024-10-22',
308
+ deprecated: true,
309
+ contextWindow: 200000,
310
+ maxOutputTokens: 8192,
311
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0 },
312
+ capabilities: { streaming: true, vision: true, tools: true, json: false },
313
+ latency: { p50: 1500, p95: 3000 },
314
+ qualityScore: 97,
315
+ },
316
+ {
317
+ id: 'claude-3-5-haiku-20241022',
318
+ provider: 'anthropic',
319
+ family: 'claude-3',
320
+ aliases: ['claude-3-5-haiku'],
321
+ releaseDate: '2024-10-22',
322
+ deprecated: true,
323
+ contextWindow: 200000,
324
+ maxOutputTokens: 8192,
325
+ pricing: { inputPer1M: 1.0, outputPer1M: 5.0 },
326
+ capabilities: { streaming: true, vision: false, tools: true, json: false },
327
+ latency: { p50: 500, p95: 1000 },
328
+ qualityScore: 82,
329
+ },
330
+ {
331
+ id: 'claude-3-opus-20240229',
332
+ provider: 'anthropic',
333
+ family: 'claude-3',
334
+ aliases: ['claude-3-opus'],
335
+ releaseDate: '2024-02-29',
336
+ deprecated: true,
337
+ contextWindow: 200000,
338
+ maxOutputTokens: 4096,
339
+ pricing: { inputPer1M: 15.0, outputPer1M: 75.0 },
340
+ capabilities: { streaming: true, vision: true, tools: true, json: false },
341
+ latency: { p50: 2200, p95: 4500 },
342
+ qualityScore: 96,
343
+ },
344
+ {
345
+ id: 'claude-3-sonnet-20240229',
346
+ provider: 'anthropic',
347
+ family: 'claude-3',
348
+ aliases: ['claude-3-sonnet'],
349
+ releaseDate: '2024-02-29',
350
+ deprecated: true,
351
+ contextWindow: 200000,
352
+ maxOutputTokens: 4096,
353
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0 },
354
+ capabilities: { streaming: true, vision: true, tools: true, json: false },
355
+ latency: { p50: 1600, p95: 3200 },
356
+ qualityScore: 92,
357
+ },
358
+ {
359
+ id: 'claude-3-haiku-20240307',
360
+ provider: 'anthropic',
361
+ family: 'claude-3',
362
+ aliases: ['claude-3-haiku'],
363
+ releaseDate: '2024-03-07',
364
+ deprecated: true,
365
+ contextWindow: 200000,
366
+ maxOutputTokens: 4096,
367
+ pricing: { inputPer1M: 0.25, outputPer1M: 1.25 },
368
+ capabilities: { streaming: true, vision: true, tools: true, json: false },
369
+ latency: { p50: 400, p95: 800 },
370
+ qualityScore: 78,
371
+ },
372
+ // ==========================================================================
373
+ // Google Gemini
374
+ // ==========================================================================
375
+ {
376
+ id: 'gemini-3.5-flash',
377
+ provider: 'gemini',
378
+ family: 'gemini-3',
379
+ releaseDate: '2026-06-17',
380
+ contextWindow: 1048576,
381
+ maxOutputTokens: 65536,
382
+ pricing: { inputPer1M: 1.5, outputPer1M: 9.0, cachedInputPer1M: 0.15 },
383
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
384
+ latency: { p50: 900, p95: 2000 },
385
+ qualityScore: 94,
386
+ },
387
+ {
388
+ id: 'gemini-3.1-pro-preview',
389
+ provider: 'gemini',
390
+ family: 'gemini-3',
391
+ aliases: ['gemini-3.1-pro'],
392
+ releaseDate: '2026-03-01',
393
+ contextWindow: 1048576,
394
+ maxOutputTokens: 65536,
395
+ // Base tier; input doubles and output rises ~50% above 200K tokens
396
+ pricing: { inputPer1M: 2.0, outputPer1M: 12.0 },
397
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
398
+ latency: { p50: 1500, p95: 3300 },
399
+ qualityScore: 97,
400
+ },
401
+ {
402
+ id: 'gemini-3-pro',
403
+ provider: 'gemini',
404
+ family: 'gemini-3',
405
+ releaseDate: '2025-11-18',
406
+ contextWindow: 1000000,
407
+ maxOutputTokens: 65536,
408
+ pricing: { inputPer1M: 2.0, outputPer1M: 12.0 },
409
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
410
+ latency: { p50: 1600, p95: 3500 },
411
+ qualityScore: 98,
412
+ },
413
+ {
414
+ id: 'gemini-2.5-pro',
415
+ provider: 'gemini',
416
+ family: 'gemini-2.5',
417
+ releaseDate: '2025-06-17',
418
+ contextWindow: 1048576,
419
+ maxOutputTokens: 65536,
420
+ pricing: { inputPer1M: 1.25, outputPer1M: 10.0 },
421
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
422
+ latency: { p50: 1500, p95: 3200 },
423
+ qualityScore: 96,
424
+ },
425
+ {
426
+ id: 'gemini-2.5-flash',
427
+ provider: 'gemini',
428
+ family: 'gemini-2.5',
429
+ releaseDate: '2025-06-17',
430
+ contextWindow: 1048576,
431
+ maxOutputTokens: 65536,
432
+ pricing: { inputPer1M: 0.3, outputPer1M: 2.5 },
433
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
434
+ latency: { p50: 700, p95: 1500 },
435
+ qualityScore: 89,
436
+ },
437
+ {
438
+ id: 'gemini-2.5-flash-lite',
439
+ provider: 'gemini',
440
+ family: 'gemini-2.5',
441
+ releaseDate: '2025-07-22',
442
+ contextWindow: 1048576,
443
+ maxOutputTokens: 65536,
444
+ pricing: { inputPer1M: 0.1, outputPer1M: 0.4 },
445
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
446
+ latency: { p50: 400, p95: 900 },
447
+ qualityScore: 80,
448
+ },
449
+ {
450
+ id: 'gemini-2.0-flash',
451
+ provider: 'gemini',
452
+ family: 'gemini-2.0',
453
+ releaseDate: '2025-01-30',
454
+ deprecated: true,
455
+ contextWindow: 1048576,
456
+ maxOutputTokens: 8192,
457
+ pricing: { inputPer1M: 0.1, outputPer1M: 0.4 },
458
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
459
+ latency: { p50: 500, p95: 1100 },
460
+ qualityScore: 84,
461
+ },
462
+ {
463
+ id: 'gemini-1.5-pro',
464
+ provider: 'gemini',
465
+ family: 'gemini-1.5',
466
+ releaseDate: '2024-02-15',
467
+ deprecated: true,
468
+ contextWindow: 1000000,
469
+ maxOutputTokens: 8192,
470
+ pricing: { inputPer1M: 1.25, outputPer1M: 5.0 },
471
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
472
+ latency: { p50: 1400, p95: 2800 },
473
+ qualityScore: 93,
474
+ },
475
+ {
476
+ id: 'gemini-1.5-flash',
477
+ provider: 'gemini',
478
+ family: 'gemini-1.5',
479
+ releaseDate: '2024-05-14',
480
+ deprecated: true,
481
+ contextWindow: 1000000,
482
+ maxOutputTokens: 8192,
483
+ pricing: { inputPer1M: 0.075, outputPer1M: 0.3 },
484
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
485
+ latency: { p50: 600, p95: 1200 },
486
+ qualityScore: 80,
487
+ },
488
+ {
489
+ id: 'gemini-1.5-flash-8b',
490
+ provider: 'gemini',
491
+ family: 'gemini-1.5',
492
+ releaseDate: '2024-10-03',
493
+ deprecated: true,
494
+ contextWindow: 1000000,
495
+ maxOutputTokens: 8192,
496
+ pricing: { inputPer1M: 0.0375, outputPer1M: 0.15 },
497
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
498
+ latency: { p50: 400, p95: 800 },
499
+ qualityScore: 70,
500
+ },
501
+ {
502
+ id: 'gemini-embedding-001',
503
+ provider: 'gemini',
504
+ family: 'gemini-embedding',
505
+ kind: 'embedding',
506
+ releaseDate: '2025-07-01',
507
+ contextWindow: 2048,
508
+ pricing: { inputPer1M: 0.15, outputPer1M: 0 },
509
+ embeddingDimensions: 3072,
510
+ },
511
+ // ==========================================================================
512
+ // Mistral AI
513
+ // ==========================================================================
514
+ {
515
+ id: 'mistral-large-2411',
516
+ provider: 'mistral',
517
+ family: 'mistral',
518
+ aliases: ['mistral-large-latest'],
519
+ releaseDate: '2024-11-18',
520
+ contextWindow: 128000,
521
+ maxOutputTokens: 4096,
522
+ pricing: { inputPer1M: 2.0, outputPer1M: 6.0 },
523
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
524
+ latency: { p50: 1300, p95: 2600 },
525
+ qualityScore: 90,
526
+ },
527
+ {
528
+ id: 'mistral-medium-2505',
529
+ provider: 'mistral',
530
+ family: 'mistral',
531
+ aliases: ['mistral-medium-latest'],
532
+ releaseDate: '2025-05-07',
533
+ contextWindow: 128000,
534
+ maxOutputTokens: 8192,
535
+ pricing: { inputPer1M: 0.4, outputPer1M: 2.0 },
536
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
537
+ latency: { p50: 1100, p95: 2200 },
538
+ qualityScore: 88,
539
+ },
540
+ {
541
+ id: 'mistral-small-2501',
542
+ provider: 'mistral',
543
+ family: 'mistral',
544
+ aliases: ['mistral-small-latest'],
545
+ releaseDate: '2025-01-13',
546
+ contextWindow: 32000,
547
+ maxOutputTokens: 4096,
548
+ pricing: { inputPer1M: 0.1, outputPer1M: 0.3 },
549
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
550
+ latency: { p50: 700, p95: 1400 },
551
+ qualityScore: 80,
552
+ },
553
+ {
554
+ id: 'codestral-2501',
555
+ provider: 'mistral',
556
+ family: 'codestral',
557
+ aliases: ['codestral-latest'],
558
+ releaseDate: '2025-01-13',
559
+ contextWindow: 262144,
560
+ maxOutputTokens: 8192,
561
+ pricing: { inputPer1M: 0.3, outputPer1M: 0.9 },
562
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
563
+ latency: { p50: 700, p95: 1400 },
564
+ qualityScore: 86,
565
+ },
566
+ {
567
+ id: 'mistral-embed',
568
+ provider: 'mistral',
569
+ family: 'mistral-embed',
570
+ kind: 'embedding',
571
+ releaseDate: '2023-12-11',
572
+ contextWindow: 8192,
573
+ pricing: { inputPer1M: 0.1, outputPer1M: 0 },
574
+ embeddingDimensions: 1024,
575
+ },
576
+ // ==========================================================================
577
+ // DeepSeek
578
+ // ==========================================================================
579
+ {
580
+ id: 'deepseek-v4-flash',
581
+ provider: 'deepseek',
582
+ family: 'deepseek-v4',
583
+ releaseDate: '2026-04-24',
584
+ contextWindow: 1000000,
585
+ maxOutputTokens: 384000,
586
+ pricing: { inputPer1M: 0.14, outputPer1M: 0.28, cachedInputPer1M: 0.003 },
587
+ // Vision (OpenAI-style image_url) with the V4 generation
588
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
589
+ latency: { p50: 700, p95: 1500 },
590
+ qualityScore: 90,
591
+ },
592
+ {
593
+ id: 'deepseek-v4-pro',
594
+ provider: 'deepseek',
595
+ family: 'deepseek-v4',
596
+ releaseDate: '2026-04-24',
597
+ contextWindow: 1000000,
598
+ maxOutputTokens: 384000,
599
+ pricing: { inputPer1M: 0.435, outputPer1M: 0.87, cachedInputPer1M: 0.004 },
600
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
601
+ latency: { p50: 1600, p95: 3800 },
602
+ qualityScore: 95,
603
+ },
604
+ {
605
+ id: 'deepseek-chat',
606
+ provider: 'deepseek',
607
+ family: 'deepseek',
608
+ releaseDate: '2024-12-26',
609
+ // Retired by DeepSeek on 2026-07-24; kept for historical cost tracking
610
+ deprecated: true,
611
+ contextWindow: 64000,
612
+ maxOutputTokens: 8192,
613
+ pricing: { inputPer1M: 0.27, outputPer1M: 1.1, cachedInputPer1M: 0.07 },
614
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
615
+ latency: { p50: 900, p95: 1800 },
616
+ qualityScore: 88,
617
+ },
618
+ {
619
+ id: 'deepseek-reasoner',
620
+ provider: 'deepseek',
621
+ family: 'deepseek',
622
+ releaseDate: '2025-01-20',
623
+ // Retired by DeepSeek on 2026-07-24; kept for historical cost tracking
624
+ deprecated: true,
625
+ contextWindow: 64000,
626
+ maxOutputTokens: 65536,
627
+ pricing: { inputPer1M: 0.55, outputPer1M: 2.19, cachedInputPer1M: 0.14 },
628
+ capabilities: { streaming: true, vision: false, tools: false, json: true },
629
+ latency: { p50: 4000, p95: 12000 },
630
+ qualityScore: 93,
631
+ },
632
+ {
633
+ id: 'deepseek-coder',
634
+ provider: 'deepseek',
635
+ family: 'deepseek',
636
+ releaseDate: '2024-01-01',
637
+ deprecated: true,
638
+ contextWindow: 64000,
639
+ maxOutputTokens: 4096,
640
+ pricing: { inputPer1M: 0.14, outputPer1M: 0.28 },
641
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
642
+ latency: { p50: 900, p95: 1800 },
643
+ qualityScore: 88,
644
+ },
645
+ // ==========================================================================
646
+ // xAI
647
+ // ==========================================================================
648
+ {
649
+ id: 'grok-4.3',
650
+ provider: 'xai',
651
+ family: 'grok',
652
+ releaseDate: '2026-06-15',
653
+ contextWindow: 1000000,
654
+ maxOutputTokens: 32768,
655
+ pricing: { inputPer1M: 1.25, outputPer1M: 2.5 },
656
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
657
+ latency: { p50: 1400, p95: 3200 },
658
+ qualityScore: 96,
659
+ },
660
+ {
661
+ id: 'grok-4.20-0309-reasoning',
662
+ provider: 'xai',
663
+ family: 'grok',
664
+ aliases: ['grok-4.20', 'grok-4.20-0309-non-reasoning', 'grok-4.20-multi-agent-0309'],
665
+ releaseDate: '2026-03-09',
666
+ contextWindow: 1000000,
667
+ maxOutputTokens: 32768,
668
+ pricing: { inputPer1M: 1.25, outputPer1M: 2.5 },
669
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
670
+ latency: { p50: 1800, p95: 4200 },
671
+ qualityScore: 94,
672
+ },
673
+ {
674
+ id: 'grok-build-0.1',
675
+ provider: 'xai',
676
+ family: 'grok-build',
677
+ releaseDate: '2026-06-01',
678
+ contextWindow: 256000,
679
+ maxOutputTokens: 32768,
680
+ pricing: { inputPer1M: 1.0, outputPer1M: 2.0 },
681
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
682
+ latency: { p50: 600, p95: 1400 },
683
+ qualityScore: 90,
684
+ },
685
+ {
686
+ id: 'grok-4',
687
+ provider: 'xai',
688
+ family: 'grok',
689
+ releaseDate: '2025-07-09',
690
+ contextWindow: 256000,
691
+ maxOutputTokens: 32768,
692
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0, cachedInputPer1M: 0.75 },
693
+ capabilities: { streaming: true, vision: true, tools: true, json: true },
694
+ latency: { p50: 2000, p95: 5000 },
695
+ qualityScore: 95,
696
+ },
697
+ {
698
+ id: 'grok-3',
699
+ provider: 'xai',
700
+ family: 'grok',
701
+ releaseDate: '2025-02-19',
702
+ contextWindow: 131072,
703
+ maxOutputTokens: 16384,
704
+ pricing: { inputPer1M: 3.0, outputPer1M: 15.0 },
705
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
706
+ latency: { p50: 1800, p95: 4200 },
707
+ qualityScore: 92,
708
+ },
709
+ {
710
+ id: 'grok-3-mini',
711
+ provider: 'xai',
712
+ family: 'grok',
713
+ releaseDate: '2025-02-19',
714
+ contextWindow: 131072,
715
+ maxOutputTokens: 16384,
716
+ pricing: { inputPer1M: 0.3, outputPer1M: 0.5 },
717
+ capabilities: { streaming: true, vision: false, tools: true, json: true },
718
+ latency: { p50: 900, p95: 2000 },
719
+ qualityScore: 84,
720
+ },
721
+ ];
722
+ //# sourceMappingURL=model-registry-data.js.map