@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/index.js CHANGED
@@ -99,8 +99,7 @@ var Catalog = class _Catalog {
99
99
  };
100
100
 
101
101
  // src/catalog/image.ts
102
- var IMAGE_USAGE = { unit: "images", modality: "IMAGE" };
103
- var IMAGE_GENERATE_EDIT = { imageGenerate: true, imageEdit: true };
102
+ var IMAGE_USAGE = { unit: "images" };
104
103
  var GEMINI_RATIOS = [
105
104
  "1:1",
106
105
  "2:3",
@@ -132,8 +131,7 @@ function geminiImage(id, label, aliases, sizes, display, exposure) {
132
131
  defaults: { size: "1K", aspectRatio: "1:1" },
133
132
  usage: { ...IMAGE_USAGE, slug: "gemini" },
134
133
  pricingKind: "image_size",
135
- display,
136
- capabilities: { ...IMAGE_GENERATE_EDIT }
134
+ display
137
135
  };
138
136
  return model;
139
137
  }
@@ -220,8 +218,7 @@ var IMAGE_MODELS = [
220
218
  provider: "openai",
221
219
  description: "The most capable model for image editing and complex creative instructions. Excels at text rendering, visual consistency, design generation, and iterative refinement.",
222
220
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/1204b494-8962-4f7f-af5e-699a8bdc98e3_compressed.png"
223
- },
224
- capabilities: { ...IMAGE_GENERATE_EDIT }
221
+ }
225
222
  },
226
223
  {
227
224
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -255,8 +252,7 @@ var IMAGE_MODELS = [
255
252
  display: {
256
253
  provider: "openai",
257
254
  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."
258
- },
259
- capabilities: { ...IMAGE_GENERATE_EDIT }
255
+ }
260
256
  },
261
257
  {
262
258
  // Same Images API surface as gpt-image-2 plus the "xhigh" and "max" quality tiers.
@@ -290,8 +286,7 @@ var IMAGE_MODELS = [
290
286
  display: {
291
287
  provider: "openai",
292
288
  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."
293
- },
294
- capabilities: { ...IMAGE_GENERATE_EDIT }
289
+ }
295
290
  },
296
291
  {
297
292
  // Cowork allows 7 ratios; trigger-workflows allows 9 (adds 3:2, 9:21, drops 4:5/5:4).
@@ -329,8 +324,7 @@ var IMAGE_MODELS = [
329
324
  provider: "meta",
330
325
  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.",
331
326
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/characters/1787909065794-k9a7zz.png"
332
- },
333
- capabilities: { ...IMAGE_GENERATE_EDIT }
327
+ }
334
328
  },
335
329
  {
336
330
  id: "seedream-5-0-pro",
@@ -356,8 +350,7 @@ var IMAGE_MODELS = [
356
350
  provider: "bytedance",
357
351
  logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png",
358
352
  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."
359
- },
360
- capabilities: { ...IMAGE_GENERATE_EDIT }
353
+ }
361
354
  },
362
355
  {
363
356
  id: "seedream-4.5",
@@ -394,8 +387,7 @@ var IMAGE_MODELS = [
394
387
  display: {
395
388
  provider: "bytedance",
396
389
  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."
397
- },
398
- capabilities: { ...IMAGE_GENERATE_EDIT }
390
+ }
399
391
  },
400
392
  {
401
393
  id: "flux-2-pro",
@@ -417,9 +409,9 @@ var IMAGE_MODELS = [
417
409
  pricingKind: "image_size",
418
410
  display: {
419
411
  provider: "black-forest-labs",
412
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/flux.png",
420
413
  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."
421
- },
422
- capabilities: { ...IMAGE_GENERATE_EDIT }
414
+ }
423
415
  },
424
416
  {
425
417
  // Prodia's gemini-3-pro jobs take aspect_ratio + resolution (1K/2K/4K), not
@@ -445,8 +437,7 @@ var IMAGE_MODELS = [
445
437
  display: {
446
438
  provider: "google",
447
439
  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."
448
- },
449
- capabilities: { ...IMAGE_GENERATE_EDIT }
440
+ }
450
441
  },
451
442
  {
452
443
  // Nano Banana (img2img.v2) is flat-rate with aspect_ratio only; 3:2, 4:5,
@@ -471,8 +462,7 @@ var IMAGE_MODELS = [
471
462
  display: {
472
463
  provider: "google",
473
464
  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."
474
- },
475
- capabilities: { ...IMAGE_GENERATE_EDIT }
465
+ }
476
466
  },
477
467
  {
478
468
  // WAN 2.7 takes `images` (up to 9) and a `size` enum whose exact values
@@ -493,13 +483,12 @@ var IMAGE_MODELS = [
493
483
  supports: []
494
484
  },
495
485
  defaults: { size: "1K", aspectRatio: "1:1" },
496
- usage: { unit: "compute_seconds", modality: "IMAGE" },
486
+ usage: { unit: "compute_seconds" },
497
487
  pricingKind: "image_size",
498
488
  display: {
499
489
  provider: "alibaba",
500
490
  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)."
501
- },
502
- capabilities: { ...IMAGE_GENERATE_EDIT }
491
+ }
503
492
  },
504
493
  {
505
494
  // Qwen Image 2 Pro has aspect_ratio but no size input; resolution follows
@@ -521,13 +510,12 @@ var IMAGE_MODELS = [
521
510
  supports: []
522
511
  },
523
512
  defaults: { aspectRatio: "1:1" },
524
- usage: { unit: "compute_seconds", modality: "IMAGE" },
513
+ usage: { unit: "compute_seconds" },
525
514
  pricingKind: "image_size",
526
515
  display: {
527
516
  provider: "alibaba",
528
517
  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."
529
- },
530
- capabilities: { ...IMAGE_GENERATE_EDIT }
518
+ }
531
519
  },
532
520
  {
533
521
  // Qwen Image Edit Plus takes aspect_ratio (or match_input_image) and
@@ -549,13 +537,12 @@ var IMAGE_MODELS = [
549
537
  supports: ["outputFormat"]
550
538
  },
551
539
  defaults: { outputFormat: "png" },
552
- usage: { unit: "compute_seconds", modality: "IMAGE" },
540
+ usage: { unit: "compute_seconds" },
553
541
  pricingKind: "image_size",
554
542
  display: {
555
543
  provider: "alibaba",
556
544
  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 }
545
+ }
559
546
  }
560
547
  ];
561
548
 
@@ -577,7 +564,7 @@ var OTHER_MODELS = [
577
564
  supports: []
578
565
  },
579
566
  defaults: {},
580
- usage: { unit: "images", modality: "AUDIO" },
567
+ usage: { unit: "images" },
581
568
  pricingKind: "flat",
582
569
  display: {
583
570
  provider: "google",
@@ -600,7 +587,7 @@ var OTHER_MODELS = [
600
587
  supports: []
601
588
  },
602
589
  defaults: {},
603
- usage: { unit: "images", modality: "AUDIO" },
590
+ usage: { unit: "images" },
604
591
  pricingKind: "flat",
605
592
  display: {
606
593
  provider: "google",
@@ -623,7 +610,7 @@ var OTHER_MODELS = [
623
610
  supports: ["seed", "negativePrompt"]
624
611
  },
625
612
  defaults: {},
626
- usage: { unit: "compute_seconds", modality: "AUDIO" },
613
+ usage: { unit: "compute_seconds" },
627
614
  pricingKind: "flat",
628
615
  display: {
629
616
  provider: "google",
@@ -646,7 +633,7 @@ var OTHER_MODELS = [
646
633
  supports: ["seed", "negativePrompt"]
647
634
  },
648
635
  defaults: { durationSeconds: 8 },
649
- usage: { unit: "compute_seconds", modality: "AUDIO" },
636
+ usage: { unit: "compute_seconds" },
650
637
  pricingKind: "flat",
651
638
  display: {
652
639
  provider: "mmaudio",
@@ -669,7 +656,7 @@ var OTHER_MODELS = [
669
656
  },
670
657
  defaults: { durationSeconds: 15, instrumental: true },
671
658
  // Replicate's run() does not report predict_time; billed by generated length.
672
- usage: { unit: "seconds", modality: "AUDIO" },
659
+ usage: { unit: "seconds" },
673
660
  pricingKind: "flat",
674
661
  display: {
675
662
  provider: "elevenlabs",
@@ -692,13 +679,13 @@ var OTHER_MODELS = [
692
679
  supports: ["scaleFactor", "outputFormat", "upscale"]
693
680
  },
694
681
  defaults: { scaleFactor: 2, outputFormat: "png" },
695
- usage: { unit: "compute_seconds", modality: "IMAGE" },
682
+ usage: { unit: "compute_seconds" },
696
683
  pricingKind: "flat",
697
684
  display: {
698
685
  provider: "topaz",
686
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/topazlabs.png",
699
687
  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."
700
- },
701
- capabilities: { imageEdit: true }
688
+ }
702
689
  },
703
690
  {
704
691
  id: "bg-remove",
@@ -715,19 +702,30 @@ var OTHER_MODELS = [
715
702
  supports: []
716
703
  },
717
704
  defaults: {},
718
- usage: { unit: "images", modality: "IMAGE" },
705
+ usage: { unit: "images" },
719
706
  pricingKind: "flat",
720
707
  display: {
721
708
  provider: "prodia",
722
709
  description: "Prodia background removal; takes one input image and returns a PNG cut-out of the subject plus an optional black-and-white mask."
723
- },
724
- capabilities: { imageEdit: true }
710
+ }
725
711
  }
726
712
  ];
727
713
 
728
714
  // src/catalog/text.ts
729
- var TEXT_USAGE = { unit: "tokens", modality: "TEXT" };
715
+ var TEXT_USAGE = { unit: "tokens" };
716
+ var CDN = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image";
717
+ var PROVIDER_LOGOS = {
718
+ anthropic: `${CDN}/25fad392-188c-4829-a3d0-c4fa02d1c8cd.png`,
719
+ openai: `${CDN}/1204b494-8962-4f7f-af5e-699a8bdc98e3.png`,
720
+ google: `${CDN}/192485d2-a76a-4657-9c06-930b2c70badd.png`,
721
+ deepseek: `${CDN}/9b7406d2-a696-4558-ab79-90a37e3f4574.png`,
722
+ xai: `${CDN}/858b7fcc-9bd5-411d-aea1-a7b35ecfffab.png`,
723
+ moonshot: `${CDN}/5a1e2eae-3474-4fac-9c74-a93f41ee6f67.png`,
724
+ minimax: `${CDN}/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png`
725
+ };
730
726
  function text(id, label, providerModelId, extra) {
727
+ const display = extra?.display;
728
+ const logo = display && !display.logo ? PROVIDER_LOGOS[display.provider] : void 0;
731
729
  return {
732
730
  id,
733
731
  aliases: [],
@@ -741,7 +739,8 @@ function text(id, label, providerModelId, extra) {
741
739
  defaults: {},
742
740
  usage: { ...TEXT_USAGE },
743
741
  pricingKind: "token",
744
- ...extra
742
+ ...extra,
743
+ ...display && logo ? { display: { ...display, logo } } : {}
745
744
  };
746
745
  }
747
746
  var ANTHROPIC_THINKING = {
@@ -760,7 +759,7 @@ var TEXT_MODELS = [
760
759
  costTier: 2,
761
760
  description: "OpenAI GPT-4o flagship multimodal model; text and image input, 128K-token context."
762
761
  },
763
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
762
+ capabilities: { vision: true, contextWindow: 128e3 }
764
763
  }),
765
764
  text("gpt-4o-mini", "GPT-4o mini", "gpt-4o-mini", {
766
765
  exposure: "internal",
@@ -769,7 +768,7 @@ var TEXT_MODELS = [
769
768
  costTier: 1,
770
769
  description: "OpenAI GPT-4o mini fast, low-cost multimodal model; text and image input, 128K-token context."
771
770
  },
772
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 128e3 }
771
+ capabilities: { vision: true, contextWindow: 128e3 }
773
772
  }),
774
773
  text("gpt-5.1", "GPT-5.1", "gpt-5.1", {
775
774
  exposure: "catalog",
@@ -778,7 +777,7 @@ var TEXT_MODELS = [
778
777
  costTier: 3,
779
778
  description: "OpenAI GPT-5.1 reasoning model for coding and agentic tasks; text and image input, 400K-token context."
780
779
  },
781
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
780
+ capabilities: { vision: true, contextWindow: 4e5 }
782
781
  }),
783
782
  text("gpt-5.2", "GPT-5.2", "gpt-5.2", {
784
783
  exposure: "catalog",
@@ -787,7 +786,7 @@ var TEXT_MODELS = [
787
786
  costTier: 3,
788
787
  description: "OpenAI GPT-5.2 reasoning model for complex professional work; text and image input, 400K-token context."
789
788
  },
790
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
789
+ capabilities: { vision: true, contextWindow: 4e5 }
791
790
  }),
792
791
  // 1.05M-token context: https://platform.openai.com/docs/models/gpt-5.4
793
792
  text("gpt-5.4", "GPT-5.4", "gpt-5.4", {
@@ -799,8 +798,6 @@ var TEXT_MODELS = [
799
798
  },
800
799
  capabilities: {
801
800
  vision: true,
802
- tools: true,
803
- structuredOutput: true,
804
801
  contextWindow: 105e4
805
802
  }
806
803
  }),
@@ -813,7 +810,7 @@ var TEXT_MODELS = [
813
810
  costTier: 1,
814
811
  description: "OpenAI GPT-5.4 mini efficient reasoning model for high-volume workloads; text and image input, 400K-token context."
815
812
  },
816
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 4e5 }
813
+ capabilities: { vision: true, contextWindow: 4e5 }
817
814
  }),
818
815
  text("gpt-5.5", "GPT-5.5", "gpt-5.5", {
819
816
  exposure: "catalog",
@@ -824,8 +821,6 @@ var TEXT_MODELS = [
824
821
  },
825
822
  capabilities: {
826
823
  vision: true,
827
- tools: true,
828
- structuredOutput: true,
829
824
  contextWindow: 105e4
830
825
  }
831
826
  }),
@@ -840,8 +835,6 @@ var TEXT_MODELS = [
840
835
  capabilities: {
841
836
  reasoning: true,
842
837
  vision: true,
843
- tools: true,
844
- structuredOutput: true,
845
838
  contextWindow: 105e4
846
839
  }
847
840
  }),
@@ -856,8 +849,6 @@ var TEXT_MODELS = [
856
849
  capabilities: {
857
850
  reasoning: true,
858
851
  vision: true,
859
- tools: true,
860
- structuredOutput: true,
861
852
  contextWindow: 105e4
862
853
  }
863
854
  }),
@@ -872,8 +863,6 @@ var TEXT_MODELS = [
872
863
  capabilities: {
873
864
  reasoning: true,
874
865
  vision: true,
875
- tools: true,
876
- structuredOutput: true,
877
866
  contextWindow: 105e4
878
867
  }
879
868
  }),
@@ -886,7 +875,7 @@ var TEXT_MODELS = [
886
875
  costTier: 2,
887
876
  description: "Anthropic Claude Sonnet 4.5 (legacy) balanced model; text and image input, 200K-token context."
888
877
  },
889
- capabilities: { vision: true, tools: true, structuredOutput: true, contextWindow: 2e5 }
878
+ capabilities: { vision: true, contextWindow: 2e5 }
890
879
  }),
891
880
  // Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
892
881
  text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
@@ -906,8 +895,6 @@ var TEXT_MODELS = [
906
895
  capabilities: {
907
896
  reasoning: true,
908
897
  vision: true,
909
- tools: true,
910
- structuredOutput: true,
911
898
  contextWindow: 1e6
912
899
  }
913
900
  }),
@@ -922,8 +909,6 @@ var TEXT_MODELS = [
922
909
  capabilities: {
923
910
  reasoning: true,
924
911
  vision: true,
925
- tools: true,
926
- structuredOutput: true,
927
912
  contextWindow: 1e6
928
913
  }
929
914
  }),
@@ -939,8 +924,6 @@ var TEXT_MODELS = [
939
924
  capabilities: {
940
925
  reasoning: true,
941
926
  vision: true,
942
- tools: true,
943
- structuredOutput: true,
944
927
  contextWindow: 1e6
945
928
  }
946
929
  }),
@@ -956,8 +939,6 @@ var TEXT_MODELS = [
956
939
  capabilities: {
957
940
  reasoning: true,
958
941
  vision: true,
959
- tools: true,
960
- structuredOutput: true,
961
942
  contextWindow: 2e5
962
943
  }
963
944
  }),
@@ -971,8 +952,6 @@ var TEXT_MODELS = [
971
952
  },
972
953
  capabilities: {
973
954
  vision: true,
974
- tools: true,
975
- structuredOutput: true,
976
955
  contextWindow: 1e6
977
956
  }
978
957
  }),
@@ -985,8 +964,6 @@ var TEXT_MODELS = [
985
964
  },
986
965
  capabilities: {
987
966
  vision: true,
988
- tools: true,
989
- structuredOutput: true,
990
967
  contextWindow: 1e6
991
968
  }
992
969
  }),
@@ -999,8 +976,6 @@ var TEXT_MODELS = [
999
976
  },
1000
977
  capabilities: {
1001
978
  vision: true,
1002
- tools: true,
1003
- structuredOutput: true,
1004
979
  contextWindow: 1048576
1005
980
  }
1006
981
  }),
@@ -1013,8 +988,6 @@ var TEXT_MODELS = [
1013
988
  },
1014
989
  capabilities: {
1015
990
  vision: true,
1016
- tools: true,
1017
- structuredOutput: true,
1018
991
  contextWindow: 1048576
1019
992
  }
1020
993
  }),
@@ -1027,8 +1000,6 @@ var TEXT_MODELS = [
1027
1000
  },
1028
1001
  capabilities: {
1029
1002
  vision: true,
1030
- tools: true,
1031
- structuredOutput: true,
1032
1003
  contextWindow: 1048576
1033
1004
  }
1034
1005
  }),
@@ -1041,8 +1012,6 @@ var TEXT_MODELS = [
1041
1012
  },
1042
1013
  capabilities: {
1043
1014
  vision: true,
1044
- tools: true,
1045
- structuredOutput: true,
1046
1015
  contextWindow: 1048576
1047
1016
  }
1048
1017
  }),
@@ -1055,8 +1024,6 @@ var TEXT_MODELS = [
1055
1024
  },
1056
1025
  capabilities: {
1057
1026
  vision: true,
1058
- tools: true,
1059
- structuredOutput: true,
1060
1027
  contextWindow: 1048576
1061
1028
  }
1062
1029
  }),
@@ -1070,8 +1037,6 @@ var TEXT_MODELS = [
1070
1037
  },
1071
1038
  capabilities: {
1072
1039
  vision: true,
1073
- tools: true,
1074
- structuredOutput: true,
1075
1040
  contextWindow: 1048576
1076
1041
  }
1077
1042
  }),
@@ -1084,8 +1049,6 @@ var TEXT_MODELS = [
1084
1049
  },
1085
1050
  capabilities: {
1086
1051
  vision: true,
1087
- tools: true,
1088
- structuredOutput: true,
1089
1052
  contextWindow: 1048576
1090
1053
  }
1091
1054
  }),
@@ -1104,8 +1067,6 @@ var TEXT_MODELS = [
1104
1067
  },
1105
1068
  capabilities: {
1106
1069
  vision: true,
1107
- tools: true,
1108
- structuredOutput: true,
1109
1070
  contextWindow: 1048576
1110
1071
  }
1111
1072
  }),
@@ -1118,8 +1079,6 @@ var TEXT_MODELS = [
1118
1079
  },
1119
1080
  capabilities: {
1120
1081
  vision: true,
1121
- tools: false,
1122
- structuredOutput: true,
1123
1082
  contextWindow: 128e3
1124
1083
  }
1125
1084
  }),
@@ -1132,8 +1091,6 @@ var TEXT_MODELS = [
1132
1091
  },
1133
1092
  capabilities: {
1134
1093
  vision: true,
1135
- tools: false,
1136
- structuredOutput: true,
1137
1094
  contextWindow: 2e5
1138
1095
  }
1139
1096
  }),
@@ -1146,8 +1103,6 @@ var TEXT_MODELS = [
1146
1103
  },
1147
1104
  capabilities: {
1148
1105
  vision: true,
1149
- tools: false,
1150
- structuredOutput: true,
1151
1106
  contextWindow: 128e3
1152
1107
  }
1153
1108
  }),
@@ -1167,8 +1122,6 @@ var TEXT_MODELS = [
1167
1122
  capabilities: {
1168
1123
  reasoning: true,
1169
1124
  vision: true,
1170
- tools: true,
1171
- structuredOutput: true,
1172
1125
  contextWindow: 1e6
1173
1126
  }
1174
1127
  }),
@@ -1183,8 +1136,6 @@ var TEXT_MODELS = [
1183
1136
  capabilities: {
1184
1137
  reasoning: true,
1185
1138
  vision: false,
1186
- tools: true,
1187
- structuredOutput: true,
1188
1139
  contextWindow: 1e6
1189
1140
  }
1190
1141
  }),
@@ -1198,14 +1149,14 @@ var TEXT_MODELS = [
1198
1149
  },
1199
1150
  capabilities: {
1200
1151
  vision: true,
1201
- tools: true,
1202
- structuredOutput: true,
1203
1152
  contextWindow: 1e6
1204
1153
  }
1205
1154
  }),
1206
1155
  // Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
1207
1156
  text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
1208
- exposure: "catalog",
1157
+ lifecycle: "deprecated",
1158
+ replacedBy: "kimi-k3",
1159
+ exposure: "internal",
1209
1160
  display: {
1210
1161
  chat: { temperature: 1 },
1211
1162
  provider: "moonshot",
@@ -1225,8 +1176,6 @@ var TEXT_MODELS = [
1225
1176
  capabilities: {
1226
1177
  reasoning: true,
1227
1178
  vision: true,
1228
- tools: true,
1229
- structuredOutput: true,
1230
1179
  contextWindow: 1e6
1231
1180
  }
1232
1181
  }),
@@ -1240,12 +1189,12 @@ var TEXT_MODELS = [
1240
1189
  costTier: 2,
1241
1190
  description: "MiniMax M3 frontier multimodal model for agentic reasoning, tool use, and coding; text, image, and video input, 1M-token context."
1242
1191
  },
1243
- capabilities: { vision: true, tools: true, contextWindow: 1e6 }
1192
+ capabilities: { vision: true, contextWindow: 1e6 }
1244
1193
  })
1245
1194
  ];
1246
1195
 
1247
1196
  // src/catalog/video.ts
1248
- var VIDEO_USAGE = { unit: "seconds", modality: "VIDEO" };
1197
+ var VIDEO_USAGE = { unit: "seconds" };
1249
1198
  var SEEDANCE_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "adaptive"];
1250
1199
  var KLING_RATIOS = ["16:9", "9:16", "1:1", "adaptive"];
1251
1200
  var OMNI_RATIOS = ["16:9", "9:16"];
@@ -1419,7 +1368,7 @@ var VIDEO_MODELS = [
1419
1368
  constraints: {
1420
1369
  aspectRatios: [...SEEDANCE_RATIOS],
1421
1370
  resolutions: ["480p", "720p", "1080p", "4k"],
1422
- durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
1371
+ durations: { min: 4, max: 15 },
1423
1372
  durationPresets: [4, 6, 8, 10, 12, 15],
1424
1373
  references: { images: 9, videos: 3, audios: 3, audioOnly: false },
1425
1374
  ratioIgnoredWith: ["firstFrame"],
@@ -1452,7 +1401,7 @@ var VIDEO_MODELS = [
1452
1401
  constraints: {
1453
1402
  aspectRatios: [...SEEDANCE_RATIOS],
1454
1403
  resolutions: ["480p", "720p"],
1455
- durations: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
1404
+ durations: { min: 4, max: 15 },
1456
1405
  references: { images: 9, videos: 3, audios: 3, audioOnly: false },
1457
1406
  ratioIgnoredWith: ["firstFrame"],
1458
1407
  supports: ["generateAudio", "seed", "lastFrame", "watermark"]
@@ -1525,7 +1474,7 @@ var VIDEO_MODELS = [
1525
1474
  },
1526
1475
  // No resolution default: xAI picks its own unless the caller asks.
1527
1476
  defaults: { durationSeconds: 8, aspectRatio: "16:9" },
1528
- usage: { unit: "reported_cost_usd", modality: "VIDEO", slug: "grok" },
1477
+ usage: { unit: "reported_cost_usd", slug: "grok" },
1529
1478
  pricingKind: "video_per_second",
1530
1479
  display: {
1531
1480
  provider: "xai",
@@ -1559,6 +1508,7 @@ var VIDEO_MODELS = [
1559
1508
  pricingKind: "video_per_second",
1560
1509
  display: {
1561
1510
  provider: "kuaishou",
1511
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1562
1512
  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."
1563
1513
  },
1564
1514
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1589,6 +1539,7 @@ var VIDEO_MODELS = [
1589
1539
  pricingKind: "video_per_second",
1590
1540
  display: {
1591
1541
  provider: "kuaishou",
1542
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1592
1543
  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."
1593
1544
  },
1594
1545
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1622,10 +1573,11 @@ var VIDEO_MODELS = [
1622
1573
  supports: ["generateAudio", "lastFrame"]
1623
1574
  },
1624
1575
  defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
1625
- usage: { unit: "compute_seconds", modality: "VIDEO" },
1576
+ usage: { unit: "compute_seconds" },
1626
1577
  pricingKind: "video_per_second",
1627
1578
  display: {
1628
1579
  provider: "kuaishou",
1580
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1629
1581
  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."
1630
1582
  },
1631
1583
  capabilities: {}
@@ -1655,6 +1607,7 @@ var VIDEO_MODELS = [
1655
1607
  pricingKind: "video_per_second",
1656
1608
  display: {
1657
1609
  provider: "minimax",
1610
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1658
1611
  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."
1659
1612
  },
1660
1613
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1684,6 +1637,7 @@ var VIDEO_MODELS = [
1684
1637
  pricingKind: "video_per_second",
1685
1638
  display: {
1686
1639
  provider: "minimax",
1640
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1687
1641
  description: "High-speed MiniMax H3 Max variant for text-to-video and image-to-video (first/last frame) only, up to 768p."
1688
1642
  },
1689
1643
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
@@ -1714,6 +1668,7 @@ var VIDEO_MODELS = [
1714
1668
  pricingKind: "video_per_second",
1715
1669
  display: {
1716
1670
  provider: "minimax",
1671
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1717
1672
  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."
1718
1673
  },
1719
1674
  capabilities: {}
@@ -1744,6 +1699,7 @@ var VIDEO_MODELS = [
1744
1699
  pricingKind: "video_per_second",
1745
1700
  display: {
1746
1701
  provider: "minimax",
1702
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1747
1703
  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."
1748
1704
  },
1749
1705
  capabilities: {}
@@ -1769,6 +1725,7 @@ var VIDEO_MODELS = [
1769
1725
  pricingKind: "video_per_second",
1770
1726
  display: {
1771
1727
  provider: "kuaishou",
1728
+ logo: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@1.97.0/light/kling-color.png",
1772
1729
  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."
1773
1730
  },
1774
1731
  capabilities: { acceptsSourceVideo: true }
@@ -1788,10 +1745,11 @@ var VIDEO_MODELS = [
1788
1745
  supports: ["lastFrame"]
1789
1746
  },
1790
1747
  defaults: { durationSeconds: 6, resolution: "768p" },
1791
- usage: { unit: "compute_seconds", modality: "VIDEO" },
1748
+ usage: { unit: "compute_seconds" },
1792
1749
  pricingKind: "video_per_second",
1793
1750
  display: {
1794
1751
  provider: "minimax",
1752
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
1795
1753
  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."
1796
1754
  },
1797
1755
  capabilities: {}
@@ -2439,7 +2397,7 @@ function passthroughTextModel(model) {
2439
2397
  exposure: "internal",
2440
2398
  constraints: {},
2441
2399
  defaults: {},
2442
- usage: { unit: "tokens", modality: "TEXT" },
2400
+ usage: { unit: "tokens" },
2443
2401
  pricingKind: "token"
2444
2402
  };
2445
2403
  }