promptfoo 0.121.4 → 0.121.7
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/{ListApp-DQkFNqE9.js → ListApp-DLmM02JS.js} +1 -1
- package/dist/src/{accounts-DhMYUUbu.js → accounts-Ca7WIoPY.js} +12 -7
- package/dist/src/{accounts-F9d_5sMC.js → accounts-CjFnOPmb.js} +14 -9
- package/dist/src/{accounts-Dy17bs4D.cjs → accounts-CmWzeD2d.cjs} +16 -10
- package/dist/src/{accounts-DdJ2pHMI.js → accounts-DanM1wq_.js} +13 -8
- package/dist/src/{agentic-utils-qFlm6zes.js → agentic-utils-CJ0j3fBi.js} +3 -3
- package/dist/src/{agentic-utils-w68v6_Dz.js → agentic-utils-DDEGRV9v.js} +3 -3
- package/dist/src/{agentic-utils-BpX5b23w.cjs → agentic-utils-DvPWSUpb.cjs} +8 -7
- package/dist/src/{agentic-utils-P172hM8B.js → agentic-utils-TxUEMPYS.js} +2 -2
- package/dist/src/{agents-BahDpe5G.cjs → agents-B4sRuXg3.cjs} +7 -6
- package/dist/src/{agents-pQeBEXMm.js → agents-B8q7h_ek.js} +5 -5
- package/dist/src/{agents-CgaMXvLM.js → agents-CBgJvRkB.js} +21 -10
- package/dist/src/{agents-C-R_jfzI.js → agents-CYn2n3QP.js} +4 -4
- package/dist/src/{agents-8FDnTriG.js → agents-D-vDNFx4.js} +21 -10
- package/dist/src/{agents-aYPQLf8W.js → agents-LrHuQqr1.js} +20 -9
- package/dist/src/{agents-DJ35I3Nt.js → agents-QGg76OF-.js} +5 -5
- package/dist/src/{agents-D7-HGxUj.cjs → agents-eHZ9nlgA.cjs} +21 -10
- package/dist/src/{aimlapi-sgYnkE54.js → aimlapi-CJEbQ0o6.js} +7 -7
- package/dist/src/{aimlapi-BD6J9oKt.js → aimlapi-D5HXzZ0s.js} +6 -6
- package/dist/src/{aimlapi-qcK4OT55.cjs → aimlapi-T6HGNxNe.cjs} +7 -7
- package/dist/src/{aimlapi-BCq3MHeL.js → aimlapi-eYv3a_DK.js} +7 -7
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/app/assets/Report-BNHJKN35.js +1 -0
- package/dist/src/app/assets/index-BnT6P6sF.js +388 -0
- package/dist/src/app/assets/index-yhM8y1PP.css +1 -0
- package/dist/src/app/assets/{scroll-timeline-D9IT_e8Z.js → scroll-timeline-RpeTwOvs.js} +1 -1
- package/dist/src/app/assets/sync-5gq6fmG4.js +4 -0
- package/dist/src/app/assets/vendor-charts-BL9OMNU7.js +36 -0
- package/dist/src/app/assets/{vendor-markdown-Ch00wnNI.js → vendor-markdown-BYsQqn7Z.js} +10 -10
- package/dist/src/app/assets/{vendor-react-CVvmk1UB.js → vendor-react-CqWgVW6T.js} +2 -2
- package/dist/src/app/assets/{vendor-utils-BnEYbx2Q.js → vendor-utils-BHPO71pu.js} +1 -1
- package/dist/src/app/index.html +31 -6
- package/dist/src/{audio-COrn8rM6.js → audio-BqnRvcWG.js} +3 -3
- package/dist/src/{audio-DcVKoInv.js → audio-CPMtV1yR.js} +4 -4
- package/dist/src/{audio-B7izf48x.js → audio-DyiebVB3.js} +4 -4
- package/dist/src/{audio-BQtNuYBj.cjs → audio-FnxbEnSE.cjs} +4 -4
- package/dist/src/authoritativeMarkupInjection-BZIywVjG.js +74 -0
- package/dist/src/authoritativeMarkupInjection-DyAXAsSr.js +75 -0
- package/dist/src/authoritativeMarkupInjection-F2gBw0lN.cjs +74 -0
- package/dist/src/authoritativeMarkupInjection-QEQmFS83.js +74 -0
- package/dist/src/{base-PYJvBE1i.js → base-CKLo890h.js} +4 -3
- package/dist/src/{base-fZ9wgg50.js → base-Co80MMCi.js} +5 -4
- package/dist/src/{base-D-670DX8.cjs → base-DGJW48uz.cjs} +5 -4
- package/dist/src/{base-yrI1Yal4.js → base-E9I8zXjz.js} +5 -4
- package/dist/src/bestOfN-B3wNzjSB.js +137 -0
- package/dist/src/bestOfN-BBsO41z4.js +136 -0
- package/dist/src/bestOfN-CAwmg5UL.cjs +140 -0
- package/dist/src/bestOfN-_kTi8Bxe.js +136 -0
- package/dist/src/{blobs-D2FAd1Q5.cjs → blobs-B0977K1O.cjs} +7 -6
- package/dist/src/{blobs-BCZavS8s.js → blobs-CeFdPn_T.js} +3 -3
- package/dist/src/{blobs-BQWqnnvL.js → blobs-DODuTK-a.js} +3 -3
- package/dist/src/{blobs-C-F78Kfn.js → blobs-Dwef1Ao1.js} +2 -2
- package/dist/src/{cache-BIyPcp5v.cjs → cache-CPGUA4Yl.cjs} +135 -25
- package/dist/src/cache-Cf7b4pWE.js +3 -0
- package/dist/src/{cache-D5NZmMiT.js → cache-DIXbtkNO.js} +125 -10
- package/dist/src/{cache-mb7c8hbp.js → cache-DpPWrkTE.js} +128 -12
- package/dist/src/{cache-C4Xb-hNb.js → cache-roFAE0cI.js} +126 -11
- package/dist/src/{chat-I9izLm49.js → chat-CUCorGiL.js} +12 -12
- package/dist/src/{chat-BPXSW8Bv.cjs → chat-DG1wG4w0.cjs} +6 -6
- package/dist/src/{chat-BfPaS15_.js → chat-Dabu84Br.js} +12 -12
- package/dist/src/{chat-Dr3DUQ0D.js → chat-DqUFcWI0.js} +12 -12
- package/dist/src/{chat-CclRbxGf.cjs → chat-DxTDQ83C.cjs} +14 -13
- package/dist/src/{chat-MKxMnZJZ.js → chat-GmlolEwo.js} +4 -4
- package/dist/src/{chat-0bwXjVP0.js → chat-TP8Qifkh.js} +6 -6
- package/dist/src/{chat-mW0ORo8G.js → chat-iwaM5UTQ.js} +6 -6
- package/dist/src/{chatkit-zUIVoDos.js → chatkit-B6DWi70Q.js} +4 -4
- package/dist/src/{chatkit-BoWoSgXl.cjs → chatkit-BYveR48_.cjs} +6 -5
- package/dist/src/{chatkit-Cv6AhukM.js → chatkit-fARZwEfV.js} +3 -3
- package/dist/src/{chatkit-CJnHRRMM.js → chatkit-lb6FK02w.js} +4 -4
- package/dist/src/{claude-agent-sdk-Dtq_L-Sc.js → claude-agent-sdk-BQNp_y-F.js} +212 -67
- package/dist/src/{claude-agent-sdk-BQNuLaAK.js → claude-agent-sdk-D5Jl0SDh.js} +212 -67
- package/dist/src/{claude-agent-sdk-CPJo3dBQ.cjs → claude-agent-sdk-DH416NBD.cjs} +218 -72
- package/dist/src/{claude-agent-sdk-nfAIcxNf.js → claude-agent-sdk-x1XJ1-pU.js} +212 -67
- package/dist/src/{cloud-DQZ5sVjW.js → cloud-D3DiFqH6.js} +3 -3
- package/dist/src/cloud-p96PA4MH.js +3 -0
- package/dist/src/{cloudflare-ai-BIB567w6.js → cloudflare-ai-B6NVI3ax.js} +4 -4
- package/dist/src/{cloudflare-ai-Dl3N9OVD.cjs → cloudflare-ai-CEAW-xQa.cjs} +6 -6
- package/dist/src/{cloudflare-ai-DlKr0rY7.js → cloudflare-ai-RFSojyXG.js} +6 -6
- package/dist/src/{cloudflare-ai-DGLte7Py.js → cloudflare-ai-r4tbYmWU.js} +6 -6
- package/dist/src/{cloudflare-gateway-CiIZHU0Q.js → cloudflare-gateway-BCkLouto.js} +5 -5
- package/dist/src/{cloudflare-gateway-DI1HNP5F.js → cloudflare-gateway-BaZ4insB.js} +3 -3
- package/dist/src/{cloudflare-gateway-BDZrYydE.js → cloudflare-gateway-CF-Vb-2Z.js} +5 -5
- package/dist/src/{cloudflare-gateway-BYDp495F.cjs → cloudflare-gateway-TJMLBj6I.cjs} +5 -5
- package/dist/src/codex-app-server-B8KHEiF4.js +1915 -0
- package/dist/src/codex-app-server-CnrLBCeA.cjs +1921 -0
- package/dist/src/codex-app-server-DIXZ230V.js +1915 -0
- package/dist/src/codex-app-server-Dd22dC_N.js +1916 -0
- package/dist/src/{codex-sdk-CpqiOqDO.js → codex-sdk-B6Wah8Pa.js} +6 -6
- package/dist/src/codex-sdk-BGjVAk23.js +3 -0
- package/dist/src/{codex-sdk-C2_M2pl_.cjs → codex-sdk-CFF6gUyi.cjs} +18 -10
- package/dist/src/{codex-sdk-Rtky3M4I.js → codex-sdk-CmQABzV3.js} +6 -6
- package/dist/src/{codex-sdk-CErXn7qh.js → codex-sdk-D2d54RL8.js} +5 -5
- package/dist/src/{cometapi-CtJ-mS8R.js → cometapi-Bu9B8NUY.js} +8 -8
- package/dist/src/{cometapi-DT-jlVCB.js → cometapi-CtzNCHKu.js} +7 -7
- package/dist/src/{cometapi-UVOryo4W.cjs → cometapi-DHCDlQUI.cjs} +8 -8
- package/dist/src/{cometapi-BUlt_ELa.js → cometapi-OBILPLlu.js} +8 -8
- package/dist/src/{completion-HUe8wDhZ.js → completion-CO2e1_62.js} +6 -6
- package/dist/src/{completion-BozdoXba.cjs → completion-CSYfl2cd.cjs} +6 -6
- package/dist/src/{completion-x0a_c2y1.js → completion-DZNxcyfG.js} +6 -6
- package/dist/src/{completion-Dnxn7E-j.js → completion-sNvCLTAP.js} +5 -5
- package/dist/src/constants-BjJV0cRr.js +6 -0
- package/dist/src/constants-DH5XYLKZ.js +7 -0
- package/dist/src/constants-DZGEFLsu.js +6 -0
- package/dist/src/constants-a2kYssQk.cjs +11 -0
- package/dist/src/{createHash-4gFQpDDv.js → createHash-BtbSX3mj.js} +1 -1
- package/dist/src/{createHash-CwDVU5xr.js → createHash-CGVzWdjj.js} +1 -1
- package/dist/src/{createHash-B7KvgoOD.cjs → createHash-CSiqnK5P.cjs} +2 -2
- package/dist/src/{createHash-ChI45QR1.js → createHash-CgRvs4Fn.js} +1 -1
- package/dist/src/crescendo-BXEJK_bi.cjs +704 -0
- package/dist/src/crescendo-CU_Y2i-m.js +702 -0
- package/dist/src/crescendo-J1Xx4_zb.js +703 -0
- package/dist/src/crescendo-QiaSLW0d.js +701 -0
- package/dist/src/custom-BJfP00Bh.js +619 -0
- package/dist/src/custom-CZVn-1-r.js +620 -0
- package/dist/src/custom-Cqia7M0D.cjs +621 -0
- package/dist/src/custom-notggYVl.js +618 -0
- package/dist/src/{docker-DCgsveLD.js → docker-4D1eL6Gq.js} +6 -6
- package/dist/src/{docker-ClnmCf1Z.js → docker-BBv1WUDu.js} +5 -5
- package/dist/src/{docker-DS4_Osau.cjs → docker-D06JUoe2.cjs} +6 -6
- package/dist/src/{docker-CQmlA2NU.js → docker-DdJQBxK9.js} +6 -6
- package/dist/src/{embedding-D3xTseo7.js → embedding--UZVe4_7.js} +6 -6
- package/dist/src/{embedding-I45KG3o7.cjs → embedding-BbrwopfX.cjs} +6 -6
- package/dist/src/{embedding-nFbumxcv.js → embedding-Bi3rxrZF.js} +5 -5
- package/dist/src/{embedding-DD9wa3ae.js → embedding-C251p1-8.js} +6 -6
- package/dist/src/{errors-Cw810C93.js → errors-9PcUL8BC.js} +1 -1
- package/dist/src/{esm-Dh4dOLlt.js → esm-B6whoAcf.js} +2 -2
- package/dist/src/{esm-CtEPLdAj.cjs → esm-BIKakvNa.cjs} +8 -7
- package/dist/src/{esm-C7PnfdF8.js → esm-BTK1W7lG.js} +1 -1
- package/dist/src/{esm-tVgYPY-f.js → esm-Bexx2PFc.js} +2 -2
- package/dist/src/{eval-u4UVafl6.js → eval-0VRANImH.js} +21 -21
- package/dist/src/{eval-CzJFfFO9.js → eval-DscR5iOM.js} +1 -1
- package/dist/src/{evalResult-Bgm9ZH31.js → evalResult-2RRJvFyB.js} +41 -16
- package/dist/src/{evalResult-KZqXl4XP.cjs → evalResult-CvtS8h8u.cjs} +51 -15
- package/dist/src/evalResult-DqzsS6_W.js +3 -0
- package/dist/src/{evalResult-D3hVYFis.js → evalResult-eUkJv9Ko.js} +40 -15
- package/dist/src/evaluator-DNdJF1Gv.js +3 -0
- package/dist/src/{evaluator-IvuDYSvQ.js → evaluator-DRoiYB2q.js} +1060 -187
- package/dist/src/evaluatorHelpers-BsYP_muT.js +511 -0
- package/dist/src/evaluatorHelpers-CRqTvSux.cjs +537 -0
- package/dist/src/evaluatorHelpers-DuqFFfq7.js +510 -0
- package/dist/src/{extractor-CAfTSraf.js → extractor-BR7XAzAL.js} +6 -6
- package/dist/src/{extractor-WVPOrH43.cjs → extractor-BdxEtt3J.cjs} +6 -6
- package/dist/src/{extractor-DNSeBVOJ.js → extractor-CIW3iN-b.js} +6 -6
- package/dist/src/{extractor-Dk6bRWkv.js → extractor-CxRtnaHl.js} +5 -5
- package/dist/src/{fetch-B0Z3Oe4k.js → fetch-BufrQtvR.js} +93 -40
- package/dist/src/{fetch-BEWnXrrG.js → fetch-DXUnXkVU.js} +89 -40
- package/dist/src/{fetch-CJU5ELPa.cjs → fetch-Dw4XZHjj.cjs} +330 -270
- package/dist/src/{fetch-Di00EQrc.js → fetch-It34O8Ur.js} +305 -252
- package/dist/src/fetch-_YgGd2qv.js +3 -0
- package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
- package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-CXRfY3Ss.js} +12 -2
- package/dist/src/{fileExtensions-AWa2ZML4.js → fileExtensions-D4GCJ67J.js} +12 -2
- package/dist/src/{formatDuration-DZzPsexs.js → formatDuration-CMVNrYvE.js} +1 -1
- package/dist/src/{genaiTracer-yRuxj9-L.cjs → genaiTracer-14nugQQx.cjs} +14 -2
- package/dist/src/{genaiTracer-DWdZ28hY.js → genaiTracer-BPVvltoW.js} +2 -2
- package/dist/src/{genaiTracer-XnrcgDCe.js → genaiTracer-D18lYzhB.js} +2 -2
- package/dist/src/{genaiTracer-COYDi-tC.js → genaiTracer-jJKYsnjc.js} +2 -2
- package/dist/src/goat-Ckd3q3AY.js +467 -0
- package/dist/src/goat-Qgurm-NP.js +466 -0
- package/dist/src/goat-ghadEDdy.js +465 -0
- package/dist/src/goat-una6pZGP.cjs +469 -0
- package/dist/src/graders-BDT7dif6.js +3 -0
- package/dist/src/{graders-eIHhRqoC.js → graders-BGP99PdK.js} +2416 -2224
- package/dist/src/{graders-Zy3x0zqX.js → graders-BX0f2tvS.js} +2423 -2226
- package/dist/src/{graders-pvbReLLn.js → graders-C0nXU_ZP.js} +1806 -1609
- package/dist/src/{graders--zknU_uk.cjs → graders-ClrU2fnd.cjs} +2219 -1949
- package/dist/src/hydra-BSNZZm2M.js +543 -0
- package/dist/src/hydra-BxdG4nkg.js +541 -0
- package/dist/src/hydra-DE4xWwyc.js +542 -0
- package/dist/src/hydra-DrJttnvw.cjs +542 -0
- package/dist/src/image-B4oBtu6J.js +443 -0
- package/dist/src/{image-dnoUgPrC.js → image-BN-hjLL9.js} +4 -4
- package/dist/src/{image-9302QVqR.js → image-B_fPIwdg.js} +3 -3
- package/dist/src/image-BvUAW344.js +442 -0
- package/dist/src/image-Cvjwx1uY.js +442 -0
- package/dist/src/{image-De2FBmYV.cjs → image-DfVCGPbI.cjs} +4 -4
- package/dist/src/{image-u7-rKnYU.js → image-QzmydkiG.js} +4 -4
- package/dist/src/image-X0oY4350.cjs +465 -0
- package/dist/src/index.cjs +1689 -558
- package/dist/src/index.d.cts +3270 -1624
- package/dist/src/index.d.ts +3270 -1624
- package/dist/src/index.js +1553 -438
- package/dist/src/indirectWebPwn-02ZIghCS.js +259 -0
- package/dist/src/indirectWebPwn-BJ22AbQa.cjs +397 -0
- package/dist/src/indirectWebPwn-CbjUG0rh.js +385 -0
- package/dist/src/indirectWebPwn-CfQJt3gk.cjs +260 -0
- package/dist/src/indirectWebPwn-DBQhOjoD.js +260 -0
- package/dist/src/indirectWebPwn-OsXnKejv.js +259 -0
- package/dist/src/indirectWebPwn-tNx9OZ35.js +385 -0
- package/dist/src/indirectWebPwn-uyWdHx04.js +386 -0
- package/dist/src/inputVariables-B0qUChbV.js +467 -0
- package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
- package/dist/src/inputVariables-DXFdi7AI.js +468 -0
- package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
- package/dist/src/{interactiveCheck-CLERUB0c.js → interactiveCheck-C4QlIuoR.js} +2 -2
- package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
- package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
- package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
- package/dist/src/iterative-CpU6i2As.js +490 -0
- package/dist/src/iterative-DJQEQpG3.js +491 -0
- package/dist/src/iterative-DQBuWM-j.cjs +493 -0
- package/dist/src/iterative-FTS4Bz67.js +492 -0
- package/dist/src/iterativeImage-BUABMVOA.js +413 -0
- package/dist/src/iterativeImage-ByFWkxax.cjs +415 -0
- package/dist/src/iterativeImage-BzUapOUi.js +414 -0
- package/dist/src/iterativeImage-Doz8mgxF.js +413 -0
- package/dist/src/iterativeMeta-B3YiAOc8.js +386 -0
- package/dist/src/iterativeMeta-C7APE_P1.js +385 -0
- package/dist/src/iterativeMeta-CSS8M6Ds.cjs +385 -0
- package/dist/src/iterativeMeta-DgoQ7bLh.js +384 -0
- package/dist/src/iterativeTree-B5zxBBSW.js +769 -0
- package/dist/src/iterativeTree-CNyIk0Yn.js +768 -0
- package/dist/src/iterativeTree-CPMF10ve.cjs +771 -0
- package/dist/src/iterativeTree-DvZ7GBwt.js +770 -0
- package/dist/src/{knowledgeBase-Dgc7CBWF.js → knowledgeBase-BadkINlJ.js} +24 -10
- package/dist/src/{knowledgeBase-RhFPGWDc.js → knowledgeBase-Bi_8sV-H.js} +25 -11
- package/dist/src/{knowledgeBase-lm9RXSAm.js → knowledgeBase-CkMljjdg.js} +25 -11
- package/dist/src/{knowledgeBase-Bpoe_nLu.cjs → knowledgeBase-DUh34xba.cjs} +25 -11
- package/dist/src/{litellm-DRjpcSa7.js → litellm-BKBo0jpC.js} +5 -5
- package/dist/src/{litellm-C2kqjxqp.js → litellm-BXyn5kZK.js} +5 -5
- package/dist/src/{litellm-p37R1dzQ.js → litellm-CNcfbCfa.js} +4 -4
- package/dist/src/{litellm-CoyI4IAl.cjs → litellm-CtAr7bKG.cjs} +5 -5
- package/dist/src/{logger-DksKw1Qc.js → logger-BbY6ypFL.js} +2 -2
- package/dist/src/{logger-B88EkIn6.js → logger-KD8JjCRJ.js} +2 -2
- package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
- package/dist/src/{luma-ray-KgTCXrZC.js → luma-ray-BMX1iEB6.js} +5 -5
- package/dist/src/{luma-ray-B863CmuZ.js → luma-ray-CR5TSpp4.js} +5 -5
- package/dist/src/{luma-ray-BxVKaW2a.cjs → luma-ray-D3FUc2K3.cjs} +9 -8
- package/dist/src/{luma-ray-BTTLtqQ8.js → luma-ray-OEMmS1RB.js} +6 -6
- package/dist/src/main.js +909 -369
- package/dist/src/memoryPoisoning-CM83NWYl.js +107 -0
- package/dist/src/memoryPoisoning-D8h9gXJF.js +106 -0
- package/dist/src/memoryPoisoning-Dp-btinn.cjs +106 -0
- package/dist/src/memoryPoisoning-cLuCoTuJ.js +106 -0
- package/dist/src/{messages-BTQz42fn.js → messages-BabO-cX8.js} +273 -17
- package/dist/src/{messages-811uVVW5.cjs → messages-DBPir0TQ.cjs} +278 -18
- package/dist/src/{messages-zWbkLLHz.js → messages-DGUlSNU7.js} +273 -17
- package/dist/src/{messages-MYTQ2TWp.js → messages-vsE_-Lv0.js} +273 -17
- package/dist/src/{meteor-DHdzY1Ss.js → meteor--TZYICTI.js} +2 -2
- package/dist/src/{meteor-Co1VQ1u5.cjs → meteor-CR226f7Z.cjs} +2 -2
- package/dist/src/{meteor-CU5UAE-H.js → meteor-Cl_yd7rJ.js} +2 -2
- package/dist/src/{meteor-DuAFv6gF.js → meteor-Dce-_zGQ.js} +1 -1
- package/dist/src/mischievousUser-0l8GD7Dp.js +46 -0
- package/dist/src/mischievousUser-BUOP9W5r.js +46 -0
- package/dist/src/mischievousUser-frFYKxu6.js +47 -0
- package/dist/src/mischievousUser-olGgHIVR.cjs +46 -0
- package/dist/src/{modelslab-Dk1JAtVo.cjs → modelslab-CNV5bMSk.cjs} +7 -7
- package/dist/src/{modelslab-D0erNWKe.js → modelslab-Cogmu4mG.js} +6 -6
- package/dist/src/{modelslab-DIq-6y7x.js → modelslab-Dzst7VTU.js} +6 -6
- package/dist/src/{modelslab-wu9yi5GE.js → modelslab-EyDczZ5A.js} +7 -7
- package/dist/src/{nova-reel-CCFRfeRb.js → nova-reel-BGPNBOMS.js} +6 -6
- package/dist/src/{nova-reel-DQrm74ng.js → nova-reel-B_5NKFu1.js} +5 -5
- package/dist/src/{nova-reel-gr11WG7f.js → nova-reel-C4eUJGse.js} +5 -5
- package/dist/src/{nova-reel-CrLXVKQf.cjs → nova-reel-CjJRxI1X.cjs} +9 -8
- package/dist/src/{nova-sonic-BYdp-QLs.js → nova-sonic-BNGmgfFz.js} +4 -4
- package/dist/src/{nova-sonic-TDgrlTk7.js → nova-sonic-ChPlh5na.js} +4 -4
- package/dist/src/{nova-sonic-B_ZXcUJB.js → nova-sonic-CrV0iaY_.js} +3 -3
- package/dist/src/{nova-sonic-i5tUvXKn.cjs → nova-sonic-DuOG9Aun.cjs} +5 -4
- package/dist/src/{openai-DhVEmgeZ.js → openai-BMHD2Huo.js} +2 -2
- package/dist/src/{openai-URNyItar.cjs → openai-C3uXv8wS.cjs} +2 -2
- package/dist/src/{openai-Qsvz25mV.js → openai-CJrsh9n4.js} +2 -2
- package/dist/src/{openai-iYtrXzOX.js → openai-zgwBb4Ff.js} +1 -1
- package/dist/src/{openclaw-CnQ363Wi.js → openclaw-BIHlu_36.js} +10 -8
- package/dist/src/{openclaw-CwzlQSQX.js → openclaw-CF7fMido.js} +9 -7
- package/dist/src/{openclaw-wX9rtfke.cjs → openclaw-Dphc01BY.cjs} +18 -15
- package/dist/src/{openclaw-CLWrW03k.js → openclaw-zIJAsz3P.js} +10 -8
- package/dist/src/{opencode-sdk-BUu5Nevv.js → opencode-sdk-B3vlPLsp.js} +40 -5
- package/dist/src/{opencode-sdk-BxD8vXp_.js → opencode-sdk-D05JSgMQ.js} +40 -5
- package/dist/src/{opencode-sdk-BZ2idgYA.cjs → opencode-sdk-DoY6GbWw.cjs} +46 -10
- package/dist/src/{opencode-sdk-GI2KaAXq.js → opencode-sdk-sRKYHGoI.js} +39 -4
- package/dist/src/{otlpReceiver-BntK801g.js → otlpReceiver--gTpSagc.js} +120 -4
- package/dist/src/{otlpReceiver-DmVulbhC.js → otlpReceiver-B2eaKC8C.js} +120 -4
- package/dist/src/{otlpReceiver-B2z58l4e.js → otlpReceiver-BXjcRqAM.js} +119 -3
- package/dist/src/{otlpReceiver-BfcVq2Nq.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
- package/dist/src/packageParser--MWTSrPW.js +36 -0
- package/dist/src/packageParser-CgE-ziRo.js +35 -0
- package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
- package/dist/src/packageParser-hwwSGnAZ.js +35 -0
- package/dist/src/processShim-BBxt7LKO.js +95 -0
- package/dist/src/processShim-BcGzU8fY.js +94 -0
- package/dist/src/processShim-C_z3aRvF.js +94 -0
- package/dist/src/processShim-DSY9BV2T.cjs +98 -0
- package/dist/src/promptLength-0qIHyhA5.js +71 -0
- package/dist/src/promptLength-4X-Wd8PG.js +72 -0
- package/dist/src/promptLength-B9nZEfO6.js +71 -0
- package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
- package/dist/src/promptfoo-BDrfT30-.js +180 -0
- package/dist/src/promptfoo-Cm4hiy1Y.js +180 -0
- package/dist/src/promptfoo-Rjp-MeBb.js +181 -0
- package/dist/src/promptfoo-b-baRMj-.cjs +205 -0
- package/dist/src/prompts-BYMtqPCw.js +259 -0
- package/dist/src/prompts-C-bqE1Yp.js +260 -0
- package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
- package/dist/src/prompts-DHhQsANy.js +259 -0
- package/dist/src/prompts-D_QpZ2Dm.js +271 -0
- package/dist/src/prompts-hNvWBD3z.cjs +284 -0
- package/dist/src/prompts-huDVH2CI.js +270 -0
- package/dist/src/prompts-p78Hul5i.cjs +289 -0
- package/dist/src/{providerRegistry-CPQ_CmVO.js → providerRegistry-1gB5vtzQ.js} +2 -2
- package/dist/src/{providerRegistry-CQMdTmHP.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
- package/dist/src/{providerRegistry-Bvh8mv85.js → providerRegistry-DHcFiVWX.js} +1 -1
- package/dist/src/{providerRegistry-CWoPjKFZ.js → providerRegistry-ReCd0sFa.js} +2 -2
- package/dist/src/{providers-BV_KMZje.js → providers-B9KzWxAX.js} +10558 -21587
- package/dist/src/{providers-DruaQfwu.js → providers-BCCz6_IX.js} +1228 -12196
- package/dist/src/{providers-1eKkXBKp.cjs → providers-BDVVIQM6.cjs} +10649 -21843
- package/dist/src/{providers-iUt5fbAN.js → providers-BYAn82cf.js} +1 -1
- package/dist/src/{providers-Domz_llv.js → providers-DVYRZP4E.js} +10589 -21570
- package/dist/src/{pythonUtils-Cldx7huE.js → pythonUtils-CLCgQ9tt.js} +3 -3
- package/dist/src/{pythonUtils-CnndUbW-.js → pythonUtils-CgYxeSmO.js} +3 -3
- package/dist/src/{pythonUtils-tAJvvpS-.cjs → pythonUtils-Cokhluq3.cjs} +8 -7
- package/dist/src/{pythonUtils-C2UQ30Rz.js → pythonUtils-D0BYebvX.js} +3 -3
- package/dist/src/{quiverai-DFotyafY.cjs → quiverai-BAp6iTZD.cjs} +4 -4
- package/dist/src/{quiverai-aPPvXOgn.js → quiverai-BvIhI_0l.js} +4 -4
- package/dist/src/{quiverai-DR0SnIQV.js → quiverai-CdTWPe-A.js} +3 -3
- package/dist/src/{quiverai-CtWi6x_g.js → quiverai-Cv7rJKDz.js} +4 -4
- package/dist/src/registry-BUJrgjwv.js +124 -0
- package/dist/src/registry-DXm1t_x0.js +125 -0
- package/dist/src/registry-Dp5EqoXc.js +124 -0
- package/dist/src/registry-KCVF1CFC.cjs +124 -0
- package/dist/src/{server-D6Il2Sob.js → remoteGeneration-B1_XsKXU.js} +16 -108
- package/dist/src/{server-BSB45Nt9.js → remoteGeneration-COpWcmWd.js} +15 -146
- package/dist/src/{server-Dx2TyCH2.cjs → remoteGeneration-DS9N3pgB.cjs} +30 -119
- package/dist/src/remoteGeneration-DsaSwmG2.js +217 -0
- package/dist/src/render-BNTrbmBw.cjs +384 -0
- package/dist/src/render-CSP99NLm.js +348 -0
- package/dist/src/render-DFfDeYUK.js +347 -0
- package/dist/src/{render-CgVDrJmM.js → render-DznWrxGO.js} +2 -2
- package/dist/src/render-_6ur1fhE.js +347 -0
- package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
- package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
- package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
- package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
- package/dist/src/{responses-Bi9vBuW_.cjs → responses-1UFFF9N_.cjs} +51 -16
- package/dist/src/{responses-DL9m8CyY.js → responses-B3W2JvOQ.js} +49 -15
- package/dist/src/{responses--OsX2aYW.js → responses-B6ktc3Ra.js} +49 -15
- package/dist/src/{responses-C-flexAY.js → responses-URRzV8qE.js} +49 -15
- package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
- package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
- package/dist/src/{rubyUtils-DsGrTx8R.js → rubyUtils-CXlFM2rR.js} +3 -3
- package/dist/src/{rubyUtils-DVLeA2jg.js → rubyUtils-CnlW8AYb.js} +3 -3
- package/dist/src/{rubyUtils-B6eljPuh.cjs → rubyUtils-CqUWBZAt.cjs} +18 -27
- package/dist/src/{rubyUtils-CYSQEG4a.js → rubyUtils-DdGojpfv.js} +3 -3
- package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
- package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
- package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
- package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
- package/dist/src/{sagemaker-BVkaG2-l.js → sagemaker-CujrzP1a.js} +62 -51
- package/dist/src/{sagemaker-XnfhheQv.cjs → sagemaker-DzffAqo_.cjs} +65 -53
- package/dist/src/{sagemaker-D67yzMzs.js → sagemaker-vhtSV7JI.js} +62 -51
- package/dist/src/{sagemaker-BveBvuxm.js → sagemaker-yr1QKeBs.js} +61 -50
- package/dist/src/{scanner-1DqWi1Ej.js → scanner-DS0109SS.js} +7 -7
- package/dist/src/server/index.js +5105 -605
- package/dist/src/server-B8rqV126.cjs +126 -0
- package/dist/src/server-BaLytskk.js +3 -0
- package/dist/src/server-CMJD10J4.js +107 -0
- package/dist/src/server-Ddp8GNMp.js +146 -0
- package/dist/src/server-DhMHosWj.js +182 -0
- package/dist/src/shared-7pmVZLNO.js +1334 -0
- package/dist/src/shared-9WHQ1oNE.js +1335 -0
- package/dist/src/{fileExtensions-BArZuxsI.js → shared-BoG7qLMv.js} +12 -2
- package/dist/src/shared-D6IjElRI.js +1334 -0
- package/dist/src/shared-WkgnDkcg.cjs +1436 -0
- package/dist/src/{signal-CE5G3a7x.js → signal-CSurUUyV.js} +3 -3
- package/dist/src/simulatedUser-C9aQObBI.js +222 -0
- package/dist/src/simulatedUser-Cu601Dd4.cjs +227 -0
- package/dist/src/simulatedUser-U_qAHnuB.js +222 -0
- package/dist/src/simulatedUser-p3tACcmw.js +223 -0
- package/dist/src/{slack-DDUe-5MC.js → slack-Bapo-7_8.js} +2 -2
- package/dist/src/{slack-1Rhq0EoV.cjs → slack-DMC1QVEg.cjs} +3 -2
- package/dist/src/{slack-D5Wpy8LM.js → slack-DTEFhrMn.js} +2 -2
- package/dist/src/{slack-acRb0IqQ.js → slack-k-_CP84Q.js} +1 -1
- package/dist/src/storage-BU4qcnOb.js +875 -0
- package/dist/src/storage-CA-v9V2v.cjs +911 -0
- package/dist/src/storage-CD-GWAdx.js +822 -0
- package/dist/src/storage-QdU-SmvD.js +834 -0
- package/dist/src/{store-DAAyxcy6.cjs → store-B2NDDooM.cjs} +60 -24
- package/dist/src/{store-CYEy5J2D.js → store-DKd5592Q.js} +51 -20
- package/dist/src/{store-M0b1WfYb.js → store-HpopRVzl.js} +50 -19
- package/dist/src/store-IbiRIF3k.js +3 -0
- package/dist/src/strategies-7CS3Alao.cjs +2360 -0
- package/dist/src/strategies-CiSeroPH.js +2331 -0
- package/dist/src/strategies-DRJjGTIY.js +2333 -0
- package/dist/src/{tables-DQ4WU5tX.js → tables-CRSXQ2Ke.js} +2 -2
- package/dist/src/{tables-CsWou1Bx.js → tables-CxjU7bBd.js} +3 -3
- package/dist/src/{tables-DUfh1F7Z.cjs → tables-DBIJU0WE.cjs} +6 -5
- package/dist/src/{tables-C4CH3zRr.js → tables-DafUHOeh.js} +3 -3
- package/dist/src/{telemetry-CQPez_Jp.js → telemetry-00ezXr_t.js} +5 -4
- package/dist/src/telemetry-ByPqDcKC.js +3 -0
- package/dist/src/{telemetry-Dsw_faFj.cjs → telemetry-CJ7FnCsc.cjs} +18 -11
- package/dist/src/{telemetry-dbaJ0E98.js → telemetry-DmXYcJNV.js} +5 -4
- package/dist/src/{telemetry-Dvqxv3YC.js → telemetry-DwX9XUN5.js} +4 -3
- package/dist/src/{text-KvuD2Iko.js → text-Db-Wt2u2.js} +1 -1
- package/dist/src/{text-DHxdyQqT.js → text-DwYK5EBn.js} +1 -1
- package/dist/src/{text-BVi-cLPJ.cjs → text-nywWsRBM.cjs} +1 -1
- package/dist/src/{tokenUsageUtils-C-bmyHoE.js → tokenUsageUtils-BjVkdk18.js} +1 -1
- package/dist/src/{tokenUsageUtils-CXrvO-wA.js → tokenUsageUtils-CDet74yk.js} +1 -1
- package/dist/src/tokenUsageUtils-CmnQ0G2m.js +142 -0
- package/dist/src/{tokenUsageUtils-Bb7DkZPz.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
- package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
- package/dist/src/toolAttributes-COVgDrBG.js +87 -0
- package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
- package/dist/src/tracingOptions-BnwKCkSB.js +221 -0
- package/dist/src/tracingOptions-Chi74lOD.js +219 -0
- package/dist/src/tracingOptions-DrbSFaKy.cjs +249 -0
- package/dist/src/tracingOptions-ji2OuXbT.js +220 -0
- package/dist/src/{transcription-DuWDupG7.js → transcription-B8uIgCYX.js} +5 -5
- package/dist/src/{transcription-CJspiD2c.js → transcription-CfU5loSq.js} +6 -6
- package/dist/src/{transcription-V2HaAmy2.js → transcription-Dkd22_4K.js} +6 -6
- package/dist/src/{transcription-BvjmiYB1.cjs → transcription-mzuf18Mq.cjs} +9 -8
- package/dist/src/{transform-lQrDE1BQ.js → transform-BIMynQsA.js} +9 -9
- package/dist/src/transform-BnSTnFlp.js +187 -0
- package/dist/src/transform-BnSXWmU_2.cjs +221 -0
- package/dist/src/transform-CGt7Kt3y2.js +186 -0
- package/dist/src/transform-CrPGTsij.js +186 -0
- package/dist/src/{transform-CTeuTR3S.cjs → transform-DhNkAUs8.cjs} +13 -12
- package/dist/src/{transform-CG0ehZNG.js → transform-DmvYBRll.js} +9 -9
- package/dist/src/{transform-zDhMmzwX.js → transform-EtD4jAWi.js} +9 -9
- package/dist/src/{transformersAvailability-CcHusyhw.js → transformersAvailability-0ThtPved.js} +1 -1
- package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
- package/dist/src/{transformersAvailability-DLlROWhg.js → transformersAvailability-BvyU9vDD.js} +1 -1
- package/dist/src/{transformersAvailability-Cju9mHgR.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
- package/dist/src/{types-Dm9JM6Vb.js → types-BFevViUY.js} +115 -19
- package/dist/src/{types-Bgh5SOn6.js → types-BJQBBPTP.js} +115 -19
- package/dist/src/{types-CeaeaZdP.cjs → types-CxJvaY2S.cjs} +357 -172
- package/dist/src/{types-BGQDAP8i.js → types-D6glLbdF.js} +271 -170
- package/dist/src/{util-BYvQUPp7.js → util--WMgw7wM.js} +28 -8
- package/dist/src/{util-C9J8ahRn.js → util-5WnCSb0h.js} +72 -48
- package/dist/src/{util-CN3SrLT4.cjs → util-BSIuSLVK.cjs} +74 -49
- package/dist/src/{util-C8e5uydV.js → util-Bx677_k2.js} +154 -147
- package/dist/src/util-CN8om2rz.cjs +386 -0
- package/dist/src/{util-DDs-7g6-.js → util-CoQWM76y.js} +28 -8
- package/dist/src/util-DNl96nNs.js +327 -0
- package/dist/src/{util-DxWpWjhc.js → util-DURocbYR.js} +667 -507
- package/dist/src/util-Df8YMvS1.js +327 -0
- package/dist/src/{util-DvU2Pw8c.js → util-DiQ3QvBB.js} +28 -8
- package/dist/src/{util-oGMLA7vc.js → util-I-Rf-KaD.js} +862 -577
- package/dist/src/{util-olYL5C6N.cjs → util-IYzs5Y04.cjs} +33 -7
- package/dist/src/{util-D9TisOyk.js → util-LKTmNsMQ.js} +71 -47
- package/dist/src/{util-Bxn8emtE.cjs → util-SPsvFONY.cjs} +738 -582
- package/dist/src/{util-D3q0WQ-0.js → util-efByNxcr.js} +72 -48
- package/dist/src/util-kDURhgJW.js +328 -0
- package/dist/src/{utils-DJfvjyMj.js → utils-B0lzitHZ.js} +3 -3
- package/dist/src/{utils-BLJKfv0y.js → utils-BFOh20Gb.js} +3 -3
- package/dist/src/{utils-hXtCYanr.js → utils-BGY69tk_.js} +2 -2
- package/dist/src/{utils-B05gLxER.cjs → utils-Ve6kuJsa.cjs} +3 -3
- package/dist/src/version-BK20a4sw.js +16 -0
- package/dist/src/version-BWCSaByA.cjs +27 -0
- package/dist/src/version-eRkNuGv8.js +17 -0
- package/dist/src/version-lpHV_53E.js +16 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +56 -28
- package/dist/src/app/assets/Report-CQYFezYu.js +0 -1
- package/dist/src/app/assets/index-BXGkeMwh.css +0 -1
- package/dist/src/app/assets/index-BzJt18Jz.js +0 -385
- package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
- package/dist/src/cache-Cr9oLMUa.js +0 -3
- package/dist/src/cache-DbLsVWB2.cjs +0 -3
- package/dist/src/cloud-Hphvo8kr.js +0 -3
- package/dist/src/codex-sdk-BAmYE7qy.js +0 -3
- package/dist/src/codex-sdk-CWEnH70W.cjs +0 -2
- package/dist/src/evalResult-D8MT9p0s.js +0 -3
- package/dist/src/evalResult-DElBuddX.js +0 -2
- package/dist/src/evalResult-Dvc-iucu.cjs +0 -2
- package/dist/src/evaluator-CVessDWe.js +0 -3
- package/dist/src/fetch-C7bGKDlQ.js +0 -3
- package/dist/src/graders-BOAzQEUe.cjs +0 -2
- package/dist/src/graders-D4BTsZdG2.js +0 -3
- package/dist/src/graders-DOJK1XpV.js +0 -2
- package/dist/src/graders-NAv9LcBn.js +0 -2
- package/dist/src/image-B5Mv-Z3h.js +0 -257
- package/dist/src/image-DVz2RiMF.js +0 -258
- package/dist/src/image-qUpPvmNZ.js +0 -257
- package/dist/src/image-x6KqLQl4.cjs +0 -280
- package/dist/src/providers-Bp4S-FvO.js +0 -2
- package/dist/src/providers-DV3ax9e_.cjs +0 -3
- package/dist/src/providers-u9Enmfok.js +0 -2
- package/dist/src/render-CH-62LbA.js +0 -135
- package/dist/src/render-CMEpfLaO.js +0 -136
- package/dist/src/render-DHIZ6_k8.js +0 -135
- package/dist/src/render-DfQSFxGE.cjs +0 -165
- package/dist/src/rubyUtils-D1L2d3jb.js +0 -3
- package/dist/src/rubyUtils-DUbq4tff.cjs +0 -2
- package/dist/src/server-BNYztJkh.js +0 -385
- package/dist/src/server-DCtHUqlp.js +0 -3
- package/dist/src/server-DaA2eR26.cjs +0 -2
- package/dist/src/store-CWOSz6D_.cjs +0 -2
- package/dist/src/store-DCDBhv7B.js +0 -3
- package/dist/src/store-Dn9HUkdW.js +0 -240
- package/dist/src/telemetry-C1IqxcdW.js +0 -3
- package/dist/src/telemetry-C4ZEa_es.cjs +0 -2
- package/dist/src/transform-Bbg6A8Jk.js +0 -216
- package/dist/src/transform-CUnzlsbn.cjs +0 -228
- package/dist/src/transform-DYX1_Xnh.js +0 -216
- package/dist/src/transform-DgKlRr73.cjs +0 -2
- package/dist/src/transform-M6ITAESf.js +0 -3
- package/dist/src/transform-UN5UGu8U.js +0 -213
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { n as fetchWithRetries, p as REQUEST_TIMEOUT_MS } from "./fetch-It34O8Ur.js";
|
|
3
|
+
import { n as VERSION } from "./version-lpHV_53E.js";
|
|
4
|
+
import { i as getUserEmail } from "./accounts-Ca7WIoPY.js";
|
|
5
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DsaSwmG2.js";
|
|
6
|
+
import dedent from "dedent";
|
|
7
|
+
//#region src/providers/promptfoo.ts
|
|
8
|
+
/**
|
|
9
|
+
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
10
|
+
* Used by red team plugins to generate test cases for harmful content categories.
|
|
11
|
+
*/
|
|
12
|
+
var PromptfooHarmfulCompletionProvider = class {
|
|
13
|
+
harmCategory;
|
|
14
|
+
n;
|
|
15
|
+
purpose;
|
|
16
|
+
config;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
this.harmCategory = options.harmCategory;
|
|
19
|
+
this.n = options.n;
|
|
20
|
+
this.purpose = options.purpose;
|
|
21
|
+
this.config = options.config;
|
|
22
|
+
}
|
|
23
|
+
id() {
|
|
24
|
+
return `promptfoo:redteam:${this.harmCategory}`;
|
|
25
|
+
}
|
|
26
|
+
toString() {
|
|
27
|
+
return `[Promptfoo Harmful Completion Provider ${this.purpose} - ${this.harmCategory}]`;
|
|
28
|
+
}
|
|
29
|
+
async callApi(_prompt, _context, callApiOptions) {
|
|
30
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
31
|
+
Remote generation is disabled. Harmful content generation requires Promptfoo's unaligned models.
|
|
32
|
+
|
|
33
|
+
To enable:
|
|
34
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
35
|
+
- Or configure an alternative unaligned model provider
|
|
36
|
+
|
|
37
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
38
|
+
` };
|
|
39
|
+
const body = {
|
|
40
|
+
email: getUserEmail(),
|
|
41
|
+
harmCategory: this.harmCategory,
|
|
42
|
+
n: this.n,
|
|
43
|
+
purpose: this.purpose,
|
|
44
|
+
version: VERSION,
|
|
45
|
+
config: this.config
|
|
46
|
+
};
|
|
47
|
+
try {
|
|
48
|
+
logger.debug(`[HarmfulCompletionProvider] Calling generate harmful API (${getRemoteGenerationUrlForUnaligned()}) with body: ${JSON.stringify(body)}`);
|
|
49
|
+
const response = await fetchWithRetries(getRemoteGenerationUrlForUnaligned(), {
|
|
50
|
+
method: "POST",
|
|
51
|
+
headers: { "Content-Type": "application/json" },
|
|
52
|
+
body: JSON.stringify(body),
|
|
53
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
54
|
+
}, 58e4, 2);
|
|
55
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
56
|
+
const data = await response.json();
|
|
57
|
+
return { output: (Array.isArray(data.output) ? data.output : [data.output]).filter((item) => typeof item === "string" && item.length > 0) };
|
|
58
|
+
} catch (err) {
|
|
59
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
60
|
+
logger.info(`[HarmfulCompletionProvider] ${err}`);
|
|
61
|
+
return { error: `[HarmfulCompletionProvider] ${err}` };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Provider for red team adversarial strategies using Promptfoo's task-specific models.
|
|
67
|
+
* Supports multi-turn attack strategies like crescendo, goat, and iterative attacks.
|
|
68
|
+
*/
|
|
69
|
+
var PromptfooChatCompletionProvider = class {
|
|
70
|
+
options;
|
|
71
|
+
constructor(options) {
|
|
72
|
+
this.options = options;
|
|
73
|
+
}
|
|
74
|
+
id() {
|
|
75
|
+
return this.options.id || "promptfoo:chatcompletion";
|
|
76
|
+
}
|
|
77
|
+
toString() {
|
|
78
|
+
return `[Promptfoo Chat Completion Provider]`;
|
|
79
|
+
}
|
|
80
|
+
async callApi(prompt, context, callApiOptions) {
|
|
81
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
82
|
+
Remote generation is disabled. This red team strategy requires Promptfoo's task-specific models.
|
|
83
|
+
|
|
84
|
+
To enable:
|
|
85
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
86
|
+
- Or provide OPENAI_API_KEY for local generation (may have lower quality)
|
|
87
|
+
|
|
88
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
89
|
+
` };
|
|
90
|
+
const body = {
|
|
91
|
+
jsonOnly: this.options.jsonOnly,
|
|
92
|
+
preferSmallModel: this.options.preferSmallModel,
|
|
93
|
+
prompt,
|
|
94
|
+
step: context?.prompt.label,
|
|
95
|
+
task: this.options.task,
|
|
96
|
+
email: getUserEmail(),
|
|
97
|
+
...this.options.inputs && { inputs: this.options.inputs }
|
|
98
|
+
};
|
|
99
|
+
try {
|
|
100
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
101
|
+
method: "POST",
|
|
102
|
+
headers: { "Content-Type": "application/json" },
|
|
103
|
+
body: JSON.stringify(body),
|
|
104
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
105
|
+
}, REQUEST_TIMEOUT_MS);
|
|
106
|
+
const data = await response.json();
|
|
107
|
+
if (!data.result) {
|
|
108
|
+
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
109
|
+
return { error: "LLM did not return a result, likely refusal" };
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
output: data.result,
|
|
113
|
+
tokenUsage: data.tokenUsage
|
|
114
|
+
};
|
|
115
|
+
} catch (err) {
|
|
116
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
117
|
+
return { error: `API call error: ${String(err)}` };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const REDTEAM_SIMULATED_USER_TASK_ID = "mischievous-user-redteam";
|
|
122
|
+
/**
|
|
123
|
+
* Provider for simulating realistic user conversations using Promptfoo's conversation models.
|
|
124
|
+
* Supports both regular simulated users and adversarial red team users.
|
|
125
|
+
*/
|
|
126
|
+
var PromptfooSimulatedUserProvider = class {
|
|
127
|
+
options;
|
|
128
|
+
taskId;
|
|
129
|
+
constructor(options = {}, taskId) {
|
|
130
|
+
this.options = options;
|
|
131
|
+
this.taskId = taskId;
|
|
132
|
+
}
|
|
133
|
+
id() {
|
|
134
|
+
return this.options.id || "promptfoo:agent";
|
|
135
|
+
}
|
|
136
|
+
toString() {
|
|
137
|
+
return "[Promptfoo Agent Provider]";
|
|
138
|
+
}
|
|
139
|
+
async callApi(prompt, _context, callApiOptions) {
|
|
140
|
+
const isRedteamTask = this.taskId === REDTEAM_SIMULATED_USER_TASK_ID;
|
|
141
|
+
if (isRedteamTask ? neverGenerateRemote() : neverGenerateRemoteForRegularEvals()) return { error: dedent`
|
|
142
|
+
Remote generation is disabled.
|
|
143
|
+
|
|
144
|
+
SimulatedUser requires Promptfoo's conversation simulation models.
|
|
145
|
+
|
|
146
|
+
To enable, remove ${isRedteamTask ? "PROMPTFOO_DISABLE_REMOTE_GENERATION or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION" : "PROMPTFOO_DISABLE_REMOTE_GENERATION"}
|
|
147
|
+
|
|
148
|
+
Learn more: ${isRedteamTask ? "https://www.promptfoo.dev/docs/red-team/configuration#remote-generation" : "https://www.promptfoo.dev/docs/providers/simulated-user#remote-generation"}
|
|
149
|
+
` };
|
|
150
|
+
const messages = JSON.parse(prompt);
|
|
151
|
+
const body = {
|
|
152
|
+
task: this.taskId,
|
|
153
|
+
instructions: this.options.instructions,
|
|
154
|
+
history: messages,
|
|
155
|
+
email: getUserEmail(),
|
|
156
|
+
version: VERSION
|
|
157
|
+
};
|
|
158
|
+
try {
|
|
159
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
160
|
+
method: "POST",
|
|
161
|
+
headers: { "Content-Type": "application/json" },
|
|
162
|
+
body: JSON.stringify(body),
|
|
163
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
164
|
+
}, REQUEST_TIMEOUT_MS);
|
|
165
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
166
|
+
const data = await response.json();
|
|
167
|
+
return {
|
|
168
|
+
output: data.result,
|
|
169
|
+
tokenUsage: data.tokenUsage
|
|
170
|
+
};
|
|
171
|
+
} catch (err) {
|
|
172
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
173
|
+
return { error: `API call error: ${String(err)}` };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
//#endregion
|
|
178
|
+
export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
|
|
179
|
+
|
|
180
|
+
//# sourceMappingURL=promptfoo-Cm4hiy1Y.js.map
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
+
import { _ as REQUEST_TIMEOUT_MS, r as fetchWithRetries } from "./fetch-DXUnXkVU.js";
|
|
4
|
+
import { n as VERSION } from "./version-eRkNuGv8.js";
|
|
5
|
+
import { o as getUserEmail } from "./accounts-CjFnOPmb.js";
|
|
6
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-B1_XsKXU.js";
|
|
7
|
+
import dedent from "dedent";
|
|
8
|
+
//#region src/providers/promptfoo.ts
|
|
9
|
+
/**
|
|
10
|
+
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
11
|
+
* Used by red team plugins to generate test cases for harmful content categories.
|
|
12
|
+
*/
|
|
13
|
+
var PromptfooHarmfulCompletionProvider = class {
|
|
14
|
+
harmCategory;
|
|
15
|
+
n;
|
|
16
|
+
purpose;
|
|
17
|
+
config;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.harmCategory = options.harmCategory;
|
|
20
|
+
this.n = options.n;
|
|
21
|
+
this.purpose = options.purpose;
|
|
22
|
+
this.config = options.config;
|
|
23
|
+
}
|
|
24
|
+
id() {
|
|
25
|
+
return `promptfoo:redteam:${this.harmCategory}`;
|
|
26
|
+
}
|
|
27
|
+
toString() {
|
|
28
|
+
return `[Promptfoo Harmful Completion Provider ${this.purpose} - ${this.harmCategory}]`;
|
|
29
|
+
}
|
|
30
|
+
async callApi(_prompt, _context, callApiOptions) {
|
|
31
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
32
|
+
Remote generation is disabled. Harmful content generation requires Promptfoo's unaligned models.
|
|
33
|
+
|
|
34
|
+
To enable:
|
|
35
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
36
|
+
- Or configure an alternative unaligned model provider
|
|
37
|
+
|
|
38
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
39
|
+
` };
|
|
40
|
+
const body = {
|
|
41
|
+
email: getUserEmail(),
|
|
42
|
+
harmCategory: this.harmCategory,
|
|
43
|
+
n: this.n,
|
|
44
|
+
purpose: this.purpose,
|
|
45
|
+
version: VERSION,
|
|
46
|
+
config: this.config
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
logger.debug(`[HarmfulCompletionProvider] Calling generate harmful API (${getRemoteGenerationUrlForUnaligned()}) with body: ${JSON.stringify(body)}`);
|
|
50
|
+
const response = await fetchWithRetries(getRemoteGenerationUrlForUnaligned(), {
|
|
51
|
+
method: "POST",
|
|
52
|
+
headers: { "Content-Type": "application/json" },
|
|
53
|
+
body: JSON.stringify(body),
|
|
54
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
55
|
+
}, 58e4, 2);
|
|
56
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
57
|
+
const data = await response.json();
|
|
58
|
+
return { output: (Array.isArray(data.output) ? data.output : [data.output]).filter((item) => typeof item === "string" && item.length > 0) };
|
|
59
|
+
} catch (err) {
|
|
60
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
61
|
+
logger.info(`[HarmfulCompletionProvider] ${err}`);
|
|
62
|
+
return { error: `[HarmfulCompletionProvider] ${err}` };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Provider for red team adversarial strategies using Promptfoo's task-specific models.
|
|
68
|
+
* Supports multi-turn attack strategies like crescendo, goat, and iterative attacks.
|
|
69
|
+
*/
|
|
70
|
+
var PromptfooChatCompletionProvider = class {
|
|
71
|
+
options;
|
|
72
|
+
constructor(options) {
|
|
73
|
+
this.options = options;
|
|
74
|
+
}
|
|
75
|
+
id() {
|
|
76
|
+
return this.options.id || "promptfoo:chatcompletion";
|
|
77
|
+
}
|
|
78
|
+
toString() {
|
|
79
|
+
return `[Promptfoo Chat Completion Provider]`;
|
|
80
|
+
}
|
|
81
|
+
async callApi(prompt, context, callApiOptions) {
|
|
82
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
83
|
+
Remote generation is disabled. This red team strategy requires Promptfoo's task-specific models.
|
|
84
|
+
|
|
85
|
+
To enable:
|
|
86
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
87
|
+
- Or provide OPENAI_API_KEY for local generation (may have lower quality)
|
|
88
|
+
|
|
89
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
90
|
+
` };
|
|
91
|
+
const body = {
|
|
92
|
+
jsonOnly: this.options.jsonOnly,
|
|
93
|
+
preferSmallModel: this.options.preferSmallModel,
|
|
94
|
+
prompt,
|
|
95
|
+
step: context?.prompt.label,
|
|
96
|
+
task: this.options.task,
|
|
97
|
+
email: getUserEmail(),
|
|
98
|
+
...this.options.inputs && { inputs: this.options.inputs }
|
|
99
|
+
};
|
|
100
|
+
try {
|
|
101
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
102
|
+
method: "POST",
|
|
103
|
+
headers: { "Content-Type": "application/json" },
|
|
104
|
+
body: JSON.stringify(body),
|
|
105
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
106
|
+
}, REQUEST_TIMEOUT_MS);
|
|
107
|
+
const data = await response.json();
|
|
108
|
+
if (!data.result) {
|
|
109
|
+
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
110
|
+
return { error: "LLM did not return a result, likely refusal" };
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
output: data.result,
|
|
114
|
+
tokenUsage: data.tokenUsage
|
|
115
|
+
};
|
|
116
|
+
} catch (err) {
|
|
117
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
118
|
+
return { error: `API call error: ${String(err)}` };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const REDTEAM_SIMULATED_USER_TASK_ID = "mischievous-user-redteam";
|
|
123
|
+
/**
|
|
124
|
+
* Provider for simulating realistic user conversations using Promptfoo's conversation models.
|
|
125
|
+
* Supports both regular simulated users and adversarial red team users.
|
|
126
|
+
*/
|
|
127
|
+
var PromptfooSimulatedUserProvider = class {
|
|
128
|
+
options;
|
|
129
|
+
taskId;
|
|
130
|
+
constructor(options = {}, taskId) {
|
|
131
|
+
this.options = options;
|
|
132
|
+
this.taskId = taskId;
|
|
133
|
+
}
|
|
134
|
+
id() {
|
|
135
|
+
return this.options.id || "promptfoo:agent";
|
|
136
|
+
}
|
|
137
|
+
toString() {
|
|
138
|
+
return "[Promptfoo Agent Provider]";
|
|
139
|
+
}
|
|
140
|
+
async callApi(prompt, _context, callApiOptions) {
|
|
141
|
+
const isRedteamTask = this.taskId === REDTEAM_SIMULATED_USER_TASK_ID;
|
|
142
|
+
if (isRedteamTask ? neverGenerateRemote() : neverGenerateRemoteForRegularEvals()) return { error: dedent`
|
|
143
|
+
Remote generation is disabled.
|
|
144
|
+
|
|
145
|
+
SimulatedUser requires Promptfoo's conversation simulation models.
|
|
146
|
+
|
|
147
|
+
To enable, remove ${isRedteamTask ? "PROMPTFOO_DISABLE_REMOTE_GENERATION or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION" : "PROMPTFOO_DISABLE_REMOTE_GENERATION"}
|
|
148
|
+
|
|
149
|
+
Learn more: ${isRedteamTask ? "https://www.promptfoo.dev/docs/red-team/configuration#remote-generation" : "https://www.promptfoo.dev/docs/providers/simulated-user#remote-generation"}
|
|
150
|
+
` };
|
|
151
|
+
const messages = JSON.parse(prompt);
|
|
152
|
+
const body = {
|
|
153
|
+
task: this.taskId,
|
|
154
|
+
instructions: this.options.instructions,
|
|
155
|
+
history: messages,
|
|
156
|
+
email: getUserEmail(),
|
|
157
|
+
version: VERSION
|
|
158
|
+
};
|
|
159
|
+
try {
|
|
160
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
161
|
+
method: "POST",
|
|
162
|
+
headers: { "Content-Type": "application/json" },
|
|
163
|
+
body: JSON.stringify(body),
|
|
164
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
165
|
+
}, REQUEST_TIMEOUT_MS);
|
|
166
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
167
|
+
const data = await response.json();
|
|
168
|
+
return {
|
|
169
|
+
output: data.result,
|
|
170
|
+
tokenUsage: data.tokenUsage
|
|
171
|
+
};
|
|
172
|
+
} catch (err) {
|
|
173
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
174
|
+
return { error: `API call error: ${String(err)}` };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
//#endregion
|
|
179
|
+
export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
|
|
180
|
+
|
|
181
|
+
//# sourceMappingURL=promptfoo-Rjp-MeBb.js.map
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
|
+
const require_logger = require("./logger-cfNpzI4o.cjs");
|
|
3
|
+
const require_fetch = require("./fetch-Dw4XZHjj.cjs");
|
|
4
|
+
const require_version = require("./version-BWCSaByA.cjs");
|
|
5
|
+
const require_accounts = require("./accounts-CmWzeD2d.cjs");
|
|
6
|
+
const require_remoteGeneration = require("./remoteGeneration-DS9N3pgB.cjs");
|
|
7
|
+
let dedent = require("dedent");
|
|
8
|
+
dedent = require_rolldown_runtime.__toESM(dedent, 1);
|
|
9
|
+
//#region src/providers/promptfoo.ts
|
|
10
|
+
/**
|
|
11
|
+
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
12
|
+
* Used by red team plugins to generate test cases for harmful content categories.
|
|
13
|
+
*/
|
|
14
|
+
var PromptfooHarmfulCompletionProvider = class {
|
|
15
|
+
harmCategory;
|
|
16
|
+
n;
|
|
17
|
+
purpose;
|
|
18
|
+
config;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.harmCategory = options.harmCategory;
|
|
21
|
+
this.n = options.n;
|
|
22
|
+
this.purpose = options.purpose;
|
|
23
|
+
this.config = options.config;
|
|
24
|
+
}
|
|
25
|
+
id() {
|
|
26
|
+
return `promptfoo:redteam:${this.harmCategory}`;
|
|
27
|
+
}
|
|
28
|
+
toString() {
|
|
29
|
+
return `[Promptfoo Harmful Completion Provider ${this.purpose} - ${this.harmCategory}]`;
|
|
30
|
+
}
|
|
31
|
+
async callApi(_prompt, _context, callApiOptions) {
|
|
32
|
+
if (require_remoteGeneration.neverGenerateRemote()) return { error: dedent.default`
|
|
33
|
+
Remote generation is disabled. Harmful content generation requires Promptfoo's unaligned models.
|
|
34
|
+
|
|
35
|
+
To enable:
|
|
36
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
37
|
+
- Or configure an alternative unaligned model provider
|
|
38
|
+
|
|
39
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
40
|
+
` };
|
|
41
|
+
const body = {
|
|
42
|
+
email: require_accounts.getUserEmail(),
|
|
43
|
+
harmCategory: this.harmCategory,
|
|
44
|
+
n: this.n,
|
|
45
|
+
purpose: this.purpose,
|
|
46
|
+
version: require_version.VERSION,
|
|
47
|
+
config: this.config
|
|
48
|
+
};
|
|
49
|
+
try {
|
|
50
|
+
require_logger.logger.debug(`[HarmfulCompletionProvider] Calling generate harmful API (${require_remoteGeneration.getRemoteGenerationUrlForUnaligned()}) with body: ${JSON.stringify(body)}`);
|
|
51
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrlForUnaligned(), {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers: { "Content-Type": "application/json" },
|
|
54
|
+
body: JSON.stringify(body),
|
|
55
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
56
|
+
}, 58e4, 2);
|
|
57
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
58
|
+
const data = await response.json();
|
|
59
|
+
return { output: (Array.isArray(data.output) ? data.output : [data.output]).filter((item) => typeof item === "string" && item.length > 0) };
|
|
60
|
+
} catch (err) {
|
|
61
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
62
|
+
require_logger.logger.info(`[HarmfulCompletionProvider] ${err}`);
|
|
63
|
+
return { error: `[HarmfulCompletionProvider] ${err}` };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Provider for red team adversarial strategies using Promptfoo's task-specific models.
|
|
69
|
+
* Supports multi-turn attack strategies like crescendo, goat, and iterative attacks.
|
|
70
|
+
*/
|
|
71
|
+
var PromptfooChatCompletionProvider = class {
|
|
72
|
+
options;
|
|
73
|
+
constructor(options) {
|
|
74
|
+
this.options = options;
|
|
75
|
+
}
|
|
76
|
+
id() {
|
|
77
|
+
return this.options.id || "promptfoo:chatcompletion";
|
|
78
|
+
}
|
|
79
|
+
toString() {
|
|
80
|
+
return `[Promptfoo Chat Completion Provider]`;
|
|
81
|
+
}
|
|
82
|
+
async callApi(prompt, context, callApiOptions) {
|
|
83
|
+
if (require_remoteGeneration.neverGenerateRemote()) return { error: dedent.default`
|
|
84
|
+
Remote generation is disabled. This red team strategy requires Promptfoo's task-specific models.
|
|
85
|
+
|
|
86
|
+
To enable:
|
|
87
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
88
|
+
- Or provide OPENAI_API_KEY for local generation (may have lower quality)
|
|
89
|
+
|
|
90
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
91
|
+
` };
|
|
92
|
+
const body = {
|
|
93
|
+
jsonOnly: this.options.jsonOnly,
|
|
94
|
+
preferSmallModel: this.options.preferSmallModel,
|
|
95
|
+
prompt,
|
|
96
|
+
step: context?.prompt.label,
|
|
97
|
+
task: this.options.task,
|
|
98
|
+
email: require_accounts.getUserEmail(),
|
|
99
|
+
...this.options.inputs && { inputs: this.options.inputs }
|
|
100
|
+
};
|
|
101
|
+
try {
|
|
102
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
|
|
103
|
+
method: "POST",
|
|
104
|
+
headers: { "Content-Type": "application/json" },
|
|
105
|
+
body: JSON.stringify(body),
|
|
106
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
107
|
+
}, require_fetch.REQUEST_TIMEOUT_MS);
|
|
108
|
+
const data = await response.json();
|
|
109
|
+
if (!data.result) {
|
|
110
|
+
require_logger.logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
111
|
+
return { error: "LLM did not return a result, likely refusal" };
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
output: data.result,
|
|
115
|
+
tokenUsage: data.tokenUsage
|
|
116
|
+
};
|
|
117
|
+
} catch (err) {
|
|
118
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
119
|
+
return { error: `API call error: ${String(err)}` };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const REDTEAM_SIMULATED_USER_TASK_ID = "mischievous-user-redteam";
|
|
124
|
+
/**
|
|
125
|
+
* Provider for simulating realistic user conversations using Promptfoo's conversation models.
|
|
126
|
+
* Supports both regular simulated users and adversarial red team users.
|
|
127
|
+
*/
|
|
128
|
+
var PromptfooSimulatedUserProvider = class {
|
|
129
|
+
options;
|
|
130
|
+
taskId;
|
|
131
|
+
constructor(options = {}, taskId) {
|
|
132
|
+
this.options = options;
|
|
133
|
+
this.taskId = taskId;
|
|
134
|
+
}
|
|
135
|
+
id() {
|
|
136
|
+
return this.options.id || "promptfoo:agent";
|
|
137
|
+
}
|
|
138
|
+
toString() {
|
|
139
|
+
return "[Promptfoo Agent Provider]";
|
|
140
|
+
}
|
|
141
|
+
async callApi(prompt, _context, callApiOptions) {
|
|
142
|
+
const isRedteamTask = this.taskId === REDTEAM_SIMULATED_USER_TASK_ID;
|
|
143
|
+
if (isRedteamTask ? require_remoteGeneration.neverGenerateRemote() : require_remoteGeneration.neverGenerateRemoteForRegularEvals()) return { error: dedent.default`
|
|
144
|
+
Remote generation is disabled.
|
|
145
|
+
|
|
146
|
+
SimulatedUser requires Promptfoo's conversation simulation models.
|
|
147
|
+
|
|
148
|
+
To enable, remove ${isRedteamTask ? "PROMPTFOO_DISABLE_REMOTE_GENERATION or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION" : "PROMPTFOO_DISABLE_REMOTE_GENERATION"}
|
|
149
|
+
|
|
150
|
+
Learn more: ${isRedteamTask ? "https://www.promptfoo.dev/docs/red-team/configuration#remote-generation" : "https://www.promptfoo.dev/docs/providers/simulated-user#remote-generation"}
|
|
151
|
+
` };
|
|
152
|
+
const messages = JSON.parse(prompt);
|
|
153
|
+
const body = {
|
|
154
|
+
task: this.taskId,
|
|
155
|
+
instructions: this.options.instructions,
|
|
156
|
+
history: messages,
|
|
157
|
+
email: require_accounts.getUserEmail(),
|
|
158
|
+
version: require_version.VERSION
|
|
159
|
+
};
|
|
160
|
+
try {
|
|
161
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
|
|
162
|
+
method: "POST",
|
|
163
|
+
headers: { "Content-Type": "application/json" },
|
|
164
|
+
body: JSON.stringify(body),
|
|
165
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
166
|
+
}, require_fetch.REQUEST_TIMEOUT_MS);
|
|
167
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
168
|
+
const data = await response.json();
|
|
169
|
+
return {
|
|
170
|
+
output: data.result,
|
|
171
|
+
tokenUsage: data.tokenUsage
|
|
172
|
+
};
|
|
173
|
+
} catch (err) {
|
|
174
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
175
|
+
return { error: `API call error: ${String(err)}` };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
//#endregion
|
|
180
|
+
Object.defineProperty(exports, "PromptfooChatCompletionProvider", {
|
|
181
|
+
enumerable: true,
|
|
182
|
+
get: function() {
|
|
183
|
+
return PromptfooChatCompletionProvider;
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
Object.defineProperty(exports, "PromptfooHarmfulCompletionProvider", {
|
|
187
|
+
enumerable: true,
|
|
188
|
+
get: function() {
|
|
189
|
+
return PromptfooHarmfulCompletionProvider;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
Object.defineProperty(exports, "PromptfooSimulatedUserProvider", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function() {
|
|
195
|
+
return PromptfooSimulatedUserProvider;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "REDTEAM_SIMULATED_USER_TASK_ID", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function() {
|
|
201
|
+
return REDTEAM_SIMULATED_USER_TASK_ID;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
//# sourceMappingURL=promptfoo-b-baRMj-.cjs.map
|