@shop-os/modelkit 0.1.10 → 0.1.11

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/catalog.js CHANGED
@@ -96,8 +96,7 @@ var Catalog = class _Catalog {
96
96
  };
97
97
 
98
98
  // src/catalog/image.ts
99
- var IMAGE_USAGE = { unit: "images", modality: "IMAGE" };
100
- var IMAGE_GENERATE_EDIT = { imageGenerate: true, imageEdit: true };
99
+ var IMAGE_USAGE = { unit: "images" };
101
100
  var GEMINI_RATIOS = [
102
101
  "1:1",
103
102
  "2:3",
@@ -129,8 +128,7 @@ function geminiImage(id, label, aliases, sizes, display, exposure) {
129
128
  defaults: { size: "1K", aspectRatio: "1:1" },
130
129
  usage: { ...IMAGE_USAGE, slug: "gemini" },
131
130
  pricingKind: "image_size",
132
- display,
133
- capabilities: { ...IMAGE_GENERATE_EDIT }
131
+ display
134
132
  };
135
133
  return model;
136
134
  }
@@ -217,8 +215,7 @@ var IMAGE_MODELS = [
217
215
  provider: "openai",
218
216
  description: "The most capable model for image editing and complex creative instructions. Excels at text rendering, visual consistency, design generation, and iterative refinement.",
219
217
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/1204b494-8962-4f7f-af5e-699a8bdc98e3_compressed.png"
220
- },
221
- capabilities: { ...IMAGE_GENERATE_EDIT }
218
+ }
222
219
  },
223
220
  {
224
221
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -252,8 +249,7 @@ var IMAGE_MODELS = [
252
249
  display: {
253
250
  provider: "openai",
254
251
  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."
255
- },
256
- capabilities: { ...IMAGE_GENERATE_EDIT }
252
+ }
257
253
  },
258
254
  {
259
255
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -287,8 +283,7 @@ var IMAGE_MODELS = [
287
283
  display: {
288
284
  provider: "openai",
289
285
  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."
290
- },
291
- capabilities: { ...IMAGE_GENERATE_EDIT }
286
+ }
292
287
  },
293
288
  {
294
289
  // Cowork allows 7 ratios; trigger-workflows allows 9 (adds 3:2, 9:21, drops 4:5/5:4).
@@ -326,8 +321,7 @@ var IMAGE_MODELS = [
326
321
  provider: "meta",
327
322
  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.",
328
323
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/characters/1787909065794-k9a7zz.png"
329
- },
330
- capabilities: { ...IMAGE_GENERATE_EDIT }
324
+ }
331
325
  },
332
326
  {
333
327
  id: "seedream-5-0-pro",
@@ -353,8 +347,7 @@ var IMAGE_MODELS = [
353
347
  provider: "bytedance",
354
348
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png",
355
349
  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."
356
- },
357
- capabilities: { ...IMAGE_GENERATE_EDIT }
350
+ }
358
351
  },
359
352
  {
360
353
  id: "seedream-4.5",
@@ -391,8 +384,7 @@ var IMAGE_MODELS = [
391
384
  display: {
392
385
  provider: "bytedance",
393
386
  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."
394
- },
395
- capabilities: { ...IMAGE_GENERATE_EDIT }
387
+ }
396
388
  },
397
389
  {
398
390
  id: "flux-2-pro",
@@ -414,9 +406,9 @@ var IMAGE_MODELS = [
414
406
  pricingKind: "image_size",
415
407
  display: {
416
408
  provider: "black-forest-labs",
409
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/flux.png",
417
410
  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."
418
- },
419
- capabilities: { ...IMAGE_GENERATE_EDIT }
411
+ }
420
412
  },
421
413
  {
422
414
  // Prodia's gemini-3-pro jobs take aspect_ratio + resolution (1K/2K/4K), not
@@ -442,8 +434,7 @@ var IMAGE_MODELS = [
442
434
  display: {
443
435
  provider: "google",
444
436
  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."
445
- },
446
- capabilities: { ...IMAGE_GENERATE_EDIT }
437
+ }
447
438
  },
448
439
  {
449
440
  // Nano Banana (img2img.v2) is flat-rate with aspect_ratio only; 3:2, 4:5,
@@ -468,8 +459,7 @@ var IMAGE_MODELS = [
468
459
  display: {
469
460
  provider: "google",
470
461
  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."
471
- },
472
- capabilities: { ...IMAGE_GENERATE_EDIT }
462
+ }
473
463
  },
474
464
  {
475
465
  // WAN 2.7 takes `images` (up to 9) and a `size` enum whose exact values
@@ -490,13 +480,12 @@ var IMAGE_MODELS = [
490
480
  supports: []
491
481
  },
492
482
  defaults: { size: "1K", aspectRatio: "1:1" },
493
- usage: { unit: "compute_seconds", modality: "IMAGE" },
483
+ usage: { unit: "compute_seconds" },
494
484
  pricingKind: "image_size",
495
485
  display: {
496
486
  provider: "alibaba",
497
487
  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)."
498
- },
499
- capabilities: { ...IMAGE_GENERATE_EDIT }
488
+ }
500
489
  },
501
490
  {
502
491
  // Qwen Image 2 Pro has aspect_ratio but no size input; resolution follows
@@ -518,13 +507,12 @@ var IMAGE_MODELS = [
518
507
  supports: []
519
508
  },
520
509
  defaults: { aspectRatio: "1:1" },
521
- usage: { unit: "compute_seconds", modality: "IMAGE" },
510
+ usage: { unit: "compute_seconds" },
522
511
  pricingKind: "image_size",
523
512
  display: {
524
513
  provider: "alibaba",
525
514
  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."
526
- },
527
- capabilities: { ...IMAGE_GENERATE_EDIT }
515
+ }
528
516
  },
529
517
  {
530
518
  // Qwen Image Edit Plus takes aspect_ratio (or match_input_image) and
@@ -546,13 +534,12 @@ var IMAGE_MODELS = [
546
534
  supports: ["outputFormat"]
547
535
  },
548
536
  defaults: { outputFormat: "png" },
549
- usage: { unit: "compute_seconds", modality: "IMAGE" },
537
+ usage: { unit: "compute_seconds" },
550
538
  pricingKind: "image_size",
551
539
  display: {
552
540
  provider: "alibaba",
553
541
  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."
554
- },
555
- capabilities: { ...IMAGE_GENERATE_EDIT }
542
+ }
556
543
  }
557
544
  ];
558
545
 
@@ -574,7 +561,7 @@ var OTHER_MODELS = [
574
561
  supports: []
575
562
  },
576
563
  defaults: {},
577
- usage: { unit: "images", modality: "AUDIO" },
564
+ usage: { unit: "images" },
578
565
  pricingKind: "flat",
579
566
  display: {
580
567
  provider: "google",
@@ -597,7 +584,7 @@ var OTHER_MODELS = [
597
584
  supports: []
598
585
  },
599
586
  defaults: {},
600
- usage: { unit: "images", modality: "AUDIO" },
587
+ usage: { unit: "images" },
601
588
  pricingKind: "flat",
602
589
  display: {
603
590
  provider: "google",
@@ -620,7 +607,7 @@ var OTHER_MODELS = [
620
607
  supports: ["seed", "negativePrompt"]
621
608
  },
622
609
  defaults: {},
623
- usage: { unit: "compute_seconds", modality: "AUDIO" },
610
+ usage: { unit: "compute_seconds" },
624
611
  pricingKind: "flat",
625
612
  display: {
626
613
  provider: "google",
@@ -643,7 +630,7 @@ var OTHER_MODELS = [
643
630
  supports: ["seed", "negativePrompt"]
644
631
  },
645
632
  defaults: { durationSeconds: 8 },
646
- usage: { unit: "compute_seconds", modality: "AUDIO" },
633
+ usage: { unit: "compute_seconds" },
647
634
  pricingKind: "flat",
648
635
  display: {
649
636
  provider: "mmaudio",
@@ -666,7 +653,7 @@ var OTHER_MODELS = [
666
653
  },
667
654
  defaults: { durationSeconds: 15, instrumental: true },
668
655
  // Replicate's run() does not report predict_time; billed by generated length.
669
- usage: { unit: "seconds", modality: "AUDIO" },
656
+ usage: { unit: "seconds" },
670
657
  pricingKind: "flat",
671
658
  display: {
672
659
  provider: "elevenlabs",
@@ -689,13 +676,13 @@ var OTHER_MODELS = [
689
676
  supports: ["scaleFactor", "outputFormat", "upscale"]
690
677
  },
691
678
  defaults: { scaleFactor: 2, outputFormat: "png" },
692
- usage: { unit: "compute_seconds", modality: "IMAGE" },
679
+ usage: { unit: "compute_seconds" },
693
680
  pricingKind: "flat",
694
681
  display: {
695
682
  provider: "topaz",
683
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/topazlabs.png",
696
684
  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."
697
- },
698
- capabilities: { imageEdit: true }
685
+ }
699
686
  },
700
687
  {
701
688
  id: "bg-remove",
@@ -712,19 +699,30 @@ var OTHER_MODELS = [
712
699
  supports: []
713
700
  },
714
701
  defaults: {},
715
- usage: { unit: "images", modality: "IMAGE" },
702
+ usage: { unit: "images" },
716
703
  pricingKind: "flat",
717
704
  display: {
718
705
  provider: "prodia",
719
706
  description: "Prodia background removal; takes one input image and returns a PNG cut-out of the subject plus an optional black-and-white mask."
720
- },
721
- capabilities: { imageEdit: true }
707
+ }
722
708
  }
723
709
  ];
724
710
 
725
711
  // src/catalog/text.ts
726
- var TEXT_USAGE = { unit: "tokens", modality: "TEXT" };
712
+ var TEXT_USAGE = { unit: "tokens" };
713
+ var CDN = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image";
714
+ var PROVIDER_LOGOS = {
715
+ anthropic: `${CDN}/25fad392-188c-4829-a3d0-c4fa02d1c8cd.png`,
716
+ openai: `${CDN}/1204b494-8962-4f7f-af5e-699a8bdc98e3.png`,
717
+ google: `${CDN}/192485d2-a76a-4657-9c06-930b2c70badd.png`,
718
+ deepseek: `${CDN}/9b7406d2-a696-4558-ab79-90a37e3f4574.png`,
719
+ xai: `${CDN}/858b7fcc-9bd5-411d-aea1-a7b35ecfffab.png`,
720
+ moonshot: `${CDN}/5a1e2eae-3474-4fac-9c74-a93f41ee6f67.png`,
721
+ minimax: `${CDN}/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png`
722
+ };
727
723
  function text(id, label, providerModelId, extra) {
724
+ const display = extra?.display;
725
+ const logo = display && !display.logo ? PROVIDER_LOGOS[display.provider] : void 0;
728
726
  return {
729
727
  id,
730
728
  aliases: [],
@@ -738,7 +736,8 @@ function text(id, label, providerModelId, extra) {
738
736
  defaults: {},
739
737
  usage: { ...TEXT_USAGE },
740
738
  pricingKind: "token",
741
- ...extra
739
+ ...extra,
740
+ ...display && logo ? { display: { ...display, logo } } : {}
742
741
  };
743
742
  }
744
743
  var ANTHROPIC_THINKING = {
@@ -757,7 +756,7 @@ var TEXT_MODELS = [
757
756
  costTier: 2,
758
757
  description: "OpenAI GPT-4o flagship multimodal model; text and image input, 128K-token context."
759
758
  },
760
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
759
+ capabilities: { vision: true, contextWindow: 128e3 }
761
760
  }),
762
761
  text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini", {
763
762
  exposure: "internal",
@@ -766,7 +765,7 @@ var TEXT_MODELS = [
766
765
  costTier: 1,
767
766
  description: "OpenAI GPT-4o mini fast, low-cost multimodal model; text and image input, 128K-token context."
768
767
  },
769
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
768
+ capabilities: { vision: true, contextWindow: 128e3 }
770
769
  }),
771
770
  text("gpt-5.1", "GPT-5.1", "gpt-5.1", {
772
771
  exposure: "catalog",
@@ -775,7 +774,7 @@ var TEXT_MODELS = [
775
774
  costTier: 3,
776
775
  description: "OpenAI GPT-5.1 reasoning model for coding and agentic tasks; text and image input, 400K-token context."
777
776
  },
778
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
777
+ capabilities: { vision: true, contextWindow: 4e5 }
779
778
  }),
780
779
  text("gpt-5.2", "GPT-5.2", "gpt-5.2", {
781
780
  exposure: "catalog",
@@ -784,7 +783,7 @@ var TEXT_MODELS = [
784
783
  costTier: 3,
785
784
  description: "OpenAI GPT-5.2 reasoning model for complex professional work; text and image input, 400K-token context."
786
785
  },
787
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
786
+ capabilities: { vision: true, contextWindow: 4e5 }
788
787
  }),
789
788
  // 1.05M-token context: https://platform.openai.com/docs/models/gpt-5.4
790
789
  text("gpt-5.4", "GPT-5.4", "gpt-5.4", {
@@ -796,8 +795,6 @@ var TEXT_MODELS = [
796
795
  },
797
796
  capabilities: {
798
797
  vision: true,
799
- tools: true,
800
- structuredOutput: true,
801
798
  contextWindow: 105e4
802
799
  }
803
800
  }),
@@ -810,7 +807,7 @@ var TEXT_MODELS = [
810
807
  costTier: 1,
811
808
  description: "OpenAI GPT-5.4 mini efficient reasoning model for high-volume workloads; text and image input, 400K-token context."
812
809
  },
813
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
810
+ capabilities: { vision: true, contextWindow: 4e5 }
814
811
  }),
815
812
  text("gpt-5.5", "GPT-5.5", "gpt-5.5", {
816
813
  exposure: "catalog",
@@ -821,8 +818,6 @@ var TEXT_MODELS = [
821
818
  },
822
819
  capabilities: {
823
820
  vision: true,
824
- tools: true,
825
- structuredOutput: true,
826
821
  contextWindow: 105e4
827
822
  }
828
823
  }),
@@ -837,8 +832,6 @@ var TEXT_MODELS = [
837
832
  capabilities: {
838
833
  reasoning: true,
839
834
  vision: true,
840
- tools: true,
841
- structuredOutput: true,
842
835
  contextWindow: 105e4
843
836
  }
844
837
  }),
@@ -853,8 +846,6 @@ var TEXT_MODELS = [
853
846
  capabilities: {
854
847
  reasoning: true,
855
848
  vision: true,
856
- tools: true,
857
- structuredOutput: true,
858
849
  contextWindow: 105e4
859
850
  }
860
851
  }),
@@ -869,8 +860,6 @@ var TEXT_MODELS = [
869
860
  capabilities: {
870
861
  reasoning: true,
871
862
  vision: true,
872
- tools: true,
873
- structuredOutput: true,
874
863
  contextWindow: 105e4
875
864
  }
876
865
  }),
@@ -883,7 +872,7 @@ var TEXT_MODELS = [
883
872
  costTier: 2,
884
873
  description: "Anthropic Claude Sonnet 4.5 (legacy) balanced model; text and image input, 200K-token context."
885
874
  },
886
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
875
+ capabilities: { vision: true, contextWindow: 2e5 }
887
876
  }),
888
877
  // Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
889
878
  text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
@@ -903,8 +892,6 @@ var TEXT_MODELS = [
903
892
  capabilities: {
904
893
  reasoning: true,
905
894
  vision: true,
906
- tools: true,
907
- structuredOutput: true,
908
895
  contextWindow: 1e6
909
896
  }
910
897
  }),
@@ -919,8 +906,6 @@ var TEXT_MODELS = [
919
906
  capabilities: {
920
907
  reasoning: true,
921
908
  vision: true,
922
- tools: true,
923
- structuredOutput: true,
924
909
  contextWindow: 1e6
925
910
  }
926
911
  }),
@@ -936,8 +921,6 @@ var TEXT_MODELS = [
936
921
  capabilities: {
937
922
  reasoning: true,
938
923
  vision: true,
939
- tools: true,
940
- structuredOutput: true,
941
924
  contextWindow: 1e6
942
925
  }
943
926
  }),
@@ -953,8 +936,6 @@ var TEXT_MODELS = [
953
936
  capabilities: {
954
937
  reasoning: true,
955
938
  vision: true,
956
- tools: true,
957
- structuredOutput: true,
958
939
  contextWindow: 2e5
959
940
  }
960
941
  }),
@@ -968,8 +949,6 @@ var TEXT_MODELS = [
968
949
  },
969
950
  capabilities: {
970
951
  vision: true,
971
- tools: true,
972
- structuredOutput: true,
973
952
  contextWindow: 1e6
974
953
  }
975
954
  }),
@@ -982,8 +961,6 @@ var TEXT_MODELS = [
982
961
  },
983
962
  capabilities: {
984
963
  vision: true,
985
- tools: true,
986
- structuredOutput: true,
987
964
  contextWindow: 1e6
988
965
  }
989
966
  }),
@@ -996,8 +973,6 @@ var TEXT_MODELS = [
996
973
  },
997
974
  capabilities: {
998
975
  vision: true,
999
- tools: true,
1000
- structuredOutput: true,
1001
976
  contextWindow: 1048576
1002
977
  }
1003
978
  }),
@@ -1010,8 +985,6 @@ var TEXT_MODELS = [
1010
985
  },
1011
986
  capabilities: {
1012
987
  vision: true,
1013
- tools: true,
1014
- structuredOutput: true,
1015
988
  contextWindow: 1048576
1016
989
  }
1017
990
  }),
@@ -1024,8 +997,6 @@ var TEXT_MODELS = [
1024
997
  },
1025
998
  capabilities: {
1026
999
  vision: true,
1027
- tools: true,
1028
- structuredOutput: true,
1029
1000
  contextWindow: 1048576
1030
1001
  }
1031
1002
  }),
@@ -1038,8 +1009,6 @@ var TEXT_MODELS = [
1038
1009
  },
1039
1010
  capabilities: {
1040
1011
  vision: true,
1041
- tools: true,
1042
- structuredOutput: true,
1043
1012
  contextWindow: 1048576
1044
1013
  }
1045
1014
  }),
@@ -1052,8 +1021,6 @@ var TEXT_MODELS = [
1052
1021
  },
1053
1022
  capabilities: {
1054
1023
  vision: true,
1055
- tools: true,
1056
- structuredOutput: true,
1057
1024
  contextWindow: 1048576
1058
1025
  }
1059
1026
  }),
@@ -1067,8 +1034,6 @@ var TEXT_MODELS = [
1067
1034
  },
1068
1035
  capabilities: {
1069
1036
  vision: true,
1070
- tools: true,
1071
- structuredOutput: true,
1072
1037
  contextWindow: 1048576
1073
1038
  }
1074
1039
  }),
@@ -1081,8 +1046,6 @@ var TEXT_MODELS = [
1081
1046
  },
1082
1047
  capabilities: {
1083
1048
  vision: true,
1084
- tools: true,
1085
- structuredOutput: true,
1086
1049
  contextWindow: 1048576
1087
1050
  }
1088
1051
  }),
@@ -1101,8 +1064,6 @@ var TEXT_MODELS = [
1101
1064
  },
1102
1065
  capabilities: {
1103
1066
  vision: true,
1104
- tools: true,
1105
- structuredOutput: true,
1106
1067
  contextWindow: 1048576
1107
1068
  }
1108
1069
  }),
@@ -1115,8 +1076,6 @@ var TEXT_MODELS = [
1115
1076
  },
1116
1077
  capabilities: {
1117
1078
  vision: true,
1118
- tools: false,
1119
- structuredOutput: true,
1120
1079
  contextWindow: 128e3
1121
1080
  }
1122
1081
  }),
@@ -1129,8 +1088,6 @@ var TEXT_MODELS = [
1129
1088
  },
1130
1089
  capabilities: {
1131
1090
  vision: true,
1132
- tools: false,
1133
- structuredOutput: true,
1134
1091
  contextWindow: 2e5
1135
1092
  }
1136
1093
  }),
@@ -1143,8 +1100,6 @@ var TEXT_MODELS = [
1143
1100
  },
1144
1101
  capabilities: {
1145
1102
  vision: true,
1146
- tools: false,
1147
- structuredOutput: true,
1148
1103
  contextWindow: 128e3
1149
1104
  }
1150
1105
  }),
@@ -1164,8 +1119,6 @@ var TEXT_MODELS = [
1164
1119
  capabilities: {
1165
1120
  reasoning: true,
1166
1121
  vision: true,
1167
- tools: true,
1168
- structuredOutput: true,
1169
1122
  contextWindow: 1e6
1170
1123
  }
1171
1124
  }),
@@ -1180,8 +1133,6 @@ var TEXT_MODELS = [
1180
1133
  capabilities: {
1181
1134
  reasoning: true,
1182
1135
  vision: false,
1183
- tools: true,
1184
- structuredOutput: true,
1185
1136
  contextWindow: 1e6
1186
1137
  }
1187
1138
  }),
@@ -1195,14 +1146,14 @@ var TEXT_MODELS = [
1195
1146
  },
1196
1147
  capabilities: {
1197
1148
  vision: true,
1198
- tools: true,
1199
- structuredOutput: true,
1200
1149
  contextWindow: 1e6
1201
1150
  }
1202
1151
  }),
1203
1152
  // Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
1204
1153
  text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
1205
- exposure: "catalog",
1154
+ lifecycle: "deprecated",
1155
+ replacedBy: "kimi-k3",
1156
+ exposure: "internal",
1206
1157
  display: {
1207
1158
  chat: { temperature: 1 },
1208
1159
  provider: "moonshot",
@@ -1222,8 +1173,6 @@ var TEXT_MODELS = [
1222
1173
  capabilities: {
1223
1174
  reasoning: true,
1224
1175
  vision: true,
1225
- tools: true,
1226
- structuredOutput: true,
1227
1176
  contextWindow: 1e6
1228
1177
  }
1229
1178
  }),
@@ -1237,12 +1186,12 @@ var TEXT_MODELS = [
1237
1186
  costTier: 2,
1238
1187
  description: "MiniMax M3 frontier multimodal model for agentic reasoning, tool use, and coding; text, image, and video input, 1M-token context."
1239
1188
  },
1240
- capabilities: { vision: true, tools: true, contextWindow: 1e6 }
1189
+ capabilities: { vision: true, contextWindow: 1e6 }
1241
1190
  })
1242
1191
  ];
1243
1192
 
1244
1193
  // src/catalog/video.ts
1245
- var VIDEO_USAGE = { unit: "seconds", modality: "VIDEO" };
1194
+ var VIDEO_USAGE = { unit: "seconds" };
1246
1195
  var SEEDANCE_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "adaptive"];
1247
1196
  var KLING_RATIOS = ["16:9", "9:16", "1:1", "adaptive"];
1248
1197
  var OMNI_RATIOS = ["16:9", "9:16"];
@@ -1416,7 +1365,7 @@ var VIDEO_MODELS = [
1416
1365
  constraints: {
1417
1366
  aspectRatios: [...SEEDANCE_RATIOS],
1418
1367
  resolutions: ["480p", "720p", "1080p", "4k"],
1419
- durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
1368
+ durations: { min: 4, max: 15 },
1420
1369
  durationPresets: [4, 6, 8, 10, 12, 15],
1421
1370
  references: { images: 9, videos: 3, audios: 3, audioOnly: false },
1422
1371
  ratioIgnoredWith: ["firstFrame"],
@@ -1449,7 +1398,7 @@ var VIDEO_MODELS = [
1449
1398
  constraints: {
1450
1399
  aspectRatios: [...SEEDANCE_RATIOS],
1451
1400
  resolutions: ["480p", "720p"],
1452
- durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
1401
+ durations: { min: 4, max: 15 },
1453
1402
  references: { images: 9, videos: 3, audios: 3, audioOnly: false },
1454
1403
  ratioIgnoredWith: ["firstFrame"],
1455
1404
  supports: ["generateAudio", "seed", "lastFrame", "watermark"]
@@ -1522,7 +1471,7 @@ var VIDEO_MODELS = [
1522
1471
  },
1523
1472
  // No resolution default: xAI picks its own unless the caller asks.
1524
1473
  defaults: { durationSeconds: 8, aspectRatio: "16:9" },
1525
- usage: { unit: "reported_cost_usd", modality: "VIDEO", slug: "grok" },
1474
+ usage: { unit: "reported_cost_usd", slug: "grok" },
1526
1475
  pricingKind: "video_per_second",
1527
1476
  display: {
1528
1477
  provider: "xai",
@@ -1556,6 +1505,7 @@ var VIDEO_MODELS = [
1556
1505
  pricingKind: "video_per_second",
1557
1506
  display: {
1558
1507
  provider: "kuaishou",
1508
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1559
1509
  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."
1560
1510
  },
1561
1511
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1586,6 +1536,7 @@ var VIDEO_MODELS = [
1586
1536
  pricingKind: "video_per_second",
1587
1537
  display: {
1588
1538
  provider: "kuaishou",
1539
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1589
1540
  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."
1590
1541
  },
1591
1542
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1619,10 +1570,11 @@ var VIDEO_MODELS = [
1619
1570
  supports: ["generateAudio", "lastFrame"]
1620
1571
  },
1621
1572
  defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
1622
- usage: { unit: "compute_seconds", modality: "VIDEO" },
1573
+ usage: { unit: "compute_seconds" },
1623
1574
  pricingKind: "video_per_second",
1624
1575
  display: {
1625
1576
  provider: "kuaishou",
1577
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1626
1578
  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."
1627
1579
  },
1628
1580
  capabilities: {}
@@ -1652,6 +1604,7 @@ var VIDEO_MODELS = [
1652
1604
  pricingKind: "video_per_second",
1653
1605
  display: {
1654
1606
  provider: "minimax",
1607
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1655
1608
  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."
1656
1609
  },
1657
1610
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1681,6 +1634,7 @@ var VIDEO_MODELS = [
1681
1634
  pricingKind: "video_per_second",
1682
1635
  display: {
1683
1636
  provider: "minimax",
1637
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1684
1638
  description: "High-speed MiniMax H3 Max variant for text-to-video and image-to-video (first/last frame) only, up to 768p."
1685
1639
  },
1686
1640
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1711,6 +1665,7 @@ var VIDEO_MODELS = [
1711
1665
  pricingKind: "video_per_second",
1712
1666
  display: {
1713
1667
  provider: "minimax",
1668
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1714
1669
  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."
1715
1670
  },
1716
1671
  capabilities: {}
@@ -1741,6 +1696,7 @@ var VIDEO_MODELS = [
1741
1696
  pricingKind: "video_per_second",
1742
1697
  display: {
1743
1698
  provider: "minimax",
1699
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1744
1700
  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."
1745
1701
  },
1746
1702
  capabilities: {}
@@ -1766,6 +1722,7 @@ var VIDEO_MODELS = [
1766
1722
  pricingKind: "video_per_second",
1767
1723
  display: {
1768
1724
  provider: "kuaishou",
1725
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1769
1726
  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."
1770
1727
  },
1771
1728
  capabilities: { acceptsSourceVideo: true }
@@ -1785,10 +1742,11 @@ var VIDEO_MODELS = [
1785
1742
  supports: ["lastFrame"]
1786
1743
  },
1787
1744
  defaults: { durationSeconds: 6, resolution: "768p" },
1788
- usage: { unit: "compute_seconds", modality: "VIDEO" },
1745
+ usage: { unit: "compute_seconds" },
1789
1746
  pricingKind: "video_per_second",
1790
1747
  display: {
1791
1748
  provider: "minimax",
1749
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1792
1750
  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."
1793
1751
  },
1794
1752
  capabilities: {}