promptfoo 0.121.10 → 0.121.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/{accounts-D4iTShVh.js → accounts-BGs8AMhG.js} +4 -4
- package/dist/src/{accounts-ECb2xAYn.js → accounts-BjCiVnil.js} +4 -4
- package/dist/src/{accounts-DbmMSaOW.js → accounts-C06-4dXo.js} +5 -5
- package/dist/src/{accounts-5Sf1PCNo.cjs → accounts-C6NiTdum.cjs} +4 -4
- package/dist/src/{agentic-utils-DxzgjGfK.js → agentic-utils-B5IO5YR-.js} +2 -2
- package/dist/src/{agentic-utils-eGLKHNlT.cjs → agentic-utils-BDKz7KHx.cjs} +2 -2
- package/dist/src/{agentic-utils-CLrqlGZc.js → agentic-utils-Bj9P7suD.js} +2 -2
- package/dist/src/{agentic-utils-jiE8RROB.js → agentic-utils-kgc1YTAx.js} +2 -2
- package/dist/src/{agents-CI9ETpr0.js → agents-BMcjQUHA.js} +2 -2
- package/dist/src/{agents-B0gmhYyj.js → agents-CyHaf9xC.js} +2 -2
- package/dist/src/{agents-Dl4uviKE.cjs → agents-DOhrSQhK.cjs} +4 -4
- package/dist/src/{agents-CK9Kxnix.js → agents-DT1nSZix.js} +4 -4
- package/dist/src/{agents-6d6pdEFT.js → agents-DgakfoxG.js} +4 -4
- package/dist/src/{agents-C5zoy2ZS.js → agents-VKHVNG4J.js} +2 -2
- package/dist/src/{agents-Br5HYLBT.cjs → agents-zYAXB2ja.cjs} +2 -2
- package/dist/src/{agents-CvL6W9kz.js → agents-zzIht0lm.js} +4 -4
- package/dist/src/{aimlapi-DGCN4rpi.cjs → aimlapi-Bv6rnE4W.cjs} +6 -6
- package/dist/src/{aimlapi-BonWl7zl.js → aimlapi-C05Ca41Z.js} +6 -6
- package/dist/src/{aimlapi-NJzALFkC.js → aimlapi-CLaCvZn8.js} +6 -6
- package/dist/src/{aimlapi-UwsBeqRG.js → aimlapi-DW7KNdkd.js} +6 -6
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/app/assets/Report-BgwGPDAJ.js +1 -0
- package/dist/src/app/assets/index-CBwcpPdR.js +413 -0
- package/dist/src/app/assets/index-ZYpt1xFX.css +1 -0
- package/dist/src/app/index.html +2 -2
- package/dist/src/{audio-yUZrS0JJ.js → audio-Cd92j4tr.js} +3 -3
- package/dist/src/{audio-9N6nZqw9.js → audio-De3snmla.js} +3 -3
- package/dist/src/{audio-DBqadfGk.js → audio-Dh44iWq7.js} +3 -3
- package/dist/src/{audio-BR4j1oG1.cjs → audio-MqvGQVvP.cjs} +3 -3
- package/dist/src/{authoritativeMarkupInjection-2C63bFKe.cjs → authoritativeMarkupInjection-BAuWkXwn.cjs} +5 -5
- package/dist/src/{authoritativeMarkupInjection-B2MJXBR1.js → authoritativeMarkupInjection-CDCg-jRQ.js} +4 -4
- package/dist/src/{authoritativeMarkupInjection-CE4HOCHa.js → authoritativeMarkupInjection-COd4q9Hp.js} +5 -5
- package/dist/src/{authoritativeMarkupInjection-DrBqZVP1.js → authoritativeMarkupInjection-D5oKM43M.js} +5 -5
- package/dist/src/{base-tmVReihS.js → base-B8G9Ob46.js} +2 -2
- package/dist/src/{base-6Aaed910.js → base-CzDq5YwX.js} +2 -2
- package/dist/src/{base-S8I8vPVY.js → base-DqNtZTrF.js} +2 -2
- package/dist/src/{base-BS60m8JA.cjs → base-OeMKpFIB.cjs} +2 -2
- package/dist/src/{bestOfN-BkH9d3Lr.js → bestOfN-B89i9zc7.js} +6 -6
- package/dist/src/{bestOfN-C1_WFZFb.js → bestOfN-BEfIajMY.js} +5 -5
- package/dist/src/{bestOfN-DfRpoheE.js → bestOfN-Czr-c62W.js} +6 -6
- package/dist/src/{bestOfN-b6uHssUC.cjs → bestOfN-QWGyCB5j.cjs} +6 -6
- package/dist/src/{billing-DwpSQ_4i.js → billing-BhghtFas.js} +2 -2
- package/dist/src/{billing-CAB1s36q.js → billing-BkQJKKdm.js} +2 -2
- package/dist/src/{billing-Dn9Gm2tN.cjs → billing-Co_1rjfG.cjs} +2 -2
- package/dist/src/{billing-DimGp80i.js → billing-MY86Oqwg.js} +2 -2
- package/dist/src/{blobs-7T2OXYkC.js → blobs-B8d9jKvz.js} +2 -2
- package/dist/src/{blobs-CqhgM_fa.js → blobs-BTzPmpq-.js} +2 -2
- package/dist/src/{blobs-DQ6pIlJQ.cjs → blobs-BcpoigIU.cjs} +7 -1
- package/dist/src/{blobs-Dxfq3woN.js → blobs-DQ4bXN5O.js} +2 -2
- package/dist/src/{cache-DgKlV56y.js → cache-BEZBHFxd.js} +2 -2
- package/dist/src/cache-Cqg9f4d4.js +3 -0
- package/dist/src/{cache-CmidsPv2.js → cache-D2MfIrzr.js} +3 -3
- package/dist/src/{cache-B-fzj_aE.cjs → cache-DWEZYdJG.cjs} +2 -2
- package/dist/src/{cache-Z4cklSHj.js → cache-WT_2CYA-.js} +2 -2
- package/dist/src/{chat-uLo5fkVu.js → chat-C9yx5XD4.js} +2 -2
- package/dist/src/{chat-VVJW_GJC.js → chat-CuPbIKVa.js} +2 -2
- package/dist/src/{chat-BWdNGktf.js → chat-DBG4VxM7.js} +7 -7
- package/dist/src/{chat-CrOCT2BA.js → chat-Dwfr4jHi.js} +2 -2
- package/dist/src/{chat-BE0BP7oZ.js → chat-FNWhaysj.js} +7 -7
- package/dist/src/{chat-CvN2w9fY.js → chat-PfM8xgFA.js} +7 -7
- package/dist/src/{chat-CpFzezkO.cjs → chat-XVIowajy.cjs} +7 -7
- package/dist/src/{chat-DAkk46Lf.cjs → chat-sZgq1_-v.cjs} +2 -2
- package/dist/src/{claude-agent-sdk-CocknPbL.js → claude-agent-sdk-B0AZ38ny.js} +4 -4
- package/dist/src/{claude-agent-sdk-BH0L9H8Y.js → claude-agent-sdk-BfYAjuTk.js} +4 -4
- package/dist/src/{claude-agent-sdk-DxyDxejT.cjs → claude-agent-sdk-CklMerFa.cjs} +4 -4
- package/dist/src/{claude-agent-sdk-Bh0MH9Z9.js → claude-agent-sdk-DTFpCefB.js} +4 -4
- package/dist/src/cloud-BNr2N1RY.js +3 -0
- package/dist/src/{cloud-DJB9yPQB.js → cloud-DKKGeJBV.js} +2 -2
- package/dist/src/{cloudflare-ai-DeUFFMJE.cjs → cloudflare-ai-C7pMPgpc.cjs} +4 -4
- package/dist/src/{cloudflare-ai-Bg1wwMId.js → cloudflare-ai-Cqz_3WD2.js} +4 -4
- package/dist/src/{cloudflare-ai-CpbxtQGT.js → cloudflare-ai-CuUCQanF.js} +4 -4
- package/dist/src/{cloudflare-ai-B2Sjijq0.js → cloudflare-ai-lAgV52qE.js} +4 -4
- package/dist/src/{cloudflare-gateway-DKsO0VKU.js → cloudflare-gateway-8T5x83eI.js} +3 -3
- package/dist/src/{cloudflare-gateway-CvQV6nA1.js → cloudflare-gateway-Bq7SdErk.js} +3 -3
- package/dist/src/{cloudflare-gateway-BwdJezUO.js → cloudflare-gateway-moRfeZJJ.js} +3 -3
- package/dist/src/{cloudflare-gateway-cBHiORfX.cjs → cloudflare-gateway-peUrx9oi.cjs} +3 -3
- package/dist/src/{codex-app-server-BHVKRhkY.js → codex-app-server-BvPHEwJg.js} +5 -5
- package/dist/src/{codex-app-server-CojV6u3_.js → codex-app-server-DBTBsZ1t.js} +5 -5
- package/dist/src/{codex-app-server-B471dabg.cjs → codex-app-server-Dwl3iupA.cjs} +5 -5
- package/dist/src/{codex-app-server-DF2PMuc1.js → codex-app-server-t-QoeeGd.js} +5 -5
- package/dist/src/{codex-sdk-Bj4uY6sS.js → codex-sdk-C4FTldKU.js} +4 -4
- package/dist/src/{codex-sdk-D4JF0nj6.js → codex-sdk-C4aieKza.js} +4 -4
- package/dist/src/codex-sdk-CTD1qSKx.js +3 -0
- package/dist/src/{codex-sdk-aezPvTAB.js → codex-sdk-CnSzlhih.js} +4 -4
- package/dist/src/{codex-sdk-C9c-416d.cjs → codex-sdk-bWIQVOBL.cjs} +4 -4
- package/dist/src/{cometapi-CgaDmO4i.js → cometapi-B0mQIIzf.js} +7 -7
- package/dist/src/{cometapi-BlBmHq7-.js → cometapi-CFrYNMs5.js} +7 -7
- package/dist/src/{cometapi-mtyRjerU.js → cometapi-CMnFU1wL.js} +7 -7
- package/dist/src/{cometapi-D8sWSnb1.cjs → cometapi-D2thnPaL.cjs} +7 -7
- package/dist/src/{completion-RkFAOVSF.js → completion-B0yVZF3v.js} +5 -5
- package/dist/src/{completion-CHnFmpnp.js → completion-Dz36rtPd.js} +5 -5
- package/dist/src/{completion-Di0-4tYi.cjs → completion-Ny3XQpqx.cjs} +5 -5
- package/dist/src/{completion-Bd8G9VHW.js → completion-sMpCTaBm.js} +5 -5
- package/dist/src/{crescendo-C8YuBd9K.js → crescendo-BpVWWleP.js} +11 -11
- package/dist/src/{crescendo-TWgp7uGp.cjs → crescendo-CqQhmeC0.cjs} +13 -13
- package/dist/src/{crescendo-BgGio6G0.js → crescendo-JAvyVRKK.js} +13 -13
- package/dist/src/{crescendo-BQ2VI9FD.js → crescendo-RfCMSIM-.js} +13 -13
- package/dist/src/{custom-D0p5pikf.cjs → custom-B_fKUq6j.cjs} +11 -11
- package/dist/src/{custom-DsSELzzx.js → custom-Bm6Tu-ji.js} +11 -11
- package/dist/src/{custom-CFnjgHKp.js → custom-LxkvkOvG.js} +9 -9
- package/dist/src/{custom-CSaH4Qj9.js → custom-jLsK8Wf9.js} +11 -11
- package/dist/src/{docker-ByT3LmHN.js → docker-B60virtZ.js} +5 -5
- package/dist/src/{docker-BRA5ruGU.cjs → docker-D_f3qyDE.cjs} +5 -5
- package/dist/src/{docker-CVY-oMv4.js → docker-DogRc30z.js} +5 -5
- package/dist/src/{docker-DIxhfwlx.js → docker-wwQ1pPGy.js} +5 -5
- package/dist/src/{embedding-BpX-WENP.js → embedding-BMe9ZgQF.js} +5 -5
- package/dist/src/{embedding-B_0mJpXs.cjs → embedding-ClHIOEld.cjs} +5 -5
- package/dist/src/{embedding-LplgjBJ0.js → embedding-Dy2o5RFQ.js} +5 -5
- package/dist/src/{embedding-CCbgRo4z.js → embedding-HXOpA992.js} +5 -5
- package/dist/src/{eval-BXF3bRvV.js → eval-BLgDYWPd.js} +4 -4
- package/dist/src/{eval-BcM9YiOW.js → eval-DbGugzR8.js} +1 -1
- package/dist/src/evalResult-B6Jpy3kJ.js +3 -0
- package/dist/src/{evalResult-C8MROHS8.js → evalResult-BWE17Tqm.js} +3 -3
- package/dist/src/{evalResult-CIxAdUVQ.cjs → evalResult-DDohNAHL.cjs} +3 -3
- package/dist/src/{evalResult-DaACTv0f.js → evalResult-DOh0QQix.js} +3 -3
- package/dist/src/evaluator-CTl-lKuh.js +3 -0
- package/dist/src/{evaluator-C_gCkBe3.js → evaluator-DbOsHSRe.js} +212 -21
- package/dist/src/{evaluatorHelpers-BVvi8tWH.cjs → evaluatorHelpers-CaaC50RB.cjs} +4 -4
- package/dist/src/{evaluatorHelpers-C6-aKnJe.js → evaluatorHelpers-CoLW5rKU.js} +4 -4
- package/dist/src/{evaluatorHelpers-RQo-m90b.js → evaluatorHelpers-DTtYkrGO.js} +4 -4
- package/dist/src/{extractor-B1hELWwJ.js → extractor-BIqe0lMN.js} +70 -12
- package/dist/src/{extractor-_E41W0Fl.cjs → extractor-CUVurbDW.cjs} +71 -12
- package/dist/src/{extractor-DV6WBfAi.js → extractor-DOhjGS0m.js} +70 -12
- package/dist/src/{extractor-ItsKh8lH.js → extractor-h1HS9f6y.js} +70 -12
- package/dist/src/{fetch-BBa1Lxgp.js → fetch-B1Rb0VdL.js} +3 -3
- package/dist/src/{fetch-BtdsABrj.js → fetch-BErWGTUY.js} +2 -2
- package/dist/src/{fetch-CFIU30wy.js → fetch-BNUDixbE.js} +2 -2
- package/dist/src/{fetch-OePjzUmA.cjs → fetch-C7yU9CNr.cjs} +2 -2
- package/dist/src/fetch-DVj4dF4V.js +3 -0
- package/dist/src/{goat-kpeOOE-K.js → goat-BnB1zGir.js} +13 -13
- package/dist/src/{goat-Coh2te0S.cjs → goat-C1RkjWv1.cjs} +13 -13
- package/dist/src/{goat-BCFeW4zk.js → goat-CNpA_tT8.js} +11 -11
- package/dist/src/{goat-Dr2YGfiG.js → goat-ZRARvAD5.js} +13 -13
- package/dist/src/graders-CA3QVnK3.js +3 -0
- package/dist/src/{graders-BrLOEmxX.js → graders-CO5drf0x.js} +17 -17
- package/dist/src/{graders-DEz7EeRy.js → graders-CpUlNVnh.js} +17 -17
- package/dist/src/{graders-CY4Ft8A9.js → graders-Z5qzvpuI.js} +17 -17
- package/dist/src/{graders-CCrX0NG3.cjs → graders-t_K-nZ_X.cjs} +17 -17
- package/dist/src/{hydra-C90CylNi.js → hydra-BMb0WtZA.js} +13 -13
- package/dist/src/{hydra-dOBPmWHt.js → hydra-BXmf4FCK.js} +11 -11
- package/dist/src/{hydra-Cq_3qKz_.js → hydra-C5_Vuh-m.js} +13 -13
- package/dist/src/{hydra-B524i6K6.cjs → hydra-c1_7vPsg.cjs} +13 -13
- package/dist/src/{image-DBnzfeuJ.cjs → image-BhHFD4Vb.cjs} +3 -3
- package/dist/src/{image-CvhTr1GY.cjs → image-CYFea400.cjs} +5 -5
- package/dist/src/{image-CHJ-KjNE.js → image-CgkOODNn.js} +5 -5
- package/dist/src/{image-_-h6GCQ7.js → image-DGQkq3aK.js} +5 -5
- package/dist/src/{image-CkF1ruDX.js → image-DWveOfTz.js} +3 -3
- package/dist/src/{image-BmVZRCkS.js → image-DfF12xzt.js} +5 -5
- package/dist/src/{image-B6P9JAV2.js → image-DkSUFfLd.js} +3 -3
- package/dist/src/{image-CD22vXth.js → image-nYwdqnax.js} +3 -3
- package/dist/src/index.cjs +218 -26
- package/dist/src/index.js +216 -26
- package/dist/src/{indirectWebPwn-BgIfQ2ON.js → indirectWebPwn-BajQ_evT.js} +5 -5
- package/dist/src/{indirectWebPwn-A16xYmav.js → indirectWebPwn-BbFMiv79.js} +4 -4
- package/dist/src/{indirectWebPwn-BRhR4Dk9.js → indirectWebPwn-BnrxhAAL.js} +4 -4
- package/dist/src/{indirectWebPwn-Bfp-t224.cjs → indirectWebPwn-BqOgtzny.cjs} +5 -5
- package/dist/src/{indirectWebPwn-8G6tgDBW.js → indirectWebPwn-C6_BaxjA.js} +5 -5
- package/dist/src/{indirectWebPwn-BWGexuih.js → indirectWebPwn-C779yDi6.js} +4 -4
- package/dist/src/{indirectWebPwn-DcKDbCn_.cjs → indirectWebPwn-CDo9rC06.cjs} +4 -4
- package/dist/src/{indirectWebPwn-CZ2kTy4r.js → indirectWebPwn-k8D0JacN.js} +5 -5
- package/dist/src/{iterative-BIHF31Io.js → iterative-BzKNkXHn.js} +13 -13
- package/dist/src/{iterative-XRfxQ0i8.cjs → iterative-CD3I_Rwq.cjs} +13 -13
- package/dist/src/{iterative-CZPHLUKZ.js → iterative-DL8iDwrE.js} +13 -13
- package/dist/src/{iterative-DZkNlFE-.js → iterative-DyEoFedI.js} +11 -11
- package/dist/src/{iterativeImage-BFRM8Jdx.js → iterativeImage-B7qV6kzP.js} +4 -4
- package/dist/src/{iterativeImage-DJtVKlFX.cjs → iterativeImage-BaOAhF-S.cjs} +5 -5
- package/dist/src/{iterativeImage-7WjhjpHE.js → iterativeImage-D85THuYb.js} +5 -5
- package/dist/src/{iterativeImage-CbRn9_MH.js → iterativeImage-noXhuElt.js} +5 -5
- package/dist/src/{iterativeMeta-2gyieWbU.js → iterativeMeta-BHNJgPy0.js} +12 -12
- package/dist/src/{iterativeMeta-dkFD9UKg.cjs → iterativeMeta-BQrhQ-iJ.cjs} +12 -12
- package/dist/src/{iterativeMeta-Bh2AQq8Y.js → iterativeMeta-CAN36NIN.js} +12 -12
- package/dist/src/{iterativeMeta-CmMnD77T.js → iterativeMeta-CnPYPYH0.js} +10 -10
- package/dist/src/{iterativeTree-DuIk7wjS.js → iterativeTree-B7116aK-.js} +10 -10
- package/dist/src/{iterativeTree-bjH__9en.js → iterativeTree-DdXSpkqE.js} +12 -12
- package/dist/src/{iterativeTree-DSNss1kE.js → iterativeTree-cKlxQWhi.js} +12 -12
- package/dist/src/{iterativeTree-DoE-8nC3.cjs → iterativeTree-u2hKQ51y.cjs} +12 -12
- package/dist/src/{knowledgeBase-kyTJpbr0.js → knowledgeBase-D9xW79dS.js} +4 -4
- package/dist/src/{knowledgeBase-CQasebQt.js → knowledgeBase-DfwVbdwp.js} +4 -4
- package/dist/src/{knowledgeBase-DebHrXhD.cjs → knowledgeBase-DhT8uaMH.cjs} +4 -4
- package/dist/src/{knowledgeBase-mzMh6UZt.js → knowledgeBase-DlH6NRlX.js} +4 -4
- package/dist/src/{litellm-wSD4Q6-H.cjs → litellm-BA2Fti7H.cjs} +4 -4
- package/dist/src/{litellm-BJFH4uKd.js → litellm-CHybAu4l.js} +4 -4
- package/dist/src/{litellm-A2eV_lM0.js → litellm-Cn_zDWeA.js} +4 -4
- package/dist/src/{litellm-CeJEe_jQ.js → litellm-CnqX4jfm.js} +4 -4
- package/dist/src/{luma-ray-DpuaR6Wa.js → luma-ray-C_AWu7K6.js} +4 -4
- package/dist/src/{luma-ray-B0GNCw6S.js → luma-ray-CbFOvJZw.js} +4 -4
- package/dist/src/{luma-ray-qBfU-mGO.cjs → luma-ray-D7hDEZaC.cjs} +4 -4
- package/dist/src/{luma-ray-CM6bvN4t.js → luma-ray-RQAhTNvK.js} +4 -4
- package/dist/src/main.js +27 -27
- package/dist/src/{memoryPoisoning-9mIgiE3F.cjs → memoryPoisoning-A8N_cbrW.cjs} +5 -5
- package/dist/src/{memoryPoisoning-BYBQ1Ns5.js → memoryPoisoning-BGe4fuFU.js} +5 -5
- package/dist/src/{memoryPoisoning-SvtQxFjF.js → memoryPoisoning-DDfIRZnk.js} +5 -5
- package/dist/src/{memoryPoisoning-D4iqi_nT.js → memoryPoisoning-DtJ5vYZW.js} +5 -5
- package/dist/src/{messages-BofXErqC.js → messages-BH83TS-n.js} +7 -7
- package/dist/src/{messages-DxzhBs74.js → messages-aXox3d04.js} +7 -7
- package/dist/src/{messages-CHZtL-k0.cjs → messages-qapmFqOQ.cjs} +7 -7
- package/dist/src/{messages-BKTseD_x.js → messages-yVMPGJ4n.js} +7 -7
- package/dist/src/{mischievousUser-D23wQ8f0.js → mischievousUser-BPDyepmu.js} +5 -5
- package/dist/src/{mischievousUser-DX1gGvUB.js → mischievousUser-D1mbddId.js} +5 -5
- package/dist/src/{mischievousUser-ECTv-u4g.cjs → mischievousUser-DHYVKotH.cjs} +5 -5
- package/dist/src/{mischievousUser-B5oT1xjM.js → mischievousUser-D_8tmPfA.js} +5 -5
- package/dist/src/{modelslab-D5vwtIYR.js → modelslab-BwywPRoU.js} +5 -5
- package/dist/src/{modelslab-DE9CfYYT.js → modelslab-Cc6fn99l.js} +5 -5
- package/dist/src/{modelslab-CVkeR8mC.cjs → modelslab-D2F3FtnI.cjs} +5 -5
- package/dist/src/{modelslab-BU_qCK1m.js → modelslab-D_izTsvD.js} +5 -5
- package/dist/src/{nova-reel-BSM7U8Bp.js → nova-reel-B1Jg1XBk.js} +4 -4
- package/dist/src/{nova-reel-BKAkU37Y.js → nova-reel-CZeHbWUe.js} +4 -4
- package/dist/src/{nova-reel-BvWH15rr.cjs → nova-reel-CcWrhmGJ.cjs} +4 -4
- package/dist/src/{nova-reel-D2tla7dy.js → nova-reel-DFrk1Ey2.js} +4 -4
- package/dist/src/{nova-sonic-DU7_krhB.js → nova-sonic-4wwR0tZJ.js} +2 -2
- package/dist/src/{nova-sonic-C7CNjG9n.cjs → nova-sonic-BqRQ9CWO.cjs} +2 -2
- package/dist/src/{nova-sonic-BQkU8weK.js → nova-sonic-D-IJHou2.js} +2 -2
- package/dist/src/{nova-sonic-B8PB4mU2.js → nova-sonic-DJUXNWUJ.js} +2 -2
- package/dist/src/{openclaw-CLNjF8ox.js → openclaw-5U8yiy9P.js} +5 -5
- package/dist/src/{openclaw-laZmy-8p.cjs → openclaw-B0vjRb3y.cjs} +5 -5
- package/dist/src/{openclaw-Gl2a1gR3.js → openclaw-C8xQtncQ.js} +5 -5
- package/dist/src/{openclaw-D5yEpk1f.js → openclaw-CqZoWsh0.js} +5 -5
- package/dist/src/{opencode-sdk-CGPqE4m0.js → opencode-sdk-B2qz1kCI.js} +2 -2
- package/dist/src/{opencode-sdk-5XXP3gNb.js → opencode-sdk-BGO1zuPF.js} +2 -2
- package/dist/src/{opencode-sdk-C7mIxApB.cjs → opencode-sdk-Bk9G3WGQ.cjs} +2 -2
- package/dist/src/{opencode-sdk-E1fh3vlz.js → opencode-sdk-NhbhYcsR.js} +2 -2
- package/dist/src/{promptfoo-C4g2Lx9t.js → promptfoo-CkDcgxiW.js} +4 -4
- package/dist/src/{promptfoo-DdsPYNm7.js → promptfoo-De6vQq9F.js} +4 -4
- package/dist/src/{promptfoo-x112UyE1.js → promptfoo-DhGR7OQn.js} +4 -4
- package/dist/src/{promptfoo-B9KuhWM0.cjs → promptfoo-Dtw3i6YK.cjs} +4 -4
- package/dist/src/{providers-xrARCHcC.js → providers-BIgLuX4Z.js} +1 -1
- package/dist/src/{providers-BZ-QJYop.cjs → providers-CCRHPNv1.cjs} +50 -49
- package/dist/src/{providers-DdNIebwz.js → providers-am7xTa5w.js} +51 -50
- package/dist/src/{providers-BnjFZtaq.js → providers-gntyGa2T.js} +50 -49
- package/dist/src/{providers-D_OinWvd.js → providers-j-ulWCzy.js} +50 -49
- package/dist/src/quiverai-CHV12wRE.js +324 -0
- package/dist/src/quiverai-CNSyaZhh.js +325 -0
- package/dist/src/quiverai-CNfaxZ3K.cjs +324 -0
- package/dist/src/quiverai-CzROwhTy.js +324 -0
- package/dist/src/{registry-C57trbNM.js → registry-B0pFfEzq.js} +14 -14
- package/dist/src/{registry-Bnb9O892.cjs → registry-BH1mZ37j.cjs} +14 -14
- package/dist/src/{registry-CmhcDYtj.js → registry-Bvfyz9Xt.js} +14 -14
- package/dist/src/{registry-DhaGoOuz.js → registry-Dzut7txg.js} +14 -14
- package/dist/src/{remoteGeneration-BlwssRVS.js → remoteGeneration-CW6zHjQx.js} +4 -4
- package/dist/src/{remoteGeneration--4NPfyL-.js → remoteGeneration-DuxbIn94.js} +4 -4
- package/dist/src/{remoteGeneration-B0K7iojS.cjs → remoteGeneration-oSmtgmBY.cjs} +4 -4
- package/dist/src/{remoteGeneration-DiAuGk9s.js → remoteGeneration-wvnQpzN1.js} +4 -4
- package/dist/src/{responses-C57h4gaW.js → responses-CI7uikKQ.js} +6 -6
- package/dist/src/{responses-B9ygvEC-.cjs → responses-DRLyW4Lj.cjs} +6 -6
- package/dist/src/{responses-CXKL6TPn.js → responses-DxFUQTN2.js} +6 -6
- package/dist/src/{responses-CTfu1ToN.js → responses-JNrMb3zS.js} +6 -6
- package/dist/src/{sagemaker-DHdeSsnJ.js → sagemaker-5AwedTwq.js} +9 -9
- package/dist/src/{sagemaker-CHL8TZFs.js → sagemaker-B5yQiSKh.js} +9 -9
- package/dist/src/{sagemaker-DdVGF_UD.cjs → sagemaker-C3aoiFup.cjs} +9 -9
- package/dist/src/{sagemaker-DUjuHnmj.js → sagemaker-XmAlwYoN.js} +9 -9
- package/dist/src/{scanner-BdoS5ILQ.js → scanner-BdEduFjO.js} +5 -5
- package/dist/src/server/index.js +214 -24
- package/dist/src/{server-B8UpdwtX.cjs → server-B3QXCltR.cjs} +3 -3
- package/dist/src/{server-DaonK4kI.js → server-Ctq0NOMp.js} +3 -3
- package/dist/src/{server-Ds_P02x6.js → server-D0pdY_yM.js} +4 -4
- package/dist/src/{server-CYxCnoVw.js → server-DMCug-jv.js} +4 -4
- package/dist/src/server-Ty5m26Vh.js +3 -0
- package/dist/src/{shared-BavzGCp0.js → shared-C-G3NQ1-.js} +7 -7
- package/dist/src/{shared-D_0FXjLS.js → shared-CnrYC0Dk.js} +7 -7
- package/dist/src/{shared-DY3IzJlT.cjs → shared-D3PxrdDh.cjs} +7 -7
- package/dist/src/{shared-B3IkjkNV.js → shared-DHDR-oS4.js} +7 -7
- package/dist/src/{simulatedUser-CokouWJT.js → simulatedUser-AhNbPm55.js} +5 -5
- package/dist/src/{simulatedUser-DNiOb7YE.js → simulatedUser-DV977ZD0.js} +5 -5
- package/dist/src/{simulatedUser-BJabLGod.js → simulatedUser-Dq8cpKLQ.js} +5 -5
- package/dist/src/{simulatedUser-CPDlAc1R.cjs → simulatedUser-tAjEGnxH.cjs} +5 -5
- package/dist/src/{storage-CH8WC1r3.cjs → storage-C8WR4y77.cjs} +3 -3
- package/dist/src/{storage-D_qaZpfe.js → storage-CK2YYGUg.js} +3 -3
- package/dist/src/{storage-CLyYkZk-.js → storage-Nc_eXGrV.js} +4 -4
- package/dist/src/{storage-3dpIy6f2.js → storage-P9MrA5xv.js} +3 -3
- package/dist/src/{strategies-2Q_uZxBs.cjs → strategies-B6Y6G9UV.cjs} +8 -8
- package/dist/src/{strategies-DVDC487a.js → strategies-CaefFyHy.js} +9 -9
- package/dist/src/{strategies-BuIPOuYL.js → strategies-DE3UN_VH.js} +8 -8
- package/dist/src/telemetry-Bbd-BlA7.js +3 -0
- package/dist/src/{telemetry-Bh3HJU7r.js → telemetry-C7v0I4YX.js} +3 -3
- package/dist/src/{telemetry-B-NTbvDj.js → telemetry-CTYOje0d.js} +3 -3
- package/dist/src/{telemetry-3fTnWcSU.js → telemetry-CvJEPKK6.js} +3 -3
- package/dist/src/{telemetry-Be4rklbJ.cjs → telemetry-hDovhwWp.cjs} +3 -3
- package/dist/src/{tracingOptions-CYCHrrQQ.cjs → tracingOptions-DGai7e5l.cjs} +2 -2
- package/dist/src/{tracingOptions-CLKNUvF4.js → tracingOptions-DL2vOmYS.js} +2 -2
- package/dist/src/{tracingOptions-CZpFCwyr.js → tracingOptions-e_c5TlHv.js} +2 -2
- package/dist/src/{tracingOptions-Bi477wlC.js → tracingOptions-xCBDF3nM.js} +2 -2
- package/dist/src/{transcription-CtLhhmYq.js → transcription-BCasJfFB.js} +4 -4
- package/dist/src/{transcription-BB9i78R3.js → transcription-BLOD9lN7.js} +4 -4
- package/dist/src/{transcription-BRd477OO.js → transcription-BOjp5wlV.js} +4 -4
- package/dist/src/{transcription-O3Nc-kEc.cjs → transcription-G6JwbB2P.cjs} +4 -4
- package/dist/src/{transform-D9nfyIts.cjs → transform-B92noEAU.cjs} +13 -3
- package/dist/src/{transform-DmSzMsCP.js → transform-CD9wrP31.js} +8 -4
- package/dist/src/{transform-CUPglRUI.js → transform-D7-gzzhD.js} +8 -4
- package/dist/src/{transform-CLzSt5fi.js → transform-D8kXC-nB.js} +8 -4
- package/dist/src/{util-CnqjxsAd.js → util-BTAyQmdN.js} +2 -2
- package/dist/src/{util-Bg-aMimr.js → util-BbMJxgff.js} +3 -3
- package/dist/src/{util-mVC_YCag.cjs → util-C62dCLH_.cjs} +3 -3
- package/dist/src/{util-16aq4oHW.js → util-CD4LxH5h.js} +4 -4
- package/dist/src/{util-CRYfgRHi.js → util-CHCKTSi5.js} +3 -3
- package/dist/src/{util-BIYgspDB.js → util-CKQ_tuWG.js} +4 -4
- package/dist/src/{util-Bptzcit_.js → util-CVI1oD-n.js} +3 -3
- package/dist/src/{util-DHG9r5sC.js → util-CcW4TZSn.js} +2 -2
- package/dist/src/{util-DJLHqGS5.js → util-Ci_vm5u1.js} +2 -2
- package/dist/src/{util-D9xyoiGG.js → util-CkLsVF3e.js} +3 -3
- package/dist/src/{util-BsKq95ai.js → util-CqfcdA-f.js} +3 -3
- package/dist/src/{util-tsZfE0-_.js → util-CubC5Tyt.js} +3 -3
- package/dist/src/{util-BHfVEhSs.cjs → util-cAY5C8xI.cjs} +3 -3
- package/dist/src/{util-DEMRW89M2.cjs → util-jOGJmpWE2.cjs} +4 -4
- package/dist/src/{util-CpS555tc2.js → util-s0NU5XTE2.js} +4 -4
- package/dist/src/{util-DJFl6JZF.cjs → util-tFLdovkA.cjs} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/app/assets/Report-Cx3cN9Nt.js +0 -1
- package/dist/src/app/assets/index-D44ihjH5.css +0 -1
- package/dist/src/app/assets/index-DzyLrNWM.js +0 -413
- package/dist/src/cache-D_D5rsiE.js +0 -3
- package/dist/src/cloud-BmVZ8W_3.js +0 -3
- package/dist/src/codex-sdk-BTI9Fvnt.js +0 -3
- package/dist/src/evalResult-uL1BStGk.js +0 -3
- package/dist/src/evaluator-C2YPxWQP.js +0 -3
- package/dist/src/fetch-DAe6a2ih.js +0 -3
- package/dist/src/graders-BZe_w0E4.js +0 -3
- package/dist/src/quiverai-B8a5RqGP.js +0 -213
- package/dist/src/quiverai-BoHFg1Vw.js +0 -214
- package/dist/src/quiverai-DYyzyVTF.cjs +0 -213
- package/dist/src/quiverai-ktAnwSBA.js +0 -213
- package/dist/src/server-DY7p-P4-.js +0 -3
- package/dist/src/telemetry-BOwRcACl.js +0 -3
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { E as getEnvString, o as logger } from "./logger-2ZstxKQf.js";
|
|
2
|
+
import { t as fetchWithProxy, x as getRequestTimeoutMs } from "./fetch-BNUDixbE.js";
|
|
3
|
+
import { r as fetchWithCache } from "./cache-BEZBHFxd.js";
|
|
4
|
+
//#region src/providers/quiverai.ts
|
|
5
|
+
const QUIVERAI_API_BASE_URL = "https://api.quiver.ai/v1";
|
|
6
|
+
const QUIVERAI_DEFAULT_MODEL = "arrow-1.1";
|
|
7
|
+
const SAMPLING_KEYS = [
|
|
8
|
+
"temperature",
|
|
9
|
+
"top_p",
|
|
10
|
+
"presence_penalty",
|
|
11
|
+
"max_output_tokens"
|
|
12
|
+
];
|
|
13
|
+
const GENERATION_KEYS = ["instructions", "n"];
|
|
14
|
+
const VECTORIZE_KEYS = ["auto_crop", "target_size"];
|
|
15
|
+
const NON_RETRYABLE_429_CODES = new Set(["weekly_limit_exceeded"]);
|
|
16
|
+
const MAX_RETRY_AFTER_MS = 6e4;
|
|
17
|
+
const MAX_RETRIES = 3;
|
|
18
|
+
/**
|
|
19
|
+
* QuiverAI provider for SVG vector graphics.
|
|
20
|
+
*
|
|
21
|
+
* Supports two endpoints:
|
|
22
|
+
* - Text → SVG via `POST /v1/svgs/generations` (mode: 'generation', the default).
|
|
23
|
+
* - Image → SVG via `POST /v1/svgs/vectorizations` (mode: 'vectorize').
|
|
24
|
+
*
|
|
25
|
+
* Streams by default for faster time-to-first-token; set `stream: false`
|
|
26
|
+
* to enable on-disk response caching.
|
|
27
|
+
*/
|
|
28
|
+
var QuiverAiProvider = class {
|
|
29
|
+
config;
|
|
30
|
+
modelName;
|
|
31
|
+
mode;
|
|
32
|
+
apiKey;
|
|
33
|
+
apiBaseUrl;
|
|
34
|
+
constructor(modelName, options = {}) {
|
|
35
|
+
const { config, id, env, mode = "generation" } = options;
|
|
36
|
+
this.modelName = modelName;
|
|
37
|
+
this.mode = mode;
|
|
38
|
+
this.apiKey = config?.apiKey || env?.QUIVERAI_API_KEY || getEnvString("QUIVERAI_API_KEY") || "";
|
|
39
|
+
this.apiBaseUrl = config?.apiBaseUrl || QUIVERAI_API_BASE_URL;
|
|
40
|
+
if (id) this.id = () => id;
|
|
41
|
+
this.config = config || {};
|
|
42
|
+
}
|
|
43
|
+
id() {
|
|
44
|
+
return this.mode === "vectorize" ? `quiverai:vectorize:${this.modelName}` : `quiverai:${this.modelName}`;
|
|
45
|
+
}
|
|
46
|
+
toString() {
|
|
47
|
+
return `[QuiverAI ${this.mode === "vectorize" ? "Vectorize " : ""}Provider ${this.modelName}]`;
|
|
48
|
+
}
|
|
49
|
+
getApiUrl() {
|
|
50
|
+
const path = this.mode === "vectorize" ? "/svgs/vectorizations" : "/svgs/generations";
|
|
51
|
+
return `${this.apiBaseUrl}${path}`;
|
|
52
|
+
}
|
|
53
|
+
getHeaders() {
|
|
54
|
+
return {
|
|
55
|
+
"Content-Type": "application/json",
|
|
56
|
+
Authorization: `Bearer ${this.apiKey}`
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async callApi(prompt, context) {
|
|
60
|
+
if (!this.apiKey) return { error: "QuiverAI API key is not set. Set the QUIVERAI_API_KEY environment variable or add apiKey to the provider config. Get a key at https://app.quiver.ai/settings/api-keys" };
|
|
61
|
+
const config = {
|
|
62
|
+
...this.config,
|
|
63
|
+
...context?.prompt?.config
|
|
64
|
+
};
|
|
65
|
+
const useStream = config.stream !== false;
|
|
66
|
+
let body;
|
|
67
|
+
try {
|
|
68
|
+
body = this.buildRequestBody(prompt, config, useStream);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return { error: `${error.message}` };
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
if (useStream) return await this.callApiStreaming(body);
|
|
74
|
+
return await this.callApiNonStreaming(body, context);
|
|
75
|
+
} catch (error) {
|
|
76
|
+
logger.error(`QuiverAI API call error: ${error}`);
|
|
77
|
+
return { error: `QuiverAI API call error: ${error}` };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
buildRequestBody(prompt, config, useStream) {
|
|
81
|
+
const sampling = pickDefined(config, [...SAMPLING_KEYS]);
|
|
82
|
+
if (this.mode === "vectorize") {
|
|
83
|
+
const image = getConfiguredVectorizeImage(config.image) ?? parsePromptAsImage(prompt);
|
|
84
|
+
return {
|
|
85
|
+
model: this.modelName,
|
|
86
|
+
image,
|
|
87
|
+
stream: useStream,
|
|
88
|
+
...sampling,
|
|
89
|
+
...pickDefined(config, [...VECTORIZE_KEYS])
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
model: this.modelName,
|
|
94
|
+
prompt,
|
|
95
|
+
stream: useStream,
|
|
96
|
+
...sampling,
|
|
97
|
+
...pickDefined(config, [...GENERATION_KEYS]),
|
|
98
|
+
...config.references && { references: normalizeReferences(config.references) }
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async callApiNonStreaming(body, context) {
|
|
102
|
+
const { data, cached, status, statusText } = await fetchWithCache(this.getApiUrl(), {
|
|
103
|
+
method: "POST",
|
|
104
|
+
headers: this.getHeaders(),
|
|
105
|
+
body: JSON.stringify(body)
|
|
106
|
+
}, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug);
|
|
107
|
+
if (status < 200 || status >= 300) {
|
|
108
|
+
if (data && typeof data === "object" && "code" in data && "message" in data) return { error: formatError(data) };
|
|
109
|
+
return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
|
|
110
|
+
}
|
|
111
|
+
const response = data;
|
|
112
|
+
return {
|
|
113
|
+
cached,
|
|
114
|
+
output: extractSvgOutput(response),
|
|
115
|
+
tokenUsage: mapTokenUsage(response.usage, cached ? 0 : 1),
|
|
116
|
+
metadata: buildMetadata({
|
|
117
|
+
responseId: response.id,
|
|
118
|
+
credits: response.credits
|
|
119
|
+
})
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async callApiStreaming(body) {
|
|
123
|
+
let lastResp;
|
|
124
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
125
|
+
const controller = new AbortController();
|
|
126
|
+
const timeout = setTimeout(() => controller.abort(), getRequestTimeoutMs());
|
|
127
|
+
let reader;
|
|
128
|
+
try {
|
|
129
|
+
lastResp = await fetchWithProxy(this.getApiUrl(), {
|
|
130
|
+
method: "POST",
|
|
131
|
+
headers: this.getHeaders(),
|
|
132
|
+
body: JSON.stringify(body),
|
|
133
|
+
signal: controller.signal
|
|
134
|
+
});
|
|
135
|
+
if (lastResp.status === 429 && attempt < MAX_RETRIES && !await isNonRetryable429(lastResp)) {
|
|
136
|
+
const waitMs = getRetryAfterMs(lastResp.headers, attempt);
|
|
137
|
+
logger.debug(`QuiverAI: rate limited, retry ${attempt + 1}/${MAX_RETRIES} in ${waitMs}ms`);
|
|
138
|
+
await lastResp.body?.cancel();
|
|
139
|
+
await new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (!lastResp.ok) return await handleStreamingError(lastResp);
|
|
143
|
+
if (!lastResp.body) return { error: "QuiverAI streaming response has no body" };
|
|
144
|
+
reader = lastResp.body.getReader();
|
|
145
|
+
return await readSSEStream(reader);
|
|
146
|
+
} finally {
|
|
147
|
+
reader?.cancel().catch(() => {});
|
|
148
|
+
clearTimeout(timeout);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return handleStreamingError(lastResp);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
async function isNonRetryable429(resp) {
|
|
155
|
+
try {
|
|
156
|
+
const data = await resp.clone().json();
|
|
157
|
+
return typeof data?.code === "string" && NON_RETRYABLE_429_CODES.has(data.code);
|
|
158
|
+
} catch {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
async function handleStreamingError(resp) {
|
|
163
|
+
try {
|
|
164
|
+
return { error: formatError(await resp.json()) };
|
|
165
|
+
} catch {
|
|
166
|
+
return { error: `QuiverAI API error: HTTP ${resp.status}` };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
async function readSSEStream(reader) {
|
|
170
|
+
const decoder = new TextDecoder();
|
|
171
|
+
let buffer = "";
|
|
172
|
+
const outputs = /* @__PURE__ */ new Map();
|
|
173
|
+
let totalCredits;
|
|
174
|
+
let lastUsage;
|
|
175
|
+
let responseId;
|
|
176
|
+
const ingest = (line) => {
|
|
177
|
+
const data = parseSSEData(line);
|
|
178
|
+
if (!data) return;
|
|
179
|
+
if (data.type === "content" && typeof data.svg === "string") {
|
|
180
|
+
const key = data.id ?? `${data.index ?? outputs.size}`;
|
|
181
|
+
outputs.set(key, {
|
|
182
|
+
index: data.index ?? outputs.size,
|
|
183
|
+
svg: data.svg,
|
|
184
|
+
credits: data.credits
|
|
185
|
+
});
|
|
186
|
+
if (typeof data.credits === "number") totalCredits = (totalCredits ?? 0) + data.credits;
|
|
187
|
+
if (!responseId && data.id) responseId = data.id;
|
|
188
|
+
}
|
|
189
|
+
if (data.usage) lastUsage = data.usage;
|
|
190
|
+
};
|
|
191
|
+
while (true) {
|
|
192
|
+
const { done, value } = await reader.read();
|
|
193
|
+
if (done) break;
|
|
194
|
+
buffer += decoder.decode(value, { stream: true });
|
|
195
|
+
const lines = buffer.split("\n");
|
|
196
|
+
buffer = lines.pop() || "";
|
|
197
|
+
for (const line of lines) ingest(line);
|
|
198
|
+
}
|
|
199
|
+
if (buffer.trim()) ingest(buffer);
|
|
200
|
+
if (outputs.size === 0) return { error: "QuiverAI streaming response contained no SVG content" };
|
|
201
|
+
const ordered = [...outputs.values()].sort((a, b) => a.index - b.index).map((o) => o.svg);
|
|
202
|
+
return {
|
|
203
|
+
output: ordered.length === 1 ? ordered[0] : ordered.join("\n\n"),
|
|
204
|
+
tokenUsage: mapTokenUsage(lastUsage, 1),
|
|
205
|
+
metadata: buildMetadata({
|
|
206
|
+
responseId,
|
|
207
|
+
credits: totalCredits
|
|
208
|
+
})
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function pickDefined(obj, keys) {
|
|
212
|
+
return Object.fromEntries(keys.filter((k) => obj[k] != null).map((k) => [k, obj[k]]));
|
|
213
|
+
}
|
|
214
|
+
function formatError(err) {
|
|
215
|
+
const base = `${err.message} [${err.code}]`;
|
|
216
|
+
return err.request_id ? `${base} (request_id: ${err.request_id})` : base;
|
|
217
|
+
}
|
|
218
|
+
function mapTokenUsage(usage, numRequests) {
|
|
219
|
+
return {
|
|
220
|
+
total: usage?.total_tokens || 0,
|
|
221
|
+
prompt: usage?.input_tokens || 0,
|
|
222
|
+
completion: usage?.output_tokens || 0,
|
|
223
|
+
numRequests
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function buildMetadata(parts) {
|
|
227
|
+
const meta = {};
|
|
228
|
+
if (parts.responseId) meta.responseId = parts.responseId;
|
|
229
|
+
if (typeof parts.credits === "number") meta.credits = parts.credits;
|
|
230
|
+
return Object.keys(meta).length ? meta : void 0;
|
|
231
|
+
}
|
|
232
|
+
function getRetryAfterMs(headers, attempt) {
|
|
233
|
+
const retryAfter = headers.get("retry-after");
|
|
234
|
+
if (retryAfter) {
|
|
235
|
+
const seconds = Number(retryAfter);
|
|
236
|
+
if (!Number.isNaN(seconds)) return Math.min(seconds * 1e3, MAX_RETRY_AFTER_MS);
|
|
237
|
+
const date = new Date(retryAfter);
|
|
238
|
+
if (!Number.isNaN(date.getTime())) return Math.min(Math.max(0, date.getTime() - Date.now()), MAX_RETRY_AFTER_MS);
|
|
239
|
+
}
|
|
240
|
+
return Math.pow(2, attempt) * 1e3;
|
|
241
|
+
}
|
|
242
|
+
function parseSSEData(line) {
|
|
243
|
+
if (!line.startsWith("data:")) return null;
|
|
244
|
+
const payload = line.slice(line.startsWith("data: ") ? 6 : 5).trim();
|
|
245
|
+
if (!payload || payload === "[DONE]") return null;
|
|
246
|
+
try {
|
|
247
|
+
return JSON.parse(payload);
|
|
248
|
+
} catch {
|
|
249
|
+
logger.debug(`QuiverAI: failed to parse SSE data: ${payload}`);
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
function extractSvgOutput(response) {
|
|
254
|
+
if (Array.isArray(response.data)) {
|
|
255
|
+
const svgs = response.data.map((item) => item.svg).filter(Boolean);
|
|
256
|
+
if (svgs.length === 1) return svgs[0];
|
|
257
|
+
if (svgs.length > 1) return svgs.join("\n\n");
|
|
258
|
+
}
|
|
259
|
+
return JSON.stringify(response);
|
|
260
|
+
}
|
|
261
|
+
function normalizeReferences(refs) {
|
|
262
|
+
return refs.map((ref) => typeof ref === "string" ? { url: ref } : ref);
|
|
263
|
+
}
|
|
264
|
+
const BASE64_DATA_URL_PATTERN = /^data:image\/[a-zA-Z0-9.+-]+(?:;[^,;]+)*;base64,(.+)$/i;
|
|
265
|
+
function normalizeImageReference(value) {
|
|
266
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
267
|
+
const candidate = value;
|
|
268
|
+
if (typeof candidate.url === "string" && candidate.url.trim()) return { url: candidate.url };
|
|
269
|
+
if (typeof candidate.base64 === "string" && candidate.base64.trim()) return { base64: candidate.base64 };
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
function getConfiguredVectorizeImage(image) {
|
|
273
|
+
if (image === void 0) return;
|
|
274
|
+
const normalized = normalizeImageReference(image);
|
|
275
|
+
if (!normalized) throw new Error("QuiverAI vectorize `image` must contain a non-empty `url` or `base64` string.");
|
|
276
|
+
return normalized;
|
|
277
|
+
}
|
|
278
|
+
function parsePromptAsImage(prompt) {
|
|
279
|
+
const trimmed = prompt.trim();
|
|
280
|
+
if (!trimmed) throw new Error("QuiverAI vectorize requires an image: pass a URL or base64 string as the prompt, or set `image` in the provider config.");
|
|
281
|
+
const dataUrlMatch = BASE64_DATA_URL_PATTERN.exec(trimmed);
|
|
282
|
+
if (dataUrlMatch) return { base64: dataUrlMatch[1] };
|
|
283
|
+
if (/^data:image\//i.test(trimmed)) throw new Error("QuiverAI vectorize data URLs must be base64-encoded.");
|
|
284
|
+
if (/^https?:\/\//i.test(trimmed)) return { url: trimmed };
|
|
285
|
+
if (trimmed.startsWith("{")) {
|
|
286
|
+
let parsed;
|
|
287
|
+
try {
|
|
288
|
+
parsed = JSON.parse(trimmed);
|
|
289
|
+
} catch {
|
|
290
|
+
return { base64: trimmed };
|
|
291
|
+
}
|
|
292
|
+
if (parsed && typeof parsed === "object") {
|
|
293
|
+
const image = normalizeImageReference(parsed);
|
|
294
|
+
if (image) return image;
|
|
295
|
+
if ("image" in parsed) {
|
|
296
|
+
const nestedImage = normalizeImageReference(parsed.image);
|
|
297
|
+
if (nestedImage) return nestedImage;
|
|
298
|
+
throw new Error("QuiverAI vectorize nested `image` must contain a non-empty `url` or `base64` string.");
|
|
299
|
+
}
|
|
300
|
+
throw new Error("QuiverAI vectorize JSON image input must contain a non-empty `url` or `base64` string.");
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return { base64: trimmed };
|
|
304
|
+
}
|
|
305
|
+
function createQuiverAiProvider(providerPath, providerOptions = {}, env) {
|
|
306
|
+
const splits = providerPath.split(":");
|
|
307
|
+
const modelType = splits[1];
|
|
308
|
+
let mode = "generation";
|
|
309
|
+
let modelStart = 1;
|
|
310
|
+
if (modelType === "vectorize") {
|
|
311
|
+
mode = "vectorize";
|
|
312
|
+
modelStart = 2;
|
|
313
|
+
} else if (modelType === "generate" || modelType === "chat") modelStart = 2;
|
|
314
|
+
return new QuiverAiProvider(splits.slice(modelStart).join(":") || QUIVERAI_DEFAULT_MODEL, {
|
|
315
|
+
config: providerOptions.config,
|
|
316
|
+
id: providerOptions.id,
|
|
317
|
+
env: providerOptions.env ?? env,
|
|
318
|
+
mode
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
//#endregion
|
|
322
|
+
export { createQuiverAiProvider };
|
|
323
|
+
|
|
324
|
+
//# sourceMappingURL=quiverai-CzROwhTy.js.map
|
|
@@ -29,91 +29,91 @@ const redteamProviderFactories = [
|
|
|
29
29
|
{
|
|
30
30
|
test: (providerPath) => providerPath === "agentic:memory-poisoning",
|
|
31
31
|
create: async (_providerPath, providerOptions) => {
|
|
32
|
-
const { MemoryPoisoningProvider } = await import("./memoryPoisoning-
|
|
32
|
+
const { MemoryPoisoningProvider } = await import("./memoryPoisoning-DtJ5vYZW.js");
|
|
33
33
|
return new MemoryPoisoningProvider(providerOptions);
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
test: (providerPath) => providerPath === "promptfoo:redteam:best-of-n",
|
|
38
38
|
create: async (_providerPath, providerOptions) => {
|
|
39
|
-
const { default: RedteamBestOfNProvider } = await import("./bestOfN-
|
|
39
|
+
const { default: RedteamBestOfNProvider } = await import("./bestOfN-BEfIajMY.js");
|
|
40
40
|
return new RedteamBestOfNProvider(providerOptions.config);
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
test: (providerPath) => providerPath === "promptfoo:redteam:crescendo",
|
|
45
45
|
create: async (_providerPath, providerOptions) => {
|
|
46
|
-
const { CrescendoProvider } = await import("./crescendo-
|
|
46
|
+
const { CrescendoProvider } = await import("./crescendo-BpVWWleP.js");
|
|
47
47
|
return new CrescendoProvider(providerOptions.config);
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
test: (providerPath) => providerPath === "promptfoo:redteam:custom" || providerPath.startsWith("promptfoo:redteam:custom:"),
|
|
52
52
|
create: async (_providerPath, providerOptions) => {
|
|
53
|
-
const { default: RedteamCustomProvider } = await import("./custom-
|
|
53
|
+
const { default: RedteamCustomProvider } = await import("./custom-LxkvkOvG.js");
|
|
54
54
|
return new RedteamCustomProvider(providerOptions.config);
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
test: (providerPath) => providerPath === "promptfoo:redteam:goat",
|
|
59
59
|
create: async (_providerPath, providerOptions) => {
|
|
60
|
-
const { default: RedteamGoatProvider } = await import("./goat-
|
|
60
|
+
const { default: RedteamGoatProvider } = await import("./goat-CNpA_tT8.js");
|
|
61
61
|
return new RedteamGoatProvider(providerOptions.config);
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
test: (providerPath) => providerPath === "promptfoo:redteam:authoritative-markup-injection",
|
|
66
66
|
create: async (_providerPath, providerOptions) => {
|
|
67
|
-
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await import("./authoritativeMarkupInjection-
|
|
67
|
+
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await import("./authoritativeMarkupInjection-CDCg-jRQ.js");
|
|
68
68
|
return new RedteamAuthoritativeMarkupInjectionProvider(providerOptions.config);
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
test: (providerPath) => providerPath === "promptfoo:redteam:mischievous-user",
|
|
73
73
|
create: async (_providerPath, providerOptions) => {
|
|
74
|
-
const { default: RedteamMischievousUserProvider } = await import("./mischievousUser-
|
|
74
|
+
const { default: RedteamMischievousUserProvider } = await import("./mischievousUser-BPDyepmu.js");
|
|
75
75
|
return new RedteamMischievousUserProvider(providerOptions.config);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative",
|
|
80
80
|
create: async (_providerPath, providerOptions) => {
|
|
81
|
-
const { default: RedteamIterativeProvider } = await import("./iterative-
|
|
81
|
+
const { default: RedteamIterativeProvider } = await import("./iterative-DyEoFedI.js");
|
|
82
82
|
return new RedteamIterativeProvider(providerOptions.config);
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:image",
|
|
87
87
|
create: async (_providerPath, providerOptions) => {
|
|
88
|
-
const { default: RedteamImageIterativeProvider } = await import("./iterativeImage-
|
|
88
|
+
const { default: RedteamImageIterativeProvider } = await import("./iterativeImage-B7qV6kzP.js");
|
|
89
89
|
return new RedteamImageIterativeProvider(providerOptions.config);
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:tree",
|
|
94
94
|
create: async (_providerPath, providerOptions) => {
|
|
95
|
-
const { default: RedteamIterativeTreeProvider } = await import("./iterativeTree-
|
|
95
|
+
const { default: RedteamIterativeTreeProvider } = await import("./iterativeTree-B7116aK-.js");
|
|
96
96
|
return new RedteamIterativeTreeProvider(providerOptions.config);
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:meta",
|
|
101
101
|
create: async (_providerPath, providerOptions) => {
|
|
102
|
-
const { default: RedteamIterativeMetaProvider } = await import("./iterativeMeta-
|
|
102
|
+
const { default: RedteamIterativeMetaProvider } = await import("./iterativeMeta-CnPYPYH0.js");
|
|
103
103
|
return new RedteamIterativeMetaProvider(providerOptions.config);
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
test: (providerPath) => providerPath === "promptfoo:redteam:hydra",
|
|
108
108
|
create: async (_providerPath, providerOptions) => {
|
|
109
|
-
const { HydraProvider } = await import("./hydra-
|
|
109
|
+
const { HydraProvider } = await import("./hydra-BXmf4FCK.js");
|
|
110
110
|
return new HydraProvider(providerOptions.config);
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
test: (providerPath) => providerPath === "promptfoo:redteam:indirect-web-pwn",
|
|
115
115
|
create: async (_providerPath, providerOptions) => {
|
|
116
|
-
const { default: RedteamIndirectWebPwnProvider } = await import("./indirectWebPwn-
|
|
116
|
+
const { default: RedteamIndirectWebPwnProvider } = await import("./indirectWebPwn-C6_BaxjA.js");
|
|
117
117
|
return new RedteamIndirectWebPwnProvider(providerOptions.config);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -121,4 +121,4 @@ const redteamProviderFactories = [
|
|
|
121
121
|
//#endregion
|
|
122
122
|
export { redteamProviderFactories };
|
|
123
123
|
|
|
124
|
-
//# sourceMappingURL=registry-
|
|
124
|
+
//# sourceMappingURL=registry-B0pFfEzq.js.map
|
|
@@ -29,91 +29,91 @@ const redteamProviderFactories = [
|
|
|
29
29
|
{
|
|
30
30
|
test: (providerPath) => providerPath === "agentic:memory-poisoning",
|
|
31
31
|
create: async (_providerPath, providerOptions) => {
|
|
32
|
-
const { MemoryPoisoningProvider } = await Promise.resolve().then(() => require("./memoryPoisoning-
|
|
32
|
+
const { MemoryPoisoningProvider } = await Promise.resolve().then(() => require("./memoryPoisoning-A8N_cbrW.cjs"));
|
|
33
33
|
return new MemoryPoisoningProvider(providerOptions);
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
test: (providerPath) => providerPath === "promptfoo:redteam:best-of-n",
|
|
38
38
|
create: async (_providerPath, providerOptions) => {
|
|
39
|
-
const { default: RedteamBestOfNProvider } = await Promise.resolve().then(() => require("./bestOfN-
|
|
39
|
+
const { default: RedteamBestOfNProvider } = await Promise.resolve().then(() => require("./bestOfN-QWGyCB5j.cjs"));
|
|
40
40
|
return new RedteamBestOfNProvider(providerOptions.config);
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
test: (providerPath) => providerPath === "promptfoo:redteam:crescendo",
|
|
45
45
|
create: async (_providerPath, providerOptions) => {
|
|
46
|
-
const { CrescendoProvider } = await Promise.resolve().then(() => require("./crescendo-
|
|
46
|
+
const { CrescendoProvider } = await Promise.resolve().then(() => require("./crescendo-CqQhmeC0.cjs"));
|
|
47
47
|
return new CrescendoProvider(providerOptions.config);
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
test: (providerPath) => providerPath === "promptfoo:redteam:custom" || providerPath.startsWith("promptfoo:redteam:custom:"),
|
|
52
52
|
create: async (_providerPath, providerOptions) => {
|
|
53
|
-
const { default: RedteamCustomProvider } = await Promise.resolve().then(() => require("./custom-
|
|
53
|
+
const { default: RedteamCustomProvider } = await Promise.resolve().then(() => require("./custom-B_fKUq6j.cjs"));
|
|
54
54
|
return new RedteamCustomProvider(providerOptions.config);
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
test: (providerPath) => providerPath === "promptfoo:redteam:goat",
|
|
59
59
|
create: async (_providerPath, providerOptions) => {
|
|
60
|
-
const { default: RedteamGoatProvider } = await Promise.resolve().then(() => require("./goat-
|
|
60
|
+
const { default: RedteamGoatProvider } = await Promise.resolve().then(() => require("./goat-C1RkjWv1.cjs"));
|
|
61
61
|
return new RedteamGoatProvider(providerOptions.config);
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
test: (providerPath) => providerPath === "promptfoo:redteam:authoritative-markup-injection",
|
|
66
66
|
create: async (_providerPath, providerOptions) => {
|
|
67
|
-
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await Promise.resolve().then(() => require("./authoritativeMarkupInjection-
|
|
67
|
+
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await Promise.resolve().then(() => require("./authoritativeMarkupInjection-BAuWkXwn.cjs"));
|
|
68
68
|
return new RedteamAuthoritativeMarkupInjectionProvider(providerOptions.config);
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
test: (providerPath) => providerPath === "promptfoo:redteam:mischievous-user",
|
|
73
73
|
create: async (_providerPath, providerOptions) => {
|
|
74
|
-
const { default: RedteamMischievousUserProvider } = await Promise.resolve().then(() => require("./mischievousUser-
|
|
74
|
+
const { default: RedteamMischievousUserProvider } = await Promise.resolve().then(() => require("./mischievousUser-DHYVKotH.cjs"));
|
|
75
75
|
return new RedteamMischievousUserProvider(providerOptions.config);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative",
|
|
80
80
|
create: async (_providerPath, providerOptions) => {
|
|
81
|
-
const { default: RedteamIterativeProvider } = await Promise.resolve().then(() => require("./iterative-
|
|
81
|
+
const { default: RedteamIterativeProvider } = await Promise.resolve().then(() => require("./iterative-CD3I_Rwq.cjs"));
|
|
82
82
|
return new RedteamIterativeProvider(providerOptions.config);
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:image",
|
|
87
87
|
create: async (_providerPath, providerOptions) => {
|
|
88
|
-
const { default: RedteamImageIterativeProvider } = await Promise.resolve().then(() => require("./iterativeImage-
|
|
88
|
+
const { default: RedteamImageIterativeProvider } = await Promise.resolve().then(() => require("./iterativeImage-BaOAhF-S.cjs"));
|
|
89
89
|
return new RedteamImageIterativeProvider(providerOptions.config);
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:tree",
|
|
94
94
|
create: async (_providerPath, providerOptions) => {
|
|
95
|
-
const { default: RedteamIterativeTreeProvider } = await Promise.resolve().then(() => require("./iterativeTree-
|
|
95
|
+
const { default: RedteamIterativeTreeProvider } = await Promise.resolve().then(() => require("./iterativeTree-u2hKQ51y.cjs"));
|
|
96
96
|
return new RedteamIterativeTreeProvider(providerOptions.config);
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:meta",
|
|
101
101
|
create: async (_providerPath, providerOptions) => {
|
|
102
|
-
const { default: RedteamIterativeMetaProvider } = await Promise.resolve().then(() => require("./iterativeMeta-
|
|
102
|
+
const { default: RedteamIterativeMetaProvider } = await Promise.resolve().then(() => require("./iterativeMeta-BQrhQ-iJ.cjs"));
|
|
103
103
|
return new RedteamIterativeMetaProvider(providerOptions.config);
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
test: (providerPath) => providerPath === "promptfoo:redteam:hydra",
|
|
108
108
|
create: async (_providerPath, providerOptions) => {
|
|
109
|
-
const { HydraProvider } = await Promise.resolve().then(() => require("./hydra-
|
|
109
|
+
const { HydraProvider } = await Promise.resolve().then(() => require("./hydra-c1_7vPsg.cjs"));
|
|
110
110
|
return new HydraProvider(providerOptions.config);
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
test: (providerPath) => providerPath === "promptfoo:redteam:indirect-web-pwn",
|
|
115
115
|
create: async (_providerPath, providerOptions) => {
|
|
116
|
-
const { default: RedteamIndirectWebPwnProvider } = await Promise.resolve().then(() => require("./indirectWebPwn-
|
|
116
|
+
const { default: RedteamIndirectWebPwnProvider } = await Promise.resolve().then(() => require("./indirectWebPwn-BqOgtzny.cjs"));
|
|
117
117
|
return new RedteamIndirectWebPwnProvider(providerOptions.config);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -121,4 +121,4 @@ const redteamProviderFactories = [
|
|
|
121
121
|
//#endregion
|
|
122
122
|
exports.redteamProviderFactories = redteamProviderFactories;
|
|
123
123
|
|
|
124
|
-
//# sourceMappingURL=registry-
|
|
124
|
+
//# sourceMappingURL=registry-BH1mZ37j.cjs.map
|
|
@@ -29,91 +29,91 @@ const redteamProviderFactories = [
|
|
|
29
29
|
{
|
|
30
30
|
test: (providerPath) => providerPath === "agentic:memory-poisoning",
|
|
31
31
|
create: async (_providerPath, providerOptions) => {
|
|
32
|
-
const { MemoryPoisoningProvider } = await import("./memoryPoisoning-
|
|
32
|
+
const { MemoryPoisoningProvider } = await import("./memoryPoisoning-BGe4fuFU.js");
|
|
33
33
|
return new MemoryPoisoningProvider(providerOptions);
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
test: (providerPath) => providerPath === "promptfoo:redteam:best-of-n",
|
|
38
38
|
create: async (_providerPath, providerOptions) => {
|
|
39
|
-
const { default: RedteamBestOfNProvider } = await import("./bestOfN-
|
|
39
|
+
const { default: RedteamBestOfNProvider } = await import("./bestOfN-B89i9zc7.js");
|
|
40
40
|
return new RedteamBestOfNProvider(providerOptions.config);
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
test: (providerPath) => providerPath === "promptfoo:redteam:crescendo",
|
|
45
45
|
create: async (_providerPath, providerOptions) => {
|
|
46
|
-
const { CrescendoProvider } = await import("./crescendo-
|
|
46
|
+
const { CrescendoProvider } = await import("./crescendo-JAvyVRKK.js");
|
|
47
47
|
return new CrescendoProvider(providerOptions.config);
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
test: (providerPath) => providerPath === "promptfoo:redteam:custom" || providerPath.startsWith("promptfoo:redteam:custom:"),
|
|
52
52
|
create: async (_providerPath, providerOptions) => {
|
|
53
|
-
const { default: RedteamCustomProvider } = await import("./custom-
|
|
53
|
+
const { default: RedteamCustomProvider } = await import("./custom-Bm6Tu-ji.js");
|
|
54
54
|
return new RedteamCustomProvider(providerOptions.config);
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
test: (providerPath) => providerPath === "promptfoo:redteam:goat",
|
|
59
59
|
create: async (_providerPath, providerOptions) => {
|
|
60
|
-
const { default: RedteamGoatProvider } = await import("./goat-
|
|
60
|
+
const { default: RedteamGoatProvider } = await import("./goat-BnB1zGir.js");
|
|
61
61
|
return new RedteamGoatProvider(providerOptions.config);
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
test: (providerPath) => providerPath === "promptfoo:redteam:authoritative-markup-injection",
|
|
66
66
|
create: async (_providerPath, providerOptions) => {
|
|
67
|
-
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await import("./authoritativeMarkupInjection-
|
|
67
|
+
const { default: RedteamAuthoritativeMarkupInjectionProvider } = await import("./authoritativeMarkupInjection-COd4q9Hp.js");
|
|
68
68
|
return new RedteamAuthoritativeMarkupInjectionProvider(providerOptions.config);
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
test: (providerPath) => providerPath === "promptfoo:redteam:mischievous-user",
|
|
73
73
|
create: async (_providerPath, providerOptions) => {
|
|
74
|
-
const { default: RedteamMischievousUserProvider } = await import("./mischievousUser-
|
|
74
|
+
const { default: RedteamMischievousUserProvider } = await import("./mischievousUser-D1mbddId.js");
|
|
75
75
|
return new RedteamMischievousUserProvider(providerOptions.config);
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative",
|
|
80
80
|
create: async (_providerPath, providerOptions) => {
|
|
81
|
-
const { default: RedteamIterativeProvider } = await import("./iterative-
|
|
81
|
+
const { default: RedteamIterativeProvider } = await import("./iterative-BzKNkXHn.js");
|
|
82
82
|
return new RedteamIterativeProvider(providerOptions.config);
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:image",
|
|
87
87
|
create: async (_providerPath, providerOptions) => {
|
|
88
|
-
const { default: RedteamImageIterativeProvider } = await import("./iterativeImage-
|
|
88
|
+
const { default: RedteamImageIterativeProvider } = await import("./iterativeImage-noXhuElt.js");
|
|
89
89
|
return new RedteamImageIterativeProvider(providerOptions.config);
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:tree",
|
|
94
94
|
create: async (_providerPath, providerOptions) => {
|
|
95
|
-
const { default: RedteamIterativeTreeProvider } = await import("./iterativeTree-
|
|
95
|
+
const { default: RedteamIterativeTreeProvider } = await import("./iterativeTree-cKlxQWhi.js");
|
|
96
96
|
return new RedteamIterativeTreeProvider(providerOptions.config);
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
test: (providerPath) => providerPath === "promptfoo:redteam:iterative:meta",
|
|
101
101
|
create: async (_providerPath, providerOptions) => {
|
|
102
|
-
const { default: RedteamIterativeMetaProvider } = await import("./iterativeMeta-
|
|
102
|
+
const { default: RedteamIterativeMetaProvider } = await import("./iterativeMeta-BHNJgPy0.js");
|
|
103
103
|
return new RedteamIterativeMetaProvider(providerOptions.config);
|
|
104
104
|
}
|
|
105
105
|
},
|
|
106
106
|
{
|
|
107
107
|
test: (providerPath) => providerPath === "promptfoo:redteam:hydra",
|
|
108
108
|
create: async (_providerPath, providerOptions) => {
|
|
109
|
-
const { HydraProvider } = await import("./hydra-
|
|
109
|
+
const { HydraProvider } = await import("./hydra-C5_Vuh-m.js");
|
|
110
110
|
return new HydraProvider(providerOptions.config);
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
test: (providerPath) => providerPath === "promptfoo:redteam:indirect-web-pwn",
|
|
115
115
|
create: async (_providerPath, providerOptions) => {
|
|
116
|
-
const { default: RedteamIndirectWebPwnProvider } = await import("./indirectWebPwn-
|
|
116
|
+
const { default: RedteamIndirectWebPwnProvider } = await import("./indirectWebPwn-k8D0JacN.js");
|
|
117
117
|
return new RedteamIndirectWebPwnProvider(providerOptions.config);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -121,4 +121,4 @@ const redteamProviderFactories = [
|
|
|
121
121
|
//#endregion
|
|
122
122
|
export { redteamProviderFactories };
|
|
123
123
|
|
|
124
|
-
//# sourceMappingURL=registry-
|
|
124
|
+
//# sourceMappingURL=registry-Bvfyz9Xt.js.map
|