promptfoo 0.121.7 → 0.121.9

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 (399) hide show
  1. package/dist/src/{accounts-Ca7WIoPY.js → accounts-4Xa5fcHy.js} +17 -18
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BAajbKSh.js} +17 -18
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-Bw2qPqE-.js} +18 -19
  4. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-DAcQXPwE.cjs} +20 -21
  5. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C8eEgGG-.cjs} +3 -3
  6. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-CP1IXFz3.js} +3 -3
  7. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-CUwa3AE9.js} +3 -3
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-DYr-aM6d.js} +3 -3
  9. package/dist/src/{agents-CBgJvRkB.js → agents-Bb00M6i5.js} +5 -5
  10. package/dist/src/{agents-D-vDNFx4.js → agents-CASf5zRj.js} +5 -5
  11. package/dist/src/{agents-B4sRuXg3.cjs → agents-CD1wH9bm.cjs} +5 -5
  12. package/dist/src/{agents-CYn2n3QP.js → agents-CZOHU7Q8.js} +5 -5
  13. package/dist/src/{agents-LrHuQqr1.js → agents-D539zhHr.js} +5 -5
  14. package/dist/src/{agents-B8q7h_ek.js → agents-DpRJdGBZ.js} +5 -5
  15. package/dist/src/{agents-QGg76OF-.js → agents-gZTW-8nu.js} +5 -5
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-hix6c0Sh.cjs} +5 -5
  17. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-DRQSL-Z4.js} +7 -7
  18. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-Dc3LW5zI.js} +7 -7
  19. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-KNYnjjU6.js} +7 -7
  20. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-gnrgd_Ej.cjs} +7 -7
  21. package/dist/src/app/assets/Report-Clw_YCp-.js +1 -0
  22. package/dist/src/app/assets/index-BQHaquKk.css +1 -0
  23. package/dist/src/app/assets/{index-BnT6P6sF.js → index-CW3XcQK7.js} +6 -6
  24. package/dist/src/app/index.html +2 -2
  25. package/dist/src/{audio-FnxbEnSE.cjs → audio-BgFTqfMO.cjs} +5 -5
  26. package/dist/src/{audio-CPMtV1yR.js → audio-Cslbgd4l.js} +5 -5
  27. package/dist/src/{audio-DyiebVB3.js → audio-DOI8kth4.js} +5 -5
  28. package/dist/src/{audio-BqnRvcWG.js → audio-hewMOCUU.js} +5 -5
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-DgE4u_Rl.js} +8 -8
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-gpm2K-Rp.js} +8 -8
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-nrC4mSPQ.js} +7 -7
  32. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-wG4x0yP2.cjs} +8 -8
  33. package/dist/src/{base-CKLo890h.js → base-0yya4DsM.js} +3 -3
  34. package/dist/src/{base-Co80MMCi.js → base-BARAIJmp.js} +3 -3
  35. package/dist/src/{base-DGJW48uz.cjs → base-BE_pY-r5.cjs} +3 -3
  36. package/dist/src/{base-E9I8zXjz.js → base-CTWzNAH9.js} +3 -3
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CV7ZKPw2.js} +8 -8
  38. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-DeucA4QS.js} +9 -9
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DxcpVUvj.cjs} +9 -9
  40. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-Ilxc2hMv.js} +9 -9
  41. package/dist/src/{blobs-B0977K1O.cjs → blobs-5wbW7TbH.cjs} +3 -3
  42. package/dist/src/{blobs-Dwef1Ao1.js → blobs-BfIMflt0.js} +3 -3
  43. package/dist/src/{blobs-DODuTK-a.js → blobs-CA4gXarv.js} +3 -3
  44. package/dist/src/{blobs-CeFdPn_T.js → blobs-ikh75MtF.js} +3 -3
  45. package/dist/src/{cache-DpPWrkTE.js → cache-BuudGL4I.js} +5 -5
  46. package/dist/src/{cache-DIXbtkNO.js → cache-CT5D7d_A.js} +4 -4
  47. package/dist/src/cache-CrL5EYgi.js +3 -0
  48. package/dist/src/{cache-CPGUA4Yl.cjs → cache-WuIsgzMA.cjs} +4 -4
  49. package/dist/src/{cache-roFAE0cI.js → cache-x9llZxbx.js} +5 -5
  50. package/dist/src/{chat-GmlolEwo.js → chat-B5NqvkS_.js} +3 -3
  51. package/dist/src/{chat-DqUFcWI0.js → chat-B8lsx0A0.js} +11 -11
  52. package/dist/src/{chat-DG1wG4w0.cjs → chat-BBlR1h8c.cjs} +3 -3
  53. package/dist/src/{chat-Dabu84Br.js → chat-CCtIXezK.js} +11 -11
  54. package/dist/src/{chat-TP8Qifkh.js → chat-CZOhFlzV.js} +3 -3
  55. package/dist/src/{chat-CUCorGiL.js → chat-CvQMD-mp.js} +11 -11
  56. package/dist/src/{chat-iwaM5UTQ.js → chat-Dh6mb5OL.js} +3 -3
  57. package/dist/src/{chat-DxTDQ83C.cjs → chat-DkitQHdt.cjs} +11 -11
  58. package/dist/src/{chatkit-fARZwEfV.js → chatkit-55cAEQb2.js} +4 -4
  59. package/dist/src/{chatkit-lb6FK02w.js → chatkit-B-uz3x63.js} +4 -4
  60. package/dist/src/{chatkit-B6DWi70Q.js → chatkit-Dxp6KO70.js} +4 -4
  61. package/dist/src/{chatkit-BYveR48_.cjs → chatkit-jEtokOVZ.cjs} +4 -4
  62. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BVfdeahc.js} +9 -7
  63. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-C0p-RhcW.cjs} +9 -7
  64. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-DB99Npst.js} +9 -7
  65. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-DHyrhDUu.js} +9 -7
  66. package/dist/src/cloud-BA4aLhk0.js +3 -0
  67. package/dist/src/{cloud-D3DiFqH6.js → cloud-BbAl8dyj.js} +3 -3
  68. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-ChBxkojW.js} +5 -5
  69. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-DDmTDys_.js} +5 -5
  70. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DPlNiC6I.cjs} +5 -5
  71. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-UsZe6ndv.js} +5 -5
  72. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-7b-lEtrb.cjs} +4 -4
  73. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-Bq5cqiV8.js} +4 -4
  74. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-C0N-5s62.js} +4 -4
  75. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-D5fm-QvC.js} +4 -4
  76. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BG5Aphvl.js} +20 -5
  77. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-BnPMlcjl.js} +20 -5
  78. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-D6gbvJFw.js} +20 -5
  79. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-Dl6BLKJn.cjs} +20 -5
  80. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-BnRTWAhS.js} +20 -8
  81. package/dist/src/codex-sdk-CChw5CYU.js +3 -0
  82. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-Cy1pEjsQ.cjs} +20 -8
  83. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-D86dT4XV.js} +20 -8
  84. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-mgUqOG2C.js} +20 -8
  85. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CkOfr271.js} +8 -8
  86. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-EB-Is7jj.cjs} +8 -8
  87. package/dist/src/{cometapi-OBILPLlu.js → cometapi-gvPhrXNM.js} +8 -8
  88. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi-sBbQmdfk.js} +8 -8
  89. package/dist/src/{completion-DZNxcyfG.js → completion-BoWiFP-D.js} +7 -7
  90. package/dist/src/{completion-CO2e1_62.js → completion-C99GFqQE.js} +7 -7
  91. package/dist/src/{completion-sNvCLTAP.js → completion-CUtdijfr.js} +7 -7
  92. package/dist/src/{completion-CSYfl2cd.cjs → completion-CkRVjadz.cjs} +7 -7
  93. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B4EiUJ-M.js} +43 -22
  94. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-BAN6NuWV.cjs} +45 -24
  95. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-CYzxmaSJ.js} +45 -24
  96. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-CrsXyaL0.js} +45 -24
  97. package/dist/src/{custom-BJfP00Bh.js → custom-C5K9QFs1.js} +13 -13
  98. package/dist/src/{custom-Cqia7M0D.cjs → custom-D1UjT5I5.cjs} +13 -13
  99. package/dist/src/{custom-CZVn-1-r.js → custom-DnMZvgB6.js} +13 -13
  100. package/dist/src/{custom-notggYVl.js → custom-EWterxkb.js} +11 -11
  101. package/dist/src/{docker-DdJQBxK9.js → docker-BFQc9ccU.js} +6 -6
  102. package/dist/src/{docker-D06JUoe2.cjs → docker-BMfsGXyn.cjs} +6 -6
  103. package/dist/src/{docker-4D1eL6Gq.js → docker-ChD4-eri.js} +6 -6
  104. package/dist/src/{docker-BBv1WUDu.js → docker-mZF5j6cW.js} +6 -6
  105. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BMqFDnLI.cjs} +7 -7
  106. package/dist/src/{embedding--UZVe4_7.js → embedding-BQBXSWgy.js} +7 -7
  107. package/dist/src/{embedding-Bi3rxrZF.js → embedding-BwTB3YDt.js} +7 -7
  108. package/dist/src/{embedding-C251p1-8.js → embedding-cd5oPBkX.js} +7 -7
  109. package/dist/src/{esm-B6whoAcf.js → esm-CGER3lko.js} +2 -2
  110. package/dist/src/{esm-Bexx2PFc.js → esm-CYMWMaSj.js} +2 -2
  111. package/dist/src/{esm-BTK1W7lG.js → esm-C_yrt93A.js} +2 -2
  112. package/dist/src/{esm-BIKakvNa.cjs → esm-vv4rR-Dp.cjs} +2 -2
  113. package/dist/src/{eval-0VRANImH.js → eval-DmGWplIN.js} +10 -10
  114. package/dist/src/{eval-DscR5iOM.js → eval-N_VV5NZg.js} +1 -1
  115. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-BZld6I3I.cjs} +6 -6
  116. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-ByGP9zuP.js} +7 -7
  117. package/dist/src/evalResult-CPPINYHK.js +3 -0
  118. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-gEmQRANj.js} +6 -6
  119. package/dist/src/evaluator-B01pCdUY.js +3 -0
  120. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-BpaUYhLY.js} +37 -37
  121. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-2gpZ9Q_f.cjs} +10 -10
  122. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-C8C8WQTv.js} +10 -10
  123. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-DDG44JeI.js} +10 -10
  124. package/dist/src/{extractor-CxRtnaHl.js → extractor-Bjz9sdTQ.js} +6 -6
  125. package/dist/src/{extractor-CIW3iN-b.js → extractor-CtadTcJm.js} +6 -6
  126. package/dist/src/{extractor-BR7XAzAL.js → extractor-DAnauX2V.js} +6 -6
  127. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-nyUwvU2U.cjs} +6 -6
  128. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-B2HvaVUc.cjs} +14 -12
  129. package/dist/src/{fetch-DXUnXkVU.js → fetch-C59QM4cf.js} +10 -8
  130. package/dist/src/{fetch-BufrQtvR.js → fetch-CBe8pU8Q.js} +10 -8
  131. package/dist/src/{fetch-It34O8Ur.js → fetch-CHJu2KON.js} +9 -7
  132. package/dist/src/fetch-D_XnRfBV.js +3 -0
  133. package/dist/src/{goat-Ckd3q3AY.js → goat-0HwO0EB2.js} +22 -21
  134. package/dist/src/{goat-una6pZGP.cjs → goat-7wQgRcT4.cjs} +22 -21
  135. package/dist/src/{goat-ghadEDdy.js → goat-BNX0lOFx.js} +20 -19
  136. package/dist/src/{goat-Qgurm-NP.js → goat-BOVnOl5S.js} +22 -21
  137. package/dist/src/{graders-BGP99PdK.js → graders-BnO-xoa-.js} +30 -30
  138. package/dist/src/{graders-ClrU2fnd.cjs → graders-CQv1GT5Q.cjs} +29 -29
  139. package/dist/src/graders-D4vc1PFi.js +3 -0
  140. package/dist/src/{graders-BX0f2tvS.js → graders-GNRQ1357.js} +29 -29
  141. package/dist/src/{graders-C0nXU_ZP.js → graders-k8qmhrPu.js} +31 -31
  142. package/dist/src/{hydra-BSNZZm2M.js → hydra-BrgGALmB.js} +38 -20
  143. package/dist/src/{hydra-BxdG4nkg.js → hydra-C38LOovb.js} +36 -18
  144. package/dist/src/{hydra-DE4xWwyc.js → hydra-CXc0p63W.js} +38 -20
  145. package/dist/src/{hydra-DrJttnvw.cjs → hydra-Hdj65j0k.cjs} +38 -20
  146. package/dist/src/{image-B_fPIwdg.js → image-6u3WZ_7H.js} +5 -5
  147. package/dist/src/{image-BN-hjLL9.js → image-B6hCz0z3.js} +5 -5
  148. package/dist/src/{image-BvUAW344.js → image-CgmaPlV_.js} +7 -7
  149. package/dist/src/{image-QzmydkiG.js → image-DXbwwL-r.js} +5 -5
  150. package/dist/src/{image-X0oY4350.cjs → image-Daa_X_YB.cjs} +7 -7
  151. package/dist/src/{image-Cvjwx1uY.js → image-DmC5qwQx.js} +7 -7
  152. package/dist/src/{image-DfVCGPbI.cjs → image-TY6FsHmn.cjs} +5 -5
  153. package/dist/src/{image-B4oBtu6J.js → image-V0-pYiBI.js} +7 -7
  154. package/dist/src/index.cjs +137 -140
  155. package/dist/src/index.d.cts +13 -0
  156. package/dist/src/index.d.ts +13 -0
  157. package/dist/src/index.js +137 -140
  158. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-04ziKbly.cjs} +5 -5
  159. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-1gHqaL91.js} +5 -5
  160. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B0CAtvZJ.js} +6 -6
  161. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BXUoJl4I.js} +5 -5
  162. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-Biy9I52D.js} +6 -6
  163. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BoPqjm9W.js} +6 -6
  164. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-DRYpRTx6.js} +5 -5
  165. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-MiCFTfzI.cjs} +6 -6
  166. package/dist/src/{inputVariables-DUGMb9Ka.js → inputVariables-B7cylqzM.js} +2 -2
  167. package/dist/src/{inputVariables-Dq9W-Z3a.cjs → inputVariables-D5K2vTp4.cjs} +2 -2
  168. package/dist/src/{inputVariables-B0qUChbV.js → inputVariables-DpOsOnzU.js} +3 -3
  169. package/dist/src/{inputVariables-DXFdi7AI.js → inputVariables-qJmuSN5i.js} +3 -3
  170. package/dist/src/{interactiveCheck-C4QlIuoR.js → interactiveCheck-BLnDrfjg.js} +2 -2
  171. package/dist/src/{iterative-FTS4Bz67.js → iterative-BDRx_noa.js} +29 -19
  172. package/dist/src/{iterative-CpU6i2As.js → iterative-BZxrxnoh.js} +27 -17
  173. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-KSovqu_j.cjs} +29 -19
  174. package/dist/src/{iterative-DJQEQpG3.js → iterative-vxBU1IPs.js} +29 -19
  175. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-BZuMd4x3.js} +7 -7
  176. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-DUWLmyVM.js} +6 -6
  177. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-DqNKoaIl.cjs} +7 -7
  178. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-DwIp1WGB.js} +7 -7
  179. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-9gsvnsl1.cjs} +39 -19
  180. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-AgI6UEh6.js} +39 -19
  181. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-BbcVN5nQ.js} +39 -19
  182. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-BcF8LsFk.js} +37 -17
  183. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-5TLHU9Kx.js} +81 -31
  184. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-7XyY_zdo.cjs} +81 -31
  185. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CnHx_kPu.js} +81 -31
  186. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-D9I3UJ0P.js} +79 -29
  187. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-BGbDBwr5.js} +5 -5
  188. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-BzfBwPyQ.js} +5 -5
  189. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-C_MSTwDt.js} +5 -5
  190. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-DSVK_YTi.cjs} +5 -5
  191. package/dist/src/{litellm-BXyn5kZK.js → litellm-CRTmskqC.js} +5 -5
  192. package/dist/src/{litellm-BKBo0jpC.js → litellm-Ch4E-r4b.js} +5 -5
  193. package/dist/src/{litellm-CNcfbCfa.js → litellm-DNnk7802.js} +5 -5
  194. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-jA4_p8mv.cjs} +5 -5
  195. package/dist/src/{logger-KD8JjCRJ.js → logger-BjYLHvGm.js} +56 -25
  196. package/dist/src/{logger-cfNpzI4o.cjs → logger-Cm0Nb8YX.cjs} +34 -3
  197. package/dist/src/{logger-Ct2S6Yx-.js → logger-Cs0I2v_y.js} +34 -3
  198. package/dist/src/{logger-BbY6ypFL.js → logger-h-eiS4iv.js} +34 -3
  199. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCkN79tz.cjs} +5 -5
  200. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-BqVizUQY.js} +5 -5
  201. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-CD7rd6KW.js} +5 -5
  202. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DLWLjDCa.js} +5 -5
  203. package/dist/src/main.js +143 -146
  204. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-BXDi4XCK.cjs} +8 -8
  205. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D-V4yXjj.js} +8 -8
  206. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-PrsT7Zh2.js} +8 -8
  207. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-ZUwCLvEn.js} +8 -8
  208. package/dist/src/{messages-DBPir0TQ.cjs → messages-BSFLFXIO.cjs} +8 -8
  209. package/dist/src/{messages-BabO-cX8.js → messages-C5qBfONg.js} +8 -8
  210. package/dist/src/{messages-DGUlSNU7.js → messages-CQoK4jHx.js} +8 -8
  211. package/dist/src/{messages-vsE_-Lv0.js → messages-Dy5vvc3H.js} +8 -8
  212. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-B4_YRWqu.cjs} +5 -5
  213. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-BoZy3Fry.js} +5 -5
  214. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CjJ9ZEuw.js} +5 -5
  215. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-CrMXlOUj.js} +5 -5
  216. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-B72XbAlR.js} +8 -8
  217. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-Bw-46LmW.js} +8 -8
  218. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-CJ0zQdDH.js} +8 -8
  219. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-LXFLCD-O.cjs} +8 -8
  220. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-D0k0-k8Y.cjs} +5 -5
  221. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-DItvBa6z.js} +5 -5
  222. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-DN7gTJzd.js} +5 -5
  223. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-DRLvlFOH.js} +5 -5
  224. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-BeAjEzkG.js} +3 -3
  225. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-DB7LzcCY.js} +3 -3
  226. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-DfLkPbkF.cjs} +3 -3
  227. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-kzIVxZDb.js} +3 -3
  228. package/dist/src/{openai-BMHD2Huo.js → openai-Bfbg6L4c.js} +2 -2
  229. package/dist/src/{openai-C3uXv8wS.cjs → openai-CCaz18I4.cjs} +2 -2
  230. package/dist/src/{openai-CJrsh9n4.js → openai-CJOpg_dA.js} +2 -2
  231. package/dist/src/{openai-zgwBb4Ff.js → openai-uRacy72N.js} +2 -2
  232. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-2Y9Ukt9Y.js} +9 -9
  233. package/dist/src/{openclaw-CF7fMido.js → openclaw-BdnuiqBG.js} +9 -9
  234. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-D54hA9Fe.cjs} +9 -9
  235. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DRjsDCSS.js} +9 -9
  236. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-2su-bzyz.js} +38 -9
  237. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-BRkqgOOQ.cjs} +38 -9
  238. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CFY-1bkH.js} +38 -9
  239. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-D-tRQJ9s.js} +38 -9
  240. package/dist/src/{otlpReceiver-B2eaKC8C.js → otlpReceiver-BkB7tsTT.js} +3 -3
  241. package/dist/src/{otlpReceiver--gTpSagc.js → otlpReceiver-BqJYGC-M.js} +4 -4
  242. package/dist/src/{otlpReceiver-BXjcRqAM.js → otlpReceiver-CRwU2egH.js} +4 -4
  243. package/dist/src/{otlpReceiver-CvJdBGSc.cjs → otlpReceiver-DOl5S07u.cjs} +4 -4
  244. package/dist/src/{packageParser--MWTSrPW.js → packageParser-B3bpKHK4.js} +2 -2
  245. package/dist/src/{packageParser-hwwSGnAZ.js → packageParser-CZdMKLBh.js} +2 -2
  246. package/dist/src/{packageParser-CgE-ziRo.js → packageParser-D7YWfcSe.js} +2 -2
  247. package/dist/src/{packageParser-QoCS1FMl.cjs → packageParser-DR054ceU.cjs} +2 -2
  248. package/dist/src/{promptLength-B9nZEfO6.js → promptLength-5B4_P93z.js} +2 -2
  249. package/dist/src/{promptLength-BbBbDHNj.cjs → promptLength-CAcg7BmO.cjs} +2 -2
  250. package/dist/src/{promptLength-4X-Wd8PG.js → promptLength-PkjlYFx0.js} +2 -2
  251. package/dist/src/{promptLength-0qIHyhA5.js → promptLength-ho3wbst6.js} +2 -2
  252. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CEsoPlBa.js} +67 -10
  253. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-DAXBmrE6.cjs} +96 -9
  254. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-DVKqidd8.js} +67 -10
  255. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-wxe28-q9.js} +67 -10
  256. package/dist/src/{providerRegistry-DHcFiVWX.js → providerRegistry-Bf4tRLgu.js} +2 -2
  257. package/dist/src/{providerRegistry-CZO_w7ue.cjs → providerRegistry-DKbi2EbP.cjs} +2 -2
  258. package/dist/src/{providerRegistry-ReCd0sFa.js → providerRegistry-DLeG-xXn.js} +2 -2
  259. package/dist/src/{providerRegistry-1gB5vtzQ.js → providerRegistry-v8Wa3f9z.js} +2 -2
  260. package/dist/src/{providers-B9KzWxAX.js → providers-CYBHjFEg.js} +178 -126
  261. package/dist/src/{providers-BCCz6_IX.js → providers-DDLQc0tl.js} +177 -125
  262. package/dist/src/{providers-BDVVIQM6.cjs → providers-DP1CDgd5.cjs} +176 -124
  263. package/dist/src/{providers-DVYRZP4E.js → providers-DTPwadhk.js} +176 -124
  264. package/dist/src/{providers-BYAn82cf.js → providers-DvBFcsXi.js} +1 -1
  265. package/dist/src/{pythonUtils-Cokhluq3.cjs → pythonUtils-BjuymNdM.cjs} +3 -3
  266. package/dist/src/{pythonUtils-D0BYebvX.js → pythonUtils-C4Wnz6Q7.js} +3 -3
  267. package/dist/src/{pythonUtils-CLCgQ9tt.js → pythonUtils-CBe7VV6f.js} +3 -3
  268. package/dist/src/{pythonUtils-CgYxeSmO.js → pythonUtils-CLAoc6jg.js} +3 -3
  269. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-B6ebiUKf.js} +6 -6
  270. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-BG7dvOQc.js} +6 -6
  271. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-DH6SMaxD.cjs} +6 -6
  272. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-DHNIAUfS.js} +6 -6
  273. package/dist/src/{registry-BUJrgjwv.js → registry-BKlwRYvr.js} +14 -14
  274. package/dist/src/{registry-KCVF1CFC.cjs → registry-CQHRTGYs.cjs} +14 -14
  275. package/dist/src/{registry-Dp5EqoXc.js → registry-Eiv-QeUm.js} +14 -14
  276. package/dist/src/{registry-DXm1t_x0.js → registry-qNoxbVEb.js} +14 -14
  277. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-CD3c_rzc.cjs} +6 -6
  278. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CoxtxLvB.js} +6 -6
  279. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-DW6mPZnO.js} +6 -6
  280. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration-DvWEm3yi.js} +6 -6
  281. package/dist/src/{render-_6ur1fhE.js → render-BoxrvB84.js} +2 -2
  282. package/dist/src/{render-DFfDeYUK.js → render-CTZQAINJ.js} +2 -2
  283. package/dist/src/{render-BNTrbmBw.cjs → render-DJ4yipCD.cjs} +2 -2
  284. package/dist/src/{render-DznWrxGO.js → render-MiyTvDY4.js} +2 -2
  285. package/dist/src/{render-CSP99NLm.js → render-jE6RKVgk.js} +2 -2
  286. package/dist/src/{responses-1UFFF9N_.cjs → responses-Bs2_3zyr.cjs} +14 -10
  287. package/dist/src/{responses-B3W2JvOQ.js → responses-C0yU3fO6.js} +14 -10
  288. package/dist/src/{responses-URRzV8qE.js → responses-C2vhwf8F.js} +14 -10
  289. package/dist/src/{responses-B6ktc3Ra.js → responses-pvlY3oYx.js} +14 -10
  290. package/dist/src/{rubyUtils-CnlW8AYb.js → rubyUtils-AvgsD_QH.js} +3 -3
  291. package/dist/src/{rubyUtils-CqUWBZAt.cjs → rubyUtils-BEqeZynS.cjs} +3 -3
  292. package/dist/src/{rubyUtils-CXlFM2rR.js → rubyUtils-C-sxXgGT.js} +3 -3
  293. package/dist/src/{rubyUtils-DdGojpfv.js → rubyUtils-DFzPvVD4.js} +3 -3
  294. package/dist/src/rubyUtils-DfYaGbxe.js +3 -0
  295. package/dist/src/{runtimeTransform-DigbjU1r.js → runtimeTransform-BmhEztlx.js} +2 -2
  296. package/dist/src/{runtimeTransform-BJOpL9Yc.js → runtimeTransform-Bw9Tttpp.js} +2 -2
  297. package/dist/src/{runtimeTransform-ON3YYILw.cjs → runtimeTransform-DJEknTZQ.cjs} +2 -2
  298. package/dist/src/{runtimeTransform-Dgh_D7DU.js → runtimeTransform-s14J7yxm.js} +2 -2
  299. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-C8NJAT8D.js} +11 -11
  300. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-DlajLLgJ.js} +11 -11
  301. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-PgIzjxMt.js} +11 -11
  302. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-hwPXLGI4.cjs} +11 -11
  303. package/dist/src/{scanner-DS0109SS.js → scanner-B3DPvw5u.js} +6 -6
  304. package/dist/src/server/index.js +145 -148
  305. package/dist/src/{server-DhMHosWj.js → server-4wx571OM.js} +6 -6
  306. package/dist/src/{server-Ddp8GNMp.js → server-8in_Vrrf.js} +6 -6
  307. package/dist/src/server-BHd6SQYX.js +3 -0
  308. package/dist/src/{server-CMJD10J4.js → server-pMTgWs3M.js} +4 -4
  309. package/dist/src/{server-B8rqV126.cjs → server-yHhoBx98.cjs} +4 -4
  310. package/dist/src/{shared-D6IjElRI.js → shared-BF25a7ms.js} +12 -12
  311. package/dist/src/{shared-WkgnDkcg.cjs → shared-DlmtkptR.cjs} +12 -12
  312. package/dist/src/{shared-9WHQ1oNE.js → shared-DsbObxvy.js} +12 -12
  313. package/dist/src/{shared-7pmVZLNO.js → shared-yBQATkD5.js} +13 -13
  314. package/dist/src/{signal-CSurUUyV.js → signal-CRrWj2xI.js} +3 -3
  315. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-9A3YPDh2.cjs} +7 -7
  316. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-CbZZV7UQ.js} +7 -7
  317. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-DdcsTBuS.js} +7 -7
  318. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-LKk31Iov.js} +7 -7
  319. package/dist/src/{slack-Bapo-7_8.js → slack-CWxUAo6N.js} +2 -2
  320. package/dist/src/{slack-DMC1QVEg.cjs → slack-CtMQnlyy.cjs} +2 -2
  321. package/dist/src/{slack-DTEFhrMn.js → slack-DrcMAkvd.js} +2 -2
  322. package/dist/src/{slack-k-_CP84Q.js → slack-chzmaYU3.js} +2 -2
  323. package/dist/src/{storage-BU4qcnOb.js → storage-B9lg2RCL.js} +6 -6
  324. package/dist/src/{storage-QdU-SmvD.js → storage-BC9TzmHh.js} +5 -5
  325. package/dist/src/{storage-CA-v9V2v.cjs → storage-Cv7QYUPO.cjs} +4 -4
  326. package/dist/src/{storage-CD-GWAdx.js → storage-fbHNSuZ9.js} +4 -4
  327. package/dist/src/{store-B2NDDooM.cjs → store-BKN4VD-m.cjs} +3 -3
  328. package/dist/src/{store-HpopRVzl.js → store-C4eo8Kyv.js} +3 -3
  329. package/dist/src/store-mJpYYA7W.js +3 -0
  330. package/dist/src/{store-DKd5592Q.js → store-u1XNK3e8.js} +3 -3
  331. package/dist/src/{strategies-CiSeroPH.js → strategies-4Nnr_9xt.js} +18 -18
  332. package/dist/src/{strategies-7CS3Alao.cjs → strategies-BD7US9WB.cjs} +18 -18
  333. package/dist/src/{strategies-DRJjGTIY.js → strategies-Ptz_P4P4.js} +20 -20
  334. package/dist/src/{tables-CRSXQ2Ke.js → tables-Bn3_8sxV.js} +2 -2
  335. package/dist/src/{tables-DafUHOeh.js → tables-D_ZGKiGc.js} +3 -3
  336. package/dist/src/{tables-DBIJU0WE.cjs → tables-D_s2HMPP.cjs} +2 -2
  337. package/dist/src/{tables-CxjU7bBd.js → tables-PWOqfbI_.js} +3 -3
  338. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-BTIhfopq.js} +21 -16
  339. package/dist/src/{telemetry-00ezXr_t.js → telemetry-BU80NveV.js} +21 -16
  340. package/dist/src/telemetry-CVHVhMOI.js +3 -0
  341. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-D3yQCekN.js} +21 -16
  342. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-DvzmDrSM.cjs} +21 -16
  343. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-D2F0D7es.js} +4 -4
  344. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-PLePpCmo.js} +3 -3
  345. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-WpE9IqC8.js} +4 -4
  346. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-eqmq5sA2.cjs} +4 -4
  347. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-CKLxdMxm.cjs} +7 -7
  348. package/dist/src/{transcription-B8uIgCYX.js → transcription-CmlDorqD.js} +7 -7
  349. package/dist/src/{transcription-CfU5loSq.js → transcription-Cupf4JNw.js} +7 -7
  350. package/dist/src/{transcription-Dkd22_4K.js → transcription-sOgdGxM6.js} +7 -7
  351. package/dist/src/{transform-BnSXWmU_2.cjs → transform-0wnBYYaL2.cjs} +4 -4
  352. package/dist/src/{transform-EtD4jAWi.js → transform-AfC8gqCB.js} +5 -5
  353. package/dist/src/{transform-CGt7Kt3y2.js → transform-BDSnWRNv2.js} +4 -4
  354. package/dist/src/{transform-BnSTnFlp.js → transform-C5pxvKUV.js} +4 -4
  355. package/dist/src/{transform-CrPGTsij.js → transform-C5rpIuDz.js} +4 -4
  356. package/dist/src/{transform-DmvYBRll.js → transform-D7QlmswG.js} +5 -5
  357. package/dist/src/{transform-DhNkAUs8.cjs → transform-DKw2FNwg.cjs} +5 -5
  358. package/dist/src/{transform-BIMynQsA.js → transform-R1PnNdLv.js} +5 -5
  359. package/dist/src/{types-BFevViUY.js → types-C_e_SykX.js} +2 -2
  360. package/dist/src/{types-BJQBBPTP.js → types-uLCKnRiK.js} +2 -2
  361. package/dist/src/{util-CN8om2rz.cjs → util-3BRss2KA.cjs} +7 -7
  362. package/dist/src/{util-efByNxcr.js → util-B2Nt2Oy7.js} +25 -7
  363. package/dist/src/{util-I-Rf-KaD.js → util-BGfk7zh7.js} +8 -8
  364. package/dist/src/{util-5WnCSb0h.js → util-BLSQ_7Ky.js} +25 -7
  365. package/dist/src/{util-IYzs5Y04.cjs → util-BSZPCmvm.cjs} +4 -3
  366. package/dist/src/{util-SPsvFONY.cjs → util-BuYzkbEz.cjs} +7 -7
  367. package/dist/src/{util-LKTmNsMQ.js → util-C6d3eV0A.js} +25 -7
  368. package/dist/src/{util-DURocbYR.js → util-CES4qWd7.js} +8 -8
  369. package/dist/src/{util-Df8YMvS1.js → util-CKZReNsz.js} +8 -8
  370. package/dist/src/{util-BSIuSLVK.cjs → util-Cs372i1_.cjs} +25 -7
  371. package/dist/src/{util-CoQWM76y.js → util-Cw9nJJWm.js} +4 -3
  372. package/dist/src/{util-DNl96nNs.js → util-D1NKMz55.js} +7 -7
  373. package/dist/src/{util-kDURhgJW.js → util-D9grslJP.js} +8 -8
  374. package/dist/src/{util--WMgw7wM.js → util-SNUDkWJ8.js} +4 -3
  375. package/dist/src/{util-Bx677_k2.js → util-vaCPFatZ.js} +7 -7
  376. package/dist/src/{util-DiQ3QvBB.js → util-weQgMdSy.js} +4 -3
  377. package/dist/src/{utils-Ve6kuJsa.cjs → utils-B_HCobst.cjs} +2 -2
  378. package/dist/src/{utils-BGY69tk_.js → utils-C3qMBhJT.js} +2 -2
  379. package/dist/src/{utils-BFOh20Gb.js → utils-Cdx3ZJr7.js} +2 -2
  380. package/dist/src/{utils-B0lzitHZ.js → utils-DMWnIu_V.js} +2 -2
  381. package/dist/src/{version-BK20a4sw.js → version-BGiEZvX0.js} +2 -2
  382. package/dist/src/{version-lpHV_53E.js → version-BNhpIb2U.js} +2 -2
  383. package/dist/src/{version-eRkNuGv8.js → version-CnYqmWbz.js} +2 -2
  384. package/dist/src/{version-BWCSaByA.cjs → version-XjGPawtU.cjs} +2 -2
  385. package/dist/tsconfig.tsbuildinfo +1 -1
  386. package/package.json +17 -17
  387. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  388. package/dist/src/app/assets/index-yhM8y1PP.css +0 -1
  389. package/dist/src/cache-Cf7b4pWE.js +0 -3
  390. package/dist/src/cloud-p96PA4MH.js +0 -3
  391. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  392. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  393. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  394. package/dist/src/fetch-_YgGd2qv.js +0 -3
  395. package/dist/src/graders-BDT7dif6.js +0 -3
  396. package/dist/src/rubyUtils-BYVlQ94c.js +0 -3
  397. package/dist/src/server-BaLytskk.js +0 -3
  398. package/dist/src/store-IbiRIF3k.js +0 -3
  399. package/dist/src/telemetry-ByPqDcKC.js +0 -3
@@ -1,32 +1,32 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
- import { O as isCI, S as getEnvBool, T as getEnvString, a as logger, h as extractJsonObjects, k as state, m as extractFirstJsonObject, y as safeJsonStringify } from "./logger-Ct2S6Yx-.js";
2
+ import { O as isCI, S as getEnvBool, T as getEnvString, a as logger, h as extractJsonObjects, k as state, m as extractFirstJsonObject, y as safeJsonStringify } from "./logger-Cs0I2v_y.js";
3
3
  import { t as invariant } from "./invariant-Ddh24eXh.js";
4
4
  import { Et as CODING_AGENT_PLUGIN_DISPLAY_NAMES, L as PolicyObjectSchema, Tt as CODING_AGENT_PLUGIN_DESCRIPTIONS, W as MULTI_TURN_STRATEGIES, Wt as isApiProvider, j as PromptSchema, wt as CODING_AGENT_PLUGINS, z as isValidReusablePolicyId, zt as buildInputPromptDescription } from "./types-D6glLbdF.js";
5
- import { l as sleep, p as REQUEST_TIMEOUT_MS, r as fetchWithTimeout, t as fetchWithProxy } from "./fetch-It34O8Ur.js";
5
+ import { l as sleep, m as getRequestTimeoutMs, r as fetchWithTimeout, t as fetchWithProxy } from "./fetch-CHJu2KON.js";
6
6
  import { i as isJavascriptFile } from "./fileExtensions-CXRfY3Ss.js";
7
- import { i as getUserEmail } from "./accounts-Ca7WIoPY.js";
8
- import { r as importModule } from "./esm-BTK1W7lG.js";
9
- import { i as extractVariablesFromTemplate, o as getNunjucksEngine } from "./render-DFfDeYUK.js";
10
- import { d as hasCodexDefaultCredentials, l as shouldGenerateRemote, r as getRemoteGenerationUrl, u as getCodexDefaultProviders } from "./remoteGeneration-DsaSwmG2.js";
11
- import { l as getPoliciesFromCloud } from "./storage-CD-GWAdx.js";
12
- import { r as runPython } from "./pythonUtils-D0BYebvX.js";
13
- import { N as parseFileUrl, O as maybeLoadToolsFromExternalFile, S as getNunjucksEngineForFilePath, T as maybeLoadFromExternalFile, k as parsePathOrGlob, w as maybeLoadConfigFromExternalFile } from "./util-Bx677_k2.js";
7
+ import { i as getUserEmail } from "./accounts-4Xa5fcHy.js";
8
+ import { r as importModule } from "./esm-C_yrt93A.js";
9
+ import { i as extractVariablesFromTemplate, o as getNunjucksEngine } from "./render-CTZQAINJ.js";
10
+ import { d as hasCodexDefaultCredentials, l as shouldGenerateRemote, r as getRemoteGenerationUrl, u as getCodexDefaultProviders } from "./remoteGeneration-DvWEm3yi.js";
11
+ import { l as getPoliciesFromCloud } from "./storage-fbHNSuZ9.js";
12
+ import { r as runPython } from "./pythonUtils-C4Wnz6Q7.js";
13
+ import { N as parseFileUrl, O as maybeLoadToolsFromExternalFile, S as getNunjucksEngineForFilePath, T as maybeLoadFromExternalFile, k as parsePathOrGlob, w as maybeLoadConfigFromExternalFile } from "./util-vaCPFatZ.js";
14
14
  import { n as sha256 } from "./createHash-BtbSX3mj.js";
15
- import { i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-DIXbtkNO.js";
16
- import { t as OpenAiChatCompletionProvider } from "./chat-Dabu84Br.js";
17
- import { x as hasGoogleDefaultCredentials } from "./transform-DmvYBRll.js";
18
- import { C as AzureModerationProvider, S as DefaultSynthesizeProvider$1, T as AzureChatCompletionProvider, b as DefaultLlmRubricProvider, c as parseScriptParts, d as MistralEmbeddingProvider, l as OpenAiModerationProvider, m as DefaultGradingProvider$3, n as loadApiProvider, p as DefaultEmbeddingProvider$2, s as getFileHashes, u as MistralChatCompletionProvider, v as DefaultGradingJsonProvider$2, w as AzureEmbeddingProvider, x as DefaultSuggestionsProvider$2, y as DefaultGradingProvider$2 } from "./providers-DVYRZP4E.js";
19
- import { t as OpenAiEmbeddingProvider } from "./embedding-Bi3rxrZF.js";
15
+ import { i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-CT5D7d_A.js";
16
+ import { t as OpenAiChatCompletionProvider } from "./chat-CCtIXezK.js";
17
+ import { x as hasGoogleDefaultCredentials } from "./transform-R1PnNdLv.js";
18
+ import { C as AzureModerationProvider, S as DefaultSynthesizeProvider$1, T as AzureChatCompletionProvider, b as DefaultLlmRubricProvider, c as parseScriptParts, d as MistralEmbeddingProvider, l as OpenAiModerationProvider, m as DefaultGradingProvider$3, n as loadApiProvider, p as DefaultEmbeddingProvider$2, s as getFileHashes, u as MistralChatCompletionProvider, v as DefaultGradingJsonProvider$2, w as AzureEmbeddingProvider, x as DefaultSuggestionsProvider$2, y as DefaultGradingProvider$2 } from "./providers-DTPwadhk.js";
19
+ import { t as OpenAiEmbeddingProvider } from "./embedding-cd5oPBkX.js";
20
20
  import { r as accumulateTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
21
- import { t as AnthropicMessagesProvider } from "./messages-vsE_-Lv0.js";
22
- import { t as OpenAiResponsesProvider } from "./responses-URRzV8qE.js";
23
- import { n as materializeInputVariablesWithMetadata } from "./inputVariables-DUGMb9Ka.js";
24
- import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, l as isEmptyResponse, n as extractGoalFromPrompt, r as extractInputVarsFromPrompt, s as getShortPluginId, t as extractAllPromptsFromTags, u as removePrefix } from "./util-DNl96nNs.js";
25
- import { _ as isRateLimitWrapped, f as redteamProviderManager, g as createProviderRateLimitOptions } from "./shared-D6IjElRI.js";
26
- import { a as PROMPT_DELIMITER, n as maybeFilePath, r as normalizeInput } from "./utils-BGY69tk_.js";
27
- import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-B9nZEfO6.js";
21
+ import { t as AnthropicMessagesProvider } from "./messages-Dy5vvc3H.js";
22
+ import { t as OpenAiResponsesProvider } from "./responses-C2vhwf8F.js";
23
+ import { n as materializeInputVariablesWithMetadata } from "./inputVariables-B7cylqzM.js";
24
+ import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, l as isEmptyResponse, n as extractGoalFromPrompt, r as extractInputVarsFromPrompt, s as getShortPluginId, t as extractAllPromptsFromTags, u as removePrefix } from "./util-D1NKMz55.js";
25
+ import { _ as isRateLimitWrapped, f as redteamProviderManager, g as createProviderRateLimitOptions } from "./shared-BF25a7ms.js";
26
+ import { a as PROMPT_DELIMITER, n as maybeFilePath, r as normalizeInput } from "./utils-C3qMBhJT.js";
27
+ import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-ho3wbst6.js";
28
28
  import { t as REDTEAM_MEMORY_POISONING_PLUGIN_ID } from "./constants-DZGEFLsu.js";
29
- import { n as checkExfilTracking } from "./indirectWebPwn-CbjUG0rh.js";
29
+ import { n as checkExfilTracking } from "./indirectWebPwn-1gHqaL91.js";
30
30
  import * as fs$2 from "fs";
31
31
  import fs from "fs";
32
32
  import path from "path";
@@ -276,13 +276,13 @@ const DefaultSuggestionsProvider$1 = new MistralChatCompletionProvider("mistral-
276
276
  const DefaultSynthesizeProvider = new MistralChatCompletionProvider("mistral-large-latest");
277
277
  //#endregion
278
278
  //#region src/providers/openai/defaults.ts
279
- const DEFAULT_OPENAI_GRADING_MODEL = "gpt-5.4-2026-03-05";
279
+ const DEFAULT_OPENAI_GRADING_MODEL = "gpt-5.5-2026-04-23";
280
280
  const DefaultEmbeddingProvider = new OpenAiEmbeddingProvider("text-embedding-3-large");
281
281
  const DefaultGradingProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL);
282
282
  const DefaultGradingJsonProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL, { config: { response_format: { type: "json_object" } } });
283
283
  const DefaultSuggestionsProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL);
284
284
  const DefaultModerationProvider = new OpenAiModerationProvider("omni-moderation-latest");
285
- const DefaultWebSearchProvider = new OpenAiResponsesProvider("gpt-5.4-2026-03-05", { config: { tools: [{ type: "web_search_preview" }] } });
285
+ const DefaultWebSearchProvider = new OpenAiResponsesProvider("gpt-5.5-2026-04-23", { config: { tools: [{ type: "web_search_preview" }] } });
286
286
  async function getDefaultProviderPreferences(env) {
287
287
  const hasAnthropicCredentials = Boolean(getEnvString("ANTHROPIC_API_KEY") || env?.ANTHROPIC_API_KEY);
288
288
  const hasOpenAiCredentials = Boolean(getEnvString("OPENAI_API_KEY") || env?.OPENAI_API_KEY);
@@ -1396,7 +1396,7 @@ async function doRemoteGrading(payload) {
1396
1396
  method: "POST",
1397
1397
  headers: { "Content-Type": "application/json" },
1398
1398
  body
1399
- }, REQUEST_TIMEOUT_MS);
1399
+ }, getRequestTimeoutMs());
1400
1400
  logger.debug(`Remote grading result: status=${status}, statusText=${statusText}, data=${JSON.stringify(data)}`);
1401
1401
  if (status !== 200) throw new Error(`Remote grading failed with status ${status}: ${statusText} ${JSON.stringify(data)}`);
1402
1402
  const { result } = data;
@@ -1439,7 +1439,7 @@ async function doRemoteScoringWithPi(payload, passThreshold = .5) {
1439
1439
  "x-api-key": apiKey
1440
1440
  },
1441
1441
  body
1442
- }, REQUEST_TIMEOUT_MS);
1442
+ }, getRequestTimeoutMs());
1443
1443
  return convertPiResultToGradingResult(data, passThreshold);
1444
1444
  } else throw new Error(`Env var WITHPI_API_KEY must be set. Visit https://docs.withpi.ai for more information.`);
1445
1445
  } catch (error) {
@@ -8389,7 +8389,7 @@ function describeFilters(config) {
8389
8389
  }
8390
8390
  async function fetchDataset$1(limit, config) {
8391
8391
  try {
8392
- const response = await fetchWithTimeout(DATASET_URL, {}, REQUEST_TIMEOUT_MS);
8392
+ const response = await fetchWithTimeout(DATASET_URL, {}, getRequestTimeoutMs());
8393
8393
  if (!response.ok) throw new Error(`HTTP status: ${response.status} ${response.statusText}`);
8394
8394
  const records = parse$1(await response.text(), { columns: true });
8395
8395
  logger.debug(`[harmbench] Parsed ${records.length} entries from CSV`);
@@ -15606,7 +15606,7 @@ var VLSUDatasetManager = class VLSUDatasetManager extends ImageDatasetManager {
15606
15606
  }
15607
15607
  logger.debug(`[vlsu] Fetching CSV from ${VLSU_CSV_URL}`);
15608
15608
  try {
15609
- const response = await fetchWithCache(VLSU_CSV_URL, {}, REQUEST_TIMEOUT_MS, "text");
15609
+ const response = await fetchWithCache(VLSU_CSV_URL, {}, getRequestTimeoutMs(), "text");
15610
15610
  if (response.status < 200 || response.status >= 300) throw new Error(`Failed to fetch VLSU CSV: ${response.statusText}`);
15611
15611
  const csvText = response.data;
15612
15612
  const records = parse$1(csvText, {
@@ -16169,4 +16169,4 @@ function getGraderById(id) {
16169
16169
  //#endregion
16170
16170
  export { readProviderPromptMap as $, ExcessiveAgencyPlugin as A, withProviderCallExecutionContext as At, retryWithDeduplication as B, PlinyPlugin as C, processFileReference as Ct, ImitationPlugin as D, getAndCheckProvider as Dt, IntentPlugin as E, callProviderWithContext as Et, BeavertailsPlugin as F, matchesFactuality as G, fetchHuggingFaceDataset as H, AegisPlugin as I, matchesPiScore as J, matchesGEval as K, RedteamGraderBase as L, DebugAccessPlugin as M, CrossSessionLeakPlugin as N, HarmbenchPlugin as O, getGradingProvider as Ot, ContractPlugin as P, readPrompts as Q, RedteamPluginBase as R, makeInlinePolicyIdSync as S, loadFromJavaScriptFile as St, OverreliancePlugin as T, DEFAULT_ANTHROPIC_MODEL as Tt, isGraderFailure as U, sampleArray as V, matchesClosedQa as W, doRemoteGrading as X, matchesTrajectoryGoalSuccess as Y, processPrompts as Z, PromptExtractionPlugin as _, normalizeMatcherTokenUsage as _t, VLGuardPlugin as a, CONTEXT_FAITHFULNESS_NLI_STATEMENTS as at, determinePolicyTypeFromId as b, coerceString as bt, ToxicChatPlugin as c, CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN as ct, TeenSafetyDangerousRoleplayPlugin as d, loadRubricPrompt as dt, DEFAULT_WEB_SEARCH_PROMPT as et, TeenSafetyDangerousContentPlugin as f, renderLlmRubricPrompt as ft, RbacPlugin as g, fail as gt, ShellInjectionPlugin as h, euclideanDistance as ht, VLSUPlugin as i, CONTEXT_FAITHFULNESS_LONGFORM as it, DivergentRepetitionPlugin as j, HallucinationPlugin as k, getProviderCallExecutionContext as kt, ToolDiscoveryPlugin as l, CONTEXT_RELEVANCE as lt, SqlInjectionPlugin as m, dotProduct as mt, getGraderById as n, SUGGEST_PROMPTS_SYSTEM_MESSAGE as nt, UnverifiableClaimsPlugin as o, CONTEXT_RECALL as ot, TeenSafetyAgeRestrictedGoodsAndServicesPlugin as p, cosineSimilarity as pt, matchesLlmRubric as q, graders_exports as r, ANSWER_RELEVANCY_GENERATE as rt, UnsafeBenchPlugin as s, CONTEXT_RECALL_ATTRIBUTED_TOKEN as st, GRADERS as t, SELECT_BEST_PROMPT as tt, TeenSafetyHarmfulBodyIdealsPlugin as u, CONTEXT_RELEVANCE_BAD as ut, PoliticsPlugin as v, splitIntoSentences as vt, getPiiLeakTestsForCategory as w, getDefaultProviders as wt, isValidPolicyObject as x, getFinalTest as xt, PolicyPlugin as y, tryParse as yt, getCustomPolicies as z };
16171
16171
 
16172
- //# sourceMappingURL=graders-BX0f2tvS.js.map
16172
+ //# sourceMappingURL=graders-GNRQ1357.js.map
@@ -1,36 +1,36 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
- import { O as isCI, S as getEnvBool, T as getEnvString, a as logger, h as extractJsonObjects, k as state, m as extractFirstJsonObject, y as safeJsonStringify } from "./logger-KD8JjCRJ.js";
3
- import { m as sleep, r as fetchWithTimeout, t as fetchWithProxy, v as REQUEST_TIMEOUT_MS } from "./fetch-BufrQtvR.js";
2
+ import { C as getEnvBool, E as getEnvString, S as state, a as logger, h as extractJsonObjects, k as isCI, m as extractFirstJsonObject, y as safeJsonStringify } from "./logger-BjYLHvGm.js";
3
+ import { m as sleep, r as fetchWithTimeout, t as fetchWithProxy, y as getRequestTimeoutMs } from "./fetch-CBe8pU8Q.js";
4
4
  import { t as invariant } from "./invariant-DIYf9sP1.js";
5
- import { o as getUserEmail } from "./accounts-DanM1wq_.js";
6
- import { r as importModule } from "./esm-B6whoAcf.js";
7
- import { i as extractVariablesFromTemplate, o as getNunjucksEngine } from "./render-_6ur1fhE.js";
8
- import { d as hasCodexDefaultCredentials, l as shouldGenerateRemote, r as getRemoteGenerationUrl, u as getCodexDefaultProviders } from "./remoteGeneration-COpWcmWd.js";
9
- import { C as isValidReusablePolicyId, ft as CODING_AGENT_PLUGINS, ht as PromptSchema, k as MULTI_TURN_STRATEGIES, mt as CODING_AGENT_PLUGIN_DISPLAY_NAMES, p as isApiProvider, pt as CODING_AGENT_PLUGIN_DESCRIPTIONS, vt as buildInputPromptDescription, x as PolicyObjectSchema } from "./types-BJQBBPTP.js";
5
+ import { o as getUserEmail } from "./accounts-BAajbKSh.js";
6
+ import { r as importModule } from "./esm-CGER3lko.js";
7
+ import { i as extractVariablesFromTemplate, o as getNunjucksEngine } from "./render-BoxrvB84.js";
8
+ import { d as hasCodexDefaultCredentials, l as shouldGenerateRemote, r as getRemoteGenerationUrl, u as getCodexDefaultProviders } from "./remoteGeneration-CoxtxLvB.js";
9
+ import { C as isValidReusablePolicyId, ft as CODING_AGENT_PLUGINS, ht as PromptSchema, k as MULTI_TURN_STRATEGIES, mt as CODING_AGENT_PLUGIN_DISPLAY_NAMES, p as isApiProvider, pt as CODING_AGENT_PLUGIN_DESCRIPTIONS, vt as buildInputPromptDescription, x as PolicyObjectSchema } from "./types-uLCKnRiK.js";
10
10
  import { o as isJavascriptFile } from "./shared-BoG7qLMv.js";
11
11
  import { n as sha256 } from "./createHash-CGVzWdjj.js";
12
- import { i as PROMPT_DELIMITER, n as maybeFilePath, r as normalizeInput } from "./utils-B0lzitHZ.js";
13
- import { i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-roFAE0cI.js";
12
+ import { i as PROMPT_DELIMITER, n as maybeFilePath, r as normalizeInput } from "./utils-DMWnIu_V.js";
13
+ import { i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-x9llZxbx.js";
14
14
  import { r as accumulateTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
15
- import { d as getPoliciesFromCloud } from "./storage-QdU-SmvD.js";
16
- import { r as runPython } from "./pythonUtils-CLCgQ9tt.js";
17
- import { A as maybeLoadConfigFromExternalFile, F as parsePathOrGlob, O as getNunjucksEngineForFilePath, P as maybeLoadToolsFromExternalFile, j as maybeLoadFromExternalFile, z as parseFileUrl } from "./util-I-Rf-KaD.js";
18
- import { t as OpenAiChatCompletionProvider } from "./chat-CUCorGiL.js";
19
- import { x as hasGoogleDefaultCredentials } from "./transform-BIMynQsA.js";
20
- import { t as AnthropicMessagesProvider } from "./messages-BabO-cX8.js";
21
- import { t as OpenAiResponsesProvider } from "./responses-B6ktc3Ra.js";
22
- import { C as DefaultLlmRubricProvider, D as AzureEmbeddingProvider, E as AzureModerationProvider, O as AzureChatCompletionProvider, S as DefaultGradingProvider$2, T as DefaultSynthesizeProvider$1, _ as DefaultEmbeddingProvider$2, c as parseScriptParts, g as MistralEmbeddingProvider, h as MistralChatCompletionProvider, m as OpenAiModerationProvider, n as loadApiProvider, s as getFileHashes, v as DefaultGradingProvider$3, w as DefaultSuggestionsProvider$2, x as DefaultGradingJsonProvider$2 } from "./providers-BCCz6_IX.js";
23
- import { t as OpenAiEmbeddingProvider } from "./embedding-C251p1-8.js";
24
- import { r as materializeInputVariablesWithMetadata } from "./inputVariables-B0qUChbV.js";
25
- import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, l as isEmptyResponse, n as extractGoalFromPrompt, r as extractInputVarsFromPrompt, s as getShortPluginId, t as extractAllPromptsFromTags, u as removePrefix } from "./util-Df8YMvS1.js";
26
- import { _ as isRateLimitWrapped, f as redteamProviderManager, g as createProviderRateLimitOptions } from "./shared-7pmVZLNO.js";
27
- import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-0qIHyhA5.js";
15
+ import { d as getPoliciesFromCloud } from "./storage-BC9TzmHh.js";
16
+ import { r as runPython } from "./pythonUtils-CBe7VV6f.js";
17
+ import { A as maybeLoadConfigFromExternalFile, F as parsePathOrGlob, O as getNunjucksEngineForFilePath, P as maybeLoadToolsFromExternalFile, j as maybeLoadFromExternalFile, z as parseFileUrl } from "./util-BGfk7zh7.js";
18
+ import { t as OpenAiChatCompletionProvider } from "./chat-CvQMD-mp.js";
19
+ import { x as hasGoogleDefaultCredentials } from "./transform-D7QlmswG.js";
20
+ import { t as AnthropicMessagesProvider } from "./messages-C5qBfONg.js";
21
+ import { t as OpenAiResponsesProvider } from "./responses-pvlY3oYx.js";
22
+ import { C as DefaultLlmRubricProvider, D as AzureEmbeddingProvider, E as AzureModerationProvider, O as AzureChatCompletionProvider, S as DefaultGradingProvider$2, T as DefaultSynthesizeProvider$1, _ as DefaultEmbeddingProvider$2, c as parseScriptParts, g as MistralEmbeddingProvider, h as MistralChatCompletionProvider, m as OpenAiModerationProvider, n as loadApiProvider, s as getFileHashes, v as DefaultGradingProvider$3, w as DefaultSuggestionsProvider$2, x as DefaultGradingJsonProvider$2 } from "./providers-DDLQc0tl.js";
23
+ import { t as OpenAiEmbeddingProvider } from "./embedding-BwTB3YDt.js";
24
+ import { r as materializeInputVariablesWithMetadata } from "./inputVariables-DpOsOnzU.js";
25
+ import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, l as isEmptyResponse, n as extractGoalFromPrompt, r as extractInputVarsFromPrompt, s as getShortPluginId, t as extractAllPromptsFromTags, u as removePrefix } from "./util-CKZReNsz.js";
26
+ import { _ as isRateLimitWrapped, f as redteamProviderManager, g as createProviderRateLimitOptions } from "./shared-yBQATkD5.js";
27
+ import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-5B4_P93z.js";
28
28
  import { t as REDTEAM_MEMORY_POISONING_PLUGIN_ID } from "./constants-BjJV0cRr.js";
29
- import { n as checkExfilTracking } from "./indirectWebPwn-tNx9OZ35.js";
30
- import { AsyncLocalStorage } from "node:async_hooks";
29
+ import { n as checkExfilTracking } from "./indirectWebPwn-DRYpRTx6.js";
31
30
  import * as fs$2 from "fs";
32
31
  import fs from "fs";
33
32
  import path from "path";
33
+ import { AsyncLocalStorage } from "node:async_hooks";
34
34
  import yaml from "js-yaml";
35
35
  import z$1 from "zod";
36
36
  import { readFile, stat } from "fs/promises";
@@ -160,13 +160,13 @@ const DefaultSuggestionsProvider$1 = new MistralChatCompletionProvider("mistral-
160
160
  const DefaultSynthesizeProvider = new MistralChatCompletionProvider("mistral-large-latest");
161
161
  //#endregion
162
162
  //#region src/providers/openai/defaults.ts
163
- const DEFAULT_OPENAI_GRADING_MODEL = "gpt-5.4-2026-03-05";
163
+ const DEFAULT_OPENAI_GRADING_MODEL = "gpt-5.5-2026-04-23";
164
164
  const DefaultEmbeddingProvider = new OpenAiEmbeddingProvider("text-embedding-3-large");
165
165
  const DefaultGradingProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL);
166
166
  const DefaultGradingJsonProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL, { config: { response_format: { type: "json_object" } } });
167
167
  const DefaultSuggestionsProvider = new OpenAiChatCompletionProvider(DEFAULT_OPENAI_GRADING_MODEL);
168
168
  const DefaultModerationProvider = new OpenAiModerationProvider("omni-moderation-latest");
169
- const DefaultWebSearchProvider = new OpenAiResponsesProvider("gpt-5.4-2026-03-05", { config: { tools: [{ type: "web_search_preview" }] } });
169
+ const DefaultWebSearchProvider = new OpenAiResponsesProvider("gpt-5.5-2026-04-23", { config: { tools: [{ type: "web_search_preview" }] } });
170
170
  async function getDefaultProviderPreferences(env) {
171
171
  const hasAnthropicCredentials = Boolean(getEnvString("ANTHROPIC_API_KEY") || env?.ANTHROPIC_API_KEY);
172
172
  const hasOpenAiCredentials = Boolean(getEnvString("OPENAI_API_KEY") || env?.OPENAI_API_KEY);
@@ -1456,7 +1456,7 @@ async function doRemoteGrading(payload) {
1456
1456
  method: "POST",
1457
1457
  headers: { "Content-Type": "application/json" },
1458
1458
  body
1459
- }, REQUEST_TIMEOUT_MS);
1459
+ }, getRequestTimeoutMs());
1460
1460
  logger.debug(`Remote grading result: status=${status}, statusText=${statusText}, data=${JSON.stringify(data)}`);
1461
1461
  if (status !== 200) throw new Error(`Remote grading failed with status ${status}: ${statusText} ${JSON.stringify(data)}`);
1462
1462
  const { result } = data;
@@ -1499,7 +1499,7 @@ async function doRemoteScoringWithPi(payload, passThreshold = .5) {
1499
1499
  "x-api-key": apiKey
1500
1500
  },
1501
1501
  body
1502
- }, REQUEST_TIMEOUT_MS);
1502
+ }, getRequestTimeoutMs());
1503
1503
  return convertPiResultToGradingResult(data, passThreshold);
1504
1504
  } else throw new Error(`Env var WITHPI_API_KEY must be set. Visit https://docs.withpi.ai for more information.`);
1505
1505
  } catch (error) {
@@ -8389,7 +8389,7 @@ function describeFilters(config) {
8389
8389
  }
8390
8390
  async function fetchDataset$1(limit, config) {
8391
8391
  try {
8392
- const response = await fetchWithTimeout(DATASET_URL, {}, REQUEST_TIMEOUT_MS);
8392
+ const response = await fetchWithTimeout(DATASET_URL, {}, getRequestTimeoutMs());
8393
8393
  if (!response.ok) throw new Error(`HTTP status: ${response.status} ${response.statusText}`);
8394
8394
  const records = parse$1(await response.text(), { columns: true });
8395
8395
  logger.debug(`[harmbench] Parsed ${records.length} entries from CSV`);
@@ -15606,7 +15606,7 @@ var VLSUDatasetManager = class VLSUDatasetManager extends ImageDatasetManager {
15606
15606
  }
15607
15607
  logger.debug(`[vlsu] Fetching CSV from ${VLSU_CSV_URL}`);
15608
15608
  try {
15609
- const response = await fetchWithCache(VLSU_CSV_URL, {}, REQUEST_TIMEOUT_MS, "text");
15609
+ const response = await fetchWithCache(VLSU_CSV_URL, {}, getRequestTimeoutMs(), "text");
15610
15610
  if (response.status < 200 || response.status >= 300) throw new Error(`Failed to fetch VLSU CSV: ${response.statusText}`);
15611
15611
  const csvText = response.data;
15612
15612
  const records = parse$1(csvText, {
@@ -16169,4 +16169,4 @@ function getGraderById(id) {
16169
16169
  //#endregion
16170
16170
  export { SUGGEST_PROMPTS_SYSTEM_MESSAGE as $, ExcessiveAgencyPlugin as A, DEFAULT_ANTHROPIC_MODEL as At, isGraderFailure as B, PlinyPlugin as C, getGradingProvider as Ct, ImitationPlugin as D, retryWithDeduplication as Dt, IntentPlugin as E, getCustomPolicies as Et, BeavertailsPlugin as F, matchesPiScore as G, matchesFactuality as H, AegisPlugin as I, processPrompts as J, matchesTrajectoryGoalSuccess as K, RedteamGraderBase as L, DebugAccessPlugin as M, CrossSessionLeakPlugin as N, HarmbenchPlugin as O, sampleArray as Ot, ContractPlugin as P, SELECT_BEST_PROMPT as Q, RedteamPluginBase as R, makeInlinePolicyIdSync as S, getAndCheckProvider as St, OverreliancePlugin as T, withProviderCallExecutionContext as Tt, matchesGEval as U, matchesClosedQa as V, matchesLlmRubric as W, readProviderPromptMap as X, readPrompts as Y, DEFAULT_WEB_SEARCH_PROMPT as Z, PromptExtractionPlugin as _, coerceString as _t, VLGuardPlugin as a, CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN as at, determinePolicyTypeFromId as b, processFileReference as bt, ToxicChatPlugin as c, loadRubricPrompt as ct, TeenSafetyDangerousRoleplayPlugin as d, dotProduct as dt, ANSWER_RELEVANCY_GENERATE as et, TeenSafetyDangerousContentPlugin as f, euclideanDistance as ft, RbacPlugin as g, tryParse as gt, ShellInjectionPlugin as h, splitIntoSentences as ht, VLSUPlugin as i, CONTEXT_RECALL_ATTRIBUTED_TOKEN as it, DivergentRepetitionPlugin as j, HallucinationPlugin as k, getDefaultProviders as kt, ToolDiscoveryPlugin as l, renderLlmRubricPrompt as lt, SqlInjectionPlugin as m, normalizeMatcherTokenUsage as mt, getGraderById as n, CONTEXT_FAITHFULNESS_NLI_STATEMENTS as nt, UnverifiableClaimsPlugin as o, CONTEXT_RELEVANCE as ot, TeenSafetyAgeRestrictedGoodsAndServicesPlugin as p, fail as pt, doRemoteGrading as q, graders_exports as r, CONTEXT_RECALL as rt, UnsafeBenchPlugin as s, CONTEXT_RELEVANCE_BAD as st, GRADERS as t, CONTEXT_FAITHFULNESS_LONGFORM as tt, TeenSafetyHarmfulBodyIdealsPlugin as u, cosineSimilarity as ut, PoliticsPlugin as v, getFinalTest as vt, getPiiLeakTestsForCategory as w, getProviderCallExecutionContext as wt, isValidPolicyObject as x, callProviderWithContext as xt, PolicyPlugin as y, loadFromJavaScriptFile as yt, fetchHuggingFaceDataset as z };
16171
16171
 
16172
- //# sourceMappingURL=graders-C0nXU_ZP.js.map
16172
+ //# sourceMappingURL=graders-k8qmhrPu.js.map
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger, y as isValidJson } from "./logger-BbY6ypFL.js";
3
- import { f as sleep } from "./fetch-DXUnXkVU.js";
2
+ import { s as logger, y as isValidJson } from "./logger-h-eiS4iv.js";
3
+ import { f as sleep } from "./fetch-C59QM4cf.js";
4
4
  import { t as invariant } from "./invariant-B2Rf6avk.js";
5
- import { c as isLoggedIntoCloud } from "./accounts-CjFnOPmb.js";
6
- import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-B1_XsKXU.js";
5
+ import { c as isLoggedIntoCloud } from "./accounts-Bw2qPqE-.js";
6
+ import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-DW6mPZnO.js";
7
7
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
8
- import { r as materializeInputVariablesWithMetadata } from "./inputVariables-DXFdi7AI.js";
9
- import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-kDURhgJW.js";
10
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-Rjp-MeBb.js";
11
- import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-9WHQ1oNE.js";
12
- import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-CIW3iN-b.js";
13
- import { n as checkExfilTracking } from "./indirectWebPwn-uyWdHx04.js";
14
- import { n as renderPrompt } from "./evaluatorHelpers-BsYP_muT.js";
15
- import { t as Strategies } from "./strategies-DRJjGTIY.js";
16
- import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-BnwKCkSB.js";
17
- import { t as applyRuntimeTransforms } from "./runtimeTransform-Dgh_D7DU.js";
8
+ import { r as materializeInputVariablesWithMetadata } from "./inputVariables-qJmuSN5i.js";
9
+ import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-D9grslJP.js";
10
+ import { a as assertRemoteMaterializationHandled, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-wxe28-q9.js";
11
+ import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-DsbObxvy.js";
12
+ import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-CtadTcJm.js";
13
+ import { n as checkExfilTracking } from "./indirectWebPwn-BXUoJl4I.js";
14
+ import { n as renderPrompt } from "./evaluatorHelpers-DDG44JeI.js";
15
+ import { t as Strategies } from "./strategies-Ptz_P4P4.js";
16
+ import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-D2F0D7es.js";
17
+ import { t as applyRuntimeTransforms } from "./runtimeTransform-s14J7yxm.js";
18
18
  //#region src/redteam/providers/hydra/index.ts
19
19
  const DEFAULT_MAX_TURNS = 10;
20
20
  const DEFAULT_MAX_BACKTRACKS = 10;
@@ -112,11 +112,12 @@ var HydraProvider = class {
112
112
  let storedGraderResult = void 0;
113
113
  let lastTargetResponse = void 0;
114
114
  let backtrackCount = 0;
115
+ let agentFailureError;
115
116
  const redteamHistory = [];
116
117
  let lastTransformResult;
117
118
  let lastTransformDisplayVars;
118
119
  let lastFinalAttackPrompt;
119
- const { getGraderById } = await import("./graders-BDT7dif6.js");
120
+ const { getGraderById } = await import("./graders-D4vc1PFi.js");
120
121
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
121
122
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
122
123
  let previousTraceSummary;
@@ -160,6 +161,7 @@ var HydraProvider = class {
160
161
  testRunId,
161
162
  error: agentResp.error
162
163
  });
164
+ agentFailureError = agentResp.error;
163
165
  continue;
164
166
  }
165
167
  let nextMessage;
@@ -170,18 +172,31 @@ var HydraProvider = class {
170
172
  }
171
173
  if (!nextMessage) {
172
174
  logger.info("[Hydra] Missing message from agent", { turn });
175
+ agentFailureError = "Hydra agent did not return an attack message";
173
176
  continue;
174
177
  }
175
178
  let processedMessage = nextMessage;
176
179
  const extractedPrompt = extractPromptFromTags(nextMessage);
177
180
  if (extractedPrompt) processedMessage = extractedPrompt;
181
+ if (this.config.inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled(agentResp, "Hydra multi-input generation");
178
182
  const currentInputVars = extractInputVarsFromPrompt(processedMessage, this.config.inputs);
179
- const currentRenderInputVars = (currentInputVars && this.config.inputs ? await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
183
+ let materializedInputVars;
184
+ if (this.config.inputs && shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
185
+ logger.warn("[Hydra] Remote multi-input generation returned an invalid prompt format", {
186
+ turn,
187
+ messagePreview: processedMessage.slice(0, 200)
188
+ });
189
+ agentFailureError = "Hydra remote multi-input generation returned an invalid prompt format";
190
+ continue;
191
+ }
192
+ if ((currentInputVars || agentResp.materializedVars) && this.config.inputs) if (shouldGenerateRemote()) materializedInputVars = buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, this.config.inputs);
193
+ else materializedInputVars = await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
180
194
  materializationIndex: turn,
181
195
  pluginId: "hydra",
182
196
  provider: this.agentProvider,
183
197
  purpose: test?.metadata?.purpose
184
- }) : void 0)?.vars ?? currentInputVars;
198
+ });
199
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
185
200
  this.conversationHistory.push({
186
201
  role: "user",
187
202
  content: processedMessage
@@ -513,13 +528,16 @@ var HydraProvider = class {
513
528
  role: msg.role,
514
529
  content: msg.content
515
530
  }));
531
+ const targetProbeCount = totalTokenUsage.numRequests ?? 0;
532
+ const hydraRoundsCompleted = this.conversationHistory.filter((m) => m.role === "user").length;
533
+ const failClosedError = targetProbeCount === 0 ? agentFailureError || "Hydra did not execute any target probes" : void 0;
516
534
  return {
517
535
  output: lastTargetResponse?.output || "",
518
- ...lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
536
+ ...failClosedError ? { error: failClosedError } : lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
519
537
  metadata: {
520
538
  sessionId: this.sessionId || getSessionId(lastTargetResponse, context),
521
539
  messages,
522
- hydraRoundsCompleted: this.conversationHistory.filter((m) => m.role === "user").length,
540
+ hydraRoundsCompleted,
523
541
  hydraBacktrackCount: backtrackCount,
524
542
  hydraResult: vulnerabilityAchieved,
525
543
  stopReason,
@@ -540,4 +558,4 @@ var HydraProvider = class {
540
558
  //#endregion
541
559
  export { HydraProvider, HydraProvider as default };
542
560
 
543
- //# sourceMappingURL=hydra-BSNZZm2M.js.map
561
+ //# sourceMappingURL=hydra-BrgGALmB.js.map
@@ -1,18 +1,18 @@
1
- import { _ as isValidJson, a as logger } from "./logger-KD8JjCRJ.js";
2
- import { m as sleep } from "./fetch-BufrQtvR.js";
1
+ import { _ as isValidJson, a as logger } from "./logger-BjYLHvGm.js";
2
+ import { m as sleep } from "./fetch-CBe8pU8Q.js";
3
3
  import { t as invariant } from "./invariant-DIYf9sP1.js";
4
- import { c as isLoggedIntoCloud } from "./accounts-DanM1wq_.js";
5
- import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-COpWcmWd.js";
4
+ import { c as isLoggedIntoCloud } from "./accounts-BAajbKSh.js";
5
+ import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-CoxtxLvB.js";
6
6
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
7
- import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-BR7XAzAL.js";
8
- import { r as materializeInputVariablesWithMetadata } from "./inputVariables-B0qUChbV.js";
9
- import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-Df8YMvS1.js";
10
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-BDrfT30-.js";
11
- import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-7pmVZLNO.js";
12
- import { n as checkExfilTracking } from "./indirectWebPwn-tNx9OZ35.js";
7
+ import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-DAnauX2V.js";
8
+ import { r as materializeInputVariablesWithMetadata } from "./inputVariables-DpOsOnzU.js";
9
+ import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-CKZReNsz.js";
10
+ import { a as assertRemoteMaterializationHandled, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-DVKqidd8.js";
11
+ import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-yBQATkD5.js";
12
+ import { n as checkExfilTracking } from "./indirectWebPwn-DRYpRTx6.js";
13
13
  import { n as renderPrompt, t as Strategies } from "./server/index.js";
14
- import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-Chi74lOD.js";
15
- import { t as applyRuntimeTransforms } from "./runtimeTransform-BJOpL9Yc.js";
14
+ import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-PLePpCmo.js";
15
+ import { t as applyRuntimeTransforms } from "./runtimeTransform-BmhEztlx.js";
16
16
  //#region src/redteam/providers/hydra/index.ts
17
17
  const DEFAULT_MAX_TURNS = 10;
18
18
  const DEFAULT_MAX_BACKTRACKS = 10;
@@ -110,11 +110,12 @@ var HydraProvider = class {
110
110
  let storedGraderResult = void 0;
111
111
  let lastTargetResponse = void 0;
112
112
  let backtrackCount = 0;
113
+ let agentFailureError;
113
114
  const redteamHistory = [];
114
115
  let lastTransformResult;
115
116
  let lastTransformDisplayVars;
116
117
  let lastFinalAttackPrompt;
117
- const { getGraderById } = await import("./graders-C0nXU_ZP.js").then((n) => n.r);
118
+ const { getGraderById } = await import("./graders-k8qmhrPu.js").then((n) => n.r);
118
119
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
119
120
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
120
121
  let previousTraceSummary;
@@ -158,6 +159,7 @@ var HydraProvider = class {
158
159
  testRunId,
159
160
  error: agentResp.error
160
161
  });
162
+ agentFailureError = agentResp.error;
161
163
  continue;
162
164
  }
163
165
  let nextMessage;
@@ -168,18 +170,31 @@ var HydraProvider = class {
168
170
  }
169
171
  if (!nextMessage) {
170
172
  logger.info("[Hydra] Missing message from agent", { turn });
173
+ agentFailureError = "Hydra agent did not return an attack message";
171
174
  continue;
172
175
  }
173
176
  let processedMessage = nextMessage;
174
177
  const extractedPrompt = extractPromptFromTags(nextMessage);
175
178
  if (extractedPrompt) processedMessage = extractedPrompt;
179
+ if (this.config.inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled(agentResp, "Hydra multi-input generation");
176
180
  const currentInputVars = extractInputVarsFromPrompt(processedMessage, this.config.inputs);
177
- const currentRenderInputVars = (currentInputVars && this.config.inputs ? await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
181
+ let materializedInputVars;
182
+ if (this.config.inputs && shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
183
+ logger.warn("[Hydra] Remote multi-input generation returned an invalid prompt format", {
184
+ turn,
185
+ messagePreview: processedMessage.slice(0, 200)
186
+ });
187
+ agentFailureError = "Hydra remote multi-input generation returned an invalid prompt format";
188
+ continue;
189
+ }
190
+ if ((currentInputVars || agentResp.materializedVars) && this.config.inputs) if (shouldGenerateRemote()) materializedInputVars = buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, this.config.inputs);
191
+ else materializedInputVars = await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
178
192
  materializationIndex: turn,
179
193
  pluginId: "hydra",
180
194
  provider: this.agentProvider,
181
195
  purpose: test?.metadata?.purpose
182
- }) : void 0)?.vars ?? currentInputVars;
196
+ });
197
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
183
198
  this.conversationHistory.push({
184
199
  role: "user",
185
200
  content: processedMessage
@@ -511,13 +526,16 @@ var HydraProvider = class {
511
526
  role: msg.role,
512
527
  content: msg.content
513
528
  }));
529
+ const targetProbeCount = totalTokenUsage.numRequests ?? 0;
530
+ const hydraRoundsCompleted = this.conversationHistory.filter((m) => m.role === "user").length;
531
+ const failClosedError = targetProbeCount === 0 ? agentFailureError || "Hydra did not execute any target probes" : void 0;
514
532
  return {
515
533
  output: lastTargetResponse?.output || "",
516
- ...lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
534
+ ...failClosedError ? { error: failClosedError } : lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
517
535
  metadata: {
518
536
  sessionId: this.sessionId || getSessionId(lastTargetResponse, context),
519
537
  messages,
520
- hydraRoundsCompleted: this.conversationHistory.filter((m) => m.role === "user").length,
538
+ hydraRoundsCompleted,
521
539
  hydraBacktrackCount: backtrackCount,
522
540
  hydraResult: vulnerabilityAchieved,
523
541
  stopReason,
@@ -538,4 +556,4 @@ var HydraProvider = class {
538
556
  //#endregion
539
557
  export { HydraProvider, HydraProvider as default };
540
558
 
541
- //# sourceMappingURL=hydra-BxdG4nkg.js.map
559
+ //# sourceMappingURL=hydra-C38LOovb.js.map
@@ -1,19 +1,19 @@
1
- import { _ as isValidJson, a as logger } from "./logger-Ct2S6Yx-.js";
1
+ import { _ as isValidJson, a as logger } from "./logger-Cs0I2v_y.js";
2
2
  import { t as invariant } from "./invariant-Ddh24eXh.js";
3
- import { l as sleep } from "./fetch-It34O8Ur.js";
4
- import { o as isLoggedIntoCloud } from "./accounts-Ca7WIoPY.js";
5
- import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-DsaSwmG2.js";
3
+ import { l as sleep } from "./fetch-CHJu2KON.js";
4
+ import { o as isLoggedIntoCloud } from "./accounts-4Xa5fcHy.js";
5
+ import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-DvWEm3yi.js";
6
6
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
7
- import { n as materializeInputVariablesWithMetadata } from "./inputVariables-DUGMb9Ka.js";
8
- import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-DNl96nNs.js";
9
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-Cm4hiy1Y.js";
10
- import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-D6IjElRI.js";
11
- import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-CxRtnaHl.js";
12
- import { n as checkExfilTracking } from "./indirectWebPwn-CbjUG0rh.js";
13
- import { n as renderPrompt } from "./evaluatorHelpers-DuqFFfq7.js";
14
- import { t as Strategies } from "./strategies-CiSeroPH.js";
15
- import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-ji2OuXbT.js";
16
- import { t as applyRuntimeTransforms } from "./runtimeTransform-DigbjU1r.js";
7
+ import { n as materializeInputVariablesWithMetadata } from "./inputVariables-B7cylqzM.js";
8
+ import { a as extractPromptFromTags, c as isBasicRefusal, o as getSessionId, r as extractInputVarsFromPrompt } from "./util-D1NKMz55.js";
9
+ import { a as assertRemoteMaterializationHandled, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-CEsoPlBa.js";
10
+ import { c as getTargetResponse, i as externalizeResponseForRedteamHistory, l as isConversationEndedResponse, o as getGraderAssertionValue, t as buildGraderResultAssertion, u as isValidChatMessageArray } from "./shared-BF25a7ms.js";
11
+ import { n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload } from "./extractor-Bjz9sdTQ.js";
12
+ import { n as checkExfilTracking } from "./indirectWebPwn-1gHqaL91.js";
13
+ import { n as renderPrompt } from "./evaluatorHelpers-C8C8WQTv.js";
14
+ import { t as Strategies } from "./strategies-4Nnr_9xt.js";
15
+ import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-WpE9IqC8.js";
16
+ import { t as applyRuntimeTransforms } from "./runtimeTransform-Bw9Tttpp.js";
17
17
  //#region src/redteam/providers/hydra/index.ts
18
18
  const DEFAULT_MAX_TURNS = 10;
19
19
  const DEFAULT_MAX_BACKTRACKS = 10;
@@ -111,11 +111,12 @@ var HydraProvider = class {
111
111
  let storedGraderResult = void 0;
112
112
  let lastTargetResponse = void 0;
113
113
  let backtrackCount = 0;
114
+ let agentFailureError;
114
115
  const redteamHistory = [];
115
116
  let lastTransformResult;
116
117
  let lastTransformDisplayVars;
117
118
  let lastFinalAttackPrompt;
118
- const { getGraderById } = await import("./graders-BX0f2tvS.js").then((n) => n.r);
119
+ const { getGraderById } = await import("./graders-GNRQ1357.js").then((n) => n.r);
119
120
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
120
121
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
121
122
  let previousTraceSummary;
@@ -159,6 +160,7 @@ var HydraProvider = class {
159
160
  testRunId,
160
161
  error: agentResp.error
161
162
  });
163
+ agentFailureError = agentResp.error;
162
164
  continue;
163
165
  }
164
166
  let nextMessage;
@@ -169,18 +171,31 @@ var HydraProvider = class {
169
171
  }
170
172
  if (!nextMessage) {
171
173
  logger.info("[Hydra] Missing message from agent", { turn });
174
+ agentFailureError = "Hydra agent did not return an attack message";
172
175
  continue;
173
176
  }
174
177
  let processedMessage = nextMessage;
175
178
  const extractedPrompt = extractPromptFromTags(nextMessage);
176
179
  if (extractedPrompt) processedMessage = extractedPrompt;
180
+ if (this.config.inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled(agentResp, "Hydra multi-input generation");
177
181
  const currentInputVars = extractInputVarsFromPrompt(processedMessage, this.config.inputs);
178
- const currentRenderInputVars = (currentInputVars && this.config.inputs ? await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
182
+ let materializedInputVars;
183
+ if (this.config.inputs && shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
184
+ logger.warn("[Hydra] Remote multi-input generation returned an invalid prompt format", {
185
+ turn,
186
+ messagePreview: processedMessage.slice(0, 200)
187
+ });
188
+ agentFailureError = "Hydra remote multi-input generation returned an invalid prompt format";
189
+ continue;
190
+ }
191
+ if ((currentInputVars || agentResp.materializedVars) && this.config.inputs) if (shouldGenerateRemote()) materializedInputVars = buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, this.config.inputs);
192
+ else materializedInputVars = await materializeInputVariablesWithMetadata(currentInputVars, this.config.inputs, {
179
193
  materializationIndex: turn,
180
194
  pluginId: "hydra",
181
195
  provider: this.agentProvider,
182
196
  purpose: test?.metadata?.purpose
183
- }) : void 0)?.vars ?? currentInputVars;
197
+ });
198
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
184
199
  this.conversationHistory.push({
185
200
  role: "user",
186
201
  content: processedMessage
@@ -512,13 +527,16 @@ var HydraProvider = class {
512
527
  role: msg.role,
513
528
  content: msg.content
514
529
  }));
530
+ const targetProbeCount = totalTokenUsage.numRequests ?? 0;
531
+ const hydraRoundsCompleted = this.conversationHistory.filter((m) => m.role === "user").length;
532
+ const failClosedError = targetProbeCount === 0 ? agentFailureError || "Hydra did not execute any target probes" : void 0;
515
533
  return {
516
534
  output: lastTargetResponse?.output || "",
517
- ...lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
535
+ ...failClosedError ? { error: failClosedError } : lastTargetResponse?.error ? { error: lastTargetResponse.error } : {},
518
536
  metadata: {
519
537
  sessionId: this.sessionId || getSessionId(lastTargetResponse, context),
520
538
  messages,
521
- hydraRoundsCompleted: this.conversationHistory.filter((m) => m.role === "user").length,
539
+ hydraRoundsCompleted,
522
540
  hydraBacktrackCount: backtrackCount,
523
541
  hydraResult: vulnerabilityAchieved,
524
542
  stopReason,
@@ -539,4 +557,4 @@ var HydraProvider = class {
539
557
  //#endregion
540
558
  export { HydraProvider, HydraProvider as default };
541
559
 
542
- //# sourceMappingURL=hydra-DE4xWwyc.js.map
560
+ //# sourceMappingURL=hydra-CXc0p63W.js.map