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,17 +1,17 @@
1
- import { a as logger, m as extractFirstJsonObject } from "./logger-Ct2S6Yx-.js";
1
+ import { a as logger, m as extractFirstJsonObject } 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 { o as getNunjucksEngine } from "./render-DFfDeYUK.js";
6
- import { l as shouldGenerateRemote } from "./remoteGeneration-DsaSwmG2.js";
3
+ import { l as sleep } from "./fetch-CHJu2KON.js";
4
+ import { o as isLoggedIntoCloud } from "./accounts-4Xa5fcHy.js";
5
+ import { o as getNunjucksEngine } from "./render-CTZQAINJ.js";
6
+ import { l as shouldGenerateRemote } from "./remoteGeneration-DvWEm3yi.js";
7
7
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
8
- import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, o as getSessionId } from "./util-DNl96nNs.js";
9
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-Cm4hiy1Y.js";
10
- import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, m as TokenUsageTracker, n as checkPenalizedPhrases, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-D6IjElRI.js";
11
- import { n as checkExfilTracking } from "./indirectWebPwn-CbjUG0rh.js";
12
- import { n as renderPrompt } from "./evaluatorHelpers-DuqFFfq7.js";
13
- import { t as Strategies } from "./strategies-CiSeroPH.js";
14
- import { t as applyRuntimeTransforms } from "./runtimeTransform-DigbjU1r.js";
8
+ import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, o as getSessionId } from "./util-D1NKMz55.js";
9
+ import { a as assertRemoteMaterializationHandled, o as buildRemoteMaterializationContextVars, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-CEsoPlBa.js";
10
+ import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, m as TokenUsageTracker, n as checkPenalizedPhrases, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-BF25a7ms.js";
11
+ import { n as checkExfilTracking } from "./indirectWebPwn-1gHqaL91.js";
12
+ import { n as renderPrompt } from "./evaluatorHelpers-C8C8WQTv.js";
13
+ import { t as Strategies } from "./strategies-4Nnr_9xt.js";
14
+ import { t as applyRuntimeTransforms } from "./runtimeTransform-Bw9Tttpp.js";
15
15
  import { n as CLOUD_ATTACKER_SYSTEM_PROMPT, r as JUDGE_SYSTEM_PROMPT, t as ATTACKER_SYSTEM_PROMPT } from "./prompts-DHhQsANy.js";
16
16
  import dedent from "dedent";
17
17
  //#region src/redteam/providers/iterativeTree.ts
@@ -155,14 +155,20 @@ async function evaluateResponse(provider, judgeSystemPrompt, targetResponse, pre
155
155
  * @param redteamHistory - The conversation history of the red team.
156
156
  * @returns A promise that resolves to an object containing the improvement and new prompt.
157
157
  */
158
- async function getNewPrompt(redteamProvider, redteamHistory) {
158
+ async function getNewPrompt(redteamProvider, redteamHistory, materializationContext) {
159
159
  const redteamBody = JSON.stringify(redteamHistory);
160
160
  const redteamResp = await redteamProvider.callApi(redteamBody, {
161
161
  prompt: {
162
162
  raw: redteamBody,
163
163
  label: "history"
164
164
  },
165
- vars: {}
165
+ vars: materializationContext ? buildRemoteMaterializationContextVars({
166
+ injectVar: void 0,
167
+ inputs: materializationContext.inputs,
168
+ materializationIndex: materializationContext.materializationIndex,
169
+ pluginId: materializationContext.pluginId,
170
+ purpose: materializationContext.purpose
171
+ }) : {}
166
172
  });
167
173
  if (redteamProvider.delay) {
168
174
  logger.debug(`[IterativeTree] Sleeping for ${redteamProvider.delay}ms`);
@@ -185,6 +191,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
185
191
  logger.info(`[IterativeTree] Failed to parse attacker response as JSON (primary and fallback). Skipping this turn. primary=${String(primaryErr)} fallback=${String(fallbackErr)} outputPreview="${redteamResp.output.slice(0, 200)}"`);
186
192
  return {
187
193
  improvement: "parse failure – skipping turn",
194
+ inputMaterialization: redteamResp.inputMaterialization,
195
+ materializationHandled: redteamResp.materializationHandled,
196
+ materializedVars: redteamResp.materializedVars,
188
197
  prompt: "",
189
198
  tokenUsage: redteamResp.tokenUsage
190
199
  };
@@ -193,6 +202,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
193
202
  else retObj = redteamResp.output;
194
203
  return {
195
204
  ...retObj,
205
+ inputMaterialization: redteamResp.inputMaterialization,
206
+ materializationHandled: redteamResp.materializationHandled,
207
+ materializedVars: redteamResp.materializedVars,
196
208
  tokenUsage: redteamResp.tokenUsage
197
209
  };
198
210
  }
@@ -231,13 +243,16 @@ function updateRedteamHistory(targetResponse, goal, score, containsPenalizedPhra
231
243
  * @param id - Optional custom UUID for the node. If not provided, a new UUID will be generated.
232
244
  * @returns A new TreeNode object.
233
245
  */
234
- function createTreeNode(prompt, score, depth, id) {
246
+ function createTreeNode(prompt, score, depth, id, options) {
235
247
  return {
236
248
  id: id || crypto.randomUUID(),
237
249
  prompt,
238
250
  score,
239
251
  children: [],
240
- depth
252
+ depth,
253
+ inputMaterialization: options?.inputMaterialization,
254
+ materializationHandled: options?.materializationHandled,
255
+ materializedVars: options?.materializedVars
241
256
  };
242
257
  }
243
258
  /**
@@ -314,10 +329,20 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
314
329
  loggerTag: "[IterativeTree]"
315
330
  });
316
331
  const iterationVars = iterationContext?.vars || {};
317
- let { improvement, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
332
+ let { improvement, inputMaterialization, materializationHandled, materializedVars, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
318
333
  role: "assistant",
319
334
  content: node.prompt
320
- }]);
335
+ }], shouldGenerateRemote() ? {
336
+ inputs,
337
+ materializationIndex: attempts,
338
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
339
+ purpose: test?.metadata?.purpose
340
+ } : void 0);
341
+ if (inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled({
342
+ inputMaterialization,
343
+ materializationHandled,
344
+ materializedVars
345
+ }, "Iterative Tree multi-input generation");
321
346
  attempts++;
322
347
  const extractedPrompt = extractPromptFromTags(newInjectVar);
323
348
  if (extractedPrompt) newInjectVar = extractedPrompt;
@@ -360,14 +385,22 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
360
385
  ...iterationVars,
361
386
  [injectVar]: finalInjectVar
362
387
  };
363
- if (inputs && Object.keys(inputs).length > 0) try {
364
- const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
388
+ if (inputs && Object.keys(inputs).length > 0) if (shouldGenerateRemote()) try {
389
+ const parsed = JSON.parse(newInjectVar);
390
+ Object.assign(updatedVars, buildRemoteMaterializedInputVariables({
391
+ inputMaterialization,
392
+ materializationHandled,
393
+ materializedVars
394
+ }, parsed, inputs).vars);
395
+ } catch {}
396
+ else try {
397
+ const { vars: localMaterializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
365
398
  materializationIndex: attempts - 1,
366
399
  pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
367
400
  provider: redteamProvider,
368
401
  purpose: test?.metadata?.purpose
369
402
  });
370
- Object.assign(updatedVars, materializedVars);
403
+ Object.assign(updatedVars, localMaterializedVars);
371
404
  } catch {}
372
405
  const targetPrompt = await renderPrompt(prompt, updatedVars, filters, targetProvider, [injectVar]);
373
406
  let targetResponse = await getTargetResponse(targetProvider, targetPrompt, iterationContext, options);
@@ -404,11 +437,18 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
404
437
  const containsPenalizedPhrase = checkPenalizedPhrases(targetResponse.output);
405
438
  const { score, explanation } = await evaluateResponse(gradingProvider, judgeSystemPrompt, targetResponse.output, bestResponse, containsPenalizedPhrase);
406
439
  logger.debug(`[Depth ${depth}, Attempt ${attempts}] Evaluation: score=${score}, penalized=${containsPenalizedPhrase}. Max score so far: ${maxScore}`);
407
- nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1));
440
+ nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1, void 0, {
441
+ inputMaterialization,
442
+ materializationHandled,
443
+ materializedVars
444
+ }));
408
445
  if (score > maxScore) {
409
446
  maxScore = score;
410
447
  bestResponse = targetResponse.output;
411
448
  bestNode.prompt = newInjectVar;
449
+ bestNode.inputMaterialization = inputMaterialization;
450
+ bestNode.materializationHandled = materializationHandled;
451
+ bestNode.materializedVars = materializedVars;
412
452
  bestFinalAttackPrompt = finalInjectVar;
413
453
  bestTransformDisplayVars = lastTransformDisplayVars;
414
454
  logger.debug(`[Depth ${depth}, Attempt ${attempts}] New max score: ${maxScore}`);
@@ -420,7 +460,7 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
420
460
  noImprovementCount++;
421
461
  if (noImprovementCount % 5 === 0) logger.debug(`[Depth ${depth}, Attempt ${attempts}] No improvement for ${noImprovementCount} consecutive iterations. Max score: ${maxScore}`);
422
462
  }
423
- const { getGraderById } = await import("./graders-BX0f2tvS.js").then((n) => n.r);
463
+ const { getGraderById } = await import("./graders-GNRQ1357.js").then((n) => n.r);
424
464
  let graderPassed;
425
465
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
426
466
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
@@ -619,13 +659,23 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
619
659
  [injectVar]: bestPrompt
620
660
  };
621
661
  if (inputs && Object.keys(inputs).length > 0) try {
622
- const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(bestPrompt), inputs, {
623
- materializationIndex: attempts,
624
- pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
625
- provider: redteamProvider,
626
- purpose: test?.metadata?.purpose
627
- });
628
- Object.assign(finalUpdatedVars, materializedVars);
662
+ const parsed = JSON.parse(bestPrompt);
663
+ if (shouldGenerateRemote()) {
664
+ const remoteBestNodeMaterialization = {
665
+ inputMaterialization: bestNode.inputMaterialization,
666
+ materializationHandled: bestNode.materializationHandled,
667
+ materializedVars: bestNode.materializedVars
668
+ };
669
+ if (remoteBestNodeMaterialization.materializationHandled) Object.assign(finalUpdatedVars, buildRemoteMaterializedInputVariables(remoteBestNodeMaterialization, parsed, inputs).vars);
670
+ } else {
671
+ const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(parsed, inputs, {
672
+ materializationIndex: attempts,
673
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
674
+ provider: redteamProvider,
675
+ purpose: test?.metadata?.purpose
676
+ });
677
+ Object.assign(finalUpdatedVars, materializedVars);
678
+ }
629
679
  } catch {}
630
680
  const finalTargetPrompt = await renderPrompt(prompt, finalUpdatedVars, filters, targetProvider, [injectVar]);
631
681
  const finalTargetResponse = await getTargetResponse(targetProvider, finalTargetPrompt, context, options);
@@ -766,4 +816,4 @@ var RedteamIterativeTreeProvider = class {
766
816
  //#endregion
767
817
  export { RedteamIterativeTreeProvider as default };
768
818
 
769
- //# sourceMappingURL=iterativeTree-B5zxBBSW.js.map
819
+ //# sourceMappingURL=iterativeTree-5TLHU9Kx.js.map
@@ -1,18 +1,18 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
2
- const require_logger = require("./logger-cfNpzI4o.cjs");
2
+ const require_logger = require("./logger-Cm0Nb8YX.cjs");
3
3
  const require_invariant = require("./invariant-QtnLD03y.cjs");
4
- const require_fetch = require("./fetch-Dw4XZHjj.cjs");
5
- const require_accounts = require("./accounts-CmWzeD2d.cjs");
6
- const require_render = require("./render-BNTrbmBw.cjs");
7
- const require_remoteGeneration = require("./remoteGeneration-DS9N3pgB.cjs");
4
+ const require_fetch = require("./fetch-B2HvaVUc.cjs");
5
+ const require_accounts = require("./accounts-DAcQXPwE.cjs");
6
+ const require_render = require("./render-DJ4yipCD.cjs");
7
+ const require_remoteGeneration = require("./remoteGeneration-CD3c_rzc.cjs");
8
8
  const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
9
- const require_util = require("./util-CN8om2rz.cjs");
10
- const require_promptfoo = require("./promptfoo-b-baRMj-.cjs");
11
- const require_shared = require("./shared-WkgnDkcg.cjs");
12
- const require_indirectWebPwn = require("./indirectWebPwn-BJ22AbQa.cjs");
13
- const require_evaluatorHelpers = require("./evaluatorHelpers-CRqTvSux.cjs");
14
- const require_strategies = require("./strategies-7CS3Alao.cjs");
15
- const require_runtimeTransform = require("./runtimeTransform-ON3YYILw.cjs");
9
+ const require_util = require("./util-3BRss2KA.cjs");
10
+ const require_promptfoo = require("./promptfoo-DAXBmrE6.cjs");
11
+ const require_shared = require("./shared-DlmtkptR.cjs");
12
+ const require_indirectWebPwn = require("./indirectWebPwn-04ziKbly.cjs");
13
+ const require_evaluatorHelpers = require("./evaluatorHelpers-2gpZ9Q_f.cjs");
14
+ const require_strategies = require("./strategies-BD7US9WB.cjs");
15
+ const require_runtimeTransform = require("./runtimeTransform-DJEknTZQ.cjs");
16
16
  const require_prompts = require("./prompts-hNvWBD3z.cjs");
17
17
  let dedent = require("dedent");
18
18
  dedent = require_rolldown_runtime.__toESM(dedent, 1);
@@ -157,14 +157,20 @@ async function evaluateResponse(provider, judgeSystemPrompt, targetResponse, pre
157
157
  * @param redteamHistory - The conversation history of the red team.
158
158
  * @returns A promise that resolves to an object containing the improvement and new prompt.
159
159
  */
160
- async function getNewPrompt(redteamProvider, redteamHistory) {
160
+ async function getNewPrompt(redteamProvider, redteamHistory, materializationContext) {
161
161
  const redteamBody = JSON.stringify(redteamHistory);
162
162
  const redteamResp = await redteamProvider.callApi(redteamBody, {
163
163
  prompt: {
164
164
  raw: redteamBody,
165
165
  label: "history"
166
166
  },
167
- vars: {}
167
+ vars: materializationContext ? require_promptfoo.buildRemoteMaterializationContextVars({
168
+ injectVar: void 0,
169
+ inputs: materializationContext.inputs,
170
+ materializationIndex: materializationContext.materializationIndex,
171
+ pluginId: materializationContext.pluginId,
172
+ purpose: materializationContext.purpose
173
+ }) : {}
168
174
  });
169
175
  if (redteamProvider.delay) {
170
176
  require_logger.logger.debug(`[IterativeTree] Sleeping for ${redteamProvider.delay}ms`);
@@ -187,6 +193,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
187
193
  require_logger.logger.info(`[IterativeTree] Failed to parse attacker response as JSON (primary and fallback). Skipping this turn. primary=${String(primaryErr)} fallback=${String(fallbackErr)} outputPreview="${redteamResp.output.slice(0, 200)}"`);
188
194
  return {
189
195
  improvement: "parse failure – skipping turn",
196
+ inputMaterialization: redteamResp.inputMaterialization,
197
+ materializationHandled: redteamResp.materializationHandled,
198
+ materializedVars: redteamResp.materializedVars,
190
199
  prompt: "",
191
200
  tokenUsage: redteamResp.tokenUsage
192
201
  };
@@ -195,6 +204,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
195
204
  else retObj = redteamResp.output;
196
205
  return {
197
206
  ...retObj,
207
+ inputMaterialization: redteamResp.inputMaterialization,
208
+ materializationHandled: redteamResp.materializationHandled,
209
+ materializedVars: redteamResp.materializedVars,
198
210
  tokenUsage: redteamResp.tokenUsage
199
211
  };
200
212
  }
@@ -233,13 +245,16 @@ function updateRedteamHistory(targetResponse, goal, score, containsPenalizedPhra
233
245
  * @param id - Optional custom UUID for the node. If not provided, a new UUID will be generated.
234
246
  * @returns A new TreeNode object.
235
247
  */
236
- function createTreeNode(prompt, score, depth, id) {
248
+ function createTreeNode(prompt, score, depth, id, options) {
237
249
  return {
238
250
  id: id || crypto.randomUUID(),
239
251
  prompt,
240
252
  score,
241
253
  children: [],
242
- depth
254
+ depth,
255
+ inputMaterialization: options?.inputMaterialization,
256
+ materializationHandled: options?.materializationHandled,
257
+ materializedVars: options?.materializedVars
243
258
  };
244
259
  }
245
260
  /**
@@ -316,10 +331,20 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
316
331
  loggerTag: "[IterativeTree]"
317
332
  });
318
333
  const iterationVars = iterationContext?.vars || {};
319
- let { improvement, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
334
+ let { improvement, inputMaterialization, materializationHandled, materializedVars, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
320
335
  role: "assistant",
321
336
  content: node.prompt
322
- }]);
337
+ }], require_remoteGeneration.shouldGenerateRemote() ? {
338
+ inputs,
339
+ materializationIndex: attempts,
340
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
341
+ purpose: test?.metadata?.purpose
342
+ } : void 0);
343
+ if (inputs && require_remoteGeneration.shouldGenerateRemote()) require_promptfoo.assertRemoteMaterializationHandled({
344
+ inputMaterialization,
345
+ materializationHandled,
346
+ materializedVars
347
+ }, "Iterative Tree multi-input generation");
323
348
  attempts++;
324
349
  const extractedPrompt = require_util.extractPromptFromTags(newInjectVar);
325
350
  if (extractedPrompt) newInjectVar = extractedPrompt;
@@ -362,14 +387,22 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
362
387
  ...iterationVars,
363
388
  [injectVar]: finalInjectVar
364
389
  };
365
- if (inputs && Object.keys(inputs).length > 0) try {
366
- const { vars: materializedVars } = await require_util.extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
390
+ if (inputs && Object.keys(inputs).length > 0) if (require_remoteGeneration.shouldGenerateRemote()) try {
391
+ const parsed = JSON.parse(newInjectVar);
392
+ Object.assign(updatedVars, require_promptfoo.buildRemoteMaterializedInputVariables({
393
+ inputMaterialization,
394
+ materializationHandled,
395
+ materializedVars
396
+ }, parsed, inputs).vars);
397
+ } catch {}
398
+ else try {
399
+ const { vars: localMaterializedVars } = await require_util.extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
367
400
  materializationIndex: attempts - 1,
368
401
  pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
369
402
  provider: redteamProvider,
370
403
  purpose: test?.metadata?.purpose
371
404
  });
372
- Object.assign(updatedVars, materializedVars);
405
+ Object.assign(updatedVars, localMaterializedVars);
373
406
  } catch {}
374
407
  const targetPrompt = await require_evaluatorHelpers.renderPrompt(prompt, updatedVars, filters, targetProvider, [injectVar]);
375
408
  let targetResponse = await require_shared.getTargetResponse(targetProvider, targetPrompt, iterationContext, options);
@@ -406,11 +439,18 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
406
439
  const containsPenalizedPhrase = require_shared.checkPenalizedPhrases(targetResponse.output);
407
440
  const { score, explanation } = await evaluateResponse(gradingProvider, judgeSystemPrompt, targetResponse.output, bestResponse, containsPenalizedPhrase);
408
441
  require_logger.logger.debug(`[Depth ${depth}, Attempt ${attempts}] Evaluation: score=${score}, penalized=${containsPenalizedPhrase}. Max score so far: ${maxScore}`);
409
- nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1));
442
+ nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1, void 0, {
443
+ inputMaterialization,
444
+ materializationHandled,
445
+ materializedVars
446
+ }));
410
447
  if (score > maxScore) {
411
448
  maxScore = score;
412
449
  bestResponse = targetResponse.output;
413
450
  bestNode.prompt = newInjectVar;
451
+ bestNode.inputMaterialization = inputMaterialization;
452
+ bestNode.materializationHandled = materializationHandled;
453
+ bestNode.materializedVars = materializedVars;
414
454
  bestFinalAttackPrompt = finalInjectVar;
415
455
  bestTransformDisplayVars = lastTransformDisplayVars;
416
456
  require_logger.logger.debug(`[Depth ${depth}, Attempt ${attempts}] New max score: ${maxScore}`);
@@ -422,7 +462,7 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
422
462
  noImprovementCount++;
423
463
  if (noImprovementCount % 5 === 0) require_logger.logger.debug(`[Depth ${depth}, Attempt ${attempts}] No improvement for ${noImprovementCount} consecutive iterations. Max score: ${maxScore}`);
424
464
  }
425
- const { getGraderById } = await Promise.resolve().then(() => require("./graders-ClrU2fnd.cjs")).then((n) => n.graders_exports);
465
+ const { getGraderById } = await Promise.resolve().then(() => require("./graders-CQv1GT5Q.cjs")).then((n) => n.graders_exports);
426
466
  let graderPassed;
427
467
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
428
468
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
@@ -621,13 +661,23 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
621
661
  [injectVar]: bestPrompt
622
662
  };
623
663
  if (inputs && Object.keys(inputs).length > 0) try {
624
- const { vars: materializedVars } = await require_util.extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(bestPrompt), inputs, {
625
- materializationIndex: attempts,
626
- pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
627
- provider: redteamProvider,
628
- purpose: test?.metadata?.purpose
629
- });
630
- Object.assign(finalUpdatedVars, materializedVars);
664
+ const parsed = JSON.parse(bestPrompt);
665
+ if (require_remoteGeneration.shouldGenerateRemote()) {
666
+ const remoteBestNodeMaterialization = {
667
+ inputMaterialization: bestNode.inputMaterialization,
668
+ materializationHandled: bestNode.materializationHandled,
669
+ materializedVars: bestNode.materializedVars
670
+ };
671
+ if (remoteBestNodeMaterialization.materializationHandled) Object.assign(finalUpdatedVars, require_promptfoo.buildRemoteMaterializedInputVariables(remoteBestNodeMaterialization, parsed, inputs).vars);
672
+ } else {
673
+ const { vars: materializedVars } = await require_util.extractMaterializedVariablesFromJsonWithMetadata(parsed, inputs, {
674
+ materializationIndex: attempts,
675
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
676
+ provider: redteamProvider,
677
+ purpose: test?.metadata?.purpose
678
+ });
679
+ Object.assign(finalUpdatedVars, materializedVars);
680
+ }
631
681
  } catch {}
632
682
  const finalTargetPrompt = await require_evaluatorHelpers.renderPrompt(prompt, finalUpdatedVars, filters, targetProvider, [injectVar]);
633
683
  const finalTargetResponse = await require_shared.getTargetResponse(targetProvider, finalTargetPrompt, context, options);
@@ -768,4 +818,4 @@ var RedteamIterativeTreeProvider = class {
768
818
  //#endregion
769
819
  exports.default = RedteamIterativeTreeProvider;
770
820
 
771
- //# sourceMappingURL=iterativeTree-CPMF10ve.cjs.map
821
+ //# sourceMappingURL=iterativeTree-7XyY_zdo.cjs.map
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
- import { g as extractFirstJsonObject, s as logger } from "./logger-BbY6ypFL.js";
3
- import { f as sleep } from "./fetch-DXUnXkVU.js";
2
+ import { g as extractFirstJsonObject, s as logger } 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 { o as getNunjucksEngine } from "./render-CSP99NLm.js";
7
- import { l as shouldGenerateRemote } from "./remoteGeneration-B1_XsKXU.js";
5
+ import { c as isLoggedIntoCloud } from "./accounts-Bw2qPqE-.js";
6
+ import { o as getNunjucksEngine } from "./render-jE6RKVgk.js";
7
+ import { l as shouldGenerateRemote } from "./remoteGeneration-DW6mPZnO.js";
8
8
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
9
- import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, o as getSessionId } from "./util-kDURhgJW.js";
10
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-Rjp-MeBb.js";
11
- import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, m as TokenUsageTracker, n as checkPenalizedPhrases, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-9WHQ1oNE.js";
12
- import { n as checkExfilTracking } from "./indirectWebPwn-uyWdHx04.js";
13
- import { n as renderPrompt } from "./evaluatorHelpers-BsYP_muT.js";
14
- import { t as Strategies } from "./strategies-DRJjGTIY.js";
15
- import { t as applyRuntimeTransforms } from "./runtimeTransform-Dgh_D7DU.js";
9
+ import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, o as getSessionId } from "./util-D9grslJP.js";
10
+ import { a as assertRemoteMaterializationHandled, o as buildRemoteMaterializationContextVars, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-wxe28-q9.js";
11
+ import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, m as TokenUsageTracker, n as checkPenalizedPhrases, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-DsbObxvy.js";
12
+ import { n as checkExfilTracking } from "./indirectWebPwn-BXUoJl4I.js";
13
+ import { n as renderPrompt } from "./evaluatorHelpers-DDG44JeI.js";
14
+ import { t as Strategies } from "./strategies-Ptz_P4P4.js";
15
+ import { t as applyRuntimeTransforms } from "./runtimeTransform-s14J7yxm.js";
16
16
  import { n as CLOUD_ATTACKER_SYSTEM_PROMPT, r as JUDGE_SYSTEM_PROMPT, t as ATTACKER_SYSTEM_PROMPT } from "./prompts-C-bqE1Yp.js";
17
17
  import dedent from "dedent";
18
18
  //#region src/redteam/providers/iterativeTree.ts
@@ -156,14 +156,20 @@ async function evaluateResponse(provider, judgeSystemPrompt, targetResponse, pre
156
156
  * @param redteamHistory - The conversation history of the red team.
157
157
  * @returns A promise that resolves to an object containing the improvement and new prompt.
158
158
  */
159
- async function getNewPrompt(redteamProvider, redteamHistory) {
159
+ async function getNewPrompt(redteamProvider, redteamHistory, materializationContext) {
160
160
  const redteamBody = JSON.stringify(redteamHistory);
161
161
  const redteamResp = await redteamProvider.callApi(redteamBody, {
162
162
  prompt: {
163
163
  raw: redteamBody,
164
164
  label: "history"
165
165
  },
166
- vars: {}
166
+ vars: materializationContext ? buildRemoteMaterializationContextVars({
167
+ injectVar: void 0,
168
+ inputs: materializationContext.inputs,
169
+ materializationIndex: materializationContext.materializationIndex,
170
+ pluginId: materializationContext.pluginId,
171
+ purpose: materializationContext.purpose
172
+ }) : {}
167
173
  });
168
174
  if (redteamProvider.delay) {
169
175
  logger.debug(`[IterativeTree] Sleeping for ${redteamProvider.delay}ms`);
@@ -186,6 +192,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
186
192
  logger.info(`[IterativeTree] Failed to parse attacker response as JSON (primary and fallback). Skipping this turn. primary=${String(primaryErr)} fallback=${String(fallbackErr)} outputPreview="${redteamResp.output.slice(0, 200)}"`);
187
193
  return {
188
194
  improvement: "parse failure – skipping turn",
195
+ inputMaterialization: redteamResp.inputMaterialization,
196
+ materializationHandled: redteamResp.materializationHandled,
197
+ materializedVars: redteamResp.materializedVars,
189
198
  prompt: "",
190
199
  tokenUsage: redteamResp.tokenUsage
191
200
  };
@@ -194,6 +203,9 @@ async function getNewPrompt(redteamProvider, redteamHistory) {
194
203
  else retObj = redteamResp.output;
195
204
  return {
196
205
  ...retObj,
206
+ inputMaterialization: redteamResp.inputMaterialization,
207
+ materializationHandled: redteamResp.materializationHandled,
208
+ materializedVars: redteamResp.materializedVars,
197
209
  tokenUsage: redteamResp.tokenUsage
198
210
  };
199
211
  }
@@ -232,13 +244,16 @@ function updateRedteamHistory(targetResponse, goal, score, containsPenalizedPhra
232
244
  * @param id - Optional custom UUID for the node. If not provided, a new UUID will be generated.
233
245
  * @returns A new TreeNode object.
234
246
  */
235
- function createTreeNode(prompt, score, depth, id) {
247
+ function createTreeNode(prompt, score, depth, id, options) {
236
248
  return {
237
249
  id: id || crypto.randomUUID(),
238
250
  prompt,
239
251
  score,
240
252
  children: [],
241
- depth
253
+ depth,
254
+ inputMaterialization: options?.inputMaterialization,
255
+ materializationHandled: options?.materializationHandled,
256
+ materializedVars: options?.materializedVars
242
257
  };
243
258
  }
244
259
  /**
@@ -315,10 +330,20 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
315
330
  loggerTag: "[IterativeTree]"
316
331
  });
317
332
  const iterationVars = iterationContext?.vars || {};
318
- let { improvement, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
333
+ let { improvement, inputMaterialization, materializationHandled, materializedVars, prompt: newInjectVar } = await getNewPrompt(redteamProvider, [...redteamHistory, {
319
334
  role: "assistant",
320
335
  content: node.prompt
321
- }]);
336
+ }], shouldGenerateRemote() ? {
337
+ inputs,
338
+ materializationIndex: attempts,
339
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
340
+ purpose: test?.metadata?.purpose
341
+ } : void 0);
342
+ if (inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled({
343
+ inputMaterialization,
344
+ materializationHandled,
345
+ materializedVars
346
+ }, "Iterative Tree multi-input generation");
322
347
  attempts++;
323
348
  const extractedPrompt = extractPromptFromTags(newInjectVar);
324
349
  if (extractedPrompt) newInjectVar = extractedPrompt;
@@ -361,14 +386,22 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
361
386
  ...iterationVars,
362
387
  [injectVar]: finalInjectVar
363
388
  };
364
- if (inputs && Object.keys(inputs).length > 0) try {
365
- const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
389
+ if (inputs && Object.keys(inputs).length > 0) if (shouldGenerateRemote()) try {
390
+ const parsed = JSON.parse(newInjectVar);
391
+ Object.assign(updatedVars, buildRemoteMaterializedInputVariables({
392
+ inputMaterialization,
393
+ materializationHandled,
394
+ materializedVars
395
+ }, parsed, inputs).vars);
396
+ } catch {}
397
+ else try {
398
+ const { vars: localMaterializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(newInjectVar), inputs, {
366
399
  materializationIndex: attempts - 1,
367
400
  pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
368
401
  provider: redteamProvider,
369
402
  purpose: test?.metadata?.purpose
370
403
  });
371
- Object.assign(updatedVars, materializedVars);
404
+ Object.assign(updatedVars, localMaterializedVars);
372
405
  } catch {}
373
406
  const targetPrompt = await renderPrompt(prompt, updatedVars, filters, targetProvider, [injectVar]);
374
407
  let targetResponse = await getTargetResponse(targetProvider, targetPrompt, iterationContext, options);
@@ -405,11 +438,18 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
405
438
  const containsPenalizedPhrase = checkPenalizedPhrases(targetResponse.output);
406
439
  const { score, explanation } = await evaluateResponse(gradingProvider, judgeSystemPrompt, targetResponse.output, bestResponse, containsPenalizedPhrase);
407
440
  logger.debug(`[Depth ${depth}, Attempt ${attempts}] Evaluation: score=${score}, penalized=${containsPenalizedPhrase}. Max score so far: ${maxScore}`);
408
- nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1));
441
+ nextLevelNodes.push(createTreeNode(newInjectVar, score, depth + 1, void 0, {
442
+ inputMaterialization,
443
+ materializationHandled,
444
+ materializedVars
445
+ }));
409
446
  if (score > maxScore) {
410
447
  maxScore = score;
411
448
  bestResponse = targetResponse.output;
412
449
  bestNode.prompt = newInjectVar;
450
+ bestNode.inputMaterialization = inputMaterialization;
451
+ bestNode.materializationHandled = materializationHandled;
452
+ bestNode.materializedVars = materializedVars;
413
453
  bestFinalAttackPrompt = finalInjectVar;
414
454
  bestTransformDisplayVars = lastTransformDisplayVars;
415
455
  logger.debug(`[Depth ${depth}, Attempt ${attempts}] New max score: ${maxScore}`);
@@ -421,7 +461,7 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
421
461
  noImprovementCount++;
422
462
  if (noImprovementCount % 5 === 0) logger.debug(`[Depth ${depth}, Attempt ${attempts}] No improvement for ${noImprovementCount} consecutive iterations. Max score: ${maxScore}`);
423
463
  }
424
- const { getGraderById } = await import("./graders-BDT7dif6.js");
464
+ const { getGraderById } = await import("./graders-D4vc1PFi.js");
425
465
  let graderPassed;
426
466
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
427
467
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
@@ -620,13 +660,23 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
620
660
  [injectVar]: bestPrompt
621
661
  };
622
662
  if (inputs && Object.keys(inputs).length > 0) try {
623
- const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(bestPrompt), inputs, {
624
- materializationIndex: attempts,
625
- pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
626
- provider: redteamProvider,
627
- purpose: test?.metadata?.purpose
628
- });
629
- Object.assign(finalUpdatedVars, materializedVars);
663
+ const parsed = JSON.parse(bestPrompt);
664
+ if (shouldGenerateRemote()) {
665
+ const remoteBestNodeMaterialization = {
666
+ inputMaterialization: bestNode.inputMaterialization,
667
+ materializationHandled: bestNode.materializationHandled,
668
+ materializedVars: bestNode.materializedVars
669
+ };
670
+ if (remoteBestNodeMaterialization.materializationHandled) Object.assign(finalUpdatedVars, buildRemoteMaterializedInputVariables(remoteBestNodeMaterialization, parsed, inputs).vars);
671
+ } else {
672
+ const { vars: materializedVars } = await extractMaterializedVariablesFromJsonWithMetadata(parsed, inputs, {
673
+ materializationIndex: attempts,
674
+ pluginId: String(test?.metadata?.pluginId || "unknown-plugin"),
675
+ provider: redteamProvider,
676
+ purpose: test?.metadata?.purpose
677
+ });
678
+ Object.assign(finalUpdatedVars, materializedVars);
679
+ }
630
680
  } catch {}
631
681
  const finalTargetPrompt = await renderPrompt(prompt, finalUpdatedVars, filters, targetProvider, [injectVar]);
632
682
  const finalTargetResponse = await getTargetResponse(targetProvider, finalTargetPrompt, context, options);
@@ -767,4 +817,4 @@ var RedteamIterativeTreeProvider = class {
767
817
  //#endregion
768
818
  export { RedteamIterativeTreeProvider as default };
769
819
 
770
- //# sourceMappingURL=iterativeTree-DvZ7GBwt.js.map
820
+ //# sourceMappingURL=iterativeTree-CnHx_kPu.js.map