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.cjs
CHANGED
|
@@ -6,47 +6,47 @@ const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
|
|
|
6
6
|
const require_logger = require("./logger-cfNpzI4o.cjs");
|
|
7
7
|
const require_invariant = require("./invariant-QtnLD03y.cjs");
|
|
8
8
|
const require_types = require("./types-CxJvaY2S.cjs");
|
|
9
|
-
const require_fetch = require("./fetch-
|
|
10
|
-
const require_version = require("./version-
|
|
9
|
+
const require_fetch = require("./fetch-Cfm4EuOB.cjs");
|
|
10
|
+
const require_version = require("./version-VzUqOBZk.cjs");
|
|
11
11
|
const require_fileExtensions = require("./fileExtensions-BhdwzYaD.cjs");
|
|
12
|
-
const require_accounts = require("./accounts-
|
|
12
|
+
const require_accounts = require("./accounts-BVz5gHLK.cjs");
|
|
13
13
|
const require_esm = require("./esm-BIKakvNa.cjs");
|
|
14
14
|
const require_render = require("./render-BNTrbmBw.cjs");
|
|
15
15
|
const require_providerRegistry = require("./providerRegistry-CZO_w7ue.cjs");
|
|
16
|
-
const require_remoteGeneration = require("./remoteGeneration-
|
|
17
|
-
const require_server = require("./server-
|
|
18
|
-
const require_storage = require("./storage-
|
|
16
|
+
const require_remoteGeneration = require("./remoteGeneration-BpIYlb_O.cjs");
|
|
17
|
+
const require_server = require("./server-BHOEL8p8.cjs");
|
|
18
|
+
const require_storage = require("./storage-A4WnAeN3.cjs");
|
|
19
19
|
const require_pythonUtils = require("./pythonUtils-Cokhluq3.cjs");
|
|
20
|
-
const require_util = require("./util-
|
|
20
|
+
const require_util = require("./util-COnzevXE.cjs");
|
|
21
21
|
const require_createHash = require("./createHash-CSiqnK5P.cjs");
|
|
22
|
-
const require_cache = require("./cache-
|
|
23
|
-
const require_chat = require("./chat-
|
|
24
|
-
const require_transform = require("./transform-
|
|
25
|
-
const require_util$1 = require("./util-
|
|
26
|
-
const require_providers = require("./providers-
|
|
22
|
+
const require_cache = require("./cache-h5MWOBZI.cjs");
|
|
23
|
+
const require_chat = require("./chat-DSyYuTYT.cjs");
|
|
24
|
+
const require_transform = require("./transform-DJkt81VY.cjs");
|
|
25
|
+
const require_util$1 = require("./util-NYQvo1C7.cjs");
|
|
26
|
+
const require_providers = require("./providers-V6RBuieY.cjs");
|
|
27
27
|
const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
|
|
28
28
|
const require_text = require("./text-nywWsRBM.cjs");
|
|
29
|
-
const require_telemetry = require("./telemetry-
|
|
29
|
+
const require_telemetry = require("./telemetry-C_ImlCOk.cjs");
|
|
30
30
|
const require_tables = require("./tables-DBIJU0WE.cjs");
|
|
31
31
|
const require_blobs = require("./blobs-B0977K1O.cjs");
|
|
32
32
|
const require_processShim = require("./processShim-DSY9BV2T.cjs");
|
|
33
33
|
const require_packageParser = require("./packageParser-QoCS1FMl.cjs");
|
|
34
34
|
const require_rubyUtils = require("./rubyUtils-CqUWBZAt.cjs");
|
|
35
35
|
const require_inputVariables = require("./inputVariables-Dq9W-Z3a.cjs");
|
|
36
|
-
const require_util$2 = require("./util-
|
|
37
|
-
const require_promptfoo = require("./promptfoo-
|
|
38
|
-
const require_graders = require("./graders-
|
|
39
|
-
const require_shared = require("./shared-
|
|
36
|
+
const require_util$2 = require("./util-DNtUsus_.cjs");
|
|
37
|
+
const require_promptfoo = require("./promptfoo-ClChwT74.cjs");
|
|
38
|
+
const require_graders = require("./graders-CBQ2s6gz.cjs");
|
|
39
|
+
const require_shared = require("./shared-aHWko3P1.cjs");
|
|
40
40
|
const require_utils = require("./utils-Ve6kuJsa.cjs");
|
|
41
41
|
const require_transform$1 = require("./transform-BnSXWmU_2.cjs");
|
|
42
42
|
const require_store = require("./store-B2NDDooM.cjs");
|
|
43
|
-
const require_extractor = require("./extractor-
|
|
43
|
+
const require_extractor = require("./extractor-bV_NOoaz.cjs");
|
|
44
44
|
const require_promptLength = require("./promptLength-BbBbDHNj.cjs");
|
|
45
|
-
const require_indirectWebPwn = require("./indirectWebPwn-
|
|
45
|
+
const require_indirectWebPwn = require("./indirectWebPwn-D7NA9Nsv.cjs");
|
|
46
46
|
const require_toolAttributes = require("./toolAttributes-BAjwcBf0.cjs");
|
|
47
|
-
const require_evaluatorHelpers = require("./evaluatorHelpers-
|
|
48
|
-
const require_evalResult = require("./evalResult-
|
|
49
|
-
const require_strategies = require("./strategies-
|
|
47
|
+
const require_evaluatorHelpers = require("./evaluatorHelpers-D06I9WFL.cjs");
|
|
48
|
+
const require_evalResult = require("./evalResult-DHXs-9TL.cjs");
|
|
49
|
+
const require_strategies = require("./strategies-CCcnEbFO.cjs");
|
|
50
50
|
let fs = require("fs");
|
|
51
51
|
fs = require_rolldown_runtime.__toESM(fs, 1);
|
|
52
52
|
let path = require("path");
|
|
@@ -6334,7 +6334,7 @@ async function resolveDefaultTestProvider(defaultTest, testCase) {
|
|
|
6334
6334
|
const defaultProvider = defaultTest.provider;
|
|
6335
6335
|
if (require_types.isApiProvider(defaultProvider)) return defaultProvider;
|
|
6336
6336
|
if (typeof defaultProvider === "object" && defaultProvider.id) {
|
|
6337
|
-
const { loadApiProvider } = await Promise.resolve().then(() => require("./providers-
|
|
6337
|
+
const { loadApiProvider } = await Promise.resolve().then(() => require("./providers-V6RBuieY.cjs")).then((n) => n.providers_exports);
|
|
6338
6338
|
return loadApiProvider(typeof defaultProvider.id === "function" ? defaultProvider.id() : defaultProvider.id, { options: defaultProvider });
|
|
6339
6339
|
}
|
|
6340
6340
|
return defaultProvider;
|
|
@@ -6494,7 +6494,7 @@ function buildRepeatCacheContextByTestIdx(runEvalOptions) {
|
|
|
6494
6494
|
async function filterCompletedResumeSteps(runEvalOptions, evalRecord) {
|
|
6495
6495
|
if (!require_logger.state.resume || !evalRecord.persisted) return;
|
|
6496
6496
|
try {
|
|
6497
|
-
const { default: EvalResult } = await Promise.resolve().then(() => require("./evalResult-
|
|
6497
|
+
const { default: EvalResult } = await Promise.resolve().then(() => require("./evalResult-DHXs-9TL.cjs")).then((n) => n.evalResult_exports);
|
|
6498
6498
|
const completedPairs = await EvalResult.getCompletedIndexPairs(evalRecord.id, { excludeErrors: require_logger.state.retryMode });
|
|
6499
6499
|
const originalCount = runEvalOptions.length;
|
|
6500
6500
|
for (let i = runEvalOptions.length - 1; i >= 0; i--) {
|
|
@@ -12135,6 +12135,7 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
12135
12135
|
require_logger.logger.error(`Error generating test cases for ${key}: ${statusText} ${JSON.stringify(data)}`);
|
|
12136
12136
|
return [];
|
|
12137
12137
|
}
|
|
12138
|
+
if (require_promptfoo.requiresRemoteMaterialization(config?.inputs)) require_promptfoo.assertRemoteMaterializationHandled(data, `Remote plugin generation for ${key}`);
|
|
12138
12139
|
const ret = data.result;
|
|
12139
12140
|
require_logger.logger.debug(`Received remote generation for ${key}:\n${JSON.stringify(ret)}`);
|
|
12140
12141
|
return ret;
|
|
@@ -12143,31 +12144,6 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
12143
12144
|
return [];
|
|
12144
12145
|
}
|
|
12145
12146
|
}
|
|
12146
|
-
async function materializeRemoteTestCaseInputs({ config, injectVar, pluginId, provider, purpose, testCases }) {
|
|
12147
|
-
const inputs = config.inputs;
|
|
12148
|
-
if (!inputs || Object.keys(inputs).length === 0) return testCases;
|
|
12149
|
-
return Promise.all(testCases.map(async (testCase, materializationIndex) => {
|
|
12150
|
-
const inputVars = require_util$2.extractInputVarsFromPrompt(String(testCase.vars?.[injectVar] ?? ""), inputs);
|
|
12151
|
-
if (!inputVars) return testCase;
|
|
12152
|
-
const materializedVars = await require_inputVariables.materializeInputVariablesWithMetadata(inputVars, inputs, {
|
|
12153
|
-
materializationIndex,
|
|
12154
|
-
pluginId,
|
|
12155
|
-
provider,
|
|
12156
|
-
purpose
|
|
12157
|
-
});
|
|
12158
|
-
return {
|
|
12159
|
-
...testCase,
|
|
12160
|
-
vars: {
|
|
12161
|
-
...testCase.vars || {},
|
|
12162
|
-
...materializedVars.vars
|
|
12163
|
-
},
|
|
12164
|
-
metadata: {
|
|
12165
|
-
...testCase.metadata || {},
|
|
12166
|
-
...materializedVars.metadata ? { inputMaterialization: materializedVars.metadata } : {}
|
|
12167
|
-
}
|
|
12168
|
-
};
|
|
12169
|
-
}));
|
|
12170
|
-
}
|
|
12171
12147
|
function createPluginFactory(PluginClass, key, validate) {
|
|
12172
12148
|
return {
|
|
12173
12149
|
key,
|
|
@@ -12179,14 +12155,7 @@ function createPluginFactory(PluginClass, key, validate) {
|
|
|
12179
12155
|
return new PluginClass(provider, purpose, injectVar, configWithDefaults).generateTests(n, delayMs);
|
|
12180
12156
|
}
|
|
12181
12157
|
const pluginId = require_util$2.getShortPluginId(key);
|
|
12182
|
-
const testCases = await
|
|
12183
|
-
config: configWithDefaults ?? {},
|
|
12184
|
-
injectVar,
|
|
12185
|
-
pluginId,
|
|
12186
|
-
provider,
|
|
12187
|
-
purpose,
|
|
12188
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
12189
|
-
});
|
|
12158
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
12190
12159
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
12191
12160
|
return testCases.map((testCase) => ({
|
|
12192
12161
|
...testCase,
|
|
@@ -12273,14 +12242,7 @@ const piiPlugins = require_types.PII_PLUGINS.map((category) => ({
|
|
|
12273
12242
|
action: async (params) => {
|
|
12274
12243
|
if (require_remoteGeneration.shouldGenerateRemote()) {
|
|
12275
12244
|
const pluginId = require_util$2.getShortPluginId(category);
|
|
12276
|
-
const testCases = await
|
|
12277
|
-
config: params.config ?? {},
|
|
12278
|
-
injectVar: params.injectVar,
|
|
12279
|
-
pluginId,
|
|
12280
|
-
provider: params.provider,
|
|
12281
|
-
purpose: params.purpose,
|
|
12282
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
12283
|
-
});
|
|
12245
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
12284
12246
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
12285
12247
|
return testCases.map((testCase) => ({
|
|
12286
12248
|
...testCase,
|
|
@@ -12312,14 +12274,7 @@ const biasPlugins = require_types.BIAS_PLUGINS.map((category) => ({
|
|
|
12312
12274
|
return [];
|
|
12313
12275
|
}
|
|
12314
12276
|
const pluginId = require_util$2.getShortPluginId(category);
|
|
12315
|
-
const testCases = await
|
|
12316
|
-
config: params.config ?? {},
|
|
12317
|
-
injectVar: params.injectVar,
|
|
12318
|
-
pluginId,
|
|
12319
|
-
provider: params.provider,
|
|
12320
|
-
purpose: params.purpose,
|
|
12321
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
12322
|
-
});
|
|
12277
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
12323
12278
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
12324
12279
|
return testCases.map((testCase) => ({
|
|
12325
12280
|
...testCase,
|
|
@@ -12338,21 +12293,14 @@ function createRemotePlugin(key, validate) {
|
|
|
12338
12293
|
return {
|
|
12339
12294
|
key,
|
|
12340
12295
|
validate,
|
|
12341
|
-
action: async ({
|
|
12296
|
+
action: async ({ purpose, injectVar, n, config }) => {
|
|
12342
12297
|
const configWithDefaults = applyDefaultRemotePluginConfig(key, config);
|
|
12343
12298
|
if (require_remoteGeneration.neverGenerateRemote()) {
|
|
12344
12299
|
require_logger.logger.error(require_remoteGeneration.getRemoteGenerationExplicitlyDisabledError(`${key} plugin`));
|
|
12345
12300
|
return [];
|
|
12346
12301
|
}
|
|
12347
12302
|
const pluginId = require_util$2.getShortPluginId(key);
|
|
12348
|
-
const testCases = await
|
|
12349
|
-
config: configWithDefaults ?? {},
|
|
12350
|
-
injectVar,
|
|
12351
|
-
pluginId,
|
|
12352
|
-
provider,
|
|
12353
|
-
purpose,
|
|
12354
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
12355
|
-
});
|
|
12303
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
12356
12304
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
12357
12305
|
const testsWithMetadata = testCases.map((testCase) => ({
|
|
12358
12306
|
...testCase,
|
|
@@ -12419,6 +12367,15 @@ async function validateSharpDependency(strategies, plugins, checkSharp = isSharp
|
|
|
12419
12367
|
}
|
|
12420
12368
|
//#endregion
|
|
12421
12369
|
//#region src/redteam/index.ts
|
|
12370
|
+
const MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY = "__promptfooMaterializedMultiInputPrompt";
|
|
12371
|
+
function getMaterializedMultiInputPromptSnapshot(metadata) {
|
|
12372
|
+
const snapshot = metadata?.[MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY];
|
|
12373
|
+
return typeof snapshot === "string" ? snapshot : void 0;
|
|
12374
|
+
}
|
|
12375
|
+
function getMaterializedMultiInputPromptMetadata(vars) {
|
|
12376
|
+
const prompt = vars?.[require_types.MULTI_INPUT_VAR];
|
|
12377
|
+
return typeof prompt === "string" ? { [MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY]: prompt } : void 0;
|
|
12378
|
+
}
|
|
12422
12379
|
function getPolicyText(metadata) {
|
|
12423
12380
|
if (!metadata || metadata.policy === void 0 || metadata.policy === null) return;
|
|
12424
12381
|
const policyValue = metadata.policy;
|
|
@@ -12431,12 +12388,19 @@ function getPolicyText(metadata) {
|
|
|
12431
12388
|
async function rematerializeStrategyInputVars(testCase, injectVar, provider, purpose, materializationIndex) {
|
|
12432
12389
|
const inputs = testCase.metadata?.pluginConfig?.inputs;
|
|
12433
12390
|
const inputMaterialization = testCase.metadata?.inputMaterialization;
|
|
12434
|
-
|
|
12391
|
+
const materializedPromptSnapshot = getMaterializedMultiInputPromptSnapshot(testCase.metadata);
|
|
12392
|
+
const currentInjectVar = testCase.vars?.[injectVar];
|
|
12393
|
+
if (!inputs || Object.keys(inputs).length === 0 || !currentInjectVar) return {
|
|
12394
|
+
inputMaterialization,
|
|
12395
|
+
vars: testCase.vars
|
|
12396
|
+
};
|
|
12397
|
+
const promptChangedSinceMaterialization = typeof currentInjectVar === "string" && typeof materializedPromptSnapshot === "string" && currentInjectVar !== materializedPromptSnapshot;
|
|
12398
|
+
if (Boolean(inputMaterialization) && Object.keys(inputs).every((key) => Object.prototype.hasOwnProperty.call(testCase.vars ?? {}, key)) && !promptChangedSinceMaterialization) return {
|
|
12435
12399
|
inputMaterialization,
|
|
12436
12400
|
vars: testCase.vars
|
|
12437
12401
|
};
|
|
12438
12402
|
try {
|
|
12439
|
-
const materializedVars = await require_util$2.extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(
|
|
12403
|
+
const materializedVars = await require_util$2.extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(currentInjectVar)), inputs, {
|
|
12440
12404
|
materializationIndex,
|
|
12441
12405
|
pluginId: String(testCase.metadata?.pluginId || "unknown-plugin"),
|
|
12442
12406
|
provider,
|
|
@@ -12668,7 +12632,8 @@ function addLanguageToPluginMetadata(test, lang, plugin, maxCharsPerMessage, tes
|
|
|
12668
12632
|
...test.metadata?.modifiers,
|
|
12669
12633
|
...languageToAdd
|
|
12670
12634
|
},
|
|
12671
|
-
...languageToAdd
|
|
12635
|
+
...languageToAdd,
|
|
12636
|
+
...getMaterializedMultiInputPromptMetadata(test.vars)
|
|
12672
12637
|
}
|
|
12673
12638
|
};
|
|
12674
12639
|
}
|
|
@@ -12767,7 +12732,8 @@ async function applyStrategies(testCases, strategies, injectVar, provider, purpo
|
|
|
12767
12732
|
...t?.metadata?.pluginId && { pluginId: t.metadata.pluginId },
|
|
12768
12733
|
...t?.metadata?.pluginConfig && { pluginConfig: t.metadata.pluginConfig },
|
|
12769
12734
|
...inputMaterialization && { inputMaterialization },
|
|
12770
|
-
...Object.keys(strategyConfig).length > 0 && { strategyConfig }
|
|
12735
|
+
...Object.keys(strategyConfig).length > 0 && { strategyConfig },
|
|
12736
|
+
...getMaterializedMultiInputPromptMetadata(vars)
|
|
12771
12737
|
}
|
|
12772
12738
|
};
|
|
12773
12739
|
})));
|
|
@@ -13113,14 +13079,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13113
13079
|
}
|
|
13114
13080
|
});
|
|
13115
13081
|
const languageResults = await Promise.allSettled(languagePromises);
|
|
13116
|
-
for (const result of languageResults) if (result.status === "fulfilled") {
|
|
13082
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
13117
13083
|
const { lang, tests, requested, generated } = result.value;
|
|
13118
13084
|
allPluginTests.push(...tests);
|
|
13119
13085
|
resultsPerLanguage[lang || "default"] = {
|
|
13120
13086
|
requested,
|
|
13121
13087
|
generated
|
|
13122
13088
|
};
|
|
13123
|
-
} else
|
|
13089
|
+
} else {
|
|
13090
|
+
const lang = languages[index];
|
|
13091
|
+
require_logger.logger.warn(`[Language Processing] Error generating tests for ${plugin.id}: ${result.reason}`);
|
|
13092
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13093
|
+
requested: plugin.numTests,
|
|
13094
|
+
generated: 0
|
|
13095
|
+
};
|
|
13096
|
+
}
|
|
13124
13097
|
require_logger.logger.debug(`[Language Processing] Total tests generated for ${plugin.id}: ${allPluginTests.length} (across ${languages.length} language(s))`);
|
|
13125
13098
|
if (!Array.isArray(allPluginTests) || allPluginTests.length === 0) require_logger.logger.warn(`Failed to generate tests for ${plugin.id}`);
|
|
13126
13099
|
else {
|
|
@@ -13154,35 +13127,51 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13154
13127
|
generated: allPluginTests.length
|
|
13155
13128
|
};
|
|
13156
13129
|
} else if (plugin.id.startsWith("file://")) try {
|
|
13157
|
-
const
|
|
13158
|
-
const
|
|
13159
|
-
|
|
13160
|
-
|
|
13130
|
+
const languageConfig = plugin.config?.language ?? language;
|
|
13131
|
+
const languages = Array.isArray(languageConfig) ? languageConfig : languageConfig ? [languageConfig] : [void 0];
|
|
13132
|
+
const allCustomTests = [];
|
|
13133
|
+
const resultsPerLanguage = {};
|
|
13134
|
+
const languagePromises = languages.map(async (lang) => {
|
|
13135
|
+
const resolvedConfig = {
|
|
13161
13136
|
...resolvePluginConfigWithMaxChars(plugin.config, maxCharsPerMessage),
|
|
13162
|
-
...
|
|
13137
|
+
...lang ? { language: lang } : {},
|
|
13138
|
+
...hasMultipleInputs ? { inputs } : {}
|
|
13163
13139
|
};
|
|
13164
|
-
const
|
|
13165
|
-
...
|
|
13140
|
+
const customPluginConfig = {
|
|
13141
|
+
...resolvedConfig,
|
|
13142
|
+
modifiers: buildRedteamModifiers({
|
|
13166
13143
|
maxCharsPerMessage,
|
|
13167
|
-
pluginConfig:
|
|
13144
|
+
pluginConfig: resolvedConfig,
|
|
13168
13145
|
testGenerationInstructions
|
|
13169
|
-
})
|
|
13170
|
-
...t.metadata?.modifiers
|
|
13146
|
+
})
|
|
13171
13147
|
};
|
|
13148
|
+
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);
|
|
13172
13149
|
return {
|
|
13173
|
-
|
|
13174
|
-
|
|
13175
|
-
|
|
13176
|
-
|
|
13177
|
-
|
|
13178
|
-
|
|
13179
|
-
|
|
13180
|
-
|
|
13150
|
+
lang,
|
|
13151
|
+
tests: testCasesWithMetadata,
|
|
13152
|
+
requested: plugin.numTests,
|
|
13153
|
+
generated: testCasesWithMetadata.length
|
|
13154
|
+
};
|
|
13155
|
+
});
|
|
13156
|
+
const languageResults = await Promise.allSettled(languagePromises);
|
|
13157
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
13158
|
+
const { lang, tests, requested, generated } = result.value;
|
|
13159
|
+
allCustomTests.push(...tests);
|
|
13160
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13161
|
+
requested,
|
|
13162
|
+
generated
|
|
13181
13163
|
};
|
|
13182
|
-
}
|
|
13164
|
+
} else {
|
|
13165
|
+
const lang = languages[index];
|
|
13166
|
+
require_logger.logger.warn(`[Language Processing] Error generating tests for custom plugin ${plugin.id}: ${result.reason}`);
|
|
13167
|
+
resultsPerLanguage[lang || "default"] = {
|
|
13168
|
+
requested: plugin.numTests,
|
|
13169
|
+
generated: 0
|
|
13170
|
+
};
|
|
13171
|
+
}
|
|
13183
13172
|
if (needsGoalExtraction) {
|
|
13184
|
-
require_logger.logger.debug(`Extracting goal for ${
|
|
13185
|
-
for (const testCase of
|
|
13173
|
+
require_logger.logger.debug(`Extracting goal for ${allCustomTests.length} custom tests from ${plugin.id}...`);
|
|
13174
|
+
for (const testCase of allCustomTests) {
|
|
13186
13175
|
const promptVar = testCase.vars?.[injectVar];
|
|
13187
13176
|
const prompt = Array.isArray(promptVar) ? promptVar[0] : String(promptVar);
|
|
13188
13177
|
const policy = getPolicyText(testCase.metadata);
|
|
@@ -13190,13 +13179,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
13190
13179
|
testCase.metadata.goal = extractedGoal;
|
|
13191
13180
|
}
|
|
13192
13181
|
}
|
|
13193
|
-
testCases.push(...
|
|
13194
|
-
require_logger.logger.debug(`Added ${
|
|
13195
|
-
const
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
|
|
13182
|
+
testCases.push(...allCustomTests);
|
|
13183
|
+
require_logger.logger.debug(`Added ${allCustomTests.length} custom test cases from ${plugin.id}`);
|
|
13184
|
+
const baseDisplayId = getPluginDisplayId(plugin);
|
|
13185
|
+
if (languages.filter((lang) => lang !== void 0).length > 1) for (const [langKey, result] of Object.entries(resultsPerLanguage)) {
|
|
13186
|
+
const displayId = langKey === "en" ? baseDisplayId : `(${langKey}) ${baseDisplayId}`;
|
|
13187
|
+
pluginResults[displayId] = {
|
|
13188
|
+
requested: result.requested,
|
|
13189
|
+
generated: result.generated
|
|
13190
|
+
};
|
|
13191
|
+
}
|
|
13192
|
+
else pluginResults[baseDisplayId] = {
|
|
13193
|
+
requested: plugin.numTests * languages.length,
|
|
13194
|
+
generated: allCustomTests.length
|
|
13199
13195
|
};
|
|
13196
|
+
progressBar?.increment(plugin.numTests * languages.length);
|
|
13200
13197
|
} catch (e) {
|
|
13201
13198
|
require_logger.logger.error(`Error generating tests for custom plugin ${plugin.id}: ${e}`);
|
|
13202
13199
|
const displayId = getPluginDisplayId(plugin);
|
package/dist/src/index.d.cts
CHANGED
|
@@ -480,6 +480,15 @@ interface ProviderResponse {
|
|
|
480
480
|
cached?: boolean;
|
|
481
481
|
cost?: number;
|
|
482
482
|
error?: string;
|
|
483
|
+
/**
|
|
484
|
+
* Indicates that a remote Promptfoo server already materialized multi-input vars
|
|
485
|
+
* for this response. When true, callers must not re-materialize locally.
|
|
486
|
+
*/
|
|
487
|
+
materializationHandled?: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* Materialized per-input vars returned by a remote Promptfoo server.
|
|
490
|
+
*/
|
|
491
|
+
materializedVars?: Record<string, string>;
|
|
483
492
|
/**
|
|
484
493
|
* Indicates that `output` contains base64-encoded binary data (often as JSON like OpenAI `b64_json`).
|
|
485
494
|
* Used to enable blob externalization and avoid token bloat in downstream grading/agentic strategies.
|
|
@@ -513,6 +522,10 @@ interface ProviderResponse {
|
|
|
513
522
|
prompt?: string | ChatMessage[];
|
|
514
523
|
raw?: string | any;
|
|
515
524
|
output?: string | any;
|
|
525
|
+
/**
|
|
526
|
+
* Input materialization metadata returned by a remote Promptfoo server.
|
|
527
|
+
*/
|
|
528
|
+
inputMaterialization?: Record<string, unknown>;
|
|
516
529
|
/**
|
|
517
530
|
* Output after provider-level transform. Used by contextTransform to ensure
|
|
518
531
|
* it operates on provider-normalized output, independent of test transforms.
|
package/dist/src/index.d.ts
CHANGED
|
@@ -481,6 +481,15 @@ interface ProviderResponse {
|
|
|
481
481
|
cached?: boolean;
|
|
482
482
|
cost?: number;
|
|
483
483
|
error?: string;
|
|
484
|
+
/**
|
|
485
|
+
* Indicates that a remote Promptfoo server already materialized multi-input vars
|
|
486
|
+
* for this response. When true, callers must not re-materialize locally.
|
|
487
|
+
*/
|
|
488
|
+
materializationHandled?: boolean;
|
|
489
|
+
/**
|
|
490
|
+
* Materialized per-input vars returned by a remote Promptfoo server.
|
|
491
|
+
*/
|
|
492
|
+
materializedVars?: Record<string, string>;
|
|
484
493
|
/**
|
|
485
494
|
* Indicates that `output` contains base64-encoded binary data (often as JSON like OpenAI `b64_json`).
|
|
486
495
|
* Used to enable blob externalization and avoid token bloat in downstream grading/agentic strategies.
|
|
@@ -514,6 +523,10 @@ interface ProviderResponse {
|
|
|
514
523
|
prompt?: string | ChatMessage[];
|
|
515
524
|
raw?: string | any;
|
|
516
525
|
output?: string | any;
|
|
526
|
+
/**
|
|
527
|
+
* Input materialization metadata returned by a remote Promptfoo server.
|
|
528
|
+
*/
|
|
529
|
+
inputMaterialization?: Record<string, unknown>;
|
|
517
530
|
/**
|
|
518
531
|
* Output after provider-level transform. Used by contextTransform to ensure
|
|
519
532
|
* it operates on provider-normalized output, independent of test transforms.
|