@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.cjs
CHANGED
|
@@ -23,17 +23,20 @@ __export(index_exports, {
|
|
|
23
23
|
ANTHROPIC_BETA_HEADER: () => ANTHROPIC_BETA_HEADER,
|
|
24
24
|
ANTHROPIC_INTERLEAVED_THINKING_BETA: () => ANTHROPIC_INTERLEAVED_THINKING_BETA,
|
|
25
25
|
DEFAULT_MAX_INPUT_TOKENS: () => DEFAULT_MAX_INPUT_TOKENS,
|
|
26
|
+
DEFAULT_MODEL_REGISTRY: () => DEFAULT_MODEL_REGISTRY,
|
|
26
27
|
LLM_PRICING_STATUSES: () => LLM_PRICING_STATUSES,
|
|
27
28
|
LLM_PROVIDERS: () => LLM_PROVIDERS,
|
|
28
29
|
LLM_REGISTRY: () => LLM_REGISTRY,
|
|
29
30
|
LlmCatalogError: () => LlmCatalogError,
|
|
30
31
|
MIME_TYPE_TO_FILE_TYPE: () => MIME_TYPE_TO_FILE_TYPE,
|
|
32
|
+
ModelRegistry: () => ModelRegistry,
|
|
31
33
|
SUPPORTED_FILE_TYPES: () => SUPPORTED_FILE_TYPES,
|
|
32
34
|
acceptsAnyModel: () => acceptsAnyModel,
|
|
33
35
|
buildGoogleReasoningProfile: () => buildGoogleReasoningProfile,
|
|
34
36
|
calculateCost: () => calculateCost,
|
|
35
37
|
calculateCostBreakdown: () => calculateCostBreakdown,
|
|
36
38
|
coerceOpenAIReasoningEffort: () => coerceOpenAIReasoningEffort,
|
|
39
|
+
createModelRegistry: () => createModelRegistry,
|
|
37
40
|
getAllModelsForProvider: () => getAllModelsForProvider,
|
|
38
41
|
getAllSupportedModels: () => getAllSupportedModels,
|
|
39
42
|
getAllowedMimeTypes: () => getAllowedMimeTypes,
|
|
@@ -1007,6 +1010,29 @@ var MODELS_BY_PROVIDER = {
|
|
|
1007
1010
|
unit: "per_million_tokens"
|
|
1008
1011
|
}
|
|
1009
1012
|
},
|
|
1013
|
+
{
|
|
1014
|
+
name: "gpt-realtime-2.1",
|
|
1015
|
+
displayName: "GPT-Realtime-2.1",
|
|
1016
|
+
maxInputTokens: 96e3,
|
|
1017
|
+
supportedFileTypes: ["pdf", "image", "audio", "document"],
|
|
1018
|
+
reasoning: true,
|
|
1019
|
+
supportsTemperature: false,
|
|
1020
|
+
supportsToolCall: true,
|
|
1021
|
+
releaseDate: "2026-07-06",
|
|
1022
|
+
modalities: {
|
|
1023
|
+
input: ["text", "audio", "image"],
|
|
1024
|
+
output: ["text", "audio"]
|
|
1025
|
+
},
|
|
1026
|
+
pricing: {
|
|
1027
|
+
inputPerM: 4,
|
|
1028
|
+
outputPerM: 24,
|
|
1029
|
+
cacheReadPerM: 0.4,
|
|
1030
|
+
inputAudioPerM: 32,
|
|
1031
|
+
outputAudioPerM: 64,
|
|
1032
|
+
currency: "USD",
|
|
1033
|
+
unit: "per_million_tokens"
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1010
1036
|
{
|
|
1011
1037
|
name: "o1",
|
|
1012
1038
|
displayName: "o1",
|
|
@@ -1896,16 +1922,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
1896
1922
|
reasoning: true,
|
|
1897
1923
|
supportsTemperature: true,
|
|
1898
1924
|
supportsToolCall: true,
|
|
1899
|
-
releaseDate: "
|
|
1925
|
+
releaseDate: "2026-05-19",
|
|
1900
1926
|
modalities: {
|
|
1901
|
-
input: ["text", "image", "
|
|
1927
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
1902
1928
|
output: ["text"]
|
|
1903
1929
|
},
|
|
1904
1930
|
pricing: {
|
|
1905
|
-
inputPerM:
|
|
1906
|
-
outputPerM:
|
|
1907
|
-
cacheReadPerM: 0.
|
|
1908
|
-
inputAudioPerM: 1,
|
|
1931
|
+
inputPerM: 1.5,
|
|
1932
|
+
outputPerM: 9,
|
|
1933
|
+
cacheReadPerM: 0.15,
|
|
1934
|
+
inputAudioPerM: 1.5,
|
|
1909
1935
|
currency: "USD",
|
|
1910
1936
|
unit: "per_million_tokens"
|
|
1911
1937
|
}
|
|
@@ -1918,15 +1944,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
1918
1944
|
reasoning: true,
|
|
1919
1945
|
supportsTemperature: true,
|
|
1920
1946
|
supportsToolCall: true,
|
|
1921
|
-
releaseDate: "
|
|
1947
|
+
releaseDate: "2026-05-07",
|
|
1922
1948
|
modalities: {
|
|
1923
|
-
input: ["text", "image", "
|
|
1949
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
1924
1950
|
output: ["text"]
|
|
1925
1951
|
},
|
|
1926
1952
|
pricing: {
|
|
1927
|
-
inputPerM: 0.
|
|
1928
|
-
outputPerM:
|
|
1953
|
+
inputPerM: 0.25,
|
|
1954
|
+
outputPerM: 1.5,
|
|
1929
1955
|
cacheReadPerM: 0.025,
|
|
1956
|
+
inputAudioPerM: 0.5,
|
|
1930
1957
|
currency: "USD",
|
|
1931
1958
|
unit: "per_million_tokens"
|
|
1932
1959
|
}
|
|
@@ -3197,6 +3224,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
3197
3224
|
cacheReadPerM: 0.2,
|
|
3198
3225
|
cacheWritePerM: 0.375,
|
|
3199
3226
|
reasoningPerM: 12,
|
|
3227
|
+
contextOver200kPerM: {
|
|
3228
|
+
inputPerM: 4,
|
|
3229
|
+
outputPerM: 18
|
|
3230
|
+
},
|
|
3200
3231
|
currency: "USD",
|
|
3201
3232
|
unit: "per_million_tokens"
|
|
3202
3233
|
}
|
|
@@ -3204,10 +3235,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
3204
3235
|
{
|
|
3205
3236
|
name: "~moonshotai/kimi-latest",
|
|
3206
3237
|
displayName: "MoonshotAI Kimi Latest",
|
|
3207
|
-
maxInputTokens:
|
|
3238
|
+
maxInputTokens: 1048576,
|
|
3208
3239
|
supportedFileTypes: ["image"],
|
|
3209
3240
|
reasoning: true,
|
|
3210
|
-
supportsTemperature:
|
|
3241
|
+
supportsTemperature: false,
|
|
3211
3242
|
supportsToolCall: true,
|
|
3212
3243
|
releaseDate: "2026-04-27",
|
|
3213
3244
|
modalities: {
|
|
@@ -3215,9 +3246,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
3215
3246
|
output: ["text"]
|
|
3216
3247
|
},
|
|
3217
3248
|
pricing: {
|
|
3218
|
-
inputPerM:
|
|
3219
|
-
outputPerM:
|
|
3220
|
-
cacheReadPerM: 0.
|
|
3249
|
+
inputPerM: 3,
|
|
3250
|
+
outputPerM: 15,
|
|
3251
|
+
cacheReadPerM: 0.3,
|
|
3221
3252
|
currency: "USD",
|
|
3222
3253
|
unit: "per_million_tokens"
|
|
3223
3254
|
}
|
|
@@ -3722,7 +3753,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
3722
3753
|
reasoning: true,
|
|
3723
3754
|
supportsTemperature: false,
|
|
3724
3755
|
supportsToolCall: true,
|
|
3725
|
-
releaseDate: "2026-
|
|
3756
|
+
releaseDate: "2026-04-16",
|
|
3726
3757
|
modalities: {
|
|
3727
3758
|
input: ["text", "image", "pdf"],
|
|
3728
3759
|
output: ["text"]
|
|
@@ -3766,7 +3797,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
3766
3797
|
reasoning: true,
|
|
3767
3798
|
supportsTemperature: false,
|
|
3768
3799
|
supportsToolCall: true,
|
|
3769
|
-
releaseDate: "2026-05-
|
|
3800
|
+
releaseDate: "2026-05-28",
|
|
3770
3801
|
modalities: {
|
|
3771
3802
|
input: ["text", "image", "pdf"],
|
|
3772
3803
|
output: ["text"]
|
|
@@ -3880,26 +3911,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
3880
3911
|
unit: "per_million_tokens"
|
|
3881
3912
|
}
|
|
3882
3913
|
},
|
|
3883
|
-
{
|
|
3884
|
-
name: "arcee-ai/coder-large",
|
|
3885
|
-
displayName: "Coder Large",
|
|
3886
|
-
maxInputTokens: 32768,
|
|
3887
|
-
supportedFileTypes: [],
|
|
3888
|
-
reasoning: false,
|
|
3889
|
-
supportsTemperature: true,
|
|
3890
|
-
supportsToolCall: false,
|
|
3891
|
-
releaseDate: "2025-05-05",
|
|
3892
|
-
modalities: {
|
|
3893
|
-
input: ["text"],
|
|
3894
|
-
output: ["text"]
|
|
3895
|
-
},
|
|
3896
|
-
pricing: {
|
|
3897
|
-
inputPerM: 0.5,
|
|
3898
|
-
outputPerM: 0.8,
|
|
3899
|
-
currency: "USD",
|
|
3900
|
-
unit: "per_million_tokens"
|
|
3901
|
-
}
|
|
3902
|
-
},
|
|
3903
3914
|
{
|
|
3904
3915
|
name: "arcee-ai/trinity-large-thinking",
|
|
3905
3916
|
displayName: "Trinity Large Thinking",
|
|
@@ -3921,26 +3932,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
3921
3932
|
unit: "per_million_tokens"
|
|
3922
3933
|
}
|
|
3923
3934
|
},
|
|
3924
|
-
{
|
|
3925
|
-
name: "arcee-ai/trinity-mini",
|
|
3926
|
-
displayName: "Trinity Mini",
|
|
3927
|
-
maxInputTokens: 131072,
|
|
3928
|
-
supportedFileTypes: [],
|
|
3929
|
-
reasoning: true,
|
|
3930
|
-
supportsTemperature: true,
|
|
3931
|
-
supportsToolCall: true,
|
|
3932
|
-
releaseDate: "2025-12-01",
|
|
3933
|
-
modalities: {
|
|
3934
|
-
input: ["text"],
|
|
3935
|
-
output: ["text"]
|
|
3936
|
-
},
|
|
3937
|
-
pricing: {
|
|
3938
|
-
inputPerM: 0.045,
|
|
3939
|
-
outputPerM: 0.15,
|
|
3940
|
-
currency: "USD",
|
|
3941
|
-
unit: "per_million_tokens"
|
|
3942
|
-
}
|
|
3943
|
-
},
|
|
3944
3935
|
{
|
|
3945
3936
|
name: "arcee-ai/virtuoso-large",
|
|
3946
3937
|
displayName: "Virtuoso Large",
|
|
@@ -4276,8 +4267,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4276
4267
|
output: ["text"]
|
|
4277
4268
|
},
|
|
4278
4269
|
pricing: {
|
|
4279
|
-
inputPerM: 0.
|
|
4280
|
-
outputPerM:
|
|
4270
|
+
inputPerM: 0.27,
|
|
4271
|
+
outputPerM: 1.12,
|
|
4281
4272
|
cacheReadPerM: 0.135,
|
|
4282
4273
|
currency: "USD",
|
|
4283
4274
|
unit: "per_million_tokens"
|
|
@@ -4297,8 +4288,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4297
4288
|
output: ["text"]
|
|
4298
4289
|
},
|
|
4299
4290
|
pricing: {
|
|
4300
|
-
inputPerM: 0.
|
|
4301
|
-
outputPerM: 0.
|
|
4291
|
+
inputPerM: 0.25,
|
|
4292
|
+
outputPerM: 0.95,
|
|
4302
4293
|
cacheReadPerM: 0.13,
|
|
4303
4294
|
currency: "USD",
|
|
4304
4295
|
unit: "per_million_tokens"
|
|
@@ -4368,7 +4359,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
4368
4359
|
{
|
|
4369
4360
|
name: "deepseek/deepseek-v3.1-terminus",
|
|
4370
4361
|
displayName: "DeepSeek V3.1 Terminus",
|
|
4371
|
-
maxInputTokens:
|
|
4362
|
+
maxInputTokens: 131072,
|
|
4372
4363
|
supportedFileTypes: [],
|
|
4373
4364
|
reasoning: true,
|
|
4374
4365
|
supportsTemperature: true,
|
|
@@ -4380,8 +4371,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4380
4371
|
},
|
|
4381
4372
|
pricing: {
|
|
4382
4373
|
inputPerM: 0.27,
|
|
4383
|
-
outputPerM:
|
|
4384
|
-
cacheReadPerM: 0.
|
|
4374
|
+
outputPerM: 1,
|
|
4375
|
+
cacheReadPerM: 0.135,
|
|
4385
4376
|
currency: "USD",
|
|
4386
4377
|
unit: "per_million_tokens"
|
|
4387
4378
|
}
|
|
@@ -4389,7 +4380,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
4389
4380
|
{
|
|
4390
4381
|
name: "deepseek/deepseek-v3.2",
|
|
4391
4382
|
displayName: "DeepSeek V3.2",
|
|
4392
|
-
maxInputTokens:
|
|
4383
|
+
maxInputTokens: 163840,
|
|
4393
4384
|
supportedFileTypes: [],
|
|
4394
4385
|
reasoning: true,
|
|
4395
4386
|
supportsTemperature: true,
|
|
@@ -4400,9 +4391,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
4400
4391
|
output: ["text"]
|
|
4401
4392
|
},
|
|
4402
4393
|
pricing: {
|
|
4403
|
-
inputPerM: 0.
|
|
4404
|
-
outputPerM: 0.
|
|
4405
|
-
cacheReadPerM: 0.
|
|
4394
|
+
inputPerM: 0.269,
|
|
4395
|
+
outputPerM: 0.4,
|
|
4396
|
+
cacheReadPerM: 0.1345,
|
|
4406
4397
|
currency: "USD",
|
|
4407
4398
|
unit: "per_million_tokens"
|
|
4408
4399
|
}
|
|
@@ -4445,9 +4436,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
4445
4436
|
},
|
|
4446
4437
|
supportsInterleaved: true,
|
|
4447
4438
|
pricing: {
|
|
4448
|
-
inputPerM: 0.
|
|
4449
|
-
outputPerM: 0.
|
|
4450
|
-
cacheReadPerM: 0.
|
|
4439
|
+
inputPerM: 0.098,
|
|
4440
|
+
outputPerM: 0.196,
|
|
4441
|
+
cacheReadPerM: 0.02,
|
|
4451
4442
|
currency: "USD",
|
|
4452
4443
|
unit: "per_million_tokens"
|
|
4453
4444
|
}
|
|
@@ -4643,16 +4634,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
4643
4634
|
},
|
|
4644
4635
|
{
|
|
4645
4636
|
name: "google/gemini-3-pro-image",
|
|
4646
|
-
displayName: "Nano Banana Pro
|
|
4637
|
+
displayName: "Nano Banana Pro",
|
|
4647
4638
|
maxInputTokens: 65536,
|
|
4648
4639
|
supportedFileTypes: ["image", "document"],
|
|
4649
4640
|
reasoning: true,
|
|
4650
4641
|
supportsTemperature: true,
|
|
4651
4642
|
supportsToolCall: true,
|
|
4652
|
-
releaseDate: "2026-
|
|
4643
|
+
releaseDate: "2026-05-28",
|
|
4653
4644
|
modalities: {
|
|
4654
|
-
input: ["
|
|
4655
|
-
output: ["
|
|
4645
|
+
input: ["text", "image"],
|
|
4646
|
+
output: ["text", "image"]
|
|
4656
4647
|
},
|
|
4657
4648
|
pricing: {
|
|
4658
4649
|
inputPerM: 2,
|
|
@@ -4689,16 +4680,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
4689
4680
|
},
|
|
4690
4681
|
{
|
|
4691
4682
|
name: "google/gemini-3.1-flash-image",
|
|
4692
|
-
displayName: "Nano Banana 2
|
|
4683
|
+
displayName: "Nano Banana 2",
|
|
4693
4684
|
maxInputTokens: 131072,
|
|
4694
4685
|
supportedFileTypes: ["image", "document"],
|
|
4695
4686
|
reasoning: true,
|
|
4696
4687
|
supportsTemperature: true,
|
|
4697
4688
|
supportsToolCall: false,
|
|
4698
|
-
releaseDate: "2026-
|
|
4689
|
+
releaseDate: "2026-05-28",
|
|
4699
4690
|
modalities: {
|
|
4700
|
-
input: ["
|
|
4701
|
-
output: ["
|
|
4691
|
+
input: ["text", "image"],
|
|
4692
|
+
output: ["text", "image"]
|
|
4702
4693
|
},
|
|
4703
4694
|
pricing: {
|
|
4704
4695
|
inputPerM: 0.5,
|
|
@@ -4933,7 +4924,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4933
4924
|
},
|
|
4934
4925
|
pricing: {
|
|
4935
4926
|
inputPerM: 0.08,
|
|
4936
|
-
outputPerM: 0.
|
|
4927
|
+
outputPerM: 0.45,
|
|
4928
|
+
cacheReadPerM: 0.04,
|
|
4937
4929
|
currency: "USD",
|
|
4938
4930
|
unit: "per_million_tokens"
|
|
4939
4931
|
}
|
|
@@ -4992,8 +4984,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
4992
4984
|
output: ["text"]
|
|
4993
4985
|
},
|
|
4994
4986
|
pricing: {
|
|
4995
|
-
inputPerM: 0.
|
|
4996
|
-
outputPerM: 0.
|
|
4987
|
+
inputPerM: 0.1,
|
|
4988
|
+
outputPerM: 0.3,
|
|
4997
4989
|
currency: "USD",
|
|
4998
4990
|
unit: "per_million_tokens"
|
|
4999
4991
|
}
|
|
@@ -5032,9 +5024,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
5032
5024
|
output: ["text"]
|
|
5033
5025
|
},
|
|
5034
5026
|
pricing: {
|
|
5035
|
-
inputPerM: 0.
|
|
5036
|
-
outputPerM: 0.
|
|
5037
|
-
cacheReadPerM: 0.
|
|
5027
|
+
inputPerM: 0.22,
|
|
5028
|
+
outputPerM: 0.55,
|
|
5029
|
+
cacheReadPerM: 0.12,
|
|
5038
5030
|
currency: "USD",
|
|
5039
5031
|
unit: "per_million_tokens"
|
|
5040
5032
|
}
|
|
@@ -5285,62 +5277,64 @@ var MODELS_BY_PROVIDER = {
|
|
|
5285
5277
|
}
|
|
5286
5278
|
},
|
|
5287
5279
|
{
|
|
5288
|
-
name: "kwaipilot/kat-coder-
|
|
5289
|
-
displayName: "KAT-Coder-
|
|
5280
|
+
name: "kwaipilot/kat-coder-air-v2.5",
|
|
5281
|
+
displayName: "KAT-Coder-Air V2.5",
|
|
5290
5282
|
maxInputTokens: 256e3,
|
|
5291
5283
|
supportedFileTypes: [],
|
|
5292
5284
|
reasoning: false,
|
|
5293
5285
|
supportsTemperature: true,
|
|
5294
5286
|
supportsToolCall: true,
|
|
5295
|
-
releaseDate: "2026-
|
|
5287
|
+
releaseDate: "2026-07-10",
|
|
5296
5288
|
modalities: {
|
|
5297
5289
|
input: ["text"],
|
|
5298
5290
|
output: ["text"]
|
|
5299
5291
|
},
|
|
5300
5292
|
pricing: {
|
|
5301
|
-
inputPerM: 0.
|
|
5302
|
-
outputPerM:
|
|
5303
|
-
cacheReadPerM: 0.
|
|
5293
|
+
inputPerM: 0.15,
|
|
5294
|
+
outputPerM: 0.6,
|
|
5295
|
+
cacheReadPerM: 0.03,
|
|
5304
5296
|
currency: "USD",
|
|
5305
5297
|
unit: "per_million_tokens"
|
|
5306
5298
|
}
|
|
5307
5299
|
},
|
|
5308
5300
|
{
|
|
5309
|
-
name: "
|
|
5310
|
-
displayName: "
|
|
5311
|
-
maxInputTokens:
|
|
5301
|
+
name: "kwaipilot/kat-coder-pro-v2",
|
|
5302
|
+
displayName: "KAT-Coder-Pro V2",
|
|
5303
|
+
maxInputTokens: 256e3,
|
|
5312
5304
|
supportedFileTypes: [],
|
|
5313
5305
|
reasoning: false,
|
|
5314
5306
|
supportsTemperature: true,
|
|
5315
|
-
supportsToolCall:
|
|
5316
|
-
releaseDate: "2026-
|
|
5307
|
+
supportsToolCall: true,
|
|
5308
|
+
releaseDate: "2026-03-27",
|
|
5317
5309
|
modalities: {
|
|
5318
5310
|
input: ["text"],
|
|
5319
5311
|
output: ["text"]
|
|
5320
5312
|
},
|
|
5321
5313
|
pricing: {
|
|
5322
|
-
inputPerM: 0,
|
|
5323
|
-
outputPerM:
|
|
5314
|
+
inputPerM: 0.3,
|
|
5315
|
+
outputPerM: 1.2,
|
|
5316
|
+
cacheReadPerM: 0.06,
|
|
5324
5317
|
currency: "USD",
|
|
5325
5318
|
unit: "per_million_tokens"
|
|
5326
5319
|
}
|
|
5327
5320
|
},
|
|
5328
5321
|
{
|
|
5329
|
-
name: "
|
|
5330
|
-
displayName: "
|
|
5331
|
-
maxInputTokens:
|
|
5322
|
+
name: "kwaipilot/kat-coder-pro-v2.5",
|
|
5323
|
+
displayName: "KAT-Coder-Pro V2.5",
|
|
5324
|
+
maxInputTokens: 256e3,
|
|
5332
5325
|
supportedFileTypes: [],
|
|
5333
|
-
reasoning:
|
|
5326
|
+
reasoning: false,
|
|
5334
5327
|
supportsTemperature: true,
|
|
5335
5328
|
supportsToolCall: true,
|
|
5336
|
-
releaseDate: "2026-
|
|
5329
|
+
releaseDate: "2026-07-10",
|
|
5337
5330
|
modalities: {
|
|
5338
5331
|
input: ["text"],
|
|
5339
5332
|
output: ["text"]
|
|
5340
5333
|
},
|
|
5341
5334
|
pricing: {
|
|
5342
|
-
inputPerM: 0,
|
|
5343
|
-
outputPerM:
|
|
5335
|
+
inputPerM: 0.74,
|
|
5336
|
+
outputPerM: 2.96,
|
|
5337
|
+
cacheReadPerM: 0.15,
|
|
5344
5338
|
currency: "USD",
|
|
5345
5339
|
unit: "per_million_tokens"
|
|
5346
5340
|
}
|
|
@@ -5365,26 +5359,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
5365
5359
|
unit: "per_million_tokens"
|
|
5366
5360
|
}
|
|
5367
5361
|
},
|
|
5368
|
-
{
|
|
5369
|
-
name: "meta-llama/llama-3-8b-instruct",
|
|
5370
|
-
displayName: "Llama 3 8B Instruct",
|
|
5371
|
-
maxInputTokens: 8192,
|
|
5372
|
-
supportedFileTypes: [],
|
|
5373
|
-
reasoning: false,
|
|
5374
|
-
supportsTemperature: true,
|
|
5375
|
-
supportsToolCall: false,
|
|
5376
|
-
releaseDate: "2024-04-18",
|
|
5377
|
-
modalities: {
|
|
5378
|
-
input: ["text"],
|
|
5379
|
-
output: ["text"]
|
|
5380
|
-
},
|
|
5381
|
-
pricing: {
|
|
5382
|
-
inputPerM: 0.14,
|
|
5383
|
-
outputPerM: 0.14,
|
|
5384
|
-
currency: "USD",
|
|
5385
|
-
unit: "per_million_tokens"
|
|
5386
|
-
}
|
|
5387
|
-
},
|
|
5388
5362
|
{
|
|
5389
5363
|
name: "meta-llama/llama-3.1-70b-instruct",
|
|
5390
5364
|
displayName: "Llama 3.1 70B Instruct",
|
|
@@ -5419,8 +5393,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
5419
5393
|
output: ["text"]
|
|
5420
5394
|
},
|
|
5421
5395
|
pricing: {
|
|
5422
|
-
inputPerM: 0.
|
|
5423
|
-
outputPerM: 0.
|
|
5396
|
+
inputPerM: 0.05,
|
|
5397
|
+
outputPerM: 0.08,
|
|
5398
|
+
cacheReadPerM: 0.025,
|
|
5424
5399
|
currency: "USD",
|
|
5425
5400
|
unit: "per_million_tokens"
|
|
5426
5401
|
}
|
|
@@ -5519,8 +5494,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
5519
5494
|
output: ["text"]
|
|
5520
5495
|
},
|
|
5521
5496
|
pricing: {
|
|
5522
|
-
inputPerM: 0.
|
|
5523
|
-
outputPerM: 0.
|
|
5497
|
+
inputPerM: 0.13,
|
|
5498
|
+
outputPerM: 0.4,
|
|
5524
5499
|
currency: "USD",
|
|
5525
5500
|
unit: "per_million_tokens"
|
|
5526
5501
|
}
|
|
@@ -5559,8 +5534,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
5559
5534
|
output: ["text"]
|
|
5560
5535
|
},
|
|
5561
5536
|
pricing: {
|
|
5562
|
-
inputPerM: 0.
|
|
5563
|
-
outputPerM: 0.
|
|
5537
|
+
inputPerM: 0.2,
|
|
5538
|
+
outputPerM: 0.8,
|
|
5564
5539
|
currency: "USD",
|
|
5565
5540
|
unit: "per_million_tokens"
|
|
5566
5541
|
}
|
|
@@ -5605,6 +5580,27 @@ var MODELS_BY_PROVIDER = {
|
|
|
5605
5580
|
unit: "per_million_tokens"
|
|
5606
5581
|
}
|
|
5607
5582
|
},
|
|
5583
|
+
{
|
|
5584
|
+
name: "meta/muse-spark-1.1",
|
|
5585
|
+
displayName: "Muse Spark 1.1",
|
|
5586
|
+
maxInputTokens: 1048576,
|
|
5587
|
+
supportedFileTypes: ["pdf", "image", "audio", "video"],
|
|
5588
|
+
reasoning: true,
|
|
5589
|
+
supportsTemperature: true,
|
|
5590
|
+
supportsToolCall: true,
|
|
5591
|
+
releaseDate: "2026-04-08",
|
|
5592
|
+
modalities: {
|
|
5593
|
+
input: ["text", "image", "video", "pdf", "audio"],
|
|
5594
|
+
output: ["text"]
|
|
5595
|
+
},
|
|
5596
|
+
pricing: {
|
|
5597
|
+
inputPerM: 1.25,
|
|
5598
|
+
outputPerM: 4.25,
|
|
5599
|
+
cacheReadPerM: 0.15,
|
|
5600
|
+
currency: "USD",
|
|
5601
|
+
unit: "per_million_tokens"
|
|
5602
|
+
}
|
|
5603
|
+
},
|
|
5608
5604
|
{
|
|
5609
5605
|
name: "microsoft/phi-4",
|
|
5610
5606
|
displayName: "Phi 4",
|
|
@@ -5679,7 +5675,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
5679
5675
|
output: ["text"]
|
|
5680
5676
|
},
|
|
5681
5677
|
pricing: {
|
|
5682
|
-
inputPerM: 0.
|
|
5678
|
+
inputPerM: 0.55,
|
|
5683
5679
|
outputPerM: 2.2,
|
|
5684
5680
|
currency: "USD",
|
|
5685
5681
|
unit: "per_million_tokens"
|
|
@@ -5794,8 +5790,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
5794
5790
|
output: ["text"]
|
|
5795
5791
|
},
|
|
5796
5792
|
pricing: {
|
|
5797
|
-
inputPerM: 0.
|
|
5798
|
-
outputPerM:
|
|
5793
|
+
inputPerM: 0.3,
|
|
5794
|
+
outputPerM: 1.2,
|
|
5795
|
+
cacheReadPerM: 0.06,
|
|
5799
5796
|
currency: "USD",
|
|
5800
5797
|
unit: "per_million_tokens"
|
|
5801
5798
|
}
|
|
@@ -6067,7 +6064,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
6067
6064
|
},
|
|
6068
6065
|
pricing: {
|
|
6069
6066
|
inputPerM: 0.02,
|
|
6070
|
-
outputPerM: 0.
|
|
6067
|
+
outputPerM: 0.04,
|
|
6071
6068
|
currency: "USD",
|
|
6072
6069
|
unit: "per_million_tokens"
|
|
6073
6070
|
}
|
|
@@ -6157,7 +6154,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
6157
6154
|
{
|
|
6158
6155
|
name: "mistralai/mistral-small-3.2-24b-instruct",
|
|
6159
6156
|
displayName: "Mistral Small 3.2 24B",
|
|
6160
|
-
maxInputTokens:
|
|
6157
|
+
maxInputTokens: 131072,
|
|
6161
6158
|
supportedFileTypes: ["image"],
|
|
6162
6159
|
reasoning: false,
|
|
6163
6160
|
supportsTemperature: true,
|
|
@@ -6168,8 +6165,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6168
6165
|
output: ["text"]
|
|
6169
6166
|
},
|
|
6170
6167
|
pricing: {
|
|
6171
|
-
inputPerM: 0.
|
|
6172
|
-
outputPerM: 0.
|
|
6168
|
+
inputPerM: 0.1,
|
|
6169
|
+
outputPerM: 0.3,
|
|
6170
|
+
cacheReadPerM: 0.01,
|
|
6173
6171
|
currency: "USD",
|
|
6174
6172
|
unit: "per_million_tokens"
|
|
6175
6173
|
}
|
|
@@ -6276,7 +6274,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
6276
6274
|
pricing: {
|
|
6277
6275
|
inputPerM: 0.6,
|
|
6278
6276
|
outputPerM: 2.5,
|
|
6279
|
-
cacheReadPerM: 0.15,
|
|
6280
6277
|
currency: "USD",
|
|
6281
6278
|
unit: "per_million_tokens"
|
|
6282
6279
|
}
|
|
@@ -6299,9 +6296,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6299
6296
|
},
|
|
6300
6297
|
supportsInterleaved: true,
|
|
6301
6298
|
pricing: {
|
|
6302
|
-
inputPerM: 0.
|
|
6303
|
-
outputPerM: 2.
|
|
6304
|
-
cacheReadPerM: 0.
|
|
6299
|
+
inputPerM: 0.57,
|
|
6300
|
+
outputPerM: 2.85,
|
|
6301
|
+
cacheReadPerM: 0.095,
|
|
6305
6302
|
currency: "USD",
|
|
6306
6303
|
unit: "per_million_tokens"
|
|
6307
6304
|
}
|
|
@@ -6324,9 +6321,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6324
6321
|
},
|
|
6325
6322
|
supportsInterleaved: true,
|
|
6326
6323
|
pricing: {
|
|
6327
|
-
inputPerM: 0.
|
|
6328
|
-
outputPerM:
|
|
6329
|
-
cacheReadPerM: 0.
|
|
6324
|
+
inputPerM: 0.95,
|
|
6325
|
+
outputPerM: 4,
|
|
6326
|
+
cacheReadPerM: 0.16,
|
|
6330
6327
|
currency: "USD",
|
|
6331
6328
|
unit: "per_million_tokens"
|
|
6332
6329
|
}
|
|
@@ -6345,9 +6342,30 @@ var MODELS_BY_PROVIDER = {
|
|
|
6345
6342
|
output: ["text"]
|
|
6346
6343
|
},
|
|
6347
6344
|
pricing: {
|
|
6348
|
-
inputPerM: 0.
|
|
6349
|
-
outputPerM: 3.
|
|
6350
|
-
cacheReadPerM: 0.
|
|
6345
|
+
inputPerM: 0.75,
|
|
6346
|
+
outputPerM: 3.5,
|
|
6347
|
+
cacheReadPerM: 0.16,
|
|
6348
|
+
currency: "USD",
|
|
6349
|
+
unit: "per_million_tokens"
|
|
6350
|
+
}
|
|
6351
|
+
},
|
|
6352
|
+
{
|
|
6353
|
+
name: "moonshotai/kimi-k3",
|
|
6354
|
+
displayName: "Kimi K3",
|
|
6355
|
+
maxInputTokens: 1048576,
|
|
6356
|
+
supportedFileTypes: ["image"],
|
|
6357
|
+
reasoning: true,
|
|
6358
|
+
supportsTemperature: false,
|
|
6359
|
+
supportsToolCall: true,
|
|
6360
|
+
releaseDate: "2026-07-16",
|
|
6361
|
+
modalities: {
|
|
6362
|
+
input: ["text", "image"],
|
|
6363
|
+
output: ["text"]
|
|
6364
|
+
},
|
|
6365
|
+
pricing: {
|
|
6366
|
+
inputPerM: 3,
|
|
6367
|
+
outputPerM: 15,
|
|
6368
|
+
cacheReadPerM: 0.3,
|
|
6351
6369
|
currency: "USD",
|
|
6352
6370
|
unit: "per_million_tokens"
|
|
6353
6371
|
}
|
|
@@ -6628,8 +6646,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6628
6646
|
output: ["text"]
|
|
6629
6647
|
},
|
|
6630
6648
|
pricing: {
|
|
6631
|
-
inputPerM: 0.
|
|
6632
|
-
outputPerM: 0.
|
|
6649
|
+
inputPerM: 0.21,
|
|
6650
|
+
outputPerM: 0.455,
|
|
6651
|
+
cacheReadPerM: 0.06,
|
|
6633
6652
|
currency: "USD",
|
|
6634
6653
|
unit: "per_million_tokens"
|
|
6635
6654
|
}
|
|
@@ -6668,9 +6687,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
6668
6687
|
output: ["text"]
|
|
6669
6688
|
},
|
|
6670
6689
|
pricing: {
|
|
6671
|
-
inputPerM: 0.
|
|
6672
|
-
outputPerM:
|
|
6673
|
-
cacheReadPerM: 0.
|
|
6690
|
+
inputPerM: 0.6,
|
|
6691
|
+
outputPerM: 3.6,
|
|
6692
|
+
cacheReadPerM: 0.2,
|
|
6674
6693
|
currency: "USD",
|
|
6675
6694
|
unit: "per_million_tokens"
|
|
6676
6695
|
}
|
|
@@ -6974,6 +6993,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
6974
6993
|
pricing: {
|
|
6975
6994
|
inputPerM: 2.5,
|
|
6976
6995
|
outputPerM: 10,
|
|
6996
|
+
cacheReadPerM: 1.25,
|
|
6977
6997
|
currency: "USD",
|
|
6978
6998
|
unit: "per_million_tokens"
|
|
6979
6999
|
}
|
|
@@ -7264,7 +7284,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7264
7284
|
pricing: {
|
|
7265
7285
|
inputPerM: 0.05,
|
|
7266
7286
|
outputPerM: 0.4,
|
|
7267
|
-
cacheReadPerM:
|
|
7287
|
+
cacheReadPerM: 5e-3,
|
|
7268
7288
|
currency: "USD",
|
|
7269
7289
|
unit: "per_million_tokens"
|
|
7270
7290
|
}
|
|
@@ -7305,7 +7325,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7305
7325
|
pricing: {
|
|
7306
7326
|
inputPerM: 1.25,
|
|
7307
7327
|
outputPerM: 10,
|
|
7308
|
-
cacheReadPerM: 0.
|
|
7328
|
+
cacheReadPerM: 0.125,
|
|
7309
7329
|
currency: "USD",
|
|
7310
7330
|
unit: "per_million_tokens"
|
|
7311
7331
|
}
|
|
@@ -7326,7 +7346,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7326
7346
|
pricing: {
|
|
7327
7347
|
inputPerM: 1.25,
|
|
7328
7348
|
outputPerM: 10,
|
|
7329
|
-
cacheReadPerM: 0.
|
|
7349
|
+
cacheReadPerM: 0.125,
|
|
7330
7350
|
currency: "USD",
|
|
7331
7351
|
unit: "per_million_tokens"
|
|
7332
7352
|
}
|
|
@@ -7347,7 +7367,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
7347
7367
|
pricing: {
|
|
7348
7368
|
inputPerM: 1.25,
|
|
7349
7369
|
outputPerM: 10,
|
|
7350
|
-
cacheReadPerM: 0.
|
|
7370
|
+
cacheReadPerM: 0.125,
|
|
7351
7371
|
currency: "USD",
|
|
7352
7372
|
unit: "per_million_tokens"
|
|
7353
7373
|
}
|
|
@@ -7871,28 +7891,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
7871
7891
|
output: ["text"]
|
|
7872
7892
|
},
|
|
7873
7893
|
pricing: {
|
|
7874
|
-
inputPerM: 0.
|
|
7875
|
-
outputPerM: 0.
|
|
7876
|
-
currency: "USD",
|
|
7877
|
-
unit: "per_million_tokens"
|
|
7878
|
-
}
|
|
7879
|
-
},
|
|
7880
|
-
{
|
|
7881
|
-
name: "openai/gpt-oss-120b:free",
|
|
7882
|
-
displayName: "gpt-oss-120b (free)",
|
|
7883
|
-
maxInputTokens: 131072,
|
|
7884
|
-
supportedFileTypes: [],
|
|
7885
|
-
reasoning: true,
|
|
7886
|
-
supportsTemperature: true,
|
|
7887
|
-
supportsToolCall: true,
|
|
7888
|
-
releaseDate: "2025-08-05",
|
|
7889
|
-
modalities: {
|
|
7890
|
-
input: ["text"],
|
|
7891
|
-
output: ["text"]
|
|
7892
|
-
},
|
|
7893
|
-
pricing: {
|
|
7894
|
-
inputPerM: 0,
|
|
7895
|
-
outputPerM: 0,
|
|
7894
|
+
inputPerM: 0.037,
|
|
7895
|
+
outputPerM: 0.17,
|
|
7896
7896
|
currency: "USD",
|
|
7897
7897
|
unit: "per_million_tokens"
|
|
7898
7898
|
}
|
|
@@ -7911,8 +7911,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
7911
7911
|
output: ["text"]
|
|
7912
7912
|
},
|
|
7913
7913
|
pricing: {
|
|
7914
|
-
inputPerM: 0.
|
|
7915
|
-
outputPerM: 0.
|
|
7914
|
+
inputPerM: 0.03,
|
|
7915
|
+
outputPerM: 0.13,
|
|
7916
|
+
cacheReadPerM: 0.03,
|
|
7916
7917
|
currency: "USD",
|
|
7917
7918
|
unit: "per_million_tokens"
|
|
7918
7919
|
}
|
|
@@ -8648,7 +8649,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
8648
8649
|
},
|
|
8649
8650
|
pricing: {
|
|
8650
8651
|
inputPerM: 0.09,
|
|
8651
|
-
outputPerM: 0.
|
|
8652
|
+
outputPerM: 0.55,
|
|
8652
8653
|
currency: "USD",
|
|
8653
8654
|
unit: "per_million_tokens"
|
|
8654
8655
|
}
|
|
@@ -8696,7 +8697,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
8696
8697
|
{
|
|
8697
8698
|
name: "qwen/qwen3-30b-a3b-instruct-2507",
|
|
8698
8699
|
displayName: "Qwen3 30B A3B Instruct 2507",
|
|
8699
|
-
maxInputTokens:
|
|
8700
|
+
maxInputTokens: 262144,
|
|
8700
8701
|
supportedFileTypes: [],
|
|
8701
8702
|
reasoning: false,
|
|
8702
8703
|
supportsTemperature: true,
|
|
@@ -8707,8 +8708,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
8707
8708
|
output: ["text"]
|
|
8708
8709
|
},
|
|
8709
8710
|
pricing: {
|
|
8710
|
-
inputPerM: 0.
|
|
8711
|
-
outputPerM: 0.
|
|
8711
|
+
inputPerM: 0.1,
|
|
8712
|
+
outputPerM: 0.3,
|
|
8712
8713
|
currency: "USD",
|
|
8713
8714
|
unit: "per_million_tokens"
|
|
8714
8715
|
}
|
|
@@ -8787,8 +8788,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
8787
8788
|
output: ["text"]
|
|
8788
8789
|
},
|
|
8789
8790
|
pricing: {
|
|
8790
|
-
inputPerM: 0.
|
|
8791
|
-
outputPerM: 1
|
|
8791
|
+
inputPerM: 0.3,
|
|
8792
|
+
outputPerM: 1,
|
|
8793
|
+
cacheReadPerM: 0.1,
|
|
8792
8794
|
currency: "USD",
|
|
8793
8795
|
unit: "per_million_tokens"
|
|
8794
8796
|
}
|
|
@@ -8954,8 +8956,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
8954
8956
|
output: ["text"]
|
|
8955
8957
|
},
|
|
8956
8958
|
pricing: {
|
|
8957
|
-
inputPerM: 0.
|
|
8959
|
+
inputPerM: 0.1,
|
|
8958
8960
|
outputPerM: 1.1,
|
|
8961
|
+
cacheReadPerM: 0.07,
|
|
8959
8962
|
currency: "USD",
|
|
8960
8963
|
unit: "per_million_tokens"
|
|
8961
8964
|
}
|
|
@@ -9003,7 +9006,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
9003
9006
|
{
|
|
9004
9007
|
name: "qwen/qwen3-vl-235b-a22b-instruct",
|
|
9005
9008
|
displayName: "Qwen3 VL 235B A22B Instruct",
|
|
9006
|
-
maxInputTokens:
|
|
9009
|
+
maxInputTokens: 131072,
|
|
9007
9010
|
supportedFileTypes: ["image"],
|
|
9008
9011
|
reasoning: false,
|
|
9009
9012
|
supportsTemperature: true,
|
|
@@ -9014,9 +9017,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9014
9017
|
output: ["text"]
|
|
9015
9018
|
},
|
|
9016
9019
|
pricing: {
|
|
9017
|
-
inputPerM: 0.
|
|
9018
|
-
outputPerM:
|
|
9019
|
-
cacheReadPerM: 0.
|
|
9020
|
+
inputPerM: 0.21,
|
|
9021
|
+
outputPerM: 1.9,
|
|
9022
|
+
cacheReadPerM: 0.1,
|
|
9020
9023
|
currency: "USD",
|
|
9021
9024
|
unit: "per_million_tokens"
|
|
9022
9025
|
}
|
|
@@ -9197,7 +9200,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
9197
9200
|
pricing: {
|
|
9198
9201
|
inputPerM: 0.14,
|
|
9199
9202
|
outputPerM: 1,
|
|
9200
|
-
cacheReadPerM: 0.05,
|
|
9201
9203
|
currency: "USD",
|
|
9202
9204
|
unit: "per_million_tokens"
|
|
9203
9205
|
}
|
|
@@ -9205,7 +9207,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
9205
9207
|
{
|
|
9206
9208
|
name: "qwen/qwen3.5-397b-a17b",
|
|
9207
9209
|
displayName: "Qwen3.5 397B-A17B",
|
|
9208
|
-
maxInputTokens:
|
|
9210
|
+
maxInputTokens: 262144,
|
|
9209
9211
|
supportedFileTypes: ["image", "video"],
|
|
9210
9212
|
reasoning: true,
|
|
9211
9213
|
supportsTemperature: true,
|
|
@@ -9216,9 +9218,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9216
9218
|
output: ["text"]
|
|
9217
9219
|
},
|
|
9218
9220
|
pricing: {
|
|
9219
|
-
inputPerM: 0.
|
|
9220
|
-
outputPerM:
|
|
9221
|
-
cacheReadPerM: 0.
|
|
9221
|
+
inputPerM: 0.45,
|
|
9222
|
+
outputPerM: 3,
|
|
9223
|
+
cacheReadPerM: 0.225,
|
|
9222
9224
|
currency: "USD",
|
|
9223
9225
|
unit: "per_million_tokens"
|
|
9224
9226
|
}
|
|
@@ -9318,9 +9320,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
9318
9320
|
output: ["text"]
|
|
9319
9321
|
},
|
|
9320
9322
|
pricing: {
|
|
9321
|
-
inputPerM: 0.
|
|
9322
|
-
outputPerM: 2.
|
|
9323
|
-
cacheReadPerM: 0.15,
|
|
9323
|
+
inputPerM: 0.45,
|
|
9324
|
+
outputPerM: 2.7,
|
|
9324
9325
|
currency: "USD",
|
|
9325
9326
|
unit: "per_million_tokens"
|
|
9326
9327
|
}
|
|
@@ -9422,10 +9423,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
9422
9423
|
output: ["text"]
|
|
9423
9424
|
},
|
|
9424
9425
|
pricing: {
|
|
9425
|
-
inputPerM: 1.
|
|
9426
|
-
outputPerM:
|
|
9427
|
-
cacheReadPerM: 0.
|
|
9428
|
-
cacheWritePerM: 1.
|
|
9426
|
+
inputPerM: 1.475,
|
|
9427
|
+
outputPerM: 4.425,
|
|
9428
|
+
cacheReadPerM: 0.295,
|
|
9429
|
+
cacheWritePerM: 1.84375,
|
|
9429
9430
|
currency: "USD",
|
|
9430
9431
|
unit: "per_million_tokens"
|
|
9431
9432
|
}
|
|
@@ -9573,26 +9574,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
9573
9574
|
unit: "per_million_tokens"
|
|
9574
9575
|
}
|
|
9575
9576
|
},
|
|
9576
|
-
{
|
|
9577
|
-
name: "sao10k/l3.1-70b-hanami-x1",
|
|
9578
|
-
displayName: "Llama 3.1 70B Hanami x1",
|
|
9579
|
-
maxInputTokens: 16e3,
|
|
9580
|
-
supportedFileTypes: [],
|
|
9581
|
-
reasoning: false,
|
|
9582
|
-
supportsTemperature: true,
|
|
9583
|
-
supportsToolCall: false,
|
|
9584
|
-
releaseDate: "2025-01-08",
|
|
9585
|
-
modalities: {
|
|
9586
|
-
input: ["text"],
|
|
9587
|
-
output: ["text"]
|
|
9588
|
-
},
|
|
9589
|
-
pricing: {
|
|
9590
|
-
inputPerM: 3,
|
|
9591
|
-
outputPerM: 3,
|
|
9592
|
-
currency: "USD",
|
|
9593
|
-
unit: "per_million_tokens"
|
|
9594
|
-
}
|
|
9595
|
-
},
|
|
9596
9577
|
{
|
|
9597
9578
|
name: "sao10k/l3.1-euryale-70b",
|
|
9598
9579
|
displayName: "Llama 3.1 Euryale 70B v2.2",
|
|
@@ -9708,9 +9689,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
9708
9689
|
output: ["text"]
|
|
9709
9690
|
},
|
|
9710
9691
|
pricing: {
|
|
9711
|
-
inputPerM: 0.
|
|
9712
|
-
outputPerM: 0.
|
|
9713
|
-
cacheReadPerM: 0.
|
|
9692
|
+
inputPerM: 0.2,
|
|
9693
|
+
outputPerM: 0.8,
|
|
9694
|
+
cacheReadPerM: 0.05,
|
|
9714
9695
|
currency: "USD",
|
|
9715
9696
|
unit: "per_million_tokens"
|
|
9716
9697
|
}
|
|
@@ -10030,9 +10011,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10030
10011
|
},
|
|
10031
10012
|
supportsInterleaved: true,
|
|
10032
10013
|
pricing: {
|
|
10033
|
-
inputPerM: 0.
|
|
10014
|
+
inputPerM: 0.14,
|
|
10034
10015
|
outputPerM: 0.28,
|
|
10035
|
-
cacheReadPerM:
|
|
10016
|
+
cacheReadPerM: 28e-4,
|
|
10036
10017
|
currency: "USD",
|
|
10037
10018
|
unit: "per_million_tokens"
|
|
10038
10019
|
}
|
|
@@ -10139,9 +10120,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10139
10120
|
output: ["text"]
|
|
10140
10121
|
},
|
|
10141
10122
|
pricing: {
|
|
10142
|
-
inputPerM: 0.
|
|
10143
|
-
outputPerM:
|
|
10144
|
-
cacheReadPerM: 0.
|
|
10123
|
+
inputPerM: 0.5,
|
|
10124
|
+
outputPerM: 2,
|
|
10125
|
+
cacheReadPerM: 0.1,
|
|
10145
10126
|
currency: "USD",
|
|
10146
10127
|
unit: "per_million_tokens"
|
|
10147
10128
|
}
|
|
@@ -10195,7 +10176,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
10195
10176
|
{
|
|
10196
10177
|
name: "z-ai/glm-4.7-flash",
|
|
10197
10178
|
displayName: "GLM-4.7-Flash",
|
|
10198
|
-
maxInputTokens:
|
|
10179
|
+
maxInputTokens: 2e5,
|
|
10199
10180
|
supportedFileTypes: [],
|
|
10200
10181
|
reasoning: true,
|
|
10201
10182
|
supportsTemperature: true,
|
|
@@ -10210,9 +10191,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
10210
10191
|
},
|
|
10211
10192
|
supportsInterleaved: true,
|
|
10212
10193
|
pricing: {
|
|
10213
|
-
inputPerM: 0.
|
|
10194
|
+
inputPerM: 0.0605,
|
|
10214
10195
|
outputPerM: 0.4,
|
|
10215
|
-
cacheReadPerM: 0.01,
|
|
10216
10196
|
currency: "USD",
|
|
10217
10197
|
unit: "per_million_tokens"
|
|
10218
10198
|
}
|
|
@@ -10235,9 +10215,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10235
10215
|
},
|
|
10236
10216
|
supportsInterleaved: true,
|
|
10237
10217
|
pricing: {
|
|
10238
|
-
inputPerM: 0.
|
|
10239
|
-
outputPerM:
|
|
10240
|
-
cacheReadPerM: 0.
|
|
10218
|
+
inputPerM: 0.95,
|
|
10219
|
+
outputPerM: 3.15,
|
|
10220
|
+
cacheReadPerM: 0.19,
|
|
10241
10221
|
currency: "USD",
|
|
10242
10222
|
unit: "per_million_tokens"
|
|
10243
10223
|
}
|
|
@@ -10245,7 +10225,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
10245
10225
|
{
|
|
10246
10226
|
name: "z-ai/glm-5-turbo",
|
|
10247
10227
|
displayName: "GLM-5-Turbo",
|
|
10248
|
-
maxInputTokens:
|
|
10228
|
+
maxInputTokens: 202752,
|
|
10249
10229
|
supportedFileTypes: [],
|
|
10250
10230
|
reasoning: true,
|
|
10251
10231
|
supportsTemperature: true,
|
|
@@ -10310,9 +10290,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
10310
10290
|
},
|
|
10311
10291
|
supportsInterleaved: true,
|
|
10312
10292
|
pricing: {
|
|
10313
|
-
inputPerM: 0.
|
|
10314
|
-
outputPerM:
|
|
10315
|
-
cacheReadPerM: 0.
|
|
10293
|
+
inputPerM: 0.9338,
|
|
10294
|
+
outputPerM: 2.9348,
|
|
10295
|
+
cacheReadPerM: 0.17342,
|
|
10316
10296
|
currency: "USD",
|
|
10317
10297
|
unit: "per_million_tokens"
|
|
10318
10298
|
}
|
|
@@ -10733,6 +10713,26 @@ var MODELS_BY_PROVIDER = {
|
|
|
10733
10713
|
unit: "per_million_tokens"
|
|
10734
10714
|
}
|
|
10735
10715
|
},
|
|
10716
|
+
{
|
|
10717
|
+
name: "gemini-2.5-flash-image",
|
|
10718
|
+
displayName: "Nano Banana",
|
|
10719
|
+
maxInputTokens: 32768,
|
|
10720
|
+
supportedFileTypes: ["image", "document"],
|
|
10721
|
+
reasoning: false,
|
|
10722
|
+
supportsTemperature: true,
|
|
10723
|
+
supportsToolCall: false,
|
|
10724
|
+
releaseDate: "2025-08-26",
|
|
10725
|
+
modalities: {
|
|
10726
|
+
input: ["text", "image"],
|
|
10727
|
+
output: ["text", "image"]
|
|
10728
|
+
},
|
|
10729
|
+
pricing: {
|
|
10730
|
+
inputPerM: 0.3,
|
|
10731
|
+
outputPerM: 30,
|
|
10732
|
+
currency: "USD",
|
|
10733
|
+
unit: "per_million_tokens"
|
|
10734
|
+
}
|
|
10735
|
+
},
|
|
10736
10736
|
{
|
|
10737
10737
|
name: "gemini-2.5-flash-lite",
|
|
10738
10738
|
displayName: "Gemini 2.5 Flash-Lite",
|
|
@@ -10843,6 +10843,46 @@ var MODELS_BY_PROVIDER = {
|
|
|
10843
10843
|
},
|
|
10844
10844
|
default: true
|
|
10845
10845
|
},
|
|
10846
|
+
{
|
|
10847
|
+
name: "gemini-3-pro-image",
|
|
10848
|
+
displayName: "Nano Banana Pro",
|
|
10849
|
+
maxInputTokens: 65536,
|
|
10850
|
+
supportedFileTypes: ["image", "document"],
|
|
10851
|
+
reasoning: true,
|
|
10852
|
+
supportsTemperature: true,
|
|
10853
|
+
supportsToolCall: false,
|
|
10854
|
+
releaseDate: "2026-05-28",
|
|
10855
|
+
modalities: {
|
|
10856
|
+
input: ["text", "image"],
|
|
10857
|
+
output: ["text", "image"]
|
|
10858
|
+
},
|
|
10859
|
+
pricing: {
|
|
10860
|
+
inputPerM: 2,
|
|
10861
|
+
outputPerM: 120,
|
|
10862
|
+
currency: "USD",
|
|
10863
|
+
unit: "per_million_tokens"
|
|
10864
|
+
}
|
|
10865
|
+
},
|
|
10866
|
+
{
|
|
10867
|
+
name: "gemini-3.1-flash-image",
|
|
10868
|
+
displayName: "Nano Banana 2",
|
|
10869
|
+
maxInputTokens: 131072,
|
|
10870
|
+
supportedFileTypes: ["pdf", "image", "video", "document"],
|
|
10871
|
+
reasoning: true,
|
|
10872
|
+
supportsTemperature: true,
|
|
10873
|
+
supportsToolCall: false,
|
|
10874
|
+
releaseDate: "2026-05-28",
|
|
10875
|
+
modalities: {
|
|
10876
|
+
input: ["text", "image", "video", "pdf"],
|
|
10877
|
+
output: ["text", "image"]
|
|
10878
|
+
},
|
|
10879
|
+
pricing: {
|
|
10880
|
+
inputPerM: 0.5,
|
|
10881
|
+
outputPerM: 60,
|
|
10882
|
+
currency: "USD",
|
|
10883
|
+
unit: "per_million_tokens"
|
|
10884
|
+
}
|
|
10885
|
+
},
|
|
10846
10886
|
{
|
|
10847
10887
|
name: "gemini-3.1-flash-lite",
|
|
10848
10888
|
displayName: "Gemini 3.1 Flash Lite",
|
|
@@ -10988,16 +11028,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
10988
11028
|
reasoning: true,
|
|
10989
11029
|
supportsTemperature: true,
|
|
10990
11030
|
supportsToolCall: true,
|
|
10991
|
-
releaseDate: "
|
|
11031
|
+
releaseDate: "2026-05-19",
|
|
10992
11032
|
modalities: {
|
|
10993
|
-
input: ["text", "image", "
|
|
11033
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
10994
11034
|
output: ["text"]
|
|
10995
11035
|
},
|
|
10996
11036
|
pricing: {
|
|
10997
|
-
inputPerM:
|
|
10998
|
-
outputPerM:
|
|
10999
|
-
cacheReadPerM: 0.
|
|
11000
|
-
|
|
11037
|
+
inputPerM: 1.5,
|
|
11038
|
+
outputPerM: 9,
|
|
11039
|
+
cacheReadPerM: 0.15,
|
|
11040
|
+
inputAudioPerM: 1.5,
|
|
11001
11041
|
currency: "USD",
|
|
11002
11042
|
unit: "per_million_tokens"
|
|
11003
11043
|
}
|
|
@@ -11010,15 +11050,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
11010
11050
|
reasoning: true,
|
|
11011
11051
|
supportsTemperature: true,
|
|
11012
11052
|
supportsToolCall: true,
|
|
11013
|
-
releaseDate: "
|
|
11053
|
+
releaseDate: "2026-05-07",
|
|
11014
11054
|
modalities: {
|
|
11015
|
-
input: ["text", "image", "
|
|
11055
|
+
input: ["text", "image", "video", "audio", "pdf"],
|
|
11016
11056
|
output: ["text"]
|
|
11017
11057
|
},
|
|
11018
11058
|
pricing: {
|
|
11019
|
-
inputPerM: 0.
|
|
11020
|
-
outputPerM:
|
|
11059
|
+
inputPerM: 0.25,
|
|
11060
|
+
outputPerM: 1.5,
|
|
11021
11061
|
cacheReadPerM: 0.025,
|
|
11062
|
+
inputAudioPerM: 0.5,
|
|
11022
11063
|
currency: "USD",
|
|
11023
11064
|
unit: "per_million_tokens"
|
|
11024
11065
|
}
|
|
@@ -12820,6 +12861,84 @@ var MODELS_BY_PROVIDER = {
|
|
|
12820
12861
|
unit: "per_million_tokens"
|
|
12821
12862
|
}
|
|
12822
12863
|
},
|
|
12864
|
+
{
|
|
12865
|
+
name: "openai.gpt-5.6-luna",
|
|
12866
|
+
displayName: "GPT-5.6 Luna",
|
|
12867
|
+
maxInputTokens: 272e3,
|
|
12868
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12869
|
+
reasoning: true,
|
|
12870
|
+
supportsTemperature: false,
|
|
12871
|
+
supportsToolCall: true,
|
|
12872
|
+
releaseDate: "2026-07-09",
|
|
12873
|
+
modalities: {
|
|
12874
|
+
input: ["text", "image", "pdf"],
|
|
12875
|
+
output: ["text"]
|
|
12876
|
+
},
|
|
12877
|
+
providerMetadata: {
|
|
12878
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12879
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12880
|
+
},
|
|
12881
|
+
pricing: {
|
|
12882
|
+
inputPerM: 1,
|
|
12883
|
+
outputPerM: 6,
|
|
12884
|
+
cacheReadPerM: 0.1,
|
|
12885
|
+
cacheWritePerM: 1.25,
|
|
12886
|
+
currency: "USD",
|
|
12887
|
+
unit: "per_million_tokens"
|
|
12888
|
+
}
|
|
12889
|
+
},
|
|
12890
|
+
{
|
|
12891
|
+
name: "openai.gpt-5.6-sol",
|
|
12892
|
+
displayName: "GPT-5.6 Sol",
|
|
12893
|
+
maxInputTokens: 272e3,
|
|
12894
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12895
|
+
reasoning: true,
|
|
12896
|
+
supportsTemperature: false,
|
|
12897
|
+
supportsToolCall: true,
|
|
12898
|
+
releaseDate: "2026-07-09",
|
|
12899
|
+
modalities: {
|
|
12900
|
+
input: ["text", "image", "pdf"],
|
|
12901
|
+
output: ["text"]
|
|
12902
|
+
},
|
|
12903
|
+
providerMetadata: {
|
|
12904
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12905
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12906
|
+
},
|
|
12907
|
+
pricing: {
|
|
12908
|
+
inputPerM: 5,
|
|
12909
|
+
outputPerM: 30,
|
|
12910
|
+
cacheReadPerM: 0.5,
|
|
12911
|
+
cacheWritePerM: 6.25,
|
|
12912
|
+
currency: "USD",
|
|
12913
|
+
unit: "per_million_tokens"
|
|
12914
|
+
}
|
|
12915
|
+
},
|
|
12916
|
+
{
|
|
12917
|
+
name: "openai.gpt-5.6-terra",
|
|
12918
|
+
displayName: "GPT-5.6 Terra",
|
|
12919
|
+
maxInputTokens: 272e3,
|
|
12920
|
+
supportedFileTypes: ["pdf", "image"],
|
|
12921
|
+
reasoning: true,
|
|
12922
|
+
supportsTemperature: false,
|
|
12923
|
+
supportsToolCall: true,
|
|
12924
|
+
releaseDate: "2026-07-09",
|
|
12925
|
+
modalities: {
|
|
12926
|
+
input: ["text", "image", "pdf"],
|
|
12927
|
+
output: ["text"]
|
|
12928
|
+
},
|
|
12929
|
+
providerMetadata: {
|
|
12930
|
+
npm: "@ai-sdk/amazon-bedrock/mantle",
|
|
12931
|
+
api: "https://bedrock-mantle.${AWS_REGION}.api.aws/openai/v1"
|
|
12932
|
+
},
|
|
12933
|
+
pricing: {
|
|
12934
|
+
inputPerM: 2.5,
|
|
12935
|
+
outputPerM: 15,
|
|
12936
|
+
cacheReadPerM: 0.25,
|
|
12937
|
+
cacheWritePerM: 3.125,
|
|
12938
|
+
currency: "USD",
|
|
12939
|
+
unit: "per_million_tokens"
|
|
12940
|
+
}
|
|
12941
|
+
},
|
|
12823
12942
|
{
|
|
12824
12943
|
name: "openai.gpt-oss-120b",
|
|
12825
12944
|
displayName: "gpt-oss-120b",
|
|
@@ -13635,6 +13754,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
13635
13754
|
cacheReadPerM: 0.2,
|
|
13636
13755
|
cacheWritePerM: 0.375,
|
|
13637
13756
|
reasoningPerM: 12,
|
|
13757
|
+
contextOver200kPerM: {
|
|
13758
|
+
inputPerM: 4,
|
|
13759
|
+
outputPerM: 18
|
|
13760
|
+
},
|
|
13638
13761
|
currency: "USD",
|
|
13639
13762
|
unit: "per_million_tokens"
|
|
13640
13763
|
}
|
|
@@ -13642,10 +13765,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
13642
13765
|
{
|
|
13643
13766
|
name: "~moonshotai/kimi-latest",
|
|
13644
13767
|
displayName: "MoonshotAI Kimi Latest",
|
|
13645
|
-
maxInputTokens:
|
|
13768
|
+
maxInputTokens: 1048576,
|
|
13646
13769
|
supportedFileTypes: ["image"],
|
|
13647
13770
|
reasoning: true,
|
|
13648
|
-
supportsTemperature:
|
|
13771
|
+
supportsTemperature: false,
|
|
13649
13772
|
supportsToolCall: true,
|
|
13650
13773
|
releaseDate: "2026-04-27",
|
|
13651
13774
|
modalities: {
|
|
@@ -13653,9 +13776,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
13653
13776
|
output: ["text"]
|
|
13654
13777
|
},
|
|
13655
13778
|
pricing: {
|
|
13656
|
-
inputPerM:
|
|
13657
|
-
outputPerM:
|
|
13658
|
-
cacheReadPerM: 0.
|
|
13779
|
+
inputPerM: 3,
|
|
13780
|
+
outputPerM: 15,
|
|
13781
|
+
cacheReadPerM: 0.3,
|
|
13659
13782
|
currency: "USD",
|
|
13660
13783
|
unit: "per_million_tokens"
|
|
13661
13784
|
}
|
|
@@ -14160,7 +14283,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14160
14283
|
reasoning: true,
|
|
14161
14284
|
supportsTemperature: false,
|
|
14162
14285
|
supportsToolCall: true,
|
|
14163
|
-
releaseDate: "2026-
|
|
14286
|
+
releaseDate: "2026-04-16",
|
|
14164
14287
|
modalities: {
|
|
14165
14288
|
input: ["text", "image", "pdf"],
|
|
14166
14289
|
output: ["text"]
|
|
@@ -14204,7 +14327,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14204
14327
|
reasoning: true,
|
|
14205
14328
|
supportsTemperature: false,
|
|
14206
14329
|
supportsToolCall: true,
|
|
14207
|
-
releaseDate: "2026-05-
|
|
14330
|
+
releaseDate: "2026-05-28",
|
|
14208
14331
|
modalities: {
|
|
14209
14332
|
input: ["text", "image", "pdf"],
|
|
14210
14333
|
output: ["text"]
|
|
@@ -14318,26 +14441,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
14318
14441
|
unit: "per_million_tokens"
|
|
14319
14442
|
}
|
|
14320
14443
|
},
|
|
14321
|
-
{
|
|
14322
|
-
name: "arcee-ai/coder-large",
|
|
14323
|
-
displayName: "Coder Large",
|
|
14324
|
-
maxInputTokens: 32768,
|
|
14325
|
-
supportedFileTypes: [],
|
|
14326
|
-
reasoning: false,
|
|
14327
|
-
supportsTemperature: true,
|
|
14328
|
-
supportsToolCall: false,
|
|
14329
|
-
releaseDate: "2025-05-05",
|
|
14330
|
-
modalities: {
|
|
14331
|
-
input: ["text"],
|
|
14332
|
-
output: ["text"]
|
|
14333
|
-
},
|
|
14334
|
-
pricing: {
|
|
14335
|
-
inputPerM: 0.5,
|
|
14336
|
-
outputPerM: 0.8,
|
|
14337
|
-
currency: "USD",
|
|
14338
|
-
unit: "per_million_tokens"
|
|
14339
|
-
}
|
|
14340
|
-
},
|
|
14341
14444
|
{
|
|
14342
14445
|
name: "arcee-ai/trinity-large-thinking",
|
|
14343
14446
|
displayName: "Trinity Large Thinking",
|
|
@@ -14359,26 +14462,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
14359
14462
|
unit: "per_million_tokens"
|
|
14360
14463
|
}
|
|
14361
14464
|
},
|
|
14362
|
-
{
|
|
14363
|
-
name: "arcee-ai/trinity-mini",
|
|
14364
|
-
displayName: "Trinity Mini",
|
|
14365
|
-
maxInputTokens: 131072,
|
|
14366
|
-
supportedFileTypes: [],
|
|
14367
|
-
reasoning: true,
|
|
14368
|
-
supportsTemperature: true,
|
|
14369
|
-
supportsToolCall: true,
|
|
14370
|
-
releaseDate: "2025-12-01",
|
|
14371
|
-
modalities: {
|
|
14372
|
-
input: ["text"],
|
|
14373
|
-
output: ["text"]
|
|
14374
|
-
},
|
|
14375
|
-
pricing: {
|
|
14376
|
-
inputPerM: 0.045,
|
|
14377
|
-
outputPerM: 0.15,
|
|
14378
|
-
currency: "USD",
|
|
14379
|
-
unit: "per_million_tokens"
|
|
14380
|
-
}
|
|
14381
|
-
},
|
|
14382
14465
|
{
|
|
14383
14466
|
name: "arcee-ai/virtuoso-large",
|
|
14384
14467
|
displayName: "Virtuoso Large",
|
|
@@ -14714,8 +14797,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14714
14797
|
output: ["text"]
|
|
14715
14798
|
},
|
|
14716
14799
|
pricing: {
|
|
14717
|
-
inputPerM: 0.
|
|
14718
|
-
outputPerM:
|
|
14800
|
+
inputPerM: 0.27,
|
|
14801
|
+
outputPerM: 1.12,
|
|
14719
14802
|
cacheReadPerM: 0.135,
|
|
14720
14803
|
currency: "USD",
|
|
14721
14804
|
unit: "per_million_tokens"
|
|
@@ -14735,8 +14818,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14735
14818
|
output: ["text"]
|
|
14736
14819
|
},
|
|
14737
14820
|
pricing: {
|
|
14738
|
-
inputPerM: 0.
|
|
14739
|
-
outputPerM: 0.
|
|
14821
|
+
inputPerM: 0.25,
|
|
14822
|
+
outputPerM: 0.95,
|
|
14740
14823
|
cacheReadPerM: 0.13,
|
|
14741
14824
|
currency: "USD",
|
|
14742
14825
|
unit: "per_million_tokens"
|
|
@@ -14806,7 +14889,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14806
14889
|
{
|
|
14807
14890
|
name: "deepseek/deepseek-v3.1-terminus",
|
|
14808
14891
|
displayName: "DeepSeek V3.1 Terminus",
|
|
14809
|
-
maxInputTokens:
|
|
14892
|
+
maxInputTokens: 131072,
|
|
14810
14893
|
supportedFileTypes: [],
|
|
14811
14894
|
reasoning: true,
|
|
14812
14895
|
supportsTemperature: true,
|
|
@@ -14818,8 +14901,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
14818
14901
|
},
|
|
14819
14902
|
pricing: {
|
|
14820
14903
|
inputPerM: 0.27,
|
|
14821
|
-
outputPerM:
|
|
14822
|
-
cacheReadPerM: 0.
|
|
14904
|
+
outputPerM: 1,
|
|
14905
|
+
cacheReadPerM: 0.135,
|
|
14823
14906
|
currency: "USD",
|
|
14824
14907
|
unit: "per_million_tokens"
|
|
14825
14908
|
}
|
|
@@ -14827,7 +14910,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
14827
14910
|
{
|
|
14828
14911
|
name: "deepseek/deepseek-v3.2",
|
|
14829
14912
|
displayName: "DeepSeek V3.2",
|
|
14830
|
-
maxInputTokens:
|
|
14913
|
+
maxInputTokens: 163840,
|
|
14831
14914
|
supportedFileTypes: [],
|
|
14832
14915
|
reasoning: true,
|
|
14833
14916
|
supportsTemperature: true,
|
|
@@ -14838,9 +14921,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
14838
14921
|
output: ["text"]
|
|
14839
14922
|
},
|
|
14840
14923
|
pricing: {
|
|
14841
|
-
inputPerM: 0.
|
|
14842
|
-
outputPerM: 0.
|
|
14843
|
-
cacheReadPerM: 0.
|
|
14924
|
+
inputPerM: 0.269,
|
|
14925
|
+
outputPerM: 0.4,
|
|
14926
|
+
cacheReadPerM: 0.1345,
|
|
14844
14927
|
currency: "USD",
|
|
14845
14928
|
unit: "per_million_tokens"
|
|
14846
14929
|
}
|
|
@@ -14883,9 +14966,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
14883
14966
|
},
|
|
14884
14967
|
supportsInterleaved: true,
|
|
14885
14968
|
pricing: {
|
|
14886
|
-
inputPerM: 0.
|
|
14887
|
-
outputPerM: 0.
|
|
14888
|
-
cacheReadPerM: 0.
|
|
14969
|
+
inputPerM: 0.098,
|
|
14970
|
+
outputPerM: 0.196,
|
|
14971
|
+
cacheReadPerM: 0.02,
|
|
14889
14972
|
currency: "USD",
|
|
14890
14973
|
unit: "per_million_tokens"
|
|
14891
14974
|
}
|
|
@@ -15081,16 +15164,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
15081
15164
|
},
|
|
15082
15165
|
{
|
|
15083
15166
|
name: "google/gemini-3-pro-image",
|
|
15084
|
-
displayName: "Nano Banana Pro
|
|
15167
|
+
displayName: "Nano Banana Pro",
|
|
15085
15168
|
maxInputTokens: 65536,
|
|
15086
15169
|
supportedFileTypes: ["image", "document"],
|
|
15087
15170
|
reasoning: true,
|
|
15088
15171
|
supportsTemperature: true,
|
|
15089
15172
|
supportsToolCall: true,
|
|
15090
|
-
releaseDate: "2026-
|
|
15173
|
+
releaseDate: "2026-05-28",
|
|
15091
15174
|
modalities: {
|
|
15092
|
-
input: ["
|
|
15093
|
-
output: ["
|
|
15175
|
+
input: ["text", "image"],
|
|
15176
|
+
output: ["text", "image"]
|
|
15094
15177
|
},
|
|
15095
15178
|
pricing: {
|
|
15096
15179
|
inputPerM: 2,
|
|
@@ -15127,16 +15210,16 @@ var MODELS_BY_PROVIDER = {
|
|
|
15127
15210
|
},
|
|
15128
15211
|
{
|
|
15129
15212
|
name: "google/gemini-3.1-flash-image",
|
|
15130
|
-
displayName: "Nano Banana 2
|
|
15213
|
+
displayName: "Nano Banana 2",
|
|
15131
15214
|
maxInputTokens: 131072,
|
|
15132
15215
|
supportedFileTypes: ["image", "document"],
|
|
15133
15216
|
reasoning: true,
|
|
15134
15217
|
supportsTemperature: true,
|
|
15135
15218
|
supportsToolCall: false,
|
|
15136
|
-
releaseDate: "2026-
|
|
15219
|
+
releaseDate: "2026-05-28",
|
|
15137
15220
|
modalities: {
|
|
15138
|
-
input: ["
|
|
15139
|
-
output: ["
|
|
15221
|
+
input: ["text", "image"],
|
|
15222
|
+
output: ["text", "image"]
|
|
15140
15223
|
},
|
|
15141
15224
|
pricing: {
|
|
15142
15225
|
inputPerM: 0.5,
|
|
@@ -15371,7 +15454,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15371
15454
|
},
|
|
15372
15455
|
pricing: {
|
|
15373
15456
|
inputPerM: 0.08,
|
|
15374
|
-
outputPerM: 0.
|
|
15457
|
+
outputPerM: 0.45,
|
|
15458
|
+
cacheReadPerM: 0.04,
|
|
15375
15459
|
currency: "USD",
|
|
15376
15460
|
unit: "per_million_tokens"
|
|
15377
15461
|
}
|
|
@@ -15430,8 +15514,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15430
15514
|
output: ["text"]
|
|
15431
15515
|
},
|
|
15432
15516
|
pricing: {
|
|
15433
|
-
inputPerM: 0.
|
|
15434
|
-
outputPerM: 0.
|
|
15517
|
+
inputPerM: 0.1,
|
|
15518
|
+
outputPerM: 0.3,
|
|
15435
15519
|
currency: "USD",
|
|
15436
15520
|
unit: "per_million_tokens"
|
|
15437
15521
|
}
|
|
@@ -15470,9 +15554,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
15470
15554
|
output: ["text"]
|
|
15471
15555
|
},
|
|
15472
15556
|
pricing: {
|
|
15473
|
-
inputPerM: 0.
|
|
15474
|
-
outputPerM: 0.
|
|
15475
|
-
cacheReadPerM: 0.
|
|
15557
|
+
inputPerM: 0.22,
|
|
15558
|
+
outputPerM: 0.55,
|
|
15559
|
+
cacheReadPerM: 0.12,
|
|
15476
15560
|
currency: "USD",
|
|
15477
15561
|
unit: "per_million_tokens"
|
|
15478
15562
|
}
|
|
@@ -15723,62 +15807,64 @@ var MODELS_BY_PROVIDER = {
|
|
|
15723
15807
|
}
|
|
15724
15808
|
},
|
|
15725
15809
|
{
|
|
15726
|
-
name: "kwaipilot/kat-coder-
|
|
15727
|
-
displayName: "KAT-Coder-
|
|
15810
|
+
name: "kwaipilot/kat-coder-air-v2.5",
|
|
15811
|
+
displayName: "KAT-Coder-Air V2.5",
|
|
15728
15812
|
maxInputTokens: 256e3,
|
|
15729
15813
|
supportedFileTypes: [],
|
|
15730
15814
|
reasoning: false,
|
|
15731
15815
|
supportsTemperature: true,
|
|
15732
15816
|
supportsToolCall: true,
|
|
15733
|
-
releaseDate: "2026-
|
|
15817
|
+
releaseDate: "2026-07-10",
|
|
15734
15818
|
modalities: {
|
|
15735
15819
|
input: ["text"],
|
|
15736
15820
|
output: ["text"]
|
|
15737
15821
|
},
|
|
15738
15822
|
pricing: {
|
|
15739
|
-
inputPerM: 0.
|
|
15740
|
-
outputPerM:
|
|
15741
|
-
cacheReadPerM: 0.
|
|
15823
|
+
inputPerM: 0.15,
|
|
15824
|
+
outputPerM: 0.6,
|
|
15825
|
+
cacheReadPerM: 0.03,
|
|
15742
15826
|
currency: "USD",
|
|
15743
15827
|
unit: "per_million_tokens"
|
|
15744
15828
|
}
|
|
15745
15829
|
},
|
|
15746
15830
|
{
|
|
15747
|
-
name: "
|
|
15748
|
-
displayName: "
|
|
15749
|
-
maxInputTokens:
|
|
15831
|
+
name: "kwaipilot/kat-coder-pro-v2",
|
|
15832
|
+
displayName: "KAT-Coder-Pro V2",
|
|
15833
|
+
maxInputTokens: 256e3,
|
|
15750
15834
|
supportedFileTypes: [],
|
|
15751
15835
|
reasoning: false,
|
|
15752
15836
|
supportsTemperature: true,
|
|
15753
|
-
supportsToolCall:
|
|
15754
|
-
releaseDate: "2026-
|
|
15837
|
+
supportsToolCall: true,
|
|
15838
|
+
releaseDate: "2026-03-27",
|
|
15755
15839
|
modalities: {
|
|
15756
15840
|
input: ["text"],
|
|
15757
15841
|
output: ["text"]
|
|
15758
15842
|
},
|
|
15759
15843
|
pricing: {
|
|
15760
|
-
inputPerM: 0,
|
|
15761
|
-
outputPerM:
|
|
15844
|
+
inputPerM: 0.3,
|
|
15845
|
+
outputPerM: 1.2,
|
|
15846
|
+
cacheReadPerM: 0.06,
|
|
15762
15847
|
currency: "USD",
|
|
15763
15848
|
unit: "per_million_tokens"
|
|
15764
15849
|
}
|
|
15765
15850
|
},
|
|
15766
15851
|
{
|
|
15767
|
-
name: "
|
|
15768
|
-
displayName: "
|
|
15769
|
-
maxInputTokens:
|
|
15852
|
+
name: "kwaipilot/kat-coder-pro-v2.5",
|
|
15853
|
+
displayName: "KAT-Coder-Pro V2.5",
|
|
15854
|
+
maxInputTokens: 256e3,
|
|
15770
15855
|
supportedFileTypes: [],
|
|
15771
|
-
reasoning:
|
|
15856
|
+
reasoning: false,
|
|
15772
15857
|
supportsTemperature: true,
|
|
15773
15858
|
supportsToolCall: true,
|
|
15774
|
-
releaseDate: "2026-
|
|
15859
|
+
releaseDate: "2026-07-10",
|
|
15775
15860
|
modalities: {
|
|
15776
15861
|
input: ["text"],
|
|
15777
15862
|
output: ["text"]
|
|
15778
15863
|
},
|
|
15779
15864
|
pricing: {
|
|
15780
|
-
inputPerM: 0,
|
|
15781
|
-
outputPerM:
|
|
15865
|
+
inputPerM: 0.74,
|
|
15866
|
+
outputPerM: 2.96,
|
|
15867
|
+
cacheReadPerM: 0.15,
|
|
15782
15868
|
currency: "USD",
|
|
15783
15869
|
unit: "per_million_tokens"
|
|
15784
15870
|
}
|
|
@@ -15803,26 +15889,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
15803
15889
|
unit: "per_million_tokens"
|
|
15804
15890
|
}
|
|
15805
15891
|
},
|
|
15806
|
-
{
|
|
15807
|
-
name: "meta-llama/llama-3-8b-instruct",
|
|
15808
|
-
displayName: "Llama 3 8B Instruct",
|
|
15809
|
-
maxInputTokens: 8192,
|
|
15810
|
-
supportedFileTypes: [],
|
|
15811
|
-
reasoning: false,
|
|
15812
|
-
supportsTemperature: true,
|
|
15813
|
-
supportsToolCall: false,
|
|
15814
|
-
releaseDate: "2024-04-18",
|
|
15815
|
-
modalities: {
|
|
15816
|
-
input: ["text"],
|
|
15817
|
-
output: ["text"]
|
|
15818
|
-
},
|
|
15819
|
-
pricing: {
|
|
15820
|
-
inputPerM: 0.14,
|
|
15821
|
-
outputPerM: 0.14,
|
|
15822
|
-
currency: "USD",
|
|
15823
|
-
unit: "per_million_tokens"
|
|
15824
|
-
}
|
|
15825
|
-
},
|
|
15826
15892
|
{
|
|
15827
15893
|
name: "meta-llama/llama-3.1-70b-instruct",
|
|
15828
15894
|
displayName: "Llama 3.1 70B Instruct",
|
|
@@ -15857,8 +15923,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
15857
15923
|
output: ["text"]
|
|
15858
15924
|
},
|
|
15859
15925
|
pricing: {
|
|
15860
|
-
inputPerM: 0.
|
|
15861
|
-
outputPerM: 0.
|
|
15926
|
+
inputPerM: 0.05,
|
|
15927
|
+
outputPerM: 0.08,
|
|
15928
|
+
cacheReadPerM: 0.025,
|
|
15862
15929
|
currency: "USD",
|
|
15863
15930
|
unit: "per_million_tokens"
|
|
15864
15931
|
}
|
|
@@ -15957,8 +16024,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15957
16024
|
output: ["text"]
|
|
15958
16025
|
},
|
|
15959
16026
|
pricing: {
|
|
15960
|
-
inputPerM: 0.
|
|
15961
|
-
outputPerM: 0.
|
|
16027
|
+
inputPerM: 0.13,
|
|
16028
|
+
outputPerM: 0.4,
|
|
15962
16029
|
currency: "USD",
|
|
15963
16030
|
unit: "per_million_tokens"
|
|
15964
16031
|
}
|
|
@@ -15997,8 +16064,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
15997
16064
|
output: ["text"]
|
|
15998
16065
|
},
|
|
15999
16066
|
pricing: {
|
|
16000
|
-
inputPerM: 0.
|
|
16001
|
-
outputPerM: 0.
|
|
16067
|
+
inputPerM: 0.2,
|
|
16068
|
+
outputPerM: 0.8,
|
|
16002
16069
|
currency: "USD",
|
|
16003
16070
|
unit: "per_million_tokens"
|
|
16004
16071
|
}
|
|
@@ -16043,6 +16110,27 @@ var MODELS_BY_PROVIDER = {
|
|
|
16043
16110
|
unit: "per_million_tokens"
|
|
16044
16111
|
}
|
|
16045
16112
|
},
|
|
16113
|
+
{
|
|
16114
|
+
name: "meta/muse-spark-1.1",
|
|
16115
|
+
displayName: "Muse Spark 1.1",
|
|
16116
|
+
maxInputTokens: 1048576,
|
|
16117
|
+
supportedFileTypes: ["pdf", "image", "audio", "video"],
|
|
16118
|
+
reasoning: true,
|
|
16119
|
+
supportsTemperature: true,
|
|
16120
|
+
supportsToolCall: true,
|
|
16121
|
+
releaseDate: "2026-04-08",
|
|
16122
|
+
modalities: {
|
|
16123
|
+
input: ["text", "image", "video", "pdf", "audio"],
|
|
16124
|
+
output: ["text"]
|
|
16125
|
+
},
|
|
16126
|
+
pricing: {
|
|
16127
|
+
inputPerM: 1.25,
|
|
16128
|
+
outputPerM: 4.25,
|
|
16129
|
+
cacheReadPerM: 0.15,
|
|
16130
|
+
currency: "USD",
|
|
16131
|
+
unit: "per_million_tokens"
|
|
16132
|
+
}
|
|
16133
|
+
},
|
|
16046
16134
|
{
|
|
16047
16135
|
name: "microsoft/phi-4",
|
|
16048
16136
|
displayName: "Phi 4",
|
|
@@ -16117,7 +16205,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16117
16205
|
output: ["text"]
|
|
16118
16206
|
},
|
|
16119
16207
|
pricing: {
|
|
16120
|
-
inputPerM: 0.
|
|
16208
|
+
inputPerM: 0.55,
|
|
16121
16209
|
outputPerM: 2.2,
|
|
16122
16210
|
currency: "USD",
|
|
16123
16211
|
unit: "per_million_tokens"
|
|
@@ -16232,8 +16320,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16232
16320
|
output: ["text"]
|
|
16233
16321
|
},
|
|
16234
16322
|
pricing: {
|
|
16235
|
-
inputPerM: 0.
|
|
16236
|
-
outputPerM:
|
|
16323
|
+
inputPerM: 0.3,
|
|
16324
|
+
outputPerM: 1.2,
|
|
16325
|
+
cacheReadPerM: 0.06,
|
|
16237
16326
|
currency: "USD",
|
|
16238
16327
|
unit: "per_million_tokens"
|
|
16239
16328
|
}
|
|
@@ -16505,7 +16594,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16505
16594
|
},
|
|
16506
16595
|
pricing: {
|
|
16507
16596
|
inputPerM: 0.02,
|
|
16508
|
-
outputPerM: 0.
|
|
16597
|
+
outputPerM: 0.04,
|
|
16509
16598
|
currency: "USD",
|
|
16510
16599
|
unit: "per_million_tokens"
|
|
16511
16600
|
}
|
|
@@ -16595,7 +16684,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
16595
16684
|
{
|
|
16596
16685
|
name: "mistralai/mistral-small-3.2-24b-instruct",
|
|
16597
16686
|
displayName: "Mistral Small 3.2 24B",
|
|
16598
|
-
maxInputTokens:
|
|
16687
|
+
maxInputTokens: 131072,
|
|
16599
16688
|
supportedFileTypes: ["image"],
|
|
16600
16689
|
reasoning: false,
|
|
16601
16690
|
supportsTemperature: true,
|
|
@@ -16606,8 +16695,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16606
16695
|
output: ["text"]
|
|
16607
16696
|
},
|
|
16608
16697
|
pricing: {
|
|
16609
|
-
inputPerM: 0.
|
|
16610
|
-
outputPerM: 0.
|
|
16698
|
+
inputPerM: 0.1,
|
|
16699
|
+
outputPerM: 0.3,
|
|
16700
|
+
cacheReadPerM: 0.01,
|
|
16611
16701
|
currency: "USD",
|
|
16612
16702
|
unit: "per_million_tokens"
|
|
16613
16703
|
}
|
|
@@ -16714,7 +16804,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
16714
16804
|
pricing: {
|
|
16715
16805
|
inputPerM: 0.6,
|
|
16716
16806
|
outputPerM: 2.5,
|
|
16717
|
-
cacheReadPerM: 0.15,
|
|
16718
16807
|
currency: "USD",
|
|
16719
16808
|
unit: "per_million_tokens"
|
|
16720
16809
|
}
|
|
@@ -16737,9 +16826,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16737
16826
|
},
|
|
16738
16827
|
supportsInterleaved: true,
|
|
16739
16828
|
pricing: {
|
|
16740
|
-
inputPerM: 0.
|
|
16741
|
-
outputPerM: 2.
|
|
16742
|
-
cacheReadPerM: 0.
|
|
16829
|
+
inputPerM: 0.57,
|
|
16830
|
+
outputPerM: 2.85,
|
|
16831
|
+
cacheReadPerM: 0.095,
|
|
16743
16832
|
currency: "USD",
|
|
16744
16833
|
unit: "per_million_tokens"
|
|
16745
16834
|
}
|
|
@@ -16762,9 +16851,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
16762
16851
|
},
|
|
16763
16852
|
supportsInterleaved: true,
|
|
16764
16853
|
pricing: {
|
|
16765
|
-
inputPerM: 0.
|
|
16766
|
-
outputPerM:
|
|
16767
|
-
cacheReadPerM: 0.
|
|
16854
|
+
inputPerM: 0.95,
|
|
16855
|
+
outputPerM: 4,
|
|
16856
|
+
cacheReadPerM: 0.16,
|
|
16768
16857
|
currency: "USD",
|
|
16769
16858
|
unit: "per_million_tokens"
|
|
16770
16859
|
}
|
|
@@ -16783,9 +16872,30 @@ var MODELS_BY_PROVIDER = {
|
|
|
16783
16872
|
output: ["text"]
|
|
16784
16873
|
},
|
|
16785
16874
|
pricing: {
|
|
16786
|
-
inputPerM: 0.
|
|
16787
|
-
outputPerM: 3.
|
|
16788
|
-
cacheReadPerM: 0.
|
|
16875
|
+
inputPerM: 0.75,
|
|
16876
|
+
outputPerM: 3.5,
|
|
16877
|
+
cacheReadPerM: 0.16,
|
|
16878
|
+
currency: "USD",
|
|
16879
|
+
unit: "per_million_tokens"
|
|
16880
|
+
}
|
|
16881
|
+
},
|
|
16882
|
+
{
|
|
16883
|
+
name: "moonshotai/kimi-k3",
|
|
16884
|
+
displayName: "Kimi K3",
|
|
16885
|
+
maxInputTokens: 1048576,
|
|
16886
|
+
supportedFileTypes: ["image"],
|
|
16887
|
+
reasoning: true,
|
|
16888
|
+
supportsTemperature: false,
|
|
16889
|
+
supportsToolCall: true,
|
|
16890
|
+
releaseDate: "2026-07-16",
|
|
16891
|
+
modalities: {
|
|
16892
|
+
input: ["text", "image"],
|
|
16893
|
+
output: ["text"]
|
|
16894
|
+
},
|
|
16895
|
+
pricing: {
|
|
16896
|
+
inputPerM: 3,
|
|
16897
|
+
outputPerM: 15,
|
|
16898
|
+
cacheReadPerM: 0.3,
|
|
16789
16899
|
currency: "USD",
|
|
16790
16900
|
unit: "per_million_tokens"
|
|
16791
16901
|
}
|
|
@@ -17066,8 +17176,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
17066
17176
|
output: ["text"]
|
|
17067
17177
|
},
|
|
17068
17178
|
pricing: {
|
|
17069
|
-
inputPerM: 0.
|
|
17070
|
-
outputPerM: 0.
|
|
17179
|
+
inputPerM: 0.21,
|
|
17180
|
+
outputPerM: 0.455,
|
|
17181
|
+
cacheReadPerM: 0.06,
|
|
17071
17182
|
currency: "USD",
|
|
17072
17183
|
unit: "per_million_tokens"
|
|
17073
17184
|
}
|
|
@@ -17106,9 +17217,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
17106
17217
|
output: ["text"]
|
|
17107
17218
|
},
|
|
17108
17219
|
pricing: {
|
|
17109
|
-
inputPerM: 0.
|
|
17110
|
-
outputPerM:
|
|
17111
|
-
cacheReadPerM: 0.
|
|
17220
|
+
inputPerM: 0.6,
|
|
17221
|
+
outputPerM: 3.6,
|
|
17222
|
+
cacheReadPerM: 0.2,
|
|
17112
17223
|
currency: "USD",
|
|
17113
17224
|
unit: "per_million_tokens"
|
|
17114
17225
|
}
|
|
@@ -17412,6 +17523,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17412
17523
|
pricing: {
|
|
17413
17524
|
inputPerM: 2.5,
|
|
17414
17525
|
outputPerM: 10,
|
|
17526
|
+
cacheReadPerM: 1.25,
|
|
17415
17527
|
currency: "USD",
|
|
17416
17528
|
unit: "per_million_tokens"
|
|
17417
17529
|
}
|
|
@@ -17702,7 +17814,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17702
17814
|
pricing: {
|
|
17703
17815
|
inputPerM: 0.05,
|
|
17704
17816
|
outputPerM: 0.4,
|
|
17705
|
-
cacheReadPerM:
|
|
17817
|
+
cacheReadPerM: 5e-3,
|
|
17706
17818
|
currency: "USD",
|
|
17707
17819
|
unit: "per_million_tokens"
|
|
17708
17820
|
}
|
|
@@ -17743,7 +17855,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17743
17855
|
pricing: {
|
|
17744
17856
|
inputPerM: 1.25,
|
|
17745
17857
|
outputPerM: 10,
|
|
17746
|
-
cacheReadPerM: 0.
|
|
17858
|
+
cacheReadPerM: 0.125,
|
|
17747
17859
|
currency: "USD",
|
|
17748
17860
|
unit: "per_million_tokens"
|
|
17749
17861
|
}
|
|
@@ -17764,7 +17876,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17764
17876
|
pricing: {
|
|
17765
17877
|
inputPerM: 1.25,
|
|
17766
17878
|
outputPerM: 10,
|
|
17767
|
-
cacheReadPerM: 0.
|
|
17879
|
+
cacheReadPerM: 0.125,
|
|
17768
17880
|
currency: "USD",
|
|
17769
17881
|
unit: "per_million_tokens"
|
|
17770
17882
|
}
|
|
@@ -17785,7 +17897,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
17785
17897
|
pricing: {
|
|
17786
17898
|
inputPerM: 1.25,
|
|
17787
17899
|
outputPerM: 10,
|
|
17788
|
-
cacheReadPerM: 0.
|
|
17900
|
+
cacheReadPerM: 0.125,
|
|
17789
17901
|
currency: "USD",
|
|
17790
17902
|
unit: "per_million_tokens"
|
|
17791
17903
|
}
|
|
@@ -18309,28 +18421,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
18309
18421
|
output: ["text"]
|
|
18310
18422
|
},
|
|
18311
18423
|
pricing: {
|
|
18312
|
-
inputPerM: 0.
|
|
18313
|
-
outputPerM: 0.
|
|
18314
|
-
currency: "USD",
|
|
18315
|
-
unit: "per_million_tokens"
|
|
18316
|
-
}
|
|
18317
|
-
},
|
|
18318
|
-
{
|
|
18319
|
-
name: "openai/gpt-oss-120b:free",
|
|
18320
|
-
displayName: "gpt-oss-120b (free)",
|
|
18321
|
-
maxInputTokens: 131072,
|
|
18322
|
-
supportedFileTypes: [],
|
|
18323
|
-
reasoning: true,
|
|
18324
|
-
supportsTemperature: true,
|
|
18325
|
-
supportsToolCall: true,
|
|
18326
|
-
releaseDate: "2025-08-05",
|
|
18327
|
-
modalities: {
|
|
18328
|
-
input: ["text"],
|
|
18329
|
-
output: ["text"]
|
|
18330
|
-
},
|
|
18331
|
-
pricing: {
|
|
18332
|
-
inputPerM: 0,
|
|
18333
|
-
outputPerM: 0,
|
|
18424
|
+
inputPerM: 0.037,
|
|
18425
|
+
outputPerM: 0.17,
|
|
18334
18426
|
currency: "USD",
|
|
18335
18427
|
unit: "per_million_tokens"
|
|
18336
18428
|
}
|
|
@@ -18349,8 +18441,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
18349
18441
|
output: ["text"]
|
|
18350
18442
|
},
|
|
18351
18443
|
pricing: {
|
|
18352
|
-
inputPerM: 0.
|
|
18353
|
-
outputPerM: 0.
|
|
18444
|
+
inputPerM: 0.03,
|
|
18445
|
+
outputPerM: 0.13,
|
|
18446
|
+
cacheReadPerM: 0.03,
|
|
18354
18447
|
currency: "USD",
|
|
18355
18448
|
unit: "per_million_tokens"
|
|
18356
18449
|
}
|
|
@@ -19086,7 +19179,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19086
19179
|
},
|
|
19087
19180
|
pricing: {
|
|
19088
19181
|
inputPerM: 0.09,
|
|
19089
|
-
outputPerM: 0.
|
|
19182
|
+
outputPerM: 0.55,
|
|
19090
19183
|
currency: "USD",
|
|
19091
19184
|
unit: "per_million_tokens"
|
|
19092
19185
|
}
|
|
@@ -19134,7 +19227,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19134
19227
|
{
|
|
19135
19228
|
name: "qwen/qwen3-30b-a3b-instruct-2507",
|
|
19136
19229
|
displayName: "Qwen3 30B A3B Instruct 2507",
|
|
19137
|
-
maxInputTokens:
|
|
19230
|
+
maxInputTokens: 262144,
|
|
19138
19231
|
supportedFileTypes: [],
|
|
19139
19232
|
reasoning: false,
|
|
19140
19233
|
supportsTemperature: true,
|
|
@@ -19145,8 +19238,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
19145
19238
|
output: ["text"]
|
|
19146
19239
|
},
|
|
19147
19240
|
pricing: {
|
|
19148
|
-
inputPerM: 0.
|
|
19149
|
-
outputPerM: 0.
|
|
19241
|
+
inputPerM: 0.1,
|
|
19242
|
+
outputPerM: 0.3,
|
|
19150
19243
|
currency: "USD",
|
|
19151
19244
|
unit: "per_million_tokens"
|
|
19152
19245
|
}
|
|
@@ -19225,8 +19318,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19225
19318
|
output: ["text"]
|
|
19226
19319
|
},
|
|
19227
19320
|
pricing: {
|
|
19228
|
-
inputPerM: 0.
|
|
19229
|
-
outputPerM: 1
|
|
19321
|
+
inputPerM: 0.3,
|
|
19322
|
+
outputPerM: 1,
|
|
19323
|
+
cacheReadPerM: 0.1,
|
|
19230
19324
|
currency: "USD",
|
|
19231
19325
|
unit: "per_million_tokens"
|
|
19232
19326
|
}
|
|
@@ -19392,8 +19486,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19392
19486
|
output: ["text"]
|
|
19393
19487
|
},
|
|
19394
19488
|
pricing: {
|
|
19395
|
-
inputPerM: 0.
|
|
19489
|
+
inputPerM: 0.1,
|
|
19396
19490
|
outputPerM: 1.1,
|
|
19491
|
+
cacheReadPerM: 0.07,
|
|
19397
19492
|
currency: "USD",
|
|
19398
19493
|
unit: "per_million_tokens"
|
|
19399
19494
|
}
|
|
@@ -19441,7 +19536,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19441
19536
|
{
|
|
19442
19537
|
name: "qwen/qwen3-vl-235b-a22b-instruct",
|
|
19443
19538
|
displayName: "Qwen3 VL 235B A22B Instruct",
|
|
19444
|
-
maxInputTokens:
|
|
19539
|
+
maxInputTokens: 131072,
|
|
19445
19540
|
supportedFileTypes: ["image"],
|
|
19446
19541
|
reasoning: false,
|
|
19447
19542
|
supportsTemperature: true,
|
|
@@ -19452,9 +19547,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19452
19547
|
output: ["text"]
|
|
19453
19548
|
},
|
|
19454
19549
|
pricing: {
|
|
19455
|
-
inputPerM: 0.
|
|
19456
|
-
outputPerM:
|
|
19457
|
-
cacheReadPerM: 0.
|
|
19550
|
+
inputPerM: 0.21,
|
|
19551
|
+
outputPerM: 1.9,
|
|
19552
|
+
cacheReadPerM: 0.1,
|
|
19458
19553
|
currency: "USD",
|
|
19459
19554
|
unit: "per_million_tokens"
|
|
19460
19555
|
}
|
|
@@ -19635,7 +19730,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
19635
19730
|
pricing: {
|
|
19636
19731
|
inputPerM: 0.14,
|
|
19637
19732
|
outputPerM: 1,
|
|
19638
|
-
cacheReadPerM: 0.05,
|
|
19639
19733
|
currency: "USD",
|
|
19640
19734
|
unit: "per_million_tokens"
|
|
19641
19735
|
}
|
|
@@ -19643,7 +19737,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
19643
19737
|
{
|
|
19644
19738
|
name: "qwen/qwen3.5-397b-a17b",
|
|
19645
19739
|
displayName: "Qwen3.5 397B-A17B",
|
|
19646
|
-
maxInputTokens:
|
|
19740
|
+
maxInputTokens: 262144,
|
|
19647
19741
|
supportedFileTypes: ["image", "video"],
|
|
19648
19742
|
reasoning: true,
|
|
19649
19743
|
supportsTemperature: true,
|
|
@@ -19654,9 +19748,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
19654
19748
|
output: ["text"]
|
|
19655
19749
|
},
|
|
19656
19750
|
pricing: {
|
|
19657
|
-
inputPerM: 0.
|
|
19658
|
-
outputPerM:
|
|
19659
|
-
cacheReadPerM: 0.
|
|
19751
|
+
inputPerM: 0.45,
|
|
19752
|
+
outputPerM: 3,
|
|
19753
|
+
cacheReadPerM: 0.225,
|
|
19660
19754
|
currency: "USD",
|
|
19661
19755
|
unit: "per_million_tokens"
|
|
19662
19756
|
}
|
|
@@ -19756,9 +19850,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
19756
19850
|
output: ["text"]
|
|
19757
19851
|
},
|
|
19758
19852
|
pricing: {
|
|
19759
|
-
inputPerM: 0.
|
|
19760
|
-
outputPerM: 2.
|
|
19761
|
-
cacheReadPerM: 0.15,
|
|
19853
|
+
inputPerM: 0.45,
|
|
19854
|
+
outputPerM: 2.7,
|
|
19762
19855
|
currency: "USD",
|
|
19763
19856
|
unit: "per_million_tokens"
|
|
19764
19857
|
}
|
|
@@ -19860,10 +19953,10 @@ var MODELS_BY_PROVIDER = {
|
|
|
19860
19953
|
output: ["text"]
|
|
19861
19954
|
},
|
|
19862
19955
|
pricing: {
|
|
19863
|
-
inputPerM: 1.
|
|
19864
|
-
outputPerM:
|
|
19865
|
-
cacheReadPerM: 0.
|
|
19866
|
-
cacheWritePerM: 1.
|
|
19956
|
+
inputPerM: 1.475,
|
|
19957
|
+
outputPerM: 4.425,
|
|
19958
|
+
cacheReadPerM: 0.295,
|
|
19959
|
+
cacheWritePerM: 1.84375,
|
|
19867
19960
|
currency: "USD",
|
|
19868
19961
|
unit: "per_million_tokens"
|
|
19869
19962
|
}
|
|
@@ -20011,26 +20104,6 @@ var MODELS_BY_PROVIDER = {
|
|
|
20011
20104
|
unit: "per_million_tokens"
|
|
20012
20105
|
}
|
|
20013
20106
|
},
|
|
20014
|
-
{
|
|
20015
|
-
name: "sao10k/l3.1-70b-hanami-x1",
|
|
20016
|
-
displayName: "Llama 3.1 70B Hanami x1",
|
|
20017
|
-
maxInputTokens: 16e3,
|
|
20018
|
-
supportedFileTypes: [],
|
|
20019
|
-
reasoning: false,
|
|
20020
|
-
supportsTemperature: true,
|
|
20021
|
-
supportsToolCall: false,
|
|
20022
|
-
releaseDate: "2025-01-08",
|
|
20023
|
-
modalities: {
|
|
20024
|
-
input: ["text"],
|
|
20025
|
-
output: ["text"]
|
|
20026
|
-
},
|
|
20027
|
-
pricing: {
|
|
20028
|
-
inputPerM: 3,
|
|
20029
|
-
outputPerM: 3,
|
|
20030
|
-
currency: "USD",
|
|
20031
|
-
unit: "per_million_tokens"
|
|
20032
|
-
}
|
|
20033
|
-
},
|
|
20034
20107
|
{
|
|
20035
20108
|
name: "sao10k/l3.1-euryale-70b",
|
|
20036
20109
|
displayName: "Llama 3.1 Euryale 70B v2.2",
|
|
@@ -20146,9 +20219,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20146
20219
|
output: ["text"]
|
|
20147
20220
|
},
|
|
20148
20221
|
pricing: {
|
|
20149
|
-
inputPerM: 0.
|
|
20150
|
-
outputPerM: 0.
|
|
20151
|
-
cacheReadPerM: 0.
|
|
20222
|
+
inputPerM: 0.2,
|
|
20223
|
+
outputPerM: 0.8,
|
|
20224
|
+
cacheReadPerM: 0.05,
|
|
20152
20225
|
currency: "USD",
|
|
20153
20226
|
unit: "per_million_tokens"
|
|
20154
20227
|
}
|
|
@@ -20468,9 +20541,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20468
20541
|
},
|
|
20469
20542
|
supportsInterleaved: true,
|
|
20470
20543
|
pricing: {
|
|
20471
|
-
inputPerM: 0.
|
|
20544
|
+
inputPerM: 0.14,
|
|
20472
20545
|
outputPerM: 0.28,
|
|
20473
|
-
cacheReadPerM:
|
|
20546
|
+
cacheReadPerM: 28e-4,
|
|
20474
20547
|
currency: "USD",
|
|
20475
20548
|
unit: "per_million_tokens"
|
|
20476
20549
|
}
|
|
@@ -20577,9 +20650,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20577
20650
|
output: ["text"]
|
|
20578
20651
|
},
|
|
20579
20652
|
pricing: {
|
|
20580
|
-
inputPerM: 0.
|
|
20581
|
-
outputPerM:
|
|
20582
|
-
cacheReadPerM: 0.
|
|
20653
|
+
inputPerM: 0.5,
|
|
20654
|
+
outputPerM: 2,
|
|
20655
|
+
cacheReadPerM: 0.1,
|
|
20583
20656
|
currency: "USD",
|
|
20584
20657
|
unit: "per_million_tokens"
|
|
20585
20658
|
}
|
|
@@ -20633,7 +20706,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
20633
20706
|
{
|
|
20634
20707
|
name: "z-ai/glm-4.7-flash",
|
|
20635
20708
|
displayName: "GLM-4.7-Flash",
|
|
20636
|
-
maxInputTokens:
|
|
20709
|
+
maxInputTokens: 2e5,
|
|
20637
20710
|
supportedFileTypes: [],
|
|
20638
20711
|
reasoning: true,
|
|
20639
20712
|
supportsTemperature: true,
|
|
@@ -20648,9 +20721,8 @@ var MODELS_BY_PROVIDER = {
|
|
|
20648
20721
|
},
|
|
20649
20722
|
supportsInterleaved: true,
|
|
20650
20723
|
pricing: {
|
|
20651
|
-
inputPerM: 0.
|
|
20724
|
+
inputPerM: 0.0605,
|
|
20652
20725
|
outputPerM: 0.4,
|
|
20653
|
-
cacheReadPerM: 0.01,
|
|
20654
20726
|
currency: "USD",
|
|
20655
20727
|
unit: "per_million_tokens"
|
|
20656
20728
|
}
|
|
@@ -20673,9 +20745,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20673
20745
|
},
|
|
20674
20746
|
supportsInterleaved: true,
|
|
20675
20747
|
pricing: {
|
|
20676
|
-
inputPerM: 0.
|
|
20677
|
-
outputPerM:
|
|
20678
|
-
cacheReadPerM: 0.
|
|
20748
|
+
inputPerM: 0.95,
|
|
20749
|
+
outputPerM: 3.15,
|
|
20750
|
+
cacheReadPerM: 0.19,
|
|
20679
20751
|
currency: "USD",
|
|
20680
20752
|
unit: "per_million_tokens"
|
|
20681
20753
|
}
|
|
@@ -20683,7 +20755,7 @@ var MODELS_BY_PROVIDER = {
|
|
|
20683
20755
|
{
|
|
20684
20756
|
name: "z-ai/glm-5-turbo",
|
|
20685
20757
|
displayName: "GLM-5-Turbo",
|
|
20686
|
-
maxInputTokens:
|
|
20758
|
+
maxInputTokens: 202752,
|
|
20687
20759
|
supportedFileTypes: [],
|
|
20688
20760
|
reasoning: true,
|
|
20689
20761
|
supportsTemperature: true,
|
|
@@ -20748,9 +20820,9 @@ var MODELS_BY_PROVIDER = {
|
|
|
20748
20820
|
},
|
|
20749
20821
|
supportsInterleaved: true,
|
|
20750
20822
|
pricing: {
|
|
20751
|
-
inputPerM: 0.
|
|
20752
|
-
outputPerM:
|
|
20753
|
-
cacheReadPerM: 0.
|
|
20823
|
+
inputPerM: 0.9338,
|
|
20824
|
+
outputPerM: 2.9348,
|
|
20825
|
+
cacheReadPerM: 0.17342,
|
|
20754
20826
|
currency: "USD",
|
|
20755
20827
|
unit: "per_million_tokens"
|
|
20756
20828
|
}
|
|
@@ -20881,6 +20953,31 @@ function unknownModel(provider, model) {
|
|
|
20881
20953
|
function modelProviderUnknown(model) {
|
|
20882
20954
|
return new LlmCatalogError("MODEL_UNKNOWN", `Could not infer provider for model '${model}'`);
|
|
20883
20955
|
}
|
|
20956
|
+
var MODEL_PRICING_FIELDS = [
|
|
20957
|
+
"inputPerM",
|
|
20958
|
+
"outputPerM",
|
|
20959
|
+
"cacheReadPerM",
|
|
20960
|
+
"cacheWritePerM",
|
|
20961
|
+
"reasoningPerM",
|
|
20962
|
+
"inputAudioPerM",
|
|
20963
|
+
"outputAudioPerM"
|
|
20964
|
+
];
|
|
20965
|
+
var LONG_CONTEXT_PRICING_FIELDS = [
|
|
20966
|
+
"inputTokensAbove",
|
|
20967
|
+
"inputPerM",
|
|
20968
|
+
"outputPerM",
|
|
20969
|
+
"cacheReadPerM",
|
|
20970
|
+
"cacheWritePerM"
|
|
20971
|
+
];
|
|
20972
|
+
var MODEL_BOOLEAN_FIELDS = [
|
|
20973
|
+
"default",
|
|
20974
|
+
"reasoning",
|
|
20975
|
+
"supportsTemperature",
|
|
20976
|
+
"supportsInterleaved",
|
|
20977
|
+
"supportsToolCall"
|
|
20978
|
+
];
|
|
20979
|
+
var MODEL_STRING_FIELDS = ["displayName", "releaseDate", "status"];
|
|
20980
|
+
var MODEL_MODALITIES = ["text", "audio", "image", "video", "pdf"];
|
|
20884
20981
|
function getNormalizedModelIdForLookup(model) {
|
|
20885
20982
|
const stripped = stripBedrockRegionPrefix(model);
|
|
20886
20983
|
return stripped.toLowerCase();
|
|
@@ -21108,6 +21205,302 @@ var LLM_REGISTRY = {
|
|
|
21108
21205
|
supportsAllRegistryModels: true
|
|
21109
21206
|
}
|
|
21110
21207
|
};
|
|
21208
|
+
var ModelRegistry = class {
|
|
21209
|
+
#providers;
|
|
21210
|
+
constructor(providers) {
|
|
21211
|
+
validateRegistryProviders(providers);
|
|
21212
|
+
this.#providers = cloneRegistryProviders(providers);
|
|
21213
|
+
}
|
|
21214
|
+
/**
|
|
21215
|
+
* Replaces the active provider snapshot after validating and cloning it.
|
|
21216
|
+
*
|
|
21217
|
+
* Hosts that refresh the bundled registry can update the shared default instance without
|
|
21218
|
+
* exposing mutable provider records to consumers that already hold a ModelRegistry reference.
|
|
21219
|
+
*/
|
|
21220
|
+
replaceProviders(providers) {
|
|
21221
|
+
validateRegistryProviders(providers);
|
|
21222
|
+
this.#providers = cloneRegistryProviders(providers);
|
|
21223
|
+
}
|
|
21224
|
+
getProvider(provider) {
|
|
21225
|
+
return cloneProviderInfo(this.#providers[provider]);
|
|
21226
|
+
}
|
|
21227
|
+
getModel(provider, model) {
|
|
21228
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21229
|
+
return modelInfo === null ? null : cloneModelInfo(modelInfo);
|
|
21230
|
+
}
|
|
21231
|
+
getModelCapabilities(provider, model) {
|
|
21232
|
+
const modelInfo = this.getModel(provider, model);
|
|
21233
|
+
if (modelInfo === null) return null;
|
|
21234
|
+
return {
|
|
21235
|
+
maxInputTokens: modelInfo.maxInputTokens,
|
|
21236
|
+
reasoning: modelInfo.reasoning === true,
|
|
21237
|
+
supportedFileTypes: [...modelInfo.supportedFileTypes],
|
|
21238
|
+
supportsInterleaved: modelInfo.supportsInterleaved === true,
|
|
21239
|
+
supportsTemperature: modelInfo.supportsTemperature === true,
|
|
21240
|
+
supportsToolCall: modelInfo.supportsToolCall === true,
|
|
21241
|
+
...modelInfo.modalities ? {
|
|
21242
|
+
modalities: {
|
|
21243
|
+
input: [...modelInfo.modalities.input],
|
|
21244
|
+
output: [...modelInfo.modalities.output]
|
|
21245
|
+
}
|
|
21246
|
+
} : {}
|
|
21247
|
+
};
|
|
21248
|
+
}
|
|
21249
|
+
getSupportedModels(provider) {
|
|
21250
|
+
return this.#providers[provider].models.map((model) => model.name);
|
|
21251
|
+
}
|
|
21252
|
+
getDefaultModelForProvider(provider) {
|
|
21253
|
+
const models = this.#providers[provider].models;
|
|
21254
|
+
const explicit = models.find((model) => model.default)?.name;
|
|
21255
|
+
if (explicit) return explicit;
|
|
21256
|
+
if (models.length === 0) return null;
|
|
21257
|
+
return [...models].sort((left, right) => left.name.localeCompare(right.name))[0]?.name ?? null;
|
|
21258
|
+
}
|
|
21259
|
+
getMaxInputTokensForModel(provider, model, logger) {
|
|
21260
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21261
|
+
if (!modelInfo) {
|
|
21262
|
+
const supportedModels = this.getSupportedModels(provider).join(", ");
|
|
21263
|
+
logger?.error(
|
|
21264
|
+
`Model '${model}' not found for provider '${provider}' in LLM registry. Supported models: ${supportedModels}`
|
|
21265
|
+
);
|
|
21266
|
+
throw unknownModel(provider, model);
|
|
21267
|
+
}
|
|
21268
|
+
logger?.debug(`Found max tokens for ${provider}/${model}: ${modelInfo.maxInputTokens}`);
|
|
21269
|
+
return modelInfo.maxInputTokens;
|
|
21270
|
+
}
|
|
21271
|
+
getModelPricing(provider, model) {
|
|
21272
|
+
if (this.acceptsAnyModel(provider)) return void 0;
|
|
21273
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21274
|
+
return modelInfo?.pricing ? cloneModelInfo(modelInfo).pricing : void 0;
|
|
21275
|
+
}
|
|
21276
|
+
isReasoningCapableModel(model, provider) {
|
|
21277
|
+
const registryProvider = (() => {
|
|
21278
|
+
if (model.includes("/")) return "openrouter";
|
|
21279
|
+
if (provider) return provider;
|
|
21280
|
+
try {
|
|
21281
|
+
return this.getProviderFromModel(model);
|
|
21282
|
+
} catch {
|
|
21283
|
+
return void 0;
|
|
21284
|
+
}
|
|
21285
|
+
})();
|
|
21286
|
+
if (registryProvider) {
|
|
21287
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, registryProvider, model);
|
|
21288
|
+
if (modelInfo?.reasoning === true) return true;
|
|
21289
|
+
if (modelInfo?.reasoning === false) return false;
|
|
21290
|
+
}
|
|
21291
|
+
const modelIdForHeuristics = model.includes("/") ? model.split("/").pop() ?? model : model;
|
|
21292
|
+
const modelLower = modelIdForHeuristics.toLowerCase();
|
|
21293
|
+
if (modelLower.includes("codex")) return true;
|
|
21294
|
+
if (modelLower.startsWith("o1") || modelLower.startsWith("o3") || modelLower.startsWith("o4")) {
|
|
21295
|
+
return true;
|
|
21296
|
+
}
|
|
21297
|
+
if (modelLower.includes("gpt-5")) return true;
|
|
21298
|
+
if (modelLower.includes("gemini-2.5") || modelLower.includes("gemini-3")) return true;
|
|
21299
|
+
return false;
|
|
21300
|
+
}
|
|
21301
|
+
getProviderFromModel(model) {
|
|
21302
|
+
if (model.includes("/")) throw modelProviderUnknown(model);
|
|
21303
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21304
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21305
|
+
const info = this.#providers[provider];
|
|
21306
|
+
if (info.models.some((candidate) => candidate.name.toLowerCase() === normalizedModel)) {
|
|
21307
|
+
return provider;
|
|
21308
|
+
}
|
|
21309
|
+
}
|
|
21310
|
+
throw modelProviderUnknown(model);
|
|
21311
|
+
}
|
|
21312
|
+
acceptsAnyModel(provider) {
|
|
21313
|
+
return this.#providers[provider].models.length === 0;
|
|
21314
|
+
}
|
|
21315
|
+
supportsCustomModels(provider) {
|
|
21316
|
+
return this.#providers[provider].supportsCustomModels === true;
|
|
21317
|
+
}
|
|
21318
|
+
hasAllRegistryModelsSupport(provider) {
|
|
21319
|
+
return this.#providers[provider].supportsAllRegistryModels === true;
|
|
21320
|
+
}
|
|
21321
|
+
supportsBaseURL(provider) {
|
|
21322
|
+
return this.#providers[provider].baseURLSupport !== "none";
|
|
21323
|
+
}
|
|
21324
|
+
isValidProviderModel(provider, model) {
|
|
21325
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21326
|
+
return this.#providers[provider].models.some(
|
|
21327
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21328
|
+
);
|
|
21329
|
+
}
|
|
21330
|
+
getSupportedFileTypesForModel(provider, model) {
|
|
21331
|
+
const providerInfo = this.#providers[provider];
|
|
21332
|
+
if (this.acceptsAnyModel(provider)) return [...providerInfo.supportedFileTypes];
|
|
21333
|
+
const modelInfo = findModelInfoInRegistry(this.#providers, provider, model);
|
|
21334
|
+
if (modelInfo) return [...modelInfo.supportedFileTypes];
|
|
21335
|
+
if (this.supportsCustomModels(provider)) return [...providerInfo.supportedFileTypes];
|
|
21336
|
+
throw unknownModel(provider, model);
|
|
21337
|
+
}
|
|
21338
|
+
getAllModelsForProvider(provider) {
|
|
21339
|
+
const providerInfo = this.#providers[provider];
|
|
21340
|
+
const ownModels = providerInfo.models.map((model) => ({
|
|
21341
|
+
...cloneModelInfo(model),
|
|
21342
|
+
originalProvider: provider
|
|
21343
|
+
}));
|
|
21344
|
+
if (!providerInfo.supportsAllRegistryModels || provider === "openrouter") {
|
|
21345
|
+
return ownModels;
|
|
21346
|
+
}
|
|
21347
|
+
const seen = new Set(ownModels.map((model) => model.name.toLowerCase()));
|
|
21348
|
+
const inherited = this.#providers.openrouter.models.filter((model) => !seen.has(model.name.toLowerCase())).map((model) => ({
|
|
21349
|
+
...cloneModelInfo(model),
|
|
21350
|
+
originalProvider: "openrouter"
|
|
21351
|
+
}));
|
|
21352
|
+
return [...ownModels, ...inherited];
|
|
21353
|
+
}
|
|
21354
|
+
};
|
|
21355
|
+
function createModelRegistry(providers) {
|
|
21356
|
+
return new ModelRegistry(providers);
|
|
21357
|
+
}
|
|
21358
|
+
var DEFAULT_MODEL_REGISTRY = createModelRegistry(LLM_REGISTRY);
|
|
21359
|
+
function cloneRegistryProviders(providers) {
|
|
21360
|
+
const cloned = { ...providers };
|
|
21361
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21362
|
+
cloned[provider] = cloneProviderInfo(providers[provider]);
|
|
21363
|
+
}
|
|
21364
|
+
return cloned;
|
|
21365
|
+
}
|
|
21366
|
+
function validateRegistryProviders(providers) {
|
|
21367
|
+
for (const provider of LLM_PROVIDERS) {
|
|
21368
|
+
const providerInfo = providers[provider];
|
|
21369
|
+
if (!isRecord(providerInfo) || !Array.isArray(providerInfo.models) || !["none", "optional", "required"].includes(providerInfo.baseURLSupport) || !Array.isArray(providerInfo.supportedFileTypes) || !providerInfo.supportedFileTypes.every(isSupportedFileType)) {
|
|
21370
|
+
throw new LlmCatalogError(
|
|
21371
|
+
"REGISTRY_INVALID",
|
|
21372
|
+
`Invalid registry provider definition for '${provider}'`
|
|
21373
|
+
);
|
|
21374
|
+
}
|
|
21375
|
+
if (providerInfo.supportsCustomModels !== void 0 && typeof providerInfo.supportsCustomModels !== "boolean" || providerInfo.supportsAllRegistryModels !== void 0 && typeof providerInfo.supportsAllRegistryModels !== "boolean" || providerInfo.modelsDev !== void 0 && !isValidModelsDevMetadata(providerInfo.modelsDev)) {
|
|
21376
|
+
throw new LlmCatalogError(
|
|
21377
|
+
"REGISTRY_INVALID",
|
|
21378
|
+
`Invalid registry provider metadata for '${provider}'`
|
|
21379
|
+
);
|
|
21380
|
+
}
|
|
21381
|
+
const modelNames = /* @__PURE__ */ new Set();
|
|
21382
|
+
for (const [modelIndex, model] of providerInfo.models.entries()) {
|
|
21383
|
+
const modelObject = isRecord(model) ? model : null;
|
|
21384
|
+
const modelName = modelObject && typeof modelObject.name === "string" ? modelObject.name : `<index ${modelIndex}>`;
|
|
21385
|
+
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)) {
|
|
21386
|
+
throw new LlmCatalogError(
|
|
21387
|
+
"REGISTRY_INVALID",
|
|
21388
|
+
`Invalid registry model definition for '${provider}/${modelName}'`
|
|
21389
|
+
);
|
|
21390
|
+
}
|
|
21391
|
+
const normalizedModelName = modelObject.name.toLowerCase();
|
|
21392
|
+
if (modelNames.has(normalizedModelName)) {
|
|
21393
|
+
throw new LlmCatalogError(
|
|
21394
|
+
"REGISTRY_INVALID",
|
|
21395
|
+
`Duplicate registry model definition for '${provider}/${modelObject.name}'`
|
|
21396
|
+
);
|
|
21397
|
+
}
|
|
21398
|
+
modelNames.add(normalizedModelName);
|
|
21399
|
+
if (!isValidModelMetadata(modelObject)) {
|
|
21400
|
+
throw new LlmCatalogError(
|
|
21401
|
+
"REGISTRY_INVALID",
|
|
21402
|
+
`Invalid registry metadata for '${provider}/${modelObject.name}'`
|
|
21403
|
+
);
|
|
21404
|
+
}
|
|
21405
|
+
if (!isValidModelPricing(modelObject.pricing)) {
|
|
21406
|
+
throw new LlmCatalogError(
|
|
21407
|
+
"REGISTRY_INVALID",
|
|
21408
|
+
`Invalid registry pricing for '${provider}/${modelName}'`
|
|
21409
|
+
);
|
|
21410
|
+
}
|
|
21411
|
+
}
|
|
21412
|
+
}
|
|
21413
|
+
}
|
|
21414
|
+
function isSupportedFileType(value) {
|
|
21415
|
+
return typeof value === "string" && SUPPORTED_FILE_TYPES.some((supportedFileType) => supportedFileType === value);
|
|
21416
|
+
}
|
|
21417
|
+
function isRecord(value) {
|
|
21418
|
+
return typeof value === "object" && value !== null;
|
|
21419
|
+
}
|
|
21420
|
+
function isValidPricingNumber(value) {
|
|
21421
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
21422
|
+
}
|
|
21423
|
+
function isValidModelsDevMetadata(value) {
|
|
21424
|
+
if (!isRecord(value) || !Array.isArray(value.env) || !value.env.every(isString)) {
|
|
21425
|
+
return false;
|
|
21426
|
+
}
|
|
21427
|
+
return ["npm", "api", "doc"].every(
|
|
21428
|
+
(field) => value[field] === void 0 || isString(value[field])
|
|
21429
|
+
);
|
|
21430
|
+
}
|
|
21431
|
+
function isValidModelMetadata(value) {
|
|
21432
|
+
if (!MODEL_BOOLEAN_FIELDS.every(
|
|
21433
|
+
(field) => value[field] === void 0 || typeof value[field] === "boolean"
|
|
21434
|
+
) || !MODEL_STRING_FIELDS.every((field) => value[field] === void 0 || isString(value[field]))) {
|
|
21435
|
+
return false;
|
|
21436
|
+
}
|
|
21437
|
+
if (value.modalities !== void 0 && !isValidModelModalities(value.modalities)) {
|
|
21438
|
+
return false;
|
|
21439
|
+
}
|
|
21440
|
+
if (value.providerMetadata !== void 0 && !isValidProviderMetadata(value.providerMetadata)) {
|
|
21441
|
+
return false;
|
|
21442
|
+
}
|
|
21443
|
+
if (value.interleaved !== void 0 && !isValidInterleavedMetadata(value.interleaved)) {
|
|
21444
|
+
return false;
|
|
21445
|
+
}
|
|
21446
|
+
return true;
|
|
21447
|
+
}
|
|
21448
|
+
function isValidModelModalities(value) {
|
|
21449
|
+
if (!isRecord(value) || !Array.isArray(value.input) || !Array.isArray(value.output)) {
|
|
21450
|
+
return false;
|
|
21451
|
+
}
|
|
21452
|
+
return value.input.every(isSupportedModelModality) && value.output.every(isSupportedModelModality);
|
|
21453
|
+
}
|
|
21454
|
+
function isValidProviderMetadata(value) {
|
|
21455
|
+
return isRecord(value) && ["npm", "api"].every((field) => value[field] === void 0 || isString(value[field]));
|
|
21456
|
+
}
|
|
21457
|
+
function isValidInterleavedMetadata(value) {
|
|
21458
|
+
return value === true || isRecord(value) && (value.field === void 0 || isString(value.field));
|
|
21459
|
+
}
|
|
21460
|
+
function isSupportedModelModality(value) {
|
|
21461
|
+
return typeof value === "string" && MODEL_MODALITIES.some((modality) => modality === value);
|
|
21462
|
+
}
|
|
21463
|
+
function isString(value) {
|
|
21464
|
+
return typeof value === "string";
|
|
21465
|
+
}
|
|
21466
|
+
function isValidModelPricing(value) {
|
|
21467
|
+
if (value === void 0) return true;
|
|
21468
|
+
if (!isRecord(value)) return false;
|
|
21469
|
+
if (value.currency !== void 0 && value.currency !== "USD") return false;
|
|
21470
|
+
if (value.unit !== void 0 && value.unit !== "per_million_tokens") return false;
|
|
21471
|
+
for (const field of MODEL_PRICING_FIELDS) {
|
|
21472
|
+
if (field in value && !isValidPricingNumber(value[field])) return false;
|
|
21473
|
+
}
|
|
21474
|
+
if (!isValidPricingNumber(value.inputPerM) || !isValidPricingNumber(value.outputPerM)) {
|
|
21475
|
+
return false;
|
|
21476
|
+
}
|
|
21477
|
+
const longContextPricing = value.contextOver200kPerM;
|
|
21478
|
+
if (longContextPricing === void 0) return true;
|
|
21479
|
+
if (!isRecord(longContextPricing)) return false;
|
|
21480
|
+
const inputTokensAbove = longContextPricing.inputTokensAbove;
|
|
21481
|
+
if (inputTokensAbove !== void 0 && (typeof inputTokensAbove !== "number" || !Number.isInteger(inputTokensAbove) || inputTokensAbove < 0)) {
|
|
21482
|
+
return false;
|
|
21483
|
+
}
|
|
21484
|
+
for (const field of LONG_CONTEXT_PRICING_FIELDS) {
|
|
21485
|
+
if (field in longContextPricing && !isValidPricingNumber(longContextPricing[field])) {
|
|
21486
|
+
return false;
|
|
21487
|
+
}
|
|
21488
|
+
}
|
|
21489
|
+
return isValidPricingNumber(longContextPricing.inputPerM) && isValidPricingNumber(longContextPricing.outputPerM);
|
|
21490
|
+
}
|
|
21491
|
+
function findModelInfoInRegistry(providers, provider, model) {
|
|
21492
|
+
const normalizedModel = getNormalizedModelIdForLookup(model);
|
|
21493
|
+
const direct = providers[provider].models.find(
|
|
21494
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21495
|
+
);
|
|
21496
|
+
if (direct) return direct;
|
|
21497
|
+
if (provider !== "openrouter" && providers[provider].supportsAllRegistryModels && model.includes("/")) {
|
|
21498
|
+
return providers.openrouter.models.find(
|
|
21499
|
+
(candidate) => candidate.name.toLowerCase() === normalizedModel
|
|
21500
|
+
) ?? null;
|
|
21501
|
+
}
|
|
21502
|
+
return null;
|
|
21503
|
+
}
|
|
21111
21504
|
function cloneModelInfo(model) {
|
|
21112
21505
|
return {
|
|
21113
21506
|
...model,
|
|
@@ -21272,9 +21665,8 @@ function supportsCustomModels(provider) {
|
|
|
21272
21665
|
const providerInfo = LLM_REGISTRY[provider];
|
|
21273
21666
|
return providerInfo.supportsCustomModels === true;
|
|
21274
21667
|
}
|
|
21275
|
-
function hasAllRegistryModelsSupport(provider) {
|
|
21276
|
-
|
|
21277
|
-
return providerInfo.supportsAllRegistryModels === true;
|
|
21668
|
+
function hasAllRegistryModelsSupport(provider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21669
|
+
return registry.hasAllRegistryModelsSupport(provider);
|
|
21278
21670
|
}
|
|
21279
21671
|
var OPENROUTER_PREFIX_BY_PROVIDER = {
|
|
21280
21672
|
openai: "openai",
|
|
@@ -21285,8 +21677,8 @@ var OPENROUTER_PREFIX_BY_PROVIDER = {
|
|
|
21285
21677
|
minimax: "minimax",
|
|
21286
21678
|
glm: "z-ai"
|
|
21287
21679
|
};
|
|
21288
|
-
function getOpenRouterModelIdSet() {
|
|
21289
|
-
return new Set(
|
|
21680
|
+
function getOpenRouterModelIdSet(registry) {
|
|
21681
|
+
return new Set(registry.getSupportedModels("openrouter").map((model) => model.toLowerCase()));
|
|
21290
21682
|
}
|
|
21291
21683
|
function getOpenRouterCandidateModelIds(model, originalProvider) {
|
|
21292
21684
|
if (model.includes("/")) return [model];
|
|
@@ -21305,8 +21697,8 @@ function getOpenRouterCandidateModelIds(model, originalProvider) {
|
|
|
21305
21697
|
}
|
|
21306
21698
|
return [`${prefix}/${model}`];
|
|
21307
21699
|
}
|
|
21308
|
-
function pickExistingOpenRouterModelId(candidates) {
|
|
21309
|
-
const openrouterSet = getOpenRouterModelIdSet();
|
|
21700
|
+
function pickExistingOpenRouterModelId(candidates, registry) {
|
|
21701
|
+
const openrouterSet = getOpenRouterModelIdSet(registry);
|
|
21310
21702
|
for (const candidate of candidates) {
|
|
21311
21703
|
if (openrouterSet.has(candidate.toLowerCase())) {
|
|
21312
21704
|
return candidate;
|
|
@@ -21367,11 +21759,11 @@ function getAllModelsForProvider(provider) {
|
|
|
21367
21759
|
}
|
|
21368
21760
|
return allModels;
|
|
21369
21761
|
}
|
|
21370
|
-
function transformModelNameForProvider(model, originalProvider, targetProvider) {
|
|
21371
|
-
if (!hasAllRegistryModelsSupport(targetProvider)) {
|
|
21762
|
+
function transformModelNameForProvider(model, originalProvider, targetProvider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21763
|
+
if (!hasAllRegistryModelsSupport(targetProvider, registry)) {
|
|
21372
21764
|
return model;
|
|
21373
21765
|
}
|
|
21374
|
-
if (hasAllRegistryModelsSupport(originalProvider)) {
|
|
21766
|
+
if (hasAllRegistryModelsSupport(originalProvider, registry)) {
|
|
21375
21767
|
return model;
|
|
21376
21768
|
}
|
|
21377
21769
|
if (model.includes("/")) {
|
|
@@ -21379,7 +21771,7 @@ function transformModelNameForProvider(model, originalProvider, targetProvider)
|
|
|
21379
21771
|
}
|
|
21380
21772
|
const candidates = getOpenRouterCandidateModelIds(model, originalProvider);
|
|
21381
21773
|
if (candidates.length === 0) return model;
|
|
21382
|
-
return pickExistingOpenRouterModelId(candidates) ?? candidates[0];
|
|
21774
|
+
return pickExistingOpenRouterModelId(candidates, registry) ?? candidates[0];
|
|
21383
21775
|
}
|
|
21384
21776
|
function isModelValidForProvider(provider, model) {
|
|
21385
21777
|
const providerInfo = LLM_REGISTRY[provider];
|
|
@@ -21429,11 +21821,11 @@ function getSupportedFileTypesForModel(provider, model) {
|
|
|
21429
21821
|
}
|
|
21430
21822
|
throw unknownModel(provider, model);
|
|
21431
21823
|
}
|
|
21432
|
-
function modelSupportsFileType(provider, model, fileType) {
|
|
21433
|
-
const supportedTypes = getSupportedFileTypesForModel(provider, model);
|
|
21824
|
+
function modelSupportsFileType(provider, model, fileType, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21825
|
+
const supportedTypes = registry === DEFAULT_MODEL_REGISTRY ? getSupportedFileTypesForModel(provider, model) : registry.getSupportedFileTypesForModel(provider, model);
|
|
21434
21826
|
return supportedTypes.includes(fileType);
|
|
21435
21827
|
}
|
|
21436
|
-
function validateModelFileSupport(provider, model, mimeType) {
|
|
21828
|
+
function validateModelFileSupport(provider, model, mimeType, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21437
21829
|
const baseMimeType = mimeType.toLowerCase().split(";")[0]?.trim() || mimeType.toLowerCase();
|
|
21438
21830
|
const fileType = MIME_TYPE_TO_FILE_TYPE[baseMimeType];
|
|
21439
21831
|
if (!fileType) {
|
|
@@ -21443,7 +21835,7 @@ function validateModelFileSupport(provider, model, mimeType) {
|
|
|
21443
21835
|
};
|
|
21444
21836
|
}
|
|
21445
21837
|
try {
|
|
21446
|
-
if (!modelSupportsFileType(provider, model, fileType)) {
|
|
21838
|
+
if (!modelSupportsFileType(provider, model, fileType, registry)) {
|
|
21447
21839
|
return {
|
|
21448
21840
|
isSupported: false,
|
|
21449
21841
|
fileType,
|
|
@@ -21551,7 +21943,7 @@ function getModelPricing(provider, model) {
|
|
|
21551
21943
|
return void 0;
|
|
21552
21944
|
}
|
|
21553
21945
|
const modelInfo = findModelInfo(provider, model);
|
|
21554
|
-
return modelInfo?.pricing;
|
|
21946
|
+
return modelInfo?.pricing ? cloneModelInfo(modelInfo).pricing : void 0;
|
|
21555
21947
|
}
|
|
21556
21948
|
function getModelDisplayName(model, provider) {
|
|
21557
21949
|
if (provider) {
|
|
@@ -21570,7 +21962,10 @@ function getModelDisplayName(model, provider) {
|
|
|
21570
21962
|
return model;
|
|
21571
21963
|
}
|
|
21572
21964
|
}
|
|
21573
|
-
function isReasoningCapableModel(model, provider) {
|
|
21965
|
+
function isReasoningCapableModel(model, provider, registry = DEFAULT_MODEL_REGISTRY) {
|
|
21966
|
+
if (registry !== DEFAULT_MODEL_REGISTRY) {
|
|
21967
|
+
return registry.isReasoningCapableModel(model, provider);
|
|
21968
|
+
}
|
|
21574
21969
|
const registryProvider = (() => {
|
|
21575
21970
|
if (model.includes("/")) return "openrouter";
|
|
21576
21971
|
if (provider) return provider;
|
|
@@ -22095,38 +22490,38 @@ var GOOGLE_PROFILE_CONFIG = {
|
|
|
22095
22490
|
supportsBudgetTokensForBudgetParadigm: true,
|
|
22096
22491
|
supportsBudgetTokensForThinkingLevelParadigm: false
|
|
22097
22492
|
};
|
|
22098
|
-
function isAnthropicStyleReasoningCapable(provider, model) {
|
|
22099
|
-
return isReasoningCapableModel(model, provider) || parseClaudeVersion(model) !== null || isAnthropicAdaptiveThinkingModel(model);
|
|
22493
|
+
function isAnthropicStyleReasoningCapable(provider, model, registry) {
|
|
22494
|
+
return registry.isReasoningCapableModel(model, provider) || parseClaudeVersion(model) !== null || isAnthropicAdaptiveThinkingModel(model);
|
|
22100
22495
|
}
|
|
22101
|
-
function getNativeReasoningProfile(provider, model) {
|
|
22496
|
+
function getNativeReasoningProfile(provider, model, registry) {
|
|
22102
22497
|
switch (provider) {
|
|
22103
22498
|
case "openai":
|
|
22104
|
-
if (!isReasoningCapableModel(model, "openai")) {
|
|
22499
|
+
if (!registry.isReasoningCapableModel(model, "openai")) {
|
|
22105
22500
|
return nonCapableProfile();
|
|
22106
22501
|
}
|
|
22107
22502
|
return buildOpenAIReasoningProfile(model);
|
|
22108
22503
|
case "anthropic":
|
|
22109
|
-
if (!isAnthropicStyleReasoningCapable("anthropic", model)) {
|
|
22504
|
+
if (!isAnthropicStyleReasoningCapable("anthropic", model, registry)) {
|
|
22110
22505
|
return nonCapableProfile();
|
|
22111
22506
|
}
|
|
22112
22507
|
return buildAnthropicReasoningProfile({ model, ...ANTHROPIC_PROFILE_CONFIG });
|
|
22113
22508
|
case "bedrock":
|
|
22114
|
-
if (!isReasoningCapableModel(model, "bedrock") && !model.toLowerCase().includes("nova")) {
|
|
22509
|
+
if (!registry.isReasoningCapableModel(model, "bedrock") && !model.toLowerCase().includes("nova")) {
|
|
22115
22510
|
return nonCapableProfile();
|
|
22116
22511
|
}
|
|
22117
22512
|
return buildBedrockReasoningProfile(model);
|
|
22118
22513
|
case "google":
|
|
22119
|
-
if (!isReasoningCapableModel(model, "google")) {
|
|
22514
|
+
if (!registry.isReasoningCapableModel(model, "google")) {
|
|
22120
22515
|
return nonCapableProfile();
|
|
22121
22516
|
}
|
|
22122
22517
|
return buildGoogleReasoningProfile({ model, ...GOOGLE_PROFILE_CONFIG });
|
|
22123
22518
|
case "vertex":
|
|
22124
|
-
if (!isAnthropicStyleReasoningCapable("vertex", model)) {
|
|
22519
|
+
if (!isAnthropicStyleReasoningCapable("vertex", model, registry)) {
|
|
22125
22520
|
return nonCapableProfile();
|
|
22126
22521
|
}
|
|
22127
22522
|
return buildVertexReasoningProfile(model);
|
|
22128
22523
|
case "openai-compatible":
|
|
22129
|
-
if (!isReasoningCapableModel(model, "openai-compatible")) {
|
|
22524
|
+
if (!registry.isReasoningCapableModel(model, "openai-compatible")) {
|
|
22130
22525
|
return nonCapableProfile();
|
|
22131
22526
|
}
|
|
22132
22527
|
return buildOpenAICompatibleReasoningProfile();
|
|
@@ -22151,16 +22546,20 @@ function toGatewayReasoningProfile(nativeProfile) {
|
|
|
22151
22546
|
...defaultVariant !== void 0 && { defaultVariant }
|
|
22152
22547
|
};
|
|
22153
22548
|
}
|
|
22154
|
-
function getReasoningProfile(provider, model) {
|
|
22549
|
+
function getReasoningProfile(provider, model, registry = DEFAULT_MODEL_REGISTRY) {
|
|
22155
22550
|
if (isOpenRouterGatewayProvider(provider)) {
|
|
22156
22551
|
const target = getOpenRouterReasoningTarget(model);
|
|
22157
22552
|
if (!target) {
|
|
22158
22553
|
return nonCapableProfile();
|
|
22159
22554
|
}
|
|
22160
|
-
const nativeProfile = getNativeReasoningProfile(
|
|
22555
|
+
const nativeProfile = getNativeReasoningProfile(
|
|
22556
|
+
target.upstreamProvider,
|
|
22557
|
+
target.modelId,
|
|
22558
|
+
registry
|
|
22559
|
+
);
|
|
22161
22560
|
return toGatewayReasoningProfile(nativeProfile);
|
|
22162
22561
|
}
|
|
22163
|
-
return getNativeReasoningProfile(provider, model);
|
|
22562
|
+
return getNativeReasoningProfile(provider, model, registry);
|
|
22164
22563
|
}
|
|
22165
22564
|
function supportsReasoningVariant(profile, variant) {
|
|
22166
22565
|
return profile.variants.some((entry) => entry.id === variant);
|
|
@@ -22170,17 +22569,20 @@ function supportsReasoningVariant(profile, variant) {
|
|
|
22170
22569
|
ANTHROPIC_BETA_HEADER,
|
|
22171
22570
|
ANTHROPIC_INTERLEAVED_THINKING_BETA,
|
|
22172
22571
|
DEFAULT_MAX_INPUT_TOKENS,
|
|
22572
|
+
DEFAULT_MODEL_REGISTRY,
|
|
22173
22573
|
LLM_PRICING_STATUSES,
|
|
22174
22574
|
LLM_PROVIDERS,
|
|
22175
22575
|
LLM_REGISTRY,
|
|
22176
22576
|
LlmCatalogError,
|
|
22177
22577
|
MIME_TYPE_TO_FILE_TYPE,
|
|
22578
|
+
ModelRegistry,
|
|
22178
22579
|
SUPPORTED_FILE_TYPES,
|
|
22179
22580
|
acceptsAnyModel,
|
|
22180
22581
|
buildGoogleReasoningProfile,
|
|
22181
22582
|
calculateCost,
|
|
22182
22583
|
calculateCostBreakdown,
|
|
22183
22584
|
coerceOpenAIReasoningEffort,
|
|
22585
|
+
createModelRegistry,
|
|
22184
22586
|
getAllModelsForProvider,
|
|
22185
22587
|
getAllSupportedModels,
|
|
22186
22588
|
getAllowedMimeTypes,
|