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
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { n as evaluate } from "./evaluator-D-UIbbYq.js";
3
+ export { evaluate };
@@ -1,7 +1,7 @@
1
1
  import { S as getEnvBool, a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { o as cloudConfig } from "./fetch-Di00EQrc.js";
3
- import { o as isLoggedIntoCloud } from "./accounts-DhMYUUbu.js";
4
- import { n as recordBlobReference, r as storeBlob } from "./blobs-C-F78Kfn.js";
2
+ import { S as cloudConfig } from "./fetch-D9xxyC1p.js";
3
+ import { o as isLoggedIntoCloud } from "./accounts-CaLNYnf7.js";
4
+ import { n as recordBlobReference, r as storeBlob } from "./blobs-BW4U31ue.js";
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await import("./fetch-Di00EQrc.js").then((n) => n.i);
28
+ const { fetchWithProxy } = await import("./fetch-D9xxyC1p.js").then((n) => n.i);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
371
371
  //#endregion
372
372
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
373
373
 
374
- //# sourceMappingURL=extractor-Dk6bRWkv.js.map
374
+ //# sourceMappingURL=extractor-BM3jRERL.js.map
@@ -1,7 +1,7 @@
1
1
  const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_fetch = require("./fetch-CJU5ELPa.cjs");
3
- const require_accounts = require("./accounts-Dy17bs4D.cjs");
4
- const require_blobs = require("./blobs-D2FAd1Q5.cjs");
2
+ const require_fetch = require("./fetch-NuqXW1Xb.cjs");
3
+ const require_accounts = require("./accounts-BIFntVWB.cjs");
4
+ const require_blobs = require("./blobs-B95F_7vE.cjs");
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = require_fetch.cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = require_fetch.cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-CJU5ELPa.cjs")).then((n) => n.fetch_exports);
28
+ const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-NuqXW1Xb.cjs")).then((n) => n.fetch_exports);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -388,4 +388,4 @@ Object.defineProperty(exports, "shouldAttemptRemoteBlobUpload", {
388
388
  }
389
389
  });
390
390
 
391
- //# sourceMappingURL=extractor-WVPOrH43.cjs.map
391
+ //# sourceMappingURL=extractor-Dxr2J_wK.cjs.map
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { T as getEnvBool, s as logger } from "./logger-DksKw1Qc.js";
3
- import { c as isLoggedIntoCloud } from "./accounts-F9d_5sMC.js";
4
- import { a as cloudConfig } from "./cloud-DQZ5sVjW.js";
5
- import { i as storeBlob, r as recordBlobReference } from "./blobs-BQWqnnvL.js";
2
+ import { T as getEnvBool, s as logger } from "./logger-BbY6ypFL.js";
3
+ import { c as isLoggedIntoCloud } from "./accounts-CLJHCDDb.js";
4
+ import { a as cloudConfig } from "./cloud-Da0bofJd.js";
5
+ import { i as storeBlob, r as recordBlobReference } from "./blobs-DjLby-uP.js";
6
6
  //#region src/blobs/remoteUpload.ts
7
7
  function buildRemoteUrl() {
8
8
  const baseUrl = cloudConfig.getApiHost();
@@ -26,7 +26,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
26
26
  const apiKey = cloudConfig.getApiKey();
27
27
  if (!url || !apiKey) return null;
28
28
  try {
29
- const { fetchWithProxy } = await import("./fetch-C7bGKDlQ.js");
29
+ const { fetchWithProxy } = await import("./fetch-8viavNv8.js");
30
30
  const response = await fetchWithProxy(url, {
31
31
  method: "POST",
32
32
  headers: {
@@ -372,4 +372,4 @@ async function recordExistingBlobReferences(value, context, location) {
372
372
  //#endregion
373
373
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
374
374
 
375
- //# sourceMappingURL=extractor-DNSeBVOJ.js.map
375
+ //# sourceMappingURL=extractor-DxyiFhPk.js.map
@@ -1,7 +1,7 @@
1
- import { S as getEnvBool, a as logger } from "./logger-B88EkIn6.js";
2
- import { o as cloudConfig } from "./fetch-B0Z3Oe4k.js";
3
- import { c as isLoggedIntoCloud } from "./accounts-DdJ2pHMI.js";
4
- import { i as storeBlob, r as recordBlobReference } from "./blobs-BCZavS8s.js";
1
+ import { S as getEnvBool, a as logger } from "./logger-KD8JjCRJ.js";
2
+ import { o as cloudConfig } from "./fetch-Y5qX_kST.js";
3
+ import { c as isLoggedIntoCloud } from "./accounts-bnyHT7Ju.js";
4
+ import { i as storeBlob, r as recordBlobReference } from "./blobs-D_gg8nbm.js";
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await import("./fetch-B0Z3Oe4k.js").then((n) => n.i);
28
+ const { fetchWithProxy } = await import("./fetch-Y5qX_kST.js").then((n) => n.i);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
371
371
  //#endregion
372
372
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
373
373
 
374
- //# sourceMappingURL=extractor-CAfTSraf.js.map
374
+ //# sourceMappingURL=extractor-YlZbUMsL.js.map
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { n as fetchWithProxy } from "./fetch-B6ch2nU2.js";
3
+ export { fetchWithProxy };
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { D as getEnvInt, N as state, O as getEnvString, T as getEnvBool, h as sanitizeUrl, o as logRequestResponse, s as logger } from "./logger-DksKw1Qc.js";
3
- import { t as invariant } from "./invariant-BtWWVVhl.js";
4
- import { a as cloudConfig } from "./cloud-DQZ5sVjW.js";
2
+ import { D as getEnvInt, N as state, O as getEnvString, T as getEnvBool, h as sanitizeUrl, o as logRequestResponse, s as logger } from "./logger-BbY6ypFL.js";
3
+ import { n as VERSION } from "./version-CbpiUINz.js";
4
+ import { t as invariant } from "./invariant-B2Rf6avk.js";
5
+ import { a as cloudConfig } from "./cloud-Da0bofJd.js";
5
6
  import path from "path";
6
7
  import yaml from "js-yaml";
7
8
  import * as fsPromises from "fs/promises";
@@ -16,19 +17,6 @@ const FILE_METADATA_KEY = "_promptfooFileMetadata";
16
17
  * Used to distinguish human ratings from automated assertions.
17
18
  */
18
19
  const HUMAN_ASSERTION_TYPE = "human";
19
- //#endregion
20
- //#region src/version.ts
21
- /**
22
- * Application version from package.json.
23
- * Injected at build time, or read from npm environment in development.
24
- */
25
- const VERSION = "0.121.4";
26
- /**
27
- * PostHog analytics key.
28
- * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
29
- * Empty string in development/test.
30
- */
31
- const POSTHOG_KEY = "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg";
32
20
  function getShareApiBaseUrl() {
33
21
  return getEnvString("PROMPTFOO_REMOTE_API_BASE_URL") || "https://api.promptfoo.app";
34
22
  }
@@ -71,8 +59,9 @@ function calculateCost(modelName, config, promptTokens, completionTokens, models
71
59
  if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined") return;
72
60
  const model = models.find((m) => m.id === modelName);
73
61
  if (!model || !model.cost) return;
74
- const inputCost = config.cost ?? model.cost.input;
75
- const outputCost = config.cost ?? model.cost.output;
62
+ const longContextCost = model.cost.longContext && promptTokens > model.cost.longContext.threshold ? model.cost.longContext : void 0;
63
+ const inputCost = config.cost ?? longContextCost?.input ?? model.cost.input;
64
+ const outputCost = config.cost ?? longContextCost?.output ?? model.cost.output;
76
65
  return inputCost * promptTokens + outputCost * completionTokens;
77
66
  }
78
67
  /**
@@ -743,6 +732,6 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
743
732
  throw new Error(`Request failed after ${maxRetries} retries: ${lastErrorMessage}`);
744
733
  }
745
734
  //#endregion
746
- export { getDefaultPort as A, transformToolChoice as C, EVENTS_ENDPOINT as D, CONSENT_ENDPOINT as E, VERSION as F, FILE_METADATA_KEY as I, HUMAN_ASSERTION_TYPE as L, getShareApiBaseUrl as M, getShareViewBaseUrl as N, R_ENDPOINT as O, POSTHOG_KEY as P, toTitleCase as S, CLOUD_PROVIDER_PREFIX as T, isOpenAIToolChoice as _, handleRateLimit as a, openaiToolsToBedrock as b, getCurrentTimestamp as c, parseRateLimitHeaders as d, parseRetryAfter as f, isOpenAIToolArray as g, calculateCost as h, fetchWithTimeout as i, getDefaultShareViewBaseUrl as j, TERMINAL_MAX_WIDTH as k, sleep as l, REQUEST_TIMEOUT_MS as m, fetchWithProxy as n, isRateLimited as o, LONG_RUNNING_MODEL_TIMEOUT_MS as p, fetchWithRetries as r, isTransientError as s, clearAgentCache as t, sleepWithAbort as u, isPromptfooSampleTarget as v, transformTools as w, parseChatPrompt as x, openaiToolChoiceToBedrock as y };
735
+ export { getDefaultPort as A, transformToolChoice as C, EVENTS_ENDPOINT as D, CONSENT_ENDPOINT as E, HUMAN_ASSERTION_TYPE as F, getShareApiBaseUrl as M, getShareViewBaseUrl as N, R_ENDPOINT as O, FILE_METADATA_KEY as P, toTitleCase as S, CLOUD_PROVIDER_PREFIX as T, isOpenAIToolChoice as _, handleRateLimit as a, openaiToolsToBedrock as b, getCurrentTimestamp as c, parseRateLimitHeaders as d, parseRetryAfter as f, isOpenAIToolArray as g, calculateCost as h, fetchWithTimeout as i, getDefaultShareViewBaseUrl as j, TERMINAL_MAX_WIDTH as k, sleep as l, REQUEST_TIMEOUT_MS as m, fetchWithProxy as n, isRateLimited as o, LONG_RUNNING_MODEL_TIMEOUT_MS as p, fetchWithRetries as r, isTransientError as s, clearAgentCache as t, sleepWithAbort as u, isPromptfooSampleTarget as v, transformTools as w, parseChatPrompt as x, openaiToolChoiceToBedrock as y };
747
736
 
748
- //# sourceMappingURL=fetch-BEWnXrrG.js.map
737
+ //# sourceMappingURL=fetch-B6ch2nU2.js.map
@@ -1,14 +1,15 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
2
  import { S as getEnvBool, T as getEnvString, a as logger, i as logRequestResponse, k as state, p as sanitizeUrl, w as getEnvInt, x as getConfigDirectoryPath } from "./logger-Ct2S6Yx-.js";
3
3
  import { t as invariant } from "./invariant-Ddh24eXh.js";
4
+ import { n as VERSION } from "./version-CbuBKu2U.js";
4
5
  import * as fs$2 from "fs";
5
6
  import * as path$1 from "path";
6
7
  import path from "path";
7
8
  import yaml from "js-yaml";
8
- import { promisify } from "util";
9
9
  import * as fsPromises from "fs/promises";
10
10
  import { getProxyForUrl } from "proxy-from-env";
11
11
  import { Agent, ProxyAgent } from "undici";
12
+ import { promisify } from "util";
12
13
  import { gzip } from "zlib";
13
14
  //#region src/providers/constants.ts
14
15
  const FILE_METADATA_KEY = "_promptfooFileMetadata";
@@ -17,19 +18,6 @@ const FILE_METADATA_KEY = "_promptfooFileMetadata";
17
18
  * Used to distinguish human ratings from automated assertions.
18
19
  */
19
20
  const HUMAN_ASSERTION_TYPE = "human";
20
- //#endregion
21
- //#region src/version.ts
22
- /**
23
- * Application version from package.json.
24
- * Injected at build time, or read from npm environment in development.
25
- */
26
- const VERSION = "0.121.4";
27
- /**
28
- * PostHog analytics key.
29
- * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
30
- * Empty string in development/test.
31
- */
32
- const POSTHOG_KEY = "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg";
33
21
  function getShareApiBaseUrl() {
34
22
  return getEnvString("PROMPTFOO_REMOTE_API_BASE_URL") || "https://api.promptfoo.app";
35
23
  }
@@ -45,6 +33,220 @@ const CONSENT_ENDPOINT = "https://api.promptfoo.dev/consent";
45
33
  const EVENTS_ENDPOINT = "https://a.promptfoo.app";
46
34
  const R_ENDPOINT = "https://r.promptfoo.app/";
47
35
  //#endregion
36
+ //#region src/globalConfig/globalConfig.ts
37
+ /**
38
+ * Functions for manipulating the global configuration file, which lives at
39
+ * ~/.promptfoo/promptfoo.yaml by default.
40
+ */
41
+ function writeGlobalConfig(config) {
42
+ fs$2.writeFileSync(path$1.join(getConfigDirectoryPath(true), "promptfoo.yaml"), yaml.dump(config));
43
+ }
44
+ function readGlobalConfig() {
45
+ const configDir = getConfigDirectoryPath();
46
+ const configFilePath = path$1.join(configDir, "promptfoo.yaml");
47
+ let globalConfig = { id: crypto.randomUUID() };
48
+ if (fs$2.existsSync(configFilePath)) {
49
+ globalConfig = yaml.load(fs$2.readFileSync(configFilePath, "utf-8")) || {};
50
+ if (!globalConfig?.id) {
51
+ globalConfig = {
52
+ ...globalConfig,
53
+ id: crypto.randomUUID()
54
+ };
55
+ writeGlobalConfig(globalConfig);
56
+ }
57
+ } else {
58
+ if (!fs$2.existsSync(configDir)) fs$2.mkdirSync(configDir, { recursive: true });
59
+ fs$2.writeFileSync(configFilePath, yaml.dump(globalConfig));
60
+ }
61
+ return globalConfig;
62
+ }
63
+ /**
64
+ * Merges the top-level keys into existing config.
65
+ * @param partialConfig New keys to merge into the existing config.
66
+ */
67
+ function writeGlobalConfigPartial(partialConfig) {
68
+ const updatedConfig = { ...readGlobalConfig() };
69
+ Object.entries(partialConfig).forEach(([key, value]) => {
70
+ if (value !== void 0 && value !== null) updatedConfig[key] = value;
71
+ else delete updatedConfig[key];
72
+ });
73
+ writeGlobalConfig(updatedConfig);
74
+ }
75
+ const API_HOST = getEnvString("API_HOST", "https://api.promptfoo.app");
76
+ const SHARING_CUTOFF_DATE = /* @__PURE__ */ new Date("2026-03-09T00:00:00Z");
77
+ var CloudConfig = class {
78
+ config;
79
+ constructor() {
80
+ const savedConfig = readGlobalConfig()?.cloud || {};
81
+ this.config = {
82
+ appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
83
+ apiHost: savedConfig.apiHost,
84
+ apiKey: savedConfig.apiKey,
85
+ sharing: savedConfig.sharing,
86
+ currentOrganizationId: savedConfig.currentOrganizationId,
87
+ currentTeamId: savedConfig.currentTeamId,
88
+ teams: savedConfig.teams
89
+ };
90
+ }
91
+ /**
92
+ * Returns the API key from config file or PROMPTFOO_API_KEY environment variable.
93
+ * Config file takes precedence over environment variable.
94
+ */
95
+ resolveApiKey() {
96
+ return this.config.apiKey || process.env.PROMPTFOO_API_KEY;
97
+ }
98
+ /**
99
+ * Returns the API host from config file, PROMPTFOO_CLOUD_API_URL environment variable,
100
+ * or defaults to the standard cloud API host.
101
+ * Config file takes precedence over environment variable.
102
+ */
103
+ resolveApiHost() {
104
+ return this.config.apiHost || process.env.PROMPTFOO_CLOUD_API_URL || API_HOST;
105
+ }
106
+ isEnabled() {
107
+ return !!this.resolveApiKey();
108
+ }
109
+ setApiHost(apiHost) {
110
+ this.config.apiHost = apiHost;
111
+ this.saveConfig();
112
+ }
113
+ setApiKey(apiKey) {
114
+ this.config.apiKey = apiKey;
115
+ this.saveConfig();
116
+ }
117
+ getApiKey() {
118
+ return this.resolveApiKey();
119
+ }
120
+ getApiHost() {
121
+ return this.resolveApiHost();
122
+ }
123
+ setAppUrl(appUrl) {
124
+ this.config.appUrl = appUrl;
125
+ this.saveConfig();
126
+ }
127
+ getAppUrl() {
128
+ return this.config.appUrl;
129
+ }
130
+ getSharing() {
131
+ return this.config.sharing;
132
+ }
133
+ /**
134
+ * Sets the sharing preference. Note: this value is only updated at authentication time
135
+ * (via `validateAndSetApiToken`) and may become stale if the user's license status
136
+ * changes between re-authentications.
137
+ */
138
+ setSharing(sharing) {
139
+ this.config.sharing = sharing;
140
+ this.saveConfig();
141
+ }
142
+ delete() {
143
+ writeGlobalConfigPartial({ cloud: {} });
144
+ this.reload();
145
+ }
146
+ saveConfig() {
147
+ writeGlobalConfigPartial({ cloud: this.config });
148
+ this.reload();
149
+ }
150
+ reload() {
151
+ const savedConfig = readGlobalConfig()?.cloud || {};
152
+ this.config = {
153
+ appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
154
+ apiHost: savedConfig.apiHost,
155
+ apiKey: savedConfig.apiKey,
156
+ sharing: savedConfig.sharing,
157
+ currentOrganizationId: savedConfig.currentOrganizationId,
158
+ currentTeamId: savedConfig.currentTeamId,
159
+ teams: savedConfig.teams
160
+ };
161
+ }
162
+ saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense) {
163
+ this.setApiKey(token);
164
+ this.setApiHost(apiHost);
165
+ this.setAppUrl(app.url);
166
+ if (typeof hasActiveLicense === "boolean") {
167
+ const createdAt = user?.createdAt ? new Date(user.createdAt) : null;
168
+ const isGrandfathered = createdAt != null && createdAt < SHARING_CUTOFF_DATE;
169
+ this.setSharing(hasActiveLicense || isGrandfathered);
170
+ }
171
+ }
172
+ async validateApiToken(token, apiHost) {
173
+ try {
174
+ const { fetchWithProxy } = await Promise.resolve().then(() => fetch_exports);
175
+ const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, { headers: { Authorization: `Bearer ${token}` } });
176
+ if (!response.ok) {
177
+ const errorMessage = await response.text();
178
+ logger.error(`[Cloud] Failed to validate API token: ${errorMessage}. HTTP Status: ${response.status} - ${response.statusText}.`);
179
+ throw new Error("Failed to validate API token: " + response.statusText);
180
+ }
181
+ const { user, organization, app, hasActiveLicense } = await response.json();
182
+ return {
183
+ user,
184
+ organization,
185
+ app,
186
+ ...typeof hasActiveLicense === "boolean" ? { hasActiveLicense } : {}
187
+ };
188
+ } catch (err) {
189
+ const error = err;
190
+ const errorMessage = error instanceof Error ? error.message : String(error);
191
+ logger.error(`[Cloud] Failed to validate API token with host ${apiHost}: ${errorMessage}`);
192
+ if (error.cause) logger.error(`Cause: ${error.cause}`);
193
+ throw error;
194
+ }
195
+ }
196
+ async validateAndSetApiToken(token, apiHost) {
197
+ const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost);
198
+ this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense);
199
+ return {
200
+ user,
201
+ organization,
202
+ app,
203
+ hasActiveLicense: typeof hasActiveLicense === "boolean" ? hasActiveLicense : false
204
+ };
205
+ }
206
+ getCurrentOrganizationId() {
207
+ return this.config.currentOrganizationId;
208
+ }
209
+ setCurrentOrganization(organizationId) {
210
+ this.config.currentOrganizationId = organizationId;
211
+ this.saveConfig();
212
+ }
213
+ getCurrentTeamId(organizationId) {
214
+ if (organizationId) return this.config.teams?.[organizationId]?.currentTeamId;
215
+ return this.config.currentTeamId;
216
+ }
217
+ setCurrentTeamId(teamId, organizationId) {
218
+ if (organizationId) {
219
+ if (!this.config.teams) this.config.teams = {};
220
+ if (!this.config.teams[organizationId]) this.config.teams[organizationId] = {};
221
+ this.config.teams[organizationId].currentTeamId = teamId;
222
+ } else this.config.currentTeamId = teamId;
223
+ this.saveConfig();
224
+ }
225
+ clearCurrentTeamId(organizationId) {
226
+ if (organizationId) {
227
+ if (this.config.teams?.[organizationId]) delete this.config.teams[organizationId].currentTeamId;
228
+ } else delete this.config.currentTeamId;
229
+ this.saveConfig();
230
+ }
231
+ cacheTeams(teams, organizationId) {
232
+ if (organizationId) {
233
+ if (!this.config.teams) this.config.teams = {};
234
+ if (!this.config.teams[organizationId]) this.config.teams[organizationId] = {};
235
+ this.config.teams[organizationId].cache = teams.map((t) => ({
236
+ id: t.id,
237
+ name: t.name,
238
+ slug: t.slug,
239
+ lastFetched: (/* @__PURE__ */ new Date()).toISOString()
240
+ }));
241
+ }
242
+ this.saveConfig();
243
+ }
244
+ getCachedTeams(organizationId) {
245
+ if (organizationId) return this.config.teams?.[organizationId]?.cache;
246
+ }
247
+ };
248
+ const cloudConfig = new CloudConfig();
249
+ //#endregion
48
250
  //#region src/providers/shared.ts
49
251
  /**
50
252
  * The default timeout for API requests in milliseconds.
@@ -69,8 +271,9 @@ function calculateCost(modelName, config, promptTokens, completionTokens, models
69
271
  if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined") return;
70
272
  const model = models.find((m) => m.id === modelName);
71
273
  if (!model || !model.cost) return;
72
- const inputCost = config.cost ?? model.cost.input;
73
- const outputCost = config.cost ?? model.cost.output;
274
+ const longContextCost = model.cost.longContext && promptTokens > model.cost.longContext.threshold ? model.cost.longContext : void 0;
275
+ const inputCost = config.cost ?? longContextCost?.input ?? model.cost.input;
276
+ const outputCost = config.cost ?? longContextCost?.output ?? model.cost.output;
74
277
  return inputCost * promptTokens + outputCost * completionTokens;
75
278
  }
76
279
  /**
@@ -438,220 +641,6 @@ function getCurrentTimestamp() {
438
641
  }
439
642
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
440
643
  //#endregion
441
- //#region src/globalConfig/globalConfig.ts
442
- /**
443
- * Functions for manipulating the global configuration file, which lives at
444
- * ~/.promptfoo/promptfoo.yaml by default.
445
- */
446
- function writeGlobalConfig(config) {
447
- fs$2.writeFileSync(path$1.join(getConfigDirectoryPath(true), "promptfoo.yaml"), yaml.dump(config));
448
- }
449
- function readGlobalConfig() {
450
- const configDir = getConfigDirectoryPath();
451
- const configFilePath = path$1.join(configDir, "promptfoo.yaml");
452
- let globalConfig = { id: crypto.randomUUID() };
453
- if (fs$2.existsSync(configFilePath)) {
454
- globalConfig = yaml.load(fs$2.readFileSync(configFilePath, "utf-8")) || {};
455
- if (!globalConfig?.id) {
456
- globalConfig = {
457
- ...globalConfig,
458
- id: crypto.randomUUID()
459
- };
460
- writeGlobalConfig(globalConfig);
461
- }
462
- } else {
463
- if (!fs$2.existsSync(configDir)) fs$2.mkdirSync(configDir, { recursive: true });
464
- fs$2.writeFileSync(configFilePath, yaml.dump(globalConfig));
465
- }
466
- return globalConfig;
467
- }
468
- /**
469
- * Merges the top-level keys into existing config.
470
- * @param partialConfig New keys to merge into the existing config.
471
- */
472
- function writeGlobalConfigPartial(partialConfig) {
473
- const updatedConfig = { ...readGlobalConfig() };
474
- Object.entries(partialConfig).forEach(([key, value]) => {
475
- if (value !== void 0 && value !== null) updatedConfig[key] = value;
476
- else delete updatedConfig[key];
477
- });
478
- writeGlobalConfig(updatedConfig);
479
- }
480
- const API_HOST = getEnvString("API_HOST", "https://api.promptfoo.app");
481
- const SHARING_CUTOFF_DATE = /* @__PURE__ */ new Date("2026-03-09T00:00:00Z");
482
- var CloudConfig = class {
483
- config;
484
- constructor() {
485
- const savedConfig = readGlobalConfig()?.cloud || {};
486
- this.config = {
487
- appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
488
- apiHost: savedConfig.apiHost,
489
- apiKey: savedConfig.apiKey,
490
- sharing: savedConfig.sharing,
491
- currentOrganizationId: savedConfig.currentOrganizationId,
492
- currentTeamId: savedConfig.currentTeamId,
493
- teams: savedConfig.teams
494
- };
495
- }
496
- /**
497
- * Returns the API key from config file or PROMPTFOO_API_KEY environment variable.
498
- * Config file takes precedence over environment variable.
499
- */
500
- resolveApiKey() {
501
- return this.config.apiKey || process.env.PROMPTFOO_API_KEY;
502
- }
503
- /**
504
- * Returns the API host from config file, PROMPTFOO_CLOUD_API_URL environment variable,
505
- * or defaults to the standard cloud API host.
506
- * Config file takes precedence over environment variable.
507
- */
508
- resolveApiHost() {
509
- return this.config.apiHost || process.env.PROMPTFOO_CLOUD_API_URL || API_HOST;
510
- }
511
- isEnabled() {
512
- return !!this.resolveApiKey();
513
- }
514
- setApiHost(apiHost) {
515
- this.config.apiHost = apiHost;
516
- this.saveConfig();
517
- }
518
- setApiKey(apiKey) {
519
- this.config.apiKey = apiKey;
520
- this.saveConfig();
521
- }
522
- getApiKey() {
523
- return this.resolveApiKey();
524
- }
525
- getApiHost() {
526
- return this.resolveApiHost();
527
- }
528
- setAppUrl(appUrl) {
529
- this.config.appUrl = appUrl;
530
- this.saveConfig();
531
- }
532
- getAppUrl() {
533
- return this.config.appUrl;
534
- }
535
- getSharing() {
536
- return this.config.sharing;
537
- }
538
- /**
539
- * Sets the sharing preference. Note: this value is only updated at authentication time
540
- * (via `validateAndSetApiToken`) and may become stale if the user's license status
541
- * changes between re-authentications.
542
- */
543
- setSharing(sharing) {
544
- this.config.sharing = sharing;
545
- this.saveConfig();
546
- }
547
- delete() {
548
- writeGlobalConfigPartial({ cloud: {} });
549
- this.reload();
550
- }
551
- saveConfig() {
552
- writeGlobalConfigPartial({ cloud: this.config });
553
- this.reload();
554
- }
555
- reload() {
556
- const savedConfig = readGlobalConfig()?.cloud || {};
557
- this.config = {
558
- appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
559
- apiHost: savedConfig.apiHost,
560
- apiKey: savedConfig.apiKey,
561
- sharing: savedConfig.sharing,
562
- currentOrganizationId: savedConfig.currentOrganizationId,
563
- currentTeamId: savedConfig.currentTeamId,
564
- teams: savedConfig.teams
565
- };
566
- }
567
- saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense) {
568
- this.setApiKey(token);
569
- this.setApiHost(apiHost);
570
- this.setAppUrl(app.url);
571
- if (typeof hasActiveLicense === "boolean") {
572
- const createdAt = user?.createdAt ? new Date(user.createdAt) : null;
573
- const isGrandfathered = createdAt != null && createdAt < SHARING_CUTOFF_DATE;
574
- this.setSharing(hasActiveLicense || isGrandfathered);
575
- }
576
- }
577
- async validateApiToken(token, apiHost) {
578
- try {
579
- const { fetchWithProxy } = await Promise.resolve().then(() => fetch_exports);
580
- const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, { headers: { Authorization: `Bearer ${token}` } });
581
- if (!response.ok) {
582
- const errorMessage = await response.text();
583
- logger.error(`[Cloud] Failed to validate API token: ${errorMessage}. HTTP Status: ${response.status} - ${response.statusText}.`);
584
- throw new Error("Failed to validate API token: " + response.statusText);
585
- }
586
- const { user, organization, app, hasActiveLicense } = await response.json();
587
- return {
588
- user,
589
- organization,
590
- app,
591
- ...typeof hasActiveLicense === "boolean" ? { hasActiveLicense } : {}
592
- };
593
- } catch (err) {
594
- const error = err;
595
- const errorMessage = error instanceof Error ? error.message : String(error);
596
- logger.error(`[Cloud] Failed to validate API token with host ${apiHost}: ${errorMessage}`);
597
- if (error.cause) logger.error(`Cause: ${error.cause}`);
598
- throw error;
599
- }
600
- }
601
- async validateAndSetApiToken(token, apiHost) {
602
- const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost);
603
- this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense);
604
- return {
605
- user,
606
- organization,
607
- app,
608
- hasActiveLicense: typeof hasActiveLicense === "boolean" ? hasActiveLicense : false
609
- };
610
- }
611
- getCurrentOrganizationId() {
612
- return this.config.currentOrganizationId;
613
- }
614
- setCurrentOrganization(organizationId) {
615
- this.config.currentOrganizationId = organizationId;
616
- this.saveConfig();
617
- }
618
- getCurrentTeamId(organizationId) {
619
- if (organizationId) return this.config.teams?.[organizationId]?.currentTeamId;
620
- return this.config.currentTeamId;
621
- }
622
- setCurrentTeamId(teamId, organizationId) {
623
- if (organizationId) {
624
- if (!this.config.teams) this.config.teams = {};
625
- if (!this.config.teams[organizationId]) this.config.teams[organizationId] = {};
626
- this.config.teams[organizationId].currentTeamId = teamId;
627
- } else this.config.currentTeamId = teamId;
628
- this.saveConfig();
629
- }
630
- clearCurrentTeamId(organizationId) {
631
- if (organizationId) {
632
- if (this.config.teams?.[organizationId]) delete this.config.teams[organizationId].currentTeamId;
633
- } else delete this.config.currentTeamId;
634
- this.saveConfig();
635
- }
636
- cacheTeams(teams, organizationId) {
637
- if (organizationId) {
638
- if (!this.config.teams) this.config.teams = {};
639
- if (!this.config.teams[organizationId]) this.config.teams[organizationId] = {};
640
- this.config.teams[organizationId].cache = teams.map((t) => ({
641
- id: t.id,
642
- name: t.name,
643
- slug: t.slug,
644
- lastFetched: (/* @__PURE__ */ new Date()).toISOString()
645
- }));
646
- }
647
- this.saveConfig();
648
- }
649
- getCachedTeams(organizationId) {
650
- if (organizationId) return this.config.teams?.[organizationId]?.cache;
651
- }
652
- };
653
- const cloudConfig = new CloudConfig();
654
- //#endregion
655
644
  //#region src/util/fetch/monkeyPatchFetch.ts
656
645
  const gzipAsync = promisify(gzip);
657
646
  function isConnectionError(error) {
@@ -935,6 +924,6 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
935
924
  throw new Error(`Request failed after ${maxRetries} retries: ${lastErrorMessage}`);
936
925
  }
937
926
  //#endregion
938
- export { TERMINAL_MAX_WIDTH as A, toTitleCase as C, CONSENT_ENDPOINT as D, CLOUD_PROVIDER_PREFIX as E, VERSION as F, FILE_METADATA_KEY as I, HUMAN_ASSERTION_TYPE as L, getShareApiBaseUrl as M, getShareViewBaseUrl as N, EVENTS_ENDPOINT as O, POSTHOG_KEY as P, parseChatPrompt as S, transformTools as T, isOpenAIToolArray as _, CloudConfig as a, openaiToolChoiceToBedrock as b, writeGlobalConfig as c, sleep as d, parseRateLimitHeaders as f, calculateCost as g, REQUEST_TIMEOUT_MS as h, fetch_exports as i, getDefaultShareViewBaseUrl as j, R_ENDPOINT as k, writeGlobalConfigPartial as l, LONG_RUNNING_MODEL_TIMEOUT_MS as m, fetchWithRetries as n, cloudConfig as o, parseRetryAfter as p, fetchWithTimeout as r, readGlobalConfig as s, fetchWithProxy as t, getCurrentTimestamp as u, isOpenAIToolChoice as v, transformToolChoice as w, openaiToolsToBedrock as x, isPromptfooSampleTarget as y };
927
+ export { TERMINAL_MAX_WIDTH as A, readGlobalConfig as C, CONSENT_ENDPOINT as D, CLOUD_PROVIDER_PREFIX as E, HUMAN_ASSERTION_TYPE as F, getShareApiBaseUrl as M, getShareViewBaseUrl as N, EVENTS_ENDPOINT as O, FILE_METADATA_KEY as P, cloudConfig as S, writeGlobalConfigPartial as T, parseChatPrompt as _, getCurrentTimestamp as a, transformTools as b, parseRetryAfter as c, calculateCost as d, isOpenAIToolArray as f, openaiToolsToBedrock as g, openaiToolChoiceToBedrock as h, fetch_exports as i, getDefaultShareViewBaseUrl as j, R_ENDPOINT as k, LONG_RUNNING_MODEL_TIMEOUT_MS as l, isPromptfooSampleTarget as m, fetchWithRetries as n, sleep as o, isOpenAIToolChoice as p, fetchWithTimeout as r, parseRateLimitHeaders as s, fetchWithProxy as t, REQUEST_TIMEOUT_MS as u, toTitleCase as v, writeGlobalConfig as w, CloudConfig as x, transformToolChoice as y };
939
928
 
940
- //# sourceMappingURL=fetch-Di00EQrc.js.map
929
+ //# sourceMappingURL=fetch-D9xxyC1p.js.map