@pydantic/genai-prices 0.0.36 → 0.0.38

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
@@ -197,6 +197,12 @@ const x = [
197
197
  {
198
198
  starts_with: "claude-haiku-4-5"
199
199
  },
200
+ {
201
+ starts_with: "claude-haiku-4.5"
202
+ },
203
+ {
204
+ starts_with: "claude-4-5-haiku"
205
+ },
200
206
  {
201
207
  starts_with: "claude-4.5-haiku"
202
208
  }
@@ -210,6 +216,28 @@ const x = [
210
216
  output_mtok: 5
211
217
  }
212
218
  },
219
+ {
220
+ id: "claude-instant-1",
221
+ description: "Retired, here to match price sources",
222
+ match: {
223
+ equals: "claude-instant-1"
224
+ },
225
+ prices: {
226
+ input_mtok: 1.63,
227
+ output_mtok: 55.1
228
+ }
229
+ },
230
+ {
231
+ id: "claude-instant-1.2",
232
+ description: "Retired, here to match price sources",
233
+ match: {
234
+ equals: "claude-instant-1.2"
235
+ },
236
+ prices: {
237
+ input_mtok: 1.63,
238
+ output_mtok: 5.51
239
+ }
240
+ },
213
241
  {
214
242
  id: "claude-opus-4-0",
215
243
  name: "Claude Opus 4",
@@ -222,6 +250,9 @@ const x = [
222
250
  {
223
251
  starts_with: "claude-4-opus"
224
252
  },
253
+ {
254
+ equals: "claude-opus-4"
255
+ },
225
256
  {
226
257
  equals: "claude-opus-4-20250514"
227
258
  }
@@ -240,7 +271,14 @@ const x = [
240
271
  name: "Claude Opus 4.1",
241
272
  description: "Most intelligent model for complex tasks",
242
273
  match: {
243
- starts_with: "claude-opus-4-1"
274
+ or: [
275
+ {
276
+ starts_with: "claude-opus-4-1"
277
+ },
278
+ {
279
+ starts_with: "claude-opus-4.1"
280
+ }
281
+ ]
244
282
  },
245
283
  context_window: 2e5,
246
284
  prices: {
@@ -286,7 +324,14 @@ const x = [
286
324
  name: "Claude Sonnet 4.5",
287
325
  description: "Most intelligent model for building agents and coding",
288
326
  match: {
289
- starts_with: "claude-sonnet-4-5"
327
+ or: [
328
+ {
329
+ starts_with: "claude-sonnet-4-5"
330
+ },
331
+ {
332
+ starts_with: "claude-sonnet-4.5"
333
+ }
334
+ ]
290
335
  },
291
336
  context_window: 1e6,
292
337
  prices: {
@@ -327,6 +372,17 @@ const x = [
327
372
  ]
328
373
  }
329
374
  }
375
+ },
376
+ {
377
+ id: "claude-v1",
378
+ description: "Retired, here to match price sources",
379
+ match: {
380
+ equals: "claude-v1"
381
+ },
382
+ prices: {
383
+ input_mtok: 8,
384
+ output_mtok: 24
385
+ }
330
386
  }
331
387
  ]
332
388
  },
@@ -1986,15 +2042,39 @@ Compared to other leading proprietary and open-weights models Command A delivers
1986
2042
  },
1987
2043
  {
1988
2044
  equals: "gemini-2.5-flash-latest"
2045
+ },
2046
+ {
2047
+ equals: "gemini-2.5-flash-preview-09-2025"
1989
2048
  }
1990
2049
  ]
1991
2050
  },
1992
2051
  prices: {
1993
2052
  input_mtok: 0.3,
1994
- cache_read_mtok: 0.075,
2053
+ cache_read_mtok: 0.03,
1995
2054
  output_mtok: 2.5,
1996
2055
  input_audio_mtok: 1,
1997
- cache_audio_read_mtok: 0.25
2056
+ cache_audio_read_mtok: 0.1
2057
+ }
2058
+ },
2059
+ {
2060
+ id: "gemini-2.5-flash-image",
2061
+ name: "Gemini 2.5 Flash Image",
2062
+ description: "Google's specialized image generation model optimized for fast, high-quality image generation. Outputs images at 1024x1024 resolution, with each image consuming 1290 output tokens.",
2063
+ match: {
2064
+ or: [
2065
+ {
2066
+ equals: "gemini-2.5-flash-image"
2067
+ },
2068
+ {
2069
+ equals: "gemini-2.5-flash-image-preview"
2070
+ }
2071
+ ]
2072
+ },
2073
+ context_window: 1e6,
2074
+ price_comments: "See https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-flash-image. Image output is priced at $30 per 1M tokens, with each 1024x1024 image = 1290 tokens = $0.039/image. Cache pricing is not available for this model.",
2075
+ prices: {
2076
+ input_mtok: 0.3,
2077
+ output_mtok: 30
1998
2078
  }
1999
2079
  },
2000
2080
  {
@@ -2014,10 +2094,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
2014
2094
  context_window: 1e6,
2015
2095
  prices: {
2016
2096
  input_mtok: 0.1,
2017
- cache_read_mtok: 0.025,
2097
+ cache_read_mtok: 0.01,
2018
2098
  output_mtok: 0.4,
2019
- input_audio_mtok: 0.5,
2020
- cache_audio_read_mtok: 0.125
2099
+ input_audio_mtok: 0.3,
2100
+ cache_audio_read_mtok: 0.03
2021
2101
  }
2022
2102
  },
2023
2103
  {
@@ -2027,10 +2107,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
2027
2107
  match: {
2028
2108
  or: [
2029
2109
  {
2030
- contains: "gemini-2.5-flash-preview"
2110
+ contains: "gemini-2.5-flash-preview-05-20"
2031
2111
  },
2032
2112
  {
2033
- equals: "gemini-2.5-flash-preview-05-20"
2113
+ contains: "gemini-2.5-flash-preview-04-17"
2034
2114
  },
2035
2115
  {
2036
2116
  equals: "gemini-2.5-flash-preview-05-20:thinking"
@@ -2068,11 +2148,11 @@ Compared to other leading proprietary and open-weights models Command A delivers
2068
2148
  ]
2069
2149
  },
2070
2150
  cache_read_mtok: {
2071
- base: 0.31,
2151
+ base: 0.125,
2072
2152
  tiers: [
2073
2153
  {
2074
2154
  start: 2e5,
2075
- price: 0.625
2155
+ price: 0.25
2076
2156
  }
2077
2157
  ]
2078
2158
  },
@@ -2087,6 +2167,15 @@ Compared to other leading proprietary and open-weights models Command A delivers
2087
2167
  }
2088
2168
  }
2089
2169
  },
2170
+ {
2171
+ id: "gemini-embedding-001",
2172
+ match: {
2173
+ equals: "gemini-embedding-001"
2174
+ },
2175
+ prices: {
2176
+ input_mtok: 0.15
2177
+ }
2178
+ },
2090
2179
  {
2091
2180
  id: "gemini-flash-1.5",
2092
2181
  name: "Gemini 1.5 Flash",
@@ -2164,6 +2253,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
2164
2253
  }
2165
2254
  }
2166
2255
  },
2256
+ {
2257
+ id: "gemini-live-2.5-flash-preview",
2258
+ match: {
2259
+ or: [
2260
+ {
2261
+ starts_with: "gemini-live-2.5-flash-preview"
2262
+ },
2263
+ {
2264
+ starts_with: "gemini-2.5-flash-native-audio-preview"
2265
+ }
2266
+ ]
2267
+ },
2268
+ prices: {
2269
+ input_mtok: 0.5,
2270
+ output_mtok: 2,
2271
+ input_audio_mtok: 3,
2272
+ output_audio_mtok: 12
2273
+ }
2274
+ },
2167
2275
  {
2168
2276
  id: "gemini-pro",
2169
2277
  name: "gemini 1.0 pro",
@@ -3315,7 +3423,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
3315
3423
  name: "Codex Mini",
3316
3424
  description: "codex-mini-latest is a fine-tuned version of o4-mini specifically for use in Codex CLI. For direct use in the API, we recommend starting with gpt-4.1.",
3317
3425
  match: {
3318
- equals: "codex-mini"
3426
+ or: [
3427
+ {
3428
+ equals: "codex-mini"
3429
+ },
3430
+ {
3431
+ equals: "codex-mini-latest"
3432
+ }
3433
+ ]
3319
3434
  },
3320
3435
  prices: {
3321
3436
  input_mtok: 1.5,
@@ -3361,7 +3476,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
3361
3476
  id: "ft:gpt-3.5-turbo-",
3362
3477
  description: "GPT-3.5 Turbo fine tuned.",
3363
3478
  match: {
3364
- starts_with: "ft:gpt-3.5-turbo-"
3479
+ starts_with: "ft:gpt-3.5-turbo"
3365
3480
  },
3366
3481
  prices: {
3367
3482
  input_mtok: 3,
@@ -3369,10 +3484,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
3369
3484
  }
3370
3485
  },
3371
3486
  {
3372
- id: "ft:gpt-4o-2024-08-06:",
3487
+ id: "ft:gpt-4o",
3373
3488
  description: "GPT-4o fine tuned.",
3374
3489
  match: {
3375
- starts_with: "ft:gpt-4o-2024-08-06:"
3490
+ starts_with: "ft:gpt-4o-2024-"
3376
3491
  },
3377
3492
  prices: {
3378
3493
  input_mtok: 3.75,
@@ -3380,16 +3495,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
3380
3495
  }
3381
3496
  },
3382
3497
  {
3383
- id: "ft:gpt-4o-mini-2024-07-18:",
3498
+ id: "ft:gpt-4o-mini",
3384
3499
  description: "GPT-4o Mini fine tuned.",
3385
3500
  match: {
3386
- starts_with: "ft:gpt-4o-mini-2024-07-18:"
3501
+ starts_with: "ft:gpt-4o-mini-2024-"
3387
3502
  },
3388
3503
  prices: {
3389
3504
  input_mtok: 0.3,
3390
3505
  output_mtok: 1.2
3391
3506
  }
3392
3507
  },
3508
+ {
3509
+ id: "gpt-3.5-0301",
3510
+ match: {
3511
+ or: [
3512
+ {
3513
+ equals: "gpt-3.5-turbo-0301"
3514
+ },
3515
+ {
3516
+ equals: "gpt-3.5-0301"
3517
+ }
3518
+ ]
3519
+ },
3520
+ prices: {
3521
+ input_mtok: 1.5,
3522
+ output_mtok: 2
3523
+ }
3524
+ },
3393
3525
  {
3394
3526
  id: "gpt-3.5-turbo",
3395
3527
  name: "gpt 3.5 turbo",
@@ -3404,9 +3536,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
3404
3536
  },
3405
3537
  {
3406
3538
  equals: "gpt-3.5-turbo-0125"
3407
- },
3408
- {
3409
- equals: "gpt-3.5-turbo-1106"
3410
3539
  }
3411
3540
  ]
3412
3541
  },
@@ -3416,6 +3545,28 @@ Compared to other leading proprietary and open-weights models Command A delivers
3416
3545
  output_mtok: 1.5
3417
3546
  }
3418
3547
  },
3548
+ {
3549
+ id: "gpt-3.5-turbo-0613",
3550
+ match: {
3551
+ equals: "gpt-3.5-turbo-0613"
3552
+ },
3553
+ context_window: 16385,
3554
+ prices: {
3555
+ input_mtok: 1.5,
3556
+ output_mtok: 2
3557
+ }
3558
+ },
3559
+ {
3560
+ id: "gpt-3.5-turbo-1106",
3561
+ match: {
3562
+ equals: "gpt-3.5-turbo-1106"
3563
+ },
3564
+ context_window: 16385,
3565
+ prices: {
3566
+ input_mtok: 1,
3567
+ output_mtok: 2
3568
+ }
3569
+ },
3419
3570
  {
3420
3571
  id: "gpt-3.5-turbo-16k",
3421
3572
  name: "GPT-3.5 Turbo 16k",
@@ -3430,6 +3581,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
3430
3581
  },
3431
3582
  {
3432
3583
  equals: "gpt-35-turbo-16k-0613"
3584
+ },
3585
+ {
3586
+ equals: "gpt-35-turbo-16k"
3433
3587
  }
3434
3588
  ]
3435
3589
  },
@@ -3473,6 +3627,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
3473
3627
  },
3474
3628
  {
3475
3629
  equals: "gpt-4-0613"
3630
+ },
3631
+ {
3632
+ starts_with: "ft:gpt-4-0"
3476
3633
  }
3477
3634
  ]
3478
3635
  },
@@ -3688,6 +3845,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
3688
3845
  },
3689
3846
  {
3690
3847
  equals: "gpt-4o-mini-search-preview"
3848
+ },
3849
+ {
3850
+ equals: "gpt-4o-mini-search-preview-2025-03-11"
3691
3851
  }
3692
3852
  ]
3693
3853
  },
@@ -3729,7 +3889,31 @@ Compared to other leading proprietary and open-weights models Command A delivers
3729
3889
  prices: {
3730
3890
  input_mtok: 0.6,
3731
3891
  cache_read_mtok: 0.3,
3732
- output_mtok: 2.4
3892
+ output_mtok: 2.4,
3893
+ input_audio_mtok: 10,
3894
+ cache_audio_read_mtok: 0.3,
3895
+ output_audio_mtok: 20
3896
+ }
3897
+ },
3898
+ {
3899
+ id: "gpt-4o-mini-transcribe",
3900
+ match: {
3901
+ equals: "gpt-4o-mini-transcribe"
3902
+ },
3903
+ prices: {
3904
+ input_mtok: 1.25,
3905
+ output_mtok: 5,
3906
+ input_audio_mtok: 3
3907
+ }
3908
+ },
3909
+ {
3910
+ id: "gpt-4o-mini-tts",
3911
+ match: {
3912
+ equals: "gpt-4o-mini-tts"
3913
+ },
3914
+ prices: {
3915
+ input_mtok: 0.6,
3916
+ output_audio_mtok: 12
3733
3917
  }
3734
3918
  },
3735
3919
  {
@@ -3751,13 +3935,38 @@ Compared to other leading proprietary and open-weights models Command A delivers
3751
3935
  name: "GPT-4o Search Preview",
3752
3936
  description: "GPT-4o Search Previewis a specialized model for web search in Chat Completions. It is trained to understand and execute web search queries.",
3753
3937
  match: {
3754
- equals: "gpt-4o-search-preview"
3938
+ or: [
3939
+ {
3940
+ equals: "gpt-4o-search-preview"
3941
+ },
3942
+ {
3943
+ equals: "gpt-4o-search-preview-2025-03-11"
3944
+ }
3945
+ ]
3755
3946
  },
3756
3947
  prices: {
3757
3948
  input_mtok: 2.5,
3758
3949
  output_mtok: 10
3759
3950
  }
3760
3951
  },
3952
+ {
3953
+ id: "gpt-4o-transcribe",
3954
+ match: {
3955
+ or: [
3956
+ {
3957
+ equals: "gpt-4o-transcribe"
3958
+ },
3959
+ {
3960
+ equals: "gpt-4o-transcribe-diarize"
3961
+ }
3962
+ ]
3963
+ },
3964
+ prices: {
3965
+ input_mtok: 2.5,
3966
+ output_mtok: 10,
3967
+ input_audio_mtok: 6
3968
+ }
3969
+ },
3761
3970
  {
3762
3971
  id: "gpt-4o:extended",
3763
3972
  name: "GPT-4o (extended)",
@@ -3787,6 +3996,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
3787
3996
  },
3788
3997
  {
3789
3998
  equals: "gpt-5-chat-latest"
3999
+ },
4000
+ {
4001
+ equals: "gpt-5-codex"
3790
4002
  }
3791
4003
  ]
3792
4004
  },
@@ -3797,6 +4009,30 @@ Compared to other leading proprietary and open-weights models Command A delivers
3797
4009
  output_mtok: 10
3798
4010
  }
3799
4011
  },
4012
+ {
4013
+ id: "gpt-5-image",
4014
+ match: {
4015
+ equals: "gpt-5-image"
4016
+ },
4017
+ price_comments: "Seen on OpenRouter before OpenAI",
4018
+ prices: {
4019
+ input_mtok: 10,
4020
+ cache_read_mtok: 1.25,
4021
+ output_mtok: 10
4022
+ }
4023
+ },
4024
+ {
4025
+ id: "gpt-5-image-mini",
4026
+ match: {
4027
+ equals: "gpt-5-image-mini"
4028
+ },
4029
+ price_comments: "Seen on OpenRouter before OpenAI",
4030
+ prices: {
4031
+ input_mtok: 2.5,
4032
+ cache_read_mtok: 0.25,
4033
+ output_mtok: 2
4034
+ }
4035
+ },
3800
4036
  {
3801
4037
  id: "gpt-5-mini",
3802
4038
  name: "GPT-5 mini",
@@ -3839,6 +4075,68 @@ Compared to other leading proprietary and open-weights models Command A delivers
3839
4075
  output_mtok: 0.4
3840
4076
  }
3841
4077
  },
4078
+ {
4079
+ id: "gpt-5-pro",
4080
+ match: {
4081
+ or: [
4082
+ {
4083
+ equals: "gpt-5-pro"
4084
+ },
4085
+ {
4086
+ equals: "gpt-5-pro-2025-10-06"
4087
+ }
4088
+ ]
4089
+ },
4090
+ prices: {
4091
+ input_mtok: 15,
4092
+ output_mtok: 120
4093
+ }
4094
+ },
4095
+ {
4096
+ id: "gpt-realtime",
4097
+ match: {
4098
+ or: [
4099
+ {
4100
+ equals: "gpt-realtime"
4101
+ },
4102
+ {
4103
+ equals: "gpt-realtime-2025-08-28"
4104
+ }
4105
+ ]
4106
+ },
4107
+ price_comments: "Missing image token prices which we don't support yet",
4108
+ prices: {
4109
+ input_mtok: 4,
4110
+ cache_read_mtok: 0.4,
4111
+ output_mtok: 16,
4112
+ input_audio_mtok: 32,
4113
+ cache_audio_read_mtok: 0.4,
4114
+ output_audio_mtok: 64
4115
+ }
4116
+ },
4117
+ {
4118
+ id: "gpt-realtime-mini",
4119
+ match: {
4120
+ equals: "gpt-realtime-mini"
4121
+ },
4122
+ price_comments: "Missing image token prices which we don't support yet",
4123
+ prices: {
4124
+ input_mtok: 0.6,
4125
+ cache_read_mtok: 0.06,
4126
+ output_mtok: 2.4,
4127
+ input_audio_mtok: 10,
4128
+ cache_audio_read_mtok: 0.3,
4129
+ output_audio_mtok: 20
4130
+ }
4131
+ },
4132
+ {
4133
+ id: "moderation",
4134
+ description: "All OpenAI moderation models and endpoints are free of charge",
4135
+ match: {
4136
+ contains: "moderation"
4137
+ },
4138
+ prices: {}
4139
+ },
3842
4140
  {
3843
4141
  id: "o1",
3844
4142
  name: "o1",
@@ -3892,7 +4190,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
3892
4190
  name: "o1-pro",
3893
4191
  description: "The o1 series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o1-pro model uses more compute to think harder and provide consistently better answers.",
3894
4192
  match: {
3895
- equals: "o1-pro"
4193
+ or: [
4194
+ {
4195
+ equals: "o1-pro"
4196
+ },
4197
+ {
4198
+ equals: "o1-pro-2025-03-19"
4199
+ }
4200
+ ]
3896
4201
  },
3897
4202
  prices: {
3898
4203
  input_mtok: 150,
@@ -3934,6 +4239,24 @@ Compared to other leading proprietary and open-weights models Command A delivers
3934
4239
  }
3935
4240
  ]
3936
4241
  },
4242
+ {
4243
+ id: "o3-deep-research",
4244
+ match: {
4245
+ or: [
4246
+ {
4247
+ equals: "o3-deep-research"
4248
+ },
4249
+ {
4250
+ equals: "o3-deep-research-2025-06-26"
4251
+ }
4252
+ ]
4253
+ },
4254
+ prices: {
4255
+ input_mtok: 10,
4256
+ cache_read_mtok: 2.5,
4257
+ output_mtok: 40
4258
+ }
4259
+ },
3937
4260
  {
3938
4261
  id: "o3-mini",
3939
4262
  name: "o3 Mini",
@@ -3962,7 +4285,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
3962
4285
  name: "o3 Pro",
3963
4286
  description: "The o-series of models are trained with reinforcement learning to think before they answer and perform complex reasoning. The o3-pro model uses more compute to think harder and provide consistently better answers.",
3964
4287
  match: {
3965
- equals: "o3-pro"
4288
+ or: [
4289
+ {
4290
+ equals: "o3-pro"
4291
+ },
4292
+ {
4293
+ equals: "o3-pro-2025-06-10"
4294
+ }
4295
+ ]
3966
4296
  },
3967
4297
  prices: {
3968
4298
  input_mtok: 20,
@@ -3975,9 +4305,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
3975
4305
  description: "OpenAI o4-mini-high is the same model as o4-mini with reasoning_effort set to high.",
3976
4306
  match: {
3977
4307
  or: [
3978
- {
3979
- starts_with: "o4-mini"
3980
- },
3981
4308
  {
3982
4309
  equals: "o4-mini-2025-04-16"
3983
4310
  },
@@ -3995,6 +4322,24 @@ Compared to other leading proprietary and open-weights models Command A delivers
3995
4322
  output_mtok: 4.4
3996
4323
  }
3997
4324
  },
4325
+ {
4326
+ id: "o4-mini-deep-research",
4327
+ match: {
4328
+ or: [
4329
+ {
4330
+ equals: "o4-mini-deep-research"
4331
+ },
4332
+ {
4333
+ equals: "o4-mini-deep-research-2025-06-26"
4334
+ }
4335
+ ]
4336
+ },
4337
+ prices: {
4338
+ input_mtok: 2,
4339
+ cache_read_mtok: 0.5,
4340
+ output_mtok: 8
4341
+ }
4342
+ },
3998
4343
  {
3999
4344
  id: "text-davinci-002",
4000
4345
  match: {
@@ -5183,6 +5528,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
5183
5528
  },
5184
5529
  prices: {}
5185
5530
  },
5531
+ {
5532
+ id: "deepseek-v3.1-terminus",
5533
+ name: "DeepSeek V3.1 Terminus",
5534
+ match: {
5535
+ equals: "deepseek-v3.1-terminus"
5536
+ },
5537
+ context_window: 163840,
5538
+ prices: {
5539
+ input_mtok: 0.23,
5540
+ output_mtok: 0.9
5541
+ }
5542
+ },
5186
5543
  {
5187
5544
  id: "deepseek/deepseek-chat",
5188
5545
  match: {
@@ -5210,6 +5567,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
5210
5567
  },
5211
5568
  prices: {}
5212
5569
  },
5570
+ {
5571
+ id: "deepseek/deepseek-chat-v3.1",
5572
+ name: "DeepSeek Chat V3.1",
5573
+ match: {
5574
+ equals: "deepseek/deepseek-chat-v3.1"
5575
+ },
5576
+ context_window: 163840,
5577
+ prices: {
5578
+ input_mtok: 0.2,
5579
+ output_mtok: 0.8
5580
+ }
5581
+ },
5213
5582
  {
5214
5583
  id: "deepseek/deepseek-chat:free",
5215
5584
  match: {
@@ -5319,6 +5688,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
5319
5688
  },
5320
5689
  prices: {}
5321
5690
  },
5691
+ {
5692
+ id: "deepseek/deepseek-v3.2-exp",
5693
+ name: "DeepSeek V3.2 Experimental",
5694
+ match: {
5695
+ equals: "deepseek/deepseek-v3.2-exp"
5696
+ },
5697
+ prices: {
5698
+ input_mtok: 0.27,
5699
+ output_mtok: 0.4
5700
+ }
5701
+ },
5322
5702
  {
5323
5703
  id: "devstral-small",
5324
5704
  name: "Devstral Small",
@@ -10013,6 +10393,28 @@ Compared to other leading proprietary and open-weights models Command A delivers
10013
10393
  input_mtok: 3,
10014
10394
  output_mtok: 3
10015
10395
  }
10396
+ },
10397
+ {
10398
+ id: "z-ai/glm-4.5",
10399
+ match: {
10400
+ equals: "z-ai/glm-4.5"
10401
+ },
10402
+ context_window: 131072,
10403
+ prices: {
10404
+ input_mtok: 0.35,
10405
+ output_mtok: 1.55
10406
+ }
10407
+ },
10408
+ {
10409
+ id: "z-ai/glm-4.6",
10410
+ match: {
10411
+ equals: "z-ai/glm-4.6"
10412
+ },
10413
+ context_window: 202752,
10414
+ prices: {
10415
+ input_mtok: 0.4,
10416
+ output_mtok: 1.75
10417
+ }
10016
10418
  }
10017
10419
  ]
10018
10420
  },
@@ -11143,7 +11545,7 @@ function M(t, e) {
11143
11545
  }
11144
11546
  return a;
11145
11547
  }
11146
- function p(t, e, a) {
11548
+ function l(t, e, a) {
11147
11549
  return t === void 0 || e === void 0 ? 0 : typeof t == "number" ? t * e / 1e6 : M(t, e);
11148
11550
  }
11149
11551
  function I(t, e) {
@@ -11155,14 +11557,14 @@ function I(t, e) {
11155
11557
  let u = t.input_tokens ?? 0;
11156
11558
  if (u -= o, u -= m, u -= n, u < 0)
11157
11559
  throw new Error("Uncached text input tokens cannot be negative");
11158
- let l = o;
11159
- if (l -= r, l < 0)
11560
+ let p = o;
11561
+ if (p -= r, p < 0)
11160
11562
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
11161
- a += p(e.input_mtok, u), a += p(e.cache_read_mtok, l), a += p(e.cache_write_mtok, m), a += p(e.input_audio_mtok, n), a += p(e.cache_audio_read_mtok, r);
11563
+ a += l(e.input_mtok, u), a += l(e.cache_read_mtok, p), a += l(e.cache_write_mtok, m), a += l(e.input_audio_mtok, n), a += l(e.cache_audio_read_mtok, r);
11162
11564
  let k = t.output_tokens ?? 0;
11163
11565
  if (k -= s, k < 0)
11164
11566
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
11165
- i += p(e.output_mtok, k), i += p(e.output_audio_mtok, t.output_audio_tokens);
11567
+ i += l(e.output_mtok, k), i += l(e.output_audio_mtok, t.output_audio_tokens);
11166
11568
  let w = a + i;
11167
11569
  return e.requests_kcount !== void 0 && (w += e.requests_kcount / 1e3), {
11168
11570
  input_price: a,
@@ -11198,7 +11600,7 @@ function L(t, e) {
11198
11600
  const a = e.toLowerCase().trim(), i = t.find((o) => o.id === a);
11199
11601
  return i || t.find((o) => o.provider_match && h(o.provider_match, a));
11200
11602
  }
11201
- function B(t, { modelId: e, providerApiUrl: a, providerId: i }) {
11603
+ function y(t, { modelId: e, providerApiUrl: a, providerId: i }) {
11202
11604
  if (i)
11203
11605
  return L(t, i);
11204
11606
  if (a)
@@ -11212,9 +11614,9 @@ function T(t, e) {
11212
11614
  const G = "https://raw.githubusercontent.com/pydantic/genai-prices/main/prices/data.json";
11213
11615
  let g = x, b = Promise.resolve(x), f = null;
11214
11616
  function S(t) {
11215
- "then" in t ? (b = t, t.then((e) => {
11216
- g = e;
11217
- })) : (b = Promise.resolve(t), g = t);
11617
+ t !== null && ("then" in t ? (b = t, t.then((e) => {
11618
+ e !== null && (g = e);
11619
+ })) : (b = Promise.resolve(t), g = t));
11218
11620
  }
11219
11621
  function A(t) {
11220
11622
  f = t;
@@ -11229,9 +11631,9 @@ function N(t) {
11229
11631
  function Q() {
11230
11632
  return b;
11231
11633
  }
11232
- function E(t, e, a) {
11634
+ function O(t, e, a) {
11233
11635
  f?.();
11234
- const i = e.toLowerCase().trim(), o = a?.provider ?? B(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
11636
+ const i = e.toLowerCase().trim(), o = a?.provider ?? y(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
11235
11637
  if (!o) return null;
11236
11638
  const m = T(o.models, i);
11237
11639
  if (!m) return null;
@@ -11244,8 +11646,8 @@ function E(t, e, a) {
11244
11646
  ...n
11245
11647
  };
11246
11648
  }
11247
- function O(t) {
11248
- return f?.(), B(g, t);
11649
+ function E(t) {
11650
+ return f?.(), y(g, t);
11249
11651
  }
11250
11652
  function D(t, e, a) {
11251
11653
  if (a = a ?? "default", !t.extractors)
@@ -11257,12 +11659,12 @@ function D(t, e, a) {
11257
11659
  }
11258
11660
  if (!_.guard(e))
11259
11661
  throw new Error(`Expected response data to be a mapping object, got ${c(e)}`);
11260
- const o = q(i.model_path, e, C, !1, []), m = y(i.root), r = q(m, e, _, !0, []), s = {};
11662
+ const o = q(i.model_path, e, C, !1, []), m = B(i.root), r = q(m, e, _, !0, []), s = {};
11261
11663
  for (const n of i.mappings) {
11262
11664
  const u = q(n.path, r, z, n.required, m);
11263
11665
  if (u !== null) {
11264
- const l = s[n.dest] ?? 0;
11265
- s[n.dest] = l + u;
11666
+ const p = s[n.dest] ?? 0;
11667
+ s[n.dest] = p + u;
11266
11668
  }
11267
11669
  }
11268
11670
  if (!Object.keys(s).length)
@@ -11270,23 +11672,23 @@ function D(t, e, a) {
11270
11672
  return { model: o, usage: s };
11271
11673
  }
11272
11674
  function q(t, e, a, i, o) {
11273
- const [m, ...r] = y(t).reverse();
11675
+ const [m, ...r] = B(t).reverse();
11274
11676
  if (typeof m != "string")
11275
11677
  throw new Error(`Expected last step of path to be a string, got ${c(m)}`);
11276
11678
  r.reverse();
11277
11679
  let s = e;
11278
11680
  const n = [];
11279
- for (const l of r) {
11280
- if (n.push(l), typeof l == "object")
11681
+ for (const p of r) {
11682
+ if (n.push(p), typeof p == "object")
11281
11683
  if (Array.isArray(s))
11282
- s = R(l, s);
11684
+ s = R(p, s);
11283
11685
  else {
11284
11686
  if (i)
11285
11687
  throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
11286
11688
  return null;
11287
11689
  }
11288
11690
  else if (_.guard(s))
11289
- s = s[l];
11691
+ s = s[p];
11290
11692
  else {
11291
11693
  if (i)
11292
11694
  throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
@@ -11294,7 +11696,7 @@ function q(t, e, a, i, o) {
11294
11696
  }
11295
11697
  if (typeof s > "u")
11296
11698
  if (i) {
11297
- const k = typeof l == "object" ? "Unable to find item" : "Missing value";
11699
+ const k = typeof p == "object" ? "Unable to find item" : "Missing value";
11298
11700
  throw new Error(`${k} at \`${d(o, n)}\``);
11299
11701
  } else
11300
11702
  return null;
@@ -11324,7 +11726,7 @@ function R(t, e) {
11324
11726
  return a;
11325
11727
  }
11326
11728
  }
11327
- function y(t) {
11729
+ function B(t) {
11328
11730
  return Array.isArray(t) ? [...t] : [t];
11329
11731
  }
11330
11732
  function c(t) {
@@ -11342,9 +11744,9 @@ const _ = {
11342
11744
  }, d = (t, e) => [...t.map(v), ...e.map(v)].join("."), v = (t) => typeof t == "string" ? t : JSON.stringify(t);
11343
11745
  export {
11344
11746
  G as REMOTE_DATA_JSON_URL,
11345
- E as calcPrice,
11747
+ O as calcPrice,
11346
11748
  D as extractUsage,
11347
- O as findProvider,
11749
+ E as findProvider,
11348
11750
  N as updatePrices,
11349
11751
  Q as waitForUpdate
11350
11752
  };