@funkai/models 0.3.0 → 0.3.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 (83) hide show
  1. package/.turbo/turbo-build.log +34 -33
  2. package/CHANGELOG.md +36 -0
  3. package/dist/alibaba-B6q4Ng1R.mjs.map +1 -1
  4. package/dist/amazon-bedrock-Cv9AHQBH.mjs.map +1 -1
  5. package/dist/anthropic-yB7ST97_.mjs.map +1 -1
  6. package/dist/cerebras-COfl7XM-.mjs.map +1 -1
  7. package/dist/cohere-B7TgO0hT.mjs.map +1 -1
  8. package/dist/deepinfra-B0GxUwCG.mjs.map +1 -1
  9. package/dist/deepseek-D64ZEsvS.mjs.map +1 -1
  10. package/dist/fireworks-ai-DJYvdAi_.mjs.map +1 -1
  11. package/dist/google-BypRl349.mjs.map +1 -1
  12. package/dist/google-vertex-DbS-zTGD.mjs.map +1 -1
  13. package/dist/groq-ei_PerYi.mjs.map +1 -1
  14. package/dist/huggingface-DaM1EeLP.mjs.map +1 -1
  15. package/dist/inception-CspEzqNV.mjs.map +1 -1
  16. package/dist/index.d.mts +1 -1
  17. package/dist/index.d.mts.map +1 -1
  18. package/dist/index.mjs +14 -2
  19. package/dist/index.mjs.map +1 -1
  20. package/dist/llama-Cf3-koap.mjs.map +1 -1
  21. package/dist/mistral-BI9MdAO4.mjs.map +1 -1
  22. package/dist/nvidia-COHacuoa.mjs.map +1 -1
  23. package/dist/openai-C0nCfZUq.mjs.map +1 -1
  24. package/dist/openrouter-DSFzxKQb.mjs.map +1 -1
  25. package/dist/perplexity-zeZ2WlBU.mjs.map +1 -1
  26. package/dist/providers/alibaba.d.mts +1 -1
  27. package/dist/providers/amazon-bedrock.d.mts +1 -1
  28. package/dist/providers/anthropic.d.mts +1 -1
  29. package/dist/providers/cerebras.d.mts +1 -1
  30. package/dist/providers/cohere.d.mts +1 -1
  31. package/dist/providers/deepinfra.d.mts +1 -1
  32. package/dist/providers/deepseek.d.mts +1 -1
  33. package/dist/providers/fireworks-ai.d.mts +1 -1
  34. package/dist/providers/google-vertex.d.mts +1 -1
  35. package/dist/providers/google.d.mts +1 -1
  36. package/dist/providers/groq.d.mts +1 -1
  37. package/dist/providers/huggingface.d.mts +1 -1
  38. package/dist/providers/inception.d.mts +1 -1
  39. package/dist/providers/llama.d.mts +1 -1
  40. package/dist/providers/mistral.d.mts +1 -1
  41. package/dist/providers/nvidia.d.mts +1 -1
  42. package/dist/providers/openai.d.mts +1 -1
  43. package/dist/providers/openrouter.d.mts +1 -1
  44. package/dist/providers/perplexity.d.mts +1 -1
  45. package/dist/providers/togetherai.d.mts +1 -1
  46. package/dist/providers/xai.d.mts +1 -1
  47. package/dist/togetherai-BvcxUfPE.mjs.map +1 -1
  48. package/dist/{types-DjdaZckF.d.mts → types-DIzolT_s.d.mts} +61 -21
  49. package/dist/types-DIzolT_s.d.mts.map +1 -0
  50. package/dist/xai-fSuAkQJo.mjs.map +1 -1
  51. package/package.json +6 -3
  52. package/scripts/generate-models.ts +147 -56
  53. package/src/catalog/index.test.ts +8 -8
  54. package/src/catalog/index.ts +5 -1
  55. package/src/catalog/providers/alibaba.ts +91 -91
  56. package/src/catalog/providers/amazon-bedrock.ts +205 -185
  57. package/src/catalog/providers/anthropic.ts +87 -62
  58. package/src/catalog/providers/cerebras.ts +9 -9
  59. package/src/catalog/providers/cohere.ts +16 -16
  60. package/src/catalog/providers/deepinfra.ts +71 -71
  61. package/src/catalog/providers/deepseek.ts +3 -3
  62. package/src/catalog/providers/fireworks-ai.ts +36 -36
  63. package/src/catalog/providers/google-vertex.ts +62 -62
  64. package/src/catalog/providers/google.ts +69 -69
  65. package/src/catalog/providers/groq.ts +24 -24
  66. package/src/catalog/providers/huggingface.ts +52 -52
  67. package/src/catalog/providers/inception.ts +9 -9
  68. package/src/catalog/providers/index.ts +1 -0
  69. package/src/catalog/providers/llama.ts +7 -7
  70. package/src/catalog/providers/mistral.ts +60 -60
  71. package/src/catalog/providers/nvidia.ts +84 -84
  72. package/src/catalog/providers/openai.ts +115 -115
  73. package/src/catalog/providers/openrouter.ts +448 -433
  74. package/src/catalog/providers/perplexity.ts +9 -9
  75. package/src/catalog/providers/togetherai.ts +47 -47
  76. package/src/catalog/providers/xai.ts +49 -49
  77. package/src/catalog/types.ts +60 -20
  78. package/src/cost/calculate.test.ts +11 -11
  79. package/src/provider/registry.ts +21 -2
  80. package/src/provider/types.ts +1 -1
  81. package/tsconfig.json +2 -1
  82. package/tsdown.config.ts +7 -3
  83. package/dist/types-DjdaZckF.d.mts.map +0 -1
@@ -19,9 +19,9 @@ export const OPENAI_MODELS = [
19
19
  name: "GPT-4o (2024-11-20)",
20
20
  provider: "openai",
21
21
  family: "gpt",
22
- pricing: { input: 0.0000025, output: 0.00001, cacheRead: 0.00000125 },
23
- contextWindow: 128000,
24
- maxOutput: 16384,
22
+ pricing: { input: 0.000_002_5, output: 0.000_01, cacheRead: 0.000_001_25 },
23
+ contextWindow: 128_000,
24
+ maxOutput: 16_384,
25
25
  modalities: { input: ["text", "image"], output: ["text"] },
26
26
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
27
27
  },
@@ -30,9 +30,9 @@ export const OPENAI_MODELS = [
30
30
  name: "GPT-5.3 Codex",
31
31
  provider: "openai",
32
32
  family: "gpt-codex",
33
- pricing: { input: 0.00000175, output: 0.000014, cacheRead: 1.75e-7 },
34
- contextWindow: 400000,
35
- maxOutput: 128000,
33
+ pricing: { input: 0.000_001_75, output: 0.000_014, cacheRead: 1.75e-7 },
34
+ contextWindow: 400_000,
35
+ maxOutput: 128_000,
36
36
  modalities: { input: ["text", "image", "pdf"], output: ["text"] },
37
37
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
38
38
  },
@@ -41,9 +41,9 @@ export const OPENAI_MODELS = [
41
41
  name: "GPT-5-Codex",
42
42
  provider: "openai",
43
43
  family: "gpt-codex",
44
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.25e-7 },
45
- contextWindow: 400000,
46
- maxOutput: 128000,
44
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.25e-7 },
45
+ contextWindow: 400_000,
46
+ maxOutput: 128_000,
47
47
  modalities: { input: ["text", "image"], output: ["text"] },
48
48
  capabilities: { reasoning: true, toolCall: true, attachment: false, structuredOutput: true },
49
49
  },
@@ -52,9 +52,9 @@ export const OPENAI_MODELS = [
52
52
  name: "GPT-5 Pro",
53
53
  provider: "openai",
54
54
  family: "gpt-pro",
55
- pricing: { input: 0.000015, output: 0.00012 },
56
- contextWindow: 400000,
57
- maxOutput: 272000,
55
+ pricing: { input: 0.000_015, output: 0.000_12 },
56
+ contextWindow: 400_000,
57
+ maxOutput: 272_000,
58
58
  modalities: { input: ["text", "image"], output: ["text"] },
59
59
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
60
60
  },
@@ -64,8 +64,8 @@ export const OPENAI_MODELS = [
64
64
  provider: "openai",
65
65
  family: "gpt-mini",
66
66
  pricing: { input: 1.5e-7, output: 6e-7, cacheRead: 8e-8 },
67
- contextWindow: 128000,
68
- maxOutput: 16384,
67
+ contextWindow: 128_000,
68
+ maxOutput: 16_384,
69
69
  modalities: { input: ["text", "image"], output: ["text"] },
70
70
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
71
71
  },
@@ -85,9 +85,9 @@ export const OPENAI_MODELS = [
85
85
  name: "GPT-5 Chat (latest)",
86
86
  provider: "openai",
87
87
  family: "gpt-codex",
88
- pricing: { input: 0.00000125, output: 0.00001 },
89
- contextWindow: 400000,
90
- maxOutput: 128000,
88
+ pricing: { input: 0.000_001_25, output: 0.000_01 },
89
+ contextWindow: 400_000,
90
+ maxOutput: 128_000,
91
91
  modalities: { input: ["text", "image"], output: ["text"] },
92
92
  capabilities: { reasoning: true, toolCall: false, attachment: true, structuredOutput: true },
93
93
  },
@@ -96,9 +96,9 @@ export const OPENAI_MODELS = [
96
96
  name: "Codex Mini",
97
97
  provider: "openai",
98
98
  family: "gpt-codex-mini",
99
- pricing: { input: 0.0000015, output: 0.000006, cacheRead: 3.75e-7 },
100
- contextWindow: 200000,
101
- maxOutput: 100000,
99
+ pricing: { input: 0.000_001_5, output: 0.000_006, cacheRead: 3.75e-7 },
100
+ contextWindow: 200_000,
101
+ maxOutput: 100_000,
102
102
  modalities: { input: ["text"], output: ["text"] },
103
103
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: false },
104
104
  },
@@ -107,9 +107,9 @@ export const OPENAI_MODELS = [
107
107
  name: "GPT-5.1 Codex Max",
108
108
  provider: "openai",
109
109
  family: "gpt-codex",
110
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.25e-7 },
111
- contextWindow: 400000,
112
- maxOutput: 128000,
110
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.25e-7 },
111
+ contextWindow: 400_000,
112
+ maxOutput: 128_000,
113
113
  modalities: { input: ["text", "image"], output: ["text"] },
114
114
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
115
115
  },
@@ -118,8 +118,8 @@ export const OPENAI_MODELS = [
118
118
  name: "GPT-4o (2024-05-13)",
119
119
  provider: "openai",
120
120
  family: "gpt",
121
- pricing: { input: 0.000005, output: 0.000015 },
122
- contextWindow: 128000,
121
+ pricing: { input: 0.000_005, output: 0.000_015 },
122
+ contextWindow: 128_000,
123
123
  maxOutput: 4096,
124
124
  modalities: { input: ["text", "image"], output: ["text"] },
125
125
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
@@ -129,9 +129,9 @@ export const OPENAI_MODELS = [
129
129
  name: "GPT-5.2 Chat",
130
130
  provider: "openai",
131
131
  family: "gpt-codex",
132
- pricing: { input: 0.00000175, output: 0.000014, cacheRead: 1.75e-7 },
133
- contextWindow: 128000,
134
- maxOutput: 16384,
132
+ pricing: { input: 0.000_001_75, output: 0.000_014, cacheRead: 1.75e-7 },
133
+ contextWindow: 128_000,
134
+ maxOutput: 16_384,
135
135
  modalities: { input: ["text", "image"], output: ["text"] },
136
136
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
137
137
  },
@@ -140,9 +140,9 @@ export const OPENAI_MODELS = [
140
140
  name: "GPT-5.2 Codex",
141
141
  provider: "openai",
142
142
  family: "gpt-codex",
143
- pricing: { input: 0.00000175, output: 0.000014, cacheRead: 1.75e-7 },
144
- contextWindow: 400000,
145
- maxOutput: 128000,
143
+ pricing: { input: 0.000_001_75, output: 0.000_014, cacheRead: 1.75e-7 },
144
+ contextWindow: 400_000,
145
+ maxOutput: 128_000,
146
146
  modalities: { input: ["text", "image", "pdf"], output: ["text"] },
147
147
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
148
148
  },
@@ -151,9 +151,9 @@ export const OPENAI_MODELS = [
151
151
  name: "o3-deep-research",
152
152
  provider: "openai",
153
153
  family: "o",
154
- pricing: { input: 0.00001, output: 0.00004, cacheRead: 0.0000025 },
155
- contextWindow: 200000,
156
- maxOutput: 100000,
154
+ pricing: { input: 0.000_01, output: 0.000_04, cacheRead: 0.000_002_5 },
155
+ contextWindow: 200_000,
156
+ maxOutput: 100_000,
157
157
  modalities: { input: ["text", "image"], output: ["text"] },
158
158
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: false },
159
159
  },
@@ -162,9 +162,9 @@ export const OPENAI_MODELS = [
162
162
  name: "o1",
163
163
  provider: "openai",
164
164
  family: "o",
165
- pricing: { input: 0.000015, output: 0.00006, cacheRead: 0.0000075 },
166
- contextWindow: 200000,
167
- maxOutput: 100000,
165
+ pricing: { input: 0.000_015, output: 0.000_06, cacheRead: 0.000_007_5 },
166
+ contextWindow: 200_000,
167
+ maxOutput: 100_000,
168
168
  modalities: { input: ["text", "image"], output: ["text"] },
169
169
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
170
170
  },
@@ -173,9 +173,9 @@ export const OPENAI_MODELS = [
173
173
  name: "GPT-5.1",
174
174
  provider: "openai",
175
175
  family: "gpt",
176
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.3e-7 },
177
- contextWindow: 400000,
178
- maxOutput: 128000,
176
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.3e-7 },
177
+ contextWindow: 400_000,
178
+ maxOutput: 128_000,
179
179
  modalities: { input: ["text", "image"], output: ["text"] },
180
180
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
181
181
  },
@@ -184,9 +184,9 @@ export const OPENAI_MODELS = [
184
184
  name: "o4-mini-deep-research",
185
185
  provider: "openai",
186
186
  family: "o-mini",
187
- pricing: { input: 0.000002, output: 0.000008, cacheRead: 5e-7 },
188
- contextWindow: 200000,
189
- maxOutput: 100000,
187
+ pricing: { input: 0.000_002, output: 0.000_008, cacheRead: 5e-7 },
188
+ contextWindow: 200_000,
189
+ maxOutput: 100_000,
190
190
  modalities: { input: ["text", "image"], output: ["text"] },
191
191
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: false },
192
192
  },
@@ -195,9 +195,9 @@ export const OPENAI_MODELS = [
195
195
  name: "GPT-5.3 Codex Spark",
196
196
  provider: "openai",
197
197
  family: "gpt-codex-spark",
198
- pricing: { input: 0.00000175, output: 0.000014, cacheRead: 1.75e-7 },
199
- contextWindow: 128000,
200
- maxOutput: 32000,
198
+ pricing: { input: 0.000_001_75, output: 0.000_014, cacheRead: 1.75e-7 },
199
+ contextWindow: 128_000,
200
+ maxOutput: 32_000,
201
201
  modalities: { input: ["text", "image", "pdf"], output: ["text"] },
202
202
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
203
203
  },
@@ -206,9 +206,9 @@ export const OPENAI_MODELS = [
206
206
  name: "o3",
207
207
  provider: "openai",
208
208
  family: "o",
209
- pricing: { input: 0.000002, output: 0.000008, cacheRead: 5e-7 },
210
- contextWindow: 200000,
211
- maxOutput: 100000,
209
+ pricing: { input: 0.000_002, output: 0.000_008, cacheRead: 5e-7 },
210
+ contextWindow: 200_000,
211
+ maxOutput: 100_000,
212
212
  modalities: { input: ["text", "image"], output: ["text"] },
213
213
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
214
214
  },
@@ -229,8 +229,8 @@ export const OPENAI_MODELS = [
229
229
  provider: "openai",
230
230
  family: "gpt-nano",
231
231
  pricing: { input: 1e-7, output: 4e-7, cacheRead: 3e-8 },
232
- contextWindow: 1047576,
233
- maxOutput: 32768,
232
+ contextWindow: 1_047_576,
233
+ maxOutput: 32_768,
234
234
  modalities: { input: ["text", "image"], output: ["text"] },
235
235
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
236
236
  },
@@ -250,8 +250,8 @@ export const OPENAI_MODELS = [
250
250
  name: "GPT-3.5-turbo",
251
251
  provider: "openai",
252
252
  family: "gpt",
253
- pricing: { input: 5e-7, output: 0.0000015, cacheRead: 0.00000125 },
254
- contextWindow: 16385,
253
+ pricing: { input: 5e-7, output: 0.000_001_5, cacheRead: 0.000_001_25 },
254
+ contextWindow: 16_385,
255
255
  maxOutput: 4096,
256
256
  modalities: { input: ["text"], output: ["text"] },
257
257
  capabilities: { reasoning: false, toolCall: false, attachment: false, structuredOutput: false },
@@ -261,9 +261,9 @@ export const OPENAI_MODELS = [
261
261
  name: "GPT-5.1 Codex mini",
262
262
  provider: "openai",
263
263
  family: "gpt-codex",
264
- pricing: { input: 2.5e-7, output: 0.000002, cacheRead: 2.5e-8 },
265
- contextWindow: 400000,
266
- maxOutput: 128000,
264
+ pricing: { input: 2.5e-7, output: 0.000_002, cacheRead: 2.5e-8 },
265
+ contextWindow: 400_000,
266
+ maxOutput: 128_000,
267
267
  modalities: { input: ["text", "image"], output: ["text"] },
268
268
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
269
269
  },
@@ -272,9 +272,9 @@ export const OPENAI_MODELS = [
272
272
  name: "GPT-5.2",
273
273
  provider: "openai",
274
274
  family: "gpt",
275
- pricing: { input: 0.00000175, output: 0.000014, cacheRead: 1.75e-7 },
276
- contextWindow: 400000,
277
- maxOutput: 128000,
275
+ pricing: { input: 0.000_001_75, output: 0.000_014, cacheRead: 1.75e-7 },
276
+ contextWindow: 400_000,
277
+ maxOutput: 128_000,
278
278
  modalities: { input: ["text", "image"], output: ["text"] },
279
279
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
280
280
  },
@@ -283,9 +283,9 @@ export const OPENAI_MODELS = [
283
283
  name: "GPT-4.1",
284
284
  provider: "openai",
285
285
  family: "gpt",
286
- pricing: { input: 0.000002, output: 0.000008, cacheRead: 5e-7 },
287
- contextWindow: 1047576,
288
- maxOutput: 32768,
286
+ pricing: { input: 0.000_002, output: 0.000_008, cacheRead: 5e-7 },
287
+ contextWindow: 1_047_576,
288
+ maxOutput: 32_768,
289
289
  modalities: { input: ["text", "image"], output: ["text"] },
290
290
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
291
291
  },
@@ -294,9 +294,9 @@ export const OPENAI_MODELS = [
294
294
  name: "o3-pro",
295
295
  provider: "openai",
296
296
  family: "o-pro",
297
- pricing: { input: 0.00002, output: 0.00008 },
298
- contextWindow: 200000,
299
- maxOutput: 100000,
297
+ pricing: { input: 0.000_02, output: 0.000_08 },
298
+ contextWindow: 200_000,
299
+ maxOutput: 100_000,
300
300
  modalities: { input: ["text", "image"], output: ["text"] },
301
301
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
302
302
  },
@@ -305,8 +305,8 @@ export const OPENAI_MODELS = [
305
305
  name: "GPT-4 Turbo",
306
306
  provider: "openai",
307
307
  family: "gpt",
308
- pricing: { input: 0.00001, output: 0.00003 },
309
- contextWindow: 128000,
308
+ pricing: { input: 0.000_01, output: 0.000_03 },
309
+ contextWindow: 128_000,
310
310
  maxOutput: 4096,
311
311
  modalities: { input: ["text", "image"], output: ["text"] },
312
312
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: false },
@@ -316,9 +316,9 @@ export const OPENAI_MODELS = [
316
316
  name: "GPT-5",
317
317
  provider: "openai",
318
318
  family: "gpt",
319
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.25e-7 },
320
- contextWindow: 400000,
321
- maxOutput: 128000,
319
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.25e-7 },
320
+ contextWindow: 400_000,
321
+ maxOutput: 128_000,
322
322
  modalities: { input: ["text", "image"], output: ["text"] },
323
323
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
324
324
  },
@@ -327,9 +327,9 @@ export const OPENAI_MODELS = [
327
327
  name: "o4-mini",
328
328
  provider: "openai",
329
329
  family: "o-mini",
330
- pricing: { input: 0.0000011, output: 0.0000044, cacheRead: 2.8e-7 },
331
- contextWindow: 200000,
332
- maxOutput: 100000,
330
+ pricing: { input: 0.000_001_1, output: 0.000_004_4, cacheRead: 2.8e-7 },
331
+ contextWindow: 200_000,
332
+ maxOutput: 100_000,
333
333
  modalities: { input: ["text", "image"], output: ["text"] },
334
334
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
335
335
  },
@@ -338,9 +338,9 @@ export const OPENAI_MODELS = [
338
338
  name: "GPT-4.1 mini",
339
339
  provider: "openai",
340
340
  family: "gpt-mini",
341
- pricing: { input: 4e-7, output: 0.0000016, cacheRead: 1e-7 },
342
- contextWindow: 1047576,
343
- maxOutput: 32768,
341
+ pricing: { input: 4e-7, output: 0.000_001_6, cacheRead: 1e-7 },
342
+ contextWindow: 1_047_576,
343
+ maxOutput: 32_768,
344
344
  modalities: { input: ["text", "image"], output: ["text"] },
345
345
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
346
346
  },
@@ -349,9 +349,9 @@ export const OPENAI_MODELS = [
349
349
  name: "GPT-5.4",
350
350
  provider: "openai",
351
351
  family: "gpt",
352
- pricing: { input: 0.0000025, output: 0.000015, cacheRead: 2.5e-7 },
353
- contextWindow: 1050000,
354
- maxOutput: 128000,
352
+ pricing: { input: 0.000_002_5, output: 0.000_015, cacheRead: 2.5e-7 },
353
+ contextWindow: 1_050_000,
354
+ maxOutput: 128_000,
355
355
  modalities: { input: ["text", "image", "pdf"], output: ["text"] },
356
356
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
357
357
  },
@@ -360,9 +360,9 @@ export const OPENAI_MODELS = [
360
360
  name: "o1-preview",
361
361
  provider: "openai",
362
362
  family: "o",
363
- pricing: { input: 0.000015, output: 0.00006, cacheRead: 0.0000075 },
364
- contextWindow: 128000,
365
- maxOutput: 32768,
363
+ pricing: { input: 0.000_015, output: 0.000_06, cacheRead: 0.000_007_5 },
364
+ contextWindow: 128_000,
365
+ maxOutput: 32_768,
366
366
  modalities: { input: ["text"], output: ["text"] },
367
367
  capabilities: { reasoning: true, toolCall: false, attachment: false, structuredOutput: false },
368
368
  },
@@ -371,9 +371,9 @@ export const OPENAI_MODELS = [
371
371
  name: "GPT-5.4 Pro",
372
372
  provider: "openai",
373
373
  family: "gpt-pro",
374
- pricing: { input: 0.00003, output: 0.00018 },
375
- contextWindow: 1050000,
376
- maxOutput: 128000,
374
+ pricing: { input: 0.000_03, output: 0.000_18 },
375
+ contextWindow: 1_050_000,
376
+ maxOutput: 128_000,
377
377
  modalities: { input: ["text", "image"], output: ["text"] },
378
378
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: false },
379
379
  },
@@ -382,9 +382,9 @@ export const OPENAI_MODELS = [
382
382
  name: "o1-pro",
383
383
  provider: "openai",
384
384
  family: "o-pro",
385
- pricing: { input: 0.00015, output: 0.0006 },
386
- contextWindow: 200000,
387
- maxOutput: 100000,
385
+ pricing: { input: 0.000_15, output: 0.0006 },
386
+ contextWindow: 200_000,
387
+ maxOutput: 100_000,
388
388
  modalities: { input: ["text", "image"], output: ["text"] },
389
389
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
390
390
  },
@@ -393,9 +393,9 @@ export const OPENAI_MODELS = [
393
393
  name: "GPT-5.1 Codex",
394
394
  provider: "openai",
395
395
  family: "gpt-codex",
396
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.25e-7 },
397
- contextWindow: 400000,
398
- maxOutput: 128000,
396
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.25e-7 },
397
+ contextWindow: 400_000,
398
+ maxOutput: 128_000,
399
399
  modalities: { input: ["text", "image"], output: ["text"] },
400
400
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
401
401
  },
@@ -404,9 +404,9 @@ export const OPENAI_MODELS = [
404
404
  name: "GPT-5.2 Pro",
405
405
  provider: "openai",
406
406
  family: "gpt-pro",
407
- pricing: { input: 0.000021, output: 0.000168 },
408
- contextWindow: 400000,
409
- maxOutput: 128000,
407
+ pricing: { input: 0.000_021, output: 0.000_168 },
408
+ contextWindow: 400_000,
409
+ maxOutput: 128_000,
410
410
  modalities: { input: ["text", "image"], output: ["text"] },
411
411
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: false },
412
412
  },
@@ -415,9 +415,9 @@ export const OPENAI_MODELS = [
415
415
  name: "o3-mini",
416
416
  provider: "openai",
417
417
  family: "o-mini",
418
- pricing: { input: 0.0000011, output: 0.0000044, cacheRead: 5.5e-7 },
419
- contextWindow: 200000,
420
- maxOutput: 100000,
418
+ pricing: { input: 0.000_001_1, output: 0.000_004_4, cacheRead: 5.5e-7 },
419
+ contextWindow: 200_000,
420
+ maxOutput: 100_000,
421
421
  modalities: { input: ["text"], output: ["text"] },
422
422
  capabilities: { reasoning: true, toolCall: true, attachment: false, structuredOutput: true },
423
423
  },
@@ -426,9 +426,9 @@ export const OPENAI_MODELS = [
426
426
  name: "GPT-4o (2024-08-06)",
427
427
  provider: "openai",
428
428
  family: "gpt",
429
- pricing: { input: 0.0000025, output: 0.00001, cacheRead: 0.00000125 },
430
- contextWindow: 128000,
431
- maxOutput: 16384,
429
+ pricing: { input: 0.000_002_5, output: 0.000_01, cacheRead: 0.000_001_25 },
430
+ contextWindow: 128_000,
431
+ maxOutput: 16_384,
432
432
  modalities: { input: ["text", "image"], output: ["text"] },
433
433
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
434
434
  },
@@ -437,9 +437,9 @@ export const OPENAI_MODELS = [
437
437
  name: "GPT-5 Mini",
438
438
  provider: "openai",
439
439
  family: "gpt-mini",
440
- pricing: { input: 2.5e-7, output: 0.000002, cacheRead: 2.5e-8 },
441
- contextWindow: 400000,
442
- maxOutput: 128000,
440
+ pricing: { input: 2.5e-7, output: 0.000_002, cacheRead: 2.5e-8 },
441
+ contextWindow: 400_000,
442
+ maxOutput: 128_000,
443
443
  modalities: { input: ["text", "image"], output: ["text"] },
444
444
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
445
445
  },
@@ -448,9 +448,9 @@ export const OPENAI_MODELS = [
448
448
  name: "GPT-5.1 Chat",
449
449
  provider: "openai",
450
450
  family: "gpt-codex",
451
- pricing: { input: 0.00000125, output: 0.00001, cacheRead: 1.25e-7 },
452
- contextWindow: 128000,
453
- maxOutput: 16384,
451
+ pricing: { input: 0.000_001_25, output: 0.000_01, cacheRead: 1.25e-7 },
452
+ contextWindow: 128_000,
453
+ maxOutput: 16_384,
454
454
  modalities: { input: ["text", "image"], output: ["text"] },
455
455
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
456
456
  },
@@ -459,7 +459,7 @@ export const OPENAI_MODELS = [
459
459
  name: "GPT-4",
460
460
  provider: "openai",
461
461
  family: "gpt",
462
- pricing: { input: 0.00003, output: 0.00006 },
462
+ pricing: { input: 0.000_03, output: 0.000_06 },
463
463
  contextWindow: 8192,
464
464
  maxOutput: 8192,
465
465
  modalities: { input: ["text"], output: ["text"] },
@@ -471,8 +471,8 @@ export const OPENAI_MODELS = [
471
471
  provider: "openai",
472
472
  family: "gpt-nano",
473
473
  pricing: { input: 5e-8, output: 4e-7, cacheRead: 5e-9 },
474
- contextWindow: 400000,
475
- maxOutput: 128000,
474
+ contextWindow: 400_000,
475
+ maxOutput: 128_000,
476
476
  modalities: { input: ["text", "image"], output: ["text"] },
477
477
  capabilities: { reasoning: true, toolCall: true, attachment: true, structuredOutput: true },
478
478
  },
@@ -481,9 +481,9 @@ export const OPENAI_MODELS = [
481
481
  name: "o1-mini",
482
482
  provider: "openai",
483
483
  family: "o-mini",
484
- pricing: { input: 0.0000011, output: 0.0000044, cacheRead: 5.5e-7 },
485
- contextWindow: 128000,
486
- maxOutput: 65536,
484
+ pricing: { input: 0.000_001_1, output: 0.000_004_4, cacheRead: 5.5e-7 },
485
+ contextWindow: 128_000,
486
+ maxOutput: 65_536,
487
487
  modalities: { input: ["text"], output: ["text"] },
488
488
  capabilities: { reasoning: true, toolCall: false, attachment: false, structuredOutput: true },
489
489
  },
@@ -492,9 +492,9 @@ export const OPENAI_MODELS = [
492
492
  name: "GPT-4o",
493
493
  provider: "openai",
494
494
  family: "gpt",
495
- pricing: { input: 0.0000025, output: 0.00001, cacheRead: 0.00000125 },
496
- contextWindow: 128000,
497
- maxOutput: 16384,
495
+ pricing: { input: 0.000_002_5, output: 0.000_01, cacheRead: 0.000_001_25 },
496
+ contextWindow: 128_000,
497
+ maxOutput: 16_384,
498
498
  modalities: { input: ["text", "image"], output: ["text"] },
499
499
  capabilities: { reasoning: false, toolCall: true, attachment: true, structuredOutput: true },
500
500
  },