@x12i/ai-tools 1.0.4 → 2.0.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 (153) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +146 -204
  3. package/dist/AiModelsCatalogClient-B5FMI9gj.d.cts +58 -0
  4. package/dist/AiModelsCatalogClient-CPPNI6Ry.d.ts +58 -0
  5. package/dist/aliases/index.cjs +4 -3
  6. package/dist/aliases/index.cjs.map +1 -1
  7. package/dist/aliases/index.d.cts +3 -5
  8. package/dist/aliases/index.d.ts +3 -5
  9. package/dist/aliases/index.js +2 -2
  10. package/dist/catalog/index.cjs +18 -9
  11. package/dist/catalog/index.cjs.map +1 -1
  12. package/dist/catalog/index.d.cts +13 -100
  13. package/dist/catalog/index.d.ts +13 -100
  14. package/dist/catalog/index.js +31 -23
  15. package/dist/{chunk-AJEKEWWB.js → chunk-2PTCWPHV.js} +17 -3
  16. package/dist/chunk-2PTCWPHV.js.map +1 -0
  17. package/dist/chunk-56R4XA2S.js +1 -0
  18. package/dist/chunk-5GUKLOEK.cjs +1 -0
  19. package/dist/chunk-5GUKLOEK.cjs.map +1 -0
  20. package/dist/chunk-5XAAMBDO.cjs +1988 -0
  21. package/dist/chunk-5XAAMBDO.cjs.map +1 -0
  22. package/dist/chunk-6BQBKROR.js +95 -0
  23. package/dist/chunk-6BQBKROR.js.map +1 -0
  24. package/dist/chunk-AB5GNXJ4.js +46 -0
  25. package/dist/chunk-AB5GNXJ4.js.map +1 -0
  26. package/dist/{chunk-O2A6OVEH.js → chunk-ANVONYJF.js} +2 -2
  27. package/dist/{chunk-O2A6OVEH.js.map → chunk-ANVONYJF.js.map} +1 -1
  28. package/dist/chunk-B3V2EHRY.js +225 -0
  29. package/dist/chunk-B3V2EHRY.js.map +1 -0
  30. package/dist/{chunk-QWAX7VQO.cjs → chunk-BAHBDADJ.cjs} +11 -11
  31. package/dist/{chunk-QWAX7VQO.cjs.map → chunk-BAHBDADJ.cjs.map} +1 -1
  32. package/dist/{chunk-TF4L2NEC.cjs → chunk-DXZOL3VN.cjs} +62 -313
  33. package/dist/chunk-DXZOL3VN.cjs.map +1 -0
  34. package/dist/chunk-EDMCKHO6.cjs +225 -0
  35. package/dist/chunk-EDMCKHO6.cjs.map +1 -0
  36. package/dist/{chunk-DJ5SWJDY.js → chunk-EYHMQVAL.js} +48 -299
  37. package/dist/chunk-EYHMQVAL.js.map +1 -0
  38. package/dist/chunk-GS7T56RP.cjs +8 -0
  39. package/dist/chunk-GS7T56RP.cjs.map +1 -0
  40. package/dist/chunk-NF2SKQR7.cjs +973 -0
  41. package/dist/chunk-NF2SKQR7.cjs.map +1 -0
  42. package/dist/chunk-OPN6BGNH.js +1985 -0
  43. package/dist/chunk-OPN6BGNH.js.map +1 -0
  44. package/dist/{chunk-7Q742NI3.cjs → chunk-PADNCGZB.cjs} +17 -3
  45. package/dist/chunk-PADNCGZB.cjs.map +1 -0
  46. package/dist/chunk-PRCICORG.cjs +95 -0
  47. package/dist/chunk-PRCICORG.cjs.map +1 -0
  48. package/dist/{chunk-6QGDZTGH.js → chunk-SIH4GPV4.js} +4 -29
  49. package/dist/chunk-SIH4GPV4.js.map +1 -0
  50. package/dist/chunk-U2YDDUVP.js +970 -0
  51. package/dist/chunk-U2YDDUVP.js.map +1 -0
  52. package/dist/{chunk-4NAY6HRP.js → chunk-VJHLO2R3.js} +7 -58
  53. package/dist/chunk-VJHLO2R3.js.map +1 -0
  54. package/dist/chunk-XAWBTX3N.cjs +46 -0
  55. package/dist/chunk-XAWBTX3N.cjs.map +1 -0
  56. package/dist/{chunk-AV6OE2YQ.cjs → chunk-XOKUDUUI.cjs} +14 -39
  57. package/dist/chunk-XOKUDUUI.cjs.map +1 -0
  58. package/dist/chunk-YQDSN6R6.cjs +86 -0
  59. package/dist/chunk-YQDSN6R6.cjs.map +1 -0
  60. package/dist/cli/index.cjs +59 -201
  61. package/dist/cli/index.cjs.map +1 -1
  62. package/dist/cli/index.js +53 -198
  63. package/dist/cli/index.js.map +1 -1
  64. package/dist/cost/index.cjs +19 -3
  65. package/dist/cost/index.cjs.map +1 -1
  66. package/dist/cost/index.d.cts +10 -50
  67. package/dist/cost/index.d.ts +10 -50
  68. package/dist/cost/index.js +18 -3
  69. package/dist/index.cjs +24 -16
  70. package/dist/index.cjs.map +1 -1
  71. package/dist/index.d.cts +13 -13
  72. package/dist/index.d.ts +13 -13
  73. package/dist/index.js +44 -37
  74. package/dist/modelCache-BzRn6t_C.d.ts +113 -0
  75. package/dist/modelCache-CJftI-Ko.d.cts +113 -0
  76. package/dist/{modelNameResolver-DqFt7g6W.d.ts → modelNameResolver-5XkBMctP.d.ts} +2 -6
  77. package/dist/{modelNameResolver-D9V_GfUK.d.cts → modelNameResolver-C5CSTGFF.d.cts} +2 -6
  78. package/dist/models/index.cjs +9 -6
  79. package/dist/models/index.cjs.map +1 -1
  80. package/dist/models/index.d.cts +9 -31
  81. package/dist/models/index.d.ts +9 -31
  82. package/dist/models/index.js +9 -7
  83. package/dist/resolveUsageModel-BFwf80Hz.d.ts +140 -0
  84. package/dist/resolveUsageModel-C_YmGR1M.d.cts +140 -0
  85. package/dist/sync/index.cjs +7 -9
  86. package/dist/sync/index.cjs.map +1 -1
  87. package/dist/sync/index.d.cts +3 -8
  88. package/dist/sync/index.d.ts +3 -8
  89. package/dist/sync/index.js +8 -11
  90. package/dist/toolbox/index.cjs +1 -0
  91. package/dist/toolbox/index.cjs.map +1 -1
  92. package/dist/types-BrzJWsTU.d.cts +277 -0
  93. package/dist/types-BrzJWsTU.d.ts +277 -0
  94. package/package.json +9 -20
  95. package/src/data/models-catalog.json +670 -0
  96. package/src/data/openrouter-models-catalog.json +857 -0
  97. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs +0 -9
  98. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs.map +0 -1
  99. package/dist/AiModelsCatalogClient-CNeqFiFs.d.cts +0 -30
  100. package/dist/AiModelsCatalogClient-NUF3CBLW.js +0 -9
  101. package/dist/AiModelsCatalogClient-nwFoEaqL.d.ts +0 -30
  102. package/dist/catalox/index.cjs +0 -21
  103. package/dist/catalox/index.cjs.map +0 -1
  104. package/dist/catalox/index.d.cts +0 -11
  105. package/dist/catalox/index.d.ts +0 -11
  106. package/dist/catalox/index.js +0 -21
  107. package/dist/catalox/index.js.map +0 -1
  108. package/dist/chunk-4NAY6HRP.js.map +0 -1
  109. package/dist/chunk-6QGDZTGH.js.map +0 -1
  110. package/dist/chunk-7Q742NI3.cjs.map +0 -1
  111. package/dist/chunk-AJEKEWWB.js.map +0 -1
  112. package/dist/chunk-AV6OE2YQ.cjs.map +0 -1
  113. package/dist/chunk-C3H7RTFR.cjs +0 -1
  114. package/dist/chunk-C3H7RTFR.cjs.map +0 -1
  115. package/dist/chunk-DJ5SWJDY.js.map +0 -1
  116. package/dist/chunk-DKHGWHXP.cjs +0 -169
  117. package/dist/chunk-DKHGWHXP.cjs.map +0 -1
  118. package/dist/chunk-F2F4UEFD.cjs +0 -75
  119. package/dist/chunk-F2F4UEFD.cjs.map +0 -1
  120. package/dist/chunk-FGP3QXWL.cjs +0 -163
  121. package/dist/chunk-FGP3QXWL.cjs.map +0 -1
  122. package/dist/chunk-G2G4KSC5.js +0 -30
  123. package/dist/chunk-G2G4KSC5.js.map +0 -1
  124. package/dist/chunk-HN6UAQAE.cjs +0 -83
  125. package/dist/chunk-HN6UAQAE.cjs.map +0 -1
  126. package/dist/chunk-HS74X2OJ.cjs +0 -172
  127. package/dist/chunk-HS74X2OJ.cjs.map +0 -1
  128. package/dist/chunk-HYGXZY25.js +0 -163
  129. package/dist/chunk-HYGXZY25.js.map +0 -1
  130. package/dist/chunk-KQOALKKX.js +0 -75
  131. package/dist/chunk-KQOALKKX.js.map +0 -1
  132. package/dist/chunk-LYOU7CA2.cjs +0 -30
  133. package/dist/chunk-LYOU7CA2.cjs.map +0 -1
  134. package/dist/chunk-M5TMA73F.js +0 -1
  135. package/dist/chunk-M5TMA73F.js.map +0 -1
  136. package/dist/chunk-MX3AMQFC.js +0 -172
  137. package/dist/chunk-MX3AMQFC.js.map +0 -1
  138. package/dist/chunk-QCRLKVB3.cjs +0 -137
  139. package/dist/chunk-QCRLKVB3.cjs.map +0 -1
  140. package/dist/chunk-TF4L2NEC.cjs.map +0 -1
  141. package/dist/chunk-VRFVF5RH.js +0 -169
  142. package/dist/chunk-VRFVF5RH.js.map +0 -1
  143. package/dist/chunk-YHO57D2V.js +0 -83
  144. package/dist/chunk-YHO57D2V.js.map +0 -1
  145. package/dist/syncAiModelsCatalog-CnXRLm2c.d.cts +0 -32
  146. package/dist/syncAiModelsCatalog-DpkN_w7S.d.ts +0 -32
  147. package/dist/types-BYXnCvKx.d.cts +0 -137
  148. package/dist/types-BYXnCvKx.d.ts +0 -137
  149. package/dist/types-CX6QFNNy.d.cts +0 -144
  150. package/dist/types-CuiPDcVs.d.ts +0 -144
  151. package/dist/upsertAiModelRecord-C831wOIF.d.ts +0 -35
  152. package/dist/upsertAiModelRecord-CjY-sny0.d.cts +0 -35
  153. /package/dist/{AiModelsCatalogClient-NUF3CBLW.js.map → chunk-56R4XA2S.js.map} +0 -0
@@ -0,0 +1,857 @@
1
+ {
2
+ "schema": "x12i.openrouter-models.catalog",
3
+ "version": "0.1.0",
4
+ "currency": "USD",
5
+ "pricingUnit": "1M_tokens",
6
+ "source": {
7
+ "provider": "openrouter",
8
+ "catalogUrl": "https://openrouter.ai/api/v1/models",
9
+ "pricingUrl": "https://openrouter.ai/pricing",
10
+ "verifiedAt": "2026-05-27",
11
+ "normalization": "OpenRouter pricing fields are per-token decimal strings. Values below are normalized to USD per 1M tokens."
12
+ },
13
+ "notes": [
14
+ "This catalog is OpenRouter-specific and should not be merged with direct-provider pricing.",
15
+ "Router models beginning with ~ are dynamic aliases that redirect to latest model families.",
16
+ "Models ending with :free are free OpenRouter variants and may have rate limits or availability limits.",
17
+ "webSearch is kept as a separate field because OpenRouter exposes it separately from token pricing.",
18
+ "This is a seed catalog. In production, generate the full file from https://openrouter.ai/api/v1/models."
19
+ ],
20
+ "models": [
21
+ {
22
+ "provider": "openrouter",
23
+ "modelId": "qwen/qwen3.7-max",
24
+ "canonicalSlug": "qwen/qwen3.7-max-20260520",
25
+ "displayName": "Qwen: Qwen3.7 Max",
26
+ "family": "qwen",
27
+ "status": "active",
28
+ "modalities": {
29
+ "input": ["text"],
30
+ "output": ["text"]
31
+ },
32
+ "contextWindow": 1000000,
33
+ "maxCompletionTokens": 65536,
34
+ "pricing": {
35
+ "input": 1.25,
36
+ "output": 3.75,
37
+ "cachedInput": 0.25,
38
+ "cacheWrite": 1.5625
39
+ },
40
+ "capabilities": {
41
+ "reasoning": true,
42
+ "toolCalling": true,
43
+ "structuredOutputs": true
44
+ }
45
+ },
46
+ {
47
+ "provider": "openrouter",
48
+ "modelId": "x-ai/grok-build-0.1",
49
+ "canonicalSlug": "x-ai/grok-build-0.1-20260520",
50
+ "displayName": "xAI: Grok Build 0.1",
51
+ "family": "grok",
52
+ "status": "active",
53
+ "modalities": {
54
+ "input": ["text", "image"],
55
+ "output": ["text"]
56
+ },
57
+ "contextWindow": 256000,
58
+ "pricing": {
59
+ "input": 1,
60
+ "output": 2,
61
+ "cachedInput": 0.2,
62
+ "webSearchPerRequest": 0.005
63
+ },
64
+ "capabilities": {
65
+ "reasoning": true,
66
+ "toolCalling": true,
67
+ "structuredOutputs": true
68
+ }
69
+ },
70
+ {
71
+ "provider": "openrouter",
72
+ "modelId": "google/gemini-3.5-flash",
73
+ "canonicalSlug": "google/gemini-3.5-flash-20260519",
74
+ "displayName": "Google: Gemini 3.5 Flash",
75
+ "family": "gemini",
76
+ "status": "active",
77
+ "modalities": {
78
+ "input": ["text", "image", "video", "file", "audio"],
79
+ "output": ["text"]
80
+ },
81
+ "contextWindow": 1048576,
82
+ "maxCompletionTokens": 65536,
83
+ "knowledgeCutoff": "2025-01-01",
84
+ "pricing": {
85
+ "input": 1.5,
86
+ "output": 9,
87
+ "imageInput": 1.5,
88
+ "audioInput": 3,
89
+ "cachedInput": 0.15,
90
+ "cacheWrite": 0.08333333333333334,
91
+ "internalReasoning": 9,
92
+ "webSearchPerRequest": 0.014
93
+ },
94
+ "capabilities": {
95
+ "reasoning": true,
96
+ "toolCalling": true,
97
+ "structuredOutputs": true
98
+ }
99
+ },
100
+ {
101
+ "provider": "openrouter",
102
+ "modelId": "anthropic/claude-opus-4.7-fast",
103
+ "canonicalSlug": "anthropic/claude-4.7-opus-fast-20260512",
104
+ "displayName": "Anthropic: Claude Opus 4.7 Fast",
105
+ "family": "claude",
106
+ "status": "active",
107
+ "modalities": {
108
+ "input": ["text", "image", "file"],
109
+ "output": ["text"]
110
+ },
111
+ "contextWindow": 1000000,
112
+ "maxCompletionTokens": 128000,
113
+ "pricing": {
114
+ "input": 30,
115
+ "output": 150,
116
+ "cachedInput": 3,
117
+ "cacheWrite": 37.5,
118
+ "webSearchPerRequest": 0.01
119
+ },
120
+ "capabilities": {
121
+ "reasoning": true,
122
+ "toolCalling": true,
123
+ "structuredOutputs": true
124
+ }
125
+ },
126
+ {
127
+ "provider": "openrouter",
128
+ "modelId": "perceptron/perceptron-mk1",
129
+ "canonicalSlug": "perceptron/perceptron-mk1-20260512",
130
+ "displayName": "Perceptron: Perceptron Mk1",
131
+ "family": "perceptron",
132
+ "status": "active",
133
+ "modalities": {
134
+ "input": ["text", "image", "video"],
135
+ "output": ["text"]
136
+ },
137
+ "contextWindow": 32768,
138
+ "maxCompletionTokens": 8192,
139
+ "pricing": {
140
+ "input": 0.15,
141
+ "output": 1.5
142
+ },
143
+ "capabilities": {
144
+ "reasoning": true,
145
+ "structuredOutputs": true
146
+ }
147
+ },
148
+ {
149
+ "provider": "openrouter",
150
+ "modelId": "inclusionai/ring-2.6-1t",
151
+ "canonicalSlug": "inclusionai/ring-2.6-1t-20260508",
152
+ "displayName": "inclusionAI: Ring-2.6-1T",
153
+ "family": "ring",
154
+ "status": "active",
155
+ "modalities": {
156
+ "input": ["text"],
157
+ "output": ["text"]
158
+ },
159
+ "contextWindow": 262144,
160
+ "maxCompletionTokens": 65536,
161
+ "pricing": {
162
+ "input": 0.075,
163
+ "output": 0.625,
164
+ "cachedInput": 0.015
165
+ },
166
+ "capabilities": {
167
+ "reasoning": true,
168
+ "toolCalling": true,
169
+ "structuredOutputs": true
170
+ }
171
+ },
172
+ {
173
+ "provider": "openrouter",
174
+ "modelId": "google/gemini-3.1-flash-lite",
175
+ "canonicalSlug": "google/gemini-3.1-flash-lite-20260507",
176
+ "displayName": "Google: Gemini 3.1 Flash Lite",
177
+ "family": "gemini",
178
+ "status": "active",
179
+ "modalities": {
180
+ "input": ["text", "image", "video", "file", "audio"],
181
+ "output": ["text"]
182
+ },
183
+ "contextWindow": 1048576,
184
+ "maxCompletionTokens": 65536,
185
+ "pricing": {
186
+ "input": 0.25,
187
+ "output": 1.5,
188
+ "imageInput": 0.25,
189
+ "audioInput": 0.5,
190
+ "cachedInput": 0.025,
191
+ "cacheWrite": 0.08333333333333334,
192
+ "internalReasoning": 1.5,
193
+ "webSearchPerRequest": 0.014
194
+ },
195
+ "capabilities": {
196
+ "reasoning": true,
197
+ "toolCalling": true,
198
+ "structuredOutputs": true
199
+ }
200
+ },
201
+ {
202
+ "provider": "openrouter",
203
+ "modelId": "openai/gpt-chat-latest",
204
+ "canonicalSlug": "openai/gpt-chat-latest-20260505",
205
+ "displayName": "OpenAI: GPT Chat Latest",
206
+ "family": "gpt",
207
+ "status": "active",
208
+ "modalities": {
209
+ "input": ["text", "image", "file"],
210
+ "output": ["text"]
211
+ },
212
+ "contextWindow": 400000,
213
+ "maxCompletionTokens": 128000,
214
+ "pricing": {
215
+ "input": 5,
216
+ "output": 30,
217
+ "cachedInput": 0.5,
218
+ "webSearchPerRequest": 0.01
219
+ },
220
+ "capabilities": {
221
+ "toolCalling": true,
222
+ "structuredOutputs": true
223
+ }
224
+ },
225
+ {
226
+ "provider": "openrouter",
227
+ "modelId": "x-ai/grok-4.3",
228
+ "canonicalSlug": "x-ai/grok-4.3-20260430",
229
+ "displayName": "xAI: Grok 4.3",
230
+ "family": "grok",
231
+ "status": "active",
232
+ "modalities": {
233
+ "input": ["text", "image"],
234
+ "output": ["text"]
235
+ },
236
+ "contextWindow": 1000000,
237
+ "pricing": {
238
+ "input": 1.25,
239
+ "output": 2.5,
240
+ "cachedInput": 0.2,
241
+ "webSearchPerRequest": 0.005
242
+ },
243
+ "capabilities": {
244
+ "reasoning": true,
245
+ "toolCalling": true,
246
+ "structuredOutputs": true
247
+ }
248
+ },
249
+ {
250
+ "provider": "openrouter",
251
+ "modelId": "ibm-granite/granite-4.1-8b",
252
+ "canonicalSlug": "ibm-granite/granite-4.1-8b-20260429",
253
+ "displayName": "IBM: Granite 4.1 8B",
254
+ "family": "granite",
255
+ "status": "active",
256
+ "modalities": {
257
+ "input": ["text"],
258
+ "output": ["text"]
259
+ },
260
+ "contextWindow": 131072,
261
+ "maxCompletionTokens": 131072,
262
+ "pricing": {
263
+ "input": 0.05,
264
+ "output": 0.1,
265
+ "cachedInput": 0.05
266
+ },
267
+ "capabilities": {
268
+ "toolCalling": true,
269
+ "structuredOutputs": true
270
+ }
271
+ },
272
+ {
273
+ "provider": "openrouter",
274
+ "modelId": "mistralai/mistral-medium-3-5",
275
+ "canonicalSlug": "mistralai/mistral-medium-3.5-20260430",
276
+ "displayName": "Mistral: Mistral Medium 3.5",
277
+ "family": "mistral",
278
+ "status": "active",
279
+ "modalities": {
280
+ "input": ["text", "image", "file"],
281
+ "output": ["text"]
282
+ },
283
+ "contextWindow": 262144,
284
+ "pricing": {
285
+ "input": 1.5,
286
+ "output": 7.5
287
+ },
288
+ "capabilities": {
289
+ "reasoning": true,
290
+ "toolCalling": true,
291
+ "structuredOutputs": true
292
+ }
293
+ },
294
+ {
295
+ "provider": "openrouter",
296
+ "modelId": "openrouter/owl-alpha",
297
+ "canonicalSlug": "openrouter/owl-alpha",
298
+ "displayName": "Owl Alpha",
299
+ "family": "owl",
300
+ "status": "active",
301
+ "modalities": {
302
+ "input": ["text"],
303
+ "output": ["text"]
304
+ },
305
+ "contextWindow": 1048756,
306
+ "maxCompletionTokens": 262144,
307
+ "pricing": {
308
+ "input": 0,
309
+ "output": 0
310
+ },
311
+ "capabilities": {
312
+ "toolCalling": true,
313
+ "structuredOutputs": true
314
+ }
315
+ },
316
+ {
317
+ "provider": "openrouter",
318
+ "modelId": "~anthropic/claude-haiku-latest",
319
+ "canonicalSlug": "~anthropic/claude-haiku-latest",
320
+ "displayName": "Anthropic Claude Haiku Latest",
321
+ "family": "claude-router",
322
+ "status": "router",
323
+ "modalities": {
324
+ "input": ["text", "image", "file"],
325
+ "output": ["text"]
326
+ },
327
+ "contextWindow": 200000,
328
+ "maxCompletionTokens": 64000,
329
+ "pricing": {
330
+ "input": 1,
331
+ "output": 5,
332
+ "cachedInput": 0.1,
333
+ "cacheWrite": 1.25,
334
+ "webSearchPerRequest": 0.01
335
+ },
336
+ "capabilities": {
337
+ "reasoning": true,
338
+ "toolCalling": true,
339
+ "structuredOutputs": true
340
+ }
341
+ },
342
+ {
343
+ "provider": "openrouter",
344
+ "modelId": "~openai/gpt-mini-latest",
345
+ "canonicalSlug": "~openai/gpt-mini-latest",
346
+ "displayName": "OpenAI GPT Mini Latest",
347
+ "family": "gpt-router",
348
+ "status": "router",
349
+ "modalities": {
350
+ "input": ["text", "image", "file"],
351
+ "output": ["text"]
352
+ },
353
+ "contextWindow": 400000,
354
+ "maxCompletionTokens": 128000,
355
+ "knowledgeCutoff": "2025-08-31",
356
+ "pricing": {
357
+ "input": 0.75,
358
+ "output": 4.5,
359
+ "cachedInput": 0.075,
360
+ "webSearchPerRequest": 0.01
361
+ },
362
+ "capabilities": {
363
+ "reasoning": true,
364
+ "toolCalling": true,
365
+ "structuredOutputs": true
366
+ }
367
+ },
368
+ {
369
+ "provider": "openrouter",
370
+ "modelId": "~google/gemini-pro-latest",
371
+ "canonicalSlug": "~google/gemini-pro-latest",
372
+ "displayName": "Google Gemini Pro Latest",
373
+ "family": "gemini-router",
374
+ "status": "router",
375
+ "modalities": {
376
+ "input": ["text", "image", "file", "audio", "video"],
377
+ "output": ["text"]
378
+ },
379
+ "contextWindow": 1048576,
380
+ "maxCompletionTokens": 65536,
381
+ "pricing": {
382
+ "input": 2,
383
+ "output": 12,
384
+ "imageInput": 2,
385
+ "audioInput": 2,
386
+ "cachedInput": 0.2,
387
+ "cacheWrite": 0.375,
388
+ "internalReasoning": 12,
389
+ "webSearchPerRequest": 0.014
390
+ },
391
+ "capabilities": {
392
+ "reasoning": true,
393
+ "toolCalling": true,
394
+ "structuredOutputs": true
395
+ }
396
+ },
397
+ {
398
+ "provider": "openrouter",
399
+ "modelId": "~moonshotai/kimi-latest",
400
+ "canonicalSlug": "~moonshotai/kimi-latest",
401
+ "displayName": "MoonshotAI Kimi Latest",
402
+ "family": "kimi-router",
403
+ "status": "router",
404
+ "modalities": {
405
+ "input": ["text", "image"],
406
+ "output": ["text"]
407
+ },
408
+ "contextWindow": 262144,
409
+ "maxCompletionTokens": 262142,
410
+ "pricing": {
411
+ "input": 0.73,
412
+ "output": 3.49,
413
+ "cachedInput": 0.25
414
+ },
415
+ "capabilities": {
416
+ "reasoning": true,
417
+ "toolCalling": true,
418
+ "structuredOutputs": true
419
+ }
420
+ },
421
+ {
422
+ "provider": "openrouter",
423
+ "modelId": "~google/gemini-flash-latest",
424
+ "canonicalSlug": "~google/gemini-flash-latest",
425
+ "displayName": "Google Gemini Flash Latest",
426
+ "family": "gemini-router",
427
+ "status": "router",
428
+ "modalities": {
429
+ "input": ["text", "image", "video", "file", "audio"],
430
+ "output": ["text"]
431
+ },
432
+ "contextWindow": 1048576,
433
+ "maxCompletionTokens": 65536,
434
+ "knowledgeCutoff": "2025-01-01",
435
+ "pricing": {
436
+ "input": 1.5,
437
+ "output": 9,
438
+ "imageInput": 1.5,
439
+ "audioInput": 3,
440
+ "cachedInput": 0.15,
441
+ "cacheWrite": 0.08333333333333334,
442
+ "internalReasoning": 9,
443
+ "webSearchPerRequest": 0.014
444
+ },
445
+ "capabilities": {
446
+ "reasoning": true,
447
+ "toolCalling": true,
448
+ "structuredOutputs": true
449
+ }
450
+ },
451
+ {
452
+ "provider": "openrouter",
453
+ "modelId": "~anthropic/claude-sonnet-latest",
454
+ "canonicalSlug": "~anthropic/claude-sonnet-latest",
455
+ "displayName": "Anthropic Claude Sonnet Latest",
456
+ "family": "claude-router",
457
+ "status": "router",
458
+ "modalities": {
459
+ "input": ["text", "image", "file"],
460
+ "output": ["text"]
461
+ },
462
+ "contextWindow": 1000000,
463
+ "maxCompletionTokens": 128000,
464
+ "pricing": {
465
+ "input": 3,
466
+ "output": 15,
467
+ "cachedInput": 0.3,
468
+ "cacheWrite": 3.75,
469
+ "webSearchPerRequest": 0.01
470
+ },
471
+ "capabilities": {
472
+ "reasoning": true,
473
+ "toolCalling": true,
474
+ "structuredOutputs": true
475
+ }
476
+ },
477
+ {
478
+ "provider": "openrouter",
479
+ "modelId": "~openai/gpt-latest",
480
+ "canonicalSlug": "~openai/gpt-latest",
481
+ "displayName": "OpenAI GPT Latest",
482
+ "family": "gpt-router",
483
+ "status": "router",
484
+ "modalities": {
485
+ "input": ["text", "image", "file"],
486
+ "output": ["text"]
487
+ },
488
+ "contextWindow": 1050000,
489
+ "maxCompletionTokens": 128000,
490
+ "knowledgeCutoff": "2025-12-01",
491
+ "pricing": {
492
+ "input": 5,
493
+ "output": 30,
494
+ "cachedInput": 0.5,
495
+ "webSearchPerRequest": 0.01
496
+ },
497
+ "capabilities": {
498
+ "reasoning": true,
499
+ "toolCalling": true,
500
+ "structuredOutputs": true
501
+ }
502
+ },
503
+ {
504
+ "provider": "openrouter",
505
+ "modelId": "qwen/qwen3.5-plus-20260420",
506
+ "canonicalSlug": "qwen/qwen3.5-plus-20260420",
507
+ "displayName": "Qwen: Qwen3.5 Plus 2026-04-20",
508
+ "family": "qwen",
509
+ "status": "active",
510
+ "modalities": {
511
+ "input": ["text", "image", "video"],
512
+ "output": ["text"]
513
+ },
514
+ "contextWindow": 1000000,
515
+ "maxCompletionTokens": 65536,
516
+ "pricing": {
517
+ "input": 0.3,
518
+ "output": 1.8,
519
+ "cacheWrite": 0.375
520
+ },
521
+ "capabilities": {
522
+ "reasoning": true,
523
+ "toolCalling": true,
524
+ "structuredOutputs": true
525
+ }
526
+ },
527
+ {
528
+ "provider": "openrouter",
529
+ "modelId": "qwen/qwen3.6-flash",
530
+ "canonicalSlug": "qwen/qwen3.6-flash",
531
+ "displayName": "Qwen: Qwen3.6 Flash",
532
+ "family": "qwen",
533
+ "status": "active",
534
+ "modalities": {
535
+ "input": ["text", "image", "video"],
536
+ "output": ["text"]
537
+ },
538
+ "contextWindow": 1000000,
539
+ "maxCompletionTokens": 65536,
540
+ "pricing": {
541
+ "input": 0.1875,
542
+ "output": 1.125,
543
+ "cacheWrite": 0.234375
544
+ },
545
+ "capabilities": {
546
+ "reasoning": true,
547
+ "toolCalling": true,
548
+ "structuredOutputs": true
549
+ }
550
+ },
551
+ {
552
+ "provider": "openrouter",
553
+ "modelId": "qwen/qwen3.6-35b-a3b",
554
+ "canonicalSlug": "qwen/qwen3.6-35b-a3b-20260415",
555
+ "displayName": "Qwen: Qwen3.6 35B A3B",
556
+ "family": "qwen",
557
+ "status": "active",
558
+ "modalities": {
559
+ "input": ["text", "image", "video"],
560
+ "output": ["text"]
561
+ },
562
+ "contextWindow": 262144,
563
+ "maxCompletionTokens": 262140,
564
+ "pricing": {
565
+ "input": 0.14,
566
+ "output": 1
567
+ },
568
+ "capabilities": {
569
+ "reasoning": true,
570
+ "toolCalling": true,
571
+ "structuredOutputs": true
572
+ }
573
+ },
574
+ {
575
+ "provider": "openrouter",
576
+ "modelId": "qwen/qwen3.6-max-preview",
577
+ "canonicalSlug": "qwen/qwen3.6-max-preview-20260420",
578
+ "displayName": "Qwen: Qwen3.6 Max Preview",
579
+ "family": "qwen",
580
+ "status": "preview",
581
+ "modalities": {
582
+ "input": ["text"],
583
+ "output": ["text"]
584
+ },
585
+ "contextWindow": 262144,
586
+ "maxCompletionTokens": 65536,
587
+ "pricing": {
588
+ "input": 1.04,
589
+ "output": 6.24,
590
+ "cacheWrite": 1.3
591
+ },
592
+ "capabilities": {
593
+ "reasoning": true,
594
+ "toolCalling": true,
595
+ "structuredOutputs": true
596
+ }
597
+ },
598
+ {
599
+ "provider": "openrouter",
600
+ "modelId": "qwen/qwen3.6-27b",
601
+ "canonicalSlug": "qwen/qwen3.6-27b-20260422",
602
+ "displayName": "Qwen: Qwen3.6 27B",
603
+ "family": "qwen",
604
+ "status": "active",
605
+ "modalities": {
606
+ "input": ["text", "image", "video"],
607
+ "output": ["text"]
608
+ },
609
+ "contextWindow": 262144,
610
+ "maxCompletionTokens": 262140,
611
+ "pricing": {
612
+ "input": 0.29,
613
+ "output": 3.2
614
+ },
615
+ "capabilities": {
616
+ "reasoning": true,
617
+ "toolCalling": true,
618
+ "structuredOutputs": true
619
+ }
620
+ },
621
+ {
622
+ "provider": "openrouter",
623
+ "modelId": "openai/gpt-5.5-pro",
624
+ "canonicalSlug": "openai/gpt-5.5-pro-20260423",
625
+ "displayName": "OpenAI: GPT-5.5 Pro",
626
+ "family": "gpt",
627
+ "status": "active",
628
+ "modalities": {
629
+ "input": ["text", "image", "file"],
630
+ "output": ["text"]
631
+ },
632
+ "contextWindow": 1050000,
633
+ "maxCompletionTokens": 128000,
634
+ "knowledgeCutoff": "2025-12-01",
635
+ "pricing": {
636
+ "input": 30,
637
+ "output": 180,
638
+ "webSearchPerRequest": 0.01
639
+ },
640
+ "capabilities": {
641
+ "reasoning": true,
642
+ "toolCalling": true,
643
+ "structuredOutputs": true
644
+ }
645
+ },
646
+ {
647
+ "provider": "openrouter",
648
+ "modelId": "openai/gpt-5.5",
649
+ "canonicalSlug": "openai/gpt-5.5-20260423",
650
+ "displayName": "OpenAI: GPT-5.5",
651
+ "family": "gpt",
652
+ "status": "active",
653
+ "modalities": {
654
+ "input": ["text", "image", "file"],
655
+ "output": ["text"]
656
+ },
657
+ "contextWindow": 1050000,
658
+ "maxCompletionTokens": 128000,
659
+ "knowledgeCutoff": "2025-12-01",
660
+ "pricing": {
661
+ "input": 5,
662
+ "output": 30,
663
+ "cachedInput": 0.5,
664
+ "webSearchPerRequest": 0.01
665
+ },
666
+ "capabilities": {
667
+ "reasoning": true,
668
+ "toolCalling": true,
669
+ "structuredOutputs": true
670
+ }
671
+ },
672
+ {
673
+ "provider": "openrouter",
674
+ "modelId": "deepseek/deepseek-v4-pro",
675
+ "canonicalSlug": "deepseek/deepseek-v4-pro-20260423",
676
+ "displayName": "DeepSeek: DeepSeek V4 Pro",
677
+ "family": "deepseek",
678
+ "status": "active",
679
+ "modalities": {
680
+ "input": ["text"],
681
+ "output": ["text"]
682
+ },
683
+ "contextWindow": 1048576,
684
+ "maxCompletionTokens": 384000,
685
+ "pricing": {
686
+ "input": 0.435,
687
+ "output": 0.87,
688
+ "cachedInput": 0.003625
689
+ },
690
+ "capabilities": {
691
+ "reasoning": true,
692
+ "toolCalling": true,
693
+ "structuredOutputs": true
694
+ }
695
+ },
696
+ {
697
+ "provider": "openrouter",
698
+ "modelId": "deepseek/deepseek-v4-flash",
699
+ "canonicalSlug": "deepseek/deepseek-v4-flash-20260423",
700
+ "displayName": "DeepSeek: DeepSeek V4 Flash",
701
+ "family": "deepseek",
702
+ "status": "active",
703
+ "modalities": {
704
+ "input": ["text"],
705
+ "output": ["text"]
706
+ },
707
+ "contextWindow": 1048576,
708
+ "maxCompletionTokens": 16384,
709
+ "pricing": {
710
+ "input": 0.1,
711
+ "output": 0.2,
712
+ "cachedInput": 0.02
713
+ },
714
+ "capabilities": {
715
+ "reasoning": true,
716
+ "toolCalling": true,
717
+ "structuredOutputs": true
718
+ }
719
+ },
720
+ {
721
+ "provider": "openrouter",
722
+ "modelId": "deepseek/deepseek-v4-flash:free",
723
+ "canonicalSlug": "deepseek/deepseek-v4-flash-20260423",
724
+ "displayName": "DeepSeek: DeepSeek V4 Flash Free",
725
+ "family": "deepseek",
726
+ "status": "free",
727
+ "modalities": {
728
+ "input": ["text"],
729
+ "output": ["text"]
730
+ },
731
+ "contextWindow": 1048576,
732
+ "maxCompletionTokens": 384000,
733
+ "pricing": {
734
+ "input": 0,
735
+ "output": 0
736
+ },
737
+ "capabilities": {
738
+ "reasoning": true,
739
+ "toolCalling": true
740
+ }
741
+ },
742
+ {
743
+ "provider": "openrouter",
744
+ "modelId": "inclusionai/ling-2.6-1t",
745
+ "canonicalSlug": "inclusionai/ling-2.6-1t-20260423",
746
+ "displayName": "inclusionAI: Ling-2.6-1T",
747
+ "family": "ling",
748
+ "status": "active",
749
+ "modalities": {
750
+ "input": ["text"],
751
+ "output": ["text"]
752
+ },
753
+ "contextWindow": 262144,
754
+ "maxCompletionTokens": 32768,
755
+ "pricing": {
756
+ "input": 0.075,
757
+ "output": 0.625,
758
+ "cachedInput": 0.015
759
+ },
760
+ "capabilities": {
761
+ "toolCalling": true,
762
+ "structuredOutputs": true
763
+ }
764
+ },
765
+ {
766
+ "provider": "openrouter",
767
+ "modelId": "tencent/hy3-preview",
768
+ "canonicalSlug": "tencent/hy3-preview-20260421",
769
+ "displayName": "Tencent: Hy3 Preview",
770
+ "family": "hy3",
771
+ "status": "preview",
772
+ "modalities": {
773
+ "input": ["text"],
774
+ "output": ["text"]
775
+ },
776
+ "contextWindow": 262144,
777
+ "maxCompletionTokens": 262144,
778
+ "pricing": {
779
+ "input": 0.066,
780
+ "output": 0.26,
781
+ "cachedInput": 0.029
782
+ },
783
+ "capabilities": {
784
+ "reasoning": true,
785
+ "toolCalling": true
786
+ }
787
+ },
788
+ {
789
+ "provider": "openrouter",
790
+ "modelId": "xiaomi/mimo-v2.5-pro",
791
+ "canonicalSlug": "xiaomi/mimo-v2.5-pro-20260422",
792
+ "displayName": "Xiaomi: MiMo-V2.5-Pro",
793
+ "family": "mimo",
794
+ "status": "active",
795
+ "modalities": {
796
+ "input": ["text"],
797
+ "output": ["text"]
798
+ },
799
+ "contextWindow": 1048576,
800
+ "maxCompletionTokens": 131072,
801
+ "pricing": {
802
+ "input": 0.435,
803
+ "output": 0.87,
804
+ "cachedInput": 0.0036
805
+ },
806
+ "capabilities": {
807
+ "reasoning": true,
808
+ "toolCalling": true,
809
+ "structuredOutputs": true
810
+ }
811
+ },
812
+ {
813
+ "provider": "openrouter",
814
+ "modelId": "xiaomi/mimo-v2.5",
815
+ "canonicalSlug": "xiaomi/mimo-v2.5-20260422",
816
+ "displayName": "Xiaomi: MiMo-V2.5",
817
+ "family": "mimo",
818
+ "status": "active",
819
+ "modalities": {
820
+ "input": ["text", "image", "audio", "video"],
821
+ "output": ["text"]
822
+ },
823
+ "contextWindow": 1048576,
824
+ "maxCompletionTokens": 131072,
825
+ "pricing": {
826
+ "input": 0.14,
827
+ "output": 0.28,
828
+ "cachedInput": 0.0028
829
+ },
830
+ "capabilities": {
831
+ "reasoning": true,
832
+ "toolCalling": true
833
+ }
834
+ },
835
+ {
836
+ "provider": "openrouter",
837
+ "modelId": "openai/gpt-5.4-image-2",
838
+ "canonicalSlug": "openai/gpt-5.4-image-2-20260421",
839
+ "displayName": "OpenAI: GPT-5.4 Image 2",
840
+ "family": "gpt-image",
841
+ "status": "active",
842
+ "modalities": {
843
+ "input": ["text", "image", "file"],
844
+ "output": ["text", "image"]
845
+ },
846
+ "contextWindow": 272000,
847
+ "pricing": {
848
+ "input": 8,
849
+ "output": 15
850
+ },
851
+ "capabilities": {
852
+ "imageGeneration": true,
853
+ "structuredOutputs": true
854
+ }
855
+ }
856
+ ]
857
+ }