@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.cjs CHANGED
@@ -166,6 +166,7 @@ var Catalog = class _Catalog {
166
166
 
167
167
  // src/catalog/image.ts
168
168
  var IMAGE_USAGE = { unit: "images", modality: "IMAGE" };
169
+ var IMAGE_GENERATE_EDIT = { imageGenerate: true, imageEdit: true };
169
170
  var GEMINI_RATIOS = [
170
171
  "1:1",
171
172
  "2:3",
@@ -179,7 +180,7 @@ var GEMINI_RATIOS = [
179
180
  "5:4",
180
181
  "adaptive"
181
182
  ];
182
- function geminiImage(id, label, aliases, sizes) {
183
+ function geminiImage(id, label, aliases, sizes, display) {
183
184
  const model = {
184
185
  id,
185
186
  aliases,
@@ -195,22 +196,40 @@ function geminiImage(id, label, aliases, sizes) {
195
196
  },
196
197
  defaults: { size: "1K", aspectRatio: "1:1" },
197
198
  usage: { ...IMAGE_USAGE },
198
- pricingKind: "image_size"
199
+ pricingKind: "image_size",
200
+ display,
201
+ capabilities: { ...IMAGE_GENERATE_EDIT }
199
202
  };
200
203
  return model;
201
204
  }
202
205
  var IMAGE_MODELS = [
203
- geminiImage("gemini-3-pro-image-preview", "Nano Banana Pro", ["nb-pro"], ["1K", "2K", "4K"]),
206
+ geminiImage("gemini-3-pro-image-preview", "Nano Banana Pro", ["nb-pro"], ["1K", "2K", "4K"], {
207
+ provider: "google",
208
+ description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
209
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
210
+ }),
204
211
  geminiImage(
205
212
  "gemini-3.1-flash-image-preview",
206
213
  "Nano Banana Flash",
207
214
  ["nb-2"],
208
215
  // Flash 3.1 is the only Gemini image model with the 512 tier.
209
- ["512", "1K", "2K", "4K"]
216
+ ["512", "1K", "2K", "4K"],
217
+ {
218
+ provider: "google",
219
+ description: "Generate high-quality images at speed. Perfect for brainstorming, moodboards, concept testing, creative exploration, and large batch workflows.",
220
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
221
+ }
210
222
  ),
211
- geminiImage("gemini-3.1-flash-lite-image", "Nano Banana Lite", ["nb-lite"], ["1K"]),
223
+ geminiImage("gemini-3.1-flash-lite-image", "Nano Banana Lite", ["nb-lite"], ["1K"], {
224
+ provider: "google",
225
+ description: "The fastest and most affordable image model. Ideal for rapid drafts, bulk exploration, and iterative concept testing at 1K resolution.",
226
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
227
+ }),
212
228
  // trigger-workflows validates 1K only; pricing seeds 2K/4K rows so allow all three.
213
- geminiImage("gemini-2.5-flash-image", "Gemini 2.5 Flash Image", [], ["1K", "2K", "4K"]),
229
+ geminiImage("gemini-2.5-flash-image", "Gemini 2.5 Flash Image", [], ["1K", "2K", "4K"], {
230
+ provider: "google",
231
+ description: "Nano Banana (legacy Gemini 2.5 Flash Image) native image generation and editing model for high-volume, low-latency creative workflows."
232
+ }),
214
233
  {
215
234
  // Cowork "auto" lets OpenAI pick the size; the canonical equivalent is adaptive.
216
235
  id: "gpt-image-2",
@@ -228,7 +247,13 @@ var IMAGE_MODELS = [
228
247
  },
229
248
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
230
249
  usage: { ...IMAGE_USAGE },
231
- pricingKind: "image_size"
250
+ pricingKind: "image_size",
251
+ display: {
252
+ provider: "openai",
253
+ description: "The most capable model for image editing and complex creative instructions. Excels at text rendering, visual consistency, design generation, and iterative refinement.",
254
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/1204b494-8962-4f7f-af5e-699a8bdc98e3_compressed.png"
255
+ },
256
+ capabilities: { ...IMAGE_GENERATE_EDIT }
232
257
  },
233
258
  {
234
259
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -247,7 +272,12 @@ var IMAGE_MODELS = [
247
272
  },
248
273
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
249
274
  usage: { ...IMAGE_USAGE },
250
- pricingKind: "image_size"
275
+ pricingKind: "image_size",
276
+ display: {
277
+ provider: "openai",
278
+ 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."
279
+ },
280
+ capabilities: { ...IMAGE_GENERATE_EDIT }
251
281
  },
252
282
  {
253
283
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -266,7 +296,12 @@ var IMAGE_MODELS = [
266
296
  },
267
297
  defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
268
298
  usage: { ...IMAGE_USAGE },
269
- pricingKind: "image_size"
299
+ pricingKind: "image_size",
300
+ display: {
301
+ provider: "openai",
302
+ 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."
303
+ },
304
+ capabilities: { ...IMAGE_GENERATE_EDIT }
270
305
  },
271
306
  {
272
307
  // Cowork allows 7 ratios; trigger-workflows allows 9 (adds 3:2, 9:21, drops 4:5/5:4).
@@ -298,7 +333,13 @@ var IMAGE_MODELS = [
298
333
  },
299
334
  defaults: { size: "1K", aspectRatio: "1:1", outputFormat: "png", count: 1 },
300
335
  usage: { ...IMAGE_USAGE },
301
- pricingKind: "image_size"
336
+ pricingKind: "image_size",
337
+ display: {
338
+ provider: "meta",
339
+ 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.",
340
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/characters/1787909065794-k9a7zz.png"
341
+ },
342
+ capabilities: { ...IMAGE_GENERATE_EDIT }
302
343
  },
303
344
  {
304
345
  id: "seedream-5-0-pro",
@@ -318,7 +359,12 @@ var IMAGE_MODELS = [
318
359
  },
319
360
  defaults: { size: "1K", aspectRatio: "1:1" },
320
361
  usage: { ...IMAGE_USAGE },
321
- pricingKind: "image_size"
362
+ pricingKind: "image_size",
363
+ display: {
364
+ provider: "bytedance",
365
+ 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."
366
+ },
367
+ capabilities: { ...IMAGE_GENERATE_EDIT }
322
368
  },
323
369
  {
324
370
  id: "seedream-4.5",
@@ -350,7 +396,12 @@ var IMAGE_MODELS = [
350
396
  },
351
397
  defaults: { size: "1K", aspectRatio: "1:1" },
352
398
  usage: { ...IMAGE_USAGE },
353
- pricingKind: "image_size"
399
+ pricingKind: "image_size",
400
+ display: {
401
+ provider: "bytedance",
402
+ 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."
403
+ },
404
+ capabilities: { ...IMAGE_GENERATE_EDIT }
354
405
  },
355
406
  {
356
407
  id: "flux-2-pro",
@@ -368,7 +419,12 @@ var IMAGE_MODELS = [
368
419
  },
369
420
  defaults: { size: "1K", aspectRatio: "1:1" },
370
421
  usage: { ...IMAGE_USAGE },
371
- pricingKind: "image_size"
422
+ pricingKind: "image_size",
423
+ display: {
424
+ provider: "black-forest-labs",
425
+ 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."
426
+ },
427
+ capabilities: { ...IMAGE_GENERATE_EDIT }
372
428
  },
373
429
  {
374
430
  // Prodia's gemini-3-pro jobs take aspect_ratio + resolution (1K/2K/4K), not
@@ -389,7 +445,12 @@ var IMAGE_MODELS = [
389
445
  },
390
446
  defaults: { size: "1K", aspectRatio: "1:1" },
391
447
  usage: { ...IMAGE_USAGE },
392
- pricingKind: "image_size"
448
+ pricingKind: "image_size",
449
+ display: {
450
+ provider: "google",
451
+ 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."
452
+ },
453
+ capabilities: { ...IMAGE_GENERATE_EDIT }
393
454
  },
394
455
  {
395
456
  // Nano Banana (img2img.v2) is flat-rate with aspect_ratio only; 3:2, 4:5,
@@ -409,7 +470,12 @@ var IMAGE_MODELS = [
409
470
  },
410
471
  defaults: { size: "1K", aspectRatio: "1:1" },
411
472
  usage: { ...IMAGE_USAGE },
412
- pricingKind: "image_size"
473
+ pricingKind: "image_size",
474
+ display: {
475
+ provider: "google",
476
+ 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."
477
+ },
478
+ capabilities: { ...IMAGE_GENERATE_EDIT }
413
479
  },
414
480
  {
415
481
  // WAN 2.7 takes `images` (up to 9) and a `size` enum whose exact values
@@ -430,7 +496,12 @@ var IMAGE_MODELS = [
430
496
  },
431
497
  defaults: { size: "1K", aspectRatio: "1:1" },
432
498
  usage: { unit: "compute_seconds", modality: "IMAGE" },
433
- pricingKind: "image_size"
499
+ pricingKind: "image_size",
500
+ display: {
501
+ provider: "alibaba",
502
+ 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)."
503
+ },
504
+ capabilities: { ...IMAGE_GENERATE_EDIT }
434
505
  },
435
506
  {
436
507
  // Qwen Image 2 Pro has aspect_ratio but no size input; resolution follows
@@ -452,7 +523,12 @@ var IMAGE_MODELS = [
452
523
  },
453
524
  defaults: { aspectRatio: "1:1" },
454
525
  usage: { unit: "compute_seconds", modality: "IMAGE" },
455
- pricingKind: "image_size"
526
+ pricingKind: "image_size",
527
+ display: {
528
+ provider: "alibaba",
529
+ 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."
530
+ },
531
+ capabilities: { ...IMAGE_GENERATE_EDIT }
456
532
  },
457
533
  {
458
534
  // Qwen Image Edit Plus takes aspect_ratio (or match_input_image) and
@@ -474,7 +550,12 @@ var IMAGE_MODELS = [
474
550
  },
475
551
  defaults: { outputFormat: "png" },
476
552
  usage: { unit: "compute_seconds", modality: "IMAGE" },
477
- pricingKind: "image_size"
553
+ pricingKind: "image_size",
554
+ display: {
555
+ provider: "alibaba",
556
+ 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."
557
+ },
558
+ capabilities: { ...IMAGE_GENERATE_EDIT }
478
559
  }
479
560
  ];
480
561
 
@@ -495,7 +576,11 @@ var OTHER_MODELS = [
495
576
  },
496
577
  defaults: {},
497
578
  usage: { unit: "images", modality: "AUDIO" },
498
- pricingKind: "flat"
579
+ pricingKind: "flat",
580
+ display: {
581
+ provider: "google",
582
+ 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."
583
+ }
499
584
  },
500
585
  {
501
586
  id: "lyria-3-pro-preview",
@@ -511,7 +596,11 @@ var OTHER_MODELS = [
511
596
  },
512
597
  defaults: {},
513
598
  usage: { unit: "images", modality: "AUDIO" },
514
- pricingKind: "flat"
599
+ pricingKind: "flat",
600
+ display: {
601
+ provider: "google",
602
+ 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."
603
+ }
515
604
  },
516
605
  {
517
606
  id: "google/lyria-2",
@@ -527,7 +616,11 @@ var OTHER_MODELS = [
527
616
  },
528
617
  defaults: {},
529
618
  usage: { unit: "compute_seconds", modality: "AUDIO" },
530
- pricingKind: "flat"
619
+ pricingKind: "flat",
620
+ display: {
621
+ provider: "google",
622
+ description: "Lyria 2 music generation on Replicate; produces 30 seconds of 48 kHz stereo audio from a text prompt."
623
+ }
531
624
  },
532
625
  {
533
626
  id: "mmaudio",
@@ -544,7 +637,11 @@ var OTHER_MODELS = [
544
637
  },
545
638
  defaults: { durationSeconds: 8 },
546
639
  usage: { unit: "compute_seconds", modality: "AUDIO" },
547
- pricingKind: "flat"
640
+ pricingKind: "flat",
641
+ display: {
642
+ provider: "mmaudio",
643
+ description: "MMAudio V2 video-to-audio model on Replicate; takes a source video and prompt and synthesizes synchronized environmental, action, and speech-like audio."
644
+ }
548
645
  },
549
646
  {
550
647
  id: "elevenlabs-music",
@@ -561,7 +658,11 @@ var OTHER_MODELS = [
561
658
  defaults: { durationSeconds: 15, instrumental: true },
562
659
  // Replicate's run() does not report predict_time; billed by generated length.
563
660
  usage: { unit: "seconds", modality: "AUDIO" },
564
- pricingKind: "flat"
661
+ pricingKind: "flat",
662
+ display: {
663
+ provider: "elevenlabs",
664
+ 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."
665
+ }
565
666
  },
566
667
  {
567
668
  id: "topaz",
@@ -578,7 +679,12 @@ var OTHER_MODELS = [
578
679
  },
579
680
  defaults: { scaleFactor: 2, outputFormat: "png" },
580
681
  usage: { unit: "compute_seconds", modality: "IMAGE" },
581
- pricingKind: "flat"
682
+ pricingKind: "flat",
683
+ display: {
684
+ provider: "topaz",
685
+ 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."
686
+ },
687
+ capabilities: { imageEdit: true }
582
688
  },
583
689
  {
584
690
  id: "bg-remove",
@@ -595,7 +701,12 @@ var OTHER_MODELS = [
595
701
  },
596
702
  defaults: {},
597
703
  usage: { unit: "images", modality: "IMAGE" },
598
- pricingKind: "flat"
704
+ pricingKind: "flat",
705
+ display: {
706
+ provider: "prodia",
707
+ description: "Prodia background removal; takes one input image and returns a PNG cut-out of the subject plus an optional black-and-white mask."
708
+ },
709
+ capabilities: { imageEdit: true }
599
710
  }
600
711
  ];
601
712
 
@@ -618,22 +729,112 @@ function text(id, label, providerModelId, extra) {
618
729
  };
619
730
  }
620
731
  var TEXT_MODELS = [
621
- text("gpt-4o", "GPT-4o", "gpt-4o"),
622
- text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini"),
623
- text("gpt-5.1", "GPT-5.1", "gpt-5.1"),
624
- text("gpt-5.2", "GPT-5.2", "gpt-5.2"),
625
- text("gpt-5.4", "GPT-5.4", "gpt-5.4"),
732
+ text("gpt-4o", "GPT-4o", "gpt-4o", {
733
+ display: {
734
+ provider: "openai",
735
+ description: "OpenAI GPT-4o flagship multimodal model; text and image input, 128K-token context."
736
+ },
737
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
738
+ }),
739
+ text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini", {
740
+ display: {
741
+ provider: "openai",
742
+ description: "OpenAI GPT-4o mini fast, low-cost multimodal model; text and image input, 128K-token context."
743
+ },
744
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
745
+ }),
746
+ text("gpt-5.1", "GPT-5.1", "gpt-5.1", {
747
+ display: {
748
+ provider: "openai",
749
+ description: "OpenAI GPT-5.1 reasoning model for coding and agentic tasks; text and image input, 400K-token context."
750
+ },
751
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
752
+ }),
753
+ text("gpt-5.2", "GPT-5.2", "gpt-5.2", {
754
+ display: {
755
+ provider: "openai",
756
+ description: "OpenAI GPT-5.2 reasoning model for complex professional work; text and image input, 400K-token context."
757
+ },
758
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
759
+ }),
760
+ // 1.05M-token context: https://platform.openai.com/docs/models/gpt-5.4
761
+ text("gpt-5.4", "GPT-5.4", "gpt-5.4", {
762
+ display: {
763
+ provider: "openai",
764
+ description: "OpenAI GPT-5.4 flagship reasoning model; text and image input, 1.05M-token context."
765
+ },
766
+ capabilities: {
767
+ vision: true,
768
+ tools: true,
769
+ structuredOutput: true,
770
+ contextWindow: 105e4
771
+ }
772
+ }),
626
773
  // OpenAI never shipped gpt-5.1-mini or gpt-5.2-mini; callers that still send them get 5.4 mini.
627
774
  text("gpt-5.4-mini", "GPT-5.4 mini", "gpt-5.4-mini", {
628
- aliases: ["gpt-5.1-mini", "gpt-5.2-mini"]
775
+ aliases: ["gpt-5.1-mini", "gpt-5.2-mini"],
776
+ display: {
777
+ provider: "openai",
778
+ description: "OpenAI GPT-5.4 mini efficient reasoning model for high-volume workloads; text and image input, 400K-token context."
779
+ },
780
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
781
+ }),
782
+ text("gpt-5.5", "GPT-5.5", "gpt-5.5", {
783
+ display: {
784
+ provider: "openai",
785
+ description: "OpenAI GPT-5.5 flagship reasoning model for the most complex professional and coding work; text and image input, 1.05M-token context."
786
+ },
787
+ capabilities: {
788
+ vision: true,
789
+ tools: true,
790
+ structuredOutput: true,
791
+ contextWindow: 105e4
792
+ }
793
+ }),
794
+ text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna", {
795
+ display: {
796
+ provider: "openai",
797
+ description: "OpenAI GPT-5.6 Luna cost-optimized tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
798
+ },
799
+ capabilities: {
800
+ vision: true,
801
+ tools: true,
802
+ structuredOutput: true,
803
+ contextWindow: 105e4
804
+ }
805
+ }),
806
+ text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra", {
807
+ display: {
808
+ provider: "openai",
809
+ description: "OpenAI GPT-5.6 Terra balanced tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
810
+ },
811
+ capabilities: {
812
+ vision: true,
813
+ tools: true,
814
+ structuredOutput: true,
815
+ contextWindow: 105e4
816
+ }
817
+ }),
818
+ text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol", {
819
+ display: {
820
+ provider: "openai",
821
+ description: "OpenAI GPT-5.6 Sol flagship tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
822
+ },
823
+ capabilities: {
824
+ vision: true,
825
+ tools: true,
826
+ structuredOutput: true,
827
+ contextWindow: 105e4
828
+ }
629
829
  }),
630
- text("gpt-5.5", "GPT-5.5", "gpt-5.5"),
631
- text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna"),
632
- text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra"),
633
- text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol"),
634
830
  // Library key "claude-sonnet-4.5" maps to the SDK id "claude-sonnet-4-5".
635
831
  text("claude-sonnet-4-5", "Claude Sonnet 4.5", "claude-sonnet-4-5", {
636
- aliases: ["claude-sonnet-4.5", "claude-sonnet-4-5-20250929"]
832
+ aliases: ["claude-sonnet-4.5", "claude-sonnet-4-5-20250929"],
833
+ display: {
834
+ provider: "anthropic",
835
+ description: "Anthropic Claude Sonnet 4.5 (legacy) balanced model; text and image input, 200K-token context."
836
+ },
837
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
637
838
  }),
638
839
  // Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
639
840
  text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
@@ -642,42 +843,280 @@ var TEXT_MODELS = [
642
843
  "claude-sonnet-4",
643
844
  "claude-sonnet-4.0",
644
845
  "claude-sonnet-4-20250514"
645
- ]
846
+ ],
847
+ display: {
848
+ provider: "anthropic",
849
+ description: "Anthropic Claude Sonnet 4.6 (legacy) balanced model; text and image input, 1M-token context."
850
+ },
851
+ capabilities: {
852
+ vision: true,
853
+ tools: true,
854
+ structuredOutput: true,
855
+ contextWindow: 1e6
856
+ }
857
+ }),
858
+ text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5", {
859
+ display: {
860
+ provider: "anthropic",
861
+ description: "Anthropic Claude Sonnet 5 current balanced model; text and image input, 1M-token context."
862
+ },
863
+ capabilities: {
864
+ vision: true,
865
+ tools: true,
866
+ structuredOutput: true,
867
+ contextWindow: 1e6
868
+ }
646
869
  }),
647
- text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5"),
648
870
  text("claude-opus-4-8", "Claude Opus 4.8", "claude-opus-4-8", {
649
- aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"]
871
+ aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"],
872
+ display: {
873
+ provider: "anthropic",
874
+ description: "Anthropic Claude Opus 4.8 (legacy) frontier model; text and image input, 1M-token context."
875
+ },
876
+ capabilities: {
877
+ vision: true,
878
+ tools: true,
879
+ structuredOutput: true,
880
+ contextWindow: 1e6
881
+ }
650
882
  }),
651
883
  text("claude-haiku-4-5", "Claude Haiku 4.5", "claude-haiku-4-5", {
652
- aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"]
884
+ aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"],
885
+ display: {
886
+ provider: "anthropic",
887
+ description: "Anthropic Claude Haiku 4.5 fast model with near-frontier intelligence; text and image input, 200K-token context."
888
+ },
889
+ capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
653
890
  }),
654
891
  text("claude-opus-5", "Claude Opus 5", "claude-opus-5", {
655
- aliases: ["claude-opus-5.0"]
892
+ aliases: ["claude-opus-5.0"],
893
+ display: {
894
+ provider: "anthropic",
895
+ description: "Anthropic Claude Opus 5 current frontier model for agentic coding and enterprise work; text and image input, 1M-token context."
896
+ },
897
+ capabilities: {
898
+ vision: true,
899
+ tools: true,
900
+ structuredOutput: true,
901
+ contextWindow: 1e6
902
+ }
903
+ }),
904
+ text("claude-fable-5", "Claude Fable 5", "claude-fable-5", {
905
+ display: {
906
+ provider: "anthropic",
907
+ description: "Anthropic Claude Fable 5 (legacy) model for demanding reasoning and long-horizon agentic work; text and image input, 1M-token context."
908
+ },
909
+ capabilities: {
910
+ vision: true,
911
+ tools: true,
912
+ structuredOutput: true,
913
+ contextWindow: 1e6
914
+ }
915
+ }),
916
+ text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash", {
917
+ display: {
918
+ provider: "google",
919
+ description: "Google Gemini 2.5 Flash low-latency multimodal model for high-volume reasoning over text, images, video, and audio; 1M-token context."
920
+ },
921
+ capabilities: {
922
+ vision: true,
923
+ tools: true,
924
+ structuredOutput: true,
925
+ contextWindow: 1048576
926
+ }
927
+ }),
928
+ text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro", {
929
+ display: {
930
+ provider: "google",
931
+ 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."
932
+ },
933
+ capabilities: {
934
+ vision: true,
935
+ tools: true,
936
+ structuredOutput: true,
937
+ contextWindow: 1048576
938
+ }
939
+ }),
940
+ text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview", {
941
+ display: {
942
+ provider: "google",
943
+ description: "Google Gemini 3.1 Pro preview reasoning model for software engineering, tool use, and reliable agentic workflows; 1M-token context."
944
+ },
945
+ capabilities: {
946
+ vision: true,
947
+ tools: true,
948
+ structuredOutput: true,
949
+ contextWindow: 1048576
950
+ }
951
+ }),
952
+ text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash", {
953
+ display: {
954
+ provider: "google",
955
+ description: "Google Gemini 3.5 Flash high-throughput model for frontier-level agentic tasks; text, image, video, audio, and PDF input, 1M-token context."
956
+ },
957
+ capabilities: {
958
+ vision: true,
959
+ tools: true,
960
+ structuredOutput: true,
961
+ contextWindow: 1048576
962
+ }
963
+ }),
964
+ text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash", {
965
+ display: {
966
+ provider: "google",
967
+ description: "Google Gemini 3.6 Flash general-purpose multimodal agentic model balancing speed and capability; 1M-token context."
968
+ },
969
+ capabilities: {
970
+ vision: true,
971
+ tools: true,
972
+ structuredOutput: true,
973
+ contextWindow: 1048576
974
+ }
975
+ }),
976
+ text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash", {
977
+ display: {
978
+ provider: "google",
979
+ description: "Google Gemini 3.7 Flash natively multimodal reasoning model for coding, agentic workflows, and multi-step execution; 1M-token context."
980
+ },
981
+ capabilities: {
982
+ vision: true,
983
+ tools: true,
984
+ structuredOutput: true,
985
+ contextWindow: 1048576
986
+ }
987
+ }),
988
+ text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash", {
989
+ display: {
990
+ provider: "google",
991
+ description: "Google Gemini 3.8 Flash frontier model for long-horizon software engineering, autonomous agents, and enterprise workflows; 1M-token context."
992
+ },
993
+ capabilities: {
994
+ vision: true,
995
+ tools: true,
996
+ structuredOutput: true,
997
+ contextWindow: 1048576
998
+ }
656
999
  }),
657
- text("claude-fable-5", "Claude Fable 5", "claude-fable-5"),
658
- text("gemini-2.5-flash", "Gemini 2.5 Flash", "gemini-2.5-flash"),
659
- text("gemini-2.5-pro", "Gemini 2.5 Pro", "gemini-2.5-pro"),
660
- text("gemini-3.1-pro-preview", "Gemini 3.1 Pro (preview)", "gemini-3.1-pro-preview"),
661
- text("gemini-3.5-flash", "Gemini 3.5 Flash", "gemini-3.5-flash"),
662
- text("gemini-3.6-flash", "Gemini 3.6 Flash", "gemini-3.6-flash"),
663
- text("gemini-3.7-flash", "Gemini 3.7 Flash", "gemini-3.7-flash"),
664
- text("gemini-3.8-flash", "Gemini 3.8 Flash", "gemini-3.8-flash"),
665
1000
  // Renamed to gemini-3.6-flash in vibe-shared model-migration.ts.
666
1001
  text("gemini-3-flash-preview", "Gemini 3 Flash (preview)", "gemini-3-flash-preview", {
667
1002
  lifecycle: "deprecated",
668
1003
  replacedBy: "gemini-3.6-flash"
669
1004
  }),
670
- text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite"),
671
- text("sonar", "Sonar", "sonar"),
672
- text("sonar-pro", "Sonar Pro", "sonar-pro"),
673
- text("sonar-reasoning-pro", "Sonar Reasoning Pro", "sonar-reasoning-pro"),
674
- text("deepseek-v4-flash", "DeepSeek V4 Flash", "deepseek-v4-flash"),
675
- text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro"),
676
- text("grok-4.3", "Grok 4.3", "grok-4.3"),
677
- text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5"),
678
- text("kimi-k3", "Kimi K3", "kimi-k3"),
1005
+ text("gemini-3.1-flash-lite", "Gemini 3.1 Flash Lite", "gemini-3.1-flash-lite", {
1006
+ display: {
1007
+ provider: "google",
1008
+ description: "Google Gemini 3.1 Flash-Lite low-latency multimodal model for high-volume agentic, translation, and data-extraction tasks; 1M-token context."
1009
+ },
1010
+ capabilities: {
1011
+ vision: true,
1012
+ tools: true,
1013
+ structuredOutput: true,
1014
+ contextWindow: 1048576
1015
+ }
1016
+ }),
1017
+ text("sonar", "Sonar", "sonar", {
1018
+ display: {
1019
+ provider: "perplexity",
1020
+ description: "Perplexity Sonar lightweight web-grounded search model returning cited answers; 128K-token context."
1021
+ },
1022
+ capabilities: {
1023
+ vision: true,
1024
+ tools: false,
1025
+ structuredOutput: true,
1026
+ contextWindow: 128e3
1027
+ }
1028
+ }),
1029
+ text("sonar-pro", "Sonar Pro", "sonar-pro", {
1030
+ display: {
1031
+ provider: "perplexity",
1032
+ description: "Perplexity Sonar Pro advanced web-grounded search model for complex multi-step queries; 200K-token context."
1033
+ },
1034
+ capabilities: {
1035
+ vision: true,
1036
+ tools: false,
1037
+ structuredOutput: true,
1038
+ contextWindow: 2e5
1039
+ }
1040
+ }),
1041
+ text("sonar-reasoning-pro", "Sonar Reasoning Pro", "sonar-reasoning-pro", {
1042
+ display: {
1043
+ provider: "perplexity",
1044
+ description: "Perplexity Sonar Reasoning Pro chain-of-thought web-grounded search model for complex problem-solving; 128K-token context."
1045
+ },
1046
+ capabilities: {
1047
+ vision: true,
1048
+ tools: false,
1049
+ structuredOutput: true,
1050
+ contextWindow: 128e3
1051
+ }
1052
+ }),
1053
+ text("deepseek-v4-flash", "DeepSeek V4 Flash", "deepseek-v4-flash", {
1054
+ display: {
1055
+ provider: "deepseek",
1056
+ description: "DeepSeek V4 Flash thinking/non-thinking model with vision, tool calls, and JSON output; 1M-token context and up to 384K output tokens."
1057
+ },
1058
+ capabilities: {
1059
+ vision: true,
1060
+ tools: true,
1061
+ structuredOutput: true,
1062
+ contextWindow: 1e6
1063
+ }
1064
+ }),
1065
+ text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro", {
1066
+ display: {
1067
+ provider: "deepseek",
1068
+ 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."
1069
+ },
1070
+ capabilities: {
1071
+ vision: false,
1072
+ tools: true,
1073
+ structuredOutput: true,
1074
+ contextWindow: 1e6
1075
+ }
1076
+ }),
1077
+ // 1M-token context: https://docs.x.ai/docs/models/grok-4.3
1078
+ text("grok-4.3", "Grok 4.3", "grok-4.3", {
1079
+ display: {
1080
+ provider: "xai",
1081
+ description: "xAI Grok 4.3 reasoning model with tool calling and structured outputs; text and image input, 1M-token context."
1082
+ },
1083
+ capabilities: {
1084
+ vision: true,
1085
+ tools: true,
1086
+ structuredOutput: true,
1087
+ contextWindow: 1e6
1088
+ }
1089
+ }),
1090
+ // Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
1091
+ text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
1092
+ display: {
1093
+ provider: "moonshot",
1094
+ description: "Moonshot Kimi K2.5; the provider retired the model on 2026-08-31 and calls now return a model-not-found error."
1095
+ },
1096
+ capabilities: {}
1097
+ }),
1098
+ text("kimi-k3", "Kimi K3", "kimi-k3", {
1099
+ display: {
1100
+ provider: "moonshot",
1101
+ description: "Moonshot Kimi K3 flagship model with native visual understanding and always-on thinking; text, image, and video input, 1M-token context."
1102
+ },
1103
+ capabilities: {
1104
+ vision: true,
1105
+ tools: true,
1106
+ structuredOutput: true,
1107
+ contextWindow: 1e6
1108
+ }
1109
+ }),
679
1110
  // Cowork calls the provider "MiniMax-M3"; the pricing key is lowercase.
680
- text("minimax-m3", "MiniMax M3", "MiniMax-M3", { aliases: ["MiniMax-M3"] })
1111
+ // 1M-token context: https://platform.minimax.io/docs/api-reference/text-openai-api
1112
+ text("minimax-m3", "MiniMax M3", "MiniMax-M3", {
1113
+ aliases: ["MiniMax-M3"],
1114
+ display: {
1115
+ provider: "minimax",
1116
+ description: "MiniMax M3 frontier multimodal model for agentic reasoning, tool use, and coding; text, image, and video input, 1M-token context."
1117
+ },
1118
+ capabilities: { vision: true, tools: true, contextWindow: 1e6 }
1119
+ })
681
1120
  ];
682
1121
 
683
1122
  // src/catalog/video.ts
@@ -689,6 +1128,8 @@ var GROK_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
689
1128
  var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
690
1129
  var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
691
1130
  var NEGATIVE_PROMPT = "blur, distort, and low quality";
1131
+ var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
1132
+ var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
692
1133
  var VIDEO_MODELS = [
693
1134
  {
694
1135
  id: "veo-3.1",
@@ -712,7 +1153,13 @@ var VIDEO_MODELS = [
712
1153
  },
713
1154
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
714
1155
  usage: { ...VIDEO_USAGE },
715
- pricingKind: "video_per_second"
1156
+ pricingKind: "video_per_second",
1157
+ display: {
1158
+ provider: "google",
1159
+ description: "Google's highest-quality video generation model. Supports up to 4K resolution and 8-second clips with reference image conditioning.",
1160
+ logo: GOOGLE_LOGO
1161
+ },
1162
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
716
1163
  },
717
1164
  {
718
1165
  id: "veo-3.1-fast",
@@ -735,7 +1182,12 @@ var VIDEO_MODELS = [
735
1182
  },
736
1183
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
737
1184
  usage: { ...VIDEO_USAGE },
738
- pricingKind: "video_per_second"
1185
+ pricingKind: "video_per_second",
1186
+ display: {
1187
+ provider: "google",
1188
+ description: "Faster variant of Google Veo 3.1; text- and image-to-video with natively generated audio at 4 or 8 seconds."
1189
+ },
1190
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
739
1191
  },
740
1192
  {
741
1193
  id: "veo-3.1-lite",
@@ -758,7 +1210,12 @@ var VIDEO_MODELS = [
758
1210
  },
759
1211
  defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
760
1212
  usage: { ...VIDEO_USAGE },
761
- pricingKind: "video_per_second"
1213
+ pricingKind: "video_per_second",
1214
+ display: {
1215
+ provider: "google",
1216
+ 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."
1217
+ },
1218
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
762
1219
  },
763
1220
  {
764
1221
  id: "gemini-omni-flash",
@@ -785,7 +1242,13 @@ var VIDEO_MODELS = [
785
1242
  },
786
1243
  defaults: {},
787
1244
  usage: { ...VIDEO_USAGE },
788
- pricingKind: "video_per_second"
1245
+ pricingKind: "video_per_second",
1246
+ display: {
1247
+ provider: "google",
1248
+ 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.",
1249
+ logo: GOOGLE_LOGO
1250
+ },
1251
+ capabilities: { acceptsSourceVideo: true }
789
1252
  },
790
1253
  {
791
1254
  id: "gemini-omni-1.1-flash",
@@ -804,7 +1267,12 @@ var VIDEO_MODELS = [
804
1267
  },
805
1268
  defaults: {},
806
1269
  usage: { ...VIDEO_USAGE },
807
- pricingKind: "video_per_second"
1270
+ pricingKind: "video_per_second",
1271
+ display: {
1272
+ provider: "google",
1273
+ 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."
1274
+ },
1275
+ capabilities: { acceptsSourceVideo: true }
808
1276
  },
809
1277
  {
810
1278
  // vibe-triggers and Space Builder drop the ratio when a frame is wired; Cowork always sends it.
@@ -830,7 +1298,13 @@ var VIDEO_MODELS = [
830
1298
  generateAudio: true
831
1299
  },
832
1300
  usage: { ...VIDEO_USAGE },
833
- pricingKind: "video_per_second"
1301
+ pricingKind: "video_per_second",
1302
+ display: {
1303
+ provider: "bytedance",
1304
+ description: "High-quality AI video generation with reference image conditioning. Supports 4-15 second clips with human preprocessing.",
1305
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png"
1306
+ },
1307
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
834
1308
  },
835
1309
  {
836
1310
  id: "seedance-2.0-fast",
@@ -855,7 +1329,12 @@ var VIDEO_MODELS = [
855
1329
  generateAudio: true
856
1330
  },
857
1331
  usage: { ...VIDEO_USAGE },
858
- pricingKind: "video_per_second"
1332
+ pricingKind: "video_per_second",
1333
+ display: {
1334
+ provider: "bytedance",
1335
+ 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."
1336
+ },
1337
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
859
1338
  },
860
1339
  {
861
1340
  // generateAudio defaults to false here (trigger-workflows); Space Builder defaults it to true.
@@ -881,7 +1360,12 @@ var VIDEO_MODELS = [
881
1360
  generateAudio: false
882
1361
  },
883
1362
  usage: { ...VIDEO_USAGE },
884
- pricingKind: "video_per_second"
1363
+ pricingKind: "video_per_second",
1364
+ display: {
1365
+ provider: "bytedance",
1366
+ 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."
1367
+ },
1368
+ capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
885
1369
  },
886
1370
  {
887
1371
  // Cowork allows 7 reference images and durations 4/6/8/10; Space Builder allows 5 and 1-15s.
@@ -902,7 +1386,13 @@ var VIDEO_MODELS = [
902
1386
  // No resolution default: xAI picks its own unless the caller asks.
903
1387
  defaults: { durationSeconds: 8, aspectRatio: "16:9" },
904
1388
  usage: { unit: "reported_cost_usd", modality: "VIDEO" },
905
- pricingKind: "video_per_second"
1389
+ pricingKind: "video_per_second",
1390
+ display: {
1391
+ provider: "xai",
1392
+ description: "xAI's reference-to-video model. Generates short clips conditioned on up to 7 reference images with flexible aspect ratios.",
1393
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/858b7fcc-9bd5-411d-aea1-a7b35ecfffab_compressed.png"
1394
+ },
1395
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
906
1396
  },
907
1397
  {
908
1398
  id: "kling-2.5",
@@ -925,7 +1415,12 @@ var VIDEO_MODELS = [
925
1415
  negativePrompt: NEGATIVE_PROMPT
926
1416
  },
927
1417
  usage: { ...VIDEO_USAGE },
928
- pricingKind: "video_per_second"
1418
+ pricingKind: "video_per_second",
1419
+ display: {
1420
+ provider: "kuaishou",
1421
+ 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."
1422
+ },
1423
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
929
1424
  },
930
1425
  {
931
1426
  // trigger-workflows validates 5/10 only; Space Builder allows 3-15s (Kling30Input).
@@ -949,7 +1444,12 @@ var VIDEO_MODELS = [
949
1444
  negativePrompt: NEGATIVE_PROMPT
950
1445
  },
951
1446
  usage: { ...VIDEO_USAGE },
952
- pricingKind: "video_per_second"
1447
+ pricingKind: "video_per_second",
1448
+ display: {
1449
+ provider: "kuaishou",
1450
+ 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."
1451
+ },
1452
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
953
1453
  },
954
1454
  {
955
1455
  // mode standard/pro selects 720p/1080p; the endpoint takes no separate resolution.
@@ -980,7 +1480,12 @@ var VIDEO_MODELS = [
980
1480
  },
981
1481
  defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
982
1482
  usage: { unit: "compute_seconds", modality: "VIDEO" },
983
- pricingKind: "video_per_second"
1483
+ pricingKind: "video_per_second",
1484
+ display: {
1485
+ provider: "kuaishou",
1486
+ 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."
1487
+ },
1488
+ capabilities: {}
984
1489
  },
985
1490
  {
986
1491
  id: "minimax-h3",
@@ -1003,7 +1508,12 @@ var VIDEO_MODELS = [
1003
1508
  promptExpansion: "balanced"
1004
1509
  },
1005
1510
  usage: { ...VIDEO_USAGE },
1006
- pricingKind: "video_per_second"
1511
+ pricingKind: "video_per_second",
1512
+ display: {
1513
+ provider: "minimax",
1514
+ 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."
1515
+ },
1516
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
1007
1517
  },
1008
1518
  {
1009
1519
  id: "minimax-h3-max",
@@ -1026,7 +1536,12 @@ var VIDEO_MODELS = [
1026
1536
  promptExpansion: "balanced"
1027
1537
  },
1028
1538
  usage: { ...VIDEO_USAGE },
1029
- pricingKind: "video_per_second"
1539
+ pricingKind: "video_per_second",
1540
+ display: {
1541
+ provider: "minimax",
1542
+ description: "High-speed MiniMax H3 Max variant for text-to-video and image-to-video (first/last frame) only, up to 768p."
1543
+ },
1544
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
1030
1545
  },
1031
1546
  {
1032
1547
  id: "minimax-h3-reference",
@@ -1050,7 +1565,12 @@ var VIDEO_MODELS = [
1050
1565
  promptExpansion: "balanced"
1051
1566
  },
1052
1567
  usage: { ...VIDEO_USAGE },
1053
- pricingKind: "video_per_second"
1568
+ pricingKind: "video_per_second",
1569
+ display: {
1570
+ provider: "minimax",
1571
+ 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."
1572
+ },
1573
+ capabilities: {}
1054
1574
  },
1055
1575
  {
1056
1576
  id: "minimax-h3-max-reference",
@@ -1074,7 +1594,12 @@ var VIDEO_MODELS = [
1074
1594
  promptExpansion: "balanced"
1075
1595
  },
1076
1596
  usage: { ...VIDEO_USAGE },
1077
- pricingKind: "video_per_second"
1597
+ pricingKind: "video_per_second",
1598
+ display: {
1599
+ provider: "minimax",
1600
+ 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."
1601
+ },
1602
+ capabilities: {}
1078
1603
  },
1079
1604
  {
1080
1605
  // Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
@@ -1093,7 +1618,12 @@ var VIDEO_MODELS = [
1093
1618
  },
1094
1619
  defaults: { durationSeconds: 5, aspectRatio: "16:9" },
1095
1620
  usage: { ...VIDEO_USAGE },
1096
- pricingKind: "video_per_second"
1621
+ pricingKind: "video_per_second",
1622
+ display: {
1623
+ provider: "kuaishou",
1624
+ 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."
1625
+ },
1626
+ capabilities: { acceptsSourceVideo: true }
1097
1627
  },
1098
1628
  {
1099
1629
  id: "hailuo-02",
@@ -1110,7 +1640,12 @@ var VIDEO_MODELS = [
1110
1640
  },
1111
1641
  defaults: { durationSeconds: 6, resolution: "768p" },
1112
1642
  usage: { unit: "compute_seconds", modality: "VIDEO" },
1113
- pricingKind: "video_per_second"
1643
+ pricingKind: "video_per_second",
1644
+ display: {
1645
+ provider: "minimax",
1646
+ 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."
1647
+ },
1648
+ capabilities: {}
1114
1649
  },
1115
1650
  {
1116
1651
  id: "higgsfield-dop-preview",
@@ -1126,7 +1661,12 @@ var VIDEO_MODELS = [
1126
1661
  },
1127
1662
  defaults: {},
1128
1663
  usage: { ...VIDEO_USAGE },
1129
- pricingKind: "video_per_second"
1664
+ pricingKind: "video_per_second",
1665
+ display: {
1666
+ provider: "higgsfield",
1667
+ 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."
1668
+ },
1669
+ capabilities: {}
1130
1670
  }
1131
1671
  ];
1132
1672