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
package/dist/src/index.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
1
|
import { C as getEnvFloat, D as getMaxEvalTimeMs, E as getEvalTimeoutMs, O as isCI, S as getEnvBool, T as getEnvString, a as logger, b as summarizeEvaluateResultForLogging, g as getAjv, h as extractJsonObjects, k as state, m as extractFirstJsonObject, n as globalLogCallback, o as setLogCallback, r as isDebugEnabled, s as setLogLevel, t as getLogLevel, v as orderKeys, w as getEnvInt, y as safeJsonStringify } from "./logger-Ct2S6Yx-.js";
|
|
2
2
|
import { t as invariant } from "./invariant-Ddh24eXh.js";
|
|
3
3
|
import { $ as riskCategorySeverityMap, A as RedteamConfigSchema, At as DocumentMediaInjectionPlacementValues, B as isUuid, Bt as getInputDescription, C as TestGeneratorConfigSchema, Ct as CODING_AGENT_CORE_PLUGINS, D as VarsSchema, Dt as BaseTokenUsageSchema, E as UnifiedConfigSchema, F as PartialGenerationError, Ft as InputDefinitionSchema, G as STRATEGY_COLLECTIONS, Gt as isProviderOptions, Ht as normalizeInputDefinition, I as PluginConfigSchema, It as InputTypeSchema, K as STRATEGY_COLLECTION_MAPPINGS, L as PolicyObjectSchema, Lt as InputTypeValues, Mt as DocxInjectionPlacementValues, N as ProvidersSchema, Nt as InputConfigSchema, O as isGradingResult, Ot as CompletionTokenDetailsSchema, P as ConversationMessageSchema, Pt as InputDefinitionObjectSchema, R as StrategyConfigSchema, Rt as InputsSchema, S as TestCasesWithMetadataSchema, St as UNALIGNED_PROVIDER_HARM_PLUGINS, T as TestSuiteSchema, U as DEFAULT_STRATEGIES, Ut as normalizeInputs, Vt as getInputType, Wt as isApiProvider, X as Severity, Y as isFanoutStrategy, Z as categoryAliases, _ as ScenarioSchema, _t as REDTEAM_PROVIDER_HARM_PLUGINS, a as AtomicTestCaseSchema, at as FINANCIAL_PLUGINS, b as TestCaseWithVarsFileSchema, bt as TEEN_SAFETY_PLUGINS, c as CompletedPromptSchema, ct as INSURANCE_PLUGINS, d as EvaluateOptionsSchema, dt as MEDICAL_PLUGINS, et as ALIASED_PLUGIN_MAPPINGS, f as GradingConfigSchema, ft as MULTI_INPUT_EXCLUDED_PLUGINS, g as ResultFailureReason, gt as PLUGIN_CATEGORIES, h as OutputFileExtension, ht as PII_PLUGINS, i as AssertionTypeSchema, it as DEFAULT_PLUGINS, j as PromptSchema, jt as DocxInjectionPlacementSchema, k as isResultFailureReason, kt as DocumentMediaInjectionPlacementSchema, l as DerivedMetricSchema, lt as LLAMA_GUARD_ENABLED_CATEGORIES, m as OutputConfigSchema, mt as PHARMACY_PLUGINS, n as AssertionSchema, nt as CANARY_BREAKING_STRATEGY_IDS, o as BaseAssertionTypesSchema, ot as FOUNDATION_PLUGINS, p as NotPrefixedAssertionTypesSchema, pt as MULTI_INPUT_VAR, q as getDefaultNFanout, r as AssertionSetSchema, rt as DATASET_EXEMPT_PLUGINS, s as CommandLineOptionsSchema, st as HARM_PLUGINS, t as AssertionOrSetSchema, tt as BIAS_PLUGINS, u as EvalResultsFilterMode, ut as LLAMA_GUARD_REPLICATE_PROVIDER, v as SpecialAssertionTypesSchema, vt as REMOTE_ONLY_PLUGIN_IDS, w as TestSuiteConfigSchema, wt as CODING_AGENT_PLUGINS, x as TestCasesWithMetadataPromptSchema, xt as TELECOM_PLUGINS, y as TestCaseSchema, zt as buildInputPromptDescription } from "./types-D6glLbdF.js";
|
|
4
|
-
import { F as getShareApiBaseUrl, I as getShareViewBaseUrl, L as FILE_METADATA_KEY, N as TERMINAL_MAX_WIDTH, P as getDefaultShareViewBaseUrl, R as HUMAN_ASSERTION_TYPE, T as cloudConfig, _ as isPromptfooSampleTarget, b as parseChatPrompt, c as getCurrentTimestamp, l as sleep, n as fetchWithRetries, p as REQUEST_TIMEOUT_MS, r as fetchWithTimeout, t as fetchWithProxy, w as CloudConfig } from "./fetch-
|
|
5
|
-
import { n as VERSION } from "./version-
|
|
4
|
+
import { F as getShareApiBaseUrl, I as getShareViewBaseUrl, L as FILE_METADATA_KEY, N as TERMINAL_MAX_WIDTH, P as getDefaultShareViewBaseUrl, R as HUMAN_ASSERTION_TYPE, T as cloudConfig, _ as isPromptfooSampleTarget, b as parseChatPrompt, c as getCurrentTimestamp, l as sleep, n as fetchWithRetries, p as REQUEST_TIMEOUT_MS, r as fetchWithTimeout, t as fetchWithProxy, w as CloudConfig } from "./fetch-Doks14zQ.js";
|
|
5
|
+
import { n as VERSION } from "./version-qVEN5qCm.js";
|
|
6
6
|
import { i as isJavascriptFile } from "./fileExtensions-CXRfY3Ss.js";
|
|
7
|
-
import { c as setUserEmail, i as getUserEmail, o as isLoggedIntoCloud, r as getAuthor, s as promptForEmailUnverified, t as checkEmailStatusAndMaybeExit } from "./accounts-
|
|
7
|
+
import { c as setUserEmail, i as getUserEmail, o as isLoggedIntoCloud, r as getAuthor, s as promptForEmailUnverified, t as checkEmailStatusAndMaybeExit } from "./accounts-DAv_0iE7.js";
|
|
8
8
|
import { r as importModule, t as getDirectory } from "./esm-BTK1W7lG.js";
|
|
9
9
|
import { a as extractVariablesFromTemplates, i as extractVariablesFromTemplate, o as getNunjucksEngine, r as analyzeTemplateReference, t as renderEnvOnlyInObject } from "./render-DFfDeYUK.js";
|
|
10
10
|
import { t as providerRegistry } from "./providerRegistry-DHcFiVWX.js";
|
|
11
|
-
import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-
|
|
12
|
-
import { r as promptYesNo } from "./server-
|
|
13
|
-
import { a as getCloudDatabaseId, c as getPluginSeverityOverridesFromCloud, d as isCloudProvider, i as checkCloudPermissions, o as getEvalConfigFromCloud, p as resolveTeamId, s as getOrgContext } from "./storage-
|
|
11
|
+
import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-CJC3E0aW.js";
|
|
12
|
+
import { r as promptYesNo } from "./server-CbiJppij.js";
|
|
13
|
+
import { a as getCloudDatabaseId, c as getPluginSeverityOverridesFromCloud, d as isCloudProvider, i as checkCloudPermissions, o as getEvalConfigFromCloud, p as resolveTeamId, s as getOrgContext } from "./storage-B2Ql_oq4.js";
|
|
14
14
|
import { r as runPython } from "./pythonUtils-D0BYebvX.js";
|
|
15
|
-
import { A as readFilters, M as loadFunction, N as parseFileUrl, O as maybeLoadToolsFromExternalFile, T as maybeLoadFromExternalFile, _ as isProviderAllowed, a as setupEnv, b as normalizeProviderRef, c as filterRuntimeVars, d as checkProviderApiKeys, f as doesProviderRefMatch, g as isOpenAiProvider, h as isGoogleProvider, i as fetchCsvFromGoogleSheet, j as readOutput, l as getTestCaseDeduplicationKey, m as isAnthropicProvider, n as writeMultipleOutputs, o as deduplicateTestCases, p as getProviderDescription, r as writeOutput, s as extractRuntimeVars, t as printBorder, u as resultIsForTestCase, w as maybeLoadConfigFromExternalFile } from "./util-
|
|
15
|
+
import { A as readFilters, M as loadFunction, N as parseFileUrl, O as maybeLoadToolsFromExternalFile, T as maybeLoadFromExternalFile, _ as isProviderAllowed, a as setupEnv, b as normalizeProviderRef, c as filterRuntimeVars, d as checkProviderApiKeys, f as doesProviderRefMatch, g as isOpenAiProvider, h as isGoogleProvider, i as fetchCsvFromGoogleSheet, j as readOutput, l as getTestCaseDeduplicationKey, m as isAnthropicProvider, n as writeMultipleOutputs, o as deduplicateTestCases, p as getProviderDescription, r as writeOutput, s as extractRuntimeVars, t as printBorder, u as resultIsForTestCase, w as maybeLoadConfigFromExternalFile } from "./util-DRfqa4xz.js";
|
|
16
16
|
import { n as sha256, t as randomSequence } from "./createHash-BtbSX3mj.js";
|
|
17
|
-
import { c as NON_TRANSIENT_HTTP_STATUSES, i as getCache, l as isNonTransientHttpStatus, n as disableCache, r as fetchWithCache, s as withCacheNamespace, t as cache_exports } from "./cache-
|
|
18
|
-
import { t as OpenAiChatCompletionProvider } from "./chat-
|
|
19
|
-
import { h as validateFunctionCall } from "./transform-
|
|
20
|
-
import { l as validateFunctionCall$1 } from "./util-
|
|
21
|
-
import { _ as AIStudioChatProvider, a as resolveProvider, f as MCPProvider, g as GoogleLiveProvider, h as VertexChatProvider, n as loadApiProvider, o as resolveProviderConfigs, r as loadApiProviders, t as getProviderIds } from "./providers-
|
|
17
|
+
import { c as NON_TRANSIENT_HTTP_STATUSES, i as getCache, l as isNonTransientHttpStatus, n as disableCache, r as fetchWithCache, s as withCacheNamespace, t as cache_exports } from "./cache-DdriHsNX.js";
|
|
18
|
+
import { t as OpenAiChatCompletionProvider } from "./chat-BBEnnpQk.js";
|
|
19
|
+
import { h as validateFunctionCall } from "./transform-Wp6s_5QE.js";
|
|
20
|
+
import { l as validateFunctionCall$1 } from "./util-CYev3d-r.js";
|
|
21
|
+
import { _ as AIStudioChatProvider, a as resolveProvider, f as MCPProvider, g as GoogleLiveProvider, h as VertexChatProvider, n as loadApiProvider, o as resolveProviderConfigs, r as loadApiProviders, t as getProviderIds } from "./providers-BGc7tDtQ.js";
|
|
22
22
|
import { a as createEmptyTokenUsage, i as createEmptyAssertions, n as accumulateResponseTokenUsage, o as normalizeTokenUsage, r as accumulateTokenUsage, t as accumulateAssertionTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
|
|
23
23
|
import { t as ellipsize } from "./text-DwYK5EBn.js";
|
|
24
|
-
import { t as telemetry } from "./telemetry-
|
|
24
|
+
import { t as telemetry } from "./telemetry-C4bX-6Sr.js";
|
|
25
25
|
import { a as evalsTable, c as evalsToTagsTable, d as tagsTable, i as evalResultsTable, l as promptsTable, m as getDbSignalPath, o as evalsToDatasetsTable, p as getDb, r as datasetsTable, s as evalsToPromptsTable } from "./tables-CRSXQ2Ke.js";
|
|
26
26
|
import { t as getBlobByHash } from "./blobs-Dwef1Ao1.js";
|
|
27
27
|
import { t as getProcessShim } from "./processShim-BcGzU8fY.js";
|
|
28
28
|
import { n as loadFromPackage, t as isPackagePath } from "./packageParser-CgE-ziRo.js";
|
|
29
29
|
import { n as runRuby } from "./rubyUtils-CnlW8AYb.js";
|
|
30
|
-
import {
|
|
31
|
-
import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, o as getSessionId,
|
|
32
|
-
import { n as PromptfooHarmfulCompletionProvider } from "./promptfoo-
|
|
33
|
-
import { $ as readProviderPromptMap, A as ExcessiveAgencyPlugin, At as withProviderCallExecutionContext, B as retryWithDeduplication, C as PlinyPlugin, Ct as processFileReference, D as ImitationPlugin, Dt as getAndCheckProvider, E as IntentPlugin, Et as callProviderWithContext, F as BeavertailsPlugin, G as matchesFactuality, H as fetchHuggingFaceDataset, I as AegisPlugin, J as matchesPiScore, K as matchesGEval, L as RedteamGraderBase, M as DebugAccessPlugin, N as CrossSessionLeakPlugin, O as HarmbenchPlugin, Ot as getGradingProvider, P as ContractPlugin, Q as readPrompts, R as RedteamPluginBase, S as makeInlinePolicyIdSync, St as loadFromJavaScriptFile, T as OverreliancePlugin, Tt as DEFAULT_ANTHROPIC_MODEL, U as isGraderFailure, V as sampleArray, W as matchesClosedQa, X as doRemoteGrading, Y as matchesTrajectoryGoalSuccess, Z as processPrompts, _ as PromptExtractionPlugin, _t as normalizeMatcherTokenUsage, a as VLGuardPlugin, at as CONTEXT_FAITHFULNESS_NLI_STATEMENTS, b as determinePolicyTypeFromId, bt as coerceString, c as ToxicChatPlugin, ct as CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN, d as TeenSafetyDangerousRoleplayPlugin, dt as loadRubricPrompt, et as DEFAULT_WEB_SEARCH_PROMPT, f as TeenSafetyDangerousContentPlugin, ft as renderLlmRubricPrompt, g as RbacPlugin, gt as fail, h as ShellInjectionPlugin, ht as euclideanDistance, i as VLSUPlugin, it as CONTEXT_FAITHFULNESS_LONGFORM, j as DivergentRepetitionPlugin, k as HallucinationPlugin, kt as getProviderCallExecutionContext, l as ToolDiscoveryPlugin, lt as CONTEXT_RELEVANCE, m as SqlInjectionPlugin, mt as dotProduct, n as getGraderById, nt as SUGGEST_PROMPTS_SYSTEM_MESSAGE, o as UnverifiableClaimsPlugin, ot as CONTEXT_RECALL, p as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, pt as cosineSimilarity, q as matchesLlmRubric, rt as ANSWER_RELEVANCY_GENERATE, s as UnsafeBenchPlugin, st as CONTEXT_RECALL_ATTRIBUTED_TOKEN, t as GRADERS, tt as SELECT_BEST_PROMPT, u as TeenSafetyHarmfulBodyIdealsPlugin, ut as CONTEXT_RELEVANCE_BAD, v as PoliticsPlugin, vt as splitIntoSentences, w as getPiiLeakTestsForCategory, wt as getDefaultProviders, x as isValidPolicyObject, xt as getFinalTest, y as PolicyPlugin, yt as tryParse, z as getCustomPolicies } from "./graders-
|
|
34
|
-
import { f as redteamProviderManager, g as createProviderRateLimitOptions, h as createRateLimitRegistry, m as TokenUsageTracker } from "./shared-
|
|
30
|
+
import { t as buildPromptInputDescriptions } from "./inputVariables-DUGMb9Ka.js";
|
|
31
|
+
import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, o as getSessionId, s as getShortPluginId } from "./util-DpV6KT5i.js";
|
|
32
|
+
import { a as assertRemoteMaterializationHandled, l as requiresRemoteMaterialization, n as PromptfooHarmfulCompletionProvider } from "./promptfoo-CqEpj6Sr.js";
|
|
33
|
+
import { $ as readProviderPromptMap, A as ExcessiveAgencyPlugin, At as withProviderCallExecutionContext, B as retryWithDeduplication, C as PlinyPlugin, Ct as processFileReference, D as ImitationPlugin, Dt as getAndCheckProvider, E as IntentPlugin, Et as callProviderWithContext, F as BeavertailsPlugin, G as matchesFactuality, H as fetchHuggingFaceDataset, I as AegisPlugin, J as matchesPiScore, K as matchesGEval, L as RedteamGraderBase, M as DebugAccessPlugin, N as CrossSessionLeakPlugin, O as HarmbenchPlugin, Ot as getGradingProvider, P as ContractPlugin, Q as readPrompts, R as RedteamPluginBase, S as makeInlinePolicyIdSync, St as loadFromJavaScriptFile, T as OverreliancePlugin, Tt as DEFAULT_ANTHROPIC_MODEL, U as isGraderFailure, V as sampleArray, W as matchesClosedQa, X as doRemoteGrading, Y as matchesTrajectoryGoalSuccess, Z as processPrompts, _ as PromptExtractionPlugin, _t as normalizeMatcherTokenUsage, a as VLGuardPlugin, at as CONTEXT_FAITHFULNESS_NLI_STATEMENTS, b as determinePolicyTypeFromId, bt as coerceString, c as ToxicChatPlugin, ct as CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN, d as TeenSafetyDangerousRoleplayPlugin, dt as loadRubricPrompt, et as DEFAULT_WEB_SEARCH_PROMPT, f as TeenSafetyDangerousContentPlugin, ft as renderLlmRubricPrompt, g as RbacPlugin, gt as fail, h as ShellInjectionPlugin, ht as euclideanDistance, i as VLSUPlugin, it as CONTEXT_FAITHFULNESS_LONGFORM, j as DivergentRepetitionPlugin, k as HallucinationPlugin, kt as getProviderCallExecutionContext, l as ToolDiscoveryPlugin, lt as CONTEXT_RELEVANCE, m as SqlInjectionPlugin, mt as dotProduct, n as getGraderById, nt as SUGGEST_PROMPTS_SYSTEM_MESSAGE, o as UnverifiableClaimsPlugin, ot as CONTEXT_RECALL, p as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, pt as cosineSimilarity, q as matchesLlmRubric, rt as ANSWER_RELEVANCY_GENERATE, s as UnsafeBenchPlugin, st as CONTEXT_RECALL_ATTRIBUTED_TOKEN, t as GRADERS, tt as SELECT_BEST_PROMPT, u as TeenSafetyHarmfulBodyIdealsPlugin, ut as CONTEXT_RELEVANCE_BAD, v as PoliticsPlugin, vt as splitIntoSentences, w as getPiiLeakTestsForCategory, wt as getDefaultProviders, x as isValidPolicyObject, xt as getFinalTest, y as PolicyPlugin, yt as tryParse, z as getCustomPolicies } from "./graders-KXzjnIim.js";
|
|
34
|
+
import { f as redteamProviderManager, g as createProviderRateLimitOptions, h as createRateLimitRegistry, m as TokenUsageTracker } from "./shared-CSIGeGLl.js";
|
|
35
35
|
import { i as generateIdFromPrompt, t as hashPrompt } from "./utils-BGY69tk_.js";
|
|
36
36
|
import { a as getTransformLabel, i as getTransformErrorMessage, n as TRANSFORM_KEYS, o as transform, r as TransformInputType, t as INLINE_FUNCTION_LABEL } from "./transform-CGt7Kt3y2.js";
|
|
37
37
|
import { t as getTraceStore } from "./store-HpopRVzl.js";
|
|
38
|
-
import { n as isBlobStorageEnabled, t as extractAndStoreBinaryData } from "./extractor-
|
|
38
|
+
import { n as isBlobStorageEnabled, t as extractAndStoreBinaryData } from "./extractor-D3Fv_Tdh.js";
|
|
39
39
|
import { i as throwIfTargetPromptExceedsMaxChars, n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-B9nZEfO6.js";
|
|
40
|
-
import { n as checkExfilTracking } from "./indirectWebPwn-
|
|
40
|
+
import { n as checkExfilTracking } from "./indirectWebPwn-CiWB-vVH.js";
|
|
41
41
|
import { n as getFirstStringAttribute, r as getToolNameFromAttributes, t as TOOL_ARGUMENT_ATTRIBUTE_KEYS } from "./toolAttributes-DJ9ZEKXD.js";
|
|
42
|
-
import { i as filterFiniteScores, n as renderPrompt, r as runExtensionHook, t as collectFileMetadata } from "./evaluatorHelpers-
|
|
43
|
-
import { r as sanitizeProvider, t as EvalResult } from "./evalResult-
|
|
44
|
-
import { i as pluginMatchesStrategyTargets, n as loadStrategy, r as validateStrategies, t as Strategies } from "./strategies-
|
|
42
|
+
import { i as filterFiniteScores, n as renderPrompt, r as runExtensionHook, t as collectFileMetadata } from "./evaluatorHelpers-CrRObe2z.js";
|
|
43
|
+
import { r as sanitizeProvider, t as EvalResult } from "./evalResult-PGqEbasb.js";
|
|
44
|
+
import { i as pluginMatchesStrategyTargets, n as loadStrategy, r as validateStrategies, t as Strategies } from "./strategies-CD1gHeeQ.js";
|
|
45
45
|
import * as fs$2 from "fs";
|
|
46
46
|
import fs, { createWriteStream } from "fs";
|
|
47
47
|
import * as path$2 from "path";
|
|
@@ -6313,7 +6313,7 @@ async function resolveDefaultTestProvider(defaultTest, testCase) {
|
|
|
6313
6313
|
const defaultProvider = defaultTest.provider;
|
|
6314
6314
|
if (isApiProvider(defaultProvider)) return defaultProvider;
|
|
6315
6315
|
if (typeof defaultProvider === "object" && defaultProvider.id) {
|
|
6316
|
-
const { loadApiProvider } = await import("./providers-
|
|
6316
|
+
const { loadApiProvider } = await import("./providers-BGc7tDtQ.js").then((n) => n.i);
|
|
6317
6317
|
return loadApiProvider(typeof defaultProvider.id === "function" ? defaultProvider.id() : defaultProvider.id, { options: defaultProvider });
|
|
6318
6318
|
}
|
|
6319
6319
|
return defaultProvider;
|
|
@@ -6473,7 +6473,7 @@ function buildRepeatCacheContextByTestIdx(runEvalOptions) {
|
|
|
6473
6473
|
async function filterCompletedResumeSteps(runEvalOptions, evalRecord) {
|
|
6474
6474
|
if (!state.resume || !evalRecord.persisted) return;
|
|
6475
6475
|
try {
|
|
6476
|
-
const { default: EvalResult } = await import("./evalResult-
|
|
6476
|
+
const { default: EvalResult } = await import("./evalResult-PGqEbasb.js").then((n) => n.n);
|
|
6477
6477
|
const completedPairs = await EvalResult.getCompletedIndexPairs(evalRecord.id, { excludeErrors: state.retryMode });
|
|
6478
6478
|
const originalCount = runEvalOptions.length;
|
|
6479
6479
|
for (let i = runEvalOptions.length - 1; i >= 0; i--) {
|
|
@@ -12118,6 +12118,7 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
12118
12118
|
logger.error(`Error generating test cases for ${key}: ${statusText} ${JSON.stringify(data)}`);
|
|
12119
12119
|
return [];
|
|
12120
12120
|
}
|
|
12121
|
+
if (requiresRemoteMaterialization(config?.inputs)) assertRemoteMaterializationHandled(data, `Remote plugin generation for ${key}`);
|
|
12121
12122
|
const ret = data.result;
|
|
12122
12123
|
logger.debug(`Received remote generation for ${key}:\n${JSON.stringify(ret)}`);
|
|
12123
12124
|
return ret;
|
|
@@ -12126,31 +12127,6 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
12126
12127
|
return [];
|
|
12127
12128
|
}
|
|
12128
12129
|
}
|
|
12129
|
-
async function materializeRemoteTestCaseInputs({ config, injectVar, pluginId, provider, purpose, testCases }) {
|
|
12130
|
-
const inputs = config.inputs;
|
|
12131
|
-
if (!inputs || Object.keys(inputs).length === 0) return testCases;
|
|
12132
|
-
return Promise.all(testCases.map(async (testCase, materializationIndex) => {
|
|
12133
|
-
const inputVars = extractInputVarsFromPrompt(String(testCase.vars?.[injectVar] ?? ""), inputs);
|
|
12134
|
-
if (!inputVars) return testCase;
|
|
12135
|
-
const materializedVars = await materializeInputVariablesWithMetadata(inputVars, inputs, {
|
|
12136
|
-
materializationIndex,
|
|
12137
|
-
pluginId,
|
|
12138
|
-
provider,
|
|
12139
|
-
purpose
|
|
12140
|
-
});
|
|
12141
|
-
return {
|
|
12142
|
-
...testCase,
|
|
12143
|
-
vars: {
|
|
12144
|
-
...testCase.vars || {},
|
|
12145
|
-
...materializedVars.vars
|
|
12146
|
-
},
|
|
12147
|
-
metadata: {
|
|
12148
|
-
...testCase.metadata || {},
|
|
12149
|
-
...materializedVars.metadata ? { inputMaterialization: materializedVars.metadata } : {}
|
|
12150
|
-
}
|
|
12151
|
-
};
|
|
12152
|
-
}));
|
|
12153
|
-
}
|
|
12154
12130
|
function createPluginFactory(PluginClass, key, validate) {
|
|
12155
12131
|
return {
|
|
12156
12132
|
key,
|
|
@@ -12162,14 +12138,7 @@ function createPluginFactory(PluginClass, key, validate) {
|
|
|
12162
12138
|
return new PluginClass(provider, purpose, injectVar, configWithDefaults).generateTests(n, delayMs);
|
|
12163
12139
|
}
|
|
12164
12140
|
const pluginId = getShortPluginId(key);
|
|
12165
|
-
const testCases = await
|
|
12166
|
-
config: configWithDefaults ?? {},
|
|
12167
|
-
injectVar,
|
|
12168
|
-
pluginId,
|
|
12169
|
-
provider,
|
|
12170
|
-
purpose,
|
|
12171
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
12172
|
-
});
|
|
12141
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
12173
12142
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
12174
12143
|
return testCases.map((testCase) => ({
|
|
12175
12144
|
...testCase,
|
|
@@ -12256,14 +12225,7 @@ const piiPlugins = PII_PLUGINS.map((category) => ({
|
|
|
12256
12225
|
action: async (params) => {
|
|
12257
12226
|
if (shouldGenerateRemote()) {
|
|
12258
12227
|
const pluginId = getShortPluginId(category);
|
|
12259
|
-
const testCases = await
|
|
12260
|
-
config: params.config ?? {},
|
|
12261
|
-
injectVar: params.injectVar,
|
|
12262
|
-
pluginId,
|
|
12263
|
-
provider: params.provider,
|
|
12264
|
-
purpose: params.purpose,
|
|
12265
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
12266
|
-
});
|
|
12228
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
12267
12229
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
12268
12230
|
return testCases.map((testCase) => ({
|
|
12269
12231
|
...testCase,
|
|
@@ -12295,14 +12257,7 @@ const biasPlugins = BIAS_PLUGINS.map((category) => ({
|
|
|
12295
12257
|
return [];
|
|
12296
12258
|
}
|
|
12297
12259
|
const pluginId = getShortPluginId(category);
|
|
12298
|
-
const testCases = await
|
|
12299
|
-
config: params.config ?? {},
|
|
12300
|
-
injectVar: params.injectVar,
|
|
12301
|
-
pluginId,
|
|
12302
|
-
provider: params.provider,
|
|
12303
|
-
purpose: params.purpose,
|
|
12304
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
12305
|
-
});
|
|
12260
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
12306
12261
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
12307
12262
|
return testCases.map((testCase) => ({
|
|
12308
12263
|
...testCase,
|
|
@@ -12321,21 +12276,14 @@ function createRemotePlugin(key, validate) {
|
|
|
12321
12276
|
return {
|
|
12322
12277
|
key,
|
|
12323
12278
|
validate,
|
|
12324
|
-
action: async ({
|
|
12279
|
+
action: async ({ purpose, injectVar, n, config }) => {
|
|
12325
12280
|
const configWithDefaults = applyDefaultRemotePluginConfig(key, config);
|
|
12326
12281
|
if (neverGenerateRemote()) {
|
|
12327
12282
|
logger.error(getRemoteGenerationExplicitlyDisabledError(`${key} plugin`));
|
|
12328
12283
|
return [];
|
|
12329
12284
|
}
|
|
12330
12285
|
const pluginId = getShortPluginId(key);
|
|
12331
|
-
const testCases = await
|
|
12332
|
-
config: configWithDefaults ?? {},
|
|
12333
|
-
injectVar,
|
|
12334
|
-
pluginId,
|
|
12335
|
-
provider,
|
|
12336
|
-
purpose,
|
|
12337
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
12338
|
-
});
|
|
12286
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
12339
12287
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
12340
12288
|
const testsWithMetadata = testCases.map((testCase) => ({
|
|
12341
12289
|
...testCase,
|
|
@@ -12402,6 +12350,15 @@ async function validateSharpDependency(strategies, plugins, checkSharp = isSharp
|
|
|
12402
12350
|
}
|
|
12403
12351
|
//#endregion
|
|
12404
12352
|
//#region src/redteam/index.ts
|
|
12353
|
+
const MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY = "__promptfooMaterializedMultiInputPrompt";
|
|
12354
|
+
function getMaterializedMultiInputPromptSnapshot(metadata) {
|
|
12355
|
+
const snapshot = metadata?.[MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY];
|
|
12356
|
+
return typeof snapshot === "string" ? snapshot : void 0;
|
|
12357
|
+
}
|
|
12358
|
+
function getMaterializedMultiInputPromptMetadata(vars) {
|
|
12359
|
+
const prompt = vars?.[MULTI_INPUT_VAR];
|
|
12360
|
+
return typeof prompt === "string" ? { [MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY]: prompt } : void 0;
|
|
12361
|
+
}
|
|
12405
12362
|
function getPolicyText(metadata) {
|
|
12406
12363
|
if (!metadata || metadata.policy === void 0 || metadata.policy === null) return;
|
|
12407
12364
|
const policyValue = metadata.policy;
|
|
@@ -12414,12 +12371,19 @@ function getPolicyText(metadata) {
|
|
|
12414
12371
|
async function rematerializeStrategyInputVars(testCase, injectVar, provider, purpose, materializationIndex) {
|
|
12415
12372
|
const inputs = testCase.metadata?.pluginConfig?.inputs;
|
|
12416
12373
|
const inputMaterialization = testCase.metadata?.inputMaterialization;
|
|
12417
|
-
|
|
12374
|
+
const materializedPromptSnapshot = getMaterializedMultiInputPromptSnapshot(testCase.metadata);
|
|
12375
|
+
const currentInjectVar = testCase.vars?.[injectVar];
|
|
12376
|
+
if (!inputs || Object.keys(inputs).length === 0 || !currentInjectVar) return {
|
|
12377
|
+
inputMaterialization,
|
|
12378
|
+
vars: testCase.vars
|
|
12379
|
+
};
|
|
12380
|
+
const promptChangedSinceMaterialization = typeof currentInjectVar === "string" && typeof materializedPromptSnapshot === "string" && currentInjectVar !== materializedPromptSnapshot;
|
|
12381
|
+
if (Boolean(inputMaterialization) && Object.keys(inputs).every((key) => Object.prototype.hasOwnProperty.call(testCase.vars ?? {}, key)) && !promptChangedSinceMaterialization) return {
|
|
12418
12382
|
inputMaterialization,
|
|
12419
12383
|
vars: testCase.vars
|
|
12420
12384
|
};
|
|
12421
12385
|
try {
|
|
12422
|
-
const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(
|
|
12386
|
+
const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(currentInjectVar)), inputs, {
|
|
12423
12387
|
materializationIndex,
|
|
12424
12388
|
pluginId: String(testCase.metadata?.pluginId || "unknown-plugin"),
|
|
12425
12389
|
provider,
|
|
@@ -12651,7 +12615,8 @@ function addLanguageToPluginMetadata(test, lang, plugin, maxCharsPerMessage, tes
|
|
|
12651
12615
|
...test.metadata?.modifiers,
|
|
12652
12616
|
...languageToAdd
|
|
12653
12617
|
},
|
|
12654
|
-
...languageToAdd
|
|
12618
|
+
...languageToAdd,
|
|
12619
|
+
...getMaterializedMultiInputPromptMetadata(test.vars)
|
|
12655
12620
|
}
|
|
12656
12621
|
};
|
|
12657
12622
|
}
|
|
@@ -12750,7 +12715,8 @@ async function applyStrategies(testCases, strategies, injectVar, provider, purpo
|
|
|
12750
12715
|
...t?.metadata?.pluginId && { pluginId: t.metadata.pluginId },
|
|
12751
12716
|
...t?.metadata?.pluginConfig && { pluginConfig: t.metadata.pluginConfig },
|
|
12752
12717
|
...inputMaterialization && { inputMaterialization },
|
|
12753
|
-
...Object.keys(strategyConfig).length > 0 && { strategyConfig }
|
|
12718
|
+
...Object.keys(strategyConfig).length > 0 && { strategyConfig },
|
|
12719
|
+
...getMaterializedMultiInputPromptMetadata(vars)
|
|
12754
12720
|
}
|
|
12755
12721
|
};
|
|
12756
12722
|
})));
|
|
@@ -13096,14 +13062,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13096
13062
|
}
|
|
13097
13063
|
});
|
|
13098
13064
|
const languageResults = await Promise.allSettled(languagePromises);
|
|
13099
|
-
for (const result of languageResults) if (result.status === "fulfilled") {
|
|
13065
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
13100
13066
|
const { lang, tests, requested, generated } = result.value;
|
|
13101
13067
|
allPluginTests.push(...tests);
|
|
13102
13068
|
resultsPerLanguage[lang || "default"] = {
|
|
13103
13069
|
requested,
|
|
13104
13070
|
generated
|
|
13105
13071
|
};
|
|
13106
|
-
} else
|
|
13072
|
+
} else {
|
|
13073
|
+
const lang = languages[index];
|
|
13074
|
+
logger.warn(`[Language Processing] Error generating tests for ${plugin.id}: ${result.reason}`);
|
|
13075
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13076
|
+
requested: plugin.numTests,
|
|
13077
|
+
generated: 0
|
|
13078
|
+
};
|
|
13079
|
+
}
|
|
13107
13080
|
logger.debug(`[Language Processing] Total tests generated for ${plugin.id}: ${allPluginTests.length} (across ${languages.length} language(s))`);
|
|
13108
13081
|
if (!Array.isArray(allPluginTests) || allPluginTests.length === 0) logger.warn(`Failed to generate tests for ${plugin.id}`);
|
|
13109
13082
|
else {
|
|
@@ -13137,35 +13110,51 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13137
13110
|
generated: allPluginTests.length
|
|
13138
13111
|
};
|
|
13139
13112
|
} else if (plugin.id.startsWith("file://")) try {
|
|
13140
|
-
const
|
|
13141
|
-
const
|
|
13142
|
-
|
|
13143
|
-
|
|
13113
|
+
const languageConfig = plugin.config?.language ?? language;
|
|
13114
|
+
const languages = Array.isArray(languageConfig) ? languageConfig : languageConfig ? [languageConfig] : [void 0];
|
|
13115
|
+
const allCustomTests = [];
|
|
13116
|
+
const resultsPerLanguage = {};
|
|
13117
|
+
const languagePromises = languages.map(async (lang) => {
|
|
13118
|
+
const resolvedConfig = {
|
|
13144
13119
|
...resolvePluginConfigWithMaxChars(plugin.config, maxCharsPerMessage),
|
|
13145
|
-
...
|
|
13120
|
+
...lang ? { language: lang } : {},
|
|
13121
|
+
...hasMultipleInputs ? { inputs } : {}
|
|
13146
13122
|
};
|
|
13147
|
-
const
|
|
13148
|
-
...
|
|
13123
|
+
const customPluginConfig = {
|
|
13124
|
+
...resolvedConfig,
|
|
13125
|
+
modifiers: buildRedteamModifiers({
|
|
13149
13126
|
maxCharsPerMessage,
|
|
13150
|
-
pluginConfig:
|
|
13127
|
+
pluginConfig: resolvedConfig,
|
|
13151
13128
|
testGenerationInstructions
|
|
13152
|
-
})
|
|
13153
|
-
...t.metadata?.modifiers
|
|
13129
|
+
})
|
|
13154
13130
|
};
|
|
13131
|
+
const testCasesWithMetadata = filterOversizedTestCases((await new CustomPlugin(redteamProvider, purpose, injectVar, plugin.id, customPluginConfig).generateTests(plugin.numTests, delay)).map((t) => addLanguageToPluginMetadata(t, lang, plugin, maxCharsPerMessage, testGenerationInstructions)), injectVar, `Custom plugin ${plugin.id}`, maxCharsPerMessage);
|
|
13155
13132
|
return {
|
|
13156
|
-
|
|
13157
|
-
|
|
13158
|
-
|
|
13159
|
-
|
|
13160
|
-
|
|
13161
|
-
|
|
13162
|
-
|
|
13163
|
-
|
|
13133
|
+
lang,
|
|
13134
|
+
tests: testCasesWithMetadata,
|
|
13135
|
+
requested: plugin.numTests,
|
|
13136
|
+
generated: testCasesWithMetadata.length
|
|
13137
|
+
};
|
|
13138
|
+
});
|
|
13139
|
+
const languageResults = await Promise.allSettled(languagePromises);
|
|
13140
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
13141
|
+
const { lang, tests, requested, generated } = result.value;
|
|
13142
|
+
allCustomTests.push(...tests);
|
|
13143
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13144
|
+
requested,
|
|
13145
|
+
generated
|
|
13164
13146
|
};
|
|
13165
|
-
}
|
|
13147
|
+
} else {
|
|
13148
|
+
const lang = languages[index];
|
|
13149
|
+
logger.warn(`[Language Processing] Error generating tests for custom plugin ${plugin.id}: ${result.reason}`);
|
|
13150
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13151
|
+
requested: plugin.numTests,
|
|
13152
|
+
generated: 0
|
|
13153
|
+
};
|
|
13154
|
+
}
|
|
13166
13155
|
if (needsGoalExtraction) {
|
|
13167
|
-
logger.debug(`Extracting goal for ${
|
|
13168
|
-
for (const testCase of
|
|
13156
|
+
logger.debug(`Extracting goal for ${allCustomTests.length} custom tests from ${plugin.id}...`);
|
|
13157
|
+
for (const testCase of allCustomTests) {
|
|
13169
13158
|
const promptVar = testCase.vars?.[injectVar];
|
|
13170
13159
|
const prompt = Array.isArray(promptVar) ? promptVar[0] : String(promptVar);
|
|
13171
13160
|
const policy = getPolicyText(testCase.metadata);
|
|
@@ -13173,13 +13162,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13173
13162
|
testCase.metadata.goal = extractedGoal;
|
|
13174
13163
|
}
|
|
13175
13164
|
}
|
|
13176
|
-
testCases.push(...
|
|
13177
|
-
logger.debug(`Added ${
|
|
13178
|
-
const
|
|
13179
|
-
|
|
13180
|
-
|
|
13181
|
-
|
|
13165
|
+
testCases.push(...allCustomTests);
|
|
13166
|
+
logger.debug(`Added ${allCustomTests.length} custom test cases from ${plugin.id}`);
|
|
13167
|
+
const baseDisplayId = getPluginDisplayId(plugin);
|
|
13168
|
+
if (languages.filter((lang) => lang !== void 0).length > 1) for (const [langKey, result] of Object.entries(resultsPerLanguage)) {
|
|
13169
|
+
const displayId = langKey === "en" ? baseDisplayId : `(${langKey}) ${baseDisplayId}`;
|
|
13170
|
+
pluginResults[displayId] = {
|
|
13171
|
+
requested: result.requested,
|
|
13172
|
+
generated: result.generated
|
|
13173
|
+
};
|
|
13174
|
+
}
|
|
13175
|
+
else pluginResults[baseDisplayId] = {
|
|
13176
|
+
requested: plugin.numTests * languages.length,
|
|
13177
|
+
generated: allCustomTests.length
|
|
13182
13178
|
};
|
|
13179
|
+
progressBar?.increment(plugin.numTests * languages.length);
|
|
13183
13180
|
} catch (e) {
|
|
13184
13181
|
logger.error(`Error generating tests for custom plugin ${plugin.id}: ${e}`);
|
|
13185
13182
|
const displayId = getPluginDisplayId(plugin);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
-
import { r as fetchWithRetries } from "./fetch-
|
|
3
|
+
import { r as fetchWithRetries } from "./fetch-Cpf1U1nO.js";
|
|
4
4
|
import { t as invariant } from "./invariant-B2Rf6avk.js";
|
|
5
|
-
import { o as getUserEmail } from "./accounts-
|
|
6
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration-
|
|
5
|
+
import { o as getUserEmail } from "./accounts-D6IBfEE0.js";
|
|
6
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration-D6UjE2JT.js";
|
|
7
7
|
import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
|
|
8
|
-
import { c as getTargetResponse } from "./shared-
|
|
8
|
+
import { c as getTargetResponse } from "./shared-DNvim54U.js";
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
10
|
//#region src/redteam/providers/indirectWebPwn.ts
|
|
11
11
|
/**
|
|
@@ -257,4 +257,4 @@ var IndirectWebPwnProvider = class {
|
|
|
257
257
|
//#endregion
|
|
258
258
|
export { IndirectWebPwnProvider as default };
|
|
259
259
|
|
|
260
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
260
|
+
//# sourceMappingURL=indirectWebPwn-B80dLlFC.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
-
import { r as fetchWithRetries } from "./fetch-
|
|
4
|
-
import { o as getUserEmail } from "./accounts-
|
|
5
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration-
|
|
3
|
+
import { r as fetchWithRetries } from "./fetch-Cpf1U1nO.js";
|
|
4
|
+
import { o as getUserEmail } from "./accounts-D6IBfEE0.js";
|
|
5
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration-D6UjE2JT.js";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
//#region src/redteam/strategies/indirectWebPwn.ts
|
|
8
8
|
/**
|
|
@@ -383,4 +383,4 @@ async function transformForPerTurnLayer(testCases, injectVar, config) {
|
|
|
383
383
|
//#endregion
|
|
384
384
|
export { checkExfilTracking as n, addIndirectWebPwnTestCases as t };
|
|
385
385
|
|
|
386
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
386
|
+
//# sourceMappingURL=indirectWebPwn-BMTXXznx.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as logger } from "./logger-KD8JjCRJ.js";
|
|
2
|
-
import { n as fetchWithRetries } from "./fetch-
|
|
3
|
-
import { o as getUserEmail } from "./accounts-
|
|
4
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration
|
|
2
|
+
import { n as fetchWithRetries } from "./fetch-BSSAcMxf.js";
|
|
3
|
+
import { o as getUserEmail } from "./accounts-BWjqwsrf.js";
|
|
4
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration--D6WjzUm.js";
|
|
5
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
6
6
|
//#region src/redteam/strategies/indirectWebPwn.ts
|
|
7
7
|
/**
|
|
@@ -382,4 +382,4 @@ async function transformForPerTurnLayer(testCases, injectVar, config) {
|
|
|
382
382
|
//#endregion
|
|
383
383
|
export { checkExfilTracking as n, addIndirectWebPwnTestCases as t };
|
|
384
384
|
|
|
385
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
385
|
+
//# sourceMappingURL=indirectWebPwn-BZFPV7Q9.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
2
|
const require_logger = require("./logger-cfNpzI4o.cjs");
|
|
3
3
|
const require_invariant = require("./invariant-QtnLD03y.cjs");
|
|
4
|
-
const require_fetch = require("./fetch-
|
|
5
|
-
const require_accounts = require("./accounts-
|
|
6
|
-
const require_remoteGeneration = require("./remoteGeneration-
|
|
4
|
+
const require_fetch = require("./fetch-Cfm4EuOB.cjs");
|
|
5
|
+
const require_accounts = require("./accounts-BVz5gHLK.cjs");
|
|
6
|
+
const require_remoteGeneration = require("./remoteGeneration-BpIYlb_O.cjs");
|
|
7
7
|
const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
|
|
8
|
-
const require_shared = require("./shared-
|
|
8
|
+
const require_shared = require("./shared-aHWko3P1.cjs");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
//#region src/redteam/providers/indirectWebPwn.ts
|
|
11
11
|
/**
|
|
@@ -257,4 +257,4 @@ var IndirectWebPwnProvider = class {
|
|
|
257
257
|
//#endregion
|
|
258
258
|
exports.default = IndirectWebPwnProvider;
|
|
259
259
|
|
|
260
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
260
|
+
//# sourceMappingURL=indirectWebPwn-BaEQEOIO.cjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
2
|
import { t as invariant } from "./invariant-Ddh24eXh.js";
|
|
3
|
-
import { n as fetchWithRetries } from "./fetch-
|
|
4
|
-
import { i as getUserEmail } from "./accounts-
|
|
5
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration-
|
|
3
|
+
import { n as fetchWithRetries } from "./fetch-Doks14zQ.js";
|
|
4
|
+
import { i as getUserEmail } from "./accounts-DAv_0iE7.js";
|
|
5
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration-CJC3E0aW.js";
|
|
6
6
|
import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
|
|
7
|
-
import { c as getTargetResponse } from "./shared-
|
|
7
|
+
import { c as getTargetResponse } from "./shared-CSIGeGLl.js";
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
//#region src/redteam/providers/indirectWebPwn.ts
|
|
10
10
|
/**
|
|
@@ -256,4 +256,4 @@ var IndirectWebPwnProvider = class {
|
|
|
256
256
|
//#endregion
|
|
257
257
|
export { IndirectWebPwnProvider as default };
|
|
258
258
|
|
|
259
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
259
|
+
//# sourceMappingURL=indirectWebPwn-BzpyMnFS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
|
-
import { n as fetchWithRetries } from "./fetch-
|
|
3
|
-
import { i as getUserEmail } from "./accounts-
|
|
4
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration-
|
|
2
|
+
import { n as fetchWithRetries } from "./fetch-Doks14zQ.js";
|
|
3
|
+
import { i as getUserEmail } from "./accounts-DAv_0iE7.js";
|
|
4
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration-CJC3E0aW.js";
|
|
5
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
6
6
|
//#region src/redteam/strategies/indirectWebPwn.ts
|
|
7
7
|
/**
|
|
@@ -382,4 +382,4 @@ async function transformForPerTurnLayer(testCases, injectVar, config) {
|
|
|
382
382
|
//#endregion
|
|
383
383
|
export { checkExfilTracking as n, addIndirectWebPwnTestCases as t };
|
|
384
384
|
|
|
385
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
385
|
+
//# sourceMappingURL=indirectWebPwn-CiWB-vVH.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
2
|
const require_logger = require("./logger-cfNpzI4o.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
|
let node_crypto = require("node:crypto");
|
|
7
7
|
//#region src/redteam/strategies/indirectWebPwn.ts
|
|
8
8
|
/**
|
|
@@ -394,4 +394,4 @@ Object.defineProperty(exports, "checkExfilTracking", {
|
|
|
394
394
|
}
|
|
395
395
|
});
|
|
396
396
|
|
|
397
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
397
|
+
//# sourceMappingURL=indirectWebPwn-D7NA9Nsv.cjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as logger } from "./logger-KD8JjCRJ.js";
|
|
2
|
-
import { n as fetchWithRetries } from "./fetch-
|
|
2
|
+
import { n as fetchWithRetries } from "./fetch-BSSAcMxf.js";
|
|
3
3
|
import { t as invariant } from "./invariant-DIYf9sP1.js";
|
|
4
|
-
import { o as getUserEmail } from "./accounts-
|
|
5
|
-
import { r as getRemoteGenerationUrl } from "./remoteGeneration
|
|
4
|
+
import { o as getUserEmail } from "./accounts-BWjqwsrf.js";
|
|
5
|
+
import { r as getRemoteGenerationUrl } from "./remoteGeneration--D6WjzUm.js";
|
|
6
6
|
import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-BjVkdk18.js";
|
|
7
|
-
import { c as getTargetResponse } from "./shared-
|
|
7
|
+
import { c as getTargetResponse } from "./shared-CRq0gGVf.js";
|
|
8
8
|
import { randomUUID } from "node:crypto";
|
|
9
9
|
//#region src/redteam/providers/indirectWebPwn.ts
|
|
10
10
|
/**
|
|
@@ -256,4 +256,4 @@ var IndirectWebPwnProvider = class {
|
|
|
256
256
|
//#endregion
|
|
257
257
|
export { IndirectWebPwnProvider as default };
|
|
258
258
|
|
|
259
|
-
//# sourceMappingURL=indirectWebPwn-
|
|
259
|
+
//# sourceMappingURL=indirectWebPwn-o_bEFMjP.js.map
|