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.
- package/dist/src/{accounts-CmWzeD2d.cjs → accounts-BVz5gHLK.cjs} +4 -4
- package/dist/src/{accounts-DanM1wq_.js → accounts-BWjqwsrf.js} +4 -4
- package/dist/src/{accounts-CjFnOPmb.js → accounts-D6IBfEE0.js} +5 -5
- package/dist/src/{accounts-Ca7WIoPY.js → accounts-DAv_0iE7.js} +4 -4
- package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-BJKAkz2e.js} +2 -2
- package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C-A92xhn.cjs} +2 -2
- package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-DmoS_S4B.js} +2 -2
- package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-GdToujHu.js} +2 -2
- package/dist/src/{agents-CBgJvRkB.js → agents-2C8NN6I1.js} +4 -4
- package/dist/src/{agents-CYn2n3QP.js → agents-BMAiSR2o.js} +2 -2
- package/dist/src/{agents-LrHuQqr1.js → agents-C-PGaxwj.js} +4 -4
- package/dist/src/{agents-D-vDNFx4.js → agents-C98cz5pl.js} +4 -4
- package/dist/src/{agents-B4sRuXg3.cjs → agents-DB8Ub2Ld.cjs} +2 -2
- package/dist/src/{agents-B8q7h_ek.js → agents-Dwshy2H8.js} +2 -2
- package/dist/src/{agents-QGg76OF-.js → agents-mlKjx-cK.js} +2 -2
- package/dist/src/{agents-eHZ9nlgA.cjs → agents-n2ej-c4H.cjs} +4 -4
- package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-Bi-laUlp.js} +6 -6
- package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-D0OFV4Vj.cjs} +6 -6
- package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-WyUK0wYy.js} +6 -6
- package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-v-63ZjEI.js} +6 -6
- package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
- package/dist/src/app/assets/{index-BnT6P6sF.js → index-BopgkZEh.js} +2 -2
- package/dist/src/app/index.html +1 -1
- package/dist/src/{audio-DyiebVB3.js → audio-DnEIHWZR.js} +3 -3
- package/dist/src/{audio-BqnRvcWG.js → audio-heR0mu0n.js} +3 -3
- package/dist/src/{audio-CPMtV1yR.js → audio-wafFO1wn.js} +3 -3
- package/dist/src/{audio-FnxbEnSE.cjs → audio-x44tsxIo.cjs} +3 -3
- package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-2G3Be6oL.cjs} +6 -6
- package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-81PPynHR.js} +6 -6
- package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-D9O70HPi.js} +6 -6
- package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-PxSf3Rh8.js} +5 -5
- package/dist/src/{base-E9I8zXjz.js → base-0Gzzue9Z.js} +2 -2
- package/dist/src/{base-Co80MMCi.js → base-Bp4c52YZ.js} +2 -2
- package/dist/src/{base-CKLo890h.js → base-BuNn-YBX.js} +2 -2
- package/dist/src/{base-DGJW48uz.cjs → base-BzdS8tod.cjs} +2 -2
- package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-BHiOjeaq.js} +7 -7
- package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CdkNPPbX.js} +6 -6
- package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-ClUSOhN0.js} +7 -7
- package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DWwXEg1h.cjs} +7 -7
- package/dist/src/cache-BKYi3kAA.js +3 -0
- package/dist/src/{cache-DpPWrkTE.js → cache-BR77mdIR.js} +3 -3
- package/dist/src/{cache-roFAE0cI.js → cache-CrioYnaa.js} +2 -2
- package/dist/src/{cache-DIXbtkNO.js → cache-DdriHsNX.js} +2 -2
- package/dist/src/{cache-CPGUA4Yl.cjs → cache-h5MWOBZI.cjs} +2 -2
- package/dist/src/{chat-Dabu84Br.js → chat-BBEnnpQk.js} +6 -6
- package/dist/src/{chat-CUCorGiL.js → chat-BSos6PvZ.js} +6 -6
- package/dist/src/{chat-TP8Qifkh.js → chat-Bnt7ieO0.js} +2 -2
- package/dist/src/{chat-DxTDQ83C.cjs → chat-DSyYuTYT.cjs} +6 -6
- package/dist/src/{chat-DqUFcWI0.js → chat-DTdf-J5Q.js} +6 -6
- package/dist/src/{chat-DG1wG4w0.cjs → chat-Dq3DomYU.cjs} +2 -2
- package/dist/src/{chat-GmlolEwo.js → chat-g5QLeLOo.js} +2 -2
- package/dist/src/{chat-iwaM5UTQ.js → chat-mTTuUAYb.js} +2 -2
- package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-BGUac_kS.js} +7 -5
- package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BP__YGfK.js} +7 -5
- package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-Ddgx5BIQ.js} +7 -5
- package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-n2XcEclh.cjs} +7 -5
- package/dist/src/cloud-DiWbUiVP.js +3 -0
- package/dist/src/{cloud-D3DiFqH6.js → cloud-DqF5N1aJ.js} +2 -2
- package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-BGamMotN.js} +4 -4
- package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-BwW8W-w7.js} +4 -4
- package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DCRGnsyL.cjs} +4 -4
- package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-sD26nP6V.js} +4 -4
- package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
- package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
- package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-CCC1DFrC.cjs} +3 -3
- package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-DOghiU6r.js} +3 -3
- package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BWeWamEb.js} +17 -2
- package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-DyQB1P0p.js} +17 -2
- package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-R9u_G7W9.cjs} +17 -2
- package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-ZQRJSJjU.js} +17 -2
- package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-B62H0fe7.js} +14 -3
- package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-BRPUvJG8.cjs} +14 -3
- package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-Dio1zJBS.js} +14 -3
- package/dist/src/codex-sdk-DxukZs_K.js +3 -0
- package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-iEmW1eS2.js} +14 -3
- package/dist/src/{cometapi-Bu9B8NUY.js → cometapi--hh7dESS.js} +7 -7
- package/dist/src/{cometapi-OBILPLlu.js → cometapi-C7yWNGqt.js} +7 -7
- package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CSIi16a0.js} +7 -7
- package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-sZgBZtbU.cjs} +7 -7
- package/dist/src/{completion-CSYfl2cd.cjs → completion-CWtqdn3z.cjs} +4 -4
- package/dist/src/{completion-CO2e1_62.js → completion-DT8cxo9T.js} +4 -4
- package/dist/src/{completion-DZNxcyfG.js → completion-DUScduXp.js} +4 -4
- package/dist/src/{completion-sNvCLTAP.js → completion-D_2IOAoS.js} +4 -4
- package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B41TwUHM.js} +39 -18
- package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-Bfic7KC4.js} +41 -20
- package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-DXFB7rHP.cjs} +41 -20
- package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-DvvYxMLA.js} +41 -20
- package/dist/src/{custom-BJfP00Bh.js → custom-BdzuqFTN.js} +10 -10
- package/dist/src/{custom-notggYVl.js → custom-Cf5Q6r-P.js} +8 -8
- package/dist/src/{custom-CZVn-1-r.js → custom-DLgufezC.js} +10 -10
- package/dist/src/{custom-Cqia7M0D.cjs → custom-LEXHCRe3.cjs} +10 -10
- package/dist/src/{docker-4D1eL6Gq.js → docker-BOSO_6hK.js} +5 -5
- package/dist/src/{docker-D06JUoe2.cjs → docker-D0h2vFrc.cjs} +5 -5
- package/dist/src/{docker-DdJQBxK9.js → docker-D2TWGyTP.js} +5 -5
- package/dist/src/{docker-BBv1WUDu.js → docker-Vj_4_cPg.js} +5 -5
- package/dist/src/{embedding-BbrwopfX.cjs → embedding-BQIApR18.cjs} +4 -4
- package/dist/src/{embedding-Bi3rxrZF.js → embedding-CStK0TV6.js} +4 -4
- package/dist/src/{embedding--UZVe4_7.js → embedding-CU78FMnw.js} +4 -4
- package/dist/src/{embedding-C251p1-8.js → embedding-CV8lmCnU.js} +4 -4
- package/dist/src/{eval-0VRANImH.js → eval-B3BaNBbO.js} +4 -4
- package/dist/src/{eval-DscR5iOM.js → eval-DfR9885C.js} +1 -1
- package/dist/src/evalResult-BtZSUgQv.js +3 -0
- package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-CcSqNl_Y.js} +3 -3
- package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-DHXs-9TL.cjs} +3 -3
- package/dist/src/{evalResult-2RRJvFyB.js → evalResult-PGqEbasb.js} +3 -3
- package/dist/src/evaluator-B9LGbKI8.js +3 -0
- package/dist/src/{evaluator-DRoiYB2q.js → evaluator-n_dEb00o.js} +20 -20
- package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-CrRObe2z.js} +4 -4
- package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-D06I9WFL.cjs} +4 -4
- package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-D1_kwvyp.js} +4 -4
- package/dist/src/{extractor-CIW3iN-b.js → extractor-BVkZtk4R.js} +4 -4
- package/dist/src/{extractor-CxRtnaHl.js → extractor-D3Fv_Tdh.js} +4 -4
- package/dist/src/{extractor-BR7XAzAL.js → extractor-Jp53vs-6.js} +4 -4
- package/dist/src/{extractor-BdxEtt3J.cjs → extractor-bV_NOoaz.cjs} +4 -4
- package/dist/src/{fetch-BufrQtvR.js → fetch-BSSAcMxf.js} +2 -2
- package/dist/src/fetch-BodQTrMU.js +3 -0
- package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-Cfm4EuOB.cjs} +2 -2
- package/dist/src/{fetch-DXUnXkVU.js → fetch-Cpf1U1nO.js} +3 -3
- package/dist/src/{fetch-It34O8Ur.js → fetch-Doks14zQ.js} +2 -2
- package/dist/src/{goat-Qgurm-NP.js → goat-Ba7Gznzq.js} +18 -17
- package/dist/src/{goat-Ckd3q3AY.js → goat-CJngS-WU.js} +18 -17
- package/dist/src/{goat-ghadEDdy.js → goat-CwsbfQeu.js} +16 -15
- package/dist/src/{goat-una6pZGP.cjs → goat-DOMbozoX.cjs} +18 -17
- package/dist/src/graders-B3D7kCcD.js +3 -0
- package/dist/src/{graders-BGP99PdK.js → graders-BQt1BaQe.js} +18 -18
- package/dist/src/{graders-ClrU2fnd.cjs → graders-CBQ2s6gz.cjs} +18 -18
- package/dist/src/{graders-C0nXU_ZP.js → graders-DaRU98zs.js} +18 -18
- package/dist/src/{graders-BX0f2tvS.js → graders-KXzjnIim.js} +18 -18
- package/dist/src/{hydra-DE4xWwyc.js → hydra-BU6GjYoQ.js} +35 -17
- package/dist/src/{hydra-BxdG4nkg.js → hydra-BmXHxlyl.js} +33 -15
- package/dist/src/{hydra-BSNZZm2M.js → hydra-CR0KyYDb.js} +35 -17
- package/dist/src/{hydra-DrJttnvw.cjs → hydra-RO9jBks7.cjs} +35 -17
- package/dist/src/{image-B_fPIwdg.js → image-BBmZdKO3.js} +3 -3
- package/dist/src/{image-QzmydkiG.js → image-B_PFG7IG.js} +3 -3
- package/dist/src/{image-BvUAW344.js → image-BtODOZjh.js} +4 -4
- package/dist/src/{image-Cvjwx1uY.js → image-CYuNJIqd.js} +4 -4
- package/dist/src/{image-DfVCGPbI.cjs → image-E00WFZkq.cjs} +3 -3
- package/dist/src/{image-X0oY4350.cjs → image-HK2Cfqb1.cjs} +4 -4
- package/dist/src/{image-BN-hjLL9.js → image-LGj8dTcr.js} +3 -3
- package/dist/src/{image-B4oBtu6J.js → image-YMKejC0r.js} +4 -4
- package/dist/src/index.cjs +112 -115
- package/dist/src/index.d.cts +13 -0
- package/dist/src/index.d.ts +13 -0
- package/dist/src/index.js +113 -116
- package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B80dLlFC.js} +5 -5
- package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BMTXXznx.js} +4 -4
- package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-BZFPV7Q9.js} +4 -4
- package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-BaEQEOIO.cjs} +5 -5
- package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BzpyMnFS.js} +5 -5
- package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-CiWB-vVH.js} +4 -4
- package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-D7NA9Nsv.cjs} +4 -4
- package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-o_bEFMjP.js} +5 -5
- package/dist/src/{iterative-DJQEQpG3.js → iterative-B-l0syBV.js} +25 -15
- package/dist/src/{iterative-DQBuWM-j.cjs → iterative-BACUeCCz.cjs} +25 -15
- package/dist/src/{iterative-FTS4Bz67.js → iterative-CVwoExo8.js} +25 -15
- package/dist/src/{iterative-CpU6i2As.js → iterative-QDrGSyss.js} +23 -13
- package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-BQg2OwA6.js} +3 -3
- package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-Bwn0fM75.js} +4 -4
- package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-CcgVyASo.cjs} +4 -4
- package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-D_UbQXg4.js} +4 -4
- package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-CIu-CHRS.js} +36 -16
- package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-CN8CNjFA.js} +36 -16
- package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-DN6BTjpq.js} +34 -14
- package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-DlqY3BsS.cjs} +36 -16
- package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CJ8a8G9T.js} +78 -28
- package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-DcuFXnjL.js} +78 -28
- package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-FrDDYAN0.js} +76 -26
- package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-LOgAi0nU.cjs} +78 -28
- package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-CdbcGBZF.cjs} +4 -4
- package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-CjOXp6Lr.js} +4 -4
- package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-DxAq4n4z.js} +4 -4
- package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-o_wTLzrt.js} +4 -4
- package/dist/src/{litellm-BKBo0jpC.js → litellm-B2gHwya_.js} +4 -4
- package/dist/src/{litellm-CtAr7bKG.cjs → litellm-CPpdlO7n.cjs} +4 -4
- package/dist/src/{litellm-BXyn5kZK.js → litellm-CYfgxLrM.js} +4 -4
- package/dist/src/{litellm-CNcfbCfa.js → litellm-ojWBKU3C.js} +4 -4
- package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCCO9XXG.cjs} +3 -3
- package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-BPrdihAb.js} +3 -3
- package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-DP5N79lB.js} +3 -3
- package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DTDyoAlM.js} +3 -3
- package/dist/src/main.js +116 -119
- package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-B6N3us35.cjs} +6 -6
- package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-Bc_BK_k2.js} +6 -6
- package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D375zwSX.js} +6 -6
- package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-DJA0YjJT.js} +6 -6
- package/dist/src/{messages-BabO-cX8.js → messages-Bg29Nbit.js} +7 -7
- package/dist/src/{messages-DBPir0TQ.cjs → messages-BrZEnHsV.cjs} +7 -7
- package/dist/src/{messages-vsE_-Lv0.js → messages-CBulRaud.js} +7 -7
- package/dist/src/{messages-DGUlSNU7.js → messages-K9A8RxBM.js} +7 -7
- package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-BDLwSGN0.js} +5 -5
- package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-Blx-OtT3.js} +5 -5
- package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CHuTTvBg.js} +5 -5
- package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-CSUrH3fq.cjs} +5 -5
- package/dist/src/{modelslab-Cogmu4mG.js → modelslab-BjEk7yCP.js} +4 -4
- package/dist/src/{modelslab-EyDczZ5A.js → modelslab-CBCrdIBc.js} +4 -4
- package/dist/src/{modelslab-Dzst7VTU.js → modelslab-CrGpXuhv.js} +4 -4
- package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-Cvh0klQx.cjs} +4 -4
- package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-CUDDZcSA.js} +3 -3
- package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-CyDESu5J.js} +3 -3
- package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-DH_Ksu6X.cjs} +3 -3
- package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-YQAqUYJY.js} +3 -3
- package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-BVFFB7JZ.js} +2 -2
- package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-Bg3cxMMu.cjs} +2 -2
- package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-BhmnRGyh.js} +2 -2
- package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-DxmK95c1.js} +2 -2
- package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-CHQaZi_-.cjs} +6 -6
- package/dist/src/{openclaw-zIJAsz3P.js → openclaw-CWOm2eOr.js} +6 -6
- package/dist/src/{openclaw-CF7fMido.js → openclaw-Cdk9JKfY.js} +6 -6
- package/dist/src/{openclaw-BIHlu_36.js → openclaw-DhF8rUpI.js} +6 -6
- package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-BRjiPV-g.js} +2 -2
- package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-CPFMw0ed.cjs} +2 -2
- package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-CaSOCsBA.js} +2 -2
- package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CqkyG8De.js} +2 -2
- package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-BU4_0J85.js} +64 -7
- package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CReYAtfb.js} +64 -7
- package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-ClChwT74.cjs} +93 -6
- package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-CqEpj6Sr.js} +64 -7
- package/dist/src/{providers-B9KzWxAX.js → providers-B7TyByfj.js} +94 -50
- package/dist/src/{providers-DVYRZP4E.js → providers-BGc7tDtQ.js} +93 -49
- package/dist/src/{providers-BYAn82cf.js → providers-CSOp-bCm.js} +1 -1
- package/dist/src/{providers-BDVVIQM6.cjs → providers-V6RBuieY.cjs} +93 -49
- package/dist/src/{providers-BCCz6_IX.js → providers-iH3Sw1yo.js} +93 -49
- package/dist/src/{quiverai-BvIhI_0l.js → quiverai-58BtRRet.js} +3 -3
- package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-C1dYu5MW.js} +3 -3
- package/dist/src/{quiverai-CdTWPe-A.js → quiverai-CNMIpZQg.js} +3 -3
- package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-fmSfU43k.cjs} +3 -3
- package/dist/src/{registry-KCVF1CFC.cjs → registry-6Jw6ebor.cjs} +14 -14
- package/dist/src/{registry-BUJrgjwv.js → registry-BTGk2ZkB.js} +14 -14
- package/dist/src/{registry-DXm1t_x0.js → registry-BTNqmP5o.js} +14 -14
- package/dist/src/{registry-Dp5EqoXc.js → registry-NGnOG2xa.js} +14 -14
- package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration--D6WjzUm.js} +4 -4
- package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-BpIYlb_O.cjs} +4 -4
- package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CJC3E0aW.js} +4 -4
- package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-D6UjE2JT.js} +4 -4
- package/dist/src/{responses-B6ktc3Ra.js → responses-5Gf5HNOi.js} +9 -5
- package/dist/src/{responses-URRzV8qE.js → responses-BVi7xIdv.js} +9 -5
- package/dist/src/{responses-1UFFF9N_.cjs → responses-CUARGrhY.cjs} +9 -5
- package/dist/src/{responses-B3W2JvOQ.js → responses-CrmWv6iz.js} +9 -5
- package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-BeVTKfrv.cjs} +9 -9
- package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-BwbV5U7_.js} +9 -9
- package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-ClAZ6Qwc.js} +9 -9
- package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-DY2qrOpq.js} +9 -9
- package/dist/src/{scanner-DS0109SS.js → scanner-BS-iFIp3.js} +5 -5
- package/dist/src/server/index.js +111 -114
- package/dist/src/{server-B8rqV126.cjs → server-BHOEL8p8.cjs} +3 -3
- package/dist/src/{server-CMJD10J4.js → server-CbiJppij.js} +3 -3
- package/dist/src/server-D18AAlAc.js +3 -0
- package/dist/src/{server-DhMHosWj.js → server-DLYjSFm2.js} +5 -5
- package/dist/src/{server-Ddp8GNMp.js → server-JQYD_Nws.js} +5 -5
- package/dist/src/{shared-7pmVZLNO.js → shared-CRq0gGVf.js} +8 -8
- package/dist/src/{shared-D6IjElRI.js → shared-CSIGeGLl.js} +8 -8
- package/dist/src/{shared-9WHQ1oNE.js → shared-DNvim54U.js} +7 -7
- package/dist/src/{shared-WkgnDkcg.cjs → shared-aHWko3P1.cjs} +8 -8
- package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-C7sOFSF6.js} +5 -5
- package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-DH_7RzEQ.js} +5 -5
- package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-lgMMmniD.js} +5 -5
- package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-mnCUS9Bm.cjs} +5 -5
- package/dist/src/{storage-QdU-SmvD.js → storage-95htjpLs.js} +3 -3
- package/dist/src/{storage-CA-v9V2v.cjs → storage-A4WnAeN3.cjs} +3 -3
- package/dist/src/{storage-CD-GWAdx.js → storage-B2Ql_oq4.js} +3 -3
- package/dist/src/{storage-BU4qcnOb.js → storage-EKVWZBNY.js} +4 -4
- package/dist/src/{strategies-DRJjGTIY.js → strategies-CBI1brSy.js} +10 -10
- package/dist/src/{strategies-7CS3Alao.cjs → strategies-CCcnEbFO.cjs} +9 -9
- package/dist/src/{strategies-CiSeroPH.js → strategies-CD1gHeeQ.js} +9 -9
- package/dist/src/telemetry-BUm_krVX.js +3 -0
- package/dist/src/{telemetry-DmXYcJNV.js → telemetry-BbpmrenM.js} +4 -4
- package/dist/src/{telemetry-DwX9XUN5.js → telemetry-C4bX-6Sr.js} +4 -4
- package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-C_ImlCOk.cjs} +4 -4
- package/dist/src/{telemetry-00ezXr_t.js → telemetry-DOE567Wj.js} +4 -4
- package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-BOP1FsRt.js} +2 -2
- package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-BvmDa_jH.js} +2 -2
- package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-DFBoE8O0.cjs} +2 -2
- package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-xhjOg2b1.js} +2 -2
- package/dist/src/{transcription-Dkd22_4K.js → transcription-BOXDoehT.js} +4 -4
- package/dist/src/{transcription-CfU5loSq.js → transcription-CpVdKc4P.js} +4 -4
- package/dist/src/{transcription-mzuf18Mq.cjs → transcription-D8kkPXg_.cjs} +4 -4
- package/dist/src/{transcription-B8uIgCYX.js → transcription-Z94eV9LR.js} +4 -4
- package/dist/src/{transform-BIMynQsA.js → transform-BufxPIQL.js} +3 -3
- package/dist/src/{transform-DhNkAUs8.cjs → transform-DJkt81VY.cjs} +3 -3
- package/dist/src/{transform-EtD4jAWi.js → transform-DtTfiGoh.js} +3 -3
- package/dist/src/{transform-DmvYBRll.js → transform-Wp6s_5QE.js} +3 -3
- package/dist/src/{util-IYzs5Y04.cjs → util-BHCAeuXx.cjs} +3 -3
- package/dist/src/{util--WMgw7wM.js → util-CMrHV35u.js} +3 -3
- package/dist/src/{util-SPsvFONY.cjs → util-COnzevXE.cjs} +3 -3
- package/dist/src/{util-LKTmNsMQ.js → util-CYev3d-r.js} +16 -3
- package/dist/src/{util-Df8YMvS1.js → util-DGqkTb2-.js} +4 -4
- package/dist/src/{util-CN8om2rz.cjs → util-DNtUsus_.cjs} +4 -4
- package/dist/src/{util-Bx677_k2.js → util-DRfqa4xz.js} +3 -3
- package/dist/src/{util-DiQ3QvBB.js → util-DTq3jq2z.js} +3 -3
- package/dist/src/{util-5WnCSb0h.js → util-DeY58psG.js} +16 -3
- package/dist/src/{util-DNl96nNs.js → util-DpV6KT5i.js} +4 -4
- package/dist/src/{util-I-Rf-KaD.js → util-DwNJzqOV.js} +3 -3
- package/dist/src/{util-kDURhgJW.js → util-ETfU_sS9.js} +4 -4
- package/dist/src/{util-BSIuSLVK.cjs → util-NYQvo1C7.cjs} +16 -3
- package/dist/src/{util-CoQWM76y.js → util-X4KQgyVD.js} +3 -3
- package/dist/src/{util-DURocbYR.js → util-jZRrXe1P.js} +3 -3
- package/dist/src/{util-efByNxcr.js → util-o2Qg5rZv.js} +16 -3
- package/dist/src/{version-BK20a4sw.js → version-CHR-EFec.js} +2 -2
- package/dist/src/{version-eRkNuGv8.js → version-F0YDgb7J.js} +2 -2
- package/dist/src/{version-BWCSaByA.cjs → version-VzUqOBZk.cjs} +2 -2
- package/dist/src/{version-lpHV_53E.js → version-qVEN5qCm.js} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
- package/dist/src/cache-Cf7b4pWE.js +0 -3
- package/dist/src/cloud-p96PA4MH.js +0 -3
- package/dist/src/codex-sdk-BGjVAk23.js +0 -3
- package/dist/src/evalResult-DqzsS6_W.js +0 -3
- package/dist/src/evaluator-DNdJF1Gv.js +0 -3
- package/dist/src/fetch-_YgGd2qv.js +0 -3
- package/dist/src/graders-BDT7dif6.js +0 -3
- package/dist/src/server-BaLytskk.js +0 -3
- 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-
|
|
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-
|
|
6
|
-
import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration-
|
|
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-
|
|
10
|
-
import { t as PromptfooChatCompletionProvider } from "./promptfoo-
|
|
11
|
-
import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-
|
|
12
|
-
import { n as checkExfilTracking } from "./indirectWebPwn-
|
|
13
|
-
import { n as renderPrompt } from "./evaluatorHelpers-
|
|
14
|
-
import { t as Strategies } from "./strategies-
|
|
15
|
-
import { a as fetchTraceContext, i as extractTraceIdFromTraceparent, n as formatTraceForMetadata, r as formatTraceSummary, t as resolveTracingOptions } from "./tracingOptions-
|
|
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
|
-
|
|
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
|
-
})
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
-
import { l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, s as neverGenerateRemote, t as getRemoteGenerationDisabledError } from "./remoteGeneration
|
|
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-
|
|
9
|
-
import { t as PromptfooChatCompletionProvider } from "./promptfoo-
|
|
10
|
-
import { c as getTargetResponse, f as redteamProviderManager, i as externalizeResponseForRedteamHistory, o as getGraderAssertionValue, r as createIterationContext, t as buildGraderResultAssertion } from "./shared-
|
|
11
|
-
import { n as checkExfilTracking } from "./indirectWebPwn-
|
|
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-
|
|
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
|
-
|
|
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
|
-
})
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
const require_accounts = require("./accounts-
|
|
5
|
-
const require_remoteGeneration = require("./remoteGeneration-
|
|
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-
|
|
9
|
-
const require_promptfoo = require("./promptfoo-
|
|
10
|
-
const require_shared = require("./shared-
|
|
11
|
-
const require_indirectWebPwn = require("./indirectWebPwn-
|
|
12
|
-
const require_evaluatorHelpers = require("./evaluatorHelpers-
|
|
13
|
-
const require_strategies = require("./strategies-
|
|
14
|
-
const require_tracingOptions = require("./tracingOptions-
|
|
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
|
-
|
|
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
|
-
})
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
10
|
-
import { t as PromptfooChatCompletionProvider } from "./promptfoo-
|
|
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-
|
|
12
|
-
import { n as checkExfilTracking } from "./indirectWebPwn-
|
|
13
|
-
import { n as renderPrompt } from "./evaluatorHelpers-
|
|
14
|
-
import { t as Strategies } from "./strategies-
|
|
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
|
|
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,
|
|
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-
|
|
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
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
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-
|
|
820
|
+
//# sourceMappingURL=iterativeTree-CJ8a8G9T.js.map
|