phi-code-ai 0.56.4 → 0.74.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 (187) hide show
  1. package/README.md +258 -73
  2. package/dist/api-registry.d.ts.map +1 -1
  3. package/dist/api-registry.js.map +1 -1
  4. package/dist/bedrock-provider.d.ts.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +1 -1
  7. package/dist/cli.js.map +1 -1
  8. package/dist/env-api-keys.d.ts +9 -0
  9. package/dist/env-api-keys.d.ts.map +1 -1
  10. package/dist/env-api-keys.js +96 -30
  11. package/dist/env-api-keys.js.map +1 -1
  12. package/dist/image-models.d.ts +10 -0
  13. package/dist/image-models.d.ts.map +1 -0
  14. package/dist/image-models.generated.d.ts +305 -0
  15. package/dist/image-models.generated.d.ts.map +1 -0
  16. package/dist/image-models.generated.js +307 -0
  17. package/dist/image-models.generated.js.map +1 -0
  18. package/dist/image-models.js +23 -0
  19. package/dist/image-models.js.map +1 -0
  20. package/dist/images-api-registry.d.ts +14 -0
  21. package/dist/images-api-registry.d.ts.map +1 -0
  22. package/dist/images-api-registry.js +22 -0
  23. package/dist/images-api-registry.js.map +1 -0
  24. package/dist/images.d.ts +4 -0
  25. package/dist/images.d.ts.map +1 -0
  26. package/dist/images.js +14 -0
  27. package/dist/images.js.map +1 -0
  28. package/dist/index.d.ts +20 -11
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +8 -9
  31. package/dist/index.js.map +1 -1
  32. package/dist/models.d.ts +3 -9
  33. package/dist/models.d.ts.map +1 -1
  34. package/dist/models.generated.d.ts +6525 -2231
  35. package/dist/models.generated.d.ts.map +1 -1
  36. package/dist/models.generated.js +8992 -5524
  37. package/dist/models.generated.js.map +1 -1
  38. package/dist/models.js +28 -12
  39. package/dist/models.js.map +1 -1
  40. package/dist/oauth.d.ts.map +1 -1
  41. package/dist/providers/amazon-bedrock.d.ts +23 -0
  42. package/dist/providers/amazon-bedrock.d.ts.map +1 -1
  43. package/dist/providers/amazon-bedrock.js +206 -44
  44. package/dist/providers/amazon-bedrock.js.map +1 -1
  45. package/dist/providers/anthropic.d.ts +23 -2
  46. package/dist/providers/anthropic.d.ts.map +1 -1
  47. package/dist/providers/anthropic.js +294 -63
  48. package/dist/providers/anthropic.js.map +1 -1
  49. package/dist/providers/azure-openai-responses.d.ts.map +1 -1
  50. package/dist/providers/azure-openai-responses.js +47 -23
  51. package/dist/providers/azure-openai-responses.js.map +1 -1
  52. package/dist/providers/cloudflare.d.ts +13 -0
  53. package/dist/providers/cloudflare.d.ts.map +1 -0
  54. package/dist/providers/cloudflare.js +26 -0
  55. package/dist/providers/cloudflare.js.map +1 -0
  56. package/dist/providers/faux.d.ts +56 -0
  57. package/dist/providers/faux.d.ts.map +1 -0
  58. package/dist/providers/faux.js +368 -0
  59. package/dist/providers/faux.js.map +1 -0
  60. package/dist/providers/github-copilot-headers.d.ts.map +1 -1
  61. package/dist/providers/github-copilot-headers.js.map +1 -1
  62. package/dist/providers/google-shared.d.ts +7 -2
  63. package/dist/providers/google-shared.d.ts.map +1 -1
  64. package/dist/providers/google-shared.js +53 -24
  65. package/dist/providers/google-shared.js.map +1 -1
  66. package/dist/providers/google-vertex.d.ts +1 -1
  67. package/dist/providers/google-vertex.d.ts.map +1 -1
  68. package/dist/providers/google-vertex.js +87 -16
  69. package/dist/providers/google-vertex.js.map +1 -1
  70. package/dist/providers/google.d.ts +1 -1
  71. package/dist/providers/google.d.ts.map +1 -1
  72. package/dist/providers/google.js +57 -9
  73. package/dist/providers/google.js.map +1 -1
  74. package/dist/providers/images/openrouter.d.ts +3 -0
  75. package/dist/providers/images/openrouter.d.ts.map +1 -0
  76. package/dist/providers/images/openrouter.js +129 -0
  77. package/dist/providers/images/openrouter.js.map +1 -0
  78. package/dist/providers/images/register-builtins.d.ts +4 -0
  79. package/dist/providers/images/register-builtins.d.ts.map +1 -0
  80. package/dist/providers/images/register-builtins.js +34 -0
  81. package/dist/providers/images/register-builtins.js.map +1 -0
  82. package/dist/providers/mistral.d.ts +3 -0
  83. package/dist/providers/mistral.d.ts.map +1 -1
  84. package/dist/providers/mistral.js +49 -9
  85. package/dist/providers/mistral.js.map +1 -1
  86. package/dist/providers/openai-codex-responses.d.ts +21 -0
  87. package/dist/providers/openai-codex-responses.d.ts.map +1 -1
  88. package/dist/providers/openai-codex-responses.js +443 -86
  89. package/dist/providers/openai-codex-responses.js.map +1 -1
  90. package/dist/providers/openai-completions.d.ts +5 -1
  91. package/dist/providers/openai-completions.d.ts.map +1 -1
  92. package/dist/providers/openai-completions.js +459 -225
  93. package/dist/providers/openai-completions.js.map +1 -1
  94. package/dist/providers/openai-responses-shared.d.ts +1 -0
  95. package/dist/providers/openai-responses-shared.d.ts.map +1 -1
  96. package/dist/providers/openai-responses-shared.js +95 -45
  97. package/dist/providers/openai-responses-shared.js.map +1 -1
  98. package/dist/providers/openai-responses.d.ts.map +1 -1
  99. package/dist/providers/openai-responses.js +66 -44
  100. package/dist/providers/openai-responses.js.map +1 -1
  101. package/dist/providers/register-builtins.d.ts +27 -2
  102. package/dist/providers/register-builtins.d.ts.map +1 -1
  103. package/dist/providers/register-builtins.js +157 -52
  104. package/dist/providers/register-builtins.js.map +1 -1
  105. package/dist/providers/simple-options.d.ts.map +1 -1
  106. package/dist/providers/simple-options.js +5 -1
  107. package/dist/providers/simple-options.js.map +1 -1
  108. package/dist/providers/transform-messages.d.ts.map +1 -1
  109. package/dist/providers/transform-messages.js +63 -34
  110. package/dist/providers/transform-messages.js.map +1 -1
  111. package/dist/session-resources.d.ts +4 -0
  112. package/dist/session-resources.d.ts.map +1 -0
  113. package/dist/session-resources.js +22 -0
  114. package/dist/session-resources.js.map +1 -0
  115. package/dist/stream.d.ts.map +1 -1
  116. package/dist/stream.js.map +1 -1
  117. package/dist/types.d.ts +219 -15
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/types.js.map +1 -1
  120. package/dist/utils/diagnostics.d.ts +19 -0
  121. package/dist/utils/diagnostics.d.ts.map +1 -0
  122. package/dist/utils/diagnostics.js +25 -0
  123. package/dist/utils/diagnostics.js.map +1 -0
  124. package/dist/utils/event-stream.d.ts.map +1 -1
  125. package/dist/utils/event-stream.js +7 -3
  126. package/dist/utils/event-stream.js.map +1 -1
  127. package/dist/utils/hash.d.ts.map +1 -1
  128. package/dist/utils/hash.js.map +1 -1
  129. package/dist/utils/headers.d.ts +2 -0
  130. package/dist/utils/headers.d.ts.map +1 -0
  131. package/dist/utils/headers.js +8 -0
  132. package/dist/utils/headers.js.map +1 -0
  133. package/dist/utils/json-parse.d.ts +8 -1
  134. package/dist/utils/json-parse.d.ts.map +1 -1
  135. package/dist/utils/json-parse.js +89 -5
  136. package/dist/utils/json-parse.js.map +1 -1
  137. package/dist/utils/oauth/anthropic.d.ts +14 -6
  138. package/dist/utils/oauth/anthropic.d.ts.map +1 -1
  139. package/dist/utils/oauth/anthropic.js +288 -57
  140. package/dist/utils/oauth/anthropic.js.map +1 -1
  141. package/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  142. package/dist/utils/oauth/github-copilot.js +23 -12
  143. package/dist/utils/oauth/github-copilot.js.map +1 -1
  144. package/dist/utils/oauth/index.d.ts +0 -4
  145. package/dist/utils/oauth/index.d.ts.map +1 -1
  146. package/dist/utils/oauth/index.js +0 -10
  147. package/dist/utils/oauth/index.js.map +1 -1
  148. package/dist/utils/oauth/oauth-page.d.ts +3 -0
  149. package/dist/utils/oauth/oauth-page.d.ts.map +1 -0
  150. package/dist/utils/oauth/oauth-page.js +105 -0
  151. package/dist/utils/oauth/oauth-page.js.map +1 -0
  152. package/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  153. package/dist/utils/oauth/openai-codex.js +51 -46
  154. package/dist/utils/oauth/openai-codex.js.map +1 -1
  155. package/dist/utils/oauth/pkce.d.ts.map +1 -1
  156. package/dist/utils/oauth/pkce.js.map +1 -1
  157. package/dist/utils/oauth/types.d.ts +10 -0
  158. package/dist/utils/oauth/types.d.ts.map +1 -1
  159. package/dist/utils/oauth/types.js.map +1 -1
  160. package/dist/utils/overflow.d.ts +7 -3
  161. package/dist/utils/overflow.d.ts.map +1 -1
  162. package/dist/utils/overflow.js +46 -13
  163. package/dist/utils/overflow.js.map +1 -1
  164. package/dist/utils/sanitize-unicode.d.ts.map +1 -1
  165. package/dist/utils/sanitize-unicode.js.map +1 -1
  166. package/dist/utils/typebox-helpers.d.ts +1 -1
  167. package/dist/utils/typebox-helpers.d.ts.map +1 -1
  168. package/dist/utils/typebox-helpers.js +1 -1
  169. package/dist/utils/typebox-helpers.js.map +1 -1
  170. package/dist/utils/validation.d.ts.map +1 -1
  171. package/dist/utils/validation.js +247 -38
  172. package/dist/utils/validation.js.map +1 -1
  173. package/package.json +43 -13
  174. package/bedrock-provider.d.ts +0 -1
  175. package/bedrock-provider.js +0 -1
  176. package/dist/providers/google-gemini-cli.d.ts +0 -74
  177. package/dist/providers/google-gemini-cli.d.ts.map +0 -1
  178. package/dist/providers/google-gemini-cli.js +0 -754
  179. package/dist/providers/google-gemini-cli.js.map +0 -1
  180. package/dist/utils/oauth/google-antigravity.d.ts +0 -26
  181. package/dist/utils/oauth/google-antigravity.d.ts.map +0 -1
  182. package/dist/utils/oauth/google-antigravity.js +0 -373
  183. package/dist/utils/oauth/google-antigravity.js.map +0 -1
  184. package/dist/utils/oauth/google-gemini-cli.d.ts +0 -26
  185. package/dist/utils/oauth/google-gemini-cli.d.ts.map +0 -1
  186. package/dist/utils/oauth/google-gemini-cli.js +0 -478
  187. package/dist/utils/oauth/google-gemini-cli.js.map +0 -1
@@ -0,0 +1,305 @@
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 "sourceful/riverflow-v2-fast": {
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 "sourceful/riverflow-v2-fast-preview": {
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 "sourceful/riverflow-v2-max-preview": {
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 "sourceful/riverflow-v2-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 "sourceful/riverflow-v2-standard-preview": {
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
+ };
304
+ };
305
+ //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+SkD,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\"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"]}
@@ -0,0 +1,307 @@
1
+ // This file is auto-generated by scripts/generate-image-models.ts
2
+ // Do not edit manually - run 'npm run generate-image-models' to update
3
+ export const IMAGE_MODELS = {
4
+ "openrouter": {
5
+ "black-forest-labs/flux.2-flex": {
6
+ id: "black-forest-labs/flux.2-flex",
7
+ name: "Black Forest Labs: FLUX.2 Flex",
8
+ api: "openrouter-images",
9
+ provider: "openrouter",
10
+ baseUrl: "https://openrouter.ai/api/v1",
11
+ input: ["text", "image"],
12
+ output: ["image"],
13
+ cost: {
14
+ "input": 0,
15
+ "output": 0,
16
+ "cacheRead": 0,
17
+ "cacheWrite": 0
18
+ }
19
+ },
20
+ "black-forest-labs/flux.2-klein-4b": {
21
+ id: "black-forest-labs/flux.2-klein-4b",
22
+ name: "Black Forest Labs: FLUX.2 Klein 4B",
23
+ api: "openrouter-images",
24
+ provider: "openrouter",
25
+ baseUrl: "https://openrouter.ai/api/v1",
26
+ input: ["text", "image"],
27
+ output: ["image"],
28
+ cost: {
29
+ "input": 0,
30
+ "output": 0,
31
+ "cacheRead": 0,
32
+ "cacheWrite": 0
33
+ }
34
+ },
35
+ "black-forest-labs/flux.2-max": {
36
+ id: "black-forest-labs/flux.2-max",
37
+ name: "Black Forest Labs: FLUX.2 Max",
38
+ api: "openrouter-images",
39
+ provider: "openrouter",
40
+ baseUrl: "https://openrouter.ai/api/v1",
41
+ input: ["text", "image"],
42
+ output: ["image"],
43
+ cost: {
44
+ "input": 0,
45
+ "output": 0,
46
+ "cacheRead": 0,
47
+ "cacheWrite": 0
48
+ }
49
+ },
50
+ "black-forest-labs/flux.2-pro": {
51
+ id: "black-forest-labs/flux.2-pro",
52
+ name: "Black Forest Labs: FLUX.2 Pro",
53
+ api: "openrouter-images",
54
+ provider: "openrouter",
55
+ baseUrl: "https://openrouter.ai/api/v1",
56
+ input: ["text", "image"],
57
+ output: ["image"],
58
+ cost: {
59
+ "input": 0,
60
+ "output": 0,
61
+ "cacheRead": 0,
62
+ "cacheWrite": 0
63
+ }
64
+ },
65
+ "bytedance-seed/seedream-4.5": {
66
+ id: "bytedance-seed/seedream-4.5",
67
+ name: "ByteDance Seed: Seedream 4.5",
68
+ api: "openrouter-images",
69
+ provider: "openrouter",
70
+ baseUrl: "https://openrouter.ai/api/v1",
71
+ input: ["image", "text"],
72
+ output: ["image"],
73
+ cost: {
74
+ "input": 0,
75
+ "output": 0,
76
+ "cacheRead": 0,
77
+ "cacheWrite": 0
78
+ }
79
+ },
80
+ "google/gemini-2.5-flash-image": {
81
+ id: "google/gemini-2.5-flash-image",
82
+ name: "Google: Nano Banana (Gemini 2.5 Flash Image)",
83
+ api: "openrouter-images",
84
+ provider: "openrouter",
85
+ baseUrl: "https://openrouter.ai/api/v1",
86
+ input: ["image", "text"],
87
+ output: ["image", "text"],
88
+ cost: {
89
+ "input": 0.3,
90
+ "output": 2.5,
91
+ "cacheRead": 0.03,
92
+ "cacheWrite": 0.08333333333333334
93
+ }
94
+ },
95
+ "google/gemini-3-pro-image-preview": {
96
+ id: "google/gemini-3-pro-image-preview",
97
+ name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)",
98
+ api: "openrouter-images",
99
+ provider: "openrouter",
100
+ baseUrl: "https://openrouter.ai/api/v1",
101
+ input: ["image", "text"],
102
+ output: ["image", "text"],
103
+ cost: {
104
+ "input": 2,
105
+ "output": 12,
106
+ "cacheRead": 0.19999999999999998,
107
+ "cacheWrite": 0.375
108
+ }
109
+ },
110
+ "google/gemini-3.1-flash-image-preview": {
111
+ id: "google/gemini-3.1-flash-image-preview",
112
+ name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)",
113
+ api: "openrouter-images",
114
+ provider: "openrouter",
115
+ baseUrl: "https://openrouter.ai/api/v1",
116
+ input: ["image", "text"],
117
+ output: ["image", "text"],
118
+ cost: {
119
+ "input": 0.5,
120
+ "output": 3,
121
+ "cacheRead": 0,
122
+ "cacheWrite": 0
123
+ }
124
+ },
125
+ "openai/gpt-5-image": {
126
+ id: "openai/gpt-5-image",
127
+ name: "OpenAI: GPT-5 Image",
128
+ api: "openrouter-images",
129
+ provider: "openrouter",
130
+ baseUrl: "https://openrouter.ai/api/v1",
131
+ input: ["image", "text"],
132
+ output: ["image", "text"],
133
+ cost: {
134
+ "input": 10,
135
+ "output": 10,
136
+ "cacheRead": 1.25,
137
+ "cacheWrite": 0
138
+ }
139
+ },
140
+ "openai/gpt-5-image-mini": {
141
+ id: "openai/gpt-5-image-mini",
142
+ name: "OpenAI: GPT-5 Image Mini",
143
+ api: "openrouter-images",
144
+ provider: "openrouter",
145
+ baseUrl: "https://openrouter.ai/api/v1",
146
+ input: ["image", "text"],
147
+ output: ["image", "text"],
148
+ cost: {
149
+ "input": 2.5,
150
+ "output": 2,
151
+ "cacheRead": 0.25,
152
+ "cacheWrite": 0
153
+ }
154
+ },
155
+ "openai/gpt-5.4-image-2": {
156
+ id: "openai/gpt-5.4-image-2",
157
+ name: "OpenAI: GPT-5.4 Image 2",
158
+ api: "openrouter-images",
159
+ provider: "openrouter",
160
+ baseUrl: "https://openrouter.ai/api/v1",
161
+ input: ["image", "text"],
162
+ output: ["image", "text"],
163
+ cost: {
164
+ "input": 8,
165
+ "output": 15,
166
+ "cacheRead": 2,
167
+ "cacheWrite": 0
168
+ }
169
+ },
170
+ "openrouter/auto": {
171
+ id: "openrouter/auto",
172
+ name: "Auto Router",
173
+ api: "openrouter-images",
174
+ provider: "openrouter",
175
+ baseUrl: "https://openrouter.ai/api/v1",
176
+ input: ["text", "image"],
177
+ output: ["text", "image"],
178
+ cost: {
179
+ "input": -1000000,
180
+ "output": -1000000,
181
+ "cacheRead": 0,
182
+ "cacheWrite": 0
183
+ }
184
+ },
185
+ "recraft/recraft-v3": {
186
+ id: "recraft/recraft-v3",
187
+ name: "Recraft: Recraft V3",
188
+ api: "openrouter-images",
189
+ provider: "openrouter",
190
+ baseUrl: "https://openrouter.ai/api/v1",
191
+ input: ["text", "image"],
192
+ output: ["image"],
193
+ cost: {
194
+ "input": 0,
195
+ "output": 0,
196
+ "cacheRead": 0,
197
+ "cacheWrite": 0
198
+ }
199
+ },
200
+ "recraft/recraft-v4": {
201
+ id: "recraft/recraft-v4",
202
+ name: "Recraft: Recraft V4",
203
+ api: "openrouter-images",
204
+ provider: "openrouter",
205
+ baseUrl: "https://openrouter.ai/api/v1",
206
+ input: ["text", "image"],
207
+ output: ["image"],
208
+ cost: {
209
+ "input": 0,
210
+ "output": 0,
211
+ "cacheRead": 0,
212
+ "cacheWrite": 0
213
+ }
214
+ },
215
+ "recraft/recraft-v4-pro": {
216
+ id: "recraft/recraft-v4-pro",
217
+ name: "Recraft: Recraft V4 Pro",
218
+ api: "openrouter-images",
219
+ provider: "openrouter",
220
+ baseUrl: "https://openrouter.ai/api/v1",
221
+ input: ["text", "image"],
222
+ output: ["image"],
223
+ cost: {
224
+ "input": 0,
225
+ "output": 0,
226
+ "cacheRead": 0,
227
+ "cacheWrite": 0
228
+ }
229
+ },
230
+ "sourceful/riverflow-v2-fast": {
231
+ id: "sourceful/riverflow-v2-fast",
232
+ name: "Sourceful: Riverflow V2 Fast",
233
+ api: "openrouter-images",
234
+ provider: "openrouter",
235
+ baseUrl: "https://openrouter.ai/api/v1",
236
+ input: ["text", "image"],
237
+ output: ["image"],
238
+ cost: {
239
+ "input": 0,
240
+ "output": 0,
241
+ "cacheRead": 0,
242
+ "cacheWrite": 0
243
+ }
244
+ },
245
+ "sourceful/riverflow-v2-fast-preview": {
246
+ id: "sourceful/riverflow-v2-fast-preview",
247
+ name: "Sourceful: Riverflow V2 Fast Preview",
248
+ api: "openrouter-images",
249
+ provider: "openrouter",
250
+ baseUrl: "https://openrouter.ai/api/v1",
251
+ input: ["text", "image"],
252
+ output: ["image"],
253
+ cost: {
254
+ "input": 0,
255
+ "output": 0,
256
+ "cacheRead": 0,
257
+ "cacheWrite": 0
258
+ }
259
+ },
260
+ "sourceful/riverflow-v2-max-preview": {
261
+ id: "sourceful/riverflow-v2-max-preview",
262
+ name: "Sourceful: Riverflow V2 Max Preview",
263
+ api: "openrouter-images",
264
+ provider: "openrouter",
265
+ baseUrl: "https://openrouter.ai/api/v1",
266
+ input: ["text", "image"],
267
+ output: ["image"],
268
+ cost: {
269
+ "input": 0,
270
+ "output": 0,
271
+ "cacheRead": 0,
272
+ "cacheWrite": 0
273
+ }
274
+ },
275
+ "sourceful/riverflow-v2-pro": {
276
+ id: "sourceful/riverflow-v2-pro",
277
+ name: "Sourceful: Riverflow V2 Pro",
278
+ api: "openrouter-images",
279
+ provider: "openrouter",
280
+ baseUrl: "https://openrouter.ai/api/v1",
281
+ input: ["text", "image"],
282
+ output: ["image"],
283
+ cost: {
284
+ "input": 0,
285
+ "output": 0,
286
+ "cacheRead": 0,
287
+ "cacheWrite": 0
288
+ }
289
+ },
290
+ "sourceful/riverflow-v2-standard-preview": {
291
+ id: "sourceful/riverflow-v2-standard-preview",
292
+ name: "Sourceful: Riverflow V2 Standard Preview",
293
+ api: "openrouter-images",
294
+ provider: "openrouter",
295
+ baseUrl: "https://openrouter.ai/api/v1",
296
+ input: ["text", "image"],
297
+ output: ["image"],
298
+ cost: {
299
+ "input": 0,
300
+ "output": 0,
301
+ "cacheRead": 0,
302
+ "cacheWrite": 0
303
+ }
304
+ },
305
+ },
306
+ };
307
+ //# sourceMappingURL=image-models.generated.js.map