promptfoo 0.121.4 → 0.121.7

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 (497) hide show
  1. package/dist/src/{ListApp-DQkFNqE9.js → ListApp-DLmM02JS.js} +1 -1
  2. package/dist/src/{accounts-DhMYUUbu.js → accounts-Ca7WIoPY.js} +12 -7
  3. package/dist/src/{accounts-F9d_5sMC.js → accounts-CjFnOPmb.js} +14 -9
  4. package/dist/src/{accounts-Dy17bs4D.cjs → accounts-CmWzeD2d.cjs} +16 -10
  5. package/dist/src/{accounts-DdJ2pHMI.js → accounts-DanM1wq_.js} +13 -8
  6. package/dist/src/{agentic-utils-qFlm6zes.js → agentic-utils-CJ0j3fBi.js} +3 -3
  7. package/dist/src/{agentic-utils-w68v6_Dz.js → agentic-utils-DDEGRV9v.js} +3 -3
  8. package/dist/src/{agentic-utils-BpX5b23w.cjs → agentic-utils-DvPWSUpb.cjs} +8 -7
  9. package/dist/src/{agentic-utils-P172hM8B.js → agentic-utils-TxUEMPYS.js} +2 -2
  10. package/dist/src/{agents-BahDpe5G.cjs → agents-B4sRuXg3.cjs} +7 -6
  11. package/dist/src/{agents-pQeBEXMm.js → agents-B8q7h_ek.js} +5 -5
  12. package/dist/src/{agents-CgaMXvLM.js → agents-CBgJvRkB.js} +21 -10
  13. package/dist/src/{agents-C-R_jfzI.js → agents-CYn2n3QP.js} +4 -4
  14. package/dist/src/{agents-8FDnTriG.js → agents-D-vDNFx4.js} +21 -10
  15. package/dist/src/{agents-aYPQLf8W.js → agents-LrHuQqr1.js} +20 -9
  16. package/dist/src/{agents-DJ35I3Nt.js → agents-QGg76OF-.js} +5 -5
  17. package/dist/src/{agents-D7-HGxUj.cjs → agents-eHZ9nlgA.cjs} +21 -10
  18. package/dist/src/{aimlapi-sgYnkE54.js → aimlapi-CJEbQ0o6.js} +7 -7
  19. package/dist/src/{aimlapi-BD6J9oKt.js → aimlapi-D5HXzZ0s.js} +6 -6
  20. package/dist/src/{aimlapi-qcK4OT55.cjs → aimlapi-T6HGNxNe.cjs} +7 -7
  21. package/dist/src/{aimlapi-BCq3MHeL.js → aimlapi-eYv3a_DK.js} +7 -7
  22. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
  23. package/dist/src/app/assets/Report-BNHJKN35.js +1 -0
  24. package/dist/src/app/assets/index-BnT6P6sF.js +388 -0
  25. package/dist/src/app/assets/index-yhM8y1PP.css +1 -0
  26. package/dist/src/app/assets/{scroll-timeline-D9IT_e8Z.js → scroll-timeline-RpeTwOvs.js} +1 -1
  27. package/dist/src/app/assets/sync-5gq6fmG4.js +4 -0
  28. package/dist/src/app/assets/vendor-charts-BL9OMNU7.js +36 -0
  29. package/dist/src/app/assets/{vendor-markdown-Ch00wnNI.js → vendor-markdown-BYsQqn7Z.js} +10 -10
  30. package/dist/src/app/assets/{vendor-react-CVvmk1UB.js → vendor-react-CqWgVW6T.js} +2 -2
  31. package/dist/src/app/assets/{vendor-utils-BnEYbx2Q.js → vendor-utils-BHPO71pu.js} +1 -1
  32. package/dist/src/app/index.html +31 -6
  33. package/dist/src/{audio-COrn8rM6.js → audio-BqnRvcWG.js} +3 -3
  34. package/dist/src/{audio-DcVKoInv.js → audio-CPMtV1yR.js} +4 -4
  35. package/dist/src/{audio-B7izf48x.js → audio-DyiebVB3.js} +4 -4
  36. package/dist/src/{audio-BQtNuYBj.cjs → audio-FnxbEnSE.cjs} +4 -4
  37. package/dist/src/authoritativeMarkupInjection-BZIywVjG.js +74 -0
  38. package/dist/src/authoritativeMarkupInjection-DyAXAsSr.js +75 -0
  39. package/dist/src/authoritativeMarkupInjection-F2gBw0lN.cjs +74 -0
  40. package/dist/src/authoritativeMarkupInjection-QEQmFS83.js +74 -0
  41. package/dist/src/{base-PYJvBE1i.js → base-CKLo890h.js} +4 -3
  42. package/dist/src/{base-fZ9wgg50.js → base-Co80MMCi.js} +5 -4
  43. package/dist/src/{base-D-670DX8.cjs → base-DGJW48uz.cjs} +5 -4
  44. package/dist/src/{base-yrI1Yal4.js → base-E9I8zXjz.js} +5 -4
  45. package/dist/src/bestOfN-B3wNzjSB.js +137 -0
  46. package/dist/src/bestOfN-BBsO41z4.js +136 -0
  47. package/dist/src/bestOfN-CAwmg5UL.cjs +140 -0
  48. package/dist/src/bestOfN-_kTi8Bxe.js +136 -0
  49. package/dist/src/{blobs-D2FAd1Q5.cjs → blobs-B0977K1O.cjs} +7 -6
  50. package/dist/src/{blobs-BCZavS8s.js → blobs-CeFdPn_T.js} +3 -3
  51. package/dist/src/{blobs-BQWqnnvL.js → blobs-DODuTK-a.js} +3 -3
  52. package/dist/src/{blobs-C-F78Kfn.js → blobs-Dwef1Ao1.js} +2 -2
  53. package/dist/src/{cache-BIyPcp5v.cjs → cache-CPGUA4Yl.cjs} +135 -25
  54. package/dist/src/cache-Cf7b4pWE.js +3 -0
  55. package/dist/src/{cache-D5NZmMiT.js → cache-DIXbtkNO.js} +125 -10
  56. package/dist/src/{cache-mb7c8hbp.js → cache-DpPWrkTE.js} +128 -12
  57. package/dist/src/{cache-C4Xb-hNb.js → cache-roFAE0cI.js} +126 -11
  58. package/dist/src/{chat-I9izLm49.js → chat-CUCorGiL.js} +12 -12
  59. package/dist/src/{chat-BPXSW8Bv.cjs → chat-DG1wG4w0.cjs} +6 -6
  60. package/dist/src/{chat-BfPaS15_.js → chat-Dabu84Br.js} +12 -12
  61. package/dist/src/{chat-Dr3DUQ0D.js → chat-DqUFcWI0.js} +12 -12
  62. package/dist/src/{chat-CclRbxGf.cjs → chat-DxTDQ83C.cjs} +14 -13
  63. package/dist/src/{chat-MKxMnZJZ.js → chat-GmlolEwo.js} +4 -4
  64. package/dist/src/{chat-0bwXjVP0.js → chat-TP8Qifkh.js} +6 -6
  65. package/dist/src/{chat-mW0ORo8G.js → chat-iwaM5UTQ.js} +6 -6
  66. package/dist/src/{chatkit-zUIVoDos.js → chatkit-B6DWi70Q.js} +4 -4
  67. package/dist/src/{chatkit-BoWoSgXl.cjs → chatkit-BYveR48_.cjs} +6 -5
  68. package/dist/src/{chatkit-Cv6AhukM.js → chatkit-fARZwEfV.js} +3 -3
  69. package/dist/src/{chatkit-CJnHRRMM.js → chatkit-lb6FK02w.js} +4 -4
  70. package/dist/src/{claude-agent-sdk-Dtq_L-Sc.js → claude-agent-sdk-BQNp_y-F.js} +212 -67
  71. package/dist/src/{claude-agent-sdk-BQNuLaAK.js → claude-agent-sdk-D5Jl0SDh.js} +212 -67
  72. package/dist/src/{claude-agent-sdk-CPJo3dBQ.cjs → claude-agent-sdk-DH416NBD.cjs} +218 -72
  73. package/dist/src/{claude-agent-sdk-nfAIcxNf.js → claude-agent-sdk-x1XJ1-pU.js} +212 -67
  74. package/dist/src/{cloud-DQZ5sVjW.js → cloud-D3DiFqH6.js} +3 -3
  75. package/dist/src/cloud-p96PA4MH.js +3 -0
  76. package/dist/src/{cloudflare-ai-BIB567w6.js → cloudflare-ai-B6NVI3ax.js} +4 -4
  77. package/dist/src/{cloudflare-ai-Dl3N9OVD.cjs → cloudflare-ai-CEAW-xQa.cjs} +6 -6
  78. package/dist/src/{cloudflare-ai-DlKr0rY7.js → cloudflare-ai-RFSojyXG.js} +6 -6
  79. package/dist/src/{cloudflare-ai-DGLte7Py.js → cloudflare-ai-r4tbYmWU.js} +6 -6
  80. package/dist/src/{cloudflare-gateway-CiIZHU0Q.js → cloudflare-gateway-BCkLouto.js} +5 -5
  81. package/dist/src/{cloudflare-gateway-DI1HNP5F.js → cloudflare-gateway-BaZ4insB.js} +3 -3
  82. package/dist/src/{cloudflare-gateway-BDZrYydE.js → cloudflare-gateway-CF-Vb-2Z.js} +5 -5
  83. package/dist/src/{cloudflare-gateway-BYDp495F.cjs → cloudflare-gateway-TJMLBj6I.cjs} +5 -5
  84. package/dist/src/codex-app-server-B8KHEiF4.js +1915 -0
  85. package/dist/src/codex-app-server-CnrLBCeA.cjs +1921 -0
  86. package/dist/src/codex-app-server-DIXZ230V.js +1915 -0
  87. package/dist/src/codex-app-server-Dd22dC_N.js +1916 -0
  88. package/dist/src/{codex-sdk-CpqiOqDO.js → codex-sdk-B6Wah8Pa.js} +6 -6
  89. package/dist/src/codex-sdk-BGjVAk23.js +3 -0
  90. package/dist/src/{codex-sdk-C2_M2pl_.cjs → codex-sdk-CFF6gUyi.cjs} +18 -10
  91. package/dist/src/{codex-sdk-Rtky3M4I.js → codex-sdk-CmQABzV3.js} +6 -6
  92. package/dist/src/{codex-sdk-CErXn7qh.js → codex-sdk-D2d54RL8.js} +5 -5
  93. package/dist/src/{cometapi-CtJ-mS8R.js → cometapi-Bu9B8NUY.js} +8 -8
  94. package/dist/src/{cometapi-DT-jlVCB.js → cometapi-CtzNCHKu.js} +7 -7
  95. package/dist/src/{cometapi-UVOryo4W.cjs → cometapi-DHCDlQUI.cjs} +8 -8
  96. package/dist/src/{cometapi-BUlt_ELa.js → cometapi-OBILPLlu.js} +8 -8
  97. package/dist/src/{completion-HUe8wDhZ.js → completion-CO2e1_62.js} +6 -6
  98. package/dist/src/{completion-BozdoXba.cjs → completion-CSYfl2cd.cjs} +6 -6
  99. package/dist/src/{completion-x0a_c2y1.js → completion-DZNxcyfG.js} +6 -6
  100. package/dist/src/{completion-Dnxn7E-j.js → completion-sNvCLTAP.js} +5 -5
  101. package/dist/src/constants-BjJV0cRr.js +6 -0
  102. package/dist/src/constants-DH5XYLKZ.js +7 -0
  103. package/dist/src/constants-DZGEFLsu.js +6 -0
  104. package/dist/src/constants-a2kYssQk.cjs +11 -0
  105. package/dist/src/{createHash-4gFQpDDv.js → createHash-BtbSX3mj.js} +1 -1
  106. package/dist/src/{createHash-CwDVU5xr.js → createHash-CGVzWdjj.js} +1 -1
  107. package/dist/src/{createHash-B7KvgoOD.cjs → createHash-CSiqnK5P.cjs} +2 -2
  108. package/dist/src/{createHash-ChI45QR1.js → createHash-CgRvs4Fn.js} +1 -1
  109. package/dist/src/crescendo-BXEJK_bi.cjs +704 -0
  110. package/dist/src/crescendo-CU_Y2i-m.js +702 -0
  111. package/dist/src/crescendo-J1Xx4_zb.js +703 -0
  112. package/dist/src/crescendo-QiaSLW0d.js +701 -0
  113. package/dist/src/custom-BJfP00Bh.js +619 -0
  114. package/dist/src/custom-CZVn-1-r.js +620 -0
  115. package/dist/src/custom-Cqia7M0D.cjs +621 -0
  116. package/dist/src/custom-notggYVl.js +618 -0
  117. package/dist/src/{docker-DCgsveLD.js → docker-4D1eL6Gq.js} +6 -6
  118. package/dist/src/{docker-ClnmCf1Z.js → docker-BBv1WUDu.js} +5 -5
  119. package/dist/src/{docker-DS4_Osau.cjs → docker-D06JUoe2.cjs} +6 -6
  120. package/dist/src/{docker-CQmlA2NU.js → docker-DdJQBxK9.js} +6 -6
  121. package/dist/src/{embedding-D3xTseo7.js → embedding--UZVe4_7.js} +6 -6
  122. package/dist/src/{embedding-I45KG3o7.cjs → embedding-BbrwopfX.cjs} +6 -6
  123. package/dist/src/{embedding-nFbumxcv.js → embedding-Bi3rxrZF.js} +5 -5
  124. package/dist/src/{embedding-DD9wa3ae.js → embedding-C251p1-8.js} +6 -6
  125. package/dist/src/{errors-Cw810C93.js → errors-9PcUL8BC.js} +1 -1
  126. package/dist/src/{esm-Dh4dOLlt.js → esm-B6whoAcf.js} +2 -2
  127. package/dist/src/{esm-CtEPLdAj.cjs → esm-BIKakvNa.cjs} +8 -7
  128. package/dist/src/{esm-C7PnfdF8.js → esm-BTK1W7lG.js} +1 -1
  129. package/dist/src/{esm-tVgYPY-f.js → esm-Bexx2PFc.js} +2 -2
  130. package/dist/src/{eval-u4UVafl6.js → eval-0VRANImH.js} +21 -21
  131. package/dist/src/{eval-CzJFfFO9.js → eval-DscR5iOM.js} +1 -1
  132. package/dist/src/{evalResult-Bgm9ZH31.js → evalResult-2RRJvFyB.js} +41 -16
  133. package/dist/src/{evalResult-KZqXl4XP.cjs → evalResult-CvtS8h8u.cjs} +51 -15
  134. package/dist/src/evalResult-DqzsS6_W.js +3 -0
  135. package/dist/src/{evalResult-D3hVYFis.js → evalResult-eUkJv9Ko.js} +40 -15
  136. package/dist/src/evaluator-DNdJF1Gv.js +3 -0
  137. package/dist/src/{evaluator-IvuDYSvQ.js → evaluator-DRoiYB2q.js} +1060 -187
  138. package/dist/src/evaluatorHelpers-BsYP_muT.js +511 -0
  139. package/dist/src/evaluatorHelpers-CRqTvSux.cjs +537 -0
  140. package/dist/src/evaluatorHelpers-DuqFFfq7.js +510 -0
  141. package/dist/src/{extractor-CAfTSraf.js → extractor-BR7XAzAL.js} +6 -6
  142. package/dist/src/{extractor-WVPOrH43.cjs → extractor-BdxEtt3J.cjs} +6 -6
  143. package/dist/src/{extractor-DNSeBVOJ.js → extractor-CIW3iN-b.js} +6 -6
  144. package/dist/src/{extractor-Dk6bRWkv.js → extractor-CxRtnaHl.js} +5 -5
  145. package/dist/src/{fetch-B0Z3Oe4k.js → fetch-BufrQtvR.js} +93 -40
  146. package/dist/src/{fetch-BEWnXrrG.js → fetch-DXUnXkVU.js} +89 -40
  147. package/dist/src/{fetch-CJU5ELPa.cjs → fetch-Dw4XZHjj.cjs} +330 -270
  148. package/dist/src/{fetch-Di00EQrc.js → fetch-It34O8Ur.js} +305 -252
  149. package/dist/src/fetch-_YgGd2qv.js +3 -0
  150. package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
  151. package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-CXRfY3Ss.js} +12 -2
  152. package/dist/src/{fileExtensions-AWa2ZML4.js → fileExtensions-D4GCJ67J.js} +12 -2
  153. package/dist/src/{formatDuration-DZzPsexs.js → formatDuration-CMVNrYvE.js} +1 -1
  154. package/dist/src/{genaiTracer-yRuxj9-L.cjs → genaiTracer-14nugQQx.cjs} +14 -2
  155. package/dist/src/{genaiTracer-DWdZ28hY.js → genaiTracer-BPVvltoW.js} +2 -2
  156. package/dist/src/{genaiTracer-XnrcgDCe.js → genaiTracer-D18lYzhB.js} +2 -2
  157. package/dist/src/{genaiTracer-COYDi-tC.js → genaiTracer-jJKYsnjc.js} +2 -2
  158. package/dist/src/goat-Ckd3q3AY.js +467 -0
  159. package/dist/src/goat-Qgurm-NP.js +466 -0
  160. package/dist/src/goat-ghadEDdy.js +465 -0
  161. package/dist/src/goat-una6pZGP.cjs +469 -0
  162. package/dist/src/graders-BDT7dif6.js +3 -0
  163. package/dist/src/{graders-eIHhRqoC.js → graders-BGP99PdK.js} +2416 -2224
  164. package/dist/src/{graders-Zy3x0zqX.js → graders-BX0f2tvS.js} +2423 -2226
  165. package/dist/src/{graders-pvbReLLn.js → graders-C0nXU_ZP.js} +1806 -1609
  166. package/dist/src/{graders--zknU_uk.cjs → graders-ClrU2fnd.cjs} +2219 -1949
  167. package/dist/src/hydra-BSNZZm2M.js +543 -0
  168. package/dist/src/hydra-BxdG4nkg.js +541 -0
  169. package/dist/src/hydra-DE4xWwyc.js +542 -0
  170. package/dist/src/hydra-DrJttnvw.cjs +542 -0
  171. package/dist/src/image-B4oBtu6J.js +443 -0
  172. package/dist/src/{image-dnoUgPrC.js → image-BN-hjLL9.js} +4 -4
  173. package/dist/src/{image-9302QVqR.js → image-B_fPIwdg.js} +3 -3
  174. package/dist/src/image-BvUAW344.js +442 -0
  175. package/dist/src/image-Cvjwx1uY.js +442 -0
  176. package/dist/src/{image-De2FBmYV.cjs → image-DfVCGPbI.cjs} +4 -4
  177. package/dist/src/{image-u7-rKnYU.js → image-QzmydkiG.js} +4 -4
  178. package/dist/src/image-X0oY4350.cjs +465 -0
  179. package/dist/src/index.cjs +1689 -558
  180. package/dist/src/index.d.cts +3270 -1624
  181. package/dist/src/index.d.ts +3270 -1624
  182. package/dist/src/index.js +1553 -438
  183. package/dist/src/indirectWebPwn-02ZIghCS.js +259 -0
  184. package/dist/src/indirectWebPwn-BJ22AbQa.cjs +397 -0
  185. package/dist/src/indirectWebPwn-CbjUG0rh.js +385 -0
  186. package/dist/src/indirectWebPwn-CfQJt3gk.cjs +260 -0
  187. package/dist/src/indirectWebPwn-DBQhOjoD.js +260 -0
  188. package/dist/src/indirectWebPwn-OsXnKejv.js +259 -0
  189. package/dist/src/indirectWebPwn-tNx9OZ35.js +385 -0
  190. package/dist/src/indirectWebPwn-uyWdHx04.js +386 -0
  191. package/dist/src/inputVariables-B0qUChbV.js +467 -0
  192. package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
  193. package/dist/src/inputVariables-DXFdi7AI.js +468 -0
  194. package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
  195. package/dist/src/{interactiveCheck-CLERUB0c.js → interactiveCheck-C4QlIuoR.js} +2 -2
  196. package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
  197. package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
  198. package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
  199. package/dist/src/iterative-CpU6i2As.js +490 -0
  200. package/dist/src/iterative-DJQEQpG3.js +491 -0
  201. package/dist/src/iterative-DQBuWM-j.cjs +493 -0
  202. package/dist/src/iterative-FTS4Bz67.js +492 -0
  203. package/dist/src/iterativeImage-BUABMVOA.js +413 -0
  204. package/dist/src/iterativeImage-ByFWkxax.cjs +415 -0
  205. package/dist/src/iterativeImage-BzUapOUi.js +414 -0
  206. package/dist/src/iterativeImage-Doz8mgxF.js +413 -0
  207. package/dist/src/iterativeMeta-B3YiAOc8.js +386 -0
  208. package/dist/src/iterativeMeta-C7APE_P1.js +385 -0
  209. package/dist/src/iterativeMeta-CSS8M6Ds.cjs +385 -0
  210. package/dist/src/iterativeMeta-DgoQ7bLh.js +384 -0
  211. package/dist/src/iterativeTree-B5zxBBSW.js +769 -0
  212. package/dist/src/iterativeTree-CNyIk0Yn.js +768 -0
  213. package/dist/src/iterativeTree-CPMF10ve.cjs +771 -0
  214. package/dist/src/iterativeTree-DvZ7GBwt.js +770 -0
  215. package/dist/src/{knowledgeBase-Dgc7CBWF.js → knowledgeBase-BadkINlJ.js} +24 -10
  216. package/dist/src/{knowledgeBase-RhFPGWDc.js → knowledgeBase-Bi_8sV-H.js} +25 -11
  217. package/dist/src/{knowledgeBase-lm9RXSAm.js → knowledgeBase-CkMljjdg.js} +25 -11
  218. package/dist/src/{knowledgeBase-Bpoe_nLu.cjs → knowledgeBase-DUh34xba.cjs} +25 -11
  219. package/dist/src/{litellm-DRjpcSa7.js → litellm-BKBo0jpC.js} +5 -5
  220. package/dist/src/{litellm-C2kqjxqp.js → litellm-BXyn5kZK.js} +5 -5
  221. package/dist/src/{litellm-p37R1dzQ.js → litellm-CNcfbCfa.js} +4 -4
  222. package/dist/src/{litellm-CoyI4IAl.cjs → litellm-CtAr7bKG.cjs} +5 -5
  223. package/dist/src/{logger-DksKw1Qc.js → logger-BbY6ypFL.js} +2 -2
  224. package/dist/src/{logger-B88EkIn6.js → logger-KD8JjCRJ.js} +2 -2
  225. package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
  226. package/dist/src/{luma-ray-KgTCXrZC.js → luma-ray-BMX1iEB6.js} +5 -5
  227. package/dist/src/{luma-ray-B863CmuZ.js → luma-ray-CR5TSpp4.js} +5 -5
  228. package/dist/src/{luma-ray-BxVKaW2a.cjs → luma-ray-D3FUc2K3.cjs} +9 -8
  229. package/dist/src/{luma-ray-BTTLtqQ8.js → luma-ray-OEMmS1RB.js} +6 -6
  230. package/dist/src/main.js +909 -369
  231. package/dist/src/memoryPoisoning-CM83NWYl.js +107 -0
  232. package/dist/src/memoryPoisoning-D8h9gXJF.js +106 -0
  233. package/dist/src/memoryPoisoning-Dp-btinn.cjs +106 -0
  234. package/dist/src/memoryPoisoning-cLuCoTuJ.js +106 -0
  235. package/dist/src/{messages-BTQz42fn.js → messages-BabO-cX8.js} +273 -17
  236. package/dist/src/{messages-811uVVW5.cjs → messages-DBPir0TQ.cjs} +278 -18
  237. package/dist/src/{messages-zWbkLLHz.js → messages-DGUlSNU7.js} +273 -17
  238. package/dist/src/{messages-MYTQ2TWp.js → messages-vsE_-Lv0.js} +273 -17
  239. package/dist/src/{meteor-DHdzY1Ss.js → meteor--TZYICTI.js} +2 -2
  240. package/dist/src/{meteor-Co1VQ1u5.cjs → meteor-CR226f7Z.cjs} +2 -2
  241. package/dist/src/{meteor-CU5UAE-H.js → meteor-Cl_yd7rJ.js} +2 -2
  242. package/dist/src/{meteor-DuAFv6gF.js → meteor-Dce-_zGQ.js} +1 -1
  243. package/dist/src/mischievousUser-0l8GD7Dp.js +46 -0
  244. package/dist/src/mischievousUser-BUOP9W5r.js +46 -0
  245. package/dist/src/mischievousUser-frFYKxu6.js +47 -0
  246. package/dist/src/mischievousUser-olGgHIVR.cjs +46 -0
  247. package/dist/src/{modelslab-Dk1JAtVo.cjs → modelslab-CNV5bMSk.cjs} +7 -7
  248. package/dist/src/{modelslab-D0erNWKe.js → modelslab-Cogmu4mG.js} +6 -6
  249. package/dist/src/{modelslab-DIq-6y7x.js → modelslab-Dzst7VTU.js} +6 -6
  250. package/dist/src/{modelslab-wu9yi5GE.js → modelslab-EyDczZ5A.js} +7 -7
  251. package/dist/src/{nova-reel-CCFRfeRb.js → nova-reel-BGPNBOMS.js} +6 -6
  252. package/dist/src/{nova-reel-DQrm74ng.js → nova-reel-B_5NKFu1.js} +5 -5
  253. package/dist/src/{nova-reel-gr11WG7f.js → nova-reel-C4eUJGse.js} +5 -5
  254. package/dist/src/{nova-reel-CrLXVKQf.cjs → nova-reel-CjJRxI1X.cjs} +9 -8
  255. package/dist/src/{nova-sonic-BYdp-QLs.js → nova-sonic-BNGmgfFz.js} +4 -4
  256. package/dist/src/{nova-sonic-TDgrlTk7.js → nova-sonic-ChPlh5na.js} +4 -4
  257. package/dist/src/{nova-sonic-B_ZXcUJB.js → nova-sonic-CrV0iaY_.js} +3 -3
  258. package/dist/src/{nova-sonic-i5tUvXKn.cjs → nova-sonic-DuOG9Aun.cjs} +5 -4
  259. package/dist/src/{openai-DhVEmgeZ.js → openai-BMHD2Huo.js} +2 -2
  260. package/dist/src/{openai-URNyItar.cjs → openai-C3uXv8wS.cjs} +2 -2
  261. package/dist/src/{openai-Qsvz25mV.js → openai-CJrsh9n4.js} +2 -2
  262. package/dist/src/{openai-iYtrXzOX.js → openai-zgwBb4Ff.js} +1 -1
  263. package/dist/src/{openclaw-CnQ363Wi.js → openclaw-BIHlu_36.js} +10 -8
  264. package/dist/src/{openclaw-CwzlQSQX.js → openclaw-CF7fMido.js} +9 -7
  265. package/dist/src/{openclaw-wX9rtfke.cjs → openclaw-Dphc01BY.cjs} +18 -15
  266. package/dist/src/{openclaw-CLWrW03k.js → openclaw-zIJAsz3P.js} +10 -8
  267. package/dist/src/{opencode-sdk-BUu5Nevv.js → opencode-sdk-B3vlPLsp.js} +40 -5
  268. package/dist/src/{opencode-sdk-BxD8vXp_.js → opencode-sdk-D05JSgMQ.js} +40 -5
  269. package/dist/src/{opencode-sdk-BZ2idgYA.cjs → opencode-sdk-DoY6GbWw.cjs} +46 -10
  270. package/dist/src/{opencode-sdk-GI2KaAXq.js → opencode-sdk-sRKYHGoI.js} +39 -4
  271. package/dist/src/{otlpReceiver-BntK801g.js → otlpReceiver--gTpSagc.js} +120 -4
  272. package/dist/src/{otlpReceiver-DmVulbhC.js → otlpReceiver-B2eaKC8C.js} +120 -4
  273. package/dist/src/{otlpReceiver-B2z58l4e.js → otlpReceiver-BXjcRqAM.js} +119 -3
  274. package/dist/src/{otlpReceiver-BfcVq2Nq.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
  275. package/dist/src/packageParser--MWTSrPW.js +36 -0
  276. package/dist/src/packageParser-CgE-ziRo.js +35 -0
  277. package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
  278. package/dist/src/packageParser-hwwSGnAZ.js +35 -0
  279. package/dist/src/processShim-BBxt7LKO.js +95 -0
  280. package/dist/src/processShim-BcGzU8fY.js +94 -0
  281. package/dist/src/processShim-C_z3aRvF.js +94 -0
  282. package/dist/src/processShim-DSY9BV2T.cjs +98 -0
  283. package/dist/src/promptLength-0qIHyhA5.js +71 -0
  284. package/dist/src/promptLength-4X-Wd8PG.js +72 -0
  285. package/dist/src/promptLength-B9nZEfO6.js +71 -0
  286. package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
  287. package/dist/src/promptfoo-BDrfT30-.js +180 -0
  288. package/dist/src/promptfoo-Cm4hiy1Y.js +180 -0
  289. package/dist/src/promptfoo-Rjp-MeBb.js +181 -0
  290. package/dist/src/promptfoo-b-baRMj-.cjs +205 -0
  291. package/dist/src/prompts-BYMtqPCw.js +259 -0
  292. package/dist/src/prompts-C-bqE1Yp.js +260 -0
  293. package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
  294. package/dist/src/prompts-DHhQsANy.js +259 -0
  295. package/dist/src/prompts-D_QpZ2Dm.js +271 -0
  296. package/dist/src/prompts-hNvWBD3z.cjs +284 -0
  297. package/dist/src/prompts-huDVH2CI.js +270 -0
  298. package/dist/src/prompts-p78Hul5i.cjs +289 -0
  299. package/dist/src/{providerRegistry-CPQ_CmVO.js → providerRegistry-1gB5vtzQ.js} +2 -2
  300. package/dist/src/{providerRegistry-CQMdTmHP.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
  301. package/dist/src/{providerRegistry-Bvh8mv85.js → providerRegistry-DHcFiVWX.js} +1 -1
  302. package/dist/src/{providerRegistry-CWoPjKFZ.js → providerRegistry-ReCd0sFa.js} +2 -2
  303. package/dist/src/{providers-BV_KMZje.js → providers-B9KzWxAX.js} +10558 -21587
  304. package/dist/src/{providers-DruaQfwu.js → providers-BCCz6_IX.js} +1228 -12196
  305. package/dist/src/{providers-1eKkXBKp.cjs → providers-BDVVIQM6.cjs} +10649 -21843
  306. package/dist/src/{providers-iUt5fbAN.js → providers-BYAn82cf.js} +1 -1
  307. package/dist/src/{providers-Domz_llv.js → providers-DVYRZP4E.js} +10589 -21570
  308. package/dist/src/{pythonUtils-Cldx7huE.js → pythonUtils-CLCgQ9tt.js} +3 -3
  309. package/dist/src/{pythonUtils-CnndUbW-.js → pythonUtils-CgYxeSmO.js} +3 -3
  310. package/dist/src/{pythonUtils-tAJvvpS-.cjs → pythonUtils-Cokhluq3.cjs} +8 -7
  311. package/dist/src/{pythonUtils-C2UQ30Rz.js → pythonUtils-D0BYebvX.js} +3 -3
  312. package/dist/src/{quiverai-DFotyafY.cjs → quiverai-BAp6iTZD.cjs} +4 -4
  313. package/dist/src/{quiverai-aPPvXOgn.js → quiverai-BvIhI_0l.js} +4 -4
  314. package/dist/src/{quiverai-DR0SnIQV.js → quiverai-CdTWPe-A.js} +3 -3
  315. package/dist/src/{quiverai-CtWi6x_g.js → quiverai-Cv7rJKDz.js} +4 -4
  316. package/dist/src/registry-BUJrgjwv.js +124 -0
  317. package/dist/src/registry-DXm1t_x0.js +125 -0
  318. package/dist/src/registry-Dp5EqoXc.js +124 -0
  319. package/dist/src/registry-KCVF1CFC.cjs +124 -0
  320. package/dist/src/{server-D6Il2Sob.js → remoteGeneration-B1_XsKXU.js} +16 -108
  321. package/dist/src/{server-BSB45Nt9.js → remoteGeneration-COpWcmWd.js} +15 -146
  322. package/dist/src/{server-Dx2TyCH2.cjs → remoteGeneration-DS9N3pgB.cjs} +30 -119
  323. package/dist/src/remoteGeneration-DsaSwmG2.js +217 -0
  324. package/dist/src/render-BNTrbmBw.cjs +384 -0
  325. package/dist/src/render-CSP99NLm.js +348 -0
  326. package/dist/src/render-DFfDeYUK.js +347 -0
  327. package/dist/src/{render-CgVDrJmM.js → render-DznWrxGO.js} +2 -2
  328. package/dist/src/render-_6ur1fhE.js +347 -0
  329. package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
  330. package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
  331. package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
  332. package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
  333. package/dist/src/{responses-Bi9vBuW_.cjs → responses-1UFFF9N_.cjs} +51 -16
  334. package/dist/src/{responses-DL9m8CyY.js → responses-B3W2JvOQ.js} +49 -15
  335. package/dist/src/{responses--OsX2aYW.js → responses-B6ktc3Ra.js} +49 -15
  336. package/dist/src/{responses-C-flexAY.js → responses-URRzV8qE.js} +49 -15
  337. package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
  338. package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
  339. package/dist/src/{rubyUtils-DsGrTx8R.js → rubyUtils-CXlFM2rR.js} +3 -3
  340. package/dist/src/{rubyUtils-DVLeA2jg.js → rubyUtils-CnlW8AYb.js} +3 -3
  341. package/dist/src/{rubyUtils-B6eljPuh.cjs → rubyUtils-CqUWBZAt.cjs} +18 -27
  342. package/dist/src/{rubyUtils-CYSQEG4a.js → rubyUtils-DdGojpfv.js} +3 -3
  343. package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
  344. package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
  345. package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
  346. package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
  347. package/dist/src/{sagemaker-BVkaG2-l.js → sagemaker-CujrzP1a.js} +62 -51
  348. package/dist/src/{sagemaker-XnfhheQv.cjs → sagemaker-DzffAqo_.cjs} +65 -53
  349. package/dist/src/{sagemaker-D67yzMzs.js → sagemaker-vhtSV7JI.js} +62 -51
  350. package/dist/src/{sagemaker-BveBvuxm.js → sagemaker-yr1QKeBs.js} +61 -50
  351. package/dist/src/{scanner-1DqWi1Ej.js → scanner-DS0109SS.js} +7 -7
  352. package/dist/src/server/index.js +5105 -605
  353. package/dist/src/server-B8rqV126.cjs +126 -0
  354. package/dist/src/server-BaLytskk.js +3 -0
  355. package/dist/src/server-CMJD10J4.js +107 -0
  356. package/dist/src/server-Ddp8GNMp.js +146 -0
  357. package/dist/src/server-DhMHosWj.js +182 -0
  358. package/dist/src/shared-7pmVZLNO.js +1334 -0
  359. package/dist/src/shared-9WHQ1oNE.js +1335 -0
  360. package/dist/src/{fileExtensions-BArZuxsI.js → shared-BoG7qLMv.js} +12 -2
  361. package/dist/src/shared-D6IjElRI.js +1334 -0
  362. package/dist/src/shared-WkgnDkcg.cjs +1436 -0
  363. package/dist/src/{signal-CE5G3a7x.js → signal-CSurUUyV.js} +3 -3
  364. package/dist/src/simulatedUser-C9aQObBI.js +222 -0
  365. package/dist/src/simulatedUser-Cu601Dd4.cjs +227 -0
  366. package/dist/src/simulatedUser-U_qAHnuB.js +222 -0
  367. package/dist/src/simulatedUser-p3tACcmw.js +223 -0
  368. package/dist/src/{slack-DDUe-5MC.js → slack-Bapo-7_8.js} +2 -2
  369. package/dist/src/{slack-1Rhq0EoV.cjs → slack-DMC1QVEg.cjs} +3 -2
  370. package/dist/src/{slack-D5Wpy8LM.js → slack-DTEFhrMn.js} +2 -2
  371. package/dist/src/{slack-acRb0IqQ.js → slack-k-_CP84Q.js} +1 -1
  372. package/dist/src/storage-BU4qcnOb.js +875 -0
  373. package/dist/src/storage-CA-v9V2v.cjs +911 -0
  374. package/dist/src/storage-CD-GWAdx.js +822 -0
  375. package/dist/src/storage-QdU-SmvD.js +834 -0
  376. package/dist/src/{store-DAAyxcy6.cjs → store-B2NDDooM.cjs} +60 -24
  377. package/dist/src/{store-CYEy5J2D.js → store-DKd5592Q.js} +51 -20
  378. package/dist/src/{store-M0b1WfYb.js → store-HpopRVzl.js} +50 -19
  379. package/dist/src/store-IbiRIF3k.js +3 -0
  380. package/dist/src/strategies-7CS3Alao.cjs +2360 -0
  381. package/dist/src/strategies-CiSeroPH.js +2331 -0
  382. package/dist/src/strategies-DRJjGTIY.js +2333 -0
  383. package/dist/src/{tables-DQ4WU5tX.js → tables-CRSXQ2Ke.js} +2 -2
  384. package/dist/src/{tables-CsWou1Bx.js → tables-CxjU7bBd.js} +3 -3
  385. package/dist/src/{tables-DUfh1F7Z.cjs → tables-DBIJU0WE.cjs} +6 -5
  386. package/dist/src/{tables-C4CH3zRr.js → tables-DafUHOeh.js} +3 -3
  387. package/dist/src/{telemetry-CQPez_Jp.js → telemetry-00ezXr_t.js} +5 -4
  388. package/dist/src/telemetry-ByPqDcKC.js +3 -0
  389. package/dist/src/{telemetry-Dsw_faFj.cjs → telemetry-CJ7FnCsc.cjs} +18 -11
  390. package/dist/src/{telemetry-dbaJ0E98.js → telemetry-DmXYcJNV.js} +5 -4
  391. package/dist/src/{telemetry-Dvqxv3YC.js → telemetry-DwX9XUN5.js} +4 -3
  392. package/dist/src/{text-KvuD2Iko.js → text-Db-Wt2u2.js} +1 -1
  393. package/dist/src/{text-DHxdyQqT.js → text-DwYK5EBn.js} +1 -1
  394. package/dist/src/{text-BVi-cLPJ.cjs → text-nywWsRBM.cjs} +1 -1
  395. package/dist/src/{tokenUsageUtils-C-bmyHoE.js → tokenUsageUtils-BjVkdk18.js} +1 -1
  396. package/dist/src/{tokenUsageUtils-CXrvO-wA.js → tokenUsageUtils-CDet74yk.js} +1 -1
  397. package/dist/src/tokenUsageUtils-CmnQ0G2m.js +142 -0
  398. package/dist/src/{tokenUsageUtils-Bb7DkZPz.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
  399. package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
  400. package/dist/src/toolAttributes-COVgDrBG.js +87 -0
  401. package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
  402. package/dist/src/tracingOptions-BnwKCkSB.js +221 -0
  403. package/dist/src/tracingOptions-Chi74lOD.js +219 -0
  404. package/dist/src/tracingOptions-DrbSFaKy.cjs +249 -0
  405. package/dist/src/tracingOptions-ji2OuXbT.js +220 -0
  406. package/dist/src/{transcription-DuWDupG7.js → transcription-B8uIgCYX.js} +5 -5
  407. package/dist/src/{transcription-CJspiD2c.js → transcription-CfU5loSq.js} +6 -6
  408. package/dist/src/{transcription-V2HaAmy2.js → transcription-Dkd22_4K.js} +6 -6
  409. package/dist/src/{transcription-BvjmiYB1.cjs → transcription-mzuf18Mq.cjs} +9 -8
  410. package/dist/src/{transform-lQrDE1BQ.js → transform-BIMynQsA.js} +9 -9
  411. package/dist/src/transform-BnSTnFlp.js +187 -0
  412. package/dist/src/transform-BnSXWmU_2.cjs +221 -0
  413. package/dist/src/transform-CGt7Kt3y2.js +186 -0
  414. package/dist/src/transform-CrPGTsij.js +186 -0
  415. package/dist/src/{transform-CTeuTR3S.cjs → transform-DhNkAUs8.cjs} +13 -12
  416. package/dist/src/{transform-CG0ehZNG.js → transform-DmvYBRll.js} +9 -9
  417. package/dist/src/{transform-zDhMmzwX.js → transform-EtD4jAWi.js} +9 -9
  418. package/dist/src/{transformersAvailability-CcHusyhw.js → transformersAvailability-0ThtPved.js} +1 -1
  419. package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
  420. package/dist/src/{transformersAvailability-DLlROWhg.js → transformersAvailability-BvyU9vDD.js} +1 -1
  421. package/dist/src/{transformersAvailability-Cju9mHgR.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
  422. package/dist/src/{types-Dm9JM6Vb.js → types-BFevViUY.js} +115 -19
  423. package/dist/src/{types-Bgh5SOn6.js → types-BJQBBPTP.js} +115 -19
  424. package/dist/src/{types-CeaeaZdP.cjs → types-CxJvaY2S.cjs} +357 -172
  425. package/dist/src/{types-BGQDAP8i.js → types-D6glLbdF.js} +271 -170
  426. package/dist/src/{util-BYvQUPp7.js → util--WMgw7wM.js} +28 -8
  427. package/dist/src/{util-C9J8ahRn.js → util-5WnCSb0h.js} +72 -48
  428. package/dist/src/{util-CN3SrLT4.cjs → util-BSIuSLVK.cjs} +74 -49
  429. package/dist/src/{util-C8e5uydV.js → util-Bx677_k2.js} +154 -147
  430. package/dist/src/util-CN8om2rz.cjs +386 -0
  431. package/dist/src/{util-DDs-7g6-.js → util-CoQWM76y.js} +28 -8
  432. package/dist/src/util-DNl96nNs.js +327 -0
  433. package/dist/src/{util-DxWpWjhc.js → util-DURocbYR.js} +667 -507
  434. package/dist/src/util-Df8YMvS1.js +327 -0
  435. package/dist/src/{util-DvU2Pw8c.js → util-DiQ3QvBB.js} +28 -8
  436. package/dist/src/{util-oGMLA7vc.js → util-I-Rf-KaD.js} +862 -577
  437. package/dist/src/{util-olYL5C6N.cjs → util-IYzs5Y04.cjs} +33 -7
  438. package/dist/src/{util-D9TisOyk.js → util-LKTmNsMQ.js} +71 -47
  439. package/dist/src/{util-Bxn8emtE.cjs → util-SPsvFONY.cjs} +738 -582
  440. package/dist/src/{util-D3q0WQ-0.js → util-efByNxcr.js} +72 -48
  441. package/dist/src/util-kDURhgJW.js +328 -0
  442. package/dist/src/{utils-DJfvjyMj.js → utils-B0lzitHZ.js} +3 -3
  443. package/dist/src/{utils-BLJKfv0y.js → utils-BFOh20Gb.js} +3 -3
  444. package/dist/src/{utils-hXtCYanr.js → utils-BGY69tk_.js} +2 -2
  445. package/dist/src/{utils-B05gLxER.cjs → utils-Ve6kuJsa.cjs} +3 -3
  446. package/dist/src/version-BK20a4sw.js +16 -0
  447. package/dist/src/version-BWCSaByA.cjs +27 -0
  448. package/dist/src/version-eRkNuGv8.js +17 -0
  449. package/dist/src/version-lpHV_53E.js +16 -0
  450. package/dist/tsconfig.tsbuildinfo +1 -1
  451. package/package.json +56 -28
  452. package/dist/src/app/assets/Report-CQYFezYu.js +0 -1
  453. package/dist/src/app/assets/index-BXGkeMwh.css +0 -1
  454. package/dist/src/app/assets/index-BzJt18Jz.js +0 -385
  455. package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
  456. package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
  457. package/dist/src/cache-Cr9oLMUa.js +0 -3
  458. package/dist/src/cache-DbLsVWB2.cjs +0 -3
  459. package/dist/src/cloud-Hphvo8kr.js +0 -3
  460. package/dist/src/codex-sdk-BAmYE7qy.js +0 -3
  461. package/dist/src/codex-sdk-CWEnH70W.cjs +0 -2
  462. package/dist/src/evalResult-D8MT9p0s.js +0 -3
  463. package/dist/src/evalResult-DElBuddX.js +0 -2
  464. package/dist/src/evalResult-Dvc-iucu.cjs +0 -2
  465. package/dist/src/evaluator-CVessDWe.js +0 -3
  466. package/dist/src/fetch-C7bGKDlQ.js +0 -3
  467. package/dist/src/graders-BOAzQEUe.cjs +0 -2
  468. package/dist/src/graders-D4BTsZdG2.js +0 -3
  469. package/dist/src/graders-DOJK1XpV.js +0 -2
  470. package/dist/src/graders-NAv9LcBn.js +0 -2
  471. package/dist/src/image-B5Mv-Z3h.js +0 -257
  472. package/dist/src/image-DVz2RiMF.js +0 -258
  473. package/dist/src/image-qUpPvmNZ.js +0 -257
  474. package/dist/src/image-x6KqLQl4.cjs +0 -280
  475. package/dist/src/providers-Bp4S-FvO.js +0 -2
  476. package/dist/src/providers-DV3ax9e_.cjs +0 -3
  477. package/dist/src/providers-u9Enmfok.js +0 -2
  478. package/dist/src/render-CH-62LbA.js +0 -135
  479. package/dist/src/render-CMEpfLaO.js +0 -136
  480. package/dist/src/render-DHIZ6_k8.js +0 -135
  481. package/dist/src/render-DfQSFxGE.cjs +0 -165
  482. package/dist/src/rubyUtils-D1L2d3jb.js +0 -3
  483. package/dist/src/rubyUtils-DUbq4tff.cjs +0 -2
  484. package/dist/src/server-BNYztJkh.js +0 -385
  485. package/dist/src/server-DCtHUqlp.js +0 -3
  486. package/dist/src/server-DaA2eR26.cjs +0 -2
  487. package/dist/src/store-CWOSz6D_.cjs +0 -2
  488. package/dist/src/store-DCDBhv7B.js +0 -3
  489. package/dist/src/store-Dn9HUkdW.js +0 -240
  490. package/dist/src/telemetry-C1IqxcdW.js +0 -3
  491. package/dist/src/telemetry-C4ZEa_es.cjs +0 -2
  492. package/dist/src/transform-Bbg6A8Jk.js +0 -216
  493. package/dist/src/transform-CUnzlsbn.cjs +0 -228
  494. package/dist/src/transform-DYX1_Xnh.js +0 -216
  495. package/dist/src/transform-DgKlRr73.cjs +0 -2
  496. package/dist/src/transform-M6ITAESf.js +0 -3
  497. package/dist/src/transform-UN5UGu8U.js +0 -213
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/env node
2
+ import { s as logger } from "./logger-BbY6ypFL.js";
3
+ //#region src/redteam/shared/runtimeTransform.ts
4
+ /**
5
+ * Runtime transform utility for applying strategy transforms per-turn.
6
+ *
7
+ * This module enables multi-turn attack providers (Hydra, Crescendo, etc.)
8
+ * to apply layer transforms (audio, base64, etc.) to each turn's prompt
9
+ * before sending to the target.
10
+ *
11
+ * It reuses existing strategy implementations, avoiding code duplication.
12
+ */
13
+ /**
14
+ * Applies strategy transforms to a prompt at runtime (per-turn).
15
+ * This is used by multi-turn attack providers to transform each turn's
16
+ * output before sending to the target.
17
+ *
18
+ * @param prompt - The text prompt to transform
19
+ * @param injectVar - The variable name used for injection (e.g., 'query')
20
+ * @param layerConfigs - Array of layer configurations to apply in order
21
+ * @param strategies - The loaded strategies array (to avoid circular imports)
22
+ * @param context - Optional context metadata to pass to layer strategies
23
+ * @returns TransformResult with transformed prompt and audio metadata
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // In Hydra provider:
28
+ * const result = await applyRuntimeTransforms(
29
+ * attackPrompt,
30
+ * 'query',
31
+ * ['audio', 'base64'],
32
+ * Strategies,
33
+ * { evaluationId: context?.evaluationId, purpose: context?.test?.metadata?.purpose }
34
+ * );
35
+ * // result.prompt = transformed, result.audio = { data, format } if audio
36
+ * ```
37
+ */
38
+ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategies, context) {
39
+ const originalPrompt = prompt;
40
+ if (!layerConfigs?.length) return {
41
+ prompt,
42
+ originalPrompt
43
+ };
44
+ logger.debug(`[RuntimeTransform] Applying ${layerConfigs.length} transforms to prompt`, {
45
+ hasContext: !!context,
46
+ hasEvaluationId: !!context?.evaluationId,
47
+ hasPurpose: !!context?.purpose
48
+ });
49
+ let testCase = {
50
+ vars: { [injectVar]: prompt },
51
+ assert: [],
52
+ metadata: {
53
+ pluginId: "runtime-transform",
54
+ evaluationId: context?.evaluationId,
55
+ testCaseId: context?.testCaseId,
56
+ purpose: context?.purpose,
57
+ goal: context?.goal
58
+ }
59
+ };
60
+ let audioApplied = false;
61
+ let imageApplied = false;
62
+ for (const layer of layerConfigs) {
63
+ const layerId = typeof layer === "string" ? layer : layer.id;
64
+ const layerConfig = typeof layer === "string" ? {} : layer.config || {};
65
+ const strategy = strategies.find((s) => s.id === layerId);
66
+ if (!strategy) {
67
+ logger.warn(`[RuntimeTransform] Unknown layer strategy: ${layerId}, skipping`);
68
+ continue;
69
+ }
70
+ logger.debug(`[RuntimeTransform] Applying layer: ${layerId}`);
71
+ if (layerId === "audio") audioApplied = true;
72
+ else if (layerId === "image") imageApplied = true;
73
+ try {
74
+ const transformed = (await strategy.action([testCase], injectVar, layerConfig))[0];
75
+ if (transformed) testCase = {
76
+ ...transformed,
77
+ metadata: {
78
+ ...testCase.metadata,
79
+ ...transformed.metadata,
80
+ pluginId: testCase.metadata.pluginId
81
+ }
82
+ };
83
+ else logger.warn(`[RuntimeTransform] Layer ${layerId} returned no test cases`);
84
+ } catch (error) {
85
+ const errorMsg = `Transform ${layerId} failed: ${error.message || "Unknown error"}`;
86
+ logger.error(`[RuntimeTransform] ${errorMsg}`, { error });
87
+ return {
88
+ prompt: originalPrompt,
89
+ originalPrompt,
90
+ error: errorMsg
91
+ };
92
+ }
93
+ }
94
+ const transformedPrompt = String(testCase.vars?.[injectVar] ?? prompt);
95
+ logger.debug(`[RuntimeTransform] Transform complete`, {
96
+ originalLength: prompt.length,
97
+ resultLength: transformedPrompt.length,
98
+ layersApplied: layerConfigs.length,
99
+ audioApplied,
100
+ imageApplied
101
+ });
102
+ const displayVars = {};
103
+ if (testCase.vars) {
104
+ for (const [key, value] of Object.entries(testCase.vars)) if (key !== injectVar && typeof value === "string") displayVars[key] = value;
105
+ }
106
+ const result = {
107
+ prompt: transformedPrompt,
108
+ originalPrompt,
109
+ ...Object.keys(displayVars).length > 0 && { displayVars },
110
+ metadata: testCase.metadata
111
+ };
112
+ const audioStorageKey = testCase.metadata?.audioStorageKey;
113
+ const imageStorageKey = testCase.metadata?.imageStorageKey;
114
+ if (audioApplied && transformedPrompt !== originalPrompt) {
115
+ const dataUrlMatch = transformedPrompt.match(/^data:audio\/([^;]+);base64,(.+)$/);
116
+ if (dataUrlMatch) result.audio = {
117
+ data: dataUrlMatch[2],
118
+ format: dataUrlMatch[1]
119
+ };
120
+ else result.audio = {
121
+ data: transformedPrompt,
122
+ format: "mp3"
123
+ };
124
+ if (audioStorageKey) logger.debug(`[RuntimeTransform] Audio stored to: ${audioStorageKey} (will be sanitized before DB save)`);
125
+ }
126
+ if (imageApplied && transformedPrompt !== originalPrompt) {
127
+ const dataUrlMatch = transformedPrompt.match(/^data:image\/([^;]+);base64,(.+)$/);
128
+ if (dataUrlMatch) result.image = {
129
+ data: dataUrlMatch[2],
130
+ format: dataUrlMatch[1]
131
+ };
132
+ else result.image = {
133
+ data: transformedPrompt,
134
+ format: "png"
135
+ };
136
+ if (imageStorageKey) logger.debug(`[RuntimeTransform] Image stored to: ${imageStorageKey} (will be sanitized before DB save)`);
137
+ }
138
+ return result;
139
+ }
140
+ //#endregion
141
+ export { applyRuntimeTransforms as t };
142
+
143
+ //# sourceMappingURL=runtimeTransform-Dgh_D7DU.js.map
@@ -0,0 +1,142 @@
1
+ import { a as logger } from "./logger-Ct2S6Yx-.js";
2
+ //#region src/redteam/shared/runtimeTransform.ts
3
+ /**
4
+ * Runtime transform utility for applying strategy transforms per-turn.
5
+ *
6
+ * This module enables multi-turn attack providers (Hydra, Crescendo, etc.)
7
+ * to apply layer transforms (audio, base64, etc.) to each turn's prompt
8
+ * before sending to the target.
9
+ *
10
+ * It reuses existing strategy implementations, avoiding code duplication.
11
+ */
12
+ /**
13
+ * Applies strategy transforms to a prompt at runtime (per-turn).
14
+ * This is used by multi-turn attack providers to transform each turn's
15
+ * output before sending to the target.
16
+ *
17
+ * @param prompt - The text prompt to transform
18
+ * @param injectVar - The variable name used for injection (e.g., 'query')
19
+ * @param layerConfigs - Array of layer configurations to apply in order
20
+ * @param strategies - The loaded strategies array (to avoid circular imports)
21
+ * @param context - Optional context metadata to pass to layer strategies
22
+ * @returns TransformResult with transformed prompt and audio metadata
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // In Hydra provider:
27
+ * const result = await applyRuntimeTransforms(
28
+ * attackPrompt,
29
+ * 'query',
30
+ * ['audio', 'base64'],
31
+ * Strategies,
32
+ * { evaluationId: context?.evaluationId, purpose: context?.test?.metadata?.purpose }
33
+ * );
34
+ * // result.prompt = transformed, result.audio = { data, format } if audio
35
+ * ```
36
+ */
37
+ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategies, context) {
38
+ const originalPrompt = prompt;
39
+ if (!layerConfigs?.length) return {
40
+ prompt,
41
+ originalPrompt
42
+ };
43
+ logger.debug(`[RuntimeTransform] Applying ${layerConfigs.length} transforms to prompt`, {
44
+ hasContext: !!context,
45
+ hasEvaluationId: !!context?.evaluationId,
46
+ hasPurpose: !!context?.purpose
47
+ });
48
+ let testCase = {
49
+ vars: { [injectVar]: prompt },
50
+ assert: [],
51
+ metadata: {
52
+ pluginId: "runtime-transform",
53
+ evaluationId: context?.evaluationId,
54
+ testCaseId: context?.testCaseId,
55
+ purpose: context?.purpose,
56
+ goal: context?.goal
57
+ }
58
+ };
59
+ let audioApplied = false;
60
+ let imageApplied = false;
61
+ for (const layer of layerConfigs) {
62
+ const layerId = typeof layer === "string" ? layer : layer.id;
63
+ const layerConfig = typeof layer === "string" ? {} : layer.config || {};
64
+ const strategy = strategies.find((s) => s.id === layerId);
65
+ if (!strategy) {
66
+ logger.warn(`[RuntimeTransform] Unknown layer strategy: ${layerId}, skipping`);
67
+ continue;
68
+ }
69
+ logger.debug(`[RuntimeTransform] Applying layer: ${layerId}`);
70
+ if (layerId === "audio") audioApplied = true;
71
+ else if (layerId === "image") imageApplied = true;
72
+ try {
73
+ const transformed = (await strategy.action([testCase], injectVar, layerConfig))[0];
74
+ if (transformed) testCase = {
75
+ ...transformed,
76
+ metadata: {
77
+ ...testCase.metadata,
78
+ ...transformed.metadata,
79
+ pluginId: testCase.metadata.pluginId
80
+ }
81
+ };
82
+ else logger.warn(`[RuntimeTransform] Layer ${layerId} returned no test cases`);
83
+ } catch (error) {
84
+ const errorMsg = `Transform ${layerId} failed: ${error.message || "Unknown error"}`;
85
+ logger.error(`[RuntimeTransform] ${errorMsg}`, { error });
86
+ return {
87
+ prompt: originalPrompt,
88
+ originalPrompt,
89
+ error: errorMsg
90
+ };
91
+ }
92
+ }
93
+ const transformedPrompt = String(testCase.vars?.[injectVar] ?? prompt);
94
+ logger.debug(`[RuntimeTransform] Transform complete`, {
95
+ originalLength: prompt.length,
96
+ resultLength: transformedPrompt.length,
97
+ layersApplied: layerConfigs.length,
98
+ audioApplied,
99
+ imageApplied
100
+ });
101
+ const displayVars = {};
102
+ if (testCase.vars) {
103
+ for (const [key, value] of Object.entries(testCase.vars)) if (key !== injectVar && typeof value === "string") displayVars[key] = value;
104
+ }
105
+ const result = {
106
+ prompt: transformedPrompt,
107
+ originalPrompt,
108
+ ...Object.keys(displayVars).length > 0 && { displayVars },
109
+ metadata: testCase.metadata
110
+ };
111
+ const audioStorageKey = testCase.metadata?.audioStorageKey;
112
+ const imageStorageKey = testCase.metadata?.imageStorageKey;
113
+ if (audioApplied && transformedPrompt !== originalPrompt) {
114
+ const dataUrlMatch = transformedPrompt.match(/^data:audio\/([^;]+);base64,(.+)$/);
115
+ if (dataUrlMatch) result.audio = {
116
+ data: dataUrlMatch[2],
117
+ format: dataUrlMatch[1]
118
+ };
119
+ else result.audio = {
120
+ data: transformedPrompt,
121
+ format: "mp3"
122
+ };
123
+ if (audioStorageKey) logger.debug(`[RuntimeTransform] Audio stored to: ${audioStorageKey} (will be sanitized before DB save)`);
124
+ }
125
+ if (imageApplied && transformedPrompt !== originalPrompt) {
126
+ const dataUrlMatch = transformedPrompt.match(/^data:image\/([^;]+);base64,(.+)$/);
127
+ if (dataUrlMatch) result.image = {
128
+ data: dataUrlMatch[2],
129
+ format: dataUrlMatch[1]
130
+ };
131
+ else result.image = {
132
+ data: transformedPrompt,
133
+ format: "png"
134
+ };
135
+ if (imageStorageKey) logger.debug(`[RuntimeTransform] Image stored to: ${imageStorageKey} (will be sanitized before DB save)`);
136
+ }
137
+ return result;
138
+ }
139
+ //#endregion
140
+ export { applyRuntimeTransforms as t };
141
+
142
+ //# sourceMappingURL=runtimeTransform-DigbjU1r.js.map
@@ -0,0 +1,147 @@
1
+ const require_logger = require("./logger-cfNpzI4o.cjs");
2
+ //#region src/redteam/shared/runtimeTransform.ts
3
+ /**
4
+ * Runtime transform utility for applying strategy transforms per-turn.
5
+ *
6
+ * This module enables multi-turn attack providers (Hydra, Crescendo, etc.)
7
+ * to apply layer transforms (audio, base64, etc.) to each turn's prompt
8
+ * before sending to the target.
9
+ *
10
+ * It reuses existing strategy implementations, avoiding code duplication.
11
+ */
12
+ /**
13
+ * Applies strategy transforms to a prompt at runtime (per-turn).
14
+ * This is used by multi-turn attack providers to transform each turn's
15
+ * output before sending to the target.
16
+ *
17
+ * @param prompt - The text prompt to transform
18
+ * @param injectVar - The variable name used for injection (e.g., 'query')
19
+ * @param layerConfigs - Array of layer configurations to apply in order
20
+ * @param strategies - The loaded strategies array (to avoid circular imports)
21
+ * @param context - Optional context metadata to pass to layer strategies
22
+ * @returns TransformResult with transformed prompt and audio metadata
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // In Hydra provider:
27
+ * const result = await applyRuntimeTransforms(
28
+ * attackPrompt,
29
+ * 'query',
30
+ * ['audio', 'base64'],
31
+ * Strategies,
32
+ * { evaluationId: context?.evaluationId, purpose: context?.test?.metadata?.purpose }
33
+ * );
34
+ * // result.prompt = transformed, result.audio = { data, format } if audio
35
+ * ```
36
+ */
37
+ async function applyRuntimeTransforms(prompt, injectVar, layerConfigs, strategies, context) {
38
+ const originalPrompt = prompt;
39
+ if (!layerConfigs?.length) return {
40
+ prompt,
41
+ originalPrompt
42
+ };
43
+ require_logger.logger.debug(`[RuntimeTransform] Applying ${layerConfigs.length} transforms to prompt`, {
44
+ hasContext: !!context,
45
+ hasEvaluationId: !!context?.evaluationId,
46
+ hasPurpose: !!context?.purpose
47
+ });
48
+ let testCase = {
49
+ vars: { [injectVar]: prompt },
50
+ assert: [],
51
+ metadata: {
52
+ pluginId: "runtime-transform",
53
+ evaluationId: context?.evaluationId,
54
+ testCaseId: context?.testCaseId,
55
+ purpose: context?.purpose,
56
+ goal: context?.goal
57
+ }
58
+ };
59
+ let audioApplied = false;
60
+ let imageApplied = false;
61
+ for (const layer of layerConfigs) {
62
+ const layerId = typeof layer === "string" ? layer : layer.id;
63
+ const layerConfig = typeof layer === "string" ? {} : layer.config || {};
64
+ const strategy = strategies.find((s) => s.id === layerId);
65
+ if (!strategy) {
66
+ require_logger.logger.warn(`[RuntimeTransform] Unknown layer strategy: ${layerId}, skipping`);
67
+ continue;
68
+ }
69
+ require_logger.logger.debug(`[RuntimeTransform] Applying layer: ${layerId}`);
70
+ if (layerId === "audio") audioApplied = true;
71
+ else if (layerId === "image") imageApplied = true;
72
+ try {
73
+ const transformed = (await strategy.action([testCase], injectVar, layerConfig))[0];
74
+ if (transformed) testCase = {
75
+ ...transformed,
76
+ metadata: {
77
+ ...testCase.metadata,
78
+ ...transformed.metadata,
79
+ pluginId: testCase.metadata.pluginId
80
+ }
81
+ };
82
+ else require_logger.logger.warn(`[RuntimeTransform] Layer ${layerId} returned no test cases`);
83
+ } catch (error) {
84
+ const errorMsg = `Transform ${layerId} failed: ${error.message || "Unknown error"}`;
85
+ require_logger.logger.error(`[RuntimeTransform] ${errorMsg}`, { error });
86
+ return {
87
+ prompt: originalPrompt,
88
+ originalPrompt,
89
+ error: errorMsg
90
+ };
91
+ }
92
+ }
93
+ const transformedPrompt = String(testCase.vars?.[injectVar] ?? prompt);
94
+ require_logger.logger.debug(`[RuntimeTransform] Transform complete`, {
95
+ originalLength: prompt.length,
96
+ resultLength: transformedPrompt.length,
97
+ layersApplied: layerConfigs.length,
98
+ audioApplied,
99
+ imageApplied
100
+ });
101
+ const displayVars = {};
102
+ if (testCase.vars) {
103
+ for (const [key, value] of Object.entries(testCase.vars)) if (key !== injectVar && typeof value === "string") displayVars[key] = value;
104
+ }
105
+ const result = {
106
+ prompt: transformedPrompt,
107
+ originalPrompt,
108
+ ...Object.keys(displayVars).length > 0 && { displayVars },
109
+ metadata: testCase.metadata
110
+ };
111
+ const audioStorageKey = testCase.metadata?.audioStorageKey;
112
+ const imageStorageKey = testCase.metadata?.imageStorageKey;
113
+ if (audioApplied && transformedPrompt !== originalPrompt) {
114
+ const dataUrlMatch = transformedPrompt.match(/^data:audio\/([^;]+);base64,(.+)$/);
115
+ if (dataUrlMatch) result.audio = {
116
+ data: dataUrlMatch[2],
117
+ format: dataUrlMatch[1]
118
+ };
119
+ else result.audio = {
120
+ data: transformedPrompt,
121
+ format: "mp3"
122
+ };
123
+ if (audioStorageKey) require_logger.logger.debug(`[RuntimeTransform] Audio stored to: ${audioStorageKey} (will be sanitized before DB save)`);
124
+ }
125
+ if (imageApplied && transformedPrompt !== originalPrompt) {
126
+ const dataUrlMatch = transformedPrompt.match(/^data:image\/([^;]+);base64,(.+)$/);
127
+ if (dataUrlMatch) result.image = {
128
+ data: dataUrlMatch[2],
129
+ format: dataUrlMatch[1]
130
+ };
131
+ else result.image = {
132
+ data: transformedPrompt,
133
+ format: "png"
134
+ };
135
+ if (imageStorageKey) require_logger.logger.debug(`[RuntimeTransform] Image stored to: ${imageStorageKey} (will be sanitized before DB save)`);
136
+ }
137
+ return result;
138
+ }
139
+ //#endregion
140
+ Object.defineProperty(exports, "applyRuntimeTransforms", {
141
+ enumerable: true,
142
+ get: function() {
143
+ return applyRuntimeTransforms;
144
+ }
145
+ });
146
+
147
+ //# sourceMappingURL=runtimeTransform-ON3YYILw.cjs.map
@@ -1,6 +1,7 @@
1
- import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-B88EkIn6.js";
2
- import { n as telemetry } from "./telemetry-dbaJ0E98.js";
3
- import { n as transform } from "./transform-DYX1_Xnh.js";
1
+ import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-KD8JjCRJ.js";
2
+ import { n as StringOrFunctionSchema } from "./shared-BoG7qLMv.js";
3
+ import { n as telemetry } from "./telemetry-DmXYcJNV.js";
4
+ import { i as getTransformErrorMessage, o as transform, r as TransformInputType } from "./transform-CrPGTsij.js";
4
5
  import { z } from "zod";
5
6
  import crypto from "crypto";
6
7
  //#region src/providers/sagemaker.ts
@@ -10,6 +11,14 @@ import crypto from "crypto";
10
11
  * @returns Promise that resolves after the specified delay
11
12
  */
12
13
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
14
+ function stringifyTransformResult(result) {
15
+ if (result === void 0 || result === null) {
16
+ logger.debug("Transform function returned null or undefined, using original prompt");
17
+ return;
18
+ }
19
+ if (typeof result === "string") return result;
20
+ return typeof result === "object" ? JSON.stringify(result) : String(result);
21
+ }
13
22
  const SUPPORTED_MODEL_TYPES = [
14
23
  "openai",
15
24
  "llama",
@@ -34,7 +43,7 @@ const SageMakerConfigSchema = z.strictObject({
34
43
  topP: z.number().optional(),
35
44
  stopSequences: z.array(z.string()).optional(),
36
45
  delay: z.number().optional(),
37
- transform: z.string().optional(),
46
+ transform: StringOrFunctionSchema.optional(),
38
47
  modelType: z.enum(SUPPORTED_MODEL_TYPES).optional(),
39
48
  responseFormat: z.strictObject({
40
49
  type: z.string().optional(),
@@ -154,53 +163,52 @@ var SageMakerGenericProvider = class {
154
163
  prompt: context?.prompt || { raw: prompt },
155
164
  uuid: `sagemaker-${this.endpointName}-${Date.now()}`
156
165
  };
157
- const transformFn = this.transform || context?.originalProvider?.transform;
158
- if (!transformFn) return prompt;
166
+ const transformFn = this.transform;
159
167
  logger.debug(`Applying transform to prompt for SageMaker endpoint ${this.getEndpointName()}`);
160
- if (typeof transformFn === "string" && !transformFn.startsWith("file://")) try {
168
+ if (typeof transformFn === "string" && !transformFn.startsWith("file://")) {
169
+ let result;
161
170
  if (transformFn.includes("=>")) {
162
- const result = new Function("prompt", "context", `try { return (${transformFn})(prompt, context); } catch(e) { throw new Error("Transform function error: " + e.message); }`)(prompt, transformContext);
163
- if (result === void 0 || result === null) {
164
- logger.debug("Transform function returned null or undefined, using original prompt");
165
- return prompt;
166
- }
167
- if (typeof result === "string") return result;
168
- else if (typeof result === "object") return JSON.stringify(result);
169
- else return String(result);
171
+ const fn = new Function("prompt", "context", `try { return (${transformFn})(prompt, context); } catch(e) { throw new Error("Transform function error: " + e.message); }`);
172
+ result = await Promise.resolve(fn(prompt, transformContext));
170
173
  } else {
171
- const result = new Function("prompt", "context", `try { ${transformFn} } catch(e) { throw new Error("Transform function error: " + e.message); }`)(prompt, transformContext);
172
- if (result === void 0 || result === null) {
173
- logger.debug("Transform function returned null or undefined, using original prompt");
174
- return prompt;
175
- }
176
- if (typeof result === "string") return result;
177
- else if (typeof result === "object") return JSON.stringify(result);
178
- else return String(result);
179
- }
180
- } catch (transformError) {
181
- logger.error(`Error executing inline transform: ${transformError}`);
182
- }
183
- else try {
184
- const { TransformInputType } = await import("./transform-DYX1_Xnh.js").then((n) => n.r);
185
- const transformed = await transform(transformFn, prompt, transformContext, false, TransformInputType.OUTPUT);
186
- if (transformed === void 0 || transformed === null) {
187
- logger.debug("Transform function returned null or undefined, using original prompt");
188
- return prompt;
174
+ const fn = new Function("prompt", "context", `try { ${transformFn} } catch(e) { throw new Error("Transform function error: " + e.message); }`);
175
+ result = await Promise.resolve(fn(prompt, transformContext));
189
176
  }
190
- if (typeof transformed === "string") return transformed;
191
- else if (typeof transformed === "object") return JSON.stringify(transformed);
192
- else return String(transformed);
193
- } catch (transformError) {
194
- logger.error(`Error using transform utility: ${transformError}`);
177
+ const transformedPrompt = stringifyTransformResult(result);
178
+ if (transformedPrompt !== void 0) return transformedPrompt;
179
+ } else {
180
+ const transformedPrompt = stringifyTransformResult(await transform(transformFn, prompt, transformContext, false, TransformInputType.OUTPUT));
181
+ if (transformedPrompt !== void 0) return transformedPrompt;
195
182
  }
196
183
  logger.warn(`Transform did not produce a valid result, using original prompt`);
197
184
  return prompt;
198
- } catch (_) {
199
- logger.error(`Error applying transform to prompt: ${_}`);
185
+ } catch (error) {
186
+ if (typeof this.transform === "function") throw error;
187
+ logger.error(`Error applying transform to prompt: ${error}`);
200
188
  return prompt;
201
189
  }
202
190
  }
203
191
  /**
192
+ * Run `applyTransformation` and convert a function-transform throw into a
193
+ * `ProviderResponse.error` so the evaluator sees a uniform error row instead
194
+ * of an uncaught rejection.
195
+ */
196
+ async runTransformSafely(input, context, errorPrefix) {
197
+ try {
198
+ return {
199
+ ok: true,
200
+ value: await this.applyTransformation(input, context)
201
+ };
202
+ } catch (transformError) {
203
+ const message = `${errorPrefix}: ${getTransformErrorMessage(transformError)}`;
204
+ logger.error(message);
205
+ return {
206
+ ok: false,
207
+ error: message
208
+ };
209
+ }
210
+ }
211
+ /**
204
212
  * Extracts data from a response using a path expression
205
213
  * Supports JavaScript expressions and file-based transforms
206
214
  */
@@ -208,7 +216,6 @@ var SageMakerGenericProvider = class {
208
216
  if (!pathExpression) return responseJson;
209
217
  try {
210
218
  if (pathExpression.startsWith("file://")) try {
211
- const { TransformInputType } = await import("./transform-DYX1_Xnh.js").then((n) => n.r);
212
219
  const transformedResult = await transform(pathExpression, responseJson, { prompt: {} }, false, TransformInputType.OUTPUT);
213
220
  return transformedResult !== void 0 && transformedResult !== null ? transformedResult : responseJson;
214
221
  } catch (error) {
@@ -403,9 +410,11 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
403
410
  * Invoke SageMaker endpoint for text generation with caching, delay support, and transformations
404
411
  */
405
412
  async callApi(prompt, context, _options) {
406
- const { isCacheEnabled, getCache } = await import("./cache-C4Xb-hNb.js").then((n) => n.t);
413
+ const { isCacheEnabled, getCache } = await import("./cache-roFAE0cI.js").then((n) => n.t);
407
414
  const delayMs = context?.originalProvider?.delay || this.delay;
408
- const transformedPrompt = await this.applyTransformation(prompt, context);
415
+ const transformResult = await this.runTransformSafely(prompt, context, "SageMaker transform error");
416
+ if (!transformResult.ok) return { error: transformResult.error };
417
+ const transformedPrompt = transformResult.value;
409
418
  const isTransformed = transformedPrompt !== prompt;
410
419
  if (isTransformed) {
411
420
  logger.debug(`Prompt transformed for SageMaker endpoint ${this.getEndpointName()}`);
@@ -415,7 +424,7 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
415
424
  const bustCache = context?.bustCache ?? context?.debug === true;
416
425
  if (isCacheEnabled() && !bustCache) {
417
426
  const cacheKey = this.getCacheKey(transformedPrompt);
418
- const cachedResult = await (getCache ? getCache() : await import("./cache-C4Xb-hNb.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
427
+ const cachedResult = await (getCache ? getCache() : await import("./cache-roFAE0cI.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
419
428
  if (cachedResult) {
420
429
  logger.debug(`Using cached SageMaker response for ${this.getEndpointName()}`);
421
430
  try {
@@ -489,7 +498,7 @@ var SageMakerCompletionProvider = class extends SageMakerGenericProvider {
489
498
  };
490
499
  if (isCacheEnabled() && !bustCache && result.output && !result.error) {
491
500
  const cacheKey = this.getCacheKey(transformedPrompt);
492
- const cache = getCache ? getCache() : await import("./cache-C4Xb-hNb.js").then((n) => n.t).then((m) => m.getCache());
501
+ const cache = getCache ? getCache() : await import("./cache-roFAE0cI.js").then((n) => n.t).then((m) => m.getCache());
493
502
  const resultToCache = JSON.stringify(result);
494
503
  try {
495
504
  await cache.set(cacheKey, resultToCache);
@@ -534,9 +543,11 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
534
543
  * Invoke SageMaker endpoint for embeddings with caching, delay support, and transformations
535
544
  */
536
545
  async callEmbeddingApi(text, context) {
537
- const { isCacheEnabled, getCache } = await import("./cache-C4Xb-hNb.js").then((n) => n.t);
546
+ const { isCacheEnabled, getCache } = await import("./cache-roFAE0cI.js").then((n) => n.t);
538
547
  const delayMs = context?.originalProvider?.delay || this.delay;
539
- const transformedText = await this.applyTransformation(text, context);
548
+ const transformResult = await this.runTransformSafely(text, context, "SageMaker embedding transform error");
549
+ if (!transformResult.ok) return { error: transformResult.error };
550
+ const transformedText = transformResult.value;
540
551
  const isTransformed = transformedText !== text;
541
552
  if (isTransformed) {
542
553
  logger.debug(`Text transformed for SageMaker embedding endpoint ${this.getEndpointName()}`);
@@ -546,7 +557,7 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
546
557
  const bustCache = context?.debug === true;
547
558
  if (isCacheEnabled() && !bustCache) {
548
559
  const cacheKey = this.getCacheKey(transformedText);
549
- const cachedResult = await (await getCache ? await getCache() : await import("./cache-C4Xb-hNb.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
560
+ const cachedResult = await (await getCache ? await getCache() : await import("./cache-roFAE0cI.js").then((n) => n.t).then((m) => m.getCache())).get(cacheKey);
550
561
  if (cachedResult) {
551
562
  logger.debug(`Using cached SageMaker embedding response for ${this.getEndpointName()}`);
552
563
  try {
@@ -660,11 +671,11 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
660
671
  * Helper method to cache embedding results
661
672
  */
662
673
  async cacheEmbeddingResult(result, text, context, isTransformed = false, originalText) {
663
- const { isCacheEnabled, getCache } = await import("./cache-C4Xb-hNb.js").then((n) => n.t);
674
+ const { isCacheEnabled, getCache } = await import("./cache-roFAE0cI.js").then((n) => n.t);
664
675
  const bustCache = context?.debug === true;
665
676
  if (isCacheEnabled() && !bustCache && result.embedding && !result.error) {
666
677
  const cacheKey = this.getCacheKey(text);
667
- const cache = await getCache ? await getCache() : await import("./cache-C4Xb-hNb.js").then((n) => n.t).then((m) => m.getCache());
678
+ const cache = await getCache ? await getCache() : await import("./cache-roFAE0cI.js").then((n) => n.t).then((m) => m.getCache());
668
679
  if (isTransformed && originalText && !result.metadata) result.metadata = {
669
680
  transformed: true,
670
681
  originalText
@@ -686,4 +697,4 @@ var SageMakerEmbeddingProvider = class extends SageMakerGenericProvider {
686
697
  //#endregion
687
698
  export { SageMakerCompletionProvider, SageMakerEmbeddingProvider };
688
699
 
689
- //# sourceMappingURL=sagemaker-BVkaG2-l.js.map
700
+ //# sourceMappingURL=sagemaker-CujrzP1a.js.map