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,221 @@
1
+ #!/usr/bin/env node
2
+ import { N as state, s as logger } from "./logger-BbY6ypFL.js";
3
+ import { f as sleep } from "./fetch-DXUnXkVU.js";
4
+ import { n as getTraceStore } from "./store-DKd5592Q.js";
5
+ import { r as getToolNameFromAttributes } from "./toolAttributes-COVgDrBG.js";
6
+ //#region src/tracing/traceContext.ts
7
+ const DEFAULT_MAX_RETRIES = 3;
8
+ const DEFAULT_RETRY_DELAY_MS = 500;
9
+ const SPAN_KIND_MAP = {
10
+ 0: "unspecified",
11
+ 1: "internal",
12
+ 2: "server",
13
+ 3: "client",
14
+ 4: "producer",
15
+ 5: "consumer"
16
+ };
17
+ function resolveSpanKind(span) {
18
+ const attributes = span.attributes || {};
19
+ const attributeKind = attributes["span.kind"] || attributes["otel.span.kind"] || attributes["spanKind"] || attributes["kind"];
20
+ if (attributeKind) return `${attributeKind}`.toLowerCase();
21
+ const numericKind = attributes["otel.span.kind_code"];
22
+ if (typeof numericKind === "number" && numericKind in SPAN_KIND_MAP) return SPAN_KIND_MAP[numericKind];
23
+ return "unspecified";
24
+ }
25
+ function mapStatusCode(span) {
26
+ switch (span.statusCode) {
27
+ case 1: return "ok";
28
+ case 2: return "error";
29
+ default: return "unset";
30
+ }
31
+ }
32
+ function buildSpanTree(spans) {
33
+ const depthMap = /* @__PURE__ */ new Map();
34
+ const spansById = new Map(spans.map((span) => [span.spanId, span]));
35
+ const computeDepth = (span) => {
36
+ if (depthMap.has(span.spanId)) return depthMap.get(span.spanId);
37
+ if (!span.parentSpanId || !spansById.has(span.parentSpanId)) {
38
+ depthMap.set(span.spanId, 0);
39
+ return 0;
40
+ }
41
+ const depth = computeDepth(spansById.get(span.parentSpanId)) + 1;
42
+ depthMap.set(span.spanId, depth);
43
+ return depth;
44
+ };
45
+ spans.forEach((span) => computeDepth(span));
46
+ return depthMap;
47
+ }
48
+ function createTraceSpans(spans) {
49
+ const depthMap = buildSpanTree(spans);
50
+ return spans.map((span) => {
51
+ const endTime = span.endTime ?? span.startTime;
52
+ const durationMs = Math.max(0, endTime - span.startTime);
53
+ return {
54
+ spanId: span.spanId,
55
+ parentSpanId: span.parentSpanId,
56
+ name: span.name,
57
+ kind: resolveSpanKind(span),
58
+ startTime: span.startTime,
59
+ endTime: span.endTime,
60
+ durationMs,
61
+ attributes: span.attributes || {},
62
+ status: {
63
+ code: mapStatusCode(span),
64
+ message: span.statusMessage
65
+ },
66
+ depth: depthMap.get(span.spanId) ?? 0,
67
+ events: []
68
+ };
69
+ });
70
+ }
71
+ function deriveInsights(traceSpans) {
72
+ if (traceSpans.length === 0) return [];
73
+ const insights = [];
74
+ traceSpans.filter((span) => span.status.code === "error").forEach((span) => {
75
+ const statusMessage = span.status.message ? `: ${span.status.message}` : "";
76
+ insights.push(`Error span "${span.name}" (${span.spanId.slice(0, 8)})${statusMessage}`);
77
+ });
78
+ traceSpans.map((span) => ({
79
+ span,
80
+ toolName: getToolNameFromAttributes(span.attributes)
81
+ })).filter((entry) => entry.toolName).forEach(({ span, toolName }) => {
82
+ insights.push(`Tool call ${toolName} via "${span.name}" (duration ${span.durationMs ?? 0}ms)`);
83
+ });
84
+ traceSpans.filter((span) => span.attributes["guardrail.name"] || span.attributes["guardrails.decision"]).forEach((span) => {
85
+ const decision = span.attributes["guardrails.decision"] ?? span.attributes["guardrail.decision"];
86
+ insights.push(`Guardrail ${span.attributes["guardrail.name"] ?? span.name} decision: ${decision ?? "unknown"}`);
87
+ });
88
+ return insights.slice(0, 20);
89
+ }
90
+ function extractTraceIdFromTraceparent(traceparent) {
91
+ if (!traceparent) return null;
92
+ const parts = traceparent.split("-");
93
+ if (parts.length < 2) return null;
94
+ return parts[1];
95
+ }
96
+ async function fetchTraceContext(traceId, options = {}) {
97
+ const { includeInternalSpans = true, sanitizeAttributes = true, maxRetries = DEFAULT_MAX_RETRIES, retryDelayMs = DEFAULT_RETRY_DELAY_MS, ...spanOptions } = options;
98
+ const traceStore = getTraceStore();
99
+ for (let attempt = 0; attempt <= maxRetries; attempt++) try {
100
+ const spans = await traceStore.getSpans(traceId, {
101
+ includeInternalSpans,
102
+ sanitizeAttributes,
103
+ ...spanOptions
104
+ });
105
+ if (spans.length === 0) {
106
+ if (attempt === maxRetries) {
107
+ logger.debug(`[TraceContext] No spans found for trace ${traceId} after ${attempt + 1} attempts`);
108
+ return null;
109
+ }
110
+ logger.debug(`[TraceContext] No spans yet for trace ${traceId}, retrying in ${retryDelayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
111
+ await sleep(retryDelayMs);
112
+ continue;
113
+ }
114
+ const traceSpans = createTraceSpans(spans);
115
+ const insights = deriveInsights(traceSpans);
116
+ const context = {
117
+ traceId,
118
+ spans: traceSpans,
119
+ insights,
120
+ fetchedAt: Date.now()
121
+ };
122
+ logger.debug(`[TraceContext] Resolved ${traceSpans.length} spans for trace ${traceId} with ${insights.length} insights`);
123
+ return context;
124
+ } catch (error) {
125
+ logger.error(`[TraceContext] Failed to fetch spans for trace ${traceId}: ${error}`);
126
+ if (attempt === maxRetries) return null;
127
+ await sleep(retryDelayMs);
128
+ }
129
+ return null;
130
+ }
131
+ //#endregion
132
+ //#region src/redteam/providers/traceFormatting.ts
133
+ const DEFAULT_MAX_SPANS = 10;
134
+ function formatDuration(durationMs) {
135
+ if (!durationMs || Number.isNaN(durationMs)) return "0ms";
136
+ if (durationMs < 1e3) return `${Math.round(durationMs)}ms`;
137
+ if (durationMs < 6e4) return `${(durationMs / 1e3).toFixed(1)}s`;
138
+ return `${(durationMs / 6e4).toFixed(1)}m`;
139
+ }
140
+ function formatSpan(span) {
141
+ const parts = [];
142
+ const duration = formatDuration(span.durationMs);
143
+ parts.push(`[${duration}] ${span.name}${span.kind && span.kind !== "unspecified" ? ` (${span.kind})` : ""}`);
144
+ const tool = getToolNameFromAttributes(span.attributes);
145
+ if (tool) parts.push(`tool=${tool}`);
146
+ const model = span.attributes["model"] || span.attributes["llm.model"];
147
+ if (model) parts.push(`model=${model}`);
148
+ if (span.status.code === "error") parts.push(`ERROR: ${span.status.message ?? "Unknown error"}`);
149
+ return parts.join(" | ");
150
+ }
151
+ function formatTraceSummary(trace, options = {}) {
152
+ if (!trace || trace.spans.length === 0) return "No trace spans recorded during this iteration.";
153
+ const maxSpans = options.maxSpans ?? DEFAULT_MAX_SPANS;
154
+ const spans = trace.spans.slice(0, maxSpans);
155
+ return [
156
+ `Trace ${trace.traceId.slice(0, 8)} • ${trace.spans.length} span${trace.spans.length === 1 ? "" : "s"}`,
157
+ "",
158
+ "Execution Flow:",
159
+ spans.map((span, index) => `${index + 1}. ${formatSpan(span)}`).join("\n"),
160
+ "",
161
+ "Key Observations:",
162
+ trace.insights.length > 0 ? trace.insights.map((i) => `• ${i}`).join("\n") : "None"
163
+ ].join("\n");
164
+ }
165
+ function formatTraceForMetadata(trace) {
166
+ return {
167
+ traceId: trace.traceId,
168
+ fetchedAt: trace.fetchedAt,
169
+ spanCount: trace.spans.length,
170
+ insights: trace.insights
171
+ };
172
+ }
173
+ //#endregion
174
+ //#region src/redteam/providers/tracingOptions.ts
175
+ const DEFAULT_TRACING_OPTIONS = {
176
+ enabled: false,
177
+ includeInAttack: true,
178
+ includeInGrading: true,
179
+ includeInternalSpans: false,
180
+ maxSpans: 50,
181
+ maxDepth: 5,
182
+ maxRetries: 3,
183
+ retryDelayMs: 500,
184
+ spanFilter: void 0,
185
+ sanitizeAttributes: true
186
+ };
187
+ function mergeTracingConfig(...configs) {
188
+ return configs.reduce((acc, config) => config ? {
189
+ ...acc,
190
+ ...config
191
+ } : acc, {});
192
+ }
193
+ function normalizeTracingOptions(config) {
194
+ const merged = {
195
+ ...DEFAULT_TRACING_OPTIONS,
196
+ ...config
197
+ };
198
+ return {
199
+ enabled: Boolean(merged.enabled),
200
+ includeInAttack: merged.includeInAttack ?? DEFAULT_TRACING_OPTIONS.includeInAttack ?? true,
201
+ includeInGrading: merged.includeInGrading ?? DEFAULT_TRACING_OPTIONS.includeInGrading ?? true,
202
+ includeInternalSpans: merged.includeInternalSpans ?? DEFAULT_TRACING_OPTIONS.includeInternalSpans ?? false,
203
+ maxSpans: merged.maxSpans ?? DEFAULT_TRACING_OPTIONS.maxSpans,
204
+ maxDepth: merged.maxDepth ?? DEFAULT_TRACING_OPTIONS.maxDepth,
205
+ maxRetries: merged.maxRetries ?? DEFAULT_TRACING_OPTIONS.maxRetries,
206
+ retryDelayMs: merged.retryDelayMs ?? DEFAULT_TRACING_OPTIONS.retryDelayMs,
207
+ spanFilter: merged.spanFilter,
208
+ sanitizeAttributes: merged.sanitizeAttributes ?? DEFAULT_TRACING_OPTIONS.sanitizeAttributes
209
+ };
210
+ }
211
+ function resolveTracingOptions({ strategyId, test, config }) {
212
+ const globalConfig = state.config?.redteam?.tracing ?? void 0;
213
+ const testConfig = test?.metadata?.tracing ?? void 0;
214
+ const metadataStrategyConfig = (test?.metadata?.strategyConfig)?.tracing;
215
+ const providerStrategyConfig = config?.tracing ?? void 0;
216
+ 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));
217
+ }
218
+ //#endregion
219
+ export { fetchTraceContext as a, extractTraceIdFromTraceparent as i, formatTraceForMetadata as n, formatTraceSummary as r, resolveTracingOptions as t };
220
+
221
+ //# sourceMappingURL=tracingOptions-BnwKCkSB.js.map
@@ -0,0 +1,219 @@
1
+ import { a as logger, k as state } from "./logger-KD8JjCRJ.js";
2
+ import { m as sleep } from "./fetch-BufrQtvR.js";
3
+ import { i as getTraceStore, r as getToolNameFromAttributes } from "./server/index.js";
4
+ //#region src/tracing/traceContext.ts
5
+ const DEFAULT_MAX_RETRIES = 3;
6
+ const DEFAULT_RETRY_DELAY_MS = 500;
7
+ const SPAN_KIND_MAP = {
8
+ 0: "unspecified",
9
+ 1: "internal",
10
+ 2: "server",
11
+ 3: "client",
12
+ 4: "producer",
13
+ 5: "consumer"
14
+ };
15
+ function resolveSpanKind(span) {
16
+ const attributes = span.attributes || {};
17
+ const attributeKind = attributes["span.kind"] || attributes["otel.span.kind"] || attributes["spanKind"] || attributes["kind"];
18
+ if (attributeKind) return `${attributeKind}`.toLowerCase();
19
+ const numericKind = attributes["otel.span.kind_code"];
20
+ if (typeof numericKind === "number" && numericKind in SPAN_KIND_MAP) return SPAN_KIND_MAP[numericKind];
21
+ return "unspecified";
22
+ }
23
+ function mapStatusCode(span) {
24
+ switch (span.statusCode) {
25
+ case 1: return "ok";
26
+ case 2: return "error";
27
+ default: return "unset";
28
+ }
29
+ }
30
+ function buildSpanTree(spans) {
31
+ const depthMap = /* @__PURE__ */ new Map();
32
+ const spansById = new Map(spans.map((span) => [span.spanId, span]));
33
+ const computeDepth = (span) => {
34
+ if (depthMap.has(span.spanId)) return depthMap.get(span.spanId);
35
+ if (!span.parentSpanId || !spansById.has(span.parentSpanId)) {
36
+ depthMap.set(span.spanId, 0);
37
+ return 0;
38
+ }
39
+ const depth = computeDepth(spansById.get(span.parentSpanId)) + 1;
40
+ depthMap.set(span.spanId, depth);
41
+ return depth;
42
+ };
43
+ spans.forEach((span) => computeDepth(span));
44
+ return depthMap;
45
+ }
46
+ function createTraceSpans(spans) {
47
+ const depthMap = buildSpanTree(spans);
48
+ return spans.map((span) => {
49
+ const endTime = span.endTime ?? span.startTime;
50
+ const durationMs = Math.max(0, endTime - span.startTime);
51
+ return {
52
+ spanId: span.spanId,
53
+ parentSpanId: span.parentSpanId,
54
+ name: span.name,
55
+ kind: resolveSpanKind(span),
56
+ startTime: span.startTime,
57
+ endTime: span.endTime,
58
+ durationMs,
59
+ attributes: span.attributes || {},
60
+ status: {
61
+ code: mapStatusCode(span),
62
+ message: span.statusMessage
63
+ },
64
+ depth: depthMap.get(span.spanId) ?? 0,
65
+ events: []
66
+ };
67
+ });
68
+ }
69
+ function deriveInsights(traceSpans) {
70
+ if (traceSpans.length === 0) return [];
71
+ const insights = [];
72
+ traceSpans.filter((span) => span.status.code === "error").forEach((span) => {
73
+ const statusMessage = span.status.message ? `: ${span.status.message}` : "";
74
+ insights.push(`Error span "${span.name}" (${span.spanId.slice(0, 8)})${statusMessage}`);
75
+ });
76
+ traceSpans.map((span) => ({
77
+ span,
78
+ toolName: getToolNameFromAttributes(span.attributes)
79
+ })).filter((entry) => entry.toolName).forEach(({ span, toolName }) => {
80
+ insights.push(`Tool call ${toolName} via "${span.name}" (duration ${span.durationMs ?? 0}ms)`);
81
+ });
82
+ traceSpans.filter((span) => span.attributes["guardrail.name"] || span.attributes["guardrails.decision"]).forEach((span) => {
83
+ const decision = span.attributes["guardrails.decision"] ?? span.attributes["guardrail.decision"];
84
+ insights.push(`Guardrail ${span.attributes["guardrail.name"] ?? span.name} decision: ${decision ?? "unknown"}`);
85
+ });
86
+ return insights.slice(0, 20);
87
+ }
88
+ function extractTraceIdFromTraceparent(traceparent) {
89
+ if (!traceparent) return null;
90
+ const parts = traceparent.split("-");
91
+ if (parts.length < 2) return null;
92
+ return parts[1];
93
+ }
94
+ async function fetchTraceContext(traceId, options = {}) {
95
+ const { includeInternalSpans = true, sanitizeAttributes = true, maxRetries = DEFAULT_MAX_RETRIES, retryDelayMs = DEFAULT_RETRY_DELAY_MS, ...spanOptions } = options;
96
+ const traceStore = getTraceStore();
97
+ for (let attempt = 0; attempt <= maxRetries; attempt++) try {
98
+ const spans = await traceStore.getSpans(traceId, {
99
+ includeInternalSpans,
100
+ sanitizeAttributes,
101
+ ...spanOptions
102
+ });
103
+ if (spans.length === 0) {
104
+ if (attempt === maxRetries) {
105
+ logger.debug(`[TraceContext] No spans found for trace ${traceId} after ${attempt + 1} attempts`);
106
+ return null;
107
+ }
108
+ logger.debug(`[TraceContext] No spans yet for trace ${traceId}, retrying in ${retryDelayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
109
+ await sleep(retryDelayMs);
110
+ continue;
111
+ }
112
+ const traceSpans = createTraceSpans(spans);
113
+ const insights = deriveInsights(traceSpans);
114
+ const context = {
115
+ traceId,
116
+ spans: traceSpans,
117
+ insights,
118
+ fetchedAt: Date.now()
119
+ };
120
+ logger.debug(`[TraceContext] Resolved ${traceSpans.length} spans for trace ${traceId} with ${insights.length} insights`);
121
+ return context;
122
+ } catch (error) {
123
+ logger.error(`[TraceContext] Failed to fetch spans for trace ${traceId}: ${error}`);
124
+ if (attempt === maxRetries) return null;
125
+ await sleep(retryDelayMs);
126
+ }
127
+ return null;
128
+ }
129
+ //#endregion
130
+ //#region src/redteam/providers/traceFormatting.ts
131
+ const DEFAULT_MAX_SPANS = 10;
132
+ function formatDuration(durationMs) {
133
+ if (!durationMs || Number.isNaN(durationMs)) return "0ms";
134
+ if (durationMs < 1e3) return `${Math.round(durationMs)}ms`;
135
+ if (durationMs < 6e4) return `${(durationMs / 1e3).toFixed(1)}s`;
136
+ return `${(durationMs / 6e4).toFixed(1)}m`;
137
+ }
138
+ function formatSpan(span) {
139
+ const parts = [];
140
+ const duration = formatDuration(span.durationMs);
141
+ parts.push(`[${duration}] ${span.name}${span.kind && span.kind !== "unspecified" ? ` (${span.kind})` : ""}`);
142
+ const tool = getToolNameFromAttributes(span.attributes);
143
+ if (tool) parts.push(`tool=${tool}`);
144
+ const model = span.attributes["model"] || span.attributes["llm.model"];
145
+ if (model) parts.push(`model=${model}`);
146
+ if (span.status.code === "error") parts.push(`ERROR: ${span.status.message ?? "Unknown error"}`);
147
+ return parts.join(" | ");
148
+ }
149
+ function formatTraceSummary(trace, options = {}) {
150
+ if (!trace || trace.spans.length === 0) return "No trace spans recorded during this iteration.";
151
+ const maxSpans = options.maxSpans ?? DEFAULT_MAX_SPANS;
152
+ const spans = trace.spans.slice(0, maxSpans);
153
+ return [
154
+ `Trace ${trace.traceId.slice(0, 8)} • ${trace.spans.length} span${trace.spans.length === 1 ? "" : "s"}`,
155
+ "",
156
+ "Execution Flow:",
157
+ spans.map((span, index) => `${index + 1}. ${formatSpan(span)}`).join("\n"),
158
+ "",
159
+ "Key Observations:",
160
+ trace.insights.length > 0 ? trace.insights.map((i) => `• ${i}`).join("\n") : "None"
161
+ ].join("\n");
162
+ }
163
+ function formatTraceForMetadata(trace) {
164
+ return {
165
+ traceId: trace.traceId,
166
+ fetchedAt: trace.fetchedAt,
167
+ spanCount: trace.spans.length,
168
+ insights: trace.insights
169
+ };
170
+ }
171
+ //#endregion
172
+ //#region src/redteam/providers/tracingOptions.ts
173
+ const DEFAULT_TRACING_OPTIONS = {
174
+ enabled: false,
175
+ includeInAttack: true,
176
+ includeInGrading: true,
177
+ includeInternalSpans: false,
178
+ maxSpans: 50,
179
+ maxDepth: 5,
180
+ maxRetries: 3,
181
+ retryDelayMs: 500,
182
+ spanFilter: void 0,
183
+ sanitizeAttributes: true
184
+ };
185
+ function mergeTracingConfig(...configs) {
186
+ return configs.reduce((acc, config) => config ? {
187
+ ...acc,
188
+ ...config
189
+ } : acc, {});
190
+ }
191
+ function normalizeTracingOptions(config) {
192
+ const merged = {
193
+ ...DEFAULT_TRACING_OPTIONS,
194
+ ...config
195
+ };
196
+ return {
197
+ enabled: Boolean(merged.enabled),
198
+ includeInAttack: merged.includeInAttack ?? DEFAULT_TRACING_OPTIONS.includeInAttack ?? true,
199
+ includeInGrading: merged.includeInGrading ?? DEFAULT_TRACING_OPTIONS.includeInGrading ?? true,
200
+ includeInternalSpans: merged.includeInternalSpans ?? DEFAULT_TRACING_OPTIONS.includeInternalSpans ?? false,
201
+ maxSpans: merged.maxSpans ?? DEFAULT_TRACING_OPTIONS.maxSpans,
202
+ maxDepth: merged.maxDepth ?? DEFAULT_TRACING_OPTIONS.maxDepth,
203
+ maxRetries: merged.maxRetries ?? DEFAULT_TRACING_OPTIONS.maxRetries,
204
+ retryDelayMs: merged.retryDelayMs ?? DEFAULT_TRACING_OPTIONS.retryDelayMs,
205
+ spanFilter: merged.spanFilter,
206
+ sanitizeAttributes: merged.sanitizeAttributes ?? DEFAULT_TRACING_OPTIONS.sanitizeAttributes
207
+ };
208
+ }
209
+ function resolveTracingOptions({ strategyId, test, config }) {
210
+ const globalConfig = state.config?.redteam?.tracing ?? void 0;
211
+ const testConfig = test?.metadata?.tracing ?? void 0;
212
+ const metadataStrategyConfig = (test?.metadata?.strategyConfig)?.tracing;
213
+ const providerStrategyConfig = config?.tracing ?? void 0;
214
+ 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));
215
+ }
216
+ //#endregion
217
+ export { fetchTraceContext as a, extractTraceIdFromTraceparent as i, formatTraceForMetadata as n, formatTraceSummary as r, resolveTracingOptions as t };
218
+
219
+ //# sourceMappingURL=tracingOptions-Chi74lOD.js.map
@@ -0,0 +1,249 @@
1
+ const require_logger = require("./logger-cfNpzI4o.cjs");
2
+ const require_fetch = require("./fetch-Dw4XZHjj.cjs");
3
+ const require_store = require("./store-B2NDDooM.cjs");
4
+ const require_toolAttributes = require("./toolAttributes-BAjwcBf0.cjs");
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: require_toolAttributes.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 = require_store.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
+ require_logger.logger.debug(`[TraceContext] No spans found for trace ${traceId} after ${attempt + 1} attempts`);
107
+ return null;
108
+ }
109
+ require_logger.logger.debug(`[TraceContext] No spans yet for trace ${traceId}, retrying in ${retryDelayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
110
+ await require_fetch.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
+ require_logger.logger.debug(`[TraceContext] Resolved ${traceSpans.length} spans for trace ${traceId} with ${insights.length} insights`);
122
+ return context;
123
+ } catch (error) {
124
+ require_logger.logger.error(`[TraceContext] Failed to fetch spans for trace ${traceId}: ${error}`);
125
+ if (attempt === maxRetries) return null;
126
+ await require_fetch.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 = require_toolAttributes.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 = require_logger.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
+ Object.defineProperty(exports, "extractTraceIdFromTraceparent", {
219
+ enumerable: true,
220
+ get: function() {
221
+ return extractTraceIdFromTraceparent;
222
+ }
223
+ });
224
+ Object.defineProperty(exports, "fetchTraceContext", {
225
+ enumerable: true,
226
+ get: function() {
227
+ return fetchTraceContext;
228
+ }
229
+ });
230
+ Object.defineProperty(exports, "formatTraceForMetadata", {
231
+ enumerable: true,
232
+ get: function() {
233
+ return formatTraceForMetadata;
234
+ }
235
+ });
236
+ Object.defineProperty(exports, "formatTraceSummary", {
237
+ enumerable: true,
238
+ get: function() {
239
+ return formatTraceSummary;
240
+ }
241
+ });
242
+ Object.defineProperty(exports, "resolveTracingOptions", {
243
+ enumerable: true,
244
+ get: function() {
245
+ return resolveTracingOptions;
246
+ }
247
+ });
248
+
249
+ //# sourceMappingURL=tracingOptions-DrbSFaKy.cjs.map