promptfoo 0.121.7 → 0.121.9

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 (399) hide show
  1. package/dist/src/{accounts-Ca7WIoPY.js → accounts-4Xa5fcHy.js} +17 -18
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BAajbKSh.js} +17 -18
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-Bw2qPqE-.js} +18 -19
  4. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-DAcQXPwE.cjs} +20 -21
  5. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C8eEgGG-.cjs} +3 -3
  6. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-CP1IXFz3.js} +3 -3
  7. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-CUwa3AE9.js} +3 -3
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-DYr-aM6d.js} +3 -3
  9. package/dist/src/{agents-CBgJvRkB.js → agents-Bb00M6i5.js} +5 -5
  10. package/dist/src/{agents-D-vDNFx4.js → agents-CASf5zRj.js} +5 -5
  11. package/dist/src/{agents-B4sRuXg3.cjs → agents-CD1wH9bm.cjs} +5 -5
  12. package/dist/src/{agents-CYn2n3QP.js → agents-CZOHU7Q8.js} +5 -5
  13. package/dist/src/{agents-LrHuQqr1.js → agents-D539zhHr.js} +5 -5
  14. package/dist/src/{agents-B8q7h_ek.js → agents-DpRJdGBZ.js} +5 -5
  15. package/dist/src/{agents-QGg76OF-.js → agents-gZTW-8nu.js} +5 -5
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-hix6c0Sh.cjs} +5 -5
  17. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-DRQSL-Z4.js} +7 -7
  18. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-Dc3LW5zI.js} +7 -7
  19. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-KNYnjjU6.js} +7 -7
  20. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-gnrgd_Ej.cjs} +7 -7
  21. package/dist/src/app/assets/Report-Clw_YCp-.js +1 -0
  22. package/dist/src/app/assets/index-BQHaquKk.css +1 -0
  23. package/dist/src/app/assets/{index-BnT6P6sF.js → index-CW3XcQK7.js} +6 -6
  24. package/dist/src/app/index.html +2 -2
  25. package/dist/src/{audio-FnxbEnSE.cjs → audio-BgFTqfMO.cjs} +5 -5
  26. package/dist/src/{audio-CPMtV1yR.js → audio-Cslbgd4l.js} +5 -5
  27. package/dist/src/{audio-DyiebVB3.js → audio-DOI8kth4.js} +5 -5
  28. package/dist/src/{audio-BqnRvcWG.js → audio-hewMOCUU.js} +5 -5
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-DgE4u_Rl.js} +8 -8
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-gpm2K-Rp.js} +8 -8
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-nrC4mSPQ.js} +7 -7
  32. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-wG4x0yP2.cjs} +8 -8
  33. package/dist/src/{base-CKLo890h.js → base-0yya4DsM.js} +3 -3
  34. package/dist/src/{base-Co80MMCi.js → base-BARAIJmp.js} +3 -3
  35. package/dist/src/{base-DGJW48uz.cjs → base-BE_pY-r5.cjs} +3 -3
  36. package/dist/src/{base-E9I8zXjz.js → base-CTWzNAH9.js} +3 -3
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CV7ZKPw2.js} +8 -8
  38. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-DeucA4QS.js} +9 -9
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DxcpVUvj.cjs} +9 -9
  40. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-Ilxc2hMv.js} +9 -9
  41. package/dist/src/{blobs-B0977K1O.cjs → blobs-5wbW7TbH.cjs} +3 -3
  42. package/dist/src/{blobs-Dwef1Ao1.js → blobs-BfIMflt0.js} +3 -3
  43. package/dist/src/{blobs-DODuTK-a.js → blobs-CA4gXarv.js} +3 -3
  44. package/dist/src/{blobs-CeFdPn_T.js → blobs-ikh75MtF.js} +3 -3
  45. package/dist/src/{cache-DpPWrkTE.js → cache-BuudGL4I.js} +5 -5
  46. package/dist/src/{cache-DIXbtkNO.js → cache-CT5D7d_A.js} +4 -4
  47. package/dist/src/cache-CrL5EYgi.js +3 -0
  48. package/dist/src/{cache-CPGUA4Yl.cjs → cache-WuIsgzMA.cjs} +4 -4
  49. package/dist/src/{cache-roFAE0cI.js → cache-x9llZxbx.js} +5 -5
  50. package/dist/src/{chat-GmlolEwo.js → chat-B5NqvkS_.js} +3 -3
  51. package/dist/src/{chat-DqUFcWI0.js → chat-B8lsx0A0.js} +11 -11
  52. package/dist/src/{chat-DG1wG4w0.cjs → chat-BBlR1h8c.cjs} +3 -3
  53. package/dist/src/{chat-Dabu84Br.js → chat-CCtIXezK.js} +11 -11
  54. package/dist/src/{chat-TP8Qifkh.js → chat-CZOhFlzV.js} +3 -3
  55. package/dist/src/{chat-CUCorGiL.js → chat-CvQMD-mp.js} +11 -11
  56. package/dist/src/{chat-iwaM5UTQ.js → chat-Dh6mb5OL.js} +3 -3
  57. package/dist/src/{chat-DxTDQ83C.cjs → chat-DkitQHdt.cjs} +11 -11
  58. package/dist/src/{chatkit-fARZwEfV.js → chatkit-55cAEQb2.js} +4 -4
  59. package/dist/src/{chatkit-lb6FK02w.js → chatkit-B-uz3x63.js} +4 -4
  60. package/dist/src/{chatkit-B6DWi70Q.js → chatkit-Dxp6KO70.js} +4 -4
  61. package/dist/src/{chatkit-BYveR48_.cjs → chatkit-jEtokOVZ.cjs} +4 -4
  62. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BVfdeahc.js} +9 -7
  63. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-C0p-RhcW.cjs} +9 -7
  64. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-DB99Npst.js} +9 -7
  65. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-DHyrhDUu.js} +9 -7
  66. package/dist/src/cloud-BA4aLhk0.js +3 -0
  67. package/dist/src/{cloud-D3DiFqH6.js → cloud-BbAl8dyj.js} +3 -3
  68. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-ChBxkojW.js} +5 -5
  69. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-DDmTDys_.js} +5 -5
  70. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DPlNiC6I.cjs} +5 -5
  71. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-UsZe6ndv.js} +5 -5
  72. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-7b-lEtrb.cjs} +4 -4
  73. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-Bq5cqiV8.js} +4 -4
  74. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-C0N-5s62.js} +4 -4
  75. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-D5fm-QvC.js} +4 -4
  76. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BG5Aphvl.js} +20 -5
  77. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-BnPMlcjl.js} +20 -5
  78. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-D6gbvJFw.js} +20 -5
  79. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-Dl6BLKJn.cjs} +20 -5
  80. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-BnRTWAhS.js} +20 -8
  81. package/dist/src/codex-sdk-CChw5CYU.js +3 -0
  82. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-Cy1pEjsQ.cjs} +20 -8
  83. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-D86dT4XV.js} +20 -8
  84. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-mgUqOG2C.js} +20 -8
  85. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CkOfr271.js} +8 -8
  86. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-EB-Is7jj.cjs} +8 -8
  87. package/dist/src/{cometapi-OBILPLlu.js → cometapi-gvPhrXNM.js} +8 -8
  88. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi-sBbQmdfk.js} +8 -8
  89. package/dist/src/{completion-DZNxcyfG.js → completion-BoWiFP-D.js} +7 -7
  90. package/dist/src/{completion-CO2e1_62.js → completion-C99GFqQE.js} +7 -7
  91. package/dist/src/{completion-sNvCLTAP.js → completion-CUtdijfr.js} +7 -7
  92. package/dist/src/{completion-CSYfl2cd.cjs → completion-CkRVjadz.cjs} +7 -7
  93. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B4EiUJ-M.js} +43 -22
  94. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-BAN6NuWV.cjs} +45 -24
  95. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-CYzxmaSJ.js} +45 -24
  96. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-CrsXyaL0.js} +45 -24
  97. package/dist/src/{custom-BJfP00Bh.js → custom-C5K9QFs1.js} +13 -13
  98. package/dist/src/{custom-Cqia7M0D.cjs → custom-D1UjT5I5.cjs} +13 -13
  99. package/dist/src/{custom-CZVn-1-r.js → custom-DnMZvgB6.js} +13 -13
  100. package/dist/src/{custom-notggYVl.js → custom-EWterxkb.js} +11 -11
  101. package/dist/src/{docker-DdJQBxK9.js → docker-BFQc9ccU.js} +6 -6
  102. package/dist/src/{docker-D06JUoe2.cjs → docker-BMfsGXyn.cjs} +6 -6
  103. package/dist/src/{docker-4D1eL6Gq.js → docker-ChD4-eri.js} +6 -6
  104. package/dist/src/{docker-BBv1WUDu.js → docker-mZF5j6cW.js} +6 -6
  105. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BMqFDnLI.cjs} +7 -7
  106. package/dist/src/{embedding--UZVe4_7.js → embedding-BQBXSWgy.js} +7 -7
  107. package/dist/src/{embedding-Bi3rxrZF.js → embedding-BwTB3YDt.js} +7 -7
  108. package/dist/src/{embedding-C251p1-8.js → embedding-cd5oPBkX.js} +7 -7
  109. package/dist/src/{esm-B6whoAcf.js → esm-CGER3lko.js} +2 -2
  110. package/dist/src/{esm-Bexx2PFc.js → esm-CYMWMaSj.js} +2 -2
  111. package/dist/src/{esm-BTK1W7lG.js → esm-C_yrt93A.js} +2 -2
  112. package/dist/src/{esm-BIKakvNa.cjs → esm-vv4rR-Dp.cjs} +2 -2
  113. package/dist/src/{eval-0VRANImH.js → eval-DmGWplIN.js} +10 -10
  114. package/dist/src/{eval-DscR5iOM.js → eval-N_VV5NZg.js} +1 -1
  115. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-BZld6I3I.cjs} +6 -6
  116. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-ByGP9zuP.js} +7 -7
  117. package/dist/src/evalResult-CPPINYHK.js +3 -0
  118. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-gEmQRANj.js} +6 -6
  119. package/dist/src/evaluator-B01pCdUY.js +3 -0
  120. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-BpaUYhLY.js} +37 -37
  121. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-2gpZ9Q_f.cjs} +10 -10
  122. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-C8C8WQTv.js} +10 -10
  123. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-DDG44JeI.js} +10 -10
  124. package/dist/src/{extractor-CxRtnaHl.js → extractor-Bjz9sdTQ.js} +6 -6
  125. package/dist/src/{extractor-CIW3iN-b.js → extractor-CtadTcJm.js} +6 -6
  126. package/dist/src/{extractor-BR7XAzAL.js → extractor-DAnauX2V.js} +6 -6
  127. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-nyUwvU2U.cjs} +6 -6
  128. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-B2HvaVUc.cjs} +14 -12
  129. package/dist/src/{fetch-DXUnXkVU.js → fetch-C59QM4cf.js} +10 -8
  130. package/dist/src/{fetch-BufrQtvR.js → fetch-CBe8pU8Q.js} +10 -8
  131. package/dist/src/{fetch-It34O8Ur.js → fetch-CHJu2KON.js} +9 -7
  132. package/dist/src/fetch-D_XnRfBV.js +3 -0
  133. package/dist/src/{goat-Ckd3q3AY.js → goat-0HwO0EB2.js} +22 -21
  134. package/dist/src/{goat-una6pZGP.cjs → goat-7wQgRcT4.cjs} +22 -21
  135. package/dist/src/{goat-ghadEDdy.js → goat-BNX0lOFx.js} +20 -19
  136. package/dist/src/{goat-Qgurm-NP.js → goat-BOVnOl5S.js} +22 -21
  137. package/dist/src/{graders-BGP99PdK.js → graders-BnO-xoa-.js} +30 -30
  138. package/dist/src/{graders-ClrU2fnd.cjs → graders-CQv1GT5Q.cjs} +29 -29
  139. package/dist/src/graders-D4vc1PFi.js +3 -0
  140. package/dist/src/{graders-BX0f2tvS.js → graders-GNRQ1357.js} +29 -29
  141. package/dist/src/{graders-C0nXU_ZP.js → graders-k8qmhrPu.js} +31 -31
  142. package/dist/src/{hydra-BSNZZm2M.js → hydra-BrgGALmB.js} +38 -20
  143. package/dist/src/{hydra-BxdG4nkg.js → hydra-C38LOovb.js} +36 -18
  144. package/dist/src/{hydra-DE4xWwyc.js → hydra-CXc0p63W.js} +38 -20
  145. package/dist/src/{hydra-DrJttnvw.cjs → hydra-Hdj65j0k.cjs} +38 -20
  146. package/dist/src/{image-B_fPIwdg.js → image-6u3WZ_7H.js} +5 -5
  147. package/dist/src/{image-BN-hjLL9.js → image-B6hCz0z3.js} +5 -5
  148. package/dist/src/{image-BvUAW344.js → image-CgmaPlV_.js} +7 -7
  149. package/dist/src/{image-QzmydkiG.js → image-DXbwwL-r.js} +5 -5
  150. package/dist/src/{image-X0oY4350.cjs → image-Daa_X_YB.cjs} +7 -7
  151. package/dist/src/{image-Cvjwx1uY.js → image-DmC5qwQx.js} +7 -7
  152. package/dist/src/{image-DfVCGPbI.cjs → image-TY6FsHmn.cjs} +5 -5
  153. package/dist/src/{image-B4oBtu6J.js → image-V0-pYiBI.js} +7 -7
  154. package/dist/src/index.cjs +137 -140
  155. package/dist/src/index.d.cts +13 -0
  156. package/dist/src/index.d.ts +13 -0
  157. package/dist/src/index.js +137 -140
  158. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-04ziKbly.cjs} +5 -5
  159. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-1gHqaL91.js} +5 -5
  160. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B0CAtvZJ.js} +6 -6
  161. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BXUoJl4I.js} +5 -5
  162. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-Biy9I52D.js} +6 -6
  163. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BoPqjm9W.js} +6 -6
  164. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-DRYpRTx6.js} +5 -5
  165. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-MiCFTfzI.cjs} +6 -6
  166. package/dist/src/{inputVariables-DUGMb9Ka.js → inputVariables-B7cylqzM.js} +2 -2
  167. package/dist/src/{inputVariables-Dq9W-Z3a.cjs → inputVariables-D5K2vTp4.cjs} +2 -2
  168. package/dist/src/{inputVariables-B0qUChbV.js → inputVariables-DpOsOnzU.js} +3 -3
  169. package/dist/src/{inputVariables-DXFdi7AI.js → inputVariables-qJmuSN5i.js} +3 -3
  170. package/dist/src/{interactiveCheck-C4QlIuoR.js → interactiveCheck-BLnDrfjg.js} +2 -2
  171. package/dist/src/{iterative-FTS4Bz67.js → iterative-BDRx_noa.js} +29 -19
  172. package/dist/src/{iterative-CpU6i2As.js → iterative-BZxrxnoh.js} +27 -17
  173. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-KSovqu_j.cjs} +29 -19
  174. package/dist/src/{iterative-DJQEQpG3.js → iterative-vxBU1IPs.js} +29 -19
  175. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-BZuMd4x3.js} +7 -7
  176. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-DUWLmyVM.js} +6 -6
  177. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-DqNKoaIl.cjs} +7 -7
  178. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-DwIp1WGB.js} +7 -7
  179. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-9gsvnsl1.cjs} +39 -19
  180. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-AgI6UEh6.js} +39 -19
  181. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-BbcVN5nQ.js} +39 -19
  182. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-BcF8LsFk.js} +37 -17
  183. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-5TLHU9Kx.js} +81 -31
  184. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-7XyY_zdo.cjs} +81 -31
  185. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CnHx_kPu.js} +81 -31
  186. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-D9I3UJ0P.js} +79 -29
  187. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-BGbDBwr5.js} +5 -5
  188. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-BzfBwPyQ.js} +5 -5
  189. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-C_MSTwDt.js} +5 -5
  190. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-DSVK_YTi.cjs} +5 -5
  191. package/dist/src/{litellm-BXyn5kZK.js → litellm-CRTmskqC.js} +5 -5
  192. package/dist/src/{litellm-BKBo0jpC.js → litellm-Ch4E-r4b.js} +5 -5
  193. package/dist/src/{litellm-CNcfbCfa.js → litellm-DNnk7802.js} +5 -5
  194. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-jA4_p8mv.cjs} +5 -5
  195. package/dist/src/{logger-KD8JjCRJ.js → logger-BjYLHvGm.js} +56 -25
  196. package/dist/src/{logger-cfNpzI4o.cjs → logger-Cm0Nb8YX.cjs} +34 -3
  197. package/dist/src/{logger-Ct2S6Yx-.js → logger-Cs0I2v_y.js} +34 -3
  198. package/dist/src/{logger-BbY6ypFL.js → logger-h-eiS4iv.js} +34 -3
  199. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCkN79tz.cjs} +5 -5
  200. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-BqVizUQY.js} +5 -5
  201. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-CD7rd6KW.js} +5 -5
  202. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DLWLjDCa.js} +5 -5
  203. package/dist/src/main.js +143 -146
  204. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-BXDi4XCK.cjs} +8 -8
  205. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D-V4yXjj.js} +8 -8
  206. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-PrsT7Zh2.js} +8 -8
  207. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-ZUwCLvEn.js} +8 -8
  208. package/dist/src/{messages-DBPir0TQ.cjs → messages-BSFLFXIO.cjs} +8 -8
  209. package/dist/src/{messages-BabO-cX8.js → messages-C5qBfONg.js} +8 -8
  210. package/dist/src/{messages-DGUlSNU7.js → messages-CQoK4jHx.js} +8 -8
  211. package/dist/src/{messages-vsE_-Lv0.js → messages-Dy5vvc3H.js} +8 -8
  212. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-B4_YRWqu.cjs} +5 -5
  213. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-BoZy3Fry.js} +5 -5
  214. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CjJ9ZEuw.js} +5 -5
  215. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-CrMXlOUj.js} +5 -5
  216. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-B72XbAlR.js} +8 -8
  217. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-Bw-46LmW.js} +8 -8
  218. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-CJ0zQdDH.js} +8 -8
  219. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-LXFLCD-O.cjs} +8 -8
  220. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-D0k0-k8Y.cjs} +5 -5
  221. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-DItvBa6z.js} +5 -5
  222. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-DN7gTJzd.js} +5 -5
  223. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-DRLvlFOH.js} +5 -5
  224. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-BeAjEzkG.js} +3 -3
  225. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-DB7LzcCY.js} +3 -3
  226. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-DfLkPbkF.cjs} +3 -3
  227. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-kzIVxZDb.js} +3 -3
  228. package/dist/src/{openai-BMHD2Huo.js → openai-Bfbg6L4c.js} +2 -2
  229. package/dist/src/{openai-C3uXv8wS.cjs → openai-CCaz18I4.cjs} +2 -2
  230. package/dist/src/{openai-CJrsh9n4.js → openai-CJOpg_dA.js} +2 -2
  231. package/dist/src/{openai-zgwBb4Ff.js → openai-uRacy72N.js} +2 -2
  232. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-2Y9Ukt9Y.js} +9 -9
  233. package/dist/src/{openclaw-CF7fMido.js → openclaw-BdnuiqBG.js} +9 -9
  234. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-D54hA9Fe.cjs} +9 -9
  235. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DRjsDCSS.js} +9 -9
  236. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-2su-bzyz.js} +38 -9
  237. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-BRkqgOOQ.cjs} +38 -9
  238. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CFY-1bkH.js} +38 -9
  239. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-D-tRQJ9s.js} +38 -9
  240. package/dist/src/{otlpReceiver-B2eaKC8C.js → otlpReceiver-BkB7tsTT.js} +3 -3
  241. package/dist/src/{otlpReceiver--gTpSagc.js → otlpReceiver-BqJYGC-M.js} +4 -4
  242. package/dist/src/{otlpReceiver-BXjcRqAM.js → otlpReceiver-CRwU2egH.js} +4 -4
  243. package/dist/src/{otlpReceiver-CvJdBGSc.cjs → otlpReceiver-DOl5S07u.cjs} +4 -4
  244. package/dist/src/{packageParser--MWTSrPW.js → packageParser-B3bpKHK4.js} +2 -2
  245. package/dist/src/{packageParser-hwwSGnAZ.js → packageParser-CZdMKLBh.js} +2 -2
  246. package/dist/src/{packageParser-CgE-ziRo.js → packageParser-D7YWfcSe.js} +2 -2
  247. package/dist/src/{packageParser-QoCS1FMl.cjs → packageParser-DR054ceU.cjs} +2 -2
  248. package/dist/src/{promptLength-B9nZEfO6.js → promptLength-5B4_P93z.js} +2 -2
  249. package/dist/src/{promptLength-BbBbDHNj.cjs → promptLength-CAcg7BmO.cjs} +2 -2
  250. package/dist/src/{promptLength-4X-Wd8PG.js → promptLength-PkjlYFx0.js} +2 -2
  251. package/dist/src/{promptLength-0qIHyhA5.js → promptLength-ho3wbst6.js} +2 -2
  252. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CEsoPlBa.js} +67 -10
  253. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-DAXBmrE6.cjs} +96 -9
  254. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-DVKqidd8.js} +67 -10
  255. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-wxe28-q9.js} +67 -10
  256. package/dist/src/{providerRegistry-DHcFiVWX.js → providerRegistry-Bf4tRLgu.js} +2 -2
  257. package/dist/src/{providerRegistry-CZO_w7ue.cjs → providerRegistry-DKbi2EbP.cjs} +2 -2
  258. package/dist/src/{providerRegistry-ReCd0sFa.js → providerRegistry-DLeG-xXn.js} +2 -2
  259. package/dist/src/{providerRegistry-1gB5vtzQ.js → providerRegistry-v8Wa3f9z.js} +2 -2
  260. package/dist/src/{providers-B9KzWxAX.js → providers-CYBHjFEg.js} +178 -126
  261. package/dist/src/{providers-BCCz6_IX.js → providers-DDLQc0tl.js} +177 -125
  262. package/dist/src/{providers-BDVVIQM6.cjs → providers-DP1CDgd5.cjs} +176 -124
  263. package/dist/src/{providers-DVYRZP4E.js → providers-DTPwadhk.js} +176 -124
  264. package/dist/src/{providers-BYAn82cf.js → providers-DvBFcsXi.js} +1 -1
  265. package/dist/src/{pythonUtils-Cokhluq3.cjs → pythonUtils-BjuymNdM.cjs} +3 -3
  266. package/dist/src/{pythonUtils-D0BYebvX.js → pythonUtils-C4Wnz6Q7.js} +3 -3
  267. package/dist/src/{pythonUtils-CLCgQ9tt.js → pythonUtils-CBe7VV6f.js} +3 -3
  268. package/dist/src/{pythonUtils-CgYxeSmO.js → pythonUtils-CLAoc6jg.js} +3 -3
  269. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-B6ebiUKf.js} +6 -6
  270. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-BG7dvOQc.js} +6 -6
  271. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-DH6SMaxD.cjs} +6 -6
  272. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-DHNIAUfS.js} +6 -6
  273. package/dist/src/{registry-BUJrgjwv.js → registry-BKlwRYvr.js} +14 -14
  274. package/dist/src/{registry-KCVF1CFC.cjs → registry-CQHRTGYs.cjs} +14 -14
  275. package/dist/src/{registry-Dp5EqoXc.js → registry-Eiv-QeUm.js} +14 -14
  276. package/dist/src/{registry-DXm1t_x0.js → registry-qNoxbVEb.js} +14 -14
  277. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-CD3c_rzc.cjs} +6 -6
  278. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CoxtxLvB.js} +6 -6
  279. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-DW6mPZnO.js} +6 -6
  280. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration-DvWEm3yi.js} +6 -6
  281. package/dist/src/{render-_6ur1fhE.js → render-BoxrvB84.js} +2 -2
  282. package/dist/src/{render-DFfDeYUK.js → render-CTZQAINJ.js} +2 -2
  283. package/dist/src/{render-BNTrbmBw.cjs → render-DJ4yipCD.cjs} +2 -2
  284. package/dist/src/{render-DznWrxGO.js → render-MiyTvDY4.js} +2 -2
  285. package/dist/src/{render-CSP99NLm.js → render-jE6RKVgk.js} +2 -2
  286. package/dist/src/{responses-1UFFF9N_.cjs → responses-Bs2_3zyr.cjs} +14 -10
  287. package/dist/src/{responses-B3W2JvOQ.js → responses-C0yU3fO6.js} +14 -10
  288. package/dist/src/{responses-URRzV8qE.js → responses-C2vhwf8F.js} +14 -10
  289. package/dist/src/{responses-B6ktc3Ra.js → responses-pvlY3oYx.js} +14 -10
  290. package/dist/src/{rubyUtils-CnlW8AYb.js → rubyUtils-AvgsD_QH.js} +3 -3
  291. package/dist/src/{rubyUtils-CqUWBZAt.cjs → rubyUtils-BEqeZynS.cjs} +3 -3
  292. package/dist/src/{rubyUtils-CXlFM2rR.js → rubyUtils-C-sxXgGT.js} +3 -3
  293. package/dist/src/{rubyUtils-DdGojpfv.js → rubyUtils-DFzPvVD4.js} +3 -3
  294. package/dist/src/rubyUtils-DfYaGbxe.js +3 -0
  295. package/dist/src/{runtimeTransform-DigbjU1r.js → runtimeTransform-BmhEztlx.js} +2 -2
  296. package/dist/src/{runtimeTransform-BJOpL9Yc.js → runtimeTransform-Bw9Tttpp.js} +2 -2
  297. package/dist/src/{runtimeTransform-ON3YYILw.cjs → runtimeTransform-DJEknTZQ.cjs} +2 -2
  298. package/dist/src/{runtimeTransform-Dgh_D7DU.js → runtimeTransform-s14J7yxm.js} +2 -2
  299. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-C8NJAT8D.js} +11 -11
  300. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-DlajLLgJ.js} +11 -11
  301. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-PgIzjxMt.js} +11 -11
  302. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-hwPXLGI4.cjs} +11 -11
  303. package/dist/src/{scanner-DS0109SS.js → scanner-B3DPvw5u.js} +6 -6
  304. package/dist/src/server/index.js +145 -148
  305. package/dist/src/{server-DhMHosWj.js → server-4wx571OM.js} +6 -6
  306. package/dist/src/{server-Ddp8GNMp.js → server-8in_Vrrf.js} +6 -6
  307. package/dist/src/server-BHd6SQYX.js +3 -0
  308. package/dist/src/{server-CMJD10J4.js → server-pMTgWs3M.js} +4 -4
  309. package/dist/src/{server-B8rqV126.cjs → server-yHhoBx98.cjs} +4 -4
  310. package/dist/src/{shared-D6IjElRI.js → shared-BF25a7ms.js} +12 -12
  311. package/dist/src/{shared-WkgnDkcg.cjs → shared-DlmtkptR.cjs} +12 -12
  312. package/dist/src/{shared-9WHQ1oNE.js → shared-DsbObxvy.js} +12 -12
  313. package/dist/src/{shared-7pmVZLNO.js → shared-yBQATkD5.js} +13 -13
  314. package/dist/src/{signal-CSurUUyV.js → signal-CRrWj2xI.js} +3 -3
  315. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-9A3YPDh2.cjs} +7 -7
  316. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-CbZZV7UQ.js} +7 -7
  317. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-DdcsTBuS.js} +7 -7
  318. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-LKk31Iov.js} +7 -7
  319. package/dist/src/{slack-Bapo-7_8.js → slack-CWxUAo6N.js} +2 -2
  320. package/dist/src/{slack-DMC1QVEg.cjs → slack-CtMQnlyy.cjs} +2 -2
  321. package/dist/src/{slack-DTEFhrMn.js → slack-DrcMAkvd.js} +2 -2
  322. package/dist/src/{slack-k-_CP84Q.js → slack-chzmaYU3.js} +2 -2
  323. package/dist/src/{storage-BU4qcnOb.js → storage-B9lg2RCL.js} +6 -6
  324. package/dist/src/{storage-QdU-SmvD.js → storage-BC9TzmHh.js} +5 -5
  325. package/dist/src/{storage-CA-v9V2v.cjs → storage-Cv7QYUPO.cjs} +4 -4
  326. package/dist/src/{storage-CD-GWAdx.js → storage-fbHNSuZ9.js} +4 -4
  327. package/dist/src/{store-B2NDDooM.cjs → store-BKN4VD-m.cjs} +3 -3
  328. package/dist/src/{store-HpopRVzl.js → store-C4eo8Kyv.js} +3 -3
  329. package/dist/src/store-mJpYYA7W.js +3 -0
  330. package/dist/src/{store-DKd5592Q.js → store-u1XNK3e8.js} +3 -3
  331. package/dist/src/{strategies-CiSeroPH.js → strategies-4Nnr_9xt.js} +18 -18
  332. package/dist/src/{strategies-7CS3Alao.cjs → strategies-BD7US9WB.cjs} +18 -18
  333. package/dist/src/{strategies-DRJjGTIY.js → strategies-Ptz_P4P4.js} +20 -20
  334. package/dist/src/{tables-CRSXQ2Ke.js → tables-Bn3_8sxV.js} +2 -2
  335. package/dist/src/{tables-DafUHOeh.js → tables-D_ZGKiGc.js} +3 -3
  336. package/dist/src/{tables-DBIJU0WE.cjs → tables-D_s2HMPP.cjs} +2 -2
  337. package/dist/src/{tables-CxjU7bBd.js → tables-PWOqfbI_.js} +3 -3
  338. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-BTIhfopq.js} +21 -16
  339. package/dist/src/{telemetry-00ezXr_t.js → telemetry-BU80NveV.js} +21 -16
  340. package/dist/src/telemetry-CVHVhMOI.js +3 -0
  341. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-D3yQCekN.js} +21 -16
  342. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-DvzmDrSM.cjs} +21 -16
  343. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-D2F0D7es.js} +4 -4
  344. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-PLePpCmo.js} +3 -3
  345. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-WpE9IqC8.js} +4 -4
  346. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-eqmq5sA2.cjs} +4 -4
  347. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-CKLxdMxm.cjs} +7 -7
  348. package/dist/src/{transcription-B8uIgCYX.js → transcription-CmlDorqD.js} +7 -7
  349. package/dist/src/{transcription-CfU5loSq.js → transcription-Cupf4JNw.js} +7 -7
  350. package/dist/src/{transcription-Dkd22_4K.js → transcription-sOgdGxM6.js} +7 -7
  351. package/dist/src/{transform-BnSXWmU_2.cjs → transform-0wnBYYaL2.cjs} +4 -4
  352. package/dist/src/{transform-EtD4jAWi.js → transform-AfC8gqCB.js} +5 -5
  353. package/dist/src/{transform-CGt7Kt3y2.js → transform-BDSnWRNv2.js} +4 -4
  354. package/dist/src/{transform-BnSTnFlp.js → transform-C5pxvKUV.js} +4 -4
  355. package/dist/src/{transform-CrPGTsij.js → transform-C5rpIuDz.js} +4 -4
  356. package/dist/src/{transform-DmvYBRll.js → transform-D7QlmswG.js} +5 -5
  357. package/dist/src/{transform-DhNkAUs8.cjs → transform-DKw2FNwg.cjs} +5 -5
  358. package/dist/src/{transform-BIMynQsA.js → transform-R1PnNdLv.js} +5 -5
  359. package/dist/src/{types-BFevViUY.js → types-C_e_SykX.js} +2 -2
  360. package/dist/src/{types-BJQBBPTP.js → types-uLCKnRiK.js} +2 -2
  361. package/dist/src/{util-CN8om2rz.cjs → util-3BRss2KA.cjs} +7 -7
  362. package/dist/src/{util-efByNxcr.js → util-B2Nt2Oy7.js} +25 -7
  363. package/dist/src/{util-I-Rf-KaD.js → util-BGfk7zh7.js} +8 -8
  364. package/dist/src/{util-5WnCSb0h.js → util-BLSQ_7Ky.js} +25 -7
  365. package/dist/src/{util-IYzs5Y04.cjs → util-BSZPCmvm.cjs} +4 -3
  366. package/dist/src/{util-SPsvFONY.cjs → util-BuYzkbEz.cjs} +7 -7
  367. package/dist/src/{util-LKTmNsMQ.js → util-C6d3eV0A.js} +25 -7
  368. package/dist/src/{util-DURocbYR.js → util-CES4qWd7.js} +8 -8
  369. package/dist/src/{util-Df8YMvS1.js → util-CKZReNsz.js} +8 -8
  370. package/dist/src/{util-BSIuSLVK.cjs → util-Cs372i1_.cjs} +25 -7
  371. package/dist/src/{util-CoQWM76y.js → util-Cw9nJJWm.js} +4 -3
  372. package/dist/src/{util-DNl96nNs.js → util-D1NKMz55.js} +7 -7
  373. package/dist/src/{util-kDURhgJW.js → util-D9grslJP.js} +8 -8
  374. package/dist/src/{util--WMgw7wM.js → util-SNUDkWJ8.js} +4 -3
  375. package/dist/src/{util-Bx677_k2.js → util-vaCPFatZ.js} +7 -7
  376. package/dist/src/{util-DiQ3QvBB.js → util-weQgMdSy.js} +4 -3
  377. package/dist/src/{utils-Ve6kuJsa.cjs → utils-B_HCobst.cjs} +2 -2
  378. package/dist/src/{utils-BGY69tk_.js → utils-C3qMBhJT.js} +2 -2
  379. package/dist/src/{utils-BFOh20Gb.js → utils-Cdx3ZJr7.js} +2 -2
  380. package/dist/src/{utils-B0lzitHZ.js → utils-DMWnIu_V.js} +2 -2
  381. package/dist/src/{version-BK20a4sw.js → version-BGiEZvX0.js} +2 -2
  382. package/dist/src/{version-lpHV_53E.js → version-BNhpIb2U.js} +2 -2
  383. package/dist/src/{version-eRkNuGv8.js → version-CnYqmWbz.js} +2 -2
  384. package/dist/src/{version-BWCSaByA.cjs → version-XjGPawtU.cjs} +2 -2
  385. package/dist/tsconfig.tsbuildinfo +1 -1
  386. package/package.json +17 -17
  387. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  388. package/dist/src/app/assets/index-yhM8y1PP.css +0 -1
  389. package/dist/src/cache-Cf7b4pWE.js +0 -3
  390. package/dist/src/cloud-p96PA4MH.js +0 -3
  391. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  392. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  393. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  394. package/dist/src/fetch-_YgGd2qv.js +0 -3
  395. package/dist/src/graders-BDT7dif6.js +0 -3
  396. package/dist/src/rubyUtils-BYVlQ94c.js +0 -3
  397. package/dist/src/server-BaLytskk.js +0 -3
  398. package/dist/src/store-IbiRIF3k.js +0 -3
  399. package/dist/src/telemetry-ByPqDcKC.js +0 -3
package/dist/src/main.js CHANGED
@@ -1,45 +1,45 @@
1
1
  #!/usr/bin/env node
2
- import { C as getConfigDirectoryPath, D as getEnvInt, E as getEnvFloat, M as isNonInteractive, N as state, O as getEnvString, T as getEnvBool, _ as extractJsonObjects, a as isDebugEnabled, b as orderKeys, c as setLogCallback, g as extractFirstJsonObject, i as initializeRunLogging, j as isCI, l as setLogLevel, m as sanitizeObject, n as getLogLevel, s as logger, t as closeLogger, w as setConfigDirectoryPath } from "./logger-BbY6ypFL.js";
3
- import { F as getShareApiBaseUrl, I as getShareViewBaseUrl, M as TERMINAL_MAX_WIDTH, N as getDefaultPort, O as CLOUD_PROVIDER_PREFIX, P as getDefaultShareViewBaseUrl, R as HUMAN_ASSERTION_TYPE, _ as REQUEST_TIMEOUT_MS, f as sleep, i as fetchWithTimeout, n as fetchWithProxy, r as fetchWithRetries, t as clearAgentCache, x as isPromptfooSampleTarget } from "./fetch-DXUnXkVU.js";
4
- import { n as VERSION } from "./version-eRkNuGv8.js";
2
+ import { C as getConfigDirectoryPath, D as getEnvInt, E as getEnvFloat, M as isNonInteractive, N as state, O as getEnvString, T as getEnvBool, _ as extractJsonObjects, a as isDebugEnabled, b as orderKeys, c as setLogCallback, g as extractFirstJsonObject, i as initializeRunLogging, j as isCI, l as setLogLevel, m as sanitizeObject, n as getLogLevel, s as logger, t as closeLogger, w as setConfigDirectoryPath } from "./logger-h-eiS4iv.js";
3
+ import { F as getShareApiBaseUrl, I as getShareViewBaseUrl, M as TERMINAL_MAX_WIDTH, N as getDefaultPort, O as CLOUD_PROVIDER_PREFIX, P as getDefaultShareViewBaseUrl, R as HUMAN_ASSERTION_TYPE, f as sleep, i as fetchWithTimeout, n as fetchWithProxy, r as fetchWithRetries, t as clearAgentCache, v as getRequestTimeoutMs, x as isPromptfooSampleTarget } from "./fetch-C59QM4cf.js";
4
+ import { n as VERSION } from "./version-CnYqmWbz.js";
5
5
  import { t as invariant } from "./invariant-B2Rf6avk.js";
6
- import { a as getAuthor, c as isLoggedIntoCloud, l as promptForEmailUnverified, n as checkEmailStatusAndMaybeExit, o as getUserEmail, r as clearUserEmail, s as getUserId, t as checkEmailStatus, u as setUserEmail } from "./accounts-CjFnOPmb.js";
7
- import { a as cloudConfig, c as writeGlobalConfigPartial, o as readGlobalConfig, r as CloudConfig } from "./cloud-D3DiFqH6.js";
8
- import { n as TelemetryEventSchema, r as telemetry } from "./telemetry-00ezXr_t.js";
9
- import { $ as HARM_PLUGINS, B as categoryAliases, D as ADDITIONAL_STRATEGIES, E as isUuid, F as getDefaultNFanout, G as ADDITIONAL_PLUGINS, H as riskCategorySeverityMap, J as CANARY_BREAKING_STRATEGY_IDS, K as ALL_PLUGINS, L as isFanoutStrategy, N as STRATEGY_COLLECTIONS, P as STRATEGY_COLLECTION_MAPPINGS, Q as FOUNDATION_PLUGINS, R as isMultiTurnStrategy, S as PluginConfigSchema, U as subCategoryDescriptions, W as ALIASED_PLUGIN_MAPPINGS, X as DEFAULT_PLUGINS, Y as DATASET_EXEMPT_PLUGINS, Z as FINANCIAL_PLUGINS, _ as PromptSchema, _t as CODING_AGENT_PLUGINS, a as EvaluateOptionsSchema, at as MULTI_INPUT_VAR, b as ConversationMessageSchema, c as TestSuiteConfigSchema, dt as REMOTE_ONLY_PLUGIN_IDS, et as INSURANCE_PLUGINS, g as RedteamGenerateOptionsSchema, gt as CODING_AGENT_CORE_PLUGINS, h as RedteamConfigSchema, ht as UNALIGNED_PROVIDER_HARM_PLUGINS, i as EvalResultsFilterMode, it as MULTI_INPUT_EXCLUDED_PLUGINS, j as DEFAULT_STRATEGIES, k as ALL_STRATEGIES, l as TestSuiteSchema, lt as REDTEAM_MODEL, mt as TELECOM_PLUGINS, n as BaseAssertionTypesSchema, nt as LLAMA_GUARD_REPLICATE_PROVIDER, o as OutputFileExtension, ot as PHARMACY_PLUGINS, p as isApiProvider, pt as TEEN_SAFETY_PLUGINS, q as BIAS_PLUGINS, r as CommandLineOptionsSchema, rt as MEDICAL_PLUGINS, s as ResultFailureReason, st as PII_PLUGINS, t as AssertionOrSetSchema, tt as LLAMA_GUARD_ENABLED_CATEGORIES, u as UnifiedConfigSchema, ut as REDTEAM_PROVIDER_HARM_PLUGINS, v as ProviderOptionsSchema, w as StrategyConfigSchema, x as PartialGenerationError, y as ProvidersSchema, z as Severity } from "./types-BFevViUY.js";
6
+ import { c as isLoggedIntoCloud, i as getAuthor, l as promptForEmailUnverified, n as checkEmailStatusAndMaybeExit, o as getUserEmail, r as clearUserEmail, s as getUserId, t as checkEmailStatus, u as setUserEmail } from "./accounts-Bw2qPqE-.js";
7
+ import { a as cloudConfig, c as writeGlobalConfigPartial, o as readGlobalConfig, r as CloudConfig } from "./cloud-BbAl8dyj.js";
8
+ import { n as TelemetryEventSchema, r as telemetry } from "./telemetry-BU80NveV.js";
9
+ import { $ as HARM_PLUGINS, B as categoryAliases, D as ADDITIONAL_STRATEGIES, E as isUuid, F as getDefaultNFanout, G as ADDITIONAL_PLUGINS, H as riskCategorySeverityMap, J as CANARY_BREAKING_STRATEGY_IDS, K as ALL_PLUGINS, L as isFanoutStrategy, N as STRATEGY_COLLECTIONS, P as STRATEGY_COLLECTION_MAPPINGS, Q as FOUNDATION_PLUGINS, R as isMultiTurnStrategy, S as PluginConfigSchema, U as subCategoryDescriptions, W as ALIASED_PLUGIN_MAPPINGS, X as DEFAULT_PLUGINS, Y as DATASET_EXEMPT_PLUGINS, Z as FINANCIAL_PLUGINS, _ as PromptSchema, _t as CODING_AGENT_PLUGINS, a as EvaluateOptionsSchema, at as MULTI_INPUT_VAR, b as ConversationMessageSchema, c as TestSuiteConfigSchema, dt as REMOTE_ONLY_PLUGIN_IDS, et as INSURANCE_PLUGINS, g as RedteamGenerateOptionsSchema, gt as CODING_AGENT_CORE_PLUGINS, h as RedteamConfigSchema, ht as UNALIGNED_PROVIDER_HARM_PLUGINS, i as EvalResultsFilterMode, it as MULTI_INPUT_EXCLUDED_PLUGINS, j as DEFAULT_STRATEGIES, k as ALL_STRATEGIES, l as TestSuiteSchema, lt as REDTEAM_MODEL, mt as TELECOM_PLUGINS, n as BaseAssertionTypesSchema, nt as LLAMA_GUARD_REPLICATE_PROVIDER, o as OutputFileExtension, ot as PHARMACY_PLUGINS, p as isApiProvider, pt as TEEN_SAFETY_PLUGINS, q as BIAS_PLUGINS, r as CommandLineOptionsSchema, rt as MEDICAL_PLUGINS, s as ResultFailureReason, st as PII_PLUGINS, t as AssertionOrSetSchema, tt as LLAMA_GUARD_ENABLED_CATEGORIES, u as UnifiedConfigSchema, ut as REDTEAM_PROVIDER_HARM_PLUGINS, v as ProviderOptionsSchema, w as StrategyConfigSchema, x as PartialGenerationError, y as ProvidersSchema, z as Severity } from "./types-C_e_SykX.js";
10
10
  import { i as isJavascriptFile } from "./fileExtensions-D4GCJ67J.js";
11
- import { r as importModule, t as getDirectory } from "./esm-Bexx2PFc.js";
12
- import { a as extractVariablesFromTemplates, i as extractVariablesFromTemplate, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-CSP99NLm.js";
13
- import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-B1_XsKXU.js";
14
- import { a as openAuthBrowser, i as checkServerRunning, n as BrowserBehaviorNames, o as openBrowser, s as promptUser, t as BrowserBehavior } from "./server-DhMHosWj.js";
15
- import { _ as makeRequest$1, c as getCloudDatabaseId, d as getOrgContext, f as getPluginSeverityOverridesFromCloud, g as isCloudProvider, h as getUserTeams, i as retrieveMedia, l as getConfigFromCloud, m as getProviderFromCloud, o as canCreateTargets, r as mediaExists, s as checkCloudPermissions, t as getMediaStorage, u as getEvalConfigFromCloud, v as resolveTeamFromIdentifier, y as resolveTeamId } from "./storage-BU4qcnOb.js";
11
+ import { r as importModule, t as getDirectory } from "./esm-CYMWMaSj.js";
12
+ import { a as extractVariablesFromTemplates, i as extractVariablesFromTemplate, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-jE6RKVgk.js";
13
+ import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DW6mPZnO.js";
14
+ import { a as openAuthBrowser, i as checkServerRunning, n as BrowserBehaviorNames, o as openBrowser, s as promptUser, t as BrowserBehavior } from "./server-4wx571OM.js";
15
+ import { _ as makeRequest$1, c as getCloudDatabaseId, d as getOrgContext, f as getPluginSeverityOverridesFromCloud, g as isCloudProvider, h as getUserTeams, i as retrieveMedia, l as getConfigFromCloud, m as getProviderFromCloud, o as canCreateTargets, r as mediaExists, s as checkCloudPermissions, t as getMediaStorage, u as getEvalConfigFromCloud, v as resolveTeamFromIdentifier, y as resolveTeamId } from "./storage-B9lg2RCL.js";
16
16
  import { n as sha256, t as randomSequence } from "./createHash-CgRvs4Fn.js";
17
- import { a as fetchWithCache, n as clearCache, r as disableCache, t as cache_exports } from "./cache-DpPWrkTE.js";
18
- import { r as runPython } from "./pythonUtils-CgYxeSmO.js";
19
- import { D as normalizeProviderRef, L as readFilters, M as maybeLoadFromExternalFile, R as readOutput, _ as resultIsForTestCase, a as ComparisonEvalNotFoundError, b as getProviderDescription, c as getEvalTableOutputPromptLocationsBySize, d as fetchCsvFromGoogleSheet, f as setupEnv, g as getTestCaseDeduplicationKey, h as filterRuntimeVars, i as writeOutput, j as maybeLoadConfigFromExternalFile, l as getEvalTablePromptStrippedPayload, m as extractRuntimeVars, n as createOutputMetadata, o as evalTableToJson, p as deduplicateTestCases, r as writeMultipleOutputs, s as generateEvalCsv, t as printBorder, u as mergeComparisonTables, v as checkProviderApiKeys, y as doesProviderRefMatch } from "./util-DURocbYR.js";
20
- import { a as resolveProviderConfigs, d as MCPProvider, f as HttpProvider, i as resolveProvider, m as createTransformResponse, n as loadApiProvider, p as createTransformRequest, r as loadApiProviders, t as getProviderIds } from "./providers-B9KzWxAX.js";
17
+ import { a as fetchWithCache, n as clearCache, r as disableCache, t as cache_exports } from "./cache-BuudGL4I.js";
18
+ import { r as runPython } from "./pythonUtils-CLAoc6jg.js";
19
+ import { D as normalizeProviderRef, L as readFilters, M as maybeLoadFromExternalFile, R as readOutput, _ as resultIsForTestCase, a as ComparisonEvalNotFoundError, b as getProviderDescription, c as getEvalTableOutputPromptLocationsBySize, d as fetchCsvFromGoogleSheet, f as setupEnv, g as getTestCaseDeduplicationKey, h as filterRuntimeVars, i as writeOutput, j as maybeLoadConfigFromExternalFile, l as getEvalTablePromptStrippedPayload, m as extractRuntimeVars, n as createOutputMetadata, o as evalTableToJson, p as deduplicateTestCases, r as writeMultipleOutputs, s as generateEvalCsv, t as printBorder, u as mergeComparisonTables, v as checkProviderApiKeys, y as doesProviderRefMatch } from "./util-CES4qWd7.js";
20
+ import { a as resolveProviderConfigs, d as MCPProvider, f as HttpProvider, i as resolveProvider, m as createTransformResponse, n as loadApiProvider, p as createTransformRequest, r as loadApiProviders, t as getProviderIds } from "./providers-CYBHjFEg.js";
21
21
  import { a as createEmptyTokenUsage, i as createEmptyAssertions, n as accumulateResponseTokenUsage, r as accumulateTokenUsage, t as accumulateAssertionTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
22
22
  import { n as escapeRegExp, t as ellipsize } from "./text-Db-Wt2u2.js";
23
- import { a as evalResultsTable, c as evalsToPromptsTable, d as promptsTable, g as getDb, h as closeDbIfOpen, i as datasetsTable, l as evalsToTagsTable, n as blobReferencesTable, o as evalsTable, p as tagsTable, r as configsTable, s as evalsToDatasetsTable, t as blobAssetsTable, u as modelAuditsTable } from "./tables-DafUHOeh.js";
24
- import { n as getBlobUrl, t as getBlobByHash } from "./blobs-DODuTK-a.js";
25
- import { n as createPlaceholderInputValue, r as materializeInputVariablesWithMetadata, t as buildPromptInputDescriptions } from "./inputVariables-DXFdi7AI.js";
26
- import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, r as extractInputVarsFromPrompt, s as getShortPluginId } from "./util-kDURhgJW.js";
27
- import { n as PromptfooHarmfulCompletionProvider } from "./promptfoo-Rjp-MeBb.js";
28
- import { A as DivergentRepetitionPlugin, B as sampleArray, C as getPiiLeakTestsForCategory, Ct as getDefaultProviders, D as HarmbenchPlugin, E as ImitationPlugin, F as AegisPlugin, I as RedteamGraderBase, L as RedteamPluginBase, M as CrossSessionLeakPlugin, N as ContractPlugin, O as HallucinationPlugin, P as BeavertailsPlugin, Q as readProviderPromptMap, R as getCustomPolicies, S as PlinyPlugin, T as IntentPlugin, V as fetchHuggingFaceDataset, X as processPrompts, Y as doRemoteGrading, Z as readPrompts, _ as PoliticsPlugin, a as UnverifiableClaimsPlugin, b as isValidPolicyObject, c as ToolDiscoveryPlugin, d as TeenSafetyDangerousContentPlugin, f as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, g as PromptExtractionPlugin, h as RbacPlugin, i as VLGuardPlugin, j as DebugAccessPlugin, k as ExcessiveAgencyPlugin, l as TeenSafetyHarmfulBodyIdealsPlugin, m as ShellInjectionPlugin, o as UnsafeBenchPlugin, p as SqlInjectionPlugin, r as VLSUPlugin, s as ToxicChatPlugin, t as GRADERS, u as TeenSafetyDangerousRoleplayPlugin, v as PolicyPlugin, w as OverreliancePlugin, x as makeInlinePolicyIdSync, y as determinePolicyTypeFromId, z as retryWithDeduplication } from "./graders-BGP99PdK.js";
29
- import { f as redteamProviderManager, m as TokenUsageTracker } from "./shared-9WHQ1oNE.js";
30
- import { c as assertions_default, l as readAssertions, n as evaluate$1, o as accumulateNamedMetric, s as doesPromptRefMatch, u as runAssertions } from "./evaluator-DRoiYB2q.js";
31
- import { i as generateIdFromPrompt } from "./utils-BFOh20Gb.js";
32
- import { n as TRANSFORM_KEYS, t as INLINE_FUNCTION_LABEL } from "./transform-BnSTnFlp.js";
33
- import { n as getTraceStore } from "./store-DKd5592Q.js";
34
- import { n as setupSignalWatcher, t as readSignalEvalId } from "./signal-CSurUUyV.js";
35
- import { n as isBlobStorageEnabled } from "./extractor-CIW3iN-b.js";
36
- import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-4X-Wd8PG.js";
37
- import { a as createEvalId, n as EvalQueries, s as getEvalSummaries, t as Eval } from "./eval-0VRANImH.js";
38
- import { n as sanitizeProvider, t as EvalResult } from "./evalResult-eUkJv9Ko.js";
39
- import { n as renderPrompt } from "./evaluatorHelpers-BsYP_muT.js";
23
+ import { a as evalResultsTable, c as evalsToPromptsTable, d as promptsTable, g as getDb, h as closeDbIfOpen, i as datasetsTable, l as evalsToTagsTable, n as blobReferencesTable, o as evalsTable, p as tagsTable, r as configsTable, s as evalsToDatasetsTable, t as blobAssetsTable, u as modelAuditsTable } from "./tables-D_ZGKiGc.js";
24
+ import { n as getBlobUrl, t as getBlobByHash } from "./blobs-CA4gXarv.js";
25
+ import { n as createPlaceholderInputValue, t as buildPromptInputDescriptions } from "./inputVariables-qJmuSN5i.js";
26
+ import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, s as getShortPluginId } from "./util-D9grslJP.js";
27
+ import { a as assertRemoteMaterializationHandled, l as requiresRemoteMaterialization, n as PromptfooHarmfulCompletionProvider } from "./promptfoo-wxe28-q9.js";
28
+ import { A as DivergentRepetitionPlugin, B as sampleArray, C as getPiiLeakTestsForCategory, Ct as getDefaultProviders, D as HarmbenchPlugin, E as ImitationPlugin, F as AegisPlugin, I as RedteamGraderBase, L as RedteamPluginBase, M as CrossSessionLeakPlugin, N as ContractPlugin, O as HallucinationPlugin, P as BeavertailsPlugin, Q as readProviderPromptMap, R as getCustomPolicies, S as PlinyPlugin, T as IntentPlugin, V as fetchHuggingFaceDataset, X as processPrompts, Y as doRemoteGrading, Z as readPrompts, _ as PoliticsPlugin, a as UnverifiableClaimsPlugin, b as isValidPolicyObject, c as ToolDiscoveryPlugin, d as TeenSafetyDangerousContentPlugin, f as TeenSafetyAgeRestrictedGoodsAndServicesPlugin, g as PromptExtractionPlugin, h as RbacPlugin, i as VLGuardPlugin, j as DebugAccessPlugin, k as ExcessiveAgencyPlugin, l as TeenSafetyHarmfulBodyIdealsPlugin, m as ShellInjectionPlugin, o as UnsafeBenchPlugin, p as SqlInjectionPlugin, r as VLSUPlugin, s as ToxicChatPlugin, t as GRADERS, u as TeenSafetyDangerousRoleplayPlugin, v as PolicyPlugin, w as OverreliancePlugin, x as makeInlinePolicyIdSync, y as determinePolicyTypeFromId, z as retryWithDeduplication } from "./graders-BnO-xoa-.js";
29
+ import { f as redteamProviderManager, m as TokenUsageTracker } from "./shared-DsbObxvy.js";
30
+ import { c as assertions_default, l as readAssertions, n as evaluate$1, o as accumulateNamedMetric, s as doesPromptRefMatch, u as runAssertions } from "./evaluator-BpaUYhLY.js";
31
+ import { i as generateIdFromPrompt } from "./utils-Cdx3ZJr7.js";
32
+ import { n as TRANSFORM_KEYS, t as INLINE_FUNCTION_LABEL } from "./transform-C5pxvKUV.js";
33
+ import { n as getTraceStore } from "./store-u1XNK3e8.js";
34
+ import { n as setupSignalWatcher, t as readSignalEvalId } from "./signal-CRrWj2xI.js";
35
+ import { n as isBlobStorageEnabled } from "./extractor-CtadTcJm.js";
36
+ import { n as getGeneratedPromptOverLimit, r as getMaxCharsPerMessageModifierValue, t as MAX_CHARS_PER_MESSAGE_MODIFIER_KEY } from "./promptLength-PkjlYFx0.js";
37
+ import { a as createEvalId, n as EvalQueries, s as getEvalSummaries, t as Eval } from "./eval-DmGWplIN.js";
38
+ import { n as sanitizeProvider, t as EvalResult } from "./evalResult-ByGP9zuP.js";
39
+ import { n as renderPrompt } from "./evaluatorHelpers-DDG44JeI.js";
40
40
  import { t as formatDuration } from "./formatDuration-CMVNrYvE.js";
41
- import { i as pluginMatchesStrategyTargets, n as loadStrategy, r as validateStrategies, t as Strategies } from "./strategies-DRJjGTIY.js";
42
- import { n as shouldUseInkUI } from "./interactiveCheck-C4QlIuoR.js";
41
+ import { i as pluginMatchesStrategyTargets, n as loadStrategy, r as validateStrategies, t as Strategies } from "./strategies-Ptz_P4P4.js";
42
+ import { n as shouldUseInkUI } from "./interactiveCheck-BLnDrfjg.js";
43
43
  import { fileURLToPath } from "node:url";
44
44
  import { Command, InvalidArgumentError } from "commander";
45
45
  import { z } from "zod";
@@ -111,7 +111,7 @@ function runCommand(program) {
111
111
  hasGithubPr: !!cmdObj.githubPr,
112
112
  hasGuidance: !!(cmdObj.guidance || cmdObj.guidanceFile)
113
113
  });
114
- const { executeScan } = await import("./scanner-DS0109SS.js");
114
+ const { executeScan } = await import("./scanner-B3DPvw5u.js");
115
115
  await executeScan(repoPath, cmdObj);
116
116
  });
117
117
  }
@@ -4389,7 +4389,7 @@ async function doEval(cmdObj, defaultConfig, defaultConfigPath, evaluateOptions)
4389
4389
  const passRate = successes / totalTests * 100;
4390
4390
  if (cmdObj.table && getLogLevel() !== "debug" && totalTests < 500) {
4391
4391
  const table = await evalRecord.getTable();
4392
- const outputTable = generateTable(table);
4392
+ const outputTable = generateTable(table, cmdObj.tableCellMaxLength ?? commandLineOptions?.tableCellMaxLength);
4393
4393
  logger.info("\n" + outputTable.toString());
4394
4394
  if (table.body.length > 25) {
4395
4395
  const rowsLeft = table.body.length - 25;
@@ -4546,7 +4546,7 @@ function evalCommand(program, defaultConfig, defaultConfigPath) {
4546
4546
  };
4547
4547
  }, {}).option("-j, --max-concurrency <number>", `Maximum number of concurrent API calls (default: 4)`).option("--repeat <number>", "Number of times to run each test (default: 1)").option("--delay <number>", "Delay between each test (in milliseconds) (default: 0)").option("--no-cache", "Do not read or write results to disk cache", defaultConfig?.commandLineOptions?.cache ?? defaultConfig?.evaluateOptions?.cache).option("--remote", "Force remote inference wherever possible (used for red teams)", false).option("-n, --filter-first-n <number>", "Only run the first N tests").option("--filter-pattern <pattern>", "Only run tests whose description matches the regular expression pattern").option("--filter-prompts <pattern>", "Only run tests with prompts whose id or label matches the regex pattern").option("--filter-providers, --filter-targets <providers>", "Only run tests with these providers (regex match)").option("--filter-sample <number>", "Only run a random sample of N tests").option("--filter-failing <path or id>", "Path to json output file or eval ID to filter non-passing tests from (failures + errors)").option("--filter-failing-only <path or id>", "Path to json output file or eval ID to filter assertion failures from (excludes errors)").option("--filter-errors-only <path or id>", "Path to json output file or eval ID to filter error tests from").option("--filter-metadata <key=value>", "Only run tests whose metadata matches the key=value pair. Can be specified multiple times for AND logic (e.g. --filter-metadata type=unit --filter-metadata env=prod)", (value, previous) => {
4548
4548
  return previous ? [...previous, value] : [value];
4549
- }).option("-o, --output <paths...>", "Path to output file (csv, txt, json, yaml, yml, html), default is no output file").option("--table", "Output table in CLI", defaultConfig?.commandLineOptions?.table ?? true).option("--no-table", "Do not output table in CLI", defaultConfig?.commandLineOptions?.table).option("--table-cell-max-length <number>", "Truncate console table cells to this length", "250").option("--share", "Create a shareable URL", defaultConfig?.commandLineOptions?.share).option("--no-share", "Do not share, this overrides the config file").option("--resume [evalId]", "Resume a paused/incomplete evaluation. Defaults to latest when omitted").option("--retry-errors", "Retry all ERROR results from the latest evaluation").option("--no-write", "Do not write results to promptfoo directory", defaultConfig?.commandLineOptions?.write).option("--grader <provider>", "Model that will grade outputs", defaultConfig?.commandLineOptions?.grader).option("--suggest-prompts <number>", "Generate N new prompts and append them to the prompt list").option("-w, --watch", "Watch for changes in config and re-run").option("-x, --extension <paths...>", "Extension hooks to run (e.g., file://handler.js:afterAll)").option("--description <description>", "Description of the eval run").option("--no-progress-bar", "Do not show progress bar").action(async (opts, command) => {
4549
+ }).option("-o, --output <paths...>", "Path to output file (csv, txt, json, yaml, yml, html), default is no output file").option("--table", "Output table in CLI", defaultConfig?.commandLineOptions?.table ?? true).option("--no-table", "Do not output table in CLI", defaultConfig?.commandLineOptions?.table).option("--table-cell-max-length <number>", "Truncate console table cells to this length").option("--share", "Create a shareable URL", defaultConfig?.commandLineOptions?.share).option("--no-share", "Do not share, this overrides the config file").option("--resume [evalId]", "Resume a paused/incomplete evaluation. Defaults to latest when omitted").option("--retry-errors", "Retry all ERROR results from the latest evaluation").option("--no-write", "Do not write results to promptfoo directory", defaultConfig?.commandLineOptions?.write).option("--grader <provider>", "Model that will grade outputs", defaultConfig?.commandLineOptions?.grader).option("--suggest-prompts <number>", "Generate N new prompts and append them to the prompt list").option("-w, --watch", "Watch for changes in config and re-run").option("-x, --extension <paths...>", "Extension hooks to run (e.g., file://handler.js:afterAll)").option("--description <description>", "Description of the eval run").option("--no-progress-bar", "Do not show progress bar").action(async (opts, command) => {
4550
4550
  let validatedOpts;
4551
4551
  try {
4552
4552
  validatedOpts = EvalCommandSchema.parse(opts);
@@ -5590,7 +5590,7 @@ async function fetchRemoteGeneration(task, prompts) {
5590
5590
  method: "POST",
5591
5591
  headers: { "Content-Type": "application/json" },
5592
5592
  body: JSON.stringify(body)
5593
- }, REQUEST_TIMEOUT_MS, "json");
5593
+ }, getRequestTimeoutMs(), "json");
5594
5594
  return RedTeamGenerationResponse.parse(response.data).result;
5595
5595
  } catch (error) {
5596
5596
  logger.warn(`Error using remote generation for task '${task}': ${error}`);
@@ -5763,7 +5763,7 @@ const DATASET_URL$2 = `https://raw.githubusercontent.com/promptfoo/promptfoo/ref
5763
5763
  const DATASET_URL_MULTILINGUAL = `https://raw.githubusercontent.com/promptfoo/promptfoo/refs/tags/${DATASET_VERSION}/examples/cyberseceval/prompt_injection_multilingual.json`;
5764
5764
  async function fetchDataset$2(limit, isMultilingual) {
5765
5765
  try {
5766
- const response = await fetchWithTimeout(isMultilingual ? DATASET_URL_MULTILINGUAL : DATASET_URL$2, {}, REQUEST_TIMEOUT_MS);
5766
+ const response = await fetchWithTimeout(isMultilingual ? DATASET_URL_MULTILINGUAL : DATASET_URL$2, {}, getRequestTimeoutMs());
5767
5767
  if (!response.ok) throw new Error(`[CyberSecEval] HTTP status: ${response.status} ${response.statusText}`);
5768
5768
  const data = await response.json();
5769
5769
  if (!data || !Array.isArray(data)) throw new Error(`[CyberSecEval] Invalid response from ${DATASET_URL$2}`);
@@ -5831,7 +5831,7 @@ async function fetchDataset$1(limit) {
5831
5831
  logger.debug(`[DoNotAnswer] Fetching dataset from ${DATASET_URL$1}`);
5832
5832
  let csvData;
5833
5833
  if (DATASET_URL$1.startsWith("http")) {
5834
- const response = await fetchWithTimeout(DATASET_URL$1, {}, REQUEST_TIMEOUT_MS);
5834
+ const response = await fetchWithTimeout(DATASET_URL$1, {}, getRequestTimeoutMs());
5835
5835
  if (!response.ok) throw new Error(`[DoNotAnswer] HTTP status: ${response.status} ${response.statusText}`);
5836
5836
  csvData = await response.text();
5837
5837
  } else try {
@@ -6366,7 +6366,7 @@ async function fetchDataset(limit) {
6366
6366
  logger.debug(`[XSTest] Fetching dataset from ${DATASET_URL}`);
6367
6367
  let csvData;
6368
6368
  if (DATASET_URL.startsWith("http")) {
6369
- const response = await fetchWithTimeout(DATASET_URL, {}, REQUEST_TIMEOUT_MS);
6369
+ const response = await fetchWithTimeout(DATASET_URL, {}, getRequestTimeoutMs());
6370
6370
  if (!response.ok) throw new Error(`[XSTest] HTTP status: ${response.status} ${response.statusText}`);
6371
6371
  csvData = await response.text();
6372
6372
  } else try {
@@ -6644,11 +6644,12 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
6644
6644
  method: "POST",
6645
6645
  headers: { "Content-Type": "application/json" },
6646
6646
  body
6647
- }, REQUEST_TIMEOUT_MS);
6647
+ }, getRequestTimeoutMs());
6648
6648
  if (status !== 200 || !data || !data.result || !Array.isArray(data.result)) {
6649
6649
  logger.error(`Error generating test cases for ${key}: ${statusText} ${JSON.stringify(data)}`);
6650
6650
  return [];
6651
6651
  }
6652
+ if (requiresRemoteMaterialization(config?.inputs)) assertRemoteMaterializationHandled(data, `Remote plugin generation for ${key}`);
6652
6653
  const ret = data.result;
6653
6654
  logger.debug(`Received remote generation for ${key}:\n${JSON.stringify(ret)}`);
6654
6655
  return ret;
@@ -6657,31 +6658,6 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
6657
6658
  return [];
6658
6659
  }
6659
6660
  }
6660
- async function materializeRemoteTestCaseInputs({ config, injectVar, pluginId, provider, purpose, testCases }) {
6661
- const inputs = config.inputs;
6662
- if (!inputs || Object.keys(inputs).length === 0) return testCases;
6663
- return Promise.all(testCases.map(async (testCase, materializationIndex) => {
6664
- const inputVars = extractInputVarsFromPrompt(String(testCase.vars?.[injectVar] ?? ""), inputs);
6665
- if (!inputVars) return testCase;
6666
- const materializedVars = await materializeInputVariablesWithMetadata(inputVars, inputs, {
6667
- materializationIndex,
6668
- pluginId,
6669
- provider,
6670
- purpose
6671
- });
6672
- return {
6673
- ...testCase,
6674
- vars: {
6675
- ...testCase.vars || {},
6676
- ...materializedVars.vars
6677
- },
6678
- metadata: {
6679
- ...testCase.metadata || {},
6680
- ...materializedVars.metadata ? { inputMaterialization: materializedVars.metadata } : {}
6681
- }
6682
- };
6683
- }));
6684
- }
6685
6661
  function createPluginFactory(PluginClass, key, validate) {
6686
6662
  return {
6687
6663
  key,
@@ -6693,14 +6669,7 @@ function createPluginFactory(PluginClass, key, validate) {
6693
6669
  return new PluginClass(provider, purpose, injectVar, configWithDefaults).generateTests(n, delayMs);
6694
6670
  }
6695
6671
  const pluginId = getShortPluginId(key);
6696
- const testCases = await materializeRemoteTestCaseInputs({
6697
- config: configWithDefaults ?? {},
6698
- injectVar,
6699
- pluginId,
6700
- provider,
6701
- purpose,
6702
- testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
6703
- });
6672
+ const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
6704
6673
  const computedModifiers = computeModifiersFromConfig(configWithDefaults);
6705
6674
  return testCases.map((testCase) => ({
6706
6675
  ...testCase,
@@ -6787,14 +6756,7 @@ const piiPlugins = PII_PLUGINS.map((category) => ({
6787
6756
  action: async (params) => {
6788
6757
  if (shouldGenerateRemote()) {
6789
6758
  const pluginId = getShortPluginId(category);
6790
- const testCases = await materializeRemoteTestCaseInputs({
6791
- config: params.config ?? {},
6792
- injectVar: params.injectVar,
6793
- pluginId,
6794
- provider: params.provider,
6795
- purpose: params.purpose,
6796
- testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
6797
- });
6759
+ const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
6798
6760
  const computedModifiers = computeModifiersFromConfig(params.config);
6799
6761
  return testCases.map((testCase) => ({
6800
6762
  ...testCase,
@@ -6826,14 +6788,7 @@ const biasPlugins = BIAS_PLUGINS.map((category) => ({
6826
6788
  return [];
6827
6789
  }
6828
6790
  const pluginId = getShortPluginId(category);
6829
- const testCases = await materializeRemoteTestCaseInputs({
6830
- config: params.config ?? {},
6831
- injectVar: params.injectVar,
6832
- pluginId,
6833
- provider: params.provider,
6834
- purpose: params.purpose,
6835
- testCases: await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {})
6836
- });
6791
+ const testCases = await fetchRemoteTestCases(category, params.purpose, params.injectVar, params.n, params.config ?? {});
6837
6792
  const computedModifiers = computeModifiersFromConfig(params.config);
6838
6793
  return testCases.map((testCase) => ({
6839
6794
  ...testCase,
@@ -6852,21 +6807,14 @@ function createRemotePlugin(key, validate) {
6852
6807
  return {
6853
6808
  key,
6854
6809
  validate,
6855
- action: async ({ provider, purpose, injectVar, n, config }) => {
6810
+ action: async ({ purpose, injectVar, n, config }) => {
6856
6811
  const configWithDefaults = applyDefaultRemotePluginConfig(key, config);
6857
6812
  if (neverGenerateRemote()) {
6858
6813
  logger.error(getRemoteGenerationExplicitlyDisabledError(`${key} plugin`));
6859
6814
  return [];
6860
6815
  }
6861
6816
  const pluginId = getShortPluginId(key);
6862
- const testCases = await materializeRemoteTestCaseInputs({
6863
- config: configWithDefaults ?? {},
6864
- injectVar,
6865
- pluginId,
6866
- provider,
6867
- purpose,
6868
- testCases: await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {})
6869
- });
6817
+ const testCases = await fetchRemoteTestCases(key, purpose, injectVar, n, configWithDefaults ?? {});
6870
6818
  const computedModifiers = computeModifiersFromConfig(configWithDefaults);
6871
6819
  const testsWithMetadata = testCases.map((testCase) => ({
6872
6820
  ...testCase,
@@ -6933,6 +6881,15 @@ async function validateSharpDependency(strategies, plugins, checkSharp = isSharp
6933
6881
  }
6934
6882
  //#endregion
6935
6883
  //#region src/redteam/index.ts
6884
+ const MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY = "__promptfooMaterializedMultiInputPrompt";
6885
+ function getMaterializedMultiInputPromptSnapshot(metadata) {
6886
+ const snapshot = metadata?.[MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY];
6887
+ return typeof snapshot === "string" ? snapshot : void 0;
6888
+ }
6889
+ function getMaterializedMultiInputPromptMetadata(vars) {
6890
+ const prompt = vars?.[MULTI_INPUT_VAR];
6891
+ return typeof prompt === "string" ? { [MATERIALIZED_MULTI_INPUT_PROMPT_METADATA_KEY]: prompt } : void 0;
6892
+ }
6936
6893
  function getPolicyText(metadata) {
6937
6894
  if (!metadata || metadata.policy === void 0 || metadata.policy === null) return;
6938
6895
  const policyValue = metadata.policy;
@@ -6945,12 +6902,19 @@ function getPolicyText(metadata) {
6945
6902
  async function rematerializeStrategyInputVars(testCase, injectVar, provider, purpose, materializationIndex) {
6946
6903
  const inputs = testCase.metadata?.pluginConfig?.inputs;
6947
6904
  const inputMaterialization = testCase.metadata?.inputMaterialization;
6948
- if (!inputs || Object.keys(inputs).length === 0 || !testCase.vars?.[injectVar]) return {
6905
+ const materializedPromptSnapshot = getMaterializedMultiInputPromptSnapshot(testCase.metadata);
6906
+ const currentInjectVar = testCase.vars?.[injectVar];
6907
+ if (!inputs || Object.keys(inputs).length === 0 || !currentInjectVar) return {
6908
+ inputMaterialization,
6909
+ vars: testCase.vars
6910
+ };
6911
+ const promptChangedSinceMaterialization = typeof currentInjectVar === "string" && typeof materializedPromptSnapshot === "string" && currentInjectVar !== materializedPromptSnapshot;
6912
+ if (Boolean(inputMaterialization) && Object.keys(inputs).every((key) => Object.prototype.hasOwnProperty.call(testCase.vars ?? {}, key)) && !promptChangedSinceMaterialization) return {
6949
6913
  inputMaterialization,
6950
6914
  vars: testCase.vars
6951
6915
  };
6952
6916
  try {
6953
- const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(testCase.vars[injectVar])), inputs, {
6917
+ const materializedVars = await extractMaterializedVariablesFromJsonWithMetadata(JSON.parse(String(currentInjectVar)), inputs, {
6954
6918
  materializationIndex,
6955
6919
  pluginId: String(testCase.metadata?.pluginId || "unknown-plugin"),
6956
6920
  provider,
@@ -7182,7 +7146,8 @@ function addLanguageToPluginMetadata(test, lang, plugin, maxCharsPerMessage, tes
7182
7146
  ...test.metadata?.modifiers,
7183
7147
  ...languageToAdd
7184
7148
  },
7185
- ...languageToAdd
7149
+ ...languageToAdd,
7150
+ ...getMaterializedMultiInputPromptMetadata(test.vars)
7186
7151
  }
7187
7152
  };
7188
7153
  }
@@ -7281,7 +7246,8 @@ async function applyStrategies(testCases, strategies, injectVar, provider, purpo
7281
7246
  ...t?.metadata?.pluginId && { pluginId: t.metadata.pluginId },
7282
7247
  ...t?.metadata?.pluginConfig && { pluginConfig: t.metadata.pluginConfig },
7283
7248
  ...inputMaterialization && { inputMaterialization },
7284
- ...Object.keys(strategyConfig).length > 0 && { strategyConfig }
7249
+ ...Object.keys(strategyConfig).length > 0 && { strategyConfig },
7250
+ ...getMaterializedMultiInputPromptMetadata(vars)
7285
7251
  }
7286
7252
  };
7287
7253
  })));
@@ -7627,14 +7593,21 @@ async function synthesize$1({ abortSignal, delay, entities: entitiesOverride, in
7627
7593
  }
7628
7594
  });
7629
7595
  const languageResults = await Promise.allSettled(languagePromises);
7630
- for (const result of languageResults) if (result.status === "fulfilled") {
7596
+ for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
7631
7597
  const { lang, tests, requested, generated } = result.value;
7632
7598
  allPluginTests.push(...tests);
7633
7599
  resultsPerLanguage[lang || "default"] = {
7634
7600
  requested,
7635
7601
  generated
7636
7602
  };
7637
- } else logger.warn(`[Language Processing] Error generating tests for ${plugin.id}: ${result.reason}`);
7603
+ } else {
7604
+ const lang = languages[index];
7605
+ logger.warn(`[Language Processing] Error generating tests for ${plugin.id}: ${result.reason}`);
7606
+ resultsPerLanguage[lang || "default"] = {
7607
+ requested: plugin.numTests,
7608
+ generated: 0
7609
+ };
7610
+ }
7638
7611
  logger.debug(`[Language Processing] Total tests generated for ${plugin.id}: ${allPluginTests.length} (across ${languages.length} language(s))`);
7639
7612
  if (!Array.isArray(allPluginTests) || allPluginTests.length === 0) logger.warn(`Failed to generate tests for ${plugin.id}`);
7640
7613
  else {
@@ -7668,35 +7641,51 @@ async function synthesize$1({ abortSignal, delay, entities: entitiesOverride, in
7668
7641
  generated: allPluginTests.length
7669
7642
  };
7670
7643
  } else if (plugin.id.startsWith("file://")) try {
7671
- const customTests = await new CustomPlugin(redteamProvider, purpose, injectVar, plugin.id, resolvePluginConfigWithMaxChars(plugin.config, maxCharsPerMessage)).generateTests(plugin.numTests, delay);
7672
- const testCasesWithMetadata = filterOversizedTestCases(customTests.map((t) => {
7673
- const includePluginConfig = !(t.metadata && Object.hasOwn(t.metadata, "pluginConfig") && t.metadata.pluginConfig === void 0);
7674
- const pluginConfigWithMaxChars = {
7644
+ const languageConfig = plugin.config?.language ?? language;
7645
+ const languages = Array.isArray(languageConfig) ? languageConfig : languageConfig ? [languageConfig] : [void 0];
7646
+ const allCustomTests = [];
7647
+ const resultsPerLanguage = {};
7648
+ const languagePromises = languages.map(async (lang) => {
7649
+ const resolvedConfig = {
7675
7650
  ...resolvePluginConfigWithMaxChars(plugin.config, maxCharsPerMessage),
7676
- ...t.metadata?.pluginConfig ?? {}
7651
+ ...lang ? { language: lang } : {},
7652
+ ...hasMultipleInputs ? { inputs } : {}
7677
7653
  };
7678
- const modifiers = {
7679
- ...buildRedteamModifiers({
7654
+ const customPluginConfig = {
7655
+ ...resolvedConfig,
7656
+ modifiers: buildRedteamModifiers({
7680
7657
  maxCharsPerMessage,
7681
- pluginConfig: pluginConfigWithMaxChars,
7658
+ pluginConfig: resolvedConfig,
7682
7659
  testGenerationInstructions
7683
- }),
7684
- ...t.metadata?.modifiers
7660
+ })
7685
7661
  };
7662
+ const testCasesWithMetadata = filterOversizedTestCases((await new CustomPlugin(redteamProvider, purpose, injectVar, plugin.id, customPluginConfig).generateTests(plugin.numTests, delay)).map((t) => addLanguageToPluginMetadata(t, lang, plugin, maxCharsPerMessage, testGenerationInstructions)), injectVar, `Custom plugin ${plugin.id}`, maxCharsPerMessage);
7686
7663
  return {
7687
- ...t,
7688
- metadata: {
7689
- ...t.metadata || {},
7690
- pluginId: plugin.id,
7691
- ...includePluginConfig && { pluginConfig: pluginConfigWithMaxChars },
7692
- severity: plugin.severity || getPluginSeverity(plugin.id, resolvePluginConfig(plugin.config)),
7693
- modifiers
7694
- }
7664
+ lang,
7665
+ tests: testCasesWithMetadata,
7666
+ requested: plugin.numTests,
7667
+ generated: testCasesWithMetadata.length
7668
+ };
7669
+ });
7670
+ const languageResults = await Promise.allSettled(languagePromises);
7671
+ for (const [index, result] of languageResults.entries()) if (result.status === "fulfilled") {
7672
+ const { lang, tests, requested, generated } = result.value;
7673
+ allCustomTests.push(...tests);
7674
+ resultsPerLanguage[lang || "default"] = {
7675
+ requested,
7676
+ generated
7677
+ };
7678
+ } else {
7679
+ const lang = languages[index];
7680
+ logger.warn(`[Language Processing] Error generating tests for custom plugin ${plugin.id}: ${result.reason}`);
7681
+ resultsPerLanguage[lang || "default"] = {
7682
+ requested: plugin.numTests,
7683
+ generated: 0
7695
7684
  };
7696
- }), injectVar, `Custom plugin ${plugin.id}`, maxCharsPerMessage);
7685
+ }
7697
7686
  if (needsGoalExtraction) {
7698
- logger.debug(`Extracting goal for ${testCasesWithMetadata.length} custom tests from ${plugin.id}...`);
7699
- for (const testCase of testCasesWithMetadata) {
7687
+ logger.debug(`Extracting goal for ${allCustomTests.length} custom tests from ${plugin.id}...`);
7688
+ for (const testCase of allCustomTests) {
7700
7689
  const promptVar = testCase.vars?.[injectVar];
7701
7690
  const prompt = Array.isArray(promptVar) ? promptVar[0] : String(promptVar);
7702
7691
  const policy = getPolicyText(testCase.metadata);
@@ -7704,13 +7693,21 @@ async function synthesize$1({ abortSignal, delay, entities: entitiesOverride, in
7704
7693
  testCase.metadata.goal = extractedGoal;
7705
7694
  }
7706
7695
  }
7707
- testCases.push(...testCasesWithMetadata);
7708
- logger.debug(`Added ${customTests.length} custom test cases from ${plugin.id}`);
7709
- const displayId = getPluginDisplayId(plugin);
7710
- pluginResults[displayId] = {
7711
- requested: plugin.numTests,
7712
- generated: testCasesWithMetadata.length
7696
+ testCases.push(...allCustomTests);
7697
+ logger.debug(`Added ${allCustomTests.length} custom test cases from ${plugin.id}`);
7698
+ const baseDisplayId = getPluginDisplayId(plugin);
7699
+ if (languages.filter((lang) => lang !== void 0).length > 1) for (const [langKey, result] of Object.entries(resultsPerLanguage)) {
7700
+ const displayId = langKey === "en" ? baseDisplayId : `(${langKey}) ${baseDisplayId}`;
7701
+ pluginResults[displayId] = {
7702
+ requested: result.requested,
7703
+ generated: result.generated
7704
+ };
7705
+ }
7706
+ else pluginResults[baseDisplayId] = {
7707
+ requested: plugin.numTests * languages.length,
7708
+ generated: allCustomTests.length
7713
7709
  };
7710
+ progressBar?.increment(plugin.numTests * languages.length);
7714
7711
  } catch (e) {
7715
7712
  logger.error(`Error generating tests for custom plugin ${plugin.id}: ${e}`);
7716
7713
  const displayId = getPluginDisplayId(plugin);
@@ -9671,7 +9668,7 @@ async function checkForUpdates() {
9671
9668
  } catch {
9672
9669
  return false;
9673
9670
  }
9674
- if (semverGt(latestVersion, "0.121.7")) {
9671
+ if (semverGt(latestVersion, "0.121.9")) {
9675
9672
  const border = "=".repeat(TERMINAL_MAX_WIDTH);
9676
9673
  logger.info(`\n${border}
9677
9674
  ${chalk.yellow("⚠️")} The current version of promptfoo ${chalk.yellow(VERSION)} is lower than the latest available version ${chalk.green(latestVersion)}.
@@ -12487,7 +12484,7 @@ async function handleGoatStrategy(ctx) {
12487
12484
  method: "POST",
12488
12485
  headers: { "Content-Type": "application/json" },
12489
12486
  body: JSON.stringify(goatBody)
12490
- }, REQUEST_TIMEOUT_MS);
12487
+ }, getRequestTimeoutMs());
12491
12488
  if (!response.ok) throw new Error(`GOAT task failed with status ${response.status}: ${await response.text()}`);
12492
12489
  const data = await response.json();
12493
12490
  const attackerMessage = data?.message;
@@ -12518,7 +12515,7 @@ async function handleMischievousUserStrategy(ctx) {
12518
12515
  method: "POST",
12519
12516
  headers: { "Content-Type": "application/json" },
12520
12517
  body: JSON.stringify(mischievousBody)
12521
- }, REQUEST_TIMEOUT_MS);
12518
+ }, getRequestTimeoutMs());
12522
12519
  if (!response.ok) throw new Error(`Mischievous User task failed with status ${response.status}: ${await response.text()}`);
12523
12520
  const data = await response.json();
12524
12521
  const result = data?.result;
@@ -12575,7 +12572,7 @@ async function handleHydraStrategy(ctx) {
12575
12572
  method: "POST",
12576
12573
  headers: { "Content-Type": "application/json" },
12577
12574
  body: JSON.stringify(hydraBody)
12578
- }, REQUEST_TIMEOUT_MS);
12575
+ }, getRequestTimeoutMs());
12579
12576
  if (!response.ok) throw new Error(`Hydra task failed with status ${response.status}: ${await response.text()}`);
12580
12577
  const data = await response.json();
12581
12578
  const rawResult = data?.result;
@@ -12626,7 +12623,7 @@ async function handleCrescendoLikeStrategy(ctx) {
12626
12623
  method: "POST",
12627
12624
  headers: { "Content-Type": "application/json" },
12628
12625
  body: JSON.stringify(providerRequest)
12629
- }, REQUEST_TIMEOUT_MS);
12626
+ }, getRequestTimeoutMs());
12630
12627
  if (!response.ok) throw new Error(`Crescendo task failed with status ${response.status}: ${await response.text()}`);
12631
12628
  const data = await response.json();
12632
12629
  const rawResult = data?.result;
@@ -13274,7 +13271,7 @@ router.get("/", async (_req, res) => {
13274
13271
  };
13275
13272
  } catch (error) {
13276
13273
  logger.debug(`Failed to fetch latest version: ${error}`);
13277
- latestVersion = versionCache.latestVersion ?? "0.121.7";
13274
+ latestVersion = versionCache.latestVersion ?? "0.121.9";
13278
13275
  }
13279
13276
  }
13280
13277
  const selfHosted = getEnvBool("PROMPTFOO_SELF_HOSTED");
@@ -13283,7 +13280,7 @@ router.get("/", async (_req, res) => {
13283
13280
  selfHosted,
13284
13281
  isNpx
13285
13282
  });
13286
- const resolvedLatestVersion = latestVersion ?? "0.121.7";
13283
+ const resolvedLatestVersion = latestVersion ?? "0.121.9";
13287
13284
  const response = {
13288
13285
  currentVersion: VERSION,
13289
13286
  latestVersion: resolvedLatestVersion,
@@ -16134,7 +16131,7 @@ function shouldUseInkList() {
16134
16131
  async function runInkList(options) {
16135
16132
  const [React, { renderInteractive }, { ListApp }] = await Promise.all([
16136
16133
  import("react"),
16137
- import("./render-DznWrxGO.js"),
16134
+ import("./render-MiyTvDY4.js"),
16138
16135
  import("./ListApp-DLmM02JS.js")
16139
16136
  ]);
16140
16137
  let result = { cancelled: false };
@@ -17848,7 +17845,7 @@ function registerRedteamGenerateTool(server) {
17848
17845
  maxConcurrency,
17849
17846
  delay,
17850
17847
  language,
17851
- provider: provider || "openai:chat:gpt-5.4-2026-03-05",
17848
+ provider: provider || "openai:chat:gpt-5.5-2026-04-23",
17852
17849
  force,
17853
17850
  write,
17854
17851
  remote
@@ -17874,7 +17871,7 @@ function registerRedteamGenerateTool(server) {
17874
17871
  entities: result.defaultTest && typeof result.defaultTest === "object" && "metadata" in result.defaultTest ? result.defaultTest.metadata?.entities || [] : [],
17875
17872
  generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
17876
17873
  language,
17877
- provider: provider || "openai:chat:gpt-5.4-2026-03-05"
17874
+ provider: provider || "openai:chat:gpt-5.5-2026-04-23"
17878
17875
  },
17879
17876
  nextSteps: {
17880
17877
  runEvaluation: write ? "Run \"redteam_run\" to execute the generated tests" : `Run "redteam_run" with output: "${output || "redteam.yaml"}" to execute the tests`,
@@ -18443,8 +18440,8 @@ function registerRunEvaluationTool(server) {
18443
18440
  }
18444
18441
  filteredTestSuite.tests = filteredTests;
18445
18442
  }
18446
- const { evaluate } = await import("./evaluator-DNdJF1Gv.js");
18447
- const evalRecord = await (await import("./eval-DscR5iOM.js")).default.create(config, filteredTestSuite.prompts, { id: `mcp-eval-${Date.now()}` });
18443
+ const { evaluate } = await import("./evaluator-B01pCdUY.js");
18444
+ const evalRecord = await (await import("./eval-N_VV5NZg.js")).default.create(config, filteredTestSuite.prompts, { id: `mcp-eval-${Date.now()}` });
18448
18445
  logger.debug(`Running filtered eval with ${filteredTestSuite.tests?.length || 0} test cases, ${filteredTestSuite.prompts.length} prompts, ${filteredTestSuite.providers.length} providers`);
18449
18446
  const startTime = Date.now();
18450
18447
  const result = await evaluate(filteredTestSuite, evalRecord, {
@@ -1,12 +1,12 @@
1
- const require_logger = require("./logger-cfNpzI4o.cjs");
1
+ const require_logger = require("./logger-Cm0Nb8YX.cjs");
2
2
  const require_invariant = require("./invariant-QtnLD03y.cjs");
3
- const require_fetch = require("./fetch-Dw4XZHjj.cjs");
4
- const require_version = require("./version-BWCSaByA.cjs");
5
- const require_accounts = require("./accounts-CmWzeD2d.cjs");
6
- const require_remoteGeneration = require("./remoteGeneration-DS9N3pgB.cjs");
3
+ const require_fetch = require("./fetch-B2HvaVUc.cjs");
4
+ const require_version = require("./version-XjGPawtU.cjs");
5
+ const require_accounts = require("./accounts-DAcQXPwE.cjs");
6
+ const require_remoteGeneration = require("./remoteGeneration-CD3c_rzc.cjs");
7
7
  const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
8
- const require_shared = require("./shared-WkgnDkcg.cjs");
9
- const require_promptLength = require("./promptLength-BbBbDHNj.cjs");
8
+ const require_shared = require("./shared-DlmtkptR.cjs");
9
+ const require_promptLength = require("./promptLength-CAcg7BmO.cjs");
10
10
  const require_constants = require("./constants-a2kYssQk.cjs");
11
11
  //#region src/redteam/providers/agentic/memoryPoisoning.ts
12
12
  var MemoryPoisoningProvider = class {
@@ -103,4 +103,4 @@ var MemoryPoisoningProvider = class {
103
103
  //#endregion
104
104
  exports.MemoryPoisoningProvider = MemoryPoisoningProvider;
105
105
 
106
- //# sourceMappingURL=memoryPoisoning-Dp-btinn.cjs.map
106
+ //# sourceMappingURL=memoryPoisoning-BXDi4XCK.cjs.map
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-BbY6ypFL.js";
3
- import { n as fetchWithProxy } from "./fetch-DXUnXkVU.js";
4
- import { n as VERSION } from "./version-eRkNuGv8.js";
2
+ import { s as logger } from "./logger-h-eiS4iv.js";
3
+ import { n as fetchWithProxy } from "./fetch-C59QM4cf.js";
4
+ import { n as VERSION } from "./version-CnYqmWbz.js";
5
5
  import { t as invariant } from "./invariant-B2Rf6avk.js";
6
- import { o as getUserEmail } from "./accounts-CjFnOPmb.js";
7
- import { r as getRemoteGenerationUrl } from "./remoteGeneration-B1_XsKXU.js";
6
+ import { o as getUserEmail } from "./accounts-Bw2qPqE-.js";
7
+ import { r as getRemoteGenerationUrl } from "./remoteGeneration-DW6mPZnO.js";
8
8
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
9
- import { d as messagesToRedteamHistory } from "./shared-9WHQ1oNE.js";
10
- import { i as throwIfTargetPromptExceedsMaxChars } from "./promptLength-4X-Wd8PG.js";
9
+ import { d as messagesToRedteamHistory } from "./shared-DsbObxvy.js";
10
+ import { i as throwIfTargetPromptExceedsMaxChars } from "./promptLength-PkjlYFx0.js";
11
11
  import { t as REDTEAM_MEMORY_POISONING_PLUGIN_ID } from "./constants-DH5XYLKZ.js";
12
12
  //#region src/redteam/providers/agentic/memoryPoisoning.ts
13
13
  var MemoryPoisoningProvider = class {
@@ -104,4 +104,4 @@ var MemoryPoisoningProvider = class {
104
104
  //#endregion
105
105
  export { MemoryPoisoningProvider };
106
106
 
107
- //# sourceMappingURL=memoryPoisoning-CM83NWYl.js.map
107
+ //# sourceMappingURL=memoryPoisoning-D-V4yXjj.js.map