promptfoo 0.121.7 → 0.121.8

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 (313) hide show
  1. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-BVz5gHLK.cjs} +4 -4
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BWjqwsrf.js} +4 -4
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-D6IBfEE0.js} +5 -5
  4. package/dist/src/{accounts-Ca7WIoPY.js → accounts-DAv_0iE7.js} +4 -4
  5. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-BJKAkz2e.js} +2 -2
  6. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C-A92xhn.cjs} +2 -2
  7. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-DmoS_S4B.js} +2 -2
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-GdToujHu.js} +2 -2
  9. package/dist/src/{agents-CBgJvRkB.js → agents-2C8NN6I1.js} +4 -4
  10. package/dist/src/{agents-CYn2n3QP.js → agents-BMAiSR2o.js} +2 -2
  11. package/dist/src/{agents-LrHuQqr1.js → agents-C-PGaxwj.js} +4 -4
  12. package/dist/src/{agents-D-vDNFx4.js → agents-C98cz5pl.js} +4 -4
  13. package/dist/src/{agents-B4sRuXg3.cjs → agents-DB8Ub2Ld.cjs} +2 -2
  14. package/dist/src/{agents-B8q7h_ek.js → agents-Dwshy2H8.js} +2 -2
  15. package/dist/src/{agents-QGg76OF-.js → agents-mlKjx-cK.js} +2 -2
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-n2ej-c4H.cjs} +4 -4
  17. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-Bi-laUlp.js} +6 -6
  18. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-D0OFV4Vj.cjs} +6 -6
  19. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-WyUK0wYy.js} +6 -6
  20. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-v-63ZjEI.js} +6 -6
  21. package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
  22. package/dist/src/app/assets/{index-BnT6P6sF.js → index-BopgkZEh.js} +2 -2
  23. package/dist/src/app/index.html +1 -1
  24. package/dist/src/{audio-DyiebVB3.js → audio-DnEIHWZR.js} +3 -3
  25. package/dist/src/{audio-BqnRvcWG.js → audio-heR0mu0n.js} +3 -3
  26. package/dist/src/{audio-CPMtV1yR.js → audio-wafFO1wn.js} +3 -3
  27. package/dist/src/{audio-FnxbEnSE.cjs → audio-x44tsxIo.cjs} +3 -3
  28. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-2G3Be6oL.cjs} +6 -6
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-81PPynHR.js} +6 -6
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-D9O70HPi.js} +6 -6
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-PxSf3Rh8.js} +5 -5
  32. package/dist/src/{base-E9I8zXjz.js → base-0Gzzue9Z.js} +2 -2
  33. package/dist/src/{base-Co80MMCi.js → base-Bp4c52YZ.js} +2 -2
  34. package/dist/src/{base-CKLo890h.js → base-BuNn-YBX.js} +2 -2
  35. package/dist/src/{base-DGJW48uz.cjs → base-BzdS8tod.cjs} +2 -2
  36. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-BHiOjeaq.js} +7 -7
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CdkNPPbX.js} +6 -6
  38. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-ClUSOhN0.js} +7 -7
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DWwXEg1h.cjs} +7 -7
  40. package/dist/src/cache-BKYi3kAA.js +3 -0
  41. package/dist/src/{cache-DpPWrkTE.js → cache-BR77mdIR.js} +3 -3
  42. package/dist/src/{cache-roFAE0cI.js → cache-CrioYnaa.js} +2 -2
  43. package/dist/src/{cache-DIXbtkNO.js → cache-DdriHsNX.js} +2 -2
  44. package/dist/src/{cache-CPGUA4Yl.cjs → cache-h5MWOBZI.cjs} +2 -2
  45. package/dist/src/{chat-Dabu84Br.js → chat-BBEnnpQk.js} +6 -6
  46. package/dist/src/{chat-CUCorGiL.js → chat-BSos6PvZ.js} +6 -6
  47. package/dist/src/{chat-TP8Qifkh.js → chat-Bnt7ieO0.js} +2 -2
  48. package/dist/src/{chat-DxTDQ83C.cjs → chat-DSyYuTYT.cjs} +6 -6
  49. package/dist/src/{chat-DqUFcWI0.js → chat-DTdf-J5Q.js} +6 -6
  50. package/dist/src/{chat-DG1wG4w0.cjs → chat-Dq3DomYU.cjs} +2 -2
  51. package/dist/src/{chat-GmlolEwo.js → chat-g5QLeLOo.js} +2 -2
  52. package/dist/src/{chat-iwaM5UTQ.js → chat-mTTuUAYb.js} +2 -2
  53. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-BGUac_kS.js} +7 -5
  54. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BP__YGfK.js} +7 -5
  55. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-Ddgx5BIQ.js} +7 -5
  56. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-n2XcEclh.cjs} +7 -5
  57. package/dist/src/cloud-DiWbUiVP.js +3 -0
  58. package/dist/src/{cloud-D3DiFqH6.js → cloud-DqF5N1aJ.js} +2 -2
  59. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-BGamMotN.js} +4 -4
  60. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-BwW8W-w7.js} +4 -4
  61. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DCRGnsyL.cjs} +4 -4
  62. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-sD26nP6V.js} +4 -4
  63. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
  64. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
  65. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-CCC1DFrC.cjs} +3 -3
  66. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-DOghiU6r.js} +3 -3
  67. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BWeWamEb.js} +17 -2
  68. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-DyQB1P0p.js} +17 -2
  69. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-R9u_G7W9.cjs} +17 -2
  70. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-ZQRJSJjU.js} +17 -2
  71. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-B62H0fe7.js} +14 -3
  72. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-BRPUvJG8.cjs} +14 -3
  73. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-Dio1zJBS.js} +14 -3
  74. package/dist/src/codex-sdk-DxukZs_K.js +3 -0
  75. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-iEmW1eS2.js} +14 -3
  76. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi--hh7dESS.js} +7 -7
  77. package/dist/src/{cometapi-OBILPLlu.js → cometapi-C7yWNGqt.js} +7 -7
  78. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CSIi16a0.js} +7 -7
  79. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-sZgBZtbU.cjs} +7 -7
  80. package/dist/src/{completion-CSYfl2cd.cjs → completion-CWtqdn3z.cjs} +4 -4
  81. package/dist/src/{completion-CO2e1_62.js → completion-DT8cxo9T.js} +4 -4
  82. package/dist/src/{completion-DZNxcyfG.js → completion-DUScduXp.js} +4 -4
  83. package/dist/src/{completion-sNvCLTAP.js → completion-D_2IOAoS.js} +4 -4
  84. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B41TwUHM.js} +39 -18
  85. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-Bfic7KC4.js} +41 -20
  86. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-DXFB7rHP.cjs} +41 -20
  87. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-DvvYxMLA.js} +41 -20
  88. package/dist/src/{custom-BJfP00Bh.js → custom-BdzuqFTN.js} +10 -10
  89. package/dist/src/{custom-notggYVl.js → custom-Cf5Q6r-P.js} +8 -8
  90. package/dist/src/{custom-CZVn-1-r.js → custom-DLgufezC.js} +10 -10
  91. package/dist/src/{custom-Cqia7M0D.cjs → custom-LEXHCRe3.cjs} +10 -10
  92. package/dist/src/{docker-4D1eL6Gq.js → docker-BOSO_6hK.js} +5 -5
  93. package/dist/src/{docker-D06JUoe2.cjs → docker-D0h2vFrc.cjs} +5 -5
  94. package/dist/src/{docker-DdJQBxK9.js → docker-D2TWGyTP.js} +5 -5
  95. package/dist/src/{docker-BBv1WUDu.js → docker-Vj_4_cPg.js} +5 -5
  96. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BQIApR18.cjs} +4 -4
  97. package/dist/src/{embedding-Bi3rxrZF.js → embedding-CStK0TV6.js} +4 -4
  98. package/dist/src/{embedding--UZVe4_7.js → embedding-CU78FMnw.js} +4 -4
  99. package/dist/src/{embedding-C251p1-8.js → embedding-CV8lmCnU.js} +4 -4
  100. package/dist/src/{eval-0VRANImH.js → eval-B3BaNBbO.js} +4 -4
  101. package/dist/src/{eval-DscR5iOM.js → eval-DfR9885C.js} +1 -1
  102. package/dist/src/evalResult-BtZSUgQv.js +3 -0
  103. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-CcSqNl_Y.js} +3 -3
  104. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-DHXs-9TL.cjs} +3 -3
  105. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-PGqEbasb.js} +3 -3
  106. package/dist/src/evaluator-B9LGbKI8.js +3 -0
  107. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-n_dEb00o.js} +20 -20
  108. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-CrRObe2z.js} +4 -4
  109. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-D06I9WFL.cjs} +4 -4
  110. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-D1_kwvyp.js} +4 -4
  111. package/dist/src/{extractor-CIW3iN-b.js → extractor-BVkZtk4R.js} +4 -4
  112. package/dist/src/{extractor-CxRtnaHl.js → extractor-D3Fv_Tdh.js} +4 -4
  113. package/dist/src/{extractor-BR7XAzAL.js → extractor-Jp53vs-6.js} +4 -4
  114. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-bV_NOoaz.cjs} +4 -4
  115. package/dist/src/{fetch-BufrQtvR.js → fetch-BSSAcMxf.js} +2 -2
  116. package/dist/src/fetch-BodQTrMU.js +3 -0
  117. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-Cfm4EuOB.cjs} +2 -2
  118. package/dist/src/{fetch-DXUnXkVU.js → fetch-Cpf1U1nO.js} +3 -3
  119. package/dist/src/{fetch-It34O8Ur.js → fetch-Doks14zQ.js} +2 -2
  120. package/dist/src/{goat-Qgurm-NP.js → goat-Ba7Gznzq.js} +18 -17
  121. package/dist/src/{goat-Ckd3q3AY.js → goat-CJngS-WU.js} +18 -17
  122. package/dist/src/{goat-ghadEDdy.js → goat-CwsbfQeu.js} +16 -15
  123. package/dist/src/{goat-una6pZGP.cjs → goat-DOMbozoX.cjs} +18 -17
  124. package/dist/src/graders-B3D7kCcD.js +3 -0
  125. package/dist/src/{graders-BGP99PdK.js → graders-BQt1BaQe.js} +18 -18
  126. package/dist/src/{graders-ClrU2fnd.cjs → graders-CBQ2s6gz.cjs} +18 -18
  127. package/dist/src/{graders-C0nXU_ZP.js → graders-DaRU98zs.js} +18 -18
  128. package/dist/src/{graders-BX0f2tvS.js → graders-KXzjnIim.js} +18 -18
  129. package/dist/src/{hydra-DE4xWwyc.js → hydra-BU6GjYoQ.js} +35 -17
  130. package/dist/src/{hydra-BxdG4nkg.js → hydra-BmXHxlyl.js} +33 -15
  131. package/dist/src/{hydra-BSNZZm2M.js → hydra-CR0KyYDb.js} +35 -17
  132. package/dist/src/{hydra-DrJttnvw.cjs → hydra-RO9jBks7.cjs} +35 -17
  133. package/dist/src/{image-B_fPIwdg.js → image-BBmZdKO3.js} +3 -3
  134. package/dist/src/{image-QzmydkiG.js → image-B_PFG7IG.js} +3 -3
  135. package/dist/src/{image-BvUAW344.js → image-BtODOZjh.js} +4 -4
  136. package/dist/src/{image-Cvjwx1uY.js → image-CYuNJIqd.js} +4 -4
  137. package/dist/src/{image-DfVCGPbI.cjs → image-E00WFZkq.cjs} +3 -3
  138. package/dist/src/{image-X0oY4350.cjs → image-HK2Cfqb1.cjs} +4 -4
  139. package/dist/src/{image-BN-hjLL9.js → image-LGj8dTcr.js} +3 -3
  140. package/dist/src/{image-B4oBtu6J.js → image-YMKejC0r.js} +4 -4
  141. package/dist/src/index.cjs +112 -115
  142. package/dist/src/index.d.cts +13 -0
  143. package/dist/src/index.d.ts +13 -0
  144. package/dist/src/index.js +113 -116
  145. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B80dLlFC.js} +5 -5
  146. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BMTXXznx.js} +4 -4
  147. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-BZFPV7Q9.js} +4 -4
  148. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-BaEQEOIO.cjs} +5 -5
  149. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BzpyMnFS.js} +5 -5
  150. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-CiWB-vVH.js} +4 -4
  151. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-D7NA9Nsv.cjs} +4 -4
  152. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-o_bEFMjP.js} +5 -5
  153. package/dist/src/{iterative-DJQEQpG3.js → iterative-B-l0syBV.js} +25 -15
  154. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-BACUeCCz.cjs} +25 -15
  155. package/dist/src/{iterative-FTS4Bz67.js → iterative-CVwoExo8.js} +25 -15
  156. package/dist/src/{iterative-CpU6i2As.js → iterative-QDrGSyss.js} +23 -13
  157. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-BQg2OwA6.js} +3 -3
  158. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-Bwn0fM75.js} +4 -4
  159. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-CcgVyASo.cjs} +4 -4
  160. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-D_UbQXg4.js} +4 -4
  161. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-CIu-CHRS.js} +36 -16
  162. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-CN8CNjFA.js} +36 -16
  163. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-DN6BTjpq.js} +34 -14
  164. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-DlqY3BsS.cjs} +36 -16
  165. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CJ8a8G9T.js} +78 -28
  166. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-DcuFXnjL.js} +78 -28
  167. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-FrDDYAN0.js} +76 -26
  168. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-LOgAi0nU.cjs} +78 -28
  169. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-CdbcGBZF.cjs} +4 -4
  170. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-CjOXp6Lr.js} +4 -4
  171. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-DxAq4n4z.js} +4 -4
  172. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-o_wTLzrt.js} +4 -4
  173. package/dist/src/{litellm-BKBo0jpC.js → litellm-B2gHwya_.js} +4 -4
  174. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-CPpdlO7n.cjs} +4 -4
  175. package/dist/src/{litellm-BXyn5kZK.js → litellm-CYfgxLrM.js} +4 -4
  176. package/dist/src/{litellm-CNcfbCfa.js → litellm-ojWBKU3C.js} +4 -4
  177. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCCO9XXG.cjs} +3 -3
  178. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-BPrdihAb.js} +3 -3
  179. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-DP5N79lB.js} +3 -3
  180. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DTDyoAlM.js} +3 -3
  181. package/dist/src/main.js +116 -119
  182. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-B6N3us35.cjs} +6 -6
  183. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-Bc_BK_k2.js} +6 -6
  184. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D375zwSX.js} +6 -6
  185. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-DJA0YjJT.js} +6 -6
  186. package/dist/src/{messages-BabO-cX8.js → messages-Bg29Nbit.js} +7 -7
  187. package/dist/src/{messages-DBPir0TQ.cjs → messages-BrZEnHsV.cjs} +7 -7
  188. package/dist/src/{messages-vsE_-Lv0.js → messages-CBulRaud.js} +7 -7
  189. package/dist/src/{messages-DGUlSNU7.js → messages-K9A8RxBM.js} +7 -7
  190. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-BDLwSGN0.js} +5 -5
  191. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-Blx-OtT3.js} +5 -5
  192. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CHuTTvBg.js} +5 -5
  193. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-CSUrH3fq.cjs} +5 -5
  194. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-BjEk7yCP.js} +4 -4
  195. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-CBCrdIBc.js} +4 -4
  196. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-CrGpXuhv.js} +4 -4
  197. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-Cvh0klQx.cjs} +4 -4
  198. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-CUDDZcSA.js} +3 -3
  199. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-CyDESu5J.js} +3 -3
  200. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-DH_Ksu6X.cjs} +3 -3
  201. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-YQAqUYJY.js} +3 -3
  202. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-BVFFB7JZ.js} +2 -2
  203. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-Bg3cxMMu.cjs} +2 -2
  204. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-BhmnRGyh.js} +2 -2
  205. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-DxmK95c1.js} +2 -2
  206. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-CHQaZi_-.cjs} +6 -6
  207. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-CWOm2eOr.js} +6 -6
  208. package/dist/src/{openclaw-CF7fMido.js → openclaw-Cdk9JKfY.js} +6 -6
  209. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DhF8rUpI.js} +6 -6
  210. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-BRjiPV-g.js} +2 -2
  211. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-CPFMw0ed.cjs} +2 -2
  212. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-CaSOCsBA.js} +2 -2
  213. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CqkyG8De.js} +2 -2
  214. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-BU4_0J85.js} +64 -7
  215. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CReYAtfb.js} +64 -7
  216. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-ClChwT74.cjs} +93 -6
  217. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-CqEpj6Sr.js} +64 -7
  218. package/dist/src/{providers-B9KzWxAX.js → providers-B7TyByfj.js} +94 -50
  219. package/dist/src/{providers-DVYRZP4E.js → providers-BGc7tDtQ.js} +93 -49
  220. package/dist/src/{providers-BYAn82cf.js → providers-CSOp-bCm.js} +1 -1
  221. package/dist/src/{providers-BDVVIQM6.cjs → providers-V6RBuieY.cjs} +93 -49
  222. package/dist/src/{providers-BCCz6_IX.js → providers-iH3Sw1yo.js} +93 -49
  223. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-58BtRRet.js} +3 -3
  224. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-C1dYu5MW.js} +3 -3
  225. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-CNMIpZQg.js} +3 -3
  226. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-fmSfU43k.cjs} +3 -3
  227. package/dist/src/{registry-KCVF1CFC.cjs → registry-6Jw6ebor.cjs} +14 -14
  228. package/dist/src/{registry-BUJrgjwv.js → registry-BTGk2ZkB.js} +14 -14
  229. package/dist/src/{registry-DXm1t_x0.js → registry-BTNqmP5o.js} +14 -14
  230. package/dist/src/{registry-Dp5EqoXc.js → registry-NGnOG2xa.js} +14 -14
  231. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration--D6WjzUm.js} +4 -4
  232. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-BpIYlb_O.cjs} +4 -4
  233. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CJC3E0aW.js} +4 -4
  234. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-D6UjE2JT.js} +4 -4
  235. package/dist/src/{responses-B6ktc3Ra.js → responses-5Gf5HNOi.js} +9 -5
  236. package/dist/src/{responses-URRzV8qE.js → responses-BVi7xIdv.js} +9 -5
  237. package/dist/src/{responses-1UFFF9N_.cjs → responses-CUARGrhY.cjs} +9 -5
  238. package/dist/src/{responses-B3W2JvOQ.js → responses-CrmWv6iz.js} +9 -5
  239. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-BeVTKfrv.cjs} +9 -9
  240. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-BwbV5U7_.js} +9 -9
  241. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-ClAZ6Qwc.js} +9 -9
  242. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-DY2qrOpq.js} +9 -9
  243. package/dist/src/{scanner-DS0109SS.js → scanner-BS-iFIp3.js} +5 -5
  244. package/dist/src/server/index.js +111 -114
  245. package/dist/src/{server-B8rqV126.cjs → server-BHOEL8p8.cjs} +3 -3
  246. package/dist/src/{server-CMJD10J4.js → server-CbiJppij.js} +3 -3
  247. package/dist/src/server-D18AAlAc.js +3 -0
  248. package/dist/src/{server-DhMHosWj.js → server-DLYjSFm2.js} +5 -5
  249. package/dist/src/{server-Ddp8GNMp.js → server-JQYD_Nws.js} +5 -5
  250. package/dist/src/{shared-7pmVZLNO.js → shared-CRq0gGVf.js} +8 -8
  251. package/dist/src/{shared-D6IjElRI.js → shared-CSIGeGLl.js} +8 -8
  252. package/dist/src/{shared-9WHQ1oNE.js → shared-DNvim54U.js} +7 -7
  253. package/dist/src/{shared-WkgnDkcg.cjs → shared-aHWko3P1.cjs} +8 -8
  254. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-C7sOFSF6.js} +5 -5
  255. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-DH_7RzEQ.js} +5 -5
  256. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-lgMMmniD.js} +5 -5
  257. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-mnCUS9Bm.cjs} +5 -5
  258. package/dist/src/{storage-QdU-SmvD.js → storage-95htjpLs.js} +3 -3
  259. package/dist/src/{storage-CA-v9V2v.cjs → storage-A4WnAeN3.cjs} +3 -3
  260. package/dist/src/{storage-CD-GWAdx.js → storage-B2Ql_oq4.js} +3 -3
  261. package/dist/src/{storage-BU4qcnOb.js → storage-EKVWZBNY.js} +4 -4
  262. package/dist/src/{strategies-DRJjGTIY.js → strategies-CBI1brSy.js} +10 -10
  263. package/dist/src/{strategies-7CS3Alao.cjs → strategies-CCcnEbFO.cjs} +9 -9
  264. package/dist/src/{strategies-CiSeroPH.js → strategies-CD1gHeeQ.js} +9 -9
  265. package/dist/src/telemetry-BUm_krVX.js +3 -0
  266. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-BbpmrenM.js} +4 -4
  267. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-C4bX-6Sr.js} +4 -4
  268. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-C_ImlCOk.cjs} +4 -4
  269. package/dist/src/{telemetry-00ezXr_t.js → telemetry-DOE567Wj.js} +4 -4
  270. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-BOP1FsRt.js} +2 -2
  271. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-BvmDa_jH.js} +2 -2
  272. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-DFBoE8O0.cjs} +2 -2
  273. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-xhjOg2b1.js} +2 -2
  274. package/dist/src/{transcription-Dkd22_4K.js → transcription-BOXDoehT.js} +4 -4
  275. package/dist/src/{transcription-CfU5loSq.js → transcription-CpVdKc4P.js} +4 -4
  276. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-D8kkPXg_.cjs} +4 -4
  277. package/dist/src/{transcription-B8uIgCYX.js → transcription-Z94eV9LR.js} +4 -4
  278. package/dist/src/{transform-BIMynQsA.js → transform-BufxPIQL.js} +3 -3
  279. package/dist/src/{transform-DhNkAUs8.cjs → transform-DJkt81VY.cjs} +3 -3
  280. package/dist/src/{transform-EtD4jAWi.js → transform-DtTfiGoh.js} +3 -3
  281. package/dist/src/{transform-DmvYBRll.js → transform-Wp6s_5QE.js} +3 -3
  282. package/dist/src/{util-IYzs5Y04.cjs → util-BHCAeuXx.cjs} +3 -3
  283. package/dist/src/{util--WMgw7wM.js → util-CMrHV35u.js} +3 -3
  284. package/dist/src/{util-SPsvFONY.cjs → util-COnzevXE.cjs} +3 -3
  285. package/dist/src/{util-LKTmNsMQ.js → util-CYev3d-r.js} +16 -3
  286. package/dist/src/{util-Df8YMvS1.js → util-DGqkTb2-.js} +4 -4
  287. package/dist/src/{util-CN8om2rz.cjs → util-DNtUsus_.cjs} +4 -4
  288. package/dist/src/{util-Bx677_k2.js → util-DRfqa4xz.js} +3 -3
  289. package/dist/src/{util-DiQ3QvBB.js → util-DTq3jq2z.js} +3 -3
  290. package/dist/src/{util-5WnCSb0h.js → util-DeY58psG.js} +16 -3
  291. package/dist/src/{util-DNl96nNs.js → util-DpV6KT5i.js} +4 -4
  292. package/dist/src/{util-I-Rf-KaD.js → util-DwNJzqOV.js} +3 -3
  293. package/dist/src/{util-kDURhgJW.js → util-ETfU_sS9.js} +4 -4
  294. package/dist/src/{util-BSIuSLVK.cjs → util-NYQvo1C7.cjs} +16 -3
  295. package/dist/src/{util-CoQWM76y.js → util-X4KQgyVD.js} +3 -3
  296. package/dist/src/{util-DURocbYR.js → util-jZRrXe1P.js} +3 -3
  297. package/dist/src/{util-efByNxcr.js → util-o2Qg5rZv.js} +16 -3
  298. package/dist/src/{version-BK20a4sw.js → version-CHR-EFec.js} +2 -2
  299. package/dist/src/{version-eRkNuGv8.js → version-F0YDgb7J.js} +2 -2
  300. package/dist/src/{version-BWCSaByA.cjs → version-VzUqOBZk.cjs} +2 -2
  301. package/dist/src/{version-lpHV_53E.js → version-qVEN5qCm.js} +2 -2
  302. package/dist/tsconfig.tsbuildinfo +1 -1
  303. package/package.json +5 -5
  304. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  305. package/dist/src/cache-Cf7b4pWE.js +0 -3
  306. package/dist/src/cloud-p96PA4MH.js +0 -3
  307. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  308. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  309. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  310. package/dist/src/fetch-_YgGd2qv.js +0 -3
  311. package/dist/src/graders-BDT7dif6.js +0 -3
  312. package/dist/src/server-BaLytskk.js +0 -3
  313. package/dist/src/telemetry-ByPqDcKC.js +0 -3
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { D as getEnvInt, s as logger } from "./logger-BbY6ypFL.js";
3
- import { f as sleep } from "./fetch-DXUnXkVU.js";
3
+ import { f as sleep } from "./fetch-Cpf1U1nO.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-D6IBfEE0.js";
6
+ import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-D6UjE2JT.js";
7
7
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
8
8
  import { r as materializeInputVariablesWithMetadata } from "./inputVariables-DXFdi7AI.js";
9
- import { a as extractPromptFromTags, r as extractInputVarsFromPrompt } 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, 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 { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-BnwKCkSB.js";
9
+ import { a as extractPromptFromTags, r as extractInputVarsFromPrompt } from "./util-ETfU_sS9.js";
10
+ import { a as assertRemoteMaterializationHandled, o as buildRemoteMaterializationContextVars, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-BU4_0J85.js";
11
+ import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-DNvim54U.js";
12
+ import { n as checkExfilTracking } from "./indirectWebPwn-BMTXXznx.js";
13
+ import { n as renderPrompt } from "./evaluatorHelpers-D1_kwvyp.js";
14
+ import { t as Strategies } from "./strategies-CBI1brSy.js";
15
+ import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-xhjOg2b1.js";
16
16
  import { t as applyRuntimeTransforms } from "./runtimeTransform-Dgh_D7DU.js";
17
17
  //#region src/redteam/providers/iterativeMeta.ts
18
18
  function getIterativeMetaGoalRubric(goal) {
@@ -48,6 +48,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
48
48
  let storedGraderResult = void 0;
49
49
  let stopReason = "Max iterations reached";
50
50
  let lastResponse = void 0;
51
+ let failClosedError;
51
52
  let previousTraceSummary;
52
53
  const redteamHistory = [];
53
54
  let lastTransformDisplayVars;
@@ -72,6 +73,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
72
73
  goal,
73
74
  purpose: test?.metadata?.purpose,
74
75
  modifiers: test?.metadata?.modifiers,
76
+ inputs,
75
77
  excludeTargetOutputFromAgenticAttackGeneration,
76
78
  lastAttempt: i > 0 && lastResponse && redteamHistory[i - 1] ? {
77
79
  prompt: redteamHistory[i - 1].prompt,
@@ -87,7 +89,13 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
87
89
  raw: JSON.stringify(cloudRequest),
88
90
  label: "meta-agent"
89
91
  },
90
- vars: {}
92
+ vars: shouldGenerateRemote() ? buildRemoteMaterializationContextVars({
93
+ injectVar,
94
+ inputs,
95
+ materializationIndex: i,
96
+ pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
97
+ purpose: test?.metadata?.purpose
98
+ }) : {}
91
99
  }, options);
92
100
  accumulateResponseTokenUsage(totalTokenUsage, agentResp, { countAsRequest: false });
93
101
  if (agentProvider.delay) {
@@ -140,13 +148,25 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
140
148
  }
141
149
  lastFinalAttackPrompt = finalAttackPrompt;
142
150
  const escapedAttackPrompt = finalAttackPrompt.replace(/\{\{/g, "{ {").replace(/\}\}/g, "} }").replace(/\{%/g, "{ %").replace(/%\}/g, "% }");
151
+ if (inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled(agentResp, "Iterative Meta multi-input generation");
143
152
  const currentInputVars = extractInputVarsFromPrompt(attackPrompt, inputs);
144
- const currentRenderInputVars = (currentInputVars && inputs ? await materializeInputVariablesWithMetadata(currentInputVars, inputs, {
153
+ let materializedInputVars;
154
+ if (inputs && shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
155
+ failClosedError = "Iterative Meta remote multi-input generation returned an invalid prompt format";
156
+ logger.warn("[IterativeMeta] Remote multi-input generation returned an invalid prompt format", {
157
+ iteration: i + 1,
158
+ attackPromptPreview: attackPrompt.slice(0, 200)
159
+ });
160
+ break;
161
+ }
162
+ if ((currentInputVars || agentResp.materializedVars) && inputs) if (shouldGenerateRemote()) materializedInputVars = buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, inputs);
163
+ else materializedInputVars = await materializeInputVariablesWithMetadata(currentInputVars, inputs, {
145
164
  materializationIndex: i,
146
165
  pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
147
166
  provider: agentProvider,
148
167
  purpose: test?.metadata?.purpose
149
- }) : void 0)?.vars ?? currentInputVars;
168
+ });
169
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
150
170
  const updatedVars = {
151
171
  ...iterationVars,
152
172
  [injectVar]: escapedAttackPrompt,
@@ -212,7 +232,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
212
232
  previousTraceSummary = attackTraceSummary;
213
233
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
214
234
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
215
- const { getGraderById } = await import("./graders-BDT7dif6.js");
235
+ const { getGraderById } = await import("./graders-B3D7kCcD.js");
216
236
  if (test && assertToUse) {
217
237
  const grader = getGraderById(assertToUse.type);
218
238
  if (grader) {
@@ -303,7 +323,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
303
323
  return {
304
324
  output: bestResponse || lastResponse?.output || "",
305
325
  prompt: bestPrompt,
306
- ...lastResponse?.error ? { error: lastResponse.error } : {},
326
+ ...failClosedError ? { error: failClosedError } : lastResponse?.error ? { error: lastResponse.error } : {},
307
327
  metadata: {
308
328
  finalIteration,
309
329
  vulnerabilityAchieved,
@@ -383,4 +403,4 @@ var RedteamIterativeMetaProvider = class {
383
403
  //#endregion
384
404
  export { RedteamIterativeMetaProvider as default };
385
405
 
386
- //# sourceMappingURL=iterativeMeta-B3YiAOc8.js.map
406
+ //# sourceMappingURL=iterativeMeta-CN8CNjFA.js.map
@@ -1,16 +1,16 @@
1
1
  import { a as logger, w as getEnvInt } from "./logger-KD8JjCRJ.js";
2
- import { m as sleep } from "./fetch-BufrQtvR.js";
2
+ import { m as sleep } from "./fetch-BSSAcMxf.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-BWjqwsrf.js";
5
+ import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration--D6WjzUm.js";
6
6
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
7
7
  import { r as materializeInputVariablesWithMetadata } from "./inputVariables-B0qUChbV.js";
8
- import { a as extractPromptFromTags, r as extractInputVarsFromPrompt } from "./util-Df8YMvS1.js";
9
- import { t as PromptfooChatCompletionProvider } from "./promptfoo-BDrfT30-.js";
10
- import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-7pmVZLNO.js";
11
- import { n as checkExfilTracking } from "./indirectWebPwn-tNx9OZ35.js";
8
+ import { a as extractPromptFromTags, r as extractInputVarsFromPrompt } from "./util-DGqkTb2-.js";
9
+ import { a as assertRemoteMaterializationHandled, o as buildRemoteMaterializationContextVars, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-CReYAtfb.js";
10
+ import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-CRq0gGVf.js";
11
+ import { n as checkExfilTracking } from "./indirectWebPwn-BZFPV7Q9.js";
12
12
  import { n as renderPrompt, t as Strategies } from "./server/index.js";
13
- import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-Chi74lOD.js";
13
+ import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-BvmDa_jH.js";
14
14
  import { t as applyRuntimeTransforms } from "./runtimeTransform-BJOpL9Yc.js";
15
15
  //#region src/redteam/providers/iterativeMeta.ts
16
16
  function getIterativeMetaGoalRubric(goal) {
@@ -46,6 +46,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
46
46
  let storedGraderResult = void 0;
47
47
  let stopReason = "Max iterations reached";
48
48
  let lastResponse = void 0;
49
+ let failClosedError;
49
50
  let previousTraceSummary;
50
51
  const redteamHistory = [];
51
52
  let lastTransformDisplayVars;
@@ -70,6 +71,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
70
71
  goal,
71
72
  purpose: test?.metadata?.purpose,
72
73
  modifiers: test?.metadata?.modifiers,
74
+ inputs,
73
75
  excludeTargetOutputFromAgenticAttackGeneration,
74
76
  lastAttempt: i > 0 && lastResponse && redteamHistory[i - 1] ? {
75
77
  prompt: redteamHistory[i - 1].prompt,
@@ -85,7 +87,13 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
85
87
  raw: JSON.stringify(cloudRequest),
86
88
  label: "meta-agent"
87
89
  },
88
- vars: {}
90
+ vars: shouldGenerateRemote() ? buildRemoteMaterializationContextVars({
91
+ injectVar,
92
+ inputs,
93
+ materializationIndex: i,
94
+ pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
95
+ purpose: test?.metadata?.purpose
96
+ }) : {}
89
97
  }, options);
90
98
  accumulateResponseTokenUsage(totalTokenUsage, agentResp, { countAsRequest: false });
91
99
  if (agentProvider.delay) {
@@ -138,13 +146,25 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
138
146
  }
139
147
  lastFinalAttackPrompt = finalAttackPrompt;
140
148
  const escapedAttackPrompt = finalAttackPrompt.replace(/\{\{/g, "{ {").replace(/\}\}/g, "} }").replace(/\{%/g, "{ %").replace(/%\}/g, "% }");
149
+ if (inputs && shouldGenerateRemote()) assertRemoteMaterializationHandled(agentResp, "Iterative Meta multi-input generation");
141
150
  const currentInputVars = extractInputVarsFromPrompt(attackPrompt, inputs);
142
- const currentRenderInputVars = (currentInputVars && inputs ? await materializeInputVariablesWithMetadata(currentInputVars, inputs, {
151
+ let materializedInputVars;
152
+ if (inputs && shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
153
+ failClosedError = "Iterative Meta remote multi-input generation returned an invalid prompt format";
154
+ logger.warn("[IterativeMeta] Remote multi-input generation returned an invalid prompt format", {
155
+ iteration: i + 1,
156
+ attackPromptPreview: attackPrompt.slice(0, 200)
157
+ });
158
+ break;
159
+ }
160
+ if ((currentInputVars || agentResp.materializedVars) && inputs) if (shouldGenerateRemote()) materializedInputVars = buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, inputs);
161
+ else materializedInputVars = await materializeInputVariablesWithMetadata(currentInputVars, inputs, {
143
162
  materializationIndex: i,
144
163
  pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
145
164
  provider: agentProvider,
146
165
  purpose: test?.metadata?.purpose
147
- }) : void 0)?.vars ?? currentInputVars;
166
+ });
167
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
148
168
  const updatedVars = {
149
169
  ...iterationVars,
150
170
  [injectVar]: escapedAttackPrompt,
@@ -210,7 +230,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
210
230
  previousTraceSummary = attackTraceSummary;
211
231
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
212
232
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
213
- const { getGraderById } = await import("./graders-C0nXU_ZP.js").then((n) => n.r);
233
+ const { getGraderById } = await import("./graders-DaRU98zs.js").then((n) => n.r);
214
234
  if (test && assertToUse) {
215
235
  const grader = getGraderById(assertToUse.type);
216
236
  if (grader) {
@@ -301,7 +321,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
301
321
  return {
302
322
  output: bestResponse || lastResponse?.output || "",
303
323
  prompt: bestPrompt,
304
- ...lastResponse?.error ? { error: lastResponse.error } : {},
324
+ ...failClosedError ? { error: failClosedError } : lastResponse?.error ? { error: lastResponse.error } : {},
305
325
  metadata: {
306
326
  finalIteration,
307
327
  vulnerabilityAchieved,
@@ -381,4 +401,4 @@ var RedteamIterativeMetaProvider = class {
381
401
  //#endregion
382
402
  export { RedteamIterativeMetaProvider as default };
383
403
 
384
- //# sourceMappingURL=iterativeMeta-DgoQ7bLh.js.map
404
+ //# sourceMappingURL=iterativeMeta-DN6BTjpq.js.map
@@ -1,17 +1,17 @@
1
1
  const require_logger = require("./logger-cfNpzI4o.cjs");
2
2
  const require_invariant = require("./invariant-QtnLD03y.cjs");
3
- const require_fetch = require("./fetch-Dw4XZHjj.cjs");
4
- const require_accounts = require("./accounts-CmWzeD2d.cjs");
5
- const require_remoteGeneration = require("./remoteGeneration-DS9N3pgB.cjs");
3
+ const require_fetch = require("./fetch-Cfm4EuOB.cjs");
4
+ const require_accounts = require("./accounts-BVz5gHLK.cjs");
5
+ const require_remoteGeneration = require("./remoteGeneration-BpIYlb_O.cjs");
6
6
  const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
7
7
  const require_inputVariables = require("./inputVariables-Dq9W-Z3a.cjs");
8
- const require_util = require("./util-CN8om2rz.cjs");
9
- const require_promptfoo = require("./promptfoo-b-baRMj-.cjs");
10
- const require_shared = require("./shared-WkgnDkcg.cjs");
11
- const require_indirectWebPwn = require("./indirectWebPwn-BJ22AbQa.cjs");
12
- const require_evaluatorHelpers = require("./evaluatorHelpers-CRqTvSux.cjs");
13
- const require_strategies = require("./strategies-7CS3Alao.cjs");
14
- const require_tracingOptions = require("./tracingOptions-DrbSFaKy.cjs");
8
+ const require_util = require("./util-DNtUsus_.cjs");
9
+ const require_promptfoo = require("./promptfoo-ClChwT74.cjs");
10
+ const require_shared = require("./shared-aHWko3P1.cjs");
11
+ const require_indirectWebPwn = require("./indirectWebPwn-D7NA9Nsv.cjs");
12
+ const require_evaluatorHelpers = require("./evaluatorHelpers-D06I9WFL.cjs");
13
+ const require_strategies = require("./strategies-CCcnEbFO.cjs");
14
+ const require_tracingOptions = require("./tracingOptions-DFBoE8O0.cjs");
15
15
  const require_runtimeTransform = require("./runtimeTransform-ON3YYILw.cjs");
16
16
  //#region src/redteam/providers/iterativeMeta.ts
17
17
  function getIterativeMetaGoalRubric(goal) {
@@ -47,6 +47,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
47
47
  let storedGraderResult = void 0;
48
48
  let stopReason = "Max iterations reached";
49
49
  let lastResponse = void 0;
50
+ let failClosedError;
50
51
  let previousTraceSummary;
51
52
  const redteamHistory = [];
52
53
  let lastTransformDisplayVars;
@@ -71,6 +72,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
71
72
  goal,
72
73
  purpose: test?.metadata?.purpose,
73
74
  modifiers: test?.metadata?.modifiers,
75
+ inputs,
74
76
  excludeTargetOutputFromAgenticAttackGeneration,
75
77
  lastAttempt: i > 0 && lastResponse && redteamHistory[i - 1] ? {
76
78
  prompt: redteamHistory[i - 1].prompt,
@@ -86,7 +88,13 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
86
88
  raw: JSON.stringify(cloudRequest),
87
89
  label: "meta-agent"
88
90
  },
89
- vars: {}
91
+ vars: require_remoteGeneration.shouldGenerateRemote() ? require_promptfoo.buildRemoteMaterializationContextVars({
92
+ injectVar,
93
+ inputs,
94
+ materializationIndex: i,
95
+ pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
96
+ purpose: test?.metadata?.purpose
97
+ }) : {}
90
98
  }, options);
91
99
  require_tokenUsageUtils.accumulateResponseTokenUsage(totalTokenUsage, agentResp, { countAsRequest: false });
92
100
  if (agentProvider.delay) {
@@ -139,13 +147,25 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
139
147
  }
140
148
  lastFinalAttackPrompt = finalAttackPrompt;
141
149
  const escapedAttackPrompt = finalAttackPrompt.replace(/\{\{/g, "{ {").replace(/\}\}/g, "} }").replace(/\{%/g, "{ %").replace(/%\}/g, "% }");
150
+ if (inputs && require_remoteGeneration.shouldGenerateRemote()) require_promptfoo.assertRemoteMaterializationHandled(agentResp, "Iterative Meta multi-input generation");
142
151
  const currentInputVars = require_util.extractInputVarsFromPrompt(attackPrompt, inputs);
143
- const currentRenderInputVars = (currentInputVars && inputs ? await require_inputVariables.materializeInputVariablesWithMetadata(currentInputVars, inputs, {
152
+ let materializedInputVars;
153
+ if (inputs && require_remoteGeneration.shouldGenerateRemote() && !currentInputVars && !agentResp.materializedVars) {
154
+ failClosedError = "Iterative Meta remote multi-input generation returned an invalid prompt format";
155
+ require_logger.logger.warn("[IterativeMeta] Remote multi-input generation returned an invalid prompt format", {
156
+ iteration: i + 1,
157
+ attackPromptPreview: attackPrompt.slice(0, 200)
158
+ });
159
+ break;
160
+ }
161
+ if ((currentInputVars || agentResp.materializedVars) && inputs) if (require_remoteGeneration.shouldGenerateRemote()) materializedInputVars = require_promptfoo.buildRemoteMaterializedInputVariables(agentResp, currentInputVars ?? {}, inputs);
162
+ else materializedInputVars = await require_inputVariables.materializeInputVariablesWithMetadata(currentInputVars, inputs, {
144
163
  materializationIndex: i,
145
164
  pluginId: String(test?.metadata?.pluginId || "iterative-meta"),
146
165
  provider: agentProvider,
147
166
  purpose: test?.metadata?.purpose
148
- }) : void 0)?.vars ?? currentInputVars;
167
+ });
168
+ const currentRenderInputVars = materializedInputVars?.vars ?? currentInputVars;
149
169
  const updatedVars = {
150
170
  ...iterationVars,
151
171
  [injectVar]: escapedAttackPrompt,
@@ -211,7 +231,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
211
231
  previousTraceSummary = attackTraceSummary;
212
232
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
213
233
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
214
- const { getGraderById } = await Promise.resolve().then(() => require("./graders-ClrU2fnd.cjs")).then((n) => n.graders_exports);
234
+ const { getGraderById } = await Promise.resolve().then(() => require("./graders-CBQ2s6gz.cjs")).then((n) => n.graders_exports);
215
235
  if (test && assertToUse) {
216
236
  const grader = getGraderById(assertToUse.type);
217
237
  if (grader) {
@@ -302,7 +322,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
302
322
  return {
303
323
  output: bestResponse || lastResponse?.output || "",
304
324
  prompt: bestPrompt,
305
- ...lastResponse?.error ? { error: lastResponse.error } : {},
325
+ ...failClosedError ? { error: failClosedError } : lastResponse?.error ? { error: lastResponse.error } : {},
306
326
  metadata: {
307
327
  finalIteration,
308
328
  vulnerabilityAchieved,
@@ -382,4 +402,4 @@ var RedteamIterativeMetaProvider = class {
382
402
  //#endregion
383
403
  exports.default = RedteamIterativeMetaProvider;
384
404
 
385
- //# sourceMappingURL=iterativeMeta-CSS8M6Ds.cjs.map
405
+ //# sourceMappingURL=iterativeMeta-DlqY3BsS.cjs.map
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { g as extractFirstJsonObject, s as logger } from "./logger-BbY6ypFL.js";
3
- import { f as sleep } from "./fetch-DXUnXkVU.js";
3
+ import { f as sleep } from "./fetch-Cpf1U1nO.js";
4
4
  import { t as invariant } from "./invariant-B2Rf6avk.js";
5
- import { c as isLoggedIntoCloud } from "./accounts-CjFnOPmb.js";
5
+ import { c as isLoggedIntoCloud } from "./accounts-D6IBfEE0.js";
6
6
  import { o as getNunjucksEngine } from "./render-CSP99NLm.js";
7
- import { l as shouldGenerateRemote } from "./remoteGeneration-B1_XsKXU.js";
7
+ import { l as shouldGenerateRemote } from "./remoteGeneration-D6UjE2JT.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";
9
+ import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, o as getSessionId } from "./util-ETfU_sS9.js";
10
+ import { a as assertRemoteMaterializationHandled, o as buildRemoteMaterializationContextVars, s as buildRemoteMaterializedInputVariables, t as PromptfooChatCompletionProvider } from "./promptfoo-BU4_0J85.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-DNvim54U.js";
12
+ import { n as checkExfilTracking } from "./indirectWebPwn-BMTXXznx.js";
13
+ import { n as renderPrompt } from "./evaluatorHelpers-D1_kwvyp.js";
14
+ import { t as Strategies } from "./strategies-CBI1brSy.js";
15
15
  import { t as applyRuntimeTransforms } from "./runtimeTransform-Dgh_D7DU.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";
@@ -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-B3D7kCcD.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-CJ8a8G9T.js.map