promptfoo 0.121.7 → 0.121.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/{accounts-Ca7WIoPY.js → accounts-4Xa5fcHy.js} +17 -18
- package/dist/src/{accounts-DanM1wq_.js → accounts-BAajbKSh.js} +17 -18
- package/dist/src/{accounts-CjFnOPmb.js → accounts-Bw2qPqE-.js} +18 -19
- package/dist/src/{accounts-CmWzeD2d.cjs → accounts-DAcQXPwE.cjs} +20 -21
- package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C8eEgGG-.cjs} +3 -3
- package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-CP1IXFz3.js} +3 -3
- package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-CUwa3AE9.js} +3 -3
- package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-DYr-aM6d.js} +3 -3
- package/dist/src/{agents-CBgJvRkB.js → agents-Bb00M6i5.js} +5 -5
- package/dist/src/{agents-D-vDNFx4.js → agents-CASf5zRj.js} +5 -5
- package/dist/src/{agents-B4sRuXg3.cjs → agents-CD1wH9bm.cjs} +5 -5
- package/dist/src/{agents-CYn2n3QP.js → agents-CZOHU7Q8.js} +5 -5
- package/dist/src/{agents-LrHuQqr1.js → agents-D539zhHr.js} +5 -5
- package/dist/src/{agents-B8q7h_ek.js → agents-DpRJdGBZ.js} +5 -5
- package/dist/src/{agents-QGg76OF-.js → agents-gZTW-8nu.js} +5 -5
- package/dist/src/{agents-eHZ9nlgA.cjs → agents-hix6c0Sh.cjs} +5 -5
- package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-DRQSL-Z4.js} +7 -7
- package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-Dc3LW5zI.js} +7 -7
- package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-KNYnjjU6.js} +7 -7
- package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-gnrgd_Ej.cjs} +7 -7
- package/dist/src/app/assets/Report-Clw_YCp-.js +1 -0
- package/dist/src/app/assets/index-BQHaquKk.css +1 -0
- package/dist/src/app/assets/{index-BnT6P6sF.js → index-CW3XcQK7.js} +6 -6
- package/dist/src/app/index.html +2 -2
- package/dist/src/{audio-FnxbEnSE.cjs → audio-BgFTqfMO.cjs} +5 -5
- package/dist/src/{audio-CPMtV1yR.js → audio-Cslbgd4l.js} +5 -5
- package/dist/src/{audio-DyiebVB3.js → audio-DOI8kth4.js} +5 -5
- package/dist/src/{audio-BqnRvcWG.js → audio-hewMOCUU.js} +5 -5
- package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-DgE4u_Rl.js} +8 -8
- package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-gpm2K-Rp.js} +8 -8
- package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-nrC4mSPQ.js} +7 -7
- package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-wG4x0yP2.cjs} +8 -8
- package/dist/src/{base-CKLo890h.js → base-0yya4DsM.js} +3 -3
- package/dist/src/{base-Co80MMCi.js → base-BARAIJmp.js} +3 -3
- package/dist/src/{base-DGJW48uz.cjs → base-BE_pY-r5.cjs} +3 -3
- package/dist/src/{base-E9I8zXjz.js → base-CTWzNAH9.js} +3 -3
- package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CV7ZKPw2.js} +8 -8
- package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-DeucA4QS.js} +9 -9
- package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DxcpVUvj.cjs} +9 -9
- package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-Ilxc2hMv.js} +9 -9
- package/dist/src/{blobs-B0977K1O.cjs → blobs-5wbW7TbH.cjs} +3 -3
- package/dist/src/{blobs-Dwef1Ao1.js → blobs-BfIMflt0.js} +3 -3
- package/dist/src/{blobs-DODuTK-a.js → blobs-CA4gXarv.js} +3 -3
- package/dist/src/{blobs-CeFdPn_T.js → blobs-ikh75MtF.js} +3 -3
- package/dist/src/{cache-DpPWrkTE.js → cache-BuudGL4I.js} +5 -5
- package/dist/src/{cache-DIXbtkNO.js → cache-CT5D7d_A.js} +4 -4
- package/dist/src/cache-CrL5EYgi.js +3 -0
- package/dist/src/{cache-CPGUA4Yl.cjs → cache-WuIsgzMA.cjs} +4 -4
- package/dist/src/{cache-roFAE0cI.js → cache-x9llZxbx.js} +5 -5
- package/dist/src/{chat-GmlolEwo.js → chat-B5NqvkS_.js} +3 -3
- package/dist/src/{chat-DqUFcWI0.js → chat-B8lsx0A0.js} +11 -11
- package/dist/src/{chat-DG1wG4w0.cjs → chat-BBlR1h8c.cjs} +3 -3
- package/dist/src/{chat-Dabu84Br.js → chat-CCtIXezK.js} +11 -11
- package/dist/src/{chat-TP8Qifkh.js → chat-CZOhFlzV.js} +3 -3
- package/dist/src/{chat-CUCorGiL.js → chat-CvQMD-mp.js} +11 -11
- package/dist/src/{chat-iwaM5UTQ.js → chat-Dh6mb5OL.js} +3 -3
- package/dist/src/{chat-DxTDQ83C.cjs → chat-DkitQHdt.cjs} +11 -11
- package/dist/src/{chatkit-fARZwEfV.js → chatkit-55cAEQb2.js} +4 -4
- package/dist/src/{chatkit-lb6FK02w.js → chatkit-B-uz3x63.js} +4 -4
- package/dist/src/{chatkit-B6DWi70Q.js → chatkit-Dxp6KO70.js} +4 -4
- package/dist/src/{chatkit-BYveR48_.cjs → chatkit-jEtokOVZ.cjs} +4 -4
- package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BVfdeahc.js} +9 -7
- package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-C0p-RhcW.cjs} +9 -7
- package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-DB99Npst.js} +9 -7
- package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-DHyrhDUu.js} +9 -7
- package/dist/src/cloud-BA4aLhk0.js +3 -0
- package/dist/src/{cloud-D3DiFqH6.js → cloud-BbAl8dyj.js} +3 -3
- package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-ChBxkojW.js} +5 -5
- package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-DDmTDys_.js} +5 -5
- package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DPlNiC6I.cjs} +5 -5
- package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-UsZe6ndv.js} +5 -5
- package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-7b-lEtrb.cjs} +4 -4
- package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-Bq5cqiV8.js} +4 -4
- package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-C0N-5s62.js} +4 -4
- package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-D5fm-QvC.js} +4 -4
- package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BG5Aphvl.js} +20 -5
- package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-BnPMlcjl.js} +20 -5
- package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-D6gbvJFw.js} +20 -5
- package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-Dl6BLKJn.cjs} +20 -5
- package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-BnRTWAhS.js} +20 -8
- package/dist/src/codex-sdk-CChw5CYU.js +3 -0
- package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-Cy1pEjsQ.cjs} +20 -8
- package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-D86dT4XV.js} +20 -8
- package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-mgUqOG2C.js} +20 -8
- package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CkOfr271.js} +8 -8
- package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-EB-Is7jj.cjs} +8 -8
- package/dist/src/{cometapi-OBILPLlu.js → cometapi-gvPhrXNM.js} +8 -8
- package/dist/src/{cometapi-Bu9B8NUY.js → cometapi-sBbQmdfk.js} +8 -8
- package/dist/src/{completion-DZNxcyfG.js → completion-BoWiFP-D.js} +7 -7
- package/dist/src/{completion-CO2e1_62.js → completion-C99GFqQE.js} +7 -7
- package/dist/src/{completion-sNvCLTAP.js → completion-CUtdijfr.js} +7 -7
- package/dist/src/{completion-CSYfl2cd.cjs → completion-CkRVjadz.cjs} +7 -7
- package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B4EiUJ-M.js} +43 -22
- package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-BAN6NuWV.cjs} +45 -24
- package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-CYzxmaSJ.js} +45 -24
- package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-CrsXyaL0.js} +45 -24
- package/dist/src/{custom-BJfP00Bh.js → custom-C5K9QFs1.js} +13 -13
- package/dist/src/{custom-Cqia7M0D.cjs → custom-D1UjT5I5.cjs} +13 -13
- package/dist/src/{custom-CZVn-1-r.js → custom-DnMZvgB6.js} +13 -13
- package/dist/src/{custom-notggYVl.js → custom-EWterxkb.js} +11 -11
- package/dist/src/{docker-DdJQBxK9.js → docker-BFQc9ccU.js} +6 -6
- package/dist/src/{docker-D06JUoe2.cjs → docker-BMfsGXyn.cjs} +6 -6
- package/dist/src/{docker-4D1eL6Gq.js → docker-ChD4-eri.js} +6 -6
- package/dist/src/{docker-BBv1WUDu.js → docker-mZF5j6cW.js} +6 -6
- package/dist/src/{embedding-BbrwopfX.cjs → embedding-BMqFDnLI.cjs} +7 -7
- package/dist/src/{embedding--UZVe4_7.js → embedding-BQBXSWgy.js} +7 -7
- package/dist/src/{embedding-Bi3rxrZF.js → embedding-BwTB3YDt.js} +7 -7
- package/dist/src/{embedding-C251p1-8.js → embedding-cd5oPBkX.js} +7 -7
- package/dist/src/{esm-B6whoAcf.js → esm-CGER3lko.js} +2 -2
- package/dist/src/{esm-Bexx2PFc.js → esm-CYMWMaSj.js} +2 -2
- package/dist/src/{esm-BTK1W7lG.js → esm-C_yrt93A.js} +2 -2
- package/dist/src/{esm-BIKakvNa.cjs → esm-vv4rR-Dp.cjs} +2 -2
- package/dist/src/{eval-0VRANImH.js → eval-DmGWplIN.js} +10 -10
- package/dist/src/{eval-DscR5iOM.js → eval-N_VV5NZg.js} +1 -1
- package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-BZld6I3I.cjs} +6 -6
- package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-ByGP9zuP.js} +7 -7
- package/dist/src/evalResult-CPPINYHK.js +3 -0
- package/dist/src/{evalResult-2RRJvFyB.js → evalResult-gEmQRANj.js} +6 -6
- package/dist/src/evaluator-B01pCdUY.js +3 -0
- package/dist/src/{evaluator-DRoiYB2q.js → evaluator-BpaUYhLY.js} +37 -37
- package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-2gpZ9Q_f.cjs} +10 -10
- package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-C8C8WQTv.js} +10 -10
- package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-DDG44JeI.js} +10 -10
- package/dist/src/{extractor-CxRtnaHl.js → extractor-Bjz9sdTQ.js} +6 -6
- package/dist/src/{extractor-CIW3iN-b.js → extractor-CtadTcJm.js} +6 -6
- package/dist/src/{extractor-BR7XAzAL.js → extractor-DAnauX2V.js} +6 -6
- package/dist/src/{extractor-BdxEtt3J.cjs → extractor-nyUwvU2U.cjs} +6 -6
- package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-B2HvaVUc.cjs} +14 -12
- package/dist/src/{fetch-DXUnXkVU.js → fetch-C59QM4cf.js} +10 -8
- package/dist/src/{fetch-BufrQtvR.js → fetch-CBe8pU8Q.js} +10 -8
- package/dist/src/{fetch-It34O8Ur.js → fetch-CHJu2KON.js} +9 -7
- package/dist/src/fetch-D_XnRfBV.js +3 -0
- package/dist/src/{goat-Ckd3q3AY.js → goat-0HwO0EB2.js} +22 -21
- package/dist/src/{goat-una6pZGP.cjs → goat-7wQgRcT4.cjs} +22 -21
- package/dist/src/{goat-ghadEDdy.js → goat-BNX0lOFx.js} +20 -19
- package/dist/src/{goat-Qgurm-NP.js → goat-BOVnOl5S.js} +22 -21
- package/dist/src/{graders-BGP99PdK.js → graders-BnO-xoa-.js} +30 -30
- package/dist/src/{graders-ClrU2fnd.cjs → graders-CQv1GT5Q.cjs} +29 -29
- package/dist/src/graders-D4vc1PFi.js +3 -0
- package/dist/src/{graders-BX0f2tvS.js → graders-GNRQ1357.js} +29 -29
- package/dist/src/{graders-C0nXU_ZP.js → graders-k8qmhrPu.js} +31 -31
- package/dist/src/{hydra-BSNZZm2M.js → hydra-BrgGALmB.js} +38 -20
- package/dist/src/{hydra-BxdG4nkg.js → hydra-C38LOovb.js} +36 -18
- package/dist/src/{hydra-DE4xWwyc.js → hydra-CXc0p63W.js} +38 -20
- package/dist/src/{hydra-DrJttnvw.cjs → hydra-Hdj65j0k.cjs} +38 -20
- package/dist/src/{image-B_fPIwdg.js → image-6u3WZ_7H.js} +5 -5
- package/dist/src/{image-BN-hjLL9.js → image-B6hCz0z3.js} +5 -5
- package/dist/src/{image-BvUAW344.js → image-CgmaPlV_.js} +7 -7
- package/dist/src/{image-QzmydkiG.js → image-DXbwwL-r.js} +5 -5
- package/dist/src/{image-X0oY4350.cjs → image-Daa_X_YB.cjs} +7 -7
- package/dist/src/{image-Cvjwx1uY.js → image-DmC5qwQx.js} +7 -7
- package/dist/src/{image-DfVCGPbI.cjs → image-TY6FsHmn.cjs} +5 -5
- package/dist/src/{image-B4oBtu6J.js → image-V0-pYiBI.js} +7 -7
- package/dist/src/index.cjs +137 -140
- package/dist/src/index.d.cts +13 -0
- package/dist/src/index.d.ts +13 -0
- package/dist/src/index.js +137 -140
- package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-04ziKbly.cjs} +5 -5
- package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-1gHqaL91.js} +5 -5
- package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B0CAtvZJ.js} +6 -6
- package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BXUoJl4I.js} +5 -5
- package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-Biy9I52D.js} +6 -6
- package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BoPqjm9W.js} +6 -6
- package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-DRYpRTx6.js} +5 -5
- package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-MiCFTfzI.cjs} +6 -6
- package/dist/src/{inputVariables-DUGMb9Ka.js → inputVariables-B7cylqzM.js} +2 -2
- package/dist/src/{inputVariables-Dq9W-Z3a.cjs → inputVariables-D5K2vTp4.cjs} +2 -2
- package/dist/src/{inputVariables-B0qUChbV.js → inputVariables-DpOsOnzU.js} +3 -3
- package/dist/src/{inputVariables-DXFdi7AI.js → inputVariables-qJmuSN5i.js} +3 -3
- package/dist/src/{interactiveCheck-C4QlIuoR.js → interactiveCheck-BLnDrfjg.js} +2 -2
- package/dist/src/{iterative-FTS4Bz67.js → iterative-BDRx_noa.js} +29 -19
- package/dist/src/{iterative-CpU6i2As.js → iterative-BZxrxnoh.js} +27 -17
- package/dist/src/{iterative-DQBuWM-j.cjs → iterative-KSovqu_j.cjs} +29 -19
- package/dist/src/{iterative-DJQEQpG3.js → iterative-vxBU1IPs.js} +29 -19
- package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-BZuMd4x3.js} +7 -7
- package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-DUWLmyVM.js} +6 -6
- package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-DqNKoaIl.cjs} +7 -7
- package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-DwIp1WGB.js} +7 -7
- package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-9gsvnsl1.cjs} +39 -19
- package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-AgI6UEh6.js} +39 -19
- package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-BbcVN5nQ.js} +39 -19
- package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-BcF8LsFk.js} +37 -17
- package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-5TLHU9Kx.js} +81 -31
- package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-7XyY_zdo.cjs} +81 -31
- package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CnHx_kPu.js} +81 -31
- package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-D9I3UJ0P.js} +79 -29
- package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-BGbDBwr5.js} +5 -5
- package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-BzfBwPyQ.js} +5 -5
- package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-C_MSTwDt.js} +5 -5
- package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-DSVK_YTi.cjs} +5 -5
- package/dist/src/{litellm-BXyn5kZK.js → litellm-CRTmskqC.js} +5 -5
- package/dist/src/{litellm-BKBo0jpC.js → litellm-Ch4E-r4b.js} +5 -5
- package/dist/src/{litellm-CNcfbCfa.js → litellm-DNnk7802.js} +5 -5
- package/dist/src/{litellm-CtAr7bKG.cjs → litellm-jA4_p8mv.cjs} +5 -5
- package/dist/src/{logger-KD8JjCRJ.js → logger-BjYLHvGm.js} +56 -25
- package/dist/src/{logger-cfNpzI4o.cjs → logger-Cm0Nb8YX.cjs} +34 -3
- package/dist/src/{logger-Ct2S6Yx-.js → logger-Cs0I2v_y.js} +34 -3
- package/dist/src/{logger-BbY6ypFL.js → logger-h-eiS4iv.js} +34 -3
- package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCkN79tz.cjs} +5 -5
- package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-BqVizUQY.js} +5 -5
- package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-CD7rd6KW.js} +5 -5
- package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DLWLjDCa.js} +5 -5
- package/dist/src/main.js +143 -146
- package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-BXDi4XCK.cjs} +8 -8
- package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D-V4yXjj.js} +8 -8
- package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-PrsT7Zh2.js} +8 -8
- package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-ZUwCLvEn.js} +8 -8
- package/dist/src/{messages-DBPir0TQ.cjs → messages-BSFLFXIO.cjs} +8 -8
- package/dist/src/{messages-BabO-cX8.js → messages-C5qBfONg.js} +8 -8
- package/dist/src/{messages-DGUlSNU7.js → messages-CQoK4jHx.js} +8 -8
- package/dist/src/{messages-vsE_-Lv0.js → messages-Dy5vvc3H.js} +8 -8
- package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-B4_YRWqu.cjs} +5 -5
- package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-BoZy3Fry.js} +5 -5
- package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CjJ9ZEuw.js} +5 -5
- package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-CrMXlOUj.js} +5 -5
- package/dist/src/{modelslab-EyDczZ5A.js → modelslab-B72XbAlR.js} +8 -8
- package/dist/src/{modelslab-Dzst7VTU.js → modelslab-Bw-46LmW.js} +8 -8
- package/dist/src/{modelslab-Cogmu4mG.js → modelslab-CJ0zQdDH.js} +8 -8
- package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-LXFLCD-O.cjs} +8 -8
- package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-D0k0-k8Y.cjs} +5 -5
- package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-DItvBa6z.js} +5 -5
- package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-DN7gTJzd.js} +5 -5
- package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-DRLvlFOH.js} +5 -5
- package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-BeAjEzkG.js} +3 -3
- package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-DB7LzcCY.js} +3 -3
- package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-DfLkPbkF.cjs} +3 -3
- package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-kzIVxZDb.js} +3 -3
- package/dist/src/{openai-BMHD2Huo.js → openai-Bfbg6L4c.js} +2 -2
- package/dist/src/{openai-C3uXv8wS.cjs → openai-CCaz18I4.cjs} +2 -2
- package/dist/src/{openai-CJrsh9n4.js → openai-CJOpg_dA.js} +2 -2
- package/dist/src/{openai-zgwBb4Ff.js → openai-uRacy72N.js} +2 -2
- package/dist/src/{openclaw-zIJAsz3P.js → openclaw-2Y9Ukt9Y.js} +9 -9
- package/dist/src/{openclaw-CF7fMido.js → openclaw-BdnuiqBG.js} +9 -9
- package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-D54hA9Fe.cjs} +9 -9
- package/dist/src/{openclaw-BIHlu_36.js → openclaw-DRjsDCSS.js} +9 -9
- package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-2su-bzyz.js} +38 -9
- package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-BRkqgOOQ.cjs} +38 -9
- package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CFY-1bkH.js} +38 -9
- package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-D-tRQJ9s.js} +38 -9
- package/dist/src/{otlpReceiver-B2eaKC8C.js → otlpReceiver-BkB7tsTT.js} +3 -3
- package/dist/src/{otlpReceiver--gTpSagc.js → otlpReceiver-BqJYGC-M.js} +4 -4
- package/dist/src/{otlpReceiver-BXjcRqAM.js → otlpReceiver-CRwU2egH.js} +4 -4
- package/dist/src/{otlpReceiver-CvJdBGSc.cjs → otlpReceiver-DOl5S07u.cjs} +4 -4
- package/dist/src/{packageParser--MWTSrPW.js → packageParser-B3bpKHK4.js} +2 -2
- package/dist/src/{packageParser-hwwSGnAZ.js → packageParser-CZdMKLBh.js} +2 -2
- package/dist/src/{packageParser-CgE-ziRo.js → packageParser-D7YWfcSe.js} +2 -2
- package/dist/src/{packageParser-QoCS1FMl.cjs → packageParser-DR054ceU.cjs} +2 -2
- package/dist/src/{promptLength-B9nZEfO6.js → promptLength-5B4_P93z.js} +2 -2
- package/dist/src/{promptLength-BbBbDHNj.cjs → promptLength-CAcg7BmO.cjs} +2 -2
- package/dist/src/{promptLength-4X-Wd8PG.js → promptLength-PkjlYFx0.js} +2 -2
- package/dist/src/{promptLength-0qIHyhA5.js → promptLength-ho3wbst6.js} +2 -2
- package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CEsoPlBa.js} +67 -10
- package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-DAXBmrE6.cjs} +96 -9
- package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-DVKqidd8.js} +67 -10
- package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-wxe28-q9.js} +67 -10
- package/dist/src/{providerRegistry-DHcFiVWX.js → providerRegistry-Bf4tRLgu.js} +2 -2
- package/dist/src/{providerRegistry-CZO_w7ue.cjs → providerRegistry-DKbi2EbP.cjs} +2 -2
- package/dist/src/{providerRegistry-ReCd0sFa.js → providerRegistry-DLeG-xXn.js} +2 -2
- package/dist/src/{providerRegistry-1gB5vtzQ.js → providerRegistry-v8Wa3f9z.js} +2 -2
- package/dist/src/{providers-B9KzWxAX.js → providers-CYBHjFEg.js} +178 -126
- package/dist/src/{providers-BCCz6_IX.js → providers-DDLQc0tl.js} +177 -125
- package/dist/src/{providers-BDVVIQM6.cjs → providers-DP1CDgd5.cjs} +176 -124
- package/dist/src/{providers-DVYRZP4E.js → providers-DTPwadhk.js} +176 -124
- package/dist/src/{providers-BYAn82cf.js → providers-DvBFcsXi.js} +1 -1
- package/dist/src/{pythonUtils-Cokhluq3.cjs → pythonUtils-BjuymNdM.cjs} +3 -3
- package/dist/src/{pythonUtils-D0BYebvX.js → pythonUtils-C4Wnz6Q7.js} +3 -3
- package/dist/src/{pythonUtils-CLCgQ9tt.js → pythonUtils-CBe7VV6f.js} +3 -3
- package/dist/src/{pythonUtils-CgYxeSmO.js → pythonUtils-CLAoc6jg.js} +3 -3
- package/dist/src/{quiverai-CdTWPe-A.js → quiverai-B6ebiUKf.js} +6 -6
- package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-BG7dvOQc.js} +6 -6
- package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-DH6SMaxD.cjs} +6 -6
- package/dist/src/{quiverai-BvIhI_0l.js → quiverai-DHNIAUfS.js} +6 -6
- package/dist/src/{registry-BUJrgjwv.js → registry-BKlwRYvr.js} +14 -14
- package/dist/src/{registry-KCVF1CFC.cjs → registry-CQHRTGYs.cjs} +14 -14
- package/dist/src/{registry-Dp5EqoXc.js → registry-Eiv-QeUm.js} +14 -14
- package/dist/src/{registry-DXm1t_x0.js → registry-qNoxbVEb.js} +14 -14
- package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-CD3c_rzc.cjs} +6 -6
- package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CoxtxLvB.js} +6 -6
- package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-DW6mPZnO.js} +6 -6
- package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration-DvWEm3yi.js} +6 -6
- package/dist/src/{render-_6ur1fhE.js → render-BoxrvB84.js} +2 -2
- package/dist/src/{render-DFfDeYUK.js → render-CTZQAINJ.js} +2 -2
- package/dist/src/{render-BNTrbmBw.cjs → render-DJ4yipCD.cjs} +2 -2
- package/dist/src/{render-DznWrxGO.js → render-MiyTvDY4.js} +2 -2
- package/dist/src/{render-CSP99NLm.js → render-jE6RKVgk.js} +2 -2
- package/dist/src/{responses-1UFFF9N_.cjs → responses-Bs2_3zyr.cjs} +14 -10
- package/dist/src/{responses-B3W2JvOQ.js → responses-C0yU3fO6.js} +14 -10
- package/dist/src/{responses-URRzV8qE.js → responses-C2vhwf8F.js} +14 -10
- package/dist/src/{responses-B6ktc3Ra.js → responses-pvlY3oYx.js} +14 -10
- package/dist/src/{rubyUtils-CnlW8AYb.js → rubyUtils-AvgsD_QH.js} +3 -3
- package/dist/src/{rubyUtils-CqUWBZAt.cjs → rubyUtils-BEqeZynS.cjs} +3 -3
- package/dist/src/{rubyUtils-CXlFM2rR.js → rubyUtils-C-sxXgGT.js} +3 -3
- package/dist/src/{rubyUtils-DdGojpfv.js → rubyUtils-DFzPvVD4.js} +3 -3
- package/dist/src/rubyUtils-DfYaGbxe.js +3 -0
- package/dist/src/{runtimeTransform-DigbjU1r.js → runtimeTransform-BmhEztlx.js} +2 -2
- package/dist/src/{runtimeTransform-BJOpL9Yc.js → runtimeTransform-Bw9Tttpp.js} +2 -2
- package/dist/src/{runtimeTransform-ON3YYILw.cjs → runtimeTransform-DJEknTZQ.cjs} +2 -2
- package/dist/src/{runtimeTransform-Dgh_D7DU.js → runtimeTransform-s14J7yxm.js} +2 -2
- package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-C8NJAT8D.js} +11 -11
- package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-DlajLLgJ.js} +11 -11
- package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-PgIzjxMt.js} +11 -11
- package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-hwPXLGI4.cjs} +11 -11
- package/dist/src/{scanner-DS0109SS.js → scanner-B3DPvw5u.js} +6 -6
- package/dist/src/server/index.js +145 -148
- package/dist/src/{server-DhMHosWj.js → server-4wx571OM.js} +6 -6
- package/dist/src/{server-Ddp8GNMp.js → server-8in_Vrrf.js} +6 -6
- package/dist/src/server-BHd6SQYX.js +3 -0
- package/dist/src/{server-CMJD10J4.js → server-pMTgWs3M.js} +4 -4
- package/dist/src/{server-B8rqV126.cjs → server-yHhoBx98.cjs} +4 -4
- package/dist/src/{shared-D6IjElRI.js → shared-BF25a7ms.js} +12 -12
- package/dist/src/{shared-WkgnDkcg.cjs → shared-DlmtkptR.cjs} +12 -12
- package/dist/src/{shared-9WHQ1oNE.js → shared-DsbObxvy.js} +12 -12
- package/dist/src/{shared-7pmVZLNO.js → shared-yBQATkD5.js} +13 -13
- package/dist/src/{signal-CSurUUyV.js → signal-CRrWj2xI.js} +3 -3
- package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-9A3YPDh2.cjs} +7 -7
- package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-CbZZV7UQ.js} +7 -7
- package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-DdcsTBuS.js} +7 -7
- package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-LKk31Iov.js} +7 -7
- package/dist/src/{slack-Bapo-7_8.js → slack-CWxUAo6N.js} +2 -2
- package/dist/src/{slack-DMC1QVEg.cjs → slack-CtMQnlyy.cjs} +2 -2
- package/dist/src/{slack-DTEFhrMn.js → slack-DrcMAkvd.js} +2 -2
- package/dist/src/{slack-k-_CP84Q.js → slack-chzmaYU3.js} +2 -2
- package/dist/src/{storage-BU4qcnOb.js → storage-B9lg2RCL.js} +6 -6
- package/dist/src/{storage-QdU-SmvD.js → storage-BC9TzmHh.js} +5 -5
- package/dist/src/{storage-CA-v9V2v.cjs → storage-Cv7QYUPO.cjs} +4 -4
- package/dist/src/{storage-CD-GWAdx.js → storage-fbHNSuZ9.js} +4 -4
- package/dist/src/{store-B2NDDooM.cjs → store-BKN4VD-m.cjs} +3 -3
- package/dist/src/{store-HpopRVzl.js → store-C4eo8Kyv.js} +3 -3
- package/dist/src/store-mJpYYA7W.js +3 -0
- package/dist/src/{store-DKd5592Q.js → store-u1XNK3e8.js} +3 -3
- package/dist/src/{strategies-CiSeroPH.js → strategies-4Nnr_9xt.js} +18 -18
- package/dist/src/{strategies-7CS3Alao.cjs → strategies-BD7US9WB.cjs} +18 -18
- package/dist/src/{strategies-DRJjGTIY.js → strategies-Ptz_P4P4.js} +20 -20
- package/dist/src/{tables-CRSXQ2Ke.js → tables-Bn3_8sxV.js} +2 -2
- package/dist/src/{tables-DafUHOeh.js → tables-D_ZGKiGc.js} +3 -3
- package/dist/src/{tables-DBIJU0WE.cjs → tables-D_s2HMPP.cjs} +2 -2
- package/dist/src/{tables-CxjU7bBd.js → tables-PWOqfbI_.js} +3 -3
- package/dist/src/{telemetry-DwX9XUN5.js → telemetry-BTIhfopq.js} +21 -16
- package/dist/src/{telemetry-00ezXr_t.js → telemetry-BU80NveV.js} +21 -16
- package/dist/src/telemetry-CVHVhMOI.js +3 -0
- package/dist/src/{telemetry-DmXYcJNV.js → telemetry-D3yQCekN.js} +21 -16
- package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-DvzmDrSM.cjs} +21 -16
- package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-D2F0D7es.js} +4 -4
- package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-PLePpCmo.js} +3 -3
- package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-WpE9IqC8.js} +4 -4
- package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-eqmq5sA2.cjs} +4 -4
- package/dist/src/{transcription-mzuf18Mq.cjs → transcription-CKLxdMxm.cjs} +7 -7
- package/dist/src/{transcription-B8uIgCYX.js → transcription-CmlDorqD.js} +7 -7
- package/dist/src/{transcription-CfU5loSq.js → transcription-Cupf4JNw.js} +7 -7
- package/dist/src/{transcription-Dkd22_4K.js → transcription-sOgdGxM6.js} +7 -7
- package/dist/src/{transform-BnSXWmU_2.cjs → transform-0wnBYYaL2.cjs} +4 -4
- package/dist/src/{transform-EtD4jAWi.js → transform-AfC8gqCB.js} +5 -5
- package/dist/src/{transform-CGt7Kt3y2.js → transform-BDSnWRNv2.js} +4 -4
- package/dist/src/{transform-BnSTnFlp.js → transform-C5pxvKUV.js} +4 -4
- package/dist/src/{transform-CrPGTsij.js → transform-C5rpIuDz.js} +4 -4
- package/dist/src/{transform-DmvYBRll.js → transform-D7QlmswG.js} +5 -5
- package/dist/src/{transform-DhNkAUs8.cjs → transform-DKw2FNwg.cjs} +5 -5
- package/dist/src/{transform-BIMynQsA.js → transform-R1PnNdLv.js} +5 -5
- package/dist/src/{types-BFevViUY.js → types-C_e_SykX.js} +2 -2
- package/dist/src/{types-BJQBBPTP.js → types-uLCKnRiK.js} +2 -2
- package/dist/src/{util-CN8om2rz.cjs → util-3BRss2KA.cjs} +7 -7
- package/dist/src/{util-efByNxcr.js → util-B2Nt2Oy7.js} +25 -7
- package/dist/src/{util-I-Rf-KaD.js → util-BGfk7zh7.js} +8 -8
- package/dist/src/{util-5WnCSb0h.js → util-BLSQ_7Ky.js} +25 -7
- package/dist/src/{util-IYzs5Y04.cjs → util-BSZPCmvm.cjs} +4 -3
- package/dist/src/{util-SPsvFONY.cjs → util-BuYzkbEz.cjs} +7 -7
- package/dist/src/{util-LKTmNsMQ.js → util-C6d3eV0A.js} +25 -7
- package/dist/src/{util-DURocbYR.js → util-CES4qWd7.js} +8 -8
- package/dist/src/{util-Df8YMvS1.js → util-CKZReNsz.js} +8 -8
- package/dist/src/{util-BSIuSLVK.cjs → util-Cs372i1_.cjs} +25 -7
- package/dist/src/{util-CoQWM76y.js → util-Cw9nJJWm.js} +4 -3
- package/dist/src/{util-DNl96nNs.js → util-D1NKMz55.js} +7 -7
- package/dist/src/{util-kDURhgJW.js → util-D9grslJP.js} +8 -8
- package/dist/src/{util--WMgw7wM.js → util-SNUDkWJ8.js} +4 -3
- package/dist/src/{util-Bx677_k2.js → util-vaCPFatZ.js} +7 -7
- package/dist/src/{util-DiQ3QvBB.js → util-weQgMdSy.js} +4 -3
- package/dist/src/{utils-Ve6kuJsa.cjs → utils-B_HCobst.cjs} +2 -2
- package/dist/src/{utils-BGY69tk_.js → utils-C3qMBhJT.js} +2 -2
- package/dist/src/{utils-BFOh20Gb.js → utils-Cdx3ZJr7.js} +2 -2
- package/dist/src/{utils-B0lzitHZ.js → utils-DMWnIu_V.js} +2 -2
- package/dist/src/{version-BK20a4sw.js → version-BGiEZvX0.js} +2 -2
- package/dist/src/{version-lpHV_53E.js → version-BNhpIb2U.js} +2 -2
- package/dist/src/{version-eRkNuGv8.js → version-CnYqmWbz.js} +2 -2
- package/dist/src/{version-BWCSaByA.cjs → version-XjGPawtU.cjs} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
- package/dist/src/app/assets/index-yhM8y1PP.css +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/rubyUtils-BYVlQ94c.js +0 -3
- package/dist/src/server-BaLytskk.js +0 -3
- package/dist/src/store-IbiRIF3k.js +0 -3
- package/dist/src/telemetry-ByPqDcKC.js +0 -3
package/dist/src/server/index.js
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
import { t as __exportAll } from "../chunk-DEq-mXcV.js";
|
|
2
|
-
import { C as
|
|
3
|
-
import { F as getDefaultShareViewBaseUrl, I as getShareApiBaseUrl, L as getShareViewBaseUrl, N as TERMINAL_MAX_WIDTH, P as getDefaultPort, R as FILE_METADATA_KEY, S as isPromptfooSampleTarget, T as parseChatPrompt, c as CloudConfig, l as cloudConfig, m as sleep, n as fetchWithRetries, p as getCurrentTimestamp, r as fetchWithTimeout, t as fetchWithProxy,
|
|
4
|
-
import { n as VERSION } from "../version-
|
|
2
|
+
import { C as getEnvBool, D as getEvalTimeoutMs, E as getEnvString, O as getMaxEvalTimeMs, S as state, T as getEnvInt, a as logger, b as summarizeEvaluateResultForLogging, f as sanitizeObject, g as getAjv, h as extractJsonObjects, k as isCI, m as extractFirstJsonObject, n as globalLogCallback, o as setLogCallback, r as isDebugEnabled, s as setLogLevel, t as getLogLevel, v as orderKeys, w as getEnvFloat, y as safeJsonStringify } from "../logger-BjYLHvGm.js";
|
|
3
|
+
import { F as getDefaultShareViewBaseUrl, I as getShareApiBaseUrl, L as getShareViewBaseUrl, N as TERMINAL_MAX_WIDTH, P as getDefaultPort, R as FILE_METADATA_KEY, S as isPromptfooSampleTarget, T as parseChatPrompt, c as CloudConfig, l as cloudConfig, m as sleep, n as fetchWithRetries, p as getCurrentTimestamp, r as fetchWithTimeout, t as fetchWithProxy, y as getRequestTimeoutMs, z as HUMAN_ASSERTION_TYPE } from "../fetch-CBe8pU8Q.js";
|
|
4
|
+
import { n as VERSION } from "../version-BGiEZvX0.js";
|
|
5
5
|
import { t as invariant } from "../invariant-DIYf9sP1.js";
|
|
6
|
-
import {
|
|
7
|
-
import { a as safeJoin, r as importModule, t as getDirectory } from "../esm-
|
|
8
|
-
import { a as extractVariablesFromTemplates, i as extractVariablesFromTemplate, n as renderVarsInObject, o as getNunjucksEngine, r as analyzeTemplateReference, t as renderEnvOnlyInObject } from "../render-
|
|
9
|
-
import { t as providerRegistry } from "../providerRegistry-
|
|
10
|
-
import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "../remoteGeneration-
|
|
11
|
-
import { a as openBrowser, i as checkServerRunning, n as BrowserBehaviorNames, s as promptYesNo, t as BrowserBehavior } from "../server-
|
|
12
|
-
import { a as evalResultsTable, c as evalsToPromptsTable, d as promptsTable, f as spansTable, g as getDbSignalPath, h as getDb, i as datasetsTable, l as evalsToTagsTable, m as tracesTable, n as blobReferencesTable, o as evalsTable, p as tagsTable, r as configsTable, s as evalsToDatasetsTable, t as blobAssetsTable, u as modelAuditsTable } from "../tables-
|
|
13
|
-
import { $ as MULTI_INPUT_EXCLUDED_PLUGINS, A as STRATEGY_COLLECTIONS, B as ALIASED_PLUGIN_MAPPINGS, E as ALL_STRATEGIES, F as isMultiTurnStrategy, G as DEFAULT_PLUGINS, H as BIAS_PLUGINS, I as Severity, J as HARM_PLUGINS, K as FINANCIAL_PLUGINS, L as categoryAliases, M as getDefaultNFanout, N as isCustomStrategy, O as DEFAULT_STRATEGIES, P as isFanoutStrategy, Q as MEDICAL_PLUGINS, S as StrategyConfigSchema, T as AGENTIC_STRATEGIES, U as CANARY_BREAKING_STRATEGY_IDS, V as ALL_PLUGINS, W as DATASET_EXEMPT_PLUGINS, X as LLAMA_GUARD_ENABLED_CATEGORIES, Y as INSURANCE_PLUGINS, Z as LLAMA_GUARD_REPLICATE_PROVIDER, _ as ProvidersSchema, a as EvaluateOptionsSchema, at as REDTEAM_PROVIDER_HARM_PLUGINS, b as PluginConfigSchema, c as TestSuiteConfigSchema, ct as TEEN_SAFETY_PLUGINS, d as isGradingResult, dt as CODING_AGENT_CORE_PLUGINS, et as MULTI_INPUT_VAR, f as isResultFailureReason, ft as CODING_AGENT_PLUGINS, g as ProviderOptionsSchema, h as RedteamConfigSchema, ht as PromptSchema, i as EvalResultsFilterMode, it as REDTEAM_MODEL, j as STRATEGY_COLLECTION_MAPPINGS, k as MULTI_TURN_STRATEGIES, l as TestSuiteSchema, lt as TELECOM_PLUGINS, m as isProviderOptions, n as BaseAssertionTypesSchema, nt as PII_PLUGINS, ot as REMOTE_ONLY_PLUGIN_IDS, p as isApiProvider, q as FOUNDATION_PLUGINS, r as CommandLineOptionsSchema, rt as PLUGIN_CATEGORIES, s as ResultFailureReason, st as STRATEGY_EXEMPT_PLUGINS, t as AssertionOrSetSchema, tt as PHARMACY_PLUGINS, u as UnifiedConfigSchema, ut as UNALIGNED_PROVIDER_HARM_PLUGINS, v as ConversationMessageSchema, w as isUuid, y as PartialGenerationError, z as riskCategorySeverityMap } from "../types-
|
|
6
|
+
import { c as isLoggedIntoCloud, i as getAuthor, l as promptForEmailUnverified, n as checkEmailStatusAndMaybeExit, o as getUserEmail, r as clearUserEmail, s as getUserId, t as checkEmailStatus, u as setUserEmail } from "../accounts-BAajbKSh.js";
|
|
7
|
+
import { a as safeJoin, r as importModule, t as getDirectory } from "../esm-CGER3lko.js";
|
|
8
|
+
import { a as extractVariablesFromTemplates, i as extractVariablesFromTemplate, n as renderVarsInObject, o as getNunjucksEngine, r as analyzeTemplateReference, t as renderEnvOnlyInObject } from "../render-BoxrvB84.js";
|
|
9
|
+
import { t as providerRegistry } from "../providerRegistry-v8Wa3f9z.js";
|
|
10
|
+
import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "../remoteGeneration-CoxtxLvB.js";
|
|
11
|
+
import { a as openBrowser, i as checkServerRunning, n as BrowserBehaviorNames, s as promptYesNo, t as BrowserBehavior } from "../server-8in_Vrrf.js";
|
|
12
|
+
import { a as evalResultsTable, c as evalsToPromptsTable, d as promptsTable, f as spansTable, g as getDbSignalPath, h as getDb, i as datasetsTable, l as evalsToTagsTable, m as tracesTable, n as blobReferencesTable, o as evalsTable, p as tagsTable, r as configsTable, s as evalsToDatasetsTable, t as blobAssetsTable, u as modelAuditsTable } from "../tables-PWOqfbI_.js";
|
|
13
|
+
import { $ as MULTI_INPUT_EXCLUDED_PLUGINS, A as STRATEGY_COLLECTIONS, B as ALIASED_PLUGIN_MAPPINGS, E as ALL_STRATEGIES, F as isMultiTurnStrategy, G as DEFAULT_PLUGINS, H as BIAS_PLUGINS, I as Severity, J as HARM_PLUGINS, K as FINANCIAL_PLUGINS, L as categoryAliases, M as getDefaultNFanout, N as isCustomStrategy, O as DEFAULT_STRATEGIES, P as isFanoutStrategy, Q as MEDICAL_PLUGINS, S as StrategyConfigSchema, T as AGENTIC_STRATEGIES, U as CANARY_BREAKING_STRATEGY_IDS, V as ALL_PLUGINS, W as DATASET_EXEMPT_PLUGINS, X as LLAMA_GUARD_ENABLED_CATEGORIES, Y as INSURANCE_PLUGINS, Z as LLAMA_GUARD_REPLICATE_PROVIDER, _ as ProvidersSchema, a as EvaluateOptionsSchema, at as REDTEAM_PROVIDER_HARM_PLUGINS, b as PluginConfigSchema, c as TestSuiteConfigSchema, ct as TEEN_SAFETY_PLUGINS, d as isGradingResult, dt as CODING_AGENT_CORE_PLUGINS, et as MULTI_INPUT_VAR, f as isResultFailureReason, ft as CODING_AGENT_PLUGINS, g as ProviderOptionsSchema, h as RedteamConfigSchema, ht as PromptSchema, i as EvalResultsFilterMode, it as REDTEAM_MODEL, j as STRATEGY_COLLECTION_MAPPINGS, k as MULTI_TURN_STRATEGIES, l as TestSuiteSchema, lt as TELECOM_PLUGINS, m as isProviderOptions, n as BaseAssertionTypesSchema, nt as PII_PLUGINS, ot as REMOTE_ONLY_PLUGIN_IDS, p as isApiProvider, q as FOUNDATION_PLUGINS, r as CommandLineOptionsSchema, rt as PLUGIN_CATEGORIES, s as ResultFailureReason, st as STRATEGY_EXEMPT_PLUGINS, t as AssertionOrSetSchema, tt as PHARMACY_PLUGINS, u as UnifiedConfigSchema, ut as UNALIGNED_PROVIDER_HARM_PLUGINS, v as ConversationMessageSchema, w as isUuid, y as PartialGenerationError, z as riskCategorySeverityMap } from "../types-uLCKnRiK.js";
|
|
14
14
|
import { a as isImageFile, i as isAudioFile, o as isJavascriptFile, s as isVideoFile } from "../shared-BoG7qLMv.js";
|
|
15
15
|
import { n as sha256, t as randomSequence } from "../createHash-CGVzWdjj.js";
|
|
16
|
-
import { a as generateIdFromPrompt, t as hashPrompt } from "../utils-
|
|
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-
|
|
16
|
+
import { a as generateIdFromPrompt, t as hashPrompt } from "../utils-DMWnIu_V.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-x9llZxbx.js";
|
|
18
18
|
import { a as createEmptyTokenUsage, i as createEmptyAssertions, n as accumulateResponseTokenUsage, o as normalizeTokenUsage, r as accumulateTokenUsage, t as accumulateAssertionTokenUsage } from "../tokenUsageUtils-BjVkdk18.js";
|
|
19
|
-
import { n as getBlobUrl, t as getBlobByHash } from "../blobs-
|
|
20
|
-
import { n as isBlobStorageEnabled, t as extractAndStoreBinaryData } from "../extractor-
|
|
21
|
-
import { a as storeMedia, c as getEvalConfigFromCloud, h as resolveTeamId, i as retrieveMedia, l as getOrgContext, m as makeRequest$1, n as isMediaStorageEnabled, o as checkCloudPermissions, p as isCloudProvider, r as mediaExists, s as getCloudDatabaseId, t as getMediaStorage, u as getPluginSeverityOverridesFromCloud } from "../storage-
|
|
22
|
-
import { n as telemetry, t as TelemetryEventSchema } from "../telemetry-
|
|
23
|
-
import { r as runPython } from "../pythonUtils-
|
|
24
|
-
import { A as maybeLoadConfigFromExternalFile, C as isProviderAllowed, E as normalizeProviderRef, I as readFilters, L as readOutput, P as maybeLoadToolsFromExternalFile, R as loadFunction, S as isOpenAiProvider, _ as checkProviderApiKeys, a as evalTableToJson, b as isAnthropicProvider, c as getEvalTablePromptStrippedPayload, d as setupEnv, f as deduplicateTestCases, g as resultIsForTestCase, h as getTestCaseDeduplicationKey, i as ComparisonEvalNotFoundError, j as maybeLoadFromExternalFile, l as mergeComparisonTables, m as filterRuntimeVars, n as writeMultipleOutputs, o as generateEvalCsv, p as extractRuntimeVars, r as writeOutput, s as getEvalTableOutputPromptLocationsBySize, t as printBorder, u as fetchCsvFromGoogleSheet, v as doesProviderRefMatch, x as isGoogleProvider, y as getProviderDescription, z as parseFileUrl } from "../util-
|
|
25
|
-
import { t as OpenAiChatCompletionProvider } from "../chat-
|
|
26
|
-
import { h as validateFunctionCall } from "../transform-
|
|
27
|
-
import { $ as SUGGEST_PROMPTS_SYSTEM_MESSAGE, A as ExcessiveAgencyPlugin, At as DEFAULT_ANTHROPIC_MODEL, B as isGraderFailure, C as PlinyPlugin, Ct as getGradingProvider, D as ImitationPlugin, Dt as retryWithDeduplication, E as IntentPlugin, Et as getCustomPolicies, F as BeavertailsPlugin, G as matchesPiScore, H as matchesFactuality, I as AegisPlugin, J as processPrompts, K as matchesTrajectoryGoalSuccess, L as RedteamGraderBase, M as DebugAccessPlugin, N as CrossSessionLeakPlugin, O as HarmbenchPlugin, Ot as sampleArray, P as ContractPlugin, Q as SELECT_BEST_PROMPT, R as RedteamPluginBase, S as makeInlinePolicyIdSync, St as getAndCheckProvider, T as OverreliancePlugin, Tt as withProviderCallExecutionContext, U as matchesGEval, V as matchesClosedQa, W as matchesLlmRubric, X as readProviderPromptMap, Y as readPrompts, Z as DEFAULT_WEB_SEARCH_PROMPT, _ as PromptExtractionPlugin, _t as coerceString, a as VLGuardPlugin, at as CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN, b as determinePolicyTypeFromId, bt as processFileReference, c as ToxicChatPlugin, ct as loadRubricPrompt, d as TeenSafetyDangerousRoleplayPlugin, dt as dotProduct, et as ANSWER_RELEVANCY_GENERATE, f as TeenSafetyDangerousContentPlugin, ft as euclideanDistance, g as RbacPlugin, gt as tryParse, h as ShellInjectionPlugin, ht as splitIntoSentences, i as VLSUPlugin, it as CONTEXT_RECALL_ATTRIBUTED_TOKEN, j as DivergentRepetitionPlugin, k as HallucinationPlugin, kt as getDefaultProviders, l as ToolDiscoveryPlugin, lt as renderLlmRubricPrompt, m as SqlInjectionPlugin, mt as normalizeMatcherTokenUsage, n as getGraderById, nt as CONTEXT_FAITHFULNESS_NLI_STATEMENTS, o as UnverifiableClaimsPlugin, ot as CONTEXT_RELEVANCE, p as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, pt as fail, q as doRemoteGrading, rt as CONTEXT_RECALL, s as UnsafeBenchPlugin, st as CONTEXT_RELEVANCE_BAD, t as GRADERS, tt as CONTEXT_FAITHFULNESS_LONGFORM, u as TeenSafetyHarmfulBodyIdealsPlugin, ut as cosineSimilarity, v as PoliticsPlugin, vt as getFinalTest, w as getPiiLeakTestsForCategory, wt as getProviderCallExecutionContext, x as isValidPolicyObject, xt as callProviderWithContext, y as PolicyPlugin, yt as loadFromJavaScriptFile, z as fetchHuggingFaceDataset } from "../graders-
|
|
28
|
-
import { a as resolveProvider, b as AIStudioChatProvider, d as createTransformRequest, f as createTransformResponse, l as MCPProvider, n as loadApiProvider, o as resolveProviderConfigs, p as GoogleLiveProvider, r as loadApiProviders, t as getProviderIds, u as HttpProvider, y as VertexChatProvider } from "../providers-
|
|
29
|
-
import { l as validateFunctionCall$1 } from "../util-
|
|
19
|
+
import { n as getBlobUrl, t as getBlobByHash } from "../blobs-ikh75MtF.js";
|
|
20
|
+
import { n as isBlobStorageEnabled, t as extractAndStoreBinaryData } from "../extractor-DAnauX2V.js";
|
|
21
|
+
import { a as storeMedia, c as getEvalConfigFromCloud, h as resolveTeamId, i as retrieveMedia, l as getOrgContext, m as makeRequest$1, n as isMediaStorageEnabled, o as checkCloudPermissions, p as isCloudProvider, r as mediaExists, s as getCloudDatabaseId, t as getMediaStorage, u as getPluginSeverityOverridesFromCloud } from "../storage-BC9TzmHh.js";
|
|
22
|
+
import { n as telemetry, t as TelemetryEventSchema } from "../telemetry-D3yQCekN.js";
|
|
23
|
+
import { r as runPython } from "../pythonUtils-CBe7VV6f.js";
|
|
24
|
+
import { A as maybeLoadConfigFromExternalFile, C as isProviderAllowed, E as normalizeProviderRef, I as readFilters, L as readOutput, P as maybeLoadToolsFromExternalFile, R as loadFunction, S as isOpenAiProvider, _ as checkProviderApiKeys, a as evalTableToJson, b as isAnthropicProvider, c as getEvalTablePromptStrippedPayload, d as setupEnv, f as deduplicateTestCases, g as resultIsForTestCase, h as getTestCaseDeduplicationKey, i as ComparisonEvalNotFoundError, j as maybeLoadFromExternalFile, l as mergeComparisonTables, m as filterRuntimeVars, n as writeMultipleOutputs, o as generateEvalCsv, p as extractRuntimeVars, r as writeOutput, s as getEvalTableOutputPromptLocationsBySize, t as printBorder, u as fetchCsvFromGoogleSheet, v as doesProviderRefMatch, x as isGoogleProvider, y as getProviderDescription, z as parseFileUrl } from "../util-BGfk7zh7.js";
|
|
25
|
+
import { t as OpenAiChatCompletionProvider } from "../chat-CvQMD-mp.js";
|
|
26
|
+
import { h as validateFunctionCall } from "../transform-D7QlmswG.js";
|
|
27
|
+
import { $ as SUGGEST_PROMPTS_SYSTEM_MESSAGE, A as ExcessiveAgencyPlugin, At as DEFAULT_ANTHROPIC_MODEL, B as isGraderFailure, C as PlinyPlugin, Ct as getGradingProvider, D as ImitationPlugin, Dt as retryWithDeduplication, E as IntentPlugin, Et as getCustomPolicies, F as BeavertailsPlugin, G as matchesPiScore, H as matchesFactuality, I as AegisPlugin, J as processPrompts, K as matchesTrajectoryGoalSuccess, L as RedteamGraderBase, M as DebugAccessPlugin, N as CrossSessionLeakPlugin, O as HarmbenchPlugin, Ot as sampleArray, P as ContractPlugin, Q as SELECT_BEST_PROMPT, R as RedteamPluginBase, S as makeInlinePolicyIdSync, St as getAndCheckProvider, T as OverreliancePlugin, Tt as withProviderCallExecutionContext, U as matchesGEval, V as matchesClosedQa, W as matchesLlmRubric, X as readProviderPromptMap, Y as readPrompts, Z as DEFAULT_WEB_SEARCH_PROMPT, _ as PromptExtractionPlugin, _t as coerceString, a as VLGuardPlugin, at as CONTEXT_RECALL_NOT_ATTRIBUTED_TOKEN, b as determinePolicyTypeFromId, bt as processFileReference, c as ToxicChatPlugin, ct as loadRubricPrompt, d as TeenSafetyDangerousRoleplayPlugin, dt as dotProduct, et as ANSWER_RELEVANCY_GENERATE, f as TeenSafetyDangerousContentPlugin, ft as euclideanDistance, g as RbacPlugin, gt as tryParse, h as ShellInjectionPlugin, ht as splitIntoSentences, i as VLSUPlugin, it as CONTEXT_RECALL_ATTRIBUTED_TOKEN, j as DivergentRepetitionPlugin, k as HallucinationPlugin, kt as getDefaultProviders, l as ToolDiscoveryPlugin, lt as renderLlmRubricPrompt, m as SqlInjectionPlugin, mt as normalizeMatcherTokenUsage, n as getGraderById, nt as CONTEXT_FAITHFULNESS_NLI_STATEMENTS, o as UnverifiableClaimsPlugin, ot as CONTEXT_RELEVANCE, p as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, pt as fail, q as doRemoteGrading, rt as CONTEXT_RECALL, s as UnsafeBenchPlugin, st as CONTEXT_RELEVANCE_BAD, t as GRADERS, tt as CONTEXT_FAITHFULNESS_LONGFORM, u as TeenSafetyHarmfulBodyIdealsPlugin, ut as cosineSimilarity, v as PoliticsPlugin, vt as getFinalTest, w as getPiiLeakTestsForCategory, wt as getProviderCallExecutionContext, x as isValidPolicyObject, xt as callProviderWithContext, y as PolicyPlugin, yt as loadFromJavaScriptFile, z as fetchHuggingFaceDataset } from "../graders-k8qmhrPu.js";
|
|
28
|
+
import { a as resolveProvider, b as AIStudioChatProvider, d as createTransformRequest, f as createTransformResponse, l as MCPProvider, n as loadApiProvider, o as resolveProviderConfigs, p as GoogleLiveProvider, r as loadApiProviders, t as getProviderIds, u as HttpProvider, y as VertexChatProvider } from "../providers-DDLQc0tl.js";
|
|
29
|
+
import { l as validateFunctionCall$1 } from "../util-C6d3eV0A.js";
|
|
30
30
|
import { t as ellipsize } from "../text-CZr46tp_.js";
|
|
31
31
|
import { t as getProcessShim } from "../processShim-C_z3aRvF.js";
|
|
32
|
-
import { n as loadFromPackage, t as isPackagePath } from "../packageParser-
|
|
33
|
-
import { n as runRuby } from "../rubyUtils-
|
|
34
|
-
import { n as createPlaceholderInputValue,
|
|
35
|
-
import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, o as getSessionId,
|
|
36
|
-
import { n as PromptfooHarmfulCompletionProvider } from "../promptfoo-
|
|
37
|
-
import { f as redteamProviderManager, g as createProviderRateLimitOptions, h as createRateLimitRegistry, m as TokenUsageTracker } from "../shared-
|
|
38
|
-
import { a as getTransformLabel, i as getTransformErrorMessage, n as TRANSFORM_KEYS, o as transform, r as TransformInputType, t as INLINE_FUNCTION_LABEL } from "../transform-
|
|
39
|
-
import { i as throwIfTargetPromptExceedsMaxChars, n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "../promptLength-
|
|
40
|
-
import { n as checkExfilTracking, t as addIndirectWebPwnTestCases } from "../indirectWebPwn-
|
|
32
|
+
import { n as loadFromPackage, t as isPackagePath } from "../packageParser-D7YWfcSe.js";
|
|
33
|
+
import { n as runRuby } from "../rubyUtils-DFzPvVD4.js";
|
|
34
|
+
import { n as createPlaceholderInputValue, t as buildPromptInputDescriptions } from "../inputVariables-DpOsOnzU.js";
|
|
35
|
+
import { a as extractPromptFromTags, c as isBasicRefusal, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, o as getSessionId, s as getShortPluginId } from "../util-CKZReNsz.js";
|
|
36
|
+
import { a as assertRemoteMaterializationHandled, l as requiresRemoteMaterialization, n as PromptfooHarmfulCompletionProvider } from "../promptfoo-DVKqidd8.js";
|
|
37
|
+
import { f as redteamProviderManager, g as createProviderRateLimitOptions, h as createRateLimitRegistry, m as TokenUsageTracker } from "../shared-yBQATkD5.js";
|
|
38
|
+
import { a as getTransformLabel, i as getTransformErrorMessage, n as TRANSFORM_KEYS, o as transform, r as TransformInputType, t as INLINE_FUNCTION_LABEL } from "../transform-C5rpIuDz.js";
|
|
39
|
+
import { i as throwIfTargetPromptExceedsMaxChars, n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "../promptLength-5B4_P93z.js";
|
|
40
|
+
import { n as checkExfilTracking, t as addIndirectWebPwnTestCases } from "../indirectWebPwn-DRYpRTx6.js";
|
|
41
41
|
import dotenv from "dotenv";
|
|
42
|
-
import { AsyncResource } from "node:async_hooks";
|
|
43
42
|
import * as fs$3 from "fs";
|
|
44
43
|
import fs, { createWriteStream, existsSync, readFileSync } from "fs";
|
|
45
44
|
import * as path$2 from "path";
|
|
46
45
|
import path, { join, parse } from "path";
|
|
47
46
|
import chalk from "chalk";
|
|
47
|
+
import { AsyncResource } from "node:async_hooks";
|
|
48
48
|
import * as os$1 from "os";
|
|
49
49
|
import os, { homedir } from "os";
|
|
50
50
|
import yaml from "js-yaml";
|
|
@@ -4691,7 +4691,7 @@ async function startOtlpReceiverIfNeeded(testSuite) {
|
|
|
4691
4691
|
telemetry.record("feature_used", { feature: "tracing" });
|
|
4692
4692
|
try {
|
|
4693
4693
|
logger.debug("[EvaluatorTracing] Tracing configuration detected, starting OTLP receiver");
|
|
4694
|
-
const { startOTLPReceiver } = await import("../otlpReceiver-
|
|
4694
|
+
const { startOTLPReceiver } = await import("../otlpReceiver-BkB7tsTT.js");
|
|
4695
4695
|
const port = testSuite.tracing.otlp.http.port || 4318;
|
|
4696
4696
|
const host = testSuite.tracing.otlp.http.host || "127.0.0.1";
|
|
4697
4697
|
const acceptFormats = normalizeOtlpAcceptFormats(testSuite.tracing.otlp.http.acceptFormats);
|
|
@@ -4715,7 +4715,7 @@ async function startOtlpReceiverIfNeeded(testSuite) {
|
|
|
4715
4715
|
async function stopOtlpReceiverIfNeeded() {
|
|
4716
4716
|
if (otlpReceiverStarted) try {
|
|
4717
4717
|
logger.debug("[EvaluatorTracing] Stopping OTLP receiver");
|
|
4718
|
-
const { stopOTLPReceiver } = await import("../otlpReceiver-
|
|
4718
|
+
const { stopOTLPReceiver } = await import("../otlpReceiver-BkB7tsTT.js");
|
|
4719
4719
|
await stopOTLPReceiver();
|
|
4720
4720
|
otlpReceiverStarted = false;
|
|
4721
4721
|
logger.info("[EvaluatorTracing] OTLP receiver stopped successfully");
|
|
@@ -7045,7 +7045,7 @@ async function loadWebSearchProvider(preferAnthropic = false) {
|
|
|
7045
7045
|
};
|
|
7046
7046
|
const loadOpenAIWebSearch = async () => {
|
|
7047
7047
|
try {
|
|
7048
|
-
return await loadApiProvider("openai:responses:gpt-5.
|
|
7048
|
+
return await loadApiProvider("openai:responses:gpt-5.5-2026-04-23", { options: { config: { tools: [{ type: "web_search_preview" }] } } });
|
|
7049
7049
|
} catch (err) {
|
|
7050
7050
|
logger.debug(`Failed to load OpenAI web search provider: ${err}`);
|
|
7051
7051
|
return null;
|
|
@@ -8396,7 +8396,7 @@ async function runAssertion({ prompt, provider, assertion, test, vars, latencyMs
|
|
|
8396
8396
|
};
|
|
8397
8397
|
}
|
|
8398
8398
|
else if (filePath.endsWith(".rb")) try {
|
|
8399
|
-
const { runRuby } = await import("../rubyUtils-
|
|
8399
|
+
const { runRuby } = await import("../rubyUtils-DFzPvVD4.js").then((n) => n.t);
|
|
8400
8400
|
valueFromScript = await runRuby(filePath, functionName || "get_assert", [output, context]);
|
|
8401
8401
|
logger.debug(`Ruby script ${filePath} output: ${valueFromScript}`);
|
|
8402
8402
|
} catch (error) {
|
|
@@ -10722,7 +10722,7 @@ async function resolveDefaultTestProvider(defaultTest, testCase) {
|
|
|
10722
10722
|
const defaultProvider = defaultTest.provider;
|
|
10723
10723
|
if (isApiProvider(defaultProvider)) return defaultProvider;
|
|
10724
10724
|
if (typeof defaultProvider === "object" && defaultProvider.id) {
|
|
10725
|
-
const { loadApiProvider } = await import("../providers-
|
|
10725
|
+
const { loadApiProvider } = await import("../providers-DDLQc0tl.js").then((n) => n.i);
|
|
10726
10726
|
return loadApiProvider(typeof defaultProvider.id === "function" ? defaultProvider.id() : defaultProvider.id, { options: defaultProvider });
|
|
10727
10727
|
}
|
|
10728
10728
|
return defaultProvider;
|
|
@@ -13813,7 +13813,7 @@ async function fetchRemoteGeneration(task, prompts) {
|
|
|
13813
13813
|
method: "POST",
|
|
13814
13814
|
headers: { "Content-Type": "application/json" },
|
|
13815
13815
|
body: JSON.stringify(body)
|
|
13816
|
-
},
|
|
13816
|
+
}, getRequestTimeoutMs(), "json");
|
|
13817
13817
|
return RedTeamGenerationResponse.parse(response.data).result;
|
|
13818
13818
|
} catch (error) {
|
|
13819
13819
|
logger.warn(`Error using remote generation for task '${task}': ${error}`);
|
|
@@ -13986,7 +13986,7 @@ const DATASET_URL$2 = `https://raw.githubusercontent.com/promptfoo/promptfoo/ref
|
|
|
13986
13986
|
const DATASET_URL_MULTILINGUAL = `https://raw.githubusercontent.com/promptfoo/promptfoo/refs/tags/${DATASET_VERSION}/examples/cyberseceval/prompt_injection_multilingual.json`;
|
|
13987
13987
|
async function fetchDataset$2(limit, isMultilingual) {
|
|
13988
13988
|
try {
|
|
13989
|
-
const response = await fetchWithTimeout(isMultilingual ? DATASET_URL_MULTILINGUAL : DATASET_URL$2, {},
|
|
13989
|
+
const response = await fetchWithTimeout(isMultilingual ? DATASET_URL_MULTILINGUAL : DATASET_URL$2, {}, getRequestTimeoutMs());
|
|
13990
13990
|
if (!response.ok) throw new Error(`[CyberSecEval] HTTP status: ${response.status} ${response.statusText}`);
|
|
13991
13991
|
const data = await response.json();
|
|
13992
13992
|
if (!data || !Array.isArray(data)) throw new Error(`[CyberSecEval] Invalid response from ${DATASET_URL$2}`);
|
|
@@ -14054,7 +14054,7 @@ async function fetchDataset$1(limit) {
|
|
|
14054
14054
|
logger.debug(`[DoNotAnswer] Fetching dataset from ${DATASET_URL$1}`);
|
|
14055
14055
|
let csvData;
|
|
14056
14056
|
if (DATASET_URL$1.startsWith("http")) {
|
|
14057
|
-
const response = await fetchWithTimeout(DATASET_URL$1, {},
|
|
14057
|
+
const response = await fetchWithTimeout(DATASET_URL$1, {}, getRequestTimeoutMs());
|
|
14058
14058
|
if (!response.ok) throw new Error(`[DoNotAnswer] HTTP status: ${response.status} ${response.statusText}`);
|
|
14059
14059
|
csvData = await response.text();
|
|
14060
14060
|
} else try {
|
|
@@ -14589,7 +14589,7 @@ async function fetchDataset(limit) {
|
|
|
14589
14589
|
logger.debug(`[XSTest] Fetching dataset from ${DATASET_URL}`);
|
|
14590
14590
|
let csvData;
|
|
14591
14591
|
if (DATASET_URL.startsWith("http")) {
|
|
14592
|
-
const response = await fetchWithTimeout(DATASET_URL, {},
|
|
14592
|
+
const response = await fetchWithTimeout(DATASET_URL, {}, getRequestTimeoutMs());
|
|
14593
14593
|
if (!response.ok) throw new Error(`[XSTest] HTTP status: ${response.status} ${response.statusText}`);
|
|
14594
14594
|
csvData = await response.text();
|
|
14595
14595
|
} else try {
|
|
@@ -14867,11 +14867,12 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
14867
14867
|
method: "POST",
|
|
14868
14868
|
headers: { "Content-Type": "application/json" },
|
|
14869
14869
|
body
|
|
14870
|
-
},
|
|
14870
|
+
}, getRequestTimeoutMs());
|
|
14871
14871
|
if (status !== 200 || !data || !data.result || !Array.isArray(data.result)) {
|
|
14872
14872
|
logger.error(`Error generating test cases for ${key}: ${statusText} ${JSON.stringify(data)}`);
|
|
14873
14873
|
return [];
|
|
14874
14874
|
}
|
|
14875
|
+
if (requiresRemoteMaterialization(config?.inputs)) assertRemoteMaterializationHandled(data, `Remote plugin generation for ${key}`);
|
|
14875
14876
|
const ret = data.result;
|
|
14876
14877
|
logger.debug(`Received remote generation for ${key}:\n${JSON.stringify(ret)}`);
|
|
14877
14878
|
return ret;
|
|
@@ -14880,31 +14881,6 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
|
|
|
14880
14881
|
return [];
|
|
14881
14882
|
}
|
|
14882
14883
|
}
|
|
14883
|
-
async function materializeRemoteTestCaseInputs({ config, injectVar, pluginId, provider, purpose, testCases }) {
|
|
14884
|
-
const inputs = config.inputs;
|
|
14885
|
-
if (!inputs || Object.keys(inputs).length === 0) return testCases;
|
|
14886
|
-
return Promise.all(testCases.map(async (testCase, materializationIndex) => {
|
|
14887
|
-
const inputVars = extractInputVarsFromPrompt(String(testCase.vars?.[injectVar] ?? ""), inputs);
|
|
14888
|
-
if (!inputVars) return testCase;
|
|
14889
|
-
const materializedVars = await materializeInputVariablesWithMetadata(inputVars, inputs, {
|
|
14890
|
-
materializationIndex,
|
|
14891
|
-
pluginId,
|
|
14892
|
-
provider,
|
|
14893
|
-
purpose
|
|
14894
|
-
});
|
|
14895
|
-
return {
|
|
14896
|
-
...testCase,
|
|
14897
|
-
vars: {
|
|
14898
|
-
...testCase.vars || {},
|
|
14899
|
-
...materializedVars.vars
|
|
14900
|
-
},
|
|
14901
|
-
metadata: {
|
|
14902
|
-
...testCase.metadata || {},
|
|
14903
|
-
...materializedVars.metadata ? { inputMaterialization: materializedVars.metadata } : {}
|
|
14904
|
-
}
|
|
14905
|
-
};
|
|
14906
|
-
}));
|
|
14907
|
-
}
|
|
14908
14884
|
function createPluginFactory(PluginClass, key, validate) {
|
|
14909
14885
|
return {
|
|
14910
14886
|
key,
|
|
@@ -14916,14 +14892,7 @@ function createPluginFactory(PluginClass, key, validate) {
|
|
|
14916
14892
|
return new PluginClass(provider, purpose, injectVar, configWithDefaults).generateTests(n, delayMs);
|
|
14917
14893
|
}
|
|
14918
14894
|
const pluginId = getShortPluginId(key);
|
|
14919
|
-
const testCases = await
|
|
14920
|
-
config: configWithDefaults ?? {},
|
|
14921
|
-
injectVar,
|
|
14922
|
-
pluginId,
|
|
14923
|
-
provider,
|
|
14924
|
-
purpose,
|
|
14925
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
14926
|
-
});
|
|
14895
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
14927
14896
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
14928
14897
|
return testCases.map((testCase) => ({
|
|
14929
14898
|
...testCase,
|
|
@@ -15010,14 +14979,7 @@ const piiPlugins = PII_PLUGINS.map((category) => ({
|
|
|
15010
14979
|
action: async (params) => {
|
|
15011
14980
|
if (shouldGenerateRemote()) {
|
|
15012
14981
|
const pluginId = getShortPluginId(category);
|
|
15013
|
-
const testCases = await
|
|
15014
|
-
config: params.config ?? {},
|
|
15015
|
-
injectVar: params.injectVar,
|
|
15016
|
-
pluginId,
|
|
15017
|
-
provider: params.provider,
|
|
15018
|
-
purpose: params.purpose,
|
|
15019
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
15020
|
-
});
|
|
14982
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
15021
14983
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
15022
14984
|
return testCases.map((testCase) => ({
|
|
15023
14985
|
...testCase,
|
|
@@ -15049,14 +15011,7 @@ const biasPlugins = BIAS_PLUGINS.map((category) => ({
|
|
|
15049
15011
|
return [];
|
|
15050
15012
|
}
|
|
15051
15013
|
const pluginId = getShortPluginId(category);
|
|
15052
|
-
const testCases = await
|
|
15053
|
-
config: params.config ?? {},
|
|
15054
|
-
injectVar: params.injectVar,
|
|
15055
|
-
pluginId,
|
|
15056
|
-
provider: params.provider,
|
|
15057
|
-
purpose: params.purpose,
|
|
15058
|
-
testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
|
|
15059
|
-
});
|
|
15014
|
+
const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
|
|
15060
15015
|
const computedModifiers = computeModifiersFromConfig(params.config);
|
|
15061
15016
|
return testCases.map((testCase) => ({
|
|
15062
15017
|
...testCase,
|
|
@@ -15075,21 +15030,14 @@ function createRemotePlugin(key, validate) {
|
|
|
15075
15030
|
return {
|
|
15076
15031
|
key,
|
|
15077
15032
|
validate,
|
|
15078
|
-
action: async ({
|
|
15033
|
+
action: async ({ purpose, injectVar, n, config }) => {
|
|
15079
15034
|
const configWithDefaults = applyDefaultRemotePluginConfig(key, config);
|
|
15080
15035
|
if (neverGenerateRemote()) {
|
|
15081
15036
|
logger.error(getRemoteGenerationExplicitlyDisabledError(`${key} plugin`));
|
|
15082
15037
|
return [];
|
|
15083
15038
|
}
|
|
15084
15039
|
const pluginId = getShortPluginId(key);
|
|
15085
|
-
const testCases = await
|
|
15086
|
-
config: configWithDefaults ?? {},
|
|
15087
|
-
injectVar,
|
|
15088
|
-
pluginId,
|
|
15089
|
-
provider,
|
|
15090
|
-
purpose,
|
|
15091
|
-
testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
|
|
15092
|
-
});
|
|
15040
|
+
const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
|
|
15093
15041
|
const computedModifiers = computeModifiersFromConfig(configWithDefaults);
|
|
15094
15042
|
const testsWithMetadata = testCases.map((testCase) => ({
|
|
15095
15043
|
...testCase,
|
|
@@ -15264,7 +15212,7 @@ async function generateCitations(testCases, injectVar, config) {
|
|
|
15264
15212
|
method: "POST",
|
|
15265
15213
|
headers: { "Content-Type": "application/json" },
|
|
15266
15214
|
body: JSON.stringify(payload)
|
|
15267
|
-
},
|
|
15215
|
+
}, getRequestTimeoutMs());
|
|
15268
15216
|
logger.debug(`Got remote citation generation result for case ${Number(index) + 1}: ${JSON.stringify(data)}`);
|
|
15269
15217
|
if (data.error) {
|
|
15270
15218
|
logger.error(`[Citation] Error in citation generation: ${data.error}`);
|
|
@@ -15412,7 +15360,7 @@ async function generateGcgPrompts(testCases, injectVar, config) {
|
|
|
15412
15360
|
"x-promptfoo-silent": "true"
|
|
15413
15361
|
},
|
|
15414
15362
|
body: JSON.stringify(payload)
|
|
15415
|
-
},
|
|
15363
|
+
}, getRequestTimeoutMs(), "json", true);
|
|
15416
15364
|
logger.debug("[GCG] Got generation result", {
|
|
15417
15365
|
caseNumber,
|
|
15418
15366
|
hasError: Boolean(data.error),
|
|
@@ -15974,7 +15922,7 @@ async function generateLikertPrompts(testCases, injectVar, config) {
|
|
|
15974
15922
|
method: "POST",
|
|
15975
15923
|
headers: { "Content-Type": "application/json" },
|
|
15976
15924
|
body: JSON.stringify(payload)
|
|
15977
|
-
},
|
|
15925
|
+
}, getRequestTimeoutMs());
|
|
15978
15926
|
logger.debug(`Got Likert jailbreak generation result for case ${Number(index) + 1}: ${JSON.stringify(data)}`);
|
|
15979
15927
|
if (data.error || !data.modifiedPrompts) {
|
|
15980
15928
|
logger.error(`[jailbreak:likert] Error in Likert generation: ${data.error}}`);
|
|
@@ -16059,7 +16007,7 @@ async function generateMathPrompt(testCases, injectVar, config) {
|
|
|
16059
16007
|
method: "POST",
|
|
16060
16008
|
headers: { "Content-Type": "application/json" },
|
|
16061
16009
|
body: JSON.stringify(payload)
|
|
16062
|
-
},
|
|
16010
|
+
}, getRequestTimeoutMs());
|
|
16063
16011
|
logger.debug(`Got remote MathPrompt generation result for batch ${Number(index) + 1}: ${JSON.stringify(data)}`);
|
|
16064
16012
|
allResults = allResults.concat(data.result);
|
|
16065
16013
|
processedBatches++;
|
|
@@ -16643,7 +16591,7 @@ async function textToAudio(text, language = "en", options) {
|
|
|
16643
16591
|
method: "POST",
|
|
16644
16592
|
headers: { "Content-Type": "application/json" },
|
|
16645
16593
|
body: JSON.stringify(payload)
|
|
16646
|
-
},
|
|
16594
|
+
}, getRequestTimeoutMs());
|
|
16647
16595
|
if (data.error || !data.audioBase64) throw new Error(`Error in remote audio generation: ${data.error || "No audio data returned"}`);
|
|
16648
16596
|
logger.debug(`Received audio base64 from remote API (${data.audioBase64.length} chars)`);
|
|
16649
16597
|
const base64Audio = data.audioBase64;
|
|
@@ -17073,7 +17021,7 @@ async function generateCompositePrompts(testCases, injectVar, config) {
|
|
|
17073
17021
|
method: "POST",
|
|
17074
17022
|
headers: { "Content-Type": "application/json" },
|
|
17075
17023
|
body: JSON.stringify(payload)
|
|
17076
|
-
},
|
|
17024
|
+
}, getRequestTimeoutMs());
|
|
17077
17025
|
logger.debug(`Got composite jailbreak generation result for case ${Number(index) + 1}: ${JSON.stringify(data)}`);
|
|
17078
17026
|
if (data.error || !data.modifiedPrompts) {
|
|
17079
17027
|
logger.error(`[jailbreak:composite] Error in composite generation: ${data.error}}`);
|
|
@@ -17462,6 +17410,15 @@ async function loadStrategy(strategyPath) {
|
|
|
17462
17410
|
}
|
|
17463
17411
|
//#endregion
|
|
17464
17412
|
//#region src/redteam/index.ts
|
|
17413
|
+
const MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY = "__promptfooMaterializedMultiInputPrompt";
|
|
17414
|
+
function getMaterializedMultiInputPromptSnapshot(metadata) {
|
|
17415
|
+
const snapshot = metadata?.[MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY];
|
|
17416
|
+
return typeof snapshot === "string" ? snapshot : void 0;
|
|
17417
|
+
}
|
|
17418
|
+
function getMaterializedMultiInputPromptMetadata(vars) {
|
|
17419
|
+
const prompt = vars?.[MULTI_INPUT_VAR];
|
|
17420
|
+
return typeof prompt === "string" ? { [MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY]: prompt } : void 0;
|
|
17421
|
+
}
|
|
17465
17422
|
function getPolicyText(metadata) {
|
|
17466
17423
|
if (!metadata || metadata.policy === void 0 || metadata.policy === null) return;
|
|
17467
17424
|
const policyValue = metadata.policy;
|
|
@@ -17474,12 +17431,19 @@ function getPolicyText(metadata) {
|
|
|
17474
17431
|
async function rematerializeStrategyInputVars(testCase, injectVar, provider, purpose, materializationIndex) {
|
|
17475
17432
|
const inputs = testCase.metadata?.pluginConfig?.inputs;
|
|
17476
17433
|
const inputMaterialization = testCase.metadata?.inputMaterialization;
|
|
17477
|
-
|
|
17434
|
+
const materializedPromptSnapshot = getMaterializedMultiInputPromptSnapshot(testCase.metadata);
|
|
17435
|
+
const currentInjectVar = testCase.vars?.[injectVar];
|
|
17436
|
+
if (!inputs || Object.keys(inputs).length === 0 || !currentInjectVar) return {
|
|
17437
|
+
inputMaterialization,
|
|
17438
|
+
vars: testCase.vars
|
|
17439
|
+
};
|
|
17440
|
+
const promptChangedSinceMaterialization = typeof currentInjectVar === "string" && typeof materializedPromptSnapshot === "string" && currentInjectVar !== materializedPromptSnapshot;
|
|
17441
|
+
if (Boolean(inputMaterialization) && Object.keys(inputs).every((key) => Object.prototype.hasOwnProperty.call(testCase.vars ?? {}, key)) && !promptChangedSinceMaterialization) return {
|
|
17478
17442
|
inputMaterialization,
|
|
17479
17443
|
vars: testCase.vars
|
|
17480
17444
|
};
|
|
17481
17445
|
try {
|
|
17482
|
-
const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(
|
|
17446
|
+
const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(currentInjectVar)), inputs, {
|
|
17483
17447
|
materializationIndex,
|
|
17484
17448
|
pluginId: String(testCase.metadata?.pluginId || "unknown-plugin"),
|
|
17485
17449
|
provider,
|
|
@@ -17711,7 +17675,8 @@ function addLanguageToPluginMetadata(test, lang, plugin, maxCharsPerMessage, tes
|
|
|
17711
17675
|
...test.metadata?.modifiers,
|
|
17712
17676
|
...languageToAdd
|
|
17713
17677
|
},
|
|
17714
|
-
...languageToAdd
|
|
17678
|
+
...languageToAdd,
|
|
17679
|
+
...getMaterializedMultiInputPromptMetadata(test.vars)
|
|
17715
17680
|
}
|
|
17716
17681
|
};
|
|
17717
17682
|
}
|
|
@@ -17810,7 +17775,8 @@ async function applyStrategies(testCases, strategies, injectVar, provider, purpo
|
|
|
17810
17775
|
...t?.metadata?.pluginId && { pluginId: t.metadata.pluginId },
|
|
17811
17776
|
...t?.metadata?.pluginConfig && { pluginConfig: t.metadata.pluginConfig },
|
|
17812
17777
|
...inputMaterialization && { inputMaterialization },
|
|
17813
|
-
...Object.keys(strategyConfig).length > 0 && { strategyConfig }
|
|
17778
|
+
...Object.keys(strategyConfig).length > 0 && { strategyConfig },
|
|
17779
|
+
...getMaterializedMultiInputPromptMetadata(vars)
|
|
17814
17780
|
}
|
|
17815
17781
|
};
|
|
17816
17782
|
})));
|
|
@@ -18156,14 +18122,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
18156
18122
|
}
|
|
18157
18123
|
});
|
|
18158
18124
|
const languageResults = await Promise.allSettled(languagePromises);
|
|
18159
|
-
for (const result of languageResults) if (result.status === "fulfilled") {
|
|
18125
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
18160
18126
|
const { lang, tests, requested, generated } = result.value;
|
|
18161
18127
|
allPluginTests.push(...tests);
|
|
18162
18128
|
resultsPerLanguage[lang || "default"] = {
|
|
18163
18129
|
requested,
|
|
18164
18130
|
generated
|
|
18165
18131
|
};
|
|
18166
|
-
} else
|
|
18132
|
+
} else {
|
|
18133
|
+
const lang = languages[index];
|
|
18134
|
+
logger.warn(`[Language Processing] Error generating tests for ${plugin.id}: ${result.reason}`);
|
|
18135
|
+
resultsPerLanguage[lang || "default"] = {
|
|
18136
|
+
requested: plugin.numTests,
|
|
18137
|
+
generated: 0
|
|
18138
|
+
};
|
|
18139
|
+
}
|
|
18167
18140
|
logger.debug(`[Language Processing] Total tests generated for ${plugin.id}: ${allPluginTests.length} (across ${languages.length} language(s))`);
|
|
18168
18141
|
if (!Array.isArray(allPluginTests) || allPluginTests.length === 0) logger.warn(`Failed to generate tests for ${plugin.id}`);
|
|
18169
18142
|
else {
|
|
@@ -18197,35 +18170,51 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
18197
18170
|
generated: allPluginTests.length
|
|
18198
18171
|
};
|
|
18199
18172
|
} else if (plugin.id.startsWith("file://")) try {
|
|
18200
|
-
const
|
|
18201
|
-
const
|
|
18202
|
-
|
|
18203
|
-
|
|
18173
|
+
const languageConfig = plugin.config?.language ?? language;
|
|
18174
|
+
const languages = Array.isArray(languageConfig) ? languageConfig : languageConfig ? [languageConfig] : [void 0];
|
|
18175
|
+
const allCustomTests = [];
|
|
18176
|
+
const resultsPerLanguage = {};
|
|
18177
|
+
const languagePromises = languages.map(async (lang) => {
|
|
18178
|
+
const resolvedConfig = {
|
|
18204
18179
|
...resolvePluginConfigWithMaxChars(plugin.config, maxCharsPerMessage),
|
|
18205
|
-
...
|
|
18180
|
+
...lang ? { language: lang } : {},
|
|
18181
|
+
...hasMultipleInputs ? { inputs } : {}
|
|
18206
18182
|
};
|
|
18207
|
-
const
|
|
18208
|
-
...
|
|
18183
|
+
const customPluginConfig = {
|
|
18184
|
+
...resolvedConfig,
|
|
18185
|
+
modifiers: buildRedteamModifiers({
|
|
18209
18186
|
maxCharsPerMessage,
|
|
18210
|
-
pluginConfig:
|
|
18187
|
+
pluginConfig: resolvedConfig,
|
|
18211
18188
|
testGenerationInstructions
|
|
18212
|
-
})
|
|
18213
|
-
...t.metadata?.modifiers
|
|
18189
|
+
})
|
|
18214
18190
|
};
|
|
18191
|
+
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);
|
|
18215
18192
|
return {
|
|
18216
|
-
|
|
18217
|
-
|
|
18218
|
-
|
|
18219
|
-
|
|
18220
|
-
...includePluginConfig && { pluginConfig: pluginConfigWithMaxChars },
|
|
18221
|
-
severity: plugin.severity || getPluginSeverity(plugin.id, resolvePluginConfig(plugin.config)),
|
|
18222
|
-
modifiers
|
|
18223
|
-
}
|
|
18193
|
+
lang,
|
|
18194
|
+
tests: testCasesWithMetadata,
|
|
18195
|
+
requested: plugin.numTests,
|
|
18196
|
+
generated: testCasesWithMetadata.length
|
|
18224
18197
|
};
|
|
18225
|
-
})
|
|
18198
|
+
});
|
|
18199
|
+
const languageResults = await Promise.allSettled(languagePromises);
|
|
18200
|
+
for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
|
|
18201
|
+
const { lang, tests, requested, generated } = result.value;
|
|
18202
|
+
allCustomTests.push(...tests);
|
|
18203
|
+
resultsPerLanguage[lang || "default"] = {
|
|
18204
|
+
requested,
|
|
18205
|
+
generated
|
|
18206
|
+
};
|
|
18207
|
+
} else {
|
|
18208
|
+
const lang = languages[index];
|
|
18209
|
+
logger.warn(`[Language Processing] Error generating tests for custom plugin ${plugin.id}: ${result.reason}`);
|
|
18210
|
+
resultsPerLanguage[lang || "default"] = {
|
|
18211
|
+
requested: plugin.numTests,
|
|
18212
|
+
generated: 0
|
|
18213
|
+
};
|
|
18214
|
+
}
|
|
18226
18215
|
if (needsGoalExtraction) {
|
|
18227
|
-
logger.debug(`Extracting goal for ${
|
|
18228
|
-
for (const testCase of
|
|
18216
|
+
logger.debug(`Extracting goal for ${allCustomTests.length} custom tests from ${plugin.id}...`);
|
|
18217
|
+
for (const testCase of allCustomTests) {
|
|
18229
18218
|
const promptVar = testCase.vars?.[injectVar];
|
|
18230
18219
|
const prompt = Array.isArray(promptVar) ? promptVar[0] : String(promptVar);
|
|
18231
18220
|
const policy = getPolicyText(testCase.metadata);
|
|
@@ -18233,13 +18222,21 @@ async function synthesize({ abortSignal, delay, entities: entitiesOverride, inje
|
|
|
18233
18222
|
testCase.metadata.goal = extractedGoal;
|
|
18234
18223
|
}
|
|
18235
18224
|
}
|
|
18236
|
-
testCases.push(...
|
|
18237
|
-
logger.debug(`Added ${
|
|
18238
|
-
const
|
|
18239
|
-
|
|
18240
|
-
|
|
18241
|
-
|
|
18225
|
+
testCases.push(...allCustomTests);
|
|
18226
|
+
logger.debug(`Added ${allCustomTests.length} custom test cases from ${plugin.id}`);
|
|
18227
|
+
const baseDisplayId = getPluginDisplayId(plugin);
|
|
18228
|
+
if (languages.filter((lang) => lang !== void 0).length > 1) for (const [langKey, result] of Object.entries(resultsPerLanguage)) {
|
|
18229
|
+
const displayId = langKey === "en" ? baseDisplayId : `(${langKey}) ${baseDisplayId}`;
|
|
18230
|
+
pluginResults[displayId] = {
|
|
18231
|
+
requested: result.requested,
|
|
18232
|
+
generated: result.generated
|
|
18233
|
+
};
|
|
18234
|
+
}
|
|
18235
|
+
else pluginResults[baseDisplayId] = {
|
|
18236
|
+
requested: plugin.numTests * languages.length,
|
|
18237
|
+
generated: allCustomTests.length
|
|
18242
18238
|
};
|
|
18239
|
+
progressBar?.increment(plugin.numTests * languages.length);
|
|
18243
18240
|
} catch (e) {
|
|
18244
18241
|
logger.error(`Error generating tests for custom plugin ${plugin.id}: ${e}`);
|
|
18245
18242
|
const displayId = getPluginDisplayId(plugin);
|
|
@@ -19793,7 +19790,7 @@ async function doEval(cmdObj, defaultConfig, defaultConfigPath, evaluateOptions)
|
|
|
19793
19790
|
const passRate = successes / totalTests * 100;
|
|
19794
19791
|
if (cmdObj.table && getLogLevel() !== "debug" && totalTests < 500) {
|
|
19795
19792
|
const table = await evalRecord.getTable();
|
|
19796
|
-
const outputTable = generateTable(table);
|
|
19793
|
+
const outputTable = generateTable(table, cmdObj.tableCellMaxLength ?? commandLineOptions?.tableCellMaxLength);
|
|
19797
19794
|
logger.info("\n" + outputTable.toString());
|
|
19798
19795
|
if (table.body.length > 25) {
|
|
19799
19796
|
const rowsLeft = table.body.length - 25;
|
|
@@ -23267,7 +23264,7 @@ async function handleGoatStrategy(ctx) {
|
|
|
23267
23264
|
method: "POST",
|
|
23268
23265
|
headers: { "Content-Type": "application/json" },
|
|
23269
23266
|
body: JSON.stringify(goatBody)
|
|
23270
|
-
},
|
|
23267
|
+
}, getRequestTimeoutMs());
|
|
23271
23268
|
if (!response.ok) throw new Error(`GOAT task failed with status ${response.status}: ${await response.text()}`);
|
|
23272
23269
|
const data = await response.json();
|
|
23273
23270
|
const attackerMessage = data?.message;
|
|
@@ -23298,7 +23295,7 @@ async function handleMischievousUserStrategy(ctx) {
|
|
|
23298
23295
|
method: "POST",
|
|
23299
23296
|
headers: { "Content-Type": "application/json" },
|
|
23300
23297
|
body: JSON.stringify(mischievousBody)
|
|
23301
|
-
},
|
|
23298
|
+
}, getRequestTimeoutMs());
|
|
23302
23299
|
if (!response.ok) throw new Error(`Mischievous User task failed with status ${response.status}: ${await response.text()}`);
|
|
23303
23300
|
const data = await response.json();
|
|
23304
23301
|
const result = data?.result;
|
|
@@ -23355,7 +23352,7 @@ async function handleHydraStrategy(ctx) {
|
|
|
23355
23352
|
method: "POST",
|
|
23356
23353
|
headers: { "Content-Type": "application/json" },
|
|
23357
23354
|
body: JSON.stringify(hydraBody)
|
|
23358
|
-
},
|
|
23355
|
+
}, getRequestTimeoutMs());
|
|
23359
23356
|
if (!response.ok) throw new Error(`Hydra task failed with status ${response.status}: ${await response.text()}`);
|
|
23360
23357
|
const data = await response.json();
|
|
23361
23358
|
const rawResult = data?.result;
|
|
@@ -23406,7 +23403,7 @@ async function handleCrescendoLikeStrategy(ctx) {
|
|
|
23406
23403
|
method: "POST",
|
|
23407
23404
|
headers: { "Content-Type": "application/json" },
|
|
23408
23405
|
body: JSON.stringify(providerRequest)
|
|
23409
|
-
},
|
|
23406
|
+
}, getRequestTimeoutMs());
|
|
23410
23407
|
if (!response.ok) throw new Error(`Crescendo task failed with status ${response.status}: ${await response.text()}`);
|
|
23411
23408
|
const data = await response.json();
|
|
23412
23409
|
const rawResult = data?.result;
|
|
@@ -24054,7 +24051,7 @@ router.get("/", async (_req, res) => {
|
|
|
24054
24051
|
};
|
|
24055
24052
|
} catch (error) {
|
|
24056
24053
|
logger.debug(`Failed to fetch latest version: ${error}`);
|
|
24057
|
-
latestVersion = versionCache.latestVersion ?? "0.121.
|
|
24054
|
+
latestVersion = versionCache.latestVersion ?? "0.121.9";
|
|
24058
24055
|
}
|
|
24059
24056
|
}
|
|
24060
24057
|
const selfHosted = getEnvBool("PROMPTFOO_SELF_HOSTED");
|
|
@@ -24063,7 +24060,7 @@ router.get("/", async (_req, res) => {
|
|
|
24063
24060
|
selfHosted,
|
|
24064
24061
|
isNpx
|
|
24065
24062
|
});
|
|
24066
|
-
const resolvedLatestVersion = latestVersion ?? "0.121.
|
|
24063
|
+
const resolvedLatestVersion = latestVersion ?? "0.121.9";
|
|
24067
24064
|
const response = {
|
|
24068
24065
|
currentVersion: VERSION,
|
|
24069
24066
|
latestVersion: resolvedLatestVersion,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { s as logger } from "./logger-
|
|
3
|
-
import { N as getDefaultPort, n as fetchWithProxy } from "./fetch-
|
|
4
|
-
import "./version-
|
|
5
|
-
import { o as getRemoteVersionUrl } from "./remoteGeneration-
|
|
2
|
+
import { s as logger } from "./logger-h-eiS4iv.js";
|
|
3
|
+
import { N as getDefaultPort, n as fetchWithProxy } from "./fetch-C59QM4cf.js";
|
|
4
|
+
import "./version-CnYqmWbz.js";
|
|
5
|
+
import { o as getRemoteVersionUrl } from "./remoteGeneration-DW6mPZnO.js";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import opener from "opener";
|
|
8
8
|
import readline from "readline";
|
|
@@ -109,7 +109,7 @@ async function checkServerRunning(port = getDefaultPort()) {
|
|
|
109
109
|
logger.debug(`Checking for existing server on port ${port}...`);
|
|
110
110
|
try {
|
|
111
111
|
const data = await (await fetchWithProxy(`http://localhost:${port}/health`, { headers: { "x-promptfoo-silent": "true" } })).json();
|
|
112
|
-
return data.status === "OK" && data.version === "0.121.
|
|
112
|
+
return data.status === "OK" && data.version === "0.121.9";
|
|
113
113
|
} catch (err) {
|
|
114
114
|
logger.debug(`No existing server found - this is expected on first startup. ${String(err)}`);
|
|
115
115
|
return false;
|
|
@@ -179,4 +179,4 @@ async function openAuthBrowser(authUrl, welcomeUrl, browserBehavior) {
|
|
|
179
179
|
//#endregion
|
|
180
180
|
export { openAuthBrowser as a, promptYesNo as c, checkServerRunning as i, BrowserBehaviorNames as n, openBrowser as o, checkServerFeatureSupport as r, promptUser as s, BrowserBehavior as t };
|
|
181
181
|
|
|
182
|
-
//# sourceMappingURL=server-
|
|
182
|
+
//# sourceMappingURL=server-4wx571OM.js.map
|