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
@@ -1,8 +1,10 @@
1
1
  import { a as logger } from "./logger-KD8JjCRJ.js";
2
2
  import { t as getDirectory } from "./esm-B6whoAcf.js";
3
- import { t as getTraceStore } from "./store-2OXm_eBY.js";
3
+ import { i as getTraceStore } from "./server/index.js";
4
+ import { n as PROMPTFOO_RESOURCE_ATTR_TRACE_ID, t as PROMPTFOO_RESOURCE_ATTR_PARENT_SPAN_ID } from "./resourceAttributes-DQbBB--2.js";
4
5
  import path from "path";
5
6
  import express from "express";
7
+ import crypto from "node:crypto";
6
8
  import protobuf from "protobufjs";
7
9
  //#region src/tracing/protobuf.ts
8
10
  /**
@@ -82,6 +84,33 @@ async function decodeExportTraceServiceRequest(data) {
82
84
  }
83
85
  //#endregion
84
86
  //#region src/tracing/otlpReceiver.ts
87
+ const LOG_EVENT_NAME_DENYLIST = new Set(["claude_code.tracing"]);
88
+ const LOG_SPAN_DURATION_MS = 1;
89
+ const MAX_BODY_AS_NAME_LENGTH = 128;
90
+ const SEVERITY_NUMBER_ERROR = 17;
91
+ const MAX_LOG_BODY_ATTR_LENGTH = 8192;
92
+ function truncateLogBody(value) {
93
+ if (typeof value !== "string") return value;
94
+ if (value.length <= MAX_LOG_BODY_ATTR_LENGTH) return value;
95
+ return `${value.slice(0, MAX_LOG_BODY_ATTR_LENGTH - 15)}... [truncated]`;
96
+ }
97
+ const BASE64_ZERO_SPAN_ID = /^A{11,12}=?$/;
98
+ function isZeroSpanId(id) {
99
+ return /^0+$/.test(id) || BASE64_ZERO_SPAN_ID.test(id);
100
+ }
101
+ function randomSpanId() {
102
+ return crypto.randomBytes(8).toString("hex");
103
+ }
104
+ function getStringAttribute(attributes, key) {
105
+ const value = attributes[key];
106
+ return typeof value === "string" ? value : void 0;
107
+ }
108
+ function resolveLogSpanName(attributes, bodyValue) {
109
+ const eventName = attributes["event.name"] ?? attributes["claude_code.event.name"];
110
+ if (typeof eventName === "string" && eventName.length > 0) return eventName;
111
+ if (typeof bodyValue === "string" && bodyValue.length > 0 && bodyValue.length <= MAX_BODY_AS_NAME_LENGTH) return bodyValue;
112
+ return "otel.log";
113
+ }
85
114
  const SPAN_KIND_MAP = {
86
115
  0: "unspecified",
87
116
  1: "internal",
@@ -140,6 +169,21 @@ var OTLPReceiver = class {
140
169
  limit: "10mb",
141
170
  type: (req) => this.acceptFormats.includes("protobuf") && getRequestFormat(req.headers["content-type"]) === "protobuf"
142
171
  }));
172
+ this.app.use("/v1/logs", (req, res, next) => {
173
+ if (req.method !== "POST") {
174
+ next();
175
+ return;
176
+ }
177
+ if (getRequestFormat(req.headers["content-type"]) !== "json") {
178
+ res.status(415).json({ error: "Only application/json is supported for /v1/logs" });
179
+ return;
180
+ }
181
+ next();
182
+ });
183
+ this.app.use("/v1/logs", express.json({
184
+ limit: "10mb",
185
+ type: (req) => getRequestFormat(req.headers["content-type"]) === "json"
186
+ }));
143
187
  logger.debug("[OtlpReceiver] Middleware configured for accepted OTLP formats");
144
188
  }
145
189
  setupRoutes() {
@@ -163,6 +207,17 @@ var OTLPReceiver = class {
163
207
  this.handleProcessingError(error, res);
164
208
  }
165
209
  });
210
+ this.app.post("/v1/logs", async (req, res) => {
211
+ logger.debug("[OtlpReceiver] Received logs request");
212
+ try {
213
+ const traces = this.parseOTLPLogsJSONRequest(req.body);
214
+ logger.debug(`[OtlpReceiver] Parsed ${traces.length} logs into span records`);
215
+ if (traces.length > 0) await this.persistTraces(this.groupTraces(traces));
216
+ res.status(200).json({ partialSuccess: {} });
217
+ } catch (error) {
218
+ this.handleProcessingError(error, res);
219
+ }
220
+ });
166
221
  this.app.get("/health", (_req, res) => {
167
222
  logger.debug("[OtlpReceiver] Health check requested");
168
223
  res.status(200).json({ status: "ok" });
@@ -294,6 +349,67 @@ var OTLPReceiver = class {
294
349
  }
295
350
  return traces;
296
351
  }
352
+ parseOTLPLogsJSONRequest(body) {
353
+ const traces = [];
354
+ const resourceLogs = body?.resourceLogs ?? [];
355
+ logger.debug(`[OtlpReceiver] Parsing logs request with ${resourceLogs.length} resource logs`);
356
+ for (const resourceLog of resourceLogs) {
357
+ const resourceAttributes = this.parseAttributes(resourceLog.resource?.attributes);
358
+ for (const scopeLog of resourceLog.scopeLogs ?? []) for (const log of scopeLog.logRecords ?? []) try {
359
+ const parsed = this.logRecordToParsedTrace(log, scopeLog, resourceAttributes);
360
+ if (parsed) traces.push(parsed);
361
+ } catch (err) {
362
+ logger.warn(`[OtlpReceiver] Skipping malformed log record in scope ${scopeLog.scope?.name ?? "(unknown)"}: ${err}`);
363
+ }
364
+ }
365
+ return traces;
366
+ }
367
+ logRecordToParsedTrace(log, scopeLog, resourceAttributes) {
368
+ const rawTraceId = log.traceId ?? getStringAttribute(resourceAttributes, "promptfoo.trace_id");
369
+ if (!rawTraceId) {
370
+ logger.debug(`[OtlpReceiver] Dropping log: no traceId and no ${PROMPTFOO_RESOURCE_ATTR_TRACE_ID} resource attribute (scope=${scopeLog.scope?.name ?? "unknown"}). Ensure TRACEPARENT is propagated or OTEL_RESOURCE_ATTRIBUTES is set by the provider.`);
371
+ return null;
372
+ }
373
+ const traceId = this.convertId(rawTraceId, 32);
374
+ if (traceId.length !== 32 || !/^[0-9a-f]+$/.test(traceId)) {
375
+ logger.debug(`[OtlpReceiver] Dropping log: invalid trace_id shape '${rawTraceId}'`);
376
+ return null;
377
+ }
378
+ const attributes = {
379
+ ...resourceAttributes,
380
+ ...this.parseAttributes(log.attributes),
381
+ "otel.scope.name": scopeLog.scope?.name,
382
+ "otel.scope.version": scopeLog.scope?.version,
383
+ "otel.log.severity_number": log.severityNumber,
384
+ "otel.log.severity_text": log.severityText
385
+ };
386
+ const bodyValue = log.body ? this.parseAttributeValue(log.body) : void 0;
387
+ const name = resolveLogSpanName(attributes, bodyValue);
388
+ if (LOG_EVENT_NAME_DENYLIST.has(name)) {
389
+ logger.debug(`[OtlpReceiver] Dropping log: event '${name}' is in the denylist`);
390
+ return null;
391
+ }
392
+ if (bodyValue !== void 0) attributes["otel.log.body"] = truncateLogBody(bodyValue);
393
+ const timeNano = log.timeUnixNano ?? log.observedTimeUnixNano;
394
+ const startTime = timeNano ? Number(timeNano) / 1e6 : Date.now();
395
+ const endTime = startTime + LOG_SPAN_DURATION_MS;
396
+ const rawParentSpanId = !!log.spanId && !isZeroSpanId(log.spanId) ? log.spanId : getStringAttribute(resourceAttributes, PROMPTFOO_RESOURCE_ATTR_PARENT_SPAN_ID);
397
+ const parentSpanId = rawParentSpanId ? this.convertId(rawParentSpanId, 16) : void 0;
398
+ const severityIsError = typeof log.severityNumber === "number" && log.severityNumber >= SEVERITY_NUMBER_ERROR;
399
+ return {
400
+ traceId,
401
+ span: {
402
+ spanId: randomSpanId(),
403
+ parentSpanId,
404
+ name,
405
+ startTime,
406
+ endTime,
407
+ attributes,
408
+ statusCode: 1,
409
+ statusMessage: severityIsError ? log.severityText : void 0
410
+ }
411
+ };
412
+ }
297
413
  async parseOTLPProtobufRequest(body) {
298
414
  const decoded = await decodeExportTraceServiceRequest(body);
299
415
  logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
@@ -462,4 +578,4 @@ async function stopOTLPReceiver() {
462
578
  //#endregion
463
579
  export { startOTLPReceiver, stopOTLPReceiver };
464
580
 
465
- //# sourceMappingURL=otlpReceiver-C6thJRXi.js.map
581
+ //# sourceMappingURL=otlpReceiver-B2eaKC8C.js.map
@@ -1,7 +1,9 @@
1
1
  import { a as logger } from "./logger-Ct2S6Yx-.js";
2
- import { t as getDirectory } from "./esm-BRkfNsYs.js";
3
- import { t as getTraceStore } from "./store-BPkzEyFM.js";
2
+ import { t as getDirectory } from "./esm-BTK1W7lG.js";
3
+ import { t as getTraceStore } from "./store-HpopRVzl.js";
4
+ import { n as PROMPTFOO_RESOURCE_ATTR_TRACE_ID, t as PROMPTFOO_RESOURCE_ATTR_PARENT_SPAN_ID } from "./resourceAttributes-v6-I67fn.js";
4
5
  import path from "path";
6
+ import crypto from "node:crypto";
5
7
  import express from "express";
6
8
  import protobuf from "protobufjs";
7
9
  //#region src/tracing/protobuf.ts
@@ -82,6 +84,33 @@ async function decodeExportTraceServiceRequest(data) {
82
84
  }
83
85
  //#endregion
84
86
  //#region src/tracing/otlpReceiver.ts
87
+ const LOG_EVENT_NAME_DENYLIST = new Set(["claude_code.tracing"]);
88
+ const LOG_SPAN_DURATION_MS = 1;
89
+ const MAX_BODY_AS_NAME_LENGTH = 128;
90
+ const SEVERITY_NUMBER_ERROR = 17;
91
+ const MAX_LOG_BODY_ATTR_LENGTH = 8192;
92
+ function truncateLogBody(value) {
93
+ if (typeof value !== "string") return value;
94
+ if (value.length <= MAX_LOG_BODY_ATTR_LENGTH) return value;
95
+ return `${value.slice(0, MAX_LOG_BODY_ATTR_LENGTH - 15)}... [truncated]`;
96
+ }
97
+ const BASE64_ZERO_SPAN_ID = /^A{11,12}=?$/;
98
+ function isZeroSpanId(id) {
99
+ return /^0+$/.test(id) || BASE64_ZERO_SPAN_ID.test(id);
100
+ }
101
+ function randomSpanId() {
102
+ return crypto.randomBytes(8).toString("hex");
103
+ }
104
+ function getStringAttribute(attributes, key) {
105
+ const value = attributes[key];
106
+ return typeof value === "string" ? value : void 0;
107
+ }
108
+ function resolveLogSpanName(attributes, bodyValue) {
109
+ const eventName = attributes["event.name"] ?? attributes["claude_code.event.name"];
110
+ if (typeof eventName === "string" && eventName.length > 0) return eventName;
111
+ if (typeof bodyValue === "string" && bodyValue.length > 0 && bodyValue.length <= MAX_BODY_AS_NAME_LENGTH) return bodyValue;
112
+ return "otel.log";
113
+ }
85
114
  const SPAN_KIND_MAP = {
86
115
  0: "unspecified",
87
116
  1: "internal",
@@ -140,6 +169,21 @@ var OTLPReceiver = class {
140
169
  limit: "10mb",
141
170
  type: (req) => this.acceptFormats.includes("protobuf") && getRequestFormat(req.headers["content-type"]) === "protobuf"
142
171
  }));
172
+ this.app.use("/v1/logs", (req, res, next) => {
173
+ if (req.method !== "POST") {
174
+ next();
175
+ return;
176
+ }
177
+ if (getRequestFormat(req.headers["content-type"]) !== "json") {
178
+ res.status(415).json({ error: "Only application/json is supported for /v1/logs" });
179
+ return;
180
+ }
181
+ next();
182
+ });
183
+ this.app.use("/v1/logs", express.json({
184
+ limit: "10mb",
185
+ type: (req) => getRequestFormat(req.headers["content-type"]) === "json"
186
+ }));
143
187
  logger.debug("[OtlpReceiver] Middleware configured for accepted OTLP formats");
144
188
  }
145
189
  setupRoutes() {
@@ -163,6 +207,17 @@ var OTLPReceiver = class {
163
207
  this.handleProcessingError(error, res);
164
208
  }
165
209
  });
210
+ this.app.post("/v1/logs", async (req, res) => {
211
+ logger.debug("[OtlpReceiver] Received logs request");
212
+ try {
213
+ const traces = this.parseOTLPLogsJSONRequest(req.body);
214
+ logger.debug(`[OtlpReceiver] Parsed ${traces.length} logs into span records`);
215
+ if (traces.length > 0) await this.persistTraces(this.groupTraces(traces));
216
+ res.status(200).json({ partialSuccess: {} });
217
+ } catch (error) {
218
+ this.handleProcessingError(error, res);
219
+ }
220
+ });
166
221
  this.app.get("/health", (_req, res) => {
167
222
  logger.debug("[OtlpReceiver] Health check requested");
168
223
  res.status(200).json({ status: "ok" });
@@ -294,6 +349,67 @@ var OTLPReceiver = class {
294
349
  }
295
350
  return traces;
296
351
  }
352
+ parseOTLPLogsJSONRequest(body) {
353
+ const traces = [];
354
+ const resourceLogs = body?.resourceLogs ?? [];
355
+ logger.debug(`[OtlpReceiver] Parsing logs request with ${resourceLogs.length} resource logs`);
356
+ for (const resourceLog of resourceLogs) {
357
+ const resourceAttributes = this.parseAttributes(resourceLog.resource?.attributes);
358
+ for (const scopeLog of resourceLog.scopeLogs ?? []) for (const log of scopeLog.logRecords ?? []) try {
359
+ const parsed = this.logRecordToParsedTrace(log, scopeLog, resourceAttributes);
360
+ if (parsed) traces.push(parsed);
361
+ } catch (err) {
362
+ logger.warn(`[OtlpReceiver] Skipping malformed log record in scope ${scopeLog.scope?.name ?? "(unknown)"}: ${err}`);
363
+ }
364
+ }
365
+ return traces;
366
+ }
367
+ logRecordToParsedTrace(log, scopeLog, resourceAttributes) {
368
+ const rawTraceId = log.traceId ?? getStringAttribute(resourceAttributes, "promptfoo.trace_id");
369
+ if (!rawTraceId) {
370
+ logger.debug(`[OtlpReceiver] Dropping log: no traceId and no ${PROMPTFOO_RESOURCE_ATTR_TRACE_ID} resource attribute (scope=${scopeLog.scope?.name ?? "unknown"}). Ensure TRACEPARENT is propagated or OTEL_RESOURCE_ATTRIBUTES is set by the provider.`);
371
+ return null;
372
+ }
373
+ const traceId = this.convertId(rawTraceId, 32);
374
+ if (traceId.length !== 32 || !/^[0-9a-f]+$/.test(traceId)) {
375
+ logger.debug(`[OtlpReceiver] Dropping log: invalid trace_id shape '${rawTraceId}'`);
376
+ return null;
377
+ }
378
+ const attributes = {
379
+ ...resourceAttributes,
380
+ ...this.parseAttributes(log.attributes),
381
+ "otel.scope.name": scopeLog.scope?.name,
382
+ "otel.scope.version": scopeLog.scope?.version,
383
+ "otel.log.severity_number": log.severityNumber,
384
+ "otel.log.severity_text": log.severityText
385
+ };
386
+ const bodyValue = log.body ? this.parseAttributeValue(log.body) : void 0;
387
+ const name = resolveLogSpanName(attributes, bodyValue);
388
+ if (LOG_EVENT_NAME_DENYLIST.has(name)) {
389
+ logger.debug(`[OtlpReceiver] Dropping log: event '${name}' is in the denylist`);
390
+ return null;
391
+ }
392
+ if (bodyValue !== void 0) attributes["otel.log.body"] = truncateLogBody(bodyValue);
393
+ const timeNano = log.timeUnixNano ?? log.observedTimeUnixNano;
394
+ const startTime = timeNano ? Number(timeNano) / 1e6 : Date.now();
395
+ const endTime = startTime + LOG_SPAN_DURATION_MS;
396
+ const rawParentSpanId = !!log.spanId && !isZeroSpanId(log.spanId) ? log.spanId : getStringAttribute(resourceAttributes, PROMPTFOO_RESOURCE_ATTR_PARENT_SPAN_ID);
397
+ const parentSpanId = rawParentSpanId ? this.convertId(rawParentSpanId, 16) : void 0;
398
+ const severityIsError = typeof log.severityNumber === "number" && log.severityNumber >= SEVERITY_NUMBER_ERROR;
399
+ return {
400
+ traceId,
401
+ span: {
402
+ spanId: randomSpanId(),
403
+ parentSpanId,
404
+ name,
405
+ startTime,
406
+ endTime,
407
+ attributes,
408
+ statusCode: 1,
409
+ statusMessage: severityIsError ? log.severityText : void 0
410
+ }
411
+ };
412
+ }
297
413
  async parseOTLPProtobufRequest(body) {
298
414
  const decoded = await decodeExportTraceServiceRequest(body);
299
415
  logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
@@ -462,4 +578,4 @@ async function stopOTLPReceiver() {
462
578
  //#endregion
463
579
  export { startOTLPReceiver, stopOTLPReceiver };
464
580
 
465
- //# sourceMappingURL=otlpReceiver-CcdIikOu.js.map
581
+ //# sourceMappingURL=otlpReceiver-BXjcRqAM.js.map
@@ -1,12 +1,16 @@
1
- const require_logger = require("./logger-COuQb2xB.cjs");
2
- const require_esm = require("./esm-B_rGuPTo.cjs");
3
- const require_store = require("./store-2K0kDi80.cjs");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
2
+ const require_logger = require("./logger-cfNpzI4o.cjs");
3
+ const require_esm = require("./esm-BIKakvNa.cjs");
4
+ const require_store = require("./store-B2NDDooM.cjs");
5
+ const require_resourceAttributes = require("./resourceAttributes-ephgOvdR.cjs");
4
6
  let path = require("path");
5
- path = require_logger.__toESM(path);
7
+ path = require_rolldown_runtime.__toESM(path, 1);
8
+ let node_crypto = require("node:crypto");
9
+ node_crypto = require_rolldown_runtime.__toESM(node_crypto, 1);
6
10
  let express = require("express");
7
- express = require_logger.__toESM(express);
11
+ express = require_rolldown_runtime.__toESM(express, 1);
8
12
  let protobufjs = require("protobufjs");
9
- protobufjs = require_logger.__toESM(protobufjs);
13
+ protobufjs = require_rolldown_runtime.__toESM(protobufjs, 1);
10
14
  //#region src/tracing/protobuf.ts
11
15
  /**
12
16
  * OTLP Protobuf decoder for trace data
@@ -85,6 +89,33 @@ async function decodeExportTraceServiceRequest(data) {
85
89
  }
86
90
  //#endregion
87
91
  //#region src/tracing/otlpReceiver.ts
92
+ const LOG_EVENT_NAME_DENYLIST = new Set(["claude_code.tracing"]);
93
+ const LOG_SPAN_DURATION_MS = 1;
94
+ const MAX_BODY_AS_NAME_LENGTH = 128;
95
+ const SEVERITY_NUMBER_ERROR = 17;
96
+ const MAX_LOG_BODY_ATTR_LENGTH = 8192;
97
+ function truncateLogBody(value) {
98
+ if (typeof value !== "string") return value;
99
+ if (value.length <= MAX_LOG_BODY_ATTR_LENGTH) return value;
100
+ return `${value.slice(0, MAX_LOG_BODY_ATTR_LENGTH - 15)}... [truncated]`;
101
+ }
102
+ const BASE64_ZERO_SPAN_ID = /^A{11,12}=?$/;
103
+ function isZeroSpanId(id) {
104
+ return /^0+$/.test(id) || BASE64_ZERO_SPAN_ID.test(id);
105
+ }
106
+ function randomSpanId() {
107
+ return node_crypto.default.randomBytes(8).toString("hex");
108
+ }
109
+ function getStringAttribute(attributes, key) {
110
+ const value = attributes[key];
111
+ return typeof value === "string" ? value : void 0;
112
+ }
113
+ function resolveLogSpanName(attributes, bodyValue) {
114
+ const eventName = attributes["event.name"] ?? attributes["claude_code.event.name"];
115
+ if (typeof eventName === "string" && eventName.length > 0) return eventName;
116
+ if (typeof bodyValue === "string" && bodyValue.length > 0 && bodyValue.length <= MAX_BODY_AS_NAME_LENGTH) return bodyValue;
117
+ return "otel.log";
118
+ }
88
119
  const SPAN_KIND_MAP = {
89
120
  0: "unspecified",
90
121
  1: "internal",
@@ -143,6 +174,21 @@ var OTLPReceiver = class {
143
174
  limit: "10mb",
144
175
  type: (req) => this.acceptFormats.includes("protobuf") && getRequestFormat(req.headers["content-type"]) === "protobuf"
145
176
  }));
177
+ this.app.use("/v1/logs", (req, res, next) => {
178
+ if (req.method !== "POST") {
179
+ next();
180
+ return;
181
+ }
182
+ if (getRequestFormat(req.headers["content-type"]) !== "json") {
183
+ res.status(415).json({ error: "Only application/json is supported for /v1/logs" });
184
+ return;
185
+ }
186
+ next();
187
+ });
188
+ this.app.use("/v1/logs", express.default.json({
189
+ limit: "10mb",
190
+ type: (req) => getRequestFormat(req.headers["content-type"]) === "json"
191
+ }));
146
192
  require_logger.logger.debug("[OtlpReceiver] Middleware configured for accepted OTLP formats");
147
193
  }
148
194
  setupRoutes() {
@@ -166,6 +212,17 @@ var OTLPReceiver = class {
166
212
  this.handleProcessingError(error, res);
167
213
  }
168
214
  });
215
+ this.app.post("/v1/logs", async (req, res) => {
216
+ require_logger.logger.debug("[OtlpReceiver] Received logs request");
217
+ try {
218
+ const traces = this.parseOTLPLogsJSONRequest(req.body);
219
+ require_logger.logger.debug(`[OtlpReceiver] Parsed ${traces.length} logs into span records`);
220
+ if (traces.length > 0) await this.persistTraces(this.groupTraces(traces));
221
+ res.status(200).json({ partialSuccess: {} });
222
+ } catch (error) {
223
+ this.handleProcessingError(error, res);
224
+ }
225
+ });
169
226
  this.app.get("/health", (_req, res) => {
170
227
  require_logger.logger.debug("[OtlpReceiver] Health check requested");
171
228
  res.status(200).json({ status: "ok" });
@@ -297,6 +354,67 @@ var OTLPReceiver = class {
297
354
  }
298
355
  return traces;
299
356
  }
357
+ parseOTLPLogsJSONRequest(body) {
358
+ const traces = [];
359
+ const resourceLogs = body?.resourceLogs ?? [];
360
+ require_logger.logger.debug(`[OtlpReceiver] Parsing logs request with ${resourceLogs.length} resource logs`);
361
+ for (const resourceLog of resourceLogs) {
362
+ const resourceAttributes = this.parseAttributes(resourceLog.resource?.attributes);
363
+ for (const scopeLog of resourceLog.scopeLogs ?? []) for (const log of scopeLog.logRecords ?? []) try {
364
+ const parsed = this.logRecordToParsedTrace(log, scopeLog, resourceAttributes);
365
+ if (parsed) traces.push(parsed);
366
+ } catch (err) {
367
+ require_logger.logger.warn(`[OtlpReceiver] Skipping malformed log record in scope ${scopeLog.scope?.name ?? "(unknown)"}: ${err}`);
368
+ }
369
+ }
370
+ return traces;
371
+ }
372
+ logRecordToParsedTrace(log, scopeLog, resourceAttributes) {
373
+ const rawTraceId = log.traceId ?? getStringAttribute(resourceAttributes, "promptfoo.trace_id");
374
+ if (!rawTraceId) {
375
+ require_logger.logger.debug(`[OtlpReceiver] Dropping log: no traceId and no ${require_resourceAttributes.PROMPTFOO_RESOURCE_ATTR_TRACE_ID} resource attribute (scope=${scopeLog.scope?.name ?? "unknown"}). Ensure TRACEPARENT is propagated or OTEL_RESOURCE_ATTRIBUTES is set by the provider.`);
376
+ return null;
377
+ }
378
+ const traceId = this.convertId(rawTraceId, 32);
379
+ if (traceId.length !== 32 || !/^[0-9a-f]+$/.test(traceId)) {
380
+ require_logger.logger.debug(`[OtlpReceiver] Dropping log: invalid trace_id shape '${rawTraceId}'`);
381
+ return null;
382
+ }
383
+ const attributes = {
384
+ ...resourceAttributes,
385
+ ...this.parseAttributes(log.attributes),
386
+ "otel.scope.name": scopeLog.scope?.name,
387
+ "otel.scope.version": scopeLog.scope?.version,
388
+ "otel.log.severity_number": log.severityNumber,
389
+ "otel.log.severity_text": log.severityText
390
+ };
391
+ const bodyValue = log.body ? this.parseAttributeValue(log.body) : void 0;
392
+ const name = resolveLogSpanName(attributes, bodyValue);
393
+ if (LOG_EVENT_NAME_DENYLIST.has(name)) {
394
+ require_logger.logger.debug(`[OtlpReceiver] Dropping log: event '${name}' is in the denylist`);
395
+ return null;
396
+ }
397
+ if (bodyValue !== void 0) attributes["otel.log.body"] = truncateLogBody(bodyValue);
398
+ const timeNano = log.timeUnixNano ?? log.observedTimeUnixNano;
399
+ const startTime = timeNano ? Number(timeNano) / 1e6 : Date.now();
400
+ const endTime = startTime + LOG_SPAN_DURATION_MS;
401
+ const rawParentSpanId = !!log.spanId && !isZeroSpanId(log.spanId) ? log.spanId : getStringAttribute(resourceAttributes, require_resourceAttributes.PROMPTFOO_RESOURCE_ATTR_PARENT_SPAN_ID);
402
+ const parentSpanId = rawParentSpanId ? this.convertId(rawParentSpanId, 16) : void 0;
403
+ const severityIsError = typeof log.severityNumber === "number" && log.severityNumber >= SEVERITY_NUMBER_ERROR;
404
+ return {
405
+ traceId,
406
+ span: {
407
+ spanId: randomSpanId(),
408
+ parentSpanId,
409
+ name,
410
+ startTime,
411
+ endTime,
412
+ attributes,
413
+ statusCode: 1,
414
+ statusMessage: severityIsError ? log.severityText : void 0
415
+ }
416
+ };
417
+ }
300
418
  async parseOTLPProtobufRequest(body) {
301
419
  const decoded = await decodeExportTraceServiceRequest(body);
302
420
  require_logger.logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
@@ -466,4 +584,4 @@ async function stopOTLPReceiver() {
466
584
  exports.startOTLPReceiver = startOTLPReceiver;
467
585
  exports.stopOTLPReceiver = stopOTLPReceiver;
468
586
 
469
- //# sourceMappingURL=otlpReceiver-DNSQj6bf.cjs.map
587
+ //# sourceMappingURL=otlpReceiver-CvJdBGSc.cjs.map
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env node
2
+ import { i as resolvePackageEntryPoint, r as importModule } from "./esm-Bexx2PFc.js";
3
+ import path from "path";
4
+ //#region src/providers/packageParser.ts
5
+ function getValue(obj, path) {
6
+ return path.split(".").reduce((acc, key) => {
7
+ return acc && acc[key] !== void 0 ? acc[key] : void 0;
8
+ }, obj);
9
+ }
10
+ function isPackagePath(path) {
11
+ return typeof path === "string" && path.startsWith("package:");
12
+ }
13
+ async function loadFromPackage(packageInstancePath, basePath) {
14
+ const [, packageName, entityName] = packageInstancePath.split(":");
15
+ if (!packageName || !entityName) throw new Error(`Invalid package format: ${packageInstancePath}. Expected format: package:packageName:exportedClassOrFunction`);
16
+ const filePath = resolvePackageEntryPoint(packageName, path.resolve(basePath));
17
+ if (!filePath) throw new Error(`Package not found: ${packageName}. Make sure it's installed in ${basePath}`);
18
+ let module;
19
+ try {
20
+ module = await importModule(filePath);
21
+ } catch (error) {
22
+ throw new Error(`Failed to import module: ${packageName}. Error: ${error}`);
23
+ }
24
+ const entity = getValue(module, entityName);
25
+ if (entity === void 0) throw new Error(`Could not find entity: ${entityName} in module: ${filePath}. Make sure the entity is exported from the package.`);
26
+ return entity;
27
+ }
28
+ async function parsePackageProvider(providerPath, basePath, options) {
29
+ const Provider = await loadFromPackage(providerPath, basePath);
30
+ if (typeof Provider !== "function") throw new Error(`Provider malformed: ${providerPath} must export a provider constructor. Received: ${typeof Provider}`);
31
+ return new Provider(options);
32
+ }
33
+ //#endregion
34
+ export { loadFromPackage as n, parsePackageProvider as r, isPackagePath as t };
35
+
36
+ //# sourceMappingURL=packageParser--MWTSrPW.js.map
@@ -0,0 +1,35 @@
1
+ import { i as resolvePackageEntryPoint, r as importModule } from "./esm-BTK1W7lG.js";
2
+ import path from "path";
3
+ //#region src/providers/packageParser.ts
4
+ function getValue(obj, path) {
5
+ return path.split(".").reduce((acc, key) => {
6
+ return acc && acc[key] !== void 0 ? acc[key] : void 0;
7
+ }, obj);
8
+ }
9
+ function isPackagePath(path) {
10
+ return typeof path === "string" && path.startsWith("package:");
11
+ }
12
+ async function loadFromPackage(packageInstancePath, basePath) {
13
+ const [, packageName, entityName] = packageInstancePath.split(":");
14
+ if (!packageName || !entityName) throw new Error(`Invalid package format: ${packageInstancePath}. Expected format: package:packageName:exportedClassOrFunction`);
15
+ const filePath = resolvePackageEntryPoint(packageName, path.resolve(basePath));
16
+ if (!filePath) throw new Error(`Package not found: ${packageName}. Make sure it's installed in ${basePath}`);
17
+ let module;
18
+ try {
19
+ module = await importModule(filePath);
20
+ } catch (error) {
21
+ throw new Error(`Failed to import module: ${packageName}. Error: ${error}`);
22
+ }
23
+ const entity = getValue(module, entityName);
24
+ if (entity === void 0) throw new Error(`Could not find entity: ${entityName} in module: ${filePath}. Make sure the entity is exported from the package.`);
25
+ return entity;
26
+ }
27
+ async function parsePackageProvider(providerPath, basePath, options) {
28
+ const Provider = await loadFromPackage(providerPath, basePath);
29
+ if (typeof Provider !== "function") throw new Error(`Provider malformed: ${providerPath} must export a provider constructor. Received: ${typeof Provider}`);
30
+ return new Provider(options);
31
+ }
32
+ //#endregion
33
+ export { loadFromPackage as n, parsePackageProvider as r, isPackagePath as t };
34
+
35
+ //# sourceMappingURL=packageParser-CgE-ziRo.js.map
@@ -0,0 +1,54 @@
1
+ const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
2
+ const require_esm = require("./esm-BIKakvNa.cjs");
3
+ let path = require("path");
4
+ path = require_rolldown_runtime.__toESM(path, 1);
5
+ //#region src/providers/packageParser.ts
6
+ function getValue(obj, path$2) {
7
+ return path$2.split(".").reduce((acc, key) => {
8
+ return acc && acc[key] !== void 0 ? acc[key] : void 0;
9
+ }, obj);
10
+ }
11
+ function isPackagePath(path$3) {
12
+ return typeof path$3 === "string" && path$3.startsWith("package:");
13
+ }
14
+ async function loadFromPackage(packageInstancePath, basePath) {
15
+ const [, packageName, entityName] = packageInstancePath.split(":");
16
+ if (!packageName || !entityName) throw new Error(`Invalid package format: ${packageInstancePath}. Expected format: package:packageName:exportedClassOrFunction`);
17
+ const filePath = require_esm.resolvePackageEntryPoint(packageName, path.default.resolve(basePath));
18
+ if (!filePath) throw new Error(`Package not found: ${packageName}. Make sure it's installed in ${basePath}`);
19
+ let module;
20
+ try {
21
+ module = await require_esm.importModule(filePath);
22
+ } catch (error) {
23
+ throw new Error(`Failed to import module: ${packageName}. Error: ${error}`);
24
+ }
25
+ const entity = getValue(module, entityName);
26
+ if (entity === void 0) throw new Error(`Could not find entity: ${entityName} in module: ${filePath}. Make sure the entity is exported from the package.`);
27
+ return entity;
28
+ }
29
+ async function parsePackageProvider(providerPath, basePath, options) {
30
+ const Provider = await loadFromPackage(providerPath, basePath);
31
+ if (typeof Provider !== "function") throw new Error(`Provider malformed: ${providerPath} must export a provider constructor. Received: ${typeof Provider}`);
32
+ return new Provider(options);
33
+ }
34
+ //#endregion
35
+ Object.defineProperty(exports, "isPackagePath", {
36
+ enumerable: true,
37
+ get: function() {
38
+ return isPackagePath;
39
+ }
40
+ });
41
+ Object.defineProperty(exports, "loadFromPackage", {
42
+ enumerable: true,
43
+ get: function() {
44
+ return loadFromPackage;
45
+ }
46
+ });
47
+ Object.defineProperty(exports, "parsePackageProvider", {
48
+ enumerable: true,
49
+ get: function() {
50
+ return parsePackageProvider;
51
+ }
52
+ });
53
+
54
+ //# sourceMappingURL=packageParser-QoCS1FMl.cjs.map
@@ -0,0 +1,35 @@
1
+ import { i as resolvePackageEntryPoint, r as importModule } from "./esm-B6whoAcf.js";
2
+ import path from "path";
3
+ //#region src/providers/packageParser.ts
4
+ function getValue(obj, path) {
5
+ return path.split(".").reduce((acc, key) => {
6
+ return acc && acc[key] !== void 0 ? acc[key] : void 0;
7
+ }, obj);
8
+ }
9
+ function isPackagePath(path) {
10
+ return typeof path === "string" && path.startsWith("package:");
11
+ }
12
+ async function loadFromPackage(packageInstancePath, basePath) {
13
+ const [, packageName, entityName] = packageInstancePath.split(":");
14
+ if (!packageName || !entityName) throw new Error(`Invalid package format: ${packageInstancePath}. Expected format: package:packageName:exportedClassOrFunction`);
15
+ const filePath = resolvePackageEntryPoint(packageName, path.resolve(basePath));
16
+ if (!filePath) throw new Error(`Package not found: ${packageName}. Make sure it's installed in ${basePath}`);
17
+ let module;
18
+ try {
19
+ module = await importModule(filePath);
20
+ } catch (error) {
21
+ throw new Error(`Failed to import module: ${packageName}. Error: ${error}`);
22
+ }
23
+ const entity = getValue(module, entityName);
24
+ if (entity === void 0) throw new Error(`Could not find entity: ${entityName} in module: ${filePath}. Make sure the entity is exported from the package.`);
25
+ return entity;
26
+ }
27
+ async function parsePackageProvider(providerPath, basePath, options) {
28
+ const Provider = await loadFromPackage(providerPath, basePath);
29
+ if (typeof Provider !== "function") throw new Error(`Provider malformed: ${providerPath} must export a provider constructor. Received: ${typeof Provider}`);
30
+ return new Provider(options);
31
+ }
32
+ //#endregion
33
+ export { loadFromPackage as n, parsePackageProvider as r, isPackagePath as t };
34
+
35
+ //# sourceMappingURL=packageParser-hwwSGnAZ.js.map