@x12i/ai-profiles 1.4.0 → 1.6.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 (148) hide show
  1. package/README.md +237 -21
  2. package/dist/buildCatalogFromOpenRouterApi.d.ts +29 -0
  3. package/dist/buildCatalogFromOpenRouterApi.d.ts.map +1 -0
  4. package/dist/buildCatalogFromOpenRouterApi.js +113 -0
  5. package/dist/buildCatalogFromOpenRouterApi.js.map +1 -0
  6. package/dist/buildModelsRegistry.d.ts +25 -0
  7. package/dist/buildModelsRegistry.d.ts.map +1 -0
  8. package/dist/buildModelsRegistry.js +190 -0
  9. package/dist/buildModelsRegistry.js.map +1 -0
  10. package/dist/buildResolvedProfile.d.ts +3 -1
  11. package/dist/buildResolvedProfile.d.ts.map +1 -1
  12. package/dist/buildResolvedProfile.js +94 -11
  13. package/dist/buildResolvedProfile.js.map +1 -1
  14. package/dist/catalogEnrichment.d.ts +19 -0
  15. package/dist/catalogEnrichment.d.ts.map +1 -0
  16. package/dist/catalogEnrichment.js +87 -0
  17. package/dist/catalogEnrichment.js.map +1 -0
  18. package/dist/computeRegistryStatistics.d.ts +15 -0
  19. package/dist/computeRegistryStatistics.d.ts.map +1 -0
  20. package/dist/computeRegistryStatistics.js +168 -0
  21. package/dist/computeRegistryStatistics.js.map +1 -0
  22. package/dist/constants.d.ts +6 -0
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js +10 -0
  25. package/dist/constants.js.map +1 -1
  26. package/dist/data/models-catalog.json +2219 -0
  27. package/dist/data/models-profiles.json +1361 -193
  28. package/dist/data/models-profiles.schema.json +130 -0
  29. package/dist/data/models-registry.json +1606 -0
  30. package/dist/data/openrouter-models-catalog.json +857 -0
  31. package/dist/data/profiles-shortcuts.json +101 -2
  32. package/dist/errors.d.ts +1 -1
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/formatRegistryStatistics.d.ts +4 -0
  36. package/dist/formatRegistryStatistics.d.ts.map +1 -0
  37. package/dist/formatRegistryStatistics.js +34 -0
  38. package/dist/formatRegistryStatistics.js.map +1 -0
  39. package/dist/getAIRegistryStatistics.d.ts +11 -0
  40. package/dist/getAIRegistryStatistics.d.ts.map +1 -0
  41. package/dist/getAIRegistryStatistics.js +52 -0
  42. package/dist/getAIRegistryStatistics.js.map +1 -0
  43. package/dist/index.d.ts +26 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +21 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/listAIProfiles.d.ts +6 -0
  48. package/dist/listAIProfiles.d.ts.map +1 -1
  49. package/dist/listAIProfiles.js +6 -0
  50. package/dist/listAIProfiles.js.map +1 -1
  51. package/dist/loadModelsRegistry.d.ts +6 -0
  52. package/dist/loadModelsRegistry.d.ts.map +1 -0
  53. package/dist/loadModelsRegistry.js +43 -0
  54. package/dist/loadModelsRegistry.js.map +1 -0
  55. package/dist/loader/catalogMemoryCache.d.ts +12 -0
  56. package/dist/loader/catalogMemoryCache.d.ts.map +1 -0
  57. package/dist/loader/catalogMemoryCache.js +14 -0
  58. package/dist/loader/catalogMemoryCache.js.map +1 -0
  59. package/dist/loader/loadBundledModelsCatalog.d.ts +3 -0
  60. package/dist/loader/loadBundledModelsCatalog.d.ts.map +1 -0
  61. package/dist/loader/loadBundledModelsCatalog.js +20 -0
  62. package/dist/loader/loadBundledModelsCatalog.js.map +1 -0
  63. package/dist/loader/loadBundledModelsProfiles.d.ts +4 -0
  64. package/dist/loader/loadBundledModelsProfiles.d.ts.map +1 -0
  65. package/dist/loader/loadBundledModelsProfiles.js +14 -0
  66. package/dist/loader/loadBundledModelsProfiles.js.map +1 -0
  67. package/dist/loader/loadBundledRegistry.d.ts.map +1 -1
  68. package/dist/loader/loadBundledRegistry.js +2 -1
  69. package/dist/loader/loadBundledRegistry.js.map +1 -1
  70. package/dist/loader/loadModelsCatalog.d.ts +9 -0
  71. package/dist/loader/loadModelsCatalog.d.ts.map +1 -0
  72. package/dist/loader/loadModelsCatalog.js +72 -0
  73. package/dist/loader/loadModelsCatalog.js.map +1 -0
  74. package/dist/loader/loadModelsProfilesJson.d.ts +3 -0
  75. package/dist/loader/loadModelsProfilesJson.d.ts.map +1 -0
  76. package/dist/loader/loadModelsProfilesJson.js +18 -0
  77. package/dist/loader/loadModelsProfilesJson.js.map +1 -0
  78. package/dist/loader/loadRemoteModelsCatalog.d.ts +3 -0
  79. package/dist/loader/loadRemoteModelsCatalog.d.ts.map +1 -0
  80. package/dist/loader/loadRemoteModelsCatalog.js +23 -0
  81. package/dist/loader/loadRemoteModelsCatalog.js.map +1 -0
  82. package/dist/loader/loadRemoteModelsProfiles.d.ts +3 -0
  83. package/dist/loader/loadRemoteModelsProfiles.d.ts.map +1 -0
  84. package/dist/loader/loadRemoteModelsProfiles.js +21 -0
  85. package/dist/loader/loadRemoteModelsProfiles.js.map +1 -0
  86. package/dist/loader/loadRemoteRegistry.d.ts.map +1 -1
  87. package/dist/loader/loadRemoteRegistry.js +2 -1
  88. package/dist/loader/loadRemoteRegistry.js.map +1 -1
  89. package/dist/mergeCatalogSupplement.d.ts +4 -0
  90. package/dist/mergeCatalogSupplement.d.ts.map +1 -0
  91. package/dist/mergeCatalogSupplement.js +26 -0
  92. package/dist/mergeCatalogSupplement.js.map +1 -0
  93. package/dist/modelIdentity.d.ts +33 -0
  94. package/dist/modelIdentity.d.ts.map +1 -0
  95. package/dist/modelIdentity.js +161 -0
  96. package/dist/modelIdentity.js.map +1 -0
  97. package/dist/modelsCatalog.d.ts +21 -0
  98. package/dist/modelsCatalog.d.ts.map +1 -0
  99. package/dist/modelsCatalog.js +187 -0
  100. package/dist/modelsCatalog.js.map +1 -0
  101. package/dist/profileCatalogSupplement.d.ts +7 -0
  102. package/dist/profileCatalogSupplement.d.ts.map +1 -0
  103. package/dist/profileCatalogSupplement.js +292 -0
  104. package/dist/profileCatalogSupplement.js.map +1 -0
  105. package/dist/profileRegistryV2.d.ts +19 -0
  106. package/dist/profileRegistryV2.d.ts.map +1 -0
  107. package/dist/profileRegistryV2.js +257 -0
  108. package/dist/profileRegistryV2.js.map +1 -0
  109. package/dist/profileRegistryV3.d.ts +11 -0
  110. package/dist/profileRegistryV3.d.ts.map +1 -0
  111. package/dist/profileRegistryV3.js +526 -0
  112. package/dist/profileRegistryV3.js.map +1 -0
  113. package/dist/resolveAIProfile.d.ts +8 -0
  114. package/dist/resolveAIProfile.d.ts.map +1 -1
  115. package/dist/resolveAIProfile.js +62 -18
  116. package/dist/resolveAIProfile.js.map +1 -1
  117. package/dist/resolveModelIdentity.d.ts +17 -0
  118. package/dist/resolveModelIdentity.d.ts.map +1 -0
  119. package/dist/resolveModelIdentity.js +107 -0
  120. package/dist/resolveModelIdentity.js.map +1 -0
  121. package/dist/resolveModelRouting.d.ts +2 -1
  122. package/dist/resolveModelRouting.d.ts.map +1 -1
  123. package/dist/resolveModelRouting.js +9 -10
  124. package/dist/resolveModelRouting.js.map +1 -1
  125. package/dist/types.d.ts +339 -4
  126. package/dist/types.d.ts.map +1 -1
  127. package/dist/types.js +10 -0
  128. package/dist/types.js.map +1 -1
  129. package/dist/validateProfileVendorCoverage.d.ts +12 -0
  130. package/dist/validateProfileVendorCoverage.d.ts.map +1 -0
  131. package/dist/validateProfileVendorCoverage.js +58 -0
  132. package/dist/validateProfileVendorCoverage.js.map +1 -0
  133. package/dist/validation/openRouterAlignment.d.ts +6 -15
  134. package/dist/validation/openRouterAlignment.d.ts.map +1 -1
  135. package/dist/validation/openRouterAlignment.js +9 -57
  136. package/dist/validation/openRouterAlignment.js.map +1 -1
  137. package/dist/validation/validateModelsCatalog.d.ts +3 -0
  138. package/dist/validation/validateModelsCatalog.d.ts.map +1 -0
  139. package/dist/validation/validateModelsCatalog.js +42 -0
  140. package/dist/validation/validateModelsCatalog.js.map +1 -0
  141. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  142. package/dist/validation/validateModelsProfilesJson.js +38 -2
  143. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  144. package/dist/vendorPolicy.d.ts +20 -0
  145. package/dist/vendorPolicy.d.ts.map +1 -0
  146. package/dist/vendorPolicy.js +71 -0
  147. package/dist/vendorPolicy.js.map +1 -0
  148. package/package.json +12 -2
@@ -0,0 +1,2219 @@
1
+ {
2
+ "schema": "x12i.ai-profiles.models-catalog",
3
+ "version": "0.1.0",
4
+ "generatedAt": "2026-05-29T20:38:18.882Z",
5
+ "currency": "USD",
6
+ "pricingUnit": "1M_tokens",
7
+ "sources": {
8
+ "openrouter": {
9
+ "catalogUrl": "https://openrouter.ai/api/v1/models",
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."
13
+ }
14
+ },
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."
21
+ ],
22
+ "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
+ {
71
+ "direct": {
72
+ "provider": "xai",
73
+ "modelId": "grok-build-0.1"
74
+ },
75
+ "openrouter": {
76
+ "provider": "openrouter",
77
+ "modelId": "x-ai/grok-build-0.1",
78
+ "canonicalSlug": "x-ai/grok-build-0.1-20260520",
79
+ "status": "active",
80
+ "modalities": {
81
+ "input": [
82
+ "text",
83
+ "image"
84
+ ],
85
+ "output": [
86
+ "text"
87
+ ]
88
+ },
89
+ "pricing": {
90
+ "input": 1,
91
+ "output": 2,
92
+ "cachedInput": 0.2,
93
+ "webSearchPerRequest": 0.005
94
+ },
95
+ "capabilities": {
96
+ "reasoning": true,
97
+ "toolCalling": true,
98
+ "structuredOutputs": true
99
+ },
100
+ "contextWindow": 256000
101
+ },
102
+ "displayName": "xAI: Grok Build 0.1",
103
+ "family": "grok",
104
+ "status": "active",
105
+ "modalities": {
106
+ "input": [
107
+ "text",
108
+ "image"
109
+ ],
110
+ "output": [
111
+ "text"
112
+ ]
113
+ },
114
+ "contextWindow": 256000
115
+ },
116
+ {
117
+ "direct": {
118
+ "provider": "google",
119
+ "modelId": "gemini-3.5-flash"
120
+ },
121
+ "openrouter": {
122
+ "provider": "openrouter",
123
+ "modelId": "google/gemini-3.5-flash",
124
+ "canonicalSlug": "google/gemini-3.5-flash-20260519",
125
+ "status": "active",
126
+ "modalities": {
127
+ "input": [
128
+ "text",
129
+ "image",
130
+ "video",
131
+ "file",
132
+ "audio"
133
+ ],
134
+ "output": [
135
+ "text"
136
+ ]
137
+ },
138
+ "pricing": {
139
+ "input": 1.5,
140
+ "output": 9,
141
+ "imageInput": 1.5,
142
+ "audioInput": 3,
143
+ "cachedInput": 0.15,
144
+ "cacheWrite": 0.08333333333333334,
145
+ "internalReasoning": 9,
146
+ "webSearchPerRequest": 0.014
147
+ },
148
+ "capabilities": {
149
+ "reasoning": true,
150
+ "toolCalling": true,
151
+ "structuredOutputs": true
152
+ },
153
+ "contextWindow": 1048576,
154
+ "maxCompletionTokens": 65536,
155
+ "knowledgeCutoff": "2025-01-01"
156
+ },
157
+ "displayName": "Google: Gemini 3.5 Flash",
158
+ "family": "gemini",
159
+ "status": "active",
160
+ "modalities": {
161
+ "input": [
162
+ "text",
163
+ "image",
164
+ "video",
165
+ "file",
166
+ "audio"
167
+ ],
168
+ "output": [
169
+ "text"
170
+ ]
171
+ },
172
+ "contextWindow": 1048576,
173
+ "maxCompletionTokens": 65536,
174
+ "knowledgeCutoff": "2025-01-01"
175
+ },
176
+ {
177
+ "direct": {
178
+ "provider": "anthropic",
179
+ "modelId": "claude-opus-4.7-fast"
180
+ },
181
+ "openrouter": {
182
+ "provider": "openrouter",
183
+ "modelId": "anthropic/claude-opus-4.7-fast",
184
+ "canonicalSlug": "anthropic/claude-4.7-opus-fast-20260512",
185
+ "status": "active",
186
+ "modalities": {
187
+ "input": [
188
+ "text",
189
+ "image",
190
+ "file"
191
+ ],
192
+ "output": [
193
+ "text"
194
+ ]
195
+ },
196
+ "pricing": {
197
+ "input": 30,
198
+ "output": 150,
199
+ "cachedInput": 3,
200
+ "cacheWrite": 37.5,
201
+ "webSearchPerRequest": 0.01
202
+ },
203
+ "capabilities": {
204
+ "reasoning": true,
205
+ "toolCalling": true,
206
+ "structuredOutputs": true
207
+ },
208
+ "contextWindow": 1000000,
209
+ "maxCompletionTokens": 128000
210
+ },
211
+ "displayName": "Anthropic: Claude Opus 4.7 Fast",
212
+ "family": "claude",
213
+ "status": "active",
214
+ "modalities": {
215
+ "input": [
216
+ "text",
217
+ "image",
218
+ "file"
219
+ ],
220
+ "output": [
221
+ "text"
222
+ ]
223
+ },
224
+ "contextWindow": 1000000,
225
+ "maxCompletionTokens": 128000
226
+ },
227
+ {
228
+ "direct": {
229
+ "provider": "custom",
230
+ "modelId": "perceptron-mk1",
231
+ "vendorNamespace": "perceptron"
232
+ },
233
+ "openrouter": {
234
+ "provider": "openrouter",
235
+ "modelId": "perceptron/perceptron-mk1",
236
+ "canonicalSlug": "perceptron/perceptron-mk1-20260512",
237
+ "status": "active",
238
+ "modalities": {
239
+ "input": [
240
+ "text",
241
+ "image",
242
+ "video"
243
+ ],
244
+ "output": [
245
+ "text"
246
+ ]
247
+ },
248
+ "pricing": {
249
+ "input": 0.15,
250
+ "output": 1.5
251
+ },
252
+ "capabilities": {
253
+ "reasoning": true,
254
+ "structuredOutputs": true
255
+ },
256
+ "contextWindow": 32768,
257
+ "maxCompletionTokens": 8192
258
+ },
259
+ "displayName": "Perceptron: Perceptron Mk1",
260
+ "family": "perceptron",
261
+ "status": "active",
262
+ "modalities": {
263
+ "input": [
264
+ "text",
265
+ "image",
266
+ "video"
267
+ ],
268
+ "output": [
269
+ "text"
270
+ ]
271
+ },
272
+ "contextWindow": 32768,
273
+ "maxCompletionTokens": 8192
274
+ },
275
+ {
276
+ "direct": {
277
+ "provider": "custom",
278
+ "modelId": "ring-2.6-1t",
279
+ "vendorNamespace": "ring"
280
+ },
281
+ "openrouter": {
282
+ "provider": "openrouter",
283
+ "modelId": "inclusionai/ring-2.6-1t",
284
+ "canonicalSlug": "inclusionai/ring-2.6-1t-20260508",
285
+ "status": "active",
286
+ "modalities": {
287
+ "input": [
288
+ "text"
289
+ ],
290
+ "output": [
291
+ "text"
292
+ ]
293
+ },
294
+ "pricing": {
295
+ "input": 0.075,
296
+ "output": 0.625,
297
+ "cachedInput": 0.015
298
+ },
299
+ "capabilities": {
300
+ "reasoning": true,
301
+ "toolCalling": true,
302
+ "structuredOutputs": true
303
+ },
304
+ "contextWindow": 262144,
305
+ "maxCompletionTokens": 65536
306
+ },
307
+ "displayName": "inclusionAI: Ring-2.6-1T",
308
+ "family": "ring",
309
+ "status": "active",
310
+ "modalities": {
311
+ "input": [
312
+ "text"
313
+ ],
314
+ "output": [
315
+ "text"
316
+ ]
317
+ },
318
+ "contextWindow": 262144,
319
+ "maxCompletionTokens": 65536
320
+ },
321
+ {
322
+ "direct": {
323
+ "provider": "google",
324
+ "modelId": "gemini-3.1-flash-lite"
325
+ },
326
+ "openrouter": {
327
+ "provider": "openrouter",
328
+ "modelId": "google/gemini-3.1-flash-lite",
329
+ "canonicalSlug": "google/gemini-3.1-flash-lite-20260507",
330
+ "status": "active",
331
+ "modalities": {
332
+ "input": [
333
+ "text",
334
+ "image",
335
+ "video",
336
+ "file",
337
+ "audio"
338
+ ],
339
+ "output": [
340
+ "text"
341
+ ]
342
+ },
343
+ "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
352
+ },
353
+ "capabilities": {
354
+ "reasoning": true,
355
+ "toolCalling": true,
356
+ "structuredOutputs": true
357
+ },
358
+ "contextWindow": 1048576,
359
+ "maxCompletionTokens": 65536
360
+ },
361
+ "displayName": "Google: Gemini 3.1 Flash Lite",
362
+ "family": "gemini",
363
+ "status": "active",
364
+ "modalities": {
365
+ "input": [
366
+ "text",
367
+ "image",
368
+ "video",
369
+ "file",
370
+ "audio"
371
+ ],
372
+ "output": [
373
+ "text"
374
+ ]
375
+ },
376
+ "contextWindow": 1048576,
377
+ "maxCompletionTokens": 65536
378
+ },
379
+ {
380
+ "direct": {
381
+ "provider": "openai",
382
+ "modelId": "gpt-chat-latest"
383
+ },
384
+ "openrouter": {
385
+ "provider": "openrouter",
386
+ "modelId": "openai/gpt-chat-latest",
387
+ "canonicalSlug": "openai/gpt-chat-latest-20260505",
388
+ "status": "active",
389
+ "modalities": {
390
+ "input": [
391
+ "text",
392
+ "image",
393
+ "file"
394
+ ],
395
+ "output": [
396
+ "text"
397
+ ]
398
+ },
399
+ "pricing": {
400
+ "input": 5,
401
+ "output": 30,
402
+ "cachedInput": 0.5,
403
+ "webSearchPerRequest": 0.01
404
+ },
405
+ "capabilities": {
406
+ "toolCalling": true,
407
+ "structuredOutputs": true
408
+ },
409
+ "contextWindow": 400000,
410
+ "maxCompletionTokens": 128000
411
+ },
412
+ "displayName": "OpenAI: GPT Chat Latest",
413
+ "family": "gpt",
414
+ "status": "active",
415
+ "modalities": {
416
+ "input": [
417
+ "text",
418
+ "image",
419
+ "file"
420
+ ],
421
+ "output": [
422
+ "text"
423
+ ]
424
+ },
425
+ "contextWindow": 400000,
426
+ "maxCompletionTokens": 128000
427
+ },
428
+ {
429
+ "direct": {
430
+ "provider": "xai",
431
+ "modelId": "grok-4.3"
432
+ },
433
+ "openrouter": {
434
+ "provider": "openrouter",
435
+ "modelId": "x-ai/grok-4.3",
436
+ "canonicalSlug": "x-ai/grok-4.3-20260430",
437
+ "status": "active",
438
+ "modalities": {
439
+ "input": [
440
+ "text",
441
+ "image"
442
+ ],
443
+ "output": [
444
+ "text"
445
+ ]
446
+ },
447
+ "pricing": {
448
+ "input": 1.25,
449
+ "output": 2.5,
450
+ "cachedInput": 0.2,
451
+ "webSearchPerRequest": 0.005
452
+ },
453
+ "capabilities": {
454
+ "reasoning": true,
455
+ "toolCalling": true,
456
+ "structuredOutputs": true
457
+ },
458
+ "contextWindow": 1000000
459
+ },
460
+ "displayName": "xAI: Grok 4.3",
461
+ "family": "grok",
462
+ "status": "active",
463
+ "modalities": {
464
+ "input": [
465
+ "text",
466
+ "image"
467
+ ],
468
+ "output": [
469
+ "text"
470
+ ]
471
+ },
472
+ "contextWindow": 1000000
473
+ },
474
+ {
475
+ "direct": {
476
+ "provider": "custom",
477
+ "modelId": "granite-4.1-8b",
478
+ "vendorNamespace": "granite"
479
+ },
480
+ "openrouter": {
481
+ "provider": "openrouter",
482
+ "modelId": "ibm-granite/granite-4.1-8b",
483
+ "canonicalSlug": "ibm-granite/granite-4.1-8b-20260429",
484
+ "status": "active",
485
+ "modalities": {
486
+ "input": [
487
+ "text"
488
+ ],
489
+ "output": [
490
+ "text"
491
+ ]
492
+ },
493
+ "pricing": {
494
+ "input": 0.05,
495
+ "output": 0.1,
496
+ "cachedInput": 0.05
497
+ },
498
+ "capabilities": {
499
+ "toolCalling": true,
500
+ "structuredOutputs": true
501
+ },
502
+ "contextWindow": 131072,
503
+ "maxCompletionTokens": 131072
504
+ },
505
+ "displayName": "IBM: Granite 4.1 8B",
506
+ "family": "granite",
507
+ "status": "active",
508
+ "modalities": {
509
+ "input": [
510
+ "text"
511
+ ],
512
+ "output": [
513
+ "text"
514
+ ]
515
+ },
516
+ "contextWindow": 131072,
517
+ "maxCompletionTokens": 131072
518
+ },
519
+ {
520
+ "direct": {
521
+ "provider": "custom",
522
+ "modelId": "mistral-medium-3-5",
523
+ "vendorNamespace": "mistral"
524
+ },
525
+ "openrouter": {
526
+ "provider": "openrouter",
527
+ "modelId": "mistralai/mistral-medium-3-5",
528
+ "canonicalSlug": "mistralai/mistral-medium-3.5-20260430",
529
+ "status": "active",
530
+ "modalities": {
531
+ "input": [
532
+ "text",
533
+ "image",
534
+ "file"
535
+ ],
536
+ "output": [
537
+ "text"
538
+ ]
539
+ },
540
+ "pricing": {
541
+ "input": 1.5,
542
+ "output": 7.5
543
+ },
544
+ "capabilities": {
545
+ "reasoning": true,
546
+ "toolCalling": true,
547
+ "structuredOutputs": true
548
+ },
549
+ "contextWindow": 262144
550
+ },
551
+ "displayName": "Mistral: Mistral Medium 3.5",
552
+ "family": "mistral",
553
+ "status": "active",
554
+ "modalities": {
555
+ "input": [
556
+ "text",
557
+ "image",
558
+ "file"
559
+ ],
560
+ "output": [
561
+ "text"
562
+ ]
563
+ },
564
+ "contextWindow": 262144
565
+ },
566
+ {
567
+ "direct": {
568
+ "provider": "openrouter",
569
+ "modelId": "owl-alpha"
570
+ },
571
+ "openrouter": {
572
+ "provider": "openrouter",
573
+ "modelId": "openrouter/owl-alpha",
574
+ "canonicalSlug": "openrouter/owl-alpha",
575
+ "status": "active",
576
+ "modalities": {
577
+ "input": [
578
+ "text"
579
+ ],
580
+ "output": [
581
+ "text"
582
+ ]
583
+ },
584
+ "pricing": {
585
+ "input": 0,
586
+ "output": 0
587
+ },
588
+ "capabilities": {
589
+ "toolCalling": true,
590
+ "structuredOutputs": true
591
+ },
592
+ "contextWindow": 1048756,
593
+ "maxCompletionTokens": 262144
594
+ },
595
+ "displayName": "Owl Alpha",
596
+ "family": "owl",
597
+ "status": "active",
598
+ "modalities": {
599
+ "input": [
600
+ "text"
601
+ ],
602
+ "output": [
603
+ "text"
604
+ ]
605
+ },
606
+ "contextWindow": 1048756,
607
+ "maxCompletionTokens": 262144
608
+ },
609
+ {
610
+ "direct": {
611
+ "provider": "anthropic",
612
+ "modelId": "claude-haiku-latest"
613
+ },
614
+ "openrouter": {
615
+ "provider": "openrouter",
616
+ "modelId": "~anthropic/claude-haiku-latest",
617
+ "canonicalSlug": "~anthropic/claude-haiku-latest",
618
+ "status": "router",
619
+ "modalities": {
620
+ "input": [
621
+ "text",
622
+ "image",
623
+ "file"
624
+ ],
625
+ "output": [
626
+ "text"
627
+ ]
628
+ },
629
+ "pricing": {
630
+ "input": 1,
631
+ "output": 5,
632
+ "cachedInput": 0.1,
633
+ "cacheWrite": 1.25,
634
+ "webSearchPerRequest": 0.01
635
+ },
636
+ "capabilities": {
637
+ "reasoning": true,
638
+ "toolCalling": true,
639
+ "structuredOutputs": true
640
+ },
641
+ "contextWindow": 200000,
642
+ "maxCompletionTokens": 64000
643
+ },
644
+ "displayName": "Anthropic Claude Haiku Latest",
645
+ "family": "claude-router",
646
+ "status": "router",
647
+ "modalities": {
648
+ "input": [
649
+ "text",
650
+ "image",
651
+ "file"
652
+ ],
653
+ "output": [
654
+ "text"
655
+ ]
656
+ },
657
+ "contextWindow": 200000,
658
+ "maxCompletionTokens": 64000
659
+ },
660
+ {
661
+ "direct": {
662
+ "provider": "openai",
663
+ "modelId": "gpt-mini-latest"
664
+ },
665
+ "openrouter": {
666
+ "provider": "openrouter",
667
+ "modelId": "~openai/gpt-mini-latest",
668
+ "canonicalSlug": "~openai/gpt-mini-latest",
669
+ "status": "router",
670
+ "modalities": {
671
+ "input": [
672
+ "text",
673
+ "image",
674
+ "file"
675
+ ],
676
+ "output": [
677
+ "text"
678
+ ]
679
+ },
680
+ "pricing": {
681
+ "input": 0.75,
682
+ "output": 4.5,
683
+ "cachedInput": 0.075,
684
+ "webSearchPerRequest": 0.01
685
+ },
686
+ "capabilities": {
687
+ "reasoning": true,
688
+ "toolCalling": true,
689
+ "structuredOutputs": true
690
+ },
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
+ "contextWindow": 1048576,
1726
+ "maxCompletionTokens": 65536
1727
+ },
1728
+ "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",
1767
+ "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
1801
+ },
1802
+ "displayName": "Anthropic: Claude Sonnet 4.5",
1803
+ "family": "claude",
1804
+ "status": "active",
1805
+ "contextWindow": 200000,
1806
+ "maxCompletionTokens": 8192
1807
+ },
1808
+ {
1809
+ "direct": {
1810
+ "provider": "openai",
1811
+ "modelId": "gpt-4.1"
1812
+ },
1813
+ "openrouter": {
1814
+ "provider": "openrouter",
1815
+ "modelId": "openai/gpt-4.1",
1816
+ "status": "active",
1817
+ "modalities": {
1818
+ "input": [
1819
+ "text",
1820
+ "image"
1821
+ ],
1822
+ "output": [
1823
+ "text"
1824
+ ]
1825
+ },
1826
+ "pricing": {
1827
+ "input": 2,
1828
+ "output": 8,
1829
+ "cachedInput": 0.5
1830
+ },
1831
+ "capabilities": {
1832
+ "reasoning": true,
1833
+ "toolCalling": true,
1834
+ "structuredOutputs": true
1835
+ },
1836
+ "contextWindow": 1047576,
1837
+ "maxCompletionTokens": 32768
1838
+ },
1839
+ "displayName": "OpenAI: GPT-4.1",
1840
+ "family": "gpt",
1841
+ "status": "active",
1842
+ "contextWindow": 1047576,
1843
+ "maxCompletionTokens": 32768
1844
+ },
1845
+ {
1846
+ "direct": {
1847
+ "provider": "deepseek",
1848
+ "modelId": "deepseek-chat"
1849
+ },
1850
+ "openrouter": {
1851
+ "provider": "openrouter",
1852
+ "modelId": "deepseek/deepseek-chat",
1853
+ "status": "active",
1854
+ "modalities": {
1855
+ "input": [
1856
+ "text"
1857
+ ],
1858
+ "output": [
1859
+ "text"
1860
+ ]
1861
+ },
1862
+ "pricing": {
1863
+ "input": 0.27,
1864
+ "output": 1.1
1865
+ },
1866
+ "capabilities": {
1867
+ "reasoning": false,
1868
+ "toolCalling": true,
1869
+ "structuredOutputs": true
1870
+ },
1871
+ "contextWindow": 65536,
1872
+ "maxCompletionTokens": 8192
1873
+ },
1874
+ "displayName": "DeepSeek: Chat",
1875
+ "family": "deepseek",
1876
+ "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
1911
+ },
1912
+ "displayName": "OpenAI: GPT-5.4",
1913
+ "family": "gpt",
1914
+ "status": "active",
1915
+ "contextWindow": 1050000,
1916
+ "maxCompletionTokens": 128000
1917
+ },
1918
+ {
1919
+ "direct": {
1920
+ "provider": "openai",
1921
+ "modelId": "gpt-5.4-mini"
1922
+ },
1923
+ "openrouter": {
1924
+ "provider": "openrouter",
1925
+ "modelId": "openai/gpt-5.4-mini",
1926
+ "status": "active",
1927
+ "modalities": {
1928
+ "input": [
1929
+ "text",
1930
+ "image",
1931
+ "file"
1932
+ ],
1933
+ "output": [
1934
+ "text"
1935
+ ]
1936
+ },
1937
+ "pricing": {
1938
+ "input": 0.75,
1939
+ "output": 4.5,
1940
+ "cachedInput": 0.075
1941
+ },
1942
+ "capabilities": {
1943
+ "reasoning": true,
1944
+ "toolCalling": true,
1945
+ "structuredOutputs": true
1946
+ },
1947
+ "contextWindow": 400000,
1948
+ "maxCompletionTokens": 128000
1949
+ },
1950
+ "displayName": "OpenAI: GPT-5.4 Mini",
1951
+ "family": "gpt",
1952
+ "status": "active",
1953
+ "contextWindow": 400000,
1954
+ "maxCompletionTokens": 128000
1955
+ },
1956
+ {
1957
+ "direct": {
1958
+ "provider": "openai",
1959
+ "modelId": "gpt-4o-mini"
1960
+ },
1961
+ "openrouter": {
1962
+ "provider": "openrouter",
1963
+ "modelId": "openai/gpt-4o-mini",
1964
+ "status": "active",
1965
+ "modalities": {
1966
+ "input": [
1967
+ "text",
1968
+ "image"
1969
+ ],
1970
+ "output": [
1971
+ "text"
1972
+ ]
1973
+ },
1974
+ "pricing": {
1975
+ "input": 0.15,
1976
+ "output": 0.6,
1977
+ "cachedInput": 0.075
1978
+ },
1979
+ "capabilities": {
1980
+ "reasoning": false,
1981
+ "toolCalling": true,
1982
+ "structuredOutputs": true
1983
+ },
1984
+ "contextWindow": 128000,
1985
+ "maxCompletionTokens": 16384
1986
+ },
1987
+ "displayName": "OpenAI: GPT-4o Mini",
1988
+ "family": "gpt",
1989
+ "status": "active",
1990
+ "contextWindow": 128000,
1991
+ "maxCompletionTokens": 16384
1992
+ },
1993
+ {
1994
+ "direct": {
1995
+ "provider": "anthropic",
1996
+ "modelId": "claude-sonnet-4-6"
1997
+ },
1998
+ "openrouter": {
1999
+ "provider": "openrouter",
2000
+ "modelId": "anthropic/claude-sonnet-4.6",
2001
+ "status": "active",
2002
+ "modalities": {
2003
+ "input": [
2004
+ "text",
2005
+ "image"
2006
+ ],
2007
+ "output": [
2008
+ "text"
2009
+ ]
2010
+ },
2011
+ "pricing": {
2012
+ "input": 3,
2013
+ "output": 15,
2014
+ "cachedInput": 0.3,
2015
+ "cacheWrite": 3.75
2016
+ },
2017
+ "capabilities": {
2018
+ "reasoning": true,
2019
+ "toolCalling": true,
2020
+ "structuredOutputs": true
2021
+ },
2022
+ "contextWindow": 200000,
2023
+ "maxCompletionTokens": 8192
2024
+ },
2025
+ "displayName": "Anthropic: Claude Sonnet 4.6",
2026
+ "family": "claude",
2027
+ "status": "active",
2028
+ "contextWindow": 200000,
2029
+ "maxCompletionTokens": 8192
2030
+ },
2031
+ {
2032
+ "direct": {
2033
+ "provider": "anthropic",
2034
+ "modelId": "claude-opus-4-8"
2035
+ },
2036
+ "openrouter": {
2037
+ "provider": "openrouter",
2038
+ "modelId": "anthropic/claude-opus-4.8",
2039
+ "status": "active",
2040
+ "modalities": {
2041
+ "input": [
2042
+ "text",
2043
+ "image"
2044
+ ],
2045
+ "output": [
2046
+ "text"
2047
+ ]
2048
+ },
2049
+ "pricing": {
2050
+ "input": 15,
2051
+ "output": 75,
2052
+ "cachedInput": 1.5,
2053
+ "cacheWrite": 18.75
2054
+ },
2055
+ "capabilities": {
2056
+ "reasoning": true,
2057
+ "toolCalling": true,
2058
+ "structuredOutputs": true
2059
+ },
2060
+ "contextWindow": 200000,
2061
+ "maxCompletionTokens": 8192
2062
+ },
2063
+ "displayName": "Anthropic: Claude Opus 4.8",
2064
+ "family": "claude",
2065
+ "status": "active",
2066
+ "contextWindow": 200000,
2067
+ "maxCompletionTokens": 8192
2068
+ },
2069
+ {
2070
+ "direct": {
2071
+ "provider": "anthropic",
2072
+ "modelId": "claude-opus-4-5"
2073
+ },
2074
+ "openrouter": {
2075
+ "provider": "openrouter",
2076
+ "modelId": "anthropic/claude-opus-4.5",
2077
+ "status": "active",
2078
+ "modalities": {
2079
+ "input": [
2080
+ "text",
2081
+ "image"
2082
+ ],
2083
+ "output": [
2084
+ "text"
2085
+ ]
2086
+ },
2087
+ "pricing": {
2088
+ "input": 15,
2089
+ "output": 75,
2090
+ "cachedInput": 1.5,
2091
+ "cacheWrite": 18.75
2092
+ },
2093
+ "capabilities": {
2094
+ "reasoning": true,
2095
+ "toolCalling": true,
2096
+ "structuredOutputs": true
2097
+ },
2098
+ "contextWindow": 200000,
2099
+ "maxCompletionTokens": 8192
2100
+ },
2101
+ "displayName": "Anthropic: Claude Opus 4.5",
2102
+ "family": "claude",
2103
+ "status": "active",
2104
+ "contextWindow": 200000,
2105
+ "maxCompletionTokens": 8192
2106
+ },
2107
+ {
2108
+ "direct": {
2109
+ "provider": "google",
2110
+ "modelId": "gemini-2.5-pro"
2111
+ },
2112
+ "openrouter": {
2113
+ "provider": "openrouter",
2114
+ "modelId": "google/gemini-2.5-pro",
2115
+ "status": "active",
2116
+ "modalities": {
2117
+ "input": [
2118
+ "text",
2119
+ "image",
2120
+ "video",
2121
+ "file"
2122
+ ],
2123
+ "output": [
2124
+ "text"
2125
+ ]
2126
+ },
2127
+ "pricing": {
2128
+ "input": 1.25,
2129
+ "output": 10,
2130
+ "cachedInput": 0.125,
2131
+ "batchInput": 0.625,
2132
+ "batchOutput": 5
2133
+ },
2134
+ "capabilities": {
2135
+ "reasoning": true,
2136
+ "toolCalling": true,
2137
+ "structuredOutputs": true
2138
+ },
2139
+ "contextWindow": 1048576,
2140
+ "maxCompletionTokens": 65536
2141
+ },
2142
+ "displayName": "Google: Gemini 2.5 Pro",
2143
+ "family": "gemini",
2144
+ "status": "active",
2145
+ "contextWindow": 1048576,
2146
+ "maxCompletionTokens": 65536
2147
+ },
2148
+ {
2149
+ "direct": {
2150
+ "provider": "together",
2151
+ "modelId": "meta-llama/Llama-3.3-70B-Instruct-Turbo"
2152
+ },
2153
+ "openrouter": {
2154
+ "provider": "openrouter",
2155
+ "modelId": "meta-llama/llama-3.3-70b-instruct-turbo",
2156
+ "status": "active",
2157
+ "modalities": {
2158
+ "input": [
2159
+ "text"
2160
+ ],
2161
+ "output": [
2162
+ "text"
2163
+ ]
2164
+ },
2165
+ "pricing": {
2166
+ "input": 0.88,
2167
+ "output": 0.88
2168
+ },
2169
+ "capabilities": {
2170
+ "reasoning": false,
2171
+ "toolCalling": true,
2172
+ "structuredOutputs": true
2173
+ },
2174
+ "contextWindow": 131072,
2175
+ "maxCompletionTokens": 8192
2176
+ },
2177
+ "displayName": "Meta: Llama 3.3 70B Instruct Turbo",
2178
+ "family": "llama",
2179
+ "status": "active",
2180
+ "contextWindow": 131072,
2181
+ "maxCompletionTokens": 8192
2182
+ },
2183
+ {
2184
+ "direct": {
2185
+ "provider": "together",
2186
+ "modelId": "Qwen/Qwen3-235B-A22B-Instruct-2507-tput"
2187
+ },
2188
+ "openrouter": {
2189
+ "provider": "openrouter",
2190
+ "modelId": "qwen/qwen3-235b-a22b-instruct-2507-tput",
2191
+ "status": "active",
2192
+ "modalities": {
2193
+ "input": [
2194
+ "text"
2195
+ ],
2196
+ "output": [
2197
+ "text"
2198
+ ]
2199
+ },
2200
+ "pricing": {
2201
+ "input": 1.2,
2202
+ "output": 1.2
2203
+ },
2204
+ "capabilities": {
2205
+ "reasoning": true,
2206
+ "toolCalling": true,
2207
+ "structuredOutputs": true
2208
+ },
2209
+ "contextWindow": 131072,
2210
+ "maxCompletionTokens": 8192
2211
+ },
2212
+ "displayName": "Qwen3 235B A22B Instruct",
2213
+ "family": "qwen",
2214
+ "status": "active",
2215
+ "contextWindow": 131072,
2216
+ "maxCompletionTokens": 8192
2217
+ }
2218
+ ]
2219
+ }