@shop-os/modelkit 0.1.6 → 0.1.7

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.
package/dist/index.js CHANGED
@@ -83,6 +83,7 @@ var Catalog = class _Catalog {
83
83
 
84
84
  // src/catalog/image.ts
85
85
  var IMAGE_USAGE = { unit: "images", modality: "IMAGE" };
86
+ var IMAGE_GENERATE_EDIT = { imageGenerate: true, imageEdit: true };
86
87
  var GEMINI_RATIOS = [
87
88
  "1:1",
88
89
  "2:3",
@@ -96,7 +97,7 @@ var GEMINI_RATIOS = [
96
97
  "5:4",
97
98
  "adaptive"
98
99
  ];
99
- function geminiImage(id, label, aliases, sizes) {
100
+ function geminiImage(id, label, aliases, sizes, display) {
100
101
  const model = {
101
102
  id,
102
103
  aliases,
@@ -112,22 +113,40 @@ function geminiImage(id, label, aliases, sizes) {
112
113
  },
113
114
  defaults: { size: "1K", aspectRatio: "1:1" },
114
115
  usage: { ...IMAGE_USAGE },
115
- pricingKind: "image_size"
116
+ pricingKind: "image_size",
117
+ display,
118
+ capabilities: { ...IMAGE_GENERATE_EDIT }
116
119
  };
117
120
  return model;
118
121
  }
119
122
  var IMAGE_MODELS = [
120
- geminiImage("gemini-3-pro-image-preview", "Nano Banana Pro", ["nb-pro"], ["1K", "2K", "4K"]),
123
+ geminiImage("gemini-3-pro-image-preview", "Nano Banana Pro", ["nb-pro"], ["1K", "2K", "4K"], {
124
+ provider: "google",
125
+ description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
126
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
127
+ }),
121
128
  geminiImage(
122
129
  "gemini-3.1-flash-image-preview",
123
130
  "Nano Banana Flash",
124
131
  ["nb-2"],
125
132
  // Flash 3.1 is the only Gemini image model with the 512 tier.
126
- ["512", "1K", "2K", "4K"]
133
+ ["512", "1K", "2K", "4K"],
134
+ {
135
+ provider: "google",
136
+ description: "Generate high-quality images at speed. Perfect for brainstorming, moodboards, concept testing, creative exploration, and large batch workflows.",
137
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
138
+ }
127
139
  ),
128
- geminiImage("gemini-3.1-flash-lite-image", "Nano Banana Lite", ["nb-lite"], ["1K"]),
140
+ geminiImage("gemini-3.1-flash-lite-image", "Nano Banana Lite", ["nb-lite"], ["1K"], {
141
+ provider: "google",
142
+ description: "The fastest and most affordable image model. Ideal for rapid drafts, bulk exploration, and iterative concept testing at 1K resolution.",
143
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
144
+ }),
129
145
  // trigger-workflows validates 1K only; pricing seeds 2K/4K rows so allow all three.
130
- geminiImage("gemini-2.5-flash-image", "Gemini 2.5 Flash Image", [], ["1K", "2K", "4K"]),
146
+ geminiImage("gemini-2.5-flash-image", "Gemini 2.5 Flash Image", [], ["1K", "2K", "4K"], {
147
+ provider: "google",
148
+ description: "Nano Banana (legacy Gemini 2.5 Flash Image) native image generation and editing model for high-volume, low-latency creative workflows."
149
+ }),
131
150
  {
132
151
  // Cowork "auto" lets OpenAI pick the size; the canonical equivalent is adaptive.
133
152
  id: "gpt-image-2",
@@ -145,7 +164,13 @@ var IMAGE_MODELS = [
145
164
  },
146
165
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
147
166
  usage: { ...IMAGE_USAGE },
148
- pricingKind: "image_size"
167
+ pricingKind: "image_size",
168
+ display: {
169
+ provider: "openai",
170
+ description: "The most capable model for image editing and complex creative instructions. Excels at text rendering, visual consistency, design generation, and iterative refinement.",
171
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/1204b494-8962-4f7f-af5e-699a8bdc98e3_compressed.png"
172
+ },
173
+ capabilities: { ...IMAGE_GENERATE_EDIT }
149
174
  },
150
175
  {
151
176
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -164,7 +189,12 @@ var IMAGE_MODELS = [
164
189
  },
165
190
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
166
191
  usage: { ...IMAGE_USAGE },
167
- pricingKind: "image_size"
192
+ pricingKind: "image_size",
193
+ display: {
194
+ provider: "openai",
195
+ description: "OpenAI's most capable GPT Image 2.5 tier, built for editing precision; takes text and image input and outputs images in low, medium, high, xhigh, or max quality."
196
+ },
197
+ capabilities: { ...IMAGE_GENERATE_EDIT }
168
198
  },
169
199
  {
170
200
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -183,7 +213,12 @@ var IMAGE_MODELS = [
183
213
  },
184
214
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
185
215
  usage: { ...IMAGE_USAGE },
186
- pricingKind: "image_size"
216
+ pricingKind: "image_size",
217
+ display: {
218
+ provider: "openai",
219
+ description: "OpenAI's fastest GPT Image 2.5 tier for high-quality everyday image generation and editing; takes text and image input and outputs images."
220
+ },
221
+ capabilities: { ...IMAGE_GENERATE_EDIT }
187
222
  },
188
223
  {
189
224
  // Cowork allows 7 ratios; trigger-workflows allows 9 (adds 3:2, 9:21, drops 4:5/5:4).
@@ -215,7 +250,13 @@ var IMAGE_MODELS = [
215
250
  },
216
251
  defaults: { size: "1K", aspectRatio: "1:1", outputFormat: "png", count: 1 },
217
252
  usage: { ...IMAGE_USAGE },
218
- pricingKind: "image_size"
253
+ pricingKind: "image_size",
254
+ display: {
255
+ provider: "meta",
256
+ description: "Meta's image model with built-in world knowledge and strong prompt adherence. Great for concept-rich scenes, realistic compositions, and reference-guided edits.",
257
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/characters/1787909065794-k9a7zz.png"
258
+ },
259
+ capabilities: { ...IMAGE_GENERATE_EDIT }
219
260
  },
220
261
  {
221
262
  id: "seedream-5-0-pro",
@@ -235,7 +276,12 @@ var IMAGE_MODELS = [
235
276
  },
236
277
  defaults: { size: "1K", aspectRatio: "1:1" },
237
278
  usage: { ...IMAGE_USAGE },
238
- pricingKind: "image_size"
279
+ pricingKind: "image_size",
280
+ display: {
281
+ provider: "bytedance",
282
+ description: "ByteDance Seedream 5.0 Pro text-to-image and multi-reference image-to-image (up to 10 inputs) with region editing; outputs 1K, 1.5K, or 2K."
283
+ },
284
+ capabilities: { ...IMAGE_GENERATE_EDIT }
239
285
  },
240
286
  {
241
287
  id: "seedream-4.5",
@@ -267,7 +313,12 @@ var IMAGE_MODELS = [
267
313
  },
268
314
  defaults: { size: "1K", aspectRatio: "1:1" },
269
315
  usage: { ...IMAGE_USAGE },
270
- pricingKind: "image_size"
316
+ pricingKind: "image_size",
317
+ display: {
318
+ provider: "bytedance",
319
+ description: "ByteDance Seedream 4.5 text-to-image and image-to-image with up to 14 reference images and batch image-set generation; outputs 2K or 4K."
320
+ },
321
+ capabilities: { ...IMAGE_GENERATE_EDIT }
271
322
  },
272
323
  {
273
324
  id: "flux-2-pro",
@@ -285,7 +336,12 @@ var IMAGE_MODELS = [
285
336
  },
286
337
  defaults: { size: "1K", aspectRatio: "1:1" },
287
338
  usage: { ...IMAGE_USAGE },
288
- pricingKind: "image_size"
339
+ pricingKind: "image_size",
340
+ display: {
341
+ provider: "black-forest-labs",
342
+ description: "Black Forest Labs FLUX.2 [pro] text-to-image and multi-reference editing model served via Prodia; takes a prompt and up to 8 input images and outputs up to 4096x4096."
343
+ },
344
+ capabilities: { ...IMAGE_GENERATE_EDIT }
289
345
  },
290
346
  {
291
347
  // Prodia's gemini-3-pro jobs take aspect_ratio + resolution (1K/2K/4K), not
@@ -306,7 +362,12 @@ var IMAGE_MODELS = [
306
362
  },
307
363
  defaults: { size: "1K", aspectRatio: "1:1" },
308
364
  usage: { ...IMAGE_USAGE },
309
- pricingKind: "image_size"
365
+ pricingKind: "image_size",
366
+ display: {
367
+ provider: "google",
368
+ description: "Google Gemini 3 Pro image generation and editing served via Prodia; takes a prompt plus up to 3 reference images and outputs 1K, 2K, or 4K."
369
+ },
370
+ capabilities: { ...IMAGE_GENERATE_EDIT }
310
371
  },
311
372
  {
312
373
  // Nano Banana (img2img.v2) is flat-rate with aspect_ratio only; 3:2, 4:5,
@@ -326,7 +387,12 @@ var IMAGE_MODELS = [
326
387
  },
327
388
  defaults: { size: "1K", aspectRatio: "1:1" },
328
389
  usage: { ...IMAGE_USAGE },
329
- pricingKind: "image_size"
390
+ pricingKind: "image_size",
391
+ display: {
392
+ provider: "google",
393
+ description: "Google Nano Banana image generation and editing served via Prodia; takes a prompt plus 1-3 input images and matches the first input's aspect ratio in roughly 8 seconds."
394
+ },
395
+ capabilities: { ...IMAGE_GENERATE_EDIT }
330
396
  },
331
397
  {
332
398
  // WAN 2.7 takes `images` (up to 9) and a `size` enum whose exact values
@@ -347,7 +413,12 @@ var IMAGE_MODELS = [
347
413
  },
348
414
  defaults: { size: "1K", aspectRatio: "1:1" },
349
415
  usage: { unit: "compute_seconds", modality: "IMAGE" },
350
- pricingKind: "image_size"
416
+ pricingKind: "image_size",
417
+ display: {
418
+ provider: "alibaba",
419
+ description: "Alibaba Wan 2.7 Image Pro text-to-image and image-editing model; takes a prompt plus up to 9 reference images and generates up to 4K (4096x4096)."
420
+ },
421
+ capabilities: { ...IMAGE_GENERATE_EDIT }
351
422
  },
352
423
  {
353
424
  // Qwen Image 2 Pro has aspect_ratio but no size input; resolution follows
@@ -369,7 +440,12 @@ var IMAGE_MODELS = [
369
440
  },
370
441
  defaults: { aspectRatio: "1:1" },
371
442
  usage: { unit: "compute_seconds", modality: "IMAGE" },
372
- pricingKind: "image_size"
443
+ pricingKind: "image_size",
444
+ display: {
445
+ provider: "alibaba",
446
+ description: "Alibaba Qwen Image 2 Pro unified text-to-image and editing model; takes a prompt plus an optional single reference image and generates native 2K output."
447
+ },
448
+ capabilities: { ...IMAGE_GENERATE_EDIT }
373
449
  },
374
450
  {
375
451
  // Qwen Image Edit Plus takes aspect_ratio (or match_input_image) and
@@ -391,7 +467,12 @@ var IMAGE_MODELS = [
391
467
  },
392
468
  defaults: { outputFormat: "png" },
393
469
  usage: { unit: "compute_seconds", modality: "IMAGE" },
394
- pricingKind: "image_size"
470
+ pricingKind: "image_size",
471
+ display: {
472
+ provider: "alibaba",
473
+ description: "Alibaba Qwen Image Edit Plus with Lightning and a skin-retouching LoRA; takes one or more reference images plus an edit prompt and outputs webp, jpg, or png."
474
+ },
475
+ capabilities: { ...IMAGE_GENERATE_EDIT }
395
476
  }
396
477
  ];
397
478
 
@@ -412,7 +493,11 @@ var OTHER_MODELS = [
412
493
  },
413
494
  defaults: {},
414
495
  usage: { unit: "images", modality: "AUDIO" },
415
- pricingKind: "flat"
496
+ pricingKind: "flat",
497
+ display: {
498
+ provider: "google",
499
+ description: "Google Lyria 3 Clip short music clips, loops, and previews; takes text and up to 10 image prompts and returns a fixed 30-second MP3 plus lyrics."
500
+ }
416
501
  },
417
502
  {
418
503
  id: "lyria-3-pro-preview",
@@ -428,7 +513,11 @@ var OTHER_MODELS = [
428
513
  },
429
514
  defaults: {},
430
515
  usage: { unit: "images", modality: "AUDIO" },
431
- pricingKind: "flat"
516
+ pricingKind: "flat",
517
+ display: {
518
+ provider: "google",
519
+ description: "Google Lyria 3 Pro flagship music model for full-length songs with verses, choruses, and bridges; takes text and up to 10 image prompts and returns MP3 plus lyrics."
520
+ }
432
521
  },
433
522
  {
434
523
  id: "google/lyria-2",
@@ -444,7 +533,11 @@ var OTHER_MODELS = [
444
533
  },
445
534
  defaults: {},
446
535
  usage: { unit: "compute_seconds", modality: "AUDIO" },
447
- pricingKind: "flat"
536
+ pricingKind: "flat",
537
+ display: {
538
+ provider: "google",
539
+ description: "Lyria 2 music generation on Replicate; produces 30 seconds of 48 kHz stereo audio from a text prompt."
540
+ }
448
541
  },
449
542
  {
450
543
  id: "mmaudio",
@@ -461,7 +554,11 @@ var OTHER_MODELS = [
461
554
  },
462
555
  defaults: { durationSeconds: 8 },
463
556
  usage: { unit: "compute_seconds", modality: "AUDIO" },
464
- pricingKind: "flat"
557
+ pricingKind: "flat",
558
+ display: {
559
+ provider: "mmaudio",
560
+ description: "MMAudio V2 video-to-audio model on Replicate; takes a source video and prompt and synthesizes synchronized environmental, action, and speech-like audio."
561
+ }
465
562
  },
466
563
  {
467
564
  id: "elevenlabs-music",
@@ -478,7 +575,11 @@ var OTHER_MODELS = [
478
575
  defaults: { durationSeconds: 15, instrumental: true },
479
576
  // Replicate's run() does not report predict_time; billed by generated length.
480
577
  usage: { unit: "seconds", modality: "AUDIO" },
481
- pricingKind: "flat"
578
+ pricingKind: "flat",
579
+ display: {
580
+ provider: "elevenlabs",
581
+ description: "ElevenLabs Music text-to-music on Replicate; generates full songs, instrumental or with vocals, up to 5 minutes long at up to 44.1 kHz."
582
+ }
482
583
  },
483
584
  {
484
585
  id: "topaz",
@@ -495,7 +596,12 @@ var OTHER_MODELS = [
495
596
  },
496
597
  defaults: { scaleFactor: 2, outputFormat: "png" },
497
598
  usage: { unit: "compute_seconds", modality: "IMAGE" },
498
- pricingKind: "flat"
599
+ pricingKind: "flat",
600
+ display: {
601
+ provider: "topaz",
602
+ description: "Topaz Labs AI image upscaling on Replicate; takes one input image and upscales up to 6x with selectable enhancement models and optional face enhancement."
603
+ },
604
+ capabilities: { imageEdit: true }
499
605
  },
500
606
  {
501
607
  id: "bg-remove",
@@ -512,7 +618,12 @@ var OTHER_MODELS = [
512
618
  },
513
619
  defaults: {},
514
620
  usage: { unit: "images", modality: "IMAGE" },
515
- pricingKind: "flat"
621
+ pricingKind: "flat",
622
+ display: {
623
+ provider: "prodia",
624
+ description: "Prodia background removal; takes one input image and returns a PNG cut-out of the subject plus an optional black-and-white mask."
625
+ },
626
+ capabilities: { imageEdit: true }
516
627
  }
517
628
  ];
518
629
 
@@ -535,22 +646,112 @@ function text(id, label, providerModelId, extra) {
535
646
  };
536
647
  }
537
648
  var TEXT_MODELS = [
538
- text("gpt-4o", "GPT-4o", "gpt-4o"),
539
- text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini"),
540
- text("gpt-5.1", "GPT-5.1", "gpt-5.1"),
541
- text("gpt-5.2", "GPT-5.2", "gpt-5.2"),
542
- text("gpt-5.4", "GPT-5.4", "gpt-5.4"),
649
+ text("gpt-4o", "GPT-4o", "gpt-4o", {
650
+ display: {
651
+ provider: "openai",
652
+ description: "OpenAI GPT-4o flagship multimodal model; text and image input, 128K-token context."
653
+ },
654
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
655
+ }),
656
+ text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini", {
657
+ display: {
658
+ provider: "openai",
659
+ description: "OpenAI GPT-4o mini fast, low-cost multimodal model; text and image input, 128K-token context."
660
+ },
661
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
662
+ }),
663
+ text("gpt-5.1", "GPT-5.1", "gpt-5.1", {
664
+ display: {
665
+ provider: "openai",
666
+ description: "OpenAI GPT-5.1 reasoning model for coding and agentic tasks; text and image input, 400K-token context."
667
+ },
668
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
669
+ }),
670
+ text("gpt-5.2", "GPT-5.2", "gpt-5.2", {
671
+ display: {
672
+ provider: "openai",
673
+ description: "OpenAI GPT-5.2 reasoning model for complex professional work; text and image input, 400K-token context."
674
+ },
675
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
676
+ }),
677
+ // 1.05M-token context: https://platform.openai.com/docs/models/gpt-5.4
678
+ text("gpt-5.4", "GPT-5.4", "gpt-5.4", {
679
+ display: {
680
+ provider: "openai",
681
+ description: "OpenAI GPT-5.4 flagship reasoning model; text and image input, 1.05M-token context."
682
+ },
683
+ capabilities: {
684
+ vision: true,
685
+ tools: true,
686
+ structuredOutput: true,
687
+ contextWindow: 105e4
688
+ }
689
+ }),
543
690
  // OpenAI never shipped gpt-5.1-mini or gpt-5.2-mini; callers that still send them get 5.4 mini.
544
691
  text("gpt-5.4-mini", "GPT-5.4 mini", "gpt-5.4-mini", {
545
- aliases: ["gpt-5.1-mini", "gpt-5.2-mini"]
692
+ aliases: ["gpt-5.1-mini", "gpt-5.2-mini"],
693
+ display: {
694
+ provider: "openai",
695
+ description: "OpenAI GPT-5.4 mini efficient reasoning model for high-volume workloads; text and image input, 400K-token context."
696
+ },
697
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
698
+ }),
699
+ text("gpt-5.5", "GPT-5.5", "gpt-5.5", {
700
+ display: {
701
+ provider: "openai",
702
+ description: "OpenAI GPT-5.5 flagship reasoning model for the most complex professional and coding work; text and image input, 1.05M-token context."
703
+ },
704
+ capabilities: {
705
+ vision: true,
706
+ tools: true,
707
+ structuredOutput: true,
708
+ contextWindow: 105e4
709
+ }
710
+ }),
711
+ text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna", {
712
+ display: {
713
+ provider: "openai",
714
+ description: "OpenAI GPT-5.6 Luna cost-optimized tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
715
+ },
716
+ capabilities: {
717
+ vision: true,
718
+ tools: true,
719
+ structuredOutput: true,
720
+ contextWindow: 105e4
721
+ }
722
+ }),
723
+ text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra", {
724
+ display: {
725
+ provider: "openai",
726
+ description: "OpenAI GPT-5.6 Terra balanced tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
727
+ },
728
+ capabilities: {
729
+ vision: true,
730
+ tools: true,
731
+ structuredOutput: true,
732
+ contextWindow: 105e4
733
+ }
734
+ }),
735
+ text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol", {
736
+ display: {
737
+ provider: "openai",
738
+ description: "OpenAI GPT-5.6 Sol flagship tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
739
+ },
740
+ capabilities: {
741
+ vision: true,
742
+ tools: true,
743
+ structuredOutput: true,
744
+ contextWindow: 105e4
745
+ }
546
746
  }),
547
- text("gpt-5.5", "GPT-5.5", "gpt-5.5"),
548
- text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna"),
549
- text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra"),
550
- text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol"),
551
747
  // Library key "claude-sonnet-4.5" maps to the SDK id "claude-sonnet-4-5".
552
748
  text("claude-sonnet-4-5", "Claude Sonnet 4.5", "claude-sonnet-4-5", {
553
- aliases: ["claude-sonnet-4.5", "claude-sonnet-4-5-20250929"]
749
+ aliases: ["claude-sonnet-4.5", "claude-sonnet-4-5-20250929"],
750
+ display: {
751
+ provider: "anthropic",
752
+ description: "Anthropic Claude Sonnet 4.5 (legacy) balanced model; text and image input, 200K-token context."
753
+ },
754
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
554
755
  }),
555
756
  // Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
556
757
  text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
@@ -559,42 +760,280 @@ var TEXT_MODELS = [
559
760
  "claude-sonnet-4",
560
761
  "claude-sonnet-4.0",
561
762
  "claude-sonnet-4-20250514"
562
- ]
763
+ ],
764
+ display: {
765
+ provider: "anthropic",
766
+ description: "Anthropic Claude Sonnet 4.6 (legacy) balanced model; text and image input, 1M-token context."
767
+ },
768
+ capabilities: {
769
+ vision: true,
770
+ tools: true,
771
+ structuredOutput: true,
772
+ contextWindow: 1e6
773
+ }
774
+ }),
775
+ text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5", {
776
+ display: {
777
+ provider: "anthropic",
778
+ description: "Anthropic Claude Sonnet 5 current balanced model; text and image input, 1M-token context."
779
+ },
780
+ capabilities: {
781
+ vision: true,
782
+ tools: true,
783
+ structuredOutput: true,
784
+ contextWindow: 1e6
785
+ }
563
786
  }),
564
- text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5"),
565
787
  text("claude-opus-4-8", "Claude Opus 4.8", "claude-opus-4-8", {
566
- aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"]
788
+ aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"],
789
+ display: {
790
+ provider: "anthropic",
791
+ description: "Anthropic Claude Opus 4.8 (legacy) frontier model; text and image input, 1M-token context."
792
+ },
793
+ capabilities: {
794
+ vision: true,
795
+ tools: true,
796
+ structuredOutput: true,
797
+ contextWindow: 1e6
798
+ }
567
799
  }),
568
800
  text("claude-haiku-4-5", "Claude Haiku 4.5", "claude-haiku-4-5", {
569
- aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"]
801
+ aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"],
802
+ display: {
803
+ provider: "anthropic",
804
+ description: "Anthropic Claude Haiku 4.5 fast model with near-frontier intelligence; text and image input, 200K-token context."
805
+ },
806
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
570
807
  }),
571
808
  text("claude-opus-5", "Claude Opus 5", "claude-opus-5", {
572
- aliases: ["claude-opus-5.0"]
809
+ aliases: ["claude-opus-5.0"],
810
+ display: {
811
+ provider: "anthropic",
812
+ description: "Anthropic Claude Opus 5 current frontier model for agentic coding and enterprise work; text and image input, 1M-token context."
813
+ },
814
+ capabilities: {
815
+ vision: true,
816
+ tools: true,
817
+ structuredOutput: true,
818
+ contextWindow: 1e6
819
+ }
820
+ }),
821
+ text("claude-fable-5", "Claude Fable 5", "claude-fable-5", {
822
+ display: {
823
+ provider: "anthropic",
824
+ description: "Anthropic Claude Fable 5 (legacy) model for demanding reasoning and long-horizon agentic work; text and image input, 1M-token context."
825
+ },
826
+ capabilities: {
827
+ vision: true,
828
+ tools: true,
829
+ structuredOutput: true,
830
+ contextWindow: 1e6
831
+ }
832
+ }),
833
+ text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash", {
834
+ display: {
835
+ provider: "google",
836
+ description: "Google Gemini 2.5 Flash low-latency multimodal model for high-volume reasoning over text, images, video, and audio; 1M-token context."
837
+ },
838
+ capabilities: {
839
+ vision: true,
840
+ tools: true,
841
+ structuredOutput: true,
842
+ contextWindow: 1048576
843
+ }
844
+ }),
845
+ text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro", {
846
+ display: {
847
+ provider: "google",
848
+ description: "Google Gemini 2.5 Pro thinking model for complex reasoning over code, math, and documents; text, image, video, audio, and PDF input, 1M-token context."
849
+ },
850
+ capabilities: {
851
+ vision: true,
852
+ tools: true,
853
+ structuredOutput: true,
854
+ contextWindow: 1048576
855
+ }
856
+ }),
857
+ text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview", {
858
+ display: {
859
+ provider: "google",
860
+ description: "Google Gemini 3.1 Pro preview reasoning model for software engineering, tool use, and reliable agentic workflows; 1M-token context."
861
+ },
862
+ capabilities: {
863
+ vision: true,
864
+ tools: true,
865
+ structuredOutput: true,
866
+ contextWindow: 1048576
867
+ }
868
+ }),
869
+ text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash", {
870
+ display: {
871
+ provider: "google",
872
+ description: "Google Gemini 3.5 Flash high-throughput model for frontier-level agentic tasks; text, image, video, audio, and PDF input, 1M-token context."
873
+ },
874
+ capabilities: {
875
+ vision: true,
876
+ tools: true,
877
+ structuredOutput: true,
878
+ contextWindow: 1048576
879
+ }
880
+ }),
881
+ text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash", {
882
+ display: {
883
+ provider: "google",
884
+ description: "Google Gemini 3.6 Flash general-purpose multimodal agentic model balancing speed and capability; 1M-token context."
885
+ },
886
+ capabilities: {
887
+ vision: true,
888
+ tools: true,
889
+ structuredOutput: true,
890
+ contextWindow: 1048576
891
+ }
892
+ }),
893
+ text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash", {
894
+ display: {
895
+ provider: "google",
896
+ description: "Google Gemini 3.7 Flash natively multimodal reasoning model for coding, agentic workflows, and multi-step execution; 1M-token context."
897
+ },
898
+ capabilities: {
899
+ vision: true,
900
+ tools: true,
901
+ structuredOutput: true,
902
+ contextWindow: 1048576
903
+ }
904
+ }),
905
+ text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash", {
906
+ display: {
907
+ provider: "google",
908
+ description: "Google Gemini 3.8 Flash frontier model for long-horizon software engineering, autonomous agents, and enterprise workflows; 1M-token context."
909
+ },
910
+ capabilities: {
911
+ vision: true,
912
+ tools: true,
913
+ structuredOutput: true,
914
+ contextWindow: 1048576
915
+ }
573
916
  }),
574
- text("claude-fable-5", "Claude Fable 5", "claude-fable-5"),
575
- text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash"),
576
- text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro"),
577
- text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview"),
578
- text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash"),
579
- text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash"),
580
- text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash"),
581
- text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash"),
582
917
  // Renamed to gemini-3.6-flash in vibe-shared model-migration.ts.
583
918
  text("gemini-3-flash-preview", "Gemini 3 Flash (preview)", "gemini-3-flash-preview", {
584
919
  lifecycle: "deprecated",
585
920
  replacedBy: "gemini-3.6-flash"
586
921
  }),
587
- text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite"),
588
- text("sonar", "Sonar", "sonar"),
589
- text("sonar-pro", "Sonar Pro", "sonar-pro"),
590
- text("sonar-reasoning-pro", "Sonar Reasoning Pro", "sonar-reasoning-pro"),
591
- text("deepseek-v4-flash", "DeepSeek V4 Flash", "deepseek-v4-flash"),
592
- text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro"),
593
- text("grok-4.3", "Grok 4.3", "grok-4.3"),
594
- text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5"),
595
- text("kimi-k3", "Kimi K3", "kimi-k3"),
922
+ text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite", {
923
+ display: {
924
+ provider: "google",
925
+ description: "Google Gemini 3.1 Flash-Lite low-latency multimodal model for high-volume agentic, translation, and data-extraction tasks; 1M-token context."
926
+ },
927
+ capabilities: {
928
+ vision: true,
929
+ tools: true,
930
+ structuredOutput: true,
931
+ contextWindow: 1048576
932
+ }
933
+ }),
934
+ text("sonar", "Sonar", "sonar", {
935
+ display: {
936
+ provider: "perplexity",
937
+ description: "Perplexity Sonar lightweight web-grounded search model returning cited answers; 128K-token context."
938
+ },
939
+ capabilities: {
940
+ vision: true,
941
+ tools: false,
942
+ structuredOutput: true,
943
+ contextWindow: 128e3
944
+ }
945
+ }),
946
+ text("sonar-pro", "Sonar Pro", "sonar-pro", {
947
+ display: {
948
+ provider: "perplexity",
949
+ description: "Perplexity Sonar Pro advanced web-grounded search model for complex multi-step queries; 200K-token context."
950
+ },
951
+ capabilities: {
952
+ vision: true,
953
+ tools: false,
954
+ structuredOutput: true,
955
+ contextWindow: 2e5
956
+ }
957
+ }),
958
+ text("sonar-reasoning-pro", "Sonar Reasoning Pro", "sonar-reasoning-pro", {
959
+ display: {
960
+ provider: "perplexity",
961
+ description: "Perplexity Sonar Reasoning Pro chain-of-thought web-grounded search model for complex problem-solving; 128K-token context."
962
+ },
963
+ capabilities: {
964
+ vision: true,
965
+ tools: false,
966
+ structuredOutput: true,
967
+ contextWindow: 128e3
968
+ }
969
+ }),
970
+ text("deepseek-v4-flash", "DeepSeek V4 Flash", "deepseek-v4-flash", {
971
+ display: {
972
+ provider: "deepseek",
973
+ description: "DeepSeek V4 Flash thinking/non-thinking model with vision, tool calls, and JSON output; 1M-token context and up to 384K output tokens."
974
+ },
975
+ capabilities: {
976
+ vision: true,
977
+ tools: true,
978
+ structuredOutput: true,
979
+ contextWindow: 1e6
980
+ }
981
+ }),
982
+ text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro", {
983
+ display: {
984
+ provider: "deepseek",
985
+ description: "DeepSeek V4 Pro thinking/non-thinking text model with tool calls and JSON output (no vision); 1M-token context and up to 384K output tokens."
986
+ },
987
+ capabilities: {
988
+ vision: false,
989
+ tools: true,
990
+ structuredOutput: true,
991
+ contextWindow: 1e6
992
+ }
993
+ }),
994
+ // 1M-token context: https://docs.x.ai/docs/models/grok-4.3
995
+ text("grok-4.3", "Grok 4.3", "grok-4.3", {
996
+ display: {
997
+ provider: "xai",
998
+ description: "xAI Grok 4.3 reasoning model with tool calling and structured outputs; text and image input, 1M-token context."
999
+ },
1000
+ capabilities: {
1001
+ vision: true,
1002
+ tools: true,
1003
+ structuredOutput: true,
1004
+ contextWindow: 1e6
1005
+ }
1006
+ }),
1007
+ // Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
1008
+ text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
1009
+ display: {
1010
+ provider: "moonshot",
1011
+ description: "Moonshot Kimi K2.5; the provider retired the model on 2026-08-31 and calls now return a model-not-found error."
1012
+ },
1013
+ capabilities: {}
1014
+ }),
1015
+ text("kimi-k3", "Kimi K3", "kimi-k3", {
1016
+ display: {
1017
+ provider: "moonshot",
1018
+ description: "Moonshot Kimi K3 flagship model with native visual understanding and always-on thinking; text, image, and video input, 1M-token context."
1019
+ },
1020
+ capabilities: {
1021
+ vision: true,
1022
+ tools: true,
1023
+ structuredOutput: true,
1024
+ contextWindow: 1e6
1025
+ }
1026
+ }),
596
1027
  // Cowork calls the provider "MiniMax-M3"; the pricing key is lowercase.
597
- text("minimax-m3", "MiniMax M3", "MiniMax-M3", { aliases: ["MiniMax-M3"] })
1028
+ // 1M-token context: https://platform.minimax.io/docs/api-reference/text-openai-api
1029
+ text("minimax-m3", "MiniMax M3", "MiniMax-M3", {
1030
+ aliases: ["MiniMax-M3"],
1031
+ display: {
1032
+ provider: "minimax",
1033
+ description: "MiniMax M3 frontier multimodal model for agentic reasoning, tool use, and coding; text, image, and video input, 1M-token context."
1034
+ },
1035
+ capabilities: { vision: true, tools: true, contextWindow: 1e6 }
1036
+ })
598
1037
  ];
599
1038
 
600
1039
  // src/catalog/video.ts
@@ -606,6 +1045,8 @@ var GROK_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
606
1045
  var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
607
1046
  var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
608
1047
  var NEGATIVE_PROMPT = "blur, distort, and low quality";
1048
+ var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
1049
+ var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
609
1050
  var VIDEO_MODELS = [
610
1051
  {
611
1052
  id: "veo-3.1",
@@ -629,7 +1070,13 @@ var VIDEO_MODELS = [
629
1070
  },
630
1071
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
631
1072
  usage: { ...VIDEO_USAGE },
632
- pricingKind: "video_per_second"
1073
+ pricingKind: "video_per_second",
1074
+ display: {
1075
+ provider: "google",
1076
+ description: "Google's highest-quality video generation model. Supports up to 4K resolution and 8-second clips with reference image conditioning.",
1077
+ logo: GOOGLE_LOGO
1078
+ },
1079
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
633
1080
  },
634
1081
  {
635
1082
  id: "veo-3.1-fast",
@@ -652,7 +1099,12 @@ var VIDEO_MODELS = [
652
1099
  },
653
1100
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
654
1101
  usage: { ...VIDEO_USAGE },
655
- pricingKind: "video_per_second"
1102
+ pricingKind: "video_per_second",
1103
+ display: {
1104
+ provider: "google",
1105
+ description: "Faster variant of Google Veo 3.1; text- and image-to-video with natively generated audio at 4 or 8 seconds."
1106
+ },
1107
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
656
1108
  },
657
1109
  {
658
1110
  id: "veo-3.1-lite",
@@ -675,7 +1127,12 @@ var VIDEO_MODELS = [
675
1127
  },
676
1128
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
677
1129
  usage: { ...VIDEO_USAGE },
678
- pricingKind: "video_per_second"
1130
+ pricingKind: "video_per_second",
1131
+ display: {
1132
+ provider: "google",
1133
+ description: "Efficiency-focused Google Veo 3.1 Lite for high-volume video generation and editing; text and image input, with no 4K output or video extension."
1134
+ },
1135
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
679
1136
  },
680
1137
  {
681
1138
  id: "gemini-omni-flash",
@@ -702,7 +1159,13 @@ var VIDEO_MODELS = [
702
1159
  },
703
1160
  defaults: {},
704
1161
  usage: { ...VIDEO_USAGE },
705
- pricingKind: "video_per_second"
1162
+ pricingKind: "video_per_second",
1163
+ display: {
1164
+ provider: "google",
1165
+ description: "Google's conversational video model with native audio, human support, and natural language editing. Aspect ratio only \u2014 resolution and duration are model-determined.",
1166
+ logo: GOOGLE_LOGO
1167
+ },
1168
+ capabilities: { acceptsSourceVideo: true }
706
1169
  },
707
1170
  {
708
1171
  id: "gemini-omni-1.1-flash",
@@ -721,7 +1184,12 @@ var VIDEO_MODELS = [
721
1184
  },
722
1185
  defaults: {},
723
1186
  usage: { ...VIDEO_USAGE },
724
- pricingKind: "video_per_second"
1187
+ pricingKind: "video_per_second",
1188
+ display: {
1189
+ provider: "google",
1190
+ description: "Google Gemini Omni Flash 1.1 conversational video generation and editing; text, image, and up to 10-second video input, 3-10 second output at up to 4K and 24 FPS."
1191
+ },
1192
+ capabilities: { acceptsSourceVideo: true }
725
1193
  },
726
1194
  {
727
1195
  // vibe-triggers and Space Builder drop the ratio when a frame is wired; Cowork always sends it.
@@ -747,7 +1215,13 @@ var VIDEO_MODELS = [
747
1215
  generateAudio: true
748
1216
  },
749
1217
  usage: { ...VIDEO_USAGE },
750
- pricingKind: "video_per_second"
1218
+ pricingKind: "video_per_second",
1219
+ display: {
1220
+ provider: "bytedance",
1221
+ description: "High-quality AI video generation with reference image conditioning. Supports 4-15 second clips with human preprocessing.",
1222
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png"
1223
+ },
1224
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
751
1225
  },
752
1226
  {
753
1227
  id: "seedance-2.0-fast",
@@ -772,7 +1246,12 @@ var VIDEO_MODELS = [
772
1246
  generateAudio: true
773
1247
  },
774
1248
  usage: { ...VIDEO_USAGE },
775
- pricingKind: "video_per_second"
1249
+ pricingKind: "video_per_second",
1250
+ display: {
1251
+ provider: "bytedance",
1252
+ description: "Speed- and cost-optimized ByteDance Seedance 2.0 Fast; text plus image, video, and audio references to generate or edit 4-15 second clips."
1253
+ },
1254
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
776
1255
  },
777
1256
  {
778
1257
  // generateAudio defaults to false here (trigger-workflows); Space Builder defaults it to true.
@@ -798,7 +1277,12 @@ var VIDEO_MODELS = [
798
1277
  generateAudio: false
799
1278
  },
800
1279
  usage: { ...VIDEO_USAGE },
801
- pricingKind: "video_per_second"
1280
+ pricingKind: "video_per_second",
1281
+ display: {
1282
+ provider: "bytedance",
1283
+ description: "ByteDance Seedance 2.5 for long-form storytelling and omni-reference generation/editing; up to 50 reference assets and 4-30 second clips at up to 1080p."
1284
+ },
1285
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
802
1286
  },
803
1287
  {
804
1288
  // Cowork allows 7 reference images and durations 4/6/8/10; Space Builder allows 5 and 1-15s.
@@ -819,7 +1303,13 @@ var VIDEO_MODELS = [
819
1303
  // No resolution default: xAI picks its own unless the caller asks.
820
1304
  defaults: { durationSeconds: 8, aspectRatio: "16:9" },
821
1305
  usage: { unit: "reported_cost_usd", modality: "VIDEO" },
822
- pricingKind: "video_per_second"
1306
+ pricingKind: "video_per_second",
1307
+ display: {
1308
+ provider: "xai",
1309
+ description: "xAI's reference-to-video model. Generates short clips conditioned on up to 7 reference images with flexible aspect ratios.",
1310
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/858b7fcc-9bd5-411d-aea1-a7b35ecfffab_compressed.png"
1311
+ },
1312
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
823
1313
  },
824
1314
  {
825
1315
  id: "kling-2.5",
@@ -842,7 +1332,12 @@ var VIDEO_MODELS = [
842
1332
  negativePrompt: NEGATIVE_PROMPT
843
1333
  },
844
1334
  usage: { ...VIDEO_USAGE },
845
- pricingKind: "video_per_second"
1335
+ pricingKind: "video_per_second",
1336
+ display: {
1337
+ provider: "kuaishou",
1338
+ description: "Kuaishou Kling 2.5 Turbo Pro image-to-video; animates a single input image from a text prompt with an optional end image, 5- or 10-second clips."
1339
+ },
1340
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
846
1341
  },
847
1342
  {
848
1343
  // trigger-workflows validates 5/10 only; Space Builder allows 3-15s (Kling30Input).
@@ -866,7 +1361,12 @@ var VIDEO_MODELS = [
866
1361
  negativePrompt: NEGATIVE_PROMPT
867
1362
  },
868
1363
  usage: { ...VIDEO_USAGE },
869
- pricingKind: "video_per_second"
1364
+ pricingKind: "video_per_second",
1365
+ display: {
1366
+ provider: "kuaishou",
1367
+ description: "Kuaishou Kling 3.0 Pro image-to-video; a required start image plus a text prompt (or multi-shot prompts) with optional end image and native audio, 3-15 second clips."
1368
+ },
1369
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
870
1370
  },
871
1371
  {
872
1372
  // mode standard/pro selects 720p/1080p; the endpoint takes no separate resolution.
@@ -897,7 +1397,12 @@ var VIDEO_MODELS = [
897
1397
  },
898
1398
  defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
899
1399
  usage: { unit: "compute_seconds", modality: "VIDEO" },
900
- pricingKind: "video_per_second"
1400
+ pricingKind: "video_per_second",
1401
+ display: {
1402
+ provider: "kuaishou",
1403
+ description: "Kuaishou Kling Video 3.0 Omni unified generation and editing from text, start/end images, up to 7 reference images, and reference video; up to 15 seconds at up to 1080p."
1404
+ },
1405
+ capabilities: {}
901
1406
  },
902
1407
  {
903
1408
  id: "minimax-h3",
@@ -920,7 +1425,12 @@ var VIDEO_MODELS = [
920
1425
  promptExpansion: "balanced"
921
1426
  },
922
1427
  usage: { ...VIDEO_USAGE },
923
- pricingKind: "video_per_second"
1428
+ pricingKind: "video_per_second",
1429
+ display: {
1430
+ provider: "minimax",
1431
+ description: "MiniMax H3 multimodal video model for text-to-video, image-to-video (first/last frame), and reference-to-video with native audio, up to 2K."
1432
+ },
1433
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
924
1434
  },
925
1435
  {
926
1436
  id: "minimax-h3-max",
@@ -943,7 +1453,12 @@ var VIDEO_MODELS = [
943
1453
  promptExpansion: "balanced"
944
1454
  },
945
1455
  usage: { ...VIDEO_USAGE },
946
- pricingKind: "video_per_second"
1456
+ pricingKind: "video_per_second",
1457
+ display: {
1458
+ provider: "minimax",
1459
+ description: "High-speed MiniMax H3 Max variant for text-to-video and image-to-video (first/last frame) only, up to 768p."
1460
+ },
1461
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
947
1462
  },
948
1463
  {
949
1464
  id: "minimax-h3-reference",
@@ -967,7 +1482,12 @@ var VIDEO_MODELS = [
967
1482
  promptExpansion: "balanced"
968
1483
  },
969
1484
  usage: { ...VIDEO_USAGE },
970
- pricingKind: "video_per_second"
1485
+ pricingKind: "video_per_second",
1486
+ display: {
1487
+ provider: "minimax",
1488
+ description: "MiniMax H3 reference-to-video mode guided by up to 9 reference images, 3 reference videos, and 3 audio clips; reference and image-to-video inputs cannot be mixed."
1489
+ },
1490
+ capabilities: {}
971
1491
  },
972
1492
  {
973
1493
  id: "minimax-h3-max-reference",
@@ -991,7 +1511,12 @@ var VIDEO_MODELS = [
991
1511
  promptExpansion: "balanced"
992
1512
  },
993
1513
  usage: { ...VIDEO_USAGE },
994
- pricingKind: "video_per_second"
1514
+ pricingKind: "video_per_second",
1515
+ display: {
1516
+ provider: "minimax",
1517
+ description: "MiniMax H3 Max reference-to-video on fal; conditions on reference images, videos, and audio. MiniMax's own docs do not list a reference mode for H3 Max."
1518
+ },
1519
+ capabilities: {}
995
1520
  },
996
1521
  {
997
1522
  // Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
@@ -1010,7 +1535,12 @@ var VIDEO_MODELS = [
1010
1535
  },
1011
1536
  defaults: { durationSeconds: 5, aspectRatio: "16:9" },
1012
1537
  usage: { ...VIDEO_USAGE },
1013
- pricingKind: "video_per_second"
1538
+ pricingKind: "video_per_second",
1539
+ display: {
1540
+ provider: "kuaishou",
1541
+ description: "Kuaishou Kling O1 Reference Video-to-Video; a prompt plus a 3-10 second reference video (optional reference images) generates 3-10 second clips preserving motion and camera language."
1542
+ },
1543
+ capabilities: { acceptsSourceVideo: true }
1014
1544
  },
1015
1545
  {
1016
1546
  id: "hailuo-02",
@@ -1027,7 +1557,12 @@ var VIDEO_MODELS = [
1027
1557
  },
1028
1558
  defaults: { durationSeconds: 6, resolution: "768p" },
1029
1559
  usage: { unit: "compute_seconds", modality: "VIDEO" },
1030
- pricingKind: "video_per_second"
1560
+ pricingKind: "video_per_second",
1561
+ display: {
1562
+ provider: "minimax",
1563
+ description: "MiniMax Hailuo 02 text-to-video and image-to-video model with realistic physics and strong prompt following; outputs 768p at 6 or 10 seconds."
1564
+ },
1565
+ capabilities: {}
1031
1566
  },
1032
1567
  {
1033
1568
  id: "higgsfield-dop-preview",
@@ -1043,7 +1578,12 @@ var VIDEO_MODELS = [
1043
1578
  },
1044
1579
  defaults: {},
1045
1580
  usage: { ...VIDEO_USAGE },
1046
- pricingKind: "video_per_second"
1581
+ pricingKind: "video_per_second",
1582
+ display: {
1583
+ provider: "higgsfield",
1584
+ description: "Higgsfield DOP image-to-video model; animates a required first-frame image from a text prompt with an optional last-frame image and motion controls."
1585
+ },
1586
+ capabilities: {}
1047
1587
  }
1048
1588
  ];
1049
1589