@pydantic/genai-prices 0.0.41 → 0.0.43

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
@@ -47,6 +47,28 @@ const x = [
47
47
  required: !0
48
48
  }
49
49
  ]
50
+ },
51
+ {
52
+ api_flavor: "chat",
53
+ root: "usage",
54
+ model_path: "model",
55
+ mappings: [
56
+ {
57
+ path: "prompt_tokens",
58
+ dest: "input_tokens",
59
+ required: !0
60
+ },
61
+ {
62
+ path: "cached_tokens",
63
+ dest: "cache_read_tokens",
64
+ required: !1
65
+ },
66
+ {
67
+ path: "completion_tokens",
68
+ dest: "output_tokens",
69
+ required: !0
70
+ }
71
+ ]
50
72
  }
51
73
  ],
52
74
  models: [
@@ -254,64 +276,820 @@ const x = [
254
276
  equals: "claude-opus-4"
255
277
  },
256
278
  {
257
- equals: "claude-opus-4-20250514"
279
+ equals: "claude-opus-4-20250514"
280
+ }
281
+ ]
282
+ },
283
+ context_window: 2e5,
284
+ prices: {
285
+ input_mtok: 15,
286
+ cache_write_mtok: 18.75,
287
+ cache_read_mtok: 1.5,
288
+ output_mtok: 75
289
+ }
290
+ },
291
+ {
292
+ id: "claude-opus-4-1",
293
+ name: "Claude Opus 4.1",
294
+ description: "Most intelligent model for complex tasks",
295
+ match: {
296
+ or: [
297
+ {
298
+ starts_with: "claude-opus-4-1"
299
+ },
300
+ {
301
+ starts_with: "claude-opus-4.1"
302
+ }
303
+ ]
304
+ },
305
+ context_window: 2e5,
306
+ prices: {
307
+ input_mtok: 15,
308
+ cache_write_mtok: 18.75,
309
+ cache_read_mtok: 1.5,
310
+ output_mtok: 75
311
+ }
312
+ },
313
+ {
314
+ id: "claude-sonnet-4-0",
315
+ name: "Claude Sonnet 4",
316
+ description: "Optimal balance of intelligence, cost, and speed",
317
+ match: {
318
+ or: [
319
+ {
320
+ starts_with: "claude-sonnet-4-2025"
321
+ },
322
+ {
323
+ starts_with: "claude-sonnet-4-0"
324
+ },
325
+ {
326
+ starts_with: "claude-sonnet-4@"
327
+ },
328
+ {
329
+ equals: "claude-sonnet-4"
330
+ },
331
+ {
332
+ starts_with: "claude-4-sonnet"
333
+ }
334
+ ]
335
+ },
336
+ context_window: 2e5,
337
+ prices: {
338
+ input_mtok: 3,
339
+ cache_write_mtok: 3.75,
340
+ cache_read_mtok: 0.3,
341
+ output_mtok: 15
342
+ }
343
+ },
344
+ {
345
+ id: "claude-sonnet-4-5",
346
+ name: "Claude Sonnet 4.5",
347
+ description: "Most intelligent model for building agents and coding",
348
+ match: {
349
+ or: [
350
+ {
351
+ starts_with: "claude-sonnet-4-5"
352
+ },
353
+ {
354
+ starts_with: "claude-sonnet-4.5"
355
+ }
356
+ ]
357
+ },
358
+ context_window: 1e6,
359
+ prices: {
360
+ input_mtok: {
361
+ base: 3,
362
+ tiers: [
363
+ {
364
+ start: 2e5,
365
+ price: 6
366
+ }
367
+ ]
368
+ },
369
+ cache_write_mtok: {
370
+ base: 3.75,
371
+ tiers: [
372
+ {
373
+ start: 2e5,
374
+ price: 7.5
375
+ }
376
+ ]
377
+ },
378
+ cache_read_mtok: {
379
+ base: 0.3,
380
+ tiers: [
381
+ {
382
+ start: 2e5,
383
+ price: 0.6
384
+ }
385
+ ]
386
+ },
387
+ output_mtok: {
388
+ base: 15,
389
+ tiers: [
390
+ {
391
+ start: 2e5,
392
+ price: 22.5
393
+ }
394
+ ]
395
+ }
396
+ }
397
+ },
398
+ {
399
+ id: "claude-v1",
400
+ description: "Retired, here to match price sources",
401
+ match: {
402
+ equals: "claude-v1"
403
+ },
404
+ prices: {
405
+ input_mtok: 8,
406
+ output_mtok: 24
407
+ }
408
+ }
409
+ ]
410
+ },
411
+ {
412
+ id: "avian",
413
+ name: "Avian",
414
+ pricing_urls: ["https://avian.io/pricing/"],
415
+ api_pattern: "https://api\\.avian\\.io",
416
+ models: [
417
+ {
418
+ id: "Meta-Llama-3.1-405B-Instruct",
419
+ match: {
420
+ equals: "Meta-Llama-3.1-405B-Instruct"
421
+ },
422
+ prices: {
423
+ input_mtok: 1.5,
424
+ output_mtok: 1.5
425
+ }
426
+ },
427
+ {
428
+ id: "Meta-Llama-3.1-70B-Instruct",
429
+ match: {
430
+ equals: "Meta-Llama-3.1-70B-Instruct"
431
+ },
432
+ prices: {
433
+ input_mtok: 0.45,
434
+ output_mtok: 0.45
435
+ }
436
+ },
437
+ {
438
+ id: "Meta-Llama-3.1-8B-Instruct",
439
+ match: {
440
+ equals: "Meta-Llama-3.1-8B-Instruct"
441
+ },
442
+ prices: {
443
+ input_mtok: 0.1,
444
+ output_mtok: 0.1
445
+ }
446
+ },
447
+ {
448
+ id: "Meta-Llama-3.3-70B-Instruct",
449
+ match: {
450
+ equals: "Meta-Llama-3.3-70B-Instruct"
451
+ },
452
+ prices: {
453
+ input_mtok: 0.45,
454
+ output_mtok: 0.45
455
+ }
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ id: "aws",
461
+ name: "AWS Bedrock",
462
+ pricing_urls: ["https://aws.amazon.com/bedrock/pricing/"],
463
+ api_pattern: "https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/",
464
+ provider_match: {
465
+ contains: "bedrock"
466
+ },
467
+ extractors: [
468
+ {
469
+ api_flavor: "default",
470
+ root: "usage",
471
+ model_path: "model",
472
+ mappings: [
473
+ {
474
+ path: "inputTokens",
475
+ dest: "input_tokens",
476
+ required: !0
477
+ },
478
+ {
479
+ path: "outputTokens",
480
+ dest: "output_tokens",
481
+ required: !0
482
+ }
483
+ ]
484
+ },
485
+ {
486
+ api_flavor: "anthropic",
487
+ root: "usage",
488
+ model_path: "model",
489
+ mappings: [
490
+ {
491
+ path: "input_tokens",
492
+ dest: "input_tokens",
493
+ required: !0
494
+ },
495
+ {
496
+ path: "cache_creation_input_tokens",
497
+ dest: "input_tokens",
498
+ required: !1
499
+ },
500
+ {
501
+ path: "cache_read_input_tokens",
502
+ dest: "input_tokens",
503
+ required: !1
504
+ },
505
+ {
506
+ path: "cache_creation_input_tokens",
507
+ dest: "cache_write_tokens",
508
+ required: !1
509
+ },
510
+ {
511
+ path: "cache_read_input_tokens",
512
+ dest: "cache_read_tokens",
513
+ required: !1
514
+ },
515
+ {
516
+ path: "output_tokens",
517
+ dest: "output_tokens",
518
+ required: !0
519
+ }
520
+ ]
521
+ }
522
+ ],
523
+ models: [
524
+ {
525
+ id: "amazon.nova-lite-v1:0",
526
+ name: "Nova Lite",
527
+ description: "Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.",
528
+ match: {
529
+ contains: "nova-lite"
530
+ },
531
+ prices: {
532
+ input_mtok: 0.06,
533
+ cache_read_mtok: 0.015,
534
+ output_mtok: 0.24
535
+ }
536
+ },
537
+ {
538
+ id: "amazon.nova-micro-v1:0",
539
+ name: "Nova Micro",
540
+ description: "Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.",
541
+ match: {
542
+ contains: "nova-micro"
543
+ },
544
+ prices: {
545
+ input_mtok: 0.035,
546
+ cache_read_mtok: 875e-5,
547
+ output_mtok: 0.14
548
+ }
549
+ },
550
+ {
551
+ id: "amazon.nova-premier-v1:0",
552
+ name: "Nova Premier",
553
+ match: {
554
+ contains: "nova-premier"
555
+ },
556
+ prices: {
557
+ input_mtok: 2.5,
558
+ cache_read_mtok: 0.625,
559
+ output_mtok: 12.5
560
+ }
561
+ },
562
+ {
563
+ id: "amazon.nova-pro-v1:0",
564
+ name: "Nova Pro",
565
+ description: "Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).",
566
+ match: {
567
+ contains: "nova-pro"
568
+ },
569
+ prices: {
570
+ input_mtok: 0.8,
571
+ cache_read_mtok: 0.2,
572
+ output_mtok: 3.2
573
+ }
574
+ },
575
+ {
576
+ id: "amazon.nova-sonic-v1:0",
577
+ name: "Nova Sonic",
578
+ match: {
579
+ contains: "nova-sonic"
580
+ },
581
+ prices: {
582
+ input_mtok: 0.06,
583
+ output_mtok: 0.24,
584
+ input_audio_mtok: 3.4,
585
+ output_audio_mtok: 13.6
586
+ }
587
+ },
588
+ {
589
+ id: "amazon.titan-embed-text-v1",
590
+ name: "Titan Embeddings G1 - Text",
591
+ match: {
592
+ contains: "titan-embed-text"
593
+ },
594
+ prices: {
595
+ input_mtok: 0.1
596
+ }
597
+ },
598
+ {
599
+ id: "amazon.titan-text-express-v1",
600
+ name: "Titan Text G1 - Express",
601
+ match: {
602
+ contains: "titan-text-express"
603
+ },
604
+ prices: {
605
+ input_mtok: 0.2,
606
+ output_mtok: 0.6
607
+ }
608
+ },
609
+ {
610
+ id: "amazon.titan-text-lite-v1",
611
+ name: "Titan Text G1 - Lite",
612
+ match: {
613
+ contains: "titan-text-lite"
614
+ },
615
+ prices: {
616
+ input_mtok: 0.15,
617
+ output_mtok: 0.2
618
+ }
619
+ },
620
+ {
621
+ id: "deepseek.r1-v1:0",
622
+ name: "DeepSeek-R1",
623
+ match: {
624
+ contains: "r1"
625
+ },
626
+ prices: {
627
+ input_mtok: 1.35,
628
+ output_mtok: 5.4
629
+ }
630
+ },
631
+ {
632
+ id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
633
+ match: {
634
+ starts_with: "global.anthropic.claude-haiku-4-5-20251001-v1"
635
+ },
636
+ prices: {
637
+ input_mtok: 1,
638
+ cache_write_mtok: 1.25,
639
+ cache_read_mtok: 0.1,
640
+ output_mtok: 5
641
+ }
642
+ },
643
+ {
644
+ id: "global.anthropic.claude-sonnet-4-20250514-v1:0",
645
+ match: {
646
+ starts_with: "global.anthropic.claude-sonnet-4-20250514-v1"
647
+ },
648
+ prices: {
649
+ input_mtok: 3,
650
+ cache_write_mtok: 3.75,
651
+ cache_read_mtok: 0.3,
652
+ output_mtok: 15
653
+ }
654
+ },
655
+ {
656
+ id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
657
+ match: {
658
+ starts_with: "global.anthropic.claude-sonnet-4-5-20250929-v1"
659
+ },
660
+ prices: {
661
+ input_mtok: 3,
662
+ cache_write_mtok: 3.75,
663
+ cache_read_mtok: 0.3,
664
+ output_mtok: 15
665
+ }
666
+ },
667
+ {
668
+ id: "meta.llama3-1-70b-instruct-v1:0",
669
+ name: "Llama 3.1 70B Instruct",
670
+ match: {
671
+ contains: "llama3-1-70b-instruct"
672
+ },
673
+ prices: {
674
+ input_mtok: 0.72,
675
+ output_mtok: 0.72
676
+ }
677
+ },
678
+ {
679
+ id: "meta.llama3-1-8b-instruct-v1:0",
680
+ name: "Llama 3.1 8B Instruct",
681
+ match: {
682
+ contains: "llama3-1-8b-instruct"
683
+ },
684
+ prices: {
685
+ input_mtok: 0.22,
686
+ output_mtok: 0.22
687
+ }
688
+ },
689
+ {
690
+ id: "meta.llama3-2-11b-instruct-v1:0",
691
+ name: "Llama 3.2 11B Instruct",
692
+ match: {
693
+ contains: "llama3-2-11b-instruct"
694
+ },
695
+ prices: {
696
+ input_mtok: 0.16,
697
+ output_mtok: 0.16
698
+ }
699
+ },
700
+ {
701
+ id: "meta.llama3-2-1b-instruct-v1:0",
702
+ name: "Llama 3.2 1B Instruct",
703
+ match: {
704
+ contains: "llama3-2-1b-instruct"
705
+ },
706
+ prices: {
707
+ input_mtok: 0.1,
708
+ output_mtok: 0.1
709
+ }
710
+ },
711
+ {
712
+ id: "meta.llama3-2-3b-instruct-v1:0",
713
+ name: "Llama 3.2 3B Instruct",
714
+ match: {
715
+ contains: "llama3-2-3b-instruct"
716
+ },
717
+ prices: {
718
+ input_mtok: 0.15,
719
+ output_mtok: 0.15
720
+ }
721
+ },
722
+ {
723
+ id: "meta.llama3-2-90b-instruct-v1:0",
724
+ name: "Llama 3.2 90B Instruct",
725
+ match: {
726
+ contains: "llama3-2-90b-instruct"
727
+ },
728
+ prices: {
729
+ input_mtok: 0.72,
730
+ output_mtok: 0.72
731
+ }
732
+ },
733
+ {
734
+ id: "meta.llama3-3-70b-instruct-v1:0",
735
+ name: "Llama 3.3 70B Instruct",
736
+ match: {
737
+ contains: "llama3-3-70b-instruct"
738
+ },
739
+ prices: {
740
+ input_mtok: 0.72,
741
+ output_mtok: 0.72
742
+ }
743
+ },
744
+ {
745
+ id: "meta.llama3-70b-instruct-v1:0",
746
+ name: "Llama 3 70B Instruct",
747
+ match: {
748
+ contains: "llama3-70b-instruct"
749
+ },
750
+ prices: {
751
+ input_mtok: 2.65,
752
+ output_mtok: 3.5
753
+ }
754
+ },
755
+ {
756
+ id: "meta.llama3-8b-instruct-v1:0",
757
+ name: "Llama 3 8B Instruct",
758
+ match: {
759
+ contains: "llama3-8b-instruct"
760
+ },
761
+ prices: {
762
+ input_mtok: 0.3,
763
+ output_mtok: 0.6
764
+ }
765
+ },
766
+ {
767
+ id: "meta.llama4-maverick-17b-instruct-v1:0",
768
+ name: "Llama 4 Maverick 17B Instruct",
769
+ match: {
770
+ contains: "llama4-maverick-17b-instruct"
771
+ },
772
+ prices: {
773
+ input_mtok: 0.24,
774
+ output_mtok: 0.97
775
+ }
776
+ },
777
+ {
778
+ id: "meta.llama4-scout-17b-instruct-v1:0",
779
+ name: "Llama 4 Scout 17B Instruct",
780
+ match: {
781
+ contains: "llama4-scout-17b-instruct"
782
+ },
783
+ prices: {
784
+ input_mtok: 0.17,
785
+ output_mtok: 0.66
786
+ }
787
+ },
788
+ {
789
+ id: "mistral.mistral-7b-instruct-v0:2",
790
+ name: "Mistral 7B Instruct",
791
+ match: {
792
+ contains: "mistral-7b-instruct"
793
+ },
794
+ prices: {
795
+ input_mtok: 0.15,
796
+ output_mtok: 0.2
797
+ }
798
+ },
799
+ {
800
+ id: "mistral.mistral-large-2402-v1:0",
801
+ name: "Mistral Large (24.02)",
802
+ match: {
803
+ contains: "mistral-large-2402"
804
+ },
805
+ prices: {
806
+ input_mtok: 4,
807
+ output_mtok: 12
808
+ }
809
+ },
810
+ {
811
+ id: "mistral.mistral-small-2402-v1:0",
812
+ name: "Mistral Small (24.02)",
813
+ match: {
814
+ contains: "mistral-small-2402"
815
+ },
816
+ prices: {
817
+ input_mtok: 1,
818
+ output_mtok: 3
819
+ }
820
+ },
821
+ {
822
+ id: "mistral.mixtral-8x7b-instruct-v0:1",
823
+ name: "Mixtral 8x7B Instruct",
824
+ match: {
825
+ contains: "mixtral-8x7b-instruct"
826
+ },
827
+ prices: {
828
+ input_mtok: 0.45,
829
+ output_mtok: 0.7
830
+ }
831
+ },
832
+ {
833
+ id: "mistral.pixtral-large-2502-v1:0",
834
+ name: "Pixtral Large (25.02)",
835
+ match: {
836
+ contains: "pixtral-large-2502"
837
+ },
838
+ prices: {
839
+ input_mtok: 2,
840
+ output_mtok: 6
841
+ }
842
+ },
843
+ {
844
+ id: "openai.gpt-oss-120b-1:0",
845
+ name: "gpt-oss-120b",
846
+ match: {
847
+ contains: "gpt-oss-120b"
848
+ },
849
+ prices: {
850
+ input_mtok: 0.15,
851
+ output_mtok: 0.6
852
+ }
853
+ },
854
+ {
855
+ id: "openai.gpt-oss-20b-1:0",
856
+ name: "gpt-oss-20b",
857
+ match: {
858
+ contains: "gpt-oss-20b"
859
+ },
860
+ prices: {
861
+ input_mtok: 0.07,
862
+ output_mtok: 0.3
863
+ }
864
+ },
865
+ {
866
+ id: "qwen.qwen3-32b-v1:0",
867
+ name: "Qwen3 32B (dense)",
868
+ match: {
869
+ contains: "qwen3-32b"
870
+ },
871
+ prices: {
872
+ input_mtok: 0.15,
873
+ output_mtok: 0.6
874
+ }
875
+ },
876
+ {
877
+ id: "qwen.qwen3-coder-30b-a3b-v1:0",
878
+ name: "Qwen3-Coder-30B-A3B-Instruct",
879
+ match: {
880
+ contains: "qwen3-coder-30b-a3b"
881
+ },
882
+ prices: {
883
+ input_mtok: 0.15,
884
+ output_mtok: 0.6
885
+ }
886
+ },
887
+ {
888
+ id: "regional.anthropic.claude-3-5-haiku-20241022-v1:0",
889
+ match: {
890
+ or: [
891
+ {
892
+ starts_with: "us.anthropic.claude-3-5-haiku-20241022-v1"
893
+ },
894
+ {
895
+ starts_with: "au.anthropic.claude-3-5-haiku-20241022-v1"
896
+ },
897
+ {
898
+ starts_with: "apac.anthropic.claude-3-5-haiku-20241022-v1"
899
+ },
900
+ {
901
+ starts_with: "eu.anthropic.claude-3-5-haiku-20241022-v1"
902
+ },
903
+ {
904
+ starts_with: "us-gov.anthropic.claude-3-5-haiku-20241022-v1"
905
+ },
906
+ {
907
+ starts_with: "jp.anthropic.claude-3-5-haiku-20241022-v1"
908
+ }
909
+ ]
910
+ },
911
+ prices: {
912
+ input_mtok: 0.8,
913
+ cache_write_mtok: 1,
914
+ cache_read_mtok: 0.08,
915
+ output_mtok: 4
916
+ }
917
+ },
918
+ {
919
+ id: "regional.anthropic.claude-3-5-sonnet-20240620-v1:0",
920
+ match: {
921
+ or: [
922
+ {
923
+ starts_with: "us.anthropic.claude-3-5-sonnet-20240620-v1"
924
+ },
925
+ {
926
+ starts_with: "au.anthropic.claude-3-5-sonnet-20240620-v1"
927
+ },
928
+ {
929
+ starts_with: "apac.anthropic.claude-3-5-sonnet-20240620-v1"
930
+ },
931
+ {
932
+ starts_with: "eu.anthropic.claude-3-5-sonnet-20240620-v1"
933
+ },
934
+ {
935
+ starts_with: "us-gov.anthropic.claude-3-5-sonnet-20240620-v1"
936
+ },
937
+ {
938
+ starts_with: "jp.anthropic.claude-3-5-sonnet-20240620-v1"
939
+ }
940
+ ]
941
+ },
942
+ prices: {
943
+ input_mtok: 3,
944
+ cache_write_mtok: 3.75,
945
+ cache_read_mtok: 0.3,
946
+ output_mtok: 15
947
+ }
948
+ },
949
+ {
950
+ id: "regional.anthropic.claude-3-5-sonnet-20241022-v2:0",
951
+ match: {
952
+ or: [
953
+ {
954
+ starts_with: "us.anthropic.claude-3-5-sonnet-20241022-v2"
955
+ },
956
+ {
957
+ starts_with: "au.anthropic.claude-3-5-sonnet-20241022-v2"
958
+ },
959
+ {
960
+ starts_with: "apac.anthropic.claude-3-5-sonnet-20241022-v2"
961
+ },
962
+ {
963
+ starts_with: "eu.anthropic.claude-3-5-sonnet-20241022-v2"
964
+ },
965
+ {
966
+ starts_with: "us-gov.anthropic.claude-3-5-sonnet-20241022-v2"
967
+ },
968
+ {
969
+ starts_with: "jp.anthropic.claude-3-5-sonnet-20241022-v2"
970
+ }
971
+ ]
972
+ },
973
+ prices: {
974
+ input_mtok: 3,
975
+ cache_write_mtok: 3.75,
976
+ cache_read_mtok: 0.3,
977
+ output_mtok: 15
978
+ }
979
+ },
980
+ {
981
+ id: "regional.anthropic.claude-3-7-sonnet-20250219-v1:0",
982
+ match: {
983
+ or: [
984
+ {
985
+ starts_with: "us.anthropic.claude-3-7-sonnet-20250219-v1"
986
+ },
987
+ {
988
+ starts_with: "au.anthropic.claude-3-7-sonnet-20250219-v1"
989
+ },
990
+ {
991
+ starts_with: "apac.anthropic.claude-3-7-sonnet-20250219-v1"
992
+ },
993
+ {
994
+ starts_with: "eu.anthropic.claude-3-7-sonnet-20250219-v1"
995
+ },
996
+ {
997
+ starts_with: "us-gov.anthropic.claude-3-7-sonnet-20250219-v1"
998
+ },
999
+ {
1000
+ starts_with: "jp.anthropic.claude-3-7-sonnet-20250219-v1"
1001
+ }
1002
+ ]
1003
+ },
1004
+ prices: {
1005
+ input_mtok: 3,
1006
+ cache_write_mtok: 3.75,
1007
+ cache_read_mtok: 0.3,
1008
+ output_mtok: 15
1009
+ }
1010
+ },
1011
+ {
1012
+ id: "regional.anthropic.claude-3-haiku-20240307-v1:0",
1013
+ match: {
1014
+ or: [
1015
+ {
1016
+ starts_with: "us.anthropic.claude-3-haiku-20240307-v1"
1017
+ },
1018
+ {
1019
+ starts_with: "au.anthropic.claude-3-haiku-20240307-v1"
1020
+ },
1021
+ {
1022
+ starts_with: "apac.anthropic.claude-3-haiku-20240307-v1"
1023
+ },
1024
+ {
1025
+ starts_with: "eu.anthropic.claude-3-haiku-20240307-v1"
1026
+ },
1027
+ {
1028
+ starts_with: "us-gov.anthropic.claude-3-haiku-20240307-v1"
1029
+ },
1030
+ {
1031
+ starts_with: "jp.anthropic.claude-3-haiku-20240307-v1"
258
1032
  }
259
1033
  ]
260
1034
  },
261
- context_window: 2e5,
262
1035
  prices: {
263
- input_mtok: 15,
264
- cache_write_mtok: 18.75,
265
- cache_read_mtok: 1.5,
266
- output_mtok: 75
1036
+ input_mtok: 0.25,
1037
+ output_mtok: 1.25
267
1038
  }
268
1039
  },
269
1040
  {
270
- id: "claude-opus-4-1",
271
- name: "Claude Opus 4.1",
272
- description: "Most intelligent model for complex tasks",
1041
+ id: "regional.anthropic.claude-3-opus-20240229-v1:0",
273
1042
  match: {
274
1043
  or: [
275
1044
  {
276
- starts_with: "claude-opus-4-1"
1045
+ starts_with: "us.anthropic.claude-3-opus-20240229-v1"
277
1046
  },
278
1047
  {
279
- starts_with: "claude-opus-4.1"
1048
+ starts_with: "au.anthropic.claude-3-opus-20240229-v1"
1049
+ },
1050
+ {
1051
+ starts_with: "apac.anthropic.claude-3-opus-20240229-v1"
1052
+ },
1053
+ {
1054
+ starts_with: "eu.anthropic.claude-3-opus-20240229-v1"
1055
+ },
1056
+ {
1057
+ starts_with: "us-gov.anthropic.claude-3-opus-20240229-v1"
1058
+ },
1059
+ {
1060
+ starts_with: "jp.anthropic.claude-3-opus-20240229-v1"
280
1061
  }
281
1062
  ]
282
1063
  },
283
- context_window: 2e5,
284
1064
  prices: {
285
1065
  input_mtok: 15,
286
- cache_write_mtok: 18.75,
287
- cache_read_mtok: 1.5,
288
1066
  output_mtok: 75
289
1067
  }
290
1068
  },
291
1069
  {
292
- id: "claude-sonnet-4-0",
293
- name: "Claude Sonnet 4",
294
- description: "Optimal balance of intelligence, cost, and speed",
1070
+ id: "regional.anthropic.claude-3-sonnet-20240229-v1:0",
295
1071
  match: {
296
1072
  or: [
297
1073
  {
298
- starts_with: "claude-sonnet-4-2025"
1074
+ starts_with: "us.anthropic.claude-3-sonnet-20240229-v1"
299
1075
  },
300
1076
  {
301
- starts_with: "claude-sonnet-4-0"
1077
+ starts_with: "au.anthropic.claude-3-sonnet-20240229-v1"
302
1078
  },
303
1079
  {
304
- starts_with: "claude-sonnet-4@"
1080
+ starts_with: "apac.anthropic.claude-3-sonnet-20240229-v1"
305
1081
  },
306
1082
  {
307
- equals: "claude-sonnet-4"
1083
+ starts_with: "eu.anthropic.claude-3-sonnet-20240229-v1"
308
1084
  },
309
1085
  {
310
- starts_with: "claude-4-sonnet"
1086
+ starts_with: "us-gov.anthropic.claude-3-sonnet-20240229-v1"
1087
+ },
1088
+ {
1089
+ starts_with: "jp.anthropic.claude-3-sonnet-20240229-v1"
311
1090
  }
312
1091
  ]
313
1092
  },
314
- context_window: 2e5,
315
1093
  prices: {
316
1094
  input_mtok: 3,
317
1095
  cache_write_mtok: 3.75,
@@ -320,207 +1098,158 @@ const x = [
320
1098
  }
321
1099
  },
322
1100
  {
323
- id: "claude-sonnet-4-5",
324
- name: "Claude Sonnet 4.5",
325
- description: "Most intelligent model for building agents and coding",
1101
+ id: "regional.anthropic.claude-haiku-4-5-20251001-v1:0",
326
1102
  match: {
327
1103
  or: [
328
1104
  {
329
- starts_with: "claude-sonnet-4-5"
1105
+ starts_with: "us.anthropic.claude-haiku-4-5-20251001-v1"
330
1106
  },
331
1107
  {
332
- starts_with: "claude-sonnet-4.5"
1108
+ starts_with: "au.anthropic.claude-haiku-4-5-20251001-v1"
1109
+ },
1110
+ {
1111
+ starts_with: "apac.anthropic.claude-haiku-4-5-20251001-v1"
1112
+ },
1113
+ {
1114
+ starts_with: "eu.anthropic.claude-haiku-4-5-20251001-v1"
1115
+ },
1116
+ {
1117
+ starts_with: "us-gov.anthropic.claude-haiku-4-5-20251001-v1"
1118
+ },
1119
+ {
1120
+ starts_with: "jp.anthropic.claude-haiku-4-5-20251001-v1"
333
1121
  }
334
1122
  ]
335
1123
  },
336
- context_window: 1e6,
337
- prices: {
338
- input_mtok: {
339
- base: 3,
340
- tiers: [
341
- {
342
- start: 2e5,
343
- price: 6
344
- }
345
- ]
346
- },
347
- cache_write_mtok: {
348
- base: 3.75,
349
- tiers: [
350
- {
351
- start: 2e5,
352
- price: 7.5
353
- }
354
- ]
355
- },
356
- cache_read_mtok: {
357
- base: 0.3,
358
- tiers: [
359
- {
360
- start: 2e5,
361
- price: 0.6
362
- }
363
- ]
364
- },
365
- output_mtok: {
366
- base: 15,
367
- tiers: [
368
- {
369
- start: 2e5,
370
- price: 22.5
371
- }
372
- ]
373
- }
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
- }
386
- }
387
- ]
388
- },
389
- {
390
- id: "avian",
391
- name: "Avian",
392
- pricing_urls: ["https://avian.io/pricing/"],
393
- api_pattern: "https://api\\.avian\\.io",
394
- models: [
395
- {
396
- id: "Meta-Llama-3.1-405B-Instruct",
397
- match: {
398
- equals: "Meta-Llama-3.1-405B-Instruct"
399
- },
400
- prices: {
401
- input_mtok: 1.5,
402
- output_mtok: 1.5
403
- }
404
- },
405
- {
406
- id: "Meta-Llama-3.1-70B-Instruct",
407
- match: {
408
- equals: "Meta-Llama-3.1-70B-Instruct"
409
- },
410
- prices: {
411
- input_mtok: 0.45,
412
- output_mtok: 0.45
413
- }
414
- },
415
- {
416
- id: "Meta-Llama-3.1-8B-Instruct",
417
- match: {
418
- equals: "Meta-Llama-3.1-8B-Instruct"
419
- },
420
1124
  prices: {
421
- input_mtok: 0.1,
422
- output_mtok: 0.1
1125
+ input_mtok: 1.1,
1126
+ cache_write_mtok: 1.375,
1127
+ cache_read_mtok: 0.11,
1128
+ output_mtok: 5.5
423
1129
  }
424
1130
  },
425
1131
  {
426
- id: "Meta-Llama-3.3-70B-Instruct",
427
- match: {
428
- equals: "Meta-Llama-3.3-70B-Instruct"
429
- },
430
- prices: {
431
- input_mtok: 0.45,
432
- output_mtok: 0.45
433
- }
434
- }
435
- ]
436
- },
437
- {
438
- id: "aws",
439
- name: "AWS Bedrock",
440
- pricing_urls: ["https://aws.amazon.com/bedrock/pricing/"],
441
- api_pattern: "https://bedrock-runtime\\.[a-z0-9-]+\\.amazonaws\\.com/",
442
- provider_match: {
443
- contains: "bedrock"
444
- },
445
- extractors: [
446
- {
447
- api_flavor: "default",
448
- root: "usage",
449
- model_path: "model",
450
- mappings: [
451
- {
452
- path: "inputTokens",
453
- dest: "input_tokens",
454
- required: !0
455
- },
456
- {
457
- path: "outputTokens",
458
- dest: "output_tokens",
459
- required: !0
460
- }
461
- ]
462
- }
463
- ],
464
- models: [
465
- {
466
- id: "meta.llama3-8b-instruct-v1:0",
1132
+ id: "regional.anthropic.claude-opus-4-1-20250805-v1:0",
467
1133
  match: {
468
- contains: "llama3-8b-instruct-v1"
1134
+ or: [
1135
+ {
1136
+ starts_with: "us.anthropic.claude-opus-4-1-20250805-v1"
1137
+ },
1138
+ {
1139
+ starts_with: "au.anthropic.claude-opus-4-1-20250805-v1"
1140
+ },
1141
+ {
1142
+ starts_with: "apac.anthropic.claude-opus-4-1-20250805-v1"
1143
+ },
1144
+ {
1145
+ starts_with: "eu.anthropic.claude-opus-4-1-20250805-v1"
1146
+ },
1147
+ {
1148
+ starts_with: "us-gov.anthropic.claude-opus-4-1-20250805-v1"
1149
+ },
1150
+ {
1151
+ starts_with: "jp.anthropic.claude-opus-4-1-20250805-v1"
1152
+ }
1153
+ ]
469
1154
  },
470
1155
  prices: {
471
- input_mtok: 0.3,
472
- output_mtok: 0.6
1156
+ input_mtok: 15,
1157
+ cache_write_mtok: 18.75,
1158
+ cache_read_mtok: 1.5,
1159
+ output_mtok: 75
473
1160
  }
474
1161
  },
475
1162
  {
476
- id: "nova-lite-v1",
477
- name: "Nova Lite 1.0",
478
- description: "Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.",
1163
+ id: "regional.anthropic.claude-opus-4-20250514-v1:0",
479
1164
  match: {
480
1165
  or: [
481
1166
  {
482
- contains: "nova-lite-v1"
1167
+ starts_with: "us.anthropic.claude-opus-4-20250514-v1"
1168
+ },
1169
+ {
1170
+ starts_with: "au.anthropic.claude-opus-4-20250514-v1"
1171
+ },
1172
+ {
1173
+ starts_with: "apac.anthropic.claude-opus-4-20250514-v1"
1174
+ },
1175
+ {
1176
+ starts_with: "eu.anthropic.claude-opus-4-20250514-v1"
1177
+ },
1178
+ {
1179
+ starts_with: "us-gov.anthropic.claude-opus-4-20250514-v1"
1180
+ },
1181
+ {
1182
+ starts_with: "jp.anthropic.claude-opus-4-20250514-v1"
483
1183
  }
484
1184
  ]
485
1185
  },
486
1186
  prices: {
487
- input_mtok: 0.06,
488
- cache_read_mtok: 0.015,
489
- output_mtok: 0.24
1187
+ input_mtok: 15,
1188
+ cache_write_mtok: 18.75,
1189
+ cache_read_mtok: 1.5,
1190
+ output_mtok: 75
490
1191
  }
491
1192
  },
492
1193
  {
493
- id: "nova-micro-v1",
494
- name: "Nova Micro 1.0",
495
- description: "Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.",
1194
+ id: "regional.anthropic.claude-sonnet-4-20250514-v1:0",
496
1195
  match: {
497
1196
  or: [
498
1197
  {
499
- contains: "nova-micro-v1"
1198
+ starts_with: "us.anthropic.claude-sonnet-4-20250514-v1"
1199
+ },
1200
+ {
1201
+ starts_with: "au.anthropic.claude-sonnet-4-20250514-v1"
1202
+ },
1203
+ {
1204
+ starts_with: "apac.anthropic.claude-sonnet-4-20250514-v1"
1205
+ },
1206
+ {
1207
+ starts_with: "eu.anthropic.claude-sonnet-4-20250514-v1"
1208
+ },
1209
+ {
1210
+ starts_with: "us-gov.anthropic.claude-sonnet-4-20250514-v1"
1211
+ },
1212
+ {
1213
+ starts_with: "jp.anthropic.claude-sonnet-4-20250514-v1"
500
1214
  }
501
1215
  ]
502
1216
  },
503
1217
  prices: {
504
- input_mtok: 0.035,
505
- cache_read_mtok: 875e-5,
506
- output_mtok: 0.14
1218
+ input_mtok: 3,
1219
+ cache_write_mtok: 3.75,
1220
+ cache_read_mtok: 0.3,
1221
+ output_mtok: 15
507
1222
  }
508
1223
  },
509
1224
  {
510
- id: "nova-pro-v1",
511
- name: "Nova Pro 1.0",
512
- description: "Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).",
1225
+ id: "regional.anthropic.claude-sonnet-4-5-20250929-v1:0",
513
1226
  match: {
514
1227
  or: [
515
1228
  {
516
- contains: "nova-pro-v1"
1229
+ starts_with: "us.anthropic.claude-sonnet-4-5-20250929-v1"
1230
+ },
1231
+ {
1232
+ starts_with: "au.anthropic.claude-sonnet-4-5-20250929-v1"
1233
+ },
1234
+ {
1235
+ starts_with: "apac.anthropic.claude-sonnet-4-5-20250929-v1"
1236
+ },
1237
+ {
1238
+ starts_with: "eu.anthropic.claude-sonnet-4-5-20250929-v1"
1239
+ },
1240
+ {
1241
+ starts_with: "us-gov.anthropic.claude-sonnet-4-5-20250929-v1"
1242
+ },
1243
+ {
1244
+ starts_with: "jp.anthropic.claude-sonnet-4-5-20250929-v1"
517
1245
  }
518
1246
  ]
519
1247
  },
520
1248
  prices: {
521
- input_mtok: 0.8,
522
- cache_read_mtok: 0.2,
523
- output_mtok: 3.2
1249
+ input_mtok: 3.3,
1250
+ cache_write_mtok: 4.125,
1251
+ cache_read_mtok: 0.33,
1252
+ output_mtok: 16.5
524
1253
  }
525
1254
  }
526
1255
  ]
@@ -11925,34 +12654,34 @@ Compared to other leading proprietary and open-weights models Command A delivers
11925
12654
  function M(t, e) {
11926
12655
  if (e <= 0) return 0;
11927
12656
  let a = 0;
11928
- const i = [...t.tiers].sort((r, s) => r.start - s.start), o = i[0]?.start ?? e, m = Math.min(e, o);
11929
- a += m * t.base / 1e6;
11930
- for (let r = 0; r < i.length; r++) {
11931
- const s = i[r], n = i[r + 1]?.start ?? 1 / 0, u = Math.max(0, Math.min(e, n) - s.start);
12657
+ const i = [...t.tiers].sort((m, s) => m.start - s.start), o = i[0]?.start ?? e, r = Math.min(e, o);
12658
+ a += r * t.base / 1e6;
12659
+ for (let m = 0; m < i.length; m++) {
12660
+ const s = i[m], n = i[m + 1]?.start ?? 1 / 0, u = Math.max(0, Math.min(e, n) - s.start);
11932
12661
  u > 0 && (a += u * s.price / 1e6);
11933
12662
  }
11934
12663
  return a;
11935
12664
  }
11936
- function l(t, e, a) {
12665
+ function c(t, e, a) {
11937
12666
  return t === void 0 || e === void 0 ? 0 : typeof t == "number" ? t * e / 1e6 : M(t, e);
11938
12667
  }
11939
12668
  function I(t, e) {
11940
12669
  let a = 0, i = 0;
11941
- const o = t.cache_read_tokens ?? 0, m = t.cache_write_tokens ?? 0, r = t.cache_audio_read_tokens ?? 0, s = t.output_audio_tokens ?? 0;
12670
+ const o = t.cache_read_tokens ?? 0, r = t.cache_write_tokens ?? 0, m = t.cache_audio_read_tokens ?? 0, s = t.output_audio_tokens ?? 0;
11942
12671
  let n = t.input_audio_tokens ?? 0;
11943
- if (n -= r, n < 0)
12672
+ if (n -= m, n < 0)
11944
12673
  throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
11945
12674
  let u = t.input_tokens ?? 0;
11946
- if (u -= o, u -= m, u -= n, u < 0)
12675
+ if (u -= o, u -= r, u -= n, u < 0)
11947
12676
  throw new Error("Uncached text input tokens cannot be negative");
11948
12677
  let p = o;
11949
- if (p -= r, p < 0)
12678
+ if (p -= m, p < 0)
11950
12679
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
11951
- 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);
11952
- let k = t.output_tokens ?? 0;
11953
- if (k -= s, k < 0)
12680
+ 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, n), a += c(e.cache_audio_read_mtok, m);
12681
+ let _ = t.output_tokens ?? 0;
12682
+ if (_ -= s, _ < 0)
11954
12683
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
11955
- i += l(e.output_mtok, k), i += l(e.output_audio_mtok, t.output_audio_tokens);
12684
+ i += c(e.output_mtok, _), i += c(e.output_audio_mtok, t.output_audio_tokens);
11956
12685
  let w = a + i;
11957
12686
  return e.requests_kcount !== void 0 && (w += e.requests_kcount / 1e3), {
11958
12687
  input_price: a,
@@ -11960,7 +12689,7 @@ function I(t, e) {
11960
12689
  total_price: w
11961
12690
  };
11962
12691
  }
11963
- function P(t, e) {
12692
+ function L(t, e) {
11964
12693
  if (!Array.isArray(t.prices))
11965
12694
  return t.prices;
11966
12695
  for (let a = t.prices.length - 1; a >= 0; a--) {
@@ -11971,11 +12700,11 @@ function P(t, e) {
11971
12700
  if (e >= new Date(o.start_date))
11972
12701
  return i.prices;
11973
12702
  } else {
11974
- const m = e.toISOString().slice(11, 19), r = o.start_time, s = o.end_time;
11975
- if (s < r) {
11976
- if (m >= r || m < s)
12703
+ const r = e.toISOString().slice(11, 19), m = o.start_time, s = o.end_time;
12704
+ if (s < m) {
12705
+ if (r >= m || r < s)
11977
12706
  return i.prices;
11978
- } else if (m >= r && m < s)
12707
+ } else if (r >= m && r < s)
11979
12708
  return i.prices;
11980
12709
  }
11981
12710
  }
@@ -11984,13 +12713,13 @@ function P(t, e) {
11984
12713
  function h(t, e) {
11985
12714
  return "or" in t ? t.or.some((a) => h(a, e)) : "and" in t ? t.and.every((a) => h(a, e)) : "equals" in t ? e === t.equals : "starts_with" in t ? e.startsWith(t.starts_with) : "ends_with" in t ? e.endsWith(t.ends_with) : "contains" in t ? e.includes(t.contains) : "regex" in t ? new RegExp(t.regex).test(e) : !1;
11986
12715
  }
11987
- function L(t, e) {
12716
+ function P(t, e) {
11988
12717
  const a = e.toLowerCase().trim(), i = t.find((o) => o.id === a);
11989
12718
  return i || t.find((o) => o.provider_match && h(o.provider_match, a));
11990
12719
  }
11991
12720
  function B(t, { modelId: e, providerApiUrl: a, providerId: i }) {
11992
12721
  if (i)
11993
- return L(t, i);
12722
+ return P(t, i);
11994
12723
  if (a)
11995
12724
  return t.find((o) => new RegExp(o.api_pattern).test(a));
11996
12725
  if (e)
@@ -12023,12 +12752,12 @@ function O(t, e, a) {
12023
12752
  f?.();
12024
12753
  const i = e.toLowerCase().trim(), o = a?.provider ?? B(g, { modelId: i, providerApiUrl: a?.providerApiUrl, providerId: a?.providerId });
12025
12754
  if (!o) return null;
12026
- const m = T(o.models, i);
12027
- if (!m) return null;
12028
- const r = a?.timestamp ?? /* @__PURE__ */ new Date(), s = P(m, r), n = I(t, s);
12755
+ const r = T(o.models, i);
12756
+ if (!r) return null;
12757
+ const m = a?.timestamp ?? /* @__PURE__ */ new Date(), s = L(r, m), n = I(t, s);
12029
12758
  return {
12030
12759
  auto_update_timestamp: void 0,
12031
- model: m,
12760
+ model: r,
12032
12761
  model_price: s,
12033
12762
  provider: o,
12034
12763
  ...n
@@ -12045,11 +12774,11 @@ function E(t, e, a) {
12045
12774
  const n = t.extractors.map((u) => u.api_flavor).join(", ");
12046
12775
  throw new Error(`Unknown apiFlavor '${a}', allowed values: ${n}`);
12047
12776
  }
12048
- if (!_.guard(e))
12049
- throw new Error(`Expected response data to be a mapping object, got ${c(e)}`);
12050
- const o = q(i.model_path, e, R, !1, []), m = y(i.root), r = q(m, e, _, !0, []), s = {};
12777
+ if (!k.guard(e))
12778
+ throw new Error(`Expected response data to be a mapping object, got ${l(e)}`);
12779
+ const o = q(i.model_path, e, R, !1, []), r = y(i.root), m = q(r, e, k, !0, []), s = {};
12051
12780
  for (const n of i.mappings) {
12052
- const u = q(n.path, r, z, n.required, m);
12781
+ const u = q(n.path, m, z, n.required, r);
12053
12782
  if (u !== null) {
12054
12783
  const p = s[n.dest] ?? 0;
12055
12784
  s[n.dest] = p + u;
@@ -12060,55 +12789,55 @@ function E(t, e, a) {
12060
12789
  return { model: o, usage: s };
12061
12790
  }
12062
12791
  function q(t, e, a, i, o) {
12063
- const [m, ...r] = y(t).reverse();
12064
- if (typeof m != "string")
12065
- throw new Error(`Expected last step of path to be a string, got ${c(m)}`);
12066
- r.reverse();
12792
+ const [r, ...m] = y(t).reverse();
12793
+ if (typeof r != "string")
12794
+ throw new Error(`Expected last step of path to be a string, got ${l(r)}`);
12795
+ m.reverse();
12067
12796
  let s = e;
12068
12797
  const n = [];
12069
- for (const p of r) {
12798
+ for (const p of m) {
12070
12799
  if (n.push(p), typeof p == "object")
12071
12800
  if (Array.isArray(s))
12072
12801
  s = A(p, s);
12073
12802
  else {
12074
12803
  if (i)
12075
- throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
12804
+ throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${l(s)}`);
12076
12805
  return null;
12077
12806
  }
12078
- else if (_.guard(s))
12807
+ else if (k.guard(s))
12079
12808
  s = s[p];
12080
12809
  else {
12081
12810
  if (i)
12082
- throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
12811
+ throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${l(s)}`);
12083
12812
  return null;
12084
12813
  }
12085
12814
  if (typeof s > "u")
12086
12815
  if (i) {
12087
- const k = typeof p == "object" ? "Unable to find item" : "Missing value";
12088
- throw new Error(`${k} at \`${d(o, n)}\``);
12816
+ const _ = typeof p == "object" ? "Unable to find item" : "Missing value";
12817
+ throw new Error(`${_} at \`${d(o, n)}\``);
12089
12818
  } else
12090
12819
  return null;
12091
12820
  }
12092
- if (!_.guard(s)) {
12821
+ if (!k.guard(s)) {
12093
12822
  if (i)
12094
- throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${c(s)}`);
12823
+ throw new Error(`Expected \`${d(o, n)}\` value to be a mapping, got ${l(s)}`);
12095
12824
  return null;
12096
12825
  }
12097
- const u = s[m];
12826
+ const u = s[r];
12098
12827
  if (typeof u > "u") {
12099
12828
  if (i)
12100
- throw n.push(m), new Error(`Missing value at \`${d(o, n)}\``);
12829
+ throw n.push(r), new Error(`Missing value at \`${d(o, n)}\``);
12101
12830
  return null;
12102
12831
  }
12103
12832
  if (a.guard(u))
12104
12833
  return u;
12105
12834
  if (i)
12106
- throw n.push(m), new Error(`Expected \`${d(o, n)}\` value to be a ${a.name}, got ${c(u)}`);
12835
+ throw n.push(r), new Error(`Expected \`${d(o, n)}\` value to be a ${a.name}, got ${l(u)}`);
12107
12836
  return null;
12108
12837
  }
12109
12838
  function A(t, e) {
12110
12839
  for (const a of e)
12111
- if (_.guard(a)) {
12840
+ if (k.guard(a)) {
12112
12841
  const i = a[t.field];
12113
12842
  if (typeof i == "string" && h(t.match, i))
12114
12843
  return a;
@@ -12117,11 +12846,11 @@ function A(t, e) {
12117
12846
  function y(t) {
12118
12847
  return Array.isArray(t) ? [...t] : [t];
12119
12848
  }
12120
- function c(t) {
12849
+ function l(t) {
12121
12850
  return t === null ? "null" : Array.isArray(t) ? "array" : typeof t == "object" ? "mapping" : typeof t;
12122
12851
  }
12123
- const _ = {
12124
- guard: (t) => c(t) === "mapping",
12852
+ const k = {
12853
+ guard: (t) => l(t) === "mapping",
12125
12854
  name: "mapping"
12126
12855
  }, R = {
12127
12856
  guard: (t) => typeof t == "string",