@pydantic/genai-prices 0.0.38 → 0.0.40

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
@@ -463,13 +463,13 @@ const x = [
463
463
  ],
464
464
  models: [
465
465
  {
466
- id: "meta.llama3-8b-instruct-v1%3A0",
466
+ id: "meta.llama3-8b-instruct-v1:0",
467
467
  match: {
468
- equals: "meta.llama3-8b-instruct-v1%3A0"
468
+ contains: "llama3-8b-instruct-v1"
469
469
  },
470
470
  prices: {
471
- input_mtok: 220,
472
- output_mtok: 720
471
+ input_mtok: 0.3,
472
+ output_mtok: 0.6
473
473
  }
474
474
  },
475
475
  {
@@ -479,15 +479,13 @@ const x = [
479
479
  match: {
480
480
  or: [
481
481
  {
482
- equals: "nova-lite-v1"
483
- },
484
- {
485
- equals: "amazon.nova-lite-v1:0"
482
+ contains: "nova-lite-v1"
486
483
  }
487
484
  ]
488
485
  },
489
486
  prices: {
490
487
  input_mtok: 0.06,
488
+ cache_read_mtok: 0.015,
491
489
  output_mtok: 0.24
492
490
  }
493
491
  },
@@ -498,15 +496,13 @@ const x = [
498
496
  match: {
499
497
  or: [
500
498
  {
501
- equals: "nova-micro-v1"
502
- },
503
- {
504
- equals: "amazon.nova-micro-v1:0"
499
+ contains: "nova-micro-v1"
505
500
  }
506
501
  ]
507
502
  },
508
503
  prices: {
509
504
  input_mtok: 0.035,
505
+ cache_read_mtok: 875e-5,
510
506
  output_mtok: 0.14
511
507
  }
512
508
  },
@@ -517,15 +513,13 @@ const x = [
517
513
  match: {
518
514
  or: [
519
515
  {
520
- equals: "nova-pro-v1"
521
- },
522
- {
523
- equals: "amazon.nova-pro-v1:0"
516
+ contains: "nova-pro-v1"
524
517
  }
525
518
  ]
526
519
  },
527
520
  prices: {
528
521
  input_mtok: 0.8,
522
+ cache_read_mtok: 0.2,
529
523
  output_mtok: 3.2
530
524
  }
531
525
  }
@@ -1302,6 +1296,135 @@ const x = [
1302
1296
  }
1303
1297
  ]
1304
1298
  },
1299
+ {
1300
+ id: "cerebras",
1301
+ name: "Cerebras",
1302
+ pricing_urls: ["https://www.cerebras.ai/pricing#pricing", "https://inference-docs.cerebras.ai/models/openai-oss"],
1303
+ api_pattern: "https://api\\.cerebras\\.ai",
1304
+ model_match: {
1305
+ contains: "cerebras"
1306
+ },
1307
+ provider_match: {
1308
+ contains: "cerebras"
1309
+ },
1310
+ extractors: [
1311
+ {
1312
+ api_flavor: "chat",
1313
+ root: "usage",
1314
+ model_path: "model",
1315
+ mappings: [
1316
+ {
1317
+ path: "prompt_tokens",
1318
+ dest: "input_tokens",
1319
+ required: !0
1320
+ },
1321
+ {
1322
+ path: "completion_tokens",
1323
+ dest: "output_tokens",
1324
+ required: !0
1325
+ }
1326
+ ]
1327
+ }
1328
+ ],
1329
+ models: [
1330
+ {
1331
+ id: "gpt-oss-120b",
1332
+ name: "GPT-OSS 120B",
1333
+ description: "OpenAI's flagship open source model, built on a Mixture-of-Experts (MoE) architecture with 120 billion parameters and 128 experts. Delivers frontier reasoning capabilities with record-breaking inference speeds on Cerebras hardware (~3,000 tokens/second).",
1334
+ match: {
1335
+ or: [
1336
+ {
1337
+ equals: "gpt-oss-120b"
1338
+ },
1339
+ {
1340
+ starts_with: "cerebras/gpt-oss-120b"
1341
+ },
1342
+ {
1343
+ starts_with: "cerebras:gpt-oss-120b"
1344
+ }
1345
+ ]
1346
+ },
1347
+ context_window: 131072,
1348
+ price_comments: "Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.",
1349
+ prices: {
1350
+ input_mtok: 0.35,
1351
+ output_mtok: 0.75
1352
+ }
1353
+ },
1354
+ {
1355
+ id: "llama-3.3-70b",
1356
+ name: "Llama 3.3 70B",
1357
+ description: "Meta's enhanced 70B model delivering 405B-level accuracy. Optimized for chat, coding, instruction following, mathematics, and reasoning with high-speed inference on Cerebras hardware (~2,100 tokens/second).",
1358
+ match: {
1359
+ or: [
1360
+ {
1361
+ equals: "llama-3.3-70b"
1362
+ },
1363
+ {
1364
+ starts_with: "cerebras/llama-3.3-70b"
1365
+ },
1366
+ {
1367
+ starts_with: "cerebras:llama-3.3-70b"
1368
+ }
1369
+ ]
1370
+ },
1371
+ context_window: 128e3,
1372
+ price_comments: "Developer tier pricing. Free tier: 65k context, Paid tier: 128k context.",
1373
+ prices: {
1374
+ input_mtok: 0.85,
1375
+ output_mtok: 1.2
1376
+ }
1377
+ },
1378
+ {
1379
+ id: "llama3.1-8b",
1380
+ name: "Llama 3.1 8B",
1381
+ description: "Meta's Llama 3.1 8B model for general-purpose tasks including chat, coding, and instruction following. Optimized for fast inference on Cerebras hardware (~2,200 tokens/second).",
1382
+ match: {
1383
+ or: [
1384
+ {
1385
+ equals: "llama3.1-8b"
1386
+ },
1387
+ {
1388
+ starts_with: "cerebras/llama3.1-8b"
1389
+ },
1390
+ {
1391
+ starts_with: "cerebras:llama3.1-8b"
1392
+ }
1393
+ ]
1394
+ },
1395
+ context_window: 32768,
1396
+ price_comments: "Developer tier pricing. Free tier: 8k context, Paid tier: 32k context.",
1397
+ prices: {
1398
+ input_mtok: 0.1,
1399
+ output_mtok: 0.1
1400
+ }
1401
+ },
1402
+ {
1403
+ id: "qwen-3-32b",
1404
+ name: "Qwen 3 32B",
1405
+ description: "Qwen's 32B parameter model with enhanced reasoning and coding capabilities. Supports both standard and reasoning modes for complex tasks, with fast inference speeds on Cerebras hardware (~2,600 tokens/second).",
1406
+ match: {
1407
+ or: [
1408
+ {
1409
+ equals: "qwen-3-32b"
1410
+ },
1411
+ {
1412
+ starts_with: "cerebras/qwen-3-32b"
1413
+ },
1414
+ {
1415
+ starts_with: "cerebras:qwen-3-32b"
1416
+ }
1417
+ ]
1418
+ },
1419
+ context_window: 131072,
1420
+ price_comments: "Developer tier pricing. Free tier: 65k context, Paid tier: 131k context.",
1421
+ prices: {
1422
+ input_mtok: 0.4,
1423
+ output_mtok: 0.8
1424
+ }
1425
+ }
1426
+ ]
1427
+ },
1305
1428
  {
1306
1429
  id: "cohere",
1307
1430
  name: "Cohere",
@@ -1699,7 +1822,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
1699
1822
  {
1700
1823
  path: "promptTokenCount",
1701
1824
  dest: "input_tokens",
1702
- required: !0
1825
+ required: !1
1826
+ },
1827
+ {
1828
+ path: "cachedContentTokenCount",
1829
+ dest: "cache_read_tokens",
1830
+ required: !1
1703
1831
  },
1704
1832
  {
1705
1833
  path: [
@@ -1708,17 +1836,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
1708
1836
  type: "array-match",
1709
1837
  field: "modality",
1710
1838
  match: {
1711
- equals: "TEXT"
1839
+ equals: "AUDIO"
1712
1840
  }
1713
1841
  },
1714
1842
  "tokenCount"
1715
1843
  ],
1716
- dest: "cache_read_tokens",
1844
+ dest: "cache_audio_read_tokens",
1717
1845
  required: !1
1718
1846
  },
1719
1847
  {
1720
1848
  path: [
1721
- "cacheTokensDetails",
1849
+ "promptTokensDetails",
1722
1850
  {
1723
1851
  type: "array-match",
1724
1852
  field: "modality",
@@ -1728,12 +1856,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
1728
1856
  },
1729
1857
  "tokenCount"
1730
1858
  ],
1731
- dest: "cache_audio_read_tokens",
1859
+ dest: "input_audio_tokens",
1732
1860
  required: !1
1733
1861
  },
1734
1862
  {
1735
1863
  path: [
1736
- "promptTokensDetails",
1864
+ "candidatesTokensDetails",
1737
1865
  {
1738
1866
  type: "array-match",
1739
1867
  field: "modality",
@@ -1743,18 +1871,23 @@ Compared to other leading proprietary and open-weights models Command A delivers
1743
1871
  },
1744
1872
  "tokenCount"
1745
1873
  ],
1746
- dest: "input_audio_tokens",
1874
+ dest: "output_audio_tokens",
1747
1875
  required: !1
1748
1876
  },
1749
1877
  {
1750
1878
  path: "candidatesTokenCount",
1751
1879
  dest: "output_tokens",
1752
- required: !0
1880
+ required: !1
1753
1881
  },
1754
1882
  {
1755
1883
  path: "thoughtsTokenCount",
1756
1884
  dest: "output_tokens",
1757
1885
  required: !1
1886
+ },
1887
+ {
1888
+ path: "toolUsePromptTokenCount",
1889
+ dest: "output_tokens",
1890
+ required: !1
1758
1891
  }
1759
1892
  ]
1760
1893
  },
@@ -2400,6 +2533,16 @@ Compared to other leading proprietary and open-weights models Command A delivers
2400
2533
  output_mtok: 0.99
2401
2534
  }
2402
2535
  },
2536
+ {
2537
+ id: "gemma-7b-it",
2538
+ match: {
2539
+ equals: "gemma-7b-it"
2540
+ },
2541
+ prices: {
2542
+ input_mtok: 0.07,
2543
+ output_mtok: 0.07
2544
+ }
2545
+ },
2403
2546
  {
2404
2547
  id: "gemma2-9b-it",
2405
2548
  name: "Gemma 2 9B 8k",
@@ -2418,6 +2561,26 @@ Compared to other leading proprietary and open-weights models Command A delivers
2418
2561
  output_mtok: 0.2
2419
2562
  }
2420
2563
  },
2564
+ {
2565
+ id: "llama-3.1-405b-reasoning",
2566
+ match: {
2567
+ equals: "llama-3.1-405b-reasoning"
2568
+ },
2569
+ prices: {
2570
+ input_mtok: 0.59,
2571
+ output_mtok: 0.79
2572
+ }
2573
+ },
2574
+ {
2575
+ id: "llama-3.1-70b-versatile",
2576
+ match: {
2577
+ equals: "llama-3.1-70b-versatile"
2578
+ },
2579
+ prices: {
2580
+ input_mtok: 0.59,
2581
+ output_mtok: 0.79
2582
+ }
2583
+ },
2421
2584
  {
2422
2585
  id: "llama-3.1-8b-instant",
2423
2586
  name: "Llama 3.1 8B Instant 128k",
@@ -2429,6 +2592,76 @@ Compared to other leading proprietary and open-weights models Command A delivers
2429
2592
  output_mtok: 0.08
2430
2593
  }
2431
2594
  },
2595
+ {
2596
+ id: "llama-3.2-11b-text-preview",
2597
+ match: {
2598
+ equals: "llama-3.2-11b-text-preview"
2599
+ },
2600
+ prices: {
2601
+ input_mtok: 0.18,
2602
+ output_mtok: 0.18
2603
+ }
2604
+ },
2605
+ {
2606
+ id: "llama-3.2-11b-vision-preview",
2607
+ match: {
2608
+ equals: "llama-3.2-11b-vision-preview"
2609
+ },
2610
+ prices: {
2611
+ input_mtok: 0.18,
2612
+ output_mtok: 0.18
2613
+ }
2614
+ },
2615
+ {
2616
+ id: "llama-3.2-1b-preview",
2617
+ match: {
2618
+ equals: "llama-3.2-1b-preview"
2619
+ },
2620
+ prices: {
2621
+ input_mtok: 0.04,
2622
+ output_mtok: 0.04
2623
+ }
2624
+ },
2625
+ {
2626
+ id: "llama-3.2-3b-preview",
2627
+ match: {
2628
+ equals: "llama-3.2-3b-preview"
2629
+ },
2630
+ prices: {
2631
+ input_mtok: 0.06,
2632
+ output_mtok: 0.06
2633
+ }
2634
+ },
2635
+ {
2636
+ id: "llama-3.2-90b-text-preview",
2637
+ match: {
2638
+ equals: "llama-3.2-90b-text-preview"
2639
+ },
2640
+ prices: {
2641
+ input_mtok: 0.9,
2642
+ output_mtok: 0.9
2643
+ }
2644
+ },
2645
+ {
2646
+ id: "llama-3.2-90b-vision-preview",
2647
+ match: {
2648
+ equals: "llama-3.2-90b-vision-preview"
2649
+ },
2650
+ prices: {
2651
+ input_mtok: 0.9,
2652
+ output_mtok: 0.9
2653
+ }
2654
+ },
2655
+ {
2656
+ id: "llama-3.3-70b-specdec",
2657
+ match: {
2658
+ equals: "llama-3.3-70b-specdec"
2659
+ },
2660
+ prices: {
2661
+ input_mtok: 0.59,
2662
+ output_mtok: 0.99
2663
+ }
2664
+ },
2432
2665
  {
2433
2666
  id: "llama-3.3-70b-versatile",
2434
2667
  name: "Llama 3.3 70B Versatile 128k",
@@ -2440,6 +2673,16 @@ Compared to other leading proprietary and open-weights models Command A delivers
2440
2673
  output_mtok: 0.79
2441
2674
  }
2442
2675
  },
2676
+ {
2677
+ id: "llama-guard-3-8b",
2678
+ match: {
2679
+ equals: "llama-guard-3-8b"
2680
+ },
2681
+ prices: {
2682
+ input_mtok: 0.2,
2683
+ output_mtok: 0.2
2684
+ }
2685
+ },
2443
2686
  {
2444
2687
  id: "llama2-70b-4096",
2445
2688
  match: {
@@ -2525,15 +2768,43 @@ Compared to other leading proprietary and open-weights models Command A delivers
2525
2768
  output_mtok: 0.2
2526
2769
  }
2527
2770
  },
2771
+ {
2772
+ id: "mistral-saba-24b",
2773
+ match: {
2774
+ equals: "mistral-saba-24b"
2775
+ },
2776
+ prices: {
2777
+ input_mtok: 0.79,
2778
+ output_mtok: 0.79
2779
+ }
2780
+ },
2781
+ {
2782
+ id: "mixtral-8x7b-32768",
2783
+ match: {
2784
+ equals: "mixtral-8x7b-32768"
2785
+ },
2786
+ prices: {
2787
+ input_mtok: 0.24,
2788
+ output_mtok: 0.24
2789
+ }
2790
+ },
2528
2791
  {
2529
2792
  id: "moonshotai/kimi-k2-instruct",
2530
2793
  name: "Kimi K2 1T 128k",
2531
2794
  match: {
2532
- equals: "moonshotai/kimi-k2-instruct"
2795
+ or: [
2796
+ {
2797
+ equals: "moonshotai/kimi-k2-instruct"
2798
+ },
2799
+ {
2800
+ equals: "moonshotai/kimi-k2-instruct-0905"
2801
+ }
2802
+ ]
2533
2803
  },
2534
2804
  context_window: 131072,
2535
2805
  prices: {
2536
2806
  input_mtok: 1,
2807
+ cache_read_mtok: 0.5,
2537
2808
  output_mtok: 3
2538
2809
  }
2539
2810
  },
@@ -2543,12 +2814,20 @@ Compared to other leading proprietary and open-weights models Command A delivers
2543
2814
  120 billion parameters and 128 experts.
2544
2815
  `,
2545
2816
  match: {
2546
- equals: "openai/gpt-oss-120b"
2817
+ or: [
2818
+ {
2819
+ equals: "openai/gpt-oss-120b"
2820
+ },
2821
+ {
2822
+ equals: "openai/gpt-oss-safeguard-20b"
2823
+ }
2824
+ ]
2547
2825
  },
2548
2826
  context_window: 131072,
2549
2827
  prices: {
2550
2828
  input_mtok: 0.15,
2551
- output_mtok: 0.75
2829
+ cache_read_mtok: 0.075,
2830
+ output_mtok: 0.6
2552
2831
  }
2553
2832
  },
2554
2833
  {
@@ -2561,8 +2840,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
2561
2840
  },
2562
2841
  context_window: 131072,
2563
2842
  prices: {
2564
- input_mtok: 0.1,
2565
- output_mtok: 0.5
2843
+ input_mtok: 0.075,
2844
+ cache_read_mtok: 0.0375,
2845
+ output_mtok: 0.3
2566
2846
  }
2567
2847
  },
2568
2848
  {
@@ -3376,6 +3656,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
3376
3656
  required: !0
3377
3657
  }
3378
3658
  ]
3659
+ },
3660
+ {
3661
+ api_flavor: "embeddings",
3662
+ root: "usage",
3663
+ model_path: "model",
3664
+ mappings: [
3665
+ {
3666
+ path: "prompt_tokens",
3667
+ dest: "input_tokens",
3668
+ required: !0
3669
+ }
3670
+ ]
3379
3671
  }
3380
3672
  ],
3381
3673
  models: [
@@ -3438,6 +3730,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
3438
3730
  output_mtok: 6
3439
3731
  }
3440
3732
  },
3733
+ {
3734
+ id: "computer-use",
3735
+ name: "Computer use",
3736
+ match: {
3737
+ starts_with: "computer-use"
3738
+ },
3739
+ prices: {
3740
+ input_mtok: 3,
3741
+ output_mtok: 12
3742
+ }
3743
+ },
3441
3744
  {
3442
3745
  id: "curie",
3443
3746
  match: {
@@ -4087,11 +4390,59 @@ Compared to other leading proprietary and open-weights models Command A delivers
4087
4390
  }
4088
4391
  ]
4089
4392
  },
4393
+ context_window: 4e5,
4090
4394
  prices: {
4091
4395
  input_mtok: 15,
4092
4396
  output_mtok: 120
4093
4397
  }
4094
4398
  },
4399
+ {
4400
+ id: "gpt-5.1",
4401
+ name: "GPT-5.1",
4402
+ description: "The best model for coding and agentic tasks across industries",
4403
+ match: {
4404
+ or: [
4405
+ {
4406
+ equals: "gpt-5.1"
4407
+ },
4408
+ {
4409
+ equals: "gpt-5.1-2025-11-13"
4410
+ },
4411
+ {
4412
+ equals: "gpt-5.1-codex"
4413
+ },
4414
+ {
4415
+ equals: "gpt-5.1-chat-latest"
4416
+ }
4417
+ ]
4418
+ },
4419
+ context_window: 4e5,
4420
+ prices: {
4421
+ input_mtok: 1.25,
4422
+ cache_read_mtok: 0.125,
4423
+ output_mtok: 10
4424
+ }
4425
+ },
4426
+ {
4427
+ id: "gpt-5.1-codex-mini",
4428
+ name: "GPT-5.1 Codex Mini",
4429
+ match: {
4430
+ or: [
4431
+ {
4432
+ equals: "gpt-5.1-codex-mini"
4433
+ },
4434
+ {
4435
+ equals: "gpt-5.1-mini"
4436
+ }
4437
+ ]
4438
+ },
4439
+ context_window: 4e5,
4440
+ prices: {
4441
+ input_mtok: 0.25,
4442
+ cache_read_mtok: 0.025,
4443
+ output_mtok: 2
4444
+ }
4445
+ },
4095
4446
  {
4096
4447
  id: "gpt-realtime",
4097
4448
  match: {
@@ -11600,7 +11951,7 @@ function L(t, e) {
11600
11951
  const a = e.toLowerCase().trim(), i = t.find((o) => o.id === a);
11601
11952
  return i || t.find((o) => o.provider_match && h(o.provider_match, a));
11602
11953
  }
11603
- function y(t, { modelId: e, providerApiUrl: a, providerId: i }) {
11954
+ function B(t, { modelId: e, providerApiUrl: a, providerId: i }) {
11604
11955
  if (i)
11605
11956
  return L(t, i);
11606
11957
  if (a)
@@ -11618,22 +11969,22 @@ function S(t) {
11618
11969
  e !== null && (g = e);
11619
11970
  })) : (b = Promise.resolve(t), g = t));
11620
11971
  }
11621
- function A(t) {
11972
+ function C(t) {
11622
11973
  f = t;
11623
11974
  }
11624
- function N(t) {
11975
+ function Q(t) {
11625
11976
  t({
11626
- onCalc: A,
11977
+ onCalc: C,
11627
11978
  remoteDataUrl: G,
11628
11979
  setProviderData: S
11629
11980
  });
11630
11981
  }
11631
- function Q() {
11982
+ function N() {
11632
11983
  return b;
11633
11984
  }
11634
11985
  function O(t, e, a) {
11635
11986
  f?.();
11636
- const i = e.toLowerCase().trim(), o = a?.provider ?? y(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
11987
+ const i = e.toLowerCase().trim(), o = a?.provider ?? B(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
11637
11988
  if (!o) return null;
11638
11989
  const m = T(o.models, i);
11639
11990
  if (!m) return null;
@@ -11646,10 +11997,10 @@ function O(t, e, a) {
11646
11997
  ...n
11647
11998
  };
11648
11999
  }
11649
- function E(t) {
11650
- return f?.(), y(g, t);
12000
+ function D(t) {
12001
+ return f?.(), B(g, t);
11651
12002
  }
11652
- function D(t, e, a) {
12003
+ function E(t, e, a) {
11653
12004
  if (a = a ?? "default", !t.extractors)
11654
12005
  throw new Error("No extraction logic defined for this provider");
11655
12006
  const i = t.extractors.find((n) => n.api_flavor === a);
@@ -11659,7 +12010,7 @@ function D(t, e, a) {
11659
12010
  }
11660
12011
  if (!_.guard(e))
11661
12012
  throw new Error(`Expected response data to be a mapping object, got ${c(e)}`);
11662
- const o = q(i.model_path, e, C, !1, []), m = B(i.root), r = q(m, e, _, !0, []), s = {};
12013
+ const o = q(i.model_path, e, R, !1, []), m = y(i.root), r = q(m, e, _, !0, []), s = {};
11663
12014
  for (const n of i.mappings) {
11664
12015
  const u = q(n.path, r, z, n.required, m);
11665
12016
  if (u !== null) {
@@ -11672,7 +12023,7 @@ function D(t, e, a) {
11672
12023
  return { model: o, usage: s };
11673
12024
  }
11674
12025
  function q(t, e, a, i, o) {
11675
- const [m, ...r] = B(t).reverse();
12026
+ const [m, ...r] = y(t).reverse();
11676
12027
  if (typeof m != "string")
11677
12028
  throw new Error(`Expected last step of path to be a string, got ${c(m)}`);
11678
12029
  r.reverse();
@@ -11681,7 +12032,7 @@ function q(t, e, a, i, o) {
11681
12032
  for (const p of r) {
11682
12033
  if (n.push(p), typeof p == "object")
11683
12034
  if (Array.isArray(s))
11684
- s = R(p, s);
12035
+ s = A(p, s);
11685
12036
  else {
11686
12037
  if (i)
11687
12038
  throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
@@ -11718,7 +12069,7 @@ function q(t, e, a, i, o) {
11718
12069
  throw n.push(m), new Error(`Expected \`${d(o, n)}\` value to be a ${a.name}, got ${c(u)}`);
11719
12070
  return null;
11720
12071
  }
11721
- function R(t, e) {
12072
+ function A(t, e) {
11722
12073
  for (const a of e)
11723
12074
  if (_.guard(a)) {
11724
12075
  const i = a[t.field];
@@ -11726,7 +12077,7 @@ function R(t, e) {
11726
12077
  return a;
11727
12078
  }
11728
12079
  }
11729
- function B(t) {
12080
+ function y(t) {
11730
12081
  return Array.isArray(t) ? [...t] : [t];
11731
12082
  }
11732
12083
  function c(t) {
@@ -11735,7 +12086,7 @@ function c(t) {
11735
12086
  const _ = {
11736
12087
  guard: (t) => c(t) === "mapping",
11737
12088
  name: "mapping"
11738
- }, C = {
12089
+ }, R = {
11739
12090
  guard: (t) => typeof t == "string",
11740
12091
  name: "string"
11741
12092
  }, z = {
@@ -11745,8 +12096,8 @@ const _ = {
11745
12096
  export {
11746
12097
  G as REMOTE_DATA_JSON_URL,
11747
12098
  O as calcPrice,
11748
- D as extractUsage,
11749
- E as findProvider,
11750
- N as updatePrices,
11751
- Q as waitForUpdate
12099
+ E as extractUsage,
12100
+ D as findProvider,
12101
+ Q as updatePrices,
12102
+ N as waitForUpdate
11752
12103
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pydantic/genai-prices",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "description": "Calculate prices for calling LLM inference APIs",
5
5
  "author": "Pydantic Team",
6
6
  "type": "module",