promptfoo 0.122.1 → 0.122.2

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 (418) hide show
  1. package/dist/src/{accounts-Jug2Ciel.js → accounts-B8CVRmIl.js} +4 -4
  2. package/dist/src/{accounts-mch0qw47.js → accounts-BDud3p32.js} +4 -4
  3. package/dist/src/{accounts-CAjSMkuH.js → accounts-DApS8Gpe.js} +5 -5
  4. package/dist/src/{accounts-CZFxG3Og.cjs → accounts-DosZWKJy.cjs} +4 -4
  5. package/dist/src/{agentic-utils-CAL6OL48.js → agentic-utils-B94-_ExD.js} +12 -3
  6. package/dist/src/{agentic-utils-B3r4NpU-.cjs → agentic-utils-CMewaQ09.cjs} +13 -4
  7. package/dist/src/{agentic-utils-Cswmio9j.js → agentic-utils-DOMq4mqJ.js} +12 -3
  8. package/dist/src/{agentic-utils-CR5IyddC.js → agentic-utils-DneHhExJ.js} +12 -3
  9. package/dist/src/{agents-BYZQa11K.js → agents-99i09OkS.js} +4 -4
  10. package/dist/src/{agents-CfaaStfu.cjs → agents-BXDQ1xw_.cjs} +2 -2
  11. package/dist/src/{agents-CUSOo7ly.js → agents-BzOkbtWo.js} +2 -2
  12. package/dist/src/{agents-DgKZ1aMv.js → agents-CmgJALGp.js} +2 -2
  13. package/dist/src/{agents-CzaXVlpn.js → agents-CqqOAB9i.js} +4 -4
  14. package/dist/src/{agents-t29fGe9S.js → agents-CroOVBY1.js} +4 -4
  15. package/dist/src/{agents-CKOdC5bg.cjs → agents-DtmugJpS.cjs} +4 -4
  16. package/dist/src/{agents-B2aTR8k4.js → agents-mNkg-c-D.js} +2 -2
  17. package/dist/src/{ai.studio-DprNFGT7.js → ai.studio-4CqyrhMr.js} +7 -6
  18. package/dist/src/{ai.studio-BTbBobIe.js → ai.studio-Bw7HGWAy.js} +7 -6
  19. package/dist/src/{ai.studio-DdDttvQ_.js → ai.studio-BySqRQcL.js} +7 -6
  20. package/dist/src/{ai.studio-lJHgVtc3.js → ai.studio-CmQz4HRF.js} +1 -1
  21. package/dist/src/{ai.studio-Cfr1uqJd.cjs → ai.studio-CzWiW2J3.cjs} +11 -10
  22. package/dist/src/{aimlapi-agQErPC7.cjs → aimlapi-BPLx5bkN.cjs} +6 -6
  23. package/dist/src/{aimlapi-C7aw_Yci.js → aimlapi-CPHuwytR.js} +6 -6
  24. package/dist/src/{aimlapi-BbhgeGRG.js → aimlapi-CtFNhGfQ.js} +6 -6
  25. package/dist/src/{aimlapi-Cj1shS5g.js → aimlapi-DvORJAqy.js} +6 -6
  26. package/dist/src/{anthropicMessages-DM4fND86.cjs → anthropicMessages-CV6LTNAW.cjs} +2 -2
  27. package/dist/src/{anthropicMessages-B2lCmO9a.js → anthropicMessages-D7C1kjQD.js} +2 -2
  28. package/dist/src/{anthropicMessages-B3DWK3KH.js → anthropicMessages-Dnuashu8.js} +2 -2
  29. package/dist/src/{anthropicMessages-CIzwoHC7.js → anthropicMessages-HcZgERmB.js} +2 -2
  30. package/dist/src/app/assets/{index-A24J7UxV.css → index-4gjyvw3y.css} +1 -1
  31. package/dist/src/app/assets/{index-BSBYsw_6.js → index-nyJ_XC0u.js} +55 -55
  32. package/dist/src/app/index.html +2 -2
  33. package/dist/src/{audio-FK9OJM6x.js → audio-BdlJQepT.js} +3 -3
  34. package/dist/src/{audio-DJSX3nfH.cjs → audio-CT31dzi3.cjs} +3 -3
  35. package/dist/src/{audio-BLydpzg4.js → audio-CZ4800_-.js} +3 -3
  36. package/dist/src/{audio-BFL3WPG8.js → audio-CuAl9sNH.js} +3 -3
  37. package/dist/src/{authoritativeMarkupInjection-C79vhK3h.js → authoritativeMarkupInjection-Bk-2UAXm.js} +6 -6
  38. package/dist/src/{authoritativeMarkupInjection-DSEnwId_.cjs → authoritativeMarkupInjection-BkZvUL3M.cjs} +6 -6
  39. package/dist/src/{authoritativeMarkupInjection-D7PPkR2H.js → authoritativeMarkupInjection-CO3XuBsw.js} +6 -6
  40. package/dist/src/{authoritativeMarkupInjection-a2WZAWI8.js → authoritativeMarkupInjection-CsW2Rlxr.js} +6 -6
  41. package/dist/src/{aws-GuyZqnyf.js → aws-BatJ_yy7.js} +20 -20
  42. package/dist/src/{aws-BHmi7gOy.cjs → aws-DhQCXH3c.cjs} +20 -20
  43. package/dist/src/{aws-Bzt3WQU2.js → aws-VLbhCTiT.js} +20 -20
  44. package/dist/src/{aws-BS8qSHy8.js → aws-iSX9DyrD.js} +20 -20
  45. package/dist/src/{base-nbJrRpSV.js → base-C6jKTbCS.js} +7 -6
  46. package/dist/src/{base-CoTAT5vv.cjs → base-CJEf9k2O.cjs} +8 -7
  47. package/dist/src/{base-DEkuzxBW.js → base-CWyDTNcT.js} +2 -2
  48. package/dist/src/{base-mEWUSyIi.cjs → base-CeTzVZ7f.cjs} +2 -2
  49. package/dist/src/{base-CcYX8Sl7.js → base-CnzvtFbT.js} +2 -2
  50. package/dist/src/{base-BW_ro6TZ.js → base-Dd6PX7qL.js} +7 -6
  51. package/dist/src/{base-e2pL9Dg2.js → base-IFkEP-f1.js} +2 -2
  52. package/dist/src/{base-Bya3Xq-l.js → base-wuaktSuM.js} +7 -6
  53. package/dist/src/{bestOfN-6RYHfbeS.js → bestOfN-B99Kp3n1.js} +7 -7
  54. package/dist/src/{bestOfN-DsHy4gMF.cjs → bestOfN-BtBlH3Y1.cjs} +7 -7
  55. package/dist/src/{bestOfN-DDkIdZME.js → bestOfN-C7cPgSak.js} +7 -7
  56. package/dist/src/{bestOfN-Cbw8nnar.js → bestOfN-YNF3sLNc.js} +7 -7
  57. package/dist/src/{billing-nlGj2fi4.js → billing-BhTrP4CT.js} +2 -2
  58. package/dist/src/{billing-_izMSTD8.js → billing-D0eg28TA.js} +2 -2
  59. package/dist/src/{billing-K5i9I9vT.cjs → billing-Q1c9C5Or.cjs} +2 -2
  60. package/dist/src/{billing-CXk1T-EF.js → billing-eFe0xWZw.js} +2 -2
  61. package/dist/src/cache-Cjok8TBD.js +3 -0
  62. package/dist/src/{cache-Bwj_lNIo.js → cache-DTOVFNqA.js} +10 -4
  63. package/dist/src/{cache-C41JuZ74.js → cache-ePPAC5hy.js} +10 -4
  64. package/dist/src/{cache-DU82DyKI.cjs → cache-g3VTrtsd.cjs} +10 -4
  65. package/dist/src/{cache-NhFSRGTI.js → cache-xL5UULpy.js} +10 -5
  66. package/dist/src/{chat-Dt05zdU6.js → chat-1nt-gftw.js} +2 -2
  67. package/dist/src/{chat-Bh-Qkkm0.js → chat-64whAu1x.js} +2 -2
  68. package/dist/src/{chat-B43K4ZEW.cjs → chat-B5hzLi-1.cjs} +2 -2
  69. package/dist/src/{chat-6XCdGjXy.js → chat-BNY6oewj.js} +2 -2
  70. package/dist/src/{chat-Ds6f4gIO.js → chat-BPcmJMS6.js} +3 -3
  71. package/dist/src/{chat-CsmFtqbm.js → chat-BbVy4fHI.js} +2 -2
  72. package/dist/src/{chat-BPZNYAci.js → chat-BfWSvpJp.js} +3 -3
  73. package/dist/src/{chat-g28uolEO.cjs → chat-BuHuQ8dN.cjs} +13 -12
  74. package/dist/src/{chat-BUPwwei1.js → chat-C9Xi0123.js} +2 -2
  75. package/dist/src/{chat-D6SUUPHc.js → chat-CQkXljIT.js} +11 -10
  76. package/dist/src/{chat-BJT_S-0-.cjs → chat-DQfpTnnW.cjs} +2 -2
  77. package/dist/src/{chat-BjEpVBWz.js → chat-DQhTLvCt.js} +2 -2
  78. package/dist/src/{chat-b1tvD2yV.js → chat-Dn1Z6reC.js} +3 -3
  79. package/dist/src/{chat-DYIP7MZz.js → chat-DqUm2XRG.js} +11 -10
  80. package/dist/src/{chat-ByXWx4Jn.js → chat-WpIdBaCf.js} +11 -10
  81. package/dist/src/{chat-D9DdQU09.cjs → chat-psXx3S3c.cjs} +3 -3
  82. package/dist/src/{claude-agent-sdk-BOt139Ms.js → claude-agent-sdk-ByLXefcP.js} +4 -4
  83. package/dist/src/{claude-agent-sdk-BbO4g2C3.cjs → claude-agent-sdk-CXAxCt84.cjs} +4 -4
  84. package/dist/src/{claude-agent-sdk-ClB69ybZ.js → claude-agent-sdk-Ccqr4OHD.js} +4 -4
  85. package/dist/src/{claude-agent-sdk-DDgSb327.js → claude-agent-sdk-DFDGkJC4.js} +4 -4
  86. package/dist/src/{client-nl7Ghern.js → client-4bErwdpG.js} +3 -3
  87. package/dist/src/{client-DvRyvBRs.cjs → client-B8cIFzy1.cjs} +3 -3
  88. package/dist/src/{client-QLK1dAIt.js → client-Bz_qkOt7.js} +3 -3
  89. package/dist/src/{client-BpIjXLJ0.js → client-C8mYuoRi.js} +3 -3
  90. package/dist/src/cloud-BzpJioZO.js +3 -0
  91. package/dist/src/{cloud-D3FRkXX5.js → cloud-D9lRDzlx.js} +43 -7
  92. package/dist/src/{cloudflare-ai-CerptSv1.js → cloudflare-ai-BduG_WGt.js} +4 -4
  93. package/dist/src/{cloudflare-ai-BEu-xQ5J.cjs → cloudflare-ai-C0cr71_N.cjs} +4 -4
  94. package/dist/src/{cloudflare-ai-Cnaag2kZ.js → cloudflare-ai-DNNHsdi_.js} +4 -4
  95. package/dist/src/{cloudflare-ai-DpwGGVCv.js → cloudflare-ai-GiqeJOW2.js} +4 -4
  96. package/dist/src/{cloudflare-gateway-yWM6dZYR.js → cloudflare-gateway-BCd15euW.js} +3 -3
  97. package/dist/src/{cloudflare-gateway-D_M6cCM_.cjs → cloudflare-gateway-CNwgkjWa.cjs} +3 -3
  98. package/dist/src/{cloudflare-gateway-DC_kOGWf.js → cloudflare-gateway-D6gTnn0M.js} +3 -3
  99. package/dist/src/{cloudflare-gateway-BDO7Oy1M.js → cloudflare-gateway-j8ioV3mO.js} +3 -3
  100. package/dist/src/{codex-app-server-CwK6Xbfe.cjs → codex-app-server-CeT18Dkz.cjs} +6 -6
  101. package/dist/src/{codex-app-server-YZmDON1h.js → codex-app-server-CjOwEU74.js} +1 -1
  102. package/dist/src/{codex-app-server-Caz528S8.js → codex-app-server-DW77otWv.js} +5 -5
  103. package/dist/src/{codex-app-server-DK4HYKYU.js → codex-app-server-GlPHXwGV.js} +5 -5
  104. package/dist/src/{codex-app-server-DTZ30MNj.js → codex-app-server-krirlx9j.js} +5 -5
  105. package/dist/src/codex-runtime-BjmQ9rWv.js +5 -0
  106. package/dist/src/codex-runtime-DYQUgTW-.js +4 -0
  107. package/dist/src/codex-runtime-o7SyHeWu.js +4 -0
  108. package/dist/src/codex-runtime-sKhQvTow.cjs +3 -0
  109. package/dist/src/{codex-sdk-C5VGCVuq.js → codex-sdk-B3LZgJqW.js} +6 -5
  110. package/dist/src/{codex-sdk-Bxihv7gJ.cjs → codex-sdk-BrhzHGrr.cjs} +7 -6
  111. package/dist/src/{codex-sdk-BRCGs7KO.js → codex-sdk-DZ_mKG21.js} +6 -5
  112. package/dist/src/codex-sdk-DkbU2gJR.js +3 -0
  113. package/dist/src/{codex-sdk-AzoGV5xQ.js → codex-sdk-Gv0vgj5a.js} +6 -5
  114. package/dist/src/codex-security-71xcR7s3.js +382 -0
  115. package/dist/src/codex-security-A8dTt6Ov.cjs +386 -0
  116. package/dist/src/codex-security-DSYUnVdR.js +383 -0
  117. package/dist/src/codex-security-DqVPI2Th.js +382 -0
  118. package/dist/src/{cometapi-CFOBA79U.js → cometapi-BdmjhPSR.js} +7 -7
  119. package/dist/src/{cometapi-Dq70nB-i.js → cometapi-Bst9fl8W.js} +7 -7
  120. package/dist/src/{cometapi-DEVvRD5z.cjs → cometapi-CPjQpopA.cjs} +7 -7
  121. package/dist/src/{cometapi-C3SQRHPF.js → cometapi-Duei84Pe.js} +7 -7
  122. package/dist/src/{completion-Ci8l1pSN.js → completion-BwID-cTv.js} +5 -5
  123. package/dist/src/{completion-CcbYZDub.js → completion-D90cHpyH.js} +5 -5
  124. package/dist/src/{completion-wKp5JlDu.js → completion-DSVbiAms.js} +5 -5
  125. package/dist/src/{completion-Ch4qZHiN.cjs → completion-fjqwBQIQ.cjs} +5 -5
  126. package/dist/src/{crescendo-QA8kgoFA.cjs → crescendo-Cism3YAo.cjs} +18 -18
  127. package/dist/src/{crescendo-DXTA2eKd.js → crescendo-Cpj-F0iB.js} +13 -13
  128. package/dist/src/{crescendo-Dgco_cd5.js → crescendo-DJ3dxaZ8.js} +13 -13
  129. package/dist/src/{crescendo-By5ZfUli.js → crescendo-DiAK4mXf.js} +13 -13
  130. package/dist/src/{custom-fIO2MwcN.js → custom-BcSQF7OR.js} +11 -11
  131. package/dist/src/{custom-CobMcSKD.js → custom-CpA8_KgN.js} +11 -11
  132. package/dist/src/{custom-CPTsrJYI.js → custom-DfeRaakX.js} +11 -11
  133. package/dist/src/{custom-DQMMH6yL.cjs → custom-WyC-PH98.cjs} +14 -14
  134. package/dist/src/{docker-Bhb-hDqU.cjs → docker-5g1NcdAE.cjs} +5 -5
  135. package/dist/src/{docker-bXiMHPBm.js → docker-B97bdCFf.js} +5 -5
  136. package/dist/src/{docker-CdqlpwxU.js → docker-CgvCV_lT.js} +5 -5
  137. package/dist/src/{docker-CLatgAgj.js → docker-D2q5yAnA.js} +5 -5
  138. package/dist/src/{embedding-DMnl5l3W.js → embedding-B3RQXlr7.js} +5 -5
  139. package/dist/src/{embedding-cJ7sWqTp.cjs → embedding-C2BHs7bs.cjs} +5 -5
  140. package/dist/src/{embedding-DWeAJwIi.js → embedding-DgjYhcCm.js} +5 -5
  141. package/dist/src/{embedding-Kx2Jhb7b.js → embedding-qvISOYlD.js} +5 -5
  142. package/dist/src/{eval-XZjM8PtE.js → eval-BB4Rvl3w.js} +4 -4
  143. package/dist/src/{eval-yT4SKSzC.js → eval-BFqlPFXm.js} +1 -1
  144. package/dist/src/{evalResult-CmUmgA2I.js → evalResult-C9ntrv7r.js} +2 -2
  145. package/dist/src/{evaluator-BNYv5Xws.js → evaluator-BxDpurGf.js} +21 -20
  146. package/dist/src/evaluator-DxIVNCZm.js +3 -0
  147. package/dist/src/{evaluatorHelpers-D2ObFR8i.cjs → evaluatorHelpers-B2c1yYV4.cjs} +8 -7
  148. package/dist/src/{evaluatorHelpers-C60uhMf4.js → evaluatorHelpers-Bd8xun4J.js} +5 -4
  149. package/dist/src/{evaluatorHelpers-lNii4N30.js → evaluatorHelpers-CZ2p3rWG.js} +5 -4
  150. package/dist/src/{evaluatorHelpers-G6saWD9g.js → evaluatorHelpers-CgcFRjns.js} +5 -4
  151. package/dist/src/fetch-BO4sLtRp.js +3 -0
  152. package/dist/src/{fetch-BCrWkFgb.js → fetch-CKqW5dym.js} +2 -2
  153. package/dist/src/{fetch-DxQ9oCzS.cjs → fetch-CQfF18HC.cjs} +2 -2
  154. package/dist/src/{fetch-DDiGmyRM.js → fetch-Cm0VICza.js} +2 -2
  155. package/dist/src/{fetch-DTnUr1aF.cjs → fetch-D54lzFcD.cjs} +69 -18
  156. package/dist/src/{fetch-BdWQKDMj.js → fetch-DnDg-Ics.js} +64 -19
  157. package/dist/src/{fetch-JNQMF9vN.js → fetch-Dwv9LIL3.js} +2 -2
  158. package/dist/src/{fetch-Bnj1JCJi.js → fetch-KD8O9oZZ.js} +24 -15
  159. package/dist/src/{fetch-BjXG13jC.js → fetch-tOnj-VPG.js} +64 -19
  160. package/dist/src/{functionCallbackUtils-Ck1qbh7p.js → functionCallbackUtils-B-fNUZ4T.js} +3 -3
  161. package/dist/src/{functionCallbackUtils-BJ2I_9tt.js → functionCallbackUtils-B7KGl5xQ.js} +3 -3
  162. package/dist/src/{functionCallbackUtils-VbcI1Aub.cjs → functionCallbackUtils-BDroEgNs.cjs} +3 -3
  163. package/dist/src/{functionCallbackUtils-BGXXxhrC.js → functionCallbackUtils-EjWy67uz.js} +3 -3
  164. package/dist/src/{gemini-image-8YxPzaSx.js → gemini-image-B4vMqMOQ.js} +4 -4
  165. package/dist/src/{gemini-image-C5qQIQhS.js → gemini-image-B6ZTrDe5.js} +4 -4
  166. package/dist/src/{gemini-image-DxTRWDFj.cjs → gemini-image-DYd6vsTn.cjs} +4 -4
  167. package/dist/src/{gemini-image-CfkY7fEx.js → gemini-image-D_-_Yxtw.js} +4 -4
  168. package/dist/src/{goat-CR4LFL8E.js → goat-B80KUvGW.js} +14 -14
  169. package/dist/src/{goat-Dg7N-qgd.js → goat-BKhidS2l.js} +14 -14
  170. package/dist/src/{goat-D_thj1jf.cjs → goat-Dorh32Ub.cjs} +18 -18
  171. package/dist/src/{goat-BVp2yIw-.js → goat-jg8kFsKP.js} +14 -14
  172. package/dist/src/{goblin-4D8Nfpnl.cjs → goblin-B_rz0LjO.cjs} +2 -2
  173. package/dist/src/{goblin-CZAgIkjX.js → goblin-C8-aCrlP.js} +2 -2
  174. package/dist/src/{goblin-Dlox542E.js → goblin-CqLJeleh.js} +2 -2
  175. package/dist/src/{goblin-OrBEar64.js → goblin-CuznsHt0.js} +2 -2
  176. package/dist/src/{google-CC83MIsJ.cjs → google-8szBGwzV.cjs} +11 -11
  177. package/dist/src/{google-DRsee0nT.js → google-B1v8u6hy.js} +11 -11
  178. package/dist/src/{google-Dbpyq6la.js → google-B6p_pWxZ.js} +11 -11
  179. package/dist/src/{google-LtdcKmFu.js → google-DCn7b9au.js} +11 -11
  180. package/dist/src/graders-B8dB5kSQ.js +3 -0
  181. package/dist/src/{graders-vHzBsfHT.js → graders-BPmH2YVm.js} +20 -19
  182. package/dist/src/{graders-C77c5GiF.js → graders-BWtqxJ75.js} +20 -19
  183. package/dist/src/{graders-43jk_163.js → graders-CS8YkOd5.js} +21 -20
  184. package/dist/src/{graders-D7xtBg2s.cjs → graders-DpPGnz8u.cjs} +26 -25
  185. package/dist/src/{hydra-BBkVh274.js → hydra-CXR6iPRp.js} +12 -12
  186. package/dist/src/{hydra-CvGcOAZn.js → hydra-Cr1WleCi.js} +1 -1
  187. package/dist/src/{hydra-WACE_1Zb.js → hydra-DCp4JZxW.js} +12 -12
  188. package/dist/src/{hydra-DlPvPWLB.js → hydra-HgjWEGIf.js} +12 -12
  189. package/dist/src/{hydra-B0Aqb-zg.cjs → hydra-RlGwrC81.cjs} +12 -12
  190. package/dist/src/{image-B7HA9bRW.js → image-B4B444eV.js} +3 -3
  191. package/dist/src/{image-CLljmxcq.cjs → image-Bkns4wpz.cjs} +3 -3
  192. package/dist/src/{image-D_yzoOlU.js → image-BqF4qDz6.js} +5 -5
  193. package/dist/src/{image-RxcUfS9c.js → image-C1bIho6n.js} +4 -4
  194. package/dist/src/{image-BQf2QP3f.js → image-CFtq9j1u.js} +4 -4
  195. package/dist/src/{image-B-BLrwzM.js → image-CeAMtI2v.js} +5 -5
  196. package/dist/src/{image-DD9l6-Hi.cjs → image-ChCkFmER.cjs} +5 -5
  197. package/dist/src/{image-DQB7ft5H.js → image-Cy0nxgir.js} +3 -3
  198. package/dist/src/{image-HHqjkpmw.js → image-DDJ5HtyW.js} +3 -3
  199. package/dist/src/{image-N49IDbzx.cjs → image-DSLZ3_9_.cjs} +4 -4
  200. package/dist/src/{image-C1Tc1hrH.js → image-Dde5ywa6.js} +4 -4
  201. package/dist/src/{image-Dll064X0.js → image-G65m_Tkp.js} +5 -5
  202. package/dist/src/index.cjs +37 -35
  203. package/dist/src/index.d.cts +2 -1
  204. package/dist/src/index.d.ts +2 -1
  205. package/dist/src/index.js +26 -24
  206. package/dist/src/{indirectWebPwn-g-F3__Gp.js → indirectWebPwn-BFdbbs6S.js} +5 -5
  207. package/dist/src/{indirectWebPwn-Dg4gS14o.js → indirectWebPwn-BeNTvIGX.js} +4 -4
  208. package/dist/src/{indirectWebPwn-BVsvAUZv.js → indirectWebPwn-BhuZ26Yd.js} +4 -4
  209. package/dist/src/{indirectWebPwn-DmNLSb0J.js → indirectWebPwn-C-pe6OEr.js} +5 -5
  210. package/dist/src/{indirectWebPwn-Ch0EQWKt.cjs → indirectWebPwn-CwSQCQGM.cjs} +4 -4
  211. package/dist/src/{indirectWebPwn-2HDLyS-4.js → indirectWebPwn-DahWlbTc.js} +4 -4
  212. package/dist/src/{indirectWebPwn-lUx8flGh.cjs → indirectWebPwn-Dcc2nw9e.cjs} +5 -5
  213. package/dist/src/{indirectWebPwn-P3GLMBT7.js → indirectWebPwn-Dcn8pufK.js} +5 -5
  214. package/dist/src/{interactions-CqITU8xN.js → interactions-BC_LipMV.js} +5 -5
  215. package/dist/src/{interactions-vSEfKNox.js → interactions-BUojcIo3.js} +5 -5
  216. package/dist/src/{interactions-BkHdiUV_.cjs → interactions-CBWiz1sE.cjs} +10 -10
  217. package/dist/src/{interactions-BwaVVpFQ.js → interactions-FdIt-wCm.js} +5 -5
  218. package/dist/src/{iterative-CJqvJcCg.cjs → iterative-C03QAXol.cjs} +17 -17
  219. package/dist/src/{iterative-CmzmX0Ud.js → iterative-C6PvGSZG.js} +13 -13
  220. package/dist/src/{iterative-BrCMcCPN.js → iterative-C6dOO1pV.js} +13 -13
  221. package/dist/src/{iterative-Ny9s9zYD.js → iterative-Dm9ed-k9.js} +13 -13
  222. package/dist/src/{iterativeImage-6UW4D5PR.js → iterativeImage-C1eEEQTU.js} +4 -4
  223. package/dist/src/{iterativeImage-MQuACdQM.js → iterativeImage-CPdjUydZ.js} +4 -4
  224. package/dist/src/{iterativeImage-C9ti-N0n.js → iterativeImage-Drxk9690.js} +4 -4
  225. package/dist/src/{iterativeImage-DrKM797g.cjs → iterativeImage-qpfLOoXo.cjs} +6 -6
  226. package/dist/src/{iterativeMeta-BFyT65qP.js → iterativeMeta-Bcfzi4sI.js} +12 -12
  227. package/dist/src/{iterativeMeta-0J6M1Vdv.js → iterativeMeta-CpW_wQO6.js} +12 -12
  228. package/dist/src/{iterativeMeta-GZVbjagU.cjs → iterativeMeta-DPgnNAss.cjs} +12 -12
  229. package/dist/src/{iterativeMeta-C1Dh7MxZ.js → iterativeMeta-weggsGV_.js} +12 -12
  230. package/dist/src/{iterativeTree-BrUcgg6W.js → iterativeTree-CKuB2Z6S.js} +12 -12
  231. package/dist/src/{iterativeTree-D3_N68uI.js → iterativeTree-Uw3DtvA4.js} +12 -12
  232. package/dist/src/{iterativeTree-CypPTiqZ.js → iterativeTree-Z5eESQAW.js} +12 -12
  233. package/dist/src/{iterativeTree-CZMTUJkt.cjs → iterativeTree-sq1SXe1H.cjs} +23 -23
  234. package/dist/src/{knowledgeBase-oPMm43ZU.js → knowledgeBase-2fh31P8U.js} +4 -4
  235. package/dist/src/{knowledgeBase-DSmUn4aP.js → knowledgeBase-CZwpvp9c.js} +4 -4
  236. package/dist/src/{knowledgeBase-BIZW29tN.js → knowledgeBase-Cfr9fuln.js} +4 -4
  237. package/dist/src/{knowledgeBase-dv8uETfk.cjs → knowledgeBase-Cy5S2dUm.cjs} +4 -4
  238. package/dist/src/{litellm-CCNfY67w.cjs → litellm-BX6YVwnT.cjs} +4 -4
  239. package/dist/src/{litellm-CPWGXO61.js → litellm-Bwskx_kf.js} +4 -4
  240. package/dist/src/{litellm-D2w4bj_z.js → litellm-DG8dC_1P.js} +4 -4
  241. package/dist/src/{litellm-DB7MRouZ.js → litellm-RtR3zWqA.js} +4 -4
  242. package/dist/src/{live-CDBvrFTF.cjs → live-BIYLKr6M.cjs} +4 -4
  243. package/dist/src/{live-BFul3lOj.js → live-BloWTLms.js} +4 -4
  244. package/dist/src/{live-A1fk8Tl-.js → live-C2hVmTZg.js} +4 -4
  245. package/dist/src/{live-CRIdbA0o.js → live-CCPXSaYj.js} +4 -4
  246. package/dist/src/{luma-ray-5CZM_02a.cjs → luma-ray-B3Mt-cN9.cjs} +2 -2
  247. package/dist/src/{luma-ray-D68mWNcj.js → luma-ray-BGYY3Y9D.js} +2 -2
  248. package/dist/src/{luma-ray-5Y_J9rjd.js → luma-ray-DTvqEeAb.js} +2 -2
  249. package/dist/src/{luma-ray-lD3WwDx2.js → luma-ray-Te_YbEBL.js} +2 -2
  250. package/dist/src/main.js +41 -38
  251. package/dist/src/{mantleChat-B9O0prU3.js → mantleChat-B7ZGnN3G.js} +2 -2
  252. package/dist/src/{mantleChat-BRtCbGNb.js → mantleChat-BEwZSACi.js} +2 -2
  253. package/dist/src/{mantleChat-BNYodgnM.cjs → mantleChat-DRHEiiq7.cjs} +2 -2
  254. package/dist/src/{mantleChat-aXRLgaar.js → mantleChat-bG3JUmId.js} +2 -2
  255. package/dist/src/{memoryPoisoning-BP8lqzRR.js → memoryPoisoning-CRCeE8o0.js} +5 -5
  256. package/dist/src/{memoryPoisoning-CXlBD_-Y.js → memoryPoisoning-DPz_mF21.js} +5 -5
  257. package/dist/src/{memoryPoisoning-B2dsdKye.cjs → memoryPoisoning-DRIrT0Zv.cjs} +5 -5
  258. package/dist/src/{memoryPoisoning-C2cyu0C-.js → memoryPoisoning-DUqPlY5F.js} +5 -5
  259. package/dist/src/{messages-B5cYbsZJ.cjs → messages-BDbtGaqI.cjs} +8 -8
  260. package/dist/src/{messages-C1diy8zs.js → messages-C306BIuu.js} +8 -8
  261. package/dist/src/{messages-C9rJcTgf.js → messages-Cqi4nZlY.js} +8 -8
  262. package/dist/src/{messages-C3_Aa793.js → messages-W898zuCm.js} +8 -8
  263. package/dist/src/{mischievousUser-BM8LRsDW.js → mischievousUser-4wlyqv76.js} +5 -5
  264. package/dist/src/{mischievousUser-SPu0AbcD.js → mischievousUser-B1-HU9CD.js} +5 -5
  265. package/dist/src/{mischievousUser-BVr9ULj0.js → mischievousUser-BJQRmmfP.js} +5 -5
  266. package/dist/src/{mischievousUser-BDv5f6eO.cjs → mischievousUser-CHIJi5vr.cjs} +5 -5
  267. package/dist/src/{modelslab-9k-zzEfW.cjs → modelslab-CLDbPmPX.cjs} +3 -3
  268. package/dist/src/{modelslab-VVi56eHt.js → modelslab-CZ03gaHC.js} +3 -3
  269. package/dist/src/{modelslab-SFmxkyC5.js → modelslab-Cj0cBlIy.js} +3 -3
  270. package/dist/src/{modelslab-CvNCpR5m.js → modelslab-DPG6v3Oa.js} +3 -3
  271. package/dist/src/{nova-reel-DvEcNfJd.js → nova-reel-B401inIg.js} +2 -2
  272. package/dist/src/{nova-reel-DZRncxke.cjs → nova-reel-D8AFHBH-.cjs} +2 -2
  273. package/dist/src/{nova-reel-Dtr84O_-.js → nova-reel-RFBr44SY.js} +2 -2
  274. package/dist/src/{nova-reel-C7RtmR9_.js → nova-reel-sCfu2U7B.js} +2 -2
  275. package/dist/src/{nova-sonic-B4wexztM.cjs → nova-sonic-B1QLKfJe.cjs} +2 -2
  276. package/dist/src/{nova-sonic-DXnFfrox.js → nova-sonic-D3CP2Y2f.js} +2 -2
  277. package/dist/src/{nova-sonic-KyVv4RyY.js → nova-sonic-DPbzYDKH.js} +2 -2
  278. package/dist/src/{nova-sonic-Doe7LDx_.js → nova-sonic-DlgK5oIa.js} +2 -2
  279. package/dist/src/{openaiResponses-C3Ml3xst.cjs → openaiResponses-Be2L8u1C.cjs} +2 -2
  280. package/dist/src/{openaiResponses-CE5BAFhg.js → openaiResponses-CDvzqtsT.js} +2 -2
  281. package/dist/src/{openaiResponses-CEPZVzZz.js → openaiResponses-CPVWxpRK.js} +2 -2
  282. package/dist/src/{openaiResponses-DhO4eHg0.js → openaiResponses-sdWTgYPz.js} +2 -2
  283. package/dist/src/{openclaw-DOZfTvJO.js → openclaw-CKvd8EzM.js} +5 -5
  284. package/dist/src/{openclaw-XMg8C92z.cjs → openclaw-CSWfAv7N.cjs} +5 -5
  285. package/dist/src/{openclaw-CbJpj7T8.js → openclaw-Cusi9mm2.js} +5 -5
  286. package/dist/src/{openclaw-Bugs4BPX.js → openclaw-SY4Ur74P.js} +5 -5
  287. package/dist/src/{opencode-sdk-CoCVfums.js → opencode-sdk-AGZbtWlq.js} +2 -2
  288. package/dist/src/{opencode-sdk-Cid8t6m7.cjs → opencode-sdk-B9Dcws4x.cjs} +2 -2
  289. package/dist/src/{opencode-sdk-CKbY24l_.js → opencode-sdk-ClpPufaf.js} +2 -2
  290. package/dist/src/{opencode-sdk-mkkCU9O6.js → opencode-sdk-CwBVY4H1.js} +2 -2
  291. package/dist/src/{openinterpreter-esp9h7Qu.js → openinterpreter-BF1BIP3x.js} +3 -3
  292. package/dist/src/{openinterpreter-B09Fvndf.js → openinterpreter-Ba9uEUB3.js} +3 -3
  293. package/dist/src/{openinterpreter-O-8L3wHT.js → openinterpreter-CjAfk7zr.js} +3 -3
  294. package/dist/src/{openinterpreter-DmCcocbX.cjs → openinterpreter-CjvjRmfR.cjs} +4 -4
  295. package/dist/src/{promptfoo-BzTq3CZR.cjs → promptfoo-B3EDkr9n.cjs} +4 -4
  296. package/dist/src/{promptfoo-BnRYCHWo.js → promptfoo-BeCm2WDJ.js} +4 -4
  297. package/dist/src/{promptfoo-DmLIq1Fg.js → promptfoo-ByMuyN2p.js} +4 -4
  298. package/dist/src/{promptfoo-DFE6FPtn.js → promptfoo-HD40ugrk.js} +4 -4
  299. package/dist/src/{providers-YJTtc38R.js → providers-BbgOo13t.js} +68 -48
  300. package/dist/src/{providers-Dbcg914T.js → providers-BmppqfDI.js} +70 -50
  301. package/dist/src/{providers-DbRpLhoc.js → providers-C75KcJPJ.js} +68 -48
  302. package/dist/src/{providers-ASKoKjG0.cjs → providers-CRCoPqQH.cjs} +116 -96
  303. package/dist/src/{providers-59LpYr3g.js → providers-DI6OXKnh.js} +1 -1
  304. package/dist/src/{quiverai-BsabGKm2.js → quiverai-8--n-u4s.js} +3 -3
  305. package/dist/src/{quiverai-dEV-iH9x.cjs → quiverai-CPa-eT-O.cjs} +3 -3
  306. package/dist/src/{quiverai-CfQpkyAP.js → quiverai-Cyt6JU4X.js} +3 -3
  307. package/dist/src/{quiverai-D4M0KkyD.js → quiverai-pbddNqGK.js} +3 -3
  308. package/dist/src/{registry-QpHnWcMr.cjs → registry-3k9Gai1o.cjs} +15 -15
  309. package/dist/src/{registry-C_cHVcat.js → registry-BdsjaDF0.js} +15 -15
  310. package/dist/src/{registry-BAiKTqod.js → registry-C63p_cTi.js} +15 -15
  311. package/dist/src/{registry-BnTKy_CX.js → registry-C842b92A.js} +15 -15
  312. package/dist/src/{remoteGeneration-PxK1EefI.cjs → remoteGeneration-C0Ev99MO.cjs} +4 -4
  313. package/dist/src/{remoteGeneration-B0eQSIHo.js → remoteGeneration-Cc78LDjQ.js} +4 -4
  314. package/dist/src/{remoteGeneration-CwQ0KBdC.js → remoteGeneration-DGJxSMYI.js} +4 -4
  315. package/dist/src/{remoteGeneration-CopIeiNI.js → remoteGeneration-DnSGqkoH.js} +4 -4
  316. package/dist/src/render-BRIaR8VG.js +348 -0
  317. package/dist/src/render-C1VJjFT2.cjs +383 -0
  318. package/dist/src/render-DIhuKgcQ.js +347 -0
  319. package/dist/src/render-zarxdXS7.js +347 -0
  320. package/dist/src/{responses-Cf45MBI8.js → responses-B72c3dpg.js} +8 -7
  321. package/dist/src/{responses-CB2IgICL.js → responses-DVF5R5Il.js} +8 -7
  322. package/dist/src/{responses-Doa5xhY1.cjs → responses-DiZCcd1S.cjs} +10 -9
  323. package/dist/src/{responses-Ci3OK0i0.js → responses-ykcvZ0oE.js} +8 -7
  324. package/dist/src/{runtimeTransform-BiANYoNE.cjs → runtimeTransform-6aaLbaUN.cjs} +2 -2
  325. package/dist/src/{runtimeTransform-DCRyBnI7.js → runtimeTransform-Bf5Aif-g.js} +2 -2
  326. package/dist/src/{runtimeTransform-Dvxqdevg.js → runtimeTransform-DVpy5lDj.js} +2 -2
  327. package/dist/src/{runtimeTransform-PGM7l51H.js → runtimeTransform-rEgJC2VZ.js} +2 -2
  328. package/dist/src/{sagemaker-D8O3f2bO.js → sagemaker-BzAkO4HL.js} +9 -9
  329. package/dist/src/{sagemaker-mlPtR7-q.js → sagemaker-C35al2QN.js} +9 -9
  330. package/dist/src/{sagemaker-2TZPOS4O.js → sagemaker-D8HnIjWK.js} +9 -9
  331. package/dist/src/{sagemaker-OlHR8fru.cjs → sagemaker-I0Ei2kNn.cjs} +9 -9
  332. package/dist/src/{scanner-Dt3oFdeb.js → scanner-De5yM_DC.js} +5 -5
  333. package/dist/src/server/index.js +31 -29
  334. package/dist/src/server-B5-TIxn2.js +3 -0
  335. package/dist/src/{server-MNuRsmJQ.js → server-BaM1Q5gD.js} +4 -4
  336. package/dist/src/{server-CkrRpgsu.cjs → server-BpmZ1EP0.cjs} +3 -3
  337. package/dist/src/{server-L884Wtbc.js → server-CqQtEkS_.js} +4 -4
  338. package/dist/src/{server-lm2H6tXC.js → server-DB1I8Xl3.js} +3 -3
  339. package/dist/src/{shared-D5rN2VlH.js → shared-BkcgE6vB.js} +14 -14
  340. package/dist/src/{shared-IP25vMkJ.cjs → shared-Bl84k1Oo.cjs} +14 -14
  341. package/dist/src/{shared-Dk1AVE9w.js → shared-CkERSpeg.js} +14 -14
  342. package/dist/src/{shared-yyb3qFQd.js → shared-jcnXW0lA.js} +16 -16
  343. package/dist/src/{simulatedUser-9Ru_f_dX.js → simulatedUser-BK0F6Lub.js} +5 -4
  344. package/dist/src/{simulatedUser-6ys8hxx_.js → simulatedUser-BTox0iZp.js} +5 -4
  345. package/dist/src/{simulatedUser-BQghw48z.cjs → simulatedUser-ByVb7gXp.cjs} +8 -7
  346. package/dist/src/{simulatedUser-BHmmQ4hb.js → simulatedUser-C8WconFg.js} +5 -4
  347. package/dist/src/{slack-C--lAIHY.js → slack-7DG3xMM4.js} +2 -2
  348. package/dist/src/{slack-CxCLWDSi.js → slack-BvWGK3kV.js} +2 -2
  349. package/dist/src/{slack-6c3iW1pP.cjs → slack-DqFNyAEf.cjs} +2 -2
  350. package/dist/src/{slack-D_QGURhP.js → slack-spSrgvZu.js} +2 -2
  351. package/dist/src/{storage-BFmq8CKG.cjs → storage-BX5ws4jD.cjs} +11 -11
  352. package/dist/src/{storage-J-nYoltq.js → storage-B_t-NiUa.js} +11 -11
  353. package/dist/src/{storage-BC3GVwPL.js → storage-CVVbTVYC.js} +11 -11
  354. package/dist/src/{storage-DGeXeJj0.js → storage-CrqPUKqY.js} +12 -12
  355. package/dist/src/{strategies-C6oBZHYF.js → strategies-CaqOj9gZ.js} +10 -10
  356. package/dist/src/{strategies-Bn1z2exW.cjs → strategies-DJfqHuoT.cjs} +10 -10
  357. package/dist/src/{strategies-BMxIs2Jx.js → strategies-DVRYSzm8.js} +10 -10
  358. package/dist/src/{strategies-cFTP9vSw.js → strategies-DpZ1ydwx.js} +11 -11
  359. package/dist/src/{telemetry-D64Cj0UR.js → telemetry-BD4xF9d_.js} +3 -3
  360. package/dist/src/{telemetry-Bqa8fxWp.js → telemetry-BQZTDom3.js} +3 -3
  361. package/dist/src/{telemetry-CIaL2pmn.js → telemetry-CJdYAcRk.js} +3 -3
  362. package/dist/src/telemetry-ClfmjQQj.js +3 -0
  363. package/dist/src/{telemetry-DVYPYBQH.cjs → telemetry-cZi2RTrN.cjs} +3 -3
  364. package/dist/src/{traceContext-CNp7smkn.js → traceContext-2sZXHY0h.js} +2 -2
  365. package/dist/src/{traceContext-D7liCnkq.js → traceContext-B3qWxoa7.js} +2 -2
  366. package/dist/src/{traceContext-BuXw2Yxu.cjs → traceContext-achbslCl.cjs} +2 -2
  367. package/dist/src/{traceContext-B4vypxe_.js → traceContext-jOhKJ5Ty.js} +2 -2
  368. package/dist/src/{transcription-SiDe8ogZ.js → transcription-1iEk_fG7.js} +4 -4
  369. package/dist/src/{transcription-Dq6gB3km.js → transcription-CtogIwZI.js} +4 -4
  370. package/dist/src/{transcription-BQg4-zD7.cjs → transcription-CuNQgPv9.cjs} +4 -4
  371. package/dist/src/{transcription-Zq-_5uca.js → transcription-RRwDmQBI.js} +4 -4
  372. package/dist/src/{transform-CdcZMCo-.js → transform-2ldksCeN.js} +3 -3
  373. package/dist/src/{transform-BfiH9c1w.js → transform-BesK7nGM.js} +3 -3
  374. package/dist/src/{transform-CCHDyuc8.cjs → transform-DS2y12jo.cjs} +3 -3
  375. package/dist/src/{transform-D0QSXU95.js → transform-ciU2euIH.js} +3 -3
  376. package/dist/src/{util-tlprLsf4.js → util-9K7THVcA2.js} +2 -2
  377. package/dist/src/{util-BoTwsVvn.js → util-BKfPcBQN.js} +4 -4
  378. package/dist/src/{util-L5T81aJ0.cjs → util-BPkxeLuk.cjs} +10 -387
  379. package/dist/src/{util-Ur5TGF_w.js → util-BPlSGvsQ.js} +4 -3
  380. package/dist/src/{util-uYYKYi7_.js → util-BPtpPW4O.js} +5 -346
  381. package/dist/src/{util-EBjz-RBV.js → util-BaGd-bCr.js} +2 -2
  382. package/dist/src/{util-BJ42x4mo.js → util-Bac0h5Sr.js} +2 -2
  383. package/dist/src/{util-ChbabPn9.cjs → util-Bd8_MhVm.cjs} +2 -2
  384. package/dist/src/{util-BxmNax2U.js → util-BdN7DdPq.js} +4 -3
  385. package/dist/src/{util-DdGIEAK_.js → util-BnytsHEr.js} +5 -346
  386. package/dist/src/{util-COyt9Xaf.cjs → util-BuKoPAn3.cjs} +4 -4
  387. package/dist/src/{util-BVDvJqrO.js → util-CEecmC3Y.js} +4 -4
  388. package/dist/src/{util-CZ9shpIL.js → util-CJi6Bgno.js} +3 -3
  389. package/dist/src/{util-BdAsuWmv.js → util-CZyLhvIk.js} +6 -347
  390. package/dist/src/{util-CeP1x2P-.cjs → util-Cadd9fGT.cjs} +3 -3
  391. package/dist/src/{util-DT7Jko3E.js → util-CzWbxb9R.js} +4 -3
  392. package/dist/src/{util-CVbeMrg1.js → util-DHtnWbEL.js} +3 -3
  393. package/dist/src/{util-BDDaDhsI.cjs → util-DSwbJPgL.cjs} +7 -6
  394. package/dist/src/{util-BNvjVvcH.cjs → util-DhtW6BNS.cjs} +5 -4
  395. package/dist/src/{util-CmRx53hM.js → util-DiVs2Kf-.js} +4 -3
  396. package/dist/src/{util-DxyypCZC.js → util-DlFpV1xV.js} +4 -4
  397. package/dist/src/{util-DtOvD10k.js → util-DlT2H1W5.js} +3 -3
  398. package/dist/src/{util-PX9qBGnk.js → util-InmFNqSw.js} +4 -3
  399. package/dist/src/{util-CwUz9jYN.js → util-Rbl6Om9L2.js} +4 -3
  400. package/dist/src/{vertex-BGBoge5t.js → vertex-BJYJC-Tr.js} +8 -7
  401. package/dist/src/{vertex-BKhWzpAp.js → vertex-CRMbWhh2.js} +8 -7
  402. package/dist/src/{vertex-BpaCFvPe.js → vertex-DWXywdFu.js} +8 -7
  403. package/dist/src/{vertex-FM6gcfuB.cjs → vertex-DXmhY_4R.cjs} +10 -9
  404. package/dist/src/{vertex-DPgy1bci.js → vertex-Xq6Hc4hv.js} +1 -1
  405. package/dist/src/{video-CLhmUJuz.js → video-1uQOdg9A.js} +3 -3
  406. package/dist/src/{video-C4hvGFWO.js → video-BMnt4dq9.js} +3 -3
  407. package/dist/src/{video-DV7VnFDb.js → video-CZ5He3fP.js} +3 -3
  408. package/dist/src/{video-CFJeZvvL.cjs → video-ChxZLKTs.cjs} +3 -3
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +7 -6
  411. package/dist/src/cache-Ca6QI7yz.js +0 -3
  412. package/dist/src/cloud-aeP705RD.js +0 -3
  413. package/dist/src/codex-sdk-CMTTOSVq.js +0 -3
  414. package/dist/src/evaluator-CRrA6xHS.js +0 -3
  415. package/dist/src/fetch-BYe9zZ94.js +0 -3
  416. package/dist/src/graders-fvvHDb5X.js +0 -3
  417. package/dist/src/server-DmrHjxNq.js +0 -3
  418. package/dist/src/telemetry-BvzHQKBp.js +0 -3
@@ -1,40 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import { t as getProcessShim } from "./processShim-Ds5EYUIE.js";
3
3
  import { A as summarizeEvaluateResultForLogging, B as getMaxEvalTimeMs, E as getAjv, F as getEnvBool, L as getEnvInt, R as getEnvString, T as extractJsonObjects, U as state, V as isCI, c as logger, h as preserveTracingCredentialReferences, i as globalLogCallback, j as loadYaml, k as safeJsonStringify, l as setLogCallback, w as extractFirstJsonObject, z as getEvalTimeoutMs } from "./logger-YzVIwMVq.js";
4
- import { A as isApiProvider, M as FILE_METADATA_KEY, i as getResultIndexKey, k as generateIdFromPrompt, r as asEvaluateResult, s as sanitizeResultForJsonlArtifact, t as EvalResult } from "./evalResult-CmUmgA2I.js";
5
- import { F as parseChatPrompt, M as isPromptfooSampleTarget, S as isNonTransientHttpStatus, Y as VERSION, b as isAbortError, i as fetchWithRetries, k as getRequestTimeoutMs } from "./fetch-Bnj1JCJi.js";
4
+ import { A as isApiProvider, M as FILE_METADATA_KEY, i as getResultIndexKey, k as generateIdFromPrompt, r as asEvaluateResult, s as sanitizeResultForJsonlArtifact, t as EvalResult } from "./evalResult-C9ntrv7r.js";
5
+ import { A as getRequestTimeoutMs, C as isNonTransientHttpStatus, I as parseChatPrompt, N as isPromptfooSampleTarget, X as VERSION, i as fetchWithRetries, x as isAbortError } from "./fetch-KD8O9oZZ.js";
6
6
  import { t as invariant } from "./invariant-CbHB1xyx.js";
7
- import { s as getUserEmail } from "./accounts-CAjSMkuH.js";
7
+ import { s as getUserEmail } from "./accounts-DApS8Gpe.js";
8
8
  import { n as sleep } from "./time-Ct6CnABs.js";
9
- import { n as telemetry } from "./telemetry-D64Cj0UR.js";
9
+ import { n as telemetry } from "./telemetry-BD4xF9d_.js";
10
10
  import { A as isCliEventSource, N as filterByRange, O as isGradingResult, w as ResultFailureReason, wt as MULTI_INPUT_VAR, xt as LLAMA_GUARD_REPLICATE_PROVIDER } from "./tables-DpSgejqG.js";
11
11
  import { i as isJavascriptFile } from "./fileExtensions-CAc10_Jb.js";
12
12
  import { t as providerRegistry } from "./providerRegistry-icQCXwgg.js";
13
13
  import { i as withSpanRole, r as getActiveTraceparent, t as SPAN_ROLE_ATTRIBUTE } from "./spanRoles-Do-jyyl2.js";
14
14
  import { c as getGenAITracer, d as sanitizeBody, f as withGenAISpan, n as PromptfooAttributes, t as GenAIAttributes } from "./genaiTracer-BRW5P2xD.js";
15
- import { $ as analyzeTemplateReference, A as sanitizeProviderIdForLog, D as isGoogleProvider, E as isAnthropicProvider, J as loadFunction, O as isOpenAiProvider, T as getProviderIdentifier, V as maybeLoadToolsFromExternalFile, Y as parseFileUrl, Z as renderEnvOnlyInObject, et as extractVariablesFromTemplate, k as isProviderAllowed, nt as getNunjucksEngine, s as getOutputFileFormat } from "./util-BdAsuWmv.js";
16
- import { a as getCache, d as withCacheNamespace, i as fetchWithCache } from "./cache-NhFSRGTI.js";
17
- import { a as isAgenticProvider } from "./agentic-utils-Cswmio9j.js";
15
+ import { a as getCache, f as withCacheNamespace, i as fetchWithCache } from "./cache-xL5UULpy.js";
16
+ import { a as isAgenticGradingProvider } from "./agentic-utils-DOMq4mqJ.js";
18
17
  import { n as removeSecureTempDirectory, r as writeSecureTempFile, t as createSecureTempDirectory } from "./secureTempFiles-DkFNta5J.js";
19
18
  import { r as runPython } from "./pythonUtils-BKRucqaP.js";
19
+ import { A as sanitizeProviderIdForLog, D as isGoogleProvider, E as isAnthropicProvider, J as loadFunction, O as isOpenAiProvider, T as getProviderIdentifier, V as maybeLoadToolsFromExternalFile, Y as parseFileUrl, k as isProviderAllowed, s as getOutputFileFormat } from "./util-CZyLhvIk.js";
20
+ import { i as extractVariablesFromTemplate, o as getNunjucksEngine, r as analyzeTemplateReference, t as renderEnvOnlyInObject } from "./render-BRIaR8VG.js";
20
21
  import { t as extractAndStoreBinaryData } from "./extractor-8jl9p5Oy.js";
21
22
  import { c as accumulateTokenUsage, d as createEmptyTokenUsage, f as getErrorTokenUsage, i as accumulateGradingRequest, l as cloneTokenUsageBreakdown, n as accumulateAttackerTokenUsage, o as accumulateGradingTokenUsage, p as normalizeTokenUsage, s as accumulateResponseTokenUsage, t as accumulateAssertionTokenUsage, u as createEmptyAssertions } from "./tokenUsageUtils-Cf6nFV6z.js";
22
- import { v as validateFunctionCall } from "./util-DtOvD10k.js";
23
+ import { v as validateFunctionCall } from "./util-DlT2H1W5.js";
23
24
  import { s as getDefaultOtelConfig } from "./tracing-D7QJcXmX.js";
24
25
  import { a as TOOL_ARGUMENT_ATTRIBUTE_KEYS, c as getToolNameFromAttributes, i as SEARCH_ATTRIBUTE_KEYS, n as getTraceStore, o as getFirstStringAttribute, r as COMMAND_ATTRIBUTE_KEYS } from "./store-_fAGlpRg.js";
25
- import { d as shouldGenerateRemote, h as getCodexDefaultProviders, i as getRemoteGenerationUrl, p as remoteGenerationContextPayload, r as getRemoteGenerationHeaders } from "./remoteGeneration-B0eQSIHo.js";
26
- import { $ as DEFAULT_WEB_SEARCH_PROMPT, Ct as getAndCheckProvider, Dt as getCloudTargetIdFromProviders, Et as shouldUseRemoteGrading, G as matchesLlmRubric, H as matchesClosedQa, J as doRemoteGrading, K as matchesPiScore, Q as DEFAULT_AGENT_GRADING_PROMPT, St as callProviderWithContext, Tt as getRemoteGradingContext, U as matchesFactuality, V as isGraderFailure, W as matchesGEval, _t as loadFromJavaScriptFile, at as runJsonGradingPrompt, bt as DEFAULT_ANTHROPIC_MODEL, ct as euclideanDistance, dt as normalizeMatcherTokenUsage, ft as splitIntoSentences, gt as getFinalTest, ht as coerceString, it as renderLlmRubricPrompt, lt as fail, mt as tryParse, n as getGraderById, nt as SUGGEST_PROMPTS_SYSTEM_MESSAGE, ot as cosineSimilarity, pt as splitTextIntoSentences, q as matchesTrajectoryGoalSuccess, rt as loadRubricPrompt, st as dotProduct, tt as SELECT_BEST_PROMPT, ut as graderFail, vt as processFileReference, wt as getGradingProvider, xt as callGradingProvider, yt as getDefaultProviders } from "./graders-43jk_163.js";
27
- import { c as promptYesNo } from "./server-MNuRsmJQ.js";
28
- import { n as loadApiProvider, p as MCPProvider } from "./providers-Dbcg914T.js";
26
+ import { d as shouldGenerateRemote, h as getCodexDefaultProviders, i as getRemoteGenerationUrl, p as remoteGenerationContextPayload, r as getRemoteGenerationHeaders } from "./remoteGeneration-Cc78LDjQ.js";
27
+ import { $ as DEFAULT_WEB_SEARCH_PROMPT, Ct as getAndCheckProvider, Dt as getCloudTargetIdFromProviders, Et as shouldUseRemoteGrading, G as matchesLlmRubric, H as matchesClosedQa, J as doRemoteGrading, K as matchesPiScore, Q as DEFAULT_AGENT_GRADING_PROMPT, St as callProviderWithContext, Tt as getRemoteGradingContext, U as matchesFactuality, V as isGraderFailure, W as matchesGEval, _t as loadFromJavaScriptFile, at as runJsonGradingPrompt, bt as DEFAULT_ANTHROPIC_MODEL, ct as euclideanDistance, dt as normalizeMatcherTokenUsage, ft as splitIntoSentences, gt as getFinalTest, ht as coerceString, it as renderLlmRubricPrompt, lt as fail, mt as tryParse, n as getGraderById, nt as SUGGEST_PROMPTS_SYSTEM_MESSAGE, ot as cosineSimilarity, pt as splitTextIntoSentences, q as matchesTrajectoryGoalSuccess, rt as loadRubricPrompt, st as dotProduct, tt as SELECT_BEST_PROMPT, ut as graderFail, vt as processFileReference, wt as getGradingProvider, xt as callGradingProvider, yt as getDefaultProviders } from "./graders-CS8YkOd5.js";
28
+ import { c as promptYesNo } from "./server-BaM1Q5gD.js";
29
+ import { n as loadApiProvider, p as MCPProvider } from "./providers-BmppqfDI.js";
29
30
  import { n as loadFromPackage, t as isPackagePath } from "./packageParser-YsNUv3fd.js";
30
31
  import { n as runRuby } from "./rubyUtils-XWvHX0Rp.js";
31
- import { c as isBasicRefusal, f as recordGenerationTokenUsage, o as getSessionId } from "./util-DxyypCZC.js";
32
- import { A as getProviderCallTracingContext, C as TokenUsageTracker, D as createProviderRateLimitOptions, M as withProviderCallTracingContext, S as throwIfTargetPromptExceedsMaxChars, g as redteamProviderManager, j as withProviderCallExecutionContext, k as getProviderCallExecutionContext, w as createRateLimitRegistry } from "./shared-yyb3qFQd.js";
32
+ import { c as isBasicRefusal, f as recordGenerationTokenUsage, o as getSessionId } from "./util-DlFpV1xV.js";
33
+ import { A as getProviderCallTracingContext, C as TokenUsageTracker, D as createProviderRateLimitOptions, M as withProviderCallTracingContext, S as throwIfTargetPromptExceedsMaxChars, g as redteamProviderManager, j as withProviderCallExecutionContext, k as getProviderCallExecutionContext, w as createRateLimitRegistry } from "./shared-jcnXW0lA.js";
33
34
  import { a as getTransformLabel, i as getTransformErrorMessage, o as transform, r as TransformInputType } from "./transform-BBv6X1Ag.js";
34
35
  import { n as getActualPromptWithFallback } from "./providerResponse-ChVTuVd0.js";
35
- import { n as checkExfilTracking } from "./indirectWebPwn-BVsvAUZv.js";
36
- import { i as filterFiniteScores, n as renderPrompt, r as runExtensionHook, t as collectFileMetadata } from "./evaluatorHelpers-G6saWD9g.js";
37
- import { n as fetchTraceContext, r as isExternalTraceProvider } from "./traceContext-CNp7smkn.js";
36
+ import { n as checkExfilTracking } from "./indirectWebPwn-BhuZ26Yd.js";
37
+ import { i as filterFiniteScores, n as renderPrompt, r as runExtensionHook, t as collectFileMetadata } from "./evaluatorHelpers-CgcFRjns.js";
38
+ import { n as fetchTraceContext, r as isExternalTraceProvider } from "./traceContext-2sZXHY0h.js";
38
39
  import { AsyncResource } from "node:async_hooks";
39
40
  import chalk from "chalk";
40
41
  import { z as z$1 } from "zod";
@@ -1104,7 +1105,7 @@ async function generateTraceContextIfNeeded(test, evaluateOptions, testIdx, prom
1104
1105
  async function matchesAgentRubric(rubric, llmOutput, grading, vars, assertion, providerCallContext) {
1105
1106
  if (!grading) throw new Error("Cannot grade output without grading config. Specify --grader option or grading config.");
1106
1107
  const agentProvider = (grading.provider ? await getGradingProvider("text", grading.provider, null) : null) || getCodexDefaultProviders().llmRubricProvider;
1107
- if (!agentProvider || !isAgenticProvider(agentProvider)) throw new Error("agent-rubric assertion requires an agentic grading provider. Use openai:codex-sdk, openai:codex-app-server, anthropic:claude-agent-sdk, openinterpreter, or opencode:sdk.");
1108
+ if (!agentProvider || !isAgenticGradingProvider(agentProvider)) throw new Error("agent-rubric assertion requires an agentic grading provider. Use openai:codex-sdk, openai:codex-app-server, anthropic:claude-agent-sdk, openinterpreter, or opencode:sdk.");
1108
1109
  const result = await runJsonGradingPrompt({
1109
1110
  assertion,
1110
1111
  checkName: "agent-rubric check",
@@ -8340,7 +8341,7 @@ async function resolveDefaultTestProvider(defaultTest, testCase) {
8340
8341
  const defaultProvider = defaultTest.provider;
8341
8342
  if (isApiProvider(defaultProvider)) return defaultProvider;
8342
8343
  if (typeof defaultProvider === "object" && defaultProvider.id) {
8343
- const { loadApiProvider } = await import("./providers-59LpYr3g.js");
8344
+ const { loadApiProvider } = await import("./providers-DI6OXKnh.js");
8344
8345
  return loadApiProvider(typeof defaultProvider.id === "function" ? defaultProvider.id() : defaultProvider.id, { options: defaultProvider });
8345
8346
  }
8346
8347
  return defaultProvider;
@@ -9679,4 +9680,4 @@ function evaluate(testSuite, evalRecord, options, runtime) {
9679
9680
  //#endregion
9680
9681
  export { isPromptAllowed as _, generateVarCombinations as a, runAssertions as b, isAllowedPrompt as c, isProviderTypeMap as d, resolveConfiguredProviderReference as f, doesPromptRefMatch as g, formatPrompts as h, formatVarsForDisplay as i, accumulateNamedMetric as l, fetchRemoteGeneration as m, PromptSuggestionsRejectedError as n, getTraceId as o, callExtraction as p, evaluate as r, getTraceLinkage as s, ProgressBarManager as t, buildConfiguredProviderMap as u, warnEmptyFilterRange as v, readAssertions as y };
9681
9682
 
9682
- //# sourceMappingURL=evaluator-BNYv5Xws.js.map
9683
+ //# sourceMappingURL=evaluator-BxDpurGf.js.map
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { r as evaluate } from "./evaluator-BxDpurGf.js";
3
+ export { evaluate };
@@ -1,13 +1,14 @@
1
1
  const require_logger = require("./logger-BN3n9c1R.cjs");
2
2
  const require_invariant = require("./invariant-C2JOzzO2.cjs");
3
- const require_util = require("./util-L5T81aJ0.cjs");
4
- const require_fetch = require("./fetch-DTnUr1aF.cjs");
3
+ require("./util-BPkxeLuk.cjs");
4
+ const require_fetch = require("./fetch-D54lzFcD.cjs");
5
5
  const require_fileExtensions = require("./fileExtensions-BQZEFw03.cjs");
6
6
  const require_esm = require("./esm-DQhzWczC.cjs");
7
7
  const require_pythonUtils = require("./pythonUtils-CqlMEmzG.cjs");
8
+ const require_render = require("./render-C1VJjFT2.cjs");
8
9
  const require_packageParser = require("./packageParser-DpmHM-J_.cjs");
9
10
  const require_transform = require("./transform-Bz311bXX.cjs");
10
- const require_telemetry = require("./telemetry-DVYPYBQH.cjs");
11
+ const require_telemetry = require("./telemetry-cZi2RTrN.cjs");
11
12
  let fs_promises = require("fs/promises");
12
13
  fs_promises = require_logger.__toESM(fs_promises, 1);
13
14
  let path = require("path");
@@ -167,7 +168,7 @@ function autoWrapRawIfPartialNunjucks(prompt) {
167
168
  return prompt;
168
169
  }
169
170
  function referencesUndefinedVariables(template, vars) {
170
- return require_util.extractVariablesFromTemplate(template).some((variableName) => {
171
+ return require_render.extractVariablesFromTemplate(template).some((variableName) => {
171
172
  const rootVariableName = /^([A-Za-z_]\w*)/.exec(variableName)?.[1];
172
173
  return Boolean(rootVariableName && rootVariableName !== "env" && vars[rootVariableName] === void 0);
173
174
  });
@@ -274,7 +275,7 @@ function detectMimeFromBase64(base64Data) {
274
275
  * @returns The rendered prompt string
275
276
  */
276
277
  async function renderPrompt(prompt, vars, nunjucksFilters, provider, skipRenderVars) {
277
- const nunjucks = require_util.getNunjucksEngine(nunjucksFilters);
278
+ const nunjucks = require_render.getNunjucksEngine(nunjucksFilters);
278
279
  let basePrompt = prompt.raw;
279
280
  for (const [varName, value] of Object.entries(vars)) {
280
281
  if (skipRenderVars?.includes(varName)) continue;
@@ -390,7 +391,7 @@ async function renderPrompt(prompt, vars, nunjucksFilters, provider, skipRenderV
390
391
  return nunjucks.renderString(basePrompt, vars);
391
392
  }
392
393
  const parsed = JSON.parse(basePrompt);
393
- return JSON.stringify(require_util.renderVarsInObject(parsed, vars), null, 2);
394
+ return JSON.stringify(require_render.renderVarsInObject(parsed, vars), null, 2);
394
395
  } catch {
395
396
  const renderedVars = Object.fromEntries(Object.entries(vars).map(([key, value]) => {
396
397
  if (typeof value !== "string" || skipRenderVars?.includes(key) || varsResolvedFromSkipped.has(key)) return [key, value];
@@ -584,4 +585,4 @@ Object.defineProperty(exports, "runExtensionHook", {
584
585
  }
585
586
  });
586
587
 
587
- //# sourceMappingURL=evaluatorHelpers-D2ObFR8i.cjs.map
588
+ //# sourceMappingURL=evaluatorHelpers-B2c1yYV4.cjs.map
@@ -1,13 +1,14 @@
1
1
  import { O as loadYaml, P as getEnvString, R as state, j as getEnvBool, o as logger } from "./logger-BKiOczgq.js";
2
2
  import { t as invariant } from "./invariant-CHP0zrix.js";
3
- import { ct as renderVarsInObject, ft as getNunjucksEngine, ut as extractVariablesFromTemplate } from "./util-DdGIEAK_.js";
4
- import { t as fetchWithProxy } from "./fetch-BjXG13jC.js";
3
+ import "./util-BnytsHEr.js";
4
+ import { t as fetchWithProxy } from "./fetch-tOnj-VPG.js";
5
5
  import { a as isVideoFile, i as isJavascriptFile, n as isAudioFile, r as isImageFile } from "./fileExtensions-ISrPd1Hs.js";
6
6
  import { r as importModule } from "./esm-RDYwXiu5.js";
7
7
  import { r as runPython } from "./pythonUtils-BwS-exKo.js";
8
+ import { i as extractVariablesFromTemplate, n as renderVarsInObject, o as getNunjucksEngine } from "./render-zarxdXS7.js";
8
9
  import { n as loadFromPackage, t as isPackagePath } from "./packageParser-wE41TUog.js";
9
10
  import { o as transform } from "./transform-Ccf_EBqd.js";
10
- import { t as telemetry } from "./telemetry-CIaL2pmn.js";
11
+ import { t as telemetry } from "./telemetry-CJdYAcRk.js";
11
12
  import fs from "fs/promises";
12
13
  import * as path$1 from "path";
13
14
  //#region src/integrations/helicone.ts
@@ -559,4 +560,4 @@ async function runExtensionHook(extensions, hookName, context) {
559
560
  //#endregion
560
561
  export { filterFiniteScores as i, renderPrompt as n, runExtensionHook as r, collectFileMetadata as t };
561
562
 
562
- //# sourceMappingURL=evaluatorHelpers-C60uhMf4.js.map
563
+ //# sourceMappingURL=evaluatorHelpers-Bd8xun4J.js.map
@@ -1,11 +1,12 @@
1
1
  import { I as getEnvString, M as state, N as getEnvBool, k as loadYaml, o as logger } from "./logger-D4ion89i.js";
2
- import { At as getNunjucksEngine, Et as renderVarsInObject, Ot as extractVariablesFromTemplate } from "./util-uYYKYi7_.js";
3
- import { t as fetchWithProxy } from "./fetch-BdWQKDMj.js";
2
+ import "./util-BPtpPW4O.js";
3
+ import { t as fetchWithProxy } from "./fetch-DnDg-Ics.js";
4
4
  import { t as invariant } from "./invariant-CHP0zrix.js";
5
5
  import { r as importModule } from "./esm-Cft3V56i.js";
6
6
  import { a as isVideoFile, i as isJavascriptFile, n as isAudioFile, r as isImageFile } from "./shared-B6FXN6z-.js";
7
7
  import { r as runPython } from "./pythonUtils-Spisespr.js";
8
- import { t as telemetry } from "./telemetry-Bqa8fxWp.js";
8
+ import { i as extractVariablesFromTemplate, n as renderVarsInObject, o as getNunjucksEngine } from "./render-DIhuKgcQ.js";
9
+ import { t as telemetry } from "./telemetry-BQZTDom3.js";
9
10
  import { n as loadFromPackage, t as isPackagePath } from "./packageParser-DK15aaEn.js";
10
11
  import { o as transform } from "./transform-DB3wGXIb.js";
11
12
  import * as path$1 from "path";
@@ -559,4 +560,4 @@ async function runExtensionHook(extensions, hookName, context) {
559
560
  //#endregion
560
561
  export { filterFiniteScores as i, renderPrompt as n, runExtensionHook as r, collectFileMetadata as t };
561
562
 
562
- //# sourceMappingURL=evaluatorHelpers-lNii4N30.js.map
563
+ //# sourceMappingURL=evaluatorHelpers-CZ2p3rWG.js.map
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { F as getEnvBool, R as getEnvString, U as state, c as logger, j as loadYaml } from "./logger-YzVIwMVq.js";
3
- import { r as fetchWithProxy } from "./fetch-Bnj1JCJi.js";
3
+ import { r as fetchWithProxy } from "./fetch-KD8O9oZZ.js";
4
4
  import { t as invariant } from "./invariant-CbHB1xyx.js";
5
- import { n as telemetry } from "./telemetry-D64Cj0UR.js";
5
+ import { n as telemetry } from "./telemetry-BD4xF9d_.js";
6
6
  import { a as isVideoFile, i as isJavascriptFile, n as isAudioFile, r as isImageFile } from "./fileExtensions-CAc10_Jb.js";
7
7
  import { r as importModule } from "./esm-BK0NNGWz.js";
8
- import { Q as renderVarsInObject, et as extractVariablesFromTemplate, nt as getNunjucksEngine } from "./util-BdAsuWmv.js";
9
8
  import { r as runPython } from "./pythonUtils-BKRucqaP.js";
9
+ import "./util-CZyLhvIk.js";
10
+ import { i as extractVariablesFromTemplate, n as renderVarsInObject, o as getNunjucksEngine } from "./render-BRIaR8VG.js";
10
11
  import { n as loadFromPackage, t as isPackagePath } from "./packageParser-YsNUv3fd.js";
11
12
  import { o as transform } from "./transform-BBv6X1Ag.js";
12
13
  import * as path$1 from "path";
@@ -560,4 +561,4 @@ async function runExtensionHook(extensions, hookName, context) {
560
561
  //#endregion
561
562
  export { filterFiniteScores as i, renderPrompt as n, runExtensionHook as r, collectFileMetadata as t };
562
563
 
563
- //# sourceMappingURL=evaluatorHelpers-G6saWD9g.js.map
564
+ //# sourceMappingURL=evaluatorHelpers-CgcFRjns.js.map
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import { r as fetchWithProxy } from "./fetch-KD8O9oZZ.js";
3
+ export { fetchWithProxy };
@@ -1,4 +1,4 @@
1
- import { t as fetchWithProxy } from "./fetch-BjXG13jC.js";
1
+ import { t as fetchWithProxy } from "./fetch-tOnj-VPG.js";
2
2
  //#region src/providers/fetch.ts
3
3
  function fetchWithProviderProxy(url, options) {
4
4
  return fetchWithProxy(url, options);
@@ -6,4 +6,4 @@ function fetchWithProviderProxy(url, options) {
6
6
  //#endregion
7
7
  export { fetchWithProviderProxy as t };
8
8
 
9
- //# sourceMappingURL=fetch-BCrWkFgb.js.map
9
+ //# sourceMappingURL=fetch-CKqW5dym.js.map
@@ -1,4 +1,4 @@
1
- const require_fetch = require("./fetch-DTnUr1aF.cjs");
1
+ const require_fetch = require("./fetch-D54lzFcD.cjs");
2
2
  //#region src/providers/fetch.ts
3
3
  function fetchWithProviderProxy(url, options) {
4
4
  return require_fetch.fetchWithProxy(url, options);
@@ -11,4 +11,4 @@ Object.defineProperty(exports, "fetchWithProviderProxy", {
11
11
  }
12
12
  });
13
13
 
14
- //# sourceMappingURL=fetch-DxQ9oCzS.cjs.map
14
+ //# sourceMappingURL=fetch-CQfF18HC.cjs.map
@@ -1,4 +1,4 @@
1
- import { t as fetchWithProxy } from "./fetch-BdWQKDMj.js";
1
+ import { t as fetchWithProxy } from "./fetch-DnDg-Ics.js";
2
2
  //#region src/providers/fetch.ts
3
3
  function fetchWithProviderProxy(url, options) {
4
4
  return fetchWithProxy(url, options);
@@ -6,4 +6,4 @@ function fetchWithProviderProxy(url, options) {
6
6
  //#endregion
7
7
  export { fetchWithProviderProxy as t };
8
8
 
9
- //# sourceMappingURL=fetch-DDiGmyRM.js.map
9
+ //# sourceMappingURL=fetch-Cm0VICza.js.map
@@ -19,7 +19,7 @@ let zlib = require("zlib");
19
19
  * Application version from package.json.
20
20
  * Injected at build time, or read from npm environment in development.
21
21
  */
22
- const VERSION = "0.122.1";
22
+ const VERSION = "0.122.2";
23
23
  /**
24
24
  * PostHog analytics key.
25
25
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -118,6 +118,7 @@ var CloudConfig = class {
118
118
  appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
119
119
  apiHost: savedConfig.apiHost,
120
120
  apiKey: savedConfig.apiKey,
121
+ authHeaderName: savedConfig.authHeaderName,
121
122
  sharing: savedConfig.sharing,
122
123
  currentOrganizationId: savedConfig.currentOrganizationId,
123
124
  currentTeamId: savedConfig.currentTeamId,
@@ -145,6 +146,18 @@ var CloudConfig = class {
145
146
  if (!this.config.apiHost && !process.env.PROMPTFOO_CLOUD_API_URL && process.env.API_HOST && this.resolveApiKey()) warnOnceAboutLegacyApiHost();
146
147
  return host.replace(/\/+$/, "");
147
148
  }
149
+ /**
150
+ * Returns the header name used to carry the Cloud API credential, from config file,
151
+ * PROMPTFOO_CLOUD_AUTH_HEADER environment variable, or the default `Authorization`.
152
+ * Config file takes precedence over environment variable, matching resolveApiHost().
153
+ *
154
+ * process.env is read directly (not getEnvString) for the same reason as
155
+ * PROMPTFOO_CLOUD_API_URL: an eval config's `env` block must never be able to
156
+ * influence Cloud auth routing.
157
+ */
158
+ resolveAuthHeaderName() {
159
+ return this.config.authHeaderName || process.env.PROMPTFOO_CLOUD_AUTH_HEADER || "Authorization";
160
+ }
148
161
  isEnabled() {
149
162
  return !!this.resolveApiKey();
150
163
  }
@@ -162,6 +175,24 @@ var CloudConfig = class {
162
175
  getApiHost() {
163
176
  return this.resolveApiHost();
164
177
  }
178
+ setAuthHeaderName(authHeaderName) {
179
+ this.config.authHeaderName = authHeaderName;
180
+ this.saveConfig();
181
+ }
182
+ getAuthHeaderName() {
183
+ return this.resolveAuthHeaderName();
184
+ }
185
+ /**
186
+ * Returns the header(s) to attach to a Cloud API request for the current credential,
187
+ * or `undefined` when no API key is resolved. Callers should spread the result
188
+ * conditionally (`...(cloudConfig.getAuthHeaders() ?? {})`) rather than sending a
189
+ * header with a `Bearer undefined` value.
190
+ */
191
+ getAuthHeaders() {
192
+ const token = this.getApiKey();
193
+ if (!token) return;
194
+ return { [this.getAuthHeaderName()]: `Bearer ${token}` };
195
+ }
165
196
  setAppUrl(appUrl) {
166
197
  this.config.appUrl = appUrl;
167
198
  this.saveConfig();
@@ -192,10 +223,11 @@ var CloudConfig = class {
192
223
  reload() {
193
224
  this.config = this.readConfig();
194
225
  }
195
- saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense) {
226
+ saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense, authHeaderName) {
196
227
  this.setApiKey(token);
197
228
  this.setApiHost(apiHost);
198
229
  this.setAppUrl(app.url);
230
+ if (authHeaderName) this.setAuthHeaderName(authHeaderName);
199
231
  if (!(isPromptfooCloudHost(apiHost) || isPromptfooCloudHost(app.url))) this.setSharing(true);
200
232
  else if (typeof hasActiveLicense === "boolean") {
201
233
  const createdAt = user?.createdAt ? new Date(user.createdAt) : null;
@@ -203,10 +235,13 @@ var CloudConfig = class {
203
235
  this.setSharing(hasActiveLicense || isGrandfathered);
204
236
  }
205
237
  }
206
- async validateApiToken(token, apiHost) {
238
+ async validateApiToken(token, apiHost, authHeaderName) {
207
239
  try {
208
240
  const { fetchWithProxy } = await Promise.resolve().then(() => fetch_exports);
209
- const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, { headers: { Authorization: `Bearer ${token}` } });
241
+ const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, {
242
+ headers: { [authHeaderName || this.getAuthHeaderName()]: `Bearer ${token}` },
243
+ skipCloudAuthInjection: true
244
+ });
210
245
  if (!response.ok) {
211
246
  const errorMessage = await response.text();
212
247
  require_logger.logger.error(`[Cloud] Failed to validate API token: ${errorMessage}. HTTP Status: ${response.status} - ${response.statusText}.`);
@@ -228,8 +263,9 @@ var CloudConfig = class {
228
263
  }
229
264
  }
230
265
  async validateAndSetApiToken(token, apiHost) {
231
- const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost);
232
- this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense);
266
+ const authHeaderName = this.getAuthHeaderName();
267
+ const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost, authHeaderName);
268
+ this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense, authHeaderName);
233
269
  return {
234
270
  user,
235
271
  organization,
@@ -927,7 +963,15 @@ function isPromptfooCloudApiHost(url) {
927
963
  }
928
964
  }
929
965
  /**
930
- * Resolves the `Authorization` header value for a request to the configured Promptfoo
966
+ * Resolves the header name used to carry the Cloud API credential (defaults to
967
+ * `Authorization`, but may be configured to a different name via
968
+ * `promptfoo auth login --auth-header-name` or `PROMPTFOO_CLOUD_AUTH_HEADER`).
969
+ */
970
+ function getCloudAuthHeaderName() {
971
+ return cloudConfig.getAuthHeaderName();
972
+ }
973
+ /**
974
+ * Resolves the auth header value for a request to the configured Promptfoo
931
975
  * Cloud origin, or `undefined` when the request is not cloud-bound or no API key is
932
976
  * saved. Centralizing this keeps the live request (`monkeyPatchFetch`) and the cache
933
977
  * key (`getHeadersForCacheKey` in cache.ts) in lockstep.
@@ -963,10 +1007,6 @@ function getCloudTaskTeamId(url) {
963
1007
  function getEffectiveHeaders(url, headers) {
964
1008
  return headers ?? (url instanceof Request ? url.headers : void 0);
965
1009
  }
966
- /** Case-insensitive check for a caller-supplied `Authorization` header (any `HeadersInit` shape). */
967
- function hasAuthorizationHeader(headers) {
968
- return new Headers(headers).has("authorization");
969
- }
970
1010
  function hasHeader(headers, name) {
971
1011
  return new Headers(headers).has(name);
972
1012
  }
@@ -1007,12 +1047,17 @@ async function monkeyPatchFetch(url, options) {
1007
1047
  } catch (e) {
1008
1048
  require_logger.logger.warn(`Failed to compress request body: ${e}`);
1009
1049
  }
1010
- const cloudAuth = getCloudBearerToken(url);
1011
- const effectiveHeaders = getEffectiveHeaders(url, opts.headers);
1012
- if (cloudAuth && !hasAuthorizationHeader(effectiveHeaders)) opts.headers = setHeader(effectiveHeaders, "Authorization", cloudAuth);
1013
- const cloudTaskTeamId = getCloudTaskTeamId(url);
1014
- const headersWithAuth = getEffectiveHeaders(url, opts.headers);
1015
- if (cloudTaskTeamId && !hasHeader(headersWithAuth, "x-promptfoo-team-id")) opts.headers = setHeader(headersWithAuth, PROMPTFOO_TEAM_ID_HEADER, cloudTaskTeamId);
1050
+ if (!options?.skipCloudAuthInjection) {
1051
+ const cloudAuth = getCloudBearerToken(url);
1052
+ if (cloudAuth) {
1053
+ const cloudAuthHeaderName = getCloudAuthHeaderName();
1054
+ const effectiveHeaders = getEffectiveHeaders(url, opts.headers);
1055
+ if (!hasHeader(effectiveHeaders, cloudAuthHeaderName)) opts.headers = setHeader(effectiveHeaders, cloudAuthHeaderName, cloudAuth);
1056
+ }
1057
+ const cloudTaskTeamId = getCloudTaskTeamId(url);
1058
+ const headersWithAuth = getEffectiveHeaders(url, opts.headers);
1059
+ if (cloudTaskTeamId && !hasHeader(headersWithAuth, "x-promptfoo-team-id")) opts.headers = setHeader(headersWithAuth, PROMPTFOO_TEAM_ID_HEADER, cloudTaskTeamId);
1060
+ }
1016
1061
  try {
1017
1062
  const response = await fetch(url, opts);
1018
1063
  if (logEnabled) require_logger.logRequestResponse({
@@ -1686,6 +1731,12 @@ Object.defineProperty(exports, "formatRateLimitErrorMessage", {
1686
1731
  return formatRateLimitErrorMessage;
1687
1732
  }
1688
1733
  });
1734
+ Object.defineProperty(exports, "getCloudAuthHeaderName", {
1735
+ enumerable: true,
1736
+ get: function() {
1737
+ return getCloudAuthHeaderName;
1738
+ }
1739
+ });
1689
1740
  Object.defineProperty(exports, "getCloudBearerToken", {
1690
1741
  enumerable: true,
1691
1742
  get: function() {
@@ -1855,4 +1906,4 @@ Object.defineProperty(exports, "writeGlobalConfigPartial", {
1855
1906
  }
1856
1907
  });
1857
1908
 
1858
- //# sourceMappingURL=fetch-DTnUr1aF.cjs.map
1909
+ //# sourceMappingURL=fetch-D54lzFcD.cjs.map
@@ -17,7 +17,7 @@ import { gzip } from "zlib";
17
17
  * Application version from package.json.
18
18
  * Injected at build time, or read from npm environment in development.
19
19
  */
20
- const VERSION = "0.122.1";
20
+ const VERSION = "0.122.2";
21
21
  /**
22
22
  * PostHog analytics key.
23
23
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -718,6 +718,7 @@ var CloudConfig = class {
718
718
  appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
719
719
  apiHost: savedConfig.apiHost,
720
720
  apiKey: savedConfig.apiKey,
721
+ authHeaderName: savedConfig.authHeaderName,
721
722
  sharing: savedConfig.sharing,
722
723
  currentOrganizationId: savedConfig.currentOrganizationId,
723
724
  currentTeamId: savedConfig.currentTeamId,
@@ -745,6 +746,18 @@ var CloudConfig = class {
745
746
  if (!this.config.apiHost && !process.env.PROMPTFOO_CLOUD_API_URL && process.env.API_HOST && this.resolveApiKey()) warnOnceAboutLegacyApiHost();
746
747
  return host.replace(/\/+$/, "");
747
748
  }
749
+ /**
750
+ * Returns the header name used to carry the Cloud API credential, from config file,
751
+ * PROMPTFOO_CLOUD_AUTH_HEADER environment variable, or the default `Authorization`.
752
+ * Config file takes precedence over environment variable, matching resolveApiHost().
753
+ *
754
+ * process.env is read directly (not getEnvString) for the same reason as
755
+ * PROMPTFOO_CLOUD_API_URL: an eval config's `env` block must never be able to
756
+ * influence Cloud auth routing.
757
+ */
758
+ resolveAuthHeaderName() {
759
+ return this.config.authHeaderName || process.env.PROMPTFOO_CLOUD_AUTH_HEADER || "Authorization";
760
+ }
748
761
  isEnabled() {
749
762
  return !!this.resolveApiKey();
750
763
  }
@@ -762,6 +775,24 @@ var CloudConfig = class {
762
775
  getApiHost() {
763
776
  return this.resolveApiHost();
764
777
  }
778
+ setAuthHeaderName(authHeaderName) {
779
+ this.config.authHeaderName = authHeaderName;
780
+ this.saveConfig();
781
+ }
782
+ getAuthHeaderName() {
783
+ return this.resolveAuthHeaderName();
784
+ }
785
+ /**
786
+ * Returns the header(s) to attach to a Cloud API request for the current credential,
787
+ * or `undefined` when no API key is resolved. Callers should spread the result
788
+ * conditionally (`...(cloudConfig.getAuthHeaders() ?? {})`) rather than sending a
789
+ * header with a `Bearer undefined` value.
790
+ */
791
+ getAuthHeaders() {
792
+ const token = this.getApiKey();
793
+ if (!token) return;
794
+ return { [this.getAuthHeaderName()]: `Bearer ${token}` };
795
+ }
765
796
  setAppUrl(appUrl) {
766
797
  this.config.appUrl = appUrl;
767
798
  this.saveConfig();
@@ -792,10 +823,11 @@ var CloudConfig = class {
792
823
  reload() {
793
824
  this.config = this.readConfig();
794
825
  }
795
- saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense) {
826
+ saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense, authHeaderName) {
796
827
  this.setApiKey(token);
797
828
  this.setApiHost(apiHost);
798
829
  this.setAppUrl(app.url);
830
+ if (authHeaderName) this.setAuthHeaderName(authHeaderName);
799
831
  if (!(isPromptfooCloudHost(apiHost) || isPromptfooCloudHost(app.url))) this.setSharing(true);
800
832
  else if (typeof hasActiveLicense === "boolean") {
801
833
  const createdAt = user?.createdAt ? new Date(user.createdAt) : null;
@@ -803,10 +835,13 @@ var CloudConfig = class {
803
835
  this.setSharing(hasActiveLicense || isGrandfathered);
804
836
  }
805
837
  }
806
- async validateApiToken(token, apiHost) {
838
+ async validateApiToken(token, apiHost, authHeaderName) {
807
839
  try {
808
840
  const { fetchWithProxy } = await Promise.resolve().then(() => fetch_exports);
809
- const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, { headers: { Authorization: `Bearer ${token}` } });
841
+ const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, {
842
+ headers: { [authHeaderName || this.getAuthHeaderName()]: `Bearer ${token}` },
843
+ skipCloudAuthInjection: true
844
+ });
810
845
  if (!response.ok) {
811
846
  const errorMessage = await response.text();
812
847
  logger.error(`[Cloud] Failed to validate API token: ${errorMessage}. HTTP Status: ${response.status} - ${response.statusText}.`);
@@ -828,8 +863,9 @@ var CloudConfig = class {
828
863
  }
829
864
  }
830
865
  async validateAndSetApiToken(token, apiHost) {
831
- const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost);
832
- this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense);
866
+ const authHeaderName = this.getAuthHeaderName();
867
+ const { user, organization, app, hasActiveLicense } = await this.validateApiToken(token, apiHost, authHeaderName);
868
+ this.saveValidatedApiToken(token, apiHost, user, app, hasActiveLicense, authHeaderName);
833
869
  return {
834
870
  user,
835
871
  organization,
@@ -928,7 +964,15 @@ function isPromptfooCloudApiHost(url) {
928
964
  }
929
965
  }
930
966
  /**
931
- * Resolves the `Authorization` header value for a request to the configured Promptfoo
967
+ * Resolves the header name used to carry the Cloud API credential (defaults to
968
+ * `Authorization`, but may be configured to a different name via
969
+ * `promptfoo auth login --auth-header-name` or `PROMPTFOO_CLOUD_AUTH_HEADER`).
970
+ */
971
+ function getCloudAuthHeaderName() {
972
+ return cloudConfig.getAuthHeaderName();
973
+ }
974
+ /**
975
+ * Resolves the auth header value for a request to the configured Promptfoo
932
976
  * Cloud origin, or `undefined` when the request is not cloud-bound or no API key is
933
977
  * saved. Centralizing this keeps the live request (`monkeyPatchFetch`) and the cache
934
978
  * key (`getHeadersForCacheKey` in cache.ts) in lockstep.
@@ -964,10 +1008,6 @@ function getCloudTaskTeamId(url) {
964
1008
  function getEffectiveHeaders(url, headers) {
965
1009
  return headers ?? (url instanceof Request ? url.headers : void 0);
966
1010
  }
967
- /** Case-insensitive check for a caller-supplied `Authorization` header (any `HeadersInit` shape). */
968
- function hasAuthorizationHeader(headers) {
969
- return new Headers(headers).has("authorization");
970
- }
971
1011
  function hasHeader(headers, name) {
972
1012
  return new Headers(headers).has(name);
973
1013
  }
@@ -1008,12 +1048,17 @@ async function monkeyPatchFetch(url, options) {
1008
1048
  } catch (e) {
1009
1049
  logger.warn(`Failed to compress request body: ${e}`);
1010
1050
  }
1011
- const cloudAuth = getCloudBearerToken(url);
1012
- const effectiveHeaders = getEffectiveHeaders(url, opts.headers);
1013
- if (cloudAuth && !hasAuthorizationHeader(effectiveHeaders)) opts.headers = setHeader(effectiveHeaders, "Authorization", cloudAuth);
1014
- const cloudTaskTeamId = getCloudTaskTeamId(url);
1015
- const headersWithAuth = getEffectiveHeaders(url, opts.headers);
1016
- if (cloudTaskTeamId && !hasHeader(headersWithAuth, "x-promptfoo-team-id")) opts.headers = setHeader(headersWithAuth, PROMPTFOO_TEAM_ID_HEADER, cloudTaskTeamId);
1051
+ if (!options?.skipCloudAuthInjection) {
1052
+ const cloudAuth = getCloudBearerToken(url);
1053
+ if (cloudAuth) {
1054
+ const cloudAuthHeaderName = getCloudAuthHeaderName();
1055
+ const effectiveHeaders = getEffectiveHeaders(url, opts.headers);
1056
+ if (!hasHeader(effectiveHeaders, cloudAuthHeaderName)) opts.headers = setHeader(effectiveHeaders, cloudAuthHeaderName, cloudAuth);
1057
+ }
1058
+ const cloudTaskTeamId = getCloudTaskTeamId(url);
1059
+ const headersWithAuth = getEffectiveHeaders(url, opts.headers);
1060
+ if (cloudTaskTeamId && !hasHeader(headersWithAuth, "x-promptfoo-team-id")) opts.headers = setHeader(headersWithAuth, PROMPTFOO_TEAM_ID_HEADER, cloudTaskTeamId);
1061
+ }
1017
1062
  try {
1018
1063
  const response = await fetch(url, opts);
1019
1064
  if (logEnabled) logRequestResponse({
@@ -1561,6 +1606,6 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
1561
1606
  throw new Error(`Request failed after ${maxRetries} retries: ${lastErrorMessage}`);
1562
1607
  }
1563
1608
  //#endregion
1564
- export { getRequestTimeoutMs as A, CLOUD_PROVIDER_PREFIX as B, isNonTransientHttpStatus as C, LONG_RUNNING_MODEL_TIMEOUT_MS as D, parseRetryAfter as E, openaiToolsToBedrock as F, getDefaultPort as G, EVENTS_ENDPOINT as H, parseChatPrompt as I, getShareViewBaseUrl as J, getDefaultShareViewBaseUrl as K, toTitleCase as L, isOpenAIToolChoice as M, isPromptfooSampleTarget as N, calculateCost as O, openaiToolChoiceToBedrock as P, transformToolChoice as R, isHttpRateLimitError as S, parseRateLimitHeaders as T, R_ENDPOINT as U, CONSENT_ENDPOINT as V, TERMINAL_MAX_WIDTH as W, VERSION as X, POSTHOG_KEY as Y, HttpRateLimitError as _, getFetchWithProxyHeaders as a, formatRateLimitErrorMessage as b, PROMPTFOO_TEAM_ID_HEADER as c, getRequestUrlString as d, CloudConfig as f, writeGlobalConfigPartial as g, writeGlobalConfig as h, fetch_exports as i, isOpenAIToolArray as j, clampCachedTokens as k, getCloudBearerToken as l, readGlobalConfig as m, fetchWithRetries as n, stripDecompressionHeaders as o, cloudConfig as p, getShareApiBaseUrl as q, fetchWithTimeout as r, withFetchRetryContext as s, fetchWithProxy as t, getCloudTaskTeamId as u, NON_TRANSIENT_HTTP_STATUSES as v, isTransientConnectionError as w, isAbortError as x, extractRateLimitErrorCode as y, transformTools as z };
1609
+ export { clampCachedTokens as A, transformTools as B, isHttpRateLimitError as C, parseRetryAfter as D, parseRateLimitHeaders as E, openaiToolChoiceToBedrock as F, TERMINAL_MAX_WIDTH as G, CONSENT_ENDPOINT as H, openaiToolsToBedrock as I, getShareApiBaseUrl as J, getDefaultPort as K, parseChatPrompt as L, isOpenAIToolArray as M, isOpenAIToolChoice as N, LONG_RUNNING_MODEL_TIMEOUT_MS as O, isPromptfooSampleTarget as P, toTitleCase as R, isAbortError as S, isTransientConnectionError as T, EVENTS_ENDPOINT as U, CLOUD_PROVIDER_PREFIX as V, R_ENDPOINT as W, POSTHOG_KEY as X, getShareViewBaseUrl as Y, VERSION as Z, writeGlobalConfigPartial as _, getFetchWithProxyHeaders as a, extractRateLimitErrorCode as b, PROMPTFOO_TEAM_ID_HEADER as c, getCloudTaskTeamId as d, getRequestUrlString as f, writeGlobalConfig as g, readGlobalConfig as h, fetch_exports as i, getRequestTimeoutMs as j, calculateCost as k, getCloudAuthHeaderName as l, cloudConfig as m, fetchWithRetries as n, stripDecompressionHeaders as o, CloudConfig as p, getDefaultShareViewBaseUrl as q, fetchWithTimeout as r, withFetchRetryContext as s, fetchWithProxy as t, getCloudBearerToken as u, HttpRateLimitError as v, isNonTransientHttpStatus as w, formatRateLimitErrorMessage as x, NON_TRANSIENT_HTTP_STATUSES as y, transformToolChoice as z };
1565
1610
 
1566
- //# sourceMappingURL=fetch-BdWQKDMj.js.map
1611
+ //# sourceMappingURL=fetch-DnDg-Ics.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { r as fetchWithProxy } from "./fetch-Bnj1JCJi.js";
2
+ import { r as fetchWithProxy } from "./fetch-KD8O9oZZ.js";
3
3
  //#region src/providers/fetch.ts
4
4
  function fetchWithProviderProxy(url, options) {
5
5
  return fetchWithProxy(url, options);
@@ -7,4 +7,4 @@ function fetchWithProviderProxy(url, options) {
7
7
  //#endregion
8
8
  export { fetchWithProviderProxy as t };
9
9
 
10
- //# sourceMappingURL=fetch-JNQMF9vN.js.map
10
+ //# sourceMappingURL=fetch-Dwv9LIL3.js.map