promptfoo 0.121.4 → 0.121.5

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.
Files changed (346) hide show
  1. package/dist/src/{ListApp-DQkFNqE9.js → ListApp-BRUsT43Y.js} +1 -1
  2. package/dist/src/{accounts-Dy17bs4D.cjs → accounts-BIFntVWB.cjs} +4 -4
  3. package/dist/src/{accounts-F9d_5sMC.js → accounts-CLJHCDDb.js} +6 -6
  4. package/dist/src/{accounts-DhMYUUbu.js → accounts-CaLNYnf7.js} +4 -4
  5. package/dist/src/{accounts-DdJ2pHMI.js → accounts-bnyHT7Ju.js} +5 -5
  6. package/dist/src/{agentic-utils-w68v6_Dz.js → agentic-utils-B5krlibj.js} +3 -3
  7. package/dist/src/{agentic-utils-P172hM8B.js → agentic-utils-Ba67xmgs.js} +2 -2
  8. package/dist/src/{agentic-utils-qFlm6zes.js → agentic-utils-BclbiXiq.js} +3 -3
  9. package/dist/src/{agentic-utils-BpX5b23w.cjs → agentic-utils-D2x0wGhB.cjs} +2 -2
  10. package/dist/src/{agents-CgaMXvLM.js → agents-BGqaTDnr.js} +5 -5
  11. package/dist/src/{agents-8FDnTriG.js → agents-BV9yFpXX.js} +5 -5
  12. package/dist/src/{agents-aYPQLf8W.js → agents-BYdMl1UE.js} +4 -4
  13. package/dist/src/{agents-pQeBEXMm.js → agents-DhxWMCtH.js} +5 -5
  14. package/dist/src/{agents-D7-HGxUj.cjs → agents-DiWmQYH9.cjs} +4 -4
  15. package/dist/src/{agents-BahDpe5G.cjs → agents-WULPVjbH.cjs} +4 -4
  16. package/dist/src/{agents-DJ35I3Nt.js → agents-emVcx3yh.js} +5 -5
  17. package/dist/src/{agents-C-R_jfzI.js → agents-n6vPqV3i.js} +4 -4
  18. package/dist/src/{aimlapi-BCq3MHeL.js → aimlapi-BxqK9HF_.js} +7 -7
  19. package/dist/src/{aimlapi-qcK4OT55.cjs → aimlapi-BzLjZI_m.cjs} +6 -6
  20. package/dist/src/{aimlapi-BD6J9oKt.js → aimlapi-DR4pgeiC.js} +6 -6
  21. package/dist/src/{aimlapi-sgYnkE54.js → aimlapi-uPGp0Zdo.js} +7 -7
  22. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
  23. package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
  24. package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
  25. package/dist/src/app/assets/{index-BXGkeMwh.css → index-Cli2yAXv.css} +1 -1
  26. package/dist/src/app/index.html +27 -2
  27. package/dist/src/{audio-DcVKoInv.js → audio-BvpTOArF.js} +4 -4
  28. package/dist/src/{audio-BQtNuYBj.cjs → audio-C0vDeS0j.cjs} +3 -3
  29. package/dist/src/{audio-B7izf48x.js → audio-CScmnmEB.js} +4 -4
  30. package/dist/src/{audio-COrn8rM6.js → audio-Da8U9IS5.js} +3 -3
  31. package/dist/src/{base-fZ9wgg50.js → base-BOMaNEes.js} +3 -3
  32. package/dist/src/{base-PYJvBE1i.js → base-BTux96b1.js} +2 -2
  33. package/dist/src/{base-D-670DX8.cjs → base-Tw6uhH8K.cjs} +2 -2
  34. package/dist/src/{base-yrI1Yal4.js → base-dYsl2hmL.js} +3 -3
  35. package/dist/src/{blobs-D2FAd1Q5.cjs → blobs-B95F_7vE.cjs} +2 -2
  36. package/dist/src/{blobs-C-F78Kfn.js → blobs-BW4U31ue.js} +2 -2
  37. package/dist/src/{blobs-BCZavS8s.js → blobs-D_gg8nbm.js} +3 -3
  38. package/dist/src/{blobs-BQWqnnvL.js → blobs-DjLby-uP.js} +3 -3
  39. package/dist/src/{cache-mb7c8hbp.js → cache-BI5BY7ey.js} +4 -4
  40. package/dist/src/{cache-DbLsVWB2.cjs → cache-BRkhlH3k.cjs} +1 -1
  41. package/dist/src/cache-BlC6aeJ0.js +3 -0
  42. package/dist/src/{cache-D5NZmMiT.js → cache-Bzttsk0X.js} +2 -2
  43. package/dist/src/{cache-C4Xb-hNb.js → cache-Cr-qWIbP.js} +3 -3
  44. package/dist/src/{cache-BIyPcp5v.cjs → cache-DGg-yTZG.cjs} +2 -2
  45. package/dist/src/{chat-Dr3DUQ0D.js → chat-BLOdH60v.js} +12 -12
  46. package/dist/src/{chat-BfPaS15_.js → chat-Cx_LkwvZ.js} +12 -12
  47. package/dist/src/{chat-mW0ORo8G.js → chat-D9nudO9b.js} +4 -4
  48. package/dist/src/{chat-I9izLm49.js → chat-DChSH_Es.js} +12 -12
  49. package/dist/src/{chat-MKxMnZJZ.js → chat-DG2LkwLq.js} +2 -2
  50. package/dist/src/{chat-BPXSW8Bv.cjs → chat-DH97tVV9.cjs} +2 -2
  51. package/dist/src/{chat-0bwXjVP0.js → chat-aMQZw6R7.js} +4 -4
  52. package/dist/src/{chat-CclRbxGf.cjs → chat-vYqqv1gP.cjs} +11 -11
  53. package/dist/src/{chatkit-zUIVoDos.js → chatkit-B8X34dQc.js} +4 -4
  54. package/dist/src/{chatkit-Cv6AhukM.js → chatkit-BXu42Qwt.js} +3 -3
  55. package/dist/src/{chatkit-CJnHRRMM.js → chatkit-CbMRoeYw.js} +4 -4
  56. package/dist/src/{chatkit-BoWoSgXl.cjs → chatkit-D44VyUyB.cjs} +3 -3
  57. package/dist/src/{claude-agent-sdk-CPJo3dBQ.cjs → claude-agent-sdk-BRq0bbIK.cjs} +8 -8
  58. package/dist/src/{claude-agent-sdk-BQNuLaAK.js → claude-agent-sdk-BjriSVRZ.js} +7 -7
  59. package/dist/src/{claude-agent-sdk-Dtq_L-Sc.js → claude-agent-sdk-BzNZeZ0N.js} +7 -7
  60. package/dist/src/{claude-agent-sdk-nfAIcxNf.js → claude-agent-sdk-DYv_AJ8u.js} +7 -7
  61. package/dist/src/cloud-CoD5OacT.js +3 -0
  62. package/dist/src/{cloud-DQZ5sVjW.js → cloud-Da0bofJd.js} +3 -3
  63. package/dist/src/{cloudflare-ai-BIB567w6.js → cloudflare-ai-CXC4b1EU.js} +4 -4
  64. package/dist/src/{cloudflare-ai-DlKr0rY7.js → cloudflare-ai-CyBoIs1Q.js} +6 -6
  65. package/dist/src/{cloudflare-ai-DGLte7Py.js → cloudflare-ai-DGOwgexC.js} +6 -6
  66. package/dist/src/{cloudflare-ai-Dl3N9OVD.cjs → cloudflare-ai-DJv5qnyb.cjs} +4 -4
  67. package/dist/src/{cloudflare-gateway-BDZrYydE.js → cloudflare-gateway-1sAoOyft.js} +5 -5
  68. package/dist/src/{cloudflare-gateway-CiIZHU0Q.js → cloudflare-gateway-D-dnkzCF.js} +5 -5
  69. package/dist/src/{cloudflare-gateway-BYDp495F.cjs → cloudflare-gateway-DKVjkDav.cjs} +3 -3
  70. package/dist/src/{cloudflare-gateway-DI1HNP5F.js → cloudflare-gateway-TJkVrZlB.js} +3 -3
  71. package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
  72. package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
  73. package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
  74. package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
  75. package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
  76. package/dist/src/{codex-sdk-C2_M2pl_.cjs → codex-sdk-Bd8UbO9q.cjs} +5 -5
  77. package/dist/src/{codex-sdk-CpqiOqDO.js → codex-sdk-BgEFQ70r.js} +6 -6
  78. package/dist/src/{codex-sdk-Rtky3M4I.js → codex-sdk-Bzb_TqX9.js} +6 -6
  79. package/dist/src/{codex-sdk-CWEnH70W.cjs → codex-sdk-Danroptg.cjs} +1 -1
  80. package/dist/src/{codex-sdk-CErXn7qh.js → codex-sdk-DfvDTN33.js} +5 -5
  81. package/dist/src/{cometapi-CtJ-mS8R.js → cometapi-B5ImDlSm.js} +8 -8
  82. package/dist/src/{cometapi-UVOryo4W.cjs → cometapi-BgAkuYCw.cjs} +7 -7
  83. package/dist/src/{cometapi-BUlt_ELa.js → cometapi-CC7hWxmX.js} +8 -8
  84. package/dist/src/{cometapi-DT-jlVCB.js → cometapi-CCbpHkuF.js} +7 -7
  85. package/dist/src/{completion-x0a_c2y1.js → completion-2iuYVxwi.js} +6 -6
  86. package/dist/src/{completion-Dnxn7E-j.js → completion-CrD6MQ93.js} +5 -5
  87. package/dist/src/{completion-BozdoXba.cjs → completion-DtQ72Bm3.cjs} +5 -5
  88. package/dist/src/{completion-HUe8wDhZ.js → completion-Vq_ad618.js} +6 -6
  89. package/dist/src/{createHash-ChI45QR1.js → createHash-DPpsZgFF.js} +1 -1
  90. package/dist/src/{createHash-CwDVU5xr.js → createHash-Un4Q_huE.js} +1 -1
  91. package/dist/src/{createHash-B7KvgoOD.cjs → createHash-VvBIc-AW.cjs} +1 -1
  92. package/dist/src/{docker-DCgsveLD.js → docker--3qzPa-6.js} +6 -6
  93. package/dist/src/{docker-DS4_Osau.cjs → docker-D3AY-5F5.cjs} +5 -5
  94. package/dist/src/{docker-CQmlA2NU.js → docker-DCsCDvwM.js} +6 -6
  95. package/dist/src/{docker-ClnmCf1Z.js → docker-Dorv4_Dg.js} +5 -5
  96. package/dist/src/{embedding-I45KG3o7.cjs → embedding-BXhN5lCH.cjs} +5 -5
  97. package/dist/src/{embedding-nFbumxcv.js → embedding-ChS1ivFS.js} +5 -5
  98. package/dist/src/{embedding-D3xTseo7.js → embedding-DNRvZwRN.js} +6 -6
  99. package/dist/src/{embedding-DD9wa3ae.js → embedding-D_bI4NDq.js} +6 -6
  100. package/dist/src/{errors-Cw810C93.js → errors-DFHe4L-n.js} +1 -1
  101. package/dist/src/{esm-Dh4dOLlt.js → esm-B6whoAcf.js} +2 -2
  102. package/dist/src/{esm-C7PnfdF8.js → esm-BRkfNsYs.js} +1 -1
  103. package/dist/src/{esm-tVgYPY-f.js → esm-BX8fwlAO.js} +2 -2
  104. package/dist/src/{esm-CtEPLdAj.cjs → esm-B_rGuPTo.cjs} +1 -1
  105. package/dist/src/{eval-CzJFfFO9.js → eval-BQPLBJbw.js} +1 -1
  106. package/dist/src/{eval-u4UVafl6.js → eval-DJ_4A-tr.js} +14 -14
  107. package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
  108. package/dist/src/evalResult-BBK58h2B.js +3 -0
  109. package/dist/src/{evalResult-KZqXl4XP.cjs → evalResult-Cx-8OWkb.cjs} +28 -10
  110. package/dist/src/{evalResult-D3hVYFis.js → evalResult-D6P5I5il.js} +29 -11
  111. package/dist/src/{evalResult-Bgm9ZH31.js → evalResult-pSvGWFMo.js} +29 -11
  112. package/dist/src/{evaluator-IvuDYSvQ.js → evaluator-D-UIbbYq.js} +845 -98
  113. package/dist/src/evaluator-DgLKaZk8.js +3 -0
  114. package/dist/src/{extractor-Dk6bRWkv.js → extractor-BM3jRERL.js} +5 -5
  115. package/dist/src/{extractor-WVPOrH43.cjs → extractor-Dxr2J_wK.cjs} +5 -5
  116. package/dist/src/{extractor-DNSeBVOJ.js → extractor-DxyiFhPk.js} +6 -6
  117. package/dist/src/{extractor-CAfTSraf.js → extractor-YlZbUMsL.js} +6 -6
  118. package/dist/src/fetch-8viavNv8.js +3 -0
  119. package/dist/src/{fetch-BEWnXrrG.js → fetch-B6ch2nU2.js} +9 -20
  120. package/dist/src/{fetch-Di00EQrc.js → fetch-D9xxyC1p.js} +221 -232
  121. package/dist/src/{fetch-CJU5ELPa.cjs → fetch-NuqXW1Xb.cjs} +221 -244
  122. package/dist/src/{fetch-B0Z3Oe4k.js → fetch-Y5qX_kST.js} +8 -19
  123. package/dist/src/{fileExtensions-BArZuxsI.js → fileExtensions-8CjoL7vB.js} +1 -1
  124. package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
  125. package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
  126. package/dist/src/{fileExtensions-AWa2ZML4.js → fileExtensions-DysCsxNG.js} +1 -1
  127. package/dist/src/{formatDuration-DZzPsexs.js → formatDuration-Ch4A7G3o.js} +1 -1
  128. package/dist/src/{genaiTracer-yRuxj9-L.cjs → genaiTracer-BokHC-MW.cjs} +1 -1
  129. package/dist/src/{genaiTracer-DWdZ28hY.js → genaiTracer-C3ZPQU60.js} +1 -1
  130. package/dist/src/{genaiTracer-XnrcgDCe.js → genaiTracer-CFny3gOy.js} +1 -1
  131. package/dist/src/{genaiTracer-COYDi-tC.js → genaiTracer-DxODqT9e.js} +1 -1
  132. package/dist/src/{graders-Zy3x0zqX.js → graders-BoUqsCEm.js} +1303 -2044
  133. package/dist/src/{graders--zknU_uk.cjs → graders-Bw1wk_21.cjs} +1553 -2240
  134. package/dist/src/graders-C84JI-m5.js +2 -0
  135. package/dist/src/graders-CBbd0K0Q.cjs +2 -0
  136. package/dist/src/graders-CbQqpHSN.js +3 -0
  137. package/dist/src/{graders-eIHhRqoC.js → graders-CgPn32yp.js} +1300 -2041
  138. package/dist/src/{graders-pvbReLLn.js → graders-CwrbifOo.js} +747 -1488
  139. package/dist/src/graders-DS42d3ZG.js +2 -0
  140. package/dist/src/{image-9302QVqR.js → image-BeWaInPF.js} +3 -3
  141. package/dist/src/{image-DVz2RiMF.js → image-BmilRNqO.js} +7 -7
  142. package/dist/src/{image-x6KqLQl4.cjs → image-CxJoa3aW.cjs} +6 -6
  143. package/dist/src/{image-De2FBmYV.cjs → image-D10dNAav.cjs} +3 -3
  144. package/dist/src/{image-dnoUgPrC.js → image-Dr_3I3nK.js} +4 -4
  145. package/dist/src/{image-B5Mv-Z3h.js → image-DsGRlkh7.js} +7 -7
  146. package/dist/src/{image-qUpPvmNZ.js → image-a_SGUobh.js} +6 -6
  147. package/dist/src/{image-u7-rKnYU.js → image-qjO6FWPs.js} +4 -4
  148. package/dist/src/index.cjs +1052 -296
  149. package/dist/src/index.d.cts +124 -13
  150. package/dist/src/index.d.ts +125 -14
  151. package/dist/src/index.js +1018 -262
  152. package/dist/src/{interactiveCheck-CLERUB0c.js → interactiveCheck-CCICw2cy.js} +2 -2
  153. package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
  154. package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
  155. package/dist/src/{knowledgeBase-RhFPGWDc.js → knowledgeBase-BBETc5-S.js} +6 -6
  156. package/dist/src/{knowledgeBase-Bpoe_nLu.cjs → knowledgeBase-C8qOo26M.cjs} +5 -5
  157. package/dist/src/{knowledgeBase-lm9RXSAm.js → knowledgeBase-CzAi2rUI.js} +6 -6
  158. package/dist/src/{knowledgeBase-Dgc7CBWF.js → knowledgeBase-Dr3Kib7F.js} +5 -5
  159. package/dist/src/{litellm-C2kqjxqp.js → litellm-BLSiANhk.js} +5 -5
  160. package/dist/src/{litellm-CoyI4IAl.cjs → litellm-CaUmV7Mk.cjs} +4 -4
  161. package/dist/src/{litellm-p37R1dzQ.js → litellm-DQGo_juI.js} +4 -4
  162. package/dist/src/{litellm-DRjpcSa7.js → litellm-DRc4qWfc.js} +5 -5
  163. package/dist/src/{logger-DksKw1Qc.js → logger-BbY6ypFL.js} +2 -2
  164. package/dist/src/{logger-B88EkIn6.js → logger-KD8JjCRJ.js} +2 -2
  165. package/dist/src/{luma-ray-KgTCXrZC.js → luma-ray-B-tNZzqW.js} +6 -6
  166. package/dist/src/{luma-ray-B863CmuZ.js → luma-ray-CtS3OlGq.js} +5 -5
  167. package/dist/src/{luma-ray-BTTLtqQ8.js → luma-ray-PJJgUjOc.js} +6 -6
  168. package/dist/src/{luma-ray-BxVKaW2a.cjs → luma-ray-if-Ml4R9.cjs} +5 -5
  169. package/dist/src/main.js +242 -198
  170. package/dist/src/{messages-zWbkLLHz.js → messages-B9dSjrNf.js} +264 -16
  171. package/dist/src/{messages-811uVVW5.cjs → messages-BnsVHUnm.cjs} +266 -15
  172. package/dist/src/{messages-MYTQ2TWp.js → messages-CI69Lasb.js} +264 -16
  173. package/dist/src/{messages-BTQz42fn.js → messages-CewuNcNS.js} +264 -16
  174. package/dist/src/{meteor-Co1VQ1u5.cjs → meteor-BBGcGeCa.cjs} +1 -1
  175. package/dist/src/{meteor-DuAFv6gF.js → meteor-BKTM-7KS.js} +1 -1
  176. package/dist/src/{meteor-DHdzY1Ss.js → meteor-CeGo0Lu2.js} +2 -2
  177. package/dist/src/{meteor-CU5UAE-H.js → meteor-Wc_aUVvu.js} +2 -2
  178. package/dist/src/{modelslab-wu9yi5GE.js → modelslab-BCLOtfek.js} +7 -7
  179. package/dist/src/{modelslab-Dk1JAtVo.cjs → modelslab-BkapYJhh.cjs} +6 -6
  180. package/dist/src/{modelslab-DIq-6y7x.js → modelslab-D73OnKSx.js} +6 -6
  181. package/dist/src/{modelslab-D0erNWKe.js → modelslab-zpz9JcK0.js} +7 -7
  182. package/dist/src/{nova-reel-CCFRfeRb.js → nova-reel-B8F_TK5w.js} +6 -6
  183. package/dist/src/{nova-reel-DQrm74ng.js → nova-reel-Bx0NFV2f.js} +5 -5
  184. package/dist/src/{nova-reel-gr11WG7f.js → nova-reel-CNGJTLtG.js} +6 -6
  185. package/dist/src/{nova-reel-CrLXVKQf.cjs → nova-reel-DkT7tnoB.cjs} +5 -5
  186. package/dist/src/{nova-sonic-BYdp-QLs.js → nova-sonic-BaXRN1cr.js} +4 -4
  187. package/dist/src/{nova-sonic-TDgrlTk7.js → nova-sonic-BeTRaFOh.js} +4 -4
  188. package/dist/src/{nova-sonic-B_ZXcUJB.js → nova-sonic-CL7Zqv0G.js} +3 -3
  189. package/dist/src/{nova-sonic-i5tUvXKn.cjs → nova-sonic-YT426juD.cjs} +3 -3
  190. package/dist/src/{openai-DhVEmgeZ.js → openai-BMHD2Huo.js} +2 -2
  191. package/dist/src/{openai-Qsvz25mV.js → openai-BT-JvDse.js} +2 -2
  192. package/dist/src/{openai-URNyItar.cjs → openai-Cy1XLs0c.cjs} +1 -1
  193. package/dist/src/{openai-iYtrXzOX.js → openai-D4fxGvRx.js} +1 -1
  194. package/dist/src/{openclaw-CwzlQSQX.js → openclaw-Bq7RVR3k.js} +7 -6
  195. package/dist/src/{openclaw-CLWrW03k.js → openclaw-DA8U4DsD.js} +8 -7
  196. package/dist/src/{openclaw-CnQ363Wi.js → openclaw-DObVgpjC.js} +8 -7
  197. package/dist/src/{openclaw-wX9rtfke.cjs → openclaw-DUBZP3GL.cjs} +8 -7
  198. package/dist/src/{opencode-sdk-BUu5Nevv.js → opencode-sdk-BB40Wir1.js} +4 -4
  199. package/dist/src/{opencode-sdk-GI2KaAXq.js → opencode-sdk-BM1UAIv1.js} +3 -3
  200. package/dist/src/{opencode-sdk-BZ2idgYA.cjs → opencode-sdk-CeqiOcOU.cjs} +4 -4
  201. package/dist/src/{opencode-sdk-BxD8vXp_.js → opencode-sdk-ChdK7F7z.js} +4 -4
  202. package/dist/src/{otlpReceiver-DmVulbhC.js → otlpReceiver-C6thJRXi.js} +4 -4
  203. package/dist/src/{otlpReceiver-B2z58l4e.js → otlpReceiver-CcdIikOu.js} +3 -3
  204. package/dist/src/{otlpReceiver-BfcVq2Nq.cjs → otlpReceiver-DNSQj6bf.cjs} +3 -3
  205. package/dist/src/{otlpReceiver-BntK801g.js → otlpReceiver-UYMQx3sy.js} +4 -4
  206. package/dist/src/{providerRegistry-CPQ_CmVO.js → providerRegistry-1gB5vtzQ.js} +2 -2
  207. package/dist/src/{providerRegistry-CQMdTmHP.cjs → providerRegistry-BESeALrr.cjs} +1 -1
  208. package/dist/src/{providerRegistry-Bvh8mv85.js → providerRegistry-DoACwqhD.js} +1 -1
  209. package/dist/src/{providerRegistry-CWoPjKFZ.js → providerRegistry-PMsleEzs.js} +2 -2
  210. package/dist/src/{providers-Bp4S-FvO.js → providers-BuyzKt7C.js} +1 -1
  211. package/dist/src/{providers-DV3ax9e_.cjs → providers-C7lNVBjX.cjs} +1 -1
  212. package/dist/src/{providers-u9Enmfok.js → providers-CCE2COJi2.js} +1 -1
  213. package/dist/src/{providers-DruaQfwu.js → providers-CJh7iriU.js} +18103 -17952
  214. package/dist/src/{providers-iUt5fbAN.js → providers-Ctcc592x.js} +1 -1
  215. package/dist/src/{providers-Domz_llv.js → providers-DRrerKra.js} +432 -281
  216. package/dist/src/{providers-BV_KMZje.js → providers-DT-GtF2t.js} +19094 -18943
  217. package/dist/src/{providers-1eKkXBKp.cjs → providers-eDShy16E.cjs} +17946 -17795
  218. package/dist/src/{pythonUtils-Cldx7huE.js → pythonUtils-C4tltmIn.js} +3 -3
  219. package/dist/src/{pythonUtils-tAJvvpS-.cjs → pythonUtils-CoLaCwNY.cjs} +3 -3
  220. package/dist/src/{pythonUtils-C2UQ30Rz.js → pythonUtils-DMO68Jg7.js} +3 -3
  221. package/dist/src/{pythonUtils-CnndUbW-.js → pythonUtils-DNqbnRdx.js} +3 -3
  222. package/dist/src/{quiverai-DR0SnIQV.js → quiverai-BSS9a7wV.js} +3 -3
  223. package/dist/src/{quiverai-CtWi6x_g.js → quiverai-Bk1KrvL6.js} +4 -4
  224. package/dist/src/{quiverai-DFotyafY.cjs → quiverai-Bpx6MZ7T.cjs} +3 -3
  225. package/dist/src/{quiverai-aPPvXOgn.js → quiverai-CPKhWgaT.js} +4 -4
  226. package/dist/src/{render-DHIZ6_k8.js → render-7uNJ2V14.js} +2 -2
  227. package/dist/src/{render-CH-62LbA.js → render-DlscvAUJ.js} +1 -1
  228. package/dist/src/{render-CMEpfLaO.js → render-eui5p5mL.js} +2 -2
  229. package/dist/src/{render-CgVDrJmM.js → render-nj-UaPdn.js} +2 -2
  230. package/dist/src/{render-DfQSFxGE.cjs → render-tG6ir9_g.cjs} +1 -1
  231. package/dist/src/{responses--OsX2aYW.js → responses-1ztiVYsx.js} +49 -15
  232. package/dist/src/{responses-DL9m8CyY.js → responses-B8haB-mD.js} +49 -15
  233. package/dist/src/{responses-C-flexAY.js → responses-BiaBguAu.js} +49 -15
  234. package/dist/src/{responses-Bi9vBuW_.cjs → responses-CF-ayauu.cjs} +48 -14
  235. package/dist/src/rubyUtils-4hjGxvju.js +3 -0
  236. package/dist/src/{rubyUtils-DVLeA2jg.js → rubyUtils-BI0p46eZ.js} +3 -3
  237. package/dist/src/{rubyUtils-DsGrTx8R.js → rubyUtils-CIQFnVz4.js} +3 -3
  238. package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
  239. package/dist/src/{rubyUtils-CYSQEG4a.js → rubyUtils-DGnoCYL2.js} +3 -3
  240. package/dist/src/{rubyUtils-B6eljPuh.cjs → rubyUtils-DoifqkiA.cjs} +4 -3
  241. package/dist/src/{sagemaker-BveBvuxm.js → sagemaker-BDLeW29y.js} +12 -12
  242. package/dist/src/{sagemaker-D67yzMzs.js → sagemaker-C5T60MKf.js} +13 -13
  243. package/dist/src/{sagemaker-BVkaG2-l.js → sagemaker-ClS_NB07.js} +13 -13
  244. package/dist/src/{sagemaker-XnfhheQv.cjs → sagemaker-ljtY12VM.cjs} +12 -12
  245. package/dist/src/{scanner-1DqWi1Ej.js → scanner-nOCWNIXa.js} +7 -7
  246. package/dist/src/server/index.js +1067 -265
  247. package/dist/src/{server-Dx2TyCH2.cjs → server-BEECpeGG.cjs} +5 -5
  248. package/dist/src/{server-BNYztJkh.js → server-ByiF3qlg.js} +9 -8
  249. package/dist/src/{server-BSB45Nt9.js → server-ByxbqAcQ.js} +8 -7
  250. package/dist/src/{server-DaA2eR26.cjs → server-C0XKRNB_.cjs} +1 -1
  251. package/dist/src/server-C_15p79-.js +3 -0
  252. package/dist/src/{server-D6Il2Sob.js → server-gyd6d4Hc.js} +5 -5
  253. package/dist/src/{signal-CE5G3a7x.js → signal-DTtUuU3l.js} +3 -3
  254. package/dist/src/{slack-acRb0IqQ.js → slack-4zZX1OKP.js} +1 -1
  255. package/dist/src/{slack-1Rhq0EoV.cjs → slack-BLlsDpfG.cjs} +1 -1
  256. package/dist/src/{slack-D5Wpy8LM.js → slack-BPYLQLgb.js} +2 -2
  257. package/dist/src/{slack-DDUe-5MC.js → slack-Bamy_7te.js} +2 -2
  258. package/dist/src/{store-DAAyxcy6.cjs → store-2K0kDi80.cjs} +2 -2
  259. package/dist/src/{store-Dn9HUkdW.js → store-2OXm_eBY.js} +3 -3
  260. package/dist/src/store-BELqNwvz.js +3 -0
  261. package/dist/src/{store-M0b1WfYb.js → store-BPkzEyFM.js} +2 -2
  262. package/dist/src/{store-CYEy5J2D.js → store-CPh25336.js} +3 -3
  263. package/dist/src/store-uQZ4AjPe.cjs +2 -0
  264. package/dist/src/{tables-CsWou1Bx.js → tables-BMSOS2Gg.js} +3 -3
  265. package/dist/src/{tables-DUfh1F7Z.cjs → tables-CXbaZ9y1.cjs} +2 -2
  266. package/dist/src/{tables-C4CH3zRr.js → tables-NlvH23ky.js} +3 -3
  267. package/dist/src/{tables-DQ4WU5tX.js → tables-WgdUZ8Ck.js} +2 -2
  268. package/dist/src/{telemetry-dbaJ0E98.js → telemetry--iqaGyaS.js} +5 -4
  269. package/dist/src/{telemetry-Dsw_faFj.cjs → telemetry-CEQxGnMZ.cjs} +7 -6
  270. package/dist/src/{telemetry-Dvqxv3YC.js → telemetry-CgdVGV8N.js} +4 -3
  271. package/dist/src/{telemetry-CQPez_Jp.js → telemetry-DWdGHvEf.js} +5 -4
  272. package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
  273. package/dist/src/telemetry-ZdPZc0fm.js +3 -0
  274. package/dist/src/{text-BVi-cLPJ.cjs → text-BiNME7QG.cjs} +1 -1
  275. package/dist/src/{text-KvuD2Iko.js → text-D4lz-Jg_.js} +1 -1
  276. package/dist/src/{text-DHxdyQqT.js → text-DDQP0tuQ.js} +1 -1
  277. package/dist/src/{text-CZr46tp_.js → text-NWvfMfkF.js} +1 -1
  278. package/dist/src/{tokenUsageUtils-CXrvO-wA.js → tokenUsageUtils-2wIvAhB3.js} +1 -1
  279. package/dist/src/{tokenUsageUtils-C-bmyHoE.js → tokenUsageUtils-4c780gFd.js} +1 -1
  280. package/dist/src/tokenUsageUtils-BjVkdk18.js +142 -0
  281. package/dist/src/{tokenUsageUtils-Bb7DkZPz.cjs → tokenUsageUtils-C9odhsbW.cjs} +1 -1
  282. package/dist/src/{transcription-DuWDupG7.js → transcription-84t4ALo2.js} +5 -5
  283. package/dist/src/{transcription-CJspiD2c.js → transcription-Bm2emLmJ.js} +6 -6
  284. package/dist/src/{transcription-BvjmiYB1.cjs → transcription-CZ4LG5hQ.cjs} +5 -5
  285. package/dist/src/{transcription-V2HaAmy2.js → transcription-D7Q0vJsh.js} +6 -6
  286. package/dist/src/{transform-zDhMmzwX.js → transform-B-b6Cq-q.js} +5 -5
  287. package/dist/src/transform-BQt0BeAW.js +3 -0
  288. package/dist/src/{transform-DgKlRr73.cjs → transform-Bq5oqC0s.cjs} +1 -1
  289. package/dist/src/{transform-CUnzlsbn.cjs → transform-C9izGX54.cjs} +4 -4
  290. package/dist/src/{transform-DYX1_Xnh.js → transform-CwbAZ84V.js} +5 -5
  291. package/dist/src/{transform-CTeuTR3S.cjs → transform-Dg4LcO1Y.cjs} +6 -6
  292. package/dist/src/{transform-CG0ehZNG.js → transform-DtooZqYY.js} +6 -6
  293. package/dist/src/{transform-UN5UGu8U.js → transform-DzCF-wqV.js} +5 -5
  294. package/dist/src/{transform-lQrDE1BQ.js → transform-_DpNB4qp.js} +5 -5
  295. package/dist/src/{transform-Bbg6A8Jk.js → transform-eGiUAv86.js} +4 -4
  296. package/dist/src/{transformersAvailability-Cju9mHgR.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
  297. package/dist/src/{transformersAvailability-CcHusyhw.js → transformersAvailability-lvCCvuPT.js} +1 -1
  298. package/dist/src/{transformersAvailability-DLlROWhg.js → transformersAvailability-rJGPccjr.js} +1 -1
  299. package/dist/src/{types-Bgh5SOn6.js → types-BDjGOq4E.js} +4 -2
  300. package/dist/src/{types-Dm9JM6Vb.js → types-BVH9hjgW.js} +4 -2
  301. package/dist/src/{types-CeaeaZdP.cjs → types-CgG2rKiW.cjs} +151 -149
  302. package/dist/src/{types-BGQDAP8i.js → types-DNRZVOue.js} +152 -150
  303. package/dist/src/{util-C8e5uydV.js → util-3pBZZb_H.js} +142 -17
  304. package/dist/src/{util-CN3SrLT4.cjs → util-A5_ZsQUn.cjs} +65 -43
  305. package/dist/src/{util-D3q0WQ-0.js → util-B9CNhyac.js} +66 -44
  306. package/dist/src/{util-DxWpWjhc.js → util-BQOCAHQC.js} +700 -575
  307. package/dist/src/{util-BYvQUPp7.js → util-BVXcTwXu.js} +3 -3
  308. package/dist/src/{util-D9TisOyk.js → util-BlFVL0UF.js} +65 -43
  309. package/dist/src/{util-C9J8ahRn.js → util-C-kmRosx.js} +66 -44
  310. package/dist/src/{util-DvU2Pw8c.js → util-DFPeFkiV.js} +3 -3
  311. package/dist/src/{util-DDs-7g6-.js → util-DN0-b81k.js} +3 -3
  312. package/dist/src/{util-olYL5C6N.cjs → util-Dpmm_dAI.cjs} +3 -3
  313. package/dist/src/{util-oGMLA7vc.js → util-Dub0f_ej.js} +700 -575
  314. package/dist/src/{util-Bxn8emtE.cjs → util-DvpHnLt0.cjs} +718 -570
  315. package/dist/src/{utils-DJfvjyMj.js → utils-BUMN8orw.js} +3 -3
  316. package/dist/src/{utils-B05gLxER.cjs → utils-DkVeShIB.cjs} +2 -2
  317. package/dist/src/{utils-BLJKfv0y.js → utils-kt7lv30R.js} +3 -3
  318. package/dist/src/{utils-hXtCYanr.js → utils-o8S5huU2.js} +2 -2
  319. package/dist/src/version-0frU0UTr.js +16 -0
  320. package/dist/src/version-CbpiUINz.js +17 -0
  321. package/dist/src/version-CbuBKu2U.js +16 -0
  322. package/dist/src/version-D9zu9FWB.cjs +27 -0
  323. package/dist/tsconfig.tsbuildinfo +1 -1
  324. package/package.json +22 -20
  325. package/dist/src/app/assets/Report-CQYFezYu.js +0 -1
  326. package/dist/src/app/assets/index-BzJt18Jz.js +0 -385
  327. package/dist/src/cache-Cr9oLMUa.js +0 -3
  328. package/dist/src/cloud-Hphvo8kr.js +0 -3
  329. package/dist/src/codex-sdk-BAmYE7qy.js +0 -3
  330. package/dist/src/evalResult-D8MT9p0s.js +0 -3
  331. package/dist/src/evalResult-Dvc-iucu.cjs +0 -2
  332. package/dist/src/evaluator-CVessDWe.js +0 -3
  333. package/dist/src/fetch-C7bGKDlQ.js +0 -3
  334. package/dist/src/graders-BOAzQEUe.cjs +0 -2
  335. package/dist/src/graders-D4BTsZdG2.js +0 -3
  336. package/dist/src/graders-DOJK1XpV.js +0 -2
  337. package/dist/src/graders-NAv9LcBn.js +0 -2
  338. package/dist/src/rubyUtils-D1L2d3jb.js +0 -3
  339. package/dist/src/rubyUtils-DUbq4tff.cjs +0 -2
  340. package/dist/src/server-DCtHUqlp.js +0 -3
  341. package/dist/src/store-CWOSz6D_.cjs +0 -2
  342. package/dist/src/store-DCDBhv7B.js +0 -3
  343. package/dist/src/telemetry-C1IqxcdW.js +0 -3
  344. package/dist/src/telemetry-C4ZEa_es.cjs +0 -2
  345. package/dist/src/transform-M6ITAESf.js +0 -3
  346. /package/dist/src/{evalResult-DElBuddX.js → evalResult-spPqh1G_.js} +0 -0
@@ -1,23 +1,230 @@
1
- import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-Ct2S6Yx-.js";
2
- import { d as maybeLoadToolsFromExternalFile, u as maybeLoadResponseFormatFromExternalFile } from "./util-oGMLA7vc.js";
3
- import { T as transformTools, w as transformToolChoice } from "./fetch-Di00EQrc.js";
4
- import { a as isCacheEnabled, i as getCache } from "./cache-D5NZmMiT.js";
5
- import { n as withGenAISpan } from "./genaiTracer-XnrcgDCe.js";
6
- import { i as normalizeFinishReason, n as MCPClient } from "./chat-I9izLm49.js";
7
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-C-bmyHoE.js";
8
- import { n as transformMCPToolsToAnthropic } from "./transform-CG0ehZNG.js";
9
- import { a as outputFromMessage, i as getTokenUsage, n as calculateAnthropicCost, o as parseMessages, r as getRefusalDetails, s as processAnthropicTools, t as ANTHROPIC_MODELS } from "./util-DvU2Pw8c.js";
1
+ import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-KD8JjCRJ.js";
2
+ import { T as transformTools, w as transformToolChoice } from "./fetch-Y5qX_kST.js";
3
+ import { n as withGenAISpan } from "./genaiTracer-DxODqT9e.js";
4
+ import { a as isCacheEnabled, i as getCache } from "./cache-Cr-qWIbP.js";
5
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
6
+ import { M as maybeLoadToolsFromExternalFile, j as maybeLoadResponseFormatFromExternalFile } from "./util-3pBZZb_H.js";
7
+ import { i as normalizeFinishReason, n as MCPClient } from "./chat-DChSH_Es.js";
8
+ import { n as transformMCPToolsToAnthropic } from "./transform-DtooZqYY.js";
9
+ import { a as outputFromMessage, i as getTokenUsage, n as calculateAnthropicCost, o as parseMessages, r as getRefusalDetails, s as processAnthropicTools, t as ANTHROPIC_MODELS } from "./util-DFPeFkiV.js";
10
+ import path from "node:path";
11
+ import fs from "node:fs";
10
12
  import Anthropic, { APIError } from "@anthropic-ai/sdk";
13
+ import { execFileSync } from "node:child_process";
14
+ import os from "node:os";
15
+ //#region src/providers/anthropic/claudeCodeAuth.ts
16
+ /**
17
+ * Claude Code prepends this identity block as the first `system` message when
18
+ * calling the Anthropic Messages API with an OAuth token. As of 2025-Q4 the
19
+ * API returns HTTP 400 `invalid_request_error` when an OAuth-authenticated
20
+ * request's first system block is not this exact string, so any caller
21
+ * reusing a Claude Code OAuth token must inject this block before the
22
+ * user-provided system prompt. Re-verify if Anthropic ships an OAuth-native
23
+ * `/v1/messages` path that drops the requirement.
24
+ */
25
+ const CLAUDE_CODE_IDENTITY_PROMPT = "You are Claude Code, Anthropic's official CLI for Claude.";
26
+ /**
27
+ * Anthropic beta headers required when authenticating the Messages API with a
28
+ * Claude Code OAuth token (e.g. a Claude Max subscription access token, or a
29
+ * long-lived token minted by `claude setup-token`).
30
+ *
31
+ * - `oauth-2025-04-20` enables OAuth bearer tokens on `/v1/messages`.
32
+ * - `claude-code-20250219` enables the Claude Code tool-use surface area the
33
+ * OAuth token is scoped to.
34
+ *
35
+ * Revisit if Anthropic ships an OAuth-native Messages path that no longer
36
+ * requires these betas.
37
+ */
38
+ const CLAUDE_CODE_OAUTH_BETA_FEATURES = Object.freeze(["claude-code-20250219", "oauth-2025-04-20"]);
39
+ /**
40
+ * The `user-agent` value Claude Code CLI sends on OAuth-authenticated
41
+ * Messages requests. Anthropic's API gates OAuth tokens to the Claude Code
42
+ * app identity, so requests that use a different user-agent fail with 401.
43
+ *
44
+ * The `1.0.0` suffix is cosmetic — Anthropic gates on the `claude-cli`
45
+ * product identifier, not the semver. Revisit if OAuth requests start
46
+ * returning 401 after SDK or CLI updates.
47
+ */
48
+ const CLAUDE_CODE_USER_AGENT = "claude-cli/1.0.0 (external, promptfoo)";
49
+ const CLAUDE_CODE_KEYCHAIN_SERVICE = "Claude Code-credentials";
50
+ const CLAUDE_CODE_CREDENTIALS_FILE = path.join(".claude", ".credentials.json");
51
+ function resolveCredentialsPath() {
52
+ return path.join(os.homedir(), CLAUDE_CODE_CREDENTIALS_FILE);
53
+ }
54
+ /**
55
+ * `security` exits with status 44 when the requested generic-password entry
56
+ * does not exist. Any other non-zero exit (or throw) indicates a real failure
57
+ * — ACL denial, corrupted entry, missing binary, timeout — and is worth a
58
+ * `warn` log rather than silently falling through.
59
+ */
60
+ const SECURITY_ENTRY_NOT_FOUND = 44;
61
+ function parseCredential(raw) {
62
+ if (!raw || typeof raw !== "object") return {
63
+ ok: false,
64
+ reason: "credential JSON is not an object"
65
+ };
66
+ const claudeAiOauth = raw.claudeAiOauth;
67
+ if (!claudeAiOauth || typeof claudeAiOauth !== "object") return {
68
+ ok: false,
69
+ reason: "missing `claudeAiOauth` object"
70
+ };
71
+ const inner = claudeAiOauth;
72
+ const accessToken = inner.accessToken;
73
+ if (typeof accessToken !== "string" || !accessToken) return {
74
+ ok: false,
75
+ reason: "missing `claudeAiOauth.accessToken` string"
76
+ };
77
+ const credential = { accessToken };
78
+ if (typeof inner.refreshToken === "string" && inner.refreshToken) credential.refreshToken = inner.refreshToken;
79
+ if (typeof inner.expiresAt === "number" && Number.isFinite(inner.expiresAt)) credential.expiresAt = inner.expiresAt;
80
+ if (typeof inner.subscriptionType === "string") credential.subscriptionType = inner.subscriptionType;
81
+ return {
82
+ ok: true,
83
+ credential
84
+ };
85
+ }
86
+ function parseJsonBlob(blob) {
87
+ let parsed;
88
+ try {
89
+ parsed = JSON.parse(blob);
90
+ } catch (err) {
91
+ return {
92
+ ok: false,
93
+ reason: `invalid JSON: ${err instanceof Error ? err.message : String(err)}`
94
+ };
95
+ }
96
+ return parseCredential(parsed);
97
+ }
98
+ function readFromMacosKeychain() {
99
+ if (process.platform !== "darwin") return null;
100
+ let out;
101
+ try {
102
+ out = execFileSync("security", [
103
+ "find-generic-password",
104
+ "-s",
105
+ CLAUDE_CODE_KEYCHAIN_SERVICE,
106
+ "-w"
107
+ ], {
108
+ encoding: "utf-8",
109
+ stdio: [
110
+ "ignore",
111
+ "pipe",
112
+ "ignore"
113
+ ],
114
+ timeout: 5e3
115
+ });
116
+ } catch (err) {
117
+ if (err?.status === SECURITY_ENTRY_NOT_FOUND) {
118
+ logger.debug("[anthropic] No Claude Code credential entry in the macOS keychain; trying file fallback.");
119
+ return null;
120
+ }
121
+ logger.warn("[anthropic] Failed to read Claude Code credential from macOS keychain; falling back to file lookup.", { error: err instanceof Error ? err.message : String(err) });
122
+ return null;
123
+ }
124
+ const trimmed = out.trim();
125
+ if (!trimmed) {
126
+ logger.warn("[anthropic] Claude Code macOS keychain entry is empty. Run `claude /login` to refresh it.");
127
+ return null;
128
+ }
129
+ const result = parseJsonBlob(trimmed);
130
+ if (!result.ok) {
131
+ logger.warn(`[anthropic] Claude Code macOS keychain entry is malformed (${result.reason}). Run \`claude /login\` to refresh it.`);
132
+ return null;
133
+ }
134
+ return result.credential;
135
+ }
136
+ function readFromFile() {
137
+ const filePath = resolveCredentialsPath();
138
+ if (!fs.existsSync(filePath)) return null;
139
+ let raw;
140
+ try {
141
+ raw = fs.readFileSync(filePath, "utf-8");
142
+ } catch (err) {
143
+ logger.warn(`[anthropic] Claude Code credentials file at ${filePath} exists but could not be read. Run \`claude /login\` to refresh it.`, { error: err instanceof Error ? err.message : String(err) });
144
+ return null;
145
+ }
146
+ const result = parseJsonBlob(raw);
147
+ if (!result.ok) {
148
+ logger.warn(`[anthropic] Claude Code credentials file at ${filePath} is malformed (${result.reason}). Run \`claude /login\` to refresh it.`);
149
+ return null;
150
+ }
151
+ return result.credential;
152
+ }
153
+ /**
154
+ * Loads a Claude Code OAuth credential from the local environment.
155
+ *
156
+ * Resolution order:
157
+ * 1. macOS keychain (`security find-generic-password -s "Claude Code-credentials"`)
158
+ * — only attempted on darwin.
159
+ * 2. `$HOME/.claude/.credentials.json` — the Linux/Windows default used by
160
+ * Claude Code, and a fallback on macOS when the keychain entry is missing.
161
+ * On Windows this resolves to `%USERPROFILE%\.claude\.credentials.json`.
162
+ *
163
+ * Returns `null` when no credential is available. Callers should check
164
+ * {@link isCredentialExpired} on a non-null return before using it — this
165
+ * function does not filter out expired credentials so callers can decide
166
+ * whether to warn, refuse, or surface a 401 to the user.
167
+ *
168
+ * Never throws. Missing credentials fall through silently; corrupted or
169
+ * unreadable credentials are logged at `warn` level with a reason so broken
170
+ * setups are diagnosable without enabling debug logging.
171
+ */
172
+ function loadClaudeCodeCredential() {
173
+ return readFromMacosKeychain() ?? readFromFile();
174
+ }
175
+ /**
176
+ * Returns `true` when the credential's `expiresAt` (ms since epoch) is in the
177
+ * past. Credentials without an `expiresAt` are treated as non-expired — the
178
+ * Anthropic API will reject them with a 401 if the token is actually invalid.
179
+ */
180
+ function isCredentialExpired(credential) {
181
+ if (credential.expiresAt == null) return false;
182
+ return Date.now() >= credential.expiresAt;
183
+ }
184
+ //#endregion
11
185
  //#region src/providers/anthropic/generic.ts
12
186
  /**
13
- * Generic provider class for Anthropic APIs
14
- * Serves as a base class with shared functionality for all Anthropic providers
187
+ * Generic provider class for Anthropic APIs.
188
+ *
189
+ * Serves as a base class with shared functionality for all Anthropic
190
+ * subclass providers. Handles API key resolution and, for subclasses that
191
+ * opt in via {@link AnthropicGenericProvider.SUPPORTS_CLAUDE_CODE_OAUTH},
192
+ * falls back to an OAuth token loaded from a local Claude Code session so
193
+ * Claude.ai subscribers can run evals without a separate console API key.
194
+ *
195
+ * The OAuth fallback is opt-in so it only affects
196
+ * `AnthropicMessagesProvider`. Claude Code OAuth tokens are gated to the
197
+ * Messages API (`/v1/messages`) — forwarding them to the legacy
198
+ * text-completion endpoint would fail at request time, which would cause
199
+ * `anthropic:completion:*` configs to bypass promptfoo's upfront preflight
200
+ * check and then produce a less useful error for every test case.
15
201
  */
16
202
  var AnthropicGenericProvider = class {
203
+ /**
204
+ * Subclasses that can authenticate via a Claude Code OAuth session
205
+ * should override this to `true`. The base class's constructor reads the
206
+ * flag from `this.constructor` so only OAuth-capable subclasses attempt
207
+ * the credential lookup (and only they honor `apiKeyRequired: false`).
208
+ */
209
+ static SUPPORTS_CLAUDE_CODE_OAUTH = false;
17
210
  modelName;
18
211
  config;
19
212
  env;
20
213
  apiKey;
214
+ /**
215
+ * `true` when this provider is authenticating via a Claude Code OAuth token
216
+ * rather than a standard `ANTHROPIC_API_KEY`. Subclasses use this to inject
217
+ * the Claude Code identity system block that Anthropic's API requires for
218
+ * OAuth-authenticated Messages requests.
219
+ */
220
+ usingClaudeCodeOAuth;
221
+ /**
222
+ * The Claude Code credential used to authenticate, when
223
+ * `usingClaudeCodeOAuth` is `true`. Kept so subclasses can re-check expiry
224
+ * at request time and surface a "run `claude /login`" error instead of a
225
+ * raw 401 from the SDK.
226
+ */
227
+ claudeCodeCredential;
21
228
  anthropic;
22
229
  constructor(modelName, options = {}) {
23
230
  const { config, id, env } = options;
@@ -25,9 +232,28 @@ var AnthropicGenericProvider = class {
25
232
  this.modelName = modelName;
26
233
  this.config = config || {};
27
234
  this.apiKey = this.getApiKey();
235
+ this.usingClaudeCodeOAuth = false;
236
+ let authToken;
237
+ const defaultHeaders = {};
238
+ const subclass = this.constructor;
239
+ if (!this.apiKey && this.config.apiKeyRequired === false && subclass.SUPPORTS_CLAUDE_CODE_OAUTH) {
240
+ const credential = loadClaudeCodeCredential();
241
+ if (credential) {
242
+ if (isCredentialExpired(credential)) logger.warn("[anthropic] Claude Code OAuth credential is expired. Run `claude /login` to refresh it.");
243
+ else logger.debug("[anthropic] Authenticating with Claude Code OAuth credential from local session.");
244
+ authToken = credential.accessToken;
245
+ this.usingClaudeCodeOAuth = true;
246
+ this.claudeCodeCredential = credential;
247
+ defaultHeaders["anthropic-beta"] = CLAUDE_CODE_OAUTH_BETA_FEATURES.join(",");
248
+ defaultHeaders["user-agent"] = CLAUDE_CODE_USER_AGENT;
249
+ defaultHeaders["x-app"] = "cli";
250
+ } else logger.warn("[anthropic] apiKeyRequired is false but no Claude Code credential was found. Run `claude /login` to create one, or set ANTHROPIC_API_KEY.");
251
+ }
28
252
  this.anthropic = new Anthropic({
29
- apiKey: this.apiKey,
30
- baseURL: this.getApiBaseUrl()
253
+ apiKey: this.apiKey ?? null,
254
+ authToken: authToken ?? null,
255
+ baseURL: this.getApiBaseUrl(),
256
+ ...Object.keys(defaultHeaders).length > 0 ? { defaultHeaders } : {}
31
257
  });
32
258
  this.id = id ? () => id : this.id;
33
259
  }
@@ -37,7 +263,16 @@ var AnthropicGenericProvider = class {
37
263
  toString() {
38
264
  return `[Anthropic Provider ${this.modelName}]`;
39
265
  }
266
+ /**
267
+ * Whether promptfoo's preflight check should require an API key before
268
+ * dispatching requests to this provider. Returns `false` only for
269
+ * OAuth-capable subclasses (see {@link SUPPORTS_CLAUDE_CODE_OAUTH}) when
270
+ * the user has opted in via `apiKeyRequired: false`. All other subclasses
271
+ * keep the preflight check so missing-credential errors surface upfront
272
+ * rather than at per-request call time.
273
+ */
40
274
  requiresApiKey() {
275
+ if (this.constructor.SUPPORTS_CLAUDE_CODE_OAUTH && this.config.apiKeyRequired === false) return false;
41
276
  return true;
42
277
  }
43
278
  getApiKey() {
@@ -69,6 +304,7 @@ function isThinkingEnabled(thinking) {
69
304
  var AnthropicMessagesProvider = class AnthropicMessagesProvider extends AnthropicGenericProvider {
70
305
  mcpClient = null;
71
306
  initializationPromise = null;
307
+ static SUPPORTS_CLAUDE_CODE_OAUTH = true;
72
308
  static ANTHROPIC_MODELS = ANTHROPIC_MODELS;
73
309
  static ANTHROPIC_MODELS_NAMES = ANTHROPIC_MODELS.map((model) => model.id);
74
310
  constructor(modelName, options = {}) {
@@ -95,7 +331,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
95
331
  }
96
332
  async callApi(prompt, context) {
97
333
  if (this.initializationPromise != null) await this.initializationPromise;
98
- if (!this.apiKey) throw new Error("Anthropic API key is not set. Set the ANTHROPIC_API_KEY environment variable or add `apiKey` to the provider config.");
334
+ if (!this.apiKey && !this.usingClaudeCodeOAuth) throw new Error("Anthropic API key is not set. Set the ANTHROPIC_API_KEY environment variable or add `apiKey` to the provider config. Alternatively, if you have an active Claude Code session, set `apiKeyRequired: false` in the provider config to authenticate via Claude Code.");
335
+ if (this.usingClaudeCodeOAuth && this.claudeCodeCredential && isCredentialExpired(this.claudeCodeCredential)) throw new Error("Claude Code OAuth credential is expired. Run `claude /login` to refresh it, then re-run the eval.");
99
336
  if (!this.modelName) throw new Error("Anthropic model name is not set. Please provide a valid model name.");
100
337
  const spanContext = {
101
338
  system: "anthropic",
@@ -158,10 +395,14 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
158
395
  if (this.modelName.startsWith("claude-opus-4-6") && extractedMessages.length > 0) {
159
396
  if (extractedMessages[extractedMessages.length - 1].role === "assistant") logger.warn("Assistant message prefilling is not supported on Claude Opus 4.6 and will cause a 400 error. Remove the trailing assistant message from your prompt.");
160
397
  }
398
+ const resolvedSystem = this.usingClaudeCodeOAuth ? [{
399
+ type: "text",
400
+ text: CLAUDE_CODE_IDENTITY_PROMPT
401
+ }, ...system ?? []] : system;
161
402
  const shouldStream = config.stream ?? false;
162
403
  const params = {
163
404
  model: this.modelName,
164
- ...system ? { system } : {},
405
+ ...resolvedSystem && resolvedSystem.length > 0 ? { system: resolvedSystem } : {},
165
406
  max_tokens: config.max_tokens ?? getEnvInt("ANTHROPIC_MAX_TOKENS", thinkingEnabled ? 2048 : 1024),
166
407
  messages: extractedMessages,
167
408
  stream: shouldStream,
@@ -184,9 +425,16 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
184
425
  logger.debug("Calling Anthropic Messages API", { params });
185
426
  const headers = { ...config.headers || {} };
186
427
  let allBetaFeatures = [...config.beta || [], ...requiredBetaFeatures];
428
+ const userBetaHeader = config.headers?.["anthropic-beta"];
429
+ if (typeof userBetaHeader === "string" && userBetaHeader.length > 0) allBetaFeatures.push(...userBetaHeader.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0));
187
430
  if (processedOutputFormat && !allBetaFeatures.includes("structured-outputs-2025-11-13")) allBetaFeatures.push("structured-outputs-2025-11-13");
431
+ if (this.usingClaudeCodeOAuth) allBetaFeatures.push(...CLAUDE_CODE_OAUTH_BETA_FEATURES);
188
432
  allBetaFeatures = [...new Set(allBetaFeatures)];
189
433
  if (allBetaFeatures.length > 0) headers["anthropic-beta"] = allBetaFeatures.join(",");
434
+ if (this.usingClaudeCodeOAuth) {
435
+ headers["user-agent"] = CLAUDE_CODE_USER_AGENT;
436
+ headers["x-app"] = "cli";
437
+ }
190
438
  const cache = await getCache();
191
439
  const { metadata: _metadata, ...cacheKeyParams } = params;
192
440
  const cacheKey = `anthropic:${JSON.stringify(cacheKeyParams)}`;
@@ -292,4 +540,4 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
292
540
  //#endregion
293
541
  export { AnthropicGenericProvider as n, AnthropicMessagesProvider as t };
294
542
 
295
- //# sourceMappingURL=messages-BTQz42fn.js.map
543
+ //# sourceMappingURL=messages-CewuNcNS.js.map
@@ -131,4 +131,4 @@ async function handleMeteorAssertion({ assertion, inverse, outputString, rendere
131
131
  //#endregion
132
132
  exports.handleMeteorAssertion = handleMeteorAssertion;
133
133
 
134
- //# sourceMappingURL=meteor-Co1VQ1u5.cjs.map
134
+ //# sourceMappingURL=meteor-BBGcGeCa.cjs.map
@@ -131,4 +131,4 @@ async function handleMeteorAssertion({ assertion, inverse, outputString, rendere
131
131
  //#endregion
132
132
  export { handleMeteorAssertion };
133
133
 
134
- //# sourceMappingURL=meteor-DuAFv6gF.js.map
134
+ //# sourceMappingURL=meteor-BKTM-7KS.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as invariant } from "./invariant-BtWWVVhl.js";
2
+ import { t as invariant } from "./invariant-B2Rf6avk.js";
3
3
  //#region src/assertions/meteor.ts
4
4
  let PorterStemmer;
5
5
  let WordNet;
@@ -132,4 +132,4 @@ async function handleMeteorAssertion({ assertion, inverse, outputString, rendere
132
132
  //#endregion
133
133
  export { handleMeteorAssertion };
134
134
 
135
- //# sourceMappingURL=meteor-DHdzY1Ss.js.map
135
+ //# sourceMappingURL=meteor-CeGo0Lu2.js.map
@@ -1,4 +1,4 @@
1
- import { t as invariant } from "./invariant-vgHWClmd.js";
1
+ import { t as invariant } from "./invariant-DIYf9sP1.js";
2
2
  //#region src/assertions/meteor.ts
3
3
  let PorterStemmer;
4
4
  let WordNet;
@@ -131,4 +131,4 @@ async function handleMeteorAssertion({ assertion, inverse, outputString, rendere
131
131
  //#endregion
132
132
  export { handleMeteorAssertion };
133
133
 
134
- //# sourceMappingURL=meteor-CU5UAE-H.js.map
134
+ //# sourceMappingURL=meteor-Wc_aUVvu.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { O as getEnvString, s as logger } from "./logger-DksKw1Qc.js";
3
- import { m as REQUEST_TIMEOUT_MS, n as fetchWithProxy } from "./fetch-BEWnXrrG.js";
4
- import { a as fetchWithCache } from "./cache-mb7c8hbp.js";
5
- import { i as storeBlob } from "./blobs-BQWqnnvL.js";
6
- import { n as isBlobStorageEnabled } from "./extractor-DNSeBVOJ.js";
7
- import { t as ellipsize } from "./text-KvuD2Iko.js";
2
+ import { O as getEnvString, s as logger } from "./logger-BbY6ypFL.js";
3
+ import { m as REQUEST_TIMEOUT_MS, n as fetchWithProxy } from "./fetch-B6ch2nU2.js";
4
+ import { a as fetchWithCache } from "./cache-BI5BY7ey.js";
5
+ import { i as storeBlob } from "./blobs-DjLby-uP.js";
6
+ import { n as isBlobStorageEnabled } from "./extractor-DxyiFhPk.js";
7
+ import { t as ellipsize } from "./text-D4lz-Jg_.js";
8
8
  //#region src/providers/modelslab.ts
9
9
  /**
10
10
  * ModelsLab provider for text-to-image generation.
@@ -161,4 +161,4 @@ var ModelsLabImageProvider = class {
161
161
  //#endregion
162
162
  export { ModelsLabImageProvider };
163
163
 
164
- //# sourceMappingURL=modelslab-wu9yi5GE.js.map
164
+ //# sourceMappingURL=modelslab-BCLOtfek.js.map
@@ -1,9 +1,9 @@
1
1
  const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_fetch = require("./fetch-CJU5ELPa.cjs");
3
- const require_cache = require("./cache-BIyPcp5v.cjs");
4
- const require_blobs = require("./blobs-D2FAd1Q5.cjs");
5
- const require_extractor = require("./extractor-WVPOrH43.cjs");
6
- const require_text = require("./text-BVi-cLPJ.cjs");
2
+ const require_fetch = require("./fetch-NuqXW1Xb.cjs");
3
+ const require_blobs = require("./blobs-B95F_7vE.cjs");
4
+ const require_extractor = require("./extractor-Dxr2J_wK.cjs");
5
+ const require_cache = require("./cache-DGg-yTZG.cjs");
6
+ const require_text = require("./text-BiNME7QG.cjs");
7
7
  //#region src/providers/modelslab.ts
8
8
  /**
9
9
  * ModelsLab provider for text-to-image generation.
@@ -160,4 +160,4 @@ var ModelsLabImageProvider = class {
160
160
  //#endregion
161
161
  exports.ModelsLabImageProvider = ModelsLabImageProvider;
162
162
 
163
- //# sourceMappingURL=modelslab-Dk1JAtVo.cjs.map
163
+ //# sourceMappingURL=modelslab-BkapYJhh.cjs.map
@@ -1,9 +1,9 @@
1
1
  import { T as getEnvString, a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { h as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-Di00EQrc.js";
3
- import { r as fetchWithCache } from "./cache-D5NZmMiT.js";
4
- import { r as storeBlob } from "./blobs-C-F78Kfn.js";
5
- import { n as isBlobStorageEnabled } from "./extractor-Dk6bRWkv.js";
6
- import { t as ellipsize } from "./text-DHxdyQqT.js";
2
+ import { t as fetchWithProxy, u as REQUEST_TIMEOUT_MS } from "./fetch-D9xxyC1p.js";
3
+ import { r as storeBlob } from "./blobs-BW4U31ue.js";
4
+ import { n as isBlobStorageEnabled } from "./extractor-BM3jRERL.js";
5
+ import { r as fetchWithCache } from "./cache-Bzttsk0X.js";
6
+ import { t as ellipsize } from "./text-DDQP0tuQ.js";
7
7
  //#region src/providers/modelslab.ts
8
8
  /**
9
9
  * ModelsLab provider for text-to-image generation.
@@ -160,4 +160,4 @@ var ModelsLabImageProvider = class {
160
160
  //#endregion
161
161
  export { ModelsLabImageProvider };
162
162
 
163
- //# sourceMappingURL=modelslab-DIq-6y7x.js.map
163
+ //# sourceMappingURL=modelslab-D73OnKSx.js.map
@@ -1,9 +1,9 @@
1
- import { T as getEnvString, a as logger } from "./logger-B88EkIn6.js";
2
- import { h as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-B0Z3Oe4k.js";
3
- import { r as fetchWithCache } from "./cache-C4Xb-hNb.js";
4
- import { i as storeBlob } from "./blobs-BCZavS8s.js";
5
- import { n as isBlobStorageEnabled } from "./extractor-CAfTSraf.js";
6
- import { t as ellipsize } from "./text-CZr46tp_.js";
1
+ import { T as getEnvString, a as logger } from "./logger-KD8JjCRJ.js";
2
+ import { h as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-Y5qX_kST.js";
3
+ import { r as fetchWithCache } from "./cache-Cr-qWIbP.js";
4
+ import { i as storeBlob } from "./blobs-D_gg8nbm.js";
5
+ import { n as isBlobStorageEnabled } from "./extractor-YlZbUMsL.js";
6
+ import { t as ellipsize } from "./text-NWvfMfkF.js";
7
7
  //#region src/providers/modelslab.ts
8
8
  /**
9
9
  * ModelsLab provider for text-to-image generation.
@@ -160,4 +160,4 @@ var ModelsLabImageProvider = class {
160
160
  //#endregion
161
161
  export { ModelsLabImageProvider };
162
162
 
163
- //# sourceMappingURL=modelslab-D0erNWKe.js.map
163
+ //# sourceMappingURL=modelslab-zpz9JcK0.js.map
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-DksKw1Qc.js";
3
- import { l as sleep } from "./fetch-BEWnXrrG.js";
4
- import { i as storeBlob } from "./blobs-BQWqnnvL.js";
5
- import { t as ellipsize } from "./text-KvuD2Iko.js";
6
- import { t as AwsBedrockGenericProvider } from "./base-fZ9wgg50.js";
2
+ import { s as logger } from "./logger-BbY6ypFL.js";
3
+ import { l as sleep } from "./fetch-B6ch2nU2.js";
4
+ import { i as storeBlob } from "./blobs-DjLby-uP.js";
5
+ import { t as ellipsize } from "./text-D4lz-Jg_.js";
6
+ import { t as AwsBedrockGenericProvider } from "./base-BOMaNEes.js";
7
7
  import * as fs$1 from "fs";
8
8
  import * as path$1 from "path";
9
9
  //#region src/providers/bedrock/nova-reel.ts
@@ -274,4 +274,4 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
274
274
  //#endregion
275
275
  export { NovaReelVideoProvider };
276
276
 
277
- //# sourceMappingURL=nova-reel-CCFRfeRb.js.map
277
+ //# sourceMappingURL=nova-reel-B8F_TK5w.js.map
@@ -1,8 +1,8 @@
1
1
  import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { d as sleep } from "./fetch-Di00EQrc.js";
3
- import { r as storeBlob } from "./blobs-C-F78Kfn.js";
4
- import { t as ellipsize } from "./text-DHxdyQqT.js";
5
- import { t as AwsBedrockGenericProvider } from "./base-PYJvBE1i.js";
2
+ import { o as sleep } from "./fetch-D9xxyC1p.js";
3
+ import { r as storeBlob } from "./blobs-BW4U31ue.js";
4
+ import { t as ellipsize } from "./text-DDQP0tuQ.js";
5
+ import { t as AwsBedrockGenericProvider } from "./base-BTux96b1.js";
6
6
  import * as fs$1 from "fs";
7
7
  import * as path$1 from "path";
8
8
  //#region src/providers/bedrock/nova-reel.ts
@@ -273,4 +273,4 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
273
273
  //#endregion
274
274
  export { NovaReelVideoProvider };
275
275
 
276
- //# sourceMappingURL=nova-reel-DQrm74ng.js.map
276
+ //# sourceMappingURL=nova-reel-Bx0NFV2f.js.map
@@ -1,8 +1,8 @@
1
- import { a as logger } from "./logger-B88EkIn6.js";
2
- import { d as sleep } from "./fetch-B0Z3Oe4k.js";
3
- import { i as storeBlob } from "./blobs-BCZavS8s.js";
4
- import { t as ellipsize } from "./text-CZr46tp_.js";
5
- import { t as AwsBedrockGenericProvider } from "./base-yrI1Yal4.js";
1
+ import { a as logger } from "./logger-KD8JjCRJ.js";
2
+ import { d as sleep } from "./fetch-Y5qX_kST.js";
3
+ import { i as storeBlob } from "./blobs-D_gg8nbm.js";
4
+ import { t as ellipsize } from "./text-NWvfMfkF.js";
5
+ import { t as AwsBedrockGenericProvider } from "./base-dYsl2hmL.js";
6
6
  import * as fs$1 from "fs";
7
7
  import * as path$1 from "path";
8
8
  //#region src/providers/bedrock/nova-reel.ts
@@ -273,4 +273,4 @@ var NovaReelVideoProvider = class extends AwsBedrockGenericProvider {
273
273
  //#endregion
274
274
  export { NovaReelVideoProvider };
275
275
 
276
- //# sourceMappingURL=nova-reel-gr11WG7f.js.map
276
+ //# sourceMappingURL=nova-reel-CNGJTLtG.js.map
@@ -1,8 +1,8 @@
1
1
  const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_fetch = require("./fetch-CJU5ELPa.cjs");
3
- const require_blobs = require("./blobs-D2FAd1Q5.cjs");
4
- const require_text = require("./text-BVi-cLPJ.cjs");
5
- const require_base = require("./base-D-670DX8.cjs");
2
+ const require_fetch = require("./fetch-NuqXW1Xb.cjs");
3
+ const require_blobs = require("./blobs-B95F_7vE.cjs");
4
+ const require_text = require("./text-BiNME7QG.cjs");
5
+ const require_base = require("./base-Tw6uhH8K.cjs");
6
6
  let fs = require("fs");
7
7
  fs = require_logger.__toESM(fs);
8
8
  let path = require("path");
@@ -275,4 +275,4 @@ var NovaReelVideoProvider = class extends require_base.AwsBedrockGenericProvider
275
275
  //#endregion
276
276
  exports.NovaReelVideoProvider = NovaReelVideoProvider;
277
277
 
278
- //# sourceMappingURL=nova-reel-CrLXVKQf.cjs.map
278
+ //# sourceMappingURL=nova-reel-DkT7tnoB.cjs.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-DksKw1Qc.js";
3
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-CXrvO-wA.js";
4
- import { t as AwsBedrockGenericProvider } from "./base-fZ9wgg50.js";
2
+ import { s as logger } from "./logger-BbY6ypFL.js";
3
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-2wIvAhB3.js";
4
+ import { t as AwsBedrockGenericProvider } from "./base-BOMaNEes.js";
5
5
  import { Buffer } from "node:buffer";
6
6
  import { Subject, firstValueFrom } from "rxjs";
7
7
  import { take } from "rxjs/operators";
@@ -361,4 +361,4 @@ var NovaSonicProvider = class extends AwsBedrockGenericProvider {
361
361
  //#endregion
362
362
  export { NovaSonicProvider };
363
363
 
364
- //# sourceMappingURL=nova-sonic-BYdp-QLs.js.map
364
+ //# sourceMappingURL=nova-sonic-BaXRN1cr.js.map
@@ -1,6 +1,6 @@
1
- import { a as logger } from "./logger-B88EkIn6.js";
2
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-C-bmyHoE.js";
3
- import { t as AwsBedrockGenericProvider } from "./base-yrI1Yal4.js";
1
+ import { a as logger } from "./logger-KD8JjCRJ.js";
2
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
3
+ import { t as AwsBedrockGenericProvider } from "./base-dYsl2hmL.js";
4
4
  import { Buffer } from "node:buffer";
5
5
  import { Subject, firstValueFrom } from "rxjs";
6
6
  import { take } from "rxjs/operators";
@@ -360,4 +360,4 @@ var NovaSonicProvider = class extends AwsBedrockGenericProvider {
360
360
  //#endregion
361
361
  export { NovaSonicProvider };
362
362
 
363
- //# sourceMappingURL=nova-sonic-TDgrlTk7.js.map
363
+ //# sourceMappingURL=nova-sonic-BeTRaFOh.js.map
@@ -1,6 +1,6 @@
1
1
  import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-C-bmyHoE.js";
3
- import { t as AwsBedrockGenericProvider } from "./base-PYJvBE1i.js";
2
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-4c780gFd.js";
3
+ import { t as AwsBedrockGenericProvider } from "./base-BTux96b1.js";
4
4
  import { Buffer } from "node:buffer";
5
5
  import { Subject, firstValueFrom } from "rxjs";
6
6
  import { take } from "rxjs/operators";
@@ -360,4 +360,4 @@ var NovaSonicProvider = class extends AwsBedrockGenericProvider {
360
360
  //#endregion
361
361
  export { NovaSonicProvider };
362
362
 
363
- //# sourceMappingURL=nova-sonic-B_ZXcUJB.js.map
363
+ //# sourceMappingURL=nova-sonic-CL7Zqv0G.js.map
@@ -1,6 +1,6 @@
1
1
  const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_tokenUsageUtils = require("./tokenUsageUtils-Bb7DkZPz.cjs");
3
- const require_base = require("./base-D-670DX8.cjs");
2
+ const require_tokenUsageUtils = require("./tokenUsageUtils-C9odhsbW.cjs");
3
+ const require_base = require("./base-Tw6uhH8K.cjs");
4
4
  let node_buffer = require("node:buffer");
5
5
  let rxjs = require("rxjs");
6
6
  let rxjs_operators = require("rxjs/operators");
@@ -360,4 +360,4 @@ var NovaSonicProvider = class extends require_base.AwsBedrockGenericProvider {
360
360
  //#endregion
361
361
  exports.NovaSonicProvider = NovaSonicProvider;
362
362
 
363
- //# sourceMappingURL=nova-sonic-i5tUvXKn.cjs.map
363
+ //# sourceMappingURL=nova-sonic-YT426juD.cjs.map
@@ -1,4 +1,4 @@
1
- import { T as getEnvString } from "./logger-B88EkIn6.js";
1
+ import { T as getEnvString } from "./logger-KD8JjCRJ.js";
2
2
  //#region src/providers/openai/index.ts
3
3
  var OpenAiGenericProvider = class {
4
4
  modelName;
@@ -44,4 +44,4 @@ var OpenAiGenericProvider = class {
44
44
  //#endregion
45
45
  export { OpenAiGenericProvider as t };
46
46
 
47
- //# sourceMappingURL=openai-DhVEmgeZ.js.map
47
+ //# sourceMappingURL=openai-BMHD2Huo.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { O as getEnvString } from "./logger-DksKw1Qc.js";
2
+ import { O as getEnvString } from "./logger-BbY6ypFL.js";
3
3
  //#region src/providers/openai/index.ts
4
4
  var OpenAiGenericProvider = class {
5
5
  modelName;
@@ -45,4 +45,4 @@ var OpenAiGenericProvider = class {
45
45
  //#endregion
46
46
  export { OpenAiGenericProvider as t };
47
47
 
48
- //# sourceMappingURL=openai-Qsvz25mV.js.map
48
+ //# sourceMappingURL=openai-BT-JvDse.js.map