promptfoo 0.121.5 → 0.121.8

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-BIFntVWB.cjs → accounts-BVz5gHLK.cjs} +16 -10
  3. package/dist/src/{accounts-bnyHT7Ju.js → accounts-BWjqwsrf.js} +12 -7
  4. package/dist/src/{accounts-CLJHCDDb.js → accounts-D6IBfEE0.js} +13 -8
  5. package/dist/src/{accounts-CaLNYnf7.js → accounts-DAv_0iE7.js} +12 -7
  6. package/dist/src/{agentic-utils-B5krlibj.js → agentic-utils-BJKAkz2e.js} +2 -2
  7. package/dist/src/{agentic-utils-D2x0wGhB.cjs → agentic-utils-C-A92xhn.cjs} +8 -7
  8. package/dist/src/{agentic-utils-Ba67xmgs.js → agentic-utils-DmoS_S4B.js} +2 -2
  9. package/dist/src/{agentic-utils-BclbiXiq.js → agentic-utils-GdToujHu.js} +2 -2
  10. package/dist/src/{agents-BGqaTDnr.js → agents-2C8NN6I1.js} +20 -9
  11. package/dist/src/{agents-n6vPqV3i.js → agents-BMAiSR2o.js} +4 -4
  12. package/dist/src/{agents-BYdMl1UE.js → agents-C-PGaxwj.js} +20 -9
  13. package/dist/src/{agents-BV9yFpXX.js → agents-C98cz5pl.js} +20 -9
  14. package/dist/src/{agents-WULPVjbH.cjs → agents-DB8Ub2Ld.cjs} +7 -6
  15. package/dist/src/{agents-DhxWMCtH.js → agents-Dwshy2H8.js} +4 -4
  16. package/dist/src/{agents-emVcx3yh.js → agents-mlKjx-cK.js} +2 -2
  17. package/dist/src/{agents-DiWmQYH9.cjs → agents-n2ej-c4H.cjs} +21 -10
  18. package/dist/src/{aimlapi-DR4pgeiC.js → aimlapi-Bi-laUlp.js} +6 -6
  19. package/dist/src/{aimlapi-BzLjZI_m.cjs → aimlapi-D0OFV4Vj.cjs} +7 -7
  20. package/dist/src/{aimlapi-BxqK9HF_.js → aimlapi-WyUK0wYy.js} +6 -6
  21. package/dist/src/{aimlapi-uPGp0Zdo.js → aimlapi-v-63ZjEI.js} +6 -6
  22. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
  23. package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
  24. package/dist/src/app/assets/index-BopgkZEh.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-CScmnmEB.js → audio-DnEIHWZR.js} +3 -3
  34. package/dist/src/{audio-Da8U9IS5.js → audio-heR0mu0n.js} +3 -3
  35. package/dist/src/{audio-BvpTOArF.js → audio-wafFO1wn.js} +3 -3
  36. package/dist/src/{audio-C0vDeS0j.cjs → audio-x44tsxIo.cjs} +4 -4
  37. package/dist/src/authoritativeMarkupInjection-2G3Be6oL.cjs +74 -0
  38. package/dist/src/authoritativeMarkupInjection-81PPynHR.js +75 -0
  39. package/dist/src/authoritativeMarkupInjection-D9O70HPi.js +74 -0
  40. package/dist/src/authoritativeMarkupInjection-PxSf3Rh8.js +74 -0
  41. package/dist/src/{base-dYsl2hmL.js → base-0Gzzue9Z.js} +4 -3
  42. package/dist/src/{base-BOMaNEes.js → base-Bp4c52YZ.js} +4 -3
  43. package/dist/src/{base-BTux96b1.js → base-BuNn-YBX.js} +4 -3
  44. package/dist/src/{base-Tw6uhH8K.cjs → base-BzdS8tod.cjs} +5 -4
  45. package/dist/src/bestOfN-BHiOjeaq.js +136 -0
  46. package/dist/src/bestOfN-CdkNPPbX.js +136 -0
  47. package/dist/src/bestOfN-ClUSOhN0.js +137 -0
  48. package/dist/src/bestOfN-DWwXEg1h.cjs +140 -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-BKYi3kAA.js +3 -0
  54. package/dist/src/{cache-BI5BY7ey.js → cache-BR77mdIR.js} +127 -11
  55. package/dist/src/{cache-Cr-qWIbP.js → cache-CrioYnaa.js} +125 -10
  56. package/dist/src/{cache-Bzttsk0X.js → cache-DdriHsNX.js} +125 -10
  57. package/dist/src/{cache-DGg-yTZG.cjs → cache-h5MWOBZI.cjs} +135 -25
  58. package/dist/src/{chat-Cx_LkwvZ.js → chat-BBEnnpQk.js} +11 -11
  59. package/dist/src/{chat-DChSH_Es.js → chat-BSos6PvZ.js} +9 -9
  60. package/dist/src/{chat-aMQZw6R7.js → chat-Bnt7ieO0.js} +4 -4
  61. package/dist/src/{chat-vYqqv1gP.cjs → chat-DSyYuTYT.cjs} +14 -13
  62. package/dist/src/{chat-BLOdH60v.js → chat-DTdf-J5Q.js} +11 -11
  63. package/dist/src/{chat-DH97tVV9.cjs → chat-Dq3DomYU.cjs} +6 -6
  64. package/dist/src/{chat-DG2LkwLq.js → chat-g5QLeLOo.js} +4 -4
  65. package/dist/src/{chat-D9nudO9b.js → chat-mTTuUAYb.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-DYv_AJ8u.js → claude-agent-sdk-BGUac_kS.js} +213 -66
  71. package/dist/src/{claude-agent-sdk-BjriSVRZ.js → claude-agent-sdk-BP__YGfK.js} +213 -66
  72. package/dist/src/{claude-agent-sdk-BzNZeZ0N.js → claude-agent-sdk-Ddgx5BIQ.js} +212 -65
  73. package/dist/src/{claude-agent-sdk-BRq0bbIK.cjs → claude-agent-sdk-n2XcEclh.cjs} +219 -71
  74. package/dist/src/cloud-DiWbUiVP.js +3 -0
  75. package/dist/src/{cloud-Da0bofJd.js → cloud-DqF5N1aJ.js} +2 -2
  76. package/dist/src/{cloudflare-ai-CXC4b1EU.js → cloudflare-ai-BGamMotN.js} +4 -4
  77. package/dist/src/{cloudflare-ai-DGOwgexC.js → cloudflare-ai-BwW8W-w7.js} +4 -4
  78. package/dist/src/{cloudflare-ai-DJv5qnyb.cjs → cloudflare-ai-DCRGnsyL.cjs} +6 -6
  79. package/dist/src/{cloudflare-ai-CyBoIs1Q.js → cloudflare-ai-sD26nP6V.js} +4 -4
  80. package/dist/src/{cloudflare-gateway-TJkVrZlB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
  81. package/dist/src/{cloudflare-gateway-D-dnkzCF.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
  82. package/dist/src/{cloudflare-gateway-DKVjkDav.cjs → cloudflare-gateway-CCC1DFrC.cjs} +5 -5
  83. package/dist/src/{cloudflare-gateway-1sAoOyft.js → cloudflare-gateway-DOghiU6r.js} +3 -3
  84. package/dist/src/{codex-app-server-CCLjqCh9.js → codex-app-server-BWeWamEb.js} +19 -4
  85. package/dist/src/{codex-app-server-CCe0TiDc.js → codex-app-server-DyQB1P0p.js} +20 -5
  86. package/dist/src/{codex-app-server-VMRnjZ68.cjs → codex-app-server-R9u_G7W9.cjs} +27 -11
  87. package/dist/src/{codex-app-server-CPW1LFwh.js → codex-app-server-ZQRJSJjU.js} +20 -5
  88. package/dist/src/{codex-sdk-Bzb_TqX9.js → codex-sdk-B62H0fe7.js} +16 -5
  89. package/dist/src/{codex-sdk-Bd8UbO9q.cjs → codex-sdk-BRPUvJG8.cjs} +31 -12
  90. package/dist/src/{codex-sdk-BgEFQ70r.js → codex-sdk-Dio1zJBS.js} +18 -7
  91. package/dist/src/codex-sdk-DxukZs_K.js +3 -0
  92. package/dist/src/{codex-sdk-DfvDTN33.js → codex-sdk-iEmW1eS2.js} +18 -7
  93. package/dist/src/{cometapi-B5ImDlSm.js → cometapi--hh7dESS.js} +7 -7
  94. package/dist/src/{cometapi-CC7hWxmX.js → cometapi-C7yWNGqt.js} +7 -7
  95. package/dist/src/{cometapi-CCbpHkuF.js → cometapi-CSIi16a0.js} +7 -7
  96. package/dist/src/{cometapi-BgAkuYCw.cjs → cometapi-sZgBZtbU.cjs} +8 -8
  97. package/dist/src/{completion-DtQ72Bm3.cjs → completion-CWtqdn3z.cjs} +6 -6
  98. package/dist/src/{completion-Vq_ad618.js → completion-DT8cxo9T.js} +4 -4
  99. package/dist/src/{completion-2iuYVxwi.js → completion-DUScduXp.js} +5 -5
  100. package/dist/src/{completion-CrD6MQ93.js → completion-D_2IOAoS.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-B41TwUHM.js +722 -0
  110. package/dist/src/crescendo-Bfic7KC4.js +724 -0
  111. package/dist/src/crescendo-DXFB7rHP.cjs +725 -0
  112. package/dist/src/crescendo-DvvYxMLA.js +723 -0
  113. package/dist/src/custom-BdzuqFTN.js +619 -0
  114. package/dist/src/custom-Cf5Q6r-P.js +618 -0
  115. package/dist/src/custom-DLgufezC.js +620 -0
  116. package/dist/src/custom-LEXHCRe3.cjs +621 -0
  117. package/dist/src/{docker--3qzPa-6.js → docker-BOSO_6hK.js} +5 -5
  118. package/dist/src/{docker-D3AY-5F5.cjs → docker-D0h2vFrc.cjs} +6 -6
  119. package/dist/src/{docker-DCsCDvwM.js → docker-D2TWGyTP.js} +5 -5
  120. package/dist/src/{docker-Dorv4_Dg.js → docker-Vj_4_cPg.js} +5 -5
  121. package/dist/src/{embedding-BXhN5lCH.cjs → embedding-BQIApR18.cjs} +6 -6
  122. package/dist/src/{embedding-ChS1ivFS.js → embedding-CStK0TV6.js} +5 -5
  123. package/dist/src/{embedding-DNRvZwRN.js → embedding-CU78FMnw.js} +5 -5
  124. package/dist/src/{embedding-D_bI4NDq.js → embedding-CV8lmCnU.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-B3BaNBbO.js} +19 -19
  130. package/dist/src/{eval-BQPLBJbw.js → eval-DfR9885C.js} +1 -1
  131. package/dist/src/evalResult-BtZSUgQv.js +3 -0
  132. package/dist/src/{evalResult-D6P5I5il.js → evalResult-CcSqNl_Y.js} +17 -10
  133. package/dist/src/{evalResult-Cx-8OWkb.cjs → evalResult-DHXs-9TL.cjs} +29 -11
  134. package/dist/src/{evalResult-pSvGWFMo.js → evalResult-PGqEbasb.js} +18 -11
  135. package/dist/src/evaluator-B9LGbKI8.js +3 -0
  136. package/dist/src/{evaluator-D-UIbbYq.js → evaluator-n_dEb00o.js} +258 -132
  137. package/dist/src/evaluatorHelpers-CrRObe2z.js +510 -0
  138. package/dist/src/evaluatorHelpers-D06I9WFL.cjs +537 -0
  139. package/dist/src/evaluatorHelpers-D1_kwvyp.js +511 -0
  140. package/dist/src/{extractor-DxyiFhPk.js → extractor-BVkZtk4R.js} +5 -5
  141. package/dist/src/{extractor-BM3jRERL.js → extractor-D3Fv_Tdh.js} +5 -5
  142. package/dist/src/{extractor-YlZbUMsL.js → extractor-Jp53vs-6.js} +5 -5
  143. package/dist/src/{extractor-Dxr2J_wK.cjs → extractor-bV_NOoaz.cjs} +6 -6
  144. package/dist/src/{fetch-Y5qX_kST.js → fetch-BSSAcMxf.js} +90 -26
  145. package/dist/src/fetch-BodQTrMU.js +3 -0
  146. package/dist/src/{fetch-NuqXW1Xb.cjs → fetch-Cfm4EuOB.cjs} +115 -32
  147. package/dist/src/{fetch-B6ch2nU2.js → fetch-Cpf1U1nO.js} +86 -26
  148. package/dist/src/{fetch-D9xxyC1p.js → fetch-Doks14zQ.js} +90 -26
  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-Ba7Gznzq.js +467 -0
  158. package/dist/src/goat-CJngS-WU.js +468 -0
  159. package/dist/src/goat-CwsbfQeu.js +466 -0
  160. package/dist/src/goat-DOMbozoX.cjs +470 -0
  161. package/dist/src/graders-B3D7kCcD.js +3 -0
  162. package/dist/src/{graders-CgPn32yp.js → graders-BQt1BaQe.js} +1019 -86
  163. package/dist/src/{graders-Bw1wk_21.cjs → graders-CBQ2s6gz.cjs} +1087 -130
  164. package/dist/src/{graders-CwrbifOo.js → graders-DaRU98zs.js} +1022 -84
  165. package/dist/src/{graders-BoUqsCEm.js → graders-KXzjnIim.js} +1024 -86
  166. package/dist/src/hydra-BU6GjYoQ.js +560 -0
  167. package/dist/src/hydra-BmXHxlyl.js +559 -0
  168. package/dist/src/hydra-CR0KyYDb.js +561 -0
  169. package/dist/src/hydra-RO9jBks7.cjs +560 -0
  170. package/dist/src/{image-BeWaInPF.js → image-BBmZdKO3.js} +3 -3
  171. package/dist/src/{image-qjO6FWPs.js → image-B_PFG7IG.js} +3 -3
  172. package/dist/src/image-BtODOZjh.js +442 -0
  173. package/dist/src/image-CYuNJIqd.js +442 -0
  174. package/dist/src/{image-D10dNAav.cjs → image-E00WFZkq.cjs} +4 -4
  175. package/dist/src/image-HK2Cfqb1.cjs +465 -0
  176. package/dist/src/{image-Dr_3I3nK.js → image-LGj8dTcr.js} +3 -3
  177. package/dist/src/image-YMKejC0r.js +443 -0
  178. package/dist/src/index.cjs +711 -339
  179. package/dist/src/index.d.cts +3159 -1611
  180. package/dist/src/index.d.ts +3158 -1610
  181. package/dist/src/index.js +605 -249
  182. package/dist/src/indirectWebPwn-B80dLlFC.js +260 -0
  183. package/dist/src/indirectWebPwn-BMTXXznx.js +386 -0
  184. package/dist/src/indirectWebPwn-BZFPV7Q9.js +385 -0
  185. package/dist/src/indirectWebPwn-BaEQEOIO.cjs +260 -0
  186. package/dist/src/indirectWebPwn-BzpyMnFS.js +259 -0
  187. package/dist/src/indirectWebPwn-CiWB-vVH.js +385 -0
  188. package/dist/src/indirectWebPwn-D7NA9Nsv.cjs +397 -0
  189. package/dist/src/indirectWebPwn-o_bEFMjP.js +259 -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-B-l0syBV.js +501 -0
  197. package/dist/src/iterative-BACUeCCz.cjs +503 -0
  198. package/dist/src/iterative-CVwoExo8.js +502 -0
  199. package/dist/src/iterative-QDrGSyss.js +500 -0
  200. package/dist/src/iterativeImage-BQg2OwA6.js +413 -0
  201. package/dist/src/iterativeImage-Bwn0fM75.js +413 -0
  202. package/dist/src/iterativeImage-CcgVyASo.cjs +415 -0
  203. package/dist/src/iterativeImage-D_UbQXg4.js +414 -0
  204. package/dist/src/iterativeMeta-CIu-CHRS.js +405 -0
  205. package/dist/src/iterativeMeta-CN8CNjFA.js +406 -0
  206. package/dist/src/iterativeMeta-DN6BTjpq.js +404 -0
  207. package/dist/src/iterativeMeta-DlqY3BsS.cjs +405 -0
  208. package/dist/src/iterativeTree-CJ8a8G9T.js +820 -0
  209. package/dist/src/iterativeTree-DcuFXnjL.js +819 -0
  210. package/dist/src/iterativeTree-FrDDYAN0.js +818 -0
  211. package/dist/src/iterativeTree-LOgAi0nU.cjs +821 -0
  212. package/dist/src/{knowledgeBase-C8qOo26M.cjs → knowledgeBase-CdbcGBZF.cjs} +25 -11
  213. package/dist/src/{knowledgeBase-BBETc5-S.js → knowledgeBase-CjOXp6Lr.js} +23 -9
  214. package/dist/src/{knowledgeBase-Dr3Kib7F.js → knowledgeBase-DxAq4n4z.js} +24 -10
  215. package/dist/src/{knowledgeBase-CzAi2rUI.js → knowledgeBase-o_wTLzrt.js} +24 -10
  216. package/dist/src/{litellm-DRc4qWfc.js → litellm-B2gHwya_.js} +4 -4
  217. package/dist/src/{litellm-CaUmV7Mk.cjs → litellm-CPpdlO7n.cjs} +5 -5
  218. package/dist/src/{litellm-BLSiANhk.js → litellm-CYfgxLrM.js} +4 -4
  219. package/dist/src/{litellm-DQGo_juI.js → litellm-ojWBKU3C.js} +4 -4
  220. package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
  221. package/dist/src/{luma-ray-if-Ml4R9.cjs → luma-ray-BCCO9XXG.cjs} +9 -8
  222. package/dist/src/{luma-ray-B-tNZzqW.js → luma-ray-BPrdihAb.js} +5 -5
  223. package/dist/src/{luma-ray-CtS3OlGq.js → luma-ray-DP5N79lB.js} +5 -5
  224. package/dist/src/{luma-ray-PJJgUjOc.js → luma-ray-DTDyoAlM.js} +5 -5
  225. package/dist/src/main.js +727 -234
  226. package/dist/src/memoryPoisoning-B6N3us35.cjs +106 -0
  227. package/dist/src/memoryPoisoning-Bc_BK_k2.js +106 -0
  228. package/dist/src/memoryPoisoning-D375zwSX.js +107 -0
  229. package/dist/src/memoryPoisoning-DJA0YjJT.js +106 -0
  230. package/dist/src/{messages-CewuNcNS.js → messages-Bg29Nbit.js} +17 -9
  231. package/dist/src/{messages-BnsVHUnm.cjs → messages-BrZEnHsV.cjs} +24 -15
  232. package/dist/src/{messages-CI69Lasb.js → messages-CBulRaud.js} +18 -10
  233. package/dist/src/{messages-B9dSjrNf.js → messages-K9A8RxBM.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-BDLwSGN0.js +46 -0
  239. package/dist/src/mischievousUser-Blx-OtT3.js +47 -0
  240. package/dist/src/mischievousUser-CHuTTvBg.js +46 -0
  241. package/dist/src/mischievousUser-CSUrH3fq.cjs +46 -0
  242. package/dist/src/{modelslab-zpz9JcK0.js → modelslab-BjEk7yCP.js} +6 -6
  243. package/dist/src/{modelslab-BCLOtfek.js → modelslab-CBCrdIBc.js} +6 -6
  244. package/dist/src/{modelslab-D73OnKSx.js → modelslab-CrGpXuhv.js} +6 -6
  245. package/dist/src/{modelslab-BkapYJhh.cjs → modelslab-Cvh0klQx.cjs} +7 -7
  246. package/dist/src/{nova-reel-B8F_TK5w.js → nova-reel-CUDDZcSA.js} +5 -5
  247. package/dist/src/{nova-reel-Bx0NFV2f.js → nova-reel-CyDESu5J.js} +5 -5
  248. package/dist/src/{nova-reel-DkT7tnoB.cjs → nova-reel-DH_Ksu6X.cjs} +9 -8
  249. package/dist/src/{nova-reel-CNGJTLtG.js → nova-reel-YQAqUYJY.js} +5 -5
  250. package/dist/src/{nova-sonic-BeTRaFOh.js → nova-sonic-BVFFB7JZ.js} +2 -2
  251. package/dist/src/{nova-sonic-YT426juD.cjs → nova-sonic-Bg3cxMMu.cjs} +5 -4
  252. package/dist/src/{nova-sonic-CL7Zqv0G.js → nova-sonic-BhmnRGyh.js} +3 -3
  253. package/dist/src/{nova-sonic-BaXRN1cr.js → nova-sonic-DxmK95c1.js} +3 -3
  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-DUBZP3GL.cjs → openclaw-CHQaZi_-.cjs} +17 -15
  258. package/dist/src/{openclaw-DA8U4DsD.js → openclaw-CWOm2eOr.js} +9 -8
  259. package/dist/src/{openclaw-DObVgpjC.js → openclaw-Cdk9JKfY.js} +9 -8
  260. package/dist/src/{openclaw-Bq7RVR3k.js → openclaw-DhF8rUpI.js} +9 -8
  261. package/dist/src/{opencode-sdk-BB40Wir1.js → opencode-sdk-BRjiPV-g.js} +38 -3
  262. package/dist/src/{opencode-sdk-CeqiOcOU.cjs → opencode-sdk-CPFMw0ed.cjs} +45 -9
  263. package/dist/src/{opencode-sdk-BM1UAIv1.js → opencode-sdk-CaSOCsBA.js} +39 -4
  264. package/dist/src/{opencode-sdk-ChdK7F7z.js → opencode-sdk-CqkyG8De.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-BU4_0J85.js +238 -0
  282. package/dist/src/promptfoo-CReYAtfb.js +237 -0
  283. package/dist/src/promptfoo-ClChwT74.cjs +292 -0
  284. package/dist/src/promptfoo-CqEpj6Sr.js +237 -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-B7TyByfj.js} +789 -11925
  297. package/dist/src/{providers-CJh7iriU.js → providers-BGc7tDtQ.js} +796 -11872
  298. package/dist/src/{providers-Ctcc592x.js → providers-CSOp-bCm.js} +1 -1
  299. package/dist/src/{providers-eDShy16E.cjs → providers-V6RBuieY.cjs} +837 -12138
  300. package/dist/src/{providers-DRrerKra.js → providers-iH3Sw1yo.js} +851 -11938
  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-CPKhWgaT.js → quiverai-58BtRRet.js} +3 -3
  306. package/dist/src/{quiverai-Bk1KrvL6.js → quiverai-C1dYu5MW.js} +3 -3
  307. package/dist/src/{quiverai-BSS9a7wV.js → quiverai-CNMIpZQg.js} +3 -3
  308. package/dist/src/{quiverai-Bpx6MZ7T.cjs → quiverai-fmSfU43k.cjs} +4 -4
  309. package/dist/src/registry-6Jw6ebor.cjs +124 -0
  310. package/dist/src/registry-BTGk2ZkB.js +124 -0
  311. package/dist/src/registry-BTNqmP5o.js +125 -0
  312. package/dist/src/registry-NGnOG2xa.js +124 -0
  313. package/dist/src/{server-gyd6d4Hc.js → remoteGeneration--D6WjzUm.js} +15 -108
  314. package/dist/src/{server-BEECpeGG.cjs → remoteGeneration-BpIYlb_O.cjs} +30 -119
  315. package/dist/src/{server-ByxbqAcQ.js → remoteGeneration-CJC3E0aW.js} +15 -147
  316. package/dist/src/remoteGeneration-D6UjE2JT.js +218 -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-1ztiVYsx.js → responses-5Gf5HNOi.js} +11 -7
  327. package/dist/src/{responses-BiaBguAu.js → responses-BVi7xIdv.js} +13 -9
  328. package/dist/src/{responses-CF-ayauu.cjs → responses-CUARGrhY.cjs} +16 -11
  329. package/dist/src/{responses-B8haB-mD.js → responses-CrmWv6iz.js} +13 -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-ljtY12VM.cjs → sagemaker-BeVTKfrv.cjs} +65 -53
  341. package/dist/src/{sagemaker-BDLeW29y.js → sagemaker-BwbV5U7_.js} +61 -50
  342. package/dist/src/{sagemaker-C5T60MKf.js → sagemaker-ClAZ6Qwc.js} +61 -50
  343. package/dist/src/{sagemaker-ClS_NB07.js → sagemaker-DY2qrOpq.js} +61 -50
  344. package/dist/src/{scanner-nOCWNIXa.js → scanner-BS-iFIp3.js} +6 -6
  345. package/dist/src/server/index.js +4115 -420
  346. package/dist/src/server-BHOEL8p8.cjs +126 -0
  347. package/dist/src/server-CbiJppij.js +107 -0
  348. package/dist/src/server-D18AAlAc.js +3 -0
  349. package/dist/src/server-DLYjSFm2.js +182 -0
  350. package/dist/src/server-JQYD_Nws.js +146 -0
  351. package/dist/src/{fileExtensions-8CjoL7vB.js → shared-BoG7qLMv.js} +12 -2
  352. package/dist/src/shared-CRq0gGVf.js +1334 -0
  353. package/dist/src/shared-CSIGeGLl.js +1334 -0
  354. package/dist/src/shared-DNvim54U.js +1335 -0
  355. package/dist/src/shared-aHWko3P1.cjs +1436 -0
  356. package/dist/src/{signal-DTtUuU3l.js → signal-CSurUUyV.js} +2 -2
  357. package/dist/src/simulatedUser-C7sOFSF6.js +222 -0
  358. package/dist/src/simulatedUser-DH_7RzEQ.js +222 -0
  359. package/dist/src/simulatedUser-lgMMmniD.js +223 -0
  360. package/dist/src/simulatedUser-mnCUS9Bm.cjs +227 -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-95htjpLs.js +834 -0
  366. package/dist/src/storage-A4WnAeN3.cjs +911 -0
  367. package/dist/src/storage-B2Ql_oq4.js +822 -0
  368. package/dist/src/storage-EKVWZBNY.js +875 -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-CBI1brSy.js +2333 -0
  374. package/dist/src/strategies-CCcnEbFO.cjs +2360 -0
  375. package/dist/src/strategies-CD1gHeeQ.js +2331 -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-BUm_krVX.js +3 -0
  381. package/dist/src/{telemetry--iqaGyaS.js → telemetry-BbpmrenM.js} +4 -4
  382. package/dist/src/{telemetry-CgdVGV8N.js → telemetry-C4bX-6Sr.js} +4 -4
  383. package/dist/src/{telemetry-CEQxGnMZ.cjs → telemetry-C_ImlCOk.cjs} +15 -9
  384. package/dist/src/{telemetry-DWdGHvEf.js → telemetry-DOE567Wj.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-BOP1FsRt.js +220 -0
  396. package/dist/src/tracingOptions-BvmDa_jH.js +219 -0
  397. package/dist/src/tracingOptions-DFBoE8O0.cjs +249 -0
  398. package/dist/src/tracingOptions-xhjOg2b1.js +221 -0
  399. package/dist/src/{transcription-D7Q0vJsh.js → transcription-BOXDoehT.js} +4 -4
  400. package/dist/src/{transcription-Bm2emLmJ.js → transcription-CpVdKc4P.js} +5 -5
  401. package/dist/src/{transcription-CZ4LG5hQ.cjs → transcription-D8kkPXg_.cjs} +9 -8
  402. package/dist/src/{transcription-84t4ALo2.js → transcription-Z94eV9LR.js} +5 -5
  403. package/dist/src/transform-BnSTnFlp.js +187 -0
  404. package/dist/src/transform-BnSXWmU_2.cjs +221 -0
  405. package/dist/src/{transform-DtooZqYY.js → transform-BufxPIQL.js} +8 -8
  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-DJkt81VY.cjs} +12 -11
  409. package/dist/src/{transform-B-b6Cq-q.js → transform-DtTfiGoh.js} +8 -8
  410. package/dist/src/{transform-_DpNB4qp.js → transform-Wp6s_5QE.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-Dpmm_dAI.cjs → util-BHCAeuXx.cjs} +33 -7
  420. package/dist/src/{util-DFPeFkiV.js → util-CMrHV35u.js} +28 -8
  421. package/dist/src/{util-DvpHnLt0.cjs → util-COnzevXE.cjs} +29 -21
  422. package/dist/src/{util-BlFVL0UF.js → util-CYev3d-r.js} +22 -7
  423. package/dist/src/util-DGqkTb2-.js +327 -0
  424. package/dist/src/util-DNtUsus_.cjs +386 -0
  425. package/dist/src/{util-Dub0f_ej.js → util-DRfqa4xz.js} +17 -10
  426. package/dist/src/{util-BVXcTwXu.js → util-DTq3jq2z.js} +28 -8
  427. package/dist/src/{util-C-kmRosx.js → util-DeY58psG.js} +22 -7
  428. package/dist/src/util-DpV6KT5i.js +327 -0
  429. package/dist/src/{util-3pBZZb_H.js → util-DwNJzqOV.js} +45 -10
  430. package/dist/src/util-ETfU_sS9.js +328 -0
  431. package/dist/src/{util-A5_ZsQUn.cjs → util-NYQvo1C7.cjs} +25 -9
  432. package/dist/src/{util-DN0-b81k.js → util-X4KQgyVD.js} +28 -8
  433. package/dist/src/{util-BQOCAHQC.js → util-jZRrXe1P.js} +46 -11
  434. package/dist/src/{util-B9CNhyac.js → util-o2Qg5rZv.js} +22 -7
  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-CHR-EFec.js} +2 -2
  440. package/dist/src/{version-CbpiUINz.js → version-F0YDgb7J.js} +2 -2
  441. package/dist/src/{version-D9zu9FWB.cjs → version-VzUqOBZk.cjs} +2 -2
  442. package/dist/src/{version-0frU0UTr.js → version-qVEN5qCm.js} +2 -2
  443. package/dist/tsconfig.tsbuildinfo +1 -1
  444. package/package.json +49 -23
  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,220 @@
1
+ import { a as logger, k as state } from "./logger-Ct2S6Yx-.js";
2
+ import { l as sleep } from "./fetch-Doks14zQ.js";
3
+ import { t as getTraceStore } from "./store-HpopRVzl.js";
4
+ import { r as getToolNameFromAttributes } from "./toolAttributes-DJ9ZEKXD.js";
5
+ //#region src/tracing/traceContext.ts
6
+ const DEFAULT_MAX_RETRIES = 3;
7
+ const DEFAULT_RETRY_DELAY_MS = 500;
8
+ const SPAN_KIND_MAP = {
9
+ 0: "unspecified",
10
+ 1: "internal",
11
+ 2: "server",
12
+ 3: "client",
13
+ 4: "producer",
14
+ 5: "consumer"
15
+ };
16
+ function resolveSpanKind(span) {
17
+ const attributes = span.attributes || {};
18
+ const attributeKind = attributes["span.kind"] || attributes["otel.span.kind"] || attributes["spanKind"] || attributes["kind"];
19
+ if (attributeKind) return `${attributeKind}`.toLowerCase();
20
+ const numericKind = attributes["otel.span.kind_code"];
21
+ if (typeof numericKind === "number" && numericKind in SPAN_KIND_MAP) return SPAN_KIND_MAP[numericKind];
22
+ return "unspecified";
23
+ }
24
+ function mapStatusCode(span) {
25
+ switch (span.statusCode) {
26
+ case 1: return "ok";
27
+ case 2: return "error";
28
+ default: return "unset";
29
+ }
30
+ }
31
+ function buildSpanTree(spans) {
32
+ const depthMap = /* @__PURE__ */ new Map();
33
+ const spansById = new Map(spans.map((span) => [span.spanId, span]));
34
+ const computeDepth = (span) => {
35
+ if (depthMap.has(span.spanId)) return depthMap.get(span.spanId);
36
+ if (!span.parentSpanId || !spansById.has(span.parentSpanId)) {
37
+ depthMap.set(span.spanId, 0);
38
+ return 0;
39
+ }
40
+ const depth = computeDepth(spansById.get(span.parentSpanId)) + 1;
41
+ depthMap.set(span.spanId, depth);
42
+ return depth;
43
+ };
44
+ spans.forEach((span) => computeDepth(span));
45
+ return depthMap;
46
+ }
47
+ function createTraceSpans(spans) {
48
+ const depthMap = buildSpanTree(spans);
49
+ return spans.map((span) => {
50
+ const endTime = span.endTime ?? span.startTime;
51
+ const durationMs = Math.max(0, endTime - span.startTime);
52
+ return {
53
+ spanId: span.spanId,
54
+ parentSpanId: span.parentSpanId,
55
+ name: span.name,
56
+ kind: resolveSpanKind(span),
57
+ startTime: span.startTime,
58
+ endTime: span.endTime,
59
+ durationMs,
60
+ attributes: span.attributes || {},
61
+ status: {
62
+ code: mapStatusCode(span),
63
+ message: span.statusMessage
64
+ },
65
+ depth: depthMap.get(span.spanId) ?? 0,
66
+ events: []
67
+ };
68
+ });
69
+ }
70
+ function deriveInsights(traceSpans) {
71
+ if (traceSpans.length === 0) return [];
72
+ const insights = [];
73
+ traceSpans.filter((span) => span.status.code === "error").forEach((span) => {
74
+ const statusMessage = span.status.message ? `: ${span.status.message}` : "";
75
+ insights.push(`Error span "${span.name}" (${span.spanId.slice(0, 8)})${statusMessage}`);
76
+ });
77
+ traceSpans.map((span) => ({
78
+ span,
79
+ toolName: getToolNameFromAttributes(span.attributes)
80
+ })).filter((entry) => entry.toolName).forEach(({ span, toolName }) => {
81
+ insights.push(`Tool call ${toolName} via "${span.name}" (duration ${span.durationMs ?? 0}ms)`);
82
+ });
83
+ traceSpans.filter((span) => span.attributes["guardrail.name"] || span.attributes["guardrails.decision"]).forEach((span) => {
84
+ const decision = span.attributes["guardrails.decision"] ?? span.attributes["guardrail.decision"];
85
+ insights.push(`Guardrail ${span.attributes["guardrail.name"] ?? span.name} decision: ${decision ?? "unknown"}`);
86
+ });
87
+ return insights.slice(0, 20);
88
+ }
89
+ function extractTraceIdFromTraceparent(traceparent) {
90
+ if (!traceparent) return null;
91
+ const parts = traceparent.split("-");
92
+ if (parts.length < 2) return null;
93
+ return parts[1];
94
+ }
95
+ async function fetchTraceContext(traceId, options = {}) {
96
+ const { includeInternalSpans = true, sanitizeAttributes = true, maxRetries = DEFAULT_MAX_RETRIES, retryDelayMs = DEFAULT_RETRY_DELAY_MS, ...spanOptions } = options;
97
+ const traceStore = getTraceStore();
98
+ for (let attempt = 0; attempt <= maxRetries; attempt++) try {
99
+ const spans = await traceStore.getSpans(traceId, {
100
+ includeInternalSpans,
101
+ sanitizeAttributes,
102
+ ...spanOptions
103
+ });
104
+ if (spans.length === 0) {
105
+ if (attempt === maxRetries) {
106
+ logger.debug(`[TraceContext] No spans found for trace ${traceId} after ${attempt + 1} attempts`);
107
+ return null;
108
+ }
109
+ logger.debug(`[TraceContext] No spans yet for trace ${traceId}, retrying in ${retryDelayMs}ms (attempt ${attempt + 1}/${maxRetries})`);
110
+ await sleep(retryDelayMs);
111
+ continue;
112
+ }
113
+ const traceSpans = createTraceSpans(spans);
114
+ const insights = deriveInsights(traceSpans);
115
+ const context = {
116
+ traceId,
117
+ spans: traceSpans,
118
+ insights,
119
+ fetchedAt: Date.now()
120
+ };
121
+ logger.debug(`[TraceContext] Resolved ${traceSpans.length} spans for trace ${traceId} with ${insights.length} insights`);
122
+ return context;
123
+ } catch (error) {
124
+ logger.error(`[TraceContext] Failed to fetch spans for trace ${traceId}: ${error}`);
125
+ if (attempt === maxRetries) return null;
126
+ await sleep(retryDelayMs);
127
+ }
128
+ return null;
129
+ }
130
+ //#endregion
131
+ //#region src/redteam/providers/traceFormatting.ts
132
+ const DEFAULT_MAX_SPANS = 10;
133
+ function formatDuration(durationMs) {
134
+ if (!durationMs || Number.isNaN(durationMs)) return "0ms";
135
+ if (durationMs < 1e3) return `${Math.round(durationMs)}ms`;
136
+ if (durationMs < 6e4) return `${(durationMs / 1e3).toFixed(1)}s`;
137
+ return `${(durationMs / 6e4).toFixed(1)}m`;
138
+ }
139
+ function formatSpan(span) {
140
+ const parts = [];
141
+ const duration = formatDuration(span.durationMs);
142
+ parts.push(`[${duration}] ${span.name}${span.kind && span.kind !== "unspecified" ? ` (${span.kind})` : ""}`);
143
+ const tool = getToolNameFromAttributes(span.attributes);
144
+ if (tool) parts.push(`tool=${tool}`);
145
+ const model = span.attributes["model"] || span.attributes["llm.model"];
146
+ if (model) parts.push(`model=${model}`);
147
+ if (span.status.code === "error") parts.push(`ERROR: ${span.status.message ?? "Unknown error"}`);
148
+ return parts.join(" | ");
149
+ }
150
+ function formatTraceSummary(trace, options = {}) {
151
+ if (!trace || trace.spans.length === 0) return "No trace spans recorded during this iteration.";
152
+ const maxSpans = options.maxSpans ?? DEFAULT_MAX_SPANS;
153
+ const spans = trace.spans.slice(0, maxSpans);
154
+ return [
155
+ `Trace ${trace.traceId.slice(0, 8)} • ${trace.spans.length} span${trace.spans.length === 1 ? "" : "s"}`,
156
+ "",
157
+ "Execution Flow:",
158
+ spans.map((span, index) => `${index + 1}. ${formatSpan(span)}`).join("\n"),
159
+ "",
160
+ "Key Observations:",
161
+ trace.insights.length > 0 ? trace.insights.map((i) => `• ${i}`).join("\n") : "None"
162
+ ].join("\n");
163
+ }
164
+ function formatTraceForMetadata(trace) {
165
+ return {
166
+ traceId: trace.traceId,
167
+ fetchedAt: trace.fetchedAt,
168
+ spanCount: trace.spans.length,
169
+ insights: trace.insights
170
+ };
171
+ }
172
+ //#endregion
173
+ //#region src/redteam/providers/tracingOptions.ts
174
+ const DEFAULT_TRACING_OPTIONS = {
175
+ enabled: false,
176
+ includeInAttack: true,
177
+ includeInGrading: true,
178
+ includeInternalSpans: false,
179
+ maxSpans: 50,
180
+ maxDepth: 5,
181
+ maxRetries: 3,
182
+ retryDelayMs: 500,
183
+ spanFilter: void 0,
184
+ sanitizeAttributes: true
185
+ };
186
+ function mergeTracingConfig(...configs) {
187
+ return configs.reduce((acc, config) => config ? {
188
+ ...acc,
189
+ ...config
190
+ } : acc, {});
191
+ }
192
+ function normalizeTracingOptions(config) {
193
+ const merged = {
194
+ ...DEFAULT_TRACING_OPTIONS,
195
+ ...config
196
+ };
197
+ return {
198
+ enabled: Boolean(merged.enabled),
199
+ includeInAttack: merged.includeInAttack ?? DEFAULT_TRACING_OPTIONS.includeInAttack ?? true,
200
+ includeInGrading: merged.includeInGrading ?? DEFAULT_TRACING_OPTIONS.includeInGrading ?? true,
201
+ includeInternalSpans: merged.includeInternalSpans ?? DEFAULT_TRACING_OPTIONS.includeInternalSpans ?? false,
202
+ maxSpans: merged.maxSpans ?? DEFAULT_TRACING_OPTIONS.maxSpans,
203
+ maxDepth: merged.maxDepth ?? DEFAULT_TRACING_OPTIONS.maxDepth,
204
+ maxRetries: merged.maxRetries ?? DEFAULT_TRACING_OPTIONS.maxRetries,
205
+ retryDelayMs: merged.retryDelayMs ?? DEFAULT_TRACING_OPTIONS.retryDelayMs,
206
+ spanFilter: merged.spanFilter,
207
+ sanitizeAttributes: merged.sanitizeAttributes ?? DEFAULT_TRACING_OPTIONS.sanitizeAttributes
208
+ };
209
+ }
210
+ function resolveTracingOptions({ strategyId, test, config }) {
211
+ const globalConfig = state.config?.redteam?.tracing ?? void 0;
212
+ const testConfig = test?.metadata?.tracing ?? void 0;
213
+ const metadataStrategyConfig = (test?.metadata?.strategyConfig)?.tracing;
214
+ const providerStrategyConfig = config?.tracing ?? void 0;
215
+ return normalizeTracingOptions(mergeTracingConfig(globalConfig, testConfig, metadataStrategyConfig, providerStrategyConfig, strategyId && globalConfig?.strategies ? globalConfig.strategies[strategyId] : void 0, strategyId && testConfig?.strategies ? testConfig.strategies[strategyId] : void 0, strategyId && metadataStrategyConfig?.strategies ? metadataStrategyConfig.strategies[strategyId] : void 0, strategyId && providerStrategyConfig?.strategies ? providerStrategyConfig.strategies[strategyId] : void 0));
216
+ }
217
+ //#endregion
218
+ export { fetchTraceContext as a, extractTraceIdFromTraceparent as i, formatTraceForMetadata as n, formatTraceSummary as r, resolveTracingOptions as t };
219
+
220
+ //# sourceMappingURL=tracingOptions-BOP1FsRt.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-BSSAcMxf.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-BvmDa_jH.js.map
@@ -0,0 +1,249 @@
1
+ const require_logger = require("./logger-cfNpzI4o.cjs");
2
+ const require_fetch = require("./fetch-Cfm4EuOB.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-DFBoE8O0.cjs.map