@x12i/ai-profiles 1.6.0 → 1.7.2

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 (100) hide show
  1. package/README.md +96 -28
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -1
  3. package/dist/buildCatalogFromOpenRouterApi.js +2 -1
  4. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -1
  5. package/dist/buildModelsRegistry.d.ts +2 -0
  6. package/dist/buildModelsRegistry.d.ts.map +1 -1
  7. package/dist/buildModelsRegistry.js +5 -5
  8. package/dist/buildModelsRegistry.js.map +1 -1
  9. package/dist/buildResolvedProfile.d.ts +2 -1
  10. package/dist/buildResolvedProfile.d.ts.map +1 -1
  11. package/dist/buildResolvedProfile.js +18 -2
  12. package/dist/buildResolvedProfile.js.map +1 -1
  13. package/dist/catalogEnrichment.d.ts.map +1 -1
  14. package/dist/catalogEnrichment.js +13 -6
  15. package/dist/catalogEnrichment.js.map +1 -1
  16. package/dist/constants.d.ts +2 -0
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +8 -0
  19. package/dist/constants.js.map +1 -1
  20. package/dist/costPolicy.d.ts +7 -0
  21. package/dist/costPolicy.d.ts.map +1 -0
  22. package/dist/costPolicy.js +81 -0
  23. package/dist/costPolicy.js.map +1 -0
  24. package/dist/data/models-catalog.json +324 -1465
  25. package/dist/data/models-profiles.json +354 -420
  26. package/dist/data/models-profiles.schema.json +38 -11
  27. package/dist/data/models-registry.json +142 -841
  28. package/dist/data/profiles-shortcuts.json +49 -23
  29. package/dist/errors.d.ts +1 -1
  30. package/dist/errors.d.ts.map +1 -1
  31. package/dist/errors.js.map +1 -1
  32. package/dist/index.d.ts +8 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +7 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/modalityPolicy.d.ts +37 -0
  37. package/dist/modalityPolicy.d.ts.map +1 -0
  38. package/dist/modalityPolicy.js +200 -0
  39. package/dist/modalityPolicy.js.map +1 -0
  40. package/dist/modelIdentity.d.ts.map +1 -1
  41. package/dist/modelIdentity.js +9 -1
  42. package/dist/modelIdentity.js.map +1 -1
  43. package/dist/modelsCatalog.d.ts.map +1 -1
  44. package/dist/modelsCatalog.js +1 -0
  45. package/dist/modelsCatalog.js.map +1 -1
  46. package/dist/openRouterSlugPolicy.d.ts +20 -0
  47. package/dist/openRouterSlugPolicy.d.ts.map +1 -0
  48. package/dist/openRouterSlugPolicy.js +66 -0
  49. package/dist/openRouterSlugPolicy.js.map +1 -0
  50. package/dist/profileCatalogSupplement.d.ts.map +1 -1
  51. package/dist/profileCatalogSupplement.js +35 -44
  52. package/dist/profileCatalogSupplement.js.map +1 -1
  53. package/dist/profileRegistryV2.d.ts +8 -8
  54. package/dist/profileRegistryV2.d.ts.map +1 -1
  55. package/dist/profileRegistryV2.js +12 -70
  56. package/dist/profileRegistryV2.js.map +1 -1
  57. package/dist/profileRegistryV3.d.ts +3 -0
  58. package/dist/profileRegistryV3.d.ts.map +1 -1
  59. package/dist/profileRegistryV3.js +113 -103
  60. package/dist/profileRegistryV3.js.map +1 -1
  61. package/dist/resolveAIProfile.d.ts +1 -1
  62. package/dist/resolveAIProfile.d.ts.map +1 -1
  63. package/dist/resolveAIProfile.js +28 -4
  64. package/dist/resolveAIProfile.js.map +1 -1
  65. package/dist/resolveCatalogListing.d.ts +10 -0
  66. package/dist/resolveCatalogListing.d.ts.map +1 -0
  67. package/dist/resolveCatalogListing.js +59 -0
  68. package/dist/resolveCatalogListing.js.map +1 -0
  69. package/dist/resolveModelIdentity.d.ts.map +1 -1
  70. package/dist/resolveModelIdentity.js +1 -0
  71. package/dist/resolveModelIdentity.js.map +1 -1
  72. package/dist/resolveModelRouting.d.ts +2 -2
  73. package/dist/resolveModelRouting.d.ts.map +1 -1
  74. package/dist/resolveModelRouting.js +3 -3
  75. package/dist/resolveModelRouting.js.map +1 -1
  76. package/dist/types.d.ts +78 -10
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/validateProfileCatalogLinkage.d.ts +8 -0
  79. package/dist/validateProfileCatalogLinkage.d.ts.map +1 -0
  80. package/dist/validateProfileCatalogLinkage.js +212 -0
  81. package/dist/validateProfileCatalogLinkage.js.map +1 -0
  82. package/dist/validateProfileModalityCoverage.d.ts +9 -0
  83. package/dist/validateProfileModalityCoverage.d.ts.map +1 -0
  84. package/dist/validateProfileModalityCoverage.js +52 -0
  85. package/dist/validateProfileModalityCoverage.js.map +1 -0
  86. package/dist/validateProfileTransportPolicy.d.ts +8 -0
  87. package/dist/validateProfileTransportPolicy.d.ts.map +1 -0
  88. package/dist/validateProfileTransportPolicy.js +69 -0
  89. package/dist/validateProfileTransportPolicy.js.map +1 -0
  90. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  91. package/dist/validation/validateModelsProfilesJson.js +11 -7
  92. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  93. package/dist/vendorModelId.d.ts +4 -0
  94. package/dist/vendorModelId.d.ts.map +1 -0
  95. package/dist/vendorModelId.js +14 -0
  96. package/dist/vendorModelId.js.map +1 -0
  97. package/dist/vendorPolicy.d.ts.map +1 -1
  98. package/dist/vendorPolicy.js +1 -0
  99. package/dist/vendorPolicy.js.map +1 -1
  100. package/package.json +5 -4
@@ -1,72 +1,23 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.models-catalog",
3
- "version": "0.1.0",
4
- "generatedAt": "2026-05-29T20:38:18.882Z",
3
+ "version": "1.0.0",
4
+ "generatedAt": "2026-05-30T21:55:55.643Z",
5
5
  "currency": "USD",
6
6
  "pricingUnit": "1M_tokens",
7
7
  "sources": {
8
8
  "openrouter": {
9
9
  "catalogUrl": "https://openrouter.ai/api/v1/models",
10
10
  "pricingUrl": "https://openrouter.ai/pricing",
11
- "verifiedAt": "2026-05-27",
12
- "normalization": "OpenRouter pricing fields are per-token decimal strings. Values below are normalized to USD per 1M tokens."
11
+ "verifiedAt": "2026-05-30",
12
+ "normalization": "OpenRouter API pricing fields are per-token decimal strings. Values are normalized to USD per 1M tokens."
13
13
  }
14
14
  },
15
15
  "notes": [
16
- "This catalog is OpenRouter-specific and should not be merged with direct-provider pricing.",
17
- "Router models beginning with ~ are dynamic aliases that redirect to latest model families.",
18
- "Models ending with :free are free OpenRouter variants and may have rate limits or availability limits.",
19
- "webSearch is kept as a separate field because OpenRouter exposes it separately from token pricing.",
20
- "This is a seed catalog. In production, generate the full file from https://openrouter.ai/api/v1/models."
16
+ "Generated from https://openrouter.ai/api/v1/models.",
17
+ "Upload the normalized models-catalog.json to open-assets for remote refresh.",
18
+ "Remote asset URL: https://open-assets.x12i.com/models-catalog.json"
21
19
  ],
22
20
  "models": [
23
- {
24
- "direct": {
25
- "provider": "custom",
26
- "modelId": "qwen3.7-max",
27
- "vendorNamespace": "qwen"
28
- },
29
- "openrouter": {
30
- "provider": "openrouter",
31
- "modelId": "qwen/qwen3.7-max",
32
- "canonicalSlug": "qwen/qwen3.7-max-20260520",
33
- "status": "active",
34
- "modalities": {
35
- "input": [
36
- "text"
37
- ],
38
- "output": [
39
- "text"
40
- ]
41
- },
42
- "pricing": {
43
- "input": 1.25,
44
- "output": 3.75,
45
- "cachedInput": 0.25,
46
- "cacheWrite": 1.5625
47
- },
48
- "capabilities": {
49
- "reasoning": true,
50
- "toolCalling": true,
51
- "structuredOutputs": true
52
- },
53
- "contextWindow": 1000000,
54
- "maxCompletionTokens": 65536
55
- },
56
- "displayName": "Qwen: Qwen3.7 Max",
57
- "family": "qwen",
58
- "status": "active",
59
- "modalities": {
60
- "input": [
61
- "text"
62
- ],
63
- "output": [
64
- "text"
65
- ]
66
- },
67
- "contextWindow": 1000000,
68
- "maxCompletionTokens": 65536
69
- },
70
21
  {
71
22
  "direct": {
72
23
  "provider": "xai",
@@ -89,18 +40,19 @@
89
40
  "pricing": {
90
41
  "input": 1,
91
42
  "output": 2,
92
- "cachedInput": 0.2,
93
- "webSearchPerRequest": 0.005
43
+ "cachedInput": 0.19999999999999998,
44
+ "webSearchPerRequest": 5000
94
45
  },
95
46
  "capabilities": {
96
47
  "reasoning": true,
97
48
  "toolCalling": true,
98
49
  "structuredOutputs": true
99
50
  },
100
- "contextWindow": 256000
51
+ "contextWindow": 256000,
52
+ "maxCompletionTokens": null
101
53
  },
102
54
  "displayName": "xAI: Grok Build 0.1",
103
- "family": "grok",
55
+ "family": "x-ai",
104
56
  "status": "active",
105
57
  "modalities": {
106
58
  "input": [
@@ -111,7 +63,8 @@
111
63
  "text"
112
64
  ]
113
65
  },
114
- "contextWindow": 256000
66
+ "contextWindow": 256000,
67
+ "maxCompletionTokens": null
115
68
  },
116
69
  {
117
70
  "direct": {
@@ -138,12 +91,12 @@
138
91
  "pricing": {
139
92
  "input": 1.5,
140
93
  "output": 9,
141
- "imageInput": 1.5,
142
- "audioInput": 3,
143
94
  "cachedInput": 0.15,
144
95
  "cacheWrite": 0.08333333333333334,
96
+ "imageInput": 1.5,
97
+ "audioInput": 3,
145
98
  "internalReasoning": 9,
146
- "webSearchPerRequest": 0.014
99
+ "webSearchPerRequest": 14000
147
100
  },
148
101
  "capabilities": {
149
102
  "reasoning": true,
@@ -155,7 +108,7 @@
155
108
  "knowledgeCutoff": "2025-01-01"
156
109
  },
157
110
  "displayName": "Google: Gemini 3.5 Flash",
158
- "family": "gemini",
111
+ "family": "google",
159
112
  "status": "active",
160
113
  "modalities": {
161
114
  "input": [
@@ -175,116 +128,124 @@
175
128
  },
176
129
  {
177
130
  "direct": {
178
- "provider": "anthropic",
179
- "modelId": "claude-opus-4.7-fast"
131
+ "provider": "google",
132
+ "modelId": "gemini-3.1-flash-lite"
180
133
  },
181
134
  "openrouter": {
182
135
  "provider": "openrouter",
183
- "modelId": "anthropic/claude-opus-4.7-fast",
184
- "canonicalSlug": "anthropic/claude-4.7-opus-fast-20260512",
136
+ "modelId": "google/gemini-3.1-flash-lite",
137
+ "canonicalSlug": "google/gemini-3.1-flash-lite-20260507",
185
138
  "status": "active",
186
139
  "modalities": {
187
140
  "input": [
188
141
  "text",
189
142
  "image",
190
- "file"
143
+ "video",
144
+ "file",
145
+ "audio"
191
146
  ],
192
147
  "output": [
193
148
  "text"
194
149
  ]
195
150
  },
196
151
  "pricing": {
197
- "input": 30,
198
- "output": 150,
199
- "cachedInput": 3,
200
- "cacheWrite": 37.5,
201
- "webSearchPerRequest": 0.01
152
+ "input": 0.25,
153
+ "output": 1.5,
154
+ "cachedInput": 0.024999999999999998,
155
+ "cacheWrite": 0.08333333333333334,
156
+ "imageInput": 0.25,
157
+ "audioInput": 0.5,
158
+ "internalReasoning": 1.5,
159
+ "webSearchPerRequest": 14000
202
160
  },
203
161
  "capabilities": {
204
162
  "reasoning": true,
205
163
  "toolCalling": true,
206
164
  "structuredOutputs": true
207
165
  },
208
- "contextWindow": 1000000,
209
- "maxCompletionTokens": 128000
166
+ "contextWindow": 1048576,
167
+ "maxCompletionTokens": 65536
210
168
  },
211
- "displayName": "Anthropic: Claude Opus 4.7 Fast",
212
- "family": "claude",
169
+ "displayName": "Google: Gemini 3.1 Flash Lite",
170
+ "family": "google",
213
171
  "status": "active",
214
172
  "modalities": {
215
173
  "input": [
216
174
  "text",
217
175
  "image",
218
- "file"
176
+ "video",
177
+ "file",
178
+ "audio"
219
179
  ],
220
180
  "output": [
221
181
  "text"
222
182
  ]
223
183
  },
224
- "contextWindow": 1000000,
225
- "maxCompletionTokens": 128000
184
+ "contextWindow": 1048576,
185
+ "maxCompletionTokens": 65536
226
186
  },
227
187
  {
228
188
  "direct": {
229
- "provider": "custom",
230
- "modelId": "perceptron-mk1",
231
- "vendorNamespace": "perceptron"
189
+ "provider": "xai",
190
+ "modelId": "grok-4.3"
232
191
  },
233
192
  "openrouter": {
234
193
  "provider": "openrouter",
235
- "modelId": "perceptron/perceptron-mk1",
236
- "canonicalSlug": "perceptron/perceptron-mk1-20260512",
194
+ "modelId": "x-ai/grok-4.3",
195
+ "canonicalSlug": "x-ai/grok-4.3-20260430",
237
196
  "status": "active",
238
197
  "modalities": {
239
198
  "input": [
240
199
  "text",
241
- "image",
242
- "video"
200
+ "image"
243
201
  ],
244
202
  "output": [
245
203
  "text"
246
204
  ]
247
205
  },
248
206
  "pricing": {
249
- "input": 0.15,
250
- "output": 1.5
207
+ "input": 1.25,
208
+ "output": 2.5,
209
+ "cachedInput": 0.19999999999999998,
210
+ "webSearchPerRequest": 5000
251
211
  },
252
212
  "capabilities": {
253
213
  "reasoning": true,
214
+ "toolCalling": true,
254
215
  "structuredOutputs": true
255
216
  },
256
- "contextWindow": 32768,
257
- "maxCompletionTokens": 8192
217
+ "contextWindow": 1000000,
218
+ "maxCompletionTokens": null
258
219
  },
259
- "displayName": "Perceptron: Perceptron Mk1",
260
- "family": "perceptron",
220
+ "displayName": "xAI: Grok 4.3",
221
+ "family": "x-ai",
261
222
  "status": "active",
262
223
  "modalities": {
263
224
  "input": [
264
225
  "text",
265
- "image",
266
- "video"
226
+ "image"
267
227
  ],
268
228
  "output": [
269
229
  "text"
270
230
  ]
271
231
  },
272
- "contextWindow": 32768,
273
- "maxCompletionTokens": 8192
232
+ "contextWindow": 1000000,
233
+ "maxCompletionTokens": null
274
234
  },
275
235
  {
276
236
  "direct": {
277
- "provider": "custom",
278
- "modelId": "ring-2.6-1t",
279
- "vendorNamespace": "ring"
237
+ "provider": "openai",
238
+ "modelId": "gpt-5.5"
280
239
  },
281
240
  "openrouter": {
282
241
  "provider": "openrouter",
283
- "modelId": "inclusionai/ring-2.6-1t",
284
- "canonicalSlug": "inclusionai/ring-2.6-1t-20260508",
242
+ "modelId": "openai/gpt-5.5",
243
+ "canonicalSlug": "openai/gpt-5.5-20260423",
285
244
  "status": "active",
286
245
  "modalities": {
287
246
  "input": [
247
+ "file",
248
+ "image",
288
249
  "text"
289
250
  ],
290
251
  "output": [
@@ -292,63 +253,59 @@
292
253
  ]
293
254
  },
294
255
  "pricing": {
295
- "input": 0.075,
296
- "output": 0.625,
297
- "cachedInput": 0.015
256
+ "input": 5,
257
+ "output": 30,
258
+ "cachedInput": 0.5,
259
+ "webSearchPerRequest": 10000
298
260
  },
299
261
  "capabilities": {
300
262
  "reasoning": true,
301
263
  "toolCalling": true,
302
264
  "structuredOutputs": true
303
265
  },
304
- "contextWindow": 262144,
305
- "maxCompletionTokens": 65536
266
+ "contextWindow": 1050000,
267
+ "maxCompletionTokens": 128000,
268
+ "knowledgeCutoff": "2025-12-01"
306
269
  },
307
- "displayName": "inclusionAI: Ring-2.6-1T",
308
- "family": "ring",
270
+ "displayName": "OpenAI: GPT-5.5",
271
+ "family": "openai",
309
272
  "status": "active",
310
273
  "modalities": {
311
274
  "input": [
275
+ "file",
276
+ "image",
312
277
  "text"
313
278
  ],
314
279
  "output": [
315
280
  "text"
316
281
  ]
317
282
  },
318
- "contextWindow": 262144,
319
- "maxCompletionTokens": 65536
283
+ "contextWindow": 1050000,
284
+ "maxCompletionTokens": 128000,
285
+ "knowledgeCutoff": "2025-12-01"
320
286
  },
321
287
  {
322
288
  "direct": {
323
- "provider": "google",
324
- "modelId": "gemini-3.1-flash-lite"
289
+ "provider": "deepseek",
290
+ "modelId": "deepseek-v4-pro"
325
291
  },
326
292
  "openrouter": {
327
293
  "provider": "openrouter",
328
- "modelId": "google/gemini-3.1-flash-lite",
329
- "canonicalSlug": "google/gemini-3.1-flash-lite-20260507",
294
+ "modelId": "deepseek/deepseek-v4-pro",
295
+ "canonicalSlug": "deepseek/deepseek-v4-pro-20260423",
330
296
  "status": "active",
331
297
  "modalities": {
332
298
  "input": [
333
- "text",
334
- "image",
335
- "video",
336
- "file",
337
- "audio"
299
+ "text"
338
300
  ],
339
301
  "output": [
340
302
  "text"
341
303
  ]
342
304
  },
343
305
  "pricing": {
344
- "input": 0.25,
345
- "output": 1.5,
346
- "imageInput": 0.25,
347
- "audioInput": 0.5,
348
- "cachedInput": 0.025,
349
- "cacheWrite": 0.08333333333333334,
350
- "internalReasoning": 1.5,
351
- "webSearchPerRequest": 0.014
306
+ "input": 0.435,
307
+ "output": 0.87,
308
+ "cachedInput": 0.003625
352
309
  },
353
310
  "capabilities": {
354
311
  "reasoning": true,
@@ -356,134 +313,125 @@
356
313
  "structuredOutputs": true
357
314
  },
358
315
  "contextWindow": 1048576,
359
- "maxCompletionTokens": 65536
316
+ "maxCompletionTokens": 384000
360
317
  },
361
- "displayName": "Google: Gemini 3.1 Flash Lite",
362
- "family": "gemini",
318
+ "displayName": "DeepSeek: DeepSeek V4 Pro",
319
+ "family": "deepseek",
363
320
  "status": "active",
364
321
  "modalities": {
365
322
  "input": [
366
- "text",
367
- "image",
368
- "video",
369
- "file",
370
- "audio"
323
+ "text"
371
324
  ],
372
325
  "output": [
373
326
  "text"
374
327
  ]
375
328
  },
376
329
  "contextWindow": 1048576,
377
- "maxCompletionTokens": 65536
330
+ "maxCompletionTokens": 384000
378
331
  },
379
332
  {
380
333
  "direct": {
381
- "provider": "openai",
382
- "modelId": "gpt-chat-latest"
334
+ "provider": "deepseek",
335
+ "modelId": "deepseek-v4-flash"
383
336
  },
384
337
  "openrouter": {
385
338
  "provider": "openrouter",
386
- "modelId": "openai/gpt-chat-latest",
387
- "canonicalSlug": "openai/gpt-chat-latest-20260505",
339
+ "modelId": "deepseek/deepseek-v4-flash",
340
+ "canonicalSlug": "deepseek/deepseek-v4-flash-20260423",
388
341
  "status": "active",
389
342
  "modalities": {
390
343
  "input": [
391
- "text",
392
- "image",
393
- "file"
344
+ "text"
394
345
  ],
395
346
  "output": [
396
347
  "text"
397
348
  ]
398
349
  },
399
350
  "pricing": {
400
- "input": 5,
401
- "output": 30,
402
- "cachedInput": 0.5,
403
- "webSearchPerRequest": 0.01
351
+ "input": 0.0983,
352
+ "output": 0.1966,
353
+ "cachedInput": 0.019700000000000002
404
354
  },
405
355
  "capabilities": {
356
+ "reasoning": true,
406
357
  "toolCalling": true,
407
358
  "structuredOutputs": true
408
359
  },
409
- "contextWindow": 400000,
410
- "maxCompletionTokens": 128000
360
+ "contextWindow": 1048576,
361
+ "maxCompletionTokens": 131072
411
362
  },
412
- "displayName": "OpenAI: GPT Chat Latest",
413
- "family": "gpt",
363
+ "displayName": "DeepSeek: DeepSeek V4 Flash",
364
+ "family": "deepseek",
414
365
  "status": "active",
415
366
  "modalities": {
416
367
  "input": [
417
- "text",
418
- "image",
419
- "file"
368
+ "text"
420
369
  ],
421
370
  "output": [
422
371
  "text"
423
372
  ]
424
373
  },
425
- "contextWindow": 400000,
426
- "maxCompletionTokens": 128000
374
+ "contextWindow": 1048576,
375
+ "maxCompletionTokens": 131072
427
376
  },
428
377
  {
429
378
  "direct": {
430
- "provider": "xai",
431
- "modelId": "grok-4.3"
379
+ "provider": "minimax",
380
+ "modelId": "minimax-m2.7"
432
381
  },
433
382
  "openrouter": {
434
383
  "provider": "openrouter",
435
- "modelId": "x-ai/grok-4.3",
436
- "canonicalSlug": "x-ai/grok-4.3-20260430",
384
+ "modelId": "minimax/minimax-m2.7",
385
+ "canonicalSlug": "minimax/minimax-m2.7-20260318",
437
386
  "status": "active",
438
387
  "modalities": {
439
388
  "input": [
440
- "text",
441
- "image"
389
+ "text"
442
390
  ],
443
391
  "output": [
444
392
  "text"
445
393
  ]
446
394
  },
447
395
  "pricing": {
448
- "input": 1.25,
449
- "output": 2.5,
450
- "cachedInput": 0.2,
451
- "webSearchPerRequest": 0.005
396
+ "input": 0.26,
397
+ "output": 1.2
452
398
  },
453
399
  "capabilities": {
454
400
  "reasoning": true,
455
401
  "toolCalling": true,
456
402
  "structuredOutputs": true
457
403
  },
458
- "contextWindow": 1000000
404
+ "contextWindow": 204800,
405
+ "maxCompletionTokens": null
459
406
  },
460
- "displayName": "xAI: Grok 4.3",
461
- "family": "grok",
407
+ "displayName": "MiniMax: MiniMax M2.7",
408
+ "family": "minimax",
462
409
  "status": "active",
463
410
  "modalities": {
464
411
  "input": [
465
- "text",
466
- "image"
412
+ "text"
467
413
  ],
468
414
  "output": [
469
415
  "text"
470
416
  ]
471
417
  },
472
- "contextWindow": 1000000
418
+ "contextWindow": 204800,
419
+ "maxCompletionTokens": null
473
420
  },
474
421
  {
475
422
  "direct": {
476
- "provider": "custom",
477
- "modelId": "granite-4.1-8b",
478
- "vendorNamespace": "granite"
423
+ "provider": "openai",
424
+ "modelId": "gpt-5.4-mini"
479
425
  },
480
426
  "openrouter": {
481
427
  "provider": "openrouter",
482
- "modelId": "ibm-granite/granite-4.1-8b",
483
- "canonicalSlug": "ibm-granite/granite-4.1-8b-20260429",
428
+ "modelId": "openai/gpt-5.4-mini",
429
+ "canonicalSlug": "openai/gpt-5.4-mini-20260317",
484
430
  "status": "active",
485
431
  "modalities": {
486
432
  "input": [
433
+ "file",
434
+ "image",
487
435
  "text"
488
436
  ],
489
437
  "output": [
@@ -491,41 +439,46 @@
491
439
  ]
492
440
  },
493
441
  "pricing": {
494
- "input": 0.05,
495
- "output": 0.1,
496
- "cachedInput": 0.05
442
+ "input": 0.75,
443
+ "output": 4.5,
444
+ "cachedInput": 0.075,
445
+ "webSearchPerRequest": 10000
497
446
  },
498
447
  "capabilities": {
448
+ "reasoning": true,
499
449
  "toolCalling": true,
500
450
  "structuredOutputs": true
501
451
  },
502
- "contextWindow": 131072,
503
- "maxCompletionTokens": 131072
452
+ "contextWindow": 400000,
453
+ "maxCompletionTokens": 128000,
454
+ "knowledgeCutoff": "2025-08-31"
504
455
  },
505
- "displayName": "IBM: Granite 4.1 8B",
506
- "family": "granite",
456
+ "displayName": "OpenAI: GPT-5.4 Mini",
457
+ "family": "openai",
507
458
  "status": "active",
508
459
  "modalities": {
509
460
  "input": [
461
+ "file",
462
+ "image",
510
463
  "text"
511
464
  ],
512
465
  "output": [
513
466
  "text"
514
467
  ]
515
468
  },
516
- "contextWindow": 131072,
517
- "maxCompletionTokens": 131072
469
+ "contextWindow": 400000,
470
+ "maxCompletionTokens": 128000,
471
+ "knowledgeCutoff": "2025-08-31"
518
472
  },
519
473
  {
520
474
  "direct": {
521
- "provider": "custom",
522
- "modelId": "mistral-medium-3-5",
523
- "vendorNamespace": "mistral"
475
+ "provider": "openai",
476
+ "modelId": "gpt-5.4"
524
477
  },
525
478
  "openrouter": {
526
479
  "provider": "openrouter",
527
- "modelId": "mistralai/mistral-medium-3-5",
528
- "canonicalSlug": "mistralai/mistral-medium-3.5-20260430",
480
+ "modelId": "openai/gpt-5.4",
481
+ "canonicalSlug": "openai/gpt-5.4-20260305",
529
482
  "status": "active",
530
483
  "modalities": {
531
484
  "input": [
@@ -538,18 +491,21 @@
538
491
  ]
539
492
  },
540
493
  "pricing": {
541
- "input": 1.5,
542
- "output": 7.5
494
+ "input": 2.5,
495
+ "output": 15,
496
+ "cachedInput": 0.25,
497
+ "webSearchPerRequest": 10000
543
498
  },
544
499
  "capabilities": {
545
500
  "reasoning": true,
546
501
  "toolCalling": true,
547
502
  "structuredOutputs": true
548
503
  },
549
- "contextWindow": 262144
504
+ "contextWindow": 1050000,
505
+ "maxCompletionTokens": 128000
550
506
  },
551
- "displayName": "Mistral: Mistral Medium 3.5",
552
- "family": "mistral",
507
+ "displayName": "OpenAI: GPT-5.4",
508
+ "family": "openai",
553
509
  "status": "active",
554
510
  "modalities": {
555
511
  "input": [
@@ -561,17 +517,18 @@
561
517
  "text"
562
518
  ]
563
519
  },
564
- "contextWindow": 262144
520
+ "contextWindow": 1050000,
521
+ "maxCompletionTokens": 128000
565
522
  },
566
523
  {
567
524
  "direct": {
568
- "provider": "openrouter",
569
- "modelId": "owl-alpha"
525
+ "provider": "minimax",
526
+ "modelId": "minimax-m2.5"
570
527
  },
571
528
  "openrouter": {
572
529
  "provider": "openrouter",
573
- "modelId": "openrouter/owl-alpha",
574
- "canonicalSlug": "openrouter/owl-alpha",
530
+ "modelId": "minimax/minimax-m2.5",
531
+ "canonicalSlug": "minimax/minimax-m2.5-20260211",
575
532
  "status": "active",
576
533
  "modalities": {
577
534
  "input": [
@@ -582,18 +539,19 @@
582
539
  ]
583
540
  },
584
541
  "pricing": {
585
- "input": 0,
586
- "output": 0
542
+ "input": 0.15,
543
+ "output": 1.15
587
544
  },
588
545
  "capabilities": {
546
+ "reasoning": true,
589
547
  "toolCalling": true,
590
548
  "structuredOutputs": true
591
549
  },
592
- "contextWindow": 1048756,
593
- "maxCompletionTokens": 262144
550
+ "contextWindow": 204800,
551
+ "maxCompletionTokens": 196608
594
552
  },
595
- "displayName": "Owl Alpha",
596
- "family": "owl",
553
+ "displayName": "MiniMax: MiniMax M2.5",
554
+ "family": "minimax",
597
555
  "status": "active",
598
556
  "modalities": {
599
557
  "input": [
@@ -603,1207 +561,113 @@
603
561
  "text"
604
562
  ]
605
563
  },
606
- "contextWindow": 1048756,
607
- "maxCompletionTokens": 262144
564
+ "contextWindow": 204800,
565
+ "maxCompletionTokens": 196608
608
566
  },
609
567
  {
610
568
  "direct": {
611
- "provider": "anthropic",
612
- "modelId": "claude-haiku-latest"
569
+ "provider": "minimax",
570
+ "modelId": "minimax-m2"
613
571
  },
614
572
  "openrouter": {
615
573
  "provider": "openrouter",
616
- "modelId": "~anthropic/claude-haiku-latest",
617
- "canonicalSlug": "~anthropic/claude-haiku-latest",
618
- "status": "router",
574
+ "modelId": "minimax/minimax-m2",
575
+ "canonicalSlug": "minimax/minimax-m2",
576
+ "status": "active",
619
577
  "modalities": {
620
578
  "input": [
621
- "text",
622
- "image",
623
- "file"
579
+ "text"
624
580
  ],
625
581
  "output": [
626
582
  "text"
627
583
  ]
628
584
  },
629
585
  "pricing": {
630
- "input": 1,
631
- "output": 5,
632
- "cachedInput": 0.1,
633
- "cacheWrite": 1.25,
634
- "webSearchPerRequest": 0.01
586
+ "input": 0.255,
587
+ "output": 1,
588
+ "cachedInput": 0.03
635
589
  },
636
590
  "capabilities": {
637
591
  "reasoning": true,
638
592
  "toolCalling": true,
639
593
  "structuredOutputs": true
640
594
  },
641
- "contextWindow": 200000,
642
- "maxCompletionTokens": 64000
595
+ "contextWindow": 204800,
596
+ "maxCompletionTokens": 196608
643
597
  },
644
- "displayName": "Anthropic Claude Haiku Latest",
645
- "family": "claude-router",
646
- "status": "router",
598
+ "displayName": "MiniMax: MiniMax M2",
599
+ "family": "minimax",
600
+ "status": "active",
647
601
  "modalities": {
648
602
  "input": [
649
- "text",
650
- "image",
651
- "file"
603
+ "text"
652
604
  ],
653
605
  "output": [
654
606
  "text"
655
607
  ]
656
608
  },
657
- "contextWindow": 200000,
658
- "maxCompletionTokens": 64000
609
+ "contextWindow": 204800,
610
+ "maxCompletionTokens": 196608
659
611
  },
660
612
  {
661
613
  "direct": {
662
- "provider": "openai",
663
- "modelId": "gpt-mini-latest"
614
+ "provider": "google",
615
+ "modelId": "gemini-2.5-flash-lite"
664
616
  },
665
617
  "openrouter": {
666
618
  "provider": "openrouter",
667
- "modelId": "~openai/gpt-mini-latest",
668
- "canonicalSlug": "~openai/gpt-mini-latest",
669
- "status": "router",
619
+ "modelId": "google/gemini-2.5-flash-lite",
620
+ "canonicalSlug": "google/gemini-2.5-flash-lite",
621
+ "status": "active",
670
622
  "modalities": {
671
623
  "input": [
672
624
  "text",
673
625
  "image",
674
- "file"
626
+ "file",
627
+ "audio",
628
+ "video"
675
629
  ],
676
630
  "output": [
677
631
  "text"
678
632
  ]
679
633
  },
680
634
  "pricing": {
681
- "input": 0.75,
682
- "output": 4.5,
683
- "cachedInput": 0.075,
684
- "webSearchPerRequest": 0.01
635
+ "input": 0.09999999999999999,
636
+ "output": 0.39999999999999997,
637
+ "cachedInput": 0.01,
638
+ "cacheWrite": 0.08333333333333334,
639
+ "imageInput": 0.09999999999999999,
640
+ "audioInput": 0.3,
641
+ "internalReasoning": 0.39999999999999997,
642
+ "webSearchPerRequest": 14000
685
643
  },
686
644
  "capabilities": {
687
645
  "reasoning": true,
688
646
  "toolCalling": true,
689
647
  "structuredOutputs": true
690
648
  },
691
- "contextWindow": 400000,
692
- "maxCompletionTokens": 128000,
693
- "knowledgeCutoff": "2025-08-31"
694
- },
695
- "displayName": "OpenAI GPT Mini Latest",
696
- "family": "gpt-router",
697
- "status": "router",
698
- "modalities": {
699
- "input": [
700
- "text",
701
- "image",
702
- "file"
703
- ],
704
- "output": [
705
- "text"
706
- ]
707
- },
708
- "contextWindow": 400000,
709
- "maxCompletionTokens": 128000,
710
- "knowledgeCutoff": "2025-08-31"
711
- },
712
- {
713
- "direct": {
714
- "provider": "google",
715
- "modelId": "gemini-pro-latest"
716
- },
717
- "openrouter": {
718
- "provider": "openrouter",
719
- "modelId": "~google/gemini-pro-latest",
720
- "canonicalSlug": "~google/gemini-pro-latest",
721
- "status": "router",
722
- "modalities": {
723
- "input": [
724
- "text",
725
- "image",
726
- "file",
727
- "audio",
728
- "video"
729
- ],
730
- "output": [
731
- "text"
732
- ]
733
- },
734
- "pricing": {
735
- "input": 2,
736
- "output": 12,
737
- "imageInput": 2,
738
- "audioInput": 2,
739
- "cachedInput": 0.2,
740
- "cacheWrite": 0.375,
741
- "internalReasoning": 12,
742
- "webSearchPerRequest": 0.014
743
- },
744
- "capabilities": {
745
- "reasoning": true,
746
- "toolCalling": true,
747
- "structuredOutputs": true
748
- },
749
- "contextWindow": 1048576,
750
- "maxCompletionTokens": 65536
751
- },
752
- "displayName": "Google Gemini Pro Latest",
753
- "family": "gemini-router",
754
- "status": "router",
755
- "modalities": {
756
- "input": [
757
- "text",
758
- "image",
759
- "file",
760
- "audio",
761
- "video"
762
- ],
763
- "output": [
764
- "text"
765
- ]
766
- },
767
- "contextWindow": 1048576,
768
- "maxCompletionTokens": 65536
769
- },
770
- {
771
- "direct": {
772
- "provider": "custom",
773
- "modelId": "kimi-latest",
774
- "vendorNamespace": "kimi-router"
775
- },
776
- "openrouter": {
777
- "provider": "openrouter",
778
- "modelId": "~moonshotai/kimi-latest",
779
- "canonicalSlug": "~moonshotai/kimi-latest",
780
- "status": "router",
781
- "modalities": {
782
- "input": [
783
- "text",
784
- "image"
785
- ],
786
- "output": [
787
- "text"
788
- ]
789
- },
790
- "pricing": {
791
- "input": 0.73,
792
- "output": 3.49,
793
- "cachedInput": 0.25
794
- },
795
- "capabilities": {
796
- "reasoning": true,
797
- "toolCalling": true,
798
- "structuredOutputs": true
799
- },
800
- "contextWindow": 262144,
801
- "maxCompletionTokens": 262142
802
- },
803
- "displayName": "MoonshotAI Kimi Latest",
804
- "family": "kimi-router",
805
- "status": "router",
806
- "modalities": {
807
- "input": [
808
- "text",
809
- "image"
810
- ],
811
- "output": [
812
- "text"
813
- ]
814
- },
815
- "contextWindow": 262144,
816
- "maxCompletionTokens": 262142
817
- },
818
- {
819
- "direct": {
820
- "provider": "google",
821
- "modelId": "gemini-flash-latest"
822
- },
823
- "openrouter": {
824
- "provider": "openrouter",
825
- "modelId": "~google/gemini-flash-latest",
826
- "canonicalSlug": "~google/gemini-flash-latest",
827
- "status": "router",
828
- "modalities": {
829
- "input": [
830
- "text",
831
- "image",
832
- "video",
833
- "file",
834
- "audio"
835
- ],
836
- "output": [
837
- "text"
838
- ]
839
- },
840
- "pricing": {
841
- "input": 1.5,
842
- "output": 9,
843
- "imageInput": 1.5,
844
- "audioInput": 3,
845
- "cachedInput": 0.15,
846
- "cacheWrite": 0.08333333333333334,
847
- "internalReasoning": 9,
848
- "webSearchPerRequest": 0.014
849
- },
850
- "capabilities": {
851
- "reasoning": true,
852
- "toolCalling": true,
853
- "structuredOutputs": true
854
- },
855
- "contextWindow": 1048576,
856
- "maxCompletionTokens": 65536,
857
- "knowledgeCutoff": "2025-01-01"
858
- },
859
- "displayName": "Google Gemini Flash Latest",
860
- "family": "gemini-router",
861
- "status": "router",
862
- "modalities": {
863
- "input": [
864
- "text",
865
- "image",
866
- "video",
867
- "file",
868
- "audio"
869
- ],
870
- "output": [
871
- "text"
872
- ]
873
- },
874
- "contextWindow": 1048576,
875
- "maxCompletionTokens": 65536,
876
- "knowledgeCutoff": "2025-01-01"
877
- },
878
- {
879
- "direct": {
880
- "provider": "anthropic",
881
- "modelId": "claude-sonnet-latest"
882
- },
883
- "openrouter": {
884
- "provider": "openrouter",
885
- "modelId": "~anthropic/claude-sonnet-latest",
886
- "canonicalSlug": "~anthropic/claude-sonnet-latest",
887
- "status": "router",
888
- "modalities": {
889
- "input": [
890
- "text",
891
- "image",
892
- "file"
893
- ],
894
- "output": [
895
- "text"
896
- ]
897
- },
898
- "pricing": {
899
- "input": 3,
900
- "output": 15,
901
- "cachedInput": 0.3,
902
- "cacheWrite": 3.75,
903
- "webSearchPerRequest": 0.01
904
- },
905
- "capabilities": {
906
- "reasoning": true,
907
- "toolCalling": true,
908
- "structuredOutputs": true
909
- },
910
- "contextWindow": 1000000,
911
- "maxCompletionTokens": 128000
912
- },
913
- "displayName": "Anthropic Claude Sonnet Latest",
914
- "family": "claude-router",
915
- "status": "router",
916
- "modalities": {
917
- "input": [
918
- "text",
919
- "image",
920
- "file"
921
- ],
922
- "output": [
923
- "text"
924
- ]
925
- },
926
- "contextWindow": 1000000,
927
- "maxCompletionTokens": 128000
928
- },
929
- {
930
- "direct": {
931
- "provider": "openai",
932
- "modelId": "gpt-latest"
933
- },
934
- "openrouter": {
935
- "provider": "openrouter",
936
- "modelId": "~openai/gpt-latest",
937
- "canonicalSlug": "~openai/gpt-latest",
938
- "status": "router",
939
- "modalities": {
940
- "input": [
941
- "text",
942
- "image",
943
- "file"
944
- ],
945
- "output": [
946
- "text"
947
- ]
948
- },
949
- "pricing": {
950
- "input": 5,
951
- "output": 30,
952
- "cachedInput": 0.5,
953
- "webSearchPerRequest": 0.01
954
- },
955
- "capabilities": {
956
- "reasoning": true,
957
- "toolCalling": true,
958
- "structuredOutputs": true
959
- },
960
- "contextWindow": 1050000,
961
- "maxCompletionTokens": 128000,
962
- "knowledgeCutoff": "2025-12-01"
963
- },
964
- "displayName": "OpenAI GPT Latest",
965
- "family": "gpt-router",
966
- "status": "router",
967
- "modalities": {
968
- "input": [
969
- "text",
970
- "image",
971
- "file"
972
- ],
973
- "output": [
974
- "text"
975
- ]
976
- },
977
- "contextWindow": 1050000,
978
- "maxCompletionTokens": 128000,
979
- "knowledgeCutoff": "2025-12-01"
980
- },
981
- {
982
- "direct": {
983
- "provider": "custom",
984
- "modelId": "qwen3.5-plus-20260420",
985
- "vendorNamespace": "qwen"
986
- },
987
- "openrouter": {
988
- "provider": "openrouter",
989
- "modelId": "qwen/qwen3.5-plus-20260420",
990
- "canonicalSlug": "qwen/qwen3.5-plus-20260420",
991
- "status": "active",
992
- "modalities": {
993
- "input": [
994
- "text",
995
- "image",
996
- "video"
997
- ],
998
- "output": [
999
- "text"
1000
- ]
1001
- },
1002
- "pricing": {
1003
- "input": 0.3,
1004
- "output": 1.8,
1005
- "cacheWrite": 0.375
1006
- },
1007
- "capabilities": {
1008
- "reasoning": true,
1009
- "toolCalling": true,
1010
- "structuredOutputs": true
1011
- },
1012
- "contextWindow": 1000000,
1013
- "maxCompletionTokens": 65536
1014
- },
1015
- "displayName": "Qwen: Qwen3.5 Plus 2026-04-20",
1016
- "family": "qwen",
1017
- "status": "active",
1018
- "modalities": {
1019
- "input": [
1020
- "text",
1021
- "image",
1022
- "video"
1023
- ],
1024
- "output": [
1025
- "text"
1026
- ]
1027
- },
1028
- "contextWindow": 1000000,
1029
- "maxCompletionTokens": 65536
1030
- },
1031
- {
1032
- "direct": {
1033
- "provider": "custom",
1034
- "modelId": "qwen3.6-flash",
1035
- "vendorNamespace": "qwen"
1036
- },
1037
- "openrouter": {
1038
- "provider": "openrouter",
1039
- "modelId": "qwen/qwen3.6-flash",
1040
- "canonicalSlug": "qwen/qwen3.6-flash",
1041
- "status": "active",
1042
- "modalities": {
1043
- "input": [
1044
- "text",
1045
- "image",
1046
- "video"
1047
- ],
1048
- "output": [
1049
- "text"
1050
- ]
1051
- },
1052
- "pricing": {
1053
- "input": 0.1875,
1054
- "output": 1.125,
1055
- "cacheWrite": 0.234375
1056
- },
1057
- "capabilities": {
1058
- "reasoning": true,
1059
- "toolCalling": true,
1060
- "structuredOutputs": true
1061
- },
1062
- "contextWindow": 1000000,
1063
- "maxCompletionTokens": 65536
1064
- },
1065
- "displayName": "Qwen: Qwen3.6 Flash",
1066
- "family": "qwen",
1067
- "status": "active",
1068
- "modalities": {
1069
- "input": [
1070
- "text",
1071
- "image",
1072
- "video"
1073
- ],
1074
- "output": [
1075
- "text"
1076
- ]
1077
- },
1078
- "contextWindow": 1000000,
1079
- "maxCompletionTokens": 65536
1080
- },
1081
- {
1082
- "direct": {
1083
- "provider": "custom",
1084
- "modelId": "qwen3.6-35b-a3b",
1085
- "vendorNamespace": "qwen"
1086
- },
1087
- "openrouter": {
1088
- "provider": "openrouter",
1089
- "modelId": "qwen/qwen3.6-35b-a3b",
1090
- "canonicalSlug": "qwen/qwen3.6-35b-a3b-20260415",
1091
- "status": "active",
1092
- "modalities": {
1093
- "input": [
1094
- "text",
1095
- "image",
1096
- "video"
1097
- ],
1098
- "output": [
1099
- "text"
1100
- ]
1101
- },
1102
- "pricing": {
1103
- "input": 0.14,
1104
- "output": 1
1105
- },
1106
- "capabilities": {
1107
- "reasoning": true,
1108
- "toolCalling": true,
1109
- "structuredOutputs": true
1110
- },
1111
- "contextWindow": 262144,
1112
- "maxCompletionTokens": 262140
1113
- },
1114
- "displayName": "Qwen: Qwen3.6 35B A3B",
1115
- "family": "qwen",
1116
- "status": "active",
1117
- "modalities": {
1118
- "input": [
1119
- "text",
1120
- "image",
1121
- "video"
1122
- ],
1123
- "output": [
1124
- "text"
1125
- ]
1126
- },
1127
- "contextWindow": 262144,
1128
- "maxCompletionTokens": 262140
1129
- },
1130
- {
1131
- "direct": {
1132
- "provider": "custom",
1133
- "modelId": "qwen3.6-max-preview",
1134
- "vendorNamespace": "qwen"
1135
- },
1136
- "openrouter": {
1137
- "provider": "openrouter",
1138
- "modelId": "qwen/qwen3.6-max-preview",
1139
- "canonicalSlug": "qwen/qwen3.6-max-preview-20260420",
1140
- "status": "preview",
1141
- "modalities": {
1142
- "input": [
1143
- "text"
1144
- ],
1145
- "output": [
1146
- "text"
1147
- ]
1148
- },
1149
- "pricing": {
1150
- "input": 1.04,
1151
- "output": 6.24,
1152
- "cacheWrite": 1.3
1153
- },
1154
- "capabilities": {
1155
- "reasoning": true,
1156
- "toolCalling": true,
1157
- "structuredOutputs": true
1158
- },
1159
- "contextWindow": 262144,
1160
- "maxCompletionTokens": 65536
1161
- },
1162
- "displayName": "Qwen: Qwen3.6 Max Preview",
1163
- "family": "qwen",
1164
- "status": "preview",
1165
- "modalities": {
1166
- "input": [
1167
- "text"
1168
- ],
1169
- "output": [
1170
- "text"
1171
- ]
1172
- },
1173
- "contextWindow": 262144,
1174
- "maxCompletionTokens": 65536
1175
- },
1176
- {
1177
- "direct": {
1178
- "provider": "custom",
1179
- "modelId": "qwen3.6-27b",
1180
- "vendorNamespace": "qwen"
1181
- },
1182
- "openrouter": {
1183
- "provider": "openrouter",
1184
- "modelId": "qwen/qwen3.6-27b",
1185
- "canonicalSlug": "qwen/qwen3.6-27b-20260422",
1186
- "status": "active",
1187
- "modalities": {
1188
- "input": [
1189
- "text",
1190
- "image",
1191
- "video"
1192
- ],
1193
- "output": [
1194
- "text"
1195
- ]
1196
- },
1197
- "pricing": {
1198
- "input": 0.29,
1199
- "output": 3.2
1200
- },
1201
- "capabilities": {
1202
- "reasoning": true,
1203
- "toolCalling": true,
1204
- "structuredOutputs": true
1205
- },
1206
- "contextWindow": 262144,
1207
- "maxCompletionTokens": 262140
1208
- },
1209
- "displayName": "Qwen: Qwen3.6 27B",
1210
- "family": "qwen",
1211
- "status": "active",
1212
- "modalities": {
1213
- "input": [
1214
- "text",
1215
- "image",
1216
- "video"
1217
- ],
1218
- "output": [
1219
- "text"
1220
- ]
1221
- },
1222
- "contextWindow": 262144,
1223
- "maxCompletionTokens": 262140
1224
- },
1225
- {
1226
- "direct": {
1227
- "provider": "openai",
1228
- "modelId": "gpt-5.5-pro"
1229
- },
1230
- "openrouter": {
1231
- "provider": "openrouter",
1232
- "modelId": "openai/gpt-5.5-pro",
1233
- "canonicalSlug": "openai/gpt-5.5-pro-20260423",
1234
- "status": "active",
1235
- "modalities": {
1236
- "input": [
1237
- "text",
1238
- "image",
1239
- "file"
1240
- ],
1241
- "output": [
1242
- "text"
1243
- ]
1244
- },
1245
- "pricing": {
1246
- "input": 30,
1247
- "output": 180,
1248
- "webSearchPerRequest": 0.01
1249
- },
1250
- "capabilities": {
1251
- "reasoning": true,
1252
- "toolCalling": true,
1253
- "structuredOutputs": true
1254
- },
1255
- "contextWindow": 1050000,
1256
- "maxCompletionTokens": 128000,
1257
- "knowledgeCutoff": "2025-12-01"
1258
- },
1259
- "displayName": "OpenAI: GPT-5.5 Pro",
1260
- "family": "gpt",
1261
- "status": "active",
1262
- "modalities": {
1263
- "input": [
1264
- "text",
1265
- "image",
1266
- "file"
1267
- ],
1268
- "output": [
1269
- "text"
1270
- ]
1271
- },
1272
- "contextWindow": 1050000,
1273
- "maxCompletionTokens": 128000,
1274
- "knowledgeCutoff": "2025-12-01"
1275
- },
1276
- {
1277
- "direct": {
1278
- "provider": "openai",
1279
- "modelId": "gpt-5.5"
1280
- },
1281
- "openrouter": {
1282
- "provider": "openrouter",
1283
- "modelId": "openai/gpt-5.5",
1284
- "canonicalSlug": "openai/gpt-5.5-20260423",
1285
- "status": "active",
1286
- "modalities": {
1287
- "input": [
1288
- "text",
1289
- "image",
1290
- "file"
1291
- ],
1292
- "output": [
1293
- "text"
1294
- ]
1295
- },
1296
- "pricing": {
1297
- "input": 5,
1298
- "output": 30,
1299
- "cachedInput": 0.5,
1300
- "webSearchPerRequest": 0.01
1301
- },
1302
- "capabilities": {
1303
- "reasoning": true,
1304
- "toolCalling": true,
1305
- "structuredOutputs": true
1306
- },
1307
- "contextWindow": 1050000,
1308
- "maxCompletionTokens": 128000,
1309
- "knowledgeCutoff": "2025-12-01"
1310
- },
1311
- "displayName": "OpenAI: GPT-5.5",
1312
- "family": "gpt",
1313
- "status": "active",
1314
- "modalities": {
1315
- "input": [
1316
- "text",
1317
- "image",
1318
- "file"
1319
- ],
1320
- "output": [
1321
- "text"
1322
- ]
1323
- },
1324
- "contextWindow": 1050000,
1325
- "maxCompletionTokens": 128000,
1326
- "knowledgeCutoff": "2025-12-01"
1327
- },
1328
- {
1329
- "direct": {
1330
- "provider": "deepseek",
1331
- "modelId": "deepseek-v4-pro"
1332
- },
1333
- "openrouter": {
1334
- "provider": "openrouter",
1335
- "modelId": "deepseek/deepseek-v4-pro",
1336
- "canonicalSlug": "deepseek/deepseek-v4-pro-20260423",
1337
- "status": "active",
1338
- "modalities": {
1339
- "input": [
1340
- "text"
1341
- ],
1342
- "output": [
1343
- "text"
1344
- ]
1345
- },
1346
- "pricing": {
1347
- "input": 0.435,
1348
- "output": 0.87,
1349
- "cachedInput": 0.003625
1350
- },
1351
- "capabilities": {
1352
- "reasoning": true,
1353
- "toolCalling": true,
1354
- "structuredOutputs": true
1355
- },
1356
- "contextWindow": 1048576,
1357
- "maxCompletionTokens": 384000
1358
- },
1359
- "displayName": "DeepSeek: DeepSeek V4 Pro",
1360
- "family": "deepseek",
1361
- "status": "active",
1362
- "modalities": {
1363
- "input": [
1364
- "text"
1365
- ],
1366
- "output": [
1367
- "text"
1368
- ]
1369
- },
1370
- "contextWindow": 1048576,
1371
- "maxCompletionTokens": 384000
1372
- },
1373
- {
1374
- "direct": {
1375
- "provider": "deepseek",
1376
- "modelId": "deepseek-v4-flash"
1377
- },
1378
- "openrouter": {
1379
- "provider": "openrouter",
1380
- "modelId": "deepseek/deepseek-v4-flash",
1381
- "canonicalSlug": "deepseek/deepseek-v4-flash-20260423",
1382
- "status": "active",
1383
- "modalities": {
1384
- "input": [
1385
- "text"
1386
- ],
1387
- "output": [
1388
- "text"
1389
- ]
1390
- },
1391
- "pricing": {
1392
- "input": 0.1,
1393
- "output": 0.2,
1394
- "cachedInput": 0.02
1395
- },
1396
- "capabilities": {
1397
- "reasoning": true,
1398
- "toolCalling": true,
1399
- "structuredOutputs": true
1400
- },
1401
- "contextWindow": 1048576,
1402
- "maxCompletionTokens": 16384
1403
- },
1404
- "displayName": "DeepSeek: DeepSeek V4 Flash",
1405
- "family": "deepseek",
1406
- "status": "active",
1407
- "modalities": {
1408
- "input": [
1409
- "text"
1410
- ],
1411
- "output": [
1412
- "text"
1413
- ]
1414
- },
1415
- "contextWindow": 1048576,
1416
- "maxCompletionTokens": 16384
1417
- },
1418
- {
1419
- "direct": {
1420
- "provider": "deepseek",
1421
- "modelId": "deepseek-v4-flash:free"
1422
- },
1423
- "openrouter": {
1424
- "provider": "openrouter",
1425
- "modelId": "deepseek/deepseek-v4-flash:free",
1426
- "canonicalSlug": "deepseek/deepseek-v4-flash-20260423",
1427
- "status": "free",
1428
- "modalities": {
1429
- "input": [
1430
- "text"
1431
- ],
1432
- "output": [
1433
- "text"
1434
- ]
1435
- },
1436
- "pricing": {
1437
- "input": 0,
1438
- "output": 0
1439
- },
1440
- "capabilities": {
1441
- "reasoning": true,
1442
- "toolCalling": true
1443
- },
1444
- "contextWindow": 1048576,
1445
- "maxCompletionTokens": 384000
1446
- },
1447
- "displayName": "DeepSeek: DeepSeek V4 Flash Free",
1448
- "family": "deepseek",
1449
- "status": "free",
1450
- "modalities": {
1451
- "input": [
1452
- "text"
1453
- ],
1454
- "output": [
1455
- "text"
1456
- ]
1457
- },
1458
- "contextWindow": 1048576,
1459
- "maxCompletionTokens": 384000
1460
- },
1461
- {
1462
- "direct": {
1463
- "provider": "custom",
1464
- "modelId": "ling-2.6-1t",
1465
- "vendorNamespace": "ling"
1466
- },
1467
- "openrouter": {
1468
- "provider": "openrouter",
1469
- "modelId": "inclusionai/ling-2.6-1t",
1470
- "canonicalSlug": "inclusionai/ling-2.6-1t-20260423",
1471
- "status": "active",
1472
- "modalities": {
1473
- "input": [
1474
- "text"
1475
- ],
1476
- "output": [
1477
- "text"
1478
- ]
1479
- },
1480
- "pricing": {
1481
- "input": 0.075,
1482
- "output": 0.625,
1483
- "cachedInput": 0.015
1484
- },
1485
- "capabilities": {
1486
- "toolCalling": true,
1487
- "structuredOutputs": true
1488
- },
1489
- "contextWindow": 262144,
1490
- "maxCompletionTokens": 32768
1491
- },
1492
- "displayName": "inclusionAI: Ling-2.6-1T",
1493
- "family": "ling",
1494
- "status": "active",
1495
- "modalities": {
1496
- "input": [
1497
- "text"
1498
- ],
1499
- "output": [
1500
- "text"
1501
- ]
1502
- },
1503
- "contextWindow": 262144,
1504
- "maxCompletionTokens": 32768
1505
- },
1506
- {
1507
- "direct": {
1508
- "provider": "custom",
1509
- "modelId": "hy3-preview",
1510
- "vendorNamespace": "hy3"
1511
- },
1512
- "openrouter": {
1513
- "provider": "openrouter",
1514
- "modelId": "tencent/hy3-preview",
1515
- "canonicalSlug": "tencent/hy3-preview-20260421",
1516
- "status": "preview",
1517
- "modalities": {
1518
- "input": [
1519
- "text"
1520
- ],
1521
- "output": [
1522
- "text"
1523
- ]
1524
- },
1525
- "pricing": {
1526
- "input": 0.066,
1527
- "output": 0.26,
1528
- "cachedInput": 0.029
1529
- },
1530
- "capabilities": {
1531
- "reasoning": true,
1532
- "toolCalling": true
1533
- },
1534
- "contextWindow": 262144,
1535
- "maxCompletionTokens": 262144
1536
- },
1537
- "displayName": "Tencent: Hy3 Preview",
1538
- "family": "hy3",
1539
- "status": "preview",
1540
- "modalities": {
1541
- "input": [
1542
- "text"
1543
- ],
1544
- "output": [
1545
- "text"
1546
- ]
1547
- },
1548
- "contextWindow": 262144,
1549
- "maxCompletionTokens": 262144
1550
- },
1551
- {
1552
- "direct": {
1553
- "provider": "custom",
1554
- "modelId": "mimo-v2.5-pro",
1555
- "vendorNamespace": "mimo"
1556
- },
1557
- "openrouter": {
1558
- "provider": "openrouter",
1559
- "modelId": "xiaomi/mimo-v2.5-pro",
1560
- "canonicalSlug": "xiaomi/mimo-v2.5-pro-20260422",
1561
- "status": "active",
1562
- "modalities": {
1563
- "input": [
1564
- "text"
1565
- ],
1566
- "output": [
1567
- "text"
1568
- ]
1569
- },
1570
- "pricing": {
1571
- "input": 0.435,
1572
- "output": 0.87,
1573
- "cachedInput": 0.0036
1574
- },
1575
- "capabilities": {
1576
- "reasoning": true,
1577
- "toolCalling": true,
1578
- "structuredOutputs": true
1579
- },
1580
- "contextWindow": 1048576,
1581
- "maxCompletionTokens": 131072
1582
- },
1583
- "displayName": "Xiaomi: MiMo-V2.5-Pro",
1584
- "family": "mimo",
1585
- "status": "active",
1586
- "modalities": {
1587
- "input": [
1588
- "text"
1589
- ],
1590
- "output": [
1591
- "text"
1592
- ]
1593
- },
1594
- "contextWindow": 1048576,
1595
- "maxCompletionTokens": 131072
1596
- },
1597
- {
1598
- "direct": {
1599
- "provider": "custom",
1600
- "modelId": "mimo-v2.5",
1601
- "vendorNamespace": "mimo"
1602
- },
1603
- "openrouter": {
1604
- "provider": "openrouter",
1605
- "modelId": "xiaomi/mimo-v2.5",
1606
- "canonicalSlug": "xiaomi/mimo-v2.5-20260422",
1607
- "status": "active",
1608
- "modalities": {
1609
- "input": [
1610
- "text",
1611
- "image",
1612
- "audio",
1613
- "video"
1614
- ],
1615
- "output": [
1616
- "text"
1617
- ]
1618
- },
1619
- "pricing": {
1620
- "input": 0.14,
1621
- "output": 0.28,
1622
- "cachedInput": 0.0028
1623
- },
1624
- "capabilities": {
1625
- "reasoning": true,
1626
- "toolCalling": true
1627
- },
1628
- "contextWindow": 1048576,
1629
- "maxCompletionTokens": 131072
1630
- },
1631
- "displayName": "Xiaomi: MiMo-V2.5",
1632
- "family": "mimo",
1633
- "status": "active",
1634
- "modalities": {
1635
- "input": [
1636
- "text",
1637
- "image",
1638
- "audio",
1639
- "video"
1640
- ],
1641
- "output": [
1642
- "text"
1643
- ]
1644
- },
1645
- "contextWindow": 1048576,
1646
- "maxCompletionTokens": 131072
1647
- },
1648
- {
1649
- "direct": {
1650
- "provider": "openai",
1651
- "modelId": "gpt-5.4-image-2"
1652
- },
1653
- "openrouter": {
1654
- "provider": "openrouter",
1655
- "modelId": "openai/gpt-5.4-image-2",
1656
- "canonicalSlug": "openai/gpt-5.4-image-2-20260421",
1657
- "status": "active",
1658
- "modalities": {
1659
- "input": [
1660
- "text",
1661
- "image",
1662
- "file"
1663
- ],
1664
- "output": [
1665
- "text",
1666
- "image"
1667
- ]
1668
- },
1669
- "pricing": {
1670
- "input": 8,
1671
- "output": 15
1672
- },
1673
- "capabilities": {
1674
- "imageGeneration": true,
1675
- "structuredOutputs": true
1676
- },
1677
- "contextWindow": 272000
1678
- },
1679
- "displayName": "OpenAI: GPT-5.4 Image 2",
1680
- "family": "gpt-image",
1681
- "status": "active",
1682
- "modalities": {
1683
- "input": [
1684
- "text",
1685
- "image",
1686
- "file"
1687
- ],
1688
- "output": [
1689
- "text",
1690
- "image"
1691
- ]
1692
- },
1693
- "contextWindow": 272000
1694
- },
1695
- {
1696
- "direct": {
1697
- "provider": "google",
1698
- "modelId": "gemini-2.5-flash-lite"
1699
- },
1700
- "openrouter": {
1701
- "provider": "openrouter",
1702
- "modelId": "google/gemini-2.5-flash-lite",
1703
- "status": "active",
1704
- "modalities": {
1705
- "input": [
1706
- "text",
1707
- "image"
1708
- ],
1709
- "output": [
1710
- "text"
1711
- ]
1712
- },
1713
- "pricing": {
1714
- "input": 0.05,
1715
- "output": 0.2,
1716
- "cachedInput": 0.01,
1717
- "batchInput": 0.025,
1718
- "batchOutput": 0.1
1719
- },
1720
- "capabilities": {
1721
- "reasoning": false,
1722
- "toolCalling": true,
1723
- "structuredOutputs": true
1724
- },
1725
649
  "contextWindow": 1048576,
1726
- "maxCompletionTokens": 65536
650
+ "maxCompletionTokens": 65535,
651
+ "knowledgeCutoff": "2025-01-31"
1727
652
  },
1728
653
  "displayName": "Google: Gemini 2.5 Flash Lite",
1729
- "family": "gemini",
1730
- "status": "active",
1731
- "contextWindow": 1048576,
1732
- "maxCompletionTokens": 65536
1733
- },
1734
- {
1735
- "direct": {
1736
- "provider": "anthropic",
1737
- "modelId": "claude-haiku-4-5"
1738
- },
1739
- "openrouter": {
1740
- "provider": "openrouter",
1741
- "modelId": "anthropic/claude-haiku-4.5",
1742
- "status": "active",
1743
- "modalities": {
1744
- "input": [
1745
- "text",
1746
- "image"
1747
- ],
1748
- "output": [
1749
- "text"
1750
- ]
1751
- },
1752
- "pricing": {
1753
- "input": 0.8,
1754
- "output": 4,
1755
- "cachedInput": 0.08
1756
- },
1757
- "capabilities": {
1758
- "reasoning": true,
1759
- "toolCalling": true,
1760
- "structuredOutputs": true
1761
- },
1762
- "contextWindow": 200000,
1763
- "maxCompletionTokens": 8192
1764
- },
1765
- "displayName": "Anthropic: Claude Haiku 4.5",
1766
- "family": "claude",
654
+ "family": "google",
1767
655
  "status": "active",
1768
- "contextWindow": 200000,
1769
- "maxCompletionTokens": 8192
1770
- },
1771
- {
1772
- "direct": {
1773
- "provider": "anthropic",
1774
- "modelId": "claude-sonnet-4-5"
1775
- },
1776
- "openrouter": {
1777
- "provider": "openrouter",
1778
- "modelId": "anthropic/claude-sonnet-4.5",
1779
- "status": "active",
1780
- "modalities": {
1781
- "input": [
1782
- "text",
1783
- "image"
1784
- ],
1785
- "output": [
1786
- "text"
1787
- ]
1788
- },
1789
- "pricing": {
1790
- "input": 3,
1791
- "output": 15,
1792
- "cachedInput": 0.3
1793
- },
1794
- "capabilities": {
1795
- "reasoning": true,
1796
- "toolCalling": true,
1797
- "structuredOutputs": true
1798
- },
1799
- "contextWindow": 200000,
1800
- "maxCompletionTokens": 8192
656
+ "modalities": {
657
+ "input": [
658
+ "text",
659
+ "image",
660
+ "file",
661
+ "audio",
662
+ "video"
663
+ ],
664
+ "output": [
665
+ "text"
666
+ ]
1801
667
  },
1802
- "displayName": "Anthropic: Claude Sonnet 4.5",
1803
- "family": "claude",
1804
- "status": "active",
1805
- "contextWindow": 200000,
1806
- "maxCompletionTokens": 8192
668
+ "contextWindow": 1048576,
669
+ "maxCompletionTokens": 65535,
670
+ "knowledgeCutoff": "2025-01-31"
1807
671
  },
1808
672
  {
1809
673
  "direct": {
@@ -1813,11 +677,13 @@
1813
677
  "openrouter": {
1814
678
  "provider": "openrouter",
1815
679
  "modelId": "openai/gpt-4.1",
680
+ "canonicalSlug": "openai/gpt-4.1-2025-04-14",
1816
681
  "status": "active",
1817
682
  "modalities": {
1818
683
  "input": [
684
+ "image",
1819
685
  "text",
1820
- "image"
686
+ "file"
1821
687
  ],
1822
688
  "output": [
1823
689
  "text"
@@ -1826,21 +692,33 @@
1826
692
  "pricing": {
1827
693
  "input": 2,
1828
694
  "output": 8,
1829
- "cachedInput": 0.5
695
+ "cachedInput": 0.5,
696
+ "webSearchPerRequest": 10000
1830
697
  },
1831
698
  "capabilities": {
1832
- "reasoning": true,
1833
699
  "toolCalling": true,
1834
700
  "structuredOutputs": true
1835
701
  },
1836
702
  "contextWindow": 1047576,
1837
- "maxCompletionTokens": 32768
703
+ "maxCompletionTokens": null,
704
+ "knowledgeCutoff": "2024-06-30"
1838
705
  },
1839
706
  "displayName": "OpenAI: GPT-4.1",
1840
- "family": "gpt",
707
+ "family": "openai",
1841
708
  "status": "active",
709
+ "modalities": {
710
+ "input": [
711
+ "image",
712
+ "text",
713
+ "file"
714
+ ],
715
+ "output": [
716
+ "text"
717
+ ]
718
+ },
1842
719
  "contextWindow": 1047576,
1843
- "maxCompletionTokens": 32768
720
+ "maxCompletionTokens": null,
721
+ "knowledgeCutoff": "2024-06-30"
1844
722
  },
1845
723
  {
1846
724
  "direct": {
@@ -1850,6 +728,7 @@
1850
728
  "openrouter": {
1851
729
  "provider": "openrouter",
1852
730
  "modelId": "deepseek/deepseek-chat",
731
+ "canonicalSlug": "deepseek/deepseek-chat-v3",
1853
732
  "status": "active",
1854
733
  "modalities": {
1855
734
  "input": [
@@ -1860,69 +739,41 @@
1860
739
  ]
1861
740
  },
1862
741
  "pricing": {
1863
- "input": 0.27,
1864
- "output": 1.1
742
+ "input": 0.2288,
743
+ "output": 0.9144
1865
744
  },
1866
745
  "capabilities": {
1867
- "reasoning": false,
1868
746
  "toolCalling": true,
1869
747
  "structuredOutputs": true
1870
748
  },
1871
- "contextWindow": 65536,
1872
- "maxCompletionTokens": 8192
749
+ "contextWindow": 131072,
750
+ "maxCompletionTokens": 16000,
751
+ "knowledgeCutoff": "2024-07-31"
1873
752
  },
1874
- "displayName": "DeepSeek: Chat",
753
+ "displayName": "DeepSeek: DeepSeek V3",
1875
754
  "family": "deepseek",
1876
755
  "status": "active",
1877
- "contextWindow": 65536,
1878
- "maxCompletionTokens": 8192
1879
- },
1880
- {
1881
- "direct": {
1882
- "provider": "openai",
1883
- "modelId": "gpt-5.4"
1884
- },
1885
- "openrouter": {
1886
- "provider": "openrouter",
1887
- "modelId": "openai/gpt-5.4",
1888
- "status": "active",
1889
- "modalities": {
1890
- "input": [
1891
- "text",
1892
- "image",
1893
- "file"
1894
- ],
1895
- "output": [
1896
- "text"
1897
- ]
1898
- },
1899
- "pricing": {
1900
- "input": 2.5,
1901
- "output": 15,
1902
- "cachedInput": 0.25
1903
- },
1904
- "capabilities": {
1905
- "reasoning": true,
1906
- "toolCalling": true,
1907
- "structuredOutputs": true
1908
- },
1909
- "contextWindow": 1050000,
1910
- "maxCompletionTokens": 128000
756
+ "modalities": {
757
+ "input": [
758
+ "text"
759
+ ],
760
+ "output": [
761
+ "text"
762
+ ]
1911
763
  },
1912
- "displayName": "OpenAI: GPT-5.4",
1913
- "family": "gpt",
1914
- "status": "active",
1915
- "contextWindow": 1050000,
1916
- "maxCompletionTokens": 128000
764
+ "contextWindow": 131072,
765
+ "maxCompletionTokens": 16000,
766
+ "knowledgeCutoff": "2024-07-31"
1917
767
  },
1918
768
  {
1919
769
  "direct": {
1920
770
  "provider": "openai",
1921
- "modelId": "gpt-5.4-mini"
771
+ "modelId": "gpt-4o-mini"
1922
772
  },
1923
773
  "openrouter": {
1924
774
  "provider": "openrouter",
1925
- "modelId": "openai/gpt-5.4-mini",
775
+ "modelId": "openai/gpt-4o-mini",
776
+ "canonicalSlug": "openai/gpt-4o-mini",
1926
777
  "status": "active",
1927
778
  "modalities": {
1928
779
  "input": [
@@ -1935,32 +786,43 @@
1935
786
  ]
1936
787
  },
1937
788
  "pricing": {
1938
- "input": 0.75,
1939
- "output": 4.5,
789
+ "input": 0.15,
790
+ "output": 0.6,
1940
791
  "cachedInput": 0.075
1941
792
  },
1942
793
  "capabilities": {
1943
- "reasoning": true,
1944
794
  "toolCalling": true,
1945
795
  "structuredOutputs": true
1946
796
  },
1947
- "contextWindow": 400000,
1948
- "maxCompletionTokens": 128000
797
+ "contextWindow": 128000,
798
+ "maxCompletionTokens": 16384,
799
+ "knowledgeCutoff": "2023-10-31"
1949
800
  },
1950
- "displayName": "OpenAI: GPT-5.4 Mini",
1951
- "family": "gpt",
801
+ "displayName": "OpenAI: GPT-4o-mini",
802
+ "family": "openai",
1952
803
  "status": "active",
1953
- "contextWindow": 400000,
1954
- "maxCompletionTokens": 128000
804
+ "modalities": {
805
+ "input": [
806
+ "text",
807
+ "image",
808
+ "file"
809
+ ],
810
+ "output": [
811
+ "text"
812
+ ]
813
+ },
814
+ "contextWindow": 128000,
815
+ "maxCompletionTokens": 16384,
816
+ "knowledgeCutoff": "2023-10-31"
1955
817
  },
1956
818
  {
1957
819
  "direct": {
1958
- "provider": "openai",
1959
- "modelId": "gpt-4o-mini"
820
+ "provider": "anthropic",
821
+ "modelId": "claude-sonnet-4-6"
1960
822
  },
1961
823
  "openrouter": {
1962
824
  "provider": "openrouter",
1963
- "modelId": "openai/gpt-4o-mini",
825
+ "modelId": "anthropic/claude-sonnet-4.6",
1964
826
  "status": "active",
1965
827
  "modalities": {
1966
828
  "input": [
@@ -1972,32 +834,33 @@
1972
834
  ]
1973
835
  },
1974
836
  "pricing": {
1975
- "input": 0.15,
1976
- "output": 0.6,
1977
- "cachedInput": 0.075
837
+ "input": 3,
838
+ "output": 15,
839
+ "cachedInput": 0.3,
840
+ "cacheWrite": 3.75
1978
841
  },
1979
842
  "capabilities": {
1980
- "reasoning": false,
843
+ "reasoning": true,
1981
844
  "toolCalling": true,
1982
845
  "structuredOutputs": true
1983
846
  },
1984
- "contextWindow": 128000,
1985
- "maxCompletionTokens": 16384
847
+ "contextWindow": 200000,
848
+ "maxCompletionTokens": 8192
1986
849
  },
1987
- "displayName": "OpenAI: GPT-4o Mini",
1988
- "family": "gpt",
850
+ "displayName": "Anthropic: Claude Sonnet 4.6",
851
+ "family": "claude",
1989
852
  "status": "active",
1990
- "contextWindow": 128000,
1991
- "maxCompletionTokens": 16384
853
+ "contextWindow": 200000,
854
+ "maxCompletionTokens": 8192
1992
855
  },
1993
856
  {
1994
857
  "direct": {
1995
858
  "provider": "anthropic",
1996
- "modelId": "claude-sonnet-4-6"
859
+ "modelId": "claude-opus-4-8"
1997
860
  },
1998
861
  "openrouter": {
1999
862
  "provider": "openrouter",
2000
- "modelId": "anthropic/claude-sonnet-4.6",
863
+ "modelId": "anthropic/claude-opus-4.8",
2001
864
  "status": "active",
2002
865
  "modalities": {
2003
866
  "input": [
@@ -2009,10 +872,10 @@
2009
872
  ]
2010
873
  },
2011
874
  "pricing": {
2012
- "input": 3,
2013
- "output": 15,
2014
- "cachedInput": 0.3,
2015
- "cacheWrite": 3.75
875
+ "input": 15,
876
+ "output": 75,
877
+ "cachedInput": 1.5,
878
+ "cacheWrite": 18.75
2016
879
  },
2017
880
  "capabilities": {
2018
881
  "reasoning": true,
@@ -2022,7 +885,7 @@
2022
885
  "contextWindow": 200000,
2023
886
  "maxCompletionTokens": 8192
2024
887
  },
2025
- "displayName": "Anthropic: Claude Sonnet 4.6",
888
+ "displayName": "Anthropic: Claude Opus 4.8",
2026
889
  "family": "claude",
2027
890
  "status": "active",
2028
891
  "contextWindow": 200000,
@@ -2031,11 +894,11 @@
2031
894
  {
2032
895
  "direct": {
2033
896
  "provider": "anthropic",
2034
- "modelId": "claude-opus-4-8"
897
+ "modelId": "claude-opus-4-5"
2035
898
  },
2036
899
  "openrouter": {
2037
900
  "provider": "openrouter",
2038
- "modelId": "anthropic/claude-opus-4.8",
901
+ "modelId": "anthropic/claude-opus-4.5",
2039
902
  "status": "active",
2040
903
  "modalities": {
2041
904
  "input": [
@@ -2060,7 +923,7 @@
2060
923
  "contextWindow": 200000,
2061
924
  "maxCompletionTokens": 8192
2062
925
  },
2063
- "displayName": "Anthropic: Claude Opus 4.8",
926
+ "displayName": "Anthropic: Claude Opus 4.5",
2064
927
  "family": "claude",
2065
928
  "status": "active",
2066
929
  "contextWindow": 200000,
@@ -2069,11 +932,11 @@
2069
932
  {
2070
933
  "direct": {
2071
934
  "provider": "anthropic",
2072
- "modelId": "claude-opus-4-5"
935
+ "modelId": "claude-haiku-4-5"
2073
936
  },
2074
937
  "openrouter": {
2075
938
  "provider": "openrouter",
2076
- "modelId": "anthropic/claude-opus-4.5",
939
+ "modelId": "anthropic/claude-haiku-4.5",
2077
940
  "status": "active",
2078
941
  "modalities": {
2079
942
  "input": [
@@ -2085,10 +948,9 @@
2085
948
  ]
2086
949
  },
2087
950
  "pricing": {
2088
- "input": 15,
2089
- "output": 75,
2090
- "cachedInput": 1.5,
2091
- "cacheWrite": 18.75
951
+ "input": 0.8,
952
+ "output": 4,
953
+ "cachedInput": 0.08
2092
954
  },
2093
955
  "capabilities": {
2094
956
  "reasoning": true,
@@ -2098,7 +960,7 @@
2098
960
  "contextWindow": 200000,
2099
961
  "maxCompletionTokens": 8192
2100
962
  },
2101
- "displayName": "Anthropic: Claude Opus 4.5",
963
+ "displayName": "Anthropic: Claude Haiku 4.5",
2102
964
  "family": "claude",
2103
965
  "status": "active",
2104
966
  "contextWindow": 200000,
@@ -2106,44 +968,41 @@
2106
968
  },
2107
969
  {
2108
970
  "direct": {
2109
- "provider": "google",
2110
- "modelId": "gemini-2.5-pro"
971
+ "provider": "anthropic",
972
+ "modelId": "claude-sonnet-4-5"
2111
973
  },
2112
974
  "openrouter": {
2113
975
  "provider": "openrouter",
2114
- "modelId": "google/gemini-2.5-pro",
976
+ "modelId": "anthropic/claude-sonnet-4.5",
2115
977
  "status": "active",
2116
978
  "modalities": {
2117
979
  "input": [
2118
980
  "text",
2119
- "image",
2120
- "video",
2121
- "file"
981
+ "image"
2122
982
  ],
2123
983
  "output": [
2124
984
  "text"
2125
985
  ]
2126
986
  },
2127
987
  "pricing": {
2128
- "input": 1.25,
2129
- "output": 10,
2130
- "cachedInput": 0.125,
2131
- "batchInput": 0.625,
2132
- "batchOutput": 5
988
+ "input": 3,
989
+ "output": 15,
990
+ "cachedInput": 0.3,
991
+ "cacheWrite": 3.75
2133
992
  },
2134
993
  "capabilities": {
2135
994
  "reasoning": true,
2136
995
  "toolCalling": true,
2137
996
  "structuredOutputs": true
2138
997
  },
2139
- "contextWindow": 1048576,
2140
- "maxCompletionTokens": 65536
998
+ "contextWindow": 200000,
999
+ "maxCompletionTokens": 8192
2141
1000
  },
2142
- "displayName": "Google: Gemini 2.5 Pro",
2143
- "family": "gemini",
1001
+ "displayName": "Anthropic: Claude Sonnet 4.5",
1002
+ "family": "claude",
2144
1003
  "status": "active",
2145
- "contextWindow": 1048576,
2146
- "maxCompletionTokens": 65536
1004
+ "contextWindow": 200000,
1005
+ "maxCompletionTokens": 8192
2147
1006
  },
2148
1007
  {
2149
1008
  "direct": {