@jdi-code/claude-code 1.0.3 → 1.2.0

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 (539) hide show
  1. package/README.md +104 -369
  2. package/dist/{chunk-4t7n5hfg.js → chunk-0318ehfm.js} +8 -8
  3. package/dist/chunk-050fe4m3.js +68 -0
  4. package/dist/chunk-06v69x0b.js +127 -0
  5. package/dist/chunk-07069jq1.js +30 -0
  6. package/dist/chunk-0c9xpqm8.js +106 -0
  7. package/dist/chunk-0hxxwcs1.js +107 -0
  8. package/dist/chunk-0nsb3kxz.js +440 -0
  9. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  10. package/dist/{chunk-vykgfhrb.js → chunk-0svbkpfn.js} +5 -5
  11. package/dist/chunk-0vg07894.js +121 -0
  12. package/dist/{chunk-e4vsvf0r.js → chunk-0zefjhrg.js} +4 -4
  13. package/dist/chunk-0zfmj5y2.js +106 -0
  14. package/dist/{chunk-czkshaff.js → chunk-107p04a0.js} +13 -11
  15. package/dist/{chunk-z4dm354d.js → chunk-13f30tg0.js} +1 -1
  16. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  17. package/dist/{chunk-0w63x62y.js → chunk-181q7ysj.js} +79 -63
  18. package/dist/{chunk-6mapphaq.js → chunk-18jc5efa.js} +8 -8
  19. package/dist/chunk-19j7nkpy.js +133 -0
  20. package/dist/chunk-1c2qp0ks.js +33068 -0
  21. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  22. package/dist/{chunk-7m2nd8da.js → chunk-1erfksyp.js} +6 -9
  23. package/dist/{chunk-rs45skes.js → chunk-1h1tc4mw.js} +13 -10
  24. package/dist/{chunk-91rcbmch.js → chunk-1rngm3yy.js} +155 -184
  25. package/dist/{chunk-3gqdqmzb.js → chunk-1vthytca.js} +16 -12
  26. package/dist/{chunk-xe6z85xc.js → chunk-1xbs4yb6.js} +19 -16
  27. package/dist/chunk-1xj1yz5n.js +109 -0
  28. package/dist/chunk-21mfpnva.js +85 -0
  29. package/dist/chunk-2361j94t.js +1811 -0
  30. package/dist/chunk-238g70xa.js +1 -1
  31. package/dist/chunk-250f5ce1.js +108 -0
  32. package/dist/{chunk-8yx1trkj.js → chunk-29r4exv2.js} +105 -211
  33. package/dist/chunk-2a8yf5ct.js +72 -0
  34. package/dist/{chunk-h3fqb66h.js → chunk-2bnerkhs.js} +110 -135
  35. package/dist/{chunk-0nt9md2b.js → chunk-2cctz9ww.js} +101 -8
  36. package/dist/chunk-2fwze72g.js +24 -0
  37. package/dist/{chunk-h3qa8f5w.js → chunk-2jvpw0q1.js} +229 -363
  38. package/dist/{chunk-9wm5e9e9.js → chunk-2mj88mnr.js} +42 -31
  39. package/dist/chunk-2q0schcc.js +133 -0
  40. package/dist/{chunk-r66hz8j6.js → chunk-2qp2hc02.js} +14 -12
  41. package/dist/chunk-2t0xa4dt.js +145 -0
  42. package/dist/chunk-2tzxsnha.js +360 -0
  43. package/dist/chunk-2v8cya3p.js +54 -0
  44. package/dist/chunk-2w00z1ct.js +105 -0
  45. package/dist/{chunk-2md1yavs.js → chunk-2wpfdv2t.js} +43 -32
  46. package/dist/chunk-2xcr3eqt.js +65 -0
  47. package/dist/chunk-30bpz5m2.js +34 -0
  48. package/dist/{chunk-hrzerbfw.js → chunk-36b2q5fg.js} +14 -14
  49. package/dist/{chunk-edg1yhec.js → chunk-3aady5e2.js} +2 -2
  50. package/dist/chunk-3ewzhjyb.js +207 -0
  51. package/dist/{chunk-z47tm067.js → chunk-3kpptrnz.js} +54 -47
  52. package/dist/{chunk-yd3av9a3.js → chunk-3na967x3.js} +2 -2
  53. package/dist/chunk-3nk79af8.js +8 -0
  54. package/dist/{chunk-z0cm9r7f.js → chunk-3r66czp1.js} +10 -10
  55. package/dist/{chunk-rnjbczcy.js → chunk-3y3qasy6.js} +13 -11
  56. package/dist/{chunk-nxsh6de2.js → chunk-404qm8xt.js} +16 -12
  57. package/dist/{chunk-mhqthgdg.js → chunk-41grdp0q.js} +5 -5
  58. package/dist/chunk-4cp6193g.js +9076 -0
  59. package/dist/chunk-4g18phg9.js +2535 -0
  60. package/dist/{chunk-6n2qgm9v.js → chunk-4hv90qcz.js} +1 -1
  61. package/dist/chunk-4jkfzf6g.js +81 -0
  62. package/dist/{chunk-5frcqxsv.js → chunk-4m6k7588.js} +127117 -138842
  63. package/dist/chunk-4nspekjp.js +69 -0
  64. package/dist/chunk-4x29t96w.js +119 -0
  65. package/dist/{chunk-40b8p5em.js → chunk-585cb3h6.js} +14 -12
  66. package/dist/{chunk-5dbar61y.js → chunk-59qz55py.js} +77 -61
  67. package/dist/chunk-5bta6qne.js +1030 -0
  68. package/dist/chunk-5dmczs66.js +123 -0
  69. package/dist/{chunk-9e2kqv5g.js → chunk-5pevjsyw.js} +3 -10
  70. package/dist/{chunk-5ndexvh1.js → chunk-5py41v61.js} +10226 -16961
  71. package/dist/{chunk-d5e75scx.js → chunk-5q2gm8dt.js} +5 -5
  72. package/dist/{chunk-893mewv4.js → chunk-5rpyh7nn.js} +1 -1
  73. package/dist/{chunk-hx2tr4ep.js → chunk-5z28bqne.js} +34 -475
  74. package/dist/chunk-5zzwydag.js +1170 -0
  75. package/dist/{chunk-4tyxyfsv.js → chunk-61gm3j90.js} +2 -2
  76. package/dist/chunk-64c1avct.js +13 -0
  77. package/dist/chunk-64hks9ax.js +456 -0
  78. package/dist/{chunk-bw9a5v0b.js → chunk-64m7ax9d.js} +4 -4
  79. package/dist/{chunk-cha1tdry.js → chunk-66hjztcb.js} +1 -1
  80. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  81. package/dist/chunk-69v14ada.js +76 -0
  82. package/dist/chunk-6eahnbxj.js +101 -0
  83. package/dist/chunk-6eg4c33n.js +196 -0
  84. package/dist/chunk-6fjfwj7q.js +214 -0
  85. package/dist/{chunk-70qb5sds.js → chunk-6kwwke3r.js} +2 -2
  86. package/dist/chunk-6m0pc6py.js +311 -0
  87. package/dist/chunk-6mpw9h55.js +1071 -0
  88. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  89. package/dist/chunk-6r1dx518.js +111 -0
  90. package/dist/{chunk-1n1xqxv5.js → chunk-713bh4cd.js} +1072 -1736
  91. package/dist/{chunk-nstbdz07.js → chunk-7246q965.js} +85 -69
  92. package/dist/{chunk-w6q6a1qj.js → chunk-74mdk2e7.js} +564 -864
  93. package/dist/{chunk-77czbpcq.js → chunk-76pa90ge.js} +104 -90
  94. package/dist/chunk-77nkh0x1.js +82 -0
  95. package/dist/chunk-7bsbnzpm.js +65 -0
  96. package/dist/chunk-7r3v46aq.js +167 -0
  97. package/dist/chunk-7vf8s593.js +235 -0
  98. package/dist/chunk-7x6ng8fp.js +64 -0
  99. package/dist/chunk-7xy990yb.js +81 -0
  100. package/dist/chunk-7xyswgjh.js +8 -0
  101. package/dist/chunk-80p18mf8.js +228 -0
  102. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  103. package/dist/{chunk-vdbes184.js → chunk-82rh5hpz.js} +70 -10
  104. package/dist/chunk-84nf3k34.js +73 -0
  105. package/dist/chunk-85v0yx5b.js +106 -0
  106. package/dist/{chunk-x5j50p5x.js → chunk-86f4vq6n.js} +5 -5
  107. package/dist/{chunk-e5ga3s0y.js → chunk-86vec0h6.js} +148 -421
  108. package/dist/chunk-8az1n4zt.js +110 -0
  109. package/dist/{chunk-ctw5jwcd.js → chunk-8bwqtasa.js} +10 -10
  110. package/dist/chunk-8c9jtmsm.js +100 -0
  111. package/dist/{chunk-fqc5mcw7.js → chunk-8ca80ew2.js} +9 -9
  112. package/dist/chunk-8g5pe1gr.js +37 -0
  113. package/dist/{chunk-g0j0t6qk.js → chunk-8g747a8x.js} +1 -1
  114. package/dist/{chunk-3vzs2gbq.js → chunk-8gxztyqd.js} +4 -4
  115. package/dist/{chunk-45kxdsp8.js → chunk-8h6sdj66.js} +13 -10
  116. package/dist/{chunk-s8amjdwf.js → chunk-8ht15c7w.js} +7 -7
  117. package/dist/{chunk-ywxd4qw4.js → chunk-8mm8b6dd.js} +2 -5
  118. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  119. package/dist/{chunk-pxrffn0w.js → chunk-8vnxjgz9.js} +11 -5
  120. package/dist/chunk-9525p9tg.js +401 -0
  121. package/dist/{chunk-y47cg3kz.js → chunk-9a0rsdre.js} +17 -13
  122. package/dist/chunk-9a2pa53f.js +308 -0
  123. package/dist/chunk-9es2dav7.js +507 -0
  124. package/dist/chunk-9pq45ycx.js +217 -0
  125. package/dist/chunk-9qwkw406.js +121 -0
  126. package/dist/chunk-9rf1x0z9.js +109 -0
  127. package/dist/{chunk-ghmbr193.js → chunk-9rvqx05m.js} +9 -9
  128. package/dist/{chunk-dchkdhzs.js → chunk-9sd3tz3p.js} +91 -75
  129. package/dist/chunk-9x5zgy22.js +12 -0
  130. package/dist/{chunk-q6b51yc5.js → chunk-9z4vq44b.js} +3 -3
  131. package/dist/chunk-a136cvvz.js +27 -0
  132. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  133. package/dist/{chunk-d18z9pna.js → chunk-a7rhvq9b.js} +2 -2
  134. package/dist/{chunk-pmjqdasm.js → chunk-a8jbqb9f.js} +2313 -4199
  135. package/dist/chunk-a9xhsth1.js +1068 -0
  136. package/dist/{chunk-kd63fbhw.js → chunk-achjqrhd.js} +81 -65
  137. package/dist/{chunk-67kbbt9h.js → chunk-af2vfhm4.js} +42 -31
  138. package/dist/{chunk-js8rvgs1.js → chunk-ahn9tgz7.js} +3 -3
  139. package/dist/chunk-ajets2e9.js +103 -0
  140. package/dist/chunk-akxywws0.js +79 -0
  141. package/dist/{chunk-meefz2g4.js → chunk-aqvgkvsq.js} +7 -7
  142. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  143. package/dist/{chunk-hjhc4cpt.js → chunk-awb4vc41.js} +2 -2
  144. package/dist/{chunk-1jrcb7cs.js → chunk-b0mt3wzx.js} +37 -82
  145. package/dist/chunk-b4zy6y92.js +105 -0
  146. package/dist/{chunk-ax83mpvw.js → chunk-b65yxs9e.js} +26 -26
  147. package/dist/{chunk-wzx6mmft.js → chunk-b7b39zx2.js} +120 -118
  148. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  149. package/dist/chunk-bbr7mwpv.js +117 -0
  150. package/dist/{chunk-1a61g8t2.js → chunk-bdzqt6gy.js} +83 -64
  151. package/dist/chunk-bkm0zms8.js +110 -0
  152. package/dist/{chunk-0vvej174.js → chunk-bs8r4665.js} +5 -5
  153. package/dist/{chunk-xvc4gp3x.js → chunk-bszdmr4k.js} +24 -24
  154. package/dist/{chunk-8ngxagxq.js → chunk-bt64sq5y.js} +4 -3
  155. package/dist/chunk-bvcpr8qa.js +909 -0
  156. package/dist/chunk-bx811wk6.js +118 -0
  157. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  158. package/dist/{chunk-77g09znh.js → chunk-byv2p9hn.js} +22 -16
  159. package/dist/{chunk-wbkahkdc.js → chunk-c03am3es.js} +8 -6
  160. package/dist/chunk-c1x69s30.js +116 -0
  161. package/dist/chunk-c5vkve4j.js +68 -0
  162. package/dist/chunk-c6sjhj89.js +1284 -0
  163. package/dist/chunk-cb0wxajw.js +142 -0
  164. package/dist/{chunk-vyc0rjyx.js → chunk-cbrt5vsb.js} +1 -1
  165. package/dist/{chunk-4kxr1pwz.js → chunk-cgmy7r62.js} +30 -17
  166. package/dist/chunk-chsyvavm.js +3435 -0
  167. package/dist/{chunk-z72st5c8.js → chunk-cmsknj6n.js} +4774 -3386
  168. package/dist/{chunk-cdz5yb0r.js → chunk-crmjpsqe.js} +13 -2
  169. package/dist/chunk-cs039fnj.js +123 -0
  170. package/dist/{chunk-e7393td6.js → chunk-cznf6k4g.js} +13 -9
  171. package/dist/{chunk-fw49pe3p.js → chunk-cztjpxq4.js} +6 -6
  172. package/dist/{chunk-n8sjmqba.js → chunk-d0n93ge4.js} +141 -100
  173. package/dist/{chunk-spde0bf5.js → chunk-d14ygn80.js} +3 -3
  174. package/dist/chunk-d4mdda98.js +94 -0
  175. package/dist/chunk-d5qggsbm.js +137 -0
  176. package/dist/{chunk-55wgxwa9.js → chunk-d7886r6a.js} +6928 -6935
  177. package/dist/{chunk-eh8h36nt.js → chunk-d9gxtzmz.js} +42 -31
  178. package/dist/{chunk-xk66xrkk.js → chunk-da312cj9.js} +54 -72
  179. package/dist/{chunk-j287ctwr.js → chunk-df19zqjj.js} +77 -61
  180. package/dist/chunk-dm3n2qgd.js +24 -0
  181. package/dist/{chunk-m21hvkn4.js → chunk-dncgrfdt.js} +2 -2
  182. package/dist/{chunk-0nz8sqg4.js → chunk-dq3rw4b5.js} +1294 -873
  183. package/dist/{chunk-ey03t39w.js → chunk-dw1f4b7e.js} +257 -194
  184. package/dist/chunk-dx1jrvdz.js +339 -0
  185. package/dist/{chunk-0ragr30c.js → chunk-dxeadbxq.js} +12 -12
  186. package/dist/{chunk-gdp8wgnd.js → chunk-e8b9gcwf.js} +88 -72
  187. package/dist/chunk-e9k5a3cy.js +409 -0
  188. package/dist/chunk-e9mer45h.js +64 -0
  189. package/dist/{chunk-5qbwrz8m.js → chunk-ea2f7wt3.js} +13 -13
  190. package/dist/chunk-eak7m65m.js +1182 -0
  191. package/dist/chunk-ebhgmeyk.js +245 -0
  192. package/dist/chunk-eg93k7ac.js +117 -0
  193. package/dist/{chunk-jgv78tv0.js → chunk-ej1yvp43.js} +8 -8
  194. package/dist/chunk-ekr8pwpv.js +1408 -0
  195. package/dist/{chunk-m4edbpcz.js → chunk-epg124e3.js} +117 -143
  196. package/dist/chunk-eyqnj23w.js +5368 -0
  197. package/dist/chunk-f2bvkxbw.js +267 -0
  198. package/dist/chunk-f537x96t.js +295 -0
  199. package/dist/chunk-f6wdmebb.js +108 -0
  200. package/dist/chunk-feyzykye.js +10 -0
  201. package/dist/{chunk-ep47dy22.js → chunk-fj3ywwqv.js} +7 -7
  202. package/dist/{chunk-9gttd1xq.js → chunk-fjv7p1kc.js} +4 -4
  203. package/dist/{chunk-1rnkpxy4.js → chunk-fpe5nywt.js} +10 -115
  204. package/dist/chunk-fvpgrg19.js +434 -0
  205. package/dist/{chunk-9xmsmn93.js → chunk-fvqrkmtn.js} +5 -5
  206. package/dist/{chunk-6g62sjpf.js → chunk-fz0ch109.js} +4 -3
  207. package/dist/{chunk-5xz7ts0k.js → chunk-g0vh71q6.js} +188 -339
  208. package/dist/chunk-g1gtvtv8.js +384 -0
  209. package/dist/chunk-g5g9wm20.js +66 -0
  210. package/dist/{chunk-v399mzxk.js → chunk-g63tgj4f.js} +2 -2
  211. package/dist/{chunk-kkkneeg1.js → chunk-gay98970.js} +21 -16
  212. package/dist/chunk-gey7mwcw.js +36 -0
  213. package/dist/{chunk-w5ctjgmx.js → chunk-gtyh1yd1.js} +2 -2
  214. package/dist/{chunk-tjaqa99q.js → chunk-gx8016vp.js} +3 -3
  215. package/dist/{chunk-f2mhrmww.js → chunk-h0rbjg6x.js} +1 -8
  216. package/dist/{chunk-7z8j9qfn.js → chunk-h1mr3371.js} +3 -3
  217. package/dist/chunk-h2yxyeq4.js +132 -0
  218. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  219. package/dist/chunk-h707k8xq.js +64 -0
  220. package/dist/{chunk-3z6rf0m3.js → chunk-h7rcjx8d.js} +5 -5
  221. package/dist/chunk-hch5yeq8.js +121 -0
  222. package/dist/{chunk-4anyx5bv.js → chunk-hd4azb7x.js} +5 -5
  223. package/dist/chunk-hjnbg9qw.js +32 -0
  224. package/dist/{chunk-e2yv57c2.js → chunk-hk9mmkba.js} +8 -8
  225. package/dist/{chunk-f1rrxxcf.js → chunk-hs9w0p45.js} +7 -131
  226. package/dist/{chunk-9f7xza5r.js → chunk-htaan7k0.js} +11 -11
  227. package/dist/chunk-htg84hvs.js +300 -0
  228. package/dist/chunk-hvyr6p4r.js +433 -0
  229. package/dist/chunk-j0r5vkvw.js +267 -0
  230. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  231. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  232. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  233. package/dist/chunk-je7jake4.js +3584 -0
  234. package/dist/chunk-jeqhpyxr.js +126 -0
  235. package/dist/chunk-jngf0nar.js +135 -0
  236. package/dist/chunk-jqjbc5ef.js +795 -0
  237. package/dist/{chunk-xf4wsjdm.js → chunk-jwrmmv7j.js} +9 -7
  238. package/dist/{chunk-j9wpkwjj.js → chunk-jwyzy83k.js} +6 -6
  239. package/dist/chunk-jz8v9sn3.js +228 -0
  240. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  241. package/dist/chunk-k5c09bzv.js +443 -0
  242. package/dist/chunk-kbktwsms.js +372 -0
  243. package/dist/chunk-ke0hn0xr.js +260 -0
  244. package/dist/chunk-kehe7a71.js +41 -0
  245. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  246. package/dist/chunk-ktjjb0k9.js +104 -0
  247. package/dist/{chunk-b74ht3xj.js → chunk-kxgcshx1.js} +78 -62
  248. package/dist/chunk-kz2fpejx.js +651 -0
  249. package/dist/{chunk-zvbpaaa1.js → chunk-kz3ctzg3.js} +110 -115
  250. package/dist/{chunk-72p24c9k.js → chunk-m268mm4c.js} +127 -188
  251. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  252. package/dist/{chunk-4qv4z794.js → chunk-m32mdkts.js} +42 -31
  253. package/dist/chunk-m74w3187.js +164 -0
  254. package/dist/chunk-m7s7j422.js +166 -0
  255. package/dist/chunk-majhpxx5.js +594 -0
  256. package/dist/{chunk-q6av622g.js → chunk-mdk3xgya.js} +17 -13
  257. package/dist/{chunk-8bw3ft0x.js → chunk-mfcbez9a.js} +4 -4
  258. package/dist/{chunk-df6bwb4a.js → chunk-mj6w3ttg.js} +2 -2
  259. package/dist/{chunk-drrw55jr.js → chunk-mk6kj3q2.js} +1336 -2840
  260. package/dist/{chunk-vqr58rfh.js → chunk-mky388t4.js} +27 -67
  261. package/dist/chunk-mn61mk4v.js +351 -0
  262. package/dist/chunk-mx28h61f.js +1147 -0
  263. package/dist/chunk-my57sgky.js +883 -0
  264. package/dist/{chunk-k48thqgp.js → chunk-myk8saf6.js} +95 -190
  265. package/dist/chunk-n2zdmx4g.js +66 -0
  266. package/dist/{chunk-720qpv6d.js → chunk-n833arxq.js} +79 -63
  267. package/dist/{chunk-w2z5pqd3.js → chunk-n9ktjngj.js} +6 -6
  268. package/dist/{chunk-2tw2ve8h.js → chunk-nb2ntesh.js} +14 -10
  269. package/dist/{chunk-y18mc4m4.js → chunk-nbqv8ref.js} +10 -10
  270. package/dist/{chunk-74v9z7z4.js → chunk-nd4rncgd.js} +3 -13
  271. package/dist/chunk-nda50ze4.js +341 -0
  272. package/dist/{chunk-gb2q3nvc.js → chunk-nea2sah6.js} +5 -5
  273. package/dist/{chunk-t36rb2a8.js → chunk-nefsxetf.js} +294 -500
  274. package/dist/chunk-netzwgv1.js +154 -0
  275. package/dist/chunk-nfk9e540.js +107 -0
  276. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  277. package/dist/chunk-njq2hmjy.js +270 -0
  278. package/dist/chunk-nn5j7h8a.js +156 -0
  279. package/dist/{chunk-6fjab2dp.js → chunk-nrvkwzmq.js} +2 -2
  280. package/dist/chunk-nsextsmp.js +360 -0
  281. package/dist/{chunk-amhzxqj4.js → chunk-nt90fta7.js} +5 -5
  282. package/dist/{chunk-qbx1rq4f.js → chunk-p6sqbnqb.js} +193 -327
  283. package/dist/chunk-p8c23zr7.js +61 -0
  284. package/dist/chunk-p8enbwjk.js +183 -0
  285. package/dist/chunk-p8yggvgf.js +436 -0
  286. package/dist/{chunk-96awg5tc.js → chunk-pcfhe19b.js} +80 -17
  287. package/dist/{chunk-sfq65q9w.js → chunk-pgv9sa3a.js} +10 -14
  288. package/dist/chunk-ppwjyveh.js +8 -0
  289. package/dist/chunk-ppxvfp6m.js +424 -0
  290. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  291. package/dist/{chunk-35x3tjnr.js → chunk-pwr83fyy.js} +14 -8
  292. package/dist/chunk-q1976kze.js +473 -0
  293. package/dist/chunk-q387p8pp.js +943 -0
  294. package/dist/{chunk-b6av9ny9.js → chunk-q3ffkhnp.js} +132 -20
  295. package/dist/{chunk-w7wgpqcp.js → chunk-q50q8mc5.js} +7 -7
  296. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  297. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  298. package/dist/chunk-qajrkk97.js +298 -0
  299. package/dist/chunk-qdazcrd7.js +362 -0
  300. package/dist/chunk-qhwvhgty.js +61 -0
  301. package/dist/{chunk-455a8z6g.js → chunk-qqk0kvsw.js} +138 -98
  302. package/dist/chunk-qqya1xyt.js +513 -0
  303. package/dist/{chunk-mzdwvbb0.js → chunk-qs6wypj1.js} +2 -2
  304. package/dist/chunk-qtahf5s5.js +113 -0
  305. package/dist/{chunk-tj79kfmn.js → chunk-qv9phqbv.js} +7 -7
  306. package/dist/{chunk-r5k04v8g.js → chunk-qyygv221.js} +13 -9
  307. package/dist/{chunk-zfc67eqj.js → chunk-r34f6vwc.js} +4 -4
  308. package/dist/{chunk-nerv0jvx.js → chunk-r59rgjxq.js} +1 -1
  309. package/dist/{chunk-7sb5axvf.js → chunk-r7j395t6.js} +2 -2
  310. package/dist/chunk-rb31sqzm.js +106 -0
  311. package/dist/{chunk-twsxz9ph.js → chunk-rbwy1qmm.js} +42 -31
  312. package/dist/{chunk-99t8enmg.js → chunk-re3crc6t.js} +10 -7
  313. package/dist/chunk-rhw4ayb1.js +6851 -0
  314. package/dist/{chunk-h6wtwdk0.js → chunk-rm31ynek.js} +8 -8
  315. package/dist/{chunk-eqrh0yjm.js → chunk-rr4e4axp.js} +2 -2
  316. package/dist/{chunk-neh2frnn.js → chunk-rs8304k5.js} +6 -6
  317. package/dist/{chunk-gax0fcbx.js → chunk-s1s8qfdh.js} +5 -5
  318. package/dist/{chunk-src9fqj8.js → chunk-s2483y2h.js} +3 -3
  319. package/dist/chunk-s2nhzjmt.js +113 -0
  320. package/dist/{chunk-7jma9mhn.js → chunk-sfhws681.js} +77 -61
  321. package/dist/{chunk-e3g8q4cn.js → chunk-sg66v252.js} +10 -8
  322. package/dist/{chunk-vp25xhav.js → chunk-szyt0xvf.js} +69 -78
  323. package/dist/{chunk-v7455ztd.js → chunk-t7j91et3.js} +86 -67
  324. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  325. package/dist/chunk-tf1p9trz.js +190 -0
  326. package/dist/{chunk-05gxvwvf.js → chunk-tm82sqkr.js} +96 -79
  327. package/dist/chunk-tpjetyb0.js +106 -0
  328. package/dist/chunk-trxvrrac.js +149 -0
  329. package/dist/chunk-tv9pcdnz.js +51 -0
  330. package/dist/{chunk-e5tfw9f7.js → chunk-twh7pzm8.js} +248 -307
  331. package/dist/{chunk-1x2wb3tc.js → chunk-txfvkh0w.js} +8 -8
  332. package/dist/chunk-var1et7e.js +66 -0
  333. package/dist/{chunk-se7v9emp.js → chunk-vbhvx4ma.js} +12 -10
  334. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  335. package/dist/{chunk-3sdp7ds7.js → chunk-vfcty2ga.js} +10 -10
  336. package/dist/chunk-vhhyv8z8.js +147 -0
  337. package/dist/{chunk-48z7dgy1.js → chunk-vjcxs86z.js} +3 -3
  338. package/dist/{chunk-k5bpc8d5.js → chunk-vmnf3h9c.js} +43 -32
  339. package/dist/{chunk-fpjeh2em.js → chunk-vr7wmmyn.js} +17 -13
  340. package/dist/{chunk-9ewmqkgb.js → chunk-vxp2mhqy.js} +8 -8
  341. package/dist/{chunk-d238zp4m.js → chunk-w4gwnrwa.js} +2 -2
  342. package/dist/{chunk-jhsywyw8.js → chunk-wahkzh83.js} +9 -9
  343. package/dist/chunk-wdd4en5q.js +117 -0
  344. package/dist/{chunk-gm2m2yba.js → chunk-wgfnd174.js} +43 -32
  345. package/dist/chunk-wk1jw4dm.js +139 -0
  346. package/dist/chunk-wnpjc8hg.js +1018 -0
  347. package/dist/chunk-wv1t041q.js +151 -0
  348. package/dist/chunk-wvtmrmaj.js +130 -0
  349. package/dist/chunk-wyavftcj.js +103 -0
  350. package/dist/{chunk-4589pec2.js → chunk-x2dp18yj.js} +18 -46
  351. package/dist/{chunk-fj4hkg6k.js → chunk-x474ybns.js} +79 -110
  352. package/dist/chunk-x67cvhb8.js +134 -0
  353. package/dist/chunk-x6r4v44b.js +8 -0
  354. package/dist/{chunk-s0xfxkys.js → chunk-xk9pxqqx.js} +6 -6
  355. package/dist/{chunk-m06q12hg.js → chunk-xkt36p6r.js} +1 -1
  356. package/dist/{chunk-g653q217.js → chunk-xnav6j8h.js} +62 -374
  357. package/dist/chunk-xrjb0zyc.js +146 -0
  358. package/dist/chunk-xv3era3s.js +8 -0
  359. package/dist/{chunk-p7g7pf3f.js → chunk-y3r7v9pq.js} +4 -4
  360. package/dist/{chunk-3sagmdbp.js → chunk-y4szkj7r.js} +80 -64
  361. package/dist/{chunk-7d2700y8.js → chunk-y8syxjw1.js} +24 -54
  362. package/dist/chunk-y98z50mm.js +158 -0
  363. package/dist/chunk-ycrfxq10.js +123 -0
  364. package/dist/{chunk-8440dz44.js → chunk-yfjzdc0q.js} +9 -9
  365. package/dist/{chunk-cejskpky.js → chunk-ygf7pmmr.js} +145 -153
  366. package/dist/chunk-yha3z3ab.js +259 -0
  367. package/dist/chunk-ym5r3jnk.js +2007 -0
  368. package/dist/{chunk-28r6z9br.js → chunk-ys2gtqb0.js} +1 -3
  369. package/dist/{chunk-rzgtgtaf.js → chunk-ytg2n0dd.js} +7 -7
  370. package/dist/{chunk-q5hb65kq.js → chunk-ytzw9kw1.js} +78 -62
  371. package/dist/chunk-yzx3mhfd.js +110 -0
  372. package/dist/chunk-z1bs6d7k.js +24 -0
  373. package/dist/{chunk-6h9zcxaa.js → chunk-z1mvcq39.js} +4 -4
  374. package/dist/{chunk-gbq6jz9a.js → chunk-z3qhctbk.js} +134 -170
  375. package/dist/chunk-z9jn3442.js +146 -0
  376. package/dist/{chunk-5q7c8vt9.js → chunk-zbsz51qa.js} +41 -32
  377. package/dist/{chunk-n1erf6kh.js → chunk-ze6zvkg6.js} +5 -5
  378. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  379. package/dist/{chunk-gfkppe34.js → chunk-zf47p99b.js} +10 -10
  380. package/dist/{chunk-53nbpp47.js → chunk-zhtrjznv.js} +557 -1502
  381. package/dist/{chunk-das977za.js → chunk-zq6tz1zv.js} +61 -100
  382. package/dist/chunk-zrw9gm80.js +264 -0
  383. package/dist/chunk-zseb1639.js +37 -0
  384. package/dist/{chunk-spqaamnc.js → chunk-zsgha506.js} +2 -2
  385. package/dist/chunk-zst7b4sp.js +2840 -0
  386. package/dist/{chunk-0xn1zr3e.js → chunk-zxkzzpgd.js} +145 -121
  387. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  388. package/dist/cli.js +20 -117
  389. package/dist/download-ripgrep.js +24821 -0
  390. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  391. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  392. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  393. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  394. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  395. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  396. package/package.json +22 -14
  397. package/scripts/download-ripgrep.ts +335 -0
  398. package/scripts/postinstall.cjs +319 -0
  399. package/dist/chunk-0gemty6d.js +0 -70
  400. package/dist/chunk-0pjw8y9z.js +0 -2833
  401. package/dist/chunk-1c8z1b5v.js +0 -16
  402. package/dist/chunk-1ebedmba.js +0 -90
  403. package/dist/chunk-1rvz0433.js +0 -722
  404. package/dist/chunk-1wfb8e3m.js +0 -107
  405. package/dist/chunk-2qjywwq4.js +0 -3445
  406. package/dist/chunk-2y659zbj.js +0 -103
  407. package/dist/chunk-41md7gny.js +0 -91
  408. package/dist/chunk-45m062tx.js +0 -2058
  409. package/dist/chunk-4br37gsw.js +0 -107
  410. package/dist/chunk-4nfrc6sq.js +0 -2431
  411. package/dist/chunk-4pdedeb4.js +0 -2644
  412. package/dist/chunk-4wzyhqbt.js +0 -444
  413. package/dist/chunk-4zsw4fhp.js +0 -67
  414. package/dist/chunk-52wv09zw.js +0 -102
  415. package/dist/chunk-55sfqnz4.js +0 -1921
  416. package/dist/chunk-5cd9cptq.js +0 -110
  417. package/dist/chunk-5dbk24zg.js +0 -890
  418. package/dist/chunk-5tfppbkq.js +0 -55
  419. package/dist/chunk-60xyrp86.js +0 -117
  420. package/dist/chunk-6deqb0mc.js +0 -376
  421. package/dist/chunk-6kpbgc5w.js +0 -23
  422. package/dist/chunk-6ndpfxcn.js +0 -222
  423. package/dist/chunk-7nvpa5ex.js +0 -123
  424. package/dist/chunk-7va8tw32.js +0 -128
  425. package/dist/chunk-7z3tkgec.js +0 -66
  426. package/dist/chunk-8e8set87.js +0 -281
  427. package/dist/chunk-8fg1egbv.js +0 -107
  428. package/dist/chunk-8thd6sgk.js +0 -106
  429. package/dist/chunk-8ytkb7k9.js +0 -84
  430. package/dist/chunk-9s5nkgsg.js +0 -699
  431. package/dist/chunk-9wce9hrc.js +0 -1015
  432. package/dist/chunk-9y91z69v.js +0 -44
  433. package/dist/chunk-ae76ded0.js +0 -30
  434. package/dist/chunk-b0eez8w0.js +0 -169
  435. package/dist/chunk-b57sb1dw.js +0 -642
  436. package/dist/chunk-bg3mt9bm.js +0 -28
  437. package/dist/chunk-bhdt6k7w.js +0 -15
  438. package/dist/chunk-bm1qb16p.js +0 -17
  439. package/dist/chunk-bsbmmfyt.js +0 -17
  440. package/dist/chunk-c7q12yes.js +0 -269
  441. package/dist/chunk-cv6y320h.js +0 -299
  442. package/dist/chunk-cvy3vntc.js +0 -65
  443. package/dist/chunk-cy2hswr1.js +0 -15
  444. package/dist/chunk-d5d398m4.js +0 -184
  445. package/dist/chunk-d7q4zp2z.js +0 -89
  446. package/dist/chunk-dnk519qv.js +0 -94
  447. package/dist/chunk-dqqde43e.js +0 -93
  448. package/dist/chunk-dy4ayw0p.js +0 -522
  449. package/dist/chunk-e4ak3jfc.js +0 -1154
  450. package/dist/chunk-e64spn53.js +0 -283
  451. package/dist/chunk-e8pk14j0.js +0 -527
  452. package/dist/chunk-eashsrsv.js +0 -88
  453. package/dist/chunk-eb90vwvr.js +0 -152
  454. package/dist/chunk-ese2g7hc.js +0 -92
  455. package/dist/chunk-et4jnyb5.js +0 -713
  456. package/dist/chunk-fdy0651p.js +0 -212
  457. package/dist/chunk-frsyts9j.js +0 -1170
  458. package/dist/chunk-ft2jssz4.js +0 -424
  459. package/dist/chunk-g41hzcy2.js +0 -101
  460. package/dist/chunk-g8dr8vvj.js +0 -111
  461. package/dist/chunk-gj71pd83.js +0 -5395
  462. package/dist/chunk-gjdwtdch.js +0 -154
  463. package/dist/chunk-gyj242zr.js +0 -20
  464. package/dist/chunk-hr719wjg.js +0 -144
  465. package/dist/chunk-hs8ph4p8.js +0 -8
  466. package/dist/chunk-j7gpr82p.js +0 -105
  467. package/dist/chunk-jczedp5x.js +0 -91
  468. package/dist/chunk-jd0t67a6.js +0 -259
  469. package/dist/chunk-jgyp3mzg.js +0 -1318
  470. package/dist/chunk-jq1kp9yy.js +0 -90
  471. package/dist/chunk-jskhn7bz.js +0 -71
  472. package/dist/chunk-k5aas9d3.js +0 -6108
  473. package/dist/chunk-k8jcy7mj.js +0 -48
  474. package/dist/chunk-ka22ccvm.js +0 -1581
  475. package/dist/chunk-ka6jav10.js +0 -91
  476. package/dist/chunk-kq6j096k.js +0 -538
  477. package/dist/chunk-kqd0e3xj.js +0 -463
  478. package/dist/chunk-kqjrsah4.js +0 -85
  479. package/dist/chunk-m390jta5.js +0 -114
  480. package/dist/chunk-m44a9yfj.js +0 -90
  481. package/dist/chunk-m5c8ng6v.js +0 -328
  482. package/dist/chunk-meag7bbe.js +0 -89
  483. package/dist/chunk-mnsrmwn8.js +0 -604
  484. package/dist/chunk-mzj4mtye.js +0 -115
  485. package/dist/chunk-mzy911jq.js +0 -128
  486. package/dist/chunk-n0fwapk6.js +0 -347
  487. package/dist/chunk-nt0mgsh6.js +0 -496
  488. package/dist/chunk-nwcfrws3.js +0 -273
  489. package/dist/chunk-pa2xksyb.js +0 -57
  490. package/dist/chunk-pnhs96g8.js +0 -140
  491. package/dist/chunk-ps4c75j7.js +0 -105
  492. package/dist/chunk-q0yg73za.js +0 -490
  493. package/dist/chunk-q5by3da6.js +0 -8
  494. package/dist/chunk-qbmhde47.js +0 -92
  495. package/dist/chunk-qp3dw7b4.js +0 -100
  496. package/dist/chunk-qt0b9x2w.js +0 -42
  497. package/dist/chunk-qxe98jgk.js +0 -584
  498. package/dist/chunk-r7n42k56.js +0 -756
  499. package/dist/chunk-radsjrmv.js +0 -55
  500. package/dist/chunk-rckj9gd1.js +0 -55
  501. package/dist/chunk-rn4kqfvd.js +0 -99
  502. package/dist/chunk-rngmdt2v.js +0 -97
  503. package/dist/chunk-rs5e0520.js +0 -87
  504. package/dist/chunk-s274nv8k.js +0 -8
  505. package/dist/chunk-s7t2e2tw.js +0 -1493
  506. package/dist/chunk-sbbt0ct3.js +0 -90
  507. package/dist/chunk-t0mnk0qp.js +0 -105
  508. package/dist/chunk-t1qmy36p.js +0 -94
  509. package/dist/chunk-tdy66rf9.js +0 -116
  510. package/dist/chunk-tf40vqky.js +0 -70
  511. package/dist/chunk-tmcxeatp.js +0 -116
  512. package/dist/chunk-v3gm2day.js +0 -8
  513. package/dist/chunk-v496te8v.js +0 -192
  514. package/dist/chunk-vd2hwk8d.js +0 -61
  515. package/dist/chunk-vdsmt7v0.js +0 -998
  516. package/dist/chunk-vf3qxte3.js +0 -93
  517. package/dist/chunk-vfqe1jqj.js +0 -643
  518. package/dist/chunk-vk3270s6.js +0 -119
  519. package/dist/chunk-vsr9mbnq.js +0 -195
  520. package/dist/chunk-w18zryr9.js +0 -348
  521. package/dist/chunk-wdxcgk6m.js +0 -196
  522. package/dist/chunk-wef07p3j.js +0 -131
  523. package/dist/chunk-wf4q1xj3.js +0 -62
  524. package/dist/chunk-wjq4zq3t.js +0 -162
  525. package/dist/chunk-wp4hc4n7.js +0 -133
  526. package/dist/chunk-x0rjttct.js +0 -420
  527. package/dist/chunk-xdw5dv00.js +0 -8
  528. package/dist/chunk-xm8fv5c9.js +0 -469
  529. package/dist/chunk-xq5ztz4g.js +0 -130
  530. package/dist/chunk-xvcdtezw.js +0 -401
  531. package/dist/chunk-y7njq3z3.js +0 -1866
  532. package/dist/chunk-ycxwftfh.js +0 -97
  533. package/dist/chunk-yn38f69a.js +0 -105
  534. package/dist/chunk-yp5kc8hq.js +0 -372
  535. package/dist/chunk-z09n2krq.js +0 -752
  536. package/dist/chunk-zerg8qwf.js +0 -96
  537. package/dist/{chunk-p452k1xp.js → chunk-57s5mr32.js} +9 -9
  538. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
  539. package/dist/{chunk-zxzwfa0b.js → chunk-pbyq1tm3.js} +3 -3
@@ -1,2058 +0,0 @@
1
- // @bun
2
- import {
3
- endInteractionSpan,
4
- init_betaSessionTracing,
5
- init_perfettoTracing,
6
- init_sessionTracing,
7
- initializePerfettoTracing,
8
- isBetaTracingEnabled,
9
- isEnhancedTelemetryEnabled
10
- } from "./chunk-s0xfxkys.js";
11
- import {
12
- require_src as require_src5
13
- } from "./chunk-a8ejc632.js";
14
- import {
15
- BatchLogRecordProcessor,
16
- ConsoleLogRecordExporter,
17
- LoggerProvider,
18
- checkHasTrustDialogAccepted,
19
- getAuthHeaders,
20
- getClaudeCodeUserAgent,
21
- getGlobalConfig,
22
- getOtelHeadersFromHelper,
23
- getSettings_DEPRECATED,
24
- getSubscriptionType,
25
- hasProfileScope,
26
- init_auth,
27
- init_config1 as init_config,
28
- init_esm,
29
- init_esm1 as init_esm2,
30
- init_http,
31
- init_settings1 as init_settings,
32
- init_userAgent,
33
- is1PApiCustomer,
34
- isClaudeAISubscriber,
35
- logs,
36
- saveGlobalConfig,
37
- withOAuth401Retry
38
- } from "./chunk-53nbpp47.js";
39
- import"./chunk-e3g8q4cn.js";
40
- import"./chunk-ctw5jwcd.js";
41
- import {
42
- HttpsProxyAgent,
43
- getCACertificates,
44
- getMTLSConfig,
45
- getProxyUrl,
46
- init_caCerts,
47
- init_dist,
48
- init_mtls,
49
- init_proxy,
50
- shouldBypassProxy
51
- } from "./chunk-fw49pe3p.js";
52
- import"./chunk-0e1xsncc.js";
53
- import"./chunk-vratq94g.js";
54
- import"./chunk-g0j0t6qk.js";
55
- import"./chunk-6kpbgc5w.js";
56
- import"./chunk-3c25bcsw.js";
57
- import {
58
- getPlatform,
59
- getWslVersion,
60
- init_platform
61
- } from "./chunk-tjaqa99q.js";
62
- import"./chunk-55wgxwa9.js";
63
- import"./chunk-w2z5pqd3.js";
64
- import"./chunk-7ymfj7m3.js";
65
- import {
66
- require_src as require_src2,
67
- require_src1 as require_src3,
68
- require_src2 as require_src4
69
- } from "./chunk-f5ma3nh5.js";
70
- import"./chunk-v1kzp02e.js";
71
- import {
72
- require_src
73
- } from "./chunk-p2816w9z.js";
74
- import {
75
- init_startupProfiler,
76
- profileCheckpoint
77
- } from "./chunk-1rvz0433.js";
78
- import"./chunk-cdz5yb0r.js";
79
- import"./chunk-f2mhrmww.js";
80
- import"./chunk-hrzerbfw.js";
81
- import {
82
- init_memoize,
83
- memoizeWithTTLAsync
84
- } from "./chunk-d18z9pna.js";
85
- import"./chunk-qnfx3qtx.js";
86
- import"./chunk-hjhc4cpt.js";
87
- import"./chunk-vyc0rjyx.js";
88
- import"./chunk-hx2tr4ep.js";
89
- import {
90
- init_log,
91
- init_privacyLevel,
92
- isEssentialTrafficOnly,
93
- logError
94
- } from "./chunk-p7g7pf3f.js";
95
- import"./chunk-8tnsngw2.js";
96
- import"./chunk-8bedvdm1.js";
97
- import"./chunk-7wm5s02e.js";
98
- import {
99
- errorMessage,
100
- getHasFormattedOutput,
101
- init_cleanupRegistry,
102
- init_debug,
103
- init_errors,
104
- init_slowOperations,
105
- jsonStringify,
106
- logForDebugging,
107
- registerCleanup,
108
- toError
109
- } from "./chunk-nxsh6de2.js";
110
- import"./chunk-fbv4apne.js";
111
- import {
112
- init_envUtils,
113
- isEnvTruthy
114
- } from "./chunk-3r24h7t6.js";
115
- import {
116
- getIsNonInteractiveSession,
117
- getLoggerProvider,
118
- getMeterProvider,
119
- getTracerProvider,
120
- init_state,
121
- setEventLogger,
122
- setLoggerProvider,
123
- setMeterProvider,
124
- setTracerProvider
125
- } from "./chunk-qqfa0dqg.js";
126
- import"./chunk-hqmz36b3.js";
127
- import"./chunk-4g3v8y12.js";
128
- import"./chunk-7739pg2c.js";
129
- import {
130
- axios_default,
131
- init_axios
132
- } from "./chunk-xszk7n10.js";
133
- import"./chunk-sdj9b9wh.js";
134
- import {
135
- __esm,
136
- __require,
137
- __toESM
138
- } from "./chunk-qp2qdcda.js";
139
-
140
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/enums.js
141
- var ExceptionEventName = "exception";
142
- var init_enums = () => {};
143
-
144
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/Span.js
145
- class SpanImpl {
146
- _spanContext;
147
- kind;
148
- parentSpanContext;
149
- attributes = {};
150
- links = [];
151
- events = [];
152
- startTime;
153
- resource;
154
- instrumentationScope;
155
- _droppedAttributesCount = 0;
156
- _droppedEventsCount = 0;
157
- _droppedLinksCount = 0;
158
- _attributesCount = 0;
159
- name;
160
- status = {
161
- code: import_api.SpanStatusCode.UNSET
162
- };
163
- endTime = [0, 0];
164
- _ended = false;
165
- _duration = [-1, -1];
166
- _spanProcessor;
167
- _spanLimits;
168
- _attributeValueLengthLimit;
169
- _recordEndMetrics;
170
- _performanceStartTime;
171
- _performanceOffset;
172
- _startTimeProvided;
173
- constructor(opts) {
174
- const now = Date.now();
175
- this._spanContext = opts.spanContext;
176
- this._performanceStartTime = import_core.otperformance.now();
177
- this._performanceOffset = now - (this._performanceStartTime + import_core.otperformance.timeOrigin);
178
- this._startTimeProvided = opts.startTime != null;
179
- this._spanLimits = opts.spanLimits;
180
- this._attributeValueLengthLimit = this._spanLimits.attributeValueLengthLimit ?? 0;
181
- this._spanProcessor = opts.spanProcessor;
182
- this.name = opts.name;
183
- this.parentSpanContext = opts.parentSpanContext;
184
- this.kind = opts.kind;
185
- if (opts.links) {
186
- for (const link of opts.links) {
187
- this.addLink(link);
188
- }
189
- }
190
- this.startTime = this._getTime(opts.startTime ?? now);
191
- this.resource = opts.resource;
192
- this.instrumentationScope = opts.scope;
193
- this._recordEndMetrics = opts.recordEndMetrics;
194
- if (opts.attributes != null) {
195
- this.setAttributes(opts.attributes);
196
- }
197
- this._spanProcessor.onStart(this, opts.context);
198
- }
199
- spanContext() {
200
- return this._spanContext;
201
- }
202
- setAttribute(key, value) {
203
- if (value == null || this._isSpanEnded())
204
- return this;
205
- if (key.length === 0) {
206
- import_api.diag.warn(`Invalid attribute key: ${key}`);
207
- return this;
208
- }
209
- if (!import_core.isAttributeValue(value)) {
210
- import_api.diag.warn(`Invalid attribute value set for key: ${key}`);
211
- return this;
212
- }
213
- const { attributeCountLimit } = this._spanLimits;
214
- const isNewKey = !Object.prototype.hasOwnProperty.call(this.attributes, key);
215
- if (attributeCountLimit !== undefined && this._attributesCount >= attributeCountLimit && isNewKey) {
216
- this._droppedAttributesCount++;
217
- return this;
218
- }
219
- this.attributes[key] = this._truncateToSize(value);
220
- if (isNewKey) {
221
- this._attributesCount++;
222
- }
223
- return this;
224
- }
225
- setAttributes(attributes) {
226
- for (const key in attributes) {
227
- if (Object.prototype.hasOwnProperty.call(attributes, key)) {
228
- this.setAttribute(key, attributes[key]);
229
- }
230
- }
231
- return this;
232
- }
233
- addEvent(name, attributesOrStartTime, timeStamp) {
234
- if (this._isSpanEnded())
235
- return this;
236
- const { eventCountLimit } = this._spanLimits;
237
- if (eventCountLimit === 0) {
238
- import_api.diag.warn("No events allowed.");
239
- this._droppedEventsCount++;
240
- return this;
241
- }
242
- if (eventCountLimit !== undefined && this.events.length >= eventCountLimit) {
243
- if (this._droppedEventsCount === 0) {
244
- import_api.diag.debug("Dropping extra events.");
245
- }
246
- this.events.shift();
247
- this._droppedEventsCount++;
248
- }
249
- if (import_core.isTimeInput(attributesOrStartTime)) {
250
- if (!import_core.isTimeInput(timeStamp)) {
251
- timeStamp = attributesOrStartTime;
252
- }
253
- attributesOrStartTime = undefined;
254
- }
255
- const sanitized = import_core.sanitizeAttributes(attributesOrStartTime);
256
- const { attributePerEventCountLimit } = this._spanLimits;
257
- const attributes = {};
258
- let droppedAttributesCount = 0;
259
- let eventAttributesCount = 0;
260
- for (const attr in sanitized) {
261
- if (!Object.prototype.hasOwnProperty.call(sanitized, attr)) {
262
- continue;
263
- }
264
- const attrVal = sanitized[attr];
265
- if (attributePerEventCountLimit !== undefined && eventAttributesCount >= attributePerEventCountLimit) {
266
- droppedAttributesCount++;
267
- continue;
268
- }
269
- attributes[attr] = this._truncateToSize(attrVal);
270
- eventAttributesCount++;
271
- }
272
- this.events.push({
273
- name,
274
- attributes,
275
- time: this._getTime(timeStamp),
276
- droppedAttributesCount
277
- });
278
- return this;
279
- }
280
- addLink(link) {
281
- if (this._isSpanEnded())
282
- return this;
283
- const { linkCountLimit } = this._spanLimits;
284
- if (linkCountLimit === 0) {
285
- this._droppedLinksCount++;
286
- return this;
287
- }
288
- if (linkCountLimit !== undefined && this.links.length >= linkCountLimit) {
289
- if (this._droppedLinksCount === 0) {
290
- import_api.diag.debug("Dropping extra links.");
291
- }
292
- this.links.shift();
293
- this._droppedLinksCount++;
294
- }
295
- const { attributePerLinkCountLimit } = this._spanLimits;
296
- const sanitized = import_core.sanitizeAttributes(link.attributes);
297
- const attributes = {};
298
- let droppedAttributesCount = 0;
299
- let linkAttributesCount = 0;
300
- for (const attr in sanitized) {
301
- if (!Object.prototype.hasOwnProperty.call(sanitized, attr)) {
302
- continue;
303
- }
304
- const attrVal = sanitized[attr];
305
- if (attributePerLinkCountLimit !== undefined && linkAttributesCount >= attributePerLinkCountLimit) {
306
- droppedAttributesCount++;
307
- continue;
308
- }
309
- attributes[attr] = this._truncateToSize(attrVal);
310
- linkAttributesCount++;
311
- }
312
- const processedLink = { context: link.context };
313
- if (linkAttributesCount > 0) {
314
- processedLink.attributes = attributes;
315
- }
316
- if (droppedAttributesCount > 0) {
317
- processedLink.droppedAttributesCount = droppedAttributesCount;
318
- }
319
- this.links.push(processedLink);
320
- return this;
321
- }
322
- addLinks(links) {
323
- for (const link of links) {
324
- this.addLink(link);
325
- }
326
- return this;
327
- }
328
- setStatus(status) {
329
- if (this._isSpanEnded())
330
- return this;
331
- if (status.code === import_api.SpanStatusCode.UNSET)
332
- return this;
333
- if (this.status.code === import_api.SpanStatusCode.OK)
334
- return this;
335
- const newStatus = { code: status.code };
336
- if (status.code === import_api.SpanStatusCode.ERROR) {
337
- if (typeof status.message === "string") {
338
- newStatus.message = status.message;
339
- } else if (status.message != null) {
340
- import_api.diag.warn(`Dropping invalid status.message of type '${typeof status.message}', expected 'string'`);
341
- }
342
- }
343
- this.status = newStatus;
344
- return this;
345
- }
346
- updateName(name) {
347
- if (this._isSpanEnded())
348
- return this;
349
- this.name = name;
350
- return this;
351
- }
352
- end(endTime) {
353
- if (this._isSpanEnded()) {
354
- import_api.diag.error(`${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`);
355
- return;
356
- }
357
- this.endTime = this._getTime(endTime);
358
- this._duration = import_core.hrTimeDuration(this.startTime, this.endTime);
359
- if (this._duration[0] < 0) {
360
- import_api.diag.warn("Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.", this.startTime, this.endTime);
361
- this.endTime = this.startTime.slice();
362
- this._duration = [0, 0];
363
- }
364
- if (this._droppedEventsCount > 0) {
365
- import_api.diag.warn(`Dropped ${this._droppedEventsCount} events because eventCountLimit reached`);
366
- }
367
- if (this._droppedLinksCount > 0) {
368
- import_api.diag.warn(`Dropped ${this._droppedLinksCount} links because linkCountLimit reached`);
369
- }
370
- if (this._spanProcessor.onEnding) {
371
- this._spanProcessor.onEnding(this);
372
- }
373
- this._recordEndMetrics?.();
374
- this._ended = true;
375
- this._spanProcessor.onEnd(this);
376
- }
377
- _getTime(inp) {
378
- if (typeof inp === "number" && inp <= import_core.otperformance.now()) {
379
- return import_core.hrTime(inp + this._performanceOffset);
380
- }
381
- if (typeof inp === "number") {
382
- return import_core.millisToHrTime(inp);
383
- }
384
- if (inp instanceof Date) {
385
- return import_core.millisToHrTime(inp.getTime());
386
- }
387
- if (import_core.isTimeInputHrTime(inp)) {
388
- return inp;
389
- }
390
- if (this._startTimeProvided) {
391
- return import_core.millisToHrTime(Date.now());
392
- }
393
- const msDuration = import_core.otperformance.now() - this._performanceStartTime;
394
- return import_core.addHrTimes(this.startTime, import_core.millisToHrTime(msDuration));
395
- }
396
- isRecording() {
397
- return this._ended === false;
398
- }
399
- recordException(exception, time) {
400
- const attributes = {};
401
- if (typeof exception === "string") {
402
- attributes[import_semantic_conventions.ATTR_EXCEPTION_MESSAGE] = exception;
403
- } else if (exception) {
404
- if (exception.code) {
405
- attributes[import_semantic_conventions.ATTR_EXCEPTION_TYPE] = exception.code.toString();
406
- } else if (exception.name) {
407
- attributes[import_semantic_conventions.ATTR_EXCEPTION_TYPE] = exception.name;
408
- }
409
- if (exception.message) {
410
- attributes[import_semantic_conventions.ATTR_EXCEPTION_MESSAGE] = exception.message;
411
- }
412
- if (exception.stack) {
413
- attributes[import_semantic_conventions.ATTR_EXCEPTION_STACKTRACE] = exception.stack;
414
- }
415
- }
416
- if (attributes[import_semantic_conventions.ATTR_EXCEPTION_TYPE] || attributes[import_semantic_conventions.ATTR_EXCEPTION_MESSAGE]) {
417
- this.addEvent(ExceptionEventName, attributes, time);
418
- } else {
419
- import_api.diag.warn(`Failed to record an exception ${exception}`);
420
- }
421
- }
422
- get duration() {
423
- return this._duration;
424
- }
425
- get ended() {
426
- return this._ended;
427
- }
428
- get droppedAttributesCount() {
429
- return this._droppedAttributesCount;
430
- }
431
- get droppedEventsCount() {
432
- return this._droppedEventsCount;
433
- }
434
- get droppedLinksCount() {
435
- return this._droppedLinksCount;
436
- }
437
- _isSpanEnded() {
438
- if (this._ended) {
439
- const error = new Error(`Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`);
440
- import_api.diag.warn(`Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`, error);
441
- }
442
- return this._ended;
443
- }
444
- _truncateToLimitUtil(value, limit) {
445
- if (value.length <= limit) {
446
- return value;
447
- }
448
- return value.substring(0, limit);
449
- }
450
- _truncateToSize(value) {
451
- const limit = this._attributeValueLengthLimit;
452
- if (limit <= 0) {
453
- import_api.diag.warn(`Attribute value limit must be positive, got ${limit}`);
454
- return value;
455
- }
456
- if (typeof value === "string") {
457
- return this._truncateToLimitUtil(value, limit);
458
- }
459
- if (Array.isArray(value)) {
460
- return value.map((val) => typeof val === "string" ? this._truncateToLimitUtil(val, limit) : val);
461
- }
462
- return value;
463
- }
464
- }
465
- var import_api, import_core, import_semantic_conventions;
466
- var init_Span = __esm(() => {
467
- init_enums();
468
- import_api = __toESM(require_src(), 1);
469
- import_core = __toESM(require_src3(), 1);
470
- import_semantic_conventions = __toESM(require_src2(), 1);
471
- });
472
-
473
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/Sampler.js
474
- var SamplingDecision;
475
- var init_Sampler = __esm(() => {
476
- (function(SamplingDecision2) {
477
- SamplingDecision2[SamplingDecision2["NOT_RECORD"] = 0] = "NOT_RECORD";
478
- SamplingDecision2[SamplingDecision2["RECORD"] = 1] = "RECORD";
479
- SamplingDecision2[SamplingDecision2["RECORD_AND_SAMPLED"] = 2] = "RECORD_AND_SAMPLED";
480
- })(SamplingDecision || (SamplingDecision = {}));
481
- });
482
-
483
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOffSampler.js
484
- class AlwaysOffSampler {
485
- shouldSample() {
486
- return {
487
- decision: SamplingDecision.NOT_RECORD
488
- };
489
- }
490
- toString() {
491
- return "AlwaysOffSampler";
492
- }
493
- }
494
- var init_AlwaysOffSampler = __esm(() => {
495
- init_Sampler();
496
- });
497
-
498
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/AlwaysOnSampler.js
499
- class AlwaysOnSampler {
500
- shouldSample() {
501
- return {
502
- decision: SamplingDecision.RECORD_AND_SAMPLED
503
- };
504
- }
505
- toString() {
506
- return "AlwaysOnSampler";
507
- }
508
- }
509
- var init_AlwaysOnSampler = __esm(() => {
510
- init_Sampler();
511
- });
512
-
513
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/ParentBasedSampler.js
514
- class ParentBasedSampler {
515
- _root;
516
- _remoteParentSampled;
517
- _remoteParentNotSampled;
518
- _localParentSampled;
519
- _localParentNotSampled;
520
- constructor(config) {
521
- this._root = config.root;
522
- if (!this._root) {
523
- import_core2.globalErrorHandler(new Error("ParentBasedSampler must have a root sampler configured"));
524
- this._root = new AlwaysOnSampler;
525
- }
526
- this._remoteParentSampled = config.remoteParentSampled ?? new AlwaysOnSampler;
527
- this._remoteParentNotSampled = config.remoteParentNotSampled ?? new AlwaysOffSampler;
528
- this._localParentSampled = config.localParentSampled ?? new AlwaysOnSampler;
529
- this._localParentNotSampled = config.localParentNotSampled ?? new AlwaysOffSampler;
530
- }
531
- shouldSample(context, traceId, spanName, spanKind, attributes, links) {
532
- const parentContext = import_api2.trace.getSpanContext(context);
533
- if (!parentContext || !import_api2.isSpanContextValid(parentContext)) {
534
- return this._root.shouldSample(context, traceId, spanName, spanKind, attributes, links);
535
- }
536
- if (parentContext.isRemote) {
537
- if (parentContext.traceFlags & import_api2.TraceFlags.SAMPLED) {
538
- return this._remoteParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);
539
- }
540
- return this._remoteParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);
541
- }
542
- if (parentContext.traceFlags & import_api2.TraceFlags.SAMPLED) {
543
- return this._localParentSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);
544
- }
545
- return this._localParentNotSampled.shouldSample(context, traceId, spanName, spanKind, attributes, links);
546
- }
547
- toString() {
548
- return `ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`;
549
- }
550
- }
551
- var import_api2, import_core2;
552
- var init_ParentBasedSampler = __esm(() => {
553
- init_AlwaysOffSampler();
554
- init_AlwaysOnSampler();
555
- import_api2 = __toESM(require_src(), 1);
556
- import_core2 = __toESM(require_src3(), 1);
557
- });
558
-
559
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/sampler/TraceIdRatioBasedSampler.js
560
- class TraceIdRatioBasedSampler {
561
- _ratio;
562
- _upperBound;
563
- constructor(ratio = 0) {
564
- this._ratio = this._normalize(ratio);
565
- this._upperBound = Math.floor(this._ratio * 4294967295);
566
- }
567
- shouldSample(context, traceId) {
568
- return {
569
- decision: import_api3.isValidTraceId(traceId) && this._accumulate(traceId) < this._upperBound ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD
570
- };
571
- }
572
- toString() {
573
- return `TraceIdRatioBased{${this._ratio}}`;
574
- }
575
- _normalize(ratio) {
576
- if (typeof ratio !== "number" || isNaN(ratio))
577
- return 0;
578
- return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio;
579
- }
580
- _accumulate(traceId) {
581
- let accumulation = 0;
582
- for (let i = 0;i < traceId.length / 8; i++) {
583
- const pos = i * 8;
584
- const part = parseInt(traceId.slice(pos, pos + 8), 16);
585
- accumulation = (accumulation ^ part) >>> 0;
586
- }
587
- return accumulation;
588
- }
589
- }
590
- var import_api3;
591
- var init_TraceIdRatioBasedSampler = __esm(() => {
592
- init_Sampler();
593
- import_api3 = __toESM(require_src(), 1);
594
- });
595
-
596
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/config.js
597
- function loadDefaultConfig() {
598
- return {
599
- sampler: buildSamplerFromEnv(),
600
- forceFlushTimeoutMillis: 30000,
601
- generalLimits: {
602
- attributeValueLengthLimit: import_core3.getNumberFromEnv("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT") ?? Infinity,
603
- attributeCountLimit: import_core3.getNumberFromEnv("OTEL_ATTRIBUTE_COUNT_LIMIT") ?? 128
604
- },
605
- spanLimits: {
606
- attributeValueLengthLimit: import_core3.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT") ?? Infinity,
607
- attributeCountLimit: import_core3.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT") ?? 128,
608
- linkCountLimit: import_core3.getNumberFromEnv("OTEL_SPAN_LINK_COUNT_LIMIT") ?? 128,
609
- eventCountLimit: import_core3.getNumberFromEnv("OTEL_SPAN_EVENT_COUNT_LIMIT") ?? 128,
610
- attributePerEventCountLimit: import_core3.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT") ?? 128,
611
- attributePerLinkCountLimit: import_core3.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT") ?? 128
612
- }
613
- };
614
- }
615
- function buildSamplerFromEnv() {
616
- const sampler = import_core3.getStringFromEnv("OTEL_TRACES_SAMPLER") ?? TracesSamplerValues.ParentBasedAlwaysOn;
617
- switch (sampler) {
618
- case TracesSamplerValues.AlwaysOn:
619
- return new AlwaysOnSampler;
620
- case TracesSamplerValues.AlwaysOff:
621
- return new AlwaysOffSampler;
622
- case TracesSamplerValues.ParentBasedAlwaysOn:
623
- return new ParentBasedSampler({
624
- root: new AlwaysOnSampler
625
- });
626
- case TracesSamplerValues.ParentBasedAlwaysOff:
627
- return new ParentBasedSampler({
628
- root: new AlwaysOffSampler
629
- });
630
- case TracesSamplerValues.TraceIdRatio:
631
- return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());
632
- case TracesSamplerValues.ParentBasedTraceIdRatio:
633
- return new ParentBasedSampler({
634
- root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv())
635
- });
636
- default:
637
- import_api4.diag.error(`OTEL_TRACES_SAMPLER value "${sampler}" invalid, defaulting to "${TracesSamplerValues.ParentBasedAlwaysOn}".`);
638
- return new ParentBasedSampler({
639
- root: new AlwaysOnSampler
640
- });
641
- }
642
- }
643
- function getSamplerProbabilityFromEnv() {
644
- const probability = import_core3.getNumberFromEnv("OTEL_TRACES_SAMPLER_ARG");
645
- if (probability == null) {
646
- import_api4.diag.error(`OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${DEFAULT_RATIO}.`);
647
- return DEFAULT_RATIO;
648
- }
649
- if (probability < 0 || probability > 1) {
650
- import_api4.diag.error(`OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.`);
651
- return DEFAULT_RATIO;
652
- }
653
- return probability;
654
- }
655
- var import_api4, import_core3, TracesSamplerValues, DEFAULT_RATIO = 1;
656
- var init_config2 = __esm(() => {
657
- init_AlwaysOffSampler();
658
- init_AlwaysOnSampler();
659
- init_ParentBasedSampler();
660
- init_TraceIdRatioBasedSampler();
661
- import_api4 = __toESM(require_src(), 1);
662
- import_core3 = __toESM(require_src3(), 1);
663
- (function(TracesSamplerValues2) {
664
- TracesSamplerValues2["AlwaysOff"] = "always_off";
665
- TracesSamplerValues2["AlwaysOn"] = "always_on";
666
- TracesSamplerValues2["ParentBasedAlwaysOff"] = "parentbased_always_off";
667
- TracesSamplerValues2["ParentBasedAlwaysOn"] = "parentbased_always_on";
668
- TracesSamplerValues2["ParentBasedTraceIdRatio"] = "parentbased_traceidratio";
669
- TracesSamplerValues2["TraceIdRatio"] = "traceidratio";
670
- })(TracesSamplerValues || (TracesSamplerValues = {}));
671
- });
672
-
673
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/utility.js
674
- function mergeConfig(userConfig) {
675
- const perInstanceDefaults = {
676
- sampler: buildSamplerFromEnv()
677
- };
678
- const DEFAULT_CONFIG = loadDefaultConfig();
679
- const target = Object.assign({}, DEFAULT_CONFIG, perInstanceDefaults, userConfig);
680
- target.generalLimits = Object.assign({}, DEFAULT_CONFIG.generalLimits, userConfig.generalLimits || {});
681
- target.spanLimits = Object.assign({}, DEFAULT_CONFIG.spanLimits, userConfig.spanLimits || {});
682
- return target;
683
- }
684
- function reconfigureLimits(userConfig) {
685
- const spanLimits = Object.assign({}, userConfig.spanLimits);
686
- spanLimits.attributeCountLimit = userConfig.spanLimits?.attributeCountLimit ?? userConfig.generalLimits?.attributeCountLimit ?? import_core4.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT") ?? import_core4.getNumberFromEnv("OTEL_ATTRIBUTE_COUNT_LIMIT") ?? DEFAULT_ATTRIBUTE_COUNT_LIMIT;
687
- spanLimits.attributeValueLengthLimit = userConfig.spanLimits?.attributeValueLengthLimit ?? userConfig.generalLimits?.attributeValueLengthLimit ?? import_core4.getNumberFromEnv("OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT") ?? import_core4.getNumberFromEnv("OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT") ?? DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT;
688
- return Object.assign({}, userConfig, { spanLimits });
689
- }
690
- var import_core4, DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128, DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;
691
- var init_utility = __esm(() => {
692
- init_config2();
693
- import_core4 = __toESM(require_src3(), 1);
694
- });
695
-
696
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/BatchSpanProcessorBase.js
697
- class BatchSpanProcessorBase {
698
- _maxExportBatchSize;
699
- _maxQueueSize;
700
- _scheduledDelayMillis;
701
- _exportTimeoutMillis;
702
- _exporter;
703
- _isExporting = false;
704
- _finishedSpans = [];
705
- _timer;
706
- _shutdownOnce;
707
- _droppedSpansCount = 0;
708
- constructor(exporter, config) {
709
- this._exporter = exporter;
710
- this._maxExportBatchSize = typeof config?.maxExportBatchSize === "number" ? config.maxExportBatchSize : import_core5.getNumberFromEnv("OTEL_BSP_MAX_EXPORT_BATCH_SIZE") ?? 512;
711
- this._maxQueueSize = typeof config?.maxQueueSize === "number" ? config.maxQueueSize : import_core5.getNumberFromEnv("OTEL_BSP_MAX_QUEUE_SIZE") ?? 2048;
712
- this._scheduledDelayMillis = typeof config?.scheduledDelayMillis === "number" ? config.scheduledDelayMillis : import_core5.getNumberFromEnv("OTEL_BSP_SCHEDULE_DELAY") ?? 5000;
713
- this._exportTimeoutMillis = typeof config?.exportTimeoutMillis === "number" ? config.exportTimeoutMillis : import_core5.getNumberFromEnv("OTEL_BSP_EXPORT_TIMEOUT") ?? 30000;
714
- this._shutdownOnce = new import_core5.BindOnceFuture(this._shutdown, this);
715
- if (this._maxExportBatchSize > this._maxQueueSize) {
716
- import_api5.diag.warn("BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize");
717
- this._maxExportBatchSize = this._maxQueueSize;
718
- }
719
- }
720
- forceFlush() {
721
- if (this._shutdownOnce.isCalled) {
722
- return this._shutdownOnce.promise;
723
- }
724
- return this._flushAll();
725
- }
726
- onStart(_span, _parentContext) {}
727
- onEnd(span) {
728
- if (this._shutdownOnce.isCalled) {
729
- return;
730
- }
731
- if ((span.spanContext().traceFlags & import_api5.TraceFlags.SAMPLED) === 0) {
732
- return;
733
- }
734
- this._addToBuffer(span);
735
- }
736
- shutdown() {
737
- return this._shutdownOnce.call();
738
- }
739
- _shutdown() {
740
- return Promise.resolve().then(() => {
741
- return this.onShutdown();
742
- }).then(() => {
743
- return this._flushAll();
744
- }).then(() => {
745
- return this._exporter.shutdown();
746
- });
747
- }
748
- _addToBuffer(span) {
749
- if (this._finishedSpans.length >= this._maxQueueSize) {
750
- if (this._droppedSpansCount === 0) {
751
- import_api5.diag.debug("maxQueueSize reached, dropping spans");
752
- }
753
- this._droppedSpansCount++;
754
- return;
755
- }
756
- if (this._droppedSpansCount > 0) {
757
- import_api5.diag.warn(`Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`);
758
- this._droppedSpansCount = 0;
759
- }
760
- this._finishedSpans.push(span);
761
- this._maybeStartTimer();
762
- }
763
- _flushAll() {
764
- return new Promise((resolve, reject) => {
765
- const promises = [];
766
- const count = Math.ceil(this._finishedSpans.length / this._maxExportBatchSize);
767
- for (let i = 0, j = count;i < j; i++) {
768
- promises.push(this._flushOneBatch());
769
- }
770
- Promise.all(promises).then(() => {
771
- resolve();
772
- }).catch(reject);
773
- });
774
- }
775
- _flushOneBatch() {
776
- this._clearTimer();
777
- if (this._finishedSpans.length === 0) {
778
- return Promise.resolve();
779
- }
780
- return new Promise((resolve, reject) => {
781
- const timer = setTimeout(() => {
782
- reject(new Error("Timeout"));
783
- }, this._exportTimeoutMillis);
784
- import_api5.context.with(import_core5.suppressTracing(import_api5.context.active()), () => {
785
- let spans;
786
- if (this._finishedSpans.length <= this._maxExportBatchSize) {
787
- spans = this._finishedSpans;
788
- this._finishedSpans = [];
789
- } else {
790
- spans = this._finishedSpans.splice(0, this._maxExportBatchSize);
791
- }
792
- const doExport = () => this._exporter.export(spans, (result) => {
793
- clearTimeout(timer);
794
- if (result.code === import_core5.ExportResultCode.SUCCESS) {
795
- resolve();
796
- } else {
797
- reject(result.error ?? new Error("BatchSpanProcessor: span export failed"));
798
- }
799
- });
800
- let pendingResources = null;
801
- for (let i = 0, len = spans.length;i < len; i++) {
802
- const span = spans[i];
803
- if (span.resource.asyncAttributesPending && span.resource.waitForAsyncAttributes) {
804
- pendingResources ??= [];
805
- pendingResources.push(span.resource.waitForAsyncAttributes());
806
- }
807
- }
808
- if (pendingResources === null) {
809
- doExport();
810
- } else {
811
- Promise.all(pendingResources).then(doExport, (err) => {
812
- import_core5.globalErrorHandler(err);
813
- reject(err);
814
- });
815
- }
816
- });
817
- });
818
- }
819
- _maybeStartTimer() {
820
- if (this._isExporting)
821
- return;
822
- const flush = () => {
823
- this._isExporting = true;
824
- this._flushOneBatch().finally(() => {
825
- this._isExporting = false;
826
- if (this._finishedSpans.length > 0) {
827
- this._clearTimer();
828
- this._maybeStartTimer();
829
- }
830
- }).catch((e) => {
831
- this._isExporting = false;
832
- import_core5.globalErrorHandler(e);
833
- });
834
- };
835
- if (this._finishedSpans.length >= this._maxExportBatchSize) {
836
- return flush();
837
- }
838
- if (this._timer !== undefined)
839
- return;
840
- this._timer = setTimeout(() => flush(), this._scheduledDelayMillis);
841
- if (typeof this._timer !== "number") {
842
- this._timer.unref();
843
- }
844
- }
845
- _clearTimer() {
846
- if (this._timer !== undefined) {
847
- clearTimeout(this._timer);
848
- this._timer = undefined;
849
- }
850
- }
851
- }
852
- var import_api5, import_core5;
853
- var init_BatchSpanProcessorBase = __esm(() => {
854
- import_api5 = __toESM(require_src(), 1);
855
- import_core5 = __toESM(require_src3(), 1);
856
- });
857
-
858
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/node/export/BatchSpanProcessor.js
859
- var BatchSpanProcessor;
860
- var init_BatchSpanProcessor = __esm(() => {
861
- init_BatchSpanProcessorBase();
862
- BatchSpanProcessor = class BatchSpanProcessor extends BatchSpanProcessorBase {
863
- onShutdown() {}
864
- };
865
- });
866
-
867
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/node/RandomIdGenerator.js
868
- class RandomIdGenerator {
869
- generateTraceId = getIdGenerator(TRACE_ID_BYTES);
870
- generateSpanId = getIdGenerator(SPAN_ID_BYTES);
871
- }
872
- function getIdGenerator(bytes) {
873
- return function generateId() {
874
- for (let i = 0;i < bytes / 4; i++) {
875
- SHARED_BUFFER.writeUInt32BE(Math.random() * 2 ** 32 >>> 0, i * 4);
876
- }
877
- for (let i = 0;i < bytes; i++) {
878
- if (SHARED_BUFFER[i] > 0) {
879
- break;
880
- } else if (i === bytes - 1) {
881
- SHARED_BUFFER[bytes - 1] = 1;
882
- }
883
- }
884
- return SHARED_BUFFER.toString("hex", 0, bytes);
885
- };
886
- }
887
- var SPAN_ID_BYTES = 8, TRACE_ID_BYTES = 16, SHARED_BUFFER;
888
- var init_RandomIdGenerator = __esm(() => {
889
- SHARED_BUFFER = Buffer.allocUnsafe(TRACE_ID_BYTES);
890
- });
891
-
892
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/node/index.js
893
- var init_node = __esm(() => {
894
- init_BatchSpanProcessor();
895
- init_RandomIdGenerator();
896
- });
897
-
898
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/platform/index.js
899
- var init_platform2 = __esm(() => {
900
- init_node();
901
- });
902
-
903
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/semconv.js
904
- var ATTR_OTEL_SPAN_PARENT_ORIGIN = "otel.span.parent.origin", ATTR_OTEL_SPAN_SAMPLING_RESULT = "otel.span.sampling_result", METRIC_OTEL_SDK_SPAN_LIVE = "otel.sdk.span.live", METRIC_OTEL_SDK_SPAN_STARTED = "otel.sdk.span.started";
905
- var init_semconv = () => {};
906
-
907
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/TracerMetrics.js
908
- class TracerMetrics {
909
- startedSpans;
910
- liveSpans;
911
- constructor(meter) {
912
- this.startedSpans = meter.createCounter(METRIC_OTEL_SDK_SPAN_STARTED, {
913
- unit: "{span}",
914
- description: "The number of created spans."
915
- });
916
- this.liveSpans = meter.createUpDownCounter(METRIC_OTEL_SDK_SPAN_LIVE, {
917
- unit: "{span}",
918
- description: "The number of currently live spans."
919
- });
920
- }
921
- startSpan(parentSpanCtx, samplingDecision) {
922
- const samplingDecisionStr = samplingDecisionToString(samplingDecision);
923
- this.startedSpans.add(1, {
924
- [ATTR_OTEL_SPAN_PARENT_ORIGIN]: parentOrigin(parentSpanCtx),
925
- [ATTR_OTEL_SPAN_SAMPLING_RESULT]: samplingDecisionStr
926
- });
927
- if (samplingDecision === SamplingDecision.NOT_RECORD) {
928
- return () => {};
929
- }
930
- const liveSpanAttributes = {
931
- [ATTR_OTEL_SPAN_SAMPLING_RESULT]: samplingDecisionStr
932
- };
933
- this.liveSpans.add(1, liveSpanAttributes);
934
- return () => {
935
- this.liveSpans.add(-1, liveSpanAttributes);
936
- };
937
- }
938
- }
939
- function parentOrigin(parentSpanContext) {
940
- if (!parentSpanContext) {
941
- return "none";
942
- }
943
- if (parentSpanContext.isRemote) {
944
- return "remote";
945
- }
946
- return "local";
947
- }
948
- function samplingDecisionToString(decision) {
949
- switch (decision) {
950
- case SamplingDecision.RECORD_AND_SAMPLED:
951
- return "RECORD_AND_SAMPLE";
952
- case SamplingDecision.RECORD:
953
- return "RECORD_ONLY";
954
- case SamplingDecision.NOT_RECORD:
955
- return "DROP";
956
- }
957
- }
958
- var init_TracerMetrics = __esm(() => {
959
- init_Sampler();
960
- init_semconv();
961
- });
962
-
963
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/version.js
964
- var VERSION = "2.6.1";
965
- var init_version = () => {};
966
-
967
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/Tracer.js
968
- class Tracer {
969
- _sampler;
970
- _generalLimits;
971
- _spanLimits;
972
- _idGenerator;
973
- instrumentationScope;
974
- _resource;
975
- _spanProcessor;
976
- _tracerMetrics;
977
- constructor(instrumentationScope, config, resource, spanProcessor) {
978
- const localConfig = mergeConfig(config);
979
- this._sampler = localConfig.sampler;
980
- this._generalLimits = localConfig.generalLimits;
981
- this._spanLimits = localConfig.spanLimits;
982
- this._idGenerator = config.idGenerator || new RandomIdGenerator;
983
- this._resource = resource;
984
- this._spanProcessor = spanProcessor;
985
- this.instrumentationScope = instrumentationScope;
986
- const meter = localConfig.meterProvider ? localConfig.meterProvider.getMeter("@opentelemetry/sdk-trace", VERSION) : api.createNoopMeter();
987
- this._tracerMetrics = new TracerMetrics(meter);
988
- }
989
- startSpan(name, options = {}, context3 = api.context.active()) {
990
- if (options.root) {
991
- context3 = api.trace.deleteSpan(context3);
992
- }
993
- const parentSpan = api.trace.getSpan(context3);
994
- if (import_core6.isTracingSuppressed(context3)) {
995
- api.diag.debug("Instrumentation suppressed, returning Noop Span");
996
- const nonRecordingSpan = api.trace.wrapSpanContext(api.INVALID_SPAN_CONTEXT);
997
- return nonRecordingSpan;
998
- }
999
- const parentSpanContext = parentSpan?.spanContext();
1000
- const spanId = this._idGenerator.generateSpanId();
1001
- let validParentSpanContext;
1002
- let traceId;
1003
- let traceState;
1004
- if (!parentSpanContext || !api.trace.isSpanContextValid(parentSpanContext)) {
1005
- traceId = this._idGenerator.generateTraceId();
1006
- } else {
1007
- traceId = parentSpanContext.traceId;
1008
- traceState = parentSpanContext.traceState;
1009
- validParentSpanContext = parentSpanContext;
1010
- }
1011
- const spanKind = options.kind ?? api.SpanKind.INTERNAL;
1012
- const links = (options.links ?? []).map((link) => {
1013
- return {
1014
- context: link.context,
1015
- attributes: import_core6.sanitizeAttributes(link.attributes)
1016
- };
1017
- });
1018
- const attributes = import_core6.sanitizeAttributes(options.attributes);
1019
- const samplingResult = this._sampler.shouldSample(context3, traceId, name, spanKind, attributes, links);
1020
- const recordEndMetrics = this._tracerMetrics.startSpan(parentSpanContext, samplingResult.decision);
1021
- traceState = samplingResult.traceState ?? traceState;
1022
- const traceFlags = samplingResult.decision === api.SamplingDecision.RECORD_AND_SAMPLED ? api.TraceFlags.SAMPLED : api.TraceFlags.NONE;
1023
- const spanContext = { traceId, spanId, traceFlags, traceState };
1024
- if (samplingResult.decision === api.SamplingDecision.NOT_RECORD) {
1025
- api.diag.debug("Recording is off, propagating context in a non-recording span");
1026
- const nonRecordingSpan = api.trace.wrapSpanContext(spanContext);
1027
- return nonRecordingSpan;
1028
- }
1029
- const initAttributes = import_core6.sanitizeAttributes(Object.assign(attributes, samplingResult.attributes));
1030
- const span = new SpanImpl({
1031
- resource: this._resource,
1032
- scope: this.instrumentationScope,
1033
- context: context3,
1034
- spanContext,
1035
- name,
1036
- kind: spanKind,
1037
- links,
1038
- parentSpanContext: validParentSpanContext,
1039
- attributes: initAttributes,
1040
- startTime: options.startTime,
1041
- spanProcessor: this._spanProcessor,
1042
- spanLimits: this._spanLimits,
1043
- recordEndMetrics
1044
- });
1045
- return span;
1046
- }
1047
- startActiveSpan(name, arg2, arg3, arg4) {
1048
- let opts;
1049
- let ctx;
1050
- let fn;
1051
- if (arguments.length < 2) {
1052
- return;
1053
- } else if (arguments.length === 2) {
1054
- fn = arg2;
1055
- } else if (arguments.length === 3) {
1056
- opts = arg2;
1057
- fn = arg3;
1058
- } else {
1059
- opts = arg2;
1060
- ctx = arg3;
1061
- fn = arg4;
1062
- }
1063
- const parentContext = ctx ?? api.context.active();
1064
- const span = this.startSpan(name, opts, parentContext);
1065
- const contextWithSpanSet = api.trace.setSpan(parentContext, span);
1066
- return api.context.with(contextWithSpanSet, fn, undefined, span);
1067
- }
1068
- getGeneralLimits() {
1069
- return this._generalLimits;
1070
- }
1071
- getSpanLimits() {
1072
- return this._spanLimits;
1073
- }
1074
- }
1075
- var api, import_core6;
1076
- var init_Tracer = __esm(() => {
1077
- init_Span();
1078
- init_utility();
1079
- init_platform2();
1080
- init_TracerMetrics();
1081
- init_version();
1082
- api = __toESM(require_src(), 1);
1083
- import_core6 = __toESM(require_src3(), 1);
1084
- });
1085
-
1086
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/MultiSpanProcessor.js
1087
- class MultiSpanProcessor {
1088
- _spanProcessors;
1089
- constructor(spanProcessors) {
1090
- this._spanProcessors = spanProcessors;
1091
- }
1092
- forceFlush() {
1093
- const promises = [];
1094
- for (const spanProcessor of this._spanProcessors) {
1095
- promises.push(spanProcessor.forceFlush());
1096
- }
1097
- return new Promise((resolve) => {
1098
- Promise.all(promises).then(() => {
1099
- resolve();
1100
- }).catch((error) => {
1101
- import_core7.globalErrorHandler(error || new Error("MultiSpanProcessor: forceFlush failed"));
1102
- resolve();
1103
- });
1104
- });
1105
- }
1106
- onStart(span, context3) {
1107
- for (const spanProcessor of this._spanProcessors) {
1108
- spanProcessor.onStart(span, context3);
1109
- }
1110
- }
1111
- onEnding(span) {
1112
- for (const spanProcessor of this._spanProcessors) {
1113
- if (spanProcessor.onEnding) {
1114
- spanProcessor.onEnding(span);
1115
- }
1116
- }
1117
- }
1118
- onEnd(span) {
1119
- for (const spanProcessor of this._spanProcessors) {
1120
- spanProcessor.onEnd(span);
1121
- }
1122
- }
1123
- shutdown() {
1124
- const promises = [];
1125
- for (const spanProcessor of this._spanProcessors) {
1126
- promises.push(spanProcessor.shutdown());
1127
- }
1128
- return new Promise((resolve, reject) => {
1129
- Promise.all(promises).then(() => {
1130
- resolve();
1131
- }, reject);
1132
- });
1133
- }
1134
- }
1135
- var import_core7;
1136
- var init_MultiSpanProcessor = __esm(() => {
1137
- import_core7 = __toESM(require_src3(), 1);
1138
- });
1139
-
1140
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/BasicTracerProvider.js
1141
- class BasicTracerProvider {
1142
- _config;
1143
- _tracers = new Map;
1144
- _resource;
1145
- _activeSpanProcessor;
1146
- constructor(config = {}) {
1147
- const mergedConfig = import_core8.merge({}, loadDefaultConfig(), reconfigureLimits(config));
1148
- this._resource = mergedConfig.resource ?? import_resources.defaultResource();
1149
- this._config = Object.assign({}, mergedConfig, {
1150
- resource: this._resource
1151
- });
1152
- const spanProcessors = [];
1153
- if (config.spanProcessors?.length) {
1154
- spanProcessors.push(...config.spanProcessors);
1155
- }
1156
- this._activeSpanProcessor = new MultiSpanProcessor(spanProcessors);
1157
- }
1158
- getTracer(name, version, options) {
1159
- const key = `${name}@${version || ""}:${options?.schemaUrl || ""}`;
1160
- if (!this._tracers.has(key)) {
1161
- this._tracers.set(key, new Tracer({ name, version, schemaUrl: options?.schemaUrl }, this._config, this._resource, this._activeSpanProcessor));
1162
- }
1163
- return this._tracers.get(key);
1164
- }
1165
- forceFlush() {
1166
- const timeout = this._config.forceFlushTimeoutMillis;
1167
- const promises = this._activeSpanProcessor["_spanProcessors"].map((spanProcessor) => {
1168
- return new Promise((resolve) => {
1169
- let state;
1170
- const timeoutInterval = setTimeout(() => {
1171
- resolve(new Error(`Span processor did not completed within timeout period of ${timeout} ms`));
1172
- state = ForceFlushState.timeout;
1173
- }, timeout);
1174
- spanProcessor.forceFlush().then(() => {
1175
- clearTimeout(timeoutInterval);
1176
- if (state !== ForceFlushState.timeout) {
1177
- state = ForceFlushState.resolved;
1178
- resolve(state);
1179
- }
1180
- }).catch((error) => {
1181
- clearTimeout(timeoutInterval);
1182
- state = ForceFlushState.error;
1183
- resolve(error);
1184
- });
1185
- });
1186
- });
1187
- return new Promise((resolve, reject) => {
1188
- Promise.all(promises).then((results) => {
1189
- const errors = results.filter((result) => result !== ForceFlushState.resolved);
1190
- if (errors.length > 0) {
1191
- reject(errors);
1192
- } else {
1193
- resolve();
1194
- }
1195
- }).catch((error) => reject([error]));
1196
- });
1197
- }
1198
- shutdown() {
1199
- return this._activeSpanProcessor.shutdown();
1200
- }
1201
- }
1202
- var import_core8, import_resources, ForceFlushState;
1203
- var init_BasicTracerProvider = __esm(() => {
1204
- init_Tracer();
1205
- init_config2();
1206
- init_MultiSpanProcessor();
1207
- init_utility();
1208
- import_core8 = __toESM(require_src3(), 1);
1209
- import_resources = __toESM(require_src4(), 1);
1210
- (function(ForceFlushState2) {
1211
- ForceFlushState2[ForceFlushState2["resolved"] = 0] = "resolved";
1212
- ForceFlushState2[ForceFlushState2["timeout"] = 1] = "timeout";
1213
- ForceFlushState2[ForceFlushState2["error"] = 2] = "error";
1214
- ForceFlushState2[ForceFlushState2["unresolved"] = 3] = "unresolved";
1215
- })(ForceFlushState || (ForceFlushState = {}));
1216
- });
1217
-
1218
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/export/ConsoleSpanExporter.js
1219
- class ConsoleSpanExporter {
1220
- export(spans, resultCallback) {
1221
- return this._sendSpans(spans, resultCallback);
1222
- }
1223
- shutdown() {
1224
- this._sendSpans([]);
1225
- return this.forceFlush();
1226
- }
1227
- forceFlush() {
1228
- return Promise.resolve();
1229
- }
1230
- _exportInfo(span) {
1231
- return {
1232
- resource: {
1233
- attributes: span.resource.attributes
1234
- },
1235
- instrumentationScope: span.instrumentationScope,
1236
- traceId: span.spanContext().traceId,
1237
- parentSpanContext: span.parentSpanContext,
1238
- traceState: span.spanContext().traceState?.serialize(),
1239
- name: span.name,
1240
- id: span.spanContext().spanId,
1241
- kind: span.kind,
1242
- timestamp: import_core9.hrTimeToMicroseconds(span.startTime),
1243
- duration: import_core9.hrTimeToMicroseconds(span.duration),
1244
- attributes: span.attributes,
1245
- status: span.status,
1246
- events: span.events,
1247
- links: span.links
1248
- };
1249
- }
1250
- _sendSpans(spans, done) {
1251
- for (const span of spans) {
1252
- console.dir(this._exportInfo(span), { depth: 3 });
1253
- }
1254
- if (done) {
1255
- return done({ code: import_core9.ExportResultCode.SUCCESS });
1256
- }
1257
- }
1258
- }
1259
- var import_core9;
1260
- var init_ConsoleSpanExporter = __esm(() => {
1261
- import_core9 = __toESM(require_src3(), 1);
1262
- });
1263
-
1264
- // node_modules/.bun/@opentelemetry+sdk-trace-base@2.6.1+e40b0dfdd726a224/node_modules/@opentelemetry/sdk-trace-base/build/esm/index.js
1265
- var init_esm3 = __esm(() => {
1266
- init_BasicTracerProvider();
1267
- init_platform2();
1268
- init_ConsoleSpanExporter();
1269
- });
1270
-
1271
- // src/services/api/metricsOptOut.ts
1272
- async function _fetchMetricsEnabled() {
1273
- const authResult = getAuthHeaders();
1274
- if (authResult.error) {
1275
- throw new Error(`Auth error: ${authResult.error}`);
1276
- }
1277
- const headers = {
1278
- "Content-Type": "application/json",
1279
- "User-Agent": getClaudeCodeUserAgent(),
1280
- ...authResult.headers
1281
- };
1282
- const endpoint = `https://api.anthropic.com/api/claude_code/organizations/metrics_enabled`;
1283
- const response = await axios_default.get(endpoint, {
1284
- headers,
1285
- timeout: 5000
1286
- });
1287
- return response.data;
1288
- }
1289
- async function _checkMetricsEnabledAPI() {
1290
- if (isEssentialTrafficOnly()) {
1291
- return { enabled: false, hasError: false };
1292
- }
1293
- try {
1294
- const data = await withOAuth401Retry(_fetchMetricsEnabled, {
1295
- also403Revoked: true
1296
- });
1297
- logForDebugging(`Metrics opt-out API response: enabled=${data.metrics_logging_enabled}`);
1298
- return {
1299
- enabled: data.metrics_logging_enabled,
1300
- hasError: false
1301
- };
1302
- } catch (error) {
1303
- logForDebugging(`Failed to check metrics opt-out status: ${errorMessage(error)}`);
1304
- logError(error);
1305
- return { enabled: false, hasError: true };
1306
- }
1307
- }
1308
- async function refreshMetricsStatus() {
1309
- const result = await memoizedCheckMetrics();
1310
- if (result.hasError) {
1311
- return result;
1312
- }
1313
- const cached = getGlobalConfig().metricsStatusCache;
1314
- const unchanged = cached !== undefined && cached.enabled === result.enabled;
1315
- if (unchanged && Date.now() - cached.timestamp < DISK_CACHE_TTL_MS) {
1316
- return result;
1317
- }
1318
- saveGlobalConfig((current) => ({
1319
- ...current,
1320
- metricsStatusCache: {
1321
- enabled: result.enabled,
1322
- timestamp: Date.now()
1323
- }
1324
- }));
1325
- return result;
1326
- }
1327
- async function checkMetricsEnabled() {
1328
- if (isClaudeAISubscriber() && !hasProfileScope()) {
1329
- return { enabled: false, hasError: false };
1330
- }
1331
- const cached = getGlobalConfig().metricsStatusCache;
1332
- if (cached) {
1333
- if (Date.now() - cached.timestamp > DISK_CACHE_TTL_MS) {
1334
- refreshMetricsStatus().catch(logError);
1335
- }
1336
- return {
1337
- enabled: cached.enabled,
1338
- hasError: false
1339
- };
1340
- }
1341
- return refreshMetricsStatus();
1342
- }
1343
- var CACHE_TTL_MS, DISK_CACHE_TTL_MS, memoizedCheckMetrics;
1344
- var init_metricsOptOut = __esm(() => {
1345
- init_axios();
1346
- init_auth();
1347
- init_config();
1348
- init_debug();
1349
- init_errors();
1350
- init_http();
1351
- init_log();
1352
- init_memoize();
1353
- init_privacyLevel();
1354
- init_userAgent();
1355
- CACHE_TTL_MS = 60 * 60 * 1000;
1356
- DISK_CACHE_TTL_MS = 24 * 60 * 60 * 1000;
1357
- memoizedCheckMetrics = memoizeWithTTLAsync(_checkMetricsEnabledAPI, CACHE_TTL_MS);
1358
- });
1359
-
1360
- // src/utils/telemetry/bigqueryExporter.ts
1361
- class BigQueryMetricsExporter {
1362
- endpoint;
1363
- timeout;
1364
- pendingExports = [];
1365
- isShutdown = false;
1366
- constructor(options = {}) {
1367
- const defaultEndpoint = "https://api.anthropic.com/api/claude_code/metrics";
1368
- if (process.env.USER_TYPE === "ant" && process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT) {
1369
- this.endpoint = process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT + "/api/claude_code/metrics";
1370
- } else {
1371
- this.endpoint = defaultEndpoint;
1372
- }
1373
- this.timeout = options.timeout || 5000;
1374
- }
1375
- async export(metrics, resultCallback) {
1376
- if (this.isShutdown) {
1377
- resultCallback({
1378
- code: import_core10.ExportResultCode.FAILED,
1379
- error: new Error("Exporter has been shutdown")
1380
- });
1381
- return;
1382
- }
1383
- const exportPromise = this.doExport(metrics, resultCallback);
1384
- this.pendingExports.push(exportPromise);
1385
- exportPromise.finally(() => {
1386
- const index = this.pendingExports.indexOf(exportPromise);
1387
- if (index > -1) {
1388
- this.pendingExports.splice(index, 1);
1389
- }
1390
- });
1391
- }
1392
- async doExport(metrics, resultCallback) {
1393
- try {
1394
- const hasTrust = checkHasTrustDialogAccepted() || getIsNonInteractiveSession();
1395
- if (!hasTrust) {
1396
- logForDebugging("BigQuery metrics export: trust not established, skipping");
1397
- resultCallback({ code: import_core10.ExportResultCode.SUCCESS });
1398
- return;
1399
- }
1400
- const metricsStatus = await checkMetricsEnabled();
1401
- if (!metricsStatus.enabled) {
1402
- logForDebugging("Metrics export disabled by organization setting");
1403
- resultCallback({ code: import_core10.ExportResultCode.SUCCESS });
1404
- return;
1405
- }
1406
- const payload = this.transformMetricsForInternal(metrics);
1407
- const authResult = getAuthHeaders();
1408
- if (authResult.error) {
1409
- logForDebugging(`Metrics export failed: ${authResult.error}`);
1410
- resultCallback({
1411
- code: import_core10.ExportResultCode.FAILED,
1412
- error: new Error(authResult.error)
1413
- });
1414
- return;
1415
- }
1416
- const headers = {
1417
- "Content-Type": "application/json",
1418
- "User-Agent": getClaudeCodeUserAgent(),
1419
- ...authResult.headers
1420
- };
1421
- const response = await axios_default.post(this.endpoint, payload, {
1422
- timeout: this.timeout,
1423
- headers
1424
- });
1425
- logForDebugging("BigQuery metrics exported successfully");
1426
- logForDebugging(`BigQuery API Response: ${jsonStringify(response.data, null, 2)}`);
1427
- resultCallback({ code: import_core10.ExportResultCode.SUCCESS });
1428
- } catch (error) {
1429
- logForDebugging(`BigQuery metrics export failed: ${errorMessage(error)}`);
1430
- logError(error);
1431
- resultCallback({
1432
- code: import_core10.ExportResultCode.FAILED,
1433
- error: toError(error)
1434
- });
1435
- }
1436
- }
1437
- transformMetricsForInternal(metrics) {
1438
- const attrs = metrics.resource.attributes;
1439
- const resourceAttributes = {
1440
- "service.name": attrs["service.name"] || "claude-code",
1441
- "service.version": attrs["service.version"] || "unknown",
1442
- "os.type": attrs["os.type"] || "unknown",
1443
- "os.version": attrs["os.version"] || "unknown",
1444
- "host.arch": attrs["host.arch"] || "unknown",
1445
- "aggregation.temporality": this.selectAggregationTemporality() === import_sdk_metrics.AggregationTemporality.DELTA ? "delta" : "cumulative"
1446
- };
1447
- if (attrs["wsl.version"]) {
1448
- resourceAttributes["wsl.version"] = attrs["wsl.version"];
1449
- }
1450
- if (isClaudeAISubscriber()) {
1451
- resourceAttributes["user.customer_type"] = "claude_ai";
1452
- const subscriptionType = getSubscriptionType();
1453
- if (subscriptionType) {
1454
- resourceAttributes["user.subscription_type"] = subscriptionType;
1455
- }
1456
- } else {
1457
- resourceAttributes["user.customer_type"] = "api";
1458
- }
1459
- const transformed = {
1460
- resource_attributes: resourceAttributes,
1461
- metrics: metrics.scopeMetrics.flatMap((scopeMetric) => scopeMetric.metrics.map((metric) => ({
1462
- name: metric.descriptor.name,
1463
- description: metric.descriptor.description,
1464
- unit: metric.descriptor.unit,
1465
- data_points: this.extractDataPoints(metric)
1466
- })))
1467
- };
1468
- return transformed;
1469
- }
1470
- extractDataPoints(metric) {
1471
- const dataPoints = metric.dataPoints || [];
1472
- return dataPoints.filter((point) => typeof point.value === "number").map((point) => ({
1473
- attributes: this.convertAttributes(point.attributes),
1474
- value: point.value,
1475
- timestamp: this.hrTimeToISOString(point.endTime || point.startTime || [Date.now() / 1000, 0])
1476
- }));
1477
- }
1478
- async shutdown() {
1479
- this.isShutdown = true;
1480
- await this.forceFlush();
1481
- logForDebugging("BigQuery metrics exporter shutdown complete");
1482
- }
1483
- async forceFlush() {
1484
- await Promise.all(this.pendingExports);
1485
- logForDebugging("BigQuery metrics exporter flush complete");
1486
- }
1487
- convertAttributes(attributes) {
1488
- const result = {};
1489
- if (attributes) {
1490
- for (const [key, value] of Object.entries(attributes)) {
1491
- if (value !== undefined && value !== null) {
1492
- result[key] = String(value);
1493
- }
1494
- }
1495
- }
1496
- return result;
1497
- }
1498
- hrTimeToISOString(hrTime2) {
1499
- const [seconds, nanoseconds] = hrTime2;
1500
- const date = new Date(seconds * 1000 + nanoseconds / 1e6);
1501
- return date.toISOString();
1502
- }
1503
- selectAggregationTemporality() {
1504
- return import_sdk_metrics.AggregationTemporality.DELTA;
1505
- }
1506
- }
1507
- var import_core10, import_sdk_metrics;
1508
- var init_bigqueryExporter = __esm(() => {
1509
- init_axios();
1510
- init_metricsOptOut();
1511
- init_state();
1512
- init_auth();
1513
- init_config();
1514
- init_debug();
1515
- init_errors();
1516
- init_http();
1517
- init_log();
1518
- init_slowOperations();
1519
- init_userAgent();
1520
- import_core10 = __toESM(require_src3(), 1);
1521
- import_sdk_metrics = __toESM(require_src5(), 1);
1522
- });
1523
-
1524
- // src/utils/telemetry/logger.ts
1525
- class ClaudeCodeDiagLogger {
1526
- error(message, ..._) {
1527
- logError(new Error(message));
1528
- logForDebugging(`[3P telemetry] OTEL diag error: ${message}`, {
1529
- level: "error"
1530
- });
1531
- }
1532
- warn(message, ..._) {
1533
- logError(new Error(message));
1534
- logForDebugging(`[3P telemetry] OTEL diag warn: ${message}`, {
1535
- level: "warn"
1536
- });
1537
- }
1538
- info(_message, ..._args) {
1539
- return;
1540
- }
1541
- debug(_message, ..._args) {
1542
- return;
1543
- }
1544
- verbose(_message, ..._args) {
1545
- return;
1546
- }
1547
- }
1548
- var init_logger = __esm(() => {
1549
- init_debug();
1550
- init_log();
1551
- });
1552
-
1553
- // src/utils/telemetry/instrumentation.ts
1554
- function telemetryTimeout(ms, message) {
1555
- return new Promise((_, reject) => {
1556
- setTimeout((rej, msg) => rej(new TelemetryTimeoutError(msg)), ms, reject, message).unref();
1557
- });
1558
- }
1559
- function bootstrapTelemetry() {
1560
- if (process.env.USER_TYPE === "ant") {
1561
- if (process.env.ANT_OTEL_METRICS_EXPORTER) {
1562
- process.env.OTEL_METRICS_EXPORTER = process.env.ANT_OTEL_METRICS_EXPORTER;
1563
- }
1564
- if (process.env.ANT_OTEL_LOGS_EXPORTER) {
1565
- process.env.OTEL_LOGS_EXPORTER = process.env.ANT_OTEL_LOGS_EXPORTER;
1566
- }
1567
- if (process.env.ANT_OTEL_TRACES_EXPORTER) {
1568
- process.env.OTEL_TRACES_EXPORTER = process.env.ANT_OTEL_TRACES_EXPORTER;
1569
- }
1570
- if (process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL) {
1571
- process.env.OTEL_EXPORTER_OTLP_PROTOCOL = process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL;
1572
- }
1573
- if (process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT) {
1574
- process.env.OTEL_EXPORTER_OTLP_ENDPOINT = process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT;
1575
- }
1576
- if (process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS) {
1577
- process.env.OTEL_EXPORTER_OTLP_HEADERS = process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS;
1578
- }
1579
- }
1580
- if (!process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE) {
1581
- process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE = "delta";
1582
- }
1583
- }
1584
- function parseExporterTypes(value) {
1585
- return (value || "").trim().split(",").filter(Boolean).map((t) => t.trim()).filter((t) => t !== "none");
1586
- }
1587
- async function getOtlpReaders() {
1588
- const exporterTypes = parseExporterTypes(process.env.OTEL_METRICS_EXPORTER);
1589
- const exportInterval = parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL || DEFAULT_METRICS_EXPORT_INTERVAL_MS.toString());
1590
- const exporters = [];
1591
- for (const exporterType of exporterTypes) {
1592
- if (exporterType === "console") {
1593
- const consoleExporter = new import_sdk_metrics2.ConsoleMetricExporter;
1594
- const originalExport = consoleExporter.export.bind(consoleExporter);
1595
- consoleExporter.export = (metrics, callback) => {
1596
- if (metrics.resource && metrics.resource.attributes) {
1597
- logForDebugging(`
1598
- === Resource Attributes ===`);
1599
- logForDebugging(jsonStringify(metrics.resource.attributes));
1600
- logForDebugging(`===========================
1601
- `);
1602
- }
1603
- return originalExport(metrics, callback);
1604
- };
1605
- exporters.push(consoleExporter);
1606
- } else if (exporterType === "otlp") {
1607
- const protocol = process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim() || process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();
1608
- const httpConfig = getOTLPExporterConfig();
1609
- switch (protocol) {
1610
- case "grpc": {
1611
- const { OTLPMetricExporter } = await import("./chunk-zxzwfa0b.js").then((m)=>__toESM(m.default,1));
1612
- exporters.push(new OTLPMetricExporter);
1613
- break;
1614
- }
1615
- case "http/json": {
1616
- const { OTLPMetricExporter } = await import("./chunk-8y12jxg8.js").then((m)=>__toESM(m.default,1));
1617
- exporters.push(new OTLPMetricExporter(httpConfig));
1618
- break;
1619
- }
1620
- case "http/protobuf": {
1621
- const { OTLPMetricExporter } = await import("./chunk-s3pzvdss.js");
1622
- exporters.push(new OTLPMetricExporter(httpConfig));
1623
- break;
1624
- }
1625
- default:
1626
- throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${protocol}`);
1627
- }
1628
- } else if (exporterType === "prometheus") {
1629
- const { PrometheusExporter } = await import("./chunk-6gr3c3w9.js").then((m)=>__toESM(m.default,1));
1630
- exporters.push(new PrometheusExporter);
1631
- } else {
1632
- throw new Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${exporterType}`);
1633
- }
1634
- }
1635
- return exporters.map((exporter) => {
1636
- if ("export" in exporter) {
1637
- return new import_sdk_metrics2.PeriodicExportingMetricReader({
1638
- exporter,
1639
- exportIntervalMillis: exportInterval
1640
- });
1641
- }
1642
- return exporter;
1643
- });
1644
- }
1645
- async function getOtlpLogExporters() {
1646
- const exporterTypes = parseExporterTypes(process.env.OTEL_LOGS_EXPORTER);
1647
- const protocol = process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim() || process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();
1648
- const endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
1649
- logForDebugging(`[3P telemetry] getOtlpLogExporters: types=${jsonStringify(exporterTypes)}, protocol=${protocol}, endpoint=${endpoint}`);
1650
- const exporters = [];
1651
- for (const exporterType of exporterTypes) {
1652
- if (exporterType === "console") {
1653
- exporters.push(new ConsoleLogRecordExporter);
1654
- } else if (exporterType === "otlp") {
1655
- const httpConfig = getOTLPExporterConfig();
1656
- switch (protocol) {
1657
- case "grpc": {
1658
- const { OTLPLogExporter } = await import("./chunk-a7mq5r2z.js").then((m)=>__toESM(m.default,1));
1659
- exporters.push(new OTLPLogExporter);
1660
- break;
1661
- }
1662
- case "http/json": {
1663
- const { OTLPLogExporter } = await import("./chunk-6bd8brc4.js");
1664
- exporters.push(new OTLPLogExporter(httpConfig));
1665
- break;
1666
- }
1667
- case "http/protobuf": {
1668
- const { OTLPLogExporter } = await import("./chunk-a9zh40sj.js");
1669
- exporters.push(new OTLPLogExporter(httpConfig));
1670
- break;
1671
- }
1672
- default:
1673
- throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${protocol}`);
1674
- }
1675
- } else {
1676
- throw new Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${exporterType}`);
1677
- }
1678
- }
1679
- return exporters;
1680
- }
1681
- async function getOtlpTraceExporters() {
1682
- const exporterTypes = parseExporterTypes(process.env.OTEL_TRACES_EXPORTER);
1683
- const exporters = [];
1684
- for (const exporterType of exporterTypes) {
1685
- if (exporterType === "console") {
1686
- exporters.push(new ConsoleSpanExporter);
1687
- } else if (exporterType === "otlp") {
1688
- const protocol = process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL?.trim() || process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim();
1689
- const httpConfig = getOTLPExporterConfig();
1690
- switch (protocol) {
1691
- case "grpc": {
1692
- const { OTLPTraceExporter } = await import("./chunk-2y37w6dg.js").then((m)=>__toESM(m.default,1));
1693
- exporters.push(new OTLPTraceExporter);
1694
- break;
1695
- }
1696
- case "http/json": {
1697
- const { OTLPTraceExporter } = await import("./chunk-dgqrcy74.js");
1698
- exporters.push(new OTLPTraceExporter(httpConfig));
1699
- break;
1700
- }
1701
- case "http/protobuf": {
1702
- const { OTLPTraceExporter } = await import("./chunk-8ymf4e6z.js");
1703
- exporters.push(new OTLPTraceExporter(httpConfig));
1704
- break;
1705
- }
1706
- default:
1707
- throw new Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_TRACES_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${protocol}`);
1708
- }
1709
- } else {
1710
- throw new Error(`Unknown exporter type set in OTEL_TRACES_EXPORTER env var: ${exporterType}`);
1711
- }
1712
- }
1713
- return exporters;
1714
- }
1715
- function isTelemetryEnabled() {
1716
- return isEnvTruthy(process.env.CLAUDE_CODE_ENABLE_TELEMETRY);
1717
- }
1718
- function getBigQueryExportingReader() {
1719
- const bigqueryExporter = new BigQueryMetricsExporter;
1720
- return new import_sdk_metrics2.PeriodicExportingMetricReader({
1721
- exporter: bigqueryExporter,
1722
- exportIntervalMillis: 300000
1723
- });
1724
- }
1725
- function isBigQueryMetricsEnabled() {
1726
- const subscriptionType = getSubscriptionType();
1727
- const isC4EOrTeamUser = isClaudeAISubscriber() && (subscriptionType === "enterprise" || subscriptionType === "team");
1728
- return is1PApiCustomer() || isC4EOrTeamUser;
1729
- }
1730
- async function initializeBetaTracing(resource) {
1731
- const endpoint = process.env.BETA_TRACING_ENDPOINT;
1732
- if (!endpoint) {
1733
- return;
1734
- }
1735
- const [{ OTLPTraceExporter }, { OTLPLogExporter }] = await Promise.all([
1736
- import("./chunk-dgqrcy74.js"),
1737
- import("./chunk-6bd8brc4.js")
1738
- ]);
1739
- const httpConfig = {
1740
- url: `${endpoint}/v1/traces`
1741
- };
1742
- const logHttpConfig = {
1743
- url: `${endpoint}/v1/logs`
1744
- };
1745
- const traceExporter = new OTLPTraceExporter(httpConfig);
1746
- const spanProcessor = new BatchSpanProcessor(traceExporter, {
1747
- scheduledDelayMillis: DEFAULT_TRACES_EXPORT_INTERVAL_MS
1748
- });
1749
- const tracerProvider = new BasicTracerProvider({
1750
- resource,
1751
- spanProcessors: [spanProcessor]
1752
- });
1753
- import_api6.trace.setGlobalTracerProvider(tracerProvider);
1754
- setTracerProvider(tracerProvider);
1755
- const logExporter = new OTLPLogExporter(logHttpConfig);
1756
- const loggerProvider = new LoggerProvider({
1757
- resource,
1758
- processors: [
1759
- new BatchLogRecordProcessor(logExporter, {
1760
- scheduledDelayMillis: DEFAULT_LOGS_EXPORT_INTERVAL_MS
1761
- })
1762
- ]
1763
- });
1764
- logs.setGlobalLoggerProvider(loggerProvider);
1765
- setLoggerProvider(loggerProvider);
1766
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", MACRO.VERSION);
1767
- setEventLogger(eventLogger);
1768
- process.on("beforeExit", async () => {
1769
- await loggerProvider?.forceFlush();
1770
- await tracerProvider?.forceFlush();
1771
- });
1772
- process.on("exit", () => {
1773
- loggerProvider?.forceFlush();
1774
- tracerProvider?.forceFlush();
1775
- });
1776
- }
1777
- async function initializeTelemetry() {
1778
- profileCheckpoint("telemetry_init_start");
1779
- bootstrapTelemetry();
1780
- if (getHasFormattedOutput()) {
1781
- for (const key of [
1782
- "OTEL_METRICS_EXPORTER",
1783
- "OTEL_LOGS_EXPORTER",
1784
- "OTEL_TRACES_EXPORTER"
1785
- ]) {
1786
- const v = process.env[key];
1787
- if (v?.includes("console")) {
1788
- process.env[key] = v.split(",").map((s) => s.trim()).filter((s) => s !== "console").join(",");
1789
- }
1790
- }
1791
- }
1792
- import_api6.diag.setLogger(new ClaudeCodeDiagLogger, import_api6.DiagLogLevel.ERROR);
1793
- initializePerfettoTracing();
1794
- const readers = [];
1795
- const telemetryEnabled = isTelemetryEnabled();
1796
- logForDebugging(`[3P telemetry] isTelemetryEnabled=${telemetryEnabled} (CLAUDE_CODE_ENABLE_TELEMETRY=${process.env.CLAUDE_CODE_ENABLE_TELEMETRY})`);
1797
- if (telemetryEnabled) {
1798
- readers.push(...await getOtlpReaders());
1799
- }
1800
- if (isBigQueryMetricsEnabled()) {
1801
- readers.push(getBigQueryExportingReader());
1802
- }
1803
- const platform = getPlatform();
1804
- const baseAttributes = {
1805
- [import_semantic_conventions2.ATTR_SERVICE_NAME]: "claude-code",
1806
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: MACRO.VERSION
1807
- };
1808
- if (platform === "wsl") {
1809
- const wslVersion = getWslVersion();
1810
- if (wslVersion) {
1811
- baseAttributes["wsl.version"] = wslVersion;
1812
- }
1813
- }
1814
- const baseResource = import_resources2.resourceFromAttributes(baseAttributes);
1815
- const osResource = import_resources2.resourceFromAttributes(import_resources2.osDetector.detect().attributes || {});
1816
- const hostDetected = import_resources2.hostDetector.detect();
1817
- const hostArchAttributes = hostDetected.attributes?.[import_semantic_conventions2.SEMRESATTRS_HOST_ARCH] ? {
1818
- [import_semantic_conventions2.SEMRESATTRS_HOST_ARCH]: hostDetected.attributes[import_semantic_conventions2.SEMRESATTRS_HOST_ARCH]
1819
- } : {};
1820
- const hostArchResource = import_resources2.resourceFromAttributes(hostArchAttributes);
1821
- const envResource = import_resources2.resourceFromAttributes(import_resources2.envDetector.detect().attributes || {});
1822
- const resource = baseResource.merge(osResource).merge(hostArchResource).merge(envResource);
1823
- if (isBetaTracingEnabled()) {
1824
- initializeBetaTracing(resource).catch((e) => logForDebugging(`Beta tracing init failed: ${e}`, { level: "error" }));
1825
- const meterProvider2 = new import_sdk_metrics2.MeterProvider({
1826
- resource,
1827
- views: [],
1828
- readers
1829
- });
1830
- setMeterProvider(meterProvider2);
1831
- const shutdownTelemetry2 = async () => {
1832
- const timeoutMs = parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS || "2000");
1833
- try {
1834
- endInteractionSpan();
1835
- const loggerProvider = getLoggerProvider();
1836
- const tracerProvider = getTracerProvider();
1837
- const chains = [meterProvider2.shutdown()];
1838
- if (loggerProvider) {
1839
- chains.push(loggerProvider.forceFlush().then(() => loggerProvider.shutdown()));
1840
- }
1841
- if (tracerProvider) {
1842
- chains.push(tracerProvider.forceFlush().then(() => tracerProvider.shutdown()));
1843
- }
1844
- await Promise.race([
1845
- Promise.all(chains),
1846
- telemetryTimeout(timeoutMs, "OpenTelemetry shutdown timeout")
1847
- ]);
1848
- } catch {}
1849
- };
1850
- registerCleanup(shutdownTelemetry2);
1851
- return meterProvider2.getMeter("com.anthropic.claude_code", MACRO.VERSION);
1852
- }
1853
- const meterProvider = new import_sdk_metrics2.MeterProvider({
1854
- resource,
1855
- views: [],
1856
- readers
1857
- });
1858
- setMeterProvider(meterProvider);
1859
- if (telemetryEnabled) {
1860
- const logExporters = await getOtlpLogExporters();
1861
- logForDebugging(`[3P telemetry] Created ${logExporters.length} log exporter(s)`);
1862
- if (logExporters.length > 0) {
1863
- const loggerProvider = new LoggerProvider({
1864
- resource,
1865
- processors: logExporters.map((exporter) => new BatchLogRecordProcessor(exporter, {
1866
- scheduledDelayMillis: parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL || DEFAULT_LOGS_EXPORT_INTERVAL_MS.toString())
1867
- }))
1868
- });
1869
- logs.setGlobalLoggerProvider(loggerProvider);
1870
- setLoggerProvider(loggerProvider);
1871
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", MACRO.VERSION);
1872
- setEventLogger(eventLogger);
1873
- logForDebugging("[3P telemetry] Event logger set successfully");
1874
- process.on("beforeExit", async () => {
1875
- await loggerProvider?.forceFlush();
1876
- const tracerProvider = getTracerProvider();
1877
- await tracerProvider?.forceFlush();
1878
- });
1879
- process.on("exit", () => {
1880
- loggerProvider?.forceFlush();
1881
- getTracerProvider()?.forceFlush();
1882
- });
1883
- }
1884
- }
1885
- if (telemetryEnabled && isEnhancedTelemetryEnabled()) {
1886
- const traceExporters = await getOtlpTraceExporters();
1887
- if (traceExporters.length > 0) {
1888
- const spanProcessors = traceExporters.map((exporter) => new BatchSpanProcessor(exporter, {
1889
- scheduledDelayMillis: parseInt(process.env.OTEL_TRACES_EXPORT_INTERVAL || DEFAULT_TRACES_EXPORT_INTERVAL_MS.toString())
1890
- }));
1891
- const tracerProvider = new BasicTracerProvider({
1892
- resource,
1893
- spanProcessors
1894
- });
1895
- import_api6.trace.setGlobalTracerProvider(tracerProvider);
1896
- setTracerProvider(tracerProvider);
1897
- }
1898
- }
1899
- const shutdownTelemetry = async () => {
1900
- const timeoutMs = parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS || "2000");
1901
- try {
1902
- endInteractionSpan();
1903
- const shutdownPromises = [meterProvider.shutdown()];
1904
- const loggerProvider = getLoggerProvider();
1905
- if (loggerProvider) {
1906
- shutdownPromises.push(loggerProvider.shutdown());
1907
- }
1908
- const tracerProvider = getTracerProvider();
1909
- if (tracerProvider) {
1910
- shutdownPromises.push(tracerProvider.shutdown());
1911
- }
1912
- await Promise.race([
1913
- Promise.all(shutdownPromises),
1914
- telemetryTimeout(timeoutMs, "OpenTelemetry shutdown timeout")
1915
- ]);
1916
- } catch (error) {
1917
- if (error instanceof Error && error.message.includes("timeout")) {
1918
- logForDebugging(`
1919
- OpenTelemetry telemetry flush timed out after ${timeoutMs}ms
1920
-
1921
- To resolve this issue, you can:
1922
- 1. Increase the timeout by setting CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS env var (e.g., 5000 for 5 seconds)
1923
- 2. Check if your OpenTelemetry backend is experiencing scalability issues
1924
- 3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
1925
-
1926
- Current timeout: ${timeoutMs}ms
1927
- `, { level: "error" });
1928
- }
1929
- throw error;
1930
- }
1931
- };
1932
- registerCleanup(shutdownTelemetry);
1933
- return meterProvider.getMeter("com.anthropic.claude_code", MACRO.VERSION);
1934
- }
1935
- async function flushTelemetry() {
1936
- const meterProvider = getMeterProvider();
1937
- if (!meterProvider) {
1938
- return;
1939
- }
1940
- const timeoutMs = parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS || "5000");
1941
- try {
1942
- const flushPromises = [meterProvider.forceFlush()];
1943
- const loggerProvider = getLoggerProvider();
1944
- if (loggerProvider) {
1945
- flushPromises.push(loggerProvider.forceFlush());
1946
- }
1947
- const tracerProvider = getTracerProvider();
1948
- if (tracerProvider) {
1949
- flushPromises.push(tracerProvider.forceFlush());
1950
- }
1951
- await Promise.race([
1952
- Promise.all(flushPromises),
1953
- telemetryTimeout(timeoutMs, "OpenTelemetry flush timeout")
1954
- ]);
1955
- logForDebugging("Telemetry flushed successfully");
1956
- } catch (error) {
1957
- if (error instanceof TelemetryTimeoutError) {
1958
- logForDebugging(`Telemetry flush timed out after ${timeoutMs}ms. Some metrics may not be exported.`, { level: "warn" });
1959
- } else {
1960
- logForDebugging(`Telemetry flush failed: ${errorMessage(error)}`, {
1961
- level: "error"
1962
- });
1963
- }
1964
- }
1965
- }
1966
- function parseOtelHeadersEnvVar() {
1967
- const headers = {};
1968
- const envHeaders = process.env.OTEL_EXPORTER_OTLP_HEADERS;
1969
- if (envHeaders) {
1970
- for (const pair of envHeaders.split(",")) {
1971
- const [key, ...valueParts] = pair.split("=");
1972
- if (key && valueParts.length > 0) {
1973
- headers[key.trim()] = valueParts.join("=").trim();
1974
- }
1975
- }
1976
- }
1977
- return headers;
1978
- }
1979
- function getOTLPExporterConfig() {
1980
- const proxyUrl = getProxyUrl();
1981
- const mtlsConfig = getMTLSConfig();
1982
- const settings = getSettings_DEPRECATED();
1983
- const config = {};
1984
- const staticHeaders = parseOtelHeadersEnvVar();
1985
- if (settings?.otelHeadersHelper) {
1986
- config.headers = async () => {
1987
- const dynamicHeaders = getOtelHeadersFromHelper();
1988
- return { ...staticHeaders, ...dynamicHeaders };
1989
- };
1990
- } else if (Object.keys(staticHeaders).length > 0) {
1991
- config.headers = async () => staticHeaders;
1992
- }
1993
- const otelEndpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
1994
- if (!proxyUrl || otelEndpoint && shouldBypassProxy(otelEndpoint)) {
1995
- const caCerts2 = getCACertificates();
1996
- if (mtlsConfig || caCerts2) {
1997
- config.httpAgentOptions = {
1998
- ...mtlsConfig,
1999
- ...caCerts2 && { ca: caCerts2 }
2000
- };
2001
- }
2002
- return config;
2003
- }
2004
- const caCerts = getCACertificates();
2005
- const agentFactory = (_protocol) => {
2006
- const proxyAgent = mtlsConfig || caCerts ? new HttpsProxyAgent(proxyUrl, {
2007
- ...mtlsConfig && {
2008
- cert: mtlsConfig.cert,
2009
- key: mtlsConfig.key,
2010
- passphrase: mtlsConfig.passphrase
2011
- },
2012
- ...caCerts && { ca: caCerts }
2013
- }) : new HttpsProxyAgent(proxyUrl);
2014
- return proxyAgent;
2015
- };
2016
- config.httpAgentOptions = agentFactory;
2017
- return config;
2018
- }
2019
- var import_api6, import_resources2, import_sdk_metrics2, import_semantic_conventions2, DEFAULT_METRICS_EXPORT_INTERVAL_MS = 60000, DEFAULT_LOGS_EXPORT_INTERVAL_MS = 5000, DEFAULT_TRACES_EXPORT_INTERVAL_MS = 5000, TelemetryTimeoutError;
2020
- var init_instrumentation = __esm(() => {
2021
- init_esm();
2022
- init_esm2();
2023
- init_esm3();
2024
- init_dist();
2025
- init_state();
2026
- init_auth();
2027
- init_platform();
2028
- init_caCerts();
2029
- init_cleanupRegistry();
2030
- init_debug();
2031
- init_envUtils();
2032
- init_errors();
2033
- init_mtls();
2034
- init_proxy();
2035
- init_settings();
2036
- init_slowOperations();
2037
- init_startupProfiler();
2038
- init_betaSessionTracing();
2039
- init_bigqueryExporter();
2040
- init_logger();
2041
- init_perfettoTracing();
2042
- init_sessionTracing();
2043
- import_api6 = __toESM(require_src(), 1);
2044
- import_resources2 = __toESM(require_src4(), 1);
2045
- import_sdk_metrics2 = __toESM(require_src5(), 1);
2046
- import_semantic_conventions2 = __toESM(require_src2(), 1);
2047
- TelemetryTimeoutError = class TelemetryTimeoutError extends Error {
2048
- };
2049
- });
2050
- init_instrumentation();
2051
-
2052
- export {
2053
- parseExporterTypes,
2054
- isTelemetryEnabled,
2055
- initializeTelemetry,
2056
- flushTelemetry,
2057
- bootstrapTelemetry
2058
- };