promptfoo 0.121.7 → 0.121.8

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 (313) hide show
  1. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-BVz5gHLK.cjs} +4 -4
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BWjqwsrf.js} +4 -4
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-D6IBfEE0.js} +5 -5
  4. package/dist/src/{accounts-Ca7WIoPY.js → accounts-DAv_0iE7.js} +4 -4
  5. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-BJKAkz2e.js} +2 -2
  6. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C-A92xhn.cjs} +2 -2
  7. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-DmoS_S4B.js} +2 -2
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-GdToujHu.js} +2 -2
  9. package/dist/src/{agents-CBgJvRkB.js → agents-2C8NN6I1.js} +4 -4
  10. package/dist/src/{agents-CYn2n3QP.js → agents-BMAiSR2o.js} +2 -2
  11. package/dist/src/{agents-LrHuQqr1.js → agents-C-PGaxwj.js} +4 -4
  12. package/dist/src/{agents-D-vDNFx4.js → agents-C98cz5pl.js} +4 -4
  13. package/dist/src/{agents-B4sRuXg3.cjs → agents-DB8Ub2Ld.cjs} +2 -2
  14. package/dist/src/{agents-B8q7h_ek.js → agents-Dwshy2H8.js} +2 -2
  15. package/dist/src/{agents-QGg76OF-.js → agents-mlKjx-cK.js} +2 -2
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-n2ej-c4H.cjs} +4 -4
  17. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-Bi-laUlp.js} +6 -6
  18. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-D0OFV4Vj.cjs} +6 -6
  19. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-WyUK0wYy.js} +6 -6
  20. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-v-63ZjEI.js} +6 -6
  21. package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
  22. package/dist/src/app/assets/{index-BnT6P6sF.js → index-BopgkZEh.js} +2 -2
  23. package/dist/src/app/index.html +1 -1
  24. package/dist/src/{audio-DyiebVB3.js → audio-DnEIHWZR.js} +3 -3
  25. package/dist/src/{audio-BqnRvcWG.js → audio-heR0mu0n.js} +3 -3
  26. package/dist/src/{audio-CPMtV1yR.js → audio-wafFO1wn.js} +3 -3
  27. package/dist/src/{audio-FnxbEnSE.cjs → audio-x44tsxIo.cjs} +3 -3
  28. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-2G3Be6oL.cjs} +6 -6
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-81PPynHR.js} +6 -6
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-D9O70HPi.js} +6 -6
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-PxSf3Rh8.js} +5 -5
  32. package/dist/src/{base-E9I8zXjz.js → base-0Gzzue9Z.js} +2 -2
  33. package/dist/src/{base-Co80MMCi.js → base-Bp4c52YZ.js} +2 -2
  34. package/dist/src/{base-CKLo890h.js → base-BuNn-YBX.js} +2 -2
  35. package/dist/src/{base-DGJW48uz.cjs → base-BzdS8tod.cjs} +2 -2
  36. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-BHiOjeaq.js} +7 -7
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CdkNPPbX.js} +6 -6
  38. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-ClUSOhN0.js} +7 -7
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DWwXEg1h.cjs} +7 -7
  40. package/dist/src/cache-BKYi3kAA.js +3 -0
  41. package/dist/src/{cache-DpPWrkTE.js → cache-BR77mdIR.js} +3 -3
  42. package/dist/src/{cache-roFAE0cI.js → cache-CrioYnaa.js} +2 -2
  43. package/dist/src/{cache-DIXbtkNO.js → cache-DdriHsNX.js} +2 -2
  44. package/dist/src/{cache-CPGUA4Yl.cjs → cache-h5MWOBZI.cjs} +2 -2
  45. package/dist/src/{chat-Dabu84Br.js → chat-BBEnnpQk.js} +6 -6
  46. package/dist/src/{chat-CUCorGiL.js → chat-BSos6PvZ.js} +6 -6
  47. package/dist/src/{chat-TP8Qifkh.js → chat-Bnt7ieO0.js} +2 -2
  48. package/dist/src/{chat-DxTDQ83C.cjs → chat-DSyYuTYT.cjs} +6 -6
  49. package/dist/src/{chat-DqUFcWI0.js → chat-DTdf-J5Q.js} +6 -6
  50. package/dist/src/{chat-DG1wG4w0.cjs → chat-Dq3DomYU.cjs} +2 -2
  51. package/dist/src/{chat-GmlolEwo.js → chat-g5QLeLOo.js} +2 -2
  52. package/dist/src/{chat-iwaM5UTQ.js → chat-mTTuUAYb.js} +2 -2
  53. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-BGUac_kS.js} +7 -5
  54. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BP__YGfK.js} +7 -5
  55. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-Ddgx5BIQ.js} +7 -5
  56. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-n2XcEclh.cjs} +7 -5
  57. package/dist/src/cloud-DiWbUiVP.js +3 -0
  58. package/dist/src/{cloud-D3DiFqH6.js → cloud-DqF5N1aJ.js} +2 -2
  59. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-BGamMotN.js} +4 -4
  60. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-BwW8W-w7.js} +4 -4
  61. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DCRGnsyL.cjs} +4 -4
  62. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-sD26nP6V.js} +4 -4
  63. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
  64. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
  65. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-CCC1DFrC.cjs} +3 -3
  66. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-DOghiU6r.js} +3 -3
  67. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BWeWamEb.js} +17 -2
  68. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-DyQB1P0p.js} +17 -2
  69. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-R9u_G7W9.cjs} +17 -2
  70. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-ZQRJSJjU.js} +17 -2
  71. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-B62H0fe7.js} +14 -3
  72. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-BRPUvJG8.cjs} +14 -3
  73. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-Dio1zJBS.js} +14 -3
  74. package/dist/src/codex-sdk-DxukZs_K.js +3 -0
  75. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-iEmW1eS2.js} +14 -3
  76. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi--hh7dESS.js} +7 -7
  77. package/dist/src/{cometapi-OBILPLlu.js → cometapi-C7yWNGqt.js} +7 -7
  78. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CSIi16a0.js} +7 -7
  79. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-sZgBZtbU.cjs} +7 -7
  80. package/dist/src/{completion-CSYfl2cd.cjs → completion-CWtqdn3z.cjs} +4 -4
  81. package/dist/src/{completion-CO2e1_62.js → completion-DT8cxo9T.js} +4 -4
  82. package/dist/src/{completion-DZNxcyfG.js → completion-DUScduXp.js} +4 -4
  83. package/dist/src/{completion-sNvCLTAP.js → completion-D_2IOAoS.js} +4 -4
  84. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B41TwUHM.js} +39 -18
  85. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-Bfic7KC4.js} +41 -20
  86. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-DXFB7rHP.cjs} +41 -20
  87. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-DvvYxMLA.js} +41 -20
  88. package/dist/src/{custom-BJfP00Bh.js → custom-BdzuqFTN.js} +10 -10
  89. package/dist/src/{custom-notggYVl.js → custom-Cf5Q6r-P.js} +8 -8
  90. package/dist/src/{custom-CZVn-1-r.js → custom-DLgufezC.js} +10 -10
  91. package/dist/src/{custom-Cqia7M0D.cjs → custom-LEXHCRe3.cjs} +10 -10
  92. package/dist/src/{docker-4D1eL6Gq.js → docker-BOSO_6hK.js} +5 -5
  93. package/dist/src/{docker-D06JUoe2.cjs → docker-D0h2vFrc.cjs} +5 -5
  94. package/dist/src/{docker-DdJQBxK9.js → docker-D2TWGyTP.js} +5 -5
  95. package/dist/src/{docker-BBv1WUDu.js → docker-Vj_4_cPg.js} +5 -5
  96. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BQIApR18.cjs} +4 -4
  97. package/dist/src/{embedding-Bi3rxrZF.js → embedding-CStK0TV6.js} +4 -4
  98. package/dist/src/{embedding--UZVe4_7.js → embedding-CU78FMnw.js} +4 -4
  99. package/dist/src/{embedding-C251p1-8.js → embedding-CV8lmCnU.js} +4 -4
  100. package/dist/src/{eval-0VRANImH.js → eval-B3BaNBbO.js} +4 -4
  101. package/dist/src/{eval-DscR5iOM.js → eval-DfR9885C.js} +1 -1
  102. package/dist/src/evalResult-BtZSUgQv.js +3 -0
  103. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-CcSqNl_Y.js} +3 -3
  104. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-DHXs-9TL.cjs} +3 -3
  105. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-PGqEbasb.js} +3 -3
  106. package/dist/src/evaluator-B9LGbKI8.js +3 -0
  107. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-n_dEb00o.js} +20 -20
  108. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-CrRObe2z.js} +4 -4
  109. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-D06I9WFL.cjs} +4 -4
  110. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-D1_kwvyp.js} +4 -4
  111. package/dist/src/{extractor-CIW3iN-b.js → extractor-BVkZtk4R.js} +4 -4
  112. package/dist/src/{extractor-CxRtnaHl.js → extractor-D3Fv_Tdh.js} +4 -4
  113. package/dist/src/{extractor-BR7XAzAL.js → extractor-Jp53vs-6.js} +4 -4
  114. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-bV_NOoaz.cjs} +4 -4
  115. package/dist/src/{fetch-BufrQtvR.js → fetch-BSSAcMxf.js} +2 -2
  116. package/dist/src/fetch-BodQTrMU.js +3 -0
  117. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-Cfm4EuOB.cjs} +2 -2
  118. package/dist/src/{fetch-DXUnXkVU.js → fetch-Cpf1U1nO.js} +3 -3
  119. package/dist/src/{fetch-It34O8Ur.js → fetch-Doks14zQ.js} +2 -2
  120. package/dist/src/{goat-Qgurm-NP.js → goat-Ba7Gznzq.js} +18 -17
  121. package/dist/src/{goat-Ckd3q3AY.js → goat-CJngS-WU.js} +18 -17
  122. package/dist/src/{goat-ghadEDdy.js → goat-CwsbfQeu.js} +16 -15
  123. package/dist/src/{goat-una6pZGP.cjs → goat-DOMbozoX.cjs} +18 -17
  124. package/dist/src/graders-B3D7kCcD.js +3 -0
  125. package/dist/src/{graders-BGP99PdK.js → graders-BQt1BaQe.js} +18 -18
  126. package/dist/src/{graders-ClrU2fnd.cjs → graders-CBQ2s6gz.cjs} +18 -18
  127. package/dist/src/{graders-C0nXU_ZP.js → graders-DaRU98zs.js} +18 -18
  128. package/dist/src/{graders-BX0f2tvS.js → graders-KXzjnIim.js} +18 -18
  129. package/dist/src/{hydra-DE4xWwyc.js → hydra-BU6GjYoQ.js} +35 -17
  130. package/dist/src/{hydra-BxdG4nkg.js → hydra-BmXHxlyl.js} +33 -15
  131. package/dist/src/{hydra-BSNZZm2M.js → hydra-CR0KyYDb.js} +35 -17
  132. package/dist/src/{hydra-DrJttnvw.cjs → hydra-RO9jBks7.cjs} +35 -17
  133. package/dist/src/{image-B_fPIwdg.js → image-BBmZdKO3.js} +3 -3
  134. package/dist/src/{image-QzmydkiG.js → image-B_PFG7IG.js} +3 -3
  135. package/dist/src/{image-BvUAW344.js → image-BtODOZjh.js} +4 -4
  136. package/dist/src/{image-Cvjwx1uY.js → image-CYuNJIqd.js} +4 -4
  137. package/dist/src/{image-DfVCGPbI.cjs → image-E00WFZkq.cjs} +3 -3
  138. package/dist/src/{image-X0oY4350.cjs → image-HK2Cfqb1.cjs} +4 -4
  139. package/dist/src/{image-BN-hjLL9.js → image-LGj8dTcr.js} +3 -3
  140. package/dist/src/{image-B4oBtu6J.js → image-YMKejC0r.js} +4 -4
  141. package/dist/src/index.cjs +112 -115
  142. package/dist/src/index.d.cts +13 -0
  143. package/dist/src/index.d.ts +13 -0
  144. package/dist/src/index.js +113 -116
  145. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B80dLlFC.js} +5 -5
  146. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BMTXXznx.js} +4 -4
  147. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-BZFPV7Q9.js} +4 -4
  148. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-BaEQEOIO.cjs} +5 -5
  149. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BzpyMnFS.js} +5 -5
  150. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-CiWB-vVH.js} +4 -4
  151. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-D7NA9Nsv.cjs} +4 -4
  152. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-o_bEFMjP.js} +5 -5
  153. package/dist/src/{iterative-DJQEQpG3.js → iterative-B-l0syBV.js} +25 -15
  154. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-BACUeCCz.cjs} +25 -15
  155. package/dist/src/{iterative-FTS4Bz67.js → iterative-CVwoExo8.js} +25 -15
  156. package/dist/src/{iterative-CpU6i2As.js → iterative-QDrGSyss.js} +23 -13
  157. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-BQg2OwA6.js} +3 -3
  158. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-Bwn0fM75.js} +4 -4
  159. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-CcgVyASo.cjs} +4 -4
  160. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-D_UbQXg4.js} +4 -4
  161. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-CIu-CHRS.js} +36 -16
  162. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-CN8CNjFA.js} +36 -16
  163. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-DN6BTjpq.js} +34 -14
  164. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-DlqY3BsS.cjs} +36 -16
  165. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CJ8a8G9T.js} +78 -28
  166. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-DcuFXnjL.js} +78 -28
  167. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-FrDDYAN0.js} +76 -26
  168. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-LOgAi0nU.cjs} +78 -28
  169. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-CdbcGBZF.cjs} +4 -4
  170. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-CjOXp6Lr.js} +4 -4
  171. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-DxAq4n4z.js} +4 -4
  172. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-o_wTLzrt.js} +4 -4
  173. package/dist/src/{litellm-BKBo0jpC.js → litellm-B2gHwya_.js} +4 -4
  174. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-CPpdlO7n.cjs} +4 -4
  175. package/dist/src/{litellm-BXyn5kZK.js → litellm-CYfgxLrM.js} +4 -4
  176. package/dist/src/{litellm-CNcfbCfa.js → litellm-ojWBKU3C.js} +4 -4
  177. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCCO9XXG.cjs} +3 -3
  178. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-BPrdihAb.js} +3 -3
  179. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-DP5N79lB.js} +3 -3
  180. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DTDyoAlM.js} +3 -3
  181. package/dist/src/main.js +116 -119
  182. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-B6N3us35.cjs} +6 -6
  183. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-Bc_BK_k2.js} +6 -6
  184. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D375zwSX.js} +6 -6
  185. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-DJA0YjJT.js} +6 -6
  186. package/dist/src/{messages-BabO-cX8.js → messages-Bg29Nbit.js} +7 -7
  187. package/dist/src/{messages-DBPir0TQ.cjs → messages-BrZEnHsV.cjs} +7 -7
  188. package/dist/src/{messages-vsE_-Lv0.js → messages-CBulRaud.js} +7 -7
  189. package/dist/src/{messages-DGUlSNU7.js → messages-K9A8RxBM.js} +7 -7
  190. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-BDLwSGN0.js} +5 -5
  191. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-Blx-OtT3.js} +5 -5
  192. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CHuTTvBg.js} +5 -5
  193. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-CSUrH3fq.cjs} +5 -5
  194. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-BjEk7yCP.js} +4 -4
  195. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-CBCrdIBc.js} +4 -4
  196. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-CrGpXuhv.js} +4 -4
  197. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-Cvh0klQx.cjs} +4 -4
  198. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-CUDDZcSA.js} +3 -3
  199. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-CyDESu5J.js} +3 -3
  200. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-DH_Ksu6X.cjs} +3 -3
  201. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-YQAqUYJY.js} +3 -3
  202. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-BVFFB7JZ.js} +2 -2
  203. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-Bg3cxMMu.cjs} +2 -2
  204. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-BhmnRGyh.js} +2 -2
  205. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-DxmK95c1.js} +2 -2
  206. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-CHQaZi_-.cjs} +6 -6
  207. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-CWOm2eOr.js} +6 -6
  208. package/dist/src/{openclaw-CF7fMido.js → openclaw-Cdk9JKfY.js} +6 -6
  209. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DhF8rUpI.js} +6 -6
  210. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-BRjiPV-g.js} +2 -2
  211. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-CPFMw0ed.cjs} +2 -2
  212. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-CaSOCsBA.js} +2 -2
  213. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CqkyG8De.js} +2 -2
  214. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-BU4_0J85.js} +64 -7
  215. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CReYAtfb.js} +64 -7
  216. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-ClChwT74.cjs} +93 -6
  217. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-CqEpj6Sr.js} +64 -7
  218. package/dist/src/{providers-B9KzWxAX.js → providers-B7TyByfj.js} +94 -50
  219. package/dist/src/{providers-DVYRZP4E.js → providers-BGc7tDtQ.js} +93 -49
  220. package/dist/src/{providers-BYAn82cf.js → providers-CSOp-bCm.js} +1 -1
  221. package/dist/src/{providers-BDVVIQM6.cjs → providers-V6RBuieY.cjs} +93 -49
  222. package/dist/src/{providers-BCCz6_IX.js → providers-iH3Sw1yo.js} +93 -49
  223. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-58BtRRet.js} +3 -3
  224. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-C1dYu5MW.js} +3 -3
  225. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-CNMIpZQg.js} +3 -3
  226. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-fmSfU43k.cjs} +3 -3
  227. package/dist/src/{registry-KCVF1CFC.cjs → registry-6Jw6ebor.cjs} +14 -14
  228. package/dist/src/{registry-BUJrgjwv.js → registry-BTGk2ZkB.js} +14 -14
  229. package/dist/src/{registry-DXm1t_x0.js → registry-BTNqmP5o.js} +14 -14
  230. package/dist/src/{registry-Dp5EqoXc.js → registry-NGnOG2xa.js} +14 -14
  231. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration--D6WjzUm.js} +4 -4
  232. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-BpIYlb_O.cjs} +4 -4
  233. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CJC3E0aW.js} +4 -4
  234. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-D6UjE2JT.js} +4 -4
  235. package/dist/src/{responses-B6ktc3Ra.js → responses-5Gf5HNOi.js} +9 -5
  236. package/dist/src/{responses-URRzV8qE.js → responses-BVi7xIdv.js} +9 -5
  237. package/dist/src/{responses-1UFFF9N_.cjs → responses-CUARGrhY.cjs} +9 -5
  238. package/dist/src/{responses-B3W2JvOQ.js → responses-CrmWv6iz.js} +9 -5
  239. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-BeVTKfrv.cjs} +9 -9
  240. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-BwbV5U7_.js} +9 -9
  241. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-ClAZ6Qwc.js} +9 -9
  242. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-DY2qrOpq.js} +9 -9
  243. package/dist/src/{scanner-DS0109SS.js → scanner-BS-iFIp3.js} +5 -5
  244. package/dist/src/server/index.js +111 -114
  245. package/dist/src/{server-B8rqV126.cjs → server-BHOEL8p8.cjs} +3 -3
  246. package/dist/src/{server-CMJD10J4.js → server-CbiJppij.js} +3 -3
  247. package/dist/src/server-D18AAlAc.js +3 -0
  248. package/dist/src/{server-DhMHosWj.js → server-DLYjSFm2.js} +5 -5
  249. package/dist/src/{server-Ddp8GNMp.js → server-JQYD_Nws.js} +5 -5
  250. package/dist/src/{shared-7pmVZLNO.js → shared-CRq0gGVf.js} +8 -8
  251. package/dist/src/{shared-D6IjElRI.js → shared-CSIGeGLl.js} +8 -8
  252. package/dist/src/{shared-9WHQ1oNE.js → shared-DNvim54U.js} +7 -7
  253. package/dist/src/{shared-WkgnDkcg.cjs → shared-aHWko3P1.cjs} +8 -8
  254. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-C7sOFSF6.js} +5 -5
  255. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-DH_7RzEQ.js} +5 -5
  256. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-lgMMmniD.js} +5 -5
  257. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-mnCUS9Bm.cjs} +5 -5
  258. package/dist/src/{storage-QdU-SmvD.js → storage-95htjpLs.js} +3 -3
  259. package/dist/src/{storage-CA-v9V2v.cjs → storage-A4WnAeN3.cjs} +3 -3
  260. package/dist/src/{storage-CD-GWAdx.js → storage-B2Ql_oq4.js} +3 -3
  261. package/dist/src/{storage-BU4qcnOb.js → storage-EKVWZBNY.js} +4 -4
  262. package/dist/src/{strategies-DRJjGTIY.js → strategies-CBI1brSy.js} +10 -10
  263. package/dist/src/{strategies-7CS3Alao.cjs → strategies-CCcnEbFO.cjs} +9 -9
  264. package/dist/src/{strategies-CiSeroPH.js → strategies-CD1gHeeQ.js} +9 -9
  265. package/dist/src/telemetry-BUm_krVX.js +3 -0
  266. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-BbpmrenM.js} +4 -4
  267. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-C4bX-6Sr.js} +4 -4
  268. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-C_ImlCOk.cjs} +4 -4
  269. package/dist/src/{telemetry-00ezXr_t.js → telemetry-DOE567Wj.js} +4 -4
  270. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-BOP1FsRt.js} +2 -2
  271. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-BvmDa_jH.js} +2 -2
  272. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-DFBoE8O0.cjs} +2 -2
  273. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-xhjOg2b1.js} +2 -2
  274. package/dist/src/{transcription-Dkd22_4K.js → transcription-BOXDoehT.js} +4 -4
  275. package/dist/src/{transcription-CfU5loSq.js → transcription-CpVdKc4P.js} +4 -4
  276. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-D8kkPXg_.cjs} +4 -4
  277. package/dist/src/{transcription-B8uIgCYX.js → transcription-Z94eV9LR.js} +4 -4
  278. package/dist/src/{transform-BIMynQsA.js → transform-BufxPIQL.js} +3 -3
  279. package/dist/src/{transform-DhNkAUs8.cjs → transform-DJkt81VY.cjs} +3 -3
  280. package/dist/src/{transform-EtD4jAWi.js → transform-DtTfiGoh.js} +3 -3
  281. package/dist/src/{transform-DmvYBRll.js → transform-Wp6s_5QE.js} +3 -3
  282. package/dist/src/{util-IYzs5Y04.cjs → util-BHCAeuXx.cjs} +3 -3
  283. package/dist/src/{util--WMgw7wM.js → util-CMrHV35u.js} +3 -3
  284. package/dist/src/{util-SPsvFONY.cjs → util-COnzevXE.cjs} +3 -3
  285. package/dist/src/{util-LKTmNsMQ.js → util-CYev3d-r.js} +16 -3
  286. package/dist/src/{util-Df8YMvS1.js → util-DGqkTb2-.js} +4 -4
  287. package/dist/src/{util-CN8om2rz.cjs → util-DNtUsus_.cjs} +4 -4
  288. package/dist/src/{util-Bx677_k2.js → util-DRfqa4xz.js} +3 -3
  289. package/dist/src/{util-DiQ3QvBB.js → util-DTq3jq2z.js} +3 -3
  290. package/dist/src/{util-5WnCSb0h.js → util-DeY58psG.js} +16 -3
  291. package/dist/src/{util-DNl96nNs.js → util-DpV6KT5i.js} +4 -4
  292. package/dist/src/{util-I-Rf-KaD.js → util-DwNJzqOV.js} +3 -3
  293. package/dist/src/{util-kDURhgJW.js → util-ETfU_sS9.js} +4 -4
  294. package/dist/src/{util-BSIuSLVK.cjs → util-NYQvo1C7.cjs} +16 -3
  295. package/dist/src/{util-CoQWM76y.js → util-X4KQgyVD.js} +3 -3
  296. package/dist/src/{util-DURocbYR.js → util-jZRrXe1P.js} +3 -3
  297. package/dist/src/{util-efByNxcr.js → util-o2Qg5rZv.js} +16 -3
  298. package/dist/src/{version-BK20a4sw.js → version-CHR-EFec.js} +2 -2
  299. package/dist/src/{version-eRkNuGv8.js → version-F0YDgb7J.js} +2 -2
  300. package/dist/src/{version-BWCSaByA.cjs → version-VzUqOBZk.cjs} +2 -2
  301. package/dist/src/{version-lpHV_53E.js → version-qVEN5qCm.js} +2 -2
  302. package/dist/tsconfig.tsbuildinfo +1 -1
  303. package/package.json +5 -5
  304. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  305. package/dist/src/cache-Cf7b4pWE.js +0 -3
  306. package/dist/src/cloud-p96PA4MH.js +0 -3
  307. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  308. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  309. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  310. package/dist/src/fetch-_YgGd2qv.js +0 -3
  311. package/dist/src/graders-BDT7dif6.js +0 -3
  312. package/dist/src/server-BaLytskk.js +0 -3
  313. package/dist/src/telemetry-ByPqDcKC.js +0 -3
@@ -1,9 +1,9 @@
1
1
  import { a as logger, w as getEnvInt } from "./logger-Ct2S6Yx-.js";
2
2
  import { n as sha256 } from "./createHash-BtbSX3mj.js";
3
- import { i as getCache, o as isCacheEnabled } from "./cache-DIXbtkNO.js";
3
+ import { i as getCache, o as isCacheEnabled } from "./cache-DdriHsNX.js";
4
4
  import { a as createEmptyTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
5
- import { t as telemetry } from "./telemetry-DwX9XUN5.js";
6
- import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-CKLo890h.js";
5
+ import { t as telemetry } from "./telemetry-C4bX-6Sr.js";
6
+ import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-BuNn-YBX.js";
7
7
  //#region src/providers/bedrock/knowledgeBase.ts
8
8
  /**
9
9
  * AWS Bedrock Knowledge Base provider for RAG (Retrieval Augmented Generation).
@@ -133,4 +133,4 @@ var AwsBedrockKnowledgeBaseProvider = class extends AwsBedrockGenericProvider {
133
133
  //#endregion
134
134
  export { AwsBedrockKnowledgeBaseProvider };
135
135
 
136
- //# sourceMappingURL=knowledgeBase-BadkINlJ.js.map
136
+ //# sourceMappingURL=knowledgeBase-DxAq4n4z.js.map
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { D as getEnvInt, s as logger } from "./logger-BbY6ypFL.js";
3
- import { r as telemetry } from "./telemetry-00ezXr_t.js";
3
+ import { r as telemetry } from "./telemetry-DOE567Wj.js";
4
4
  import { n as sha256 } from "./createHash-CgRvs4Fn.js";
5
- import { c as isCacheEnabled, o as getCache } from "./cache-DpPWrkTE.js";
5
+ import { c as isCacheEnabled, o as getCache } from "./cache-BR77mdIR.js";
6
6
  import { a as createEmptyTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
7
- import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-Co80MMCi.js";
7
+ import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-Bp4c52YZ.js";
8
8
  //#region src/providers/bedrock/knowledgeBase.ts
9
9
  /**
10
10
  * AWS Bedrock Knowledge Base provider for RAG (Retrieval Augmented Generation).
@@ -134,4 +134,4 @@ var AwsBedrockKnowledgeBaseProvider = class extends AwsBedrockGenericProvider {
134
134
  //#endregion
135
135
  export { AwsBedrockKnowledgeBaseProvider };
136
136
 
137
- //# sourceMappingURL=knowledgeBase-CkMljjdg.js.map
137
+ //# sourceMappingURL=knowledgeBase-o_wTLzrt.js.map
@@ -1,7 +1,7 @@
1
1
  import { T as getEnvString } from "./logger-KD8JjCRJ.js";
2
- import { t as OpenAiChatCompletionProvider } from "./chat-CUCorGiL.js";
3
- import { t as OpenAiEmbeddingProvider } from "./embedding-C251p1-8.js";
4
- import { t as OpenAiCompletionProvider } from "./completion-CO2e1_62.js";
2
+ import { t as OpenAiChatCompletionProvider } from "./chat-BSos6PvZ.js";
3
+ import { t as OpenAiEmbeddingProvider } from "./embedding-CV8lmCnU.js";
4
+ import { t as OpenAiCompletionProvider } from "./completion-DT8cxo9T.js";
5
5
  //#region src/providers/litellm.ts
6
6
  /**
7
7
  * Base class for LiteLLM providers that maintains LiteLLM identity
@@ -133,4 +133,4 @@ function createLiteLLMProvider(providerPath, options = {}) {
133
133
  //#endregion
134
134
  export { createLiteLLMProvider };
135
135
 
136
- //# sourceMappingURL=litellm-BKBo0jpC.js.map
136
+ //# sourceMappingURL=litellm-B2gHwya_.js.map
@@ -1,7 +1,7 @@
1
1
  const require_logger = require("./logger-cfNpzI4o.cjs");
2
- const require_chat = require("./chat-DxTDQ83C.cjs");
3
- const require_embedding = require("./embedding-BbrwopfX.cjs");
4
- const require_completion = require("./completion-CSYfl2cd.cjs");
2
+ const require_chat = require("./chat-DSyYuTYT.cjs");
3
+ const require_embedding = require("./embedding-BQIApR18.cjs");
4
+ const require_completion = require("./completion-CWtqdn3z.cjs");
5
5
  //#region src/providers/litellm.ts
6
6
  /**
7
7
  * Base class for LiteLLM providers that maintains LiteLLM identity
@@ -133,4 +133,4 @@ function createLiteLLMProvider(providerPath, options = {}) {
133
133
  //#endregion
134
134
  exports.createLiteLLMProvider = createLiteLLMProvider;
135
135
 
136
- //# sourceMappingURL=litellm-CtAr7bKG.cjs.map
136
+ //# sourceMappingURL=litellm-CPpdlO7n.cjs.map
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { O as getEnvString } from "./logger-BbY6ypFL.js";
3
- import { t as OpenAiChatCompletionProvider } from "./chat-DqUFcWI0.js";
4
- import { t as OpenAiEmbeddingProvider } from "./embedding--UZVe4_7.js";
5
- import { t as OpenAiCompletionProvider } from "./completion-DZNxcyfG.js";
3
+ import { t as OpenAiChatCompletionProvider } from "./chat-DTdf-J5Q.js";
4
+ import { t as OpenAiEmbeddingProvider } from "./embedding-CU78FMnw.js";
5
+ import { t as OpenAiCompletionProvider } from "./completion-DUScduXp.js";
6
6
  //#region src/providers/litellm.ts
7
7
  /**
8
8
  * Base class for LiteLLM providers that maintains LiteLLM identity
@@ -134,4 +134,4 @@ function createLiteLLMProvider(providerPath, options = {}) {
134
134
  //#endregion
135
135
  export { createLiteLLMProvider };
136
136
 
137
- //# sourceMappingURL=litellm-BXyn5kZK.js.map
137
+ //# sourceMappingURL=litellm-CYfgxLrM.js.map
@@ -1,7 +1,7 @@
1
1
  import { T as getEnvString } from "./logger-Ct2S6Yx-.js";
2
- import { t as OpenAiChatCompletionProvider } from "./chat-Dabu84Br.js";
3
- import { t as OpenAiEmbeddingProvider } from "./embedding-Bi3rxrZF.js";
4
- import { t as OpenAiCompletionProvider } from "./completion-sNvCLTAP.js";
2
+ import { t as OpenAiChatCompletionProvider } from "./chat-BBEnnpQk.js";
3
+ import { t as OpenAiEmbeddingProvider } from "./embedding-CStK0TV6.js";
4
+ import { t as OpenAiCompletionProvider } from "./completion-D_2IOAoS.js";
5
5
  //#region src/providers/litellm.ts
6
6
  /**
7
7
  * Base class for LiteLLM providers that maintains LiteLLM identity
@@ -133,4 +133,4 @@ function createLiteLLMProvider(providerPath, options = {}) {
133
133
  //#endregion
134
134
  export { createLiteLLMProvider };
135
135
 
136
- //# sourceMappingURL=litellm-CNcfbCfa.js.map
136
+ //# sourceMappingURL=litellm-ojWBKU3C.js.map
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
2
2
  const require_logger = require("./logger-cfNpzI4o.cjs");
3
- const require_fetch = require("./fetch-Dw4XZHjj.cjs");
3
+ const require_fetch = require("./fetch-Cfm4EuOB.cjs");
4
4
  const require_text = require("./text-nywWsRBM.cjs");
5
- const require_base = require("./base-DGJW48uz.cjs");
5
+ const require_base = require("./base-BzdS8tod.cjs");
6
6
  const require_blobs = require("./blobs-B0977K1O.cjs");
7
7
  let fs = require("fs");
8
8
  fs = require_rolldown_runtime.__toESM(fs, 1);
@@ -313,4 +313,4 @@ var LumaRayVideoProvider = class extends require_base.AwsBedrockGenericProvider
313
313
  //#endregion
314
314
  exports.LumaRayVideoProvider = LumaRayVideoProvider;
315
315
 
316
- //# sourceMappingURL=luma-ray-D3FUc2K3.cjs.map
316
+ //# sourceMappingURL=luma-ray-BCCO9XXG.cjs.map
@@ -1,8 +1,8 @@
1
1
  import { a as logger } from "./logger-KD8JjCRJ.js";
2
- import { m as sleep } from "./fetch-BufrQtvR.js";
2
+ import { m as sleep } from "./fetch-BSSAcMxf.js";
3
3
  import { i as storeBlob } from "./blobs-CeFdPn_T.js";
4
4
  import { t as ellipsize } from "./text-CZr46tp_.js";
5
- import { t as AwsBedrockGenericProvider } from "./base-E9I8zXjz.js";
5
+ import { t as AwsBedrockGenericProvider } from "./base-0Gzzue9Z.js";
6
6
  import * as fs$1 from "fs";
7
7
  import * as path$1 from "path";
8
8
  //#region src/providers/bedrock/luma-ray.ts
@@ -310,4 +310,4 @@ var LumaRayVideoProvider = class extends AwsBedrockGenericProvider {
310
310
  //#endregion
311
311
  export { LumaRayVideoProvider };
312
312
 
313
- //# sourceMappingURL=luma-ray-BMX1iEB6.js.map
313
+ //# sourceMappingURL=luma-ray-BPrdihAb.js.map
@@ -1,7 +1,7 @@
1
1
  import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { l as sleep } from "./fetch-It34O8Ur.js";
2
+ import { l as sleep } from "./fetch-Doks14zQ.js";
3
3
  import { t as ellipsize } from "./text-DwYK5EBn.js";
4
- import { t as AwsBedrockGenericProvider } from "./base-CKLo890h.js";
4
+ import { t as AwsBedrockGenericProvider } from "./base-BuNn-YBX.js";
5
5
  import { r as storeBlob } from "./blobs-Dwef1Ao1.js";
6
6
  import * as fs$1 from "fs";
7
7
  import * as path$1 from "path";
@@ -310,4 +310,4 @@ var LumaRayVideoProvider = class extends AwsBedrockGenericProvider {
310
310
  //#endregion
311
311
  export { LumaRayVideoProvider };
312
312
 
313
- //# sourceMappingURL=luma-ray-CR5TSpp4.js.map
313
+ //# sourceMappingURL=luma-ray-DP5N79lB.js.map
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import { s as logger } from "./logger-BbY6ypFL.js";
3
- import { f as sleep } from "./fetch-DXUnXkVU.js";
3
+ import { f as sleep } from "./fetch-Cpf1U1nO.js";
4
4
  import { t as ellipsize } from "./text-Db-Wt2u2.js";
5
- import { t as AwsBedrockGenericProvider } from "./base-Co80MMCi.js";
5
+ import { t as AwsBedrockGenericProvider } from "./base-Bp4c52YZ.js";
6
6
  import { i as storeBlob } from "./blobs-DODuTK-a.js";
7
7
  import * as fs$1 from "fs";
8
8
  import * as path$1 from "path";
@@ -311,4 +311,4 @@ var LumaRayVideoProvider = class extends AwsBedrockGenericProvider {
311
311
  //#endregion
312
312
  export { LumaRayVideoProvider };
313
313
 
314
- //# sourceMappingURL=luma-ray-OEMmS1RB.js.map
314
+ //# sourceMappingURL=luma-ray-DTDyoAlM.js.map
package/dist/src/main.js CHANGED
@@ -1,44 +1,44 @@
1
1
  #!/usr/bin/env node
2
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";
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-Cpf1U1nO.js";
4
+ import { n as VERSION } from "./version-F0YDgb7J.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";
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-D6IBfEE0.js";
7
+ import { a as cloudConfig, c as writeGlobalConfigPartial, o as readGlobalConfig, r as CloudConfig } from "./cloud-DqF5N1aJ.js";
8
+ import { n as TelemetryEventSchema, r as telemetry } from "./telemetry-DOE567Wj.js";
9
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";
10
10
  import { i as isJavascriptFile } from "./fileExtensions-D4GCJ67J.js";
11
11
  import { r as importModule, t as getDirectory } from "./esm-Bexx2PFc.js";
12
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";
13
+ import { a as getRemoteHealthUrl, l as shouldGenerateRemote, n as getRemoteGenerationExplicitlyDisabledError, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-D6UjE2JT.js";
14
+ import { a as openAuthBrowser, i as checkServerRunning, n as BrowserBehaviorNames, o as openBrowser, s as promptUser, t as BrowserBehavior } from "./server-DLYjSFm2.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-EKVWZBNY.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";
17
+ import { a as fetchWithCache, n as clearCache, r as disableCache, t as cache_exports } from "./cache-BR77mdIR.js";
18
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";
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-jZRrXe1P.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-B7TyByfj.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
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
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";
25
+ import { n as createPlaceholderInputValue, t as buildPromptInputDescriptions } from "./inputVariables-DXFdi7AI.js";
26
+ import { a as extractPromptFromTags, i as extractMaterializedVariablesFromJsonWithMetadata, n as extractGoalFromPrompt, s as getShortPluginId } from "./util-ETfU_sS9.js";
27
+ import { a as assertRemoteMaterializationHandled, l as requiresRemoteMaterialization, n as PromptfooHarmfulCompletionProvider } from "./promptfoo-BU4_0J85.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-BQt1BaQe.js";
29
+ import { f as redteamProviderManager, m as TokenUsageTracker } from "./shared-DNvim54U.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-n_dEb00o.js";
31
31
  import { i as generateIdFromPrompt } from "./utils-BFOh20Gb.js";
32
32
  import { n as TRANSFORM_KEYS, t as INLINE_FUNCTION_LABEL } from "./transform-BnSTnFlp.js";
33
33
  import { n as getTraceStore } from "./store-DKd5592Q.js";
34
34
  import { n as setupSignalWatcher, t as readSignalEvalId } from "./signal-CSurUUyV.js";
35
- import { n as isBlobStorageEnabled } from "./extractor-CIW3iN-b.js";
35
+ import { n as isBlobStorageEnabled } from "./extractor-BVkZtk4R.js";
36
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";
37
+ import { a as createEvalId, n as EvalQueries, s as getEvalSummaries, t as Eval } from "./eval-B3BaNBbO.js";
38
+ import { n as sanitizeProvider, t as EvalResult } from "./evalResult-CcSqNl_Y.js";
39
+ import { n as renderPrompt } from "./evaluatorHelpers-D1_kwvyp.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";
41
+ import { i as pluginMatchesStrategyTargets, n as loadStrategy, r as validateStrategies, t as Strategies } from "./strategies-CBI1brSy.js";
42
42
  import { n as shouldUseInkUI } from "./interactiveCheck-C4QlIuoR.js";
43
43
  import { fileURLToPath } from "node:url";
44
44
  import { Command, InvalidArgumentError } from "commander";
@@ -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-BS-iFIp3.js");
115
115
  await executeScan(repoPath, cmdObj);
116
116
  });
117
117
  }
@@ -6649,6 +6649,7 @@ async function fetchRemoteTestCases(key, purpose, injectVar, n, config) {
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.8")) {
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)}.
@@ -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.8";
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.8";
13287
13284
  const response = {
13288
13285
  currentVersion: VERSION,
13289
13286
  latestVersion: resolvedLatestVersion,
@@ -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-B9LGbKI8.js");
18444
+ const evalRecord = await (await import("./eval-DfR9885C.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,11 +1,11 @@
1
1
  const require_logger = require("./logger-cfNpzI4o.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-Cfm4EuOB.cjs");
4
+ const require_version = require("./version-VzUqOBZk.cjs");
5
+ const require_accounts = require("./accounts-BVz5gHLK.cjs");
6
+ const require_remoteGeneration = require("./remoteGeneration-BpIYlb_O.cjs");
7
7
  const require_tokenUsageUtils = require("./tokenUsageUtils-_B-P8IAi.cjs");
8
- const require_shared = require("./shared-WkgnDkcg.cjs");
8
+ const require_shared = require("./shared-aHWko3P1.cjs");
9
9
  const require_promptLength = require("./promptLength-BbBbDHNj.cjs");
10
10
  const require_constants = require("./constants-a2kYssQk.cjs");
11
11
  //#region src/redteam/providers/agentic/memoryPoisoning.ts
@@ -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-B6N3us35.cjs.map