@pydantic/genai-prices 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -912,6 +912,17 @@ const x = [
912
912
  output_mtok: 0.6
913
913
  }
914
914
  },
915
+ {
916
+ id: "qwen.qwen3-coder-480b-a35b-v1:0",
917
+ name: "Qwen3-Coder-480B-A35B-Instruct",
918
+ match: {
919
+ contains: "qwen.qwen3-coder-480b-a35b-v1"
920
+ },
921
+ prices: {
922
+ input_mtok: 0.45,
923
+ output_mtok: 1.8
924
+ }
925
+ },
915
926
  {
916
927
  id: "regional.anthropic.claude-3-5-haiku-20241022-v1:0",
917
928
  match: {
@@ -4091,41 +4102,22 @@ Compared to other leading proprietary and open-weights models Command A delivers
4091
4102
  }
4092
4103
  },
4093
4104
  {
4094
- id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
4095
- name: "Qwen3-Coder-480B-A35B-Instruct",
4096
- match: {
4097
- or: [
4098
- {
4099
- equals: "qwen/qwen3-coder-480b-a35b-instruct"
4100
- },
4101
- {
4102
- equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
4103
- }
4104
- ]
4105
- },
4106
- context_window: 262144,
4107
- prices: {
4108
- input_mtok: 0.45,
4109
- output_mtok: 1.8
4110
- }
4111
- },
4112
- {
4113
- id: "SentientAGI/Dobby-Unhinged-Llama-3.3-70B",
4114
- name: "Dobby-Unhinged-Llama-3.3-70B",
4105
+ id: "deepseek-ai/DeepSeek-R1-0528",
4106
+ name: "DeepSeek-R1-0528",
4115
4107
  match: {
4116
4108
  or: [
4117
4109
  {
4118
- equals: "sentientagi/dobby-unhinged-llama-3.3-70b"
4110
+ equals: "deepseek-ai/deepseek-r1-0528"
4119
4111
  },
4120
4112
  {
4121
- equals: "sentientagi/dobby-unhinged-llama-3.3-70b-fast"
4113
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
4122
4114
  }
4123
4115
  ]
4124
4116
  },
4125
- context_window: 131072,
4117
+ context_window: 163840,
4126
4118
  prices: {
4127
- input_mtok: 0.9,
4128
- output_mtok: 0.9
4119
+ input_mtok: 3,
4120
+ output_mtok: 8
4129
4121
  }
4130
4122
  },
4131
4123
  {
@@ -5548,8 +5540,8 @@ Compared to other leading proprietary and open-weights models Command A delivers
5548
5540
  },
5549
5541
  context_window: 262144,
5550
5542
  prices: {
5551
- input_mtok: 0.29,
5552
- output_mtok: 1.2
5543
+ input_mtok: 0.3,
5544
+ output_mtok: 1.3
5553
5545
  }
5554
5546
  },
5555
5547
  {
@@ -5919,25 +5911,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
5919
5911
  output_mtok: 0.072
5920
5912
  }
5921
5913
  },
5922
- {
5923
- id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
5924
- name: "DeepSeek-R1-Distill-Llama-70B",
5925
- match: {
5926
- or: [
5927
- {
5928
- equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
5929
- },
5930
- {
5931
- equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
5932
- }
5933
- ]
5934
- },
5935
- context_window: 8192,
5936
- prices: {
5937
- input_mtok: 0.64,
5938
- output_mtok: 0.64
5939
- }
5940
- },
5941
5914
  {
5942
5915
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
5943
5916
  name: "DeepSeek-R1-Distill-Qwen-14B",
@@ -6039,6 +6012,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
6039
6012
  output_mtok: 0.8
6040
6013
  }
6041
6014
  },
6015
+ {
6016
+ id: "deepseek-ai/DeepSeek-V3.2",
6017
+ name: "DeepSeek-V3.2",
6018
+ match: {
6019
+ or: [
6020
+ {
6021
+ equals: "deepseek-ai/deepseek-v3.2"
6022
+ },
6023
+ {
6024
+ equals: "deepseek-ai/deepseek-v3.2-fast"
6025
+ }
6026
+ ]
6027
+ },
6028
+ context_window: 163840,
6029
+ prices: {
6030
+ input_mtok: 0.269,
6031
+ output_mtok: 0.4
6032
+ }
6033
+ },
6042
6034
  {
6043
6035
  id: "deepseek-ai/DeepSeek-V3.2-Exp",
6044
6036
  name: "DeepSeek-V3.2-Exp",
@@ -6111,8 +6103,8 @@ Compared to other leading proprietary and open-weights models Command A delivers
6111
6103
  },
6112
6104
  context_window: 131072,
6113
6105
  prices: {
6114
- input_mtok: 0.104,
6115
- output_mtok: 0.312
6106
+ input_mtok: 0.108,
6107
+ output_mtok: 0.32
6116
6108
  }
6117
6109
  },
6118
6110
  {
@@ -6249,22 +6241,22 @@ Compared to other leading proprietary and open-weights models Command A delivers
6249
6241
  }
6250
6242
  },
6251
6243
  {
6252
- id: "zai-org/GLM-4-32B-0414",
6253
- name: "GLM-4-32B-0414",
6244
+ id: "zai-org/AutoGLM-Phone-9B-Multilingual",
6245
+ name: "AutoGLM-Phone-9B-Multilingual",
6254
6246
  match: {
6255
6247
  or: [
6256
6248
  {
6257
- equals: "zai-org/glm-4-32b-0414"
6249
+ equals: "zai-org/autoglm-phone-9b-multilingual"
6258
6250
  },
6259
6251
  {
6260
- equals: "zai-org/glm-4-32b-0414-fast"
6252
+ equals: "zai-org/autoglm-phone-9b-multilingual-fast"
6261
6253
  }
6262
6254
  ]
6263
6255
  },
6264
- context_window: 32e3,
6256
+ context_window: 65536,
6265
6257
  prices: {
6266
- input_mtok: 0.55,
6267
- output_mtok: 1.66
6258
+ input_mtok: 0.035,
6259
+ output_mtok: 0.138
6268
6260
  }
6269
6261
  },
6270
6262
  {
@@ -6361,6 +6353,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
6361
6353
  input_mtok: 0.44,
6362
6354
  output_mtok: 1.76
6363
6355
  }
6356
+ },
6357
+ {
6358
+ id: "zai-org/GLM-4.6V-Flash",
6359
+ name: "GLM-4.6V-Flash",
6360
+ match: {
6361
+ or: [
6362
+ {
6363
+ equals: "zai-org/glm-4.6v-flash"
6364
+ },
6365
+ {
6366
+ equals: "zai-org/glm-4.6v-flash-fast"
6367
+ }
6368
+ ]
6369
+ },
6370
+ context_window: 131072,
6371
+ prices: {
6372
+ input_mtok: 0.3,
6373
+ output_mtok: 0.9
6374
+ }
6364
6375
  }
6365
6376
  ]
6366
6377
  },
@@ -6802,6 +6813,96 @@ Compared to other leading proprietary and open-weights models Command A delivers
6802
6813
  }
6803
6814
  ]
6804
6815
  },
6816
+ {
6817
+ id: "huggingface_ovhcloud",
6818
+ name: "HuggingFace (ovhcloud)",
6819
+ pricing_urls: ["https://router.huggingface.co/v1/models", "https://huggingface.co/inference/models"],
6820
+ api_pattern: "https://router\\.huggingface\\.co/ovhcloud",
6821
+ provider_match: {
6822
+ and: [
6823
+ {
6824
+ contains: "huggingface"
6825
+ },
6826
+ {
6827
+ contains: "ovhcloud"
6828
+ }
6829
+ ]
6830
+ },
6831
+ extractors: [
6832
+ {
6833
+ api_flavor: "chat",
6834
+ root: "usage",
6835
+ model_path: "model",
6836
+ mappings: [
6837
+ {
6838
+ path: "prompt_tokens",
6839
+ dest: "input_tokens",
6840
+ required: !0
6841
+ },
6842
+ {
6843
+ path: ["prompt_tokens_details", "cached_tokens"],
6844
+ dest: "cache_read_tokens",
6845
+ required: !1
6846
+ },
6847
+ {
6848
+ path: ["prompt_tokens_details", "audio_tokens"],
6849
+ dest: "input_audio_tokens",
6850
+ required: !1
6851
+ },
6852
+ {
6853
+ path: ["completion_tokens_details", "audio_tokens"],
6854
+ dest: "output_audio_tokens",
6855
+ required: !1
6856
+ },
6857
+ {
6858
+ path: "completion_tokens",
6859
+ dest: "output_tokens",
6860
+ required: !0
6861
+ }
6862
+ ]
6863
+ }
6864
+ ],
6865
+ models: [
6866
+ {
6867
+ id: "Qwen/Qwen2.5-VL-72B-Instruct",
6868
+ name: "Qwen2.5-VL-72B-Instruct",
6869
+ match: {
6870
+ or: [
6871
+ {
6872
+ equals: "qwen/qwen2.5-vl-72b-instruct"
6873
+ },
6874
+ {
6875
+ equals: "qwen/qwen2.5-vl-72b-instruct-fast"
6876
+ }
6877
+ ]
6878
+ },
6879
+ context_window: 32768,
6880
+ prices: {
6881
+ input_mtok: 1.01,
6882
+ output_mtok: 1.01
6883
+ }
6884
+ },
6885
+ {
6886
+ id: "Qwen/Qwen3-Coder-30B-A3B-Instruct",
6887
+ name: "Qwen3-Coder-30B-A3B-Instruct",
6888
+ match: {
6889
+ or: [
6890
+ {
6891
+ equals: "qwen/qwen3-coder-30b-a3b-instruct"
6892
+ },
6893
+ {
6894
+ equals: "qwen/qwen3-coder-30b-a3b-instruct-fast"
6895
+ }
6896
+ ]
6897
+ },
6898
+ context_window: 262144,
6899
+ prices: {
6900
+ input_mtok: 0.07,
6901
+ output_mtok: 0.26
6902
+ }
6903
+ }
6904
+ ]
6905
+ },
6805
6906
  {
6806
6907
  id: "huggingface_publicai",
6807
6908
  name: "HuggingFace (publicai)",
@@ -6883,45 +6984,90 @@ Compared to other leading proprietary and open-weights models Command A delivers
6883
6984
  prices: {}
6884
6985
  },
6885
6986
  {
6886
- id: "allenai/Olmo-3-32B-Think",
6887
- name: "Olmo-3-32B-Think",
6987
+ id: "allenai/Olmo-3-7B-Instruct",
6988
+ name: "Olmo-3-7B-Instruct",
6888
6989
  match: {
6889
6990
  or: [
6890
6991
  {
6891
- equals: "allenai/olmo-3-32b-think"
6992
+ equals: "allenai/olmo-3-7b-instruct"
6892
6993
  },
6893
6994
  {
6894
- equals: "allenai/olmo-3-32b-think-fast"
6995
+ equals: "allenai/olmo-3-7b-instruct-fast"
6895
6996
  }
6896
6997
  ]
6897
6998
  },
6898
6999
  prices: {}
6899
7000
  },
6900
7001
  {
6901
- id: "allenai/Olmo-3-7B-Instruct",
6902
- name: "Olmo-3-7B-Instruct",
7002
+ id: "allenai/Olmo-3-7B-Think",
7003
+ name: "Olmo-3-7B-Think",
6903
7004
  match: {
6904
7005
  or: [
6905
7006
  {
6906
- equals: "allenai/olmo-3-7b-instruct"
7007
+ equals: "allenai/olmo-3-7b-think"
6907
7008
  },
6908
7009
  {
6909
- equals: "allenai/olmo-3-7b-instruct-fast"
7010
+ equals: "allenai/olmo-3-7b-think-fast"
6910
7011
  }
6911
7012
  ]
6912
7013
  },
6913
7014
  prices: {}
6914
7015
  },
6915
7016
  {
6916
- id: "allenai/Olmo-3-7B-Think",
6917
- name: "Olmo-3-7B-Think",
7017
+ id: "allenai/Olmo-3.1-32B-Instruct",
7018
+ name: "Olmo-3.1-32B-Instruct",
6918
7019
  match: {
6919
7020
  or: [
6920
7021
  {
6921
- equals: "allenai/olmo-3-7b-think"
7022
+ equals: "allenai/olmo-3.1-32b-instruct"
6922
7023
  },
6923
7024
  {
6924
- equals: "allenai/olmo-3-7b-think-fast"
7025
+ equals: "allenai/olmo-3.1-32b-instruct-fast"
7026
+ }
7027
+ ]
7028
+ },
7029
+ prices: {}
7030
+ },
7031
+ {
7032
+ id: "allenai/Olmo-3.1-32B-Think",
7033
+ name: "Olmo-3.1-32B-Think",
7034
+ match: {
7035
+ or: [
7036
+ {
7037
+ equals: "allenai/olmo-3.1-32b-think"
7038
+ },
7039
+ {
7040
+ equals: "allenai/olmo-3.1-32b-think-fast"
7041
+ }
7042
+ ]
7043
+ },
7044
+ prices: {}
7045
+ },
7046
+ {
7047
+ id: "dicta-il/DictaLM-3.0-24B-Thinking",
7048
+ name: "DictaLM-3.0-24B-Thinking",
7049
+ match: {
7050
+ or: [
7051
+ {
7052
+ equals: "dicta-il/dictalm-3.0-24b-thinking"
7053
+ },
7054
+ {
7055
+ equals: "dicta-il/dictalm-3.0-24b-thinking-fast"
7056
+ }
7057
+ ]
7058
+ },
7059
+ prices: {}
7060
+ },
7061
+ {
7062
+ id: "swiss-ai/Apertus-70B-Instruct-2509",
7063
+ name: "Apertus-70B-Instruct-2509",
7064
+ match: {
7065
+ or: [
7066
+ {
7067
+ equals: "swiss-ai/apertus-70b-instruct-2509"
7068
+ },
7069
+ {
7070
+ equals: "swiss-ai/apertus-70b-instruct-2509-fast"
6925
7071
  }
6926
7072
  ]
6927
7073
  },
@@ -6941,6 +7087,21 @@ Compared to other leading proprietary and open-weights models Command A delivers
6941
7087
  ]
6942
7088
  },
6943
7089
  prices: {}
7090
+ },
7091
+ {
7092
+ id: "utter-project/EuroLLM-22B-Instruct-2512",
7093
+ name: "EuroLLM-22B-Instruct-2512",
7094
+ match: {
7095
+ or: [
7096
+ {
7097
+ equals: "utter-project/eurollm-22b-instruct-2512"
7098
+ },
7099
+ {
7100
+ equals: "utter-project/eurollm-22b-instruct-2512-fast"
7101
+ }
7102
+ ]
7103
+ },
7104
+ prices: {}
6944
7105
  }
6945
7106
  ]
6946
7107
  },
@@ -7052,27 +7213,46 @@ Compared to other leading proprietary and open-weights models Command A delivers
7052
7213
  }
7053
7214
  },
7054
7215
  {
7055
- id: "meta-llama/Llama-3.1-8B-Instruct",
7056
- name: "Llama-3.1-8B-Instruct",
7216
+ id: "deepseek-ai/DeepSeek-V3-0324",
7217
+ name: "DeepSeek-V3-0324",
7057
7218
  match: {
7058
7219
  or: [
7059
7220
  {
7060
- equals: "meta-llama/llama-3.1-8b-instruct"
7221
+ equals: "deepseek-ai/deepseek-v3-0324"
7061
7222
  },
7062
7223
  {
7063
- equals: "meta-llama/llama-3.1-8b-instruct-fast"
7224
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
7064
7225
  }
7065
7226
  ]
7066
7227
  },
7067
- context_window: 16384,
7228
+ context_window: 131072,
7068
7229
  prices: {
7069
- input_mtok: 0.1,
7070
- output_mtok: 0.2
7230
+ input_mtok: 3,
7231
+ output_mtok: 4.5
7071
7232
  }
7072
7233
  },
7073
7234
  {
7074
- id: "meta-llama/Llama-3.3-70B-Instruct",
7075
- name: "Llama-3.3-70B-Instruct",
7235
+ id: "meta-llama/Llama-3.1-8B-Instruct",
7236
+ name: "Llama-3.1-8B-Instruct",
7237
+ match: {
7238
+ or: [
7239
+ {
7240
+ equals: "meta-llama/llama-3.1-8b-instruct"
7241
+ },
7242
+ {
7243
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
7244
+ }
7245
+ ]
7246
+ },
7247
+ context_window: 16384,
7248
+ prices: {
7249
+ input_mtok: 0.1,
7250
+ output_mtok: 0.2
7251
+ }
7252
+ },
7253
+ {
7254
+ id: "meta-llama/Llama-3.3-70B-Instruct",
7255
+ name: "Llama-3.3-70B-Instruct",
7076
7256
  match: {
7077
7257
  or: [
7078
7258
  {
@@ -7179,6 +7359,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
7179
7359
  }
7180
7360
  ],
7181
7361
  models: [
7362
+ {
7363
+ id: "EssentialAI/rnj-1-instruct",
7364
+ name: "rnj-1-instruct",
7365
+ match: {
7366
+ or: [
7367
+ {
7368
+ equals: "essentialai/rnj-1-instruct"
7369
+ },
7370
+ {
7371
+ equals: "essentialai/rnj-1-instruct-fast"
7372
+ }
7373
+ ]
7374
+ },
7375
+ context_window: 32768,
7376
+ prices: {
7377
+ input_mtok: 0.15,
7378
+ output_mtok: 0.15
7379
+ }
7380
+ },
7182
7381
  {
7183
7382
  id: "Qwen/Qwen2.5-72B-Instruct",
7184
7383
  name: "Qwen2.5-72B-Instruct",
@@ -7311,6 +7510,41 @@ Compared to other leading proprietary and open-weights models Command A delivers
7311
7510
  output_mtok: 1.5
7312
7511
  }
7313
7512
  },
7513
+ {
7514
+ id: "Qwen/Qwen3-VL-32B-Instruct",
7515
+ name: "Qwen3-VL-32B-Instruct",
7516
+ match: {
7517
+ or: [
7518
+ {
7519
+ equals: "qwen/qwen3-vl-32b-instruct"
7520
+ },
7521
+ {
7522
+ equals: "qwen/qwen3-vl-32b-instruct-fast"
7523
+ }
7524
+ ]
7525
+ },
7526
+ context_window: 262144,
7527
+ prices: {
7528
+ input_mtok: 0.5,
7529
+ output_mtok: 1.5
7530
+ }
7531
+ },
7532
+ {
7533
+ id: "ServiceNow-AI/Apriel-1.6-15b-Thinker",
7534
+ name: "Apriel-1.6-15b-Thinker",
7535
+ match: {
7536
+ or: [
7537
+ {
7538
+ equals: "servicenow-ai/apriel-1.6-15b-thinker"
7539
+ },
7540
+ {
7541
+ equals: "servicenow-ai/apriel-1.6-15b-thinker-fast"
7542
+ }
7543
+ ]
7544
+ },
7545
+ context_window: 131072,
7546
+ prices: {}
7547
+ },
7314
7548
  {
7315
7549
  id: "deepcogito/cogito-671b-v2.1",
7316
7550
  name: "cogito-671b-v2.1",
@@ -15845,6 +16079,352 @@ Compared to other leading proprietary and open-weights models Command A delivers
15845
16079
  }
15846
16080
  ]
15847
16081
  },
16082
+ {
16083
+ id: "ovhcloud",
16084
+ name: "OVHcloud AI Endpoints",
16085
+ pricing_urls: ["https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"],
16086
+ api_pattern: "https://oai\\.endpoints\\.kepler\\.ai\\.cloud\\.ovh\\.net",
16087
+ extractors: [
16088
+ {
16089
+ api_flavor: "chat",
16090
+ root: "usage",
16091
+ model_path: "model",
16092
+ mappings: [
16093
+ {
16094
+ path: "prompt_tokens",
16095
+ dest: "input_tokens",
16096
+ required: !0
16097
+ },
16098
+ {
16099
+ path: ["prompt_tokens_details", "cached_tokens"],
16100
+ dest: "cache_read_tokens",
16101
+ required: !1
16102
+ },
16103
+ {
16104
+ path: ["prompt_tokens_details", "audio_tokens"],
16105
+ dest: "input_audio_tokens",
16106
+ required: !1
16107
+ },
16108
+ {
16109
+ path: ["completion_tokens_details", "audio_tokens"],
16110
+ dest: "output_audio_tokens",
16111
+ required: !1
16112
+ },
16113
+ {
16114
+ path: "completion_tokens",
16115
+ dest: "output_tokens",
16116
+ required: !0
16117
+ }
16118
+ ]
16119
+ }
16120
+ ],
16121
+ models: [
16122
+ {
16123
+ id: "BGE-M3",
16124
+ name: "BGE-M3",
16125
+ match: {
16126
+ or: [
16127
+ {
16128
+ equals: "BGE-M3"
16129
+ },
16130
+ {
16131
+ equals: "bge-m3"
16132
+ }
16133
+ ]
16134
+ },
16135
+ context_window: 8192,
16136
+ prices: {
16137
+ input_mtok: 0.01
16138
+ }
16139
+ },
16140
+ {
16141
+ id: "DeepSeek-R1-Distill-Llama-70B",
16142
+ name: "DeepSeek-R1-Distill-Llama-70B",
16143
+ match: {
16144
+ or: [
16145
+ {
16146
+ equals: "DeepSeek-R1-Distill-Llama-70B"
16147
+ },
16148
+ {
16149
+ equals: "deepseek-r1-distill-llama-70b"
16150
+ }
16151
+ ]
16152
+ },
16153
+ context_window: 131072,
16154
+ prices: {
16155
+ input_mtok: 0.74,
16156
+ output_mtok: 0.74
16157
+ }
16158
+ },
16159
+ {
16160
+ id: "Llama-3.1-8B-Instruct",
16161
+ name: "Llama-3.1-8B-Instruct",
16162
+ match: {
16163
+ or: [
16164
+ {
16165
+ equals: "Llama-3.1-8B-Instruct"
16166
+ },
16167
+ {
16168
+ equals: "llama-3.1-8b-instruct"
16169
+ }
16170
+ ]
16171
+ },
16172
+ context_window: 131072,
16173
+ prices: {
16174
+ input_mtok: 0.11,
16175
+ output_mtok: 0.11
16176
+ }
16177
+ },
16178
+ {
16179
+ id: "Meta-Llama-3_1-70B-Instruct",
16180
+ name: "Meta-Llama-3_1-70B-Instruct",
16181
+ match: {
16182
+ or: [
16183
+ {
16184
+ equals: "Meta-Llama-3_1-70B-Instruct"
16185
+ },
16186
+ {
16187
+ equals: "meta-llama-3_1-70b-instruct"
16188
+ }
16189
+ ]
16190
+ },
16191
+ context_window: 131072,
16192
+ prices: {
16193
+ input_mtok: 0.74,
16194
+ output_mtok: 0.74
16195
+ }
16196
+ },
16197
+ {
16198
+ id: "Meta-Llama-3_3-70B-Instruct",
16199
+ name: "Meta-Llama-3_3-70B-Instruct",
16200
+ match: {
16201
+ or: [
16202
+ {
16203
+ equals: "Meta-Llama-3_3-70B-Instruct"
16204
+ },
16205
+ {
16206
+ equals: "meta-llama-3_3-70b-instruct"
16207
+ }
16208
+ ]
16209
+ },
16210
+ context_window: 131072,
16211
+ prices: {
16212
+ input_mtok: 0.74,
16213
+ output_mtok: 0.74
16214
+ }
16215
+ },
16216
+ {
16217
+ id: "Mistral-7B-Instruct-v0.3",
16218
+ name: "Mistral-7B-Instruct-v0.3",
16219
+ match: {
16220
+ or: [
16221
+ {
16222
+ equals: "Mistral-7B-Instruct-v0.3"
16223
+ },
16224
+ {
16225
+ equals: "mistral-7b-instruct-v0.3"
16226
+ }
16227
+ ]
16228
+ },
16229
+ context_window: 65536,
16230
+ prices: {
16231
+ input_mtok: 0.11,
16232
+ output_mtok: 0.11
16233
+ }
16234
+ },
16235
+ {
16236
+ id: "Mistral-Nemo-Instruct-2407",
16237
+ name: "Mistral-Nemo-Instruct-2407",
16238
+ match: {
16239
+ or: [
16240
+ {
16241
+ equals: "Mistral-Nemo-Instruct-2407"
16242
+ },
16243
+ {
16244
+ equals: "mistral-nemo-instruct-2407"
16245
+ }
16246
+ ]
16247
+ },
16248
+ context_window: 65536,
16249
+ prices: {
16250
+ input_mtok: 0.14,
16251
+ output_mtok: 0.14
16252
+ }
16253
+ },
16254
+ {
16255
+ id: "Mistral-Small-3.2-24B-Instruct-2506",
16256
+ name: "Mistral-Small-3.2-24B-Instruct-2506",
16257
+ match: {
16258
+ or: [
16259
+ {
16260
+ equals: "Mistral-Small-3.2-24B-Instruct-2506"
16261
+ },
16262
+ {
16263
+ equals: "mistral-small-3.2-24b-instruct-2506"
16264
+ }
16265
+ ]
16266
+ },
16267
+ context_window: 131072,
16268
+ prices: {
16269
+ input_mtok: 0.1,
16270
+ output_mtok: 0.31
16271
+ }
16272
+ },
16273
+ {
16274
+ id: "Mixtral-8x7B-Instruct-v0.1",
16275
+ name: "Mixtral-8x7B-Instruct-v0.1",
16276
+ match: {
16277
+ or: [
16278
+ {
16279
+ equals: "Mixtral-8x7B-Instruct-v0.1"
16280
+ },
16281
+ {
16282
+ equals: "mixtral-8x7b-instruct-v0.1"
16283
+ }
16284
+ ]
16285
+ },
16286
+ context_window: 32768,
16287
+ prices: {
16288
+ input_mtok: 0.7,
16289
+ output_mtok: 0.7
16290
+ }
16291
+ },
16292
+ {
16293
+ id: "Qwen2.5-Coder-32B-Instruct",
16294
+ name: "Qwen2.5-Coder-32B-Instruct",
16295
+ match: {
16296
+ or: [
16297
+ {
16298
+ equals: "Qwen2.5-Coder-32B-Instruct"
16299
+ },
16300
+ {
16301
+ equals: "qwen2.5-coder-32b-instruct"
16302
+ }
16303
+ ]
16304
+ },
16305
+ context_window: 32768,
16306
+ prices: {
16307
+ input_mtok: 0.96,
16308
+ output_mtok: 0.96
16309
+ }
16310
+ },
16311
+ {
16312
+ id: "Qwen2.5-VL-72B-Instruct",
16313
+ name: "Qwen2.5-VL-72B-Instruct",
16314
+ match: {
16315
+ or: [
16316
+ {
16317
+ equals: "Qwen2.5-VL-72B-Instruct"
16318
+ },
16319
+ {
16320
+ equals: "qwen2.5-vl-72b-instruct"
16321
+ }
16322
+ ]
16323
+ },
16324
+ context_window: 32768,
16325
+ prices: {
16326
+ input_mtok: 1.01,
16327
+ output_mtok: 1.01
16328
+ }
16329
+ },
16330
+ {
16331
+ id: "Qwen3-32B",
16332
+ name: "Qwen3-32B",
16333
+ match: {
16334
+ or: [
16335
+ {
16336
+ equals: "Qwen3-32B"
16337
+ },
16338
+ {
16339
+ equals: "qwen3-32b"
16340
+ }
16341
+ ]
16342
+ },
16343
+ context_window: 32768,
16344
+ prices: {
16345
+ input_mtok: 0.09,
16346
+ output_mtok: 0.25
16347
+ }
16348
+ },
16349
+ {
16350
+ id: "Qwen3-Coder-30B-A3B-Instruct",
16351
+ name: "Qwen3-Coder-30B-A3B-Instruct",
16352
+ match: {
16353
+ or: [
16354
+ {
16355
+ equals: "Qwen3-Coder-30B-A3B-Instruct"
16356
+ },
16357
+ {
16358
+ equals: "qwen3-coder-30b-a3b-instruct"
16359
+ }
16360
+ ]
16361
+ },
16362
+ context_window: 262144,
16363
+ prices: {
16364
+ input_mtok: 0.07,
16365
+ output_mtok: 0.26
16366
+ }
16367
+ },
16368
+ {
16369
+ id: "bge-base-en-v1.5",
16370
+ name: "bge-base-en-v1.5",
16371
+ match: {
16372
+ equals: "bge-base-en-v1.5"
16373
+ },
16374
+ context_window: 512,
16375
+ prices: {
16376
+ input_mtok: 0.01
16377
+ }
16378
+ },
16379
+ {
16380
+ id: "bge-multilingual-gemma2",
16381
+ name: "bge-multilingual-gemma2",
16382
+ match: {
16383
+ equals: "bge-multilingual-gemma2"
16384
+ },
16385
+ context_window: 8192,
16386
+ prices: {
16387
+ input_mtok: 0.01
16388
+ }
16389
+ },
16390
+ {
16391
+ id: "gpt-oss-120b",
16392
+ name: "gpt-oss-120b",
16393
+ match: {
16394
+ equals: "gpt-oss-120b"
16395
+ },
16396
+ context_window: 131072,
16397
+ prices: {
16398
+ input_mtok: 0.09,
16399
+ output_mtok: 0.47
16400
+ }
16401
+ },
16402
+ {
16403
+ id: "gpt-oss-20b",
16404
+ name: "gpt-oss-20b",
16405
+ match: {
16406
+ equals: "gpt-oss-20b"
16407
+ },
16408
+ context_window: 131072,
16409
+ prices: {
16410
+ input_mtok: 0.05,
16411
+ output_mtok: 0.18
16412
+ }
16413
+ },
16414
+ {
16415
+ id: "llava-next-mistral-7b",
16416
+ name: "llava-next-mistral-7b",
16417
+ match: {
16418
+ equals: "llava-next-mistral-7b"
16419
+ },
16420
+ context_window: 32768,
16421
+ prices: {
16422
+ input_mtok: 0.32,
16423
+ output_mtok: 0.32
16424
+ }
16425
+ }
16426
+ ]
16427
+ },
15848
16428
  {
15849
16429
  id: "perplexity",
15850
16430
  name: "Perplexity",
@@ -16961,33 +17541,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
16961
17541
  ]
16962
17542
  }
16963
17543
  ];
16964
- function y(t, e) {
17544
+ function M(t, e) {
16965
17545
  if (e <= 0) return 0;
16966
17546
  let a = 0;
16967
- const i = [...t.tiers].sort((r, n) => r.start - n.start), o = i[0]?.start ?? e, m = Math.min(e, o);
16968
- a += m * t.base / 1e6;
16969
- for (let r = 0; r < i.length; r++) {
16970
- const n = i[r], s = i[r + 1]?.start ?? 1 / 0, u = Math.max(0, Math.min(e, s) - n.start);
17547
+ const i = [...t.tiers].sort((m, n) => m.start - n.start), o = i[0]?.start ?? e, r = Math.min(e, o);
17548
+ a += r * t.base / 1e6;
17549
+ for (let m = 0; m < i.length; m++) {
17550
+ const n = i[m], s = i[m + 1]?.start ?? 1 / 0, u = Math.max(0, Math.min(e, s) - n.start);
16971
17551
  u > 0 && (a += u * n.price / 1e6);
16972
17552
  }
16973
17553
  return a;
16974
17554
  }
16975
17555
  function c(t, e, a) {
16976
- return t === void 0 || e === void 0 ? 0 : typeof t == "number" ? t * e / 1e6 : y(t, e);
17556
+ return t === void 0 || e === void 0 ? 0 : typeof t == "number" ? t * e / 1e6 : M(t, e);
16977
17557
  }
16978
- function M(t, e) {
17558
+ function L(t, e) {
16979
17559
  let a = 0, i = 0;
16980
- const o = t.cache_read_tokens ?? 0, m = t.cache_write_tokens ?? 0, r = t.cache_audio_read_tokens ?? 0, n = t.output_audio_tokens ?? 0;
17560
+ const o = t.cache_read_tokens ?? 0, r = t.cache_write_tokens ?? 0, m = t.cache_audio_read_tokens ?? 0, n = t.output_audio_tokens ?? 0;
16981
17561
  let s = t.input_audio_tokens ?? 0;
16982
- if (s -= r, s < 0)
17562
+ if (s -= m, s < 0)
16983
17563
  throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
16984
17564
  let u = t.input_tokens ?? 0;
16985
- if (u -= o, u -= m, u -= s, u < 0)
17565
+ if (u -= o, u -= r, u -= s, u < 0)
16986
17566
  throw new Error("Uncached text input tokens cannot be negative");
16987
17567
  let p = o;
16988
- if (p -= r, p < 0)
17568
+ if (p -= m, p < 0)
16989
17569
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
16990
- a += c(e.input_mtok, u), a += c(e.cache_read_mtok, p), a += c(e.cache_write_mtok, m), a += c(e.input_audio_mtok, s), a += c(e.cache_audio_read_mtok, r);
17570
+ a += c(e.input_mtok, u), a += c(e.cache_read_mtok, p), a += c(e.cache_write_mtok, r), a += c(e.input_audio_mtok, s), a += c(e.cache_audio_read_mtok, m);
16991
17571
  let k = t.output_tokens ?? 0;
16992
17572
  if (k -= n, k < 0)
16993
17573
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
@@ -16999,7 +17579,7 @@ function M(t, e) {
16999
17579
  total_price: f
17000
17580
  };
17001
17581
  }
17002
- function L(t, e) {
17582
+ function y(t, e) {
17003
17583
  if (!Array.isArray(t.prices))
17004
17584
  return t.prices;
17005
17585
  for (let a = t.prices.length - 1; a >= 0; a--) {
@@ -17010,11 +17590,11 @@ function L(t, e) {
17010
17590
  if (e >= new Date(o.start_date))
17011
17591
  return i.prices;
17012
17592
  } else {
17013
- const m = e.toISOString().slice(11, 19), r = o.start_time, n = o.end_time;
17014
- if (n < r) {
17015
- if (m >= r || m < n)
17593
+ const r = e.toISOString().slice(11, 19), m = o.start_time, n = o.end_time;
17594
+ if (n < m) {
17595
+ if (r >= m || r < n)
17016
17596
  return i.prices;
17017
- } else if (m >= r && m < n)
17597
+ } else if (r >= m && r < n)
17018
17598
  return i.prices;
17019
17599
  }
17020
17600
  }
@@ -17048,35 +17628,35 @@ function S(t) {
17048
17628
  function A(t) {
17049
17629
  b = t;
17050
17630
  }
17051
- function z(t) {
17631
+ function C(t) {
17052
17632
  t({
17053
17633
  onCalc: A,
17054
17634
  remoteDataUrl: P,
17055
17635
  setProviderData: S
17056
17636
  });
17057
17637
  }
17058
- function C() {
17638
+ function z() {
17059
17639
  return w;
17060
17640
  }
17061
17641
  function N(t, e, a) {
17062
17642
  b?.();
17063
17643
  const i = e.toLowerCase().trim(), o = a?.provider ?? B(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
17064
17644
  if (!o) return null;
17065
- const m = T(o.models, i);
17066
- if (!m) return null;
17067
- const r = a?.timestamp ?? /* @__PURE__ */ new Date(), n = L(m, r), s = M(t, n);
17645
+ const r = T(o.models, i);
17646
+ if (!r) return null;
17647
+ const m = a?.timestamp ?? /* @__PURE__ */ new Date(), n = y(r, m), s = L(t, n);
17068
17648
  return {
17069
17649
  auto_update_timestamp: void 0,
17070
- model: m,
17650
+ model: r,
17071
17651
  model_price: n,
17072
17652
  provider: o,
17073
17653
  ...s
17074
17654
  };
17075
17655
  }
17076
- function E(t) {
17656
+ function V(t) {
17077
17657
  return b?.(), B(g, t);
17078
17658
  }
17079
- function V(t, e, a) {
17659
+ function E(t, e, a) {
17080
17660
  if (a = a ?? "default", !t.extractors)
17081
17661
  throw new Error("No extraction logic defined for this provider");
17082
17662
  const i = t.extractors.find((s) => s.api_flavor === a);
@@ -17086,9 +17666,9 @@ function V(t, e, a) {
17086
17666
  }
17087
17667
  if (!h.guard(e))
17088
17668
  throw new Error(`Expected response data to be a mapping object, got ${l(e)}`);
17089
- const o = q(i.model_path, e, R, !1, []), m = I(i.root), r = q(m, e, h, !0, []), n = {};
17669
+ const o = q(i.model_path, e, R, !1, []), r = I(i.root), m = q(r, e, h, !0, []), n = {};
17090
17670
  for (const s of i.mappings) {
17091
- const u = q(s.path, r, D, s.required, m);
17671
+ const u = q(s.path, m, D, s.required, r);
17092
17672
  if (u !== null) {
17093
17673
  const p = n[s.dest] ?? 0;
17094
17674
  n[s.dest] = p + u;
@@ -17099,13 +17679,13 @@ function V(t, e, a) {
17099
17679
  return { model: o, usage: n };
17100
17680
  }
17101
17681
  function q(t, e, a, i, o) {
17102
- const [m, ...r] = I(t).reverse();
17103
- if (typeof m != "string")
17104
- throw new Error(`Expected last step of path to be a string, got ${l(m)}`);
17105
- r.reverse();
17682
+ const [r, ...m] = I(t).reverse();
17683
+ if (typeof r != "string")
17684
+ throw new Error(`Expected last step of path to be a string, got ${l(r)}`);
17685
+ m.reverse();
17106
17686
  let n = e;
17107
17687
  const s = [];
17108
- for (const p of r) {
17688
+ for (const p of m) {
17109
17689
  if (s.push(p), typeof p == "object")
17110
17690
  if (Array.isArray(n))
17111
17691
  n = G(p, n);
@@ -17133,16 +17713,16 @@ function q(t, e, a, i, o) {
17133
17713
  throw new Error(`Expected \`${d(o, s)}\` value to be a mapping, got ${l(n)}`);
17134
17714
  return null;
17135
17715
  }
17136
- const u = n[m];
17716
+ const u = n[r];
17137
17717
  if (typeof u > "u") {
17138
17718
  if (i)
17139
- throw s.push(m), new Error(`Missing value at \`${d(o, s)}\``);
17719
+ throw s.push(r), new Error(`Missing value at \`${d(o, s)}\``);
17140
17720
  return null;
17141
17721
  }
17142
17722
  if (a.guard(u))
17143
17723
  return u;
17144
17724
  if (i)
17145
- throw s.push(m), new Error(`Expected \`${d(o, s)}\` value to be a ${a.name}, got ${l(u)}`);
17725
+ throw s.push(r), new Error(`Expected \`${d(o, s)}\` value to be a ${a.name}, got ${l(u)}`);
17146
17726
  return null;
17147
17727
  }
17148
17728
  function G(t, e) {
@@ -17172,8 +17752,8 @@ const h = {
17172
17752
  export {
17173
17753
  P as REMOTE_DATA_JSON_URL,
17174
17754
  N as calcPrice,
17175
- V as extractUsage,
17176
- E as findProvider,
17177
- z as updatePrices,
17178
- C as waitForUpdate
17755
+ E as extractUsage,
17756
+ V as findProvider,
17757
+ C as updatePrices,
17758
+ z as waitForUpdate
17179
17759
  };