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,220 @@
1
+ import { a as logger, k as state } from "./logger-Ct2S6Yx-.js";
2
+ import { l as sleep } from "./fetch-It34O8Ur.js";
3
+ import { t as getTraceStore } from "./store-HpopRVzl.js";
4
+ import { r as getToolNameFromAttributes } from "./toolAttributes-DJ9ZEKXD.js";
5
+ //#region src/tracing/traceContext.ts
6
+ const DEFAULT_MAX_RETRIES = 3;
7
+ const DEFAULT_RETRY_DELAY_MS = 500;
8
+ const SPAN_KIND_MAP = {
9
+ 0: "unspecified",
10
+ 1: "internal",
11
+ 2: "server",
12
+ 3: "client",
13
+ 4: "producer",
14
+ 5: "consumer"
15
+ };
16
+ function resolveSpanKind(span) {
17
+ const attributes = span.attributes || {};
18
+ const attributeKind = attributes["span.kind"] || attributes["otel.span.kind"] || attributes["spanKind"] || attributes["kind"];
19
+ if (attributeKind) return `${attributeKind}`.toLowerCase();
20
+ const numericKind = attributes["otel.span.kind_code"];
21
+ if (typeof numericKind === "number" && numericKind in SPAN_KIND_MAP) return SPAN_KIND_MAP[numericKind];
22
+ return "unspecified";
23
+ }
24
+ function mapStatusCode(span) {
25
+ switch (span.statusCode) {
26
+ case 1: return "ok";
27
+ case 2: return "error";
28
+ default: return "unset";
29
+ }
30
+ }
31
+ function buildSpanTree(spans) {
32
+ const depthMap = /* @__PURE__ */ new Map();
33
+ const spansById = new Map(spans.map((span) => [span.spanId, span]));
34
+ const computeDepth = (span) => {
35
+ if (depthMap.has(span.spanId)) return depthMap.get(span.spanId);
36
+ if (!span.parentSpanId || !spansById.has(span.parentSpanId)) {
37
+ depthMap.set(span.spanId, 0);
38
+ return 0;
39
+ }
40
+ const depth = computeDepth(spansById.get(span.parentSpanId)) + 1;
41
+ depthMap.set(span.spanId, depth);
42
+ return depth;
43
+ };
44
+ spans.forEach((span) => computeDepth(span));
45
+ return depthMap;
46
+ }
47
+ function createTraceSpans(spans) {
48
+ const depthMap = buildSpanTree(spans);
49
+ return spans.map((span) => {
50
+ const endTime = span.endTime ?? span.startTime;
51
+ const durationMs = Math.max(0, endTime - span.startTime);
52
+ return {
53
+ spanId: span.spanId,
54
+ parentSpanId: span.parentSpanId,
55
+ name: span.name,
56
+ kind: resolveSpanKind(span),
57
+ startTime: span.startTime,
58
+ endTime: span.endTime,
59
+ durationMs,
60
+ attributes: span.attributes || {},
61
+ status: {
62
+ code: mapStatusCode(span),
63
+ message: span.statusMessage
64
+ },
65
+ depth: depthMap.get(span.spanId) ?? 0,
66
+ events: []
67
+ };
68
+ });
69
+ }
70
+ function deriveInsights(traceSpans) {
71
+ if (traceSpans.length === 0) return [];
72
+ const insights = [];
73
+ traceSpans.filter((span) => span.status.code === "error").forEach((span) => {
74
+ const statusMessage = span.status.message ? `: ${span.status.message}` : "";
75
+ insights.push(`Error span "${span.name}" (${span.spanId.slice(0, 8)})${statusMessage}`);
76
+ });
77
+ traceSpans.map((span) => ({
78
+ span,
79
+ toolName: getToolNameFromAttributes(span.attributes)
80
+ })).filter((entry) => entry.toolName).forEach(({ span, toolName }) => {
81
+ insights.push(`Tool call ${toolName} via "${span.name}" (duration ${span.durationMs ?? 0}ms)`);
82
+ });
83
+ traceSpans.filter((span) => span.attributes["guardrail.name"] || span.attributes["guardrails.decision"]).forEach((span) => {
84
+ const decision = span.attributes["guardrails.decision"] ?? span.attributes["guardrail.decision"];
85
+ insights.push(`Guardrail ${span.attributes["guardrail.name"] ?? span.name} decision: ${decision ?? "unknown"}`);
86
+ });
87
+ return insights.slice(0, 20);
88
+ }
89
+ function extractTraceIdFromTraceparent(traceparent) {
90
+ if (!traceparent) return null;
91
+ const parts = traceparent.split("-");
92
+ if (parts.length < 2) return null;
93
+ return parts[1];
94
+ }
95
+ async function fetchTraceContext(traceId, options = {}) {
96
+ const { includeInternalSpans = true, sanitizeAttributes = true, maxRetries = DEFAULT_MAX_RETRIES, retryDelayMs = DEFAULT_RETRY_DELAY_MS, ...spanOptions } = options;
97
+ const traceStore = getTraceStore();
98
+ for (let attempt = 0; attempt <= maxRetries; attempt++) try {
99
+ const spans = await traceStore.getSpans(traceId, {
100
+ includeInternalSpans,
101
+ sanitizeAttributes,
102
+ ...spanOptions
103
+ });
104
+ if (spans.length === 0) {
105
+ if (attempt === maxRetries) {
106
+ logger.debug(`[TraceContext] No spans found for trace ${traceId} after ${attempt + 1} attempts`);
107
+ return null;
108
+ }
109
+ logger.debug(`[TraceContext] No spans yet for trace ${traceId}, retrying in ${retryDelayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
110
+ await sleep(retryDelayMs);
111
+ continue;
112
+ }
113
+ const traceSpans = createTraceSpans(spans);
114
+ const insights = deriveInsights(traceSpans);
115
+ const context = {
116
+ traceId,
117
+ spans: traceSpans,
118
+ insights,
119
+ fetchedAt: Date.now()
120
+ };
121
+ logger.debug(`[TraceContext] Resolved ${traceSpans.length} spans for trace ${traceId} with ${insights.length} insights`);
122
+ return context;
123
+ } catch (error) {
124
+ logger.error(`[TraceContext] Failed to fetch spans for trace ${traceId}: ${error}`);
125
+ if (attempt === maxRetries) return null;
126
+ await sleep(retryDelayMs);
127
+ }
128
+ return null;
129
+ }
130
+ //#endregion
131
+ //#region src/redteam/providers/traceFormatting.ts
132
+ const DEFAULT_MAX_SPANS = 10;
133
+ function formatDuration(durationMs) {
134
+ if (!durationMs || Number.isNaN(durationMs)) return "0ms";
135
+ if (durationMs < 1e3) return `${Math.round(durationMs)}ms`;
136
+ if (durationMs < 6e4) return `${(durationMs / 1e3).toFixed(1)}s`;
137
+ return `${(durationMs / 6e4).toFixed(1)}m`;
138
+ }
139
+ function formatSpan(span) {
140
+ const parts = [];
141
+ const duration = formatDuration(span.durationMs);
142
+ parts.push(`[${duration}] ${span.name}${span.kind && span.kind !== "unspecified" ? ` (${span.kind})` : ""}`);
143
+ const tool = getToolNameFromAttributes(span.attributes);
144
+ if (tool) parts.push(`tool=${tool}`);
145
+ const model = span.attributes["model"] || span.attributes["llm.model"];
146
+ if (model) parts.push(`model=${model}`);
147
+ if (span.status.code === "error") parts.push(`ERROR: ${span.status.message ?? "Unknown error"}`);
148
+ return parts.join(" | ");
149
+ }
150
+ function formatTraceSummary(trace, options = {}) {
151
+ if (!trace || trace.spans.length === 0) return "No trace spans recorded during this iteration.";
152
+ const maxSpans = options.maxSpans ?? DEFAULT_MAX_SPANS;
153
+ const spans = trace.spans.slice(0, maxSpans);
154
+ return [
155
+ `Trace ${trace.traceId.slice(0, 8)} • ${trace.spans.length} span${trace.spans.length === 1 ? "" : "s"}`,
156
+ "",
157
+ "Execution Flow:",
158
+ spans.map((span, index) => `${index + 1}. ${formatSpan(span)}`).join("\n"),
159
+ "",
160
+ "Key Observations:",
161
+ trace.insights.length > 0 ? trace.insights.map((i) => `• ${i}`).join("\n") : "None"
162
+ ].join("\n");
163
+ }
164
+ function formatTraceForMetadata(trace) {
165
+ return {
166
+ traceId: trace.traceId,
167
+ fetchedAt: trace.fetchedAt,
168
+ spanCount: trace.spans.length,
169
+ insights: trace.insights
170
+ };
171
+ }
172
+ //#endregion
173
+ //#region src/redteam/providers/tracingOptions.ts
174
+ const DEFAULT_TRACING_OPTIONS = {
175
+ enabled: false,
176
+ includeInAttack: true,
177
+ includeInGrading: true,
178
+ includeInternalSpans: false,
179
+ maxSpans: 50,
180
+ maxDepth: 5,
181
+ maxRetries: 3,
182
+ retryDelayMs: 500,
183
+ spanFilter: void 0,
184
+ sanitizeAttributes: true
185
+ };
186
+ function mergeTracingConfig(...configs) {
187
+ return configs.reduce((acc, config) => config ? {
188
+ ...acc,
189
+ ...config
190
+ } : acc, {});
191
+ }
192
+ function normalizeTracingOptions(config) {
193
+ const merged = {
194
+ ...DEFAULT_TRACING_OPTIONS,
195
+ ...config
196
+ };
197
+ return {
198
+ enabled: Boolean(merged.enabled),
199
+ includeInAttack: merged.includeInAttack ?? DEFAULT_TRACING_OPTIONS.includeInAttack ?? true,
200
+ includeInGrading: merged.includeInGrading ?? DEFAULT_TRACING_OPTIONS.includeInGrading ?? true,
201
+ includeInternalSpans: merged.includeInternalSpans ?? DEFAULT_TRACING_OPTIONS.includeInternalSpans ?? false,
202
+ maxSpans: merged.maxSpans ?? DEFAULT_TRACING_OPTIONS.maxSpans,
203
+ maxDepth: merged.maxDepth ?? DEFAULT_TRACING_OPTIONS.maxDepth,
204
+ maxRetries: merged.maxRetries ?? DEFAULT_TRACING_OPTIONS.maxRetries,
205
+ retryDelayMs: merged.retryDelayMs ?? DEFAULT_TRACING_OPTIONS.retryDelayMs,
206
+ spanFilter: merged.spanFilter,
207
+ sanitizeAttributes: merged.sanitizeAttributes ?? DEFAULT_TRACING_OPTIONS.sanitizeAttributes
208
+ };
209
+ }
210
+ function resolveTracingOptions({ strategyId, test, config }) {
211
+ const globalConfig = state.config?.redteam?.tracing ?? void 0;
212
+ const testConfig = test?.metadata?.tracing ?? void 0;
213
+ const metadataStrategyConfig = (test?.metadata?.strategyConfig)?.tracing;
214
+ const providerStrategyConfig = config?.tracing ?? void 0;
215
+ return normalizeTracingOptions(mergeTracingConfig(globalConfig, testConfig, metadataStrategyConfig, providerStrategyConfig, strategyId && globalConfig?.strategies ? globalConfig.strategies[strategyId] : void 0, strategyId && testConfig?.strategies ? testConfig.strategies[strategyId] : void 0, strategyId && metadataStrategyConfig?.strategies ? metadataStrategyConfig.strategies[strategyId] : void 0, strategyId && providerStrategyConfig?.strategies ? providerStrategyConfig.strategies[strategyId] : void 0));
216
+ }
217
+ //#endregion
218
+ export { fetchTraceContext as a, extractTraceIdFromTraceparent as i, formatTraceForMetadata as n, formatTraceSummary as r, resolveTracingOptions as t };
219
+
220
+ //# sourceMappingURL=tracingOptions-ji2OuXbT.js.map
@@ -1,8 +1,8 @@
1
1
  import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { h as REQUEST_TIMEOUT_MS } from "./fetch-Di00EQrc.js";
3
- import { r as fetchWithCache } from "./cache-D5NZmMiT.js";
4
- import { t as OpenAiGenericProvider } from "./openai-iYtrXzOX.js";
5
- import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-D9TisOyk.js";
2
+ import { p as REQUEST_TIMEOUT_MS } from "./fetch-It34O8Ur.js";
3
+ import { r as fetchWithCache } from "./cache-DIXbtkNO.js";
4
+ import { t as OpenAiGenericProvider } from "./openai-zgwBb4Ff.js";
5
+ import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-LKTmNsMQ.js";
6
6
  import fs from "fs";
7
7
  import path from "path";
8
8
  //#region src/providers/openai/transcription.ts
@@ -119,4 +119,4 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
119
119
  //#endregion
120
120
  export { OpenAiTranscriptionProvider };
121
121
 
122
- //# sourceMappingURL=transcription-DuWDupG7.js.map
122
+ //# sourceMappingURL=transcription-B8uIgCYX.js.map
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { s as logger } from "./logger-DksKw1Qc.js";
3
- import { m as REQUEST_TIMEOUT_MS } from "./fetch-BEWnXrrG.js";
4
- import { a as fetchWithCache } from "./cache-mb7c8hbp.js";
5
- import { t as OpenAiGenericProvider } from "./openai-Qsvz25mV.js";
6
- import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-C9J8ahRn.js";
2
+ import { s as logger } from "./logger-BbY6ypFL.js";
3
+ import { _ as REQUEST_TIMEOUT_MS } from "./fetch-DXUnXkVU.js";
4
+ import { a as fetchWithCache } from "./cache-DpPWrkTE.js";
5
+ import { t as OpenAiGenericProvider } from "./openai-CJrsh9n4.js";
6
+ import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-5WnCSb0h.js";
7
7
  import fs from "fs";
8
8
  import path from "path";
9
9
  //#region src/providers/openai/transcription.ts
@@ -120,4 +120,4 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
120
120
  //#endregion
121
121
  export { OpenAiTranscriptionProvider };
122
122
 
123
- //# sourceMappingURL=transcription-CJspiD2c.js.map
123
+ //# sourceMappingURL=transcription-CfU5loSq.js.map
@@ -1,8 +1,8 @@
1
- import { a as logger } from "./logger-B88EkIn6.js";
2
- import { h as REQUEST_TIMEOUT_MS } from "./fetch-B0Z3Oe4k.js";
3
- import { r as fetchWithCache } from "./cache-C4Xb-hNb.js";
4
- import { t as OpenAiGenericProvider } from "./openai-DhVEmgeZ.js";
5
- import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-D3q0WQ-0.js";
1
+ import { a as logger } from "./logger-KD8JjCRJ.js";
2
+ import { v as REQUEST_TIMEOUT_MS } from "./fetch-BufrQtvR.js";
3
+ import { r as fetchWithCache } from "./cache-roFAE0cI.js";
4
+ import { t as OpenAiGenericProvider } from "./openai-BMHD2Huo.js";
5
+ import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-efByNxcr.js";
6
6
  import fs from "fs";
7
7
  import path from "path";
8
8
  //#region src/providers/openai/transcription.ts
@@ -119,4 +119,4 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
119
119
  //#endregion
120
120
  export { OpenAiTranscriptionProvider };
121
121
 
122
- //# sourceMappingURL=transcription-V2HaAmy2.js.map
122
+ //# sourceMappingURL=transcription-Dkd22_4K.js.map
@@ -1,12 +1,13 @@
1
- const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_fetch = require("./fetch-CJU5ELPa.cjs");
3
- const require_cache = require("./cache-BIyPcp5v.cjs");
4
- const require_openai = require("./openai-URNyItar.cjs");
5
- const require_util = require("./util-CN3SrLT4.cjs");
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_cache = require("./cache-CPGUA4Yl.cjs");
5
+ const require_openai = require("./openai-C3uXv8wS.cjs");
6
+ const require_util = require("./util-BSIuSLVK.cjs");
6
7
  let fs = require("fs");
7
- fs = require_logger.__toESM(fs);
8
+ fs = require_rolldown_runtime.__toESM(fs, 1);
8
9
  let path = require("path");
9
- path = require_logger.__toESM(path);
10
+ path = require_rolldown_runtime.__toESM(path, 1);
10
11
  //#region src/providers/openai/transcription.ts
11
12
  var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends require_openai.OpenAiGenericProvider {
12
13
  static OPENAI_TRANSCRIPTION_MODEL_NAMES = require_util.OPENAI_TRANSCRIPTION_MODELS.map((model) => model.id);
@@ -121,4 +122,4 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends requ
121
122
  //#endregion
122
123
  exports.OpenAiTranscriptionProvider = OpenAiTranscriptionProvider;
123
124
 
124
- //# sourceMappingURL=transcription-BvjmiYB1.cjs.map
125
+ //# sourceMappingURL=transcription-mzuf18Mq.cjs.map
@@ -1,7 +1,7 @@
1
- import { T as getEnvString, a as logger, g as getAjv } from "./logger-B88EkIn6.js";
2
- import { S as parseChatPrompt, g as calculateCost, t as fetchWithProxy } from "./fetch-B0Z3Oe4k.js";
3
- import { a as getNunjucksEngine, n as renderVarsInObject } from "./render-DHIZ6_k8.js";
4
- import { T as maybeLoadFromExternalFile } from "./util-C8e5uydV.js";
1
+ import { T as getEnvString, a as logger, g as getAjv } from "./logger-KD8JjCRJ.js";
2
+ import { T as parseChatPrompt, t as fetchWithProxy, y as calculateCost } from "./fetch-BufrQtvR.js";
3
+ import { n as renderVarsInObject, o as getNunjucksEngine } from "./render-_6ur1fhE.js";
4
+ import { j as maybeLoadFromExternalFile } from "./util-I-Rf-KaD.js";
5
5
  import { z } from "zod";
6
6
  import crypto from "crypto";
7
7
  import Clone from "rfdc";
@@ -912,13 +912,13 @@ function calculateGoogleCost(modelName, config, promptTokens, completionTokens,
912
912
  const model = GOOGLE_MODELS.find((m) => m.id === modelName);
913
913
  if (promptTokens != null && completionTokens != null) {
914
914
  if (model?.tieredCost && promptTokens > model.tieredCost.threshold) {
915
- const inputCost = config.cost ?? model.tieredCost.above.input;
916
- const outputCost = config.cost ?? model.tieredCost.above.output;
915
+ const inputCost = config.inputCost ?? config.cost ?? model.tieredCost.above.input;
916
+ const outputCost = config.outputCost ?? config.cost ?? model.tieredCost.above.output;
917
917
  return inputCost * promptTokens + outputCost * completionTokens;
918
918
  }
919
919
  if (isVertexMode && model?.vertexCost) {
920
- const inputCost = config.cost ?? model.vertexCost.input;
921
- const outputCost = config.cost ?? model.vertexCost.output;
920
+ const inputCost = config.inputCost ?? config.cost ?? model.vertexCost.input;
921
+ const outputCost = config.outputCost ?? config.cost ?? model.vertexCost.output;
922
922
  return inputCost * promptTokens + outputCost * completionTokens;
923
923
  }
924
924
  }
@@ -1507,4 +1507,4 @@ async function transformMCPServerConfigToClaudeCode(config) {
1507
1507
  //#endregion
1508
1508
  export { renderAuthVars as A, resolveProjectId as C, getAuthHeaders as D, applyQueryParams as E, getAuthQueryParams as O, loadCredentials as S, toDataUri as T, GoogleAuthManager as _, calculateGoogleCost as a, getGoogleClient as b, geminiFormatAndSystemInstructions as c, mergeParts as d, normalizeSafetySettings as f, CHAT_MODELS as g, validateFunctionCall as h, transformMCPToolsToOpenAi as i, TOKEN_REFRESH_BUFFER_MS as j, getOAuthTokenWithExpiry as k, getCandidate as l, parseConfigSystemInstruction as m, transformMCPToolsToAnthropic as n, createAuthCacheDiscriminator as o, normalizeTools as p, transformMCPToolsToGoogle as r, formatCandidateContents as s, transformMCPConfigToClaudeCode as t, getGoogleAccessToken as u, determineGoogleVertexMode as v, parseDataUrl as w, hasGoogleDefaultCredentials as x, getGoogleApiKey as y };
1509
1509
 
1510
- //# sourceMappingURL=transform-lQrDE1BQ.js.map
1510
+ //# sourceMappingURL=transform-BIMynQsA.js.map
@@ -0,0 +1,187 @@
1
+ #!/usr/bin/env node
2
+ import { N as state, s as logger } from "./logger-BbY6ypFL.js";
3
+ import { i as isJavascriptFile } from "./fileExtensions-D4GCJ67J.js";
4
+ import { a as safeJoin, r as importModule } from "./esm-Bexx2PFc.js";
5
+ import { r as runPython } from "./pythonUtils-CgYxeSmO.js";
6
+ import { t as getProcessShim } from "./processShim-BBxt7LKO.js";
7
+ //#region src/util/transform.ts
8
+ const INLINE_FUNCTION_LABEL = "[inline function]";
9
+ const INLINE_STRING_LABEL = "[inline transform]";
10
+ const FILE_TRANSFORM_LABEL = "[file transform]";
11
+ /** Error labels truncate inline string transforms past this length so they stay readable in logs. */
12
+ const INLINE_STRING_LABEL_MAX_LENGTH = 80;
13
+ /**
14
+ * Every config field that accepts a `StringOrFunctionSchema`. Shared between the
15
+ * runtime sanitizer in `src/index.ts` (which replaces function values with
16
+ * markers before persistence) and `scripts/generateJsonSchema.ts` (which rewrites
17
+ * these fields to string-only in the generated JSON schema).
18
+ */
19
+ const TRANSFORM_KEYS = [
20
+ "transform",
21
+ "transformVars",
22
+ "contextTransform",
23
+ "postprocess"
24
+ ];
25
+ /**
26
+ * Unwraps `transform()`'s `Transform failed (label): ...` wrapper and returns
27
+ * the underlying message. Callers that add their own label wrapper (e.g.
28
+ * `contextUtils.resolveContext`, SageMaker's error response) use this to avoid
29
+ * stuttering two labels in the user-facing message.
30
+ */
31
+ function getTransformErrorMessage(error) {
32
+ const cause = error?.cause;
33
+ const raw = error instanceof Error && cause instanceof Error ? cause : error;
34
+ return raw instanceof Error ? raw.message : String(raw);
35
+ }
36
+ const TransformInputType = {
37
+ OUTPUT: "output",
38
+ VARS: "vars"
39
+ };
40
+ /**
41
+ * Parses a file path string to extract the file path and function name.
42
+ * Handles Windows drive letters (e.g., C:\path\to\file.js:functionName).
43
+ * @param filePath - The file path string, potentially including a function name.
44
+ * @returns A tuple containing the file path and function name (if present).
45
+ */
46
+ function parseFilePathAndFunctionName(filePath) {
47
+ const lastColonIndex = filePath.lastIndexOf(":");
48
+ if (lastColonIndex > 1) return [filePath.slice(0, lastColonIndex), filePath.slice(lastColonIndex + 1)];
49
+ return [filePath, void 0];
50
+ }
51
+ /**
52
+ * Retrieves a JavaScript transform function from a file.
53
+ * @param filePath - The path to the JavaScript file.
54
+ * @param functionName - Optional name of the function to retrieve.
55
+ * @returns A Promise resolving to the requested function.
56
+ * @throws Error if the file doesn't export a valid function.
57
+ */
58
+ async function getJavascriptTransformFunction(filePath, functionName) {
59
+ const requiredModule = await importModule(filePath);
60
+ if (functionName && Object.prototype.hasOwnProperty.call(requiredModule, functionName) && typeof requiredModule[functionName] === "function") return requiredModule[functionName];
61
+ else if (typeof requiredModule === "function") return requiredModule;
62
+ else if (requiredModule.default && typeof requiredModule.default === "function") return requiredModule.default;
63
+ throw new Error(`Transform ${filePath} must export a function, have a default export as a function, or export the specified function "${functionName}"`);
64
+ }
65
+ /**
66
+ * Creates a function that runs a Python transform function.
67
+ * @param filePath - The path to the Python file.
68
+ * @param functionName - The name of the function to run (defaults to 'get_transform').
69
+ * @returns A function that executes the Python transform.
70
+ */
71
+ function getPythonTransformFunction(filePath, functionName = "get_transform") {
72
+ return async (output, context) => {
73
+ return runPython(filePath, functionName, [output, context]);
74
+ };
75
+ }
76
+ /**
77
+ * Retrieves a transform function from a file, supporting both JavaScript and Python.
78
+ * @param filePath - The path to the file, including the 'file://' prefix.
79
+ * @returns A Promise resolving to the requested function.
80
+ * @throws Error if the file format is unsupported.
81
+ */
82
+ async function getFileTransformFunction(filePath) {
83
+ const [actualFilePath, functionName] = parseFilePathAndFunctionName(filePath.slice(7));
84
+ const fullPath = safeJoin(state.basePath || "", actualFilePath);
85
+ if (isJavascriptFile(fullPath)) return getJavascriptTransformFunction(fullPath, functionName);
86
+ else if (fullPath.endsWith(".py")) return getPythonTransformFunction(fullPath, functionName);
87
+ throw new Error(`Unsupported transform file format: file://${actualFilePath}`);
88
+ }
89
+ /**
90
+ * Creates a function from inline JavaScript code.
91
+ * @param code - The JavaScript code to convert into a function.
92
+ * @returns A Function created from the provided code.
93
+ *
94
+ * The function receives three parameters:
95
+ * - The input (output or vars depending on inputType)
96
+ * - A context object
97
+ * - A process object with mainModule.require shimmed for backwards compatibility
98
+ *
99
+ * To use require in inline transforms, use: process.mainModule.require('module-name')
100
+ * Or assign it to a variable: const require = process.mainModule.require;
101
+ */
102
+ function getInlineTransformFunction(code, inputType) {
103
+ return new Function(inputType, "context", "process", code.includes("\n") ? code : `return ${code}`);
104
+ }
105
+ /**
106
+ * Determines and retrieves the appropriate transform function based on the input.
107
+ * @param codeOrFilepath - Either inline code or a file path starting with 'file://'.
108
+ * @returns A Promise resolving to the appropriate transform function.
109
+ */
110
+ async function getTransformFunction(codeOrFilepath, inputType) {
111
+ if (codeOrFilepath.startsWith("file://")) try {
112
+ return await getFileTransformFunction(codeOrFilepath);
113
+ } catch (error) {
114
+ logger.error("Error loading transform function from file", {
115
+ error,
116
+ message: error instanceof Error ? error.message : String(error),
117
+ transform: getTransformLabel(codeOrFilepath)
118
+ });
119
+ throw error;
120
+ }
121
+ else try {
122
+ return getInlineTransformFunction(codeOrFilepath, inputType);
123
+ } catch (error) {
124
+ logger.error("Error creating inline transform function", {
125
+ error,
126
+ message: error instanceof Error ? error.message : String(error),
127
+ transform: getTransformLabel(codeOrFilepath)
128
+ });
129
+ throw error;
130
+ }
131
+ }
132
+ /**
133
+ * Returns a human-readable label for a transform value, suitable for error messages.
134
+ *
135
+ * Inline string transforms are shown verbatim (single-line, truncated to
136
+ * {@link INLINE_STRING_LABEL_MAX_LENGTH}) so users can see which expression failed.
137
+ * Inline functions are shown by name only — their source is never rendered, to avoid
138
+ * leaking implementation details via `Function.toString()` into logs and persisted errors.
139
+ */
140
+ function getTransformLabel(t) {
141
+ if (t == null) return INLINE_STRING_LABEL;
142
+ if (typeof t === "function") return t.name ? `${INLINE_FUNCTION_LABEL}: ${t.name}` : INLINE_FUNCTION_LABEL;
143
+ if (t.startsWith("file://")) return FILE_TRANSFORM_LABEL;
144
+ const singleLine = t.replace(/\s+/g, " ").trim();
145
+ return `${INLINE_STRING_LABEL}: ${singleLine.length > INLINE_STRING_LABEL_MAX_LENGTH ? `${singleLine.slice(0, INLINE_STRING_LABEL_MAX_LENGTH - 1)}…` : singleLine}`;
146
+ }
147
+ /**
148
+ * Transforms the output using a specified function, inline code, or file reference.
149
+ *
150
+ * @param codeOrFilepathOrFn - A TransformFunction, inline JavaScript code, or a file path
151
+ * starting with 'file://'. File paths can include a function name
152
+ * (e.g., 'file://transform.js:myFunction'). Python files default to 'get_transform'.
153
+ * @param transformInput - The input to transform. Can be a string, object, or undefined.
154
+ * @param context - Context object passed to the transform function (vars, prompt, metadata).
155
+ * @param validateReturn - If true (default), throws when the transform returns null/undefined.
156
+ * @param inputType - Whether the first parameter is named 'output' or 'vars' in inline code.
157
+ * @returns A promise that resolves to the transformed output.
158
+ * @throws When the transform is unloadable, throws, or (with `validateReturn`) returns null/undefined.
159
+ */
160
+ async function transform(codeOrFilepathOrFn, transformInput, context, validateReturn = true, inputType = TransformInputType.OUTPUT) {
161
+ const isDirectFunction = typeof codeOrFilepathOrFn === "function";
162
+ const transformFn = isDirectFunction ? codeOrFilepathOrFn : await getTransformFunction(codeOrFilepathOrFn, inputType);
163
+ let ret;
164
+ try {
165
+ ret = isDirectFunction ? await Promise.resolve(transformFn(transformInput, context)) : await Promise.resolve(transformFn(transformInput, context, getProcessShim()));
166
+ } catch (error) {
167
+ const message = error instanceof Error ? error.message : String(error);
168
+ const label = getTransformLabel(codeOrFilepathOrFn);
169
+ logger.error("Error in transform function", {
170
+ error,
171
+ message,
172
+ transform: label
173
+ });
174
+ if (error instanceof Error) {
175
+ const wrapped = /* @__PURE__ */ new Error(`Transform failed (${label}): ${message}`);
176
+ wrapped.cause = error;
177
+ throw wrapped;
178
+ }
179
+ throw error;
180
+ }
181
+ if (validateReturn && (ret === null || ret === void 0)) throw new Error(`Transform function did not return a value\n\n${getTransformLabel(codeOrFilepathOrFn)}`);
182
+ return ret;
183
+ }
184
+ //#endregion
185
+ export { getTransformLabel as a, getTransformErrorMessage as i, TRANSFORM_KEYS as n, transform as o, TransformInputType as r, INLINE_FUNCTION_LABEL as t };
186
+
187
+ //# sourceMappingURL=transform-BnSTnFlp.js.map