egaki 0.6.0 → 0.7.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 (271) hide show
  1. package/CHANGELOG.md +140 -9
  2. package/dist/cli/cache-utils.d.ts +33 -0
  3. package/dist/cli/cache-utils.d.ts.map +1 -0
  4. package/dist/cli/cache-utils.js +157 -0
  5. package/dist/cli/cached-generate.d.ts +105 -0
  6. package/dist/cli/cached-generate.d.ts.map +1 -0
  7. package/dist/cli/cached-generate.js +208 -0
  8. package/dist/cli/cached-generate.test.d.ts +11 -0
  9. package/dist/cli/cached-generate.test.d.ts.map +1 -0
  10. package/dist/cli/cached-generate.test.js +431 -0
  11. package/dist/cli/cartesia-provider.d.ts +16 -0
  12. package/dist/cli/cartesia-provider.d.ts.map +1 -0
  13. package/dist/cli/cartesia-provider.js +184 -0
  14. package/dist/cli/chatgpt-auth.d.ts.map +1 -0
  15. package/dist/cli/cli.d.ts +4 -0
  16. package/dist/cli/cli.d.ts.map +1 -0
  17. package/dist/{cli.js → cli/cli.js} +626 -600
  18. package/dist/cli/clone-generate.d.ts +26 -0
  19. package/dist/cli/clone-generate.d.ts.map +1 -0
  20. package/dist/cli/clone-generate.js +148 -0
  21. package/dist/cli/credentials.d.ts.map +1 -0
  22. package/dist/{credentials.js → cli/credentials.js} +20 -0
  23. package/dist/cli/elevenlabs-speech-provider.d.ts +26 -0
  24. package/dist/cli/elevenlabs-speech-provider.d.ts.map +1 -0
  25. package/dist/cli/elevenlabs-speech-provider.js +199 -0
  26. package/dist/cli/generate.d.ts +140 -0
  27. package/dist/cli/generate.d.ts.map +1 -0
  28. package/dist/cli/generate.js +604 -0
  29. package/dist/cli/generate.test.d.ts +2 -0
  30. package/dist/cli/generate.test.d.ts.map +1 -0
  31. package/dist/cli/generate.test.js +131 -0
  32. package/dist/cli/login.d.ts.map +1 -0
  33. package/dist/cli/main.d.ts +3 -0
  34. package/dist/cli/main.d.ts.map +1 -0
  35. package/dist/cli/main.js +7 -0
  36. package/dist/{model-catalog.d.ts → cli/model-catalog.d.ts} +6 -0
  37. package/dist/cli/model-catalog.d.ts.map +1 -0
  38. package/dist/{model-catalog.js → cli/model-catalog.js} +714 -4
  39. package/dist/{models.d.ts → cli/models.d.ts} +12 -5
  40. package/dist/cli/models.d.ts.map +1 -0
  41. package/dist/{models.js → cli/models.js} +58 -57
  42. package/dist/cli/open-browser.d.ts.map +1 -0
  43. package/dist/cli/openai-speech-provider.d.ts +3 -0
  44. package/dist/cli/openai-speech-provider.d.ts.map +1 -0
  45. package/dist/cli/openai-speech-provider.js +28 -0
  46. package/dist/cli/separation-generate.d.ts +34 -0
  47. package/dist/cli/separation-generate.d.ts.map +1 -0
  48. package/dist/cli/separation-generate.js +117 -0
  49. package/dist/cli/speech-catalog.d.ts +35 -0
  50. package/dist/cli/speech-catalog.d.ts.map +1 -0
  51. package/dist/cli/speech-catalog.js +195 -0
  52. package/dist/cli/speech-generate.d.ts +86 -0
  53. package/dist/cli/speech-generate.d.ts.map +1 -0
  54. package/dist/cli/speech-generate.js +156 -0
  55. package/dist/cli/speech-models.d.ts +8 -0
  56. package/dist/cli/speech-models.d.ts.map +1 -0
  57. package/dist/cli/speech-models.js +109 -0
  58. package/dist/cli/speech-provider.test.d.ts +2 -0
  59. package/dist/cli/speech-provider.test.d.ts.map +1 -0
  60. package/dist/cli/speech-provider.test.js +197 -0
  61. package/dist/cli/subscription.d.ts.map +1 -0
  62. package/dist/cli/transcription-catalog.d.ts +35 -0
  63. package/dist/cli/transcription-catalog.d.ts.map +1 -0
  64. package/dist/cli/transcription-catalog.js +192 -0
  65. package/dist/cli/transcription-generate.d.ts +62 -0
  66. package/dist/cli/transcription-generate.d.ts.map +1 -0
  67. package/dist/cli/transcription-generate.js +144 -0
  68. package/dist/cli/transcription-models.d.ts +9 -0
  69. package/dist/cli/transcription-models.d.ts.map +1 -0
  70. package/dist/cli/transcription-models.js +100 -0
  71. package/dist/cli/transcription-providers.d.ts +22 -0
  72. package/dist/cli/transcription-providers.d.ts.map +1 -0
  73. package/dist/cli/transcription-providers.js +290 -0
  74. package/dist/cli/video-model-catalog.d.ts.map +1 -0
  75. package/dist/cli/xai-auth.d.ts.map +1 -0
  76. package/dist/{xai-auth.js → cli/xai-auth.js} +1 -1
  77. package/dist/vite/angled-screen.d.ts +57 -0
  78. package/dist/vite/angled-screen.d.ts.map +1 -0
  79. package/dist/vite/angled-screen.js +115 -0
  80. package/dist/vite/app.d.ts +51 -0
  81. package/dist/vite/app.d.ts.map +1 -0
  82. package/dist/vite/app.js +150 -0
  83. package/dist/vite/bands-shader.d.ts +47 -0
  84. package/dist/vite/bands-shader.d.ts.map +1 -0
  85. package/dist/vite/bands-shader.js +267 -0
  86. package/dist/vite/code-block.d.ts +107 -0
  87. package/dist/vite/code-block.d.ts.map +1 -0
  88. package/dist/vite/code-block.js +641 -0
  89. package/dist/vite/components.d.ts +36 -0
  90. package/dist/vite/components.d.ts.map +1 -0
  91. package/dist/vite/components.js +113 -0
  92. package/dist/vite/dispersion-rings-shader.d.ts +44 -0
  93. package/dist/vite/dispersion-rings-shader.d.ts.map +1 -0
  94. package/dist/vite/dispersion-rings-shader.js +282 -0
  95. package/dist/vite/easing-curves.d.ts +129 -0
  96. package/dist/vite/easing-curves.d.ts.map +1 -0
  97. package/dist/vite/easing-curves.js +584 -0
  98. package/dist/vite/easing-curves.test.d.ts +2 -0
  99. package/dist/vite/easing-curves.test.d.ts.map +1 -0
  100. package/dist/vite/easing-curves.test.js +200 -0
  101. package/dist/vite/generated-media-client.d.ts +35 -0
  102. package/dist/vite/generated-media-client.d.ts.map +1 -0
  103. package/dist/vite/generated-media-client.js +76 -0
  104. package/dist/vite/keyframes.d.ts +129 -0
  105. package/dist/vite/keyframes.d.ts.map +1 -0
  106. package/dist/vite/keyframes.js +194 -0
  107. package/dist/vite/layout-editor.d.ts +45 -0
  108. package/dist/vite/layout-editor.d.ts.map +1 -0
  109. package/dist/vite/layout-editor.js +587 -0
  110. package/dist/vite/layout-transition.d.ts +136 -0
  111. package/dist/vite/layout-transition.d.ts.map +1 -0
  112. package/dist/vite/layout-transition.js +581 -0
  113. package/dist/vite/liquid-gradient-shader.d.ts +62 -0
  114. package/dist/vite/liquid-gradient-shader.d.ts.map +1 -0
  115. package/dist/vite/liquid-gradient-shader.js +413 -0
  116. package/dist/vite/mdx-client.d.ts +15 -0
  117. package/dist/vite/mdx-client.d.ts.map +1 -0
  118. package/dist/vite/mdx-client.js +265 -0
  119. package/dist/vite/mdx-parse.d.ts +102 -0
  120. package/dist/vite/mdx-parse.d.ts.map +1 -0
  121. package/dist/vite/mdx-parse.js +251 -0
  122. package/dist/vite/mdx-provided-components.d.ts +18 -0
  123. package/dist/vite/mdx-provided-components.d.ts.map +1 -0
  124. package/dist/vite/mdx-provided-components.js +14 -0
  125. package/dist/vite/mdx-video.d.ts +327 -0
  126. package/dist/vite/mdx-video.d.ts.map +1 -0
  127. package/dist/vite/mdx-video.js +596 -0
  128. package/dist/vite/mdx-video.test.d.ts +9 -0
  129. package/dist/vite/mdx-video.test.d.ts.map +1 -0
  130. package/dist/vite/mdx-video.test.js +1945 -0
  131. package/dist/vite/media-components.d.ts +45 -0
  132. package/dist/vite/media-components.d.ts.map +1 -0
  133. package/dist/vite/media-components.js +355 -0
  134. package/dist/vite/media-duration-store.d.ts +66 -0
  135. package/dist/vite/media-duration-store.d.ts.map +1 -0
  136. package/dist/vite/media-duration-store.js +204 -0
  137. package/dist/vite/player-page.d.ts +35 -0
  138. package/dist/vite/player-page.d.ts.map +1 -0
  139. package/dist/vite/player-page.js +720 -0
  140. package/dist/vite/render-client.d.ts +18 -0
  141. package/dist/vite/render-client.d.ts.map +1 -0
  142. package/dist/vite/render-client.js +67 -0
  143. package/dist/vite/sdk.d.ts +221 -0
  144. package/dist/vite/sdk.d.ts.map +1 -0
  145. package/dist/vite/sdk.js +355 -0
  146. package/dist/vite/server-components.d.ts +55 -0
  147. package/dist/vite/server-components.d.ts.map +1 -0
  148. package/dist/vite/server-components.js +156 -0
  149. package/dist/vite/server-mdx.d.ts +74 -0
  150. package/dist/vite/server-mdx.d.ts.map +1 -0
  151. package/dist/vite/server-mdx.js +259 -0
  152. package/dist/vite/shader-renderer.d.ts +48 -0
  153. package/dist/vite/shader-renderer.d.ts.map +1 -0
  154. package/dist/vite/shader-renderer.js +411 -0
  155. package/dist/vite/store-hooks.d.ts +12 -0
  156. package/dist/vite/store-hooks.d.ts.map +1 -0
  157. package/dist/vite/store-hooks.js +93 -0
  158. package/dist/vite/store.d.ts +75 -0
  159. package/dist/vite/store.d.ts.map +1 -0
  160. package/dist/vite/store.js +52 -0
  161. package/dist/vite/store.test.d.ts +6 -0
  162. package/dist/vite/store.test.d.ts.map +1 -0
  163. package/dist/vite/store.test.js +172 -0
  164. package/dist/vite/tweakpane-hook.d.ts +94 -0
  165. package/dist/vite/tweakpane-hook.d.ts.map +1 -0
  166. package/dist/vite/tweakpane-hook.js +450 -0
  167. package/dist/vite/vite-plugin.d.ts +28 -0
  168. package/dist/vite/vite-plugin.d.ts.map +1 -0
  169. package/dist/vite/vite-plugin.js +538 -0
  170. package/dist/vite/wave-gradient-shader.d.ts +41 -0
  171. package/dist/vite/wave-gradient-shader.d.ts.map +1 -0
  172. package/dist/vite/wave-gradient-shader.js +207 -0
  173. package/package.json +101 -24
  174. package/skills/egaki/SKILL.md +162 -1
  175. package/src/cli/cache-utils.ts +169 -0
  176. package/src/cli/cached-generate.test.ts +531 -0
  177. package/src/cli/cached-generate.ts +348 -0
  178. package/src/cli/cartesia-provider.ts +249 -0
  179. package/src/{cli.ts → cli/cli.ts} +836 -884
  180. package/src/cli/clone-generate.ts +202 -0
  181. package/src/{credentials.ts → cli/credentials.ts} +20 -0
  182. package/src/cli/elevenlabs-speech-provider.ts +243 -0
  183. package/src/cli/generate.test.ts +166 -0
  184. package/src/cli/generate.ts +912 -0
  185. package/src/cli/main.ts +8 -0
  186. package/src/{model-catalog.ts → cli/model-catalog.ts} +787 -58
  187. package/src/{models.ts → cli/models.ts} +65 -86
  188. package/src/cli/openai-speech-provider.ts +34 -0
  189. package/src/cli/separation-generate.ts +187 -0
  190. package/src/cli/speech-catalog.ts +253 -0
  191. package/src/cli/speech-generate.ts +275 -0
  192. package/src/cli/speech-models.ts +146 -0
  193. package/src/cli/speech-provider.test.ts +226 -0
  194. package/src/cli/transcription-catalog.ts +250 -0
  195. package/src/cli/transcription-generate.ts +214 -0
  196. package/src/cli/transcription-models.ts +136 -0
  197. package/src/cli/transcription-providers.ts +427 -0
  198. package/src/{xai-auth.ts → cli/xai-auth.ts} +1 -1
  199. package/src/vite/angled-screen.tsx +214 -0
  200. package/src/vite/app.tsx +197 -0
  201. package/src/vite/bands-shader.tsx +319 -0
  202. package/src/vite/code-block.tsx +939 -0
  203. package/src/vite/components.tsx +278 -0
  204. package/src/vite/dispersion-rings-shader.tsx +331 -0
  205. package/src/vite/easing-curves.test.ts +232 -0
  206. package/src/vite/easing-curves.ts +743 -0
  207. package/src/vite/generated-media-client.tsx +121 -0
  208. package/src/vite/keyframes.tsx +347 -0
  209. package/src/vite/layout-editor.tsx +709 -0
  210. package/src/vite/layout-transition.tsx +706 -0
  211. package/src/vite/liquid-gradient-shader.tsx +474 -0
  212. package/src/vite/mdx-client.tsx +420 -0
  213. package/src/vite/mdx-parse.ts +343 -0
  214. package/src/vite/mdx-provided-components.ts +19 -0
  215. package/src/vite/mdx-video.test.tsx +2219 -0
  216. package/src/vite/mdx-video.tsx +976 -0
  217. package/src/vite/media-components.tsx +473 -0
  218. package/src/vite/media-duration-store.ts +225 -0
  219. package/src/vite/motion-timing.ts +194 -0
  220. package/src/vite/player-page.tsx +1107 -0
  221. package/src/vite/render-client.ts +84 -0
  222. package/src/vite/sdk.ts +598 -0
  223. package/src/vite/server-components.tsx +241 -0
  224. package/src/vite/server-mdx.ts +285 -0
  225. package/src/vite/shader-renderer.tsx +535 -0
  226. package/src/vite/store-hooks.ts +117 -0
  227. package/src/vite/store.test.ts +202 -0
  228. package/src/vite/store.ts +115 -0
  229. package/src/vite/styles.css +21 -0
  230. package/src/vite/tweakpane-hook.tsx +593 -0
  231. package/src/vite/virtual-modules.d.ts +30 -0
  232. package/src/vite/vite-plugin.ts +584 -0
  233. package/src/vite/wave-gradient-shader.tsx +253 -0
  234. package/README.md +0 -370
  235. package/dist/antigravity-auth.d.ts +0 -15
  236. package/dist/antigravity-auth.d.ts.map +0 -1
  237. package/dist/antigravity-auth.js +0 -544
  238. package/dist/antigravity-image.d.ts +0 -11
  239. package/dist/antigravity-image.d.ts.map +0 -1
  240. package/dist/antigravity-image.js +0 -285
  241. package/dist/chatgpt-auth.d.ts.map +0 -1
  242. package/dist/cli.d.ts +0 -3
  243. package/dist/cli.d.ts.map +0 -1
  244. package/dist/credentials.d.ts.map +0 -1
  245. package/dist/gateway-model-candidates.generated.d.ts +0 -11
  246. package/dist/gateway-model-candidates.generated.d.ts.map +0 -1
  247. package/dist/gateway-model-candidates.generated.js +0 -64
  248. package/dist/login.d.ts.map +0 -1
  249. package/dist/model-catalog.d.ts.map +0 -1
  250. package/dist/models.d.ts.map +0 -1
  251. package/dist/open-browser.d.ts.map +0 -1
  252. package/dist/subscription.d.ts.map +0 -1
  253. package/dist/video-model-catalog.d.ts.map +0 -1
  254. package/dist/xai-auth.d.ts.map +0 -1
  255. /package/dist/{chatgpt-auth.d.ts → cli/chatgpt-auth.d.ts} +0 -0
  256. /package/dist/{chatgpt-auth.js → cli/chatgpt-auth.js} +0 -0
  257. /package/dist/{credentials.d.ts → cli/credentials.d.ts} +0 -0
  258. /package/dist/{login.d.ts → cli/login.d.ts} +0 -0
  259. /package/dist/{login.js → cli/login.js} +0 -0
  260. /package/dist/{open-browser.d.ts → cli/open-browser.d.ts} +0 -0
  261. /package/dist/{open-browser.js → cli/open-browser.js} +0 -0
  262. /package/dist/{subscription.d.ts → cli/subscription.d.ts} +0 -0
  263. /package/dist/{subscription.js → cli/subscription.js} +0 -0
  264. /package/dist/{video-model-catalog.d.ts → cli/video-model-catalog.d.ts} +0 -0
  265. /package/dist/{video-model-catalog.js → cli/video-model-catalog.js} +0 -0
  266. /package/dist/{xai-auth.d.ts → cli/xai-auth.d.ts} +0 -0
  267. /package/src/{chatgpt-auth.ts → cli/chatgpt-auth.ts} +0 -0
  268. /package/src/{login.ts → cli/login.ts} +0 -0
  269. /package/src/{open-browser.ts → cli/open-browser.ts} +0 -0
  270. /package/src/{subscription.ts → cli/subscription.ts} +0 -0
  271. /package/src/{video-model-catalog.ts → cli/video-model-catalog.ts} +0 -0
@@ -101,6 +101,14 @@ const xaiVideoProviderOptions = [
101
101
  { flag: 'video-url', providerKey: 'videoUrl', description: 'Source video URL for editing or extension (internal)', type: 'string' },
102
102
  { flag: 'reference-images', providerKey: 'referenceImageUrls', description: 'Reference images for R2V (1-7 files or URLs)', type: 'string', array: true },
103
103
  ];
104
+ // Source: node_modules/@ai-sdk/bytedance/dist/index.d.ts → ByteDanceVideoProviderOptions
105
+ // Docs: https://sdk.vercel.ai/docs/providers/bytedance
106
+ const bytedanceVideoProviderOptions = [
107
+ { flag: 'resolution', providerKey: 'resolution', description: 'Output resolution', values: ['480p', '720p', '1080p'], type: 'string' },
108
+ { flag: 'reference-images', providerKey: 'referenceImages', description: 'Reference images for R2V (1-9 files or URLs, use @Image1 etc. in prompt)', type: 'string', array: true },
109
+ { flag: 'watermark', providerKey: 'watermark', description: 'Add watermark to video', type: 'boolean' },
110
+ { flag: 'generate-audio', providerKey: 'generateAudio', description: 'Generate synchronized audio', type: 'boolean' },
111
+ ];
104
112
  // Source: node_modules/@ai-sdk/fal/dist/index.d.ts → FalVideoModelOptions
105
113
  // Docs: https://ai-sdk.dev/providers/ai-sdk-providers/fal
106
114
  const falVideoProviderOptions = [
@@ -328,6 +336,76 @@ export const CATALOG = [
328
336
  multipleImages: false,
329
337
  },
330
338
  },
339
+ {
340
+ id: 'flux-2-pro',
341
+ name: 'FLUX.2 Pro',
342
+ released: '2025-12',
343
+ ...bflImage,
344
+ cost: { type: 'per-image', perImage: 0.03 },
345
+ features: {
346
+ editing: true,
347
+ inpainting: false,
348
+ aspectRatios: fluxAspectRatios,
349
+ seed: true,
350
+ multipleImages: false,
351
+ },
352
+ },
353
+ {
354
+ id: 'flux-2-max',
355
+ name: 'FLUX.2 Max',
356
+ released: '2025-12',
357
+ ...bflImage,
358
+ cost: { type: 'per-image', perImage: 0.07 },
359
+ features: {
360
+ editing: true,
361
+ inpainting: false,
362
+ aspectRatios: fluxAspectRatios,
363
+ seed: true,
364
+ multipleImages: false,
365
+ },
366
+ },
367
+ {
368
+ id: 'flux-2-flex',
369
+ name: 'FLUX.2 Flex',
370
+ released: '2025-12',
371
+ ...bflImage,
372
+ cost: { type: 'per-image', perImage: 0.05 },
373
+ features: {
374
+ editing: true,
375
+ inpainting: false,
376
+ aspectRatios: fluxAspectRatios,
377
+ seed: true,
378
+ multipleImages: false,
379
+ },
380
+ },
381
+ {
382
+ id: 'flux-2-klein-9b',
383
+ name: 'FLUX.2 Klein 9B',
384
+ released: '2025-12',
385
+ ...bflImage,
386
+ cost: { type: 'per-image', perImage: 0.015 },
387
+ features: {
388
+ editing: true,
389
+ inpainting: false,
390
+ aspectRatios: fluxAspectRatios,
391
+ seed: true,
392
+ multipleImages: false,
393
+ },
394
+ },
395
+ {
396
+ id: 'flux-2-klein-4b',
397
+ name: 'FLUX.2 Klein 4B',
398
+ released: '2025-12',
399
+ ...bflImage,
400
+ cost: { type: 'per-image', perImage: 0.014 },
401
+ features: {
402
+ editing: true,
403
+ inpainting: false,
404
+ aspectRatios: fluxAspectRatios,
405
+ seed: true,
406
+ multipleImages: false,
407
+ },
408
+ },
331
409
  // ── Recraft (AI Gateway) ───────────────────────────────────────────────
332
410
  {
333
411
  id: 'recraft-v2',
@@ -385,6 +463,108 @@ export const CATALOG = [
385
463
  multipleImages: false,
386
464
  },
387
465
  },
466
+ {
467
+ id: 'recraft-v4.1',
468
+ name: 'Recraft v4.1',
469
+ released: '2026-05',
470
+ ...recraftImage,
471
+ cost: { type: 'per-image', perImage: 0.04 },
472
+ features: {
473
+ editing: false,
474
+ inpainting: false,
475
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
476
+ seed: false,
477
+ multipleImages: false,
478
+ },
479
+ },
480
+ {
481
+ id: 'recraft-v4.1-pro',
482
+ name: 'Recraft v4.1 Pro',
483
+ released: '2026-05',
484
+ ...recraftImage,
485
+ cost: { type: 'per-image', perImage: 0.25 },
486
+ features: {
487
+ editing: false,
488
+ inpainting: false,
489
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
490
+ seed: false,
491
+ multipleImages: false,
492
+ },
493
+ },
494
+ {
495
+ id: 'recraft-v4.1-utility',
496
+ name: 'Recraft v4.1 Utility',
497
+ released: '2026-05',
498
+ ...recraftImage,
499
+ cost: { type: 'per-image', perImage: 0.04 },
500
+ features: {
501
+ editing: false,
502
+ inpainting: false,
503
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
504
+ seed: false,
505
+ multipleImages: false,
506
+ },
507
+ },
508
+ {
509
+ id: 'recraft-v4.1-utility-pro',
510
+ name: 'Recraft v4.1 Utility Pro',
511
+ released: '2026-05',
512
+ ...recraftImage,
513
+ cost: { type: 'per-image', perImage: 0.25 },
514
+ features: {
515
+ editing: false,
516
+ inpainting: false,
517
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
518
+ seed: false,
519
+ multipleImages: false,
520
+ },
521
+ },
522
+ // ── ByteDance Seedream (AI Gateway) ────────────────────────────────────
523
+ {
524
+ id: 'seedream-5.0-lite',
525
+ name: 'Seedream 5.0 Lite',
526
+ released: '2026-01',
527
+ provider: 'bytedance',
528
+ strategy: 'image',
529
+ cost: { type: 'per-image', perImage: 0.035 },
530
+ features: {
531
+ editing: false,
532
+ inpainting: false,
533
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
534
+ seed: false,
535
+ multipleImages: false,
536
+ },
537
+ },
538
+ {
539
+ id: 'seedream-4.5',
540
+ name: 'Seedream 4.5',
541
+ released: '2025-11',
542
+ provider: 'bytedance',
543
+ strategy: 'image',
544
+ cost: { type: 'per-image', perImage: 0.04 },
545
+ features: {
546
+ editing: true,
547
+ inpainting: false,
548
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
549
+ seed: false,
550
+ multipleImages: false,
551
+ },
552
+ },
553
+ {
554
+ id: 'seedream-4.0',
555
+ name: 'Seedream 4.0',
556
+ released: '2025-08',
557
+ provider: 'bytedance',
558
+ strategy: 'image',
559
+ cost: { type: 'per-image', perImage: 0.03 },
560
+ features: {
561
+ editing: true,
562
+ inpainting: false,
563
+ aspectRatios: ['1:1', '3:4', '4:3', '9:16', '16:9'],
564
+ seed: false,
565
+ multipleImages: false,
566
+ },
567
+ },
388
568
  // ── xAI (AI Gateway) ────────────────────────────────────────────────────
389
569
  {
390
570
  id: 'grok-imagine-image',
@@ -401,11 +581,11 @@ export const CATALOG = [
401
581
  },
402
582
  },
403
583
  {
404
- id: 'grok-imagine-image-pro',
405
- name: 'Grok Imagine Image Pro',
406
- released: '2026-03',
584
+ id: 'grok-imagine-image-quality',
585
+ name: 'Grok Imagine Image Quality',
586
+ released: '2026-04',
407
587
  ...xaiImage,
408
- cost: { type: 'per-image', perImage: 0.07 },
588
+ cost: { type: 'per-image', perImage: 0.05 },
409
589
  features: {
410
590
  editing: true,
411
591
  inpainting: false,
@@ -1247,6 +1427,111 @@ export const VIDEO_CATALOG = [
1247
1427
  },
1248
1428
  providerOptions: xaiVideoProviderOptions,
1249
1429
  },
1430
+ {
1431
+ id: 'grok-imagine-video-1.5',
1432
+ name: 'Grok Imagine Video 1.5',
1433
+ provider: 'xai',
1434
+ strategy: 'video',
1435
+ released: '2026-05',
1436
+ cost: {
1437
+ type: 'per-video-second',
1438
+ defaultDurationSec: 5,
1439
+ tiers: [
1440
+ { resolution: '480p', costPerSecond: 0.08 },
1441
+ { resolution: '720p', costPerSecond: 0.14 },
1442
+ ],
1443
+ },
1444
+ features: {
1445
+ textToVideo: false,
1446
+ imageToVideo: true,
1447
+ capabilities: ['i2v'],
1448
+ aspectRatios: ['1:1', '16:9', '9:16', '4:3', '3:4', '3:2', '2:3'],
1449
+ resolutions: ['480p', '720p'],
1450
+ durationRangeSec: { min: 1, max: 15 },
1451
+ seed: false,
1452
+ multipleVideos: false,
1453
+ },
1454
+ providerOptions: xaiVideoProviderOptions,
1455
+ },
1456
+ // ── Kling (AI Gateway) ──────────────────────────────────────────────
1457
+ // Source: https://ai-gateway.vercel.sh/v1/models (klingai/* entries)
1458
+ {
1459
+ id: 'kling-v3.0-t2v',
1460
+ name: 'Kling v3.0 T2V',
1461
+ provider: 'klingai',
1462
+ strategy: 'video',
1463
+ released: '2026-02',
1464
+ cost: {
1465
+ type: 'per-video-second',
1466
+ defaultDurationSec: 5,
1467
+ tiers: [
1468
+ { mode: 'std', audio: false, costPerSecond: 0.168 },
1469
+ { mode: 'std', audio: true, costPerSecond: 0.308 },
1470
+ { mode: 'pro', audio: false, costPerSecond: 0.224 },
1471
+ { mode: 'pro', audio: true, costPerSecond: 0.392 },
1472
+ ],
1473
+ },
1474
+ features: {
1475
+ textToVideo: true,
1476
+ imageToVideo: false,
1477
+ capabilities: ['t2v'],
1478
+ aspectRatios: ['16:9', '9:16', '1:1'],
1479
+ resolutions: ['720p', '1080p', '4k'],
1480
+ durationRangeSec: { min: 3, max: 15 },
1481
+ seed: false,
1482
+ multipleVideos: false,
1483
+ },
1484
+ },
1485
+ {
1486
+ id: 'kling-v3.0-i2v',
1487
+ name: 'Kling v3.0 I2V',
1488
+ provider: 'klingai',
1489
+ strategy: 'video',
1490
+ released: '2026-02',
1491
+ cost: {
1492
+ type: 'per-video-second',
1493
+ defaultDurationSec: 5,
1494
+ tiers: [
1495
+ { mode: 'std', audio: false, costPerSecond: 0.168 },
1496
+ { mode: 'std', audio: true, costPerSecond: 0.308 },
1497
+ { mode: 'pro', audio: false, costPerSecond: 0.224 },
1498
+ { mode: 'pro', audio: true, costPerSecond: 0.392 },
1499
+ ],
1500
+ },
1501
+ features: {
1502
+ textToVideo: false,
1503
+ imageToVideo: true,
1504
+ capabilities: ['i2v', 'r2v'],
1505
+ aspectRatios: ['16:9', '9:16', '1:1'],
1506
+ resolutions: ['720p', '1080p', '4k'],
1507
+ durationRangeSec: { min: 3, max: 15 },
1508
+ seed: false,
1509
+ multipleVideos: false,
1510
+ },
1511
+ },
1512
+ {
1513
+ id: 'kling-v3.0-motion-control',
1514
+ name: 'Kling v3.0 Motion Control',
1515
+ provider: 'klingai',
1516
+ strategy: 'video',
1517
+ released: '2026-03',
1518
+ cost: {
1519
+ type: 'per-video-second',
1520
+ defaultDurationSec: 5,
1521
+ tiers: [
1522
+ { mode: 'std', costPerSecond: 0.126 },
1523
+ { mode: 'pro', costPerSecond: 0.168 },
1524
+ ],
1525
+ },
1526
+ features: {
1527
+ textToVideo: true,
1528
+ imageToVideo: false,
1529
+ capabilities: ['t2v', 'motion-control'],
1530
+ aspectRatios: ['16:9', '9:16', '1:1'],
1531
+ seed: false,
1532
+ multipleVideos: false,
1533
+ },
1534
+ },
1250
1535
  {
1251
1536
  id: 'kling-v2.6-t2v',
1252
1537
  name: 'Kling v2.6 T2V',
@@ -1272,6 +1557,102 @@ export const VIDEO_CATALOG = [
1272
1557
  multipleVideos: false,
1273
1558
  },
1274
1559
  },
1560
+ {
1561
+ id: 'kling-v2.6-i2v',
1562
+ name: 'Kling v2.6 I2V',
1563
+ provider: 'klingai',
1564
+ strategy: 'video',
1565
+ released: '2025-12',
1566
+ cost: {
1567
+ type: 'per-video-second',
1568
+ defaultDurationSec: 5,
1569
+ tiers: [
1570
+ { mode: 'std', costPerSecond: 0.042 },
1571
+ { mode: 'pro', audio: false, costPerSecond: 0.07 },
1572
+ { mode: 'pro', audio: true, costPerSecond: 0.14 },
1573
+ ],
1574
+ },
1575
+ features: {
1576
+ textToVideo: false,
1577
+ imageToVideo: true,
1578
+ capabilities: ['i2v'],
1579
+ aspectRatios: ['16:9', '9:16', '1:1'],
1580
+ resolutions: ['720p', '1080p'],
1581
+ durationRangeSec: { min: 5, max: 10 },
1582
+ seed: false,
1583
+ multipleVideos: false,
1584
+ },
1585
+ },
1586
+ {
1587
+ id: 'kling-v2.6-motion-control',
1588
+ name: 'Kling v2.6 Motion Control',
1589
+ provider: 'klingai',
1590
+ strategy: 'video',
1591
+ released: '2025-12',
1592
+ cost: {
1593
+ type: 'per-video-second',
1594
+ defaultDurationSec: 5,
1595
+ tiers: [
1596
+ { mode: 'std', costPerSecond: 0.07 },
1597
+ { mode: 'pro', costPerSecond: 0.112 },
1598
+ ],
1599
+ },
1600
+ features: {
1601
+ textToVideo: true,
1602
+ imageToVideo: false,
1603
+ capabilities: ['t2v', 'motion-control'],
1604
+ aspectRatios: commonVideoRatios,
1605
+ seed: false,
1606
+ multipleVideos: false,
1607
+ },
1608
+ },
1609
+ {
1610
+ id: 'kling-v2.5-turbo-t2v',
1611
+ name: 'Kling v2.5 Turbo T2V',
1612
+ provider: 'klingai',
1613
+ strategy: 'video',
1614
+ released: '2025-09',
1615
+ cost: {
1616
+ type: 'per-video-second',
1617
+ defaultDurationSec: 5,
1618
+ tiers: [
1619
+ { mode: 'std', costPerSecond: 0.042 },
1620
+ { mode: 'pro', costPerSecond: 0.07 },
1621
+ ],
1622
+ },
1623
+ features: {
1624
+ textToVideo: true,
1625
+ imageToVideo: false,
1626
+ capabilities: ['t2v'],
1627
+ aspectRatios: commonVideoRatios,
1628
+ seed: false,
1629
+ multipleVideos: false,
1630
+ },
1631
+ },
1632
+ {
1633
+ id: 'kling-v2.5-turbo-i2v',
1634
+ name: 'Kling v2.5 Turbo I2V',
1635
+ provider: 'klingai',
1636
+ strategy: 'video',
1637
+ released: '2025-09',
1638
+ cost: {
1639
+ type: 'per-video-second',
1640
+ defaultDurationSec: 5,
1641
+ tiers: [
1642
+ { mode: 'std', costPerSecond: 0.042 },
1643
+ { mode: 'pro', costPerSecond: 0.07 },
1644
+ ],
1645
+ },
1646
+ features: {
1647
+ textToVideo: false,
1648
+ imageToVideo: true,
1649
+ capabilities: ['i2v'],
1650
+ aspectRatios: commonVideoRatios,
1651
+ seed: false,
1652
+ multipleVideos: false,
1653
+ },
1654
+ },
1655
+ // ── Alibaba Wan (AI Gateway) ──────────────────────────────────────────
1275
1656
  {
1276
1657
  id: 'wan-v2.6-t2v',
1277
1658
  name: 'Wan v2.6 T2V',
@@ -1296,6 +1677,331 @@ export const VIDEO_CATALOG = [
1296
1677
  multipleVideos: false,
1297
1678
  },
1298
1679
  },
1680
+ {
1681
+ id: 'wan-v2.6-i2v',
1682
+ name: 'Wan v2.6 I2V',
1683
+ provider: 'alibaba',
1684
+ strategy: 'video',
1685
+ released: '2025-12',
1686
+ cost: {
1687
+ type: 'per-video-second',
1688
+ defaultDurationSec: 5,
1689
+ tiers: [
1690
+ { resolution: '720p', costPerSecond: 0.1 },
1691
+ { resolution: '1080p', costPerSecond: 0.15 },
1692
+ ],
1693
+ },
1694
+ features: {
1695
+ textToVideo: false,
1696
+ imageToVideo: true,
1697
+ capabilities: ['i2v'],
1698
+ aspectRatios: commonVideoRatios,
1699
+ resolutions: ['720p', '1080p'],
1700
+ durationRangeSec: { min: 2, max: 15 },
1701
+ seed: false,
1702
+ multipleVideos: false,
1703
+ },
1704
+ },
1705
+ {
1706
+ id: 'wan-v2.6-i2v-flash',
1707
+ name: 'Wan v2.6 I2V Flash',
1708
+ provider: 'alibaba',
1709
+ strategy: 'video',
1710
+ released: '2025-12',
1711
+ cost: {
1712
+ type: 'per-video-second',
1713
+ defaultDurationSec: 5,
1714
+ tiers: [
1715
+ { resolution: '720p', costPerSecond: 0.05 },
1716
+ { resolution: '1080p', costPerSecond: 0.075 },
1717
+ ],
1718
+ },
1719
+ features: {
1720
+ textToVideo: false,
1721
+ imageToVideo: true,
1722
+ capabilities: ['i2v'],
1723
+ aspectRatios: commonVideoRatios,
1724
+ resolutions: ['720p', '1080p'],
1725
+ durationRangeSec: { min: 2, max: 15 },
1726
+ seed: false,
1727
+ multipleVideos: false,
1728
+ },
1729
+ },
1730
+ {
1731
+ id: 'wan-v2.6-r2v',
1732
+ name: 'Wan v2.6 R2V',
1733
+ provider: 'alibaba',
1734
+ strategy: 'video',
1735
+ released: '2025-12',
1736
+ cost: {
1737
+ type: 'per-video-second',
1738
+ defaultDurationSec: 5,
1739
+ tiers: [
1740
+ { resolution: '720p', costPerSecond: 0.1 },
1741
+ { resolution: '1080p', costPerSecond: 0.15 },
1742
+ ],
1743
+ },
1744
+ features: {
1745
+ textToVideo: false,
1746
+ imageToVideo: false,
1747
+ capabilities: ['r2v'],
1748
+ aspectRatios: commonVideoRatios,
1749
+ resolutions: ['720p', '1080p'],
1750
+ durationRangeSec: { min: 2, max: 10 },
1751
+ seed: false,
1752
+ multipleVideos: false,
1753
+ },
1754
+ },
1755
+ {
1756
+ id: 'wan-v2.6-r2v-flash',
1757
+ name: 'Wan v2.6 R2V Flash',
1758
+ provider: 'alibaba',
1759
+ strategy: 'video',
1760
+ released: '2025-12',
1761
+ cost: {
1762
+ type: 'per-video-second',
1763
+ defaultDurationSec: 5,
1764
+ tiers: [
1765
+ { resolution: '720p', costPerSecond: 0.05 },
1766
+ { resolution: '1080p', costPerSecond: 0.075 },
1767
+ ],
1768
+ },
1769
+ features: {
1770
+ textToVideo: false,
1771
+ imageToVideo: false,
1772
+ capabilities: ['r2v'],
1773
+ aspectRatios: commonVideoRatios,
1774
+ resolutions: ['720p', '1080p'],
1775
+ durationRangeSec: { min: 2, max: 10 },
1776
+ seed: false,
1777
+ multipleVideos: false,
1778
+ },
1779
+ },
1780
+ {
1781
+ id: 'wan-v2.5-t2v-preview',
1782
+ name: 'Wan v2.5 T2V Preview',
1783
+ provider: 'alibaba',
1784
+ strategy: 'video',
1785
+ released: '2025-09',
1786
+ cost: {
1787
+ type: 'per-video-second',
1788
+ defaultDurationSec: 5,
1789
+ tiers: [
1790
+ { resolution: '480p', costPerSecond: 0.05 },
1791
+ { resolution: '720p', costPerSecond: 0.1 },
1792
+ { resolution: '1080p', costPerSecond: 0.15 },
1793
+ ],
1794
+ },
1795
+ features: {
1796
+ textToVideo: true,
1797
+ imageToVideo: false,
1798
+ capabilities: ['t2v'],
1799
+ resolutions: ['480p', '720p', '1080p'],
1800
+ seed: false,
1801
+ multipleVideos: false,
1802
+ },
1803
+ },
1804
+ // ── ByteDance Seedance (AI Gateway) ─────────────────────────────────
1805
+ // Source: https://ai-gateway.vercel.sh/v1/models/bytedance/seedance-2.0/endpoints
1806
+ // Pricing from capabilities.pricing.variants (per-second, resolution-based).
1807
+ // Seedance 2.0 uses C-Dense unified multimodal architecture: text, image, audio, video inputs.
1808
+ // Reference images for r2v must be passed as URLs (max 9 images, 300-6000px, max 30MB each).
1809
+ // Reference images in prompts use @Image1, @Image2, etc. syntax.
1810
+ {
1811
+ id: 'seedance-2.0',
1812
+ name: 'Seedance 2.0',
1813
+ description: 'ByteDance C-Dense multimodal video model. Supports text, image, audio, and video inputs. ' +
1814
+ 'Native audio generation with lip-sync. Up to 720p, 4-15s.',
1815
+ provider: 'bytedance',
1816
+ strategy: 'video',
1817
+ released: '2026-04',
1818
+ cost: {
1819
+ type: 'per-video-second',
1820
+ defaultDurationSec: 8,
1821
+ tiers: [
1822
+ { resolution: '480p', hasVideoInput: false, costPerSecond: 0.07 },
1823
+ { resolution: '480p', hasVideoInput: true, costPerSecond: 0.12 },
1824
+ { resolution: '720p', hasVideoInput: false, costPerSecond: 0.15 },
1825
+ { resolution: '720p', hasVideoInput: true, costPerSecond: 0.26 },
1826
+ ],
1827
+ },
1828
+ features: {
1829
+ textToVideo: true,
1830
+ imageToVideo: true,
1831
+ capabilities: ['t2v', 'i2v', 'r2v'],
1832
+ aspectRatios: ['16:9', '4:3', '1:1', '3:4', '9:16', '21:9'],
1833
+ resolutions: ['480p', '720p'],
1834
+ durationRangeSec: { min: 4, max: 15 },
1835
+ seed: false,
1836
+ multipleVideos: false,
1837
+ },
1838
+ providerOptions: bytedanceVideoProviderOptions,
1839
+ },
1840
+ {
1841
+ id: 'seedance-2.0-fast',
1842
+ name: 'Seedance 2.0 Fast',
1843
+ description: 'Faster variant of Seedance 2.0 with same capabilities but lower latency and cost.',
1844
+ provider: 'bytedance',
1845
+ strategy: 'video',
1846
+ released: '2026-04',
1847
+ cost: {
1848
+ type: 'per-video-second',
1849
+ defaultDurationSec: 8,
1850
+ tiers: [
1851
+ { resolution: '480p', hasVideoInput: false, costPerSecond: 0.05 },
1852
+ { resolution: '480p', hasVideoInput: true, costPerSecond: 0.09 },
1853
+ { resolution: '720p', hasVideoInput: false, costPerSecond: 0.12 },
1854
+ { resolution: '720p', hasVideoInput: true, costPerSecond: 0.20 },
1855
+ ],
1856
+ },
1857
+ providerOptions: bytedanceVideoProviderOptions,
1858
+ features: {
1859
+ textToVideo: true,
1860
+ imageToVideo: true,
1861
+ capabilities: ['t2v', 'i2v', 'r2v'],
1862
+ aspectRatios: ['16:9', '4:3', '1:1', '3:4', '9:16', '21:9'],
1863
+ resolutions: ['480p', '720p'],
1864
+ durationRangeSec: { min: 4, max: 15 },
1865
+ seed: false,
1866
+ multipleVideos: false,
1867
+ },
1868
+ },
1869
+ {
1870
+ id: 'seedance-v1.5-pro',
1871
+ name: 'Seedance v1.5 Pro',
1872
+ description: 'V2A native audio-video joint generation. Synchronized audio output for professional video creation.',
1873
+ provider: 'bytedance',
1874
+ strategy: 'video',
1875
+ released: '2025-12',
1876
+ cost: {
1877
+ type: 'per-video-second',
1878
+ defaultDurationSec: 5,
1879
+ tiers: [
1880
+ { resolution: '480p', audio: false, costPerSecond: 0.0121 },
1881
+ { resolution: '480p', audio: true, costPerSecond: 0.0241 },
1882
+ { resolution: '720p', audio: false, costPerSecond: 0.0259 },
1883
+ { resolution: '720p', audio: true, costPerSecond: 0.0518 },
1884
+ { resolution: '1080p', audio: false, costPerSecond: 0.0583 },
1885
+ { resolution: '1080p', audio: true, costPerSecond: 0.1166 },
1886
+ ],
1887
+ },
1888
+ features: {
1889
+ textToVideo: true,
1890
+ imageToVideo: true,
1891
+ capabilities: ['t2v', 'i2v'],
1892
+ aspectRatios: commonVideoRatios,
1893
+ resolutions: ['480p', '720p', '1080p'],
1894
+ seed: false,
1895
+ multipleVideos: false,
1896
+ },
1897
+ },
1898
+ {
1899
+ id: 'seedance-v1.0-pro',
1900
+ name: 'Seedance v1.0 Pro',
1901
+ description: 'Multi-shot storytelling model. Smooth, detailed, cinematic 1080p HD videos.',
1902
+ provider: 'bytedance',
1903
+ strategy: 'video',
1904
+ released: '2025-06',
1905
+ cost: {
1906
+ type: 'per-video-second',
1907
+ defaultDurationSec: 5,
1908
+ tiers: [
1909
+ { resolution: '480p', costPerSecond: 0.0243 },
1910
+ { resolution: '720p', costPerSecond: 0.0515 },
1911
+ { resolution: '1080p', costPerSecond: 0.1224 },
1912
+ ],
1913
+ },
1914
+ features: {
1915
+ textToVideo: true,
1916
+ imageToVideo: true,
1917
+ capabilities: ['t2v', 'i2v'],
1918
+ aspectRatios: commonVideoRatios,
1919
+ resolutions: ['480p', '720p', '1080p'],
1920
+ seed: false,
1921
+ multipleVideos: false,
1922
+ },
1923
+ },
1924
+ {
1925
+ id: 'seedance-v1.0-pro-fast',
1926
+ name: 'Seedance v1.0 Pro Fast',
1927
+ description: 'Cost-efficient fast variant of Seedance 1.0 Pro.',
1928
+ provider: 'bytedance',
1929
+ strategy: 'video',
1930
+ released: '2025-10',
1931
+ cost: {
1932
+ type: 'per-video-second',
1933
+ defaultDurationSec: 5,
1934
+ tiers: [
1935
+ { resolution: '480p', costPerSecond: 0.0097 },
1936
+ { resolution: '720p', costPerSecond: 0.0206 },
1937
+ { resolution: '1080p', costPerSecond: 0.049 },
1938
+ ],
1939
+ },
1940
+ features: {
1941
+ textToVideo: true,
1942
+ imageToVideo: true,
1943
+ capabilities: ['t2v', 'i2v'],
1944
+ aspectRatios: commonVideoRatios,
1945
+ resolutions: ['480p', '720p', '1080p'],
1946
+ seed: false,
1947
+ multipleVideos: false,
1948
+ },
1949
+ },
1950
+ {
1951
+ id: 'seedance-v1.0-lite-t2v',
1952
+ name: 'Seedance v1.0 Lite T2V',
1953
+ description: 'Lightweight text-to-video model. Balances quality and speed with strong semantic understanding.',
1954
+ provider: 'bytedance',
1955
+ strategy: 'video',
1956
+ released: '2025-06',
1957
+ cost: {
1958
+ type: 'per-video-second',
1959
+ defaultDurationSec: 5,
1960
+ tiers: [
1961
+ { resolution: '480p', costPerSecond: 0.0175 },
1962
+ { resolution: '720p', costPerSecond: 0.0371 },
1963
+ { resolution: '1080p', costPerSecond: 0.0881 },
1964
+ ],
1965
+ },
1966
+ features: {
1967
+ textToVideo: true,
1968
+ imageToVideo: false,
1969
+ capabilities: ['t2v'],
1970
+ aspectRatios: commonVideoRatios,
1971
+ resolutions: ['480p', '720p', '1080p'],
1972
+ durationRangeSec: { min: 3, max: 12 },
1973
+ seed: false,
1974
+ multipleVideos: false,
1975
+ },
1976
+ },
1977
+ {
1978
+ id: 'seedance-v1.0-lite-i2v',
1979
+ name: 'Seedance v1.0 Lite I2V',
1980
+ description: 'Lightweight image-to-video model. Generates video from image/text with reference image support.',
1981
+ provider: 'bytedance',
1982
+ strategy: 'video',
1983
+ released: '2025-06',
1984
+ cost: {
1985
+ type: 'per-video-second',
1986
+ defaultDurationSec: 5,
1987
+ tiers: [
1988
+ { resolution: '480p', costPerSecond: 0.0175 },
1989
+ { resolution: '720p', costPerSecond: 0.0371 },
1990
+ { resolution: '1080p', costPerSecond: 0.0881 },
1991
+ ],
1992
+ },
1993
+ features: {
1994
+ textToVideo: false,
1995
+ imageToVideo: true,
1996
+ capabilities: ['i2v', 'r2v'],
1997
+ aspectRatios: commonVideoRatios,
1998
+ resolutions: ['480p', '720p', '1080p'],
1999
+ durationRangeSec: { min: 3, max: 12 },
2000
+ seed: false,
2001
+ multipleVideos: false,
2002
+ },
2003
+ providerOptions: bytedanceVideoProviderOptions,
2004
+ },
1299
2005
  // ── Fal video models ─────────────────────────────────────────────────
1300
2006
  {
1301
2007
  id: 'luma-ray-2',
@@ -1423,3 +2129,7 @@ export function findVideoModel(id) {
1423
2129
  export function findAnyModel(id) {
1424
2130
  return imageCatalogIndex.get(id) ?? videoCatalogIndex.get(id);
1425
2131
  }
2132
+ // Re-export speech catalog for convenience in CLI code that needs all catalogs.
2133
+ export { SPEECH_CATALOG, findSpeechModel } from './speech-catalog.js';
2134
+ // Re-export transcription catalog.
2135
+ export { TRANSCRIPTION_CATALOG, findTranscriptionModel } from './transcription-catalog.js';