aimodels 0.3.10 → 0.3.12

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.mjs CHANGED
@@ -12,6 +12,48 @@ var ModelCollection = class _ModelCollection extends Array {
12
12
  can(...capabilities) {
13
13
  return this.filter((model) => capabilities.every((cap) => model.can.includes(cap)));
14
14
  }
15
+ /**
16
+ * Fluent capability filters for better readability
17
+ * Each method filters models by a specific capability
18
+ */
19
+ // Basic capabilities
20
+ canChat() {
21
+ return this.can("chat");
22
+ }
23
+ canReason() {
24
+ return this.can("reason");
25
+ }
26
+ // Text capabilities
27
+ canRead() {
28
+ return this.can("txt-in");
29
+ }
30
+ canWrite() {
31
+ return this.can("txt-out");
32
+ }
33
+ // Image capabilities
34
+ canSee() {
35
+ return this.can("img-in");
36
+ }
37
+ canGenerateImages() {
38
+ return this.can("img-out");
39
+ }
40
+ // Audio capabilities
41
+ canHear() {
42
+ return this.can("audio-in");
43
+ }
44
+ canSpeak() {
45
+ return this.can("audio-out");
46
+ }
47
+ // Output capabilities
48
+ canOutputJSON() {
49
+ return this.can("json-out");
50
+ }
51
+ canCallFunctions() {
52
+ return this.can("fn-out");
53
+ }
54
+ canGenerateEmbeddings() {
55
+ return this.can("vec-out");
56
+ }
15
57
  /** Filter models by one or more languages (all must be supported) */
16
58
  know(...languages) {
17
59
  return this.filter((model) => languages.every((lang) => model.languages?.includes(lang)));
@@ -59,6 +101,9 @@ var ModelCollection = class _ModelCollection extends Array {
59
101
  getProviders() {
60
102
  return [...new Set(this.flatMap((model) => model.providers))];
61
103
  }
104
+ getCreators() {
105
+ return [...new Set(this.map((model) => model.creator))];
106
+ }
62
107
  };
63
108
 
64
109
  // src/data/models/openai-models.json
@@ -75,10 +120,10 @@ var openai_models_default = {
75
120
  ],
76
121
  can: [
77
122
  "chat",
78
- "text-in",
79
- "text-out",
123
+ "txt-in",
124
+ "txt-out",
80
125
  "json-out",
81
- "function-out"
126
+ "fn-out"
82
127
  ],
83
128
  context: {
84
129
  type: "token",
@@ -108,10 +153,10 @@ var openai_models_default = {
108
153
  ],
109
154
  can: [
110
155
  "chat",
111
- "text-in",
112
- "text-out",
156
+ "txt-in",
157
+ "txt-out",
113
158
  "json-out",
114
- "function-out"
159
+ "fn-out"
115
160
  ],
116
161
  context: {
117
162
  type: "token",
@@ -140,8 +185,8 @@ var openai_models_default = {
140
185
  "azure"
141
186
  ],
142
187
  can: [
143
- "text-in",
144
- "text-out"
188
+ "txt-in",
189
+ "txt-out"
145
190
  ],
146
191
  context: {
147
192
  type: "token",
@@ -159,11 +204,11 @@ var openai_models_default = {
159
204
  ],
160
205
  can: [
161
206
  "chat",
162
- "text-in",
163
- "text-out",
207
+ "txt-in",
208
+ "txt-out",
164
209
  "img-in",
165
210
  "json-out",
166
- "function-out"
211
+ "fn-out"
167
212
  ],
168
213
  context: {
169
214
  type: "token",
@@ -223,11 +268,11 @@ var openai_models_default = {
223
268
  name: "GPT-4o Audio",
224
269
  can: [
225
270
  "chat",
226
- "text-in",
227
- "text-out",
228
- "sound-in",
271
+ "txt-in",
272
+ "txt-out",
273
+ "audio-in",
229
274
  "json-out",
230
- "function-out"
275
+ "fn-out"
231
276
  ],
232
277
  context: {
233
278
  type: "token",
@@ -257,12 +302,12 @@ var openai_models_default = {
257
302
  name: "GPT-4o Mini Audio",
258
303
  can: [
259
304
  "chat",
260
- "text-in",
261
- "text-out",
262
- "sound-in",
263
- "sound-out",
305
+ "txt-in",
306
+ "txt-out",
307
+ "audio-in",
308
+ "audio-out",
264
309
  "json-out",
265
- "function-out"
310
+ "fn-out"
266
311
  ],
267
312
  context: {
268
313
  type: "token",
@@ -285,11 +330,11 @@ var openai_models_default = {
285
330
  name: "GPT-4o Realtime",
286
331
  can: [
287
332
  "chat",
288
- "text-in",
289
- "text-out",
290
- "sound-in",
333
+ "txt-in",
334
+ "txt-out",
335
+ "audio-in",
291
336
  "json-out",
292
- "function-out"
337
+ "fn-out"
293
338
  ],
294
339
  context: {
295
340
  type: "token",
@@ -319,11 +364,11 @@ var openai_models_default = {
319
364
  name: "GPT-4o Mini Realtime",
320
365
  can: [
321
366
  "chat",
322
- "text-in",
323
- "text-out",
324
- "sound-in",
367
+ "txt-in",
368
+ "txt-out",
369
+ "audio-in",
325
370
  "json-out",
326
- "function-out"
371
+ "fn-out"
327
372
  ],
328
373
  context: {
329
374
  type: "token",
@@ -349,11 +394,11 @@ var openai_models_default = {
349
394
  ],
350
395
  can: [
351
396
  "chat",
352
- "text-in",
353
- "text-out",
397
+ "txt-in",
398
+ "txt-out",
354
399
  "img-in",
355
400
  "json-out",
356
- "function-out",
401
+ "fn-out",
357
402
  "reason"
358
403
  ],
359
404
  context: {
@@ -376,10 +421,10 @@ var openai_models_default = {
376
421
  name: "OpenAI O1 Mini",
377
422
  can: [
378
423
  "chat",
379
- "text-in",
380
- "text-out",
424
+ "txt-in",
425
+ "txt-out",
381
426
  "json-out",
382
- "function-out",
427
+ "fn-out",
383
428
  "reason"
384
429
  ],
385
430
  context: {
@@ -425,10 +470,10 @@ var openai_models_default = {
425
470
  ],
426
471
  can: [
427
472
  "chat",
428
- "text-in",
429
- "text-out",
473
+ "txt-in",
474
+ "txt-out",
430
475
  "json-out",
431
- "function-out",
476
+ "fn-out",
432
477
  "reason"
433
478
  ],
434
479
  context: {
@@ -453,8 +498,8 @@ var openai_models_default = {
453
498
  "azure"
454
499
  ],
455
500
  can: [
456
- "sound-in",
457
- "text-out"
501
+ "audio-in",
502
+ "txt-out"
458
503
  ],
459
504
  context: {
460
505
  type: "audio-in",
@@ -471,8 +516,8 @@ var openai_models_default = {
471
516
  "azure"
472
517
  ],
473
518
  can: [
474
- "text-in",
475
- "sound-out"
519
+ "txt-in",
520
+ "audio-out"
476
521
  ],
477
522
  context: {
478
523
  type: "audio-out",
@@ -519,7 +564,7 @@ var openai_models_default = {
519
564
  "azure"
520
565
  ],
521
566
  can: [
522
- "text-in",
567
+ "txt-in",
523
568
  "img-out"
524
569
  ],
525
570
  context: {
@@ -544,8 +589,8 @@ var openai_models_default = {
544
589
  "azure"
545
590
  ],
546
591
  can: [
547
- "text-in",
548
- "vectors-out"
592
+ "txt-in",
593
+ "vec-out"
549
594
  ],
550
595
  context: {
551
596
  type: "embedding",
@@ -565,8 +610,8 @@ var openai_models_default = {
565
610
  "azure"
566
611
  ],
567
612
  can: [
568
- "text-in",
569
- "vectors-out"
613
+ "txt-in",
614
+ "vec-out"
570
615
  ],
571
616
  context: {
572
617
  type: "embedding",
@@ -586,8 +631,8 @@ var openai_models_default = {
586
631
  "azure"
587
632
  ],
588
633
  can: [
589
- "text-in",
590
- "vectors-out"
634
+ "txt-in",
635
+ "vec-out"
591
636
  ],
592
637
  context: {
593
638
  type: "embedding",
@@ -612,11 +657,11 @@ var anthropic_models_default = {
612
657
  providers: ["anthropic", "aws", "google"],
613
658
  can: [
614
659
  "chat",
615
- "text-in",
616
- "text-out",
660
+ "txt-in",
661
+ "txt-out",
617
662
  "img-in",
618
663
  "json-out",
619
- "function-out"
664
+ "fn-out"
620
665
  ],
621
666
  context: {
622
667
  type: "token",
@@ -633,11 +678,11 @@ var anthropic_models_default = {
633
678
  providers: ["anthropic", "aws", "google"],
634
679
  can: [
635
680
  "chat",
636
- "text-in",
637
- "text-out",
681
+ "txt-in",
682
+ "txt-out",
638
683
  "img-in",
639
684
  "json-out",
640
- "function-out"
685
+ "fn-out"
641
686
  ],
642
687
  context: {
643
688
  type: "token",
@@ -654,11 +699,11 @@ var anthropic_models_default = {
654
699
  providers: ["anthropic", "aws", "google"],
655
700
  can: [
656
701
  "chat",
657
- "text-in",
658
- "text-out",
702
+ "txt-in",
703
+ "txt-out",
659
704
  "img-in",
660
705
  "json-out",
661
- "function-out"
706
+ "fn-out"
662
707
  ],
663
708
  context: {
664
709
  type: "token",
@@ -675,11 +720,11 @@ var anthropic_models_default = {
675
720
  providers: ["anthropic", "aws", "google"],
676
721
  can: [
677
722
  "chat",
678
- "text-in",
679
- "text-out",
723
+ "txt-in",
724
+ "txt-out",
680
725
  "img-in",
681
726
  "json-out",
682
- "function-out"
727
+ "fn-out"
683
728
  ],
684
729
  context: {
685
730
  type: "token",
@@ -696,11 +741,11 @@ var anthropic_models_default = {
696
741
  providers: ["anthropic", "aws", "google"],
697
742
  can: [
698
743
  "chat",
699
- "text-in",
700
- "text-out",
744
+ "txt-in",
745
+ "txt-out",
701
746
  "img-in",
702
747
  "json-out",
703
- "function-out"
748
+ "fn-out"
704
749
  ],
705
750
  context: {
706
751
  type: "token",
@@ -716,10 +761,10 @@ var anthropic_models_default = {
716
761
  providers: ["anthropic", "aws", "google"],
717
762
  can: [
718
763
  "chat",
719
- "text-in",
720
- "text-out",
764
+ "txt-in",
765
+ "txt-out",
721
766
  "json-out",
722
- "function-out"
767
+ "fn-out"
723
768
  ],
724
769
  context: {
725
770
  type: "token",
@@ -736,11 +781,11 @@ var anthropic_models_default = {
736
781
  providers: ["anthropic", "aws", "google"],
737
782
  can: [
738
783
  "chat",
739
- "text-in",
740
- "text-out",
784
+ "txt-in",
785
+ "txt-out",
741
786
  "img-in",
742
787
  "json-out",
743
- "function-out",
788
+ "fn-out",
744
789
  "reason"
745
790
  ],
746
791
  context: {
@@ -771,7 +816,7 @@ var meta_models_default = {
771
816
  name: "Llama 3 70B",
772
817
  license: "llama-3-community",
773
818
  providers: ["groq"],
774
- can: ["chat", "text-in", "text-out", "json-out", "function-out"],
819
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out"],
775
820
  context: {
776
821
  type: "token",
777
822
  total: 8192,
@@ -783,7 +828,7 @@ var meta_models_default = {
783
828
  name: "Llama 3 8B",
784
829
  license: "llama-3-community",
785
830
  providers: ["groq"],
786
- can: ["chat", "text-in", "text-out", "json-out", "function-out"],
831
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out"],
787
832
  context: {
788
833
  type: "token",
789
834
  total: 8192,
@@ -795,7 +840,7 @@ var meta_models_default = {
795
840
  name: "Llama 3.2 11B Vision",
796
841
  license: "llama-3-community",
797
842
  providers: ["groq"],
798
- can: ["chat", "text-in", "text-out", "img-in"],
843
+ can: ["chat", "txt-in", "txt-out", "img-in"],
799
844
  context: {
800
845
  type: "token",
801
846
  total: 4096,
@@ -807,7 +852,7 @@ var meta_models_default = {
807
852
  name: "Llama 3.2 90B Vision",
808
853
  license: "llama-3-community",
809
854
  providers: ["groq"],
810
- can: ["chat", "text-in", "text-out", "img-in"],
855
+ can: ["chat", "txt-in", "txt-out", "img-in"],
811
856
  context: {
812
857
  type: "token",
813
858
  total: 4096,
@@ -819,7 +864,7 @@ var meta_models_default = {
819
864
  name: "LlamaGuard 3 8B",
820
865
  license: "llama-3-community",
821
866
  providers: ["groq"],
822
- can: ["chat", "text-in", "text-out"],
867
+ can: ["chat", "txt-in", "txt-out"],
823
868
  context: {
824
869
  type: "token",
825
870
  total: 4096,
@@ -840,10 +885,10 @@ var mistral_models_default = {
840
885
  providers: ["mistral", "azure"],
841
886
  can: [
842
887
  "chat",
843
- "text-in",
844
- "text-out",
888
+ "txt-in",
889
+ "txt-out",
845
890
  "json-out",
846
- "function-out"
891
+ "fn-out"
847
892
  ],
848
893
  context: {
849
894
  type: "token",
@@ -858,10 +903,10 @@ var mistral_models_default = {
858
903
  providers: ["mistral", "azure"],
859
904
  can: [
860
905
  "chat",
861
- "text-in",
862
- "text-out",
906
+ "txt-in",
907
+ "txt-out",
863
908
  "json-out",
864
- "function-out"
909
+ "fn-out"
865
910
  ],
866
911
  context: {
867
912
  type: "token",
@@ -876,8 +921,8 @@ var mistral_models_default = {
876
921
  providers: ["mistral"],
877
922
  can: [
878
923
  "chat",
879
- "text-in",
880
- "text-out"
924
+ "txt-in",
925
+ "txt-out"
881
926
  ],
882
927
  context: {
883
928
  type: "token",
@@ -892,8 +937,8 @@ var mistral_models_default = {
892
937
  providers: ["mistral", "groq"],
893
938
  can: [
894
939
  "chat",
895
- "text-in",
896
- "text-out"
940
+ "txt-in",
941
+ "txt-out"
897
942
  ],
898
943
  context: {
899
944
  type: "token",
@@ -908,8 +953,8 @@ var mistral_models_default = {
908
953
  providers: ["mistral", "groq"],
909
954
  can: [
910
955
  "chat",
911
- "text-in",
912
- "text-out"
956
+ "txt-in",
957
+ "txt-out"
913
958
  ],
914
959
  context: {
915
960
  type: "token",
@@ -929,7 +974,7 @@ var google_models_default = {
929
974
  name: "Gemini 2.0 Flash",
930
975
  license: "proprietary",
931
976
  providers: ["google"],
932
- can: ["chat", "text-in", "text-out", "json-out", "function-out", "img-in", "sound-in", "reason"],
977
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out", "img-in", "audio-in", "reason"],
933
978
  context: {
934
979
  type: "token",
935
980
  total: 1048576,
@@ -942,7 +987,7 @@ var google_models_default = {
942
987
  name: "Gemini 2.0 Flash Lite",
943
988
  license: "proprietary",
944
989
  providers: ["google"],
945
- can: ["chat", "text-in", "text-out", "json-out", "function-out", "img-in", "sound-in"],
990
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out", "img-in", "audio-in"],
946
991
  context: {
947
992
  type: "token",
948
993
  total: 1048576,
@@ -955,7 +1000,7 @@ var google_models_default = {
955
1000
  name: "Gemini 1.5 Flash",
956
1001
  license: "proprietary",
957
1002
  providers: ["google"],
958
- can: ["chat", "text-in", "text-out", "json-out", "function-out", "img-in", "sound-in"],
1003
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out", "img-in", "audio-in"],
959
1004
  context: {
960
1005
  type: "token",
961
1006
  total: 2097152,
@@ -967,7 +1012,7 @@ var google_models_default = {
967
1012
  name: "Gemini 1.5 Flash 8B",
968
1013
  license: "proprietary",
969
1014
  providers: ["google"],
970
- can: ["chat", "text-in", "text-out", "json-out", "function-out", "img-in", "sound-in"],
1015
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out", "img-in", "audio-in"],
971
1016
  context: {
972
1017
  type: "token",
973
1018
  total: 2097152,
@@ -979,7 +1024,7 @@ var google_models_default = {
979
1024
  name: "Gemini 1.5 Pro",
980
1025
  license: "proprietary",
981
1026
  providers: ["google"],
982
- can: ["chat", "text-in", "text-out", "json-out", "function-out", "img-in", "sound-in", "reason"],
1027
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out", "img-in", "audio-in", "reason"],
983
1028
  context: {
984
1029
  type: "token",
985
1030
  total: 2097152,
@@ -992,7 +1037,7 @@ var google_models_default = {
992
1037
  name: "Text Embedding 004",
993
1038
  license: "proprietary",
994
1039
  providers: ["google"],
995
- can: ["text-in", "vectors-out"],
1040
+ can: ["txt-in", "vec-out"],
996
1041
  context: {
997
1042
  type: "token",
998
1043
  total: 2048,
@@ -1004,7 +1049,7 @@ var google_models_default = {
1004
1049
  name: "Gemma 7B Instruct",
1005
1050
  license: "apache-2.0",
1006
1051
  providers: ["google"],
1007
- can: ["chat", "text-in", "text-out", "json-out", "function-out"],
1052
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out"],
1008
1053
  context: {
1009
1054
  type: "token",
1010
1055
  total: 8192,
@@ -1016,7 +1061,7 @@ var google_models_default = {
1016
1061
  name: "Gemma 2B Instruct",
1017
1062
  license: "apache-2.0",
1018
1063
  providers: ["google"],
1019
- can: ["chat", "text-in", "text-out", "json-out", "function-out"],
1064
+ can: ["chat", "txt-in", "txt-out", "json-out", "fn-out"],
1020
1065
  context: {
1021
1066
  type: "token",
1022
1067
  total: 8192,
@@ -1037,10 +1082,10 @@ var deepseek_models_default = {
1037
1082
  providers: ["deepseek"],
1038
1083
  can: [
1039
1084
  "chat",
1040
- "text-in",
1041
- "text-out",
1085
+ "txt-in",
1086
+ "txt-out",
1042
1087
  "json-out",
1043
- "function-out"
1088
+ "fn-out"
1044
1089
  ],
1045
1090
  context: {
1046
1091
  type: "token",
@@ -1055,10 +1100,10 @@ var deepseek_models_default = {
1055
1100
  providers: ["deepseek"],
1056
1101
  can: [
1057
1102
  "chat",
1058
- "text-in",
1059
- "text-out",
1103
+ "txt-in",
1104
+ "txt-out",
1060
1105
  "json-out",
1061
- "function-out",
1106
+ "fn-out",
1062
1107
  "reason"
1063
1108
  ],
1064
1109
  context: {
@@ -1080,7 +1125,7 @@ var xai_models_default = {
1080
1125
  creator: "xai",
1081
1126
  license: "proprietary",
1082
1127
  providers: ["xai"],
1083
- can: ["chat", "text-in", "text-out", "img-in"],
1128
+ can: ["chat", "txt-in", "txt-out", "img-in"],
1084
1129
  context: {
1085
1130
  type: "token",
1086
1131
  total: 32768,
@@ -1094,7 +1139,7 @@ var xai_models_default = {
1094
1139
  creator: "xai",
1095
1140
  license: "proprietary",
1096
1141
  providers: ["xai"],
1097
- can: ["chat", "text-in", "text-out"],
1142
+ can: ["chat", "txt-in", "txt-out"],
1098
1143
  context: {
1099
1144
  type: "token",
1100
1145
  total: 131072,
@@ -1108,7 +1153,7 @@ var xai_models_default = {
1108
1153
  creator: "xai",
1109
1154
  license: "proprietary",
1110
1155
  providers: ["xai"],
1111
- can: ["chat", "text-in", "text-out", "img-in"],
1156
+ can: ["chat", "txt-in", "txt-out", "img-in"],
1112
1157
  context: {
1113
1158
  type: "token",
1114
1159
  total: 8192,
@@ -1121,7 +1166,7 @@ var xai_models_default = {
1121
1166
  creator: "xai",
1122
1167
  license: "proprietary",
1123
1168
  providers: ["xai"],
1124
- can: ["chat", "text-in", "text-out"],
1169
+ can: ["chat", "txt-in", "txt-out"],
1125
1170
  context: {
1126
1171
  type: "token",
1127
1172
  total: 131072,
@@ -1145,9 +1190,10 @@ var cohere_models_default = {
1145
1190
  ],
1146
1191
  can: [
1147
1192
  "chat",
1148
- "text-in",
1149
- "text-out",
1150
- "function-out"
1193
+ "txt-in",
1194
+ "txt-out",
1195
+ "json-out",
1196
+ "fn-out"
1151
1197
  ],
1152
1198
  context: {
1153
1199
  type: "token",
@@ -1168,9 +1214,10 @@ var cohere_models_default = {
1168
1214
  ],
1169
1215
  can: [
1170
1216
  "chat",
1171
- "text-in",
1172
- "text-out",
1173
- "function-out"
1217
+ "txt-in",
1218
+ "txt-out",
1219
+ "json-out",
1220
+ "fn-out"
1174
1221
  ],
1175
1222
  context: {
1176
1223
  type: "token",
@@ -1194,10 +1241,11 @@ var cohere_models_default = {
1194
1241
  ],
1195
1242
  can: [
1196
1243
  "chat",
1197
- "text-in",
1198
- "text-out",
1244
+ "txt-in",
1245
+ "txt-out",
1199
1246
  "reason",
1200
- "function-out"
1247
+ "json-out",
1248
+ "fn-out"
1201
1249
  ],
1202
1250
  context: {
1203
1251
  type: "token",
@@ -1220,8 +1268,8 @@ var cohere_models_default = {
1220
1268
  ],
1221
1269
  can: [
1222
1270
  "chat",
1223
- "text-in",
1224
- "text-out"
1271
+ "txt-in",
1272
+ "txt-out"
1225
1273
  ],
1226
1274
  context: {
1227
1275
  type: "token",
@@ -1241,8 +1289,8 @@ var cohere_models_default = {
1241
1289
  ],
1242
1290
  can: [
1243
1291
  "chat",
1244
- "text-in",
1245
- "text-out"
1292
+ "txt-in",
1293
+ "txt-out"
1246
1294
  ],
1247
1295
  context: {
1248
1296
  type: "token",
@@ -1262,9 +1310,9 @@ var cohere_models_default = {
1262
1310
  "oracle"
1263
1311
  ],
1264
1312
  can: [
1265
- "text-in",
1313
+ "txt-in",
1266
1314
  "img-in",
1267
- "vectors-out"
1315
+ "vec-out"
1268
1316
  ],
1269
1317
  context: {
1270
1318
  type: "token",
@@ -1282,9 +1330,9 @@ var cohere_models_default = {
1282
1330
  "oracle"
1283
1331
  ],
1284
1332
  can: [
1285
- "text-in",
1333
+ "txt-in",
1286
1334
  "img-in",
1287
- "vectors-out"
1335
+ "vec-out"
1288
1336
  ],
1289
1337
  context: {
1290
1338
  type: "token",
@@ -1304,9 +1352,9 @@ var cohere_models_default = {
1304
1352
  "oracle"
1305
1353
  ],
1306
1354
  can: [
1307
- "text-in",
1355
+ "txt-in",
1308
1356
  "img-in",
1309
- "vectors-out"
1357
+ "vec-out"
1310
1358
  ],
1311
1359
  context: {
1312
1360
  type: "token",
@@ -1324,9 +1372,9 @@ var cohere_models_default = {
1324
1372
  "oracle"
1325
1373
  ],
1326
1374
  can: [
1327
- "text-in",
1375
+ "txt-in",
1328
1376
  "img-in",
1329
- "vectors-out"
1377
+ "vec-out"
1330
1378
  ],
1331
1379
  context: {
1332
1380
  type: "token",
@@ -1345,8 +1393,8 @@ var cohere_models_default = {
1345
1393
  "azure"
1346
1394
  ],
1347
1395
  can: [
1348
- "text-in",
1349
- "text-out"
1396
+ "txt-in",
1397
+ "txt-out"
1350
1398
  ],
1351
1399
  context: {
1352
1400
  type: "token",
@@ -1364,8 +1412,8 @@ var cohere_models_default = {
1364
1412
  "azure"
1365
1413
  ],
1366
1414
  can: [
1367
- "text-in",
1368
- "text-out"
1415
+ "txt-in",
1416
+ "txt-out"
1369
1417
  ],
1370
1418
  context: {
1371
1419
  type: "token",
@@ -1383,8 +1431,8 @@ var cohere_models_default = {
1383
1431
  "azure"
1384
1432
  ],
1385
1433
  can: [
1386
- "text-in",
1387
- "text-out"
1434
+ "txt-in",
1435
+ "txt-out"
1388
1436
  ],
1389
1437
  context: {
1390
1438
  type: "token",
@@ -1432,15 +1480,15 @@ function validateModel(raw) {
1432
1480
  const validCapabilities = [
1433
1481
  "chat",
1434
1482
  "reason",
1435
- "text-in",
1436
- "text-out",
1483
+ "txt-in",
1484
+ "txt-out",
1437
1485
  "img-in",
1438
1486
  "img-out",
1439
- "sound-in",
1440
- "sound-out",
1487
+ "audio-in",
1488
+ "audio-out",
1441
1489
  "json-out",
1442
- "function-out",
1443
- "vectors-out"
1490
+ "fn-out",
1491
+ "vec-out"
1444
1492
  ];
1445
1493
  if (!model.can.every((c) => validCapabilities.includes(c))) {
1446
1494
  throw new Error(`Model has invalid capabilities: ${model.can.join(", ")}`);
@@ -2040,6 +2088,62 @@ var groq_provider_default = {
2040
2088
  }
2041
2089
  };
2042
2090
 
2091
+ // src/data/providers/azure-provider.json
2092
+ var azure_provider_default = {
2093
+ id: "azure",
2094
+ name: "Azure OpenAI",
2095
+ websiteUrl: "https://azure.microsoft.com/en-us/products/ai-services/openai-service",
2096
+ apiUrl: "https://learn.microsoft.com/en-us/azure/ai-services/openai/reference",
2097
+ defaultModel: "gpt-4",
2098
+ models: {
2099
+ "gpt-4": {
2100
+ type: "token",
2101
+ input: 0,
2102
+ output: 0
2103
+ },
2104
+ "gpt-4-32k": {
2105
+ type: "token",
2106
+ input: 0,
2107
+ output: 0
2108
+ },
2109
+ "gpt-4-vision": {
2110
+ type: "token",
2111
+ input: 0,
2112
+ output: 0
2113
+ },
2114
+ "gpt-4o": {
2115
+ type: "token",
2116
+ input: 0,
2117
+ output: 0
2118
+ },
2119
+ "gpt-3.5-turbo": {
2120
+ type: "token",
2121
+ input: 0,
2122
+ output: 0
2123
+ },
2124
+ "gpt-3.5-turbo-16k": {
2125
+ type: "token",
2126
+ input: 0,
2127
+ output: 0
2128
+ },
2129
+ "text-embedding-ada-002": {
2130
+ type: "token",
2131
+ input: 0,
2132
+ output: 0
2133
+ },
2134
+ whisper: {
2135
+ type: "minute",
2136
+ price: 0
2137
+ },
2138
+ "dall-e-3": {
2139
+ type: "image",
2140
+ price: 0,
2141
+ size: "1024x1024",
2142
+ unit: "per_image"
2143
+ }
2144
+ }
2145
+ };
2146
+
2043
2147
  // src/builders/providers.ts
2044
2148
  function isTokenPrice(price) {
2045
2149
  return typeof price === "object" && price !== null && "type" in price && price.type === "token" && "input" in price && typeof price.input === "number" && "output" in price && typeof price.output === "number";
@@ -2099,7 +2203,8 @@ function buildAllProviders() {
2099
2203
  validateProvider(xai_provider_default),
2100
2204
  validateProvider(google_provider_default),
2101
2205
  validateProvider(deepseek_provider_default),
2102
- validateProvider(groq_provider_default)
2206
+ validateProvider(groq_provider_default),
2207
+ validateProvider(azure_provider_default)
2103
2208
  ];
2104
2209
  }
2105
2210
  function buildProvidersData() {