promptfoo 0.120.21 → 0.120.23

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 (247) hide show
  1. package/dist/src/{ListApp-ChupNNB3.js → ListApp-55OAHww3.js} +1 -1
  2. package/dist/src/{accounts-CjU7QSnv.js → accounts-BMHY0nF5.js} +5 -5
  3. package/dist/src/{accounts-DYMHC4iY.js → accounts-CYqHD7X1.js} +4 -4
  4. package/dist/src/{accounts-uWRxEv-D.cjs → accounts-TGrHBZU9.cjs} +4 -4
  5. package/dist/src/{agentic-utils-BMbQVVd4.js → agentic-utils-BcSgvBPs.js} +2 -2
  6. package/dist/src/{agents-BJxm0Kcs.cjs → agents-BW4zv9Ig.cjs} +3 -3
  7. package/dist/src/{agents-DABC7ROH.js → agents-BbG-lpzK.js} +6 -6
  8. package/dist/src/{agents-DGQULdoA.js → agents-CUB87CA8.js} +5 -5
  9. package/dist/src/{agents-CJ4BY_QU.js → agents-ClpNGuau.js} +7 -7
  10. package/dist/src/{agents-CzCD5974.cjs → agents-d76o9WLl.cjs} +6 -6
  11. package/dist/src/{agents-BNSS1kSZ.js → agents-v7_Jh18K.js} +3 -3
  12. package/dist/src/{aimlapi-CnBWjM7x.js → aimlapi-BBN3jHiV.js} +11 -11
  13. package/dist/src/{aimlapi-ABHUqmBg.cjs → aimlapi-DWjl0adX.cjs} +11 -11
  14. package/dist/src/{aimlapi-B2qJXUsC.js → aimlapi-E-FZoqH0.js} +14 -14
  15. package/dist/src/app/assets/index-CbpQqvt4.css +1 -0
  16. package/dist/src/app/assets/{index-BVE859O5.js → index-DoWPf01I.js} +71 -71
  17. package/dist/src/app/index.html +2 -2
  18. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  19. package/dist/src/{audio-BT9aSeWg.js → audio-B0lJd7ce.js} +4 -4
  20. package/dist/src/{audio-CSrI_LFf.js → audio-CwbC4E6I.js} +3 -3
  21. package/dist/src/{audio-DSV364HB.cjs → audio-TfpCt0uC.cjs} +3 -3
  22. package/dist/src/{base-NFXflrMy.js → base-BHLggB84.js} +2 -2
  23. package/dist/src/{base-CRrQ15eu.cjs → base-B_pJcCDc.cjs} +2 -2
  24. package/dist/src/{base-d8hHSpEx.js → base-DRgXuujd.js} +2 -2
  25. package/dist/src/{blobs-Dznj-8xW.js → blobs-BHstP0Ep.js} +2 -2
  26. package/dist/src/{blobs-D-Neij7m.cjs → blobs-BPAqMoU_.cjs} +2 -2
  27. package/dist/src/{blobs-DC2sBLv8.js → blobs-Bey6TGVi.js} +2 -2
  28. package/dist/src/{cache-xb4oZe27.js → cache-BTdTl56j.js} +2 -2
  29. package/dist/src/{cache-DYJRe0Jt.cjs → cache-BnrNlhzE.cjs} +2 -2
  30. package/dist/src/{cache-aKR8pp5y.js → cache-C5LeIjZl.js} +2 -2
  31. package/dist/src/{cache-CMvgAnSi.js → cache-CsW_9RgN.js} +2 -2
  32. package/dist/src/cache-Da_mTEGH.cjs +6 -0
  33. package/dist/src/{cache-scuP1IRq.js → cache-DfI0xG_n.js} +3 -3
  34. package/dist/src/{chat-BbgGuvwu.js → chat-BIj6_WPH.js} +10 -10
  35. package/dist/src/{chat-CfJU9hHo.cjs → chat-B_-w6xgb.cjs} +10 -10
  36. package/dist/src/{chat-Du_GyqZe.js → chat-BktepvuQ.js} +13 -13
  37. package/dist/src/{chat-DyjTngG2.js → chat-CiakYWhZ.js} +10 -10
  38. package/dist/src/{chat-BH8Fxyap.js → chat-D5l2blZK.js} +8 -8
  39. package/dist/src/{chat-Biz16BQv.cjs → chat-QHQ-K-Fi.cjs} +8 -8
  40. package/dist/src/{chatkit-BpumZ2Dz.js → chatkit-DlOZ-eNb.js} +3 -3
  41. package/dist/src/{chatkit-D9AWcI4P.js → chatkit-IWIuhxFE.js} +3 -3
  42. package/dist/src/{chatkit-Wzo9zOq7.cjs → chatkit-yeVtURUi.cjs} +3 -3
  43. package/dist/src/{claude-agent-sdk-CL5NzJEu.js → claude-agent-sdk-BZ0GjlPY.js} +11 -11
  44. package/dist/src/{claude-agent-sdk-BW-YEYQi.cjs → claude-agent-sdk-D3AZJyZ7.cjs} +8 -8
  45. package/dist/src/{claude-agent-sdk-CdRG6b7t.js → claude-agent-sdk-wvsRgO29.js} +8 -8
  46. package/dist/src/{cloud-UwfmA0Ne.js → cloud-BKfo1A2t.js} +2 -2
  47. package/dist/src/{cloud-1cbcFXE9.js → cloud-DPowlnHl.js} +1 -1
  48. package/dist/src/{cloudflare-ai-D2Wlbus6.cjs → cloudflare-ai-CzAtX1Wg.cjs} +11 -11
  49. package/dist/src/{cloudflare-ai-BB77BUMD.js → cloudflare-ai-D-IEjw5k.js} +11 -11
  50. package/dist/src/{cloudflare-ai-DXTxK3ou.js → cloudflare-ai-DxHmIJbZ.js} +14 -14
  51. package/dist/src/{cloudflare-gateway-D5IjGRjZ.cjs → cloudflare-gateway-CIfquW2o.cjs} +12 -12
  52. package/dist/src/{cloudflare-gateway-Tn2OEgYQ.js → cloudflare-gateway-DkjC8LZF.js} +12 -12
  53. package/dist/src/{cloudflare-gateway-DeZRwitI.js → cloudflare-gateway-DwJVgNWf.js} +15 -15
  54. package/dist/src/{codex-sdk-CKEQpQax.js → codex-sdk-BC5qbCjh.js} +3 -3
  55. package/dist/src/{codex-sdk-CDN8f3P9.js → codex-sdk-CBpm53B8.js} +2 -2
  56. package/dist/src/{codex-sdk-0QyM_fUf.cjs → codex-sdk-Cf5_CQch.cjs} +2 -2
  57. package/dist/src/{cometapi-CUq-lrPh.js → cometapi-6jLBOp4e.js} +15 -15
  58. package/dist/src/{cometapi-Bu_LOIac.js → cometapi-8HSWR5q_.js} +12 -12
  59. package/dist/src/{cometapi-RP8h5O2f.cjs → cometapi-iJEkEgpT.cjs} +12 -12
  60. package/dist/src/{completion-Dw-9jqz1.cjs → completion-C03fIkcR.cjs} +5 -5
  61. package/dist/src/{completion-H4ncr2bK.js → completion-CrKHW9hy.js} +5 -5
  62. package/dist/src/{completion-BTZ42lqL.js → completion-LTi0SiAy.js} +5 -5
  63. package/dist/src/{docker-kvFgJqkg.js → docker-Bf2VQOX5.js} +14 -14
  64. package/dist/src/{docker-NrVUpeWw.cjs → docker-BxmP6sGO.cjs} +11 -11
  65. package/dist/src/{docker-B8zxQ12-.js → docker-DHazKolQ.js} +11 -11
  66. package/dist/src/{esm-Bwuh5HXW.js → esm-Lh6czAFT.js} +1 -1
  67. package/dist/src/{eval-TAOD_pvN.js → eval-4sIXLVZZ.js} +31 -19
  68. package/dist/src/eval-s_E4q6a8.js +16 -0
  69. package/dist/src/{evalResult-DnYa1RLp.js → evalResult-CRyeHpst.js} +6 -6
  70. package/dist/src/{evalResult-CFSvp3Zh.cjs → evalResult-CSucevrC.cjs} +7 -7
  71. package/dist/src/evalResult-DBhbtqZn.js +11 -0
  72. package/dist/src/evalResult-DKn_nY-a.js +13 -0
  73. package/dist/src/{evalResult-CnAP64o9.js → evalResult-DNXvhaKp.js} +6 -6
  74. package/dist/src/evalResult-DrPpo-zg.cjs +11 -0
  75. package/dist/src/{evaluator-q2_--POi.js → evaluator-BDY-i4ky.js} +29 -30
  76. package/dist/src/evaluator-CiDt-6H3.js +37 -0
  77. package/dist/src/{extractor-D_1s-Thr.js → extractor-HnP0pHfO.js} +81 -4
  78. package/dist/src/{extractor-B9uQA-6-.js → extractor-WvMabjRY.js} +81 -4
  79. package/dist/src/{extractor-DjxI7POm.cjs → extractor-wSeR47-c.cjs} +86 -3
  80. package/dist/src/{fetch-Cb-qQ7Hm.js → fetch-8fmzVUH3.js} +2 -2
  81. package/dist/src/{fetch-BIPrzD39.js → fetch-BMKSarK_.js} +11 -5
  82. package/dist/src/{fetch-MdGxb6Bv.cjs → fetch-BgYKpAJ7.cjs} +25 -7
  83. package/dist/src/{fetch-Cbz8ESXD.js → fetch-CE0K47nJ.js} +1 -1
  84. package/dist/src/{fetch-TcCC0nEJ.js → fetch-DKQm7iwv.js} +11 -5
  85. package/dist/src/fetch-GeRV0LDI.cjs +4 -0
  86. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-CzcPkiKZ.js} +1 -1
  87. package/dist/src/{formatDuration-CGa0ZDQ8.js → formatDuration-CCiZ-wBY.js} +1 -1
  88. package/dist/src/{genaiTracer-zK0Mtd_D.cjs → genaiTracer-BQ8AmajD.cjs} +1 -1
  89. package/dist/src/{genaiTracer-CNawybn-.js → genaiTracer-Ce19n68P.js} +1 -1
  90. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-foKtbVa2.js} +1 -1
  91. package/dist/src/{graders-DycNkUZ_.js → graders-CEF_ce6x.js} +32 -26
  92. package/dist/src/graders-CzoftmVg.js +35 -0
  93. package/dist/src/{graders-C9Ni3pNQ.cjs → graders-DOFEkq6l.cjs} +34 -28
  94. package/dist/src/graders-DuTWgLQF.cjs +32 -0
  95. package/dist/src/graders-ZhEpUtuK.js +33 -0
  96. package/dist/src/{graders-CG50NgEB.js → graders-jFPLMexK.js} +36 -30
  97. package/dist/src/{image-CxD58J63.js → image-0RV3qqTK.js} +6 -6
  98. package/dist/src/{image-CHGpqpC6.js → image-9Thqn5aj.js} +3 -3
  99. package/dist/src/{image-BmMQZgoF.js → image-BJJW-zOa.js} +4 -4
  100. package/dist/src/{image-CPL1masV.cjs → image-BVyYHTQG.cjs} +3 -3
  101. package/dist/src/{image-Dg-oq_2F.js → image-Dd0EQRYU.js} +6 -6
  102. package/dist/src/{image-CpQ-fJt3.cjs → image-VWd0wZmz.cjs} +6 -6
  103. package/dist/src/index.cjs +177 -105
  104. package/dist/src/index.js +173 -101
  105. package/dist/src/{interactiveCheck-BZbMvE6i.js → interactiveCheck-CjK2R4rB.js} +1 -1
  106. package/dist/src/{knowledgeBase-Dy1Ln178.cjs → knowledgeBase-BKA28wUv.cjs} +7 -7
  107. package/dist/src/{knowledgeBase-BXvPbeXF.js → knowledgeBase-D0nOGqRF.js} +7 -7
  108. package/dist/src/{knowledgeBase-Csr92Wc4.js → knowledgeBase-aBIYgE4B.js} +8 -8
  109. package/dist/src/{litellm-Dcc3mt1B.js → litellm-BiXCNyII.js} +11 -11
  110. package/dist/src/{litellm-CR8i8YRn.js → litellm-QSopB7EE.js} +14 -14
  111. package/dist/src/{litellm-QthJT0fA.cjs → litellm-vZYPcEUQ.cjs} +11 -11
  112. package/dist/src/{luma-ray-DpAL4igs.cjs → luma-ray-CRKJx6ue.cjs} +10 -11
  113. package/dist/src/{luma-ray-vv5ggMvl.js → luma-ray-DmnPkNon.js} +10 -11
  114. package/dist/src/{luma-ray-DbAhu9zC.js → luma-ray-Dvnqlb9n.js} +9 -10
  115. package/dist/src/main.js +166 -106
  116. package/dist/src/{messages-DkV1dizA.js → messages-BaxI3gI5.js} +10 -10
  117. package/dist/src/{messages-D4Cu-Nxe.cjs → messages-CvFzyCty.cjs} +10 -10
  118. package/dist/src/{messages-9ik4NuJ_.js → messages-DT1yyWfS.js} +10 -10
  119. package/dist/src/{meteor-DLCdreag.js → meteor-0cLf9TIn.js} +1 -1
  120. package/dist/src/{meteor-Dj8cTkU_.js → meteor-CBciquOS.js} +1 -1
  121. package/dist/src/{meteor-odmwVbyG.cjs → meteor-DRuEfzuQ.cjs} +1 -1
  122. package/dist/src/{nova-reel-B1c4YdE8.js → nova-reel-CnN4D-bY.js} +10 -11
  123. package/dist/src/{nova-reel-Bs903nib.cjs → nova-reel-XAkfcmhf.cjs} +10 -11
  124. package/dist/src/{nova-reel-mMroVw7W.js → nova-reel-YEEqZu4z.js} +9 -10
  125. package/dist/src/{nova-sonic-BLgglDkA.js → nova-sonic-Ci-VR-K3.js} +6 -6
  126. package/dist/src/{nova-sonic-rZe65fKE.js → nova-sonic-Cjfvm57T.js} +7 -7
  127. package/dist/src/{nova-sonic-BylXGNj-.cjs → nova-sonic-brE_2yrZ.cjs} +6 -6
  128. package/dist/src/{openai-eZz8QsxY.cjs → openai-BjpdxIOG.cjs} +1 -1
  129. package/dist/src/{openai-CQozD_Ef.js → openai-CitF-gEN.js} +1 -1
  130. package/dist/src/{openai-D_5h8sBa.js → openai-Cv9pEKxp.js} +1 -1
  131. package/dist/src/{opencode-sdk-G-dBq9xe.js → opencode-sdk-BkXJb52a.js} +4 -4
  132. package/dist/src/{opencode-sdk-B3o0jNxx.cjs → opencode-sdk-CrlvqSy2.cjs} +4 -4
  133. package/dist/src/{opencode-sdk-lf_9VEhj.js → opencode-sdk-DRMuqbLx.js} +6 -6
  134. package/dist/src/{otlpReceiver-CBZNmyZi.js → otlpReceiver-BCKiiwct.js} +5 -5
  135. package/dist/src/{otlpReceiver-CO1TzzW1.js → otlpReceiver-BTVVyjnA.js} +4 -4
  136. package/dist/src/{otlpReceiver-COmdVimi.cjs → otlpReceiver-DXqKPf2U.cjs} +4 -4
  137. package/dist/src/{providerRegistry-5UB8YVkk.js → providerRegistry-BdKWcUa8.js} +1 -1
  138. package/dist/src/{providerRegistry-gU7gOAJI.js → providerRegistry-D32Lt9vp.js} +1 -1
  139. package/dist/src/{providerRegistry-DFXamjVO.cjs → providerRegistry-HGQd2MF6.cjs} +1 -1
  140. package/dist/src/{providers-Bz0U4NGd.cjs → providers-BF4aullZ.cjs} +114 -132
  141. package/dist/src/providers-BmFckJq8.cjs +31 -0
  142. package/dist/src/{providers-CHciOV4f.js → providers-BtbT8bDb.js} +77 -95
  143. package/dist/src/{providers-D8qKkVu_.js → providers-CYssBaa_.js} +82 -100
  144. package/dist/src/providers-DaDZ1iQw.js +31 -0
  145. package/dist/src/providers-Ds-h-S1b.js +33 -0
  146. package/dist/src/{pythonUtils-mprm8p4h.js → pythonUtils-B9JA-gsC.js} +2 -2
  147. package/dist/src/{quiverai-DnlaJG8H.js → quiverai-BiDa0kiF.js} +10 -10
  148. package/dist/src/{quiverai-3rtm1glP.js → quiverai-DTtLknat.js} +13 -13
  149. package/dist/src/{quiverai-BIveJ-Ql.cjs → quiverai-z8oPMSUZ.cjs} +10 -10
  150. package/dist/src/{render-D5t2ogwP.js → render-D2710HbA.js} +2 -2
  151. package/dist/src/rubyUtils-BLd6EE1u.cjs +5 -0
  152. package/dist/src/{rubyUtils-D1DBBgSr.js → rubyUtils-CVELPvUH.js} +2 -2
  153. package/dist/src/{rubyUtils-Cus5EGPX.js → rubyUtils-Dn6MGcsk.js} +2 -2
  154. package/dist/src/{rubyUtils-CI4Y5f08.js → rubyUtils-LBsk3zIm.js} +1 -1
  155. package/dist/src/{rubyUtils-CWkecmDB.js → rubyUtils-_t9Gmf7U.js} +1 -1
  156. package/dist/src/{rubyUtils-DCci_Y0f.cjs → rubyUtils-rnCVDgH-.cjs} +1 -1
  157. package/dist/src/{sagemaker-BvwRP8TL.js → sagemaker-D5f6K309.js} +11 -11
  158. package/dist/src/{sagemaker-BsttQmAf.cjs → sagemaker-DwJOnUlQ.cjs} +11 -11
  159. package/dist/src/{sagemaker-B4hvJgkV.js → sagemaker-dygdRScC.js} +17 -17
  160. package/dist/src/{scanner-CPosIITM.js → scanner-D__U7qyj.js} +9 -9
  161. package/dist/src/server/index.js +265 -129
  162. package/dist/src/server-B0dYFkhY.cjs +6 -0
  163. package/dist/src/{server-ByLwfSDf.cjs → server-BRPZ0ZqY.cjs} +3 -3
  164. package/dist/src/{server-Bb83s34G.js → server-BZJ_IEiK.js} +4 -4
  165. package/dist/src/{server-BKdsd70B.js → server-Bo3rtriL.js} +3 -3
  166. package/dist/src/server-DZYvmL1z.js +6 -0
  167. package/dist/src/server-DlTe_Yz5.js +8 -0
  168. package/dist/src/{signal-B8hvvb8w.js → signal-C9qT0qiq.js} +2 -2
  169. package/dist/src/{slack-BblBpsIz.cjs → slack-D1F9Y7CH.cjs} +1 -1
  170. package/dist/src/{slack-D-bNCtTa.js → slack-DkAF58Tr.js} +1 -1
  171. package/dist/src/{slack-Ba3gil_6.js → slack-Ed1yyt_j.js} +1 -1
  172. package/dist/src/{store-W4yZqv_e.js → store-BpNCvdGu.js} +2 -2
  173. package/dist/src/store-BvASVHpa.cjs +6 -0
  174. package/dist/src/{store-l9-mIRC-.cjs → store-BwsF10Db.cjs} +2 -2
  175. package/dist/src/store-CDxVyNyD.js +6 -0
  176. package/dist/src/store-CXxKOQ8V.js +7 -0
  177. package/dist/src/{store-CaNRmI5T.js → store-Dm8qSYzq.js} +2 -2
  178. package/dist/src/{tables-DZWWveaJ.js → tables-B0wvxP8N.js} +2 -2
  179. package/dist/src/{tables-BCcp2r48.js → tables-CMOPSC5_.js} +2 -2
  180. package/dist/src/{tables-D_VmN-ui.cjs → tables-D_nKFrHt.cjs} +2 -2
  181. package/dist/src/{telemetry-DrSTNTH-.cjs → telemetry-B9G9VzVT.cjs} +3 -3
  182. package/dist/src/telemetry-CGO4vCCz.js +8 -0
  183. package/dist/src/telemetry-CXarb10F.cjs +6 -0
  184. package/dist/src/telemetry-DKtQFHz8.js +6 -0
  185. package/dist/src/{telemetry-CmGyDaxF.js → telemetry-DMGVtU7z.js} +3 -3
  186. package/dist/src/{telemetry-CB8ltkOD.js → telemetry-oV0dEJ2S.js} +3 -3
  187. package/dist/src/{text-C1cXk9ij.js → text-DuYSUYPB.js} +1 -1
  188. package/dist/src/{text-Dm78AVGG.js → text-Dx0GJOCN.js} +1 -1
  189. package/dist/src/{text-DF2hMKdg.cjs → text-PYISqVm1.cjs} +1 -1
  190. package/dist/src/{tokenUsageUtils-DFp2VFtG.cjs → tokenUsageUtils-BtZd3sP7.cjs} +1 -1
  191. package/dist/src/{tokenUsageUtils-C9fIWtvn.js → tokenUsageUtils-DoinwgKF.js} +1 -1
  192. package/dist/src/{tokenUsageUtils-BQVp2uKF.js → tokenUsageUtils-cFdLMERB.js} +1 -1
  193. package/dist/src/{transcription-BExRps8_.js → transcription-C5sJed5S.js} +7 -7
  194. package/dist/src/{transcription-B4GbFkhb.cjs → transcription-DEiYnjqG.cjs} +7 -7
  195. package/dist/src/{transcription-CpuRKcIu.js → transcription-Dcv2GYgI.js} +10 -10
  196. package/dist/src/{transform-BzepVlkX.js → transform-BFPYuBaW.js} +4 -4
  197. package/dist/src/{transform-BwedQA8W.js → transform-Cpk3BVib.js} +3 -3
  198. package/dist/src/{transform-B-AYIQmM.js → transform-DWBbTh_M.js} +3 -3
  199. package/dist/src/{transform-1g7fEAge.js → transform-DZI2t8-9.js} +3 -3
  200. package/dist/src/{transform-B5HUD86U.cjs → transform-DeVdMzaA.cjs} +3 -3
  201. package/dist/src/{transformersAvailability-B5gZ2aG-.cjs → transformersAvailability-BaoWHpu1.cjs} +1 -1
  202. package/dist/src/{transformersAvailability-BHP0aLcv.js → transformersAvailability-DtpwoeFC.js} +1 -1
  203. package/dist/src/{transformersAvailability-CA173HU7.js → transformersAvailability-O2YaCv9Z.js} +1 -1
  204. package/dist/src/{types-n3ttAnOa.js → types-BZz0C6rq.js} +3 -18
  205. package/dist/src/{types-DAmPdu4_.cjs → types-Cixl-wRO.cjs} +1 -22
  206. package/dist/src/{types-BlspLqbN.js → types-l7snZgzv.js} +2 -17
  207. package/dist/src/{util-Cd2vI7ii.js → util-BR59kcWy.js} +3 -3
  208. package/dist/src/{util-BnF-xRPi.js → util-BjTDLTac.js} +3 -3
  209. package/dist/src/{util-CwsTKPXi.js → util-CSvDts2m.js} +3 -3
  210. package/dist/src/{util-KE6uFWHG.cjs → util-CfLcBZEA.cjs} +3 -3
  211. package/dist/src/{util-BXjq8vOq.js → util-Czrn_1en.js} +3 -3
  212. package/dist/src/{util-BT0p5c9X.cjs → util-Dxwavk84.cjs} +3 -3
  213. package/dist/src/{util-DX58t30T.js → util-GpiGNWSj.js} +17 -5
  214. package/dist/src/{util-B-Yo0qzc.cjs → util-RfCZM4TD.cjs} +22 -4
  215. package/dist/src/{util-CyzW5ayt.js → util-UxC1pDDt.js} +20 -8
  216. package/dist/src/{utils-HdRSruG0.js → utils-2CdNTp-a.js} +2 -2
  217. package/dist/src/{utils-BSpcJB4B.cjs → utils-6lWwNARy.cjs} +2 -2
  218. package/dist/src/{utils-BWOFfOel.js → utils-BMIgqY6C.js} +2 -2
  219. package/dist/tsconfig.tsbuildinfo +1 -1
  220. package/package.json +31 -29
  221. package/dist/src/app/assets/index-CFq6nz43.css +0 -1
  222. package/dist/src/cache-BZYapLG-.cjs +0 -6
  223. package/dist/src/eval-g5SH3NBa.js +0 -16
  224. package/dist/src/evalResult-Bt2fmj0V.js +0 -9
  225. package/dist/src/evalResult-DRNH7Jui.js +0 -10
  226. package/dist/src/evalResult-DqLWyktN.cjs +0 -9
  227. package/dist/src/evaluator-DIenqH86.js +0 -37
  228. package/dist/src/fetch-gmneHrJc.cjs +0 -4
  229. package/dist/src/graders-BHcgLz2P.js +0 -35
  230. package/dist/src/graders-BjBhwJOb.cjs +0 -32
  231. package/dist/src/graders-DEjGX1uY.js +0 -33
  232. package/dist/src/providers-BBGwMMzj.js +0 -33
  233. package/dist/src/providers-BR5P_qep.cjs +0 -31
  234. package/dist/src/providers-CDib9hVp.js +0 -31
  235. package/dist/src/rubyUtils-DZo4ik6p.cjs +0 -5
  236. package/dist/src/server-B5aIhzYk.cjs +0 -6
  237. package/dist/src/server-DJCw85s0.js +0 -8
  238. package/dist/src/server-DKj0QIm9.js +0 -6
  239. package/dist/src/store-Bo9FEBPO.js +0 -7
  240. package/dist/src/store-CqHttBql.js +0 -6
  241. package/dist/src/store-fsxOJl5O.cjs +0 -6
  242. package/dist/src/telemetry-B2uJOvMA.js +0 -8
  243. package/dist/src/telemetry-TZ0v6oGo.cjs +0 -6
  244. package/dist/src/telemetry-rP_n_bnZ.js +0 -6
  245. package/dist/src/time-CRRzn6vA.js +0 -9
  246. package/dist/src/time-CbtsO5_a.cjs +0 -21
  247. package/dist/src/time-CoOwN3kQ.js +0 -10
@@ -0,0 +1,31 @@
1
+ require('./logger-CMp-NS-e.cjs');
2
+ require('./esm-gWVPXn3r.cjs');
3
+ require('./pythonUtils-rOCm9w_5.cjs');
4
+ require('./transform-DshYLyBq.cjs');
5
+ require('./types-Cixl-wRO.cjs');
6
+ require('./util-RfCZM4TD.cjs');
7
+ require('./fetch-BgYKpAJ7.cjs');
8
+ require('./cache-BnrNlhzE.cjs');
9
+ const require_providers = require('./providers-BF4aullZ.cjs');
10
+ require('./extractor-wSeR47-c.cjs');
11
+ require('./genaiTracer-BQ8AmajD.cjs');
12
+ require('./chat-QHQ-K-Fi.cjs');
13
+ require('./transform-DeVdMzaA.cjs');
14
+ require('./messages-CvFzyCty.cjs');
15
+ require('./util-CfLcBZEA.cjs');
16
+ require('./openai-BjpdxIOG.cjs');
17
+ require('./util-Dxwavk84.cjs');
18
+ require('./completion-C03fIkcR.cjs');
19
+ require('./accounts-TGrHBZU9.cjs');
20
+ require('./server-BRPZ0ZqY.cjs');
21
+ require('./blobs-BPAqMoU_.cjs');
22
+ require('./tables-D_nKFrHt.cjs');
23
+ require('./telemetry-B9G9VzVT.cjs');
24
+ require('./store-BwsF10Db.cjs');
25
+ require('./base-B_pJcCDc.cjs');
26
+ require('./image-VWd0wZmz.cjs');
27
+ require('./providerRegistry-HGQd2MF6.cjs');
28
+ require('./rubyUtils-rnCVDgH-.cjs');
29
+
30
+ exports.loadApiProvider = require_providers.loadApiProvider;
31
+ exports.loadApiProviders = require_providers.loadApiProviders;
@@ -4,32 +4,31 @@ import { a as safeJoin, i as resolvePackageEntryPoint, n as getWrapperDir, o as
4
4
  import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-eNq6Wsfr.js";
5
5
  import { a as isVideoFile, i as isJavascriptFile, n as isAudioFile, r as isImageFile } from "./fileExtensions-ePDqouxn.js";
6
6
  import { n as transform, r as getProcessShim, t as TransformInputType } from "./transform-DvQWeBSR.js";
7
- import { $ as pluginDescriptions, A as isApiProvider, H as DATASET_PLUGINS, J as isCustomStrategy, N as ProviderOptionsSchema, V as AGENTIC_STRATEGIES, W as MULTI_TURN_STRATEGIES, j as isProviderOptions, yt as STRATEGY_EXEMPT_PLUGINS } from "./types-BlspLqbN.js";
8
- import { c as maybeLoadFromExternalFile, d as maybeLoadToolsFromExternalFile, f as parsePathOrGlob, g as renderVarsInObject, h as renderEnvOnlyInObject, l as maybeLoadFromExternalFileWithVars, o as getResolvedRelativePath, s as maybeLoadConfigFromExternalFile, u as maybeLoadResponseFormatFromExternalFile, v as extractVariablesFromTemplates, x as parseFileUrl, y as getNunjucksEngine } from "./util-DX58t30T.js";
9
- import { C as transformTools, F as VERSION, S as transformToolChoice, b as parseChatPrompt, c as cloudConfig, f as LONG_RUNNING_MODEL_TIMEOUT_MS, g as isOpenAIToolChoice, h as isOpenAIToolArray, m as calculateCost, n as fetchWithRetries, p as REQUEST_TIMEOUT_MS, r as fetchWithTimeout, t as fetchWithProxy, v as openaiToolChoiceToBedrock, w as CLOUD_PROVIDER_PREFIX, x as toTitleCase, y as openaiToolsToBedrock } from "./fetch-BIPrzD39.js";
10
- import { n as sleep } from "./time-CRRzn6vA.js";
11
- import { a as fetchWithCache, o as getCache, s as isCacheEnabled } from "./cache-CMvgAnSi.js";
12
- import { i as sha256, n as isBlobStorageEnabled, t as extractAndStoreBinaryData } from "./extractor-B9uQA-6-.js";
13
- import { n as withGenAISpan } from "./genaiTracer-CNawybn-.js";
14
- import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-BH8Fxyap.js";
15
- import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage, r as accumulateTokenUsage } from "./tokenUsageUtils-BQVp2uKF.js";
16
- import { _ as resolveProjectId, a as createAuthCacheDiscriminator, c as getCandidate, d as normalizeTools, g as loadCredentials, i as transformMCPToolsToOpenAi, l as getGoogleAccessToken, m as getGoogleClient, o as formatCandidateContents, p as GoogleAuthManager, r as transformMCPToolsToGoogle, s as geminiFormatAndSystemInstructions, u as mergeParts, w as TOKEN_REFRESH_BUFFER_MS } from "./transform-BwedQA8W.js";
17
- import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-DkV1dizA.js";
18
- import { a as parseMessages, i as outputFromMessage, t as ANTHROPIC_MODELS } from "./util-BnF-xRPi.js";
19
- import { t as OpenAiGenericProvider } from "./openai-CQozD_Ef.js";
20
- import { a as calculateOpenAICost, c as getTokenUsage$3, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-BXjq8vOq.js";
21
- import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-H4ncr2bK.js";
22
- import { i as getUserEmail, o as isLoggedIntoCloud } from "./accounts-DYMHC4iY.js";
23
- import { a as getRemoteGenerationUrlForUnaligned, c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrl, l as shouldGenerateRemote, n as checkServerFeatureSupport, s as neverGenerateRemote } from "./server-BKdsd70B.js";
24
- import { r as storeBlob } from "./blobs-Dznj-8xW.js";
25
- import { i as evalResultsTable, p as getDb } from "./tables-BCcp2r48.js";
26
- import { n as telemetry_default } from "./telemetry-CmGyDaxF.js";
27
- import { n as escapeRegExp, t as ellipsize } from "./text-Dm78AVGG.js";
28
- import { n as getTraceStore } from "./store-W4yZqv_e.js";
29
- import { t as AwsBedrockGenericProvider } from "./base-NFXflrMy.js";
30
- import { n as callOpenAiImageApi, r as formatOutput, t as OpenAiImageProvider } from "./image-Dg-oq_2F.js";
31
- import { t as providerRegistry } from "./providerRegistry-5UB8YVkk.js";
32
- import { n as runRuby } from "./rubyUtils-CI4Y5f08.js";
7
+ import { A as isApiProvider, H as DATASET_PLUGINS, J as isCustomStrategy, N as ProviderOptionsSchema, Q as pluginDescriptions, V as AGENTIC_STRATEGIES, W as MULTI_TURN_STRATEGIES, j as isProviderOptions, vt as STRATEGY_EXEMPT_PLUGINS } from "./types-l7snZgzv.js";
8
+ import { c as maybeLoadFromExternalFile, d as maybeLoadToolsFromExternalFile, f as parsePathOrGlob, g as renderVarsInObject, h as renderEnvOnlyInObject, l as maybeLoadFromExternalFileWithVars, o as getResolvedRelativePath, s as maybeLoadConfigFromExternalFile, u as maybeLoadResponseFormatFromExternalFile, v as extractVariablesFromTemplates, x as parseFileUrl, y as getNunjucksEngine } from "./util-GpiGNWSj.js";
9
+ import { C as toTitleCase, E as CLOUD_PROVIDER_PREFIX, L as VERSION, S as parseChatPrompt, T as transformTools, _ as isOpenAIToolArray, b as openaiToolChoiceToBedrock, c as cloudConfig, g as calculateCost, h as REQUEST_TIMEOUT_MS, m as LONG_RUNNING_MODEL_TIMEOUT_MS, n as fetchWithRetries, p as sleep, r as fetchWithTimeout, t as fetchWithProxy, v as isOpenAIToolChoice, w as transformToolChoice, x as openaiToolsToBedrock } from "./fetch-BMKSarK_.js";
10
+ import { a as fetchWithCache, o as getCache, s as isCacheEnabled } from "./cache-CsW_9RgN.js";
11
+ import { a as sha256, n as isBlobStorageEnabled, r as shouldAttemptRemoteBlobUpload, t as extractAndStoreBinaryData } from "./extractor-WvMabjRY.js";
12
+ import { n as withGenAISpan } from "./genaiTracer-Ce19n68P.js";
13
+ import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-D5l2blZK.js";
14
+ import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage, r as accumulateTokenUsage } from "./tokenUsageUtils-cFdLMERB.js";
15
+ import { _ as resolveProjectId, a as createAuthCacheDiscriminator, c as getCandidate, d as normalizeTools, g as loadCredentials, i as transformMCPToolsToOpenAi, l as getGoogleAccessToken, m as getGoogleClient, o as formatCandidateContents, p as GoogleAuthManager, r as transformMCPToolsToGoogle, s as geminiFormatAndSystemInstructions, u as mergeParts, w as TOKEN_REFRESH_BUFFER_MS } from "./transform-Cpk3BVib.js";
16
+ import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-BaxI3gI5.js";
17
+ import { a as parseMessages, i as outputFromMessage, t as ANTHROPIC_MODELS } from "./util-BjTDLTac.js";
18
+ import { t as OpenAiGenericProvider } from "./openai-CitF-gEN.js";
19
+ import { a as calculateOpenAICost, c as getTokenUsage$3, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-Czrn_1en.js";
20
+ import { n as OpenAiEmbeddingProvider, t as OpenAiCompletionProvider } from "./completion-CrKHW9hy.js";
21
+ import { i as getUserEmail } from "./accounts-CYqHD7X1.js";
22
+ import { a as getRemoteGenerationUrlForUnaligned, c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrl, l as shouldGenerateRemote, n as checkServerFeatureSupport, s as neverGenerateRemote } from "./server-Bo3rtriL.js";
23
+ import { r as storeBlob } from "./blobs-BHstP0Ep.js";
24
+ import { i as evalResultsTable, p as getDb } from "./tables-CMOPSC5_.js";
25
+ import { n as telemetry_default } from "./telemetry-DMGVtU7z.js";
26
+ import { n as escapeRegExp, t as ellipsize } from "./text-Dx0GJOCN.js";
27
+ import { n as getTraceStore } from "./store-BpNCvdGu.js";
28
+ import { t as AwsBedrockGenericProvider } from "./base-BHLggB84.js";
29
+ import { n as callOpenAiImageApi, r as formatOutput, t as OpenAiImageProvider } from "./image-Dd0EQRYU.js";
30
+ import { t as providerRegistry } from "./providerRegistry-BdKWcUa8.js";
31
+ import { n as runRuby } from "./rubyUtils-LBsk3zIm.js";
33
32
  import * as fs$1 from "fs";
34
33
  import fs, { promises } from "fs";
35
34
  import * as path$1 from "path";
@@ -4689,26 +4688,6 @@ async function getOrgContext() {
4689
4688
  //#region src/redteam/plugins/agentic/constants.ts
4690
4689
  const REDTEAM_MEMORY_POISONING_PLUGIN_ID = "promptfoo:redteam:agentic:memory-poisoning";
4691
4690
 
4692
- //#endregion
4693
- //#region src/blobs/remoteUpload.ts
4694
- function buildRemoteUrl() {
4695
- const baseUrl = cloudConfig.getApiHost();
4696
- const apiKey = cloudConfig.getApiKey();
4697
- if (!baseUrl || !apiKey || !isLoggedIntoCloud()) return null;
4698
- try {
4699
- return new URL("/api/blobs", baseUrl).toString();
4700
- } catch (error) {
4701
- logger_default.debug("[RemoteBlob] Invalid remote blob URL", {
4702
- error: error instanceof Error ? error.message : String(error),
4703
- baseUrl
4704
- });
4705
- return null;
4706
- }
4707
- }
4708
- function shouldAttemptRemoteBlobUpload() {
4709
- return buildRemoteUrl() !== null;
4710
- }
4711
-
4712
4691
  //#endregion
4713
4692
  //#region src/providers/promptfoo.ts
4714
4693
  /**
@@ -5942,7 +5921,7 @@ async function loadRedteamProvider({ provider, jsonOnly = false, preferSmallMode
5942
5921
  ret = redteamProvider;
5943
5922
  } else if (typeof redteamProvider === "string" || isProviderOptions(redteamProvider)) {
5944
5923
  logger_default.debug("Loading redteam provider", { provider: redteamProvider });
5945
- ret = (await (await import("./providers-CDib9hVp.js")).loadApiProviders([redteamProvider]))[0];
5924
+ ret = (await (await import("./providers-DaDZ1iQw.js")).loadApiProviders([redteamProvider]))[0];
5946
5925
  } else {
5947
5926
  const defaultModel = preferSmallModel ? ATTACKER_MODEL_SMALL : ATTACKER_MODEL;
5948
5927
  logger_default.debug(`Using default redteam provider: ${defaultModel}`);
@@ -6215,7 +6194,7 @@ async function externalizeResponseForRedteamHistory(response, context) {
6215
6194
  */
6216
6195
  async function tryUnblocking({ messages, lastResponse, goal, purpose }) {
6217
6196
  try {
6218
- const { checkServerFeatureSupport } = await import("./server-DKj0QIm9.js");
6197
+ const { checkServerFeatureSupport } = await import("./server-DZYvmL1z.js");
6219
6198
  const supportsUnblocking = await checkServerFeatureSupport("blocking-question-analysis", "2025-06-16T14:49:11-07:00");
6220
6199
  if (!getEnvBool("PROMPTFOO_ENABLE_UNBLOCKING")) {
6221
6200
  logger_default.debug("[Unblocking] Disabled by default (set PROMPTFOO_ENABLE_UNBLOCKING=true to enable)");
@@ -8108,13 +8087,15 @@ function cleanupExpiredPageState() {
8108
8087
  */
8109
8088
  async function checkExfilTracking(uuid, evalId) {
8110
8089
  try {
8111
- const response = await fetchWithRetries(getRemoteGenerationUrl(), {
8090
+ const url = getRemoteGenerationUrl();
8091
+ const normalizedEvalId = evalId?.replace(/^eval-/, "");
8092
+ const response = await fetchWithRetries(url, {
8112
8093
  method: "POST",
8113
8094
  headers: { "Content-Type": "application/json" },
8114
8095
  body: JSON.stringify({
8115
8096
  task: "get-web-page-tracking",
8116
8097
  uuid,
8117
- evalId
8098
+ evalId: normalizedEvalId
8118
8099
  })
8119
8100
  }, 1e4);
8120
8101
  if (!response.ok) {
@@ -8345,7 +8326,7 @@ async function transformForPerTurnLayer(testCases, injectVar, config) {
8345
8326
  const attackPrompt = replaceUrlsWithExfilPlaceholder(rawAttackPrompt);
8346
8327
  const goal = testCase.metadata?.goal;
8347
8328
  const testCaseId = testCase.metadata?.testCaseId || testCase.metadata?.originalTestCaseId || (typeof goal === "string" ? `goal-${hashString(goal)}` : "unknown");
8348
- const evalId = testCase.metadata?.evaluationId;
8329
+ const evalId = (testCase.metadata?.evaluationId)?.replace(/^eval-/, "");
8349
8330
  const stateKey = evalId ? `${evalId}:${testCaseId}` : testCaseId;
8350
8331
  let pageState = pageStateMap.get(stateKey);
8351
8332
  let turnNumber;
@@ -9780,7 +9761,6 @@ async function textToAudio(text, language = "en", options) {
9780
9761
  */
9781
9762
  async function addAudioToBase64(testCases, injectVar, config = {}) {
9782
9763
  const audioTestCases = [];
9783
- const language = config.language || "en";
9784
9764
  const evalId = config.evalId;
9785
9765
  let progressBar;
9786
9766
  if (logger_default.level !== "debug") {
@@ -9794,7 +9774,7 @@ async function addAudioToBase64(testCases, injectVar, config = {}) {
9794
9774
  for (const testCase of testCases) {
9795
9775
  invariant(testCase.vars, `Audio encoding: testCase.vars is required, but got ${JSON.stringify(testCase)}`);
9796
9776
  const originalText = String(testCase.vars[injectVar]);
9797
- const audioResult = await textToAudio(originalText, language, { evalId });
9777
+ const audioResult = await textToAudio(originalText, testCase.metadata?.language || testCase.metadata?.modifiers?.language || config.language || "en", { evalId });
9798
9778
  audioTestCases.push({
9799
9779
  ...testCase,
9800
9780
  assert: testCase.assert?.map((assertion) => ({
@@ -11287,7 +11267,7 @@ var CrescendoProvider = class {
11287
11267
  });
11288
11268
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
11289
11269
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
11290
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
11270
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
11291
11271
  let graderPassed;
11292
11272
  const additionalRubric = getGoalRubric(this.userGoal);
11293
11273
  while (roundNum < this.maxTurns) try {
@@ -11962,7 +11942,7 @@ var CustomProvider = class {
11962
11942
  let lastTransformResult;
11963
11943
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
11964
11944
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
11965
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
11945
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
11966
11946
  let graderPassed;
11967
11947
  let storedGraderResult;
11968
11948
  const additionalRubric = getGoalRubric(this.userGoal);
@@ -12444,7 +12424,7 @@ var GoatProvider = class {
12444
12424
  let assertToUse;
12445
12425
  let graderPassed;
12446
12426
  let storedGraderResult;
12447
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
12427
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
12448
12428
  let test;
12449
12429
  if (context?.test) {
12450
12430
  test = context?.test;
@@ -12885,7 +12865,7 @@ var HydraProvider = class {
12885
12865
  let lastTransformResult;
12886
12866
  let lastTransformDisplayVars;
12887
12867
  let lastFinalAttackPrompt;
12888
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
12868
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
12889
12869
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
12890
12870
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
12891
12871
  let previousTraceSummary;
@@ -13413,7 +13393,7 @@ var IndirectWebPwnProvider = class {
13413
13393
  const goal = context?.test?.metadata?.goal || (typeof injectVarValue === "string" ? injectVarValue : void 0);
13414
13394
  const purpose = context?.test?.metadata?.purpose;
13415
13395
  const testCaseId = context?.test?.metadata?.testCaseId || `scan-${this.config.scanId}`;
13416
- const evalId = context?.evaluationId;
13396
+ const evalId = context?.evaluationId?.replace(/^eval-/, "");
13417
13397
  logger_default.debug("[IndirectWebPwn] Starting attack", {
13418
13398
  goal,
13419
13399
  purpose,
@@ -13728,7 +13708,7 @@ async function runRedteamConversation$2({ context, filters, injectVar, numIterat
13728
13708
  if (sessionId) sessionIds.push(sessionId);
13729
13709
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
13730
13710
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
13731
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
13711
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
13732
13712
  if (test && assertToUse) {
13733
13713
  const grader = getGraderById(assertToUse.type);
13734
13714
  if (grader) {
@@ -14558,7 +14538,7 @@ async function runMetaAgentRedteam({ context, filters, injectVar, numIterations,
14558
14538
  previousTraceSummary = attackTraceSummary;
14559
14539
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
14560
14540
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
14561
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
14541
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
14562
14542
  if (test && assertToUse) {
14563
14543
  const grader = getGraderById(assertToUse.type);
14564
14544
  if (grader) {
@@ -15135,7 +15115,7 @@ async function runRedteamConversation({ context, filters, injectVar, options, pr
15135
15115
  noImprovementCount++;
15136
15116
  if (noImprovementCount % 5 === 0) logger_default.debug(`[Depth ${depth}, Attempt ${attempts}] No improvement for ${noImprovementCount} consecutive iterations. Max score: ${maxScore}`);
15137
15117
  }
15138
- const { getGraderById } = await import("./graders-DEjGX1uY.js");
15118
+ const { getGraderById } = await import("./graders-ZhEpUtuK.js");
15139
15119
  let graderPassed;
15140
15120
  let assertToUse = test?.assert?.find((a) => a.type && a.type.includes(test.metadata?.pluginId));
15141
15121
  if (!assertToUse) assertToUse = test?.assert?.find((a) => a.type);
@@ -15607,6 +15587,7 @@ var SimulatedUser = class {
15607
15587
  }
15608
15588
  async callApi(_prompt, context, _callApiOptions) {
15609
15589
  invariant(context?.originalProvider, "Expected originalProvider to be set");
15590
+ const targetProvider = context.originalProvider;
15610
15591
  const instructions = getNunjucksEngine().renderString(this.rawInstructions, context?.vars);
15611
15592
  const userProvider = new PromptfooSimulatedUserProvider({ instructions }, this.taskId);
15612
15593
  logger_default.debug(`[SimulatedUser] Formatted user instructions: ${instructions}`);
@@ -15622,7 +15603,7 @@ var SimulatedUser = class {
15622
15603
  let agentResponse;
15623
15604
  if ((messages.length > 0 ? messages[messages.length - 1].role : null) === "user") {
15624
15605
  logger_default.debug("[SimulatedUser] Initial messages end with user message, getting agent response first");
15625
- agentResponse = await this.sendMessageToAgent(messages, context.originalProvider, context);
15606
+ agentResponse = await this.sendMessageToAgent(messages, targetProvider, context);
15626
15607
  if (agentResponse.error) return {
15627
15608
  error: agentResponse.error,
15628
15609
  tokenUsage
@@ -15645,7 +15626,7 @@ var SimulatedUser = class {
15645
15626
  const lastMessage = messagesToUser[messagesToUser.length - 1];
15646
15627
  if (lastMessage.content && typeof lastMessage.content === "string" && lastMessage.content.includes("###STOP###")) break;
15647
15628
  messages.push(lastMessage);
15648
- agentResponse = await this.sendMessageToAgent(messagesToUser, context.originalProvider, context);
15629
+ agentResponse = await this.sendMessageToAgent(messagesToUser, targetProvider, context);
15649
15630
  if (agentResponse.error) return {
15650
15631
  error: agentResponse.error,
15651
15632
  tokenUsage
@@ -29338,11 +29319,12 @@ var PythonProvider = class {
29338
29319
  }
29339
29320
  return parsedResult;
29340
29321
  } else {
29341
- if (context) {
29342
- delete context.getCache;
29343
- delete context.logger;
29344
- delete context.filters;
29345
- delete context.originalProvider;
29322
+ const sanitizedContext = context ? { ...context } : void 0;
29323
+ if (sanitizedContext) {
29324
+ delete sanitizedContext.getCache;
29325
+ delete sanitizedContext.logger;
29326
+ delete sanitizedContext.filters;
29327
+ delete sanitizedContext.originalProvider;
29346
29328
  }
29347
29329
  const optionsWithProcessedConfig = {
29348
29330
  ...this.options,
@@ -29354,7 +29336,7 @@ var PythonProvider = class {
29354
29336
  const args = apiType === "call_api" ? [
29355
29337
  prompt,
29356
29338
  optionsWithProcessedConfig,
29357
- context
29339
+ sanitizedContext
29358
29340
  ] : [prompt, optionsWithProcessedConfig];
29359
29341
  logger_default.debug(`Executing python script ${absPath} via worker pool with args: ${safeJsonStringify(args)}`);
29360
29342
  const functionName = this.functionName || apiType;
@@ -32708,7 +32690,7 @@ const providerMap = [
32708
32690
  {
32709
32691
  test: (providerPath) => providerPath.startsWith("opencode:") || providerPath === "opencode",
32710
32692
  create: async (providerPath, providerOptions, context) => {
32711
- const { OpenCodeSDKProvider } = await import("./opencode-sdk-G-dBq9xe.js");
32693
+ const { OpenCodeSDKProvider } = await import("./opencode-sdk-BkXJb52a.js");
32712
32694
  return new OpenCodeSDKProvider({
32713
32695
  ...providerOptions,
32714
32696
  id: providerPath,
@@ -32720,7 +32702,7 @@ const providerMap = [
32720
32702
  {
32721
32703
  test: (providerPath) => providerPath.startsWith("anthropic:claude-agent-sdk") || providerPath.startsWith("anthropic:claude-code"),
32722
32704
  create: async (_providerPath, providerOptions, context) => {
32723
- const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-CdRG6b7t.js");
32705
+ const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-wvsRgO29.js");
32724
32706
  return new ClaudeCodeSDKProvider({
32725
32707
  ...providerOptions,
32726
32708
  env: context.env
@@ -32777,25 +32759,25 @@ const providerMap = [
32777
32759
  const modelName = splits.slice(2).join(":");
32778
32760
  if (modelType === "converse") return new AwsBedrockConverseProvider(modelName, providerOptions);
32779
32761
  if (modelType === "nova-sonic" || modelType.includes("amazon.nova-sonic")) {
32780
- const { NovaSonicProvider } = await import("./nova-sonic-BLgglDkA.js");
32762
+ const { NovaSonicProvider } = await import("./nova-sonic-Ci-VR-K3.js");
32781
32763
  return new NovaSonicProvider("amazon.nova-sonic-v1:0", providerOptions);
32782
32764
  }
32783
32765
  if (modelType.includes("luma.ray") || modelName.includes("luma.ray")) {
32784
- const { LumaRayVideoProvider } = await import("./luma-ray-DbAhu9zC.js");
32766
+ const { LumaRayVideoProvider } = await import("./luma-ray-Dvnqlb9n.js");
32785
32767
  return new LumaRayVideoProvider(modelName.includes("luma.ray") ? modelName : splits.slice(1).join(":") || "luma.ray-v2:0", providerOptions);
32786
32768
  }
32787
32769
  if (modelType.includes("amazon.nova-reel") || modelType === "video" && (modelName.includes("amazon.nova-reel") || modelName === "")) {
32788
- const { NovaReelVideoProvider } = await import("./nova-reel-mMroVw7W.js");
32770
+ const { NovaReelVideoProvider } = await import("./nova-reel-YEEqZu4z.js");
32789
32771
  return new NovaReelVideoProvider(modelName || "amazon.nova-reel-v1:1", providerOptions);
32790
32772
  }
32791
32773
  if (modelType === "agents") {
32792
- const { AwsBedrockAgentsProvider } = await import("./agents-DABC7ROH.js");
32774
+ const { AwsBedrockAgentsProvider } = await import("./agents-BbG-lpzK.js");
32793
32775
  return new AwsBedrockAgentsProvider(modelName, providerOptions);
32794
32776
  }
32795
32777
  if (modelType === "completion") return new AwsBedrockCompletionProvider(modelName, providerOptions);
32796
32778
  if (modelType === "embeddings" || modelType === "embedding") return new AwsBedrockEmbeddingProvider(modelName, providerOptions);
32797
32779
  if (modelType === "kb" || modelType === "knowledge-base") {
32798
- const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-BXvPbeXF.js");
32780
+ const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-D0nOGqRF.js");
32799
32781
  return new AwsBedrockKnowledgeBaseProvider(modelName, providerOptions);
32800
32782
  }
32801
32783
  return new AwsBedrockCompletionProvider(splits.slice(1).join(":"), providerOptions);
@@ -32805,7 +32787,7 @@ const providerMap = [
32805
32787
  test: (providerPath) => providerPath.startsWith("bedrock-agent:"),
32806
32788
  create: async (providerPath, providerOptions, _context) => {
32807
32789
  const agentId = providerPath.substring(14);
32808
- const { AwsBedrockAgentsProvider } = await import("./agents-DABC7ROH.js");
32790
+ const { AwsBedrockAgentsProvider } = await import("./agents-BbG-lpzK.js");
32809
32791
  return new AwsBedrockAgentsProvider(agentId, providerOptions);
32810
32792
  }
32811
32793
  },
@@ -32815,7 +32797,7 @@ const providerMap = [
32815
32797
  const splits = providerPath.split(":");
32816
32798
  const modelType = splits[1];
32817
32799
  const endpointName = splits.slice(2).join(":");
32818
- const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-BvwRP8TL.js");
32800
+ const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-D5f6K309.js");
32819
32801
  if (modelType === "embedding" || modelType === "embeddings") return new SageMakerEmbeddingProvider(endpointName || modelType, providerOptions);
32820
32802
  if (splits.length === 2) return new SageMakerCompletionProvider(modelType, providerOptions);
32821
32803
  if (endpointName.includes("jumpstart") || modelType === "jumpstart") return new SageMakerCompletionProvider(endpointName, {
@@ -32856,7 +32838,7 @@ const providerMap = [
32856
32838
  {
32857
32839
  test: (providerPath) => providerPath.startsWith("cloudflare-ai:"),
32858
32840
  create: async (providerPath, providerOptions, context) => {
32859
- const { createCloudflareAiProvider } = await import("./cloudflare-ai-BB77BUMD.js");
32841
+ const { createCloudflareAiProvider } = await import("./cloudflare-ai-D-IEjw5k.js");
32860
32842
  return createCloudflareAiProvider(providerPath, {
32861
32843
  ...providerOptions,
32862
32844
  env: context.env
@@ -32866,7 +32848,7 @@ const providerMap = [
32866
32848
  {
32867
32849
  test: (providerPath) => providerPath.startsWith("cloudflare-gateway:"),
32868
32850
  create: async (providerPath, providerOptions, context) => {
32869
- const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-Tn2OEgYQ.js");
32851
+ const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-DkjC8LZF.js");
32870
32852
  return createCloudflareGatewayProvider(providerPath, {
32871
32853
  ...providerOptions,
32872
32854
  env: context.env
@@ -33018,27 +33000,27 @@ const providerMap = [
33018
33000
  create: async (providerPath, providerOptions, context) => {
33019
33001
  const modelType = providerPath.split(":")[1];
33020
33002
  if (modelType === "image") {
33021
- const { createHyperbolicImageProvider } = await import("./image-CHGpqpC6.js");
33003
+ const { createHyperbolicImageProvider } = await import("./image-9Thqn5aj.js");
33022
33004
  return createHyperbolicImageProvider(providerPath, {
33023
33005
  ...providerOptions,
33024
33006
  env: context.env
33025
33007
  });
33026
33008
  }
33027
33009
  if (modelType === "audio") {
33028
- const { createHyperbolicAudioProvider } = await import("./audio-CSrI_LFf.js");
33010
+ const { createHyperbolicAudioProvider } = await import("./audio-CwbC4E6I.js");
33029
33011
  return createHyperbolicAudioProvider(providerPath, {
33030
33012
  ...providerOptions,
33031
33013
  env: context.env
33032
33014
  });
33033
33015
  }
33034
- const { createHyperbolicProvider } = await import("./chat-DyjTngG2.js");
33016
+ const { createHyperbolicProvider } = await import("./chat-CiakYWhZ.js");
33035
33017
  return createHyperbolicProvider(providerPath, providerOptions);
33036
33018
  }
33037
33019
  },
33038
33020
  {
33039
33021
  test: (providerPath) => providerPath.startsWith("litellm:"),
33040
33022
  create: async (providerPath, providerOptions, context) => {
33041
- const { createLiteLLMProvider } = await import("./litellm-Dcc3mt1B.js");
33023
+ const { createLiteLLMProvider } = await import("./litellm-BiXCNyII.js");
33042
33024
  return createLiteLLMProvider(providerPath, {
33043
33025
  config: providerOptions,
33044
33026
  env: context.env
@@ -33094,7 +33076,7 @@ const providerMap = [
33094
33076
  const modelType = splits[1];
33095
33077
  const modelName = splits.slice(2).join(":");
33096
33078
  if (modelType === "codex-sdk" || modelType === "codex") {
33097
- const { OpenAICodexSDKProvider } = await import("./codex-sdk-CDN8f3P9.js");
33079
+ const { OpenAICodexSDKProvider } = await import("./codex-sdk-CBpm53B8.js");
33098
33080
  return new OpenAICodexSDKProvider({
33099
33081
  ...providerOptions,
33100
33082
  env: context.env
@@ -33107,7 +33089,7 @@ const providerMap = [
33107
33089
  if (modelType === "realtime") return new OpenAiRealtimeProvider(modelName || "gpt-4o-realtime-preview-2024-12-17", providerOptions);
33108
33090
  if (modelType === "responses") return new OpenAiResponsesProvider(modelName || "gpt-4.1-2025-04-14", providerOptions);
33109
33091
  if (modelType === "transcription") {
33110
- const { OpenAiTranscriptionProvider } = await import("./transcription-BExRps8_.js");
33092
+ const { OpenAiTranscriptionProvider } = await import("./transcription-C5sJed5S.js");
33111
33093
  return new OpenAiTranscriptionProvider(modelName || "gpt-4o-transcribe-diarize", providerOptions);
33112
33094
  }
33113
33095
  if (OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelType)) return new OpenAiChatCompletionProvider(modelType, providerOptions);
@@ -33115,11 +33097,11 @@ const providerMap = [
33115
33097
  if (OpenAiRealtimeProvider.OPENAI_REALTIME_MODEL_NAMES.includes(modelType)) return new OpenAiRealtimeProvider(modelType, providerOptions);
33116
33098
  if (OpenAiResponsesProvider.OPENAI_RESPONSES_MODEL_NAMES.includes(modelType)) return new OpenAiResponsesProvider(modelType, providerOptions);
33117
33099
  if (modelType === "agents") {
33118
- const { OpenAiAgentsProvider } = await import("./agents-BNSS1kSZ.js");
33100
+ const { OpenAiAgentsProvider } = await import("./agents-v7_Jh18K.js");
33119
33101
  return new OpenAiAgentsProvider(modelName || "default-agent", providerOptions);
33120
33102
  }
33121
33103
  if (modelType === "chatkit") {
33122
- const { OpenAiChatKitProvider } = await import("./chatkit-BpumZ2Dz.js");
33104
+ const { OpenAiChatKitProvider } = await import("./chatkit-DlOZ-eNb.js");
33123
33105
  return new OpenAiChatKitProvider(modelName || "", providerOptions);
33124
33106
  }
33125
33107
  if (modelType === "assistant") return new OpenAiAssistantProvider(modelName, providerOptions);
@@ -33162,7 +33144,7 @@ const providerMap = [
33162
33144
  {
33163
33145
  test: (providerPath) => providerPath.startsWith("quiverai:"),
33164
33146
  create: async (providerPath, providerOptions, context) => {
33165
- const { createQuiverAiProvider } = await import("./quiverai-DnlaJG8H.js");
33147
+ const { createQuiverAiProvider } = await import("./quiverai-BiDa0kiF.js");
33166
33148
  return createQuiverAiProvider(providerPath, providerOptions, context.env);
33167
33149
  }
33168
33150
  },
@@ -33207,7 +33189,7 @@ const providerMap = [
33207
33189
  {
33208
33190
  test: (providerPath) => providerPath.startsWith("aimlapi:"),
33209
33191
  create: async (providerPath, providerOptions, context) => {
33210
- const { createAimlApiProvider } = await import("./aimlapi-CnBWjM7x.js");
33192
+ const { createAimlApiProvider } = await import("./aimlapi-BBN3jHiV.js");
33211
33193
  return createAimlApiProvider(providerPath, {
33212
33194
  ...providerOptions,
33213
33195
  env: context.env
@@ -33217,7 +33199,7 @@ const providerMap = [
33217
33199
  {
33218
33200
  test: (providerPath) => providerPath.startsWith("cometapi:"),
33219
33201
  create: async (providerPath, providerOptions, context) => {
33220
- const { createCometApiProvider } = await import("./cometapi-Bu_LOIac.js");
33202
+ const { createCometApiProvider } = await import("./cometapi-8HSWR5q_.js");
33221
33203
  return createCometApiProvider(providerPath, {
33222
33204
  ...providerOptions,
33223
33205
  env: context.env
@@ -33227,7 +33209,7 @@ const providerMap = [
33227
33209
  {
33228
33210
  test: (providerPath) => providerPath.startsWith("docker:"),
33229
33211
  create: async (providerPath, providerOptions, context) => {
33230
- const { createDockerProvider } = await import("./docker-B8zxQ12-.js");
33212
+ const { createDockerProvider } = await import("./docker-DHazKolQ.js");
33231
33213
  return createDockerProvider(providerPath, {
33232
33214
  ...providerOptions,
33233
33215
  env: context.env
@@ -33493,7 +33475,7 @@ const providerMap = [
33493
33475
  {
33494
33476
  test: (providerPath) => providerPath.startsWith("transformers:") || providerPath.startsWith("transformers.js:"),
33495
33477
  create: async (providerPath, providerOptions, _context) => {
33496
- const { validateTransformersDependency } = await import("./transformersAvailability-BHP0aLcv.js");
33478
+ const { validateTransformersDependency } = await import("./transformersAvailability-DtpwoeFC.js");
33497
33479
  await validateTransformersDependency();
33498
33480
  const splits = providerPath.split(":");
33499
33481
  if (splits.length < 3) throw new Error(`Invalid Transformers.js provider path: ${providerPath}. Format: transformers:<task>:<model>
@@ -33513,7 +33495,7 @@ Example: transformers:feature-extraction:Xenova/all-MiniLM-L6-v2`);
33513
33495
  test: (providerPath) => providerPath === "slack" || providerPath.startsWith("slack:"),
33514
33496
  create: async (providerPath, providerOptions, _context) => {
33515
33497
  try {
33516
- const { SlackProvider } = await import("./slack-D-bNCtTa.js");
33498
+ const { SlackProvider } = await import("./slack-DkAF58Tr.js");
33517
33499
  if (providerPath === "slack") return new SlackProvider(providerOptions);
33518
33500
  const splits = providerPath.split(":");
33519
33501
  if (splits.length < 2) throw new Error("Invalid Slack provider path. Use slack:<channel_id> or slack:channel:<channel_id>");
@@ -33810,4 +33792,4 @@ function getProviderIds(providerPaths) {
33810
33792
 
33811
33793
  //#endregion
33812
33794
  export { DefaultSynthesizeProvider as $, createRateLimitRegistry as A, resolveTeamId as B, collectFileMetadata as C, loadFromPackage as D, isPackagePath as E, getCloudDatabaseId as F, DefaultEmbeddingProvider as G, OpenAiModerationProvider as H, getOrgContext as I, AIStudioChatProvider as J, DefaultGradingProvider as K, getPluginSeverityOverridesFromCloud as L, PromptfooHarmfulCompletionProvider as M, REDTEAM_MEMORY_POISONING_PLUGIN_ID as N, redteamProviderManager as O, checkCloudPermissions as P, DefaultSuggestionsProvider as Q, getPoliciesFromCloud as R, removePrefix as S, runExtensionHook as T, MistralChatCompletionProvider as U, OpenAiResponsesProvider as V, MistralEmbeddingProvider as W, DefaultGradingProvider$1 as X, DefaultGradingJsonProvider as Y, DefaultLlmRubricProvider as Z, extractVariablesFromJson as _, resolveProviderConfigs as a, isBasicRefusal as b, Strategies as c, pluginMatchesStrategyTargets as d, AzureModerationProvider as et, checkExfilTracking as f, extractPromptFromTags as g, extractInputVarsFromPrompt as h, resolveProvider as i, parseScriptParts as it, createProviderRateLimitOptions as j, TokenUsageTracker as k, loadStrategy as l, extractGoalFromPrompt as m, loadApiProvider as n, AzureChatCompletionProvider as nt, MCPProvider as o, extractAllPromptsFromTags as p, VertexChatProvider as q, loadApiProviders as r, getFileHashes as rt, GoogleLiveProvider as s, getProviderIds as t, AzureEmbeddingProvider as tt, validateStrategies as u, getSessionId as v, renderPrompt as w, isEmptyResponse as x, getShortPluginId as y, isCloudProvider as z };
33813
- //# sourceMappingURL=providers-CHciOV4f.js.map
33795
+ //# sourceMappingURL=providers-BtbT8bDb.js.map