@earendil-works/pi-ai 0.74.0 → 0.75.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 (63) hide show
  1. package/README.md +76 -6
  2. package/dist/env-api-keys.d.ts.map +1 -1
  3. package/dist/env-api-keys.js +2 -1
  4. package/dist/env-api-keys.js.map +1 -1
  5. package/dist/image-models.d.ts +10 -0
  6. package/dist/image-models.d.ts.map +1 -0
  7. package/dist/image-models.generated.d.ts +425 -0
  8. package/dist/image-models.generated.d.ts.map +1 -0
  9. package/dist/image-models.generated.js +427 -0
  10. package/dist/image-models.generated.js.map +1 -0
  11. package/dist/image-models.js +23 -0
  12. package/dist/image-models.js.map +1 -0
  13. package/dist/images-api-registry.d.ts +14 -0
  14. package/dist/images-api-registry.d.ts.map +1 -0
  15. package/dist/images-api-registry.js +22 -0
  16. package/dist/images-api-registry.js.map +1 -0
  17. package/dist/images.d.ts +4 -0
  18. package/dist/images.d.ts.map +1 -0
  19. package/dist/images.js +14 -0
  20. package/dist/images.js.map +1 -0
  21. package/dist/index.d.ts +4 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +4 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/models.generated.d.ts +1029 -1190
  26. package/dist/models.generated.d.ts.map +1 -1
  27. package/dist/models.generated.js +970 -1399
  28. package/dist/models.generated.js.map +1 -1
  29. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  30. package/dist/providers/amazon-bedrock.js +7 -16
  31. package/dist/providers/amazon-bedrock.js.map +1 -1
  32. package/dist/providers/anthropic.d.ts.map +1 -1
  33. package/dist/providers/anthropic.js +15 -6
  34. package/dist/providers/anthropic.js.map +1 -1
  35. package/dist/providers/images/openrouter.d.ts +3 -0
  36. package/dist/providers/images/openrouter.d.ts.map +1 -0
  37. package/dist/providers/images/openrouter.js +129 -0
  38. package/dist/providers/images/openrouter.js.map +1 -0
  39. package/dist/providers/images/register-builtins.d.ts +4 -0
  40. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  41. package/dist/providers/images/register-builtins.js +34 -0
  42. package/dist/providers/images/register-builtins.js.map +1 -0
  43. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  44. package/dist/providers/openai-codex-responses.js +49 -3
  45. package/dist/providers/openai-codex-responses.js.map +1 -1
  46. package/dist/providers/openai-completions.d.ts.map +1 -1
  47. package/dist/providers/openai-completions.js +32 -14
  48. package/dist/providers/openai-completions.js.map +1 -1
  49. package/dist/providers/simple-options.d.ts.map +1 -1
  50. package/dist/providers/simple-options.js +8 -1
  51. package/dist/providers/simple-options.js.map +1 -1
  52. package/dist/types.d.ts +86 -3
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/utils/node-http-proxy.d.ts +10 -0
  56. package/dist/utils/node-http-proxy.d.ts.map +1 -0
  57. package/dist/utils/node-http-proxy.js +97 -0
  58. package/dist/utils/node-http-proxy.js.map +1 -0
  59. package/dist/utils/overflow.d.ts +2 -1
  60. package/dist/utils/overflow.d.ts.map +1 -1
  61. package/dist/utils/overflow.js +6 -1
  62. package/dist/utils/overflow.js.map +1 -1
  63. package/package.json +7 -8
@@ -0,0 +1,425 @@
1
+ export declare const IMAGE_MODELS: {
2
+ readonly openrouter: {
3
+ readonly "black-forest-labs/flux.2-flex": {
4
+ id: string;
5
+ name: string;
6
+ api: "openrouter-images";
7
+ provider: string;
8
+ baseUrl: string;
9
+ input: ("image" | "text")[];
10
+ output: "image"[];
11
+ cost: {
12
+ input: number;
13
+ output: number;
14
+ cacheRead: number;
15
+ cacheWrite: number;
16
+ };
17
+ };
18
+ readonly "black-forest-labs/flux.2-klein-4b": {
19
+ id: string;
20
+ name: string;
21
+ api: "openrouter-images";
22
+ provider: string;
23
+ baseUrl: string;
24
+ input: ("image" | "text")[];
25
+ output: "image"[];
26
+ cost: {
27
+ input: number;
28
+ output: number;
29
+ cacheRead: number;
30
+ cacheWrite: number;
31
+ };
32
+ };
33
+ readonly "black-forest-labs/flux.2-max": {
34
+ id: string;
35
+ name: string;
36
+ api: "openrouter-images";
37
+ provider: string;
38
+ baseUrl: string;
39
+ input: ("image" | "text")[];
40
+ output: "image"[];
41
+ cost: {
42
+ input: number;
43
+ output: number;
44
+ cacheRead: number;
45
+ cacheWrite: number;
46
+ };
47
+ };
48
+ readonly "black-forest-labs/flux.2-pro": {
49
+ id: string;
50
+ name: string;
51
+ api: "openrouter-images";
52
+ provider: string;
53
+ baseUrl: string;
54
+ input: ("image" | "text")[];
55
+ output: "image"[];
56
+ cost: {
57
+ input: number;
58
+ output: number;
59
+ cacheRead: number;
60
+ cacheWrite: number;
61
+ };
62
+ };
63
+ readonly "bytedance-seed/seedream-4.5": {
64
+ id: string;
65
+ name: string;
66
+ api: "openrouter-images";
67
+ provider: string;
68
+ baseUrl: string;
69
+ input: ("image" | "text")[];
70
+ output: "image"[];
71
+ cost: {
72
+ input: number;
73
+ output: number;
74
+ cacheRead: number;
75
+ cacheWrite: number;
76
+ };
77
+ };
78
+ readonly "google/gemini-2.5-flash-image": {
79
+ id: string;
80
+ name: string;
81
+ api: "openrouter-images";
82
+ provider: string;
83
+ baseUrl: string;
84
+ input: ("image" | "text")[];
85
+ output: ("image" | "text")[];
86
+ cost: {
87
+ input: number;
88
+ output: number;
89
+ cacheRead: number;
90
+ cacheWrite: number;
91
+ };
92
+ };
93
+ readonly "google/gemini-3-pro-image-preview": {
94
+ id: string;
95
+ name: string;
96
+ api: "openrouter-images";
97
+ provider: string;
98
+ baseUrl: string;
99
+ input: ("image" | "text")[];
100
+ output: ("image" | "text")[];
101
+ cost: {
102
+ input: number;
103
+ output: number;
104
+ cacheRead: number;
105
+ cacheWrite: number;
106
+ };
107
+ };
108
+ readonly "google/gemini-3.1-flash-image-preview": {
109
+ id: string;
110
+ name: string;
111
+ api: "openrouter-images";
112
+ provider: string;
113
+ baseUrl: string;
114
+ input: ("image" | "text")[];
115
+ output: ("image" | "text")[];
116
+ cost: {
117
+ input: number;
118
+ output: number;
119
+ cacheRead: number;
120
+ cacheWrite: number;
121
+ };
122
+ };
123
+ readonly "openai/gpt-5-image": {
124
+ id: string;
125
+ name: string;
126
+ api: "openrouter-images";
127
+ provider: string;
128
+ baseUrl: string;
129
+ input: ("image" | "text")[];
130
+ output: ("image" | "text")[];
131
+ cost: {
132
+ input: number;
133
+ output: number;
134
+ cacheRead: number;
135
+ cacheWrite: number;
136
+ };
137
+ };
138
+ readonly "openai/gpt-5-image-mini": {
139
+ id: string;
140
+ name: string;
141
+ api: "openrouter-images";
142
+ provider: string;
143
+ baseUrl: string;
144
+ input: ("image" | "text")[];
145
+ output: ("image" | "text")[];
146
+ cost: {
147
+ input: number;
148
+ output: number;
149
+ cacheRead: number;
150
+ cacheWrite: number;
151
+ };
152
+ };
153
+ readonly "openai/gpt-5.4-image-2": {
154
+ id: string;
155
+ name: string;
156
+ api: "openrouter-images";
157
+ provider: string;
158
+ baseUrl: string;
159
+ input: ("image" | "text")[];
160
+ output: ("image" | "text")[];
161
+ cost: {
162
+ input: number;
163
+ output: number;
164
+ cacheRead: number;
165
+ cacheWrite: number;
166
+ };
167
+ };
168
+ readonly "openrouter/auto": {
169
+ id: string;
170
+ name: string;
171
+ api: "openrouter-images";
172
+ provider: string;
173
+ baseUrl: string;
174
+ input: ("image" | "text")[];
175
+ output: ("image" | "text")[];
176
+ cost: {
177
+ input: number;
178
+ output: number;
179
+ cacheRead: number;
180
+ cacheWrite: number;
181
+ };
182
+ };
183
+ readonly "recraft/recraft-v3": {
184
+ id: string;
185
+ name: string;
186
+ api: "openrouter-images";
187
+ provider: string;
188
+ baseUrl: string;
189
+ input: ("image" | "text")[];
190
+ output: "image"[];
191
+ cost: {
192
+ input: number;
193
+ output: number;
194
+ cacheRead: number;
195
+ cacheWrite: number;
196
+ };
197
+ };
198
+ readonly "recraft/recraft-v4": {
199
+ id: string;
200
+ name: string;
201
+ api: "openrouter-images";
202
+ provider: string;
203
+ baseUrl: string;
204
+ input: ("image" | "text")[];
205
+ output: "image"[];
206
+ cost: {
207
+ input: number;
208
+ output: number;
209
+ cacheRead: number;
210
+ cacheWrite: number;
211
+ };
212
+ };
213
+ readonly "recraft/recraft-v4-pro": {
214
+ id: string;
215
+ name: string;
216
+ api: "openrouter-images";
217
+ provider: string;
218
+ baseUrl: string;
219
+ input: ("image" | "text")[];
220
+ output: "image"[];
221
+ cost: {
222
+ input: number;
223
+ output: number;
224
+ cacheRead: number;
225
+ cacheWrite: number;
226
+ };
227
+ };
228
+ readonly "recraft/recraft-v4-pro-vector": {
229
+ id: string;
230
+ name: string;
231
+ api: "openrouter-images";
232
+ provider: string;
233
+ baseUrl: string;
234
+ input: ("image" | "text")[];
235
+ output: "image"[];
236
+ cost: {
237
+ input: number;
238
+ output: number;
239
+ cacheRead: number;
240
+ cacheWrite: number;
241
+ };
242
+ };
243
+ readonly "recraft/recraft-v4-vector": {
244
+ id: string;
245
+ name: string;
246
+ api: "openrouter-images";
247
+ provider: string;
248
+ baseUrl: string;
249
+ input: ("image" | "text")[];
250
+ output: "image"[];
251
+ cost: {
252
+ input: number;
253
+ output: number;
254
+ cacheRead: number;
255
+ cacheWrite: number;
256
+ };
257
+ };
258
+ readonly "recraft/recraft-v4.1": {
259
+ id: string;
260
+ name: string;
261
+ api: "openrouter-images";
262
+ provider: string;
263
+ baseUrl: string;
264
+ input: ("image" | "text")[];
265
+ output: "image"[];
266
+ cost: {
267
+ input: number;
268
+ output: number;
269
+ cacheRead: number;
270
+ cacheWrite: number;
271
+ };
272
+ };
273
+ readonly "recraft/recraft-v4.1-pro": {
274
+ id: string;
275
+ name: string;
276
+ api: "openrouter-images";
277
+ provider: string;
278
+ baseUrl: string;
279
+ input: ("image" | "text")[];
280
+ output: "image"[];
281
+ cost: {
282
+ input: number;
283
+ output: number;
284
+ cacheRead: number;
285
+ cacheWrite: number;
286
+ };
287
+ };
288
+ readonly "recraft/recraft-v4.1-pro-vector": {
289
+ id: string;
290
+ name: string;
291
+ api: "openrouter-images";
292
+ provider: string;
293
+ baseUrl: string;
294
+ input: ("image" | "text")[];
295
+ output: "image"[];
296
+ cost: {
297
+ input: number;
298
+ output: number;
299
+ cacheRead: number;
300
+ cacheWrite: number;
301
+ };
302
+ };
303
+ readonly "recraft/recraft-v4.1-utility": {
304
+ id: string;
305
+ name: string;
306
+ api: "openrouter-images";
307
+ provider: string;
308
+ baseUrl: string;
309
+ input: ("image" | "text")[];
310
+ output: "image"[];
311
+ cost: {
312
+ input: number;
313
+ output: number;
314
+ cacheRead: number;
315
+ cacheWrite: number;
316
+ };
317
+ };
318
+ readonly "recraft/recraft-v4.1-utility-pro": {
319
+ id: string;
320
+ name: string;
321
+ api: "openrouter-images";
322
+ provider: string;
323
+ baseUrl: string;
324
+ input: ("image" | "text")[];
325
+ output: "image"[];
326
+ cost: {
327
+ input: number;
328
+ output: number;
329
+ cacheRead: number;
330
+ cacheWrite: number;
331
+ };
332
+ };
333
+ readonly "recraft/recraft-v4.1-vector": {
334
+ id: string;
335
+ name: string;
336
+ api: "openrouter-images";
337
+ provider: string;
338
+ baseUrl: string;
339
+ input: ("image" | "text")[];
340
+ output: "image"[];
341
+ cost: {
342
+ input: number;
343
+ output: number;
344
+ cacheRead: number;
345
+ cacheWrite: number;
346
+ };
347
+ };
348
+ readonly "sourceful/riverflow-v2-fast": {
349
+ id: string;
350
+ name: string;
351
+ api: "openrouter-images";
352
+ provider: string;
353
+ baseUrl: string;
354
+ input: ("image" | "text")[];
355
+ output: "image"[];
356
+ cost: {
357
+ input: number;
358
+ output: number;
359
+ cacheRead: number;
360
+ cacheWrite: number;
361
+ };
362
+ };
363
+ readonly "sourceful/riverflow-v2-fast-preview": {
364
+ id: string;
365
+ name: string;
366
+ api: "openrouter-images";
367
+ provider: string;
368
+ baseUrl: string;
369
+ input: ("image" | "text")[];
370
+ output: "image"[];
371
+ cost: {
372
+ input: number;
373
+ output: number;
374
+ cacheRead: number;
375
+ cacheWrite: number;
376
+ };
377
+ };
378
+ readonly "sourceful/riverflow-v2-max-preview": {
379
+ id: string;
380
+ name: string;
381
+ api: "openrouter-images";
382
+ provider: string;
383
+ baseUrl: string;
384
+ input: ("image" | "text")[];
385
+ output: "image"[];
386
+ cost: {
387
+ input: number;
388
+ output: number;
389
+ cacheRead: number;
390
+ cacheWrite: number;
391
+ };
392
+ };
393
+ readonly "sourceful/riverflow-v2-pro": {
394
+ id: string;
395
+ name: string;
396
+ api: "openrouter-images";
397
+ provider: string;
398
+ baseUrl: string;
399
+ input: ("image" | "text")[];
400
+ output: "image"[];
401
+ cost: {
402
+ input: number;
403
+ output: number;
404
+ cacheRead: number;
405
+ cacheWrite: number;
406
+ };
407
+ };
408
+ readonly "sourceful/riverflow-v2-standard-preview": {
409
+ id: string;
410
+ name: string;
411
+ api: "openrouter-images";
412
+ provider: string;
413
+ baseUrl: string;
414
+ input: ("image" | "text")[];
415
+ output: "image"[];
416
+ cost: {
417
+ input: number;
418
+ output: number;
419
+ cacheRead: number;
420
+ cacheWrite: number;
421
+ };
422
+ };
423
+ };
424
+ };
425
+ //# sourceMappingURL=image-models.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-models.generated.d.ts","sourceRoot":"","sources":["../src/image-models.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuakD,CAAC","sourcesContent":["// This file is auto-generated by scripts/generate-image-models.ts\n// Do not edit manually - run 'npm run generate-image-models' to update\n\nimport type { ImagesApi, ImagesModel } from \"./types.js\";\n\nexport const IMAGE_MODELS = {\n\t\"openrouter\": {\n\t\t\"black-forest-labs/flux.2-flex\": {\n\t\t\tid: \"black-forest-labs/flux.2-flex\",\n\t\t\tname: \"Black Forest Labs: FLUX.2 Flex\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"black-forest-labs/flux.2-klein-4b\": {\n\t\t\tid: \"black-forest-labs/flux.2-klein-4b\",\n\t\t\tname: \"Black Forest Labs: FLUX.2 Klein 4B\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"black-forest-labs/flux.2-max\": {\n\t\t\tid: \"black-forest-labs/flux.2-max\",\n\t\t\tname: \"Black Forest Labs: FLUX.2 Max\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"black-forest-labs/flux.2-pro\": {\n\t\t\tid: \"black-forest-labs/flux.2-pro\",\n\t\t\tname: \"Black Forest Labs: FLUX.2 Pro\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"bytedance-seed/seedream-4.5\": {\n\t\t\tid: \"bytedance-seed/seedream-4.5\",\n\t\t\tname: \"ByteDance Seed: Seedream 4.5\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"google/gemini-2.5-flash-image\": {\n\t\t\tid: \"google/gemini-2.5-flash-image\",\n\t\t\tname: \"Google: Nano Banana (Gemini 2.5 Flash Image)\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 0.3,\n\t \"output\": 2.5,\n\t \"cacheRead\": 0.03,\n\t \"cacheWrite\": 0.08333333333333334\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"google/gemini-3-pro-image-preview\": {\n\t\t\tid: \"google/gemini-3-pro-image-preview\",\n\t\t\tname: \"Google: Nano Banana Pro (Gemini 3 Pro Image Preview)\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 2,\n\t \"output\": 12,\n\t \"cacheRead\": 0.19999999999999998,\n\t \"cacheWrite\": 0.375\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"google/gemini-3.1-flash-image-preview\": {\n\t\t\tid: \"google/gemini-3.1-flash-image-preview\",\n\t\t\tname: \"Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 0.5,\n\t \"output\": 3,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"openai/gpt-5-image\": {\n\t\t\tid: \"openai/gpt-5-image\",\n\t\t\tname: \"OpenAI: GPT-5 Image\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 10,\n\t \"output\": 10,\n\t \"cacheRead\": 1.25,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"openai/gpt-5-image-mini\": {\n\t\t\tid: \"openai/gpt-5-image-mini\",\n\t\t\tname: \"OpenAI: GPT-5 Image Mini\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 2.5,\n\t \"output\": 2,\n\t \"cacheRead\": 0.25,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"openai/gpt-5.4-image-2\": {\n\t\t\tid: \"openai/gpt-5.4-image-2\",\n\t\t\tname: \"OpenAI: GPT-5.4 Image 2\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"image\",\"text\"],\n\t\t\toutput: [\"image\",\"text\"],\n\t\t\tcost: \t{\n\t \"input\": 8,\n\t \"output\": 15,\n\t \"cacheRead\": 2,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"openrouter/auto\": {\n\t\t\tid: \"openrouter/auto\",\n\t\t\tname: \"Auto Router\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"text\",\"image\"],\n\t\t\tcost: \t{\n\t \"input\": -1000000,\n\t \"output\": -1000000,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v3\": {\n\t\t\tid: \"recraft/recraft-v3\",\n\t\t\tname: \"Recraft: Recraft V3\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4\": {\n\t\t\tid: \"recraft/recraft-v4\",\n\t\t\tname: \"Recraft: Recraft V4\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4-pro\": {\n\t\t\tid: \"recraft/recraft-v4-pro\",\n\t\t\tname: \"Recraft: Recraft V4 Pro\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4-pro-vector\": {\n\t\t\tid: \"recraft/recraft-v4-pro-vector\",\n\t\t\tname: \"Recraft: Recraft V4 Pro Vector\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4-vector\": {\n\t\t\tid: \"recraft/recraft-v4-vector\",\n\t\t\tname: \"Recraft: Recraft V4 Vector\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1\": {\n\t\t\tid: \"recraft/recraft-v4.1\",\n\t\t\tname: \"Recraft: Recraft V4.1\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1-pro\": {\n\t\t\tid: \"recraft/recraft-v4.1-pro\",\n\t\t\tname: \"Recraft: Recraft V4.1 Pro\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1-pro-vector\": {\n\t\t\tid: \"recraft/recraft-v4.1-pro-vector\",\n\t\t\tname: \"Recraft: Recraft V4.1 Pro Vector\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1-utility\": {\n\t\t\tid: \"recraft/recraft-v4.1-utility\",\n\t\t\tname: \"Recraft: Recraft V4.1 Utility\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1-utility-pro\": {\n\t\t\tid: \"recraft/recraft-v4.1-utility-pro\",\n\t\t\tname: \"Recraft: Recraft V4.1 Utility Pro\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"recraft/recraft-v4.1-vector\": {\n\t\t\tid: \"recraft/recraft-v4.1-vector\",\n\t\t\tname: \"Recraft: Recraft V4.1 Vector\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"sourceful/riverflow-v2-fast\": {\n\t\t\tid: \"sourceful/riverflow-v2-fast\",\n\t\t\tname: \"Sourceful: Riverflow V2 Fast\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"sourceful/riverflow-v2-fast-preview\": {\n\t\t\tid: \"sourceful/riverflow-v2-fast-preview\",\n\t\t\tname: \"Sourceful: Riverflow V2 Fast Preview\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"sourceful/riverflow-v2-max-preview\": {\n\t\t\tid: \"sourceful/riverflow-v2-max-preview\",\n\t\t\tname: \"Sourceful: Riverflow V2 Max Preview\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"sourceful/riverflow-v2-pro\": {\n\t\t\tid: \"sourceful/riverflow-v2-pro\",\n\t\t\tname: \"Sourceful: Riverflow V2 Pro\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t\t\"sourceful/riverflow-v2-standard-preview\": {\n\t\t\tid: \"sourceful/riverflow-v2-standard-preview\",\n\t\t\tname: \"Sourceful: Riverflow V2 Standard Preview\",\n\t\t\tapi: \"openrouter-images\",\n\t\t\tprovider: \"openrouter\",\n\t\t\tbaseUrl: \"https://openrouter.ai/api/v1\",\n\t\t\tinput: [\"text\",\"image\"],\n\t\t\toutput: [\"image\"],\n\t\t\tcost: \t{\n\t \"input\": 0,\n\t \"output\": 0,\n\t \"cacheRead\": 0,\n\t \"cacheWrite\": 0\n\t}\n\t\t} satisfies ImagesModel<\"openrouter-images\">,\n\t},\n} as const satisfies Record<string, Record<string, ImagesModel<ImagesApi>>>;\n"]}