promptfoo 0.120.25 → 0.120.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +35 -22
  2. package/dist/src/{ListApp-CYTAaS6A.js → ListApp-D3DG0F8h.js} +1 -1
  3. package/dist/src/{accounts-CwqY22lU.cjs → accounts-BzEY8H3v.cjs} +4 -4
  4. package/dist/src/{accounts-Bzx8GnL6.js → accounts-DHHiXsy6.js} +5 -5
  5. package/dist/src/{accounts-BSwMxhY3.js → accounts-R3gfCR_g.js} +4 -4
  6. package/dist/src/{agentic-utils-5K7LzooV.js → agentic-utils-D6_gzOUF.js} +2 -2
  7. package/dist/src/{agents-B8RWrA68.cjs → agents-C7BiinFI.cjs} +6 -6
  8. package/dist/src/{agents-zHyWnnQ2.js → agents-Cao4i7AX.js} +7 -7
  9. package/dist/src/{agents-KZxXwlyn.cjs → agents-CwM7re15.cjs} +2 -2
  10. package/dist/src/{agents-DleC7rb4.js → agents-DETIQHqF.js} +6 -6
  11. package/dist/src/{agents-CkA9l77-.js → agents-DYIT-hQy.js} +5 -5
  12. package/dist/src/{agents-B20gl7hH.js → agents-GiUianme.js} +2 -2
  13. package/dist/src/{aimlapi-DgbFGPTX.js → aimlapi-CMJpKK-B.js} +9 -9
  14. package/dist/src/{aimlapi-DILJovhN.js → aimlapi-DMF6v_vb.js} +14 -14
  15. package/dist/src/{aimlapi-DIdWBHtH.cjs → aimlapi-DoGLcQW_.cjs} +9 -9
  16. package/dist/src/app/assets/index-BOgkICuY.css +1 -0
  17. package/dist/src/app/assets/index-CSgqn_Vd.js +428 -0
  18. package/dist/src/app/assets/{vendor-charts-DnwydkkY.js → vendor-charts-CYyo8R8v.js} +1 -1
  19. package/dist/src/app/assets/{vendor-markdown-DjKAU15k.js → vendor-markdown-DSmzq4Jh.js} +1 -1
  20. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +4 -0
  21. package/dist/src/app/assets/{vendor-syntax-Dc86c4Bu.js → vendor-syntax-D06x6TQF.js} +1 -1
  22. package/dist/src/app/index.html +6 -6
  23. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  24. package/dist/src/{audio-BoR9KZV8.cjs → audio-BWjyvHn9.cjs} +3 -3
  25. package/dist/src/{audio-nUSOpXY7.js → audio-BrJBFN2b.js} +3 -3
  26. package/dist/src/{audio-BDrAkpVc.js → audio-DUH4q0Xq.js} +4 -4
  27. package/dist/src/{base-DumUXbOH.js → base-BaXmtXYp.js} +2 -2
  28. package/dist/src/{base-CwCV0t8r.js → base-Dtp8b4_N.js} +2 -2
  29. package/dist/src/{base-D8VQYhNQ.cjs → base-f71xxWai.cjs} +2 -2
  30. package/dist/src/{blobs-_kNRY6vU.cjs → blobs-673H0jCl.cjs} +2 -2
  31. package/dist/src/{blobs-Dnt2rxpc.js → blobs-C9J2mVgo.js} +2 -2
  32. package/dist/src/{blobs-DlB5fwyF.js → blobs-kt8v3UyH.js} +2 -2
  33. package/dist/src/{cache-S9MAoF9H.cjs → cache-7xULbvt3.cjs} +34 -7
  34. package/dist/src/{cache-C4A4H4Xb.js → cache-BLLayYEN.js} +23 -8
  35. package/dist/src/{cache-B2oIvf92.js → cache-BUPcq0Ad.js} +2 -2
  36. package/dist/src/cache-CVfRb-HD.cjs +6 -0
  37. package/dist/src/{cache-DofebEnH.js → cache-O4EuX2JV.js} +3 -3
  38. package/dist/src/{cache-Bg1Wpvzq.js → cache-mIszOnuz.js} +4 -21
  39. package/dist/src/{chat-DTCPbuld.cjs → chat-C4zqjObh.cjs} +6 -6
  40. package/dist/src/{chat-noXtEAh5.js → chat-C8Ei4f87.js} +6 -6
  41. package/dist/src/{chat-BiImdLJf.js → chat-CgyGj2hC.js} +8 -8
  42. package/dist/src/{chat-DQ6Z5Cbn.js → chat-Cpz3O-Xl.js} +13 -13
  43. package/dist/src/{chat-D_cro0wd.js → chat-DIywASPG.js} +10 -10
  44. package/dist/src/{chat-BR2x1dG_.cjs → chat-Fl6TZJRS.cjs} +8 -8
  45. package/dist/src/{chatkit-TnC1YoVi.js → chatkit-DEls11hE.js} +3 -3
  46. package/dist/src/{claude-agent-sdk-CBpAZV5h.js → claude-agent-sdk-6-xTaLwM.js} +45 -16
  47. package/dist/src/{claude-agent-sdk-uHLgAUZj.cjs → claude-agent-sdk-BzxF6NIJ.cjs} +45 -16
  48. package/dist/src/{claude-agent-sdk-qxE5mGVi.js → claude-agent-sdk-CmkTnKGH.js} +48 -19
  49. package/dist/src/{claude-agent-sdk-DyPvrj-1.js → claude-agent-sdk-rXCBLK_o.js} +38 -9
  50. package/dist/src/{cloud-lRosK6Nk.js → cloud-BMbRVJFw.js} +2 -2
  51. package/dist/src/{cloud-DHWE-9nj.js → cloud-CZ4hytdm.js} +1 -1
  52. package/dist/src/{cloudflare-ai-D0OtFY6g.cjs → cloudflare-ai-BAQ0u_dg.cjs} +9 -9
  53. package/dist/src/{cloudflare-ai-BprwSD6d.js → cloudflare-ai-CUg4BTcj.js} +9 -9
  54. package/dist/src/{cloudflare-ai-CB7OWRAP.js → cloudflare-ai-CobxMTR4.js} +14 -14
  55. package/dist/src/{cloudflare-gateway-C29gWj5O.cjs → cloudflare-gateway-C0sgfr_z.cjs} +10 -10
  56. package/dist/src/{cloudflare-gateway-BaVwoBjE.js → cloudflare-gateway-D2_yi-Fh.js} +15 -15
  57. package/dist/src/{cloudflare-gateway-BjoxwqUw.js → cloudflare-gateway-_itGuXry.js} +10 -10
  58. package/dist/src/{codex-sdk-DNkCbb7c.js → codex-sdk-dSnGdgIp.js} +3 -3
  59. package/dist/src/{cometapi-BGxGZ7VA.js → cometapi-B01btbfb.js} +15 -15
  60. package/dist/src/{cometapi-xiTQZp8R.js → cometapi-ChAaRjg5.js} +10 -10
  61. package/dist/src/{cometapi-DalITP94.cjs → cometapi-JbvOJSCO.cjs} +10 -10
  62. package/dist/src/{completion-BTbouQDz.js → completion-BBJ6zmG3.js} +5 -5
  63. package/dist/src/{completion-HYrX5gEL.js → completion-D9_MDlnd.js} +4 -4
  64. package/dist/src/{completion-DV0Ys99K.cjs → completion-DDyL3Cb2.cjs} +4 -4
  65. package/dist/src/{docker-Dx_FN1ag.js → docker-BuButc4D.js} +14 -14
  66. package/dist/src/{docker-zUAnbYTM.cjs → docker-Ckw-j7Rr.cjs} +9 -9
  67. package/dist/src/{docker-BAYnlbAW.js → docker-JAAubMw3.js} +9 -9
  68. package/dist/src/errors-DnGCbnx8.js +36 -0
  69. package/dist/src/{esm-79BpbQzg.js → esm-CYhseqj4.js} +1 -1
  70. package/dist/src/eval-CKHWqG9f.js +16 -0
  71. package/dist/src/{eval-Cxb9alW8.js → eval-CYrbG57o.js} +45 -13
  72. package/dist/src/{evalResult-B8LbgWMA.js → evalResult-6JaUIStC.js} +6 -6
  73. package/dist/src/{evalResult-CJNSpa3q.js → evalResult-COsVttMA.js} +6 -6
  74. package/dist/src/evalResult-CxTP-LMm.cjs +11 -0
  75. package/dist/src/evalResult-CzLURDcP.js +13 -0
  76. package/dist/src/{evalResult-hI1mhi_g.cjs → evalResult-DlRfu_Rq.cjs} +6 -6
  77. package/dist/src/evalResult-DyttNQ_G.js +11 -0
  78. package/dist/src/evaluator-0PvfeBYh.js +38 -0
  79. package/dist/src/{evaluator-1Tkdu8MK.js → evaluator-3EJCMTs0.js} +74 -48
  80. package/dist/src/{extractor-BPBlLyOn.cjs → extractor-DbhlYEeo.cjs} +22 -5
  81. package/dist/src/{extractor-CuUWqwrE.js → extractor-Hs7la_19.js} +22 -5
  82. package/dist/src/{extractor-BFoThUOa.js → extractor-LSYjrhK0.js} +22 -5
  83. package/dist/src/{fetch-zJuFPxN1.js → fetch-18MuNu9i.js} +4 -4
  84. package/dist/src/{fetch-BdiCecAv.js → fetch-Bi0o-fdp.js} +1 -1
  85. package/dist/src/fetch-CMptBDVg.cjs +4 -0
  86. package/dist/src/{fetch-BQgz6x7S.js → fetch-DAZkv3gV.js} +2 -2
  87. package/dist/src/{fetch-BuP-gm0E.js → fetch-SRsE6Ctl.js} +4 -4
  88. package/dist/src/{fetch-Dy2YML9G.cjs → fetch-ZMn_oemb.cjs} +4 -4
  89. package/dist/src/{fileExtensions-CzcPkiKZ.js → fileExtensions-BpuMmaFL.js} +1 -1
  90. package/dist/src/{formatDuration-CGa0ZDQ8.js → formatDuration-Doo0xq-z.js} +1 -1
  91. package/dist/src/{genaiTracer-foKtbVa2.js → genaiTracer-CqNnnXrE.js} +1 -1
  92. package/dist/src/graders-BCytzXrb.js +34 -0
  93. package/dist/src/{graders-DMAzEgEF.js → graders-BaMCwIKp.js} +211 -91
  94. package/dist/src/graders-CGZQShfJ.cjs +33 -0
  95. package/dist/src/{graders-NBsuYeMx.cjs → graders-DzUUnUjC.cjs} +206 -86
  96. package/dist/src/{graders-CtvuaC8D.js → graders-QsALpIdy.js} +206 -86
  97. package/dist/src/graders-spkuVC-E.js +36 -0
  98. package/dist/src/{image-Bf8RiJ2g.js → image-BXt_7u0v.js} +3 -3
  99. package/dist/src/{image-LhLO5KCW.js → image-BiEVdpdP.js} +4 -4
  100. package/dist/src/{image-CaVWfZub.cjs → image-C3BjJUAU.cjs} +4 -4
  101. package/dist/src/{image-BnF25Osq.cjs → image-D10zEe1f.cjs} +3 -3
  102. package/dist/src/{image-DIn_AW1Z.js → image-DB4sHxdJ.js} +4 -4
  103. package/dist/src/{image-DFwp1aAV.js → image-mhAGP07h.js} +6 -6
  104. package/dist/src/index.cjs +152 -69
  105. package/dist/src/index.d.cts +20 -3
  106. package/dist/src/index.d.ts +20 -3
  107. package/dist/src/index.js +152 -69
  108. package/dist/src/{interactiveCheck-Dmm9vjpx.js → interactiveCheck-DU-MAhp5.js} +1 -1
  109. package/dist/src/{knowledgeBase-Bf57PI7g.cjs → knowledgeBase-Bnb00xKs.cjs} +6 -6
  110. package/dist/src/{knowledgeBase-DZw2L9kf.js → knowledgeBase-CMvMlLZR.js} +8 -8
  111. package/dist/src/{knowledgeBase-CfOvyF2s.js → knowledgeBase-XJQ0Qyez.js} +6 -6
  112. package/dist/src/{litellm-Ds8YmO1b.js → litellm-BECdjOTx.js} +3 -3
  113. package/dist/src/{litellm-ByNRN2Vh.cjs → litellm-BrnZhMcL.cjs} +11 -11
  114. package/dist/src/{litellm-fU-xV6T4.js → litellm-CHrRmPAe.js} +16 -16
  115. package/dist/src/{litellm-DexU8FFp.js → litellm-CrLJrPIm.js} +11 -11
  116. package/dist/src/{luma-ray-y26EHFO8.js → luma-ray-BOeX-h0M.js} +8 -8
  117. package/dist/src/{luma-ray-BIe5ctI4.cjs → luma-ray-C0RkI3lt.cjs} +8 -8
  118. package/dist/src/{luma-ray-vvE-O9EA.js → luma-ray-DgKLS0BF.js} +10 -10
  119. package/dist/src/main.js +1011 -404
  120. package/dist/src/{messages-Bg2ekFPc.js → messages-CDZYGNlS.js} +7 -7
  121. package/dist/src/{messages-DpoCLD_8.js → messages-D61tPFQo.js} +9 -9
  122. package/dist/src/{messages-16jb9LP7.cjs → messages-DXV3Qh8_.cjs} +7 -7
  123. package/dist/src/{meteor-DLCdreag.js → meteor-P2rUE-Uz.js} +1 -1
  124. package/dist/src/{nova-reel-BM0snD2m.js → nova-reel-Bk5npr2q.js} +10 -10
  125. package/dist/src/{nova-reel-CvXCVn3f.cjs → nova-reel-D9FXq3Mt.cjs} +8 -8
  126. package/dist/src/{nova-reel-CJLpBKSI.js → nova-reel-DtCjbD5O.js} +8 -8
  127. package/dist/src/{nova-sonic-CklvraBd.js → nova-sonic-BXRfQyF-.js} +7 -7
  128. package/dist/src/{nova-sonic-DEx_FdFW.cjs → nova-sonic-BoRSY_U6.cjs} +5 -5
  129. package/dist/src/{nova-sonic-Cjh_qopr.js → nova-sonic-CgaWLDM1.js} +5 -5
  130. package/dist/src/{openai-jNIREoAW.js → openai-CT5fwbve.js} +1 -1
  131. package/dist/src/{openclaw-CnAwBfPO.js → openclaw-B6XY2kUf.js} +14 -14
  132. package/dist/src/{openclaw-DBSSY4SP.js → openclaw-CpPrXwf6.js} +9 -9
  133. package/dist/src/{openclaw-CbHtt3B8.cjs → openclaw-DDSfq5fp.cjs} +9 -9
  134. package/dist/src/{opencode-sdk-CqxTHrk0.js → opencode-sdk-CImWVqy9.js} +6 -6
  135. package/dist/src/{opencode-sdk-xUrRk5Jx.js → opencode-sdk-CuCztr4P.js} +4 -4
  136. package/dist/src/{opencode-sdk-DdmtRB6D.cjs → opencode-sdk-mqF-Oj3f.cjs} +4 -4
  137. package/dist/src/{otlpReceiver-th2zHwjZ.cjs → otlpReceiver-B6Xo4KZM.cjs} +4 -4
  138. package/dist/src/{otlpReceiver-uytrRKdo.js → otlpReceiver-BO0rbDzh.js} +4 -4
  139. package/dist/src/{otlpReceiver-C-1cdVDr.js → otlpReceiver-Dg817agV.js} +5 -5
  140. package/dist/src/{providerRegistry-DAZoFmGv.js → providerRegistry-Xf0qdqGQ.js} +1 -1
  141. package/dist/src/providers-BMZZmPBJ.cjs +32 -0
  142. package/dist/src/{providers-CpUrPa8s.cjs → providers-BNKVY53V.cjs} +94 -64
  143. package/dist/src/{providers-D3lk_R7Q.js → providers-BiNq_Iyc.js} +94 -64
  144. package/dist/src/{providers-BOvl9qv5.js → providers-BlEhY5mi.js} +110 -79
  145. package/dist/src/providers-CQQrNaJk.js +32 -0
  146. package/dist/src/providers-Ck8HyrC-.js +34 -0
  147. package/dist/src/{pythonUtils-CUPlf1H0.js → pythonUtils-r1uBuA0n.js} +2 -2
  148. package/dist/src/{quiverai-BNGJOQym.cjs → quiverai-BNfIwKCO.cjs} +8 -8
  149. package/dist/src/{quiverai-Y7Is4wah.js → quiverai-BQigKdIH.js} +13 -13
  150. package/dist/src/{quiverai-DthRqZs9.js → quiverai-Bfy2WnE2.js} +8 -8
  151. package/dist/src/{render-kFatbqG6.js → render-CAZvKKkB.js} +3 -3
  152. package/dist/src/{responses-BtU_i-R0.js → responses-DLLjADw5.js} +5 -5
  153. package/dist/src/{responses-B85halqh.js → responses-TsdODUpm.js} +8 -8
  154. package/dist/src/{responses-CXJACENh.cjs → responses-zOtKtnY_.cjs} +5 -5
  155. package/dist/src/{rubyUtils-DYKoa7Ze.js → rubyUtils-BtjlqyXt.js} +2 -2
  156. package/dist/src/{rubyUtils-BA4D4gMX.js → rubyUtils-D7--T12C.js} +2 -2
  157. package/dist/src/{sagemaker-hRS_Jj3-.js → sagemaker-BcgLu0U4.js} +17 -17
  158. package/dist/src/{sagemaker-DI6IOTjT.js → sagemaker-CLdUAv5z.js} +11 -11
  159. package/dist/src/{sagemaker-BUagsrJ-.cjs → sagemaker-DwNnEVYt.cjs} +11 -11
  160. package/dist/src/{scanner-C6QXA9Pn.js → scanner-Dyw21Wg_.js} +10 -10
  161. package/dist/src/server/index.js +1376 -486
  162. package/dist/src/server-BUbS0Qfh.js +6 -0
  163. package/dist/src/{server-BPC37wlX.js → server-CbMTRQkg.js} +3 -3
  164. package/dist/src/{server-C_O6-VE4.cjs → server-CgUQ25qW.cjs} +3 -3
  165. package/dist/src/{server-HQtz_gUy.js → server-DWmZLfCy.js} +4 -4
  166. package/dist/src/server-XpGXFHkS.cjs +6 -0
  167. package/dist/src/server-gfOx5Zrk.js +8 -0
  168. package/dist/src/{signal-D4VhSJOY.js → signal-Bl32q42d.js} +2 -2
  169. package/dist/src/{slack-DTUSadx4.js → slack-BfdBx2tO.js} +1 -1
  170. package/dist/src/{store-BTdkdmK9.js → store-2ocbYY9D.js} +2 -2
  171. package/dist/src/store-5u2yriTV.js +7 -0
  172. package/dist/src/{store-F-KTiqfb.cjs → store-BqwfFEyF.cjs} +2 -2
  173. package/dist/src/{store-rueRdzcm.js → store-D4gdn9ih.js} +2 -2
  174. package/dist/src/store-D_lq_8oQ.js +6 -0
  175. package/dist/src/store-m5KT6Ly7.cjs +6 -0
  176. package/dist/src/{tables-w-r-abWq.cjs → tables-B9E1kRp-.cjs} +2 -2
  177. package/dist/src/{tables-ChjAuVAR.js → tables-C7TT2XVn.js} +2 -2
  178. package/dist/src/{tables-dNaVPyDr.js → tables-D-NSwNIb.js} +2 -2
  179. package/dist/src/telemetry-5RHFoCJh.js +6 -0
  180. package/dist/src/{telemetry-wXyCQ1Nz.js → telemetry-BXyVqyAg.js} +3 -3
  181. package/dist/src/{telemetry-Y1esJM0v.cjs → telemetry-D0_yFdtU.cjs} +3 -3
  182. package/dist/src/{telemetry-Dai7PdlR.js → telemetry-DZ_7PaVq.js} +3 -3
  183. package/dist/src/telemetry-Do8wMnA-.js +8 -0
  184. package/dist/src/telemetry-LojxPoFq.cjs +6 -0
  185. package/dist/src/{text-C1cXk9ij.js → text-DgMr_tiM.js} +1 -1
  186. package/dist/src/{tokenUsageUtils-D2ko2eFQ.js → tokenUsageUtils-DmZSD2eU.js} +1 -1
  187. package/dist/src/{transcription-i6EfSMie.js → transcription-CYuY5sFO.js} +6 -6
  188. package/dist/src/{transcription-CcYTL4wi.js → transcription-Ch7S-LWw.js} +10 -10
  189. package/dist/src/{transcription-C-K2hDJX.cjs → transcription-FNIz3YOe.cjs} +6 -6
  190. package/dist/src/{transform-gpzlPrwG.js → transform-CoP2bJ7P.js} +43 -4
  191. package/dist/src/{transform-B86_0IIb.js → transform-CqTFr7KR.js} +4 -4
  192. package/dist/src/{transform-DosdxVdh.js → transform-DMaxQwDx.js} +43 -4
  193. package/dist/src/{transform-DwsntMEQ.js → transform-GybT0X0u.js} +3 -3
  194. package/dist/src/{transform-CCSNqTI-.cjs → transform-ivxEY4f7.cjs} +54 -3
  195. package/dist/src/{transformersAvailability-DM54tWzt.js → transformersAvailability-DwmezkVe.js} +1 -1
  196. package/dist/src/{types-Brw5kggg.cjs → types-BIfttHrT.cjs} +13 -1
  197. package/dist/src/{types-CslP2TyG.js → types-DMVjYLpx.js} +13 -1
  198. package/dist/src/{types-CMDs7Kzu.js → types-t52w-XsS.js} +16 -2
  199. package/dist/src/{util-BECSJ0T_.js → util-BSh4a_Q8.js} +6 -6
  200. package/dist/src/{util-D8z5QOy8.cjs → util-C08Kns6-.cjs} +3 -3
  201. package/dist/src/{util-CttPoePn.js → util-CUEt0Vum.js} +3 -3
  202. package/dist/src/{util-CfPdWQJX.js → util-Cl0zfT3V.js} +3 -3
  203. package/dist/src/{util-Dab5xp2E.cjs → util-DUYOvxAy.cjs} +3 -3
  204. package/dist/src/{util-CY_XguB9.js → util-DiCePfDu.js} +3 -3
  205. package/dist/src/{util-CBAXTxfy.cjs → util-DkFTvieG.cjs} +3 -3
  206. package/dist/src/{util-Dft1RxsL.js → util-mJ58qbbw.js} +3 -3
  207. package/dist/src/{util-Ba18wQ8e.js → util-vjscpUzy.js} +3 -3
  208. package/dist/src/{utils-BTeLHwiH.js → utils-CVzb4YiI.js} +2 -2
  209. package/dist/src/{utils-Db5KwiXp.cjs → utils-DFaZa6Rf.cjs} +2 -2
  210. package/dist/src/{utils-ICP7kLcY.js → utils-JaY9veb5.js} +2 -2
  211. package/dist/tsconfig.tsbuildinfo +1 -1
  212. package/package.json +43 -42
  213. package/dist/src/app/assets/index-COIipVf1.css +0 -1
  214. package/dist/src/app/assets/index-ClD64gUa.js +0 -428
  215. package/dist/src/app/assets/vendor-react-DHoaNLma.js +0 -4
  216. package/dist/src/cache-BJ31KhNT.cjs +0 -6
  217. package/dist/src/eval-DgiEH2xe.js +0 -16
  218. package/dist/src/evalResult-Boel8xoS.js +0 -13
  219. package/dist/src/evalResult-DGx1-Ela.js +0 -11
  220. package/dist/src/evalResult-DzRxYLDH.cjs +0 -11
  221. package/dist/src/evaluator-B4qKt437.js +0 -38
  222. package/dist/src/fetch-DwhKew9e.cjs +0 -4
  223. package/dist/src/graders-BpEqZT2Q.js +0 -34
  224. package/dist/src/graders-DTGI-hHE.cjs +0 -33
  225. package/dist/src/graders-DgMr-E4I.js +0 -36
  226. package/dist/src/providers-DVsoSup2.js +0 -34
  227. package/dist/src/providers-D_tJatIk.js +0 -32
  228. package/dist/src/providers-wpMPsMZ7.cjs +0 -32
  229. package/dist/src/server-BeqUuSvj.js +0 -6
  230. package/dist/src/server-CwQsQ6dl.cjs +0 -6
  231. package/dist/src/server-Dhbq83-d.js +0 -8
  232. package/dist/src/store-C7U17qcu.js +0 -6
  233. package/dist/src/store-CuDU_jDN.js +0 -7
  234. package/dist/src/store-awdDxuiD.cjs +0 -6
  235. package/dist/src/telemetry-ClcYTCOG.js +0 -8
  236. package/dist/src/telemetry-DEWuLu_s.js +0 -6
  237. package/dist/src/telemetry-tADmeX6E.cjs +0 -6
@@ -1,6 +1,6 @@
1
1
  const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_util = require('./util-Dab5xp2E.cjs');
3
- const require_fetch = require('./fetch-Dy2YML9G.cjs');
2
+ const require_util = require('./util-DUYOvxAy.cjs');
3
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
4
4
  let rfdc = require("rfdc");
5
5
  rfdc = require_logger.__toESM(rfdc);
6
6
  let zod = require("zod");
@@ -269,6 +269,20 @@ function extractBase64FromDataUrl(value) {
269
269
  const parsed = parseDataUrl(value);
270
270
  return parsed ? parsed.base64Data : value;
271
271
  }
272
+ /**
273
+ * Build a data URI from a MIME type and base64 data.
274
+ *
275
+ * @param mimeType MIME type (e.g. "image/png")
276
+ * @param base64Data Raw base64-encoded data
277
+ * @returns Data URI string
278
+ *
279
+ * @example
280
+ * toDataUri("image/png", "iVBORw0KGgo...")
281
+ * // "data:image/png;base64,iVBORw0KGgo..."
282
+ */
283
+ function toDataUri(mimeType, base64Data) {
284
+ return `data:${mimeType};base64,${base64Data}`;
285
+ }
272
286
 
273
287
  //#endregion
274
288
  //#region src/providers/google/auth.ts
@@ -565,6 +579,20 @@ const clearCachedAuth = GoogleAuthManager.clearCache.bind(GoogleAuthManager);
565
579
  * Note: Vertex AI may have different pricing for some models.
566
580
  */
567
581
  const GOOGLE_MODELS = [
582
+ {
583
+ id: "gemini-3.1-pro-preview",
584
+ cost: {
585
+ input: 2 / 1e6,
586
+ output: 12 / 1e6
587
+ },
588
+ tieredCost: {
589
+ threshold: 2e5,
590
+ above: {
591
+ input: 4 / 1e6,
592
+ output: 18 / 1e6
593
+ }
594
+ }
595
+ },
568
596
  {
569
597
  id: "gemini-3-flash-preview",
570
598
  cost: {
@@ -831,6 +859,17 @@ const VALID_SCHEMA_TYPES = [
831
859
  //#endregion
832
860
  //#region src/providers/google/util.ts
833
861
  /**
862
+ * Normalizes safety settings to use the correct Google API field name `threshold`.
863
+ * Accepts the legacy `probability` field for backwards compatibility and maps it to `threshold`.
864
+ */
865
+ function normalizeSafetySettings(safetySettings) {
866
+ if (!safetySettings) return;
867
+ return safetySettings.map(({ category, threshold, probability }) => ({
868
+ category,
869
+ threshold: threshold || probability || ""
870
+ }));
871
+ }
872
+ /**
834
873
  * Calculates the cost for a Google AI Studio API call.
835
874
  *
836
875
  * Handles tiered pricing for models where cost varies by prompt size.
@@ -1539,6 +1578,12 @@ Object.defineProperty(exports, 'mergeParts', {
1539
1578
  return mergeParts;
1540
1579
  }
1541
1580
  });
1581
+ Object.defineProperty(exports, 'normalizeSafetySettings', {
1582
+ enumerable: true,
1583
+ get: function () {
1584
+ return normalizeSafetySettings;
1585
+ }
1586
+ });
1542
1587
  Object.defineProperty(exports, 'normalizeTools', {
1543
1588
  enumerable: true,
1544
1589
  get: function () {
@@ -1563,6 +1608,12 @@ Object.defineProperty(exports, 'resolveProjectId', {
1563
1608
  return resolveProjectId;
1564
1609
  }
1565
1610
  });
1611
+ Object.defineProperty(exports, 'toDataUri', {
1612
+ enumerable: true,
1613
+ get: function () {
1614
+ return toDataUri;
1615
+ }
1616
+ });
1566
1617
  Object.defineProperty(exports, 'transformMCPConfigToClaudeCode', {
1567
1618
  enumerable: true,
1568
1619
  get: function () {
@@ -1593,4 +1644,4 @@ Object.defineProperty(exports, 'validateFunctionCall', {
1593
1644
  return validateFunctionCall;
1594
1645
  }
1595
1646
  });
1596
- //# sourceMappingURL=transform-CCSNqTI-.cjs.map
1647
+ //# sourceMappingURL=transform-ivxEY4f7.cjs.map
@@ -33,4 +33,4 @@ async function validateTransformersDependency(checkTransformers = isTransformers
33
33
 
34
34
  //#endregion
35
35
  export { validateTransformersDependency };
36
- //# sourceMappingURL=transformersAvailability-DM54tWzt.js.map
36
+ //# sourceMappingURL=transformersAvailability-DwmezkVe.js.map
@@ -361,6 +361,7 @@ const FINANCIAL_PLUGINS = [
361
361
  "financial:hallucination",
362
362
  "financial:impartiality",
363
363
  "financial:misconduct",
364
+ "financial:sox-compliance",
364
365
  "financial:sycophancy"
365
366
  ];
366
367
  const PHARMACY_PLUGINS = [
@@ -431,6 +432,7 @@ const ADDITIONAL_PLUGINS = [
431
432
  "imitation",
432
433
  "indirect-prompt-injection",
433
434
  "mcp",
435
+ "model-identification",
434
436
  "medical:anchoring-bias",
435
437
  "medical:hallucination",
436
438
  "medical:incorrect-knowledge",
@@ -446,6 +448,7 @@ const ADDITIONAL_PLUGINS = [
446
448
  "financial:hallucination",
447
449
  "financial:impartiality",
448
450
  "financial:misconduct",
451
+ "financial:sox-compliance",
449
452
  "financial:sycophancy",
450
453
  "ecommerce:compliance-bypass",
451
454
  "ecommerce:order-fraud",
@@ -571,6 +574,7 @@ const REMOTE_ONLY_PLUGIN_IDS = [
571
574
  "hijacking",
572
575
  "indirect-prompt-injection",
573
576
  "mcp",
577
+ "model-identification",
574
578
  "off-topic",
575
579
  "rag-document-exfiltration",
576
580
  "rag-poisoning",
@@ -1572,6 +1576,7 @@ const riskCategorySeverityMap = {
1572
1576
  "financial:hallucination": Severity.Low,
1573
1577
  "financial:impartiality": Severity.Medium,
1574
1578
  "financial:misconduct": Severity.High,
1579
+ "financial:sox-compliance": Severity.High,
1575
1580
  "financial:sycophancy": Severity.Low,
1576
1581
  "goal-misalignment": Severity.Low,
1577
1582
  competitors: Severity.Low,
@@ -1593,6 +1598,7 @@ const riskCategorySeverityMap = {
1593
1598
  "off-topic": Severity.Medium,
1594
1599
  "divergent-repetition": Severity.Medium,
1595
1600
  "excessive-agency": Severity.Medium,
1601
+ "model-identification": Severity.Medium,
1596
1602
  "tool-discovery": Severity.Low,
1597
1603
  foundation: Severity.Medium,
1598
1604
  "guardrails-eval": Severity.Medium,
@@ -1707,6 +1713,7 @@ const riskCategories = {
1707
1713
  "bola",
1708
1714
  "cca",
1709
1715
  "debug-access",
1716
+ "model-identification",
1710
1717
  "hijacking",
1711
1718
  "indirect-prompt-injection",
1712
1719
  "rbac",
@@ -1802,6 +1809,7 @@ const riskCategories = {
1802
1809
  "financial:hallucination",
1803
1810
  "financial:impartiality",
1804
1811
  "financial:misconduct",
1812
+ "financial:sox-compliance",
1805
1813
  "financial:sycophancy",
1806
1814
  "medical:hallucination",
1807
1815
  "medical:anchoring-bias",
@@ -1892,6 +1900,7 @@ const categoryAliases = {
1892
1900
  "financial:hallucination": "FinancialHallucination",
1893
1901
  "financial:impartiality": "FinancialImpartiality",
1894
1902
  "financial:misconduct": "FinancialMisconduct",
1903
+ "financial:sox-compliance": "FinancialSoxCompliance",
1895
1904
  "financial:sycophancy": "FinancialSycophancy",
1896
1905
  "goal-misalignment": "GoalMisalignment",
1897
1906
  "off-topic": "OffTopic",
@@ -1900,6 +1909,7 @@ const categoryAliases = {
1900
1909
  "pharmacy:drug-interaction": "PharmacyDrugInteraction",
1901
1910
  "divergent-repetition": "DivergentRepetition",
1902
1911
  "excessive-agency": "ExcessiveAgency",
1912
+ "model-identification": "ModelIdentification",
1903
1913
  "tool-discovery": "ToolDiscovery",
1904
1914
  foundation: "Foundation",
1905
1915
  "guardrails-eval": "GuardrailsEvaluation",
@@ -2023,6 +2033,7 @@ const pluginDescriptions = {
2023
2033
  default: "Executes comprehensive baseline security testing across multiple risk categories",
2024
2034
  "divergent-repetition": "Tests repetitive patterns that can cause the model to diverge from normal behavior and leak training data",
2025
2035
  "excessive-agency": "Evaluates system boundary enforcement and unauthorized action prevention",
2036
+ "model-identification": "Tests whether an AI system reveals its underlying model identity, version, or creator when probed",
2026
2037
  "tool-discovery": "Tests for enumeration of available tools and function calls",
2027
2038
  ferpa: "Tests for Family Educational Rights and Privacy Act compliance",
2028
2039
  foundation: "Tests a collection of plugins designed to run against foundation models",
@@ -2113,6 +2124,7 @@ const pluginDescriptions = {
2113
2124
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, fictional company financials, or invented market events",
2114
2125
  "financial:impartiality": "Tests for inappropriate provision of financial advice, investment recommendations, broker suggestions, or transaction facilitation without proper authorization or disclaimers",
2115
2126
  "financial:misconduct": "Tests for facilitation of financial crimes including insider trading, market manipulation, front-running, spoofing, bribery, or circumventing financial regulations",
2127
+ "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",
2116
2128
  "financial:sycophancy": "Tests for agreeing with risky trading strategies, unrealistic return expectations, or get-rich-quick schemes",
2117
2129
  "goal-misalignment": "Tests whether AI systems recognize when optimizing measurable proxy metrics might not align with true underlying objectives (Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure\")",
2118
2130
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic by performing tasks outside their domain",
@@ -3708,4 +3720,4 @@ Object.defineProperty(exports, 'riskCategorySeverityMap', {
3708
3720
  return riskCategorySeverityMap;
3709
3721
  }
3710
3722
  });
3711
- //# sourceMappingURL=types-Brw5kggg.cjs.map
3723
+ //# sourceMappingURL=types-BIfttHrT.cjs.map
@@ -359,6 +359,7 @@ const FINANCIAL_PLUGINS = [
359
359
  "financial:hallucination",
360
360
  "financial:impartiality",
361
361
  "financial:misconduct",
362
+ "financial:sox-compliance",
362
363
  "financial:sycophancy"
363
364
  ];
364
365
  const PHARMACY_PLUGINS = [
@@ -429,6 +430,7 @@ const ADDITIONAL_PLUGINS = [
429
430
  "imitation",
430
431
  "indirect-prompt-injection",
431
432
  "mcp",
433
+ "model-identification",
432
434
  "medical:anchoring-bias",
433
435
  "medical:hallucination",
434
436
  "medical:incorrect-knowledge",
@@ -444,6 +446,7 @@ const ADDITIONAL_PLUGINS = [
444
446
  "financial:hallucination",
445
447
  "financial:impartiality",
446
448
  "financial:misconduct",
449
+ "financial:sox-compliance",
447
450
  "financial:sycophancy",
448
451
  "ecommerce:compliance-bypass",
449
452
  "ecommerce:order-fraud",
@@ -569,6 +572,7 @@ const REMOTE_ONLY_PLUGIN_IDS = [
569
572
  "hijacking",
570
573
  "indirect-prompt-injection",
571
574
  "mcp",
575
+ "model-identification",
572
576
  "off-topic",
573
577
  "rag-document-exfiltration",
574
578
  "rag-poisoning",
@@ -1570,6 +1574,7 @@ const riskCategorySeverityMap = {
1570
1574
  "financial:hallucination": Severity.Low,
1571
1575
  "financial:impartiality": Severity.Medium,
1572
1576
  "financial:misconduct": Severity.High,
1577
+ "financial:sox-compliance": Severity.High,
1573
1578
  "financial:sycophancy": Severity.Low,
1574
1579
  "goal-misalignment": Severity.Low,
1575
1580
  competitors: Severity.Low,
@@ -1591,6 +1596,7 @@ const riskCategorySeverityMap = {
1591
1596
  "off-topic": Severity.Medium,
1592
1597
  "divergent-repetition": Severity.Medium,
1593
1598
  "excessive-agency": Severity.Medium,
1599
+ "model-identification": Severity.Medium,
1594
1600
  "tool-discovery": Severity.Low,
1595
1601
  foundation: Severity.Medium,
1596
1602
  "guardrails-eval": Severity.Medium,
@@ -1705,6 +1711,7 @@ const riskCategories = {
1705
1711
  "bola",
1706
1712
  "cca",
1707
1713
  "debug-access",
1714
+ "model-identification",
1708
1715
  "hijacking",
1709
1716
  "indirect-prompt-injection",
1710
1717
  "rbac",
@@ -1800,6 +1807,7 @@ const riskCategories = {
1800
1807
  "financial:hallucination",
1801
1808
  "financial:impartiality",
1802
1809
  "financial:misconduct",
1810
+ "financial:sox-compliance",
1803
1811
  "financial:sycophancy",
1804
1812
  "medical:hallucination",
1805
1813
  "medical:anchoring-bias",
@@ -1890,6 +1898,7 @@ const categoryAliases = {
1890
1898
  "financial:hallucination": "FinancialHallucination",
1891
1899
  "financial:impartiality": "FinancialImpartiality",
1892
1900
  "financial:misconduct": "FinancialMisconduct",
1901
+ "financial:sox-compliance": "FinancialSoxCompliance",
1893
1902
  "financial:sycophancy": "FinancialSycophancy",
1894
1903
  "goal-misalignment": "GoalMisalignment",
1895
1904
  "off-topic": "OffTopic",
@@ -1898,6 +1907,7 @@ const categoryAliases = {
1898
1907
  "pharmacy:drug-interaction": "PharmacyDrugInteraction",
1899
1908
  "divergent-repetition": "DivergentRepetition",
1900
1909
  "excessive-agency": "ExcessiveAgency",
1910
+ "model-identification": "ModelIdentification",
1901
1911
  "tool-discovery": "ToolDiscovery",
1902
1912
  foundation: "Foundation",
1903
1913
  "guardrails-eval": "GuardrailsEvaluation",
@@ -2021,6 +2031,7 @@ const pluginDescriptions = {
2021
2031
  default: "Executes comprehensive baseline security testing across multiple risk categories",
2022
2032
  "divergent-repetition": "Tests repetitive patterns that can cause the model to diverge from normal behavior and leak training data",
2023
2033
  "excessive-agency": "Evaluates system boundary enforcement and unauthorized action prevention",
2034
+ "model-identification": "Tests whether an AI system reveals its underlying model identity, version, or creator when probed",
2024
2035
  "tool-discovery": "Tests for enumeration of available tools and function calls",
2025
2036
  ferpa: "Tests for Family Educational Rights and Privacy Act compliance",
2026
2037
  foundation: "Tests a collection of plugins designed to run against foundation models",
@@ -2111,6 +2122,7 @@ const pluginDescriptions = {
2111
2122
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, fictional company financials, or invented market events",
2112
2123
  "financial:impartiality": "Tests for inappropriate provision of financial advice, investment recommendations, broker suggestions, or transaction facilitation without proper authorization or disclaimers",
2113
2124
  "financial:misconduct": "Tests for facilitation of financial crimes including insider trading, market manipulation, front-running, spoofing, bribery, or circumventing financial regulations",
2125
+ "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",
2114
2126
  "financial:sycophancy": "Tests for agreeing with risky trading strategies, unrealistic return expectations, or get-rich-quick schemes",
2115
2127
  "goal-misalignment": "Tests whether AI systems recognize when optimizing measurable proxy metrics might not align with true underlying objectives (Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure\")",
2116
2128
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic by performing tasks outside their domain",
@@ -3233,4 +3245,4 @@ const EvalResultsFilterMode = z.enum([
3233
3245
 
3234
3246
  //#endregion
3235
3247
  export { pluginDescriptions as $, isApiProvider as A, isValidReusablePolicyId as B, TestGeneratorConfigSchema as C, BaseTokenUsageSchema as Ct, VarsSchema as D, UnifiedConfigSchema as E, ConversationMessageSchema as F, MULTI_TURN_STRATEGIES as G, AGENTIC_STRATEGIES as H, PartialGenerationError as I, getDefaultNFanout as J, STRATEGY_COLLECTIONS as K, PluginConfigSchema as L, RedteamConfigSchema as M, ProviderOptionsSchema as N, isGradingResult as O, ProvidersSchema as P, categoryAliases as Q, PolicyObjectSchema as R, TestCasesWithMetadataSchema as S, PromptSchema as St, TestSuiteSchema as T, InputsSchema as Tt, DATASET_PLUGINS as U, isUuid as V, DEFAULT_STRATEGIES as W, isFanoutStrategy as X, isCustomStrategy as Y, Severity as Z, ScenarioSchema as _, REDTEAM_PROVIDER_HARM_PLUGINS as _t, AtomicTestCaseSchema as a, FINANCIAL_PLUGINS as at, TestCaseWithVarsFileSchema as b, TELECOM_PLUGINS as bt, CompletedPromptSchema as c, INSURANCE_PLUGINS as ct, EvaluateOptionsSchema as d, MEDICAL_PLUGINS as dt, riskCategorySeverityMap as et, GradingConfigSchema as f, MULTI_INPUT_EXCLUDED_PLUGINS as ft, ResultFailureReason as g, PLUGIN_CATEGORIES as gt, OutputFileExtension as h, PII_PLUGINS as ht, AssertionTypeSchema as i, DEFAULT_PLUGINS as it, isProviderOptions as j, isResultFailureReason as k, DerivedMetricSchema as l, LLAMA_GUARD_ENABLED_CATEGORIES as lt, OutputConfigSchema as m, PHARMACY_PLUGINS as mt, AssertionSchema as n, BIAS_PLUGINS as nt, BaseAssertionTypesSchema as o, FOUNDATION_PLUGINS as ot, NotPrefixedAssertionTypesSchema as p, MULTI_INPUT_VAR as pt, STRATEGY_COLLECTION_MAPPINGS as q, AssertionSetSchema as r, DATASET_EXEMPT_PLUGINS as rt, CommandLineOptionsSchema as s, HARM_PLUGINS as st, AssertionOrSetSchema as t, ALIASED_PLUGIN_MAPPINGS as tt, EvalResultsFilterMode as u, LLAMA_GUARD_REPLICATE_PROVIDER as ut, SpecialAssertionTypesSchema as v, REMOTE_ONLY_PLUGIN_IDS as vt, TestSuiteConfigSchema as w, CompletionTokenDetailsSchema as wt, TestCasesWithMetadataPromptSchema as x, UNALIGNED_PROVIDER_HARM_PLUGINS as xt, TestCaseSchema as y, STRATEGY_EXEMPT_PLUGINS as yt, StrategyConfigSchema as z };
3236
- //# sourceMappingURL=types-CslP2TyG.js.map
3248
+ //# sourceMappingURL=types-DMVjYLpx.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-CzcPkiKZ.js";
2
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BpuMmaFL.js";
3
3
  import { z } from "zod";
4
4
  import dedent from "dedent";
5
5
 
@@ -220,6 +220,7 @@ const FINANCIAL_PLUGINS = [
220
220
  "financial:hallucination",
221
221
  "financial:impartiality",
222
222
  "financial:misconduct",
223
+ "financial:sox-compliance",
223
224
  "financial:sycophancy"
224
225
  ];
225
226
  const PHARMACY_PLUGINS = [
@@ -290,6 +291,7 @@ const ADDITIONAL_PLUGINS = [
290
291
  "imitation",
291
292
  "indirect-prompt-injection",
292
293
  "mcp",
294
+ "model-identification",
293
295
  "medical:anchoring-bias",
294
296
  "medical:hallucination",
295
297
  "medical:incorrect-knowledge",
@@ -305,6 +307,7 @@ const ADDITIONAL_PLUGINS = [
305
307
  "financial:hallucination",
306
308
  "financial:impartiality",
307
309
  "financial:misconduct",
310
+ "financial:sox-compliance",
308
311
  "financial:sycophancy",
309
312
  "ecommerce:compliance-bypass",
310
313
  "ecommerce:order-fraud",
@@ -430,6 +433,7 @@ const REMOTE_ONLY_PLUGIN_IDS = [
430
433
  "hijacking",
431
434
  "indirect-prompt-injection",
432
435
  "mcp",
436
+ "model-identification",
433
437
  "off-topic",
434
438
  "rag-document-exfiltration",
435
439
  "rag-poisoning",
@@ -1494,6 +1498,7 @@ const subCategoryDescriptions = {
1494
1498
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, or fictional company information",
1495
1499
  "financial:impartiality": "Tests for unauthorized financial advice or transaction facilitation",
1496
1500
  "financial:misconduct": "Tests for facilitation of financial crimes or market manipulation",
1501
+ "financial:sox-compliance": "Tests for violations of Sarbanes-Oxley requirements including internal controls, financial reporting, and audit integrity",
1497
1502
  "financial:sycophancy": "Tests for agreeing with risky investment strategies or validating get-rich-quick schemes",
1498
1503
  "goal-misalignment": "Tests whether AI systems recognize when optimizing proxy metrics might not align with true goals (Goodhart's Law)",
1499
1504
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic from their intended purpose",
@@ -1528,6 +1533,7 @@ const subCategoryDescriptions = {
1528
1533
  "sql-injection": "Tests for SQL injection vulnerabilities",
1529
1534
  ssrf: "Tests for server-side request forgery vulnerabilities",
1530
1535
  "system-prompt-override": "Tests for system prompt override vulnerabilities",
1536
+ "model-identification": "Tests whether an AI system can be tricked into revealing its underlying model identity",
1531
1537
  "tool-discovery": "Tests for enumeration of available tools and function calls",
1532
1538
  unsafebench: "Tests handling of unsafe image content from the UnsafeBench dataset",
1533
1539
  "unverifiable-claims": "Tests for claims that cannot be verified or fact-checked",
@@ -1612,6 +1618,7 @@ const riskCategorySeverityMap = {
1612
1618
  "financial:hallucination": Severity.Low,
1613
1619
  "financial:impartiality": Severity.Medium,
1614
1620
  "financial:misconduct": Severity.High,
1621
+ "financial:sox-compliance": Severity.High,
1615
1622
  "financial:sycophancy": Severity.Low,
1616
1623
  "goal-misalignment": Severity.Low,
1617
1624
  competitors: Severity.Low,
@@ -1633,6 +1640,7 @@ const riskCategorySeverityMap = {
1633
1640
  "off-topic": Severity.Medium,
1634
1641
  "divergent-repetition": Severity.Medium,
1635
1642
  "excessive-agency": Severity.Medium,
1643
+ "model-identification": Severity.Medium,
1636
1644
  "tool-discovery": Severity.Low,
1637
1645
  foundation: Severity.Medium,
1638
1646
  "guardrails-eval": Severity.Medium,
@@ -1747,6 +1755,7 @@ const riskCategories = {
1747
1755
  "bola",
1748
1756
  "cca",
1749
1757
  "debug-access",
1758
+ "model-identification",
1750
1759
  "hijacking",
1751
1760
  "indirect-prompt-injection",
1752
1761
  "rbac",
@@ -1842,6 +1851,7 @@ const riskCategories = {
1842
1851
  "financial:hallucination",
1843
1852
  "financial:impartiality",
1844
1853
  "financial:misconduct",
1854
+ "financial:sox-compliance",
1845
1855
  "financial:sycophancy",
1846
1856
  "medical:hallucination",
1847
1857
  "medical:anchoring-bias",
@@ -1932,6 +1942,7 @@ const categoryAliases = {
1932
1942
  "financial:hallucination": "FinancialHallucination",
1933
1943
  "financial:impartiality": "FinancialImpartiality",
1934
1944
  "financial:misconduct": "FinancialMisconduct",
1945
+ "financial:sox-compliance": "FinancialSoxCompliance",
1935
1946
  "financial:sycophancy": "FinancialSycophancy",
1936
1947
  "goal-misalignment": "GoalMisalignment",
1937
1948
  "off-topic": "OffTopic",
@@ -1940,6 +1951,7 @@ const categoryAliases = {
1940
1951
  "pharmacy:drug-interaction": "PharmacyDrugInteraction",
1941
1952
  "divergent-repetition": "DivergentRepetition",
1942
1953
  "excessive-agency": "ExcessiveAgency",
1954
+ "model-identification": "ModelIdentification",
1943
1955
  "tool-discovery": "ToolDiscovery",
1944
1956
  foundation: "Foundation",
1945
1957
  "guardrails-eval": "GuardrailsEvaluation",
@@ -2063,6 +2075,7 @@ const pluginDescriptions = {
2063
2075
  default: "Executes comprehensive baseline security testing across multiple risk categories",
2064
2076
  "divergent-repetition": "Tests repetitive patterns that can cause the model to diverge from normal behavior and leak training data",
2065
2077
  "excessive-agency": "Evaluates system boundary enforcement and unauthorized action prevention",
2078
+ "model-identification": "Tests whether an AI system reveals its underlying model identity, version, or creator when probed",
2066
2079
  "tool-discovery": "Tests for enumeration of available tools and function calls",
2067
2080
  ferpa: "Tests for Family Educational Rights and Privacy Act compliance",
2068
2081
  foundation: "Tests a collection of plugins designed to run against foundation models",
@@ -2153,6 +2166,7 @@ const pluginDescriptions = {
2153
2166
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, fictional company financials, or invented market events",
2154
2167
  "financial:impartiality": "Tests for inappropriate provision of financial advice, investment recommendations, broker suggestions, or transaction facilitation without proper authorization or disclaimers",
2155
2168
  "financial:misconduct": "Tests for facilitation of financial crimes including insider trading, market manipulation, front-running, spoofing, bribery, or circumventing financial regulations",
2169
+ "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",
2156
2170
  "financial:sycophancy": "Tests for agreeing with risky trading strategies, unrealistic return expectations, or get-rich-quick schemes",
2157
2171
  "goal-misalignment": "Tests whether AI systems recognize when optimizing measurable proxy metrics might not align with true underlying objectives (Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure\")",
2158
2172
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic by performing tasks outside their domain",
@@ -3420,4 +3434,4 @@ const EvalResultsFilterMode = z.enum([
3420
3434
 
3421
3435
  //#endregion
3422
3436
  export { HARM_PLUGINS as $, DATASET_PLUGINS as A, Severity as B, PolicyObjectSchema as C, ADDITIONAL_STRATEGIES as D, isUuid as E, STRATEGY_COLLECTION_MAPPINGS as F, ALIASED_PLUGIN_MAPPINGS as G, pluginDescriptions as H, getDefaultNFanout as I, BIAS_PLUGINS as J, ADDITIONAL_PLUGINS as K, isCustomStrategy as L, DEFAULT_STRATEGIES as M, MULTI_TURN_STRATEGIES as N, AGENTIC_STRATEGIES as O, STRATEGY_COLLECTIONS as P, FOUNDATION_PLUGINS as Q, isFanoutStrategy as R, PluginConfigSchema as S, isValidReusablePolicyId as T, riskCategorySeverityMap as U, categoryAliases as V, subCategoryDescriptions as W, DEFAULT_PLUGINS as X, DATASET_EXEMPT_PLUGINS as Y, FINANCIAL_PLUGINS as Z, PromptSchema as _, EvaluateOptionsSchema as a, MULTI_INPUT_VAR as at, ConversationMessageSchema as b, TestSuiteConfigSchema as c, PLUGIN_CATEGORIES as ct, isGradingResult as d, REMOTE_ONLY_PLUGIN_IDS as dt, INSURANCE_PLUGINS as et, isResultFailureReason as f, STRATEGY_EXEMPT_PLUGINS as ft, RedteamGenerateOptionsSchema as g, RedteamConfigSchema as h, EvalResultsFilterMode as i, MULTI_INPUT_EXCLUDED_PLUGINS as it, DEFAULT_MULTI_TURN_MAX_TURNS as j, ALL_STRATEGIES as k, TestSuiteSchema as l, REDTEAM_MODEL as lt, isProviderOptions as m, UNALIGNED_PROVIDER_HARM_PLUGINS as mt, BaseAssertionTypesSchema as n, LLAMA_GUARD_REPLICATE_PROVIDER as nt, OutputFileExtension as o, PHARMACY_PLUGINS as ot, isApiProvider as p, TELECOM_PLUGINS as pt, ALL_PLUGINS as q, CommandLineOptionsSchema as r, MEDICAL_PLUGINS as rt, ResultFailureReason as s, PII_PLUGINS as st, AssertionOrSetSchema as t, LLAMA_GUARD_ENABLED_CATEGORIES as tt, UnifiedConfigSchema as u, REDTEAM_PROVIDER_HARM_PLUGINS as ut, ProviderOptionsSchema as v, StrategyConfigSchema as w, PartialGenerationError as x, ProvidersSchema as y, isMultiTurnStrategy as z };
3423
- //# sourceMappingURL=types-CMDs7Kzu.js.map
3437
+ //# sourceMappingURL=types-t52w-XsS.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { O as cliState_default, b as getEnvBool, o as logger_default } from "./logger-BotXmWKW.js";
3
- import { O as TERMINAL_MAX_WIDTH, P as VERSION, n as fetchWithProxy } from "./fetch-BuP-gm0E.js";
3
+ import { O as TERMINAL_MAX_WIDTH, P as VERSION, n as fetchWithProxy } from "./fetch-SRsE6Ctl.js";
4
4
  import { t as invariant } from "./invariant-DT20jrBd.js";
5
- import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-CMDs7Kzu.js";
6
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-CzcPkiKZ.js";
7
- import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-79BpbQzg.js";
8
- import { r as runPython } from "./pythonUtils-CUPlf1H0.js";
5
+ import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-t52w-XsS.js";
6
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BpuMmaFL.js";
7
+ import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-CYhseqj4.js";
8
+ import { r as runPython } from "./pythonUtils-r1uBuA0n.js";
9
9
  import dotenv from "dotenv";
10
10
  import * as fs$2 from "fs";
11
11
  import * as path$1 from "path";
@@ -1379,4 +1379,4 @@ function printBorder() {
1379
1379
 
1380
1380
  //#endregion
1381
1381
  export { filterRuntimeVars as A, extractVariablesFromTemplates as C, setupEnv as D, parseFileUrl as E, isAnthropicProvider as F, isGoogleProvider as I, isOpenAiProvider as L, resultIsForTestCase as M, doesProviderRefMatch as N, deduplicateTestCases as O, getProviderDescription as P, isProviderAllowed as R, extractVariablesFromTemplate as S, loadFunction as T, parsePathOrGlob as _, ComparisonEvalNotFoundError as a, renderEnvOnlyInObject as b, mergeComparisonTables as c, getResolvedRelativePath as d, maybeLoadConfigFromExternalFile as f, maybeLoadToolsFromExternalFile as g, maybeLoadResponseFormatFromExternalFile as h, writeOutput as i, getTestCaseDeduplicationKey as j, extractRuntimeVars as k, fetchCsvFromGoogleSheet as l, maybeLoadFromExternalFileWithVars as m, createOutputMetadata as n, evalTableToJson as o, maybeLoadFromExternalFile as p, writeMultipleOutputs as r, generateEvalCsv as s, printBorder as t, getNunjucksEngineForFilePath as u, readFilters as v, getNunjucksEngine as w, renderVarsInObject as x, readOutput as y };
1382
- //# sourceMappingURL=util-BECSJ0T_.js.map
1382
+ //# sourceMappingURL=util-BSh4a_Q8.js.map
@@ -1,6 +1,6 @@
1
1
  const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_util = require('./util-Dab5xp2E.cjs');
3
- const require_fetch = require('./fetch-Dy2YML9G.cjs');
2
+ const require_util = require('./util-DUYOvxAy.cjs');
3
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
4
4
  let openai = require("openai");
5
5
  openai = require_logger.__toESM(openai);
6
6
 
@@ -623,4 +623,4 @@ Object.defineProperty(exports, 'validateFunctionCall', {
623
623
  return validateFunctionCall;
624
624
  }
625
625
  });
626
- //# sourceMappingURL=util-D8z5QOy8.cjs.map
626
+ //# sourceMappingURL=util-C08Kns6-.cjs.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { g as safeJsonStringify, p as getAjv } from "./logger-BotXmWKW.js";
3
- import { f as calculateCost } from "./fetch-BuP-gm0E.js";
4
- import { m as maybeLoadFromExternalFileWithVars } from "./util-BECSJ0T_.js";
3
+ import { f as calculateCost } from "./fetch-SRsE6Ctl.js";
4
+ import { m as maybeLoadFromExternalFileWithVars } from "./util-BSh4a_Q8.js";
5
5
  import OpenAI from "openai";
6
6
 
7
7
  //#region src/providers/openai/util.ts
@@ -570,4 +570,4 @@ function formatOpenAiError(data) {
570
570
 
571
571
  //#endregion
572
572
  export { calculateOpenAICost as a, getTokenUsage as c, OPENAI_TRANSCRIPTION_MODELS as i, validateFunctionCall as l, OPENAI_COMPLETION_MODELS as n, failApiCall as o, OPENAI_REALTIME_MODELS as r, formatOpenAiError as s, OPENAI_CHAT_MODELS as t };
573
- //# sourceMappingURL=util-CttPoePn.js.map
573
+ //# sourceMappingURL=util-CUEt0Vum.js.map
@@ -1,6 +1,6 @@
1
1
  import { d as getAjv, m as safeJsonStringify } from "./logger-w8Ozp0Td.js";
2
- import { l as maybeLoadFromExternalFileWithVars } from "./util-CY_XguB9.js";
3
- import { g as calculateCost } from "./fetch-zJuFPxN1.js";
2
+ import { l as maybeLoadFromExternalFileWithVars } from "./util-DiCePfDu.js";
3
+ import { g as calculateCost } from "./fetch-18MuNu9i.js";
4
4
  import OpenAI from "openai";
5
5
 
6
6
  //#region src/providers/openai/util.ts
@@ -569,4 +569,4 @@ function formatOpenAiError(data) {
569
569
 
570
570
  //#endregion
571
571
  export { calculateOpenAICost as a, getTokenUsage as c, OPENAI_TRANSCRIPTION_MODELS as i, validateFunctionCall as l, OPENAI_COMPLETION_MODELS as n, failApiCall as o, OPENAI_REALTIME_MODELS as r, formatOpenAiError as s, OPENAI_CHAT_MODELS as t };
572
- //# sourceMappingURL=util-CfPdWQJX.js.map
572
+ //# sourceMappingURL=util-Cl0zfT3V.js.map
@@ -3,8 +3,8 @@ const require_invariant = require('./invariant-CKcJAQ6M.cjs');
3
3
  const require_esm = require('./esm-BQkx5roy.cjs');
4
4
  const require_pythonUtils = require('./pythonUtils-DZ6EbdY4.cjs');
5
5
  const require_fileExtensions = require('./fileExtensions-DkJYkWUy.cjs');
6
- const require_types = require('./types-Brw5kggg.cjs');
7
- const require_fetch = require('./fetch-Dy2YML9G.cjs');
6
+ const require_types = require('./types-BIfttHrT.cjs');
7
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
8
8
  let fs = require("fs");
9
9
  fs = require_logger.__toESM(fs);
10
10
  let path = require("path");
@@ -1458,4 +1458,4 @@ Object.defineProperty(exports, 'writeOutput', {
1458
1458
  return writeOutput;
1459
1459
  }
1460
1460
  });
1461
- //# sourceMappingURL=util-Dab5xp2E.cjs.map
1461
+ //# sourceMappingURL=util-DUYOvxAy.cjs.map
@@ -3,8 +3,8 @@ import { t as invariant } from "./invariant-1pAf2CD1.js";
3
3
  import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-rDtG_2rg.js";
4
4
  import { r as runPython } from "./pythonUtils-vMlk9Qp5.js";
5
5
  import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-ePDqouxn.js";
6
- import { A as isApiProvider, g as ResultFailureReason, h as OutputFileExtension, j as isProviderOptions } from "./types-CslP2TyG.js";
7
- import { L as VERSION, M as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-zJuFPxN1.js";
6
+ import { A as isApiProvider, g as ResultFailureReason, h as OutputFileExtension, j as isProviderOptions } from "./types-DMVjYLpx.js";
7
+ import { L as VERSION, M as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-18MuNu9i.js";
8
8
  import * as fs$1 from "fs";
9
9
  import * as path$1 from "path";
10
10
  import path from "path";
@@ -1253,4 +1253,4 @@ function printBorder() {
1253
1253
 
1254
1254
  //#endregion
1255
1255
  export { isAnthropicProvider as A, deduplicateTestCases as C, resultIsForTestCase as D, getTestCaseDeduplicationKey as E, isOpenAiProvider as M, isProviderAllowed as N, doesProviderRefMatch as O, setupEnv as S, filterRuntimeVars as T, extractVariablesFromTemplate as _, getNunjucksEngineForFilePath as a, loadFunction as b, maybeLoadFromExternalFile as c, maybeLoadToolsFromExternalFile as d, parsePathOrGlob as f, renderVarsInObject as g, renderEnvOnlyInObject as h, fetchCsvFromGoogleSheet as i, isGoogleProvider as j, getProviderDescription as k, maybeLoadFromExternalFileWithVars as l, readOutput as m, writeMultipleOutputs as n, getResolvedRelativePath as o, readFilters as p, writeOutput as r, maybeLoadConfigFromExternalFile as s, printBorder as t, maybeLoadResponseFormatFromExternalFile as u, extractVariablesFromTemplates as v, extractRuntimeVars as w, parseFileUrl as x, getNunjucksEngine as y };
1256
- //# sourceMappingURL=util-CY_XguB9.js.map
1256
+ //# sourceMappingURL=util-DiCePfDu.js.map
@@ -1,5 +1,5 @@
1
- const require_fetch = require('./fetch-Dy2YML9G.cjs');
2
- const require_transform = require('./transform-CCSNqTI-.cjs');
1
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
2
+ const require_transform = require('./transform-ivxEY4f7.cjs');
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
@@ -326,4 +326,4 @@ Object.defineProperty(exports, 'processAnthropicTools', {
326
326
  return processAnthropicTools;
327
327
  }
328
328
  });
329
- //# sourceMappingURL=util-CBAXTxfy.cjs.map
329
+ //# sourceMappingURL=util-DkFTvieG.cjs.map
@@ -1,5 +1,5 @@
1
- import { g as calculateCost } from "./fetch-zJuFPxN1.js";
2
- import { b as parseDataUrl } from "./transform-DosdxVdh.js";
1
+ import { g as calculateCost } from "./fetch-18MuNu9i.js";
2
+ import { x as parseDataUrl } from "./transform-DMaxQwDx.js";
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
@@ -291,4 +291,4 @@ function transformWebSearchTool(config) {
291
291
 
292
292
  //#endregion
293
293
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
294
- //# sourceMappingURL=util-Dft1RxsL.js.map
294
+ //# sourceMappingURL=util-mJ58qbbw.js.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { f as calculateCost } from "./fetch-BuP-gm0E.js";
3
- import { b as parseDataUrl } from "./transform-gpzlPrwG.js";
2
+ import { f as calculateCost } from "./fetch-SRsE6Ctl.js";
3
+ import { x as parseDataUrl } from "./transform-CoP2bJ7P.js";
4
4
 
5
5
  //#region src/providers/anthropic/util.ts
6
6
  const ANTHROPIC_MODELS = [
@@ -292,4 +292,4 @@ function transformWebSearchTool(config) {
292
292
 
293
293
  //#endregion
294
294
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
295
- //# sourceMappingURL=util-Ba18wQ8e.js.map
295
+ //# sourceMappingURL=util-vjscpUzy.js.map
@@ -1,5 +1,5 @@
1
1
  import { b as getEnvString } from "./logger-w8Ozp0Td.js";
2
- import { a as sha256 } from "./extractor-CuUWqwrE.js";
2
+ import { a as sha256 } from "./extractor-Hs7la_19.js";
3
3
 
4
4
  //#region src/prompts/constants.ts
5
5
  const PROMPT_DELIMITER = getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -94,4 +94,4 @@ function hashPrompt(prompt) {
94
94
 
95
95
  //#endregion
96
96
  export { PROMPT_DELIMITER as a, generateIdFromPrompt as i, maybeFilePath as n, normalizeInput as r, hashPrompt as t };
97
- //# sourceMappingURL=utils-BTeLHwiH.js.map
97
+ //# sourceMappingURL=utils-CVzb4YiI.js.map
@@ -1,5 +1,5 @@
1
1
  const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_extractor = require('./extractor-BPBlLyOn.cjs');
2
+ const require_extractor = require('./extractor-DbhlYEeo.cjs');
3
3
 
4
4
  //#region src/prompts/constants.ts
5
5
  const PROMPT_DELIMITER = require_logger.getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -123,4 +123,4 @@ Object.defineProperty(exports, 'normalizeInput', {
123
123
  return normalizeInput;
124
124
  }
125
125
  });
126
- //# sourceMappingURL=utils-Db5KwiXp.cjs.map
126
+ //# sourceMappingURL=utils-DFaZa6Rf.cjs.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { C as getEnvString } from "./logger-BotXmWKW.js";
3
- import { a as sha256 } from "./extractor-BFoThUOa.js";
3
+ import { a as sha256 } from "./extractor-LSYjrhK0.js";
4
4
 
5
5
  //#region src/prompts/constants.ts
6
6
  const PROMPT_DELIMITER = getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -95,4 +95,4 @@ function hashPrompt(prompt) {
95
95
 
96
96
  //#endregion
97
97
  export { PROMPT_DELIMITER as a, generateIdFromPrompt as i, maybeFilePath as n, normalizeInput as r, hashPrompt as t };
98
- //# sourceMappingURL=utils-ICP7kLcY.js.map
98
+ //# sourceMappingURL=utils-JaY9veb5.js.map