@dexto/llm 1.10.1 → 1.10.3
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 +915 -513
- package/dist/index.js +912 -513
- package/dist/reasoning/profile.d.ts +2 -1
- package/dist/reasoning/profile.d.ts.map +1 -1
- package/dist/registry/index.d.ts +37 -6
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/models.generated.d.ts +292 -103
- package/dist/registry/models.generated.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -922,6 +922,29 @@ var MODELS_BY_PROVIDER = {
|
|
|
922
922
|
unit: "per_million_tokens"
|
|
923
923
|
}
|
|
924
924
|
},
|
|
925
|
+
{
|
|
926
|
+
name: "gpt-realtime-2.1",
|
|
927
|
+
displayName: "GPT-Realtime-2.1",
|
|
928
|
+
maxInputTokens: 96e3,
|
|
929
|
+
supportedFileTypes: ["pdf", "image", "audio", "document"],
|
|
930
|
+
reasoning: true,
|
|
931
|
+
supportsTemperature: false,
|
|
932
|
+
supportsToolCall: true,
|
|
933
|
+
releaseDate: "2026-07-06",
|
|
934
|
+
modalities: {
|
|
935
|
+
input: ["text", "audio", "image"],
|
|
936
|
+
output: ["text", "audio"]
|
|
937
|
+
},
|
|
938
|
+
pricing: {
|
|
939
|
+
inputPerM: 4,
|
|
940
|
+
outputPerM: 24,
|
|
941
|
+
cacheReadPerM: 0.4,
|
|
942
|
+
inputAudioPerM: 32,
|
|
943
|
+
outputAudioPerM: 64,
|
|
944
|
+
currency: "USD",
|
|
945
|
+
unit: "per_million_tokens"
|
|
946
|
+
}
|
|
947
|
+
},
|
|
925
948
|
{
|
|
926
949
|
name: "o1",
|
|
927
950
|
displayName: "o1",
|
|
@@ -1811,16 +1834,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
1811
1834
|
reasoning: true,
|
|
1812
1835
|
supportsTemperature: true,
|
|
1813
1836
|
supportsToolCall: true,
|
|
1814
|
-
releaseDate: "
|
|
1837
|
+
releaseDate: "2026-05-19",
|
|
1815
1838
|
modalities: {
|
|
1816
|
-
input: ["text", "image", "
|
|
1839
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
1817
1840
|
output: ["text"]
|
|
1818
1841
|
},
|
|
1819
1842
|
pricing: {
|
|
1820
|
-
inputPerM:
|
|
1821
|
-
outputPerM:
|
|
1822
|
-
cacheReadPerM: 0.
|
|
1823
|
-
inputAudioPerM: 1,
|
|
1843
|
+
inputPerM: 1.5,
|
|
1844
|
+
outputPerM: 9,
|
|
1845
|
+
cacheReadPerM: 0.15,
|
|
1846
|
+
inputAudioPerM: 1.5,
|
|
1824
1847
|
currency: "USD",
|
|
1825
1848
|
unit: "per_million_tokens"
|
|
1826
1849
|
}
|
|
@@ -1833,15 +1856,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
1833
1856
|
reasoning: true,
|
|
1834
1857
|
supportsTemperature: true,
|
|
1835
1858
|
supportsToolCall: true,
|
|
1836
|
-
releaseDate: "
|
|
1859
|
+
releaseDate: "2026-05-07",
|
|
1837
1860
|
modalities: {
|
|
1838
|
-
input: ["text", "image", "
|
|
1861
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
1839
1862
|
output: ["text"]
|
|
1840
1863
|
},
|
|
1841
1864
|
pricing: {
|
|
1842
|
-
inputPerM: 0.
|
|
1843
|
-
outputPerM:
|
|
1865
|
+
inputPerM: 0.25,
|
|
1866
|
+
outputPerM: 1.5,
|
|
1844
1867
|
cacheReadPerM: 0.025,
|
|
1868
|
+
inputAudioPerM: 0.5,
|
|
1845
1869
|
currency: "USD",
|
|
1846
1870
|
unit: "per_million_tokens"
|
|
1847
1871
|
}
|
|
@@ -3112,6 +3136,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
3112
3136
|
cacheReadPerM: 0.2,
|
|
3113
3137
|
cacheWritePerM: 0.375,
|
|
3114
3138
|
reasoningPerM: 12,
|
|
3139
|
+
contextOver200kPerM: {
|
|
3140
|
+
inputPerM: 4,
|
|
3141
|
+
outputPerM: 18
|
|
3142
|
+
},
|
|
3115
3143
|
currency: "USD",
|
|
3116
3144
|
unit: "per_million_tokens"
|
|
3117
3145
|
}
|
|
@@ -3119,10 +3147,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
3119
3147
|
{
|
|
3120
3148
|
name: "~moonshotai/kimi-latest",
|
|
3121
3149
|
displayName: "MoonshotAI Kimi Latest",
|
|
3122
|
-
maxInputTokens:
|
|
3150
|
+
maxInputTokens: 1048576,
|
|
3123
3151
|
supportedFileTypes: ["image"],
|
|
3124
3152
|
reasoning: true,
|
|
3125
|
-
supportsTemperature:
|
|
3153
|
+
supportsTemperature: false,
|
|
3126
3154
|
supportsToolCall: true,
|
|
3127
3155
|
releaseDate: "2026-04-27",
|
|
3128
3156
|
modalities: {
|
|
@@ -3130,9 +3158,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
3130
3158
|
output: ["text"]
|
|
3131
3159
|
},
|
|
3132
3160
|
pricing: {
|
|
3133
|
-
inputPerM:
|
|
3134
|
-
outputPerM:
|
|
3135
|
-
cacheReadPerM: 0.
|
|
3161
|
+
inputPerM: 3,
|
|
3162
|
+
outputPerM: 15,
|
|
3163
|
+
cacheReadPerM: 0.3,
|
|
3136
3164
|
currency: "USD",
|
|
3137
3165
|
unit: "per_million_tokens"
|
|
3138
3166
|
}
|
|
@@ -3637,7 +3665,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
3637
3665
|
reasoning: true,
|
|
3638
3666
|
supportsTemperature: false,
|
|
3639
3667
|
supportsToolCall: true,
|
|
3640
|
-
releaseDate: "2026-
|
|
3668
|
+
releaseDate: "2026-04-16",
|
|
3641
3669
|
modalities: {
|
|
3642
3670
|
input: ["text", "image", "pdf"],
|
|
3643
3671
|
output: ["text"]
|
|
@@ -3681,7 +3709,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
3681
3709
|
reasoning: true,
|
|
3682
3710
|
supportsTemperature: false,
|
|
3683
3711
|
supportsToolCall: true,
|
|
3684
|
-
releaseDate: "2026-05-
|
|
3712
|
+
releaseDate: "2026-05-28",
|
|
3685
3713
|
modalities: {
|
|
3686
3714
|
input: ["text", "image", "pdf"],
|
|
3687
3715
|
output: ["text"]
|
|
@@ -3795,26 +3823,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
3795
3823
|
unit: "per_million_tokens"
|
|
3796
3824
|
}
|
|
3797
3825
|
},
|
|
3798
|
-
{
|
|
3799
|
-
name: "arcee-ai/coder-large",
|
|
3800
|
-
displayName: "Coder Large",
|
|
3801
|
-
maxInputTokens: 32768,
|
|
3802
|
-
supportedFileTypes: [],
|
|
3803
|
-
reasoning: false,
|
|
3804
|
-
supportsTemperature: true,
|
|
3805
|
-
supportsToolCall: false,
|
|
3806
|
-
releaseDate: "2025-05-05",
|
|
3807
|
-
modalities: {
|
|
3808
|
-
input: ["text"],
|
|
3809
|
-
output: ["text"]
|
|
3810
|
-
},
|
|
3811
|
-
pricing: {
|
|
3812
|
-
inputPerM: 0.5,
|
|
3813
|
-
outputPerM: 0.8,
|
|
3814
|
-
currency: "USD",
|
|
3815
|
-
unit: "per_million_tokens"
|
|
3816
|
-
}
|
|
3817
|
-
},
|
|
3818
3826
|
{
|
|
3819
3827
|
name: "arcee-ai/trinity-large-thinking",
|
|
3820
3828
|
displayName: "Trinity Large Thinking",
|
|
@@ -3836,26 +3844,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
3836
3844
|
unit: "per_million_tokens"
|
|
3837
3845
|
}
|
|
3838
3846
|
},
|
|
3839
|
-
{
|
|
3840
|
-
name: "arcee-ai/trinity-mini",
|
|
3841
|
-
displayName: "Trinity Mini",
|
|
3842
|
-
maxInputTokens: 131072,
|
|
3843
|
-
supportedFileTypes: [],
|
|
3844
|
-
reasoning: true,
|
|
3845
|
-
supportsTemperature: true,
|
|
3846
|
-
supportsToolCall: true,
|
|
3847
|
-
releaseDate: "2025-12-01",
|
|
3848
|
-
modalities: {
|
|
3849
|
-
input: ["text"],
|
|
3850
|
-
output: ["text"]
|
|
3851
|
-
},
|
|
3852
|
-
pricing: {
|
|
3853
|
-
inputPerM: 0.045,
|
|
3854
|
-
outputPerM: 0.15,
|
|
3855
|
-
currency: "USD",
|
|
3856
|
-
unit: "per_million_tokens"
|
|
3857
|
-
}
|
|
3858
|
-
},
|
|
3859
3847
|
{
|
|
3860
3848
|
name: "arcee-ai/virtuoso-large",
|
|
3861
3849
|
displayName: "Virtuoso Large",
|
|
@@ -4191,8 +4179,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4191
4179
|
output: ["text"]
|
|
4192
4180
|
},
|
|
4193
4181
|
pricing: {
|
|
4194
|
-
inputPerM: 0.
|
|
4195
|
-
outputPerM:
|
|
4182
|
+
inputPerM: 0.27,
|
|
4183
|
+
outputPerM: 1.12,
|
|
4196
4184
|
cacheReadPerM: 0.135,
|
|
4197
4185
|
currency: "USD",
|
|
4198
4186
|
unit: "per_million_tokens"
|
|
@@ -4212,8 +4200,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4212
4200
|
output: ["text"]
|
|
4213
4201
|
},
|
|
4214
4202
|
pricing: {
|
|
4215
|
-
inputPerM: 0.
|
|
4216
|
-
outputPerM: 0.
|
|
4203
|
+
inputPerM: 0.25,
|
|
4204
|
+
outputPerM: 0.95,
|
|
4217
4205
|
cacheReadPerM: 0.13,
|
|
4218
4206
|
currency: "USD",
|
|
4219
4207
|
unit: "per_million_tokens"
|
|
@@ -4283,7 +4271,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
4283
4271
|
{
|
|
4284
4272
|
name: "deepseek/deepseek-v3.1-terminus",
|
|
4285
4273
|
displayName: "DeepSeek V3.1 Terminus",
|
|
4286
|
-
maxInputTokens:
|
|
4274
|
+
maxInputTokens: 131072,
|
|
4287
4275
|
supportedFileTypes: [],
|
|
4288
4276
|
reasoning: true,
|
|
4289
4277
|
supportsTemperature: true,
|
|
@@ -4295,8 +4283,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4295
4283
|
},
|
|
4296
4284
|
pricing: {
|
|
4297
4285
|
inputPerM: 0.27,
|
|
4298
|
-
outputPerM:
|
|
4299
|
-
cacheReadPerM: 0.
|
|
4286
|
+
outputPerM: 1,
|
|
4287
|
+
cacheReadPerM: 0.135,
|
|
4300
4288
|
currency: "USD",
|
|
4301
4289
|
unit: "per_million_tokens"
|
|
4302
4290
|
}
|
|
@@ -4304,7 +4292,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
4304
4292
|
{
|
|
4305
4293
|
name: "deepseek/deepseek-v3.2",
|
|
4306
4294
|
displayName: "DeepSeek V3.2",
|
|
4307
|
-
maxInputTokens:
|
|
4295
|
+
maxInputTokens: 163840,
|
|
4308
4296
|
supportedFileTypes: [],
|
|
4309
4297
|
reasoning: true,
|
|
4310
4298
|
supportsTemperature: true,
|
|
@@ -4315,9 +4303,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
4315
4303
|
output: ["text"]
|
|
4316
4304
|
},
|
|
4317
4305
|
pricing: {
|
|
4318
|
-
inputPerM: 0.
|
|
4319
|
-
outputPerM: 0.
|
|
4320
|
-
cacheReadPerM: 0.
|
|
4306
|
+
inputPerM: 0.269,
|
|
4307
|
+
outputPerM: 0.4,
|
|
4308
|
+
cacheReadPerM: 0.1345,
|
|
4321
4309
|
currency: "USD",
|
|
4322
4310
|
unit: "per_million_tokens"
|
|
4323
4311
|
}
|
|
@@ -4360,9 +4348,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
4360
4348
|
},
|
|
4361
4349
|
supportsInterleaved: true,
|
|
4362
4350
|
pricing: {
|
|
4363
|
-
inputPerM: 0.
|
|
4364
|
-
outputPerM: 0.
|
|
4365
|
-
cacheReadPerM: 0.
|
|
4351
|
+
inputPerM: 0.098,
|
|
4352
|
+
outputPerM: 0.196,
|
|
4353
|
+
cacheReadPerM: 0.02,
|
|
4366
4354
|
currency: "USD",
|
|
4367
4355
|
unit: "per_million_tokens"
|
|
4368
4356
|
}
|
|
@@ -4558,16 +4546,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
4558
4546
|
},
|
|
4559
4547
|
{
|
|
4560
4548
|
name: "google/gemini-3-pro-image",
|
|
4561
|
-
displayName: "Nano Banana Pro
|
|
4549
|
+
displayName: "Nano Banana Pro",
|
|
4562
4550
|
maxInputTokens: 65536,
|
|
4563
4551
|
supportedFileTypes: ["image", "document"],
|
|
4564
4552
|
reasoning: true,
|
|
4565
4553
|
supportsTemperature: true,
|
|
4566
4554
|
supportsToolCall: true,
|
|
4567
|
-
releaseDate: "2026-
|
|
4555
|
+
releaseDate: "2026-05-28",
|
|
4568
4556
|
modalities: {
|
|
4569
|
-
input: ["
|
|
4570
|
-
output: ["
|
|
4557
|
+
input: ["text", "image"],
|
|
4558
|
+
output: ["text", "image"]
|
|
4571
4559
|
},
|
|
4572
4560
|
pricing: {
|
|
4573
4561
|
inputPerM: 2,
|
|
@@ -4604,16 +4592,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
4604
4592
|
},
|
|
4605
4593
|
{
|
|
4606
4594
|
name: "google/gemini-3.1-flash-image",
|
|
4607
|
-
displayName: "Nano Banana 2
|
|
4595
|
+
displayName: "Nano Banana 2",
|
|
4608
4596
|
maxInputTokens: 131072,
|
|
4609
4597
|
supportedFileTypes: ["image", "document"],
|
|
4610
4598
|
reasoning: true,
|
|
4611
4599
|
supportsTemperature: true,
|
|
4612
4600
|
supportsToolCall: false,
|
|
4613
|
-
releaseDate: "2026-
|
|
4601
|
+
releaseDate: "2026-05-28",
|
|
4614
4602
|
modalities: {
|
|
4615
|
-
input: ["
|
|
4616
|
-
output: ["
|
|
4603
|
+
input: ["text", "image"],
|
|
4604
|
+
output: ["text", "image"]
|
|
4617
4605
|
},
|
|
4618
4606
|
pricing: {
|
|
4619
4607
|
inputPerM: 0.5,
|
|
@@ -4848,7 +4836,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4848
4836
|
},
|
|
4849
4837
|
pricing: {
|
|
4850
4838
|
inputPerM: 0.08,
|
|
4851
|
-
outputPerM: 0.
|
|
4839
|
+
outputPerM: 0.45,
|
|
4840
|
+
cacheReadPerM: 0.04,
|
|
4852
4841
|
currency: "USD",
|
|
4853
4842
|
unit: "per_million_tokens"
|
|
4854
4843
|
}
|
|
@@ -4907,8 +4896,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4907
4896
|
output: ["text"]
|
|
4908
4897
|
},
|
|
4909
4898
|
pricing: {
|
|
4910
|
-
inputPerM: 0.
|
|
4911
|
-
outputPerM: 0.
|
|
4899
|
+
inputPerM: 0.1,
|
|
4900
|
+
outputPerM: 0.3,
|
|
4912
4901
|
currency: "USD",
|
|
4913
4902
|
unit: "per_million_tokens"
|
|
4914
4903
|
}
|
|
@@ -4947,9 +4936,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
4947
4936
|
output: ["text"]
|
|
4948
4937
|
},
|
|
4949
4938
|
pricing: {
|
|
4950
|
-
inputPerM: 0.
|
|
4951
|
-
outputPerM: 0.
|
|
4952
|
-
cacheReadPerM: 0.
|
|
4939
|
+
inputPerM: 0.22,
|
|
4940
|
+
outputPerM: 0.55,
|
|
4941
|
+
cacheReadPerM: 0.12,
|
|
4953
4942
|
currency: "USD",
|
|
4954
4943
|
unit: "per_million_tokens"
|
|
4955
4944
|
}
|
|
@@ -5200,62 +5189,64 @@ var MODELS_BY_PROVIDER = {
|
|
|
5200
5189
|
}
|
|
5201
5190
|
},
|
|
5202
5191
|
{
|
|
5203
|
-
name: "kwaipilot/kat-coder-
|
|
5204
|
-
displayName: "KAT-Coder-
|
|
5192
|
+
name: "kwaipilot/kat-coder-air-v2.5",
|
|
5193
|
+
displayName: "KAT-Coder-Air V2.5",
|
|
5205
5194
|
maxInputTokens: 256e3,
|
|
5206
5195
|
supportedFileTypes: [],
|
|
5207
5196
|
reasoning: false,
|
|
5208
5197
|
supportsTemperature: true,
|
|
5209
5198
|
supportsToolCall: true,
|
|
5210
|
-
releaseDate: "2026-
|
|
5199
|
+
releaseDate: "2026-07-10",
|
|
5211
5200
|
modalities: {
|
|
5212
5201
|
input: ["text"],
|
|
5213
5202
|
output: ["text"]
|
|
5214
5203
|
},
|
|
5215
5204
|
pricing: {
|
|
5216
|
-
inputPerM: 0.
|
|
5217
|
-
outputPerM:
|
|
5218
|
-
cacheReadPerM: 0.
|
|
5205
|
+
inputPerM: 0.15,
|
|
5206
|
+
outputPerM: 0.6,
|
|
5207
|
+
cacheReadPerM: 0.03,
|
|
5219
5208
|
currency: "USD",
|
|
5220
5209
|
unit: "per_million_tokens"
|
|
5221
5210
|
}
|
|
5222
5211
|
},
|
|
5223
5212
|
{
|
|
5224
|
-
name: "
|
|
5225
|
-
displayName: "
|
|
5226
|
-
maxInputTokens:
|
|
5213
|
+
name: "kwaipilot/kat-coder-pro-v2",
|
|
5214
|
+
displayName: "KAT-Coder-Pro V2",
|
|
5215
|
+
maxInputTokens: 256e3,
|
|
5227
5216
|
supportedFileTypes: [],
|
|
5228
5217
|
reasoning: false,
|
|
5229
5218
|
supportsTemperature: true,
|
|
5230
|
-
supportsToolCall:
|
|
5231
|
-
releaseDate: "2026-
|
|
5219
|
+
supportsToolCall: true,
|
|
5220
|
+
releaseDate: "2026-03-27",
|
|
5232
5221
|
modalities: {
|
|
5233
5222
|
input: ["text"],
|
|
5234
5223
|
output: ["text"]
|
|
5235
5224
|
},
|
|
5236
5225
|
pricing: {
|
|
5237
|
-
inputPerM: 0,
|
|
5238
|
-
outputPerM:
|
|
5226
|
+
inputPerM: 0.3,
|
|
5227
|
+
outputPerM: 1.2,
|
|
5228
|
+
cacheReadPerM: 0.06,
|
|
5239
5229
|
currency: "USD",
|
|
5240
5230
|
unit: "per_million_tokens"
|
|
5241
5231
|
}
|
|
5242
5232
|
},
|
|
5243
5233
|
{
|
|
5244
|
-
name: "
|
|
5245
|
-
displayName: "
|
|
5246
|
-
maxInputTokens:
|
|
5234
|
+
name: "kwaipilot/kat-coder-pro-v2.5",
|
|
5235
|
+
displayName: "KAT-Coder-Pro V2.5",
|
|
5236
|
+
maxInputTokens: 256e3,
|
|
5247
5237
|
supportedFileTypes: [],
|
|
5248
|
-
reasoning:
|
|
5238
|
+
reasoning: false,
|
|
5249
5239
|
supportsTemperature: true,
|
|
5250
5240
|
supportsToolCall: true,
|
|
5251
|
-
releaseDate: "2026-
|
|
5241
|
+
releaseDate: "2026-07-10",
|
|
5252
5242
|
modalities: {
|
|
5253
5243
|
input: ["text"],
|
|
5254
5244
|
output: ["text"]
|
|
5255
5245
|
},
|
|
5256
5246
|
pricing: {
|
|
5257
|
-
inputPerM: 0,
|
|
5258
|
-
outputPerM:
|
|
5247
|
+
inputPerM: 0.74,
|
|
5248
|
+
outputPerM: 2.96,
|
|
5249
|
+
cacheReadPerM: 0.15,
|
|
5259
5250
|
currency: "USD",
|
|
5260
5251
|
unit: "per_million_tokens"
|
|
5261
5252
|
}
|
|
@@ -5280,26 +5271,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
5280
5271
|
unit: "per_million_tokens"
|
|
5281
5272
|
}
|
|
5282
5273
|
},
|
|
5283
|
-
{
|
|
5284
|
-
name: "meta-llama/llama-3-8b-instruct",
|
|
5285
|
-
displayName: "Llama 3 8B Instruct",
|
|
5286
|
-
maxInputTokens: 8192,
|
|
5287
|
-
supportedFileTypes: [],
|
|
5288
|
-
reasoning: false,
|
|
5289
|
-
supportsTemperature: true,
|
|
5290
|
-
supportsToolCall: false,
|
|
5291
|
-
releaseDate: "2024-04-18",
|
|
5292
|
-
modalities: {
|
|
5293
|
-
input: ["text"],
|
|
5294
|
-
output: ["text"]
|
|
5295
|
-
},
|
|
5296
|
-
pricing: {
|
|
5297
|
-
inputPerM: 0.14,
|
|
5298
|
-
outputPerM: 0.14,
|
|
5299
|
-
currency: "USD",
|
|
5300
|
-
unit: "per_million_tokens"
|
|
5301
|
-
}
|
|
5302
|
-
},
|
|
5303
5274
|
{
|
|
5304
5275
|
name: "meta-llama/llama-3.1-70b-instruct",
|
|
5305
5276
|
displayName: "Llama 3.1 70B Instruct",
|
|
@@ -5334,8 +5305,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
5334
5305
|
output: ["text"]
|
|
5335
5306
|
},
|
|
5336
5307
|
pricing: {
|
|
5337
|
-
inputPerM: 0.
|
|
5338
|
-
outputPerM: 0.
|
|
5308
|
+
inputPerM: 0.05,
|
|
5309
|
+
outputPerM: 0.08,
|
|
5310
|
+
cacheReadPerM: 0.025,
|
|
5339
5311
|
currency: "USD",
|
|
5340
5312
|
unit: "per_million_tokens"
|
|
5341
5313
|
}
|
|
@@ -5434,8 +5406,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
5434
5406
|
output: ["text"]
|
|
5435
5407
|
},
|
|
5436
5408
|
pricing: {
|
|
5437
|
-
inputPerM: 0.
|
|
5438
|
-
outputPerM: 0.
|
|
5409
|
+
inputPerM: 0.13,
|
|
5410
|
+
outputPerM: 0.4,
|
|
5439
5411
|
currency: "USD",
|
|
5440
5412
|
unit: "per_million_tokens"
|
|
5441
5413
|
}
|
|
@@ -5474,8 +5446,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
5474
5446
|
output: ["text"]
|
|
5475
5447
|
},
|
|
5476
5448
|
pricing: {
|
|
5477
|
-
inputPerM: 0.
|
|
5478
|
-
outputPerM: 0.
|
|
5449
|
+
inputPerM: 0.2,
|
|
5450
|
+
outputPerM: 0.8,
|
|
5479
5451
|
currency: "USD",
|
|
5480
5452
|
unit: "per_million_tokens"
|
|
5481
5453
|
}
|
|
@@ -5520,6 +5492,27 @@ var MODELS_BY_PROVIDER = {
|
|
|
5520
5492
|
unit: "per_million_tokens"
|
|
5521
5493
|
}
|
|
5522
5494
|
},
|
|
5495
|
+
{
|
|
5496
|
+
name: "meta/muse-spark-1.1",
|
|
5497
|
+
displayName: "Muse Spark 1.1",
|
|
5498
|
+
maxInputTokens: 1048576,
|
|
5499
|
+
supportedFileTypes: ["pdf", "image", "audio", "video"],
|
|
5500
|
+
reasoning: true,
|
|
5501
|
+
supportsTemperature: true,
|
|
5502
|
+
supportsToolCall: true,
|
|
5503
|
+
releaseDate: "2026-04-08",
|
|
5504
|
+
modalities: {
|
|
5505
|
+
input: ["text", "image", "video", "pdf", "audio"],
|
|
5506
|
+
output: ["text"]
|
|
5507
|
+
},
|
|
5508
|
+
pricing: {
|
|
5509
|
+
inputPerM: 1.25,
|
|
5510
|
+
outputPerM: 4.25,
|
|
5511
|
+
cacheReadPerM: 0.15,
|
|
5512
|
+
currency: "USD",
|
|
5513
|
+
unit: "per_million_tokens"
|
|
5514
|
+
}
|
|
5515
|
+
},
|
|
5523
5516
|
{
|
|
5524
5517
|
name: "microsoft/phi-4",
|
|
5525
5518
|
displayName: "Phi 4",
|
|
@@ -5594,7 +5587,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
5594
5587
|
output: ["text"]
|
|
5595
5588
|
},
|
|
5596
5589
|
pricing: {
|
|
5597
|
-
inputPerM: 0.
|
|
5590
|
+
inputPerM: 0.55,
|
|
5598
5591
|
outputPerM: 2.2,
|
|
5599
5592
|
currency: "USD",
|
|
5600
5593
|
unit: "per_million_tokens"
|
|
@@ -5709,8 +5702,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
5709
5702
|
output: ["text"]
|
|
5710
5703
|
},
|
|
5711
5704
|
pricing: {
|
|
5712
|
-
inputPerM: 0.
|
|
5713
|
-
outputPerM:
|
|
5705
|
+
inputPerM: 0.3,
|
|
5706
|
+
outputPerM: 1.2,
|
|
5707
|
+
cacheReadPerM: 0.06,
|
|
5714
5708
|
currency: "USD",
|
|
5715
5709
|
unit: "per_million_tokens"
|
|
5716
5710
|
}
|
|
@@ -5982,7 +5976,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
5982
5976
|
},
|
|
5983
5977
|
pricing: {
|
|
5984
5978
|
inputPerM: 0.02,
|
|
5985
|
-
outputPerM: 0.
|
|
5979
|
+
outputPerM: 0.04,
|
|
5986
5980
|
currency: "USD",
|
|
5987
5981
|
unit: "per_million_tokens"
|
|
5988
5982
|
}
|
|
@@ -6072,7 +6066,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
6072
6066
|
{
|
|
6073
6067
|
name: "mistralai/mistral-small-3.2-24b-instruct",
|
|
6074
6068
|
displayName: "Mistral Small 3.2 24B",
|
|
6075
|
-
maxInputTokens:
|
|
6069
|
+
maxInputTokens: 131072,
|
|
6076
6070
|
supportedFileTypes: ["image"],
|
|
6077
6071
|
reasoning: false,
|
|
6078
6072
|
supportsTemperature: true,
|
|
@@ -6083,8 +6077,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6083
6077
|
output: ["text"]
|
|
6084
6078
|
},
|
|
6085
6079
|
pricing: {
|
|
6086
|
-
inputPerM: 0.
|
|
6087
|
-
outputPerM: 0.
|
|
6080
|
+
inputPerM: 0.1,
|
|
6081
|
+
outputPerM: 0.3,
|
|
6082
|
+
cacheReadPerM: 0.01,
|
|
6088
6083
|
currency: "USD",
|
|
6089
6084
|
unit: "per_million_tokens"
|
|
6090
6085
|
}
|
|
@@ -6191,7 +6186,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
6191
6186
|
pricing: {
|
|
6192
6187
|
inputPerM: 0.6,
|
|
6193
6188
|
outputPerM: 2.5,
|
|
6194
|
-
cacheReadPerM: 0.15,
|
|
6195
6189
|
currency: "USD",
|
|
6196
6190
|
unit: "per_million_tokens"
|
|
6197
6191
|
}
|
|
@@ -6214,9 +6208,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6214
6208
|
},
|
|
6215
6209
|
supportsInterleaved: true,
|
|
6216
6210
|
pricing: {
|
|
6217
|
-
inputPerM: 0.
|
|
6218
|
-
outputPerM: 2.
|
|
6219
|
-
cacheReadPerM: 0.
|
|
6211
|
+
inputPerM: 0.57,
|
|
6212
|
+
outputPerM: 2.85,
|
|
6213
|
+
cacheReadPerM: 0.095,
|
|
6220
6214
|
currency: "USD",
|
|
6221
6215
|
unit: "per_million_tokens"
|
|
6222
6216
|
}
|
|
@@ -6239,9 +6233,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6239
6233
|
},
|
|
6240
6234
|
supportsInterleaved: true,
|
|
6241
6235
|
pricing: {
|
|
6242
|
-
inputPerM: 0.
|
|
6243
|
-
outputPerM:
|
|
6244
|
-
cacheReadPerM: 0.
|
|
6236
|
+
inputPerM: 0.95,
|
|
6237
|
+
outputPerM: 4,
|
|
6238
|
+
cacheReadPerM: 0.16,
|
|
6245
6239
|
currency: "USD",
|
|
6246
6240
|
unit: "per_million_tokens"
|
|
6247
6241
|
}
|
|
@@ -6260,9 +6254,30 @@ var MODELS_BY_PROVIDER = {
|
|
|
6260
6254
|
output: ["text"]
|
|
6261
6255
|
},
|
|
6262
6256
|
pricing: {
|
|
6263
|
-
inputPerM: 0.
|
|
6264
|
-
outputPerM: 3.
|
|
6265
|
-
cacheReadPerM: 0.
|
|
6257
|
+
inputPerM: 0.75,
|
|
6258
|
+
outputPerM: 3.5,
|
|
6259
|
+
cacheReadPerM: 0.16,
|
|
6260
|
+
currency: "USD",
|
|
6261
|
+
unit: "per_million_tokens"
|
|
6262
|
+
}
|
|
6263
|
+
},
|
|
6264
|
+
{
|
|
6265
|
+
name: "moonshotai/kimi-k3",
|
|
6266
|
+
displayName: "Kimi K3",
|
|
6267
|
+
maxInputTokens: 1048576,
|
|
6268
|
+
supportedFileTypes: ["image"],
|
|
6269
|
+
reasoning: true,
|
|
6270
|
+
supportsTemperature: false,
|
|
6271
|
+
supportsToolCall: true,
|
|
6272
|
+
releaseDate: "2026-07-16",
|
|
6273
|
+
modalities: {
|
|
6274
|
+
input: ["text", "image"],
|
|
6275
|
+
output: ["text"]
|
|
6276
|
+
},
|
|
6277
|
+
pricing: {
|
|
6278
|
+
inputPerM: 3,
|
|
6279
|
+
outputPerM: 15,
|
|
6280
|
+
cacheReadPerM: 0.3,
|
|
6266
6281
|
currency: "USD",
|
|
6267
6282
|
unit: "per_million_tokens"
|
|
6268
6283
|
}
|
|
@@ -6543,8 +6558,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6543
6558
|
output: ["text"]
|
|
6544
6559
|
},
|
|
6545
6560
|
pricing: {
|
|
6546
|
-
inputPerM: 0.
|
|
6547
|
-
outputPerM: 0.
|
|
6561
|
+
inputPerM: 0.21,
|
|
6562
|
+
outputPerM: 0.455,
|
|
6563
|
+
cacheReadPerM: 0.06,
|
|
6548
6564
|
currency: "USD",
|
|
6549
6565
|
unit: "per_million_tokens"
|
|
6550
6566
|
}
|
|
@@ -6583,9 +6599,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6583
6599
|
output: ["text"]
|
|
6584
6600
|
},
|
|
6585
6601
|
pricing: {
|
|
6586
|
-
inputPerM: 0.
|
|
6587
|
-
outputPerM:
|
|
6588
|
-
cacheReadPerM: 0.
|
|
6602
|
+
inputPerM: 0.6,
|
|
6603
|
+
outputPerM: 3.6,
|
|
6604
|
+
cacheReadPerM: 0.2,
|
|
6589
6605
|
currency: "USD",
|
|
6590
6606
|
unit: "per_million_tokens"
|
|
6591
6607
|
}
|
|
@@ -6889,6 +6905,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
6889
6905
|
pricing: {
|
|
6890
6906
|
inputPerM: 2.5,
|
|
6891
6907
|
outputPerM: 10,
|
|
6908
|
+
cacheReadPerM: 1.25,
|
|
6892
6909
|
currency: "USD",
|
|
6893
6910
|
unit: "per_million_tokens"
|
|
6894
6911
|
}
|
|
@@ -7179,7 +7196,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7179
7196
|
pricing: {
|
|
7180
7197
|
inputPerM: 0.05,
|
|
7181
7198
|
outputPerM: 0.4,
|
|
7182
|
-
cacheReadPerM:
|
|
7199
|
+
cacheReadPerM: 5e-3,
|
|
7183
7200
|
currency: "USD",
|
|
7184
7201
|
unit: "per_million_tokens"
|
|
7185
7202
|
}
|
|
@@ -7220,7 +7237,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7220
7237
|
pricing: {
|
|
7221
7238
|
inputPerM: 1.25,
|
|
7222
7239
|
outputPerM: 10,
|
|
7223
|
-
cacheReadPerM: 0.
|
|
7240
|
+
cacheReadPerM: 0.125,
|
|
7224
7241
|
currency: "USD",
|
|
7225
7242
|
unit: "per_million_tokens"
|
|
7226
7243
|
}
|
|
@@ -7241,7 +7258,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7241
7258
|
pricing: {
|
|
7242
7259
|
inputPerM: 1.25,
|
|
7243
7260
|
outputPerM: 10,
|
|
7244
|
-
cacheReadPerM: 0.
|
|
7261
|
+
cacheReadPerM: 0.125,
|
|
7245
7262
|
currency: "USD",
|
|
7246
7263
|
unit: "per_million_tokens"
|
|
7247
7264
|
}
|
|
@@ -7262,7 +7279,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7262
7279
|
pricing: {
|
|
7263
7280
|
inputPerM: 1.25,
|
|
7264
7281
|
outputPerM: 10,
|
|
7265
|
-
cacheReadPerM: 0.
|
|
7282
|
+
cacheReadPerM: 0.125,
|
|
7266
7283
|
currency: "USD",
|
|
7267
7284
|
unit: "per_million_tokens"
|
|
7268
7285
|
}
|
|
@@ -7786,28 +7803,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
7786
7803
|
output: ["text"]
|
|
7787
7804
|
},
|
|
7788
7805
|
pricing: {
|
|
7789
|
-
inputPerM: 0.
|
|
7790
|
-
outputPerM: 0.
|
|
7791
|
-
currency: "USD",
|
|
7792
|
-
unit: "per_million_tokens"
|
|
7793
|
-
}
|
|
7794
|
-
},
|
|
7795
|
-
{
|
|
7796
|
-
name: "openai/gpt-oss-120b:free",
|
|
7797
|
-
displayName: "gpt-oss-120b (free)",
|
|
7798
|
-
maxInputTokens: 131072,
|
|
7799
|
-
supportedFileTypes: [],
|
|
7800
|
-
reasoning: true,
|
|
7801
|
-
supportsTemperature: true,
|
|
7802
|
-
supportsToolCall: true,
|
|
7803
|
-
releaseDate: "2025-08-05",
|
|
7804
|
-
modalities: {
|
|
7805
|
-
input: ["text"],
|
|
7806
|
-
output: ["text"]
|
|
7807
|
-
},
|
|
7808
|
-
pricing: {
|
|
7809
|
-
inputPerM: 0,
|
|
7810
|
-
outputPerM: 0,
|
|
7806
|
+
inputPerM: 0.037,
|
|
7807
|
+
outputPerM: 0.17,
|
|
7811
7808
|
currency: "USD",
|
|
7812
7809
|
unit: "per_million_tokens"
|
|
7813
7810
|
}
|
|
@@ -7826,8 +7823,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
7826
7823
|
output: ["text"]
|
|
7827
7824
|
},
|
|
7828
7825
|
pricing: {
|
|
7829
|
-
inputPerM: 0.
|
|
7830
|
-
outputPerM: 0.
|
|
7826
|
+
inputPerM: 0.03,
|
|
7827
|
+
outputPerM: 0.13,
|
|
7828
|
+
cacheReadPerM: 0.03,
|
|
7831
7829
|
currency: "USD",
|
|
7832
7830
|
unit: "per_million_tokens"
|
|
7833
7831
|
}
|
|
@@ -8563,7 +8561,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
8563
8561
|
},
|
|
8564
8562
|
pricing: {
|
|
8565
8563
|
inputPerM: 0.09,
|
|
8566
|
-
outputPerM: 0.
|
|
8564
|
+
outputPerM: 0.55,
|
|
8567
8565
|
currency: "USD",
|
|
8568
8566
|
unit: "per_million_tokens"
|
|
8569
8567
|
}
|
|
@@ -8611,7 +8609,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
8611
8609
|
{
|
|
8612
8610
|
name: "qwen/qwen3-30b-a3b-instruct-2507",
|
|
8613
8611
|
displayName: "Qwen3 30B A3B Instruct 2507",
|
|
8614
|
-
maxInputTokens:
|
|
8612
|
+
maxInputTokens: 262144,
|
|
8615
8613
|
supportedFileTypes: [],
|
|
8616
8614
|
reasoning: false,
|
|
8617
8615
|
supportsTemperature: true,
|
|
@@ -8622,8 +8620,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
8622
8620
|
output: ["text"]
|
|
8623
8621
|
},
|
|
8624
8622
|
pricing: {
|
|
8625
|
-
inputPerM: 0.
|
|
8626
|
-
outputPerM: 0.
|
|
8623
|
+
inputPerM: 0.1,
|
|
8624
|
+
outputPerM: 0.3,
|
|
8627
8625
|
currency: "USD",
|
|
8628
8626
|
unit: "per_million_tokens"
|
|
8629
8627
|
}
|
|
@@ -8702,8 +8700,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
8702
8700
|
output: ["text"]
|
|
8703
8701
|
},
|
|
8704
8702
|
pricing: {
|
|
8705
|
-
inputPerM: 0.
|
|
8706
|
-
outputPerM: 1
|
|
8703
|
+
inputPerM: 0.3,
|
|
8704
|
+
outputPerM: 1,
|
|
8705
|
+
cacheReadPerM: 0.1,
|
|
8707
8706
|
currency: "USD",
|
|
8708
8707
|
unit: "per_million_tokens"
|
|
8709
8708
|
}
|
|
@@ -8869,8 +8868,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
8869
8868
|
output: ["text"]
|
|
8870
8869
|
},
|
|
8871
8870
|
pricing: {
|
|
8872
|
-
inputPerM: 0.
|
|
8871
|
+
inputPerM: 0.1,
|
|
8873
8872
|
outputPerM: 1.1,
|
|
8873
|
+
cacheReadPerM: 0.07,
|
|
8874
8874
|
currency: "USD",
|
|
8875
8875
|
unit: "per_million_tokens"
|
|
8876
8876
|
}
|
|
@@ -8918,7 +8918,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
8918
8918
|
{
|
|
8919
8919
|
name: "qwen/qwen3-vl-235b-a22b-instruct",
|
|
8920
8920
|
displayName: "Qwen3 VL 235B A22B Instruct",
|
|
8921
|
-
maxInputTokens:
|
|
8921
|
+
maxInputTokens: 131072,
|
|
8922
8922
|
supportedFileTypes: ["image"],
|
|
8923
8923
|
reasoning: false,
|
|
8924
8924
|
supportsTemperature: true,
|
|
@@ -8929,9 +8929,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
8929
8929
|
output: ["text"]
|
|
8930
8930
|
},
|
|
8931
8931
|
pricing: {
|
|
8932
|
-
inputPerM: 0.
|
|
8933
|
-
outputPerM:
|
|
8934
|
-
cacheReadPerM: 0.
|
|
8932
|
+
inputPerM: 0.21,
|
|
8933
|
+
outputPerM: 1.9,
|
|
8934
|
+
cacheReadPerM: 0.1,
|
|
8935
8935
|
currency: "USD",
|
|
8936
8936
|
unit: "per_million_tokens"
|
|
8937
8937
|
}
|
|
@@ -9112,7 +9112,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
9112
9112
|
pricing: {
|
|
9113
9113
|
inputPerM: 0.14,
|
|
9114
9114
|
outputPerM: 1,
|
|
9115
|
-
cacheReadPerM: 0.05,
|
|
9116
9115
|
currency: "USD",
|
|
9117
9116
|
unit: "per_million_tokens"
|
|
9118
9117
|
}
|
|
@@ -9120,7 +9119,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
9120
9119
|
{
|
|
9121
9120
|
name: "qwen/qwen3.5-397b-a17b",
|
|
9122
9121
|
displayName: "Qwen3.5 397B-A17B",
|
|
9123
|
-
maxInputTokens:
|
|
9122
|
+
maxInputTokens: 262144,
|
|
9124
9123
|
supportedFileTypes: ["image", "video"],
|
|
9125
9124
|
reasoning: true,
|
|
9126
9125
|
supportsTemperature: true,
|
|
@@ -9131,9 +9130,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9131
9130
|
output: ["text"]
|
|
9132
9131
|
},
|
|
9133
9132
|
pricing: {
|
|
9134
|
-
inputPerM: 0.
|
|
9135
|
-
outputPerM:
|
|
9136
|
-
cacheReadPerM: 0.
|
|
9133
|
+
inputPerM: 0.45,
|
|
9134
|
+
outputPerM: 3,
|
|
9135
|
+
cacheReadPerM: 0.225,
|
|
9137
9136
|
currency: "USD",
|
|
9138
9137
|
unit: "per_million_tokens"
|
|
9139
9138
|
}
|
|
@@ -9233,9 +9232,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
9233
9232
|
output: ["text"]
|
|
9234
9233
|
},
|
|
9235
9234
|
pricing: {
|
|
9236
|
-
inputPerM: 0.
|
|
9237
|
-
outputPerM: 2.
|
|
9238
|
-
cacheReadPerM: 0.15,
|
|
9235
|
+
inputPerM: 0.45,
|
|
9236
|
+
outputPerM: 2.7,
|
|
9239
9237
|
currency: "USD",
|
|
9240
9238
|
unit: "per_million_tokens"
|
|
9241
9239
|
}
|
|
@@ -9337,10 +9335,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
9337
9335
|
output: ["text"]
|
|
9338
9336
|
},
|
|
9339
9337
|
pricing: {
|
|
9340
|
-
inputPerM: 1.
|
|
9341
|
-
outputPerM:
|
|
9342
|
-
cacheReadPerM: 0.
|
|
9343
|
-
cacheWritePerM: 1.
|
|
9338
|
+
inputPerM: 1.475,
|
|
9339
|
+
outputPerM: 4.425,
|
|
9340
|
+
cacheReadPerM: 0.295,
|
|
9341
|
+
cacheWritePerM: 1.84375,
|
|
9344
9342
|
currency: "USD",
|
|
9345
9343
|
unit: "per_million_tokens"
|
|
9346
9344
|
}
|
|
@@ -9488,26 +9486,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
9488
9486
|
unit: "per_million_tokens"
|
|
9489
9487
|
}
|
|
9490
9488
|
},
|
|
9491
|
-
{
|
|
9492
|
-
name: "sao10k/l3.1-70b-hanami-x1",
|
|
9493
|
-
displayName: "Llama 3.1 70B Hanami x1",
|
|
9494
|
-
maxInputTokens: 16e3,
|
|
9495
|
-
supportedFileTypes: [],
|
|
9496
|
-
reasoning: false,
|
|
9497
|
-
supportsTemperature: true,
|
|
9498
|
-
supportsToolCall: false,
|
|
9499
|
-
releaseDate: "2025-01-08",
|
|
9500
|
-
modalities: {
|
|
9501
|
-
input: ["text"],
|
|
9502
|
-
output: ["text"]
|
|
9503
|
-
},
|
|
9504
|
-
pricing: {
|
|
9505
|
-
inputPerM: 3,
|
|
9506
|
-
outputPerM: 3,
|
|
9507
|
-
currency: "USD",
|
|
9508
|
-
unit: "per_million_tokens"
|
|
9509
|
-
}
|
|
9510
|
-
},
|
|
9511
9489
|
{
|
|
9512
9490
|
name: "sao10k/l3.1-euryale-70b",
|
|
9513
9491
|
displayName: "Llama 3.1 Euryale 70B v2.2",
|
|
@@ -9623,9 +9601,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9623
9601
|
output: ["text"]
|
|
9624
9602
|
},
|
|
9625
9603
|
pricing: {
|
|
9626
|
-
inputPerM: 0.
|
|
9627
|
-
outputPerM: 0.
|
|
9628
|
-
cacheReadPerM: 0.
|
|
9604
|
+
inputPerM: 0.2,
|
|
9605
|
+
outputPerM: 0.8,
|
|
9606
|
+
cacheReadPerM: 0.05,
|
|
9629
9607
|
currency: "USD",
|
|
9630
9608
|
unit: "per_million_tokens"
|
|
9631
9609
|
}
|
|
@@ -9945,9 +9923,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9945
9923
|
},
|
|
9946
9924
|
supportsInterleaved: true,
|
|
9947
9925
|
pricing: {
|
|
9948
|
-
inputPerM: 0.
|
|
9926
|
+
inputPerM: 0.14,
|
|
9949
9927
|
outputPerM: 0.28,
|
|
9950
|
-
cacheReadPerM:
|
|
9928
|
+
cacheReadPerM: 28e-4,
|
|
9951
9929
|
currency: "USD",
|
|
9952
9930
|
unit: "per_million_tokens"
|
|
9953
9931
|
}
|
|
@@ -10054,9 +10032,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10054
10032
|
output: ["text"]
|
|
10055
10033
|
},
|
|
10056
10034
|
pricing: {
|
|
10057
|
-
inputPerM: 0.
|
|
10058
|
-
outputPerM:
|
|
10059
|
-
cacheReadPerM: 0.
|
|
10035
|
+
inputPerM: 0.5,
|
|
10036
|
+
outputPerM: 2,
|
|
10037
|
+
cacheReadPerM: 0.1,
|
|
10060
10038
|
currency: "USD",
|
|
10061
10039
|
unit: "per_million_tokens"
|
|
10062
10040
|
}
|
|
@@ -10110,7 +10088,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
10110
10088
|
{
|
|
10111
10089
|
name: "z-ai/glm-4.7-flash",
|
|
10112
10090
|
displayName: "GLM-4.7-Flash",
|
|
10113
|
-
maxInputTokens:
|
|
10091
|
+
maxInputTokens: 2e5,
|
|
10114
10092
|
supportedFileTypes: [],
|
|
10115
10093
|
reasoning: true,
|
|
10116
10094
|
supportsTemperature: true,
|
|
@@ -10125,9 +10103,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
10125
10103
|
},
|
|
10126
10104
|
supportsInterleaved: true,
|
|
10127
10105
|
pricing: {
|
|
10128
|
-
inputPerM: 0.
|
|
10106
|
+
inputPerM: 0.0605,
|
|
10129
10107
|
outputPerM: 0.4,
|
|
10130
|
-
cacheReadPerM: 0.01,
|
|
10131
10108
|
currency: "USD",
|
|
10132
10109
|
unit: "per_million_tokens"
|
|
10133
10110
|
}
|
|
@@ -10150,9 +10127,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10150
10127
|
},
|
|
10151
10128
|
supportsInterleaved: true,
|
|
10152
10129
|
pricing: {
|
|
10153
|
-
inputPerM: 0.
|
|
10154
|
-
outputPerM:
|
|
10155
|
-
cacheReadPerM: 0.
|
|
10130
|
+
inputPerM: 0.95,
|
|
10131
|
+
outputPerM: 3.15,
|
|
10132
|
+
cacheReadPerM: 0.19,
|
|
10156
10133
|
currency: "USD",
|
|
10157
10134
|
unit: "per_million_tokens"
|
|
10158
10135
|
}
|
|
@@ -10160,7 +10137,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
10160
10137
|
{
|
|
10161
10138
|
name: "z-ai/glm-5-turbo",
|
|
10162
10139
|
displayName: "GLM-5-Turbo",
|
|
10163
|
-
maxInputTokens:
|
|
10140
|
+
maxInputTokens: 202752,
|
|
10164
10141
|
supportedFileTypes: [],
|
|
10165
10142
|
reasoning: true,
|
|
10166
10143
|
supportsTemperature: true,
|
|
@@ -10225,9 +10202,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10225
10202
|
},
|
|
10226
10203
|
supportsInterleaved: true,
|
|
10227
10204
|
pricing: {
|
|
10228
|
-
inputPerM: 0.
|
|
10229
|
-
outputPerM:
|
|
10230
|
-
cacheReadPerM: 0.
|
|
10205
|
+
inputPerM: 0.9338,
|
|
10206
|
+
outputPerM: 2.9348,
|
|
10207
|
+
cacheReadPerM: 0.17342,
|
|
10231
10208
|
currency: "USD",
|
|
10232
10209
|
unit: "per_million_tokens"
|
|
10233
10210
|
}
|
|
@@ -10648,6 +10625,26 @@ var MODELS_BY_PROVIDER = {
|
|
|
10648
10625
|
unit: "per_million_tokens"
|
|
10649
10626
|
}
|
|
10650
10627
|
},
|
|
10628
|
+
{
|
|
10629
|
+
name: "gemini-2.5-flash-image",
|
|
10630
|
+
displayName: "Nano Banana",
|
|
10631
|
+
maxInputTokens: 32768,
|
|
10632
|
+
supportedFileTypes: ["image", "document"],
|
|
10633
|
+
reasoning: false,
|
|
10634
|
+
supportsTemperature: true,
|
|
10635
|
+
supportsToolCall: false,
|
|
10636
|
+
releaseDate: "2025-08-26",
|
|
10637
|
+
modalities: {
|
|
10638
|
+
input: ["text", "image"],
|
|
10639
|
+
output: ["text", "image"]
|
|
10640
|
+
},
|
|
10641
|
+
pricing: {
|
|
10642
|
+
inputPerM: 0.3,
|
|
10643
|
+
outputPerM: 30,
|
|
10644
|
+
currency: "USD",
|
|
10645
|
+
unit: "per_million_tokens"
|
|
10646
|
+
}
|
|
10647
|
+
},
|
|
10651
10648
|
{
|
|
10652
10649
|
name: "gemini-2.5-flash-lite",
|
|
10653
10650
|
displayName: "Gemini 2.5 Flash-Lite",
|
|
@@ -10758,6 +10755,46 @@ var MODELS_BY_PROVIDER = {
|
|
|
10758
10755
|
},
|
|
10759
10756
|
default: true
|
|
10760
10757
|
},
|
|
10758
|
+
{
|
|
10759
|
+
name: "gemini-3-pro-image",
|
|
10760
|
+
displayName: "Nano Banana Pro",
|
|
10761
|
+
maxInputTokens: 65536,
|
|
10762
|
+
supportedFileTypes: ["image", "document"],
|
|
10763
|
+
reasoning: true,
|
|
10764
|
+
supportsTemperature: true,
|
|
10765
|
+
supportsToolCall: false,
|
|
10766
|
+
releaseDate: "2026-05-28",
|
|
10767
|
+
modalities: {
|
|
10768
|
+
input: ["text", "image"],
|
|
10769
|
+
output: ["text", "image"]
|
|
10770
|
+
},
|
|
10771
|
+
pricing: {
|
|
10772
|
+
inputPerM: 2,
|
|
10773
|
+
outputPerM: 120,
|
|
10774
|
+
currency: "USD",
|
|
10775
|
+
unit: "per_million_tokens"
|
|
10776
|
+
}
|
|
10777
|
+
},
|
|
10778
|
+
{
|
|
10779
|
+
name: "gemini-3.1-flash-image",
|
|
10780
|
+
displayName: "Nano Banana 2",
|
|
10781
|
+
maxInputTokens: 131072,
|
|
10782
|
+
supportedFileTypes: ["pdf", "image", "video", "document"],
|
|
10783
|
+
reasoning: true,
|
|
10784
|
+
supportsTemperature: true,
|
|
10785
|
+
supportsToolCall: false,
|
|
10786
|
+
releaseDate: "2026-05-28",
|
|
10787
|
+
modalities: {
|
|
10788
|
+
input: ["text", "image", "video", "pdf"],
|
|
10789
|
+
output: ["text", "image"]
|
|
10790
|
+
},
|
|
10791
|
+
pricing: {
|
|
10792
|
+
inputPerM: 0.5,
|
|
10793
|
+
outputPerM: 60,
|
|
10794
|
+
currency: "USD",
|
|
10795
|
+
unit: "per_million_tokens"
|
|
10796
|
+
}
|
|
10797
|
+
},
|
|
10761
10798
|
{
|
|
10762
10799
|
name: "gemini-3.1-flash-lite",
|
|
10763
10800
|
displayName: "Gemini 3.1 Flash Lite",
|
|
@@ -10903,16 +10940,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
10903
10940
|
reasoning: true,
|
|
10904
10941
|
supportsTemperature: true,
|
|
10905
10942
|
supportsToolCall: true,
|
|
10906
|
-
releaseDate: "
|
|
10943
|
+
releaseDate: "2026-05-19",
|
|
10907
10944
|
modalities: {
|
|
10908
|
-
input: ["text", "image", "
|
|
10945
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
10909
10946
|
output: ["text"]
|
|
10910
10947
|
},
|
|
10911
10948
|
pricing: {
|
|
10912
|
-
inputPerM:
|
|
10913
|
-
outputPerM:
|
|
10914
|
-
cacheReadPerM: 0.
|
|
10915
|
-
|
|
10949
|
+
inputPerM: 1.5,
|
|
10950
|
+
outputPerM: 9,
|
|
10951
|
+
cacheReadPerM: 0.15,
|
|
10952
|
+
inputAudioPerM: 1.5,
|
|
10916
10953
|
currency: "USD",
|
|
10917
10954
|
unit: "per_million_tokens"
|
|
10918
10955
|
}
|
|
@@ -10925,15 +10962,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
10925
10962
|
reasoning: true,
|
|
10926
10963
|
supportsTemperature: true,
|
|
10927
10964
|
supportsToolCall: true,
|
|
10928
|
-
releaseDate: "
|
|
10965
|
+
releaseDate: "2026-05-07",
|
|
10929
10966
|
modalities: {
|
|
10930
|
-
input: ["text", "image", "
|
|
10967
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
10931
10968
|
output: ["text"]
|
|
10932
10969
|
},
|
|
10933
10970
|
pricing: {
|
|
10934
|
-
inputPerM: 0.
|
|
10935
|
-
outputPerM:
|
|
10971
|
+
inputPerM: 0.25,
|
|
10972
|
+
outputPerM: 1.5,
|
|
10936
10973
|
cacheReadPerM: 0.025,
|
|
10974
|
+
inputAudioPerM: 0.5,
|
|
10937
10975
|
currency: "USD",
|
|
10938
10976
|
unit: "per_million_tokens"
|
|
10939
10977
|
}
|
|
@@ -12735,6 +12773,84 @@ var MODELS_BY_PROVIDER = {
|
|
|
12735
12773
|
unit: "per_million_tokens"
|
|
12736
12774
|
}
|
|
12737
12775
|
},
|
|
12776
|
+
{
|
|
12777
|
+
name: "openai.gpt-5.6-luna",
|
|
12778
|
+
displayName: "GPT-5.6 Luna",
|
|
12779
|
+
maxInputTokens: 272e3,
|
|
12780
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12781
|
+
reasoning: true,
|
|
12782
|
+
supportsTemperature: false,
|
|
12783
|
+
supportsToolCall: true,
|
|
12784
|
+
releaseDate: "2026-07-09",
|
|
12785
|
+
modalities: {
|
|
12786
|
+
input: ["text", "image", "pdf"],
|
|
12787
|
+
output: ["text"]
|
|
12788
|
+
},
|
|
12789
|
+
providerMetadata: {
|
|
12790
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12791
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12792
|
+
},
|
|
12793
|
+
pricing: {
|
|
12794
|
+
inputPerM: 1,
|
|
12795
|
+
outputPerM: 6,
|
|
12796
|
+
cacheReadPerM: 0.1,
|
|
12797
|
+
cacheWritePerM: 1.25,
|
|
12798
|
+
currency: "USD",
|
|
12799
|
+
unit: "per_million_tokens"
|
|
12800
|
+
}
|
|
12801
|
+
},
|
|
12802
|
+
{
|
|
12803
|
+
name: "openai.gpt-5.6-sol",
|
|
12804
|
+
displayName: "GPT-5.6 Sol",
|
|
12805
|
+
maxInputTokens: 272e3,
|
|
12806
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12807
|
+
reasoning: true,
|
|
12808
|
+
supportsTemperature: false,
|
|
12809
|
+
supportsToolCall: true,
|
|
12810
|
+
releaseDate: "2026-07-09",
|
|
12811
|
+
modalities: {
|
|
12812
|
+
input: ["text", "image", "pdf"],
|
|
12813
|
+
output: ["text"]
|
|
12814
|
+
},
|
|
12815
|
+
providerMetadata: {
|
|
12816
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12817
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12818
|
+
},
|
|
12819
|
+
pricing: {
|
|
12820
|
+
inputPerM: 5,
|
|
12821
|
+
outputPerM: 30,
|
|
12822
|
+
cacheReadPerM: 0.5,
|
|
12823
|
+
cacheWritePerM: 6.25,
|
|
12824
|
+
currency: "USD",
|
|
12825
|
+
unit: "per_million_tokens"
|
|
12826
|
+
}
|
|
12827
|
+
},
|
|
12828
|
+
{
|
|
12829
|
+
name: "openai.gpt-5.6-terra",
|
|
12830
|
+
displayName: "GPT-5.6 Terra",
|
|
12831
|
+
maxInputTokens: 272e3,
|
|
12832
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12833
|
+
reasoning: true,
|
|
12834
|
+
supportsTemperature: false,
|
|
12835
|
+
supportsToolCall: true,
|
|
12836
|
+
releaseDate: "2026-07-09",
|
|
12837
|
+
modalities: {
|
|
12838
|
+
input: ["text", "image", "pdf"],
|
|
12839
|
+
output: ["text"]
|
|
12840
|
+
},
|
|
12841
|
+
providerMetadata: {
|
|
12842
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12843
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12844
|
+
},
|
|
12845
|
+
pricing: {
|
|
12846
|
+
inputPerM: 2.5,
|
|
12847
|
+
outputPerM: 15,
|
|
12848
|
+
cacheReadPerM: 0.25,
|
|
12849
|
+
cacheWritePerM: 3.125,
|
|
12850
|
+
currency: "USD",
|
|
12851
|
+
unit: "per_million_tokens"
|
|
12852
|
+
}
|
|
12853
|
+
},
|
|
12738
12854
|
{
|
|
12739
12855
|
name: "openai.gpt-oss-120b",
|
|
12740
12856
|
displayName: "gpt-oss-120b",
|
|
@@ -13550,6 +13666,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
13550
13666
|
cacheReadPerM: 0.2,
|
|
13551
13667
|
cacheWritePerM: 0.375,
|
|
13552
13668
|
reasoningPerM: 12,
|
|
13669
|
+
contextOver200kPerM: {
|
|
13670
|
+
inputPerM: 4,
|
|
13671
|
+
outputPerM: 18
|
|
13672
|
+
},
|
|
13553
13673
|
currency: "USD",
|
|
13554
13674
|
unit: "per_million_tokens"
|
|
13555
13675
|
}
|
|
@@ -13557,10 +13677,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
13557
13677
|
{
|
|
13558
13678
|
name: "~moonshotai/kimi-latest",
|
|
13559
13679
|
displayName: "MoonshotAI Kimi Latest",
|
|
13560
|
-
maxInputTokens:
|
|
13680
|
+
maxInputTokens: 1048576,
|
|
13561
13681
|
supportedFileTypes: ["image"],
|
|
13562
13682
|
reasoning: true,
|
|
13563
|
-
supportsTemperature:
|
|
13683
|
+
supportsTemperature: false,
|
|
13564
13684
|
supportsToolCall: true,
|
|
13565
13685
|
releaseDate: "2026-04-27",
|
|
13566
13686
|
modalities: {
|
|
@@ -13568,9 +13688,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
13568
13688
|
output: ["text"]
|
|
13569
13689
|
},
|
|
13570
13690
|
pricing: {
|
|
13571
|
-
inputPerM:
|
|
13572
|
-
outputPerM:
|
|
13573
|
-
cacheReadPerM: 0.
|
|
13691
|
+
inputPerM: 3,
|
|
13692
|
+
outputPerM: 15,
|
|
13693
|
+
cacheReadPerM: 0.3,
|
|
13574
13694
|
currency: "USD",
|
|
13575
13695
|
unit: "per_million_tokens"
|
|
13576
13696
|
}
|
|
@@ -14075,7 +14195,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14075
14195
|
reasoning: true,
|
|
14076
14196
|
supportsTemperature: false,
|
|
14077
14197
|
supportsToolCall: true,
|
|
14078
|
-
releaseDate: "2026-
|
|
14198
|
+
releaseDate: "2026-04-16",
|
|
14079
14199
|
modalities: {
|
|
14080
14200
|
input: ["text", "image", "pdf"],
|
|
14081
14201
|
output: ["text"]
|
|
@@ -14119,7 +14239,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14119
14239
|
reasoning: true,
|
|
14120
14240
|
supportsTemperature: false,
|
|
14121
14241
|
supportsToolCall: true,
|
|
14122
|
-
releaseDate: "2026-05-
|
|
14242
|
+
releaseDate: "2026-05-28",
|
|
14123
14243
|
modalities: {
|
|
14124
14244
|
input: ["text", "image", "pdf"],
|
|
14125
14245
|
output: ["text"]
|
|
@@ -14233,26 +14353,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
14233
14353
|
unit: "per_million_tokens"
|
|
14234
14354
|
}
|
|
14235
14355
|
},
|
|
14236
|
-
{
|
|
14237
|
-
name: "arcee-ai/coder-large",
|
|
14238
|
-
displayName: "Coder Large",
|
|
14239
|
-
maxInputTokens: 32768,
|
|
14240
|
-
supportedFileTypes: [],
|
|
14241
|
-
reasoning: false,
|
|
14242
|
-
supportsTemperature: true,
|
|
14243
|
-
supportsToolCall: false,
|
|
14244
|
-
releaseDate: "2025-05-05",
|
|
14245
|
-
modalities: {
|
|
14246
|
-
input: ["text"],
|
|
14247
|
-
output: ["text"]
|
|
14248
|
-
},
|
|
14249
|
-
pricing: {
|
|
14250
|
-
inputPerM: 0.5,
|
|
14251
|
-
outputPerM: 0.8,
|
|
14252
|
-
currency: "USD",
|
|
14253
|
-
unit: "per_million_tokens"
|
|
14254
|
-
}
|
|
14255
|
-
},
|
|
14256
14356
|
{
|
|
14257
14357
|
name: "arcee-ai/trinity-large-thinking",
|
|
14258
14358
|
displayName: "Trinity Large Thinking",
|
|
@@ -14274,26 +14374,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
14274
14374
|
unit: "per_million_tokens"
|
|
14275
14375
|
}
|
|
14276
14376
|
},
|
|
14277
|
-
{
|
|
14278
|
-
name: "arcee-ai/trinity-mini",
|
|
14279
|
-
displayName: "Trinity Mini",
|
|
14280
|
-
maxInputTokens: 131072,
|
|
14281
|
-
supportedFileTypes: [],
|
|
14282
|
-
reasoning: true,
|
|
14283
|
-
supportsTemperature: true,
|
|
14284
|
-
supportsToolCall: true,
|
|
14285
|
-
releaseDate: "2025-12-01",
|
|
14286
|
-
modalities: {
|
|
14287
|
-
input: ["text"],
|
|
14288
|
-
output: ["text"]
|
|
14289
|
-
},
|
|
14290
|
-
pricing: {
|
|
14291
|
-
inputPerM: 0.045,
|
|
14292
|
-
outputPerM: 0.15,
|
|
14293
|
-
currency: "USD",
|
|
14294
|
-
unit: "per_million_tokens"
|
|
14295
|
-
}
|
|
14296
|
-
},
|
|
14297
14377
|
{
|
|
14298
14378
|
name: "arcee-ai/virtuoso-large",
|
|
14299
14379
|
displayName: "Virtuoso Large",
|
|
@@ -14629,8 +14709,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14629
14709
|
output: ["text"]
|
|
14630
14710
|
},
|
|
14631
14711
|
pricing: {
|
|
14632
|
-
inputPerM: 0.
|
|
14633
|
-
outputPerM:
|
|
14712
|
+
inputPerM: 0.27,
|
|
14713
|
+
outputPerM: 1.12,
|
|
14634
14714
|
cacheReadPerM: 0.135,
|
|
14635
14715
|
currency: "USD",
|
|
14636
14716
|
unit: "per_million_tokens"
|
|
@@ -14650,8 +14730,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14650
14730
|
output: ["text"]
|
|
14651
14731
|
},
|
|
14652
14732
|
pricing: {
|
|
14653
|
-
inputPerM: 0.
|
|
14654
|
-
outputPerM: 0.
|
|
14733
|
+
inputPerM: 0.25,
|
|
14734
|
+
outputPerM: 0.95,
|
|
14655
14735
|
cacheReadPerM: 0.13,
|
|
14656
14736
|
currency: "USD",
|
|
14657
14737
|
unit: "per_million_tokens"
|
|
@@ -14721,7 +14801,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14721
14801
|
{
|
|
14722
14802
|
name: "deepseek/deepseek-v3.1-terminus",
|
|
14723
14803
|
displayName: "DeepSeek V3.1 Terminus",
|
|
14724
|
-
maxInputTokens:
|
|
14804
|
+
maxInputTokens: 131072,
|
|
14725
14805
|
supportedFileTypes: [],
|
|
14726
14806
|
reasoning: true,
|
|
14727
14807
|
supportsTemperature: true,
|
|
@@ -14733,8 +14813,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14733
14813
|
},
|
|
14734
14814
|
pricing: {
|
|
14735
14815
|
inputPerM: 0.27,
|
|
14736
|
-
outputPerM:
|
|
14737
|
-
cacheReadPerM: 0.
|
|
14816
|
+
outputPerM: 1,
|
|
14817
|
+
cacheReadPerM: 0.135,
|
|
14738
14818
|
currency: "USD",
|
|
14739
14819
|
unit: "per_million_tokens"
|
|
14740
14820
|
}
|
|
@@ -14742,7 +14822,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14742
14822
|
{
|
|
14743
14823
|
name: "deepseek/deepseek-v3.2",
|
|
14744
14824
|
displayName: "DeepSeek V3.2",
|
|
14745
|
-
maxInputTokens:
|
|
14825
|
+
maxInputTokens: 163840,
|
|
14746
14826
|
supportedFileTypes: [],
|
|
14747
14827
|
reasoning: true,
|
|
14748
14828
|
supportsTemperature: true,
|
|
@@ -14753,9 +14833,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
14753
14833
|
output: ["text"]
|
|
14754
14834
|
},
|
|
14755
14835
|
pricing: {
|
|
14756
|
-
inputPerM: 0.
|
|
14757
|
-
outputPerM: 0.
|
|
14758
|
-
cacheReadPerM: 0.
|
|
14836
|
+
inputPerM: 0.269,
|
|
14837
|
+
outputPerM: 0.4,
|
|
14838
|
+
cacheReadPerM: 0.1345,
|
|
14759
14839
|
currency: "USD",
|
|
14760
14840
|
unit: "per_million_tokens"
|
|
14761
14841
|
}
|
|
@@ -14798,9 +14878,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
14798
14878
|
},
|
|
14799
14879
|
supportsInterleaved: true,
|
|
14800
14880
|
pricing: {
|
|
14801
|
-
inputPerM: 0.
|
|
14802
|
-
outputPerM: 0.
|
|
14803
|
-
cacheReadPerM: 0.
|
|
14881
|
+
inputPerM: 0.098,
|
|
14882
|
+
outputPerM: 0.196,
|
|
14883
|
+
cacheReadPerM: 0.02,
|
|
14804
14884
|
currency: "USD",
|
|
14805
14885
|
unit: "per_million_tokens"
|
|
14806
14886
|
}
|
|
@@ -14996,16 +15076,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
14996
15076
|
},
|
|
14997
15077
|
{
|
|
14998
15078
|
name: "google/gemini-3-pro-image",
|
|
14999
|
-
displayName: "Nano Banana Pro
|
|
15079
|
+
displayName: "Nano Banana Pro",
|
|
15000
15080
|
maxInputTokens: 65536,
|
|
15001
15081
|
supportedFileTypes: ["image", "document"],
|
|
15002
15082
|
reasoning: true,
|
|
15003
15083
|
supportsTemperature: true,
|
|
15004
15084
|
supportsToolCall: true,
|
|
15005
|
-
releaseDate: "2026-
|
|
15085
|
+
releaseDate: "2026-05-28",
|
|
15006
15086
|
modalities: {
|
|
15007
|
-
input: ["
|
|
15008
|
-
output: ["
|
|
15087
|
+
input: ["text", "image"],
|
|
15088
|
+
output: ["text", "image"]
|
|
15009
15089
|
},
|
|
15010
15090
|
pricing: {
|
|
15011
15091
|
inputPerM: 2,
|
|
@@ -15042,16 +15122,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
15042
15122
|
},
|
|
15043
15123
|
{
|
|
15044
15124
|
name: "google/gemini-3.1-flash-image",
|
|
15045
|
-
displayName: "Nano Banana 2
|
|
15125
|
+
displayName: "Nano Banana 2",
|
|
15046
15126
|
maxInputTokens: 131072,
|
|
15047
15127
|
supportedFileTypes: ["image", "document"],
|
|
15048
15128
|
reasoning: true,
|
|
15049
15129
|
supportsTemperature: true,
|
|
15050
15130
|
supportsToolCall: false,
|
|
15051
|
-
releaseDate: "2026-
|
|
15131
|
+
releaseDate: "2026-05-28",
|
|
15052
15132
|
modalities: {
|
|
15053
|
-
input: ["
|
|
15054
|
-
output: ["
|
|
15133
|
+
input: ["text", "image"],
|
|
15134
|
+
output: ["text", "image"]
|
|
15055
15135
|
},
|
|
15056
15136
|
pricing: {
|
|
15057
15137
|
inputPerM: 0.5,
|
|
@@ -15286,7 +15366,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15286
15366
|
},
|
|
15287
15367
|
pricing: {
|
|
15288
15368
|
inputPerM: 0.08,
|
|
15289
|
-
outputPerM: 0.
|
|
15369
|
+
outputPerM: 0.45,
|
|
15370
|
+
cacheReadPerM: 0.04,
|
|
15290
15371
|
currency: "USD",
|
|
15291
15372
|
unit: "per_million_tokens"
|
|
15292
15373
|
}
|
|
@@ -15345,8 +15426,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15345
15426
|
output: ["text"]
|
|
15346
15427
|
},
|
|
15347
15428
|
pricing: {
|
|
15348
|
-
inputPerM: 0.
|
|
15349
|
-
outputPerM: 0.
|
|
15429
|
+
inputPerM: 0.1,
|
|
15430
|
+
outputPerM: 0.3,
|
|
15350
15431
|
currency: "USD",
|
|
15351
15432
|
unit: "per_million_tokens"
|
|
15352
15433
|
}
|
|
@@ -15385,9 +15466,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
15385
15466
|
output: ["text"]
|
|
15386
15467
|
},
|
|
15387
15468
|
pricing: {
|
|
15388
|
-
inputPerM: 0.
|
|
15389
|
-
outputPerM: 0.
|
|
15390
|
-
cacheReadPerM: 0.
|
|
15469
|
+
inputPerM: 0.22,
|
|
15470
|
+
outputPerM: 0.55,
|
|
15471
|
+
cacheReadPerM: 0.12,
|
|
15391
15472
|
currency: "USD",
|
|
15392
15473
|
unit: "per_million_tokens"
|
|
15393
15474
|
}
|
|
@@ -15638,62 +15719,64 @@ var MODELS_BY_PROVIDER = {
|
|
|
15638
15719
|
}
|
|
15639
15720
|
},
|
|
15640
15721
|
{
|
|
15641
|
-
name: "kwaipilot/kat-coder-
|
|
15642
|
-
displayName: "KAT-Coder-
|
|
15722
|
+
name: "kwaipilot/kat-coder-air-v2.5",
|
|
15723
|
+
displayName: "KAT-Coder-Air V2.5",
|
|
15643
15724
|
maxInputTokens: 256e3,
|
|
15644
15725
|
supportedFileTypes: [],
|
|
15645
15726
|
reasoning: false,
|
|
15646
15727
|
supportsTemperature: true,
|
|
15647
15728
|
supportsToolCall: true,
|
|
15648
|
-
releaseDate: "2026-
|
|
15729
|
+
releaseDate: "2026-07-10",
|
|
15649
15730
|
modalities: {
|
|
15650
15731
|
input: ["text"],
|
|
15651
15732
|
output: ["text"]
|
|
15652
15733
|
},
|
|
15653
15734
|
pricing: {
|
|
15654
|
-
inputPerM: 0.
|
|
15655
|
-
outputPerM:
|
|
15656
|
-
cacheReadPerM: 0.
|
|
15735
|
+
inputPerM: 0.15,
|
|
15736
|
+
outputPerM: 0.6,
|
|
15737
|
+
cacheReadPerM: 0.03,
|
|
15657
15738
|
currency: "USD",
|
|
15658
15739
|
unit: "per_million_tokens"
|
|
15659
15740
|
}
|
|
15660
15741
|
},
|
|
15661
15742
|
{
|
|
15662
|
-
name: "
|
|
15663
|
-
displayName: "
|
|
15664
|
-
maxInputTokens:
|
|
15743
|
+
name: "kwaipilot/kat-coder-pro-v2",
|
|
15744
|
+
displayName: "KAT-Coder-Pro V2",
|
|
15745
|
+
maxInputTokens: 256e3,
|
|
15665
15746
|
supportedFileTypes: [],
|
|
15666
15747
|
reasoning: false,
|
|
15667
15748
|
supportsTemperature: true,
|
|
15668
|
-
supportsToolCall:
|
|
15669
|
-
releaseDate: "2026-
|
|
15749
|
+
supportsToolCall: true,
|
|
15750
|
+
releaseDate: "2026-03-27",
|
|
15670
15751
|
modalities: {
|
|
15671
15752
|
input: ["text"],
|
|
15672
15753
|
output: ["text"]
|
|
15673
15754
|
},
|
|
15674
15755
|
pricing: {
|
|
15675
|
-
inputPerM: 0,
|
|
15676
|
-
outputPerM:
|
|
15756
|
+
inputPerM: 0.3,
|
|
15757
|
+
outputPerM: 1.2,
|
|
15758
|
+
cacheReadPerM: 0.06,
|
|
15677
15759
|
currency: "USD",
|
|
15678
15760
|
unit: "per_million_tokens"
|
|
15679
15761
|
}
|
|
15680
15762
|
},
|
|
15681
15763
|
{
|
|
15682
|
-
name: "
|
|
15683
|
-
displayName: "
|
|
15684
|
-
maxInputTokens:
|
|
15764
|
+
name: "kwaipilot/kat-coder-pro-v2.5",
|
|
15765
|
+
displayName: "KAT-Coder-Pro V2.5",
|
|
15766
|
+
maxInputTokens: 256e3,
|
|
15685
15767
|
supportedFileTypes: [],
|
|
15686
|
-
reasoning:
|
|
15768
|
+
reasoning: false,
|
|
15687
15769
|
supportsTemperature: true,
|
|
15688
15770
|
supportsToolCall: true,
|
|
15689
|
-
releaseDate: "2026-
|
|
15771
|
+
releaseDate: "2026-07-10",
|
|
15690
15772
|
modalities: {
|
|
15691
15773
|
input: ["text"],
|
|
15692
15774
|
output: ["text"]
|
|
15693
15775
|
},
|
|
15694
15776
|
pricing: {
|
|
15695
|
-
inputPerM: 0,
|
|
15696
|
-
outputPerM:
|
|
15777
|
+
inputPerM: 0.74,
|
|
15778
|
+
outputPerM: 2.96,
|
|
15779
|
+
cacheReadPerM: 0.15,
|
|
15697
15780
|
currency: "USD",
|
|
15698
15781
|
unit: "per_million_tokens"
|
|
15699
15782
|
}
|
|
@@ -15718,26 +15801,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
15718
15801
|
unit: "per_million_tokens"
|
|
15719
15802
|
}
|
|
15720
15803
|
},
|
|
15721
|
-
{
|
|
15722
|
-
name: "meta-llama/llama-3-8b-instruct",
|
|
15723
|
-
displayName: "Llama 3 8B Instruct",
|
|
15724
|
-
maxInputTokens: 8192,
|
|
15725
|
-
supportedFileTypes: [],
|
|
15726
|
-
reasoning: false,
|
|
15727
|
-
supportsTemperature: true,
|
|
15728
|
-
supportsToolCall: false,
|
|
15729
|
-
releaseDate: "2024-04-18",
|
|
15730
|
-
modalities: {
|
|
15731
|
-
input: ["text"],
|
|
15732
|
-
output: ["text"]
|
|
15733
|
-
},
|
|
15734
|
-
pricing: {
|
|
15735
|
-
inputPerM: 0.14,
|
|
15736
|
-
outputPerM: 0.14,
|
|
15737
|
-
currency: "USD",
|
|
15738
|
-
unit: "per_million_tokens"
|
|
15739
|
-
}
|
|
15740
|
-
},
|
|
15741
15804
|
{
|
|
15742
15805
|
name: "meta-llama/llama-3.1-70b-instruct",
|
|
15743
15806
|
displayName: "Llama 3.1 70B Instruct",
|
|
@@ -15772,8 +15835,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
15772
15835
|
output: ["text"]
|
|
15773
15836
|
},
|
|
15774
15837
|
pricing: {
|
|
15775
|
-
inputPerM: 0.
|
|
15776
|
-
outputPerM: 0.
|
|
15838
|
+
inputPerM: 0.05,
|
|
15839
|
+
outputPerM: 0.08,
|
|
15840
|
+
cacheReadPerM: 0.025,
|
|
15777
15841
|
currency: "USD",
|
|
15778
15842
|
unit: "per_million_tokens"
|
|
15779
15843
|
}
|
|
@@ -15872,8 +15936,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15872
15936
|
output: ["text"]
|
|
15873
15937
|
},
|
|
15874
15938
|
pricing: {
|
|
15875
|
-
inputPerM: 0.
|
|
15876
|
-
outputPerM: 0.
|
|
15939
|
+
inputPerM: 0.13,
|
|
15940
|
+
outputPerM: 0.4,
|
|
15877
15941
|
currency: "USD",
|
|
15878
15942
|
unit: "per_million_tokens"
|
|
15879
15943
|
}
|
|
@@ -15912,8 +15976,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15912
15976
|
output: ["text"]
|
|
15913
15977
|
},
|
|
15914
15978
|
pricing: {
|
|
15915
|
-
inputPerM: 0.
|
|
15916
|
-
outputPerM: 0.
|
|
15979
|
+
inputPerM: 0.2,
|
|
15980
|
+
outputPerM: 0.8,
|
|
15917
15981
|
currency: "USD",
|
|
15918
15982
|
unit: "per_million_tokens"
|
|
15919
15983
|
}
|
|
@@ -15958,6 +16022,27 @@ var MODELS_BY_PROVIDER = {
|
|
|
15958
16022
|
unit: "per_million_tokens"
|
|
15959
16023
|
}
|
|
15960
16024
|
},
|
|
16025
|
+
{
|
|
16026
|
+
name: "meta/muse-spark-1.1",
|
|
16027
|
+
displayName: "Muse Spark 1.1",
|
|
16028
|
+
maxInputTokens: 1048576,
|
|
16029
|
+
supportedFileTypes: ["pdf", "image", "audio", "video"],
|
|
16030
|
+
reasoning: true,
|
|
16031
|
+
supportsTemperature: true,
|
|
16032
|
+
supportsToolCall: true,
|
|
16033
|
+
releaseDate: "2026-04-08",
|
|
16034
|
+
modalities: {
|
|
16035
|
+
input: ["text", "image", "video", "pdf", "audio"],
|
|
16036
|
+
output: ["text"]
|
|
16037
|
+
},
|
|
16038
|
+
pricing: {
|
|
16039
|
+
inputPerM: 1.25,
|
|
16040
|
+
outputPerM: 4.25,
|
|
16041
|
+
cacheReadPerM: 0.15,
|
|
16042
|
+
currency: "USD",
|
|
16043
|
+
unit: "per_million_tokens"
|
|
16044
|
+
}
|
|
16045
|
+
},
|
|
15961
16046
|
{
|
|
15962
16047
|
name: "microsoft/phi-4",
|
|
15963
16048
|
displayName: "Phi 4",
|
|
@@ -16032,7 +16117,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16032
16117
|
output: ["text"]
|
|
16033
16118
|
},
|
|
16034
16119
|
pricing: {
|
|
16035
|
-
inputPerM: 0.
|
|
16120
|
+
inputPerM: 0.55,
|
|
16036
16121
|
outputPerM: 2.2,
|
|
16037
16122
|
currency: "USD",
|
|
16038
16123
|
unit: "per_million_tokens"
|
|
@@ -16147,8 +16232,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16147
16232
|
output: ["text"]
|
|
16148
16233
|
},
|
|
16149
16234
|
pricing: {
|
|
16150
|
-
inputPerM: 0.
|
|
16151
|
-
outputPerM:
|
|
16235
|
+
inputPerM: 0.3,
|
|
16236
|
+
outputPerM: 1.2,
|
|
16237
|
+
cacheReadPerM: 0.06,
|
|
16152
16238
|
currency: "USD",
|
|
16153
16239
|
unit: "per_million_tokens"
|
|
16154
16240
|
}
|
|
@@ -16420,7 +16506,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16420
16506
|
},
|
|
16421
16507
|
pricing: {
|
|
16422
16508
|
inputPerM: 0.02,
|
|
16423
|
-
outputPerM: 0.
|
|
16509
|
+
outputPerM: 0.04,
|
|
16424
16510
|
currency: "USD",
|
|
16425
16511
|
unit: "per_million_tokens"
|
|
16426
16512
|
}
|
|
@@ -16510,7 +16596,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16510
16596
|
{
|
|
16511
16597
|
name: "mistralai/mistral-small-3.2-24b-instruct",
|
|
16512
16598
|
displayName: "Mistral Small 3.2 24B",
|
|
16513
|
-
maxInputTokens:
|
|
16599
|
+
maxInputTokens: 131072,
|
|
16514
16600
|
supportedFileTypes: ["image"],
|
|
16515
16601
|
reasoning: false,
|
|
16516
16602
|
supportsTemperature: true,
|
|
@@ -16521,8 +16607,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16521
16607
|
output: ["text"]
|
|
16522
16608
|
},
|
|
16523
16609
|
pricing: {
|
|
16524
|
-
inputPerM: 0.
|
|
16525
|
-
outputPerM: 0.
|
|
16610
|
+
inputPerM: 0.1,
|
|
16611
|
+
outputPerM: 0.3,
|
|
16612
|
+
cacheReadPerM: 0.01,
|
|
16526
16613
|
currency: "USD",
|
|
16527
16614
|
unit: "per_million_tokens"
|
|
16528
16615
|
}
|
|
@@ -16629,7 +16716,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
16629
16716
|
pricing: {
|
|
16630
16717
|
inputPerM: 0.6,
|
|
16631
16718
|
outputPerM: 2.5,
|
|
16632
|
-
cacheReadPerM: 0.15,
|
|
16633
16719
|
currency: "USD",
|
|
16634
16720
|
unit: "per_million_tokens"
|
|
16635
16721
|
}
|
|
@@ -16652,9 +16738,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16652
16738
|
},
|
|
16653
16739
|
supportsInterleaved: true,
|
|
16654
16740
|
pricing: {
|
|
16655
|
-
inputPerM: 0.
|
|
16656
|
-
outputPerM: 2.
|
|
16657
|
-
cacheReadPerM: 0.
|
|
16741
|
+
inputPerM: 0.57,
|
|
16742
|
+
outputPerM: 2.85,
|
|
16743
|
+
cacheReadPerM: 0.095,
|
|
16658
16744
|
currency: "USD",
|
|
16659
16745
|
unit: "per_million_tokens"
|
|
16660
16746
|
}
|
|
@@ -16677,9 +16763,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16677
16763
|
},
|
|
16678
16764
|
supportsInterleaved: true,
|
|
16679
16765
|
pricing: {
|
|
16680
|
-
inputPerM: 0.
|
|
16681
|
-
outputPerM:
|
|
16682
|
-
cacheReadPerM: 0.
|
|
16766
|
+
inputPerM: 0.95,
|
|
16767
|
+
outputPerM: 4,
|
|
16768
|
+
cacheReadPerM: 0.16,
|
|
16683
16769
|
currency: "USD",
|
|
16684
16770
|
unit: "per_million_tokens"
|
|
16685
16771
|
}
|
|
@@ -16698,9 +16784,30 @@ var MODELS_BY_PROVIDER = {
|
|
|
16698
16784
|
output: ["text"]
|
|
16699
16785
|
},
|
|
16700
16786
|
pricing: {
|
|
16701
|
-
inputPerM: 0.
|
|
16702
|
-
outputPerM: 3.
|
|
16703
|
-
cacheReadPerM: 0.
|
|
16787
|
+
inputPerM: 0.75,
|
|
16788
|
+
outputPerM: 3.5,
|
|
16789
|
+
cacheReadPerM: 0.16,
|
|
16790
|
+
currency: "USD",
|
|
16791
|
+
unit: "per_million_tokens"
|
|
16792
|
+
}
|
|
16793
|
+
},
|
|
16794
|
+
{
|
|
16795
|
+
name: "moonshotai/kimi-k3",
|
|
16796
|
+
displayName: "Kimi K3",
|
|
16797
|
+
maxInputTokens: 1048576,
|
|
16798
|
+
supportedFileTypes: ["image"],
|
|
16799
|
+
reasoning: true,
|
|
16800
|
+
supportsTemperature: false,
|
|
16801
|
+
supportsToolCall: true,
|
|
16802
|
+
releaseDate: "2026-07-16",
|
|
16803
|
+
modalities: {
|
|
16804
|
+
input: ["text", "image"],
|
|
16805
|
+
output: ["text"]
|
|
16806
|
+
},
|
|
16807
|
+
pricing: {
|
|
16808
|
+
inputPerM: 3,
|
|
16809
|
+
outputPerM: 15,
|
|
16810
|
+
cacheReadPerM: 0.3,
|
|
16704
16811
|
currency: "USD",
|
|
16705
16812
|
unit: "per_million_tokens"
|
|
16706
16813
|
}
|
|
@@ -16981,8 +17088,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16981
17088
|
output: ["text"]
|
|
16982
17089
|
},
|
|
16983
17090
|
pricing: {
|
|
16984
|
-
inputPerM: 0.
|
|
16985
|
-
outputPerM: 0.
|
|
17091
|
+
inputPerM: 0.21,
|
|
17092
|
+
outputPerM: 0.455,
|
|
17093
|
+
cacheReadPerM: 0.06,
|
|
16986
17094
|
currency: "USD",
|
|
16987
17095
|
unit: "per_million_tokens"
|
|
16988
17096
|
}
|
|
@@ -17021,9 +17129,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
17021
17129
|
output: ["text"]
|
|
17022
17130
|
},
|
|
17023
17131
|
pricing: {
|
|
17024
|
-
inputPerM: 0.
|
|
17025
|
-
outputPerM:
|
|
17026
|
-
cacheReadPerM: 0.
|
|
17132
|
+
inputPerM: 0.6,
|
|
17133
|
+
outputPerM: 3.6,
|
|
17134
|
+
cacheReadPerM: 0.2,
|
|
17027
17135
|
currency: "USD",
|
|
17028
17136
|
unit: "per_million_tokens"
|
|
17029
17137
|
}
|
|
@@ -17327,6 +17435,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17327
17435
|
pricing: {
|
|
17328
17436
|
inputPerM: 2.5,
|
|
17329
17437
|
outputPerM: 10,
|
|
17438
|
+
cacheReadPerM: 1.25,
|
|
17330
17439
|
currency: "USD",
|
|
17331
17440
|
unit: "per_million_tokens"
|
|
17332
17441
|
}
|
|
@@ -17617,7 +17726,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17617
17726
|
pricing: {
|
|
17618
17727
|
inputPerM: 0.05,
|
|
17619
17728
|
outputPerM: 0.4,
|
|
17620
|
-
cacheReadPerM:
|
|
17729
|
+
cacheReadPerM: 5e-3,
|
|
17621
17730
|
currency: "USD",
|
|
17622
17731
|
unit: "per_million_tokens"
|
|
17623
17732
|
}
|
|
@@ -17658,7 +17767,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17658
17767
|
pricing: {
|
|
17659
17768
|
inputPerM: 1.25,
|
|
17660
17769
|
outputPerM: 10,
|
|
17661
|
-
cacheReadPerM: 0.
|
|
17770
|
+
cacheReadPerM: 0.125,
|
|
17662
17771
|
currency: "USD",
|
|
17663
17772
|
unit: "per_million_tokens"
|
|
17664
17773
|
}
|
|
@@ -17679,7 +17788,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17679
17788
|
pricing: {
|
|
17680
17789
|
inputPerM: 1.25,
|
|
17681
17790
|
outputPerM: 10,
|
|
17682
|
-
cacheReadPerM: 0.
|
|
17791
|
+
cacheReadPerM: 0.125,
|
|
17683
17792
|
currency: "USD",
|
|
17684
17793
|
unit: "per_million_tokens"
|
|
17685
17794
|
}
|
|
@@ -17700,7 +17809,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17700
17809
|
pricing: {
|
|
17701
17810
|
inputPerM: 1.25,
|
|
17702
17811
|
outputPerM: 10,
|
|
17703
|
-
cacheReadPerM: 0.
|
|
17812
|
+
cacheReadPerM: 0.125,
|
|
17704
17813
|
currency: "USD",
|
|
17705
17814
|
unit: "per_million_tokens"
|
|
17706
17815
|
}
|
|
@@ -18224,28 +18333,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
18224
18333
|
output: ["text"]
|
|
18225
18334
|
},
|
|
18226
18335
|
pricing: {
|
|
18227
|
-
inputPerM: 0.
|
|
18228
|
-
outputPerM: 0.
|
|
18229
|
-
currency: "USD",
|
|
18230
|
-
unit: "per_million_tokens"
|
|
18231
|
-
}
|
|
18232
|
-
},
|
|
18233
|
-
{
|
|
18234
|
-
name: "openai/gpt-oss-120b:free",
|
|
18235
|
-
displayName: "gpt-oss-120b (free)",
|
|
18236
|
-
maxInputTokens: 131072,
|
|
18237
|
-
supportedFileTypes: [],
|
|
18238
|
-
reasoning: true,
|
|
18239
|
-
supportsTemperature: true,
|
|
18240
|
-
supportsToolCall: true,
|
|
18241
|
-
releaseDate: "2025-08-05",
|
|
18242
|
-
modalities: {
|
|
18243
|
-
input: ["text"],
|
|
18244
|
-
output: ["text"]
|
|
18245
|
-
},
|
|
18246
|
-
pricing: {
|
|
18247
|
-
inputPerM: 0,
|
|
18248
|
-
outputPerM: 0,
|
|
18336
|
+
inputPerM: 0.037,
|
|
18337
|
+
outputPerM: 0.17,
|
|
18249
18338
|
currency: "USD",
|
|
18250
18339
|
unit: "per_million_tokens"
|
|
18251
18340
|
}
|
|
@@ -18264,8 +18353,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
18264
18353
|
output: ["text"]
|
|
18265
18354
|
},
|
|
18266
18355
|
pricing: {
|
|
18267
|
-
inputPerM: 0.
|
|
18268
|
-
outputPerM: 0.
|
|
18356
|
+
inputPerM: 0.03,
|
|
18357
|
+
outputPerM: 0.13,
|
|
18358
|
+
cacheReadPerM: 0.03,
|
|
18269
18359
|
currency: "USD",
|
|
18270
18360
|
unit: "per_million_tokens"
|
|
18271
18361
|
}
|
|
@@ -19001,7 +19091,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19001
19091
|
},
|
|
19002
19092
|
pricing: {
|
|
19003
19093
|
inputPerM: 0.09,
|
|
19004
|
-
outputPerM: 0.
|
|
19094
|
+
outputPerM: 0.55,
|
|
19005
19095
|
currency: "USD",
|
|
19006
19096
|
unit: "per_million_tokens"
|
|
19007
19097
|
}
|
|
@@ -19049,7 +19139,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19049
19139
|
{
|
|
19050
19140
|
name: "qwen/qwen3-30b-a3b-instruct-2507",
|
|
19051
19141
|
displayName: "Qwen3 30B A3B Instruct 2507",
|
|
19052
|
-
maxInputTokens:
|
|
19142
|
+
maxInputTokens: 262144,
|
|
19053
19143
|
supportedFileTypes: [],
|
|
19054
19144
|
reasoning: false,
|
|
19055
19145
|
supportsTemperature: true,
|
|
@@ -19060,8 +19150,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
19060
19150
|
output: ["text"]
|
|
19061
19151
|
},
|
|
19062
19152
|
pricing: {
|
|
19063
|
-
inputPerM: 0.
|
|
19064
|
-
outputPerM: 0.
|
|
19153
|
+
inputPerM: 0.1,
|
|
19154
|
+
outputPerM: 0.3,
|
|
19065
19155
|
currency: "USD",
|
|
19066
19156
|
unit: "per_million_tokens"
|
|
19067
19157
|
}
|
|
@@ -19140,8 +19230,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19140
19230
|
output: ["text"]
|
|
19141
19231
|
},
|
|
19142
19232
|
pricing: {
|
|
19143
|
-
inputPerM: 0.
|
|
19144
|
-
outputPerM: 1
|
|
19233
|
+
inputPerM: 0.3,
|
|
19234
|
+
outputPerM: 1,
|
|
19235
|
+
cacheReadPerM: 0.1,
|
|
19145
19236
|
currency: "USD",
|
|
19146
19237
|
unit: "per_million_tokens"
|
|
19147
19238
|
}
|
|
@@ -19307,8 +19398,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19307
19398
|
output: ["text"]
|
|
19308
19399
|
},
|
|
19309
19400
|
pricing: {
|
|
19310
|
-
inputPerM: 0.
|
|
19401
|
+
inputPerM: 0.1,
|
|
19311
19402
|
outputPerM: 1.1,
|
|
19403
|
+
cacheReadPerM: 0.07,
|
|
19312
19404
|
currency: "USD",
|
|
19313
19405
|
unit: "per_million_tokens"
|
|
19314
19406
|
}
|
|
@@ -19356,7 +19448,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19356
19448
|
{
|
|
19357
19449
|
name: "qwen/qwen3-vl-235b-a22b-instruct",
|
|
19358
19450
|
displayName: "Qwen3 VL 235B A22B Instruct",
|
|
19359
|
-
maxInputTokens:
|
|
19451
|
+
maxInputTokens: 131072,
|
|
19360
19452
|
supportedFileTypes: ["image"],
|
|
19361
19453
|
reasoning: false,
|
|
19362
19454
|
supportsTemperature: true,
|
|
@@ -19367,9 +19459,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19367
19459
|
output: ["text"]
|
|
19368
19460
|
},
|
|
19369
19461
|
pricing: {
|
|
19370
|
-
inputPerM: 0.
|
|
19371
|
-
outputPerM:
|
|
19372
|
-
cacheReadPerM: 0.
|
|
19462
|
+
inputPerM: 0.21,
|
|
19463
|
+
outputPerM: 1.9,
|
|
19464
|
+
cacheReadPerM: 0.1,
|
|
19373
19465
|
currency: "USD",
|
|
19374
19466
|
unit: "per_million_tokens"
|
|
19375
19467
|
}
|
|
@@ -19550,7 +19642,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
19550
19642
|
pricing: {
|
|
19551
19643
|
inputPerM: 0.14,
|
|
19552
19644
|
outputPerM: 1,
|
|
19553
|
-
cacheReadPerM: 0.05,
|
|
19554
19645
|
currency: "USD",
|
|
19555
19646
|
unit: "per_million_tokens"
|
|
19556
19647
|
}
|
|
@@ -19558,7 +19649,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19558
19649
|
{
|
|
19559
19650
|
name: "qwen/qwen3.5-397b-a17b",
|
|
19560
19651
|
displayName: "Qwen3.5 397B-A17B",
|
|
19561
|
-
maxInputTokens:
|
|
19652
|
+
maxInputTokens: 262144,
|
|
19562
19653
|
supportedFileTypes: ["image", "video"],
|
|
19563
19654
|
reasoning: true,
|
|
19564
19655
|
supportsTemperature: true,
|
|
@@ -19569,9 +19660,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19569
19660
|
output: ["text"]
|
|
19570
19661
|
},
|
|
19571
19662
|
pricing: {
|
|
19572
|
-
inputPerM: 0.
|
|
19573
|
-
outputPerM:
|
|
19574
|
-
cacheReadPerM: 0.
|
|
19663
|
+
inputPerM: 0.45,
|
|
19664
|
+
outputPerM: 3,
|
|
19665
|
+
cacheReadPerM: 0.225,
|
|
19575
19666
|
currency: "USD",
|
|
19576
19667
|
unit: "per_million_tokens"
|
|
19577
19668
|
}
|
|
@@ -19671,9 +19762,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
19671
19762
|
output: ["text"]
|
|
19672
19763
|
},
|
|
19673
19764
|
pricing: {
|
|
19674
|
-
inputPerM: 0.
|
|
19675
|
-
outputPerM: 2.
|
|
19676
|
-
cacheReadPerM: 0.15,
|
|
19765
|
+
inputPerM: 0.45,
|
|
19766
|
+
outputPerM: 2.7,
|
|
19677
19767
|
currency: "USD",
|
|
19678
19768
|
unit: "per_million_tokens"
|
|
19679
19769
|
}
|
|
@@ -19775,10 +19865,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
19775
19865
|
output: ["text"]
|
|
19776
19866
|
},
|
|
19777
19867
|
pricing: {
|
|
19778
|
-
inputPerM: 1.
|
|
19779
|
-
outputPerM:
|
|
19780
|
-
cacheReadPerM: 0.
|
|
19781
|
-
cacheWritePerM: 1.
|
|
19868
|
+
inputPerM: 1.475,
|
|
19869
|
+
outputPerM: 4.425,
|
|
19870
|
+
cacheReadPerM: 0.295,
|
|
19871
|
+
cacheWritePerM: 1.84375,
|
|
19782
19872
|
currency: "USD",
|
|
19783
19873
|
unit: "per_million_tokens"
|
|
19784
19874
|
}
|
|
@@ -19926,26 +20016,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
19926
20016
|
unit: "per_million_tokens"
|
|
19927
20017
|
}
|
|
19928
20018
|
},
|
|
19929
|
-
{
|
|
19930
|
-
name: "sao10k/l3.1-70b-hanami-x1",
|
|
19931
|
-
displayName: "Llama 3.1 70B Hanami x1",
|
|
19932
|
-
maxInputTokens: 16e3,
|
|
19933
|
-
supportedFileTypes: [],
|
|
19934
|
-
reasoning: false,
|
|
19935
|
-
supportsTemperature: true,
|
|
19936
|
-
supportsToolCall: false,
|
|
19937
|
-
releaseDate: "2025-01-08",
|
|
19938
|
-
modalities: {
|
|
19939
|
-
input: ["text"],
|
|
19940
|
-
output: ["text"]
|
|
19941
|
-
},
|
|
19942
|
-
pricing: {
|
|
19943
|
-
inputPerM: 3,
|
|
19944
|
-
outputPerM: 3,
|
|
19945
|
-
currency: "USD",
|
|
19946
|
-
unit: "per_million_tokens"
|
|
19947
|
-
}
|
|
19948
|
-
},
|
|
19949
20019
|
{
|
|
19950
20020
|
name: "sao10k/l3.1-euryale-70b",
|
|
19951
20021
|
displayName: "Llama 3.1 Euryale 70B v2.2",
|
|
@@ -20061,9 +20131,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20061
20131
|
output: ["text"]
|
|
20062
20132
|
},
|
|
20063
20133
|
pricing: {
|
|
20064
|
-
inputPerM: 0.
|
|
20065
|
-
outputPerM: 0.
|
|
20066
|
-
cacheReadPerM: 0.
|
|
20134
|
+
inputPerM: 0.2,
|
|
20135
|
+
outputPerM: 0.8,
|
|
20136
|
+
cacheReadPerM: 0.05,
|
|
20067
20137
|
currency: "USD",
|
|
20068
20138
|
unit: "per_million_tokens"
|
|
20069
20139
|
}
|
|
@@ -20383,9 +20453,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20383
20453
|
},
|
|
20384
20454
|
supportsInterleaved: true,
|
|
20385
20455
|
pricing: {
|
|
20386
|
-
inputPerM: 0.
|
|
20456
|
+
inputPerM: 0.14,
|
|
20387
20457
|
outputPerM: 0.28,
|
|
20388
|
-
cacheReadPerM:
|
|
20458
|
+
cacheReadPerM: 28e-4,
|
|
20389
20459
|
currency: "USD",
|
|
20390
20460
|
unit: "per_million_tokens"
|
|
20391
20461
|
}
|
|
@@ -20492,9 +20562,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20492
20562
|
output: ["text"]
|
|
20493
20563
|
},
|
|
20494
20564
|
pricing: {
|
|
20495
|
-
inputPerM: 0.
|
|
20496
|
-
outputPerM:
|
|
20497
|
-
cacheReadPerM: 0.
|
|
20565
|
+
inputPerM: 0.5,
|
|
20566
|
+
outputPerM: 2,
|
|
20567
|
+
cacheReadPerM: 0.1,
|
|
20498
20568
|
currency: "USD",
|
|
20499
20569
|
unit: "per_million_tokens"
|
|
20500
20570
|
}
|
|
@@ -20548,7 +20618,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
20548
20618
|
{
|
|
20549
20619
|
name: "z-ai/glm-4.7-flash",
|
|
20550
20620
|
displayName: "GLM-4.7-Flash",
|
|
20551
|
-
maxInputTokens:
|
|
20621
|
+
maxInputTokens: 2e5,
|
|
20552
20622
|
supportedFileTypes: [],
|
|
20553
20623
|
reasoning: true,
|
|
20554
20624
|
supportsTemperature: true,
|
|
@@ -20563,9 +20633,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
20563
20633
|
},
|
|
20564
20634
|
supportsInterleaved: true,
|
|
20565
20635
|
pricing: {
|
|
20566
|
-
inputPerM: 0.
|
|
20636
|
+
inputPerM: 0.0605,
|
|
20567
20637
|
outputPerM: 0.4,
|
|
20568
|
-
cacheReadPerM: 0.01,
|
|
20569
20638
|
currency: "USD",
|
|
20570
20639
|
unit: "per_million_tokens"
|
|
20571
20640
|
}
|
|
@@ -20588,9 +20657,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20588
20657
|
},
|
|
20589
20658
|
supportsInterleaved: true,
|
|
20590
20659
|
pricing: {
|
|
20591
|
-
inputPerM: 0.
|
|
20592
|
-
outputPerM:
|
|
20593
|
-
cacheReadPerM: 0.
|
|
20660
|
+
inputPerM: 0.95,
|
|
20661
|
+
outputPerM: 3.15,
|
|
20662
|
+
cacheReadPerM: 0.19,
|
|
20594
20663
|
currency: "USD",
|
|
20595
20664
|
unit: "per_million_tokens"
|
|
20596
20665
|
}
|
|
@@ -20598,7 +20667,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
20598
20667
|
{
|
|
20599
20668
|
name: "z-ai/glm-5-turbo",
|
|
20600
20669
|
displayName: "GLM-5-Turbo",
|
|
20601
|
-
maxInputTokens:
|
|
20670
|
+
maxInputTokens: 202752,
|
|
20602
20671
|
supportedFileTypes: [],
|
|
20603
20672
|
reasoning: true,
|
|
20604
20673
|
supportsTemperature: true,
|
|
@@ -20663,9 +20732,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20663
20732
|
},
|
|
20664
20733
|
supportsInterleaved: true,
|
|
20665
20734
|
pricing: {
|
|
20666
|
-
inputPerM: 0.
|
|
20667
|
-
outputPerM:
|
|
20668
|
-
cacheReadPerM: 0.
|
|
20735
|
+
inputPerM: 0.9338,
|
|
20736
|
+
outputPerM: 2.9348,
|
|
20737
|
+
cacheReadPerM: 0.17342,
|
|
20669
20738
|
currency: "USD",
|
|
20670
20739
|
unit: "per_million_tokens"
|
|
20671
20740
|
}
|
|
@@ -20796,6 +20865,31 @@ function unknownModel(provider, model) {
|
|
|
20796
20865
|
function modelProviderUnknown(model) {
|
|
20797
20866
|
return new LlmCatalogError("MODEL_UNKNOWN", `Could not infer provider for model '${model}'`);
|
|
20798
20867
|
}
|
|
20868
|
+
var MODEL_PRICING_FIELDS = [
|
|
20869
|
+
"inputPerM",
|
|
20870
|
+
"outputPerM",
|
|
20871
|
+
"cacheReadPerM",
|
|
20872
|
+
"cacheWritePerM",
|
|
20873
|
+
"reasoningPerM",
|
|
20874
|
+
"inputAudioPerM",
|
|
20875
|
+
"outputAudioPerM"
|
|
20876
|
+
];
|
|
20877
|
+
var LONG_CONTEXT_PRICING_FIELDS = [
|
|
20878
|
+
"inputTokensAbove",
|
|
20879
|
+
"inputPerM",
|
|
20880
|
+
"outputPerM",
|
|
20881
|
+
"cacheReadPerM",
|
|
20882
|
+
"cacheWritePerM"
|
|
20883
|
+
];
|
|
20884
|
+
var MODEL_BOOLEAN_FIELDS = [
|
|
20885
|
+
"default",
|
|
20886
|
+
"reasoning",
|
|
20887
|
+
"supportsTemperature",
|
|
20888
|
+
"supportsInterleaved",
|
|
20889
|
+
"supportsToolCall"
|
|
20890
|
+
];
|
|
20891
|
+
var MODEL_STRING_FIELDS = ["displayName", "releaseDate", "status"];
|
|
20892
|
+
var MODEL_MODALITIES = ["text", "audio", "image", "video", "pdf"];
|
|
20799
20893
|
function getNormalizedModelIdForLookup(model) {
|
|
20800
20894
|
const stripped = stripBedrockRegionPrefix(model);
|
|
20801
20895
|
return stripped.toLowerCase();
|
|
@@ -21023,6 +21117,302 @@ var LLM_REGISTRY = {
|
|
|
21023
21117
|
supportsAllRegistryModels: true
|
|
21024
21118
|
}
|
|
21025
21119
|
};
|
|
21120
|
+
var ModelRegistry = class {
|
|
21121
|
+
#providers;
|
|
21122
|
+
constructor(providers) {
|
|
21123
|
+
validateRegistryProviders(providers);
|
|
21124
|
+
this.#providers = cloneRegistryProviders(providers);
|
|
21125
|
+
}
|
|
21126
|
+
/**
|
|
21127
|
+
* Replaces the active provider snapshot after validating and cloning it.
|
|
21128
|
+
*
|
|
21129
|
+
* Hosts that refresh the bundled registry can update the shared default instance without
|
|
21130
|
+
* exposing mutable provider records to consumers that already hold a ModelRegistry reference.
|
|
21131
|
+
*/
|
|
21132
|
+
replaceProviders(providers) {
|
|
21133
|
+
validateRegistryProviders(providers);
|
|
21134
|
+
this.#providers = cloneRegistryProviders(providers);
|
|
21135
|
+
}
|
|
21136
|
+
getProvider(provider) {
|
|
21137
|
+
return cloneProviderInfo(this.#providers[provider]);
|
|
21138
|
+
}
|
|
21139
|
+
getModel(provider, model) {
|
|
21140
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21141
|
+
return modelInfo === null ? null : cloneModelInfo(modelInfo);
|
|
21142
|
+
}
|
|
21143
|
+
getModelCapabilities(provider, model) {
|
|
21144
|
+
const modelInfo = this.getModel(provider, model);
|
|
21145
|
+
if (modelInfo === null) return null;
|
|
21146
|
+
return {
|
|
21147
|
+
maxInputTokens: modelInfo.maxInputTokens,
|
|
21148
|
+
reasoning: modelInfo.reasoning === true,
|
|
21149
|
+
supportedFileTypes: [...modelInfo.supportedFileTypes],
|
|
21150
|
+
supportsInterleaved: modelInfo.supportsInterleaved === true,
|
|
21151
|
+
supportsTemperature: modelInfo.supportsTemperature === true,
|
|
21152
|
+
supportsToolCall: modelInfo.supportsToolCall === true,
|
|
21153
|
+
...modelInfo.modalities ? {
|
|
21154
|
+
modalities: {
|
|
21155
|
+
input: [...modelInfo.modalities.input],
|
|
21156
|
+
output: [...modelInfo.modalities.output]
|
|
21157
|
+
}
|
|
21158
|
+
} : {}
|
|
21159
|
+
};
|
|
21160
|
+
}
|
|
21161
|
+
getSupportedModels(provider) {
|
|
21162
|
+
return this.#providers[provider].models.map((model) => model.name);
|
|
21163
|
+
}
|
|
21164
|
+
getDefaultModelForProvider(provider) {
|
|
21165
|
+
const models = this.#providers[provider].models;
|
|
21166
|
+
const explicit = models.find((model) => model.default)?.name;
|
|
21167
|
+
if (explicit) return explicit;
|
|
21168
|
+
if (models.length === 0) return null;
|
|
21169
|
+
return [...models].sort((left, right) => left.name.localeCompare(right.name))[0]?.name ?? null;
|
|
21170
|
+
}
|
|
21171
|
+
getMaxInputTokensForModel(provider, model, logger) {
|
|
21172
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21173
|
+
if (!modelInfo) {
|
|
21174
|
+
const supportedModels = this.getSupportedModels(provider).join(", ");
|
|
21175
|
+
logger?.error(
|
|
21176
|
+
`Model '${model}' not found for provider '${provider}' in LLM registry. Supported models: ${supportedModels}`
|
|
21177
|
+
);
|
|
21178
|
+
throw unknownModel(provider, model);
|
|
21179
|
+
}
|
|
21180
|
+
logger?.debug(`Found max tokens for ${provider}/${model}: ${modelInfo.maxInputTokens}`);
|
|
21181
|
+
return modelInfo.maxInputTokens;
|
|
21182
|
+
}
|
|
21183
|
+
getModelPricing(provider, model) {
|
|
21184
|
+
if (this.acceptsAnyModel(provider)) return void 0;
|
|
21185
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21186
|
+
return modelInfo?.pricing ? cloneModelInfo(modelInfo).pricing : void 0;
|
|
21187
|
+
}
|
|
21188
|
+
isReasoningCapableModel(model, provider) {
|
|
21189
|
+
const registryProvider = (() => {
|
|
21190
|
+
if (model.includes("/")) return "openrouter";
|
|
21191
|
+
if (provider) return provider;
|
|
21192
|
+
try {
|
|
21193
|
+
return this.getProviderFromModel(model);
|
|
21194
|
+
} catch {
|
|
21195
|
+
return void 0;
|
|
21196
|
+
}
|
|
21197
|
+
})();
|
|
21198
|
+
if (registryProvider) {
|
|
21199
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, registryProvider, model);
|
|
21200
|
+
if (modelInfo?.reasoning === true) return true;
|
|
21201
|
+
if (modelInfo?.reasoning === false) return false;
|
|
21202
|
+
}
|
|
21203
|
+
const modelIdForHeuristics = model.includes("/") ? model.split("/").pop() ?? model : model;
|
|
21204
|
+
const modelLower = modelIdForHeuristics.toLowerCase();
|
|
21205
|
+
if (modelLower.includes("codex")) return true;
|
|
21206
|
+
if (modelLower.startsWith("o1") || modelLower.startsWith("o3") || modelLower.startsWith("o4")) {
|
|
21207
|
+
return true;
|
|
21208
|
+
}
|
|
21209
|
+
if (modelLower.includes("gpt-5")) return true;
|
|
21210
|
+
if (modelLower.includes("gemini-2.5") || modelLower.includes("gemini-3")) return true;
|
|
21211
|
+
return false;
|
|
21212
|
+
}
|
|
21213
|
+
getProviderFromModel(model) {
|
|
21214
|
+
if (model.includes("/")) throw modelProviderUnknown(model);
|
|
21215
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21216
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21217
|
+
const info = this.#providers[provider];
|
|
21218
|
+
if (info.models.some((candidate) => candidate.name.toLowerCase() === normalizedModel)) {
|
|
21219
|
+
return provider;
|
|
21220
|
+
}
|
|
21221
|
+
}
|
|
21222
|
+
throw modelProviderUnknown(model);
|
|
21223
|
+
}
|
|
21224
|
+
acceptsAnyModel(provider) {
|
|
21225
|
+
return this.#providers[provider].models.length === 0;
|
|
21226
|
+
}
|
|
21227
|
+
supportsCustomModels(provider) {
|
|
21228
|
+
return this.#providers[provider].supportsCustomModels === true;
|
|
21229
|
+
}
|
|
21230
|
+
hasAllRegistryModelsSupport(provider) {
|
|
21231
|
+
return this.#providers[provider].supportsAllRegistryModels === true;
|
|
21232
|
+
}
|
|
21233
|
+
supportsBaseURL(provider) {
|
|
21234
|
+
return this.#providers[provider].baseURLSupport !== "none";
|
|
21235
|
+
}
|
|
21236
|
+
isValidProviderModel(provider, model) {
|
|
21237
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21238
|
+
return this.#providers[provider].models.some(
|
|
21239
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21240
|
+
);
|
|
21241
|
+
}
|
|
21242
|
+
getSupportedFileTypesForModel(provider, model) {
|
|
21243
|
+
const providerInfo = this.#providers[provider];
|
|
21244
|
+
if (this.acceptsAnyModel(provider)) return [...providerInfo.supportedFileTypes];
|
|
21245
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21246
|
+
if (modelInfo) return [...modelInfo.supportedFileTypes];
|
|
21247
|
+
if (this.supportsCustomModels(provider)) return [...providerInfo.supportedFileTypes];
|
|
21248
|
+
throw unknownModel(provider, model);
|
|
21249
|
+
}
|
|
21250
|
+
getAllModelsForProvider(provider) {
|
|
21251
|
+
const providerInfo = this.#providers[provider];
|
|
21252
|
+
const ownModels = providerInfo.models.map((model) => ({
|
|
21253
|
+
...cloneModelInfo(model),
|
|
21254
|
+
originalProvider: provider
|
|
21255
|
+
}));
|
|
21256
|
+
if (!providerInfo.supportsAllRegistryModels || provider === "openrouter") {
|
|
21257
|
+
return ownModels;
|
|
21258
|
+
}
|
|
21259
|
+
const seen = new Set(ownModels.map((model) => model.name.toLowerCase()));
|
|
21260
|
+
const inherited = this.#providers.openrouter.models.filter((model) => !seen.has(model.name.toLowerCase())).map((model) => ({
|
|
21261
|
+
...cloneModelInfo(model),
|
|
21262
|
+
originalProvider: "openrouter"
|
|
21263
|
+
}));
|
|
21264
|
+
return [...ownModels, ...inherited];
|
|
21265
|
+
}
|
|
21266
|
+
};
|
|
21267
|
+
function createModelRegistry(providers) {
|
|
21268
|
+
return new ModelRegistry(providers);
|
|
21269
|
+
}
|
|
21270
|
+
var DEFAULT_MODEL_REGISTRY = createModelRegistry(LLM_REGISTRY);
|
|
21271
|
+
function cloneRegistryProviders(providers) {
|
|
21272
|
+
const cloned = { ...providers };
|
|
21273
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21274
|
+
cloned[provider] = cloneProviderInfo(providers[provider]);
|
|
21275
|
+
}
|
|
21276
|
+
return cloned;
|
|
21277
|
+
}
|
|
21278
|
+
function validateRegistryProviders(providers) {
|
|
21279
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21280
|
+
const providerInfo = providers[provider];
|
|
21281
|
+
if (!isRecord(providerInfo) || !Array.isArray(providerInfo.models) || !["none", "optional", "required"].includes(providerInfo.baseURLSupport) || !Array.isArray(providerInfo.supportedFileTypes) || !providerInfo.supportedFileTypes.every(isSupportedFileType)) {
|
|
21282
|
+
throw new LlmCatalogError(
|
|
21283
|
+
"REGISTRY_INVALID",
|
|
21284
|
+
`Invalid registry provider definition for '${provider}'`
|
|
21285
|
+
);
|
|
21286
|
+
}
|
|
21287
|
+
if (providerInfo.supportsCustomModels !== void 0 && typeof providerInfo.supportsCustomModels !== "boolean" || providerInfo.supportsAllRegistryModels !== void 0 && typeof providerInfo.supportsAllRegistryModels !== "boolean" || providerInfo.modelsDev !== void 0 && !isValidModelsDevMetadata(providerInfo.modelsDev)) {
|
|
21288
|
+
throw new LlmCatalogError(
|
|
21289
|
+
"REGISTRY_INVALID",
|
|
21290
|
+
`Invalid registry provider metadata for '${provider}'`
|
|
21291
|
+
);
|
|
21292
|
+
}
|
|
21293
|
+
const modelNames = /* @__PURE__ */ new Set();
|
|
21294
|
+
for (const [modelIndex, model] of providerInfo.models.entries()) {
|
|
21295
|
+
const modelObject = isRecord(model) ? model : null;
|
|
21296
|
+
const modelName = modelObject && typeof modelObject.name === "string" ? modelObject.name : `<index ${modelIndex}>`;
|
|
21297
|
+
if (!modelObject || typeof modelObject.name !== "string" || modelObject.name.trim().length === 0 || !Number.isInteger(modelObject.maxInputTokens) || modelObject.maxInputTokens < 0 || !Array.isArray(modelObject.supportedFileTypes) || !modelObject.supportedFileTypes.every(isSupportedFileType)) {
|
|
21298
|
+
throw new LlmCatalogError(
|
|
21299
|
+
"REGISTRY_INVALID",
|
|
21300
|
+
`Invalid registry model definition for '${provider}/${modelName}'`
|
|
21301
|
+
);
|
|
21302
|
+
}
|
|
21303
|
+
const normalizedModelName = modelObject.name.toLowerCase();
|
|
21304
|
+
if (modelNames.has(normalizedModelName)) {
|
|
21305
|
+
throw new LlmCatalogError(
|
|
21306
|
+
"REGISTRY_INVALID",
|
|
21307
|
+
`Duplicate registry model definition for '${provider}/${modelObject.name}'`
|
|
21308
|
+
);
|
|
21309
|
+
}
|
|
21310
|
+
modelNames.add(normalizedModelName);
|
|
21311
|
+
if (!isValidModelMetadata(modelObject)) {
|
|
21312
|
+
throw new LlmCatalogError(
|
|
21313
|
+
"REGISTRY_INVALID",
|
|
21314
|
+
`Invalid registry metadata for '${provider}/${modelObject.name}'`
|
|
21315
|
+
);
|
|
21316
|
+
}
|
|
21317
|
+
if (!isValidModelPricing(modelObject.pricing)) {
|
|
21318
|
+
throw new LlmCatalogError(
|
|
21319
|
+
"REGISTRY_INVALID",
|
|
21320
|
+
`Invalid registry pricing for '${provider}/${modelName}'`
|
|
21321
|
+
);
|
|
21322
|
+
}
|
|
21323
|
+
}
|
|
21324
|
+
}
|
|
21325
|
+
}
|
|
21326
|
+
function isSupportedFileType(value) {
|
|
21327
|
+
return typeof value === "string" && SUPPORTED_FILE_TYPES.some((supportedFileType) => supportedFileType === value);
|
|
21328
|
+
}
|
|
21329
|
+
function isRecord(value) {
|
|
21330
|
+
return typeof value === "object" && value !== null;
|
|
21331
|
+
}
|
|
21332
|
+
function isValidPricingNumber(value) {
|
|
21333
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
21334
|
+
}
|
|
21335
|
+
function isValidModelsDevMetadata(value) {
|
|
21336
|
+
if (!isRecord(value) || !Array.isArray(value.env) || !value.env.every(isString)) {
|
|
21337
|
+
return false;
|
|
21338
|
+
}
|
|
21339
|
+
return ["npm", "api", "doc"].every(
|
|
21340
|
+
(field) => value[field] === void 0 || isString(value[field])
|
|
21341
|
+
);
|
|
21342
|
+
}
|
|
21343
|
+
function isValidModelMetadata(value) {
|
|
21344
|
+
if (!MODEL_BOOLEAN_FIELDS.every(
|
|
21345
|
+
(field) => value[field] === void 0 || typeof value[field] === "boolean"
|
|
21346
|
+
) || !MODEL_STRING_FIELDS.every((field) => value[field] === void 0 || isString(value[field]))) {
|
|
21347
|
+
return false;
|
|
21348
|
+
}
|
|
21349
|
+
if (value.modalities !== void 0 && !isValidModelModalities(value.modalities)) {
|
|
21350
|
+
return false;
|
|
21351
|
+
}
|
|
21352
|
+
if (value.providerMetadata !== void 0 && !isValidProviderMetadata(value.providerMetadata)) {
|
|
21353
|
+
return false;
|
|
21354
|
+
}
|
|
21355
|
+
if (value.interleaved !== void 0 && !isValidInterleavedMetadata(value.interleaved)) {
|
|
21356
|
+
return false;
|
|
21357
|
+
}
|
|
21358
|
+
return true;
|
|
21359
|
+
}
|
|
21360
|
+
function isValidModelModalities(value) {
|
|
21361
|
+
if (!isRecord(value) || !Array.isArray(value.input) || !Array.isArray(value.output)) {
|
|
21362
|
+
return false;
|
|
21363
|
+
}
|
|
21364
|
+
return value.input.every(isSupportedModelModality) && value.output.every(isSupportedModelModality);
|
|
21365
|
+
}
|
|
21366
|
+
function isValidProviderMetadata(value) {
|
|
21367
|
+
return isRecord(value) && ["npm", "api"].every((field) => value[field] === void 0 || isString(value[field]));
|
|
21368
|
+
}
|
|
21369
|
+
function isValidInterleavedMetadata(value) {
|
|
21370
|
+
return value === true || isRecord(value) && (value.field === void 0 || isString(value.field));
|
|
21371
|
+
}
|
|
21372
|
+
function isSupportedModelModality(value) {
|
|
21373
|
+
return typeof value === "string" && MODEL_MODALITIES.some((modality) => modality === value);
|
|
21374
|
+
}
|
|
21375
|
+
function isString(value) {
|
|
21376
|
+
return typeof value === "string";
|
|
21377
|
+
}
|
|
21378
|
+
function isValidModelPricing(value) {
|
|
21379
|
+
if (value === void 0) return true;
|
|
21380
|
+
if (!isRecord(value)) return false;
|
|
21381
|
+
if (value.currency !== void 0 && value.currency !== "USD") return false;
|
|
21382
|
+
if (value.unit !== void 0 && value.unit !== "per_million_tokens") return false;
|
|
21383
|
+
for (const field of MODEL_PRICING_FIELDS) {
|
|
21384
|
+
if (field in value && !isValidPricingNumber(value[field])) return false;
|
|
21385
|
+
}
|
|
21386
|
+
if (!isValidPricingNumber(value.inputPerM) || !isValidPricingNumber(value.outputPerM)) {
|
|
21387
|
+
return false;
|
|
21388
|
+
}
|
|
21389
|
+
const longContextPricing = value.contextOver200kPerM;
|
|
21390
|
+
if (longContextPricing === void 0) return true;
|
|
21391
|
+
if (!isRecord(longContextPricing)) return false;
|
|
21392
|
+
const inputTokensAbove = longContextPricing.inputTokensAbove;
|
|
21393
|
+
if (inputTokensAbove !== void 0 && (typeof inputTokensAbove !== "number" || !Number.isInteger(inputTokensAbove) || inputTokensAbove < 0)) {
|
|
21394
|
+
return false;
|
|
21395
|
+
}
|
|
21396
|
+
for (const field of LONG_CONTEXT_PRICING_FIELDS) {
|
|
21397
|
+
if (field in longContextPricing && !isValidPricingNumber(longContextPricing[field])) {
|
|
21398
|
+
return false;
|
|
21399
|
+
}
|
|
21400
|
+
}
|
|
21401
|
+
return isValidPricingNumber(longContextPricing.inputPerM) && isValidPricingNumber(longContextPricing.outputPerM);
|
|
21402
|
+
}
|
|
21403
|
+
function findModelInfoInRegistry(providers, provider, model) {
|
|
21404
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21405
|
+
const direct = providers[provider].models.find(
|
|
21406
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21407
|
+
);
|
|
21408
|
+
if (direct) return direct;
|
|
21409
|
+
if (provider !== "openrouter" && providers[provider].supportsAllRegistryModels && model.includes("/")) {
|
|
21410
|
+
return providers.openrouter.models.find(
|
|
21411
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21412
|
+
) ?? null;
|
|
21413
|
+
}
|
|
21414
|
+
return null;
|
|
21415
|
+
}
|
|
21026
21416
|
function cloneModelInfo(model) {
|
|
21027
21417
|
return {
|
|
21028
21418
|
...model,
|
|
@@ -21187,9 +21577,8 @@ function supportsCustomModels(provider) {
|
|
|
21187
21577
|
const providerInfo = LLM_REGISTRY[provider];
|
|
21188
21578
|
return providerInfo.supportsCustomModels === true;
|
|
21189
21579
|
}
|
|
21190
|
-
function hasAllRegistryModelsSupport(provider) {
|
|
21191
|
-
|
|
21192
|
-
return providerInfo.supportsAllRegistryModels === true;
|
|
21580
|
+
function hasAllRegistryModelsSupport(provider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21581
|
+
return registry.hasAllRegistryModelsSupport(provider);
|
|
21193
21582
|
}
|
|
21194
21583
|
var OPENROUTER_PREFIX_BY_PROVIDER = {
|
|
21195
21584
|
openai: "openai",
|
|
@@ -21200,8 +21589,8 @@ var OPENROUTER_PREFIX_BY_PROVIDER = {
|
|
|
21200
21589
|
minimax: "minimax",
|
|
21201
21590
|
glm: "z-ai"
|
|
21202
21591
|
};
|
|
21203
|
-
function getOpenRouterModelIdSet() {
|
|
21204
|
-
return new Set(
|
|
21592
|
+
function getOpenRouterModelIdSet(registry) {
|
|
21593
|
+
return new Set(registry.getSupportedModels("openrouter").map((model) => model.toLowerCase()));
|
|
21205
21594
|
}
|
|
21206
21595
|
function getOpenRouterCandidateModelIds(model, originalProvider) {
|
|
21207
21596
|
if (model.includes("/")) return [model];
|
|
@@ -21220,8 +21609,8 @@ function getOpenRouterCandidateModelIds(model, originalProvider) {
|
|
|
21220
21609
|
}
|
|
21221
21610
|
return [`${prefix}/${model}`];
|
|
21222
21611
|
}
|
|
21223
|
-
function pickExistingOpenRouterModelId(candidates) {
|
|
21224
|
-
const openrouterSet = getOpenRouterModelIdSet();
|
|
21612
|
+
function pickExistingOpenRouterModelId(candidates, registry) {
|
|
21613
|
+
const openrouterSet = getOpenRouterModelIdSet(registry);
|
|
21225
21614
|
for (const candidate of candidates) {
|
|
21226
21615
|
if (openrouterSet.has(candidate.toLowerCase())) {
|
|
21227
21616
|
return candidate;
|
|
@@ -21282,11 +21671,11 @@ function getAllModelsForProvider(provider) {
|
|
|
21282
21671
|
}
|
|
21283
21672
|
return allModels;
|
|
21284
21673
|
}
|
|
21285
|
-
function transformModelNameForProvider(model, originalProvider, targetProvider) {
|
|
21286
|
-
if (!hasAllRegistryModelsSupport(targetProvider)) {
|
|
21674
|
+
function transformModelNameForProvider(model, originalProvider, targetProvider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21675
|
+
if (!hasAllRegistryModelsSupport(targetProvider, registry)) {
|
|
21287
21676
|
return model;
|
|
21288
21677
|
}
|
|
21289
|
-
if (hasAllRegistryModelsSupport(originalProvider)) {
|
|
21678
|
+
if (hasAllRegistryModelsSupport(originalProvider, registry)) {
|
|
21290
21679
|
return model;
|
|
21291
21680
|
}
|
|
21292
21681
|
if (model.includes("/")) {
|
|
@@ -21294,7 +21683,7 @@ function transformModelNameForProvider(model, originalProvider, targetProvider)
|
|
|
21294
21683
|
}
|
|
21295
21684
|
const candidates = getOpenRouterCandidateModelIds(model, originalProvider);
|
|
21296
21685
|
if (candidates.length === 0) return model;
|
|
21297
|
-
return pickExistingOpenRouterModelId(candidates) ?? candidates[0];
|
|
21686
|
+
return pickExistingOpenRouterModelId(candidates, registry) ?? candidates[0];
|
|
21298
21687
|
}
|
|
21299
21688
|
function isModelValidForProvider(provider, model) {
|
|
21300
21689
|
const providerInfo = LLM_REGISTRY[provider];
|
|
@@ -21344,11 +21733,11 @@ function getSupportedFileTypesForModel(provider, model) {
|
|
|
21344
21733
|
}
|
|
21345
21734
|
throw unknownModel(provider, model);
|
|
21346
21735
|
}
|
|
21347
|
-
function modelSupportsFileType(provider, model, fileType) {
|
|
21348
|
-
const supportedTypes = getSupportedFileTypesForModel(provider, model);
|
|
21736
|
+
function modelSupportsFileType(provider, model, fileType, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21737
|
+
const supportedTypes = registry === DEFAULT_MODEL_REGISTRY ? getSupportedFileTypesForModel(provider, model) : registry.getSupportedFileTypesForModel(provider, model);
|
|
21349
21738
|
return supportedTypes.includes(fileType);
|
|
21350
21739
|
}
|
|
21351
|
-
function validateModelFileSupport(provider, model, mimeType) {
|
|
21740
|
+
function validateModelFileSupport(provider, model, mimeType, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21352
21741
|
const baseMimeType = mimeType.toLowerCase().split(";")[0]?.trim() || mimeType.toLowerCase();
|
|
21353
21742
|
const fileType = MIME_TYPE_TO_FILE_TYPE[baseMimeType];
|
|
21354
21743
|
if (!fileType) {
|
|
@@ -21358,7 +21747,7 @@ function validateModelFileSupport(provider, model, mimeType) {
|
|
|
21358
21747
|
};
|
|
21359
21748
|
}
|
|
21360
21749
|
try {
|
|
21361
|
-
if (!modelSupportsFileType(provider, model, fileType)) {
|
|
21750
|
+
if (!modelSupportsFileType(provider, model, fileType, registry)) {
|
|
21362
21751
|
return {
|
|
21363
21752
|
isSupported: false,
|
|
21364
21753
|
fileType,
|
|
@@ -21466,7 +21855,7 @@ function getModelPricing(provider, model) {
|
|
|
21466
21855
|
return void 0;
|
|
21467
21856
|
}
|
|
21468
21857
|
const modelInfo = findModelInfo(provider, model);
|
|
21469
|
-
return modelInfo?.pricing;
|
|
21858
|
+
return modelInfo?.pricing ? cloneModelInfo(modelInfo).pricing : void 0;
|
|
21470
21859
|
}
|
|
21471
21860
|
function getModelDisplayName(model, provider) {
|
|
21472
21861
|
if (provider) {
|
|
@@ -21485,7 +21874,10 @@ function getModelDisplayName(model, provider) {
|
|
|
21485
21874
|
return model;
|
|
21486
21875
|
}
|
|
21487
21876
|
}
|
|
21488
|
-
function isReasoningCapableModel(model, provider) {
|
|
21877
|
+
function isReasoningCapableModel(model, provider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21878
|
+
if (registry !== DEFAULT_MODEL_REGISTRY) {
|
|
21879
|
+
return registry.isReasoningCapableModel(model, provider);
|
|
21880
|
+
}
|
|
21489
21881
|
const registryProvider = (() => {
|
|
21490
21882
|
if (model.includes("/")) return "openrouter";
|
|
21491
21883
|
if (provider) return provider;
|
|
@@ -22010,38 +22402,38 @@ var GOOGLE_PROFILE_CONFIG = {
|
|
|
22010
22402
|
supportsBudgetTokensForBudgetParadigm: true,
|
|
22011
22403
|
supportsBudgetTokensForThinkingLevelParadigm: false
|
|
22012
22404
|
};
|
|
22013
|
-
function isAnthropicStyleReasoningCapable(provider, model) {
|
|
22014
|
-
return isReasoningCapableModel(model, provider) || parseClaudeVersion(model) !== null || isAnthropicAdaptiveThinkingModel(model);
|
|
22405
|
+
function isAnthropicStyleReasoningCapable(provider, model, registry) {
|
|
22406
|
+
return registry.isReasoningCapableModel(model, provider) || parseClaudeVersion(model) !== null || isAnthropicAdaptiveThinkingModel(model);
|
|
22015
22407
|
}
|
|
22016
|
-
function getNativeReasoningProfile(provider, model) {
|
|
22408
|
+
function getNativeReasoningProfile(provider, model, registry) {
|
|
22017
22409
|
switch (provider) {
|
|
22018
22410
|
case "openai":
|
|
22019
|
-
if (!isReasoningCapableModel(model, "openai")) {
|
|
22411
|
+
if (!registry.isReasoningCapableModel(model, "openai")) {
|
|
22020
22412
|
return nonCapableProfile();
|
|
22021
22413
|
}
|
|
22022
22414
|
return buildOpenAIReasoningProfile(model);
|
|
22023
22415
|
case "anthropic":
|
|
22024
|
-
if (!isAnthropicStyleReasoningCapable("anthropic", model)) {
|
|
22416
|
+
if (!isAnthropicStyleReasoningCapable("anthropic", model, registry)) {
|
|
22025
22417
|
return nonCapableProfile();
|
|
22026
22418
|
}
|
|
22027
22419
|
return buildAnthropicReasoningProfile({ model, ...ANTHROPIC_PROFILE_CONFIG });
|
|
22028
22420
|
case "bedrock":
|
|
22029
|
-
if (!isReasoningCapableModel(model, "bedrock") && !model.toLowerCase().includes("nova")) {
|
|
22421
|
+
if (!registry.isReasoningCapableModel(model, "bedrock") && !model.toLowerCase().includes("nova")) {
|
|
22030
22422
|
return nonCapableProfile();
|
|
22031
22423
|
}
|
|
22032
22424
|
return buildBedrockReasoningProfile(model);
|
|
22033
22425
|
case "google":
|
|
22034
|
-
if (!isReasoningCapableModel(model, "google")) {
|
|
22426
|
+
if (!registry.isReasoningCapableModel(model, "google")) {
|
|
22035
22427
|
return nonCapableProfile();
|
|
22036
22428
|
}
|
|
22037
22429
|
return buildGoogleReasoningProfile({ model, ...GOOGLE_PROFILE_CONFIG });
|
|
22038
22430
|
case "vertex":
|
|
22039
|
-
if (!isAnthropicStyleReasoningCapable("vertex", model)) {
|
|
22431
|
+
if (!isAnthropicStyleReasoningCapable("vertex", model, registry)) {
|
|
22040
22432
|
return nonCapableProfile();
|
|
22041
22433
|
}
|
|
22042
22434
|
return buildVertexReasoningProfile(model);
|
|
22043
22435
|
case "openai-compatible":
|
|
22044
|
-
if (!isReasoningCapableModel(model, "openai-compatible")) {
|
|
22436
|
+
if (!registry.isReasoningCapableModel(model, "openai-compatible")) {
|
|
22045
22437
|
return nonCapableProfile();
|
|
22046
22438
|
}
|
|
22047
22439
|
return buildOpenAICompatibleReasoningProfile();
|
|
@@ -22066,16 +22458,20 @@ function toGatewayReasoningProfile(nativeProfile) {
|
|
|
22066
22458
|
...defaultVariant !== void 0 && { defaultVariant }
|
|
22067
22459
|
};
|
|
22068
22460
|
}
|
|
22069
|
-
function getReasoningProfile(provider, model) {
|
|
22461
|
+
function getReasoningProfile(provider, model, registry = DEFAULT_MODEL_REGISTRY) {
|
|
22070
22462
|
if (isOpenRouterGatewayProvider(provider)) {
|
|
22071
22463
|
const target = getOpenRouterReasoningTarget(model);
|
|
22072
22464
|
if (!target) {
|
|
22073
22465
|
return nonCapableProfile();
|
|
22074
22466
|
}
|
|
22075
|
-
const nativeProfile = getNativeReasoningProfile(
|
|
22467
|
+
const nativeProfile = getNativeReasoningProfile(
|
|
22468
|
+
target.upstreamProvider,
|
|
22469
|
+
target.modelId,
|
|
22470
|
+
registry
|
|
22471
|
+
);
|
|
22076
22472
|
return toGatewayReasoningProfile(nativeProfile);
|
|
22077
22473
|
}
|
|
22078
|
-
return getNativeReasoningProfile(provider, model);
|
|
22474
|
+
return getNativeReasoningProfile(provider, model, registry);
|
|
22079
22475
|
}
|
|
22080
22476
|
function supportsReasoningVariant(profile, variant) {
|
|
22081
22477
|
return profile.variants.some((entry) => entry.id === variant);
|
|
@@ -22084,17 +22480,20 @@ export {
|
|
|
22084
22480
|
ANTHROPIC_BETA_HEADER,
|
|
22085
22481
|
ANTHROPIC_INTERLEAVED_THINKING_BETA,
|
|
22086
22482
|
DEFAULT_MAX_INPUT_TOKENS,
|
|
22483
|
+
DEFAULT_MODEL_REGISTRY,
|
|
22087
22484
|
LLM_PRICING_STATUSES,
|
|
22088
22485
|
LLM_PROVIDERS,
|
|
22089
22486
|
LLM_REGISTRY,
|
|
22090
22487
|
LlmCatalogError,
|
|
22091
22488
|
MIME_TYPE_TO_FILE_TYPE,
|
|
22489
|
+
ModelRegistry,
|
|
22092
22490
|
SUPPORTED_FILE_TYPES,
|
|
22093
22491
|
acceptsAnyModel,
|
|
22094
22492
|
buildGoogleReasoningProfile,
|
|
22095
22493
|
calculateCost,
|
|
22096
22494
|
calculateCostBreakdown,
|
|
22097
22495
|
coerceOpenAIReasoningEffort,
|
|
22496
|
+
createModelRegistry,
|
|
22098
22497
|
getAllModelsForProvider,
|
|
22099
22498
|
getAllSupportedModels,
|
|
22100
22499
|
getAllowedMimeTypes,
|