promptfoo 0.121.5 → 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 (490) hide show
  1. package/dist/src/{ListApp-BRUsT43Y.js → ListApp-DLmM02JS.js} +1 -1
  2. package/dist/src/{accounts-CaLNYnf7.js → accounts-Ca7WIoPY.js} +12 -7
  3. package/dist/src/{accounts-CLJHCDDb.js → accounts-CjFnOPmb.js} +13 -8
  4. package/dist/src/{accounts-BIFntVWB.cjs → accounts-CmWzeD2d.cjs} +16 -10
  5. package/dist/src/{accounts-bnyHT7Ju.js → accounts-DanM1wq_.js} +12 -7
  6. package/dist/src/{agentic-utils-BclbiXiq.js → agentic-utils-CJ0j3fBi.js} +2 -2
  7. package/dist/src/{agentic-utils-B5krlibj.js → agentic-utils-DDEGRV9v.js} +2 -2
  8. package/dist/src/{agentic-utils-D2x0wGhB.cjs → agentic-utils-DvPWSUpb.cjs} +8 -7
  9. package/dist/src/{agentic-utils-Ba67xmgs.js → agentic-utils-TxUEMPYS.js} +2 -2
  10. package/dist/src/{agents-WULPVjbH.cjs → agents-B4sRuXg3.cjs} +7 -6
  11. package/dist/src/{agents-DhxWMCtH.js → agents-B8q7h_ek.js} +4 -4
  12. package/dist/src/{agents-BGqaTDnr.js → agents-CBgJvRkB.js} +20 -9
  13. package/dist/src/{agents-n6vPqV3i.js → agents-CYn2n3QP.js} +4 -4
  14. package/dist/src/{agents-BV9yFpXX.js → agents-D-vDNFx4.js} +20 -9
  15. package/dist/src/{agents-BYdMl1UE.js → agents-LrHuQqr1.js} +20 -9
  16. package/dist/src/{agents-emVcx3yh.js → agents-QGg76OF-.js} +2 -2
  17. package/dist/src/{agents-DiWmQYH9.cjs → agents-eHZ9nlgA.cjs} +21 -10
  18. package/dist/src/{aimlapi-uPGp0Zdo.js → aimlapi-CJEbQ0o6.js} +6 -6
  19. package/dist/src/{aimlapi-DR4pgeiC.js → aimlapi-D5HXzZ0s.js} +6 -6
  20. package/dist/src/{aimlapi-BzLjZI_m.cjs → aimlapi-T6HGNxNe.cjs} +7 -7
  21. package/dist/src/{aimlapi-BxqK9HF_.js → aimlapi-eYv3a_DK.js} +6 -6
  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 +6 -6
  33. package/dist/src/{audio-Da8U9IS5.js → audio-BqnRvcWG.js} +3 -3
  34. package/dist/src/{audio-BvpTOArF.js → audio-CPMtV1yR.js} +3 -3
  35. package/dist/src/{audio-CScmnmEB.js → audio-DyiebVB3.js} +3 -3
  36. package/dist/src/{audio-C0vDeS0j.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-BTux96b1.js → base-CKLo890h.js} +4 -3
  42. package/dist/src/{base-BOMaNEes.js → base-Co80MMCi.js} +4 -3
  43. package/dist/src/{base-Tw6uhH8K.cjs → base-DGJW48uz.cjs} +5 -4
  44. package/dist/src/{base-dYsl2hmL.js → base-E9I8zXjz.js} +4 -3
  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-B95F_7vE.cjs → blobs-B0977K1O.cjs} +7 -6
  50. package/dist/src/{blobs-D_gg8nbm.js → blobs-CeFdPn_T.js} +2 -2
  51. package/dist/src/{blobs-DjLby-uP.js → blobs-DODuTK-a.js} +2 -2
  52. package/dist/src/{blobs-BW4U31ue.js → blobs-Dwef1Ao1.js} +2 -2
  53. package/dist/src/{cache-DGg-yTZG.cjs → cache-CPGUA4Yl.cjs} +135 -25
  54. package/dist/src/cache-Cf7b4pWE.js +3 -0
  55. package/dist/src/{cache-Bzttsk0X.js → cache-DIXbtkNO.js} +125 -10
  56. package/dist/src/{cache-BI5BY7ey.js → cache-DpPWrkTE.js} +127 -11
  57. package/dist/src/{cache-Cr-qWIbP.js → cache-roFAE0cI.js} +125 -10
  58. package/dist/src/{chat-DChSH_Es.js → chat-CUCorGiL.js} +9 -9
  59. package/dist/src/{chat-DH97tVV9.cjs → chat-DG1wG4w0.cjs} +6 -6
  60. package/dist/src/{chat-Cx_LkwvZ.js → chat-Dabu84Br.js} +11 -11
  61. package/dist/src/{chat-BLOdH60v.js → chat-DqUFcWI0.js} +11 -11
  62. package/dist/src/{chat-vYqqv1gP.cjs → chat-DxTDQ83C.cjs} +14 -13
  63. package/dist/src/{chat-DG2LkwLq.js → chat-GmlolEwo.js} +4 -4
  64. package/dist/src/{chat-aMQZw6R7.js → chat-TP8Qifkh.js} +4 -4
  65. package/dist/src/{chat-D9nudO9b.js → chat-iwaM5UTQ.js} +4 -4
  66. package/dist/src/{chatkit-B8X34dQc.js → chatkit-B6DWi70Q.js} +3 -3
  67. package/dist/src/{chatkit-D44VyUyB.cjs → chatkit-BYveR48_.cjs} +6 -5
  68. package/dist/src/{chatkit-BXu42Qwt.js → chatkit-fARZwEfV.js} +3 -3
  69. package/dist/src/{chatkit-CbMRoeYw.js → chatkit-lb6FK02w.js} +1 -1
  70. package/dist/src/{claude-agent-sdk-BzNZeZ0N.js → claude-agent-sdk-BQNp_y-F.js} +209 -64
  71. package/dist/src/{claude-agent-sdk-BjriSVRZ.js → claude-agent-sdk-D5Jl0SDh.js} +210 -65
  72. package/dist/src/{claude-agent-sdk-BRq0bbIK.cjs → claude-agent-sdk-DH416NBD.cjs} +216 -70
  73. package/dist/src/{claude-agent-sdk-DYv_AJ8u.js → claude-agent-sdk-x1XJ1-pU.js} +210 -65
  74. package/dist/src/{cloud-Da0bofJd.js → cloud-D3DiFqH6.js} +2 -2
  75. package/dist/src/cloud-p96PA4MH.js +3 -0
  76. package/dist/src/{cloudflare-ai-CXC4b1EU.js → cloudflare-ai-B6NVI3ax.js} +4 -4
  77. package/dist/src/{cloudflare-ai-DJv5qnyb.cjs → cloudflare-ai-CEAW-xQa.cjs} +6 -6
  78. package/dist/src/{cloudflare-ai-CyBoIs1Q.js → cloudflare-ai-RFSojyXG.js} +4 -4
  79. package/dist/src/{cloudflare-ai-DGOwgexC.js → cloudflare-ai-r4tbYmWU.js} +4 -4
  80. package/dist/src/{cloudflare-gateway-D-dnkzCF.js → cloudflare-gateway-BCkLouto.js} +3 -3
  81. package/dist/src/{cloudflare-gateway-TJkVrZlB.js → cloudflare-gateway-BaZ4insB.js} +3 -3
  82. package/dist/src/{cloudflare-gateway-1sAoOyft.js → cloudflare-gateway-CF-Vb-2Z.js} +3 -3
  83. package/dist/src/{cloudflare-gateway-DKVjkDav.cjs → cloudflare-gateway-TJMLBj6I.cjs} +5 -5
  84. package/dist/src/{codex-app-server-CCe0TiDc.js → codex-app-server-B8KHEiF4.js} +5 -5
  85. package/dist/src/{codex-app-server-VMRnjZ68.cjs → codex-app-server-CnrLBCeA.cjs} +12 -11
  86. package/dist/src/{codex-app-server-CCLjqCh9.js → codex-app-server-DIXZ230V.js} +4 -4
  87. package/dist/src/{codex-app-server-CPW1LFwh.js → codex-app-server-Dd22dC_N.js} +5 -5
  88. package/dist/src/{codex-sdk-BgEFQ70r.js → codex-sdk-B6Wah8Pa.js} +5 -5
  89. package/dist/src/codex-sdk-BGjVAk23.js +3 -0
  90. package/dist/src/{codex-sdk-Bd8UbO9q.cjs → codex-sdk-CFF6gUyi.cjs} +18 -10
  91. package/dist/src/{codex-sdk-Bzb_TqX9.js → codex-sdk-CmQABzV3.js} +3 -3
  92. package/dist/src/{codex-sdk-DfvDTN33.js → codex-sdk-D2d54RL8.js} +5 -5
  93. package/dist/src/{cometapi-B5ImDlSm.js → cometapi-Bu9B8NUY.js} +7 -7
  94. package/dist/src/{cometapi-CCbpHkuF.js → cometapi-CtzNCHKu.js} +7 -7
  95. package/dist/src/{cometapi-BgAkuYCw.cjs → cometapi-DHCDlQUI.cjs} +8 -8
  96. package/dist/src/{cometapi-CC7hWxmX.js → cometapi-OBILPLlu.js} +7 -7
  97. package/dist/src/{completion-Vq_ad618.js → completion-CO2e1_62.js} +4 -4
  98. package/dist/src/{completion-DtQ72Bm3.cjs → completion-CSYfl2cd.cjs} +6 -6
  99. package/dist/src/{completion-2iuYVxwi.js → completion-DZNxcyfG.js} +5 -5
  100. package/dist/src/{completion-CrD6MQ93.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-Un4Q_huE.js → createHash-CGVzWdjj.js} +1 -1
  107. package/dist/src/{createHash-VvBIc-AW.cjs → createHash-CSiqnK5P.cjs} +2 -2
  108. package/dist/src/{createHash-DPpsZgFF.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--3qzPa-6.js → docker-4D1eL6Gq.js} +5 -5
  118. package/dist/src/{docker-Dorv4_Dg.js → docker-BBv1WUDu.js} +5 -5
  119. package/dist/src/{docker-D3AY-5F5.cjs → docker-D06JUoe2.cjs} +6 -6
  120. package/dist/src/{docker-DCsCDvwM.js → docker-DdJQBxK9.js} +5 -5
  121. package/dist/src/{embedding-DNRvZwRN.js → embedding--UZVe4_7.js} +5 -5
  122. package/dist/src/{embedding-BXhN5lCH.cjs → embedding-BbrwopfX.cjs} +6 -6
  123. package/dist/src/{embedding-ChS1ivFS.js → embedding-Bi3rxrZF.js} +5 -5
  124. package/dist/src/{embedding-D_bI4NDq.js → embedding-C251p1-8.js} +4 -4
  125. package/dist/src/{errors-DFHe4L-n.js → errors-9PcUL8BC.js} +1 -1
  126. package/dist/src/{esm-B_rGuPTo.cjs → esm-BIKakvNa.cjs} +8 -7
  127. package/dist/src/{esm-BRkfNsYs.js → esm-BTK1W7lG.js} +1 -1
  128. package/dist/src/{esm-BX8fwlAO.js → esm-Bexx2PFc.js} +1 -1
  129. package/dist/src/{eval-DJ_4A-tr.js → eval-0VRANImH.js} +19 -19
  130. package/dist/src/{eval-BQPLBJbw.js → eval-DscR5iOM.js} +1 -1
  131. package/dist/src/{evalResult-pSvGWFMo.js → evalResult-2RRJvFyB.js} +18 -11
  132. package/dist/src/{evalResult-Cx-8OWkb.cjs → evalResult-CvtS8h8u.cjs} +29 -11
  133. package/dist/src/evalResult-DqzsS6_W.js +3 -0
  134. package/dist/src/{evalResult-D6P5I5il.js → evalResult-eUkJv9Ko.js} +17 -10
  135. package/dist/src/evaluator-DNdJF1Gv.js +3 -0
  136. package/dist/src/{evaluator-D-UIbbYq.js → evaluator-DRoiYB2q.js} +258 -132
  137. package/dist/src/evaluatorHelpers-BsYP_muT.js +511 -0
  138. package/dist/src/evaluatorHelpers-CRqTvSux.cjs +537 -0
  139. package/dist/src/evaluatorHelpers-DuqFFfq7.js +510 -0
  140. package/dist/src/{extractor-YlZbUMsL.js → extractor-BR7XAzAL.js} +5 -5
  141. package/dist/src/{extractor-Dxr2J_wK.cjs → extractor-BdxEtt3J.cjs} +6 -6
  142. package/dist/src/{extractor-DxyiFhPk.js → extractor-CIW3iN-b.js} +5 -5
  143. package/dist/src/{extractor-BM3jRERL.js → extractor-CxRtnaHl.js} +5 -5
  144. package/dist/src/{fetch-Y5qX_kST.js → fetch-BufrQtvR.js} +90 -26
  145. package/dist/src/{fetch-B6ch2nU2.js → fetch-DXUnXkVU.js} +86 -26
  146. package/dist/src/{fetch-NuqXW1Xb.cjs → fetch-Dw4XZHjj.cjs} +115 -32
  147. package/dist/src/{fetch-D9xxyC1p.js → fetch-It34O8Ur.js} +90 -26
  148. package/dist/src/fetch-_YgGd2qv.js +3 -0
  149. package/dist/src/{fileExtensions-D9h-8Wxg.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
  150. package/dist/src/{fileExtensions-BGh-W-HT.js → fileExtensions-CXRfY3Ss.js} +12 -2
  151. package/dist/src/{fileExtensions-DysCsxNG.js → fileExtensions-D4GCJ67J.js} +12 -2
  152. package/dist/src/{formatDuration-Ch4A7G3o.js → formatDuration-CMVNrYvE.js} +1 -1
  153. package/dist/src/{genaiTracer-BokHC-MW.cjs → genaiTracer-14nugQQx.cjs} +14 -2
  154. package/dist/src/{genaiTracer-C3ZPQU60.js → genaiTracer-BPVvltoW.js} +2 -2
  155. package/dist/src/{genaiTracer-DxODqT9e.js → genaiTracer-D18lYzhB.js} +2 -2
  156. package/dist/src/{genaiTracer-CFny3gOy.js → genaiTracer-jJKYsnjc.js} +2 -2
  157. package/dist/src/goat-Ckd3q3AY.js +467 -0
  158. package/dist/src/goat-Qgurm-NP.js +466 -0
  159. package/dist/src/goat-ghadEDdy.js +465 -0
  160. package/dist/src/goat-una6pZGP.cjs +469 -0
  161. package/dist/src/graders-BDT7dif6.js +3 -0
  162. package/dist/src/{graders-CgPn32yp.js → graders-BGP99PdK.js} +1017 -84
  163. package/dist/src/{graders-BoUqsCEm.js → graders-BX0f2tvS.js} +1022 -84
  164. package/dist/src/{graders-CwrbifOo.js → graders-C0nXU_ZP.js} +1020 -82
  165. package/dist/src/{graders-Bw1wk_21.cjs → graders-ClrU2fnd.cjs} +1085 -128
  166. package/dist/src/hydra-BSNZZm2M.js +543 -0
  167. package/dist/src/hydra-BxdG4nkg.js +541 -0
  168. package/dist/src/hydra-DE4xWwyc.js +542 -0
  169. package/dist/src/hydra-DrJttnvw.cjs +542 -0
  170. package/dist/src/image-B4oBtu6J.js +443 -0
  171. package/dist/src/{image-Dr_3I3nK.js → image-BN-hjLL9.js} +3 -3
  172. package/dist/src/{image-BeWaInPF.js → image-B_fPIwdg.js} +3 -3
  173. package/dist/src/image-BvUAW344.js +442 -0
  174. package/dist/src/image-Cvjwx1uY.js +442 -0
  175. package/dist/src/{image-D10dNAav.cjs → image-DfVCGPbI.cjs} +4 -4
  176. package/dist/src/{image-qjO6FWPs.js → image-QzmydkiG.js} +3 -3
  177. package/dist/src/image-X0oY4350.cjs +465 -0
  178. package/dist/src/index.cjs +688 -313
  179. package/dist/src/index.d.cts +3152 -1617
  180. package/dist/src/index.d.ts +3151 -1616
  181. package/dist/src/index.js +582 -223
  182. package/dist/src/indirectWebPwn-02ZIghCS.js +259 -0
  183. package/dist/src/indirectWebPwn-BJ22AbQa.cjs +397 -0
  184. package/dist/src/indirectWebPwn-CbjUG0rh.js +385 -0
  185. package/dist/src/indirectWebPwn-CfQJt3gk.cjs +260 -0
  186. package/dist/src/indirectWebPwn-DBQhOjoD.js +260 -0
  187. package/dist/src/indirectWebPwn-OsXnKejv.js +259 -0
  188. package/dist/src/indirectWebPwn-tNx9OZ35.js +385 -0
  189. package/dist/src/indirectWebPwn-uyWdHx04.js +386 -0
  190. package/dist/src/inputVariables-B0qUChbV.js +467 -0
  191. package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
  192. package/dist/src/inputVariables-DXFdi7AI.js +468 -0
  193. package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
  194. package/dist/src/{interactiveCheck-CCICw2cy.js → interactiveCheck-C4QlIuoR.js} +1 -1
  195. package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
  196. package/dist/src/iterative-CpU6i2As.js +490 -0
  197. package/dist/src/iterative-DJQEQpG3.js +491 -0
  198. package/dist/src/iterative-DQBuWM-j.cjs +493 -0
  199. package/dist/src/iterative-FTS4Bz67.js +492 -0
  200. package/dist/src/iterativeImage-BUABMVOA.js +413 -0
  201. package/dist/src/iterativeImage-ByFWkxax.cjs +415 -0
  202. package/dist/src/iterativeImage-BzUapOUi.js +414 -0
  203. package/dist/src/iterativeImage-Doz8mgxF.js +413 -0
  204. package/dist/src/iterativeMeta-B3YiAOc8.js +386 -0
  205. package/dist/src/iterativeMeta-C7APE_P1.js +385 -0
  206. package/dist/src/iterativeMeta-CSS8M6Ds.cjs +385 -0
  207. package/dist/src/iterativeMeta-DgoQ7bLh.js +384 -0
  208. package/dist/src/iterativeTree-B5zxBBSW.js +769 -0
  209. package/dist/src/iterativeTree-CNyIk0Yn.js +768 -0
  210. package/dist/src/iterativeTree-CPMF10ve.cjs +771 -0
  211. package/dist/src/iterativeTree-DvZ7GBwt.js +770 -0
  212. package/dist/src/{knowledgeBase-Dr3Kib7F.js → knowledgeBase-BadkINlJ.js} +24 -10
  213. package/dist/src/{knowledgeBase-BBETc5-S.js → knowledgeBase-Bi_8sV-H.js} +23 -9
  214. package/dist/src/{knowledgeBase-CzAi2rUI.js → knowledgeBase-CkMljjdg.js} +24 -10
  215. package/dist/src/{knowledgeBase-C8qOo26M.cjs → knowledgeBase-DUh34xba.cjs} +25 -11
  216. package/dist/src/{litellm-DRc4qWfc.js → litellm-BKBo0jpC.js} +4 -4
  217. package/dist/src/{litellm-BLSiANhk.js → litellm-BXyn5kZK.js} +4 -4
  218. package/dist/src/{litellm-DQGo_juI.js → litellm-CNcfbCfa.js} +4 -4
  219. package/dist/src/{litellm-CaUmV7Mk.cjs → litellm-CtAr7bKG.cjs} +5 -5
  220. package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
  221. package/dist/src/{luma-ray-B-tNZzqW.js → luma-ray-BMX1iEB6.js} +5 -5
  222. package/dist/src/{luma-ray-CtS3OlGq.js → luma-ray-CR5TSpp4.js} +5 -5
  223. package/dist/src/{luma-ray-if-Ml4R9.cjs → luma-ray-D3FUc2K3.cjs} +9 -8
  224. package/dist/src/{luma-ray-PJJgUjOc.js → luma-ray-OEMmS1RB.js} +5 -5
  225. package/dist/src/main.js +704 -208
  226. package/dist/src/memoryPoisoning-CM83NWYl.js +107 -0
  227. package/dist/src/memoryPoisoning-D8h9gXJF.js +106 -0
  228. package/dist/src/memoryPoisoning-Dp-btinn.cjs +106 -0
  229. package/dist/src/memoryPoisoning-cLuCoTuJ.js +106 -0
  230. package/dist/src/{messages-CewuNcNS.js → messages-BabO-cX8.js} +17 -9
  231. package/dist/src/{messages-BnsVHUnm.cjs → messages-DBPir0TQ.cjs} +24 -15
  232. package/dist/src/{messages-B9dSjrNf.js → messages-DGUlSNU7.js} +18 -10
  233. package/dist/src/{messages-CI69Lasb.js → messages-vsE_-Lv0.js} +18 -10
  234. package/dist/src/{meteor-CeGo0Lu2.js → meteor--TZYICTI.js} +1 -1
  235. package/dist/src/{meteor-BBGcGeCa.cjs → meteor-CR226f7Z.cjs} +2 -2
  236. package/dist/src/{meteor-Wc_aUVvu.js → meteor-Cl_yd7rJ.js} +1 -1
  237. package/dist/src/{meteor-BKTM-7KS.js → meteor-Dce-_zGQ.js} +1 -1
  238. package/dist/src/mischievousUser-0l8GD7Dp.js +46 -0
  239. package/dist/src/mischievousUser-BUOP9W5r.js +46 -0
  240. package/dist/src/mischievousUser-frFYKxu6.js +47 -0
  241. package/dist/src/mischievousUser-olGgHIVR.cjs +46 -0
  242. package/dist/src/{modelslab-BkapYJhh.cjs → modelslab-CNV5bMSk.cjs} +7 -7
  243. package/dist/src/{modelslab-zpz9JcK0.js → modelslab-Cogmu4mG.js} +6 -6
  244. package/dist/src/{modelslab-D73OnKSx.js → modelslab-Dzst7VTU.js} +6 -6
  245. package/dist/src/{modelslab-BCLOtfek.js → modelslab-EyDczZ5A.js} +6 -6
  246. package/dist/src/{nova-reel-B8F_TK5w.js → nova-reel-BGPNBOMS.js} +5 -5
  247. package/dist/src/{nova-reel-Bx0NFV2f.js → nova-reel-B_5NKFu1.js} +5 -5
  248. package/dist/src/{nova-reel-CNGJTLtG.js → nova-reel-C4eUJGse.js} +5 -5
  249. package/dist/src/{nova-reel-DkT7tnoB.cjs → nova-reel-CjJRxI1X.cjs} +9 -8
  250. package/dist/src/{nova-sonic-BaXRN1cr.js → nova-sonic-BNGmgfFz.js} +3 -3
  251. package/dist/src/{nova-sonic-BeTRaFOh.js → nova-sonic-ChPlh5na.js} +2 -2
  252. package/dist/src/{nova-sonic-CL7Zqv0G.js → nova-sonic-CrV0iaY_.js} +3 -3
  253. package/dist/src/{nova-sonic-YT426juD.cjs → nova-sonic-DuOG9Aun.cjs} +5 -4
  254. package/dist/src/{openai-Cy1XLs0c.cjs → openai-C3uXv8wS.cjs} +2 -2
  255. package/dist/src/{openai-BT-JvDse.js → openai-CJrsh9n4.js} +1 -1
  256. package/dist/src/{openai-D4fxGvRx.js → openai-zgwBb4Ff.js} +1 -1
  257. package/dist/src/{openclaw-Bq7RVR3k.js → openclaw-BIHlu_36.js} +9 -8
  258. package/dist/src/{openclaw-DObVgpjC.js → openclaw-CF7fMido.js} +9 -8
  259. package/dist/src/{openclaw-DUBZP3GL.cjs → openclaw-Dphc01BY.cjs} +17 -15
  260. package/dist/src/{openclaw-DA8U4DsD.js → openclaw-zIJAsz3P.js} +9 -8
  261. package/dist/src/{opencode-sdk-BB40Wir1.js → opencode-sdk-B3vlPLsp.js} +38 -3
  262. package/dist/src/{opencode-sdk-ChdK7F7z.js → opencode-sdk-D05JSgMQ.js} +39 -4
  263. package/dist/src/{opencode-sdk-CeqiOcOU.cjs → opencode-sdk-DoY6GbWw.cjs} +45 -9
  264. package/dist/src/{opencode-sdk-BM1UAIv1.js → opencode-sdk-sRKYHGoI.js} +39 -4
  265. package/dist/src/{otlpReceiver-UYMQx3sy.js → otlpReceiver--gTpSagc.js} +119 -3
  266. package/dist/src/{otlpReceiver-C6thJRXi.js → otlpReceiver-B2eaKC8C.js} +118 -2
  267. package/dist/src/{otlpReceiver-CcdIikOu.js → otlpReceiver-BXjcRqAM.js} +119 -3
  268. package/dist/src/{otlpReceiver-DNSQj6bf.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
  269. package/dist/src/packageParser--MWTSrPW.js +36 -0
  270. package/dist/src/packageParser-CgE-ziRo.js +35 -0
  271. package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
  272. package/dist/src/packageParser-hwwSGnAZ.js +35 -0
  273. package/dist/src/processShim-BBxt7LKO.js +95 -0
  274. package/dist/src/processShim-BcGzU8fY.js +94 -0
  275. package/dist/src/processShim-C_z3aRvF.js +94 -0
  276. package/dist/src/processShim-DSY9BV2T.cjs +98 -0
  277. package/dist/src/promptLength-0qIHyhA5.js +71 -0
  278. package/dist/src/promptLength-4X-Wd8PG.js +72 -0
  279. package/dist/src/promptLength-B9nZEfO6.js +71 -0
  280. package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
  281. package/dist/src/promptfoo-BDrfT30-.js +180 -0
  282. package/dist/src/promptfoo-Cm4hiy1Y.js +180 -0
  283. package/dist/src/promptfoo-Rjp-MeBb.js +181 -0
  284. package/dist/src/promptfoo-b-baRMj-.cjs +205 -0
  285. package/dist/src/prompts-BYMtqPCw.js +259 -0
  286. package/dist/src/prompts-C-bqE1Yp.js +260 -0
  287. package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
  288. package/dist/src/prompts-DHhQsANy.js +259 -0
  289. package/dist/src/prompts-D_QpZ2Dm.js +271 -0
  290. package/dist/src/prompts-hNvWBD3z.cjs +284 -0
  291. package/dist/src/prompts-huDVH2CI.js +270 -0
  292. package/dist/src/prompts-p78Hul5i.cjs +289 -0
  293. package/dist/src/{providerRegistry-BESeALrr.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
  294. package/dist/src/{providerRegistry-DoACwqhD.js → providerRegistry-DHcFiVWX.js} +1 -1
  295. package/dist/src/{providerRegistry-PMsleEzs.js → providerRegistry-ReCd0sFa.js} +1 -1
  296. package/dist/src/{providers-DT-GtF2t.js → providers-B9KzWxAX.js} +739 -11919
  297. package/dist/src/{providers-DRrerKra.js → providers-BCCz6_IX.js} +813 -11944
  298. package/dist/src/{providers-eDShy16E.cjs → providers-BDVVIQM6.cjs} +787 -12132
  299. package/dist/src/{providers-Ctcc592x.js → providers-BYAn82cf.js} +1 -1
  300. package/dist/src/{providers-CJh7iriU.js → providers-DVYRZP4E.js} +746 -11866
  301. package/dist/src/{pythonUtils-C4tltmIn.js → pythonUtils-CLCgQ9tt.js} +1 -1
  302. package/dist/src/{pythonUtils-DNqbnRdx.js → pythonUtils-CgYxeSmO.js} +2 -2
  303. package/dist/src/{pythonUtils-CoLaCwNY.cjs → pythonUtils-Cokhluq3.cjs} +7 -6
  304. package/dist/src/{pythonUtils-DMO68Jg7.js → pythonUtils-D0BYebvX.js} +2 -2
  305. package/dist/src/{quiverai-Bpx6MZ7T.cjs → quiverai-BAp6iTZD.cjs} +4 -4
  306. package/dist/src/{quiverai-CPKhWgaT.js → quiverai-BvIhI_0l.js} +3 -3
  307. package/dist/src/{quiverai-BSS9a7wV.js → quiverai-CdTWPe-A.js} +3 -3
  308. package/dist/src/{quiverai-Bk1KrvL6.js → quiverai-Cv7rJKDz.js} +3 -3
  309. package/dist/src/registry-BUJrgjwv.js +124 -0
  310. package/dist/src/registry-DXm1t_x0.js +125 -0
  311. package/dist/src/registry-Dp5EqoXc.js +124 -0
  312. package/dist/src/registry-KCVF1CFC.cjs +124 -0
  313. package/dist/src/{server-ByxbqAcQ.js → remoteGeneration-B1_XsKXU.js} +16 -147
  314. package/dist/src/{server-gyd6d4Hc.js → remoteGeneration-COpWcmWd.js} +15 -108
  315. package/dist/src/{server-BEECpeGG.cjs → remoteGeneration-DS9N3pgB.cjs} +30 -119
  316. package/dist/src/remoteGeneration-DsaSwmG2.js +217 -0
  317. package/dist/src/render-BNTrbmBw.cjs +384 -0
  318. package/dist/src/render-CSP99NLm.js +348 -0
  319. package/dist/src/render-DFfDeYUK.js +347 -0
  320. package/dist/src/{render-nj-UaPdn.js → render-DznWrxGO.js} +2 -2
  321. package/dist/src/render-_6ur1fhE.js +347 -0
  322. package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
  323. package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
  324. package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
  325. package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
  326. package/dist/src/{responses-CF-ayauu.cjs → responses-1UFFF9N_.cjs} +12 -11
  327. package/dist/src/{responses-B8haB-mD.js → responses-B3W2JvOQ.js} +9 -9
  328. package/dist/src/{responses-1ztiVYsx.js → responses-B6ktc3Ra.js} +7 -7
  329. package/dist/src/{responses-BiaBguAu.js → responses-URRzV8qE.js} +9 -9
  330. package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
  331. package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
  332. package/dist/src/{rubyUtils-CIQFnVz4.js → rubyUtils-CXlFM2rR.js} +2 -2
  333. package/dist/src/{rubyUtils-BI0p46eZ.js → rubyUtils-CnlW8AYb.js} +2 -2
  334. package/dist/src/{rubyUtils-DoifqkiA.cjs → rubyUtils-CqUWBZAt.cjs} +16 -26
  335. package/dist/src/{rubyUtils-DGnoCYL2.js → rubyUtils-DdGojpfv.js} +1 -1
  336. package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
  337. package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
  338. package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
  339. package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
  340. package/dist/src/{sagemaker-ClS_NB07.js → sagemaker-CujrzP1a.js} +61 -50
  341. package/dist/src/{sagemaker-ljtY12VM.cjs → sagemaker-DzffAqo_.cjs} +65 -53
  342. package/dist/src/{sagemaker-C5T60MKf.js → sagemaker-vhtSV7JI.js} +61 -50
  343. package/dist/src/{sagemaker-BDLeW29y.js → sagemaker-yr1QKeBs.js} +61 -50
  344. package/dist/src/{scanner-nOCWNIXa.js → scanner-DS0109SS.js} +6 -6
  345. package/dist/src/server/index.js +4147 -449
  346. package/dist/src/server-B8rqV126.cjs +126 -0
  347. package/dist/src/server-BaLytskk.js +3 -0
  348. package/dist/src/server-CMJD10J4.js +107 -0
  349. package/dist/src/server-Ddp8GNMp.js +146 -0
  350. package/dist/src/server-DhMHosWj.js +182 -0
  351. package/dist/src/shared-7pmVZLNO.js +1334 -0
  352. package/dist/src/shared-9WHQ1oNE.js +1335 -0
  353. package/dist/src/{fileExtensions-8CjoL7vB.js → shared-BoG7qLMv.js} +12 -2
  354. package/dist/src/shared-D6IjElRI.js +1334 -0
  355. package/dist/src/shared-WkgnDkcg.cjs +1436 -0
  356. package/dist/src/{signal-DTtUuU3l.js → signal-CSurUUyV.js} +2 -2
  357. package/dist/src/simulatedUser-C9aQObBI.js +222 -0
  358. package/dist/src/simulatedUser-Cu601Dd4.cjs +227 -0
  359. package/dist/src/simulatedUser-U_qAHnuB.js +222 -0
  360. package/dist/src/simulatedUser-p3tACcmw.js +223 -0
  361. package/dist/src/{slack-Bamy_7te.js → slack-Bapo-7_8.js} +1 -1
  362. package/dist/src/{slack-BLlsDpfG.cjs → slack-DMC1QVEg.cjs} +3 -2
  363. package/dist/src/{slack-BPYLQLgb.js → slack-DTEFhrMn.js} +1 -1
  364. package/dist/src/{slack-4zZX1OKP.js → slack-k-_CP84Q.js} +1 -1
  365. package/dist/src/storage-BU4qcnOb.js +875 -0
  366. package/dist/src/storage-CA-v9V2v.cjs +911 -0
  367. package/dist/src/storage-CD-GWAdx.js +822 -0
  368. package/dist/src/storage-QdU-SmvD.js +834 -0
  369. package/dist/src/{store-2K0kDi80.cjs → store-B2NDDooM.cjs} +60 -24
  370. package/dist/src/{store-CPh25336.js → store-DKd5592Q.js} +50 -19
  371. package/dist/src/{store-BPkzEyFM.js → store-HpopRVzl.js} +50 -19
  372. package/dist/src/store-IbiRIF3k.js +3 -0
  373. package/dist/src/strategies-7CS3Alao.cjs +2360 -0
  374. package/dist/src/strategies-CiSeroPH.js +2331 -0
  375. package/dist/src/strategies-DRJjGTIY.js +2333 -0
  376. package/dist/src/{tables-WgdUZ8Ck.js → tables-CRSXQ2Ke.js} +2 -2
  377. package/dist/src/{tables-BMSOS2Gg.js → tables-CxjU7bBd.js} +2 -2
  378. package/dist/src/{tables-CXbaZ9y1.cjs → tables-DBIJU0WE.cjs} +6 -5
  379. package/dist/src/{tables-NlvH23ky.js → tables-DafUHOeh.js} +2 -2
  380. package/dist/src/{telemetry-DWdGHvEf.js → telemetry-00ezXr_t.js} +4 -4
  381. package/dist/src/telemetry-ByPqDcKC.js +3 -0
  382. package/dist/src/{telemetry-CEQxGnMZ.cjs → telemetry-CJ7FnCsc.cjs} +15 -9
  383. package/dist/src/{telemetry--iqaGyaS.js → telemetry-DmXYcJNV.js} +4 -4
  384. package/dist/src/{telemetry-CgdVGV8N.js → telemetry-DwX9XUN5.js} +4 -4
  385. package/dist/src/{text-DDQP0tuQ.js → text-CZr46tp_.js} +1 -1
  386. package/dist/src/{text-D4lz-Jg_.js → text-Db-Wt2u2.js} +1 -1
  387. package/dist/src/{text-NWvfMfkF.js → text-DwYK5EBn.js} +1 -1
  388. package/dist/src/{text-BiNME7QG.cjs → text-nywWsRBM.cjs} +1 -1
  389. package/dist/src/{tokenUsageUtils-2wIvAhB3.js → tokenUsageUtils-CDet74yk.js} +1 -1
  390. package/dist/src/{tokenUsageUtils-4c780gFd.js → tokenUsageUtils-CmnQ0G2m.js} +1 -1
  391. package/dist/src/{tokenUsageUtils-C9odhsbW.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
  392. package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
  393. package/dist/src/toolAttributes-COVgDrBG.js +87 -0
  394. package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
  395. package/dist/src/tracingOptions-BnwKCkSB.js +221 -0
  396. package/dist/src/tracingOptions-Chi74lOD.js +219 -0
  397. package/dist/src/tracingOptions-DrbSFaKy.cjs +249 -0
  398. package/dist/src/tracingOptions-ji2OuXbT.js +220 -0
  399. package/dist/src/{transcription-84t4ALo2.js → transcription-B8uIgCYX.js} +5 -5
  400. package/dist/src/{transcription-Bm2emLmJ.js → transcription-CfU5loSq.js} +5 -5
  401. package/dist/src/{transcription-D7Q0vJsh.js → transcription-Dkd22_4K.js} +4 -4
  402. package/dist/src/{transcription-CZ4LG5hQ.cjs → transcription-mzuf18Mq.cjs} +9 -8
  403. package/dist/src/{transform-DtooZqYY.js → transform-BIMynQsA.js} +8 -8
  404. package/dist/src/transform-BnSTnFlp.js +187 -0
  405. package/dist/src/transform-BnSXWmU_2.cjs +221 -0
  406. package/dist/src/transform-CGt7Kt3y2.js +186 -0
  407. package/dist/src/transform-CrPGTsij.js +186 -0
  408. package/dist/src/{transform-Dg4LcO1Y.cjs → transform-DhNkAUs8.cjs} +12 -11
  409. package/dist/src/{transform-_DpNB4qp.js → transform-DmvYBRll.js} +8 -8
  410. package/dist/src/{transform-B-b6Cq-q.js → transform-EtD4jAWi.js} +8 -8
  411. package/dist/src/{transformersAvailability-lvCCvuPT.js → transformersAvailability-0ThtPved.js} +1 -1
  412. package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
  413. package/dist/src/{transformersAvailability-rJGPccjr.js → transformersAvailability-BvyU9vDD.js} +1 -1
  414. package/dist/src/{transformersAvailability-B22swDxr.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
  415. package/dist/src/{types-BVH9hjgW.js → types-BFevViUY.js} +113 -19
  416. package/dist/src/{types-BDjGOq4E.js → types-BJQBBPTP.js} +113 -19
  417. package/dist/src/{types-CgG2rKiW.cjs → types-CxJvaY2S.cjs} +211 -28
  418. package/dist/src/{types-DNRZVOue.js → types-D6glLbdF.js} +125 -26
  419. package/dist/src/{util-DFPeFkiV.js → util--WMgw7wM.js} +28 -8
  420. package/dist/src/{util-C-kmRosx.js → util-5WnCSb0h.js} +9 -7
  421. package/dist/src/{util-A5_ZsQUn.cjs → util-BSIuSLVK.cjs} +12 -9
  422. package/dist/src/{util-Dub0f_ej.js → util-Bx677_k2.js} +17 -10
  423. package/dist/src/util-CN8om2rz.cjs +386 -0
  424. package/dist/src/{util-DN0-b81k.js → util-CoQWM76y.js} +28 -8
  425. package/dist/src/util-DNl96nNs.js +327 -0
  426. package/dist/src/{util-BQOCAHQC.js → util-DURocbYR.js} +46 -11
  427. package/dist/src/util-Df8YMvS1.js +327 -0
  428. package/dist/src/{util-BVXcTwXu.js → util-DiQ3QvBB.js} +28 -8
  429. package/dist/src/{util-3pBZZb_H.js → util-I-Rf-KaD.js} +45 -10
  430. package/dist/src/{util-Dpmm_dAI.cjs → util-IYzs5Y04.cjs} +33 -7
  431. package/dist/src/{util-BlFVL0UF.js → util-LKTmNsMQ.js} +9 -7
  432. package/dist/src/{util-DvpHnLt0.cjs → util-SPsvFONY.cjs} +29 -21
  433. package/dist/src/{util-B9CNhyac.js → util-efByNxcr.js} +9 -7
  434. package/dist/src/util-kDURhgJW.js +328 -0
  435. package/dist/src/{utils-BUMN8orw.js → utils-B0lzitHZ.js} +2 -2
  436. package/dist/src/{utils-kt7lv30R.js → utils-BFOh20Gb.js} +2 -2
  437. package/dist/src/{utils-o8S5huU2.js → utils-BGY69tk_.js} +2 -2
  438. package/dist/src/{utils-DkVeShIB.cjs → utils-Ve6kuJsa.cjs} +3 -3
  439. package/dist/src/{version-CbuBKu2U.js → version-BK20a4sw.js} +2 -2
  440. package/dist/src/{version-D9zu9FWB.cjs → version-BWCSaByA.cjs} +2 -2
  441. package/dist/src/{version-CbpiUINz.js → version-eRkNuGv8.js} +2 -2
  442. package/dist/src/{version-0frU0UTr.js → version-lpHV_53E.js} +2 -2
  443. package/dist/tsconfig.tsbuildinfo +1 -1
  444. package/package.json +48 -22
  445. package/dist/src/app/assets/Report-vjzrbgce.js +0 -1
  446. package/dist/src/app/assets/index-B3NQ8HTd.js +0 -385
  447. package/dist/src/app/assets/index-Cli2yAXv.css +0 -1
  448. package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
  449. package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
  450. package/dist/src/cache-BRkhlH3k.cjs +0 -3
  451. package/dist/src/cache-BlC6aeJ0.js +0 -3
  452. package/dist/src/cloud-CoD5OacT.js +0 -3
  453. package/dist/src/codex-sdk-1jm_qPHf.js +0 -3
  454. package/dist/src/codex-sdk-Danroptg.cjs +0 -2
  455. package/dist/src/evalResult-BBJAHAtw.cjs +0 -2
  456. package/dist/src/evalResult-BBK58h2B.js +0 -3
  457. package/dist/src/evalResult-spPqh1G_.js +0 -2
  458. package/dist/src/evaluator-DgLKaZk8.js +0 -3
  459. package/dist/src/fetch-8viavNv8.js +0 -3
  460. package/dist/src/graders-C84JI-m5.js +0 -2
  461. package/dist/src/graders-CBbd0K0Q.cjs +0 -2
  462. package/dist/src/graders-CbQqpHSN.js +0 -3
  463. package/dist/src/graders-DS42d3ZG.js +0 -2
  464. package/dist/src/image-BmilRNqO.js +0 -258
  465. package/dist/src/image-CxJoa3aW.cjs +0 -280
  466. package/dist/src/image-DsGRlkh7.js +0 -257
  467. package/dist/src/image-a_SGUobh.js +0 -257
  468. package/dist/src/providers-BuyzKt7C.js +0 -2
  469. package/dist/src/providers-C7lNVBjX.cjs +0 -3
  470. package/dist/src/providers-CCE2COJi2.js +0 -2
  471. package/dist/src/render-7uNJ2V14.js +0 -135
  472. package/dist/src/render-DlscvAUJ.js +0 -135
  473. package/dist/src/render-eui5p5mL.js +0 -136
  474. package/dist/src/render-tG6ir9_g.cjs +0 -165
  475. package/dist/src/rubyUtils-4hjGxvju.js +0 -3
  476. package/dist/src/rubyUtils-CO-tuszQ.cjs +0 -2
  477. package/dist/src/server-ByiF3qlg.js +0 -386
  478. package/dist/src/server-C0XKRNB_.cjs +0 -2
  479. package/dist/src/server-C_15p79-.js +0 -3
  480. package/dist/src/store-2OXm_eBY.js +0 -240
  481. package/dist/src/store-BELqNwvz.js +0 -3
  482. package/dist/src/store-uQZ4AjPe.cjs +0 -2
  483. package/dist/src/telemetry-DjNoC_n3.cjs +0 -2
  484. package/dist/src/telemetry-ZdPZc0fm.js +0 -3
  485. package/dist/src/transform-BQt0BeAW.js +0 -3
  486. package/dist/src/transform-Bq5oqC0s.cjs +0 -2
  487. package/dist/src/transform-C9izGX54.cjs +0 -228
  488. package/dist/src/transform-CwbAZ84V.js +0 -216
  489. package/dist/src/transform-DzCF-wqV.js +0 -213
  490. package/dist/src/transform-eGiUAv86.js +0 -216
@@ -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