promptfoo 0.121.7 → 0.121.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/src/{accounts-Ca7WIoPY.js → accounts-4Xa5fcHy.js} +17 -18
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BAajbKSh.js} +17 -18
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-Bw2qPqE-.js} +18 -19
  4. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-DAcQXPwE.cjs} +20 -21
  5. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C8eEgGG-.cjs} +3 -3
  6. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-CP1IXFz3.js} +3 -3
  7. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-CUwa3AE9.js} +3 -3
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-DYr-aM6d.js} +3 -3
  9. package/dist/src/{agents-CBgJvRkB.js → agents-Bb00M6i5.js} +5 -5
  10. package/dist/src/{agents-D-vDNFx4.js → agents-CASf5zRj.js} +5 -5
  11. package/dist/src/{agents-B4sRuXg3.cjs → agents-CD1wH9bm.cjs} +5 -5
  12. package/dist/src/{agents-CYn2n3QP.js → agents-CZOHU7Q8.js} +5 -5
  13. package/dist/src/{agents-LrHuQqr1.js → agents-D539zhHr.js} +5 -5
  14. package/dist/src/{agents-B8q7h_ek.js → agents-DpRJdGBZ.js} +5 -5
  15. package/dist/src/{agents-QGg76OF-.js → agents-gZTW-8nu.js} +5 -5
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-hix6c0Sh.cjs} +5 -5
  17. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-DRQSL-Z4.js} +7 -7
  18. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-Dc3LW5zI.js} +7 -7
  19. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-KNYnjjU6.js} +7 -7
  20. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-gnrgd_Ej.cjs} +7 -7
  21. package/dist/src/app/assets/Report-Clw_YCp-.js +1 -0
  22. package/dist/src/app/assets/index-BQHaquKk.css +1 -0
  23. package/dist/src/app/assets/{index-BnT6P6sF.js → index-CW3XcQK7.js} +6 -6
  24. package/dist/src/app/index.html +2 -2
  25. package/dist/src/{audio-FnxbEnSE.cjs → audio-BgFTqfMO.cjs} +5 -5
  26. package/dist/src/{audio-CPMtV1yR.js → audio-Cslbgd4l.js} +5 -5
  27. package/dist/src/{audio-DyiebVB3.js → audio-DOI8kth4.js} +5 -5
  28. package/dist/src/{audio-BqnRvcWG.js → audio-hewMOCUU.js} +5 -5
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-DgE4u_Rl.js} +8 -8
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-gpm2K-Rp.js} +8 -8
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-nrC4mSPQ.js} +7 -7
  32. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-wG4x0yP2.cjs} +8 -8
  33. package/dist/src/{base-CKLo890h.js → base-0yya4DsM.js} +3 -3
  34. package/dist/src/{base-Co80MMCi.js → base-BARAIJmp.js} +3 -3
  35. package/dist/src/{base-DGJW48uz.cjs → base-BE_pY-r5.cjs} +3 -3
  36. package/dist/src/{base-E9I8zXjz.js → base-CTWzNAH9.js} +3 -3
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CV7ZKPw2.js} +8 -8
  38. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-DeucA4QS.js} +9 -9
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DxcpVUvj.cjs} +9 -9
  40. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-Ilxc2hMv.js} +9 -9
  41. package/dist/src/{blobs-B0977K1O.cjs → blobs-5wbW7TbH.cjs} +3 -3
  42. package/dist/src/{blobs-Dwef1Ao1.js → blobs-BfIMflt0.js} +3 -3
  43. package/dist/src/{blobs-DODuTK-a.js → blobs-CA4gXarv.js} +3 -3
  44. package/dist/src/{blobs-CeFdPn_T.js → blobs-ikh75MtF.js} +3 -3
  45. package/dist/src/{cache-DpPWrkTE.js → cache-BuudGL4I.js} +5 -5
  46. package/dist/src/{cache-DIXbtkNO.js → cache-CT5D7d_A.js} +4 -4
  47. package/dist/src/cache-CrL5EYgi.js +3 -0
  48. package/dist/src/{cache-CPGUA4Yl.cjs → cache-WuIsgzMA.cjs} +4 -4
  49. package/dist/src/{cache-roFAE0cI.js → cache-x9llZxbx.js} +5 -5
  50. package/dist/src/{chat-GmlolEwo.js → chat-B5NqvkS_.js} +3 -3
  51. package/dist/src/{chat-DqUFcWI0.js → chat-B8lsx0A0.js} +11 -11
  52. package/dist/src/{chat-DG1wG4w0.cjs → chat-BBlR1h8c.cjs} +3 -3
  53. package/dist/src/{chat-Dabu84Br.js → chat-CCtIXezK.js} +11 -11
  54. package/dist/src/{chat-TP8Qifkh.js → chat-CZOhFlzV.js} +3 -3
  55. package/dist/src/{chat-CUCorGiL.js → chat-CvQMD-mp.js} +11 -11
  56. package/dist/src/{chat-iwaM5UTQ.js → chat-Dh6mb5OL.js} +3 -3
  57. package/dist/src/{chat-DxTDQ83C.cjs → chat-DkitQHdt.cjs} +11 -11
  58. package/dist/src/{chatkit-fARZwEfV.js → chatkit-55cAEQb2.js} +4 -4
  59. package/dist/src/{chatkit-lb6FK02w.js → chatkit-B-uz3x63.js} +4 -4
  60. package/dist/src/{chatkit-B6DWi70Q.js → chatkit-Dxp6KO70.js} +4 -4
  61. package/dist/src/{chatkit-BYveR48_.cjs → chatkit-jEtokOVZ.cjs} +4 -4
  62. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BVfdeahc.js} +9 -7
  63. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-C0p-RhcW.cjs} +9 -7
  64. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-DB99Npst.js} +9 -7
  65. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-DHyrhDUu.js} +9 -7
  66. package/dist/src/cloud-BA4aLhk0.js +3 -0
  67. package/dist/src/{cloud-D3DiFqH6.js → cloud-BbAl8dyj.js} +3 -3
  68. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-ChBxkojW.js} +5 -5
  69. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-DDmTDys_.js} +5 -5
  70. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DPlNiC6I.cjs} +5 -5
  71. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-UsZe6ndv.js} +5 -5
  72. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-7b-lEtrb.cjs} +4 -4
  73. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-Bq5cqiV8.js} +4 -4
  74. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-C0N-5s62.js} +4 -4
  75. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-D5fm-QvC.js} +4 -4
  76. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BG5Aphvl.js} +20 -5
  77. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-BnPMlcjl.js} +20 -5
  78. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-D6gbvJFw.js} +20 -5
  79. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-Dl6BLKJn.cjs} +20 -5
  80. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-BnRTWAhS.js} +20 -8
  81. package/dist/src/codex-sdk-CChw5CYU.js +3 -0
  82. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-Cy1pEjsQ.cjs} +20 -8
  83. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-D86dT4XV.js} +20 -8
  84. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-mgUqOG2C.js} +20 -8
  85. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CkOfr271.js} +8 -8
  86. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-EB-Is7jj.cjs} +8 -8
  87. package/dist/src/{cometapi-OBILPLlu.js → cometapi-gvPhrXNM.js} +8 -8
  88. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi-sBbQmdfk.js} +8 -8
  89. package/dist/src/{completion-DZNxcyfG.js → completion-BoWiFP-D.js} +7 -7
  90. package/dist/src/{completion-CO2e1_62.js → completion-C99GFqQE.js} +7 -7
  91. package/dist/src/{completion-sNvCLTAP.js → completion-CUtdijfr.js} +7 -7
  92. package/dist/src/{completion-CSYfl2cd.cjs → completion-CkRVjadz.cjs} +7 -7
  93. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B4EiUJ-M.js} +43 -22
  94. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-BAN6NuWV.cjs} +45 -24
  95. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-CYzxmaSJ.js} +45 -24
  96. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-CrsXyaL0.js} +45 -24
  97. package/dist/src/{custom-BJfP00Bh.js → custom-C5K9QFs1.js} +13 -13
  98. package/dist/src/{custom-Cqia7M0D.cjs → custom-D1UjT5I5.cjs} +13 -13
  99. package/dist/src/{custom-CZVn-1-r.js → custom-DnMZvgB6.js} +13 -13
  100. package/dist/src/{custom-notggYVl.js → custom-EWterxkb.js} +11 -11
  101. package/dist/src/{docker-DdJQBxK9.js → docker-BFQc9ccU.js} +6 -6
  102. package/dist/src/{docker-D06JUoe2.cjs → docker-BMfsGXyn.cjs} +6 -6
  103. package/dist/src/{docker-4D1eL6Gq.js → docker-ChD4-eri.js} +6 -6
  104. package/dist/src/{docker-BBv1WUDu.js → docker-mZF5j6cW.js} +6 -6
  105. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BMqFDnLI.cjs} +7 -7
  106. package/dist/src/{embedding--UZVe4_7.js → embedding-BQBXSWgy.js} +7 -7
  107. package/dist/src/{embedding-Bi3rxrZF.js → embedding-BwTB3YDt.js} +7 -7
  108. package/dist/src/{embedding-C251p1-8.js → embedding-cd5oPBkX.js} +7 -7
  109. package/dist/src/{esm-B6whoAcf.js → esm-CGER3lko.js} +2 -2
  110. package/dist/src/{esm-Bexx2PFc.js → esm-CYMWMaSj.js} +2 -2
  111. package/dist/src/{esm-BTK1W7lG.js → esm-C_yrt93A.js} +2 -2
  112. package/dist/src/{esm-BIKakvNa.cjs → esm-vv4rR-Dp.cjs} +2 -2
  113. package/dist/src/{eval-0VRANImH.js → eval-DmGWplIN.js} +10 -10
  114. package/dist/src/{eval-DscR5iOM.js → eval-N_VV5NZg.js} +1 -1
  115. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-BZld6I3I.cjs} +6 -6
  116. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-ByGP9zuP.js} +7 -7
  117. package/dist/src/evalResult-CPPINYHK.js +3 -0
  118. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-gEmQRANj.js} +6 -6
  119. package/dist/src/evaluator-B01pCdUY.js +3 -0
  120. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-BpaUYhLY.js} +37 -37
  121. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-2gpZ9Q_f.cjs} +10 -10
  122. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-C8C8WQTv.js} +10 -10
  123. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-DDG44JeI.js} +10 -10
  124. package/dist/src/{extractor-CxRtnaHl.js → extractor-Bjz9sdTQ.js} +6 -6
  125. package/dist/src/{extractor-CIW3iN-b.js → extractor-CtadTcJm.js} +6 -6
  126. package/dist/src/{extractor-BR7XAzAL.js → extractor-DAnauX2V.js} +6 -6
  127. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-nyUwvU2U.cjs} +6 -6
  128. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-B2HvaVUc.cjs} +14 -12
  129. package/dist/src/{fetch-DXUnXkVU.js → fetch-C59QM4cf.js} +10 -8
  130. package/dist/src/{fetch-BufrQtvR.js → fetch-CBe8pU8Q.js} +10 -8
  131. package/dist/src/{fetch-It34O8Ur.js → fetch-CHJu2KON.js} +9 -7
  132. package/dist/src/fetch-D_XnRfBV.js +3 -0
  133. package/dist/src/{goat-Ckd3q3AY.js → goat-0HwO0EB2.js} +22 -21
  134. package/dist/src/{goat-una6pZGP.cjs → goat-7wQgRcT4.cjs} +22 -21
  135. package/dist/src/{goat-ghadEDdy.js → goat-BNX0lOFx.js} +20 -19
  136. package/dist/src/{goat-Qgurm-NP.js → goat-BOVnOl5S.js} +22 -21
  137. package/dist/src/{graders-BGP99PdK.js → graders-BnO-xoa-.js} +30 -30
  138. package/dist/src/{graders-ClrU2fnd.cjs → graders-CQv1GT5Q.cjs} +29 -29
  139. package/dist/src/graders-D4vc1PFi.js +3 -0
  140. package/dist/src/{graders-BX0f2tvS.js → graders-GNRQ1357.js} +29 -29
  141. package/dist/src/{graders-C0nXU_ZP.js → graders-k8qmhrPu.js} +31 -31
  142. package/dist/src/{hydra-BSNZZm2M.js → hydra-BrgGALmB.js} +38 -20
  143. package/dist/src/{hydra-BxdG4nkg.js → hydra-C38LOovb.js} +36 -18
  144. package/dist/src/{hydra-DE4xWwyc.js → hydra-CXc0p63W.js} +38 -20
  145. package/dist/src/{hydra-DrJttnvw.cjs → hydra-Hdj65j0k.cjs} +38 -20
  146. package/dist/src/{image-B_fPIwdg.js → image-6u3WZ_7H.js} +5 -5
  147. package/dist/src/{image-BN-hjLL9.js → image-B6hCz0z3.js} +5 -5
  148. package/dist/src/{image-BvUAW344.js → image-CgmaPlV_.js} +7 -7
  149. package/dist/src/{image-QzmydkiG.js → image-DXbwwL-r.js} +5 -5
  150. package/dist/src/{image-X0oY4350.cjs → image-Daa_X_YB.cjs} +7 -7
  151. package/dist/src/{image-Cvjwx1uY.js → image-DmC5qwQx.js} +7 -7
  152. package/dist/src/{image-DfVCGPbI.cjs → image-TY6FsHmn.cjs} +5 -5
  153. package/dist/src/{image-B4oBtu6J.js → image-V0-pYiBI.js} +7 -7
  154. package/dist/src/index.cjs +137 -140
  155. package/dist/src/index.d.cts +13 -0
  156. package/dist/src/index.d.ts +13 -0
  157. package/dist/src/index.js +137 -140
  158. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-04ziKbly.cjs} +5 -5
  159. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-1gHqaL91.js} +5 -5
  160. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B0CAtvZJ.js} +6 -6
  161. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BXUoJl4I.js} +5 -5
  162. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-Biy9I52D.js} +6 -6
  163. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BoPqjm9W.js} +6 -6
  164. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-DRYpRTx6.js} +5 -5
  165. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-MiCFTfzI.cjs} +6 -6
  166. package/dist/src/{inputVariables-DUGMb9Ka.js → inputVariables-B7cylqzM.js} +2 -2
  167. package/dist/src/{inputVariables-Dq9W-Z3a.cjs → inputVariables-D5K2vTp4.cjs} +2 -2
  168. package/dist/src/{inputVariables-B0qUChbV.js → inputVariables-DpOsOnzU.js} +3 -3
  169. package/dist/src/{inputVariables-DXFdi7AI.js → inputVariables-qJmuSN5i.js} +3 -3
  170. package/dist/src/{interactiveCheck-C4QlIuoR.js → interactiveCheck-BLnDrfjg.js} +2 -2
  171. package/dist/src/{iterative-FTS4Bz67.js → iterative-BDRx_noa.js} +29 -19
  172. package/dist/src/{iterative-CpU6i2As.js → iterative-BZxrxnoh.js} +27 -17
  173. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-KSovqu_j.cjs} +29 -19
  174. package/dist/src/{iterative-DJQEQpG3.js → iterative-vxBU1IPs.js} +29 -19
  175. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-BZuMd4x3.js} +7 -7
  176. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-DUWLmyVM.js} +6 -6
  177. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-DqNKoaIl.cjs} +7 -7
  178. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-DwIp1WGB.js} +7 -7
  179. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-9gsvnsl1.cjs} +39 -19
  180. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-AgI6UEh6.js} +39 -19
  181. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-BbcVN5nQ.js} +39 -19
  182. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-BcF8LsFk.js} +37 -17
  183. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-5TLHU9Kx.js} +81 -31
  184. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-7XyY_zdo.cjs} +81 -31
  185. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CnHx_kPu.js} +81 -31
  186. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-D9I3UJ0P.js} +79 -29
  187. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-BGbDBwr5.js} +5 -5
  188. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-BzfBwPyQ.js} +5 -5
  189. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-C_MSTwDt.js} +5 -5
  190. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-DSVK_YTi.cjs} +5 -5
  191. package/dist/src/{litellm-BXyn5kZK.js → litellm-CRTmskqC.js} +5 -5
  192. package/dist/src/{litellm-BKBo0jpC.js → litellm-Ch4E-r4b.js} +5 -5
  193. package/dist/src/{litellm-CNcfbCfa.js → litellm-DNnk7802.js} +5 -5
  194. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-jA4_p8mv.cjs} +5 -5
  195. package/dist/src/{logger-KD8JjCRJ.js → logger-BjYLHvGm.js} +56 -25
  196. package/dist/src/{logger-cfNpzI4o.cjs → logger-Cm0Nb8YX.cjs} +34 -3
  197. package/dist/src/{logger-Ct2S6Yx-.js → logger-Cs0I2v_y.js} +34 -3
  198. package/dist/src/{logger-BbY6ypFL.js → logger-h-eiS4iv.js} +34 -3
  199. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCkN79tz.cjs} +5 -5
  200. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-BqVizUQY.js} +5 -5
  201. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-CD7rd6KW.js} +5 -5
  202. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DLWLjDCa.js} +5 -5
  203. package/dist/src/main.js +143 -146
  204. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-BXDi4XCK.cjs} +8 -8
  205. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D-V4yXjj.js} +8 -8
  206. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-PrsT7Zh2.js} +8 -8
  207. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-ZUwCLvEn.js} +8 -8
  208. package/dist/src/{messages-DBPir0TQ.cjs → messages-BSFLFXIO.cjs} +8 -8
  209. package/dist/src/{messages-BabO-cX8.js → messages-C5qBfONg.js} +8 -8
  210. package/dist/src/{messages-DGUlSNU7.js → messages-CQoK4jHx.js} +8 -8
  211. package/dist/src/{messages-vsE_-Lv0.js → messages-Dy5vvc3H.js} +8 -8
  212. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-B4_YRWqu.cjs} +5 -5
  213. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-BoZy3Fry.js} +5 -5
  214. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CjJ9ZEuw.js} +5 -5
  215. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-CrMXlOUj.js} +5 -5
  216. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-B72XbAlR.js} +8 -8
  217. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-Bw-46LmW.js} +8 -8
  218. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-CJ0zQdDH.js} +8 -8
  219. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-LXFLCD-O.cjs} +8 -8
  220. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-D0k0-k8Y.cjs} +5 -5
  221. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-DItvBa6z.js} +5 -5
  222. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-DN7gTJzd.js} +5 -5
  223. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-DRLvlFOH.js} +5 -5
  224. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-BeAjEzkG.js} +3 -3
  225. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-DB7LzcCY.js} +3 -3
  226. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-DfLkPbkF.cjs} +3 -3
  227. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-kzIVxZDb.js} +3 -3
  228. package/dist/src/{openai-BMHD2Huo.js → openai-Bfbg6L4c.js} +2 -2
  229. package/dist/src/{openai-C3uXv8wS.cjs → openai-CCaz18I4.cjs} +2 -2
  230. package/dist/src/{openai-CJrsh9n4.js → openai-CJOpg_dA.js} +2 -2
  231. package/dist/src/{openai-zgwBb4Ff.js → openai-uRacy72N.js} +2 -2
  232. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-2Y9Ukt9Y.js} +9 -9
  233. package/dist/src/{openclaw-CF7fMido.js → openclaw-BdnuiqBG.js} +9 -9
  234. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-D54hA9Fe.cjs} +9 -9
  235. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DRjsDCSS.js} +9 -9
  236. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-2su-bzyz.js} +38 -9
  237. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-BRkqgOOQ.cjs} +38 -9
  238. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CFY-1bkH.js} +38 -9
  239. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-D-tRQJ9s.js} +38 -9
  240. package/dist/src/{otlpReceiver-B2eaKC8C.js → otlpReceiver-BkB7tsTT.js} +3 -3
  241. package/dist/src/{otlpReceiver--gTpSagc.js → otlpReceiver-BqJYGC-M.js} +4 -4
  242. package/dist/src/{otlpReceiver-BXjcRqAM.js → otlpReceiver-CRwU2egH.js} +4 -4
  243. package/dist/src/{otlpReceiver-CvJdBGSc.cjs → otlpReceiver-DOl5S07u.cjs} +4 -4
  244. package/dist/src/{packageParser--MWTSrPW.js → packageParser-B3bpKHK4.js} +2 -2
  245. package/dist/src/{packageParser-hwwSGnAZ.js → packageParser-CZdMKLBh.js} +2 -2
  246. package/dist/src/{packageParser-CgE-ziRo.js → packageParser-D7YWfcSe.js} +2 -2
  247. package/dist/src/{packageParser-QoCS1FMl.cjs → packageParser-DR054ceU.cjs} +2 -2
  248. package/dist/src/{promptLength-B9nZEfO6.js → promptLength-5B4_P93z.js} +2 -2
  249. package/dist/src/{promptLength-BbBbDHNj.cjs → promptLength-CAcg7BmO.cjs} +2 -2
  250. package/dist/src/{promptLength-4X-Wd8PG.js → promptLength-PkjlYFx0.js} +2 -2
  251. package/dist/src/{promptLength-0qIHyhA5.js → promptLength-ho3wbst6.js} +2 -2
  252. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CEsoPlBa.js} +67 -10
  253. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-DAXBmrE6.cjs} +96 -9
  254. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-DVKqidd8.js} +67 -10
  255. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-wxe28-q9.js} +67 -10
  256. package/dist/src/{providerRegistry-DHcFiVWX.js → providerRegistry-Bf4tRLgu.js} +2 -2
  257. package/dist/src/{providerRegistry-CZO_w7ue.cjs → providerRegistry-DKbi2EbP.cjs} +2 -2
  258. package/dist/src/{providerRegistry-ReCd0sFa.js → providerRegistry-DLeG-xXn.js} +2 -2
  259. package/dist/src/{providerRegistry-1gB5vtzQ.js → providerRegistry-v8Wa3f9z.js} +2 -2
  260. package/dist/src/{providers-B9KzWxAX.js → providers-CYBHjFEg.js} +178 -126
  261. package/dist/src/{providers-BCCz6_IX.js → providers-DDLQc0tl.js} +177 -125
  262. package/dist/src/{providers-BDVVIQM6.cjs → providers-DP1CDgd5.cjs} +176 -124
  263. package/dist/src/{providers-DVYRZP4E.js → providers-DTPwadhk.js} +176 -124
  264. package/dist/src/{providers-BYAn82cf.js → providers-DvBFcsXi.js} +1 -1
  265. package/dist/src/{pythonUtils-Cokhluq3.cjs → pythonUtils-BjuymNdM.cjs} +3 -3
  266. package/dist/src/{pythonUtils-D0BYebvX.js → pythonUtils-C4Wnz6Q7.js} +3 -3
  267. package/dist/src/{pythonUtils-CLCgQ9tt.js → pythonUtils-CBe7VV6f.js} +3 -3
  268. package/dist/src/{pythonUtils-CgYxeSmO.js → pythonUtils-CLAoc6jg.js} +3 -3
  269. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-B6ebiUKf.js} +6 -6
  270. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-BG7dvOQc.js} +6 -6
  271. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-DH6SMaxD.cjs} +6 -6
  272. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-DHNIAUfS.js} +6 -6
  273. package/dist/src/{registry-BUJrgjwv.js → registry-BKlwRYvr.js} +14 -14
  274. package/dist/src/{registry-KCVF1CFC.cjs → registry-CQHRTGYs.cjs} +14 -14
  275. package/dist/src/{registry-Dp5EqoXc.js → registry-Eiv-QeUm.js} +14 -14
  276. package/dist/src/{registry-DXm1t_x0.js → registry-qNoxbVEb.js} +14 -14
  277. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-CD3c_rzc.cjs} +6 -6
  278. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CoxtxLvB.js} +6 -6
  279. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-DW6mPZnO.js} +6 -6
  280. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration-DvWEm3yi.js} +6 -6
  281. package/dist/src/{render-_6ur1fhE.js → render-BoxrvB84.js} +2 -2
  282. package/dist/src/{render-DFfDeYUK.js → render-CTZQAINJ.js} +2 -2
  283. package/dist/src/{render-BNTrbmBw.cjs → render-DJ4yipCD.cjs} +2 -2
  284. package/dist/src/{render-DznWrxGO.js → render-MiyTvDY4.js} +2 -2
  285. package/dist/src/{render-CSP99NLm.js → render-jE6RKVgk.js} +2 -2
  286. package/dist/src/{responses-1UFFF9N_.cjs → responses-Bs2_3zyr.cjs} +14 -10
  287. package/dist/src/{responses-B3W2JvOQ.js → responses-C0yU3fO6.js} +14 -10
  288. package/dist/src/{responses-URRzV8qE.js → responses-C2vhwf8F.js} +14 -10
  289. package/dist/src/{responses-B6ktc3Ra.js → responses-pvlY3oYx.js} +14 -10
  290. package/dist/src/{rubyUtils-CnlW8AYb.js → rubyUtils-AvgsD_QH.js} +3 -3
  291. package/dist/src/{rubyUtils-CqUWBZAt.cjs → rubyUtils-BEqeZynS.cjs} +3 -3
  292. package/dist/src/{rubyUtils-CXlFM2rR.js → rubyUtils-C-sxXgGT.js} +3 -3
  293. package/dist/src/{rubyUtils-DdGojpfv.js → rubyUtils-DFzPvVD4.js} +3 -3
  294. package/dist/src/rubyUtils-DfYaGbxe.js +3 -0
  295. package/dist/src/{runtimeTransform-DigbjU1r.js → runtimeTransform-BmhEztlx.js} +2 -2
  296. package/dist/src/{runtimeTransform-BJOpL9Yc.js → runtimeTransform-Bw9Tttpp.js} +2 -2
  297. package/dist/src/{runtimeTransform-ON3YYILw.cjs → runtimeTransform-DJEknTZQ.cjs} +2 -2
  298. package/dist/src/{runtimeTransform-Dgh_D7DU.js → runtimeTransform-s14J7yxm.js} +2 -2
  299. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-C8NJAT8D.js} +11 -11
  300. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-DlajLLgJ.js} +11 -11
  301. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-PgIzjxMt.js} +11 -11
  302. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-hwPXLGI4.cjs} +11 -11
  303. package/dist/src/{scanner-DS0109SS.js → scanner-B3DPvw5u.js} +6 -6
  304. package/dist/src/server/index.js +145 -148
  305. package/dist/src/{server-DhMHosWj.js → server-4wx571OM.js} +6 -6
  306. package/dist/src/{server-Ddp8GNMp.js → server-8in_Vrrf.js} +6 -6
  307. package/dist/src/server-BHd6SQYX.js +3 -0
  308. package/dist/src/{server-CMJD10J4.js → server-pMTgWs3M.js} +4 -4
  309. package/dist/src/{server-B8rqV126.cjs → server-yHhoBx98.cjs} +4 -4
  310. package/dist/src/{shared-D6IjElRI.js → shared-BF25a7ms.js} +12 -12
  311. package/dist/src/{shared-WkgnDkcg.cjs → shared-DlmtkptR.cjs} +12 -12
  312. package/dist/src/{shared-9WHQ1oNE.js → shared-DsbObxvy.js} +12 -12
  313. package/dist/src/{shared-7pmVZLNO.js → shared-yBQATkD5.js} +13 -13
  314. package/dist/src/{signal-CSurUUyV.js → signal-CRrWj2xI.js} +3 -3
  315. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-9A3YPDh2.cjs} +7 -7
  316. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-CbZZV7UQ.js} +7 -7
  317. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-DdcsTBuS.js} +7 -7
  318. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-LKk31Iov.js} +7 -7
  319. package/dist/src/{slack-Bapo-7_8.js → slack-CWxUAo6N.js} +2 -2
  320. package/dist/src/{slack-DMC1QVEg.cjs → slack-CtMQnlyy.cjs} +2 -2
  321. package/dist/src/{slack-DTEFhrMn.js → slack-DrcMAkvd.js} +2 -2
  322. package/dist/src/{slack-k-_CP84Q.js → slack-chzmaYU3.js} +2 -2
  323. package/dist/src/{storage-BU4qcnOb.js → storage-B9lg2RCL.js} +6 -6
  324. package/dist/src/{storage-QdU-SmvD.js → storage-BC9TzmHh.js} +5 -5
  325. package/dist/src/{storage-CA-v9V2v.cjs → storage-Cv7QYUPO.cjs} +4 -4
  326. package/dist/src/{storage-CD-GWAdx.js → storage-fbHNSuZ9.js} +4 -4
  327. package/dist/src/{store-B2NDDooM.cjs → store-BKN4VD-m.cjs} +3 -3
  328. package/dist/src/{store-HpopRVzl.js → store-C4eo8Kyv.js} +3 -3
  329. package/dist/src/store-mJpYYA7W.js +3 -0
  330. package/dist/src/{store-DKd5592Q.js → store-u1XNK3e8.js} +3 -3
  331. package/dist/src/{strategies-CiSeroPH.js → strategies-4Nnr_9xt.js} +18 -18
  332. package/dist/src/{strategies-7CS3Alao.cjs → strategies-BD7US9WB.cjs} +18 -18
  333. package/dist/src/{strategies-DRJjGTIY.js → strategies-Ptz_P4P4.js} +20 -20
  334. package/dist/src/{tables-CRSXQ2Ke.js → tables-Bn3_8sxV.js} +2 -2
  335. package/dist/src/{tables-DafUHOeh.js → tables-D_ZGKiGc.js} +3 -3
  336. package/dist/src/{tables-DBIJU0WE.cjs → tables-D_s2HMPP.cjs} +2 -2
  337. package/dist/src/{tables-CxjU7bBd.js → tables-PWOqfbI_.js} +3 -3
  338. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-BTIhfopq.js} +21 -16
  339. package/dist/src/{telemetry-00ezXr_t.js → telemetry-BU80NveV.js} +21 -16
  340. package/dist/src/telemetry-CVHVhMOI.js +3 -0
  341. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-D3yQCekN.js} +21 -16
  342. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-DvzmDrSM.cjs} +21 -16
  343. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-D2F0D7es.js} +4 -4
  344. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-PLePpCmo.js} +3 -3
  345. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-WpE9IqC8.js} +4 -4
  346. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-eqmq5sA2.cjs} +4 -4
  347. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-CKLxdMxm.cjs} +7 -7
  348. package/dist/src/{transcription-B8uIgCYX.js → transcription-CmlDorqD.js} +7 -7
  349. package/dist/src/{transcription-CfU5loSq.js → transcription-Cupf4JNw.js} +7 -7
  350. package/dist/src/{transcription-Dkd22_4K.js → transcription-sOgdGxM6.js} +7 -7
  351. package/dist/src/{transform-BnSXWmU_2.cjs → transform-0wnBYYaL2.cjs} +4 -4
  352. package/dist/src/{transform-EtD4jAWi.js → transform-AfC8gqCB.js} +5 -5
  353. package/dist/src/{transform-CGt7Kt3y2.js → transform-BDSnWRNv2.js} +4 -4
  354. package/dist/src/{transform-BnSTnFlp.js → transform-C5pxvKUV.js} +4 -4
  355. package/dist/src/{transform-CrPGTsij.js → transform-C5rpIuDz.js} +4 -4
  356. package/dist/src/{transform-DmvYBRll.js → transform-D7QlmswG.js} +5 -5
  357. package/dist/src/{transform-DhNkAUs8.cjs → transform-DKw2FNwg.cjs} +5 -5
  358. package/dist/src/{transform-BIMynQsA.js → transform-R1PnNdLv.js} +5 -5
  359. package/dist/src/{types-BFevViUY.js → types-C_e_SykX.js} +2 -2
  360. package/dist/src/{types-BJQBBPTP.js → types-uLCKnRiK.js} +2 -2
  361. package/dist/src/{util-CN8om2rz.cjs → util-3BRss2KA.cjs} +7 -7
  362. package/dist/src/{util-efByNxcr.js → util-B2Nt2Oy7.js} +25 -7
  363. package/dist/src/{util-I-Rf-KaD.js → util-BGfk7zh7.js} +8 -8
  364. package/dist/src/{util-5WnCSb0h.js → util-BLSQ_7Ky.js} +25 -7
  365. package/dist/src/{util-IYzs5Y04.cjs → util-BSZPCmvm.cjs} +4 -3
  366. package/dist/src/{util-SPsvFONY.cjs → util-BuYzkbEz.cjs} +7 -7
  367. package/dist/src/{util-LKTmNsMQ.js → util-C6d3eV0A.js} +25 -7
  368. package/dist/src/{util-DURocbYR.js → util-CES4qWd7.js} +8 -8
  369. package/dist/src/{util-Df8YMvS1.js → util-CKZReNsz.js} +8 -8
  370. package/dist/src/{util-BSIuSLVK.cjs → util-Cs372i1_.cjs} +25 -7
  371. package/dist/src/{util-CoQWM76y.js → util-Cw9nJJWm.js} +4 -3
  372. package/dist/src/{util-DNl96nNs.js → util-D1NKMz55.js} +7 -7
  373. package/dist/src/{util-kDURhgJW.js → util-D9grslJP.js} +8 -8
  374. package/dist/src/{util--WMgw7wM.js → util-SNUDkWJ8.js} +4 -3
  375. package/dist/src/{util-Bx677_k2.js → util-vaCPFatZ.js} +7 -7
  376. package/dist/src/{util-DiQ3QvBB.js → util-weQgMdSy.js} +4 -3
  377. package/dist/src/{utils-Ve6kuJsa.cjs → utils-B_HCobst.cjs} +2 -2
  378. package/dist/src/{utils-BGY69tk_.js → utils-C3qMBhJT.js} +2 -2
  379. package/dist/src/{utils-BFOh20Gb.js → utils-Cdx3ZJr7.js} +2 -2
  380. package/dist/src/{utils-B0lzitHZ.js → utils-DMWnIu_V.js} +2 -2
  381. package/dist/src/{version-BK20a4sw.js → version-BGiEZvX0.js} +2 -2
  382. package/dist/src/{version-lpHV_53E.js → version-BNhpIb2U.js} +2 -2
  383. package/dist/src/{version-eRkNuGv8.js → version-CnYqmWbz.js} +2 -2
  384. package/dist/src/{version-BWCSaByA.cjs → version-XjGPawtU.cjs} +2 -2
  385. package/dist/tsconfig.tsbuildinfo +1 -1
  386. package/package.json +17 -17
  387. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  388. package/dist/src/app/assets/index-yhM8y1PP.css +0 -1
  389. package/dist/src/cache-Cf7b4pWE.js +0 -3
  390. package/dist/src/cloud-p96PA4MH.js +0 -3
  391. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  392. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  393. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  394. package/dist/src/fetch-_YgGd2qv.js +0 -3
  395. package/dist/src/graders-BDT7dif6.js +0 -3
  396. package/dist/src/rubyUtils-BYVlQ94c.js +0 -3
  397. package/dist/src/server-BaLytskk.js +0 -3
  398. package/dist/src/store-IbiRIF3k.js +0 -3
  399. package/dist/src/telemetry-ByPqDcKC.js +0 -3
@@ -1,9 +1,61 @@
1
- import { a as logger } from "./logger-KD8JjCRJ.js";
2
- import { n as fetchWithRetries, v as REQUEST_TIMEOUT_MS } from "./fetch-BufrQtvR.js";
3
- import { n as VERSION } from "./version-BK20a4sw.js";
4
- import { o as getUserEmail } from "./accounts-DanM1wq_.js";
5
- import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-COpWcmWd.js";
1
+ import { a as logger } from "./logger-Cs0I2v_y.js";
2
+ import { Vt as getInputType } from "./types-D6glLbdF.js";
3
+ import { m as getRequestTimeoutMs, n as fetchWithRetries } from "./fetch-CHJu2KON.js";
4
+ import { n as VERSION } from "./version-BNhpIb2U.js";
5
+ import { i as getUserEmail } from "./accounts-4Xa5fcHy.js";
6
+ import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DvWEm3yi.js";
6
7
  import dedent from "dedent";
8
+ //#region src/redteam/remoteMaterialization.ts
9
+ const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
10
+ function filterMaterializedVarsToInputs(vars, inputs, options) {
11
+ if (!inputs || Object.keys(inputs).length === 0) return vars;
12
+ return Object.fromEntries(Object.entries(vars).filter(([key]) => {
13
+ if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
14
+ if (!options?.textOnly) return true;
15
+ return getInputType(inputs[key]) === "text";
16
+ }));
17
+ }
18
+ function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
19
+ const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
20
+ const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
21
+ return {
22
+ ...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
23
+ vars: {
24
+ ...filteredFallbackVars,
25
+ ...filteredMaterializedVars
26
+ }
27
+ };
28
+ }
29
+ function getRemoteMaterializationHost() {
30
+ const remoteUrl = getRemoteGenerationUrl();
31
+ try {
32
+ return new URL(remoteUrl).origin;
33
+ } catch {
34
+ return remoteUrl;
35
+ }
36
+ }
37
+ function buildRemoteMaterializationContextVars(context) {
38
+ return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
39
+ }
40
+ function getRemoteMaterializationContextFromVars(vars) {
41
+ const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
42
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
43
+ return raw;
44
+ }
45
+ function requiresRemoteMaterialization(inputs) {
46
+ return Boolean(inputs && Object.keys(inputs).length > 0);
47
+ }
48
+ function getRemoteMaterializationUpgradeError(operation) {
49
+ return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
50
+ }
51
+ function isRemoteMaterializationUpgradeError(error) {
52
+ return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
53
+ }
54
+ function assertRemoteMaterializationHandled(response, operation) {
55
+ if (response?.materializationHandled === true) return;
56
+ throw new Error(getRemoteMaterializationUpgradeError(operation));
57
+ }
58
+ //#endregion
7
59
  //#region src/providers/promptfoo.ts
8
60
  /**
9
61
  * Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
@@ -87,6 +139,7 @@ var PromptfooChatCompletionProvider = class {
87
139
 
88
140
  Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
89
141
  ` };
142
+ const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
90
143
  const body = {
91
144
  jsonOnly: this.options.jsonOnly,
92
145
  preferSmallModel: this.options.preferSmallModel,
@@ -94,7 +147,8 @@ var PromptfooChatCompletionProvider = class {
94
147
  step: context?.prompt.label,
95
148
  task: this.options.task,
96
149
  email: getUserEmail(),
97
- ...this.options.inputs && { inputs: this.options.inputs }
150
+ ...this.options.inputs && { inputs: this.options.inputs },
151
+ ...materializationContext ? { materializationContext } : {}
98
152
  };
99
153
  try {
100
154
  const response = await fetchWithRetries(getRemoteGenerationUrl(), {
@@ -102,13 +156,16 @@ var PromptfooChatCompletionProvider = class {
102
156
  headers: { "Content-Type": "application/json" },
103
157
  body: JSON.stringify(body),
104
158
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
105
- }, REQUEST_TIMEOUT_MS);
159
+ }, getRequestTimeoutMs());
106
160
  const data = await response.json();
107
161
  if (!data.result) {
108
162
  logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
109
163
  return { error: "LLM did not return a result, likely refusal" };
110
164
  }
111
165
  return {
166
+ inputMaterialization: data.inputMaterialization,
167
+ materializationHandled: data.materializationHandled,
168
+ materializedVars: data.materializedVars,
112
169
  output: data.result,
113
170
  tokenUsage: data.tokenUsage
114
171
  };
@@ -161,7 +218,7 @@ var PromptfooSimulatedUserProvider = class {
161
218
  headers: { "Content-Type": "application/json" },
162
219
  body: JSON.stringify(body),
163
220
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
164
- }, REQUEST_TIMEOUT_MS);
221
+ }, getRequestTimeoutMs());
165
222
  if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
166
223
  const data = await response.json();
167
224
  return {
@@ -175,6 +232,6 @@ var PromptfooSimulatedUserProvider = class {
175
232
  }
176
233
  };
177
234
  //#endregion
178
- export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
235
+ export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
179
236
 
180
- //# sourceMappingURL=promptfoo-BDrfT30-.js.map
237
+ //# sourceMappingURL=promptfoo-CEsoPlBa.js.map
@@ -1,11 +1,63 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
2
- const require_logger = require("./logger-cfNpzI4o.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");
2
+ const require_logger = require("./logger-Cm0Nb8YX.cjs");
3
+ const require_types = require("./types-CxJvaY2S.cjs");
4
+ const require_fetch = require("./fetch-B2HvaVUc.cjs");
5
+ const require_version = require("./version-XjGPawtU.cjs");
6
+ const require_accounts = require("./accounts-DAcQXPwE.cjs");
7
+ const require_remoteGeneration = require("./remoteGeneration-CD3c_rzc.cjs");
7
8
  let dedent = require("dedent");
8
9
  dedent = require_rolldown_runtime.__toESM(dedent, 1);
10
+ //#region src/redteam/remoteMaterialization.ts
11
+ const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
12
+ function filterMaterializedVarsToInputs(vars, inputs, options) {
13
+ if (!inputs || Object.keys(inputs).length === 0) return vars;
14
+ return Object.fromEntries(Object.entries(vars).filter(([key]) => {
15
+ if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
16
+ if (!options?.textOnly) return true;
17
+ return require_types.getInputType(inputs[key]) === "text";
18
+ }));
19
+ }
20
+ function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
21
+ const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
22
+ const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
23
+ return {
24
+ ...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
25
+ vars: {
26
+ ...filteredFallbackVars,
27
+ ...filteredMaterializedVars
28
+ }
29
+ };
30
+ }
31
+ function getRemoteMaterializationHost() {
32
+ const remoteUrl = require_remoteGeneration.getRemoteGenerationUrl();
33
+ try {
34
+ return new URL(remoteUrl).origin;
35
+ } catch {
36
+ return remoteUrl;
37
+ }
38
+ }
39
+ function buildRemoteMaterializationContextVars(context) {
40
+ return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
41
+ }
42
+ function getRemoteMaterializationContextFromVars(vars) {
43
+ const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
44
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
45
+ return raw;
46
+ }
47
+ function requiresRemoteMaterialization(inputs) {
48
+ return Boolean(inputs && Object.keys(inputs).length > 0);
49
+ }
50
+ function getRemoteMaterializationUpgradeError(operation) {
51
+ return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
52
+ }
53
+ function isRemoteMaterializationUpgradeError(error) {
54
+ return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
55
+ }
56
+ function assertRemoteMaterializationHandled(response, operation) {
57
+ if (response?.materializationHandled === true) return;
58
+ throw new Error(getRemoteMaterializationUpgradeError(operation));
59
+ }
60
+ //#endregion
9
61
  //#region src/providers/promptfoo.ts
10
62
  /**
11
63
  * Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
@@ -89,6 +141,7 @@ var PromptfooChatCompletionProvider = class {
89
141
 
90
142
  Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
91
143
  ` };
144
+ const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
92
145
  const body = {
93
146
  jsonOnly: this.options.jsonOnly,
94
147
  preferSmallModel: this.options.preferSmallModel,
@@ -96,7 +149,8 @@ var PromptfooChatCompletionProvider = class {
96
149
  step: context?.prompt.label,
97
150
  task: this.options.task,
98
151
  email: require_accounts.getUserEmail(),
99
- ...this.options.inputs && { inputs: this.options.inputs }
152
+ ...this.options.inputs && { inputs: this.options.inputs },
153
+ ...materializationContext ? { materializationContext } : {}
100
154
  };
101
155
  try {
102
156
  const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
@@ -104,13 +158,16 @@ var PromptfooChatCompletionProvider = class {
104
158
  headers: { "Content-Type": "application/json" },
105
159
  body: JSON.stringify(body),
106
160
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
107
- }, require_fetch.REQUEST_TIMEOUT_MS);
161
+ }, require_fetch.getRequestTimeoutMs());
108
162
  const data = await response.json();
109
163
  if (!data.result) {
110
164
  require_logger.logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
111
165
  return { error: "LLM did not return a result, likely refusal" };
112
166
  }
113
167
  return {
168
+ inputMaterialization: data.inputMaterialization,
169
+ materializationHandled: data.materializationHandled,
170
+ materializedVars: data.materializedVars,
114
171
  output: data.result,
115
172
  tokenUsage: data.tokenUsage
116
173
  };
@@ -163,7 +220,7 @@ var PromptfooSimulatedUserProvider = class {
163
220
  headers: { "Content-Type": "application/json" },
164
221
  body: JSON.stringify(body),
165
222
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
166
- }, require_fetch.REQUEST_TIMEOUT_MS);
223
+ }, require_fetch.getRequestTimeoutMs());
167
224
  if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
168
225
  const data = await response.json();
169
226
  return {
@@ -201,5 +258,35 @@ Object.defineProperty(exports, "REDTEAM_SIMULATED_USER_TASK_ID", {
201
258
  return REDTEAM_SIMULATED_USER_TASK_ID;
202
259
  }
203
260
  });
261
+ Object.defineProperty(exports, "assertRemoteMaterializationHandled", {
262
+ enumerable: true,
263
+ get: function() {
264
+ return assertRemoteMaterializationHandled;
265
+ }
266
+ });
267
+ Object.defineProperty(exports, "buildRemoteMaterializationContextVars", {
268
+ enumerable: true,
269
+ get: function() {
270
+ return buildRemoteMaterializationContextVars;
271
+ }
272
+ });
273
+ Object.defineProperty(exports, "buildRemoteMaterializedInputVariables", {
274
+ enumerable: true,
275
+ get: function() {
276
+ return buildRemoteMaterializedInputVariables;
277
+ }
278
+ });
279
+ Object.defineProperty(exports, "isRemoteMaterializationUpgradeError", {
280
+ enumerable: true,
281
+ get: function() {
282
+ return isRemoteMaterializationUpgradeError;
283
+ }
284
+ });
285
+ Object.defineProperty(exports, "requiresRemoteMaterialization", {
286
+ enumerable: true,
287
+ get: function() {
288
+ return requiresRemoteMaterialization;
289
+ }
290
+ });
204
291
 
205
- //# sourceMappingURL=promptfoo-b-baRMj-.cjs.map
292
+ //# sourceMappingURL=promptfoo-DAXBmrE6.cjs.map
@@ -1,9 +1,61 @@
1
- import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { n as fetchWithRetries, p as REQUEST_TIMEOUT_MS } from "./fetch-It34O8Ur.js";
3
- import { n as VERSION } from "./version-lpHV_53E.js";
4
- import { i as getUserEmail } from "./accounts-Ca7WIoPY.js";
5
- import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DsaSwmG2.js";
1
+ import { a as logger } from "./logger-BjYLHvGm.js";
2
+ import { n as fetchWithRetries, y as getRequestTimeoutMs } from "./fetch-CBe8pU8Q.js";
3
+ import { n as VERSION } from "./version-BGiEZvX0.js";
4
+ import { o as getUserEmail } from "./accounts-BAajbKSh.js";
5
+ import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-CoxtxLvB.js";
6
+ import { bt as getInputType } from "./types-uLCKnRiK.js";
6
7
  import dedent from "dedent";
8
+ //#region src/redteam/remoteMaterialization.ts
9
+ const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
10
+ function filterMaterializedVarsToInputs(vars, inputs, options) {
11
+ if (!inputs || Object.keys(inputs).length === 0) return vars;
12
+ return Object.fromEntries(Object.entries(vars).filter(([key]) => {
13
+ if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
14
+ if (!options?.textOnly) return true;
15
+ return getInputType(inputs[key]) === "text";
16
+ }));
17
+ }
18
+ function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
19
+ const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
20
+ const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
21
+ return {
22
+ ...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
23
+ vars: {
24
+ ...filteredFallbackVars,
25
+ ...filteredMaterializedVars
26
+ }
27
+ };
28
+ }
29
+ function getRemoteMaterializationHost() {
30
+ const remoteUrl = getRemoteGenerationUrl();
31
+ try {
32
+ return new URL(remoteUrl).origin;
33
+ } catch {
34
+ return remoteUrl;
35
+ }
36
+ }
37
+ function buildRemoteMaterializationContextVars(context) {
38
+ return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
39
+ }
40
+ function getRemoteMaterializationContextFromVars(vars) {
41
+ const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
42
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
43
+ return raw;
44
+ }
45
+ function requiresRemoteMaterialization(inputs) {
46
+ return Boolean(inputs && Object.keys(inputs).length > 0);
47
+ }
48
+ function getRemoteMaterializationUpgradeError(operation) {
49
+ return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
50
+ }
51
+ function isRemoteMaterializationUpgradeError(error) {
52
+ return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
53
+ }
54
+ function assertRemoteMaterializationHandled(response, operation) {
55
+ if (response?.materializationHandled === true) return;
56
+ throw new Error(getRemoteMaterializationUpgradeError(operation));
57
+ }
58
+ //#endregion
7
59
  //#region src/providers/promptfoo.ts
8
60
  /**
9
61
  * Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
@@ -87,6 +139,7 @@ var PromptfooChatCompletionProvider = class {
87
139
 
88
140
  Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
89
141
  ` };
142
+ const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
90
143
  const body = {
91
144
  jsonOnly: this.options.jsonOnly,
92
145
  preferSmallModel: this.options.preferSmallModel,
@@ -94,7 +147,8 @@ var PromptfooChatCompletionProvider = class {
94
147
  step: context?.prompt.label,
95
148
  task: this.options.task,
96
149
  email: getUserEmail(),
97
- ...this.options.inputs && { inputs: this.options.inputs }
150
+ ...this.options.inputs && { inputs: this.options.inputs },
151
+ ...materializationContext ? { materializationContext } : {}
98
152
  };
99
153
  try {
100
154
  const response = await fetchWithRetries(getRemoteGenerationUrl(), {
@@ -102,13 +156,16 @@ var PromptfooChatCompletionProvider = class {
102
156
  headers: { "Content-Type": "application/json" },
103
157
  body: JSON.stringify(body),
104
158
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
105
- }, REQUEST_TIMEOUT_MS);
159
+ }, getRequestTimeoutMs());
106
160
  const data = await response.json();
107
161
  if (!data.result) {
108
162
  logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
109
163
  return { error: "LLM did not return a result, likely refusal" };
110
164
  }
111
165
  return {
166
+ inputMaterialization: data.inputMaterialization,
167
+ materializationHandled: data.materializationHandled,
168
+ materializedVars: data.materializedVars,
112
169
  output: data.result,
113
170
  tokenUsage: data.tokenUsage
114
171
  };
@@ -161,7 +218,7 @@ var PromptfooSimulatedUserProvider = class {
161
218
  headers: { "Content-Type": "application/json" },
162
219
  body: JSON.stringify(body),
163
220
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
164
- }, REQUEST_TIMEOUT_MS);
221
+ }, getRequestTimeoutMs());
165
222
  if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
166
223
  const data = await response.json();
167
224
  return {
@@ -175,6 +232,6 @@ var PromptfooSimulatedUserProvider = class {
175
232
  }
176
233
  };
177
234
  //#endregion
178
- export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
235
+ export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
179
236
 
180
- //# sourceMappingURL=promptfoo-Cm4hiy1Y.js.map
237
+ //# sourceMappingURL=promptfoo-DVKqidd8.js.map
@@ -1,10 +1,62 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-BbY6ypFL.js";
3
- import { _ as REQUEST_TIMEOUT_MS, r as fetchWithRetries } from "./fetch-DXUnXkVU.js";
4
- import { n as VERSION } from "./version-eRkNuGv8.js";
5
- import { o as getUserEmail } from "./accounts-CjFnOPmb.js";
6
- import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-B1_XsKXU.js";
2
+ import { s as logger } from "./logger-h-eiS4iv.js";
3
+ import { r as fetchWithRetries, v as getRequestTimeoutMs } from "./fetch-C59QM4cf.js";
4
+ import { n as VERSION } from "./version-CnYqmWbz.js";
5
+ import { o as getUserEmail } from "./accounts-Bw2qPqE-.js";
6
+ import { wt as getInputType } from "./types-C_e_SykX.js";
7
+ import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-DW6mPZnO.js";
7
8
  import dedent from "dedent";
9
+ //#region src/redteam/remoteMaterialization.ts
10
+ const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
11
+ function filterMaterializedVarsToInputs(vars, inputs, options) {
12
+ if (!inputs || Object.keys(inputs).length === 0) return vars;
13
+ return Object.fromEntries(Object.entries(vars).filter(([key]) => {
14
+ if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
15
+ if (!options?.textOnly) return true;
16
+ return getInputType(inputs[key]) === "text";
17
+ }));
18
+ }
19
+ function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
20
+ const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
21
+ const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
22
+ return {
23
+ ...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
24
+ vars: {
25
+ ...filteredFallbackVars,
26
+ ...filteredMaterializedVars
27
+ }
28
+ };
29
+ }
30
+ function getRemoteMaterializationHost() {
31
+ const remoteUrl = getRemoteGenerationUrl();
32
+ try {
33
+ return new URL(remoteUrl).origin;
34
+ } catch {
35
+ return remoteUrl;
36
+ }
37
+ }
38
+ function buildRemoteMaterializationContextVars(context) {
39
+ return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
40
+ }
41
+ function getRemoteMaterializationContextFromVars(vars) {
42
+ const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
43
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
44
+ return raw;
45
+ }
46
+ function requiresRemoteMaterialization(inputs) {
47
+ return Boolean(inputs && Object.keys(inputs).length > 0);
48
+ }
49
+ function getRemoteMaterializationUpgradeError(operation) {
50
+ return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
51
+ }
52
+ function isRemoteMaterializationUpgradeError(error) {
53
+ return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
54
+ }
55
+ function assertRemoteMaterializationHandled(response, operation) {
56
+ if (response?.materializationHandled === true) return;
57
+ throw new Error(getRemoteMaterializationUpgradeError(operation));
58
+ }
59
+ //#endregion
8
60
  //#region src/providers/promptfoo.ts
9
61
  /**
10
62
  * Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
@@ -88,6 +140,7 @@ var PromptfooChatCompletionProvider = class {
88
140
 
89
141
  Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
90
142
  ` };
143
+ const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
91
144
  const body = {
92
145
  jsonOnly: this.options.jsonOnly,
93
146
  preferSmallModel: this.options.preferSmallModel,
@@ -95,7 +148,8 @@ var PromptfooChatCompletionProvider = class {
95
148
  step: context?.prompt.label,
96
149
  task: this.options.task,
97
150
  email: getUserEmail(),
98
- ...this.options.inputs && { inputs: this.options.inputs }
151
+ ...this.options.inputs && { inputs: this.options.inputs },
152
+ ...materializationContext ? { materializationContext } : {}
99
153
  };
100
154
  try {
101
155
  const response = await fetchWithRetries(getRemoteGenerationUrl(), {
@@ -103,13 +157,16 @@ var PromptfooChatCompletionProvider = class {
103
157
  headers: { "Content-Type": "application/json" },
104
158
  body: JSON.stringify(body),
105
159
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
106
- }, REQUEST_TIMEOUT_MS);
160
+ }, getRequestTimeoutMs());
107
161
  const data = await response.json();
108
162
  if (!data.result) {
109
163
  logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
110
164
  return { error: "LLM did not return a result, likely refusal" };
111
165
  }
112
166
  return {
167
+ inputMaterialization: data.inputMaterialization,
168
+ materializationHandled: data.materializationHandled,
169
+ materializedVars: data.materializedVars,
113
170
  output: data.result,
114
171
  tokenUsage: data.tokenUsage
115
172
  };
@@ -162,7 +219,7 @@ var PromptfooSimulatedUserProvider = class {
162
219
  headers: { "Content-Type": "application/json" },
163
220
  body: JSON.stringify(body),
164
221
  ...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
165
- }, REQUEST_TIMEOUT_MS);
222
+ }, getRequestTimeoutMs());
166
223
  if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
167
224
  const data = await response.json();
168
225
  return {
@@ -176,6 +233,6 @@ var PromptfooSimulatedUserProvider = class {
176
233
  }
177
234
  };
178
235
  //#endregion
179
- export { REDTEAM_SIMULATED_USER_TASK_ID as i, PromptfooHarmfulCompletionProvider as n, PromptfooSimulatedUserProvider as r, PromptfooChatCompletionProvider as t };
236
+ export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
180
237
 
181
- //# sourceMappingURL=promptfoo-Rjp-MeBb.js.map
238
+ //# sourceMappingURL=promptfoo-wxe28-q9.js.map
@@ -1,4 +1,4 @@
1
- import { a as logger } from "./logger-Ct2S6Yx-.js";
1
+ import { a as logger } from "./logger-Cs0I2v_y.js";
2
2
  //#region src/providers/providerRegistry.ts
3
3
  /**
4
4
  * Global registry of Python providers for cleanup on process exit.
@@ -42,4 +42,4 @@ const providerRegistry = new ProviderRegistry();
42
42
  //#endregion
43
43
  export { providerRegistry as t };
44
44
 
45
- //# sourceMappingURL=providerRegistry-DHcFiVWX.js.map
45
+ //# sourceMappingURL=providerRegistry-Bf4tRLgu.js.map
@@ -1,4 +1,4 @@
1
- const require_logger = require("./logger-cfNpzI4o.cjs");
1
+ const require_logger = require("./logger-Cm0Nb8YX.cjs");
2
2
  //#region src/providers/providerRegistry.ts
3
3
  /**
4
4
  * Global registry of Python providers for cleanup on process exit.
@@ -47,4 +47,4 @@ Object.defineProperty(exports, "providerRegistry", {
47
47
  }
48
48
  });
49
49
 
50
- //# sourceMappingURL=providerRegistry-CZO_w7ue.cjs.map
50
+ //# sourceMappingURL=providerRegistry-DKbi2EbP.cjs.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-BbY6ypFL.js";
2
+ import { s as logger } from "./logger-h-eiS4iv.js";
3
3
  //#region src/providers/providerRegistry.ts
4
4
  /**
5
5
  * Global registry of Python providers for cleanup on process exit.
@@ -43,4 +43,4 @@ const providerRegistry = new ProviderRegistry();
43
43
  //#endregion
44
44
  export { providerRegistry as t };
45
45
 
46
- //# sourceMappingURL=providerRegistry-ReCd0sFa.js.map
46
+ //# sourceMappingURL=providerRegistry-DLeG-xXn.js.map
@@ -1,4 +1,4 @@
1
- import { a as logger } from "./logger-KD8JjCRJ.js";
1
+ import { a as logger } from "./logger-BjYLHvGm.js";
2
2
  //#region src/providers/providerRegistry.ts
3
3
  /**
4
4
  * Global registry of Python providers for cleanup on process exit.
@@ -42,4 +42,4 @@ const providerRegistry = new ProviderRegistry();
42
42
  //#endregion
43
43
  export { providerRegistry as t };
44
44
 
45
- //# sourceMappingURL=providerRegistry-1gB5vtzQ.js.map
45
+ //# sourceMappingURL=providerRegistry-v8Wa3f9z.js.map