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
|
@@ -1,9 +1,61 @@
|
|
|
1
|
-
import { a as logger } from "./logger-
|
|
2
|
-
import {
|
|
3
|
-
import { n as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { a as logger } from "./logger-Cs0I2v_y.js";
|
|
2
|
+
import { Vt as getInputType } from "./types-D6glLbdF.js";
|
|
3
|
+
import { m as getRequestTimeoutMs, n as fetchWithRetries } from "./fetch-CHJu2KON.js";
|
|
4
|
+
import { n as VERSION } from "./version-BNhpIb2U.js";
|
|
5
|
+
import { i as getUserEmail } from "./accounts-4Xa5fcHy.js";
|
|
6
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DvWEm3yi.js";
|
|
6
7
|
import dedent from "dedent";
|
|
8
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
9
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
10
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
11
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
12
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
13
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
14
|
+
if (!options?.textOnly) return true;
|
|
15
|
+
return getInputType(inputs[key]) === "text";
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
19
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
20
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
21
|
+
return {
|
|
22
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
23
|
+
vars: {
|
|
24
|
+
...filteredFallbackVars,
|
|
25
|
+
...filteredMaterializedVars
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function getRemoteMaterializationHost() {
|
|
30
|
+
const remoteUrl = getRemoteGenerationUrl();
|
|
31
|
+
try {
|
|
32
|
+
return new URL(remoteUrl).origin;
|
|
33
|
+
} catch {
|
|
34
|
+
return remoteUrl;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
38
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
39
|
+
}
|
|
40
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
41
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
42
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
43
|
+
return raw;
|
|
44
|
+
}
|
|
45
|
+
function requiresRemoteMaterialization(inputs) {
|
|
46
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
47
|
+
}
|
|
48
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
49
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
50
|
+
}
|
|
51
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
52
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
53
|
+
}
|
|
54
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
55
|
+
if (response?.materializationHandled === true) return;
|
|
56
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
7
59
|
//#region src/providers/promptfoo.ts
|
|
8
60
|
/**
|
|
9
61
|
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
@@ -87,6 +139,7 @@ var PromptfooChatCompletionProvider = class {
|
|
|
87
139
|
|
|
88
140
|
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
89
141
|
` };
|
|
142
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
90
143
|
const body = {
|
|
91
144
|
jsonOnly: this.options.jsonOnly,
|
|
92
145
|
preferSmallModel: this.options.preferSmallModel,
|
|
@@ -94,7 +147,8 @@ var PromptfooChatCompletionProvider = class {
|
|
|
94
147
|
step: context?.prompt.label,
|
|
95
148
|
task: this.options.task,
|
|
96
149
|
email: getUserEmail(),
|
|
97
|
-
...this.options.inputs && { inputs: this.options.inputs }
|
|
150
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
151
|
+
...materializationContext ? { materializationContext } : {}
|
|
98
152
|
};
|
|
99
153
|
try {
|
|
100
154
|
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
@@ -102,13 +156,16 @@ var PromptfooChatCompletionProvider = class {
|
|
|
102
156
|
headers: { "Content-Type": "application/json" },
|
|
103
157
|
body: JSON.stringify(body),
|
|
104
158
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
105
|
-
},
|
|
159
|
+
}, getRequestTimeoutMs());
|
|
106
160
|
const data = await response.json();
|
|
107
161
|
if (!data.result) {
|
|
108
162
|
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
109
163
|
return { error: "LLM did not return a result, likely refusal" };
|
|
110
164
|
}
|
|
111
165
|
return {
|
|
166
|
+
inputMaterialization: data.inputMaterialization,
|
|
167
|
+
materializationHandled: data.materializationHandled,
|
|
168
|
+
materializedVars: data.materializedVars,
|
|
112
169
|
output: data.result,
|
|
113
170
|
tokenUsage: data.tokenUsage
|
|
114
171
|
};
|
|
@@ -161,7 +218,7 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
161
218
|
headers: { "Content-Type": "application/json" },
|
|
162
219
|
body: JSON.stringify(body),
|
|
163
220
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
164
|
-
},
|
|
221
|
+
}, getRequestTimeoutMs());
|
|
165
222
|
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
166
223
|
const data = await response.json();
|
|
167
224
|
return {
|
|
@@ -175,6 +232,6 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
175
232
|
}
|
|
176
233
|
};
|
|
177
234
|
//#endregion
|
|
178
|
-
export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
|
|
235
|
+
export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
|
|
179
236
|
|
|
180
|
-
//# sourceMappingURL=promptfoo-
|
|
237
|
+
//# sourceMappingURL=promptfoo-CEsoPlBa.js.map
|
|
@@ -1,11 +1,63 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
|
-
const require_logger = require("./logger-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
2
|
+
const require_logger = require("./logger-Cm0Nb8YX.cjs");
|
|
3
|
+
const require_types = require("./types-CxJvaY2S.cjs");
|
|
4
|
+
const require_fetch = require("./fetch-B2HvaVUc.cjs");
|
|
5
|
+
const require_version = require("./version-XjGPawtU.cjs");
|
|
6
|
+
const require_accounts = require("./accounts-DAcQXPwE.cjs");
|
|
7
|
+
const require_remoteGeneration = require("./remoteGeneration-CD3c_rzc.cjs");
|
|
7
8
|
let dedent = require("dedent");
|
|
8
9
|
dedent = require_rolldown_runtime.__toESM(dedent, 1);
|
|
10
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
11
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
12
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
13
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
14
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
15
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
16
|
+
if (!options?.textOnly) return true;
|
|
17
|
+
return require_types.getInputType(inputs[key]) === "text";
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
21
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
22
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
23
|
+
return {
|
|
24
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
25
|
+
vars: {
|
|
26
|
+
...filteredFallbackVars,
|
|
27
|
+
...filteredMaterializedVars
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function getRemoteMaterializationHost() {
|
|
32
|
+
const remoteUrl = require_remoteGeneration.getRemoteGenerationUrl();
|
|
33
|
+
try {
|
|
34
|
+
return new URL(remoteUrl).origin;
|
|
35
|
+
} catch {
|
|
36
|
+
return remoteUrl;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
40
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
41
|
+
}
|
|
42
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
43
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
44
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
45
|
+
return raw;
|
|
46
|
+
}
|
|
47
|
+
function requiresRemoteMaterialization(inputs) {
|
|
48
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
49
|
+
}
|
|
50
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
51
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
52
|
+
}
|
|
53
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
54
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
55
|
+
}
|
|
56
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
57
|
+
if (response?.materializationHandled === true) return;
|
|
58
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
9
61
|
//#region src/providers/promptfoo.ts
|
|
10
62
|
/**
|
|
11
63
|
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
@@ -89,6 +141,7 @@ var PromptfooChatCompletionProvider = class {
|
|
|
89
141
|
|
|
90
142
|
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
91
143
|
` };
|
|
144
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
92
145
|
const body = {
|
|
93
146
|
jsonOnly: this.options.jsonOnly,
|
|
94
147
|
preferSmallModel: this.options.preferSmallModel,
|
|
@@ -96,7 +149,8 @@ var PromptfooChatCompletionProvider = class {
|
|
|
96
149
|
step: context?.prompt.label,
|
|
97
150
|
task: this.options.task,
|
|
98
151
|
email: require_accounts.getUserEmail(),
|
|
99
|
-
...this.options.inputs && { inputs: this.options.inputs }
|
|
152
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
153
|
+
...materializationContext ? { materializationContext } : {}
|
|
100
154
|
};
|
|
101
155
|
try {
|
|
102
156
|
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
|
|
@@ -104,13 +158,16 @@ var PromptfooChatCompletionProvider = class {
|
|
|
104
158
|
headers: { "Content-Type": "application/json" },
|
|
105
159
|
body: JSON.stringify(body),
|
|
106
160
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
107
|
-
}, require_fetch.
|
|
161
|
+
}, require_fetch.getRequestTimeoutMs());
|
|
108
162
|
const data = await response.json();
|
|
109
163
|
if (!data.result) {
|
|
110
164
|
require_logger.logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
111
165
|
return { error: "LLM did not return a result, likely refusal" };
|
|
112
166
|
}
|
|
113
167
|
return {
|
|
168
|
+
inputMaterialization: data.inputMaterialization,
|
|
169
|
+
materializationHandled: data.materializationHandled,
|
|
170
|
+
materializedVars: data.materializedVars,
|
|
114
171
|
output: data.result,
|
|
115
172
|
tokenUsage: data.tokenUsage
|
|
116
173
|
};
|
|
@@ -163,7 +220,7 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
163
220
|
headers: { "Content-Type": "application/json" },
|
|
164
221
|
body: JSON.stringify(body),
|
|
165
222
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
166
|
-
}, require_fetch.
|
|
223
|
+
}, require_fetch.getRequestTimeoutMs());
|
|
167
224
|
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
168
225
|
const data = await response.json();
|
|
169
226
|
return {
|
|
@@ -201,5 +258,35 @@ Object.defineProperty(exports, "REDTEAM_SIMULATED_USER_TASK_ID", {
|
|
|
201
258
|
return REDTEAM_SIMULATED_USER_TASK_ID;
|
|
202
259
|
}
|
|
203
260
|
});
|
|
261
|
+
Object.defineProperty(exports, "assertRemoteMaterializationHandled", {
|
|
262
|
+
enumerable: true,
|
|
263
|
+
get: function() {
|
|
264
|
+
return assertRemoteMaterializationHandled;
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
Object.defineProperty(exports, "buildRemoteMaterializationContextVars", {
|
|
268
|
+
enumerable: true,
|
|
269
|
+
get: function() {
|
|
270
|
+
return buildRemoteMaterializationContextVars;
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
Object.defineProperty(exports, "buildRemoteMaterializedInputVariables", {
|
|
274
|
+
enumerable: true,
|
|
275
|
+
get: function() {
|
|
276
|
+
return buildRemoteMaterializedInputVariables;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
Object.defineProperty(exports, "isRemoteMaterializationUpgradeError", {
|
|
280
|
+
enumerable: true,
|
|
281
|
+
get: function() {
|
|
282
|
+
return isRemoteMaterializationUpgradeError;
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
Object.defineProperty(exports, "requiresRemoteMaterialization", {
|
|
286
|
+
enumerable: true,
|
|
287
|
+
get: function() {
|
|
288
|
+
return requiresRemoteMaterialization;
|
|
289
|
+
}
|
|
290
|
+
});
|
|
204
291
|
|
|
205
|
-
//# sourceMappingURL=promptfoo-
|
|
292
|
+
//# sourceMappingURL=promptfoo-DAXBmrE6.cjs.map
|
|
@@ -1,9 +1,61 @@
|
|
|
1
|
-
import { a as logger } from "./logger-
|
|
2
|
-
import { n as fetchWithRetries,
|
|
3
|
-
import { n as VERSION } from "./version-
|
|
4
|
-
import {
|
|
5
|
-
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-
|
|
1
|
+
import { a as logger } from "./logger-BjYLHvGm.js";
|
|
2
|
+
import { n as fetchWithRetries, y as getRequestTimeoutMs } from "./fetch-CBe8pU8Q.js";
|
|
3
|
+
import { n as VERSION } from "./version-BGiEZvX0.js";
|
|
4
|
+
import { o as getUserEmail } from "./accounts-BAajbKSh.js";
|
|
5
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-CoxtxLvB.js";
|
|
6
|
+
import { bt as getInputType } from "./types-uLCKnRiK.js";
|
|
6
7
|
import dedent from "dedent";
|
|
8
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
9
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
10
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
11
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
12
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
13
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
14
|
+
if (!options?.textOnly) return true;
|
|
15
|
+
return getInputType(inputs[key]) === "text";
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
19
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
20
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
21
|
+
return {
|
|
22
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
23
|
+
vars: {
|
|
24
|
+
...filteredFallbackVars,
|
|
25
|
+
...filteredMaterializedVars
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function getRemoteMaterializationHost() {
|
|
30
|
+
const remoteUrl = getRemoteGenerationUrl();
|
|
31
|
+
try {
|
|
32
|
+
return new URL(remoteUrl).origin;
|
|
33
|
+
} catch {
|
|
34
|
+
return remoteUrl;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
38
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
39
|
+
}
|
|
40
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
41
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
42
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
43
|
+
return raw;
|
|
44
|
+
}
|
|
45
|
+
function requiresRemoteMaterialization(inputs) {
|
|
46
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
47
|
+
}
|
|
48
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
49
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
50
|
+
}
|
|
51
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
52
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
53
|
+
}
|
|
54
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
55
|
+
if (response?.materializationHandled === true) return;
|
|
56
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
7
59
|
//#region src/providers/promptfoo.ts
|
|
8
60
|
/**
|
|
9
61
|
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
@@ -87,6 +139,7 @@ var PromptfooChatCompletionProvider = class {
|
|
|
87
139
|
|
|
88
140
|
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
89
141
|
` };
|
|
142
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
90
143
|
const body = {
|
|
91
144
|
jsonOnly: this.options.jsonOnly,
|
|
92
145
|
preferSmallModel: this.options.preferSmallModel,
|
|
@@ -94,7 +147,8 @@ var PromptfooChatCompletionProvider = class {
|
|
|
94
147
|
step: context?.prompt.label,
|
|
95
148
|
task: this.options.task,
|
|
96
149
|
email: getUserEmail(),
|
|
97
|
-
...this.options.inputs && { inputs: this.options.inputs }
|
|
150
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
151
|
+
...materializationContext ? { materializationContext } : {}
|
|
98
152
|
};
|
|
99
153
|
try {
|
|
100
154
|
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
@@ -102,13 +156,16 @@ var PromptfooChatCompletionProvider = class {
|
|
|
102
156
|
headers: { "Content-Type": "application/json" },
|
|
103
157
|
body: JSON.stringify(body),
|
|
104
158
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
105
|
-
},
|
|
159
|
+
}, getRequestTimeoutMs());
|
|
106
160
|
const data = await response.json();
|
|
107
161
|
if (!data.result) {
|
|
108
162
|
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
109
163
|
return { error: "LLM did not return a result, likely refusal" };
|
|
110
164
|
}
|
|
111
165
|
return {
|
|
166
|
+
inputMaterialization: data.inputMaterialization,
|
|
167
|
+
materializationHandled: data.materializationHandled,
|
|
168
|
+
materializedVars: data.materializedVars,
|
|
112
169
|
output: data.result,
|
|
113
170
|
tokenUsage: data.tokenUsage
|
|
114
171
|
};
|
|
@@ -161,7 +218,7 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
161
218
|
headers: { "Content-Type": "application/json" },
|
|
162
219
|
body: JSON.stringify(body),
|
|
163
220
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
164
|
-
},
|
|
221
|
+
}, getRequestTimeoutMs());
|
|
165
222
|
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
166
223
|
const data = await response.json();
|
|
167
224
|
return {
|
|
@@ -175,6 +232,6 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
175
232
|
}
|
|
176
233
|
};
|
|
177
234
|
//#endregion
|
|
178
|
-
export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
|
|
235
|
+
export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
|
|
179
236
|
|
|
180
|
-
//# sourceMappingURL=promptfoo-
|
|
237
|
+
//# sourceMappingURL=promptfoo-DVKqidd8.js.map
|
|
@@ -1,10 +1,62 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { s as logger } from "./logger-
|
|
3
|
-
import {
|
|
4
|
-
import { n as VERSION } from "./version-
|
|
5
|
-
import { o as getUserEmail } from "./accounts-
|
|
6
|
-
import {
|
|
2
|
+
import { s as logger } from "./logger-h-eiS4iv.js";
|
|
3
|
+
import { r as fetchWithRetries, v as getRequestTimeoutMs } from "./fetch-C59QM4cf.js";
|
|
4
|
+
import { n as VERSION } from "./version-CnYqmWbz.js";
|
|
5
|
+
import { o as getUserEmail } from "./accounts-Bw2qPqE-.js";
|
|
6
|
+
import { wt as getInputType } from "./types-C_e_SykX.js";
|
|
7
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DW6mPZnO.js";
|
|
7
8
|
import dedent from "dedent";
|
|
9
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
10
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
11
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
12
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
13
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
14
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
15
|
+
if (!options?.textOnly) return true;
|
|
16
|
+
return getInputType(inputs[key]) === "text";
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
20
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
21
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
22
|
+
return {
|
|
23
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
24
|
+
vars: {
|
|
25
|
+
...filteredFallbackVars,
|
|
26
|
+
...filteredMaterializedVars
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function getRemoteMaterializationHost() {
|
|
31
|
+
const remoteUrl = getRemoteGenerationUrl();
|
|
32
|
+
try {
|
|
33
|
+
return new URL(remoteUrl).origin;
|
|
34
|
+
} catch {
|
|
35
|
+
return remoteUrl;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
39
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
40
|
+
}
|
|
41
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
42
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
43
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
44
|
+
return raw;
|
|
45
|
+
}
|
|
46
|
+
function requiresRemoteMaterialization(inputs) {
|
|
47
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
48
|
+
}
|
|
49
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
50
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
51
|
+
}
|
|
52
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
53
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
54
|
+
}
|
|
55
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
56
|
+
if (response?.materializationHandled === true) return;
|
|
57
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
8
60
|
//#region src/providers/promptfoo.ts
|
|
9
61
|
/**
|
|
10
62
|
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
@@ -88,6 +140,7 @@ var PromptfooChatCompletionProvider = class {
|
|
|
88
140
|
|
|
89
141
|
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
90
142
|
` };
|
|
143
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
91
144
|
const body = {
|
|
92
145
|
jsonOnly: this.options.jsonOnly,
|
|
93
146
|
preferSmallModel: this.options.preferSmallModel,
|
|
@@ -95,7 +148,8 @@ var PromptfooChatCompletionProvider = class {
|
|
|
95
148
|
step: context?.prompt.label,
|
|
96
149
|
task: this.options.task,
|
|
97
150
|
email: getUserEmail(),
|
|
98
|
-
...this.options.inputs && { inputs: this.options.inputs }
|
|
151
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
152
|
+
...materializationContext ? { materializationContext } : {}
|
|
99
153
|
};
|
|
100
154
|
try {
|
|
101
155
|
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
@@ -103,13 +157,16 @@ var PromptfooChatCompletionProvider = class {
|
|
|
103
157
|
headers: { "Content-Type": "application/json" },
|
|
104
158
|
body: JSON.stringify(body),
|
|
105
159
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
106
|
-
},
|
|
160
|
+
}, getRequestTimeoutMs());
|
|
107
161
|
const data = await response.json();
|
|
108
162
|
if (!data.result) {
|
|
109
163
|
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
110
164
|
return { error: "LLM did not return a result, likely refusal" };
|
|
111
165
|
}
|
|
112
166
|
return {
|
|
167
|
+
inputMaterialization: data.inputMaterialization,
|
|
168
|
+
materializationHandled: data.materializationHandled,
|
|
169
|
+
materializedVars: data.materializedVars,
|
|
113
170
|
output: data.result,
|
|
114
171
|
tokenUsage: data.tokenUsage
|
|
115
172
|
};
|
|
@@ -162,7 +219,7 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
162
219
|
headers: { "Content-Type": "application/json" },
|
|
163
220
|
body: JSON.stringify(body),
|
|
164
221
|
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
165
|
-
},
|
|
222
|
+
}, getRequestTimeoutMs());
|
|
166
223
|
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
167
224
|
const data = await response.json();
|
|
168
225
|
return {
|
|
@@ -176,6 +233,6 @@ var PromptfooSimulatedUserProvider = class {
|
|
|
176
233
|
}
|
|
177
234
|
};
|
|
178
235
|
//#endregion
|
|
179
|
-
export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
|
|
236
|
+
export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
|
|
180
237
|
|
|
181
|
-
//# sourceMappingURL=promptfoo-
|
|
238
|
+
//# sourceMappingURL=promptfoo-wxe28-q9.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as logger } from "./logger-
|
|
1
|
+
import { a as logger } from "./logger-Cs0I2v_y.js";
|
|
2
2
|
//#region src/providers/providerRegistry.ts
|
|
3
3
|
/**
|
|
4
4
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -42,4 +42,4 @@ const providerRegistry = new ProviderRegistry();
|
|
|
42
42
|
//#endregion
|
|
43
43
|
export { providerRegistry as t };
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=providerRegistry-
|
|
45
|
+
//# sourceMappingURL=providerRegistry-Bf4tRLgu.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
1
|
+
const require_logger = require("./logger-Cm0Nb8YX.cjs");
|
|
2
2
|
//#region src/providers/providerRegistry.ts
|
|
3
3
|
/**
|
|
4
4
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -47,4 +47,4 @@ Object.defineProperty(exports, "providerRegistry", {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=providerRegistry-
|
|
50
|
+
//# sourceMappingURL=providerRegistry-DKbi2EbP.cjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { s as logger } from "./logger-
|
|
2
|
+
import { s as logger } from "./logger-h-eiS4iv.js";
|
|
3
3
|
//#region src/providers/providerRegistry.ts
|
|
4
4
|
/**
|
|
5
5
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -43,4 +43,4 @@ const providerRegistry = new ProviderRegistry();
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { providerRegistry as t };
|
|
45
45
|
|
|
46
|
-
//# sourceMappingURL=providerRegistry-
|
|
46
|
+
//# sourceMappingURL=providerRegistry-DLeG-xXn.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as logger } from "./logger-
|
|
1
|
+
import { a as logger } from "./logger-BjYLHvGm.js";
|
|
2
2
|
//#region src/providers/providerRegistry.ts
|
|
3
3
|
/**
|
|
4
4
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -42,4 +42,4 @@ const providerRegistry = new ProviderRegistry();
|
|
|
42
42
|
//#endregion
|
|
43
43
|
export { providerRegistry as t };
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=providerRegistry-
|
|
45
|
+
//# sourceMappingURL=providerRegistry-v8Wa3f9z.js.map
|