promptfoo 0.120.25 → 0.120.26
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/README.md +35 -22
- package/dist/src/{ListApp-CYTAaS6A.js → ListApp-D3DG0F8h.js} +1 -1
- package/dist/src/{accounts-CwqY22lU.cjs → accounts-BzEY8H3v.cjs} +4 -4
- package/dist/src/{accounts-Bzx8GnL6.js → accounts-DHHiXsy6.js} +5 -5
- package/dist/src/{accounts-BSwMxhY3.js → accounts-R3gfCR_g.js} +4 -4
- package/dist/src/{agentic-utils-5K7LzooV.js → agentic-utils-D6_gzOUF.js} +2 -2
- package/dist/src/{agents-B8RWrA68.cjs → agents-C7BiinFI.cjs} +6 -6
- package/dist/src/{agents-zHyWnnQ2.js → agents-Cao4i7AX.js} +7 -7
- package/dist/src/{agents-KZxXwlyn.cjs → agents-CwM7re15.cjs} +2 -2
- package/dist/src/{agents-DleC7rb4.js → agents-DETIQHqF.js} +6 -6
- package/dist/src/{agents-CkA9l77-.js → agents-DYIT-hQy.js} +5 -5
- package/dist/src/{agents-B20gl7hH.js → agents-GiUianme.js} +2 -2
- package/dist/src/{aimlapi-DgbFGPTX.js → aimlapi-CMJpKK-B.js} +9 -9
- package/dist/src/{aimlapi-DILJovhN.js → aimlapi-DMF6v_vb.js} +14 -14
- package/dist/src/{aimlapi-DIdWBHtH.cjs → aimlapi-DoGLcQW_.cjs} +9 -9
- package/dist/src/app/assets/index-BOgkICuY.css +1 -0
- package/dist/src/app/assets/index-CSgqn_Vd.js +428 -0
- package/dist/src/app/assets/{vendor-charts-DnwydkkY.js → vendor-charts-CYyo8R8v.js} +1 -1
- package/dist/src/app/assets/{vendor-markdown-DjKAU15k.js → vendor-markdown-DSmzq4Jh.js} +1 -1
- package/dist/src/app/assets/vendor-react-AtKqiNEf.js +4 -0
- package/dist/src/app/assets/{vendor-syntax-Dc86c4Bu.js → vendor-syntax-D06x6TQF.js} +1 -1
- package/dist/src/app/index.html +6 -6
- package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/{audio-BoR9KZV8.cjs → audio-BWjyvHn9.cjs} +3 -3
- package/dist/src/{audio-nUSOpXY7.js → audio-BrJBFN2b.js} +3 -3
- package/dist/src/{audio-BDrAkpVc.js → audio-DUH4q0Xq.js} +4 -4
- package/dist/src/{base-DumUXbOH.js → base-BaXmtXYp.js} +2 -2
- package/dist/src/{base-CwCV0t8r.js → base-Dtp8b4_N.js} +2 -2
- package/dist/src/{base-D8VQYhNQ.cjs → base-f71xxWai.cjs} +2 -2
- package/dist/src/{blobs-_kNRY6vU.cjs → blobs-673H0jCl.cjs} +2 -2
- package/dist/src/{blobs-Dnt2rxpc.js → blobs-C9J2mVgo.js} +2 -2
- package/dist/src/{blobs-DlB5fwyF.js → blobs-kt8v3UyH.js} +2 -2
- package/dist/src/{cache-S9MAoF9H.cjs → cache-7xULbvt3.cjs} +34 -7
- package/dist/src/{cache-C4A4H4Xb.js → cache-BLLayYEN.js} +23 -8
- package/dist/src/{cache-B2oIvf92.js → cache-BUPcq0Ad.js} +2 -2
- package/dist/src/cache-CVfRb-HD.cjs +6 -0
- package/dist/src/{cache-DofebEnH.js → cache-O4EuX2JV.js} +3 -3
- package/dist/src/{cache-Bg1Wpvzq.js → cache-mIszOnuz.js} +4 -21
- package/dist/src/{chat-DTCPbuld.cjs → chat-C4zqjObh.cjs} +6 -6
- package/dist/src/{chat-noXtEAh5.js → chat-C8Ei4f87.js} +6 -6
- package/dist/src/{chat-BiImdLJf.js → chat-CgyGj2hC.js} +8 -8
- package/dist/src/{chat-DQ6Z5Cbn.js → chat-Cpz3O-Xl.js} +13 -13
- package/dist/src/{chat-D_cro0wd.js → chat-DIywASPG.js} +10 -10
- package/dist/src/{chat-BR2x1dG_.cjs → chat-Fl6TZJRS.cjs} +8 -8
- package/dist/src/{chatkit-TnC1YoVi.js → chatkit-DEls11hE.js} +3 -3
- package/dist/src/{claude-agent-sdk-CBpAZV5h.js → claude-agent-sdk-6-xTaLwM.js} +45 -16
- package/dist/src/{claude-agent-sdk-uHLgAUZj.cjs → claude-agent-sdk-BzxF6NIJ.cjs} +45 -16
- package/dist/src/{claude-agent-sdk-qxE5mGVi.js → claude-agent-sdk-CmkTnKGH.js} +48 -19
- package/dist/src/{claude-agent-sdk-DyPvrj-1.js → claude-agent-sdk-rXCBLK_o.js} +38 -9
- package/dist/src/{cloud-lRosK6Nk.js → cloud-BMbRVJFw.js} +2 -2
- package/dist/src/{cloud-DHWE-9nj.js → cloud-CZ4hytdm.js} +1 -1
- package/dist/src/{cloudflare-ai-D0OtFY6g.cjs → cloudflare-ai-BAQ0u_dg.cjs} +9 -9
- package/dist/src/{cloudflare-ai-BprwSD6d.js → cloudflare-ai-CUg4BTcj.js} +9 -9
- package/dist/src/{cloudflare-ai-CB7OWRAP.js → cloudflare-ai-CobxMTR4.js} +14 -14
- package/dist/src/{cloudflare-gateway-C29gWj5O.cjs → cloudflare-gateway-C0sgfr_z.cjs} +10 -10
- package/dist/src/{cloudflare-gateway-BaVwoBjE.js → cloudflare-gateway-D2_yi-Fh.js} +15 -15
- package/dist/src/{cloudflare-gateway-BjoxwqUw.js → cloudflare-gateway-_itGuXry.js} +10 -10
- package/dist/src/{codex-sdk-DNkCbb7c.js → codex-sdk-dSnGdgIp.js} +3 -3
- package/dist/src/{cometapi-BGxGZ7VA.js → cometapi-B01btbfb.js} +15 -15
- package/dist/src/{cometapi-xiTQZp8R.js → cometapi-ChAaRjg5.js} +10 -10
- package/dist/src/{cometapi-DalITP94.cjs → cometapi-JbvOJSCO.cjs} +10 -10
- package/dist/src/{completion-BTbouQDz.js → completion-BBJ6zmG3.js} +5 -5
- package/dist/src/{completion-HYrX5gEL.js → completion-D9_MDlnd.js} +4 -4
- package/dist/src/{completion-DV0Ys99K.cjs → completion-DDyL3Cb2.cjs} +4 -4
- package/dist/src/{docker-Dx_FN1ag.js → docker-BuButc4D.js} +14 -14
- package/dist/src/{docker-zUAnbYTM.cjs → docker-Ckw-j7Rr.cjs} +9 -9
- package/dist/src/{docker-BAYnlbAW.js → docker-JAAubMw3.js} +9 -9
- package/dist/src/errors-DnGCbnx8.js +36 -0
- package/dist/src/{esm-79BpbQzg.js → esm-CYhseqj4.js} +1 -1
- package/dist/src/eval-CKHWqG9f.js +16 -0
- package/dist/src/{eval-Cxb9alW8.js → eval-CYrbG57o.js} +45 -13
- package/dist/src/{evalResult-B8LbgWMA.js → evalResult-6JaUIStC.js} +6 -6
- package/dist/src/{evalResult-CJNSpa3q.js → evalResult-COsVttMA.js} +6 -6
- package/dist/src/evalResult-CxTP-LMm.cjs +11 -0
- package/dist/src/evalResult-CzLURDcP.js +13 -0
- package/dist/src/{evalResult-hI1mhi_g.cjs → evalResult-DlRfu_Rq.cjs} +6 -6
- package/dist/src/evalResult-DyttNQ_G.js +11 -0
- package/dist/src/evaluator-0PvfeBYh.js +38 -0
- package/dist/src/{evaluator-1Tkdu8MK.js → evaluator-3EJCMTs0.js} +74 -48
- package/dist/src/{extractor-BPBlLyOn.cjs → extractor-DbhlYEeo.cjs} +22 -5
- package/dist/src/{extractor-CuUWqwrE.js → extractor-Hs7la_19.js} +22 -5
- package/dist/src/{extractor-BFoThUOa.js → extractor-LSYjrhK0.js} +22 -5
- package/dist/src/{fetch-zJuFPxN1.js → fetch-18MuNu9i.js} +4 -4
- package/dist/src/{fetch-BdiCecAv.js → fetch-Bi0o-fdp.js} +1 -1
- package/dist/src/fetch-CMptBDVg.cjs +4 -0
- package/dist/src/{fetch-BQgz6x7S.js → fetch-DAZkv3gV.js} +2 -2
- package/dist/src/{fetch-BuP-gm0E.js → fetch-SRsE6Ctl.js} +4 -4
- package/dist/src/{fetch-Dy2YML9G.cjs → fetch-ZMn_oemb.cjs} +4 -4
- package/dist/src/{fileExtensions-CzcPkiKZ.js → fileExtensions-BpuMmaFL.js} +1 -1
- package/dist/src/{formatDuration-CGa0ZDQ8.js → formatDuration-Doo0xq-z.js} +1 -1
- package/dist/src/{genaiTracer-foKtbVa2.js → genaiTracer-CqNnnXrE.js} +1 -1
- package/dist/src/graders-BCytzXrb.js +34 -0
- package/dist/src/{graders-DMAzEgEF.js → graders-BaMCwIKp.js} +211 -91
- package/dist/src/graders-CGZQShfJ.cjs +33 -0
- package/dist/src/{graders-NBsuYeMx.cjs → graders-DzUUnUjC.cjs} +206 -86
- package/dist/src/{graders-CtvuaC8D.js → graders-QsALpIdy.js} +206 -86
- package/dist/src/graders-spkuVC-E.js +36 -0
- package/dist/src/{image-Bf8RiJ2g.js → image-BXt_7u0v.js} +3 -3
- package/dist/src/{image-LhLO5KCW.js → image-BiEVdpdP.js} +4 -4
- package/dist/src/{image-CaVWfZub.cjs → image-C3BjJUAU.cjs} +4 -4
- package/dist/src/{image-BnF25Osq.cjs → image-D10zEe1f.cjs} +3 -3
- package/dist/src/{image-DIn_AW1Z.js → image-DB4sHxdJ.js} +4 -4
- package/dist/src/{image-DFwp1aAV.js → image-mhAGP07h.js} +6 -6
- package/dist/src/index.cjs +152 -69
- package/dist/src/index.d.cts +20 -3
- package/dist/src/index.d.ts +20 -3
- package/dist/src/index.js +152 -69
- package/dist/src/{interactiveCheck-Dmm9vjpx.js → interactiveCheck-DU-MAhp5.js} +1 -1
- package/dist/src/{knowledgeBase-Bf57PI7g.cjs → knowledgeBase-Bnb00xKs.cjs} +6 -6
- package/dist/src/{knowledgeBase-DZw2L9kf.js → knowledgeBase-CMvMlLZR.js} +8 -8
- package/dist/src/{knowledgeBase-CfOvyF2s.js → knowledgeBase-XJQ0Qyez.js} +6 -6
- package/dist/src/{litellm-Ds8YmO1b.js → litellm-BECdjOTx.js} +3 -3
- package/dist/src/{litellm-ByNRN2Vh.cjs → litellm-BrnZhMcL.cjs} +11 -11
- package/dist/src/{litellm-fU-xV6T4.js → litellm-CHrRmPAe.js} +16 -16
- package/dist/src/{litellm-DexU8FFp.js → litellm-CrLJrPIm.js} +11 -11
- package/dist/src/{luma-ray-y26EHFO8.js → luma-ray-BOeX-h0M.js} +8 -8
- package/dist/src/{luma-ray-BIe5ctI4.cjs → luma-ray-C0RkI3lt.cjs} +8 -8
- package/dist/src/{luma-ray-vvE-O9EA.js → luma-ray-DgKLS0BF.js} +10 -10
- package/dist/src/main.js +1011 -404
- package/dist/src/{messages-Bg2ekFPc.js → messages-CDZYGNlS.js} +7 -7
- package/dist/src/{messages-DpoCLD_8.js → messages-D61tPFQo.js} +9 -9
- package/dist/src/{messages-16jb9LP7.cjs → messages-DXV3Qh8_.cjs} +7 -7
- package/dist/src/{meteor-DLCdreag.js → meteor-P2rUE-Uz.js} +1 -1
- package/dist/src/{nova-reel-BM0snD2m.js → nova-reel-Bk5npr2q.js} +10 -10
- package/dist/src/{nova-reel-CvXCVn3f.cjs → nova-reel-D9FXq3Mt.cjs} +8 -8
- package/dist/src/{nova-reel-CJLpBKSI.js → nova-reel-DtCjbD5O.js} +8 -8
- package/dist/src/{nova-sonic-CklvraBd.js → nova-sonic-BXRfQyF-.js} +7 -7
- package/dist/src/{nova-sonic-DEx_FdFW.cjs → nova-sonic-BoRSY_U6.cjs} +5 -5
- package/dist/src/{nova-sonic-Cjh_qopr.js → nova-sonic-CgaWLDM1.js} +5 -5
- package/dist/src/{openai-jNIREoAW.js → openai-CT5fwbve.js} +1 -1
- package/dist/src/{openclaw-CnAwBfPO.js → openclaw-B6XY2kUf.js} +14 -14
- package/dist/src/{openclaw-DBSSY4SP.js → openclaw-CpPrXwf6.js} +9 -9
- package/dist/src/{openclaw-CbHtt3B8.cjs → openclaw-DDSfq5fp.cjs} +9 -9
- package/dist/src/{opencode-sdk-CqxTHrk0.js → opencode-sdk-CImWVqy9.js} +6 -6
- package/dist/src/{opencode-sdk-xUrRk5Jx.js → opencode-sdk-CuCztr4P.js} +4 -4
- package/dist/src/{opencode-sdk-DdmtRB6D.cjs → opencode-sdk-mqF-Oj3f.cjs} +4 -4
- package/dist/src/{otlpReceiver-th2zHwjZ.cjs → otlpReceiver-B6Xo4KZM.cjs} +4 -4
- package/dist/src/{otlpReceiver-uytrRKdo.js → otlpReceiver-BO0rbDzh.js} +4 -4
- package/dist/src/{otlpReceiver-C-1cdVDr.js → otlpReceiver-Dg817agV.js} +5 -5
- package/dist/src/{providerRegistry-DAZoFmGv.js → providerRegistry-Xf0qdqGQ.js} +1 -1
- package/dist/src/providers-BMZZmPBJ.cjs +32 -0
- package/dist/src/{providers-CpUrPa8s.cjs → providers-BNKVY53V.cjs} +94 -64
- package/dist/src/{providers-D3lk_R7Q.js → providers-BiNq_Iyc.js} +94 -64
- package/dist/src/{providers-BOvl9qv5.js → providers-BlEhY5mi.js} +110 -79
- package/dist/src/providers-CQQrNaJk.js +32 -0
- package/dist/src/providers-Ck8HyrC-.js +34 -0
- package/dist/src/{pythonUtils-CUPlf1H0.js → pythonUtils-r1uBuA0n.js} +2 -2
- package/dist/src/{quiverai-BNGJOQym.cjs → quiverai-BNfIwKCO.cjs} +8 -8
- package/dist/src/{quiverai-Y7Is4wah.js → quiverai-BQigKdIH.js} +13 -13
- package/dist/src/{quiverai-DthRqZs9.js → quiverai-Bfy2WnE2.js} +8 -8
- package/dist/src/{render-kFatbqG6.js → render-CAZvKKkB.js} +3 -3
- package/dist/src/{responses-BtU_i-R0.js → responses-DLLjADw5.js} +5 -5
- package/dist/src/{responses-B85halqh.js → responses-TsdODUpm.js} +8 -8
- package/dist/src/{responses-CXJACENh.cjs → responses-zOtKtnY_.cjs} +5 -5
- package/dist/src/{rubyUtils-DYKoa7Ze.js → rubyUtils-BtjlqyXt.js} +2 -2
- package/dist/src/{rubyUtils-BA4D4gMX.js → rubyUtils-D7--T12C.js} +2 -2
- package/dist/src/{sagemaker-hRS_Jj3-.js → sagemaker-BcgLu0U4.js} +17 -17
- package/dist/src/{sagemaker-DI6IOTjT.js → sagemaker-CLdUAv5z.js} +11 -11
- package/dist/src/{sagemaker-BUagsrJ-.cjs → sagemaker-DwNnEVYt.cjs} +11 -11
- package/dist/src/{scanner-C6QXA9Pn.js → scanner-Dyw21Wg_.js} +10 -10
- package/dist/src/server/index.js +1376 -486
- package/dist/src/server-BUbS0Qfh.js +6 -0
- package/dist/src/{server-BPC37wlX.js → server-CbMTRQkg.js} +3 -3
- package/dist/src/{server-C_O6-VE4.cjs → server-CgUQ25qW.cjs} +3 -3
- package/dist/src/{server-HQtz_gUy.js → server-DWmZLfCy.js} +4 -4
- package/dist/src/server-XpGXFHkS.cjs +6 -0
- package/dist/src/server-gfOx5Zrk.js +8 -0
- package/dist/src/{signal-D4VhSJOY.js → signal-Bl32q42d.js} +2 -2
- package/dist/src/{slack-DTUSadx4.js → slack-BfdBx2tO.js} +1 -1
- package/dist/src/{store-BTdkdmK9.js → store-2ocbYY9D.js} +2 -2
- package/dist/src/store-5u2yriTV.js +7 -0
- package/dist/src/{store-F-KTiqfb.cjs → store-BqwfFEyF.cjs} +2 -2
- package/dist/src/{store-rueRdzcm.js → store-D4gdn9ih.js} +2 -2
- package/dist/src/store-D_lq_8oQ.js +6 -0
- package/dist/src/store-m5KT6Ly7.cjs +6 -0
- package/dist/src/{tables-w-r-abWq.cjs → tables-B9E1kRp-.cjs} +2 -2
- package/dist/src/{tables-ChjAuVAR.js → tables-C7TT2XVn.js} +2 -2
- package/dist/src/{tables-dNaVPyDr.js → tables-D-NSwNIb.js} +2 -2
- package/dist/src/telemetry-5RHFoCJh.js +6 -0
- package/dist/src/{telemetry-wXyCQ1Nz.js → telemetry-BXyVqyAg.js} +3 -3
- package/dist/src/{telemetry-Y1esJM0v.cjs → telemetry-D0_yFdtU.cjs} +3 -3
- package/dist/src/{telemetry-Dai7PdlR.js → telemetry-DZ_7PaVq.js} +3 -3
- package/dist/src/telemetry-Do8wMnA-.js +8 -0
- package/dist/src/telemetry-LojxPoFq.cjs +6 -0
- package/dist/src/{text-C1cXk9ij.js → text-DgMr_tiM.js} +1 -1
- package/dist/src/{tokenUsageUtils-D2ko2eFQ.js → tokenUsageUtils-DmZSD2eU.js} +1 -1
- package/dist/src/{transcription-i6EfSMie.js → transcription-CYuY5sFO.js} +6 -6
- package/dist/src/{transcription-CcYTL4wi.js → transcription-Ch7S-LWw.js} +10 -10
- package/dist/src/{transcription-C-K2hDJX.cjs → transcription-FNIz3YOe.cjs} +6 -6
- package/dist/src/{transform-gpzlPrwG.js → transform-CoP2bJ7P.js} +43 -4
- package/dist/src/{transform-B86_0IIb.js → transform-CqTFr7KR.js} +4 -4
- package/dist/src/{transform-DosdxVdh.js → transform-DMaxQwDx.js} +43 -4
- package/dist/src/{transform-DwsntMEQ.js → transform-GybT0X0u.js} +3 -3
- package/dist/src/{transform-CCSNqTI-.cjs → transform-ivxEY4f7.cjs} +54 -3
- package/dist/src/{transformersAvailability-DM54tWzt.js → transformersAvailability-DwmezkVe.js} +1 -1
- package/dist/src/{types-Brw5kggg.cjs → types-BIfttHrT.cjs} +13 -1
- package/dist/src/{types-CslP2TyG.js → types-DMVjYLpx.js} +13 -1
- package/dist/src/{types-CMDs7Kzu.js → types-t52w-XsS.js} +16 -2
- package/dist/src/{util-BECSJ0T_.js → util-BSh4a_Q8.js} +6 -6
- package/dist/src/{util-D8z5QOy8.cjs → util-C08Kns6-.cjs} +3 -3
- package/dist/src/{util-CttPoePn.js → util-CUEt0Vum.js} +3 -3
- package/dist/src/{util-CfPdWQJX.js → util-Cl0zfT3V.js} +3 -3
- package/dist/src/{util-Dab5xp2E.cjs → util-DUYOvxAy.cjs} +3 -3
- package/dist/src/{util-CY_XguB9.js → util-DiCePfDu.js} +3 -3
- package/dist/src/{util-CBAXTxfy.cjs → util-DkFTvieG.cjs} +3 -3
- package/dist/src/{util-Dft1RxsL.js → util-mJ58qbbw.js} +3 -3
- package/dist/src/{util-Ba18wQ8e.js → util-vjscpUzy.js} +3 -3
- package/dist/src/{utils-BTeLHwiH.js → utils-CVzb4YiI.js} +2 -2
- package/dist/src/{utils-Db5KwiXp.cjs → utils-DFaZa6Rf.cjs} +2 -2
- package/dist/src/{utils-ICP7kLcY.js → utils-JaY9veb5.js} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +43 -42
- package/dist/src/app/assets/index-COIipVf1.css +0 -1
- package/dist/src/app/assets/index-ClD64gUa.js +0 -428
- package/dist/src/app/assets/vendor-react-DHoaNLma.js +0 -4
- package/dist/src/cache-BJ31KhNT.cjs +0 -6
- package/dist/src/eval-DgiEH2xe.js +0 -16
- package/dist/src/evalResult-Boel8xoS.js +0 -13
- package/dist/src/evalResult-DGx1-Ela.js +0 -11
- package/dist/src/evalResult-DzRxYLDH.cjs +0 -11
- package/dist/src/evaluator-B4qKt437.js +0 -38
- package/dist/src/fetch-DwhKew9e.cjs +0 -4
- package/dist/src/graders-BpEqZT2Q.js +0 -34
- package/dist/src/graders-DTGI-hHE.cjs +0 -33
- package/dist/src/graders-DgMr-E4I.js +0 -36
- package/dist/src/providers-DVsoSup2.js +0 -34
- package/dist/src/providers-D_tJatIk.js +0 -32
- package/dist/src/providers-wpMPsMZ7.cjs +0 -32
- package/dist/src/server-BeqUuSvj.js +0 -6
- package/dist/src/server-CwQsQ6dl.cjs +0 -6
- package/dist/src/server-Dhbq83-d.js +0 -8
- package/dist/src/store-C7U17qcu.js +0 -6
- package/dist/src/store-CuDU_jDN.js +0 -7
- package/dist/src/store-awdDxuiD.cjs +0 -6
- package/dist/src/telemetry-ClcYTCOG.js +0 -8
- package/dist/src/telemetry-DEWuLu_s.js +0 -6
- package/dist/src/telemetry-tADmeX6E.cjs +0 -6
|
@@ -4,30 +4,30 @@ import { a as safeJoin, i as resolvePackageEntryPoint, n as getWrapperDir, o as
|
|
|
4
4
|
import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-vMlk9Qp5.js";
|
|
5
5
|
import { a as isVideoFile, i as isJavascriptFile, n as isAudioFile, r as isImageFile } from "./fileExtensions-ePDqouxn.js";
|
|
6
6
|
import { n as transform, r as getProcessShim, t as TransformInputType } from "./transform-D8dILpfZ.js";
|
|
7
|
-
import { $ as pluginDescriptions, A as isApiProvider, G as MULTI_TURN_STRATEGIES, H as AGENTIC_STRATEGIES, N as ProviderOptionsSchema, U as DATASET_PLUGINS, V as isUuid, Y as isCustomStrategy, j as isProviderOptions, yt as STRATEGY_EXEMPT_PLUGINS } from "./types-
|
|
8
|
-
import { c as maybeLoadFromExternalFile, d as maybeLoadToolsFromExternalFile, f as parsePathOrGlob, g as renderVarsInObject, h as renderEnvOnlyInObject, l as maybeLoadFromExternalFileWithVars, o as getResolvedRelativePath, s as maybeLoadConfigFromExternalFile, u as maybeLoadResponseFormatFromExternalFile, v as extractVariablesFromTemplates, x as parseFileUrl, y as getNunjucksEngine } from "./util-
|
|
9
|
-
import { C as toTitleCase, E as CLOUD_PROVIDER_PREFIX, L as VERSION, S as parseChatPrompt, T as transformTools, _ as isOpenAIToolArray, b as openaiToolChoiceToBedrock, c as cloudConfig, g as calculateCost, h as REQUEST_TIMEOUT_MS, m as LONG_RUNNING_MODEL_TIMEOUT_MS, n as fetchWithRetries, p as sleep, r as fetchWithTimeout, t as fetchWithProxy, v as isOpenAIToolChoice, w as transformToolChoice, x as openaiToolsToBedrock } from "./fetch-
|
|
10
|
-
import { a as fetchWithCache,
|
|
11
|
-
import { a as sha256, n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload, t as extractAndStoreBinaryData } from "./extractor-
|
|
7
|
+
import { $ as pluginDescriptions, A as isApiProvider, G as MULTI_TURN_STRATEGIES, H as AGENTIC_STRATEGIES, N as ProviderOptionsSchema, U as DATASET_PLUGINS, V as isUuid, Y as isCustomStrategy, j as isProviderOptions, yt as STRATEGY_EXEMPT_PLUGINS } from "./types-DMVjYLpx.js";
|
|
8
|
+
import { c as maybeLoadFromExternalFile, d as maybeLoadToolsFromExternalFile, f as parsePathOrGlob, g as renderVarsInObject, h as renderEnvOnlyInObject, l as maybeLoadFromExternalFileWithVars, o as getResolvedRelativePath, s as maybeLoadConfigFromExternalFile, u as maybeLoadResponseFormatFromExternalFile, v as extractVariablesFromTemplates, x as parseFileUrl, y as getNunjucksEngine } from "./util-DiCePfDu.js";
|
|
9
|
+
import { C as toTitleCase, E as CLOUD_PROVIDER_PREFIX, L as VERSION, S as parseChatPrompt, T as transformTools, _ as isOpenAIToolArray, b as openaiToolChoiceToBedrock, c as cloudConfig, g as calculateCost, h as REQUEST_TIMEOUT_MS, m as LONG_RUNNING_MODEL_TIMEOUT_MS, n as fetchWithRetries, p as sleep, r as fetchWithTimeout, t as fetchWithProxy, v as isOpenAIToolChoice, w as transformToolChoice, x as openaiToolsToBedrock } from "./fetch-18MuNu9i.js";
|
|
10
|
+
import { a as fetchWithCache, o as getCache, s as isCacheEnabled, u as isTransientConnectionError } from "./cache-BLLayYEN.js";
|
|
11
|
+
import { a as sha256, n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload, t as extractAndStoreBinaryData } from "./extractor-Hs7la_19.js";
|
|
12
12
|
import { n as withGenAISpan } from "./genaiTracer-Ce19n68P.js";
|
|
13
|
-
import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-
|
|
13
|
+
import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-C8Ei4f87.js";
|
|
14
14
|
import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage, r as accumulateTokenUsage } from "./tokenUsageUtils-FZd5O_4A.js";
|
|
15
|
-
import {
|
|
16
|
-
import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-
|
|
17
|
-
import { a as parseMessages, i as outputFromMessage, t as ANTHROPIC_MODELS } from "./util-
|
|
18
|
-
import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-
|
|
15
|
+
import { O as TOKEN_REFRESH_BUFFER_MS, S as toDataUri, _ as getGoogleClient, a as calculateGoogleCost, b as resolveProjectId, c as geminiFormatAndSystemInstructions, d as mergeParts, f as normalizeSafetySettings, g as GoogleAuthManager, h as CHAT_MODELS, i as transformMCPToolsToOpenAi, l as getCandidate, o as createAuthCacheDiscriminator, p as normalizeTools, r as transformMCPToolsToGoogle, s as formatCandidateContents, u as getGoogleAccessToken, y as loadCredentials } from "./transform-DMaxQwDx.js";
|
|
16
|
+
import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-CDZYGNlS.js";
|
|
17
|
+
import { a as parseMessages, i as outputFromMessage, t as ANTHROPIC_MODELS } from "./util-mJ58qbbw.js";
|
|
18
|
+
import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-DLLjADw5.js";
|
|
19
19
|
import { t as OpenAiGenericProvider } from "./openai-Dz3surb_.js";
|
|
20
|
-
import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-
|
|
21
|
-
import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-
|
|
22
|
-
import { i as getUserEmail } from "./accounts-
|
|
23
|
-
import { a as getRemoteGenerationUrlForUnaligned, c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrl, l as shouldGenerateRemote, n as checkServerFeatureSupport, s as neverGenerateRemote } from "./server-
|
|
24
|
-
import { r as storeBlob } from "./blobs-
|
|
25
|
-
import { i as evalResultsTable, p as getDb } from "./tables-
|
|
26
|
-
import { n as telemetry_default } from "./telemetry-
|
|
20
|
+
import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-Cl0zfT3V.js";
|
|
21
|
+
import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-D9_MDlnd.js";
|
|
22
|
+
import { i as getUserEmail } from "./accounts-R3gfCR_g.js";
|
|
23
|
+
import { a as getRemoteGenerationUrlForUnaligned, c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrl, l as shouldGenerateRemote, n as checkServerFeatureSupport, s as neverGenerateRemote } from "./server-CbMTRQkg.js";
|
|
24
|
+
import { r as storeBlob } from "./blobs-C9J2mVgo.js";
|
|
25
|
+
import { i as evalResultsTable, p as getDb } from "./tables-D-NSwNIb.js";
|
|
26
|
+
import { n as telemetry_default } from "./telemetry-DZ_7PaVq.js";
|
|
27
27
|
import { n as escapeRegExp, t as ellipsize } from "./text-Dm78AVGG.js";
|
|
28
|
-
import { n as getTraceStore } from "./store-
|
|
29
|
-
import { t as AwsBedrockGenericProvider } from "./base-
|
|
30
|
-
import { n as callOpenAiImageApi, r as formatOutput, t as OpenAiImageProvider } from "./image-
|
|
28
|
+
import { n as getTraceStore } from "./store-2ocbYY9D.js";
|
|
29
|
+
import { t as AwsBedrockGenericProvider } from "./base-Dtp8b4_N.js";
|
|
30
|
+
import { n as callOpenAiImageApi, r as formatOutput, t as OpenAiImageProvider } from "./image-BiEVdpdP.js";
|
|
31
31
|
import { t as providerRegistry } from "./providerRegistry-wCWd7sKQ.js";
|
|
32
32
|
import { n as runRuby } from "./rubyUtils-Cs35SDYa.js";
|
|
33
33
|
import * as fs$1 from "fs";
|
|
@@ -2290,7 +2290,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
|
|
|
2290
2290
|
temperature: config.temperature,
|
|
2291
2291
|
topP: config.topP,
|
|
2292
2292
|
topK: config.topK,
|
|
2293
|
-
safetySettings: config.safetySettings,
|
|
2293
|
+
safetySettings: normalizeSafetySettings(config.safetySettings),
|
|
2294
2294
|
stopSequences: config.stopSequences,
|
|
2295
2295
|
maxOutputTokens: config.maxOutputTokens
|
|
2296
2296
|
};
|
|
@@ -2364,7 +2364,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
|
|
|
2364
2364
|
...config.maxOutputTokens !== void 0 && { maxOutputTokens: config.maxOutputTokens },
|
|
2365
2365
|
...config.generationConfig
|
|
2366
2366
|
},
|
|
2367
|
-
safetySettings: config.safetySettings,
|
|
2367
|
+
safetySettings: normalizeSafetySettings(config.safetySettings),
|
|
2368
2368
|
...config.toolConfig ? { toolConfig: config.toolConfig } : {},
|
|
2369
2369
|
...allTools.length > 0 ? { tools: allTools } : {},
|
|
2370
2370
|
...systemInstruction ? { system_instruction: systemInstruction } : {}
|
|
@@ -2683,7 +2683,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
|
|
|
2683
2683
|
topK: config.topK,
|
|
2684
2684
|
...config.generationConfig
|
|
2685
2685
|
},
|
|
2686
|
-
...config.safetySettings ? { safetySettings: config.safetySettings } : {},
|
|
2686
|
+
...config.safetySettings ? { safetySettings: normalizeSafetySettings(config.safetySettings) } : {},
|
|
2687
2687
|
...config.toolConfig ? { toolConfig: config.toolConfig } : {},
|
|
2688
2688
|
...allTools.length > 0 ? { tools: allTools } : {},
|
|
2689
2689
|
...systemInstruction ? { systemInstruction } : {},
|
|
@@ -2897,7 +2897,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
|
|
|
2897
2897
|
parameters: {
|
|
2898
2898
|
context: this.config.context,
|
|
2899
2899
|
examples: this.config.examples,
|
|
2900
|
-
safetySettings: this.config.safetySettings,
|
|
2900
|
+
safetySettings: normalizeSafetySettings(this.config.safetySettings),
|
|
2901
2901
|
stopSequences: this.config.stopSequences,
|
|
2902
2902
|
temperature: this.config.temperature,
|
|
2903
2903
|
maxOutputTokens: this.config.maxOutputTokens,
|
|
@@ -5355,7 +5355,7 @@ async function loadRedteamProvider({ provider, jsonOnly = false, preferSmallMode
|
|
|
5355
5355
|
ret = redteamProvider;
|
|
5356
5356
|
} else if (typeof redteamProvider === "string" || isProviderOptions(redteamProvider)) {
|
|
5357
5357
|
logger_default.debug(`Loading ${purpose} provider`, { provider: redteamProvider });
|
|
5358
|
-
ret = (await (await import("./providers-
|
|
5358
|
+
ret = (await (await import("./providers-CQQrNaJk.js")).loadApiProviders([redteamProvider]))[0];
|
|
5359
5359
|
} else {
|
|
5360
5360
|
const defaultModel = preferSmallModel ? ATTACKER_MODEL_SMALL : ATTACKER_MODEL;
|
|
5361
5361
|
logger_default.debug(`Using default ${purpose} provider: ${defaultModel}`);
|
|
@@ -5634,7 +5634,7 @@ async function externalizeResponseForRedteamHistory(response, context) {
|
|
|
5634
5634
|
*/
|
|
5635
5635
|
async function tryUnblocking({ messages, lastResponse, goal, purpose }) {
|
|
5636
5636
|
try {
|
|
5637
|
-
const { checkServerFeatureSupport } = await import("./server-
|
|
5637
|
+
const { checkServerFeatureSupport } = await import("./server-BUbS0Qfh.js");
|
|
5638
5638
|
const supportsUnblocking = await checkServerFeatureSupport("blocking-question-analysis", "2025-06-16T14:49:11-07:00");
|
|
5639
5639
|
if (!getEnvBool("PROMPTFOO_ENABLE_UNBLOCKING")) {
|
|
5640
5640
|
logger_default.debug("[Unblocking] Disabled by default (set PROMPTFOO_ENABLE_UNBLOCKING=true to enable)");
|
|
@@ -9692,6 +9692,7 @@ const Strategies = [
|
|
|
9692
9692
|
},
|
|
9693
9693
|
{
|
|
9694
9694
|
id: "crescendo",
|
|
9695
|
+
requiresGoalExtraction: true,
|
|
9695
9696
|
action: async (testCases, injectVar, config) => {
|
|
9696
9697
|
logger_default.debug(`Adding Crescendo to ${testCases.length} test cases`);
|
|
9697
9698
|
const newTestCases = addCrescendo(testCases, injectVar, config);
|
|
@@ -9701,6 +9702,7 @@ const Strategies = [
|
|
|
9701
9702
|
},
|
|
9702
9703
|
{
|
|
9703
9704
|
id: "custom",
|
|
9705
|
+
requiresGoalExtraction: true,
|
|
9704
9706
|
action: async (testCases, injectVar, config, strategyId = "custom") => {
|
|
9705
9707
|
logger_default.debug(`Adding Custom to ${testCases.length} test cases`);
|
|
9706
9708
|
const newTestCases = addCustom(testCases, injectVar, config, strategyId);
|
|
@@ -9719,6 +9721,7 @@ const Strategies = [
|
|
|
9719
9721
|
},
|
|
9720
9722
|
{
|
|
9721
9723
|
id: "goat",
|
|
9724
|
+
requiresGoalExtraction: true,
|
|
9722
9725
|
action: async (testCases, injectVar, config) => {
|
|
9723
9726
|
logger_default.debug(`Adding GOAT to ${testCases.length} test cases`);
|
|
9724
9727
|
const newTestCases = await addGoatTestCases(testCases, injectVar, config);
|
|
@@ -9728,6 +9731,7 @@ const Strategies = [
|
|
|
9728
9731
|
},
|
|
9729
9732
|
{
|
|
9730
9733
|
id: "indirect-web-pwn",
|
|
9734
|
+
requiresGoalExtraction: true,
|
|
9731
9735
|
action: async (testCases, injectVar, config) => {
|
|
9732
9736
|
logger_default.debug(`Adding Indirect Web Pwn to ${testCases.length} test cases`);
|
|
9733
9737
|
const newTestCases = await addIndirectWebPwnTestCases(testCases, injectVar, config);
|
|
@@ -9764,6 +9768,7 @@ const Strategies = [
|
|
|
9764
9768
|
},
|
|
9765
9769
|
{
|
|
9766
9770
|
id: "jailbreak",
|
|
9771
|
+
requiresGoalExtraction: true,
|
|
9767
9772
|
action: async (testCases, injectVar, config) => {
|
|
9768
9773
|
logger_default.warn("Strategy \"jailbreak\" is deprecated. Use \"jailbreak:meta\" instead. The \"jailbreak\" strategy used outdated single-shot optimization techniques.");
|
|
9769
9774
|
logger_default.debug(`Adding meta-agent jailbreaks to ${testCases.length} test cases`);
|
|
@@ -9792,6 +9797,7 @@ const Strategies = [
|
|
|
9792
9797
|
},
|
|
9793
9798
|
{
|
|
9794
9799
|
id: "jailbreak:tree",
|
|
9800
|
+
requiresGoalExtraction: true,
|
|
9795
9801
|
action: async (testCases, injectVar, config) => {
|
|
9796
9802
|
logger_default.debug(`Adding experimental tree jailbreaks to ${testCases.length} test cases`);
|
|
9797
9803
|
const newTestCases = addIterativeJailbreaks(testCases, injectVar, "iterative:tree", config);
|
|
@@ -9801,6 +9807,7 @@ const Strategies = [
|
|
|
9801
9807
|
},
|
|
9802
9808
|
{
|
|
9803
9809
|
id: "jailbreak:meta",
|
|
9810
|
+
requiresGoalExtraction: true,
|
|
9804
9811
|
action: async (testCases, injectVar, config) => {
|
|
9805
9812
|
logger_default.debug(`Adding meta-agent jailbreaks to ${testCases.length} test cases`);
|
|
9806
9813
|
const newTestCases = addIterativeJailbreaks(testCases, injectVar, "iterative:meta", config);
|
|
@@ -9810,6 +9817,7 @@ const Strategies = [
|
|
|
9810
9817
|
},
|
|
9811
9818
|
{
|
|
9812
9819
|
id: "jailbreak:hydra",
|
|
9820
|
+
requiresGoalExtraction: true,
|
|
9813
9821
|
action: async (testCases, injectVar, config) => {
|
|
9814
9822
|
logger_default.debug(`Adding hydra multi-turn jailbreaks to ${testCases.length} test cases`);
|
|
9815
9823
|
const newTestCases = addHydra(testCases, injectVar, config);
|
|
@@ -10713,7 +10721,7 @@ var CrescendoProvider = class {
|
|
|
10713
10721
|
});
|
|
10714
10722
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
10715
10723
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
10716
|
-
const { getGraderById } = await import("./graders-
|
|
10724
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
10717
10725
|
let graderPassed;
|
|
10718
10726
|
const additionalRubric = getGoalRubric(this.userGoal);
|
|
10719
10727
|
while (roundNum < this.maxTurns) try {
|
|
@@ -11388,7 +11396,7 @@ var CustomProvider = class {
|
|
|
11388
11396
|
let lastTransformResult;
|
|
11389
11397
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
11390
11398
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
11391
|
-
const { getGraderById } = await import("./graders-
|
|
11399
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
11392
11400
|
let graderPassed;
|
|
11393
11401
|
let storedGraderResult;
|
|
11394
11402
|
const additionalRubric = getGoalRubric(this.userGoal);
|
|
@@ -11870,7 +11878,7 @@ var GoatProvider = class {
|
|
|
11870
11878
|
let assertToUse;
|
|
11871
11879
|
let graderPassed;
|
|
11872
11880
|
let storedGraderResult;
|
|
11873
|
-
const { getGraderById } = await import("./graders-
|
|
11881
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
11874
11882
|
let test;
|
|
11875
11883
|
if (context?.test) {
|
|
11876
11884
|
test = context?.test;
|
|
@@ -12311,7 +12319,7 @@ var HydraProvider = class {
|
|
|
12311
12319
|
let lastTransformResult;
|
|
12312
12320
|
let lastTransformDisplayVars;
|
|
12313
12321
|
let lastFinalAttackPrompt;
|
|
12314
|
-
const { getGraderById } = await import("./graders-
|
|
12322
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
12315
12323
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
12316
12324
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
12317
12325
|
let previousTraceSummary;
|
|
@@ -13150,7 +13158,7 @@ async function runRedteamConversation$2({ context, filters, injectVar, numIterat
|
|
|
13150
13158
|
if (sessionId) sessionIds.push(sessionId);
|
|
13151
13159
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
13152
13160
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
13153
|
-
const { getGraderById } = await import("./graders-
|
|
13161
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
13154
13162
|
if (test && assertToUse) {
|
|
13155
13163
|
const grader = getGraderById(assertToUse.type);
|
|
13156
13164
|
if (grader) {
|
|
@@ -13980,7 +13988,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
|
|
|
13980
13988
|
previousTraceSummary = attackTraceSummary;
|
|
13981
13989
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
13982
13990
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
13983
|
-
const { getGraderById } = await import("./graders-
|
|
13991
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
13984
13992
|
if (test && assertToUse) {
|
|
13985
13993
|
const grader = getGraderById(assertToUse.type);
|
|
13986
13994
|
if (grader) {
|
|
@@ -14557,7 +14565,7 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
|
|
|
14557
14565
|
noImprovementCount++;
|
|
14558
14566
|
if (noImprovementCount % 5 === 0) logger_default.debug(`[Depth ${depth}, Attempt ${attempts}] No improvement for ${noImprovementCount} consecutive iterations. Max score: ${maxScore}`);
|
|
14559
14567
|
}
|
|
14560
|
-
const { getGraderById } = await import("./graders-
|
|
14568
|
+
const { getGraderById } = await import("./graders-BCytzXrb.js");
|
|
14561
14569
|
let graderPassed;
|
|
14562
14570
|
let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
|
|
14563
14571
|
if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
|
|
@@ -22542,7 +22550,7 @@ var GeminiImageProvider = class {
|
|
|
22542
22550
|
...this.config.imageAspectRatio && { aspectRatio: this.config.imageAspectRatio },
|
|
22543
22551
|
...this.config.imageSize && isGemini3 && { imageSize: this.config.imageSize }
|
|
22544
22552
|
};
|
|
22545
|
-
if (this.config.safetySettings) body.safetySettings = this.config.safetySettings;
|
|
22553
|
+
if (this.config.safetySettings) body.safetySettings = normalizeSafetySettings(this.config.safetySettings);
|
|
22546
22554
|
return body;
|
|
22547
22555
|
}
|
|
22548
22556
|
processResponse(data, cached, latencyMs) {
|
|
@@ -22563,16 +22571,20 @@ var GeminiImageProvider = class {
|
|
|
22563
22571
|
"SPII"
|
|
22564
22572
|
].includes(candidate.finishReason)) return { error: `Response was blocked with finish reason: ${candidate.finishReason}` };
|
|
22565
22573
|
if (!candidate.content?.parts) return { error: "No content parts in response" };
|
|
22566
|
-
const
|
|
22574
|
+
const textParts = [];
|
|
22575
|
+
const imageParts = [];
|
|
22567
22576
|
let totalCost = 0;
|
|
22568
|
-
for (const part of candidate.content.parts) if (part.text)
|
|
22577
|
+
for (const part of candidate.content.parts) if (part.text) textParts.push(part.text);
|
|
22569
22578
|
else if (part.inlineData) {
|
|
22570
22579
|
const mimeType = part.inlineData.mimeType || "image/png";
|
|
22571
22580
|
const base64Data = part.inlineData.data;
|
|
22572
|
-
|
|
22581
|
+
imageParts.push({
|
|
22582
|
+
mimeType,
|
|
22583
|
+
base64Data
|
|
22584
|
+
});
|
|
22573
22585
|
totalCost += this.getCostPerImage();
|
|
22574
22586
|
}
|
|
22575
|
-
if (
|
|
22587
|
+
if (imageParts.length === 0 && textParts.length === 0) return { error: "No valid content generated" };
|
|
22576
22588
|
const tokenUsage = cached ? {
|
|
22577
22589
|
cached: data.usageMetadata?.totalTokenCount,
|
|
22578
22590
|
total: data.usageMetadata?.totalTokenCount,
|
|
@@ -22583,8 +22595,13 @@ var GeminiImageProvider = class {
|
|
|
22583
22595
|
total: data.usageMetadata?.totalTokenCount,
|
|
22584
22596
|
numRequests: 1
|
|
22585
22597
|
};
|
|
22598
|
+
const images = imageParts.length > 0 ? imageParts.map((img) => ({
|
|
22599
|
+
data: toDataUri(img.mimeType, img.base64Data),
|
|
22600
|
+
mimeType: img.mimeType
|
|
22601
|
+
})) : void 0;
|
|
22586
22602
|
return {
|
|
22587
|
-
output:
|
|
22603
|
+
output: imageParts.length > 0 && textParts.length === 0 ? images[0].data : textParts.join("\n\n"),
|
|
22604
|
+
images,
|
|
22588
22605
|
cached,
|
|
22589
22606
|
latencyMs,
|
|
22590
22607
|
cost: totalCost > 0 ? totalCost : void 0,
|
|
@@ -22722,13 +22739,17 @@ var GoogleImageProvider = class {
|
|
|
22722
22739
|
const base64Image = imageData.bytesBase64Encoded;
|
|
22723
22740
|
const mimeType = imageData.mimeType || "image/png";
|
|
22724
22741
|
if (base64Image) {
|
|
22725
|
-
imageOutputs.push(
|
|
22742
|
+
imageOutputs.push({
|
|
22743
|
+
data: toDataUri(mimeType, base64Image),
|
|
22744
|
+
mimeType
|
|
22745
|
+
});
|
|
22726
22746
|
totalCost += costPerImage;
|
|
22727
22747
|
}
|
|
22728
22748
|
}
|
|
22729
22749
|
if (imageOutputs.length === 0) return { error: "No valid images generated" };
|
|
22730
22750
|
return {
|
|
22731
|
-
output: imageOutputs.
|
|
22751
|
+
output: imageOutputs[0].data,
|
|
22752
|
+
images: imageOutputs,
|
|
22732
22753
|
cached,
|
|
22733
22754
|
latencyMs,
|
|
22734
22755
|
cost: totalCost
|
|
@@ -24884,6 +24905,7 @@ var HttpProvider = class {
|
|
|
24884
24905
|
const vars = {
|
|
24885
24906
|
...context?.vars || {},
|
|
24886
24907
|
prompt,
|
|
24908
|
+
...context?.evaluationId ? { evaluationId: context.evaluationId } : {},
|
|
24887
24909
|
...transformedTools !== void 0 ? { tools: serializeForTemplate(transformedTools) } : {},
|
|
24888
24910
|
...transformedToolChoice !== void 0 ? { tool_choice: serializeForTemplate(transformedToolChoice) } : {}
|
|
24889
24911
|
};
|
|
@@ -25107,9 +25129,17 @@ var HttpProvider = class {
|
|
|
25107
25129
|
logger_default.error(`Error parsing session ID: ${String(err)}. Got headers: ${safeJsonStringify(sanitizeObject(responseHeaders, { context: "response headers" }))} and parsed body: ${safeJsonStringify(sanitizeObject(parsedData, { context: "response body" }))}`);
|
|
25108
25130
|
throw err;
|
|
25109
25131
|
}
|
|
25132
|
+
ret.metadata = {
|
|
25133
|
+
...ret.metadata,
|
|
25134
|
+
http: {
|
|
25135
|
+
status,
|
|
25136
|
+
statusText
|
|
25137
|
+
}
|
|
25138
|
+
};
|
|
25110
25139
|
if (context?.debug) {
|
|
25111
25140
|
ret.raw = data;
|
|
25112
25141
|
ret.metadata = {
|
|
25142
|
+
...ret.metadata,
|
|
25113
25143
|
headers: sanitizeObject(responseHeaders, { context: "response headers" }),
|
|
25114
25144
|
transformedRequest: this.config.transformRequest ? transformedPrompt : parsedRequest.body?.text || renderedRequest.trim(),
|
|
25115
25145
|
finalRequestBody: parsedRequest.body?.text,
|
|
@@ -32144,7 +32174,7 @@ const providerMap = [
|
|
|
32144
32174
|
{
|
|
32145
32175
|
test: (providerPath) => providerPath.startsWith("opencode:") || providerPath === "opencode",
|
|
32146
32176
|
create: async (providerPath, providerOptions, context) => {
|
|
32147
|
-
const { OpenCodeSDKProvider } = await import("./opencode-sdk-
|
|
32177
|
+
const { OpenCodeSDKProvider } = await import("./opencode-sdk-CuCztr4P.js");
|
|
32148
32178
|
return new OpenCodeSDKProvider({
|
|
32149
32179
|
...providerOptions,
|
|
32150
32180
|
id: providerPath,
|
|
@@ -32156,14 +32186,14 @@ const providerMap = [
|
|
|
32156
32186
|
{
|
|
32157
32187
|
test: (providerPath) => providerPath.startsWith("openclaw:") || providerPath === "openclaw",
|
|
32158
32188
|
create: async (providerPath, providerOptions, context) => {
|
|
32159
|
-
const { createOpenClawProvider } = await import("./openclaw-
|
|
32189
|
+
const { createOpenClawProvider } = await import("./openclaw-CpPrXwf6.js");
|
|
32160
32190
|
return createOpenClawProvider(providerPath, providerOptions, context.env);
|
|
32161
32191
|
}
|
|
32162
32192
|
},
|
|
32163
32193
|
{
|
|
32164
32194
|
test: (providerPath) => providerPath.startsWith("anthropic:claude-agent-sdk") || providerPath.startsWith("anthropic:claude-code"),
|
|
32165
32195
|
create: async (_providerPath, providerOptions, context) => {
|
|
32166
|
-
const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-
|
|
32196
|
+
const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-6-xTaLwM.js");
|
|
32167
32197
|
return new ClaudeCodeSDKProvider({
|
|
32168
32198
|
...providerOptions,
|
|
32169
32199
|
env: context.env
|
|
@@ -32220,25 +32250,25 @@ const providerMap = [
|
|
|
32220
32250
|
const modelName = splits.slice(2).join(":");
|
|
32221
32251
|
if (modelType === "converse") return new AwsBedrockConverseProvider(modelName, providerOptions);
|
|
32222
32252
|
if (modelType === "nova-sonic" || modelType.includes("amazon.nova-sonic")) {
|
|
32223
|
-
const { NovaSonicProvider } = await import("./nova-sonic-
|
|
32253
|
+
const { NovaSonicProvider } = await import("./nova-sonic-CgaWLDM1.js");
|
|
32224
32254
|
return new NovaSonicProvider("amazon.nova-sonic-v1:0", providerOptions);
|
|
32225
32255
|
}
|
|
32226
32256
|
if (modelType.includes("luma.ray") || modelName.includes("luma.ray")) {
|
|
32227
|
-
const { LumaRayVideoProvider } = await import("./luma-ray-
|
|
32257
|
+
const { LumaRayVideoProvider } = await import("./luma-ray-BOeX-h0M.js");
|
|
32228
32258
|
return new LumaRayVideoProvider(modelName.includes("luma.ray") ? modelName : splits.slice(1).join(":") || "luma.ray-v2:0", providerOptions);
|
|
32229
32259
|
}
|
|
32230
32260
|
if (modelType.includes("amazon.nova-reel") || modelType === "video" && (modelName.includes("amazon.nova-reel") || modelName === "")) {
|
|
32231
|
-
const { NovaReelVideoProvider } = await import("./nova-reel-
|
|
32261
|
+
const { NovaReelVideoProvider } = await import("./nova-reel-DtCjbD5O.js");
|
|
32232
32262
|
return new NovaReelVideoProvider(modelName || "amazon.nova-reel-v1:1", providerOptions);
|
|
32233
32263
|
}
|
|
32234
32264
|
if (modelType === "agents") {
|
|
32235
|
-
const { AwsBedrockAgentsProvider } = await import("./agents-
|
|
32265
|
+
const { AwsBedrockAgentsProvider } = await import("./agents-DETIQHqF.js");
|
|
32236
32266
|
return new AwsBedrockAgentsProvider(modelName, providerOptions);
|
|
32237
32267
|
}
|
|
32238
32268
|
if (modelType === "completion") return new AwsBedrockCompletionProvider(modelName, providerOptions);
|
|
32239
32269
|
if (modelType === "embeddings" || modelType === "embedding") return new AwsBedrockEmbeddingProvider(modelName, providerOptions);
|
|
32240
32270
|
if (modelType === "kb" || modelType === "knowledge-base") {
|
|
32241
|
-
const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-
|
|
32271
|
+
const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-XJQ0Qyez.js");
|
|
32242
32272
|
return new AwsBedrockKnowledgeBaseProvider(modelName, providerOptions);
|
|
32243
32273
|
}
|
|
32244
32274
|
return new AwsBedrockCompletionProvider(splits.slice(1).join(":"), providerOptions);
|
|
@@ -32248,7 +32278,7 @@ const providerMap = [
|
|
|
32248
32278
|
test: (providerPath) => providerPath.startsWith("bedrock-agent:"),
|
|
32249
32279
|
create: async (providerPath, providerOptions, _context) => {
|
|
32250
32280
|
const agentId = providerPath.substring(14);
|
|
32251
|
-
const { AwsBedrockAgentsProvider } = await import("./agents-
|
|
32281
|
+
const { AwsBedrockAgentsProvider } = await import("./agents-DETIQHqF.js");
|
|
32252
32282
|
return new AwsBedrockAgentsProvider(agentId, providerOptions);
|
|
32253
32283
|
}
|
|
32254
32284
|
},
|
|
@@ -32258,7 +32288,7 @@ const providerMap = [
|
|
|
32258
32288
|
const splits = providerPath.split(":");
|
|
32259
32289
|
const modelType = splits[1];
|
|
32260
32290
|
const endpointName = splits.slice(2).join(":");
|
|
32261
|
-
const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-
|
|
32291
|
+
const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-CLdUAv5z.js");
|
|
32262
32292
|
if (modelType === "embedding" || modelType === "embeddings") return new SageMakerEmbeddingProvider(endpointName || modelType, providerOptions);
|
|
32263
32293
|
if (splits.length === 2) return new SageMakerCompletionProvider(modelType, providerOptions);
|
|
32264
32294
|
if (endpointName.includes("jumpstart") || modelType === "jumpstart") return new SageMakerCompletionProvider(endpointName, {
|
|
@@ -32299,7 +32329,7 @@ const providerMap = [
|
|
|
32299
32329
|
{
|
|
32300
32330
|
test: (providerPath) => providerPath.startsWith("cloudflare-ai:"),
|
|
32301
32331
|
create: async (providerPath, providerOptions, context) => {
|
|
32302
|
-
const { createCloudflareAiProvider } = await import("./cloudflare-ai-
|
|
32332
|
+
const { createCloudflareAiProvider } = await import("./cloudflare-ai-CUg4BTcj.js");
|
|
32303
32333
|
return createCloudflareAiProvider(providerPath, {
|
|
32304
32334
|
...providerOptions,
|
|
32305
32335
|
env: context.env
|
|
@@ -32309,7 +32339,7 @@ const providerMap = [
|
|
|
32309
32339
|
{
|
|
32310
32340
|
test: (providerPath) => providerPath.startsWith("cloudflare-gateway:"),
|
|
32311
32341
|
create: async (providerPath, providerOptions, context) => {
|
|
32312
|
-
const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-
|
|
32342
|
+
const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-_itGuXry.js");
|
|
32313
32343
|
return createCloudflareGatewayProvider(providerPath, {
|
|
32314
32344
|
...providerOptions,
|
|
32315
32345
|
env: context.env
|
|
@@ -32461,27 +32491,27 @@ const providerMap = [
|
|
|
32461
32491
|
create: async (providerPath, providerOptions, context) => {
|
|
32462
32492
|
const modelType = providerPath.split(":")[1];
|
|
32463
32493
|
if (modelType === "image") {
|
|
32464
|
-
const { createHyperbolicImageProvider } = await import("./image-
|
|
32494
|
+
const { createHyperbolicImageProvider } = await import("./image-BXt_7u0v.js");
|
|
32465
32495
|
return createHyperbolicImageProvider(providerPath, {
|
|
32466
32496
|
...providerOptions,
|
|
32467
32497
|
env: context.env
|
|
32468
32498
|
});
|
|
32469
32499
|
}
|
|
32470
32500
|
if (modelType === "audio") {
|
|
32471
|
-
const { createHyperbolicAudioProvider } = await import("./audio-
|
|
32501
|
+
const { createHyperbolicAudioProvider } = await import("./audio-BrJBFN2b.js");
|
|
32472
32502
|
return createHyperbolicAudioProvider(providerPath, {
|
|
32473
32503
|
...providerOptions,
|
|
32474
32504
|
env: context.env
|
|
32475
32505
|
});
|
|
32476
32506
|
}
|
|
32477
|
-
const { createHyperbolicProvider } = await import("./chat-
|
|
32507
|
+
const { createHyperbolicProvider } = await import("./chat-CgyGj2hC.js");
|
|
32478
32508
|
return createHyperbolicProvider(providerPath, providerOptions);
|
|
32479
32509
|
}
|
|
32480
32510
|
},
|
|
32481
32511
|
{
|
|
32482
32512
|
test: (providerPath) => providerPath.startsWith("litellm:"),
|
|
32483
32513
|
create: async (providerPath, providerOptions, context) => {
|
|
32484
|
-
const { createLiteLLMProvider } = await import("./litellm-
|
|
32514
|
+
const { createLiteLLMProvider } = await import("./litellm-CrLJrPIm.js");
|
|
32485
32515
|
return createLiteLLMProvider(providerPath, {
|
|
32486
32516
|
config: providerOptions,
|
|
32487
32517
|
env: context.env
|
|
@@ -32550,7 +32580,7 @@ const providerMap = [
|
|
|
32550
32580
|
if (modelType === "realtime") return new OpenAiRealtimeProvider(modelName || "gpt-4o-realtime-preview-2024-12-17", providerOptions);
|
|
32551
32581
|
if (modelType === "responses") return new OpenAiResponsesProvider(modelName || "gpt-4.1-2025-04-14", providerOptions);
|
|
32552
32582
|
if (modelType === "transcription") {
|
|
32553
|
-
const { OpenAiTranscriptionProvider } = await import("./transcription-
|
|
32583
|
+
const { OpenAiTranscriptionProvider } = await import("./transcription-CYuY5sFO.js");
|
|
32554
32584
|
return new OpenAiTranscriptionProvider(modelName || "gpt-4o-transcribe-diarize", providerOptions);
|
|
32555
32585
|
}
|
|
32556
32586
|
if (OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelType)) return new OpenAiChatCompletionProvider(modelType, providerOptions);
|
|
@@ -32558,7 +32588,7 @@ const providerMap = [
|
|
|
32558
32588
|
if (OpenAiRealtimeProvider.OPENAI_REALTIME_MODEL_NAMES.includes(modelType)) return new OpenAiRealtimeProvider(modelType, providerOptions);
|
|
32559
32589
|
if (OpenAiResponsesProvider.OPENAI_RESPONSES_MODEL_NAMES.includes(modelType)) return new OpenAiResponsesProvider(modelType, providerOptions);
|
|
32560
32590
|
if (modelType === "agents") {
|
|
32561
|
-
const { OpenAiAgentsProvider } = await import("./agents-
|
|
32591
|
+
const { OpenAiAgentsProvider } = await import("./agents-GiUianme.js");
|
|
32562
32592
|
return new OpenAiAgentsProvider(modelName || "default-agent", providerOptions);
|
|
32563
32593
|
}
|
|
32564
32594
|
if (modelType === "chatkit") {
|
|
@@ -32605,7 +32635,7 @@ const providerMap = [
|
|
|
32605
32635
|
{
|
|
32606
32636
|
test: (providerPath) => providerPath.startsWith("quiverai:"),
|
|
32607
32637
|
create: async (providerPath, providerOptions, context) => {
|
|
32608
|
-
const { createQuiverAiProvider } = await import("./quiverai-
|
|
32638
|
+
const { createQuiverAiProvider } = await import("./quiverai-Bfy2WnE2.js");
|
|
32609
32639
|
return createQuiverAiProvider(providerPath, providerOptions, context.env);
|
|
32610
32640
|
}
|
|
32611
32641
|
},
|
|
@@ -32650,7 +32680,7 @@ const providerMap = [
|
|
|
32650
32680
|
{
|
|
32651
32681
|
test: (providerPath) => providerPath.startsWith("aimlapi:"),
|
|
32652
32682
|
create: async (providerPath, providerOptions, context) => {
|
|
32653
|
-
const { createAimlApiProvider } = await import("./aimlapi-
|
|
32683
|
+
const { createAimlApiProvider } = await import("./aimlapi-CMJpKK-B.js");
|
|
32654
32684
|
return createAimlApiProvider(providerPath, {
|
|
32655
32685
|
...providerOptions,
|
|
32656
32686
|
env: context.env
|
|
@@ -32660,7 +32690,7 @@ const providerMap = [
|
|
|
32660
32690
|
{
|
|
32661
32691
|
test: (providerPath) => providerPath.startsWith("cometapi:"),
|
|
32662
32692
|
create: async (providerPath, providerOptions, context) => {
|
|
32663
|
-
const { createCometApiProvider } = await import("./cometapi-
|
|
32693
|
+
const { createCometApiProvider } = await import("./cometapi-ChAaRjg5.js");
|
|
32664
32694
|
return createCometApiProvider(providerPath, {
|
|
32665
32695
|
...providerOptions,
|
|
32666
32696
|
env: context.env
|
|
@@ -32670,7 +32700,7 @@ const providerMap = [
|
|
|
32670
32700
|
{
|
|
32671
32701
|
test: (providerPath) => providerPath.startsWith("docker:"),
|
|
32672
32702
|
create: async (providerPath, providerOptions, context) => {
|
|
32673
|
-
const { createDockerProvider } = await import("./docker-
|
|
32703
|
+
const { createDockerProvider } = await import("./docker-JAAubMw3.js");
|
|
32674
32704
|
return createDockerProvider(providerPath, {
|
|
32675
32705
|
...providerOptions,
|
|
32676
32706
|
env: context.env
|
|
@@ -33253,4 +33283,4 @@ function getProviderIds(providerPaths) {
|
|
|
33253
33283
|
|
|
33254
33284
|
//#endregion
|
|
33255
33285
|
export { DefaultSynthesizeProvider as $, createRateLimitRegistry as A, isCloudProvider as B, collectFileMetadata as C, loadFromPackage as D, isPackagePath as E, getCloudDatabaseId as F, DefaultEmbeddingProvider as G, OpenAiModerationProvider as H, getEvalConfigFromCloud as I, AIStudioChatProvider as J, DefaultGradingProvider as K, getOrgContext as L, PromptfooHarmfulCompletionProvider as M, REDTEAM_MEMORY_POISONING_PLUGIN_ID as N, redteamProviderManager as O, checkCloudPermissions as P, DefaultSuggestionsProvider as Q, getPluginSeverityOverridesFromCloud as R, removePrefix as S, runExtensionHook as T, MistralChatCompletionProvider as U, resolveTeamId as V, MistralEmbeddingProvider as W, DefaultGradingProvider$1 as X, DefaultGradingJsonProvider as Y, DefaultLlmRubricProvider as Z, extractVariablesFromJson as _, resolveProviderConfigs as a, isBasicRefusal as b, Strategies as c, pluginMatchesStrategyTargets as d, AzureModerationProvider as et, checkExfilTracking as f, extractPromptFromTags as g, extractInputVarsFromPrompt as h, resolveProvider as i, parseScriptParts as it, createProviderRateLimitOptions as j, TokenUsageTracker as k, loadStrategy as l, extractGoalFromPrompt as m, loadApiProvider as n, AzureChatCompletionProvider as nt, MCPProvider as o, extractAllPromptsFromTags as p, VertexChatProvider as q, loadApiProviders as r, getFileHashes as rt, GoogleLiveProvider as s, getProviderIds as t, AzureEmbeddingProvider as tt, validateStrategies as u, getSessionId as v, renderPrompt as w, isEmptyResponse as x, getShortPluginId as y, getPoliciesFromCloud as z };
|
|
33256
|
-
//# sourceMappingURL=providers-
|
|
33286
|
+
//# sourceMappingURL=providers-BiNq_Iyc.js.map
|