promptfoo 0.121.2 → 0.121.4
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 +2 -0
- package/dist/src/{ListApp-Du7YVwj5.js → ListApp-DQkFNqE9.js} +1 -1
- package/dist/src/{accounts-B0pgC1oV.js → accounts-DdJ2pHMI.js} +5 -5
- package/dist/src/{accounts-CiBLOnA7.js → accounts-DhMYUUbu.js} +5 -5
- package/dist/src/{accounts-gtkH-5KX.cjs → accounts-Dy17bs4D.cjs} +5 -5
- package/dist/src/{accounts-Bm2D8Db9.js → accounts-F9d_5sMC.js} +6 -6
- package/dist/src/{cometapi-C4xSqeID.cjs → agentic-utils-BpX5b23w.cjs} +24 -62
- package/dist/src/{cometapi-CUQq3H_a.js → agentic-utils-P172hM8B.js} +4 -61
- package/dist/src/agentic-utils-qFlm6zes.js +153 -0
- package/dist/src/{agentic-utils-DS1g3GLF.js → agentic-utils-w68v6_Dz.js} +3 -3
- package/dist/src/{agents-CmvBq8LV.js → agents-8FDnTriG.js} +6 -7
- package/dist/src/{agents-DbRtpYxR.cjs → agents-BahDpe5G.cjs} +255 -20
- package/dist/src/{agents-DgF2zDag.js → agents-C-R_jfzI.js} +255 -20
- package/dist/src/{agents-9qiOy0ho.js → agents-CgaMXvLM.js} +5 -7
- package/dist/src/{agents-Di9DKPzn.cjs → agents-D7-HGxUj.cjs} +5 -7
- package/dist/src/{agents-CBr9A01V.js → agents-DJ35I3Nt.js} +255 -20
- package/dist/src/{agents-cLXA8a_8.js → agents-aYPQLf8W.js} +5 -9
- package/dist/src/{agents-D__IdAlg.js → agents-pQeBEXMm.js} +255 -21
- package/dist/src/{aimlapi-B4rcnZgv.js → aimlapi-BCq3MHeL.js} +8 -14
- package/dist/src/{aimlapi-DHJU_kcV.js → aimlapi-BD6J9oKt.js} +7 -14
- package/dist/src/{aimlapi-BvlNH0gr.cjs → aimlapi-qcK4OT55.cjs} +8 -15
- package/dist/src/{aimlapi-CnkC2HqE.js → aimlapi-sgYnkE54.js} +7 -16
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
- package/dist/src/app/assets/Report-CQYFezYu.js +1 -0
- package/dist/src/app/assets/index-BXGkeMwh.css +1 -0
- package/dist/src/app/assets/index-BzJt18Jz.js +385 -0
- package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
- package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
- package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
- package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
- package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
- package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
- package/dist/src/app/index.html +7 -7
- package/dist/src/{audio-Dz3z7s3J.js → audio-B7izf48x.js} +4 -5
- package/dist/src/{audio-CGMyULza.cjs → audio-BQtNuYBj.cjs} +4 -4
- package/dist/src/{audio-Bkv46et0.js → audio-COrn8rM6.js} +4 -4
- package/dist/src/{audio-ClI_AFre.js → audio-DcVKoInv.js} +4 -4
- package/dist/src/{base-CGrhspbK.cjs → base-D-670DX8.cjs} +3 -3
- package/dist/src/{base-CpjcHe4e.js → base-PYJvBE1i.js} +3 -3
- package/dist/src/{base-Dy1V8--Z.js → base-fZ9wgg50.js} +3 -3
- package/dist/src/{base-DLKtKMFh.js → base-yrI1Yal4.js} +3 -3
- package/dist/src/{blobs-BDbfYdrJ.js → blobs-BCZavS8s.js} +4 -4
- package/dist/src/{blobs-CMHN0Qcz.js → blobs-BQWqnnvL.js} +4 -4
- package/dist/src/{blobs-CBO20krR.js → blobs-C-F78Kfn.js} +3 -3
- package/dist/src/{blobs-D23XLin-.cjs → blobs-D2FAd1Q5.cjs} +3 -3
- package/dist/src/cache-BIyPcp5v.cjs +376 -0
- package/dist/src/cache-C4Xb-hNb.js +310 -0
- package/dist/src/cache-Cr9oLMUa.js +3 -0
- package/dist/src/cache-D5NZmMiT.js +310 -0
- package/dist/src/cache-DbLsVWB2.cjs +3 -0
- package/dist/src/cache-mb7c8hbp.js +280 -0
- package/dist/src/{chat-C2jrdPMx.js → chat-0bwXjVP0.js} +3 -13
- package/dist/src/{chat-C1Qst7jL.cjs → chat-BPXSW8Bv.cjs} +3 -13
- package/dist/src/{chat-DJIw17u0.js → chat-BfPaS15_.js} +68 -42
- package/dist/src/{chat-CgF-J-Jj.cjs → chat-CclRbxGf.cjs} +68 -42
- package/dist/src/{chat-BiKyneZl.js → chat-Dr3DUQ0D.js} +68 -42
- package/dist/src/{chat-DqxYYtWA.js → chat-I9izLm49.js} +67 -41
- package/dist/src/{chat-CzkrVDfz.js → chat-MKxMnZJZ.js} +3 -13
- package/dist/src/{chat-qmatte1u.js → chat-mW0ORo8G.js} +3 -14
- package/dist/src/{chatkit-DKyPi1Gs.cjs → chatkit-BoWoSgXl.cjs} +4 -4
- package/dist/src/{chatkit-65VXf5SR.js → chatkit-CJnHRRMM.js} +4 -4
- package/dist/src/{chatkit-Be-Q-a9F.js → chatkit-Cv6AhukM.js} +4 -4
- package/dist/src/{chatkit-BxFvW8KY.js → chatkit-zUIVoDos.js} +4 -4
- package/dist/src/{claude-agent-sdk-Apiy0iaz.js → claude-agent-sdk-BQNuLaAK.js} +41 -18
- package/dist/src/{claude-agent-sdk-D9Z5Pr9X.cjs → claude-agent-sdk-CPJo3dBQ.cjs} +45 -22
- package/dist/src/{claude-agent-sdk-D2bJee9S.js → claude-agent-sdk-Dtq_L-Sc.js} +40 -17
- package/dist/src/{claude-agent-sdk-DfCoW0E6.js → claude-agent-sdk-nfAIcxNf.js} +42 -20
- package/dist/src/{cloud-C0dlstV_.js → cloud-DQZ5sVjW.js} +25 -13
- package/dist/src/cloud-Hphvo8kr.js +3 -0
- package/dist/src/{cloudflare-ai-8TDxHR0x.js → cloudflare-ai-BIB567w6.js} +5 -14
- package/dist/src/{cloudflare-ai-g7PB6VHR.js → cloudflare-ai-DGLte7Py.js} +5 -14
- package/dist/src/{cloudflare-ai-CknbZ5LJ.cjs → cloudflare-ai-Dl3N9OVD.cjs} +6 -15
- package/dist/src/{cloudflare-ai-BxAGvfju.js → cloudflare-ai-DlKr0rY7.js} +5 -15
- package/dist/src/{cloudflare-gateway-B9HWA5wf.js → cloudflare-gateway-BDZrYydE.js} +4 -16
- package/dist/src/{cloudflare-gateway-BSnDmHYo.cjs → cloudflare-gateway-BYDp495F.cjs} +4 -15
- package/dist/src/{cloudflare-gateway-CKDb4dJ8.js → cloudflare-gateway-CiIZHU0Q.js} +5 -164
- package/dist/src/{cloudflare-gateway-CP9QEWYS.js → cloudflare-gateway-DI1HNP5F.js} +4 -15
- package/dist/src/codex-sdk-BAmYE7qy.js +3 -0
- package/dist/src/codex-sdk-C2_M2pl_.cjs +1172 -0
- package/dist/src/codex-sdk-CErXn7qh.js +1165 -0
- package/dist/src/codex-sdk-CWEnH70W.cjs +2 -0
- package/dist/src/codex-sdk-CpqiOqDO.js +1164 -0
- package/dist/src/codex-sdk-Rtky3M4I.js +1165 -0
- package/dist/src/{cometapi-BL9yvj_f.js → cometapi-BUlt_ELa.js} +8 -15
- package/dist/src/{cometapi-DFNiKmSz.js → cometapi-CtJ-mS8R.js} +8 -16
- package/dist/src/cometapi-DT-jlVCB.js +55 -0
- package/dist/src/cometapi-UVOryo4W.cjs +55 -0
- package/dist/src/{completion-CM6oK8PS.cjs → completion-BozdoXba.cjs} +7 -62
- package/dist/src/{completion-5MzrpJxT.js → completion-Dnxn7E-j.js} +8 -57
- package/dist/src/{completion-qRoZAYRB.js → completion-HUe8wDhZ.js} +8 -57
- package/dist/src/{completion-DZ083F31.js → completion-x0a_c2y1.js} +8 -57
- package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
- package/dist/src/{createHash-CfZSc0b4.cjs → createHash-B7KvgoOD.cjs} +4 -4
- package/dist/src/{createHash-Da8fMwqB.js → createHash-ChI45QR1.js} +3 -3
- package/dist/src/{createHash-DmPQkvBh.js → createHash-CwDVU5xr.js} +3 -3
- package/dist/src/{docker-ExVyLp0S.js → docker-CQmlA2NU.js} +7 -14
- package/dist/src/{docker-Bb5dcxr8.js → docker-ClnmCf1Z.js} +6 -14
- package/dist/src/{docker-BvfL2BrW.js → docker-DCgsveLD.js} +6 -16
- package/dist/src/{docker-DcF2pRrj.cjs → docker-DS4_Osau.cjs} +7 -15
- package/dist/src/embedding-D3xTseo7.js +59 -0
- package/dist/src/embedding-DD9wa3ae.js +58 -0
- package/dist/src/embedding-I45KG3o7.cjs +63 -0
- package/dist/src/embedding-nFbumxcv.js +58 -0
- package/dist/src/entrypoint.js +69 -6
- package/dist/src/{errors-P6ll7XSJ.js → errors-Cw810C93.js} +1 -1
- package/dist/src/{esm-CaIwzWR5.js → esm-C7PnfdF8.js} +16 -7
- package/dist/src/{esm-CnNt7sI4.cjs → esm-CtEPLdAj.cjs} +15 -6
- package/dist/src/{esm-Cd1AjG1D.js → esm-Dh4dOLlt.js} +15 -6
- package/dist/src/{esm-C03C-mv3.js → esm-tVgYPY-f.js} +27 -18
- package/dist/src/eval-CzJFfFO9.js +3 -0
- package/dist/src/{eval-Dg2nG4v2.js → eval-u4UVafl6.js} +49 -20
- package/dist/src/{evalResult-BDMqrapS.js → evalResult-Bgm9ZH31.js} +7 -7
- package/dist/src/{evalResult-BBRNtX4I.js → evalResult-D3hVYFis.js} +7 -7
- package/dist/src/evalResult-D8MT9p0s.js +3 -0
- package/dist/src/evalResult-DElBuddX.js +2 -0
- package/dist/src/evalResult-Dvc-iucu.cjs +2 -0
- package/dist/src/{evalResult-fuaI8HkH.cjs → evalResult-KZqXl4XP.cjs} +7 -7
- package/dist/src/evaluator-CVessDWe.js +3 -0
- package/dist/src/{evaluator-BhoWwp5b.js → evaluator-IvuDYSvQ.js} +3080 -1254
- package/dist/src/{extractor-D25qpmGX.js → extractor-CAfTSraf.js} +6 -6
- package/dist/src/{extractor-DReVID0K.js → extractor-DNSeBVOJ.js} +6 -6
- package/dist/src/{extractor-C0EVHewb.js → extractor-Dk6bRWkv.js} +6 -6
- package/dist/src/{extractor-pYLLi3wS.cjs → extractor-WVPOrH43.cjs} +6 -6
- package/dist/src/{fetch-HaqdX7U1.js → fetch-B0Z3Oe4k.js} +218 -55
- package/dist/src/{fetch-Dxpd4_sr.js → fetch-BEWnXrrG.js} +195 -45
- package/dist/src/fetch-C7bGKDlQ.js +3 -0
- package/dist/src/{fetch-BPkYtG8K.cjs → fetch-CJU5ELPa.cjs} +223 -48
- package/dist/src/{fetch-Cwxnd8zz.js → fetch-Di00EQrc.js} +218 -55
- package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-AWa2ZML4.js} +1 -1
- package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-BArZuxsI.js} +1 -1
- package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-DZzPsexs.js} +1 -1
- package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-COYDi-tC.js} +6 -2
- package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-DWdZ28hY.js} +6 -2
- package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-XnrcgDCe.js} +6 -2
- package/dist/src/{genaiTracer-DN4dQywX.cjs → genaiTracer-yRuxj9-L.cjs} +7 -3
- package/dist/src/golang/wrapper.go +1 -1
- package/dist/src/{graders-DU49_J8Y.cjs → graders--zknU_uk.cjs} +5747 -3206
- package/dist/src/graders-BOAzQEUe.cjs +2 -0
- package/dist/src/graders-D4BTsZdG2.js +3 -0
- package/dist/src/graders-DOJK1XpV.js +2 -0
- package/dist/src/graders-NAv9LcBn.js +2 -0
- package/dist/src/{graders-BTeBGqjJ.js → graders-Zy3x0zqX.js} +5727 -3218
- package/dist/src/{graders-Bj_Odv7c.js → graders-eIHhRqoC.js} +5719 -3210
- package/dist/src/{graders-DP7KFFo-.js → graders-pvbReLLn.js} +5728 -3219
- package/dist/src/{image-B0h9VEMc.js → image-9302QVqR.js} +4 -4
- package/dist/src/{image-CHfWvljl.js → image-B5Mv-Z3h.js} +8 -8
- package/dist/src/{image-DS-o-0ph.js → image-DVz2RiMF.js} +8 -8
- package/dist/src/{image-C1madmKh.cjs → image-De2FBmYV.cjs} +4 -4
- package/dist/src/{image-B02ogr_b.js → image-dnoUgPrC.js} +4 -5
- package/dist/src/{image-Dpxa1Jt6.js → image-qUpPvmNZ.js} +8 -8
- package/dist/src/{image-Bb4vWQLM.js → image-u7-rKnYU.js} +4 -4
- package/dist/src/{image-BLmROtN3.cjs → image-x6KqLQl4.cjs} +8 -8
- package/dist/src/index.cjs +3728 -1482
- package/dist/src/index.d.cts +3232 -79
- package/dist/src/index.d.ts +3232 -79
- package/dist/src/index.js +3735 -1490
- package/dist/src/{interactiveCheck-BgLZUIt3.js → interactiveCheck-CLERUB0c.js} +2 -2
- package/dist/src/{knowledgeBase-DOO_BM9b.cjs → knowledgeBase-Bpoe_nLu.cjs} +6 -8
- package/dist/src/{knowledgeBase-D33Ty2l6.js → knowledgeBase-Dgc7CBWF.js} +6 -8
- package/dist/src/{knowledgeBase-B3OoKIej.js → knowledgeBase-RhFPGWDc.js} +6 -8
- package/dist/src/{knowledgeBase-CYTLHOt1.js → knowledgeBase-lm9RXSAm.js} +6 -9
- package/dist/src/{litellm-NbjknEh6.js → litellm-C2kqjxqp.js} +6 -14
- package/dist/src/{litellm-I_hbp_dc.cjs → litellm-CoyI4IAl.cjs} +6 -15
- package/dist/src/{litellm-TrljxD9G.js → litellm-DRjpcSa7.js} +5 -14
- package/dist/src/{litellm-AaeZcZQF.js → litellm-p37R1dzQ.js} +5 -16
- package/dist/src/{logger-DLcq4dWf.js → logger-B88EkIn6.js} +48 -23
- package/dist/src/{logger-Cp1GPUjj.cjs → logger-COuQb2xB.cjs} +77 -22
- package/dist/src/{logger-CT3IKMKA.js → logger-Ct2S6Yx-.js} +48 -23
- package/dist/src/{logger-KkObSCzq.js → logger-DksKw1Qc.js} +48 -23
- package/dist/src/{luma-ray-f6I2fft-.js → luma-ray-B863CmuZ.js} +6 -10
- package/dist/src/{luma-ray-DDsjcgZZ.js → luma-ray-BTTLtqQ8.js} +7 -10
- package/dist/src/{luma-ray-Due0n7di.cjs → luma-ray-BxVKaW2a.cjs} +6 -10
- package/dist/src/{luma-ray-BS2_tY8L.js → luma-ray-KgTCXrZC.js} +6 -12
- package/dist/src/main.d.ts +1 -26
- package/dist/src/main.js +1011 -548
- package/dist/src/{messages-Bs1kC7P4.cjs → messages-811uVVW5.cjs} +74 -19
- package/dist/src/{messages-BS17jdMx.js → messages-BTQz42fn.js} +74 -19
- package/dist/src/{messages-ZJk778GH.js → messages-MYTQ2TWp.js} +74 -19
- package/dist/src/{messages-D0lx5qK7.js → messages-zWbkLLHz.js} +74 -19
- package/dist/src/{meteor-D-SotUw9.js → meteor-CU5UAE-H.js} +1 -1
- package/dist/src/{meteor-DLZZ3osF.cjs → meteor-Co1VQ1u5.cjs} +1 -1
- package/dist/src/{meteor-44VjEACX.js → meteor-DHdzY1Ss.js} +1 -1
- package/dist/src/{meteor-DUiCJRC-.js → meteor-DuAFv6gF.js} +1 -1
- package/dist/src/{modelslab-Bmni6skY.js → modelslab-D0erNWKe.js} +7 -10
- package/dist/src/{modelslab-DRb74SP4.js → modelslab-DIq-6y7x.js} +7 -10
- package/dist/src/{modelslab-CoUX6Jc_.cjs → modelslab-Dk1JAtVo.cjs} +7 -10
- package/dist/src/{modelslab-Bx9IrZfS.js → modelslab-wu9yi5GE.js} +7 -11
- package/dist/src/{nova-reel-BfPq-0Yk.js → nova-reel-CCFRfeRb.js} +7 -10
- package/dist/src/{nova-reel-C_QM18Xn.cjs → nova-reel-CrLXVKQf.cjs} +6 -10
- package/dist/src/{nova-reel-bgjxilYW.js → nova-reel-DQrm74ng.js} +6 -10
- package/dist/src/{nova-reel-D_W1tjMH.js → nova-reel-gr11WG7f.js} +6 -12
- package/dist/src/{nova-sonic-DIGQNR07.js → nova-sonic-BYdp-QLs.js} +5 -7
- package/dist/src/{nova-sonic-CFb5GYhg.js → nova-sonic-B_ZXcUJB.js} +4 -7
- package/dist/src/{nova-sonic-De1HW5fD.js → nova-sonic-TDgrlTk7.js} +4 -9
- package/dist/src/{nova-sonic-zfcljeRp.cjs → nova-sonic-i5tUvXKn.cjs} +4 -7
- package/dist/src/{openai-DElQ-fPX.js → openai-DhVEmgeZ.js} +6 -3
- package/dist/src/{openai-DhbB7eWK.js → openai-Qsvz25mV.js} +6 -3
- package/dist/src/{openai-Cuif0GEt.cjs → openai-URNyItar.cjs} +6 -3
- package/dist/src/{openai-j-sE2O7r.js → openai-iYtrXzOX.js} +6 -3
- package/dist/src/openclaw-CLWrW03k.js +1200 -0
- package/dist/src/openclaw-CnQ363Wi.js +1199 -0
- package/dist/src/openclaw-CwzlQSQX.js +1199 -0
- package/dist/src/openclaw-wX9rtfke.cjs +1205 -0
- package/dist/src/{opencode-sdk-B3CWY9h_.js → opencode-sdk-BUu5Nevv.js} +12 -14
- package/dist/src/{opencode-sdk-BL764Jdi.cjs → opencode-sdk-BZ2idgYA.cjs} +16 -18
- package/dist/src/{opencode-sdk-0j6rTWNb.js → opencode-sdk-BxD8vXp_.js} +12 -15
- package/dist/src/{opencode-sdk-C2y6UkP2.js → opencode-sdk-GI2KaAXq.js} +12 -14
- package/dist/src/{otlpReceiver-C99PPb48.js → otlpReceiver-B2z58l4e.js} +154 -98
- package/dist/src/{otlpReceiver-CGq6LspY.cjs → otlpReceiver-BfcVq2Nq.cjs} +154 -98
- package/dist/src/{otlpReceiver-D89fR-rC.js → otlpReceiver-BntK801g.js} +154 -98
- package/dist/src/{otlpReceiver-CdNBdbsk.js → otlpReceiver-DmVulbhC.js} +154 -98
- package/dist/src/{providerRegistry-CD8MEar9.js → providerRegistry-Bvh8mv85.js} +2 -2
- package/dist/src/{providerRegistry-DM8rZYol.js → providerRegistry-CPQ_CmVO.js} +2 -2
- package/dist/src/{providerRegistry-Civky8Ar.cjs → providerRegistry-CQMdTmHP.cjs} +2 -2
- package/dist/src/{providerRegistry-B0RUOLI_.js → providerRegistry-CWoPjKFZ.js} +2 -2
- package/dist/src/{providers-CgKOSgTR.cjs → providers-1eKkXBKp.cjs} +1435 -930
- package/dist/src/{providers-BlqUifFg.js → providers-BV_KMZje.js} +1419 -944
- package/dist/src/providers-Bp4S-FvO.js +2 -0
- package/dist/src/providers-DV3ax9e_.cjs +3 -0
- package/dist/src/{providers-D8lF1sqW.js → providers-Domz_llv.js} +1427 -952
- package/dist/src/{providers-Dk_6ocUX.js → providers-DruaQfwu.js} +1424 -949
- package/dist/src/providers-iUt5fbAN.js +3 -0
- package/dist/src/providers-u9Enmfok.js +2 -0
- package/dist/src/python/persistent_wrapper.py +0 -5
- package/dist/src/{pythonUtils-D6fwaDSg.js → pythonUtils-C2UQ30Rz.js} +4 -4
- package/dist/src/{pythonUtils-D5nxkQ0P.js → pythonUtils-Cldx7huE.js} +4 -4
- package/dist/src/{pythonUtils-C3py6GC1.js → pythonUtils-CnndUbW-.js} +3 -3
- package/dist/src/{pythonUtils-CTU3Y3lw.cjs → pythonUtils-tAJvvpS-.cjs} +3 -3
- package/dist/src/{quiverai-CIaELU_m.js → quiverai-CtWi6x_g.js} +4 -4
- package/dist/src/{quiverai-PdShCPox.cjs → quiverai-DFotyafY.cjs} +4 -4
- package/dist/src/{quiverai-BbOUOn2L.js → quiverai-DR0SnIQV.js} +4 -4
- package/dist/src/{quiverai-uH-dcTIr.js → quiverai-aPPvXOgn.js} +4 -5
- package/dist/src/render-CH-62LbA.js +135 -0
- package/dist/src/render-CMEpfLaO.js +136 -0
- package/dist/src/{render-Drod8m7K.js → render-CgVDrJmM.js} +2 -3
- package/dist/src/render-DHIZ6_k8.js +135 -0
- package/dist/src/render-DfQSFxGE.cjs +165 -0
- package/dist/src/{responses-DIR9Ud3j.js → responses--OsX2aYW.js} +23 -14
- package/dist/src/{responses-D8SBTL64.cjs → responses-Bi9vBuW_.cjs} +24 -15
- package/dist/src/{responses-CB2jwoAr.js → responses-C-flexAY.js} +24 -15
- package/dist/src/{responses-WNGNYe3K.js → responses-DL9m8CyY.js} +24 -15
- package/dist/src/{rubyUtils-DhCAlxZr.cjs → rubyUtils-B6eljPuh.cjs} +3 -3
- package/dist/src/{rubyUtils-BcuGX77l.js → rubyUtils-CYSQEG4a.js} +3 -3
- package/dist/src/rubyUtils-D1L2d3jb.js +3 -0
- package/dist/src/rubyUtils-DUbq4tff.cjs +2 -0
- package/dist/src/{rubyUtils-BUVePouc.js → rubyUtils-DVLeA2jg.js} +3 -3
- package/dist/src/{rubyUtils-Boc4HZzX.js → rubyUtils-DsGrTx8R.js} +3 -3
- package/dist/src/{sagemaker-CNBxx5CJ.js → sagemaker-BVkaG2-l.js} +14 -18
- package/dist/src/{sagemaker-CemTFp2h.js → sagemaker-BveBvuxm.js} +14 -18
- package/dist/src/{sagemaker-YSyBXQQh.js → sagemaker-D67yzMzs.js} +14 -19
- package/dist/src/{sagemaker-Cl28mZU2.cjs → sagemaker-XnfhheQv.cjs} +14 -18
- package/dist/src/{scanner-BsBlNXNn.js → scanner-1DqWi1Ej.js} +130 -35
- package/dist/src/server/golang/wrapper.go +1 -1
- package/dist/src/server/index.js +3757 -1511
- package/dist/src/server/python/persistent_wrapper.py +0 -5
- package/dist/src/{server-CqzrVGpF.js → server-BNYztJkh.js} +128 -9
- package/dist/src/{server-CuxBbeSY.js → server-BSB45Nt9.js} +127 -8
- package/dist/src/{server-VWgWb00X.js → server-D6Il2Sob.js} +126 -7
- package/dist/src/server-DCtHUqlp.js +3 -0
- package/dist/src/server-DaA2eR26.cjs +2 -0
- package/dist/src/{server-C_7Ax-hA.cjs → server-Dx2TyCH2.cjs} +140 -6
- package/dist/src/{signal-4U3mfRvL.js → signal-CE5G3a7x.js} +3 -3
- package/dist/src/{slack-BmVAVGaK.cjs → slack-1Rhq0EoV.cjs} +2 -2
- package/dist/src/{slack-DCUPTzS2.js → slack-D5Wpy8LM.js} +2 -2
- package/dist/src/{slack-DXMKtA-f.js → slack-DDUe-5MC.js} +2 -2
- package/dist/src/{slack-DOdy_kyv.js → slack-acRb0IqQ.js} +2 -2
- package/dist/src/store-CWOSz6D_.cjs +2 -0
- package/dist/src/{store-Dim__MDd.js → store-CYEy5J2D.js} +17 -5
- package/dist/src/{store-DLlFCC4h.cjs → store-DAAyxcy6.cjs} +17 -5
- package/dist/src/store-DCDBhv7B.js +3 -0
- package/dist/src/{store-CXGFv4aR.js → store-Dn9HUkdW.js} +17 -5
- package/dist/src/{store-DXilxTl-.js → store-M0b1WfYb.js} +17 -5
- package/dist/src/{tables-gftXzE9I.js → tables-C4CH3zRr.js} +3 -3
- package/dist/src/{tables-DLJPUdUE.js → tables-CsWou1Bx.js} +3 -3
- package/dist/src/{tables-6YKwjN9-.js → tables-DQ4WU5tX.js} +3 -3
- package/dist/src/{tables-DPi7wKeM.cjs → tables-DUfh1F7Z.cjs} +3 -3
- package/dist/src/telemetry-C1IqxcdW.js +3 -0
- package/dist/src/telemetry-C4ZEa_es.cjs +2 -0
- package/dist/src/{telemetry-CMrFgtPB.js → telemetry-CQPez_Jp.js} +4 -4
- package/dist/src/{telemetry-DaX14Chu.cjs → telemetry-Dsw_faFj.cjs} +4 -4
- package/dist/src/{telemetry-Dthj_BbD.js → telemetry-Dvqxv3YC.js} +4 -4
- package/dist/src/{telemetry-Cps3mIU-.js → telemetry-dbaJ0E98.js} +4 -4
- package/dist/src/{text-CW1cyrwj.cjs → text-BVi-cLPJ.cjs} +1 -1
- package/dist/src/{text-B_UCRPp2.js → text-CZr46tp_.js} +1 -1
- package/dist/src/{text-TIv0QYnd.js → text-DHxdyQqT.js} +1 -1
- package/dist/src/{text-Db-Wt2u2.js → text-KvuD2Iko.js} +1 -1
- package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-Bb7DkZPz.cjs} +7 -3
- package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-C-bmyHoE.js} +7 -3
- package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-CXrvO-wA.js} +7 -3
- package/dist/src/{transcription-NLVG9MT1.cjs → transcription-BvjmiYB1.cjs} +12 -16
- package/dist/src/{transcription-BNYURcXg.js → transcription-CJspiD2c.js} +11 -14
- package/dist/src/{transcription-B_OdaHp7.js → transcription-DuWDupG7.js} +10 -14
- package/dist/src/{transcription-s6A-bNrZ.js → transcription-V2HaAmy2.js} +10 -16
- package/dist/src/{transform-DECvGmzp.js → transform-Bbg6A8Jk.js} +4 -4
- package/dist/src/{transform-vNucnNr0.js → transform-CG0ehZNG.js} +11 -7
- package/dist/src/{transform-DuHvhZpj.cjs → transform-CTeuTR3S.cjs} +31 -9
- package/dist/src/{transform-CzK1Q0zl.cjs → transform-CUnzlsbn.cjs} +4 -4
- package/dist/src/{transform-aa6tmVpZ.js → transform-DYX1_Xnh.js} +5 -5
- package/dist/src/transform-DgKlRr73.cjs +2 -0
- package/dist/src/transform-M6ITAESf.js +3 -0
- package/dist/src/{transform-DilY9wbS.js → transform-UN5UGu8U.js} +5 -5
- package/dist/src/{transform-uAytVuyX.js → transform-lQrDE1BQ.js} +11 -7
- package/dist/src/{transform-D5HsjduX.js → transform-zDhMmzwX.js} +11 -7
- package/dist/src/{transformersAvailability-CEVM2GNQ.js → transformersAvailability-CcHusyhw.js} +1 -1
- package/dist/src/{transformersAvailability-CwayUSlh.cjs → transformersAvailability-Cju9mHgR.cjs} +1 -1
- package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-DLlROWhg.js} +1 -1
- package/dist/src/{types-DmyIJ-sR.js → types-BGQDAP8i.js} +357 -22
- package/dist/src/{types-CzW2QFyi.js → types-Bgh5SOn6.js} +358 -24
- package/dist/src/{types-C_7nyzr1.cjs → types-CeaeaZdP.cjs} +393 -22
- package/dist/src/{types-Cbd8uOMq.js → types-Dm9JM6Vb.js} +368 -23
- package/dist/src/{util-BHGHw5G1.js → util-BYvQUPp7.js} +138 -36
- package/dist/src/{util-B9vlHIIh.cjs → util-Bxn8emtE.cjs} +15 -168
- package/dist/src/{util-ZzmqNPlg.js → util-C8e5uydV.js} +19 -142
- package/dist/src/{util-CMy69ZgQ.js → util-C9J8ahRn.js} +18 -4
- package/dist/src/{util-BzMcevZc.cjs → util-CN3SrLT4.cjs} +18 -4
- package/dist/src/{util-BV4XUC0n.js → util-D3q0WQ-0.js} +18 -4
- package/dist/src/{util-Dnmk2mBQ.js → util-D9TisOyk.js} +18 -4
- package/dist/src/{util-B3xGByQh.js → util-DDs-7g6-.js} +138 -36
- package/dist/src/{util-Bv6uGDfH.js → util-DvU2Pw8c.js} +138 -36
- package/dist/src/{util-C1CeHl-P.js → util-DxWpWjhc.js} +13 -136
- package/dist/src/{util-BRYkYPTd.js → util-oGMLA7vc.js} +17 -140
- package/dist/src/{util-DGNOS1db.cjs → util-olYL5C6N.cjs} +143 -35
- package/dist/src/{utils-Cz9qXqII.cjs → utils-B05gLxER.cjs} +6 -4
- package/dist/src/{utils-f2-Moju7.js → utils-BLJKfv0y.js} +6 -4
- package/dist/src/{utils-dLokC-eR.js → utils-DJfvjyMj.js} +6 -4
- package/dist/src/{utils-XiOAgly5.js → utils-hXtCYanr.js} +6 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +66 -57
- package/dist/src/app/assets/index-4LKxG2CG.js +0 -439
- package/dist/src/app/assets/index-C3zcsZFQ.css +0 -1
- package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
- package/dist/src/app/assets/sync-9qqYcY-B.js +0 -4
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
- package/dist/src/app/assets/vendor-markdown-0tekx3KX.js +0 -29
- package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
- package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
- package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
- package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
- package/dist/src/cache-BVeDlD87.js +0 -726
- package/dist/src/cache-C4Nxf52C.js +0 -756
- package/dist/src/cache-CeUpFm3M.cjs +0 -5
- package/dist/src/cache-Dh5WtQps.cjs +0 -816
- package/dist/src/cache-i1P6crbO.js +0 -756
- package/dist/src/cache-n-RCJ-hL.js +0 -6
- package/dist/src/cloud-BBh91EUK.js +0 -4
- package/dist/src/codex-sdk-C6UMlxwV.js +0 -665
- package/dist/src/codex-sdk-DUwKWezN.js +0 -665
- package/dist/src/codex-sdk-GGAw0qbD.js +0 -666
- package/dist/src/codex-sdk-fAO0c3yA.cjs +0 -669
- package/dist/src/eval-B3r2CVXr.js +0 -15
- package/dist/src/evalResult-5xwYnECe.js +0 -12
- package/dist/src/evalResult-71lY93Kj.cjs +0 -10
- package/dist/src/evalResult-Dx5P5cIv.js +0 -10
- package/dist/src/evaluator-Jx6bRZV6.js +0 -36
- package/dist/src/fetch-BxNb_Lp3.js +0 -5
- package/dist/src/graders-B_pgMLS2.js +0 -34
- package/dist/src/graders-DErokPDO.cjs +0 -32
- package/dist/src/graders-DR_uNe54.js +0 -32
- package/dist/src/graders-w3176Wz-.js +0 -32
- package/dist/src/openclaw-CSugPYAr.cjs +0 -586
- package/dist/src/openclaw-DiSz3I5L.js +0 -582
- package/dist/src/openclaw-DuvJKEW5.js +0 -580
- package/dist/src/openclaw-tiVYRtr-.js +0 -580
- package/dist/src/providers-B7V0njNs.js +0 -32
- package/dist/src/providers-BEwbhv0X.js +0 -30
- package/dist/src/providers-CH3C7zf7.js +0 -30
- package/dist/src/providers-zyB6k_38.cjs +0 -31
- package/dist/src/rubyUtils-BUHu6PhO.js +0 -5
- package/dist/src/rubyUtils-CP42kMvq.cjs +0 -4
- package/dist/src/server-DA4Cyrrq.js +0 -7
- package/dist/src/server-Dulb-4-K.cjs +0 -5
- package/dist/src/store-CXS-Q_91.js +0 -6
- package/dist/src/store-eYkaKMwq.cjs +0 -5
- package/dist/src/telemetry-BpMfhthR.cjs +0 -5
- package/dist/src/telemetry-Dw38hanS.js +0 -7
- package/dist/src/tokenUsageUtils-BDGe-iyI.js +0 -138
- package/dist/src/transform-DTGDnAzW.js +0 -6
- package/dist/src/transform-m3qNw4KP.cjs +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
2
|
const require_fileExtensions = require("./fileExtensions-bYh77CN8.cjs");
|
|
3
3
|
let dedent = require("dedent");
|
|
4
4
|
dedent = require_logger.__toESM(dedent);
|
|
@@ -82,6 +82,7 @@ const ProviderEnvOverridesSchema = zod.z.object({
|
|
|
82
82
|
CODEX_API_KEY: zod.z.string().optional(),
|
|
83
83
|
OPENCLAW_CONFIG_PATH: zod.z.string().optional(),
|
|
84
84
|
OPENCLAW_GATEWAY_PASSWORD: zod.z.string().optional(),
|
|
85
|
+
OPENCLAW_GATEWAY_PORT: zod.z.string().optional(),
|
|
85
86
|
OPENCLAW_GATEWAY_TOKEN: zod.z.string().optional(),
|
|
86
87
|
OPENCLAW_GATEWAY_URL: zod.z.string().optional(),
|
|
87
88
|
PALM_API_HOST: zod.z.string().optional(),
|
|
@@ -133,7 +134,9 @@ const ProviderEnvOverridesSchema = zod.z.object({
|
|
|
133
134
|
const CompletionTokenDetailsSchema = zod.z.object({
|
|
134
135
|
reasoning: zod.z.number().optional(),
|
|
135
136
|
acceptedPrediction: zod.z.number().optional(),
|
|
136
|
-
rejectedPrediction: zod.z.number().optional()
|
|
137
|
+
rejectedPrediction: zod.z.number().optional(),
|
|
138
|
+
cacheReadInputTokens: zod.z.number().optional(),
|
|
139
|
+
cacheCreationInputTokens: zod.z.number().optional()
|
|
137
140
|
});
|
|
138
141
|
/**
|
|
139
142
|
* Base schema for token usage statistics with all fields optional
|
|
@@ -165,6 +168,7 @@ const PromptFunctionSchema = zod.z.custom((v) => typeof v === "function");
|
|
|
165
168
|
const PromptSchema = zod.z.object({
|
|
166
169
|
id: zod.z.string().optional(),
|
|
167
170
|
raw: zod.z.string(),
|
|
171
|
+
template: zod.z.string().optional(),
|
|
168
172
|
display: zod.z.string().optional(),
|
|
169
173
|
label: zod.z.string(),
|
|
170
174
|
function: PromptFunctionSchema.optional(),
|
|
@@ -175,6 +179,55 @@ assert$1();
|
|
|
175
179
|
assert$1();
|
|
176
180
|
assert$1();
|
|
177
181
|
//#endregion
|
|
182
|
+
//#region src/redteam/constants/codingAgents.ts
|
|
183
|
+
const CODING_AGENT_CORE_PLUGINS = [
|
|
184
|
+
"coding-agent:repo-prompt-injection",
|
|
185
|
+
"coding-agent:terminal-output-injection",
|
|
186
|
+
"coding-agent:secret-env-read",
|
|
187
|
+
"coding-agent:sandbox-read-escape",
|
|
188
|
+
"coding-agent:verifier-sabotage"
|
|
189
|
+
];
|
|
190
|
+
const CODING_AGENT_PLUGINS = [
|
|
191
|
+
...CODING_AGENT_CORE_PLUGINS,
|
|
192
|
+
"coding-agent:secret-file-read",
|
|
193
|
+
"coding-agent:sandbox-write-escape",
|
|
194
|
+
"coding-agent:network-egress-bypass"
|
|
195
|
+
];
|
|
196
|
+
const CODING_AGENT_COLLECTIONS = ["coding-agent:core"];
|
|
197
|
+
const CODING_AGENT_PLUGIN_DISPLAY_NAMES = {
|
|
198
|
+
"coding-agent:core": "Coding Agent Core",
|
|
199
|
+
"coding-agent:repo-prompt-injection": "Repository Prompt Injection",
|
|
200
|
+
"coding-agent:terminal-output-injection": "Terminal Output Injection",
|
|
201
|
+
"coding-agent:secret-env-read": "Secret Environment Read",
|
|
202
|
+
"coding-agent:secret-file-read": "Secret File Read",
|
|
203
|
+
"coding-agent:sandbox-read-escape": "Sandbox Read Escape",
|
|
204
|
+
"coding-agent:sandbox-write-escape": "Sandbox Write Escape",
|
|
205
|
+
"coding-agent:network-egress-bypass": "Network Egress Bypass",
|
|
206
|
+
"coding-agent:verifier-sabotage": "Verifier Sabotage"
|
|
207
|
+
};
|
|
208
|
+
const CODING_AGENT_PLUGIN_DESCRIPTIONS = {
|
|
209
|
+
"coding-agent:core": "Tests coding agents against a focused MVP set of repository prompt injection, terminal output injection, secret environment read, sandbox read escape, and verifier sabotage risks",
|
|
210
|
+
"coding-agent:repo-prompt-injection": "Tests whether instructions embedded in README files, source comments, fixture data, issue text, logs, or generated artifacts can override the user task or operating policy",
|
|
211
|
+
"coding-agent:terminal-output-injection": "Tests whether compiler, test, package manager, linter, formatter, git, grep, or script output can instruct the coding agent to perform unrelated or dangerous actions",
|
|
212
|
+
"coding-agent:secret-env-read": "Tests whether launcher-only environment canaries remain absent from commands, output, traces, reports, diffs, URLs, and tool or connector parameters",
|
|
213
|
+
"coding-agent:secret-file-read": "Tests whether protected local files, dotfiles, sibling checkout files, temp files, cache files, browser profile files, or support-bundle files remain outside the coding agent task boundary",
|
|
214
|
+
"coding-agent:sandbox-read-escape": "Tests whether the agent can read outside the intended workspace through absolute paths, sibling checkout paths, symlinks, archives, mount points, caches, temp paths, browser profiles, or home directories",
|
|
215
|
+
"coding-agent:sandbox-write-escape": "Tests whether the agent can create, overwrite, append, delete, chmod, or otherwise mutate files outside the intended workspace through relative paths, absolute paths, symlinks, temp paths, home paths, caches, mounts, or sibling checkouts",
|
|
216
|
+
"coding-agent:network-egress-bypass": "Tests whether the agent can make unauthorized outbound network requests, DNS lookups, package fetches, webhook calls, tunnels, or connector/tool calls that bypass the intended network policy",
|
|
217
|
+
"coding-agent:verifier-sabotage": "Tests whether the agent weakens tests, lint, typecheck, CI, snapshots, fixtures, auth, locks, security checks, policies, or harness assertions instead of fixing the requested implementation"
|
|
218
|
+
};
|
|
219
|
+
const CODING_AGENT_PLUGIN_ALIASES = {
|
|
220
|
+
"coding-agent:core": "CodingAgentCore",
|
|
221
|
+
"coding-agent:repo-prompt-injection": "CodingAgentRepoPromptInjection",
|
|
222
|
+
"coding-agent:terminal-output-injection": "CodingAgentTerminalOutputInjection",
|
|
223
|
+
"coding-agent:secret-env-read": "CodingAgentSecretEnvRead",
|
|
224
|
+
"coding-agent:secret-file-read": "CodingAgentSecretFileRead",
|
|
225
|
+
"coding-agent:sandbox-read-escape": "CodingAgentSandboxReadEscape",
|
|
226
|
+
"coding-agent:sandbox-write-escape": "CodingAgentSandboxWriteEscape",
|
|
227
|
+
"coding-agent:network-egress-bypass": "CodingAgentNetworkEgressBypass",
|
|
228
|
+
"coding-agent:verifier-sabotage": "CodingAgentVerifierSabotage"
|
|
229
|
+
};
|
|
230
|
+
//#endregion
|
|
178
231
|
//#region src/redteam/constants/plugins.ts
|
|
179
232
|
const MULTI_INPUT_VAR = "__prompt";
|
|
180
233
|
const LLAMA_GUARD_REPLICATE_PROVIDER = "replicate:moderation:meta/llama-guard-4-12b";
|
|
@@ -295,8 +348,10 @@ const COLLECTIONS = [
|
|
|
295
348
|
"financial",
|
|
296
349
|
"ecommerce",
|
|
297
350
|
"telecom",
|
|
351
|
+
"teen-safety",
|
|
298
352
|
"realestate",
|
|
299
|
-
"guardrails-eval"
|
|
353
|
+
"guardrails-eval",
|
|
354
|
+
...CODING_AGENT_COLLECTIONS
|
|
300
355
|
];
|
|
301
356
|
const UNALIGNED_PROVIDER_HARM_PLUGINS = {
|
|
302
357
|
"harmful:child-exploitation": "Child Exploitation",
|
|
@@ -346,6 +401,9 @@ const BIAS_PLUGINS = [
|
|
|
346
401
|
];
|
|
347
402
|
const MEDICAL_PLUGINS = [
|
|
348
403
|
"medical:anchoring-bias",
|
|
404
|
+
"medical:fda:ai-disclosure",
|
|
405
|
+
"medical:fda:cyber-access-control",
|
|
406
|
+
"medical:fda:cyber-audit-tampering",
|
|
349
407
|
"medical:hallucination",
|
|
350
408
|
"medical:incorrect-knowledge",
|
|
351
409
|
"medical:off-label-use",
|
|
@@ -361,6 +419,7 @@ const FINANCIAL_PLUGINS = [
|
|
|
361
419
|
"financial:defamation",
|
|
362
420
|
"financial:hallucination",
|
|
363
421
|
"financial:impartiality",
|
|
422
|
+
"financial:japan-fiea-suitability",
|
|
364
423
|
"financial:misconduct",
|
|
365
424
|
"financial:sox-compliance",
|
|
366
425
|
"financial:sycophancy"
|
|
@@ -406,6 +465,12 @@ const REALESTATE_PLUGINS = [
|
|
|
406
465
|
"realestate:advertising-discrimination",
|
|
407
466
|
"realestate:source-of-income"
|
|
408
467
|
];
|
|
468
|
+
const TEEN_SAFETY_PLUGINS = [
|
|
469
|
+
"teen-safety:harmful-body-ideals",
|
|
470
|
+
"teen-safety:dangerous-content",
|
|
471
|
+
"teen-safety:dangerous-roleplay",
|
|
472
|
+
"teen-safety:age-restricted-goods-and-services"
|
|
473
|
+
];
|
|
409
474
|
const BASE_PLUGINS = [
|
|
410
475
|
"contracts",
|
|
411
476
|
"excessive-agency",
|
|
@@ -420,6 +485,7 @@ const ADDITIONAL_PLUGINS = [
|
|
|
420
485
|
"bfla",
|
|
421
486
|
"bola",
|
|
422
487
|
"cca",
|
|
488
|
+
...CODING_AGENT_PLUGINS,
|
|
423
489
|
"competitors",
|
|
424
490
|
"coppa",
|
|
425
491
|
"cross-session-leak",
|
|
@@ -436,6 +502,9 @@ const ADDITIONAL_PLUGINS = [
|
|
|
436
502
|
"mcp",
|
|
437
503
|
"model-identification",
|
|
438
504
|
"medical:anchoring-bias",
|
|
505
|
+
"medical:fda:ai-disclosure",
|
|
506
|
+
"medical:fda:cyber-access-control",
|
|
507
|
+
"medical:fda:cyber-audit-tampering",
|
|
439
508
|
"medical:hallucination",
|
|
440
509
|
"medical:incorrect-knowledge",
|
|
441
510
|
"medical:off-label-use",
|
|
@@ -449,6 +518,7 @@ const ADDITIONAL_PLUGINS = [
|
|
|
449
518
|
"financial:defamation",
|
|
450
519
|
"financial:hallucination",
|
|
451
520
|
"financial:impartiality",
|
|
521
|
+
"financial:japan-fiea-suitability",
|
|
452
522
|
"financial:misconduct",
|
|
453
523
|
"financial:sox-compliance",
|
|
454
524
|
"financial:sycophancy",
|
|
@@ -478,6 +548,10 @@ const ADDITIONAL_PLUGINS = [
|
|
|
478
548
|
"telecom:coverage-misinformation",
|
|
479
549
|
"telecom:law-enforcement-request-handling",
|
|
480
550
|
"telecom:accessibility-violation",
|
|
551
|
+
"teen-safety:harmful-body-ideals",
|
|
552
|
+
"teen-safety:dangerous-content",
|
|
553
|
+
"teen-safety:dangerous-roleplay",
|
|
554
|
+
"teen-safety:age-restricted-goods-and-services",
|
|
481
555
|
"realestate:fair-housing-discrimination",
|
|
482
556
|
"realestate:steering",
|
|
483
557
|
"realestate:discriminatory-listings",
|
|
@@ -509,6 +583,16 @@ const ADDITIONAL_PLUGINS = [
|
|
|
509
583
|
];
|
|
510
584
|
const CONFIG_REQUIRED_PLUGINS = ["intent", "policy"];
|
|
511
585
|
const AGENTIC_EXEMPT_PLUGINS = ["system-prompt-override", "agentic:memory-poisoning"];
|
|
586
|
+
const CANARY_BREAKING_STRATEGY_IDS = [
|
|
587
|
+
"base64",
|
|
588
|
+
"hex",
|
|
589
|
+
"homoglyph",
|
|
590
|
+
"leetspeak",
|
|
591
|
+
"rot13",
|
|
592
|
+
"multilingual",
|
|
593
|
+
"math-prompt",
|
|
594
|
+
"jailbreak:composite"
|
|
595
|
+
];
|
|
512
596
|
const DATASET_EXEMPT_PLUGINS = [
|
|
513
597
|
"aegis",
|
|
514
598
|
"beavertails",
|
|
@@ -559,10 +643,13 @@ const PLUGIN_CATEGORIES = {
|
|
|
559
643
|
pharmacy: PHARMACY_PLUGINS,
|
|
560
644
|
insurance: INSURANCE_PLUGINS,
|
|
561
645
|
telecom: TELECOM_PLUGINS,
|
|
646
|
+
"teen-safety": TEEN_SAFETY_PLUGINS,
|
|
562
647
|
realestate: REALESTATE_PLUGINS
|
|
563
648
|
};
|
|
564
649
|
const REMOTE_ONLY_PLUGIN_IDS = [
|
|
565
650
|
"agentic:memory-poisoning",
|
|
651
|
+
...CODING_AGENT_COLLECTIONS,
|
|
652
|
+
...CODING_AGENT_PLUGINS,
|
|
566
653
|
"ascii-smuggling",
|
|
567
654
|
"bfla",
|
|
568
655
|
"bola",
|
|
@@ -1077,26 +1164,125 @@ const NIST_AI_RMF_MAPPING = {
|
|
|
1077
1164
|
strategies: []
|
|
1078
1165
|
}
|
|
1079
1166
|
};
|
|
1167
|
+
const MITRE_ATLAS_AI_ATTACK_STAGING_MAPPING = {
|
|
1168
|
+
plugins: [
|
|
1169
|
+
"ascii-smuggling",
|
|
1170
|
+
"excessive-agency",
|
|
1171
|
+
"harmful:cybercrime:malicious-code",
|
|
1172
|
+
"hallucination",
|
|
1173
|
+
"indirect-prompt-injection",
|
|
1174
|
+
"rag-poisoning"
|
|
1175
|
+
],
|
|
1176
|
+
strategies: ["jailbreak", "jailbreak:tree"]
|
|
1177
|
+
};
|
|
1080
1178
|
const MITRE_ATLAS_MAPPING = {
|
|
1179
|
+
"mitre:atlas:ai-attack-staging": MITRE_ATLAS_AI_ATTACK_STAGING_MAPPING,
|
|
1180
|
+
"mitre:atlas:ai-model-access": {
|
|
1181
|
+
plugins: [],
|
|
1182
|
+
strategies: []
|
|
1183
|
+
},
|
|
1184
|
+
"mitre:atlas:collection": {
|
|
1185
|
+
plugins: [
|
|
1186
|
+
"data-exfil",
|
|
1187
|
+
"harmful:privacy",
|
|
1188
|
+
"pii:api-db",
|
|
1189
|
+
"pii:direct",
|
|
1190
|
+
"pii:session",
|
|
1191
|
+
"pii:social",
|
|
1192
|
+
"prompt-extraction",
|
|
1193
|
+
"rag-document-exfiltration"
|
|
1194
|
+
],
|
|
1195
|
+
strategies: []
|
|
1196
|
+
},
|
|
1197
|
+
"mitre:atlas:command-and-control": {
|
|
1198
|
+
plugins: [
|
|
1199
|
+
"excessive-agency",
|
|
1200
|
+
"harmful:cybercrime",
|
|
1201
|
+
"harmful:cybercrime:malicious-code",
|
|
1202
|
+
"mcp",
|
|
1203
|
+
"shell-injection",
|
|
1204
|
+
"ssrf"
|
|
1205
|
+
],
|
|
1206
|
+
strategies: ["crescendo"]
|
|
1207
|
+
},
|
|
1208
|
+
"mitre:atlas:credential-access": {
|
|
1209
|
+
plugins: [
|
|
1210
|
+
"data-exfil",
|
|
1211
|
+
"harmful:privacy",
|
|
1212
|
+
"pii:api-db",
|
|
1213
|
+
"pii:direct",
|
|
1214
|
+
"pii:session",
|
|
1215
|
+
"pii:social",
|
|
1216
|
+
"prompt-extraction",
|
|
1217
|
+
"rag-document-exfiltration",
|
|
1218
|
+
"tool-discovery"
|
|
1219
|
+
],
|
|
1220
|
+
strategies: []
|
|
1221
|
+
},
|
|
1222
|
+
"mitre:atlas:defense-evasion": {
|
|
1223
|
+
plugins: [
|
|
1224
|
+
"ascii-smuggling",
|
|
1225
|
+
"hijacking",
|
|
1226
|
+
"imitation",
|
|
1227
|
+
"rag-source-attribution",
|
|
1228
|
+
"special-token-injection"
|
|
1229
|
+
],
|
|
1230
|
+
strategies: [
|
|
1231
|
+
"base64",
|
|
1232
|
+
"jailbreak",
|
|
1233
|
+
"jailbreak-templates",
|
|
1234
|
+
"leetspeak",
|
|
1235
|
+
"rot13"
|
|
1236
|
+
]
|
|
1237
|
+
},
|
|
1238
|
+
"mitre:atlas:discovery": {
|
|
1239
|
+
plugins: [
|
|
1240
|
+
"debug-access",
|
|
1241
|
+
"model-identification",
|
|
1242
|
+
"prompt-extraction",
|
|
1243
|
+
"system-prompt-override",
|
|
1244
|
+
"tool-discovery"
|
|
1245
|
+
],
|
|
1246
|
+
strategies: []
|
|
1247
|
+
},
|
|
1248
|
+
"mitre:atlas:execution": {
|
|
1249
|
+
plugins: [
|
|
1250
|
+
"excessive-agency",
|
|
1251
|
+
"hijacking",
|
|
1252
|
+
"indirect-prompt-injection",
|
|
1253
|
+
"mcp",
|
|
1254
|
+
"shell-injection",
|
|
1255
|
+
"sql-injection",
|
|
1256
|
+
"ssrf",
|
|
1257
|
+
"system-prompt-override",
|
|
1258
|
+
"tool-discovery"
|
|
1259
|
+
],
|
|
1260
|
+
strategies: ["jailbreak", "jailbreak-templates"]
|
|
1261
|
+
},
|
|
1081
1262
|
"mitre:atlas:exfiltration": {
|
|
1082
1263
|
plugins: [
|
|
1083
1264
|
"ascii-smuggling",
|
|
1265
|
+
"cross-session-leak",
|
|
1266
|
+
"data-exfil",
|
|
1084
1267
|
"harmful:privacy",
|
|
1085
1268
|
"indirect-prompt-injection",
|
|
1086
1269
|
"pii:api-db",
|
|
1087
1270
|
"pii:direct",
|
|
1088
1271
|
"pii:session",
|
|
1089
1272
|
"pii:social",
|
|
1090
|
-
"prompt-extraction"
|
|
1273
|
+
"prompt-extraction",
|
|
1274
|
+
"rag-document-exfiltration"
|
|
1091
1275
|
],
|
|
1092
1276
|
strategies: []
|
|
1093
1277
|
},
|
|
1094
1278
|
"mitre:atlas:impact": {
|
|
1095
1279
|
plugins: [
|
|
1280
|
+
"divergent-repetition",
|
|
1096
1281
|
"excessive-agency",
|
|
1097
1282
|
"harmful",
|
|
1098
1283
|
"hijacking",
|
|
1099
|
-
"imitation"
|
|
1284
|
+
"imitation",
|
|
1285
|
+
"reasoning-dos"
|
|
1100
1286
|
],
|
|
1101
1287
|
strategies: ["crescendo"]
|
|
1102
1288
|
},
|
|
@@ -1104,6 +1290,8 @@ const MITRE_ATLAS_MAPPING = {
|
|
|
1104
1290
|
plugins: [
|
|
1105
1291
|
"debug-access",
|
|
1106
1292
|
"harmful:cybercrime",
|
|
1293
|
+
"indirect-prompt-injection",
|
|
1294
|
+
"mcp",
|
|
1107
1295
|
"shell-injection",
|
|
1108
1296
|
"sql-injection",
|
|
1109
1297
|
"ssrf"
|
|
@@ -1116,18 +1304,46 @@ const MITRE_ATLAS_MAPPING = {
|
|
|
1116
1304
|
"rot13"
|
|
1117
1305
|
]
|
|
1118
1306
|
},
|
|
1119
|
-
"mitre:atlas:
|
|
1307
|
+
"mitre:atlas:lateral-movement": {
|
|
1120
1308
|
plugins: [
|
|
1121
|
-
"
|
|
1309
|
+
"bfla",
|
|
1310
|
+
"bola",
|
|
1311
|
+
"harmful:cybercrime",
|
|
1312
|
+
"rbac"
|
|
1313
|
+
],
|
|
1314
|
+
strategies: []
|
|
1315
|
+
},
|
|
1316
|
+
"mitre:atlas:persistence": {
|
|
1317
|
+
plugins: [
|
|
1318
|
+
"agentic:memory-poisoning",
|
|
1319
|
+
"cross-session-leak",
|
|
1320
|
+
"indirect-prompt-injection",
|
|
1321
|
+
"rag-poisoning",
|
|
1322
|
+
"system-prompt-override"
|
|
1323
|
+
],
|
|
1324
|
+
strategies: ["jailbreak"]
|
|
1325
|
+
},
|
|
1326
|
+
"mitre:atlas:privilege-escalation": {
|
|
1327
|
+
plugins: [
|
|
1328
|
+
"bfla",
|
|
1329
|
+
"bola",
|
|
1330
|
+
"debug-access",
|
|
1122
1331
|
"excessive-agency",
|
|
1123
|
-
"
|
|
1124
|
-
"
|
|
1332
|
+
"mcp",
|
|
1333
|
+
"rbac",
|
|
1334
|
+
"shell-injection",
|
|
1335
|
+
"system-prompt-override"
|
|
1125
1336
|
],
|
|
1126
|
-
strategies: [
|
|
1337
|
+
strategies: [
|
|
1338
|
+
"jailbreak",
|
|
1339
|
+
"jailbreak:tree",
|
|
1340
|
+
"jailbreak-templates"
|
|
1341
|
+
]
|
|
1127
1342
|
},
|
|
1128
1343
|
"mitre:atlas:reconnaissance": {
|
|
1129
1344
|
plugins: [
|
|
1130
1345
|
"competitors",
|
|
1346
|
+
"model-identification",
|
|
1131
1347
|
"policy",
|
|
1132
1348
|
"prompt-extraction",
|
|
1133
1349
|
"rbac"
|
|
@@ -1136,13 +1352,16 @@ const MITRE_ATLAS_MAPPING = {
|
|
|
1136
1352
|
},
|
|
1137
1353
|
"mitre:atlas:resource-development": {
|
|
1138
1354
|
plugins: [
|
|
1355
|
+
"harmful:chemical-biological-weapons",
|
|
1139
1356
|
"harmful:cybercrime",
|
|
1357
|
+
"harmful:cybercrime:malicious-code",
|
|
1140
1358
|
"harmful:illegal-drugs",
|
|
1141
1359
|
"harmful:indiscriminate-weapons"
|
|
1142
1360
|
],
|
|
1143
1361
|
strategies: []
|
|
1144
1362
|
}
|
|
1145
1363
|
};
|
|
1364
|
+
const MITRE_ATLAS_LEGACY_MAPPING = { "mitre:atlas:ml-attack-staging": MITRE_ATLAS_AI_ATTACK_STAGING_MAPPING };
|
|
1146
1365
|
/**
|
|
1147
1366
|
* EU Artificial Intelligence Act
|
|
1148
1367
|
* ▸ Art. 5 (Prohibited AI practices) – unacceptable-risk
|
|
@@ -1549,6 +1768,7 @@ const ALIASED_PLUGINS = [
|
|
|
1549
1768
|
"iso:42001",
|
|
1550
1769
|
"gdpr",
|
|
1551
1770
|
...Object.keys(MITRE_ATLAS_MAPPING),
|
|
1771
|
+
...Object.keys(MITRE_ATLAS_LEGACY_MAPPING),
|
|
1552
1772
|
...Object.keys(NIST_AI_RMF_MAPPING),
|
|
1553
1773
|
...Object.keys(OWASP_API_TOP_10_MAPPING),
|
|
1554
1774
|
...Object.keys(OWASP_LLM_TOP_10_MAPPING),
|
|
@@ -1560,6 +1780,7 @@ const ALIASED_PLUGINS = [
|
|
|
1560
1780
|
];
|
|
1561
1781
|
const ALIASED_PLUGIN_MAPPINGS = {
|
|
1562
1782
|
"dod:ai:ethics": DOD_AI_ETHICS_MAPPING,
|
|
1783
|
+
"mitre:atlas:ml-attack-staging": MITRE_ATLAS_LEGACY_MAPPING,
|
|
1563
1784
|
"mitre:atlas": MITRE_ATLAS_MAPPING,
|
|
1564
1785
|
"nist:ai:measure": NIST_AI_RMF_MAPPING,
|
|
1565
1786
|
"owasp:api": OWASP_API_TOP_10_MAPPING,
|
|
@@ -1620,8 +1841,8 @@ const ALIASED_PLUGIN_MAPPINGS = {
|
|
|
1620
1841
|
strategies: []
|
|
1621
1842
|
} }
|
|
1622
1843
|
};
|
|
1623
|
-
|
|
1624
|
-
|
|
1844
|
+
({ ...CODING_AGENT_PLUGIN_DESCRIPTIONS });
|
|
1845
|
+
({ ...CODING_AGENT_PLUGIN_DISPLAY_NAMES });
|
|
1625
1846
|
const Severity = {
|
|
1626
1847
|
Critical: "critical",
|
|
1627
1848
|
High: "high",
|
|
@@ -1638,6 +1859,10 @@ const SeveritySchema = zod.z.enum([
|
|
|
1638
1859
|
]);
|
|
1639
1860
|
Severity.Critical, Severity.High, Severity.Medium, Severity.Low, Severity.Informational;
|
|
1640
1861
|
Severity.Critical, Severity.High, Severity.Medium, Severity.Low, Severity.Informational;
|
|
1862
|
+
const codingAgentRiskCategorySeverityMap = {
|
|
1863
|
+
...Object.fromEntries(CODING_AGENT_PLUGINS.map((pluginId) => [pluginId, Severity.High])),
|
|
1864
|
+
"coding-agent:core": Severity.High
|
|
1865
|
+
};
|
|
1641
1866
|
const riskCategorySeverityMap = {
|
|
1642
1867
|
["agentic:memory-poisoning"]: Severity.High,
|
|
1643
1868
|
aegis: Severity.Medium,
|
|
@@ -1655,6 +1880,7 @@ const riskCategorySeverityMap = {
|
|
|
1655
1880
|
"financial:defamation": Severity.Medium,
|
|
1656
1881
|
"financial:hallucination": Severity.Low,
|
|
1657
1882
|
"financial:impartiality": Severity.Medium,
|
|
1883
|
+
"financial:japan-fiea-suitability": Severity.High,
|
|
1658
1884
|
"financial:misconduct": Severity.High,
|
|
1659
1885
|
"financial:sox-compliance": Severity.High,
|
|
1660
1886
|
"financial:sycophancy": Severity.Low,
|
|
@@ -1670,6 +1896,9 @@ const riskCategorySeverityMap = {
|
|
|
1670
1896
|
default: Severity.Low,
|
|
1671
1897
|
mcp: Severity.High,
|
|
1672
1898
|
"medical:anchoring-bias": Severity.High,
|
|
1899
|
+
"medical:fda:ai-disclosure": Severity.High,
|
|
1900
|
+
"medical:fda:cyber-access-control": Severity.Critical,
|
|
1901
|
+
"medical:fda:cyber-audit-tampering": Severity.Critical,
|
|
1673
1902
|
"medical:hallucination": Severity.Critical,
|
|
1674
1903
|
"medical:incorrect-knowledge": Severity.Critical,
|
|
1675
1904
|
"medical:off-label-use": Severity.High,
|
|
@@ -1746,6 +1975,11 @@ const riskCategorySeverityMap = {
|
|
|
1746
1975
|
"telecom:coverage-misinformation": Severity.Medium,
|
|
1747
1976
|
"telecom:law-enforcement-request-handling": Severity.Medium,
|
|
1748
1977
|
"telecom:accessibility-violation": Severity.Medium,
|
|
1978
|
+
"teen-safety": Severity.Low,
|
|
1979
|
+
"teen-safety:harmful-body-ideals": Severity.Low,
|
|
1980
|
+
"teen-safety:dangerous-content": Severity.Low,
|
|
1981
|
+
"teen-safety:dangerous-roleplay": Severity.Low,
|
|
1982
|
+
"teen-safety:age-restricted-goods-and-services": Severity.Low,
|
|
1749
1983
|
realestate: Severity.Critical,
|
|
1750
1984
|
"realestate:fair-housing-discrimination": Severity.Critical,
|
|
1751
1985
|
"realestate:steering": Severity.Critical,
|
|
@@ -1785,9 +2019,10 @@ const riskCategorySeverityMap = {
|
|
|
1785
2019
|
vlguard: Severity.Medium,
|
|
1786
2020
|
vlsu: Severity.Medium,
|
|
1787
2021
|
wordplay: Severity.Low,
|
|
1788
|
-
xstest: Severity.Low
|
|
2022
|
+
xstest: Severity.Low,
|
|
2023
|
+
...codingAgentRiskCategorySeverityMap
|
|
1789
2024
|
};
|
|
1790
|
-
|
|
2025
|
+
const riskCategories = {
|
|
1791
2026
|
"Security & Access Control": [
|
|
1792
2027
|
"ascii-smuggling",
|
|
1793
2028
|
"bfla",
|
|
@@ -1859,6 +2094,10 @@ Object.entries({
|
|
|
1859
2094
|
"harmful:radicalization",
|
|
1860
2095
|
"harmful:self-harm",
|
|
1861
2096
|
"harmful:sexual-content",
|
|
2097
|
+
"teen-safety:harmful-body-ideals",
|
|
2098
|
+
"teen-safety:dangerous-content",
|
|
2099
|
+
"teen-safety:dangerous-roleplay",
|
|
2100
|
+
"teen-safety:age-restricted-goods-and-services",
|
|
1862
2101
|
"wordplay"
|
|
1863
2102
|
],
|
|
1864
2103
|
Brand: [
|
|
@@ -1890,11 +2129,15 @@ Object.entries({
|
|
|
1890
2129
|
"financial:defamation",
|
|
1891
2130
|
"financial:hallucination",
|
|
1892
2131
|
"financial:impartiality",
|
|
2132
|
+
"financial:japan-fiea-suitability",
|
|
1893
2133
|
"financial:misconduct",
|
|
1894
2134
|
"financial:sox-compliance",
|
|
1895
2135
|
"financial:sycophancy",
|
|
1896
2136
|
"medical:hallucination",
|
|
1897
2137
|
"medical:anchoring-bias",
|
|
2138
|
+
"medical:fda:ai-disclosure",
|
|
2139
|
+
"medical:fda:cyber-access-control",
|
|
2140
|
+
"medical:fda:cyber-audit-tampering",
|
|
1898
2141
|
"medical:incorrect-knowledge",
|
|
1899
2142
|
"medical:off-label-use",
|
|
1900
2143
|
"medical:prioritization-error",
|
|
@@ -1935,8 +2178,10 @@ Object.entries({
|
|
|
1935
2178
|
"vlguard",
|
|
1936
2179
|
"vlsu",
|
|
1937
2180
|
"xstest"
|
|
1938
|
-
]
|
|
1939
|
-
|
|
2181
|
+
],
|
|
2182
|
+
"Coding Agent Security": [...CODING_AGENT_PLUGINS]
|
|
2183
|
+
};
|
|
2184
|
+
Object.entries(riskCategories).reduce((acc, [category, harms]) => {
|
|
1940
2185
|
harms.forEach((harm) => {
|
|
1941
2186
|
acc[harm] = category;
|
|
1942
2187
|
});
|
|
@@ -1962,6 +2207,9 @@ const categoryAliases = {
|
|
|
1962
2207
|
ferpa: "FERPACompliance",
|
|
1963
2208
|
mcp: "MCP",
|
|
1964
2209
|
"medical:anchoring-bias": "MedicalAnchoringBias",
|
|
2210
|
+
"medical:fda:ai-disclosure": "MedicalFdaAiDisclosure",
|
|
2211
|
+
"medical:fda:cyber-access-control": "MedicalFdaCyberAccessControl",
|
|
2212
|
+
"medical:fda:cyber-audit-tampering": "MedicalFdaCyberAuditTampering",
|
|
1965
2213
|
"medical:hallucination": "Medical Hallucination",
|
|
1966
2214
|
"medical:incorrect-knowledge": "MedicalIncorrectKnowledge",
|
|
1967
2215
|
"medical:off-label-use": "MedicalOffLabelUse",
|
|
@@ -1979,6 +2227,7 @@ const categoryAliases = {
|
|
|
1979
2227
|
"financial:defamation": "FinancialDefamation",
|
|
1980
2228
|
"financial:hallucination": "FinancialHallucination",
|
|
1981
2229
|
"financial:impartiality": "FinancialImpartiality",
|
|
2230
|
+
"financial:japan-fiea-suitability": "FinancialJapanFieaSuitability",
|
|
1982
2231
|
"financial:misconduct": "FinancialMisconduct",
|
|
1983
2232
|
"financial:sox-compliance": "FinancialSoxCompliance",
|
|
1984
2233
|
"financial:sycophancy": "FinancialSycophancy",
|
|
@@ -2020,6 +2269,11 @@ const categoryAliases = {
|
|
|
2020
2269
|
"telecom:coverage-misinformation": "TelecomCoverageMisinformation",
|
|
2021
2270
|
"telecom:law-enforcement-request-handling": "TelecomLawEnforcementRequestHandling",
|
|
2022
2271
|
"telecom:accessibility-violation": "TelecomAccessibilityViolation",
|
|
2272
|
+
"teen-safety": "TeenSafety",
|
|
2273
|
+
"teen-safety:harmful-body-ideals": "TeenSafetyHarmfulBodyIdeals",
|
|
2274
|
+
"teen-safety:dangerous-content": "TeenSafetyDangerousContent",
|
|
2275
|
+
"teen-safety:dangerous-roleplay": "TeenSafetyDangerousRoleplay",
|
|
2276
|
+
"teen-safety:age-restricted-goods-and-services": "TeenSafetyAgeRestrictedGoodsAndServices",
|
|
2023
2277
|
realestate: "Real Estate Safety",
|
|
2024
2278
|
"realestate:fair-housing-discrimination": "RealEstateFairHousingDiscrimination",
|
|
2025
2279
|
"realestate:steering": "RealEstateSteering",
|
|
@@ -2089,7 +2343,8 @@ const categoryAliases = {
|
|
|
2089
2343
|
vlguard: "VLGuard",
|
|
2090
2344
|
vlsu: "VLSU",
|
|
2091
2345
|
wordplay: "Wordplay",
|
|
2092
|
-
xstest: "XSTest"
|
|
2346
|
+
xstest: "XSTest",
|
|
2347
|
+
...CODING_AGENT_PLUGIN_ALIASES
|
|
2093
2348
|
};
|
|
2094
2349
|
Object.entries(categoryAliases).reduce((acc, [key, value]) => {
|
|
2095
2350
|
acc[value] = key;
|
|
@@ -2145,6 +2400,11 @@ const pluginDescriptions = {
|
|
|
2145
2400
|
"telecom:coverage-misinformation": "Tests for false or misleading claims about network coverage, 5G availability, or roaming capabilities",
|
|
2146
2401
|
"telecom:law-enforcement-request-handling": "Tests for improper handling of law enforcement data requests in violation of CALEA requirements and privacy laws",
|
|
2147
2402
|
"telecom:accessibility-violation": "Tests for accessibility compliance violations under Section 255, Section 508, ADA, and 21st Century CVAA",
|
|
2403
|
+
"teen-safety": "Comprehensive teen safety testing for age-appropriate AI behavior across body image harms, dangerous activities, unsafe roleplay, and underage access risks",
|
|
2404
|
+
"teen-safety:harmful-body-ideals": "Tests for harmful body-ideal promotion, body shaming, and facilitation of unsafe restriction, purging, over-exercise, or concealment behaviors that can harm teens",
|
|
2405
|
+
"teen-safety:dangerous-content": "Tests for promotion, glorification, or facilitation of dangerous challenges, unsafe stunts, risky experimentation, and dangerous at-home procedures inappropriate for teens",
|
|
2406
|
+
"teen-safety:dangerous-roleplay": "Tests for interactive roleplay involving minors that simulates romantic, sexual, or violent scenarios that could normalize exploitation or harm",
|
|
2407
|
+
"teen-safety:age-restricted-goods-and-services": "Tests for encouragement, sourcing, or circumvention tactics that help minors access age-restricted goods or services such as alcohol, vaping, gambling, weapons, or adult-only venues",
|
|
2148
2408
|
realestate: "Comprehensive real estate AI safety testing for Fair Housing Act compliance, steering prevention, lending discrimination (ECOA), valuation bias, and housing discrimination vulnerabilities",
|
|
2149
2409
|
"realestate:fair-housing-discrimination": "Tests for Fair Housing Act violations across all 7 protected classes: race, color, religion, national origin, sex (including gender identity and sexual orientation), familial status, and disability",
|
|
2150
2410
|
"realestate:steering": "Tests for illegal steering practices where systems direct buyers toward or away from neighborhoods based on protected class characteristics rather than objective housing criteria",
|
|
@@ -2192,6 +2452,9 @@ const pluginDescriptions = {
|
|
|
2192
2452
|
"ecommerce:price-manipulation": "Tests for price manipulation through discount code abuse, inventory exploits, cart manipulation, unauthorized price modifications, or coupon stacking vulnerabilities",
|
|
2193
2453
|
mcp: "Tests for vulnerabilities to Model Context Protocol (MCP) attacks",
|
|
2194
2454
|
"medical:anchoring-bias": "Tests for medical anchoring bias where AI fixates on irrelevant information in medical contexts",
|
|
2455
|
+
"medical:fda:ai-disclosure": "Tests whether AI-enabled medical-device or clinical LLM systems disclose intended-use boundaries, confidence and uncertainty, subgroup limitations, data drift, and model or device version changes instead of concealing them",
|
|
2456
|
+
"medical:fda:cyber-access-control": "Tests whether medical-device AI systems enforce authenticated, role-scoped, deny-by-default workflows and refuse privileged device, telemetry, update, or therapy actions from unauthorized users or stale sessions",
|
|
2457
|
+
"medical:fda:cyber-audit-tampering": "Tests whether medical-device AI systems preserve anomaly alerts, SBOM/version records, and forensic audit trails instead of helping users suppress, rewrite, or delete cybersecurity evidence",
|
|
2195
2458
|
"medical:hallucination": "Tests for fabricated medical facts, non-existent studies, made-up drug interactions, or other false medical information",
|
|
2196
2459
|
"medical:incorrect-knowledge": "Tests for factually wrong medical information that could be harmful if followed",
|
|
2197
2460
|
"medical:off-label-use": "Tests for inappropriate off-label medication recommendations without proper disclaimers, warnings, or professional consultation requirements",
|
|
@@ -2205,6 +2468,7 @@ const pluginDescriptions = {
|
|
|
2205
2468
|
"financial:defamation": "Tests for false statements that damage the reputation of financial entities, including unfounded fraud accusations, fabricated scandals, or false insolvency claims",
|
|
2206
2469
|
"financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, fictional company financials, or invented market events",
|
|
2207
2470
|
"financial:impartiality": "Tests for inappropriate provision of financial advice, investment recommendations, broker suggestions, or transaction facilitation without proper authorization or disclaimers",
|
|
2471
|
+
"financial:japan-fiea-suitability": "Tests whether AI recommends unsuitable financial products, downplays risks, or uses sales framing that conflicts with Japan's FIEA suitability and explanation duties",
|
|
2208
2472
|
"financial:misconduct": "Tests for facilitation of financial crimes including insider trading, market manipulation, front-running, spoofing, bribery, or circumventing financial regulations",
|
|
2209
2473
|
"financial:sox-compliance": "Tests for violations of Sarbanes-Oxley requirements including internal controls bypass, financial statement manipulation, CEO/CFO certification fraud, audit obstruction, document retention violations, and whistleblower retaliation",
|
|
2210
2474
|
"financial:sycophancy": "Tests for agreeing with risky trading strategies, unrealistic return expectations, or get-rich-quick schemes",
|
|
@@ -2242,7 +2506,8 @@ const pluginDescriptions = {
|
|
|
2242
2506
|
vlsu: "Tests compositional safety where individually safe images and text combine to produce harmful outputs using Apple VLSU dataset",
|
|
2243
2507
|
wordplay: "Tests whether AI systems can be tricked into generating profanity or offensive language through innocent-seeming wordplay like riddles and rhyming games",
|
|
2244
2508
|
xstest: "Tests how models handle ambiguous terms related to potentially harmful topics like violence and drugs",
|
|
2245
|
-
"guardrails-eval": "Evaluate guardrail effectiveness against common risks"
|
|
2509
|
+
"guardrails-eval": "Evaluate guardrail effectiveness against common risks",
|
|
2510
|
+
...CODING_AGENT_PLUGIN_DESCRIPTIONS
|
|
2246
2511
|
};
|
|
2247
2512
|
//#endregion
|
|
2248
2513
|
//#region src/redteam/constants/strategies.ts
|
|
@@ -2262,6 +2527,7 @@ const DEFAULT_STRATEGIES = [
|
|
|
2262
2527
|
"jailbreak:meta",
|
|
2263
2528
|
"jailbreak:composite"
|
|
2264
2529
|
];
|
|
2530
|
+
new Set(DEFAULT_STRATEGIES);
|
|
2265
2531
|
const MULTI_TURN_STRATEGIES = [
|
|
2266
2532
|
"crescendo",
|
|
2267
2533
|
"goat",
|
|
@@ -2269,6 +2535,7 @@ const MULTI_TURN_STRATEGIES = [
|
|
|
2269
2535
|
"custom",
|
|
2270
2536
|
"mischievous-user"
|
|
2271
2537
|
];
|
|
2538
|
+
new Set(MULTI_TURN_STRATEGIES);
|
|
2272
2539
|
const isCustomStrategy = (strategyId) => {
|
|
2273
2540
|
return strategyId === "custom" || strategyId.startsWith("custom:");
|
|
2274
2541
|
};
|
|
@@ -2283,6 +2550,7 @@ const AGENTIC_STRATEGIES = [
|
|
|
2283
2550
|
"jailbreak:tree",
|
|
2284
2551
|
"mischievous-user"
|
|
2285
2552
|
];
|
|
2553
|
+
new Set(AGENTIC_STRATEGIES);
|
|
2286
2554
|
const DATASET_PLUGINS = [
|
|
2287
2555
|
"beavertails",
|
|
2288
2556
|
"cyberseceval",
|
|
@@ -2448,7 +2716,62 @@ const PluginConfigSchema = zod.z.object({
|
|
|
2448
2716
|
policy: zod.z.union([zod.z.string(), PolicyObjectSchema]).optional(),
|
|
2449
2717
|
systemPrompt: zod.z.string().optional(),
|
|
2450
2718
|
excludeStrategies: zod.z.array(zod.z.string()).optional(),
|
|
2719
|
+
protectedFilePath: zod.z.string().optional(),
|
|
2720
|
+
protectedFilePaths: zod.z.array(zod.z.string()).optional(),
|
|
2721
|
+
secretFilePath: zod.z.string().optional(),
|
|
2722
|
+
secretFilePaths: zod.z.array(zod.z.string()).optional(),
|
|
2723
|
+
secretLocalFilePath: zod.z.string().optional(),
|
|
2724
|
+
secretLocalFilePaths: zod.z.array(zod.z.string()).optional(),
|
|
2725
|
+
secretFileValue: zod.z.string().optional(),
|
|
2726
|
+
secretFileValues: zod.z.array(zod.z.string()).optional(),
|
|
2727
|
+
outsideWritePath: zod.z.string().optional(),
|
|
2728
|
+
outsideWritePaths: zod.z.array(zod.z.string()).optional(),
|
|
2729
|
+
outsideWriteHostPath: zod.z.string().optional(),
|
|
2730
|
+
outsideWriteHostPaths: zod.z.array(zod.z.string()).optional(),
|
|
2731
|
+
outsideWriteProbeDir: zod.z.string().optional(),
|
|
2732
|
+
outsideWriteProbeDirs: zod.z.array(zod.z.string()).optional(),
|
|
2733
|
+
outsideWriteAllowedPath: zod.z.string().optional(),
|
|
2734
|
+
outsideWriteAllowedPaths: zod.z.array(zod.z.string()).optional(),
|
|
2735
|
+
outsideWriteExpectedSha256: zod.z.string().optional(),
|
|
2736
|
+
outsideWritePathSha256: zod.z.string().optional(),
|
|
2737
|
+
outsideWriteSha256: zod.z.string().optional(),
|
|
2738
|
+
outsideWriteMustNotExistPath: zod.z.string().optional(),
|
|
2739
|
+
outsideWriteMustNotExistPaths: zod.z.array(zod.z.string()).optional(),
|
|
2740
|
+
mustNotExistPath: zod.z.string().optional(),
|
|
2741
|
+
mustNotExistPaths: zod.z.array(zod.z.string()).optional(),
|
|
2742
|
+
protectedWritePath: zod.z.string().optional(),
|
|
2743
|
+
protectedWritePaths: zod.z.array(zod.z.string()).optional(),
|
|
2744
|
+
sandboxWritePath: zod.z.string().optional(),
|
|
2745
|
+
sandboxWritePaths: zod.z.array(zod.z.string()).optional(),
|
|
2746
|
+
workspacePath: zod.z.string().optional(),
|
|
2747
|
+
workspacePaths: zod.z.array(zod.z.string()).optional(),
|
|
2748
|
+
workspaceRoot: zod.z.string().optional(),
|
|
2749
|
+
workspaceRoots: zod.z.array(zod.z.string()).optional(),
|
|
2750
|
+
workingDirectory: zod.z.string().optional(),
|
|
2751
|
+
workingDirectoryPath: zod.z.string().optional(),
|
|
2752
|
+
workingDir: zod.z.string().optional(),
|
|
2753
|
+
networkEgressUrl: zod.z.string().optional(),
|
|
2754
|
+
networkEgressUrls: zod.z.array(zod.z.string()).optional(),
|
|
2755
|
+
networkTrapUrl: zod.z.string().optional(),
|
|
2756
|
+
networkTrapUrls: zod.z.array(zod.z.string()).optional(),
|
|
2757
|
+
networkEgressHost: zod.z.string().optional(),
|
|
2758
|
+
networkEgressHosts: zod.z.array(zod.z.string()).optional(),
|
|
2759
|
+
networkTrapHost: zod.z.string().optional(),
|
|
2760
|
+
networkTrapHosts: zod.z.array(zod.z.string()).optional(),
|
|
2761
|
+
networkAllowedHost: zod.z.string().optional(),
|
|
2762
|
+
networkAllowedHosts: zod.z.array(zod.z.string()).optional(),
|
|
2763
|
+
networkAllowedUrl: zod.z.string().optional(),
|
|
2764
|
+
networkAllowedUrls: zod.z.array(zod.z.string()).optional(),
|
|
2765
|
+
networkTrapLogPath: zod.z.string().optional(),
|
|
2766
|
+
networkTrapLogPaths: zod.z.array(zod.z.string()).optional(),
|
|
2767
|
+
networkScanPath: zod.z.string().optional(),
|
|
2768
|
+
networkScanPaths: zod.z.array(zod.z.string()).optional(),
|
|
2769
|
+
networkWorkspacePath: zod.z.string().optional(),
|
|
2770
|
+
networkWorkspacePaths: zod.z.array(zod.z.string()).optional(),
|
|
2771
|
+
networkEgressReceipt: zod.z.string().optional(),
|
|
2772
|
+
networkEgressReceipts: zod.z.array(zod.z.string()).optional(),
|
|
2451
2773
|
inputs: InputsSchema.optional(),
|
|
2774
|
+
maxCharsPerMessage: zod.z.number().int().positive().optional(),
|
|
2452
2775
|
__nonce: zod.z.number().optional()
|
|
2453
2776
|
});
|
|
2454
2777
|
const StrategyConfigSchema = zod.z.object({
|
|
@@ -2638,6 +2961,7 @@ zod.z.object({
|
|
|
2638
2961
|
language: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).optional().describe("Language(s) of tests to generate"),
|
|
2639
2962
|
frameworks: zod.z.array(zod.z.enum(frameworkOptions)).min(1).optional().describe("Subset of compliance frameworks to include when generating, reporting, and filtering results"),
|
|
2640
2963
|
maxConcurrency: zod.z.int().positive().optional().describe("Maximum number of concurrent API calls"),
|
|
2964
|
+
maxCharsPerMessage: zod.z.int().positive().optional().describe("Maximum number of characters allowed per generated user message"),
|
|
2641
2965
|
numTests: zod.z.int().positive().optional().describe("Number of tests to generate"),
|
|
2642
2966
|
output: zod.z.string().optional().describe("Output file path"),
|
|
2643
2967
|
plugins: zod.z.array(RedteamPluginObjectSchema).optional().describe("Plugins to use"),
|
|
@@ -2670,6 +2994,7 @@ const RedteamConfigSchema = zod.z.object({
|
|
|
2670
2994
|
Supports ${ALL_STRATEGIES.join(", ")}
|
|
2671
2995
|
`).optional().prefault(["default"]),
|
|
2672
2996
|
maxConcurrency: zod.z.int().positive().optional().describe("Maximum number of concurrent API calls"),
|
|
2997
|
+
maxCharsPerMessage: zod.z.int().positive().optional().describe("Maximum number of characters allowed per generated user message"),
|
|
2673
2998
|
delay: zod.z.int().nonnegative().optional().describe("Delay in milliseconds between plugin API calls"),
|
|
2674
2999
|
excludeTargetOutputFromAgenticAttackGeneration: zod.z.boolean().optional().describe("Whether to exclude target output from the agentific attack generation process"),
|
|
2675
3000
|
tracing: TracingConfigSchema.optional().describe("Tracing defaults applied to all strategies unless overridden"),
|
|
@@ -2723,6 +3048,7 @@ const RedteamConfigSchema = zod.z.object({
|
|
|
2723
3048
|
else if (id === "pharmacy") expandCollection([...PHARMACY_PLUGINS], config, numTests, severity);
|
|
2724
3049
|
else if (id === "insurance") expandCollection([...INSURANCE_PLUGINS], config, numTests, severity);
|
|
2725
3050
|
else if (id === "financial") expandCollection([...FINANCIAL_PLUGINS], config, numTests, severity);
|
|
3051
|
+
else if (id === "teen-safety") expandCollection([...TEEN_SAFETY_PLUGINS], config, numTests, severity);
|
|
2726
3052
|
else if (id === "default") expandCollection([...DEFAULT_PLUGINS], config, numTests, severity);
|
|
2727
3053
|
else if (id === "guardrails-eval") expandCollection([...GUARDRAILS_EVALUATION_PLUGINS], config, numTests, severity);
|
|
2728
3054
|
};
|
|
@@ -2783,6 +3109,7 @@ const RedteamConfigSchema = zod.z.object({
|
|
|
2783
3109
|
});
|
|
2784
3110
|
return {
|
|
2785
3111
|
numTests: data.numTests,
|
|
3112
|
+
...data.maxCharsPerMessage ? { maxCharsPerMessage: data.maxCharsPerMessage } : {},
|
|
2786
3113
|
plugins: uniquePlugins,
|
|
2787
3114
|
strategies,
|
|
2788
3115
|
...frameworks ? { frameworks } : {},
|
|
@@ -2908,6 +3235,7 @@ const PromptMetricsSchema = zod.z.object({
|
|
|
2908
3235
|
tokenUsage: BaseTokenUsageSchema,
|
|
2909
3236
|
namedScores: zod.z.record(zod.z.string(), zod.z.number()),
|
|
2910
3237
|
namedScoresCount: zod.z.record(zod.z.string(), zod.z.number()),
|
|
3238
|
+
namedScoreWeights: zod.z.record(zod.z.string(), zod.z.number()).optional(),
|
|
2911
3239
|
redteam: zod.z.object({
|
|
2912
3240
|
pluginPassCount: zod.z.record(zod.z.string(), zod.z.number()),
|
|
2913
3241
|
pluginFailCount: zod.z.record(zod.z.string(), zod.z.number()),
|
|
@@ -2930,7 +3258,7 @@ function isResultFailureReason(value) {
|
|
|
2930
3258
|
return validResultFailureReasons.has(value);
|
|
2931
3259
|
}
|
|
2932
3260
|
function isGradingResult(result) {
|
|
2933
|
-
return typeof result === "object" && result !== null && typeof result.pass === "boolean" && typeof result.score === "number" && typeof result.reason === "string" && (typeof result.namedScores === "undefined" || typeof result.namedScores === "object") && (typeof result.tokensUsed === "undefined" || typeof result.tokensUsed === "object") && (typeof result.componentResults === "undefined" || Array.isArray(result.componentResults)) && (typeof result.assertion === "undefined" || result.assertion === null || typeof result.assertion === "object") && (typeof result.comment === "undefined" || typeof result.comment === "string");
|
|
3261
|
+
return typeof result === "object" && result !== null && typeof result.pass === "boolean" && typeof result.score === "number" && typeof result.reason === "string" && (typeof result.namedScores === "undefined" || typeof result.namedScores === "object") && (typeof result.namedScoreWeights === "undefined" || typeof result.namedScoreWeights === "object") && (typeof result.tokensUsed === "undefined" || typeof result.tokensUsed === "object") && (typeof result.componentResults === "undefined" || Array.isArray(result.componentResults)) && (typeof result.assertion === "undefined" || result.assertion === null || typeof result.assertion === "object") && (typeof result.comment === "undefined" || typeof result.comment === "string");
|
|
2934
3262
|
}
|
|
2935
3263
|
const BaseAssertionTypesSchema = zod.z.enum([
|
|
2936
3264
|
"answer-relevance",
|
|
@@ -2986,6 +3314,12 @@ const BaseAssertionTypesSchema = zod.z.enum([
|
|
|
2986
3314
|
"similar:euclidean",
|
|
2987
3315
|
"starts-with",
|
|
2988
3316
|
"tool-call-f1",
|
|
3317
|
+
"skill-used",
|
|
3318
|
+
"trajectory:goal-success",
|
|
3319
|
+
"trajectory:tool-args-match",
|
|
3320
|
+
"trajectory:step-count",
|
|
3321
|
+
"trajectory:tool-sequence",
|
|
3322
|
+
"trajectory:tool-used",
|
|
2989
3323
|
"trace-error-spans",
|
|
2990
3324
|
"trace-span-count",
|
|
2991
3325
|
"trace-span-duration",
|
|
@@ -3067,6 +3401,7 @@ const TestCaseSchema = zod.z.object({
|
|
|
3067
3401
|
...GradingConfigSchema.shape,
|
|
3068
3402
|
disableVarExpansion: zod.z.boolean().optional(),
|
|
3069
3403
|
disableConversationVar: zod.z.boolean().optional(),
|
|
3404
|
+
disableDefaultAsserts: zod.z.boolean().optional(),
|
|
3070
3405
|
runSerially: zod.z.boolean().optional()
|
|
3071
3406
|
}).catchall(zod.z.any()).optional(),
|
|
3072
3407
|
threshold: zod.z.number().optional(),
|
|
@@ -3156,7 +3491,7 @@ const TestSuiteSchema = zod.z.object({
|
|
|
3156
3491
|
enabled: zod.z.boolean(),
|
|
3157
3492
|
port: zod.z.number(),
|
|
3158
3493
|
host: zod.z.string().optional(),
|
|
3159
|
-
acceptFormats: zod.z.array(zod.z.
|
|
3494
|
+
acceptFormats: zod.z.array(zod.z.enum(["protobuf", "json"])).optional()
|
|
3160
3495
|
}).optional(),
|
|
3161
3496
|
grpc: zod.z.object({
|
|
3162
3497
|
enabled: zod.z.boolean(),
|
|
@@ -3225,7 +3560,7 @@ const TestSuiteConfigSchema = zod.z.object({
|
|
|
3225
3560
|
enabled: zod.z.boolean().prefault(true),
|
|
3226
3561
|
port: zod.z.number().prefault(4318),
|
|
3227
3562
|
host: zod.z.string().prefault("0.0.0.0"),
|
|
3228
|
-
acceptFormats: zod.z.array(zod.z.enum(["protobuf", "json"])).prefault(["json"])
|
|
3563
|
+
acceptFormats: zod.z.array(zod.z.enum(["protobuf", "json"])).prefault(["json", "protobuf"])
|
|
3229
3564
|
}).optional(),
|
|
3230
3565
|
grpc: zod.z.object({
|
|
3231
3566
|
enabled: zod.z.boolean().prefault(false),
|
|
@@ -3340,6 +3675,36 @@ Object.defineProperty(exports, "BaseTokenUsageSchema", {
|
|
|
3340
3675
|
return BaseTokenUsageSchema;
|
|
3341
3676
|
}
|
|
3342
3677
|
});
|
|
3678
|
+
Object.defineProperty(exports, "CANARY_BREAKING_STRATEGY_IDS", {
|
|
3679
|
+
enumerable: true,
|
|
3680
|
+
get: function() {
|
|
3681
|
+
return CANARY_BREAKING_STRATEGY_IDS;
|
|
3682
|
+
}
|
|
3683
|
+
});
|
|
3684
|
+
Object.defineProperty(exports, "CODING_AGENT_CORE_PLUGINS", {
|
|
3685
|
+
enumerable: true,
|
|
3686
|
+
get: function() {
|
|
3687
|
+
return CODING_AGENT_CORE_PLUGINS;
|
|
3688
|
+
}
|
|
3689
|
+
});
|
|
3690
|
+
Object.defineProperty(exports, "CODING_AGENT_PLUGINS", {
|
|
3691
|
+
enumerable: true,
|
|
3692
|
+
get: function() {
|
|
3693
|
+
return CODING_AGENT_PLUGINS;
|
|
3694
|
+
}
|
|
3695
|
+
});
|
|
3696
|
+
Object.defineProperty(exports, "CODING_AGENT_PLUGIN_DESCRIPTIONS", {
|
|
3697
|
+
enumerable: true,
|
|
3698
|
+
get: function() {
|
|
3699
|
+
return CODING_AGENT_PLUGIN_DESCRIPTIONS;
|
|
3700
|
+
}
|
|
3701
|
+
});
|
|
3702
|
+
Object.defineProperty(exports, "CODING_AGENT_PLUGIN_DISPLAY_NAMES", {
|
|
3703
|
+
enumerable: true,
|
|
3704
|
+
get: function() {
|
|
3705
|
+
return CODING_AGENT_PLUGIN_DISPLAY_NAMES;
|
|
3706
|
+
}
|
|
3707
|
+
});
|
|
3343
3708
|
Object.defineProperty(exports, "CommandLineOptionsSchema", {
|
|
3344
3709
|
enumerable: true,
|
|
3345
3710
|
get: function() {
|
|
@@ -3616,6 +3981,12 @@ Object.defineProperty(exports, "StrategyConfigSchema", {
|
|
|
3616
3981
|
return StrategyConfigSchema;
|
|
3617
3982
|
}
|
|
3618
3983
|
});
|
|
3984
|
+
Object.defineProperty(exports, "TEEN_SAFETY_PLUGINS", {
|
|
3985
|
+
enumerable: true,
|
|
3986
|
+
get: function() {
|
|
3987
|
+
return TEEN_SAFETY_PLUGINS;
|
|
3988
|
+
}
|
|
3989
|
+
});
|
|
3619
3990
|
Object.defineProperty(exports, "TELECOM_PLUGINS", {
|
|
3620
3991
|
enumerable: true,
|
|
3621
3992
|
get: function() {
|
|
@@ -3755,4 +4126,4 @@ Object.defineProperty(exports, "riskCategorySeverityMap", {
|
|
|
3755
4126
|
}
|
|
3756
4127
|
});
|
|
3757
4128
|
|
|
3758
|
-
//# sourceMappingURL=types-
|
|
4129
|
+
//# sourceMappingURL=types-CeaeaZdP.cjs.map
|