langwatch 0.34.0 → 0.35.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 (774) hide show
  1. package/dist/{chunk-RIPASL56.mjs → chunk-2O4ILSP5.mjs} +2 -2
  2. package/dist/{chunk-2V5FBEY3.mjs → chunk-3QHURXIZ.mjs} +42 -5
  3. package/dist/chunk-3QHURXIZ.mjs.map +1 -0
  4. package/dist/{chunk-FSACIXYG.js → chunk-53AMPF5E.js} +16 -22
  5. package/dist/chunk-53AMPF5E.js.map +1 -0
  6. package/dist/{chunk-YKWXS2BM.js → chunk-EDWIKCYX.js} +130 -48
  7. package/dist/chunk-EDWIKCYX.js.map +1 -0
  8. package/dist/{chunk-QZRBNYW2.js → chunk-HBVGKWJK.js} +53 -16
  9. package/dist/chunk-HBVGKWJK.js.map +1 -0
  10. package/dist/{chunk-NTRV2ICJ.js → chunk-IUSLT65Z.js} +2 -2
  11. package/dist/{chunk-NTRV2ICJ.js.map → chunk-IUSLT65Z.js.map} +1 -1
  12. package/dist/{chunk-4ZA6WF6S.mjs → chunk-KH2GOLFO.mjs} +104 -22
  13. package/dist/chunk-KH2GOLFO.mjs.map +1 -0
  14. package/dist/{chunk-PONU4KJX.mjs → chunk-L5KBRKHS.mjs} +110 -5
  15. package/dist/chunk-L5KBRKHS.mjs.map +1 -0
  16. package/dist/chunk-TKSTXX3D.js +239 -0
  17. package/dist/chunk-TKSTXX3D.js.map +1 -0
  18. package/dist/{chunk-42EDFIG2.mjs → chunk-XMAFHMLS.mjs} +10 -16
  19. package/dist/{chunk-42EDFIG2.mjs.map → chunk-XMAFHMLS.mjs.map} +1 -1
  20. package/dist/cli/bundle.js +3768 -0
  21. package/dist/cli/index.js +10 -1335
  22. package/dist/{implementation-BIfcyP32.d.ts → implementation-CMWs8g5L.d.ts} +3 -3
  23. package/dist/{implementation-BBG46scL.d.mts → implementation-Cv1hPZBQ.d.mts} +3 -3
  24. package/dist/index.d.mts +125 -12
  25. package/dist/index.d.ts +125 -12
  26. package/dist/index.js +4840 -1410
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +4788 -1358
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/observability-sdk/index.d.mts +6 -6
  31. package/dist/observability-sdk/index.d.ts +6 -6
  32. package/dist/observability-sdk/index.js +5 -10
  33. package/dist/observability-sdk/index.js.map +1 -1
  34. package/dist/observability-sdk/index.mjs +5 -10
  35. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +2 -2
  36. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +2 -2
  37. package/dist/observability-sdk/instrumentation/langchain/index.js +18 -21
  38. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -1
  39. package/dist/observability-sdk/instrumentation/langchain/index.mjs +3 -6
  40. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -1
  41. package/dist/observability-sdk/setup/node/index.d.mts +2 -2
  42. package/dist/observability-sdk/setup/node/index.d.ts +2 -2
  43. package/dist/observability-sdk/setup/node/index.js +4 -8
  44. package/dist/observability-sdk/setup/node/index.js.map +1 -1
  45. package/dist/observability-sdk/setup/node/index.mjs +3 -7
  46. package/dist/{types-CYfKDbKj.d.ts → types-D-yAkWoC.d.ts} +71 -3
  47. package/dist/{types-Dmazk5Bk.d.mts → types-DLfhJb38.d.mts} +1 -1
  48. package/dist/{types-Dmazk5Bk.d.ts → types-DLfhJb38.d.ts} +1 -1
  49. package/dist/{types-BvCQH8F1.d.ts → types-VOZv9LYO.d.mts} +1 -1
  50. package/dist/{types-BvCQH8F1.d.mts → types-VOZv9LYO.d.ts} +1 -1
  51. package/dist/{types-fzTtg5sg.d.mts → types-bfBzGB7S.d.mts} +71 -3
  52. package/package.json +13 -6
  53. package/dist/add-TFE2BH4K.mjs +0 -148
  54. package/dist/add-TFE2BH4K.mjs.map +0 -1
  55. package/dist/add-URBA6FGV.js +0 -148
  56. package/dist/add-URBA6FGV.js.map +0 -1
  57. package/dist/archive-CL6XUEYU.mjs +0 -41
  58. package/dist/archive-CL6XUEYU.mjs.map +0 -1
  59. package/dist/archive-K4SSNBML.js +0 -41
  60. package/dist/archive-K4SSNBML.js.map +0 -1
  61. package/dist/assign-4PVKU4WO.mjs +0 -54
  62. package/dist/assign-4PVKU4WO.mjs.map +0 -1
  63. package/dist/assign-RFENMUXO.js +0 -54
  64. package/dist/assign-RFENMUXO.js.map +0 -1
  65. package/dist/chunk-2MITUTNI.js +0 -205
  66. package/dist/chunk-2MITUTNI.js.map +0 -1
  67. package/dist/chunk-2V5FBEY3.mjs.map +0 -1
  68. package/dist/chunk-2VVANTLB.js +0 -68
  69. package/dist/chunk-2VVANTLB.js.map +0 -1
  70. package/dist/chunk-377U47MY.js +0 -42
  71. package/dist/chunk-377U47MY.js.map +0 -1
  72. package/dist/chunk-3K6C35HN.mjs +0 -80
  73. package/dist/chunk-3K6C35HN.mjs.map +0 -1
  74. package/dist/chunk-3PZ5VO5T.mjs +0 -205
  75. package/dist/chunk-3PZ5VO5T.mjs.map +0 -1
  76. package/dist/chunk-4Q4HSAKZ.js +0 -894
  77. package/dist/chunk-4Q4HSAKZ.js.map +0 -1
  78. package/dist/chunk-4ZA6WF6S.mjs.map +0 -1
  79. package/dist/chunk-535JT5M3.mjs +0 -42
  80. package/dist/chunk-535JT5M3.mjs.map +0 -1
  81. package/dist/chunk-5M6GLAIG.js +0 -410
  82. package/dist/chunk-5M6GLAIG.js.map +0 -1
  83. package/dist/chunk-5PF32BLZ.mjs +0 -76
  84. package/dist/chunk-5PF32BLZ.mjs.map +0 -1
  85. package/dist/chunk-5W4B44MH.mjs +0 -103
  86. package/dist/chunk-5W4B44MH.mjs.map +0 -1
  87. package/dist/chunk-5Z3A3Z5M.mjs +0 -96
  88. package/dist/chunk-5Z3A3Z5M.mjs.map +0 -1
  89. package/dist/chunk-64H4FLDB.mjs +0 -51
  90. package/dist/chunk-64H4FLDB.mjs.map +0 -1
  91. package/dist/chunk-67PP4GB4.mjs +0 -40
  92. package/dist/chunk-67PP4GB4.mjs.map +0 -1
  93. package/dist/chunk-6KMX34ZH.js +0 -257
  94. package/dist/chunk-6KMX34ZH.js.map +0 -1
  95. package/dist/chunk-6RSHYGUB.js +0 -85
  96. package/dist/chunk-6RSHYGUB.js.map +0 -1
  97. package/dist/chunk-7HFW67OR.mjs +0 -63
  98. package/dist/chunk-7HFW67OR.mjs.map +0 -1
  99. package/dist/chunk-7KSBRJUY.js +0 -54
  100. package/dist/chunk-7KSBRJUY.js.map +0 -1
  101. package/dist/chunk-7ULZZHBP.mjs +0 -42
  102. package/dist/chunk-7ULZZHBP.mjs.map +0 -1
  103. package/dist/chunk-A6YWANGL.js +0 -103
  104. package/dist/chunk-A6YWANGL.js.map +0 -1
  105. package/dist/chunk-B5TBCV6N.js +0 -96
  106. package/dist/chunk-B5TBCV6N.js.map +0 -1
  107. package/dist/chunk-BAX4W3AY.mjs +0 -62
  108. package/dist/chunk-BAX4W3AY.mjs.map +0 -1
  109. package/dist/chunk-BGYXA2QV.mjs +0 -96
  110. package/dist/chunk-BGYXA2QV.mjs.map +0 -1
  111. package/dist/chunk-BRPEG3YQ.js +0 -62
  112. package/dist/chunk-BRPEG3YQ.js.map +0 -1
  113. package/dist/chunk-C5Y772G7.js +0 -152
  114. package/dist/chunk-C5Y772G7.js.map +0 -1
  115. package/dist/chunk-CEJY6QI3.mjs +0 -508
  116. package/dist/chunk-CEJY6QI3.mjs.map +0 -1
  117. package/dist/chunk-CGECDLSE.js +0 -90
  118. package/dist/chunk-CGECDLSE.js.map +0 -1
  119. package/dist/chunk-CKTJADY6.mjs +0 -348
  120. package/dist/chunk-CKTJADY6.mjs.map +0 -1
  121. package/dist/chunk-CLYXJJ6C.js +0 -66
  122. package/dist/chunk-CLYXJJ6C.js.map +0 -1
  123. package/dist/chunk-COMOCQA6.mjs +0 -13
  124. package/dist/chunk-COMOCQA6.mjs.map +0 -1
  125. package/dist/chunk-D2VRKNFF.js +0 -1672
  126. package/dist/chunk-D2VRKNFF.js.map +0 -1
  127. package/dist/chunk-D5NUUB4G.mjs +0 -225
  128. package/dist/chunk-D5NUUB4G.mjs.map +0 -1
  129. package/dist/chunk-DCTJDRBW.js +0 -40
  130. package/dist/chunk-DCTJDRBW.js.map +0 -1
  131. package/dist/chunk-DIILEB4J.js +0 -196
  132. package/dist/chunk-DIILEB4J.js.map +0 -1
  133. package/dist/chunk-DOJBPYAE.js +0 -663
  134. package/dist/chunk-DOJBPYAE.js.map +0 -1
  135. package/dist/chunk-DTEKJ3UD.mjs +0 -66
  136. package/dist/chunk-DTEKJ3UD.mjs.map +0 -1
  137. package/dist/chunk-FG3JQBJB.mjs +0 -68
  138. package/dist/chunk-FG3JQBJB.mjs.map +0 -1
  139. package/dist/chunk-FNFLZXXA.js +0 -80
  140. package/dist/chunk-FNFLZXXA.js.map +0 -1
  141. package/dist/chunk-FSACIXYG.js.map +0 -1
  142. package/dist/chunk-GFLV5NP6.mjs +0 -70
  143. package/dist/chunk-GFLV5NP6.mjs.map +0 -1
  144. package/dist/chunk-GNWMKXDU.mjs +0 -66
  145. package/dist/chunk-GNWMKXDU.mjs.map +0 -1
  146. package/dist/chunk-GPGJNBPP.js +0 -63
  147. package/dist/chunk-GPGJNBPP.js.map +0 -1
  148. package/dist/chunk-GUPNZDU7.js +0 -101
  149. package/dist/chunk-GUPNZDU7.js.map +0 -1
  150. package/dist/chunk-HDA25KWZ.js +0 -134
  151. package/dist/chunk-HDA25KWZ.js.map +0 -1
  152. package/dist/chunk-IZD5CIVE.js +0 -70
  153. package/dist/chunk-IZD5CIVE.js.map +0 -1
  154. package/dist/chunk-J3KM7ZO7.mjs +0 -152
  155. package/dist/chunk-J3KM7ZO7.mjs.map +0 -1
  156. package/dist/chunk-JQVI5CD7.mjs +0 -894
  157. package/dist/chunk-JQVI5CD7.mjs.map +0 -1
  158. package/dist/chunk-JSV75WAY.js +0 -76
  159. package/dist/chunk-JSV75WAY.js.map +0 -1
  160. package/dist/chunk-JZYHVNJR.js +0 -22
  161. package/dist/chunk-JZYHVNJR.js.map +0 -1
  162. package/dist/chunk-KT6HZNPV.js +0 -36
  163. package/dist/chunk-KT6HZNPV.js.map +0 -1
  164. package/dist/chunk-KW2W5KVS.mjs +0 -22
  165. package/dist/chunk-KW2W5KVS.mjs.map +0 -1
  166. package/dist/chunk-LA5LU5UP.js +0 -225
  167. package/dist/chunk-LA5LU5UP.js.map +0 -1
  168. package/dist/chunk-LSRJHTPL.js +0 -36
  169. package/dist/chunk-LSRJHTPL.js.map +0 -1
  170. package/dist/chunk-M3WJZUOE.js +0 -13
  171. package/dist/chunk-M3WJZUOE.js.map +0 -1
  172. package/dist/chunk-M5UNTGGK.mjs +0 -68
  173. package/dist/chunk-M5UNTGGK.mjs.map +0 -1
  174. package/dist/chunk-NQN42A2N.js +0 -348
  175. package/dist/chunk-NQN42A2N.js.map +0 -1
  176. package/dist/chunk-NYCKS3GG.js +0 -20
  177. package/dist/chunk-NYCKS3GG.js.map +0 -1
  178. package/dist/chunk-O2GHYEAE.mjs +0 -92
  179. package/dist/chunk-O2GHYEAE.mjs.map +0 -1
  180. package/dist/chunk-OGAE7BVQ.js +0 -67
  181. package/dist/chunk-OGAE7BVQ.js.map +0 -1
  182. package/dist/chunk-OMOZEGVZ.mjs +0 -22
  183. package/dist/chunk-OMOZEGVZ.mjs.map +0 -1
  184. package/dist/chunk-OMZ3FRPU.mjs +0 -65
  185. package/dist/chunk-OMZ3FRPU.mjs.map +0 -1
  186. package/dist/chunk-OOXU4LFW.js +0 -65
  187. package/dist/chunk-OOXU4LFW.js.map +0 -1
  188. package/dist/chunk-OSAFGMGH.mjs +0 -85
  189. package/dist/chunk-OSAFGMGH.mjs.map +0 -1
  190. package/dist/chunk-OXULVOBF.mjs +0 -144
  191. package/dist/chunk-OXULVOBF.mjs.map +0 -1
  192. package/dist/chunk-PONU4KJX.mjs.map +0 -1
  193. package/dist/chunk-PQA46YVG.mjs +0 -410
  194. package/dist/chunk-PQA46YVG.mjs.map +0 -1
  195. package/dist/chunk-Q6OMYVNW.js +0 -66
  196. package/dist/chunk-Q6OMYVNW.js.map +0 -1
  197. package/dist/chunk-Q7AHHFC3.mjs +0 -20
  198. package/dist/chunk-Q7AHHFC3.mjs.map +0 -1
  199. package/dist/chunk-QSMGACTW.js +0 -51
  200. package/dist/chunk-QSMGACTW.js.map +0 -1
  201. package/dist/chunk-QVQ7WDJS.mjs +0 -196
  202. package/dist/chunk-QVQ7WDJS.mjs.map +0 -1
  203. package/dist/chunk-QZRBNYW2.js.map +0 -1
  204. package/dist/chunk-R6QPBFZD.mjs +0 -63
  205. package/dist/chunk-R6QPBFZD.mjs.map +0 -1
  206. package/dist/chunk-RALJR5ZU.js +0 -80
  207. package/dist/chunk-RALJR5ZU.js.map +0 -1
  208. package/dist/chunk-S2UWK4HL.mjs +0 -36
  209. package/dist/chunk-S2UWK4HL.mjs.map +0 -1
  210. package/dist/chunk-SIXSSID3.mjs +0 -43
  211. package/dist/chunk-SIXSSID3.mjs.map +0 -1
  212. package/dist/chunk-SNKGSX5I.js +0 -42
  213. package/dist/chunk-SNKGSX5I.js.map +0 -1
  214. package/dist/chunk-SQXVLXIS.mjs +0 -90
  215. package/dist/chunk-SQXVLXIS.mjs.map +0 -1
  216. package/dist/chunk-TIAQGDR2.js +0 -34
  217. package/dist/chunk-TIAQGDR2.js.map +0 -1
  218. package/dist/chunk-U47MQ6CS.mjs +0 -67
  219. package/dist/chunk-U47MQ6CS.mjs.map +0 -1
  220. package/dist/chunk-UQ633TEF.mjs +0 -54
  221. package/dist/chunk-UQ633TEF.mjs.map +0 -1
  222. package/dist/chunk-UTXV7U7Z.js +0 -92
  223. package/dist/chunk-UTXV7U7Z.js.map +0 -1
  224. package/dist/chunk-W2BNKVWJ.mjs +0 -36
  225. package/dist/chunk-W2BNKVWJ.mjs.map +0 -1
  226. package/dist/chunk-WG7MPZXJ.mjs +0 -663
  227. package/dist/chunk-WG7MPZXJ.mjs.map +0 -1
  228. package/dist/chunk-WIXX2IDN.mjs +0 -101
  229. package/dist/chunk-WIXX2IDN.mjs.map +0 -1
  230. package/dist/chunk-WQRATXQU.mjs +0 -80
  231. package/dist/chunk-WQRATXQU.mjs.map +0 -1
  232. package/dist/chunk-WV4U2PPY.js +0 -68
  233. package/dist/chunk-WV4U2PPY.js.map +0 -1
  234. package/dist/chunk-WZTRPR6A.js +0 -43
  235. package/dist/chunk-WZTRPR6A.js.map +0 -1
  236. package/dist/chunk-XGULH63G.mjs +0 -1672
  237. package/dist/chunk-XGULH63G.mjs.map +0 -1
  238. package/dist/chunk-YBLYQYXL.js +0 -22
  239. package/dist/chunk-YBLYQYXL.js.map +0 -1
  240. package/dist/chunk-YK55ZGRQ.mjs +0 -257
  241. package/dist/chunk-YK55ZGRQ.mjs.map +0 -1
  242. package/dist/chunk-YKDTIJF2.js +0 -144
  243. package/dist/chunk-YKDTIJF2.js.map +0 -1
  244. package/dist/chunk-YKWXS2BM.js.map +0 -1
  245. package/dist/chunk-YOSDU6PV.mjs +0 -34
  246. package/dist/chunk-YOSDU6PV.mjs.map +0 -1
  247. package/dist/chunk-YP4LDCP6.mjs +0 -277
  248. package/dist/chunk-YP4LDCP6.mjs.map +0 -1
  249. package/dist/chunk-ZA5BH7IZ.js +0 -277
  250. package/dist/chunk-ZA5BH7IZ.js.map +0 -1
  251. package/dist/chunk-ZFAAOZZM.js +0 -96
  252. package/dist/chunk-ZFAAOZZM.js.map +0 -1
  253. package/dist/chunk-ZFFJYYDN.js +0 -508
  254. package/dist/chunk-ZFFJYYDN.js.map +0 -1
  255. package/dist/chunk-ZX6VUKK5.js +0 -63
  256. package/dist/chunk-ZX6VUKK5.js.map +0 -1
  257. package/dist/cli/index.d.mts +0 -1
  258. package/dist/cli/index.d.ts +0 -1
  259. package/dist/cli/index.js.map +0 -1
  260. package/dist/cli/index.mjs +0 -1336
  261. package/dist/cli/index.mjs.map +0 -1
  262. package/dist/config-DPFYZQUU.js +0 -96
  263. package/dist/config-DPFYZQUU.js.map +0 -1
  264. package/dist/config-DXWUTPTA.mjs +0 -96
  265. package/dist/config-DXWUTPTA.mjs.map +0 -1
  266. package/dist/create-2MUVHIRR.js +0 -49
  267. package/dist/create-2MUVHIRR.js.map +0 -1
  268. package/dist/create-2VO6N4CY.js +0 -50
  269. package/dist/create-2VO6N4CY.js.map +0 -1
  270. package/dist/create-5HLREIKR.mjs +0 -52
  271. package/dist/create-5HLREIKR.mjs.map +0 -1
  272. package/dist/create-7WWQNO2D.mjs +0 -88
  273. package/dist/create-7WWQNO2D.mjs.map +0 -1
  274. package/dist/create-APC6WMHS.js +0 -72
  275. package/dist/create-APC6WMHS.js.map +0 -1
  276. package/dist/create-B6AZP3AH.js +0 -42
  277. package/dist/create-B6AZP3AH.js.map +0 -1
  278. package/dist/create-BWIIJPYN.js +0 -88
  279. package/dist/create-BWIIJPYN.js.map +0 -1
  280. package/dist/create-C7HS7DAN.js +0 -91
  281. package/dist/create-C7HS7DAN.js.map +0 -1
  282. package/dist/create-CENOO2Z5.mjs +0 -94
  283. package/dist/create-CENOO2Z5.mjs.map +0 -1
  284. package/dist/create-CSENTPZ7.mjs +0 -88
  285. package/dist/create-CSENTPZ7.mjs.map +0 -1
  286. package/dist/create-F564PPYR.mjs +0 -72
  287. package/dist/create-F564PPYR.mjs.map +0 -1
  288. package/dist/create-FEVRMAGI.js +0 -75
  289. package/dist/create-FEVRMAGI.js.map +0 -1
  290. package/dist/create-FK6ZCXCA.js +0 -92
  291. package/dist/create-FK6ZCXCA.js.map +0 -1
  292. package/dist/create-G5KF3LVC.mjs +0 -50
  293. package/dist/create-G5KF3LVC.mjs.map +0 -1
  294. package/dist/create-HL6BPJBM.mjs +0 -71
  295. package/dist/create-HL6BPJBM.mjs.map +0 -1
  296. package/dist/create-KFDWNSGC.mjs +0 -87
  297. package/dist/create-KFDWNSGC.mjs.map +0 -1
  298. package/dist/create-KTPZZ7NV.mjs +0 -75
  299. package/dist/create-KTPZZ7NV.mjs.map +0 -1
  300. package/dist/create-LAKPCRNY.mjs +0 -92
  301. package/dist/create-LAKPCRNY.mjs.map +0 -1
  302. package/dist/create-LFU7Z6DS.mjs +0 -42
  303. package/dist/create-LFU7Z6DS.mjs.map +0 -1
  304. package/dist/create-MI7MQLN6.mjs +0 -48
  305. package/dist/create-MI7MQLN6.mjs.map +0 -1
  306. package/dist/create-OMO3TETI.mjs +0 -23
  307. package/dist/create-OMO3TETI.mjs.map +0 -1
  308. package/dist/create-OWODQWNJ.js +0 -48
  309. package/dist/create-OWODQWNJ.js.map +0 -1
  310. package/dist/create-POGAVC3B.mjs +0 -49
  311. package/dist/create-POGAVC3B.mjs.map +0 -1
  312. package/dist/create-QJLKTHQ6.mjs +0 -58
  313. package/dist/create-QJLKTHQ6.mjs.map +0 -1
  314. package/dist/create-R57TZY3Y.js +0 -94
  315. package/dist/create-R57TZY3Y.js.map +0 -1
  316. package/dist/create-RIHQJENZ.js +0 -71
  317. package/dist/create-RIHQJENZ.js.map +0 -1
  318. package/dist/create-UOIUDY25.js +0 -88
  319. package/dist/create-UOIUDY25.js.map +0 -1
  320. package/dist/create-URUJVBUC.js +0 -87
  321. package/dist/create-URUJVBUC.js.map +0 -1
  322. package/dist/create-VEK55UDK.mjs +0 -43
  323. package/dist/create-VEK55UDK.mjs.map +0 -1
  324. package/dist/create-VKXRDN5O.js +0 -52
  325. package/dist/create-VKXRDN5O.js.map +0 -1
  326. package/dist/create-XHAKNOTS.mjs +0 -91
  327. package/dist/create-XHAKNOTS.mjs.map +0 -1
  328. package/dist/create-YJHDG2ZO.js +0 -23
  329. package/dist/create-YJHDG2ZO.js.map +0 -1
  330. package/dist/create-Z5CM76ZW.js +0 -43
  331. package/dist/create-Z5CM76ZW.js.map +0 -1
  332. package/dist/create-Z6JTQNL6.js +0 -58
  333. package/dist/create-Z6JTQNL6.js.map +0 -1
  334. package/dist/delete-6BINMYZI.mjs +0 -52
  335. package/dist/delete-6BINMYZI.mjs.map +0 -1
  336. package/dist/delete-6T5CCDFJ.js +0 -42
  337. package/dist/delete-6T5CCDFJ.js.map +0 -1
  338. package/dist/delete-6UHWYVNZ.js +0 -52
  339. package/dist/delete-6UHWYVNZ.js.map +0 -1
  340. package/dist/delete-A5RWDQKJ.js +0 -52
  341. package/dist/delete-A5RWDQKJ.js.map +0 -1
  342. package/dist/delete-A7ZWGQPR.mjs +0 -59
  343. package/dist/delete-A7ZWGQPR.mjs.map +0 -1
  344. package/dist/delete-B5G7GAHY.mjs +0 -44
  345. package/dist/delete-B5G7GAHY.mjs.map +0 -1
  346. package/dist/delete-BGCVEG3C.js +0 -61
  347. package/dist/delete-BGCVEG3C.js.map +0 -1
  348. package/dist/delete-BYCIZOZG.js +0 -39
  349. package/dist/delete-BYCIZOZG.js.map +0 -1
  350. package/dist/delete-E5VYCRYX.mjs +0 -39
  351. package/dist/delete-E5VYCRYX.mjs.map +0 -1
  352. package/dist/delete-EK6PUMYW.js +0 -52
  353. package/dist/delete-EK6PUMYW.js.map +0 -1
  354. package/dist/delete-ERB4LGWZ.mjs +0 -41
  355. package/dist/delete-ERB4LGWZ.mjs.map +0 -1
  356. package/dist/delete-FD3IISGJ.js +0 -38
  357. package/dist/delete-FD3IISGJ.js.map +0 -1
  358. package/dist/delete-FE3MRFPM.mjs +0 -52
  359. package/dist/delete-FE3MRFPM.mjs.map +0 -1
  360. package/dist/delete-FP5MMDDA.mjs +0 -61
  361. package/dist/delete-FP5MMDDA.mjs.map +0 -1
  362. package/dist/delete-FWKI62NT.mjs +0 -39
  363. package/dist/delete-FWKI62NT.mjs.map +0 -1
  364. package/dist/delete-HLKQDPTI.js +0 -52
  365. package/dist/delete-HLKQDPTI.js.map +0 -1
  366. package/dist/delete-KAVDMRQX.mjs +0 -59
  367. package/dist/delete-KAVDMRQX.mjs.map +0 -1
  368. package/dist/delete-M4ZCKWOU.mjs +0 -52
  369. package/dist/delete-M4ZCKWOU.mjs.map +0 -1
  370. package/dist/delete-NGPOOTEX.mjs +0 -42
  371. package/dist/delete-NGPOOTEX.mjs.map +0 -1
  372. package/dist/delete-NN4CSTK5.js +0 -44
  373. package/dist/delete-NN4CSTK5.js.map +0 -1
  374. package/dist/delete-NRW5THMB.js +0 -39
  375. package/dist/delete-NRW5THMB.js.map +0 -1
  376. package/dist/delete-SZG6DJUR.mjs +0 -52
  377. package/dist/delete-SZG6DJUR.mjs.map +0 -1
  378. package/dist/delete-UMDNW3RR.mjs +0 -59
  379. package/dist/delete-UMDNW3RR.mjs.map +0 -1
  380. package/dist/delete-UVGITJ2L.mjs +0 -38
  381. package/dist/delete-UVGITJ2L.mjs.map +0 -1
  382. package/dist/delete-VBP7TKUH.js +0 -41
  383. package/dist/delete-VBP7TKUH.js.map +0 -1
  384. package/dist/delete-Y3DTH336.js +0 -59
  385. package/dist/delete-Y3DTH336.js.map +0 -1
  386. package/dist/delete-ZM3GFW2Z.js +0 -59
  387. package/dist/delete-ZM3GFW2Z.js.map +0 -1
  388. package/dist/delete-ZSN6PWGA.js +0 -59
  389. package/dist/delete-ZSN6PWGA.js.map +0 -1
  390. package/dist/docs-23TMQCLZ.js +0 -77
  391. package/dist/docs-23TMQCLZ.js.map +0 -1
  392. package/dist/docs-YG2DQVHD.mjs +0 -77
  393. package/dist/docs-YG2DQVHD.mjs.map +0 -1
  394. package/dist/download-B4Z4TAXZ.js +0 -100
  395. package/dist/download-B4Z4TAXZ.js.map +0 -1
  396. package/dist/download-JPL3BO4H.mjs +0 -100
  397. package/dist/download-JPL3BO4H.mjs.map +0 -1
  398. package/dist/duplicate-IYUSDPY2.js +0 -45
  399. package/dist/duplicate-IYUSDPY2.js.map +0 -1
  400. package/dist/duplicate-OWG7P745.mjs +0 -45
  401. package/dist/duplicate-OWG7P745.mjs.map +0 -1
  402. package/dist/export-4A6ILAPM.mjs +0 -103
  403. package/dist/export-4A6ILAPM.mjs.map +0 -1
  404. package/dist/export-BUFJDFWC.js +0 -103
  405. package/dist/export-BUFJDFWC.js.map +0 -1
  406. package/dist/get-37E7GAV3.js +0 -76
  407. package/dist/get-37E7GAV3.js.map +0 -1
  408. package/dist/get-4D2MVW4T.js +0 -49
  409. package/dist/get-4D2MVW4T.js.map +0 -1
  410. package/dist/get-576OERBE.mjs +0 -66
  411. package/dist/get-576OERBE.mjs.map +0 -1
  412. package/dist/get-5GQP5EDN.mjs +0 -71
  413. package/dist/get-5GQP5EDN.mjs.map +0 -1
  414. package/dist/get-6DKM4MZL.mjs +0 -70
  415. package/dist/get-6DKM4MZL.mjs.map +0 -1
  416. package/dist/get-BO7KWXNS.js +0 -70
  417. package/dist/get-BO7KWXNS.js.map +0 -1
  418. package/dist/get-BQH2FJBV.mjs +0 -49
  419. package/dist/get-BQH2FJBV.mjs.map +0 -1
  420. package/dist/get-DCEQN75Y.mjs +0 -71
  421. package/dist/get-DCEQN75Y.mjs.map +0 -1
  422. package/dist/get-DEFHJ7CN.js +0 -94
  423. package/dist/get-DEFHJ7CN.js.map +0 -1
  424. package/dist/get-DX5U344V.mjs +0 -149
  425. package/dist/get-DX5U344V.mjs.map +0 -1
  426. package/dist/get-EWYM6FYK.js +0 -54
  427. package/dist/get-EWYM6FYK.js.map +0 -1
  428. package/dist/get-HY3N72VT.js +0 -71
  429. package/dist/get-HY3N72VT.js.map +0 -1
  430. package/dist/get-I2CSBUKB.js +0 -56
  431. package/dist/get-I2CSBUKB.js.map +0 -1
  432. package/dist/get-I6EY4PC6.mjs +0 -54
  433. package/dist/get-I6EY4PC6.mjs.map +0 -1
  434. package/dist/get-JDHZ2YUC.mjs +0 -85
  435. package/dist/get-JDHZ2YUC.mjs.map +0 -1
  436. package/dist/get-KSATLDNX.mjs +0 -56
  437. package/dist/get-KSATLDNX.mjs.map +0 -1
  438. package/dist/get-L5HUN5CE.mjs +0 -94
  439. package/dist/get-L5HUN5CE.mjs.map +0 -1
  440. package/dist/get-LIQYXM3J.mjs +0 -76
  441. package/dist/get-LIQYXM3J.mjs.map +0 -1
  442. package/dist/get-NICBHRKG.js +0 -51
  443. package/dist/get-NICBHRKG.js.map +0 -1
  444. package/dist/get-NXV4JPXT.mjs +0 -51
  445. package/dist/get-NXV4JPXT.mjs.map +0 -1
  446. package/dist/get-OH6XFEO7.js +0 -149
  447. package/dist/get-OH6XFEO7.js.map +0 -1
  448. package/dist/get-OW77HE3C.mjs +0 -67
  449. package/dist/get-OW77HE3C.mjs.map +0 -1
  450. package/dist/get-P5MUOCUP.js +0 -68
  451. package/dist/get-P5MUOCUP.js.map +0 -1
  452. package/dist/get-PHEE7JVL.mjs +0 -71
  453. package/dist/get-PHEE7JVL.mjs.map +0 -1
  454. package/dist/get-QYIM3DCN.mjs +0 -68
  455. package/dist/get-QYIM3DCN.mjs.map +0 -1
  456. package/dist/get-R6F56IVZ.js +0 -67
  457. package/dist/get-R6F56IVZ.js.map +0 -1
  458. package/dist/get-RWF3UWIF.js +0 -71
  459. package/dist/get-RWF3UWIF.js.map +0 -1
  460. package/dist/get-T6TAL2GB.js +0 -52
  461. package/dist/get-T6TAL2GB.js.map +0 -1
  462. package/dist/get-TNDPILF3.js +0 -85
  463. package/dist/get-TNDPILF3.js.map +0 -1
  464. package/dist/get-UV3YT4VH.js +0 -66
  465. package/dist/get-UV3YT4VH.js.map +0 -1
  466. package/dist/get-X4Q4RZQC.mjs +0 -52
  467. package/dist/get-X4Q4RZQC.mjs.map +0 -1
  468. package/dist/get-XIK4FEGG.js +0 -71
  469. package/dist/get-XIK4FEGG.js.map +0 -1
  470. package/dist/health-LCGP7UDT.js +0 -73
  471. package/dist/health-LCGP7UDT.js.map +0 -1
  472. package/dist/health-MCMRR6RQ.mjs +0 -73
  473. package/dist/health-MCMRR6RQ.mjs.map +0 -1
  474. package/dist/ingestion-templates-7TLETXIF.mjs +0 -169
  475. package/dist/ingestion-templates-7TLETXIF.mjs.map +0 -1
  476. package/dist/ingestion-templates-AT5AKWJB.js +0 -169
  477. package/dist/ingestion-templates-AT5AKWJB.js.map +0 -1
  478. package/dist/init-SQ5UUFDM.js +0 -16
  479. package/dist/init-SQ5UUFDM.js.map +0 -1
  480. package/dist/init-UGSR2T2P.mjs +0 -16
  481. package/dist/init-UGSR2T2P.mjs.map +0 -1
  482. package/dist/init-shell-2JQCBGMG.mjs +0 -71
  483. package/dist/init-shell-2JQCBGMG.mjs.map +0 -1
  484. package/dist/init-shell-UDTYTWJ4.js +0 -71
  485. package/dist/init-shell-UDTYTWJ4.js.map +0 -1
  486. package/dist/install-JNBCGN7Q.mjs +0 -191
  487. package/dist/install-JNBCGN7Q.mjs.map +0 -1
  488. package/dist/install-VBJKW5WP.js +0 -191
  489. package/dist/install-VBJKW5WP.js.map +0 -1
  490. package/dist/list-2ALO3KFG.js +0 -87
  491. package/dist/list-2ALO3KFG.js.map +0 -1
  492. package/dist/list-2YGHM2AD.mjs +0 -76
  493. package/dist/list-2YGHM2AD.mjs.map +0 -1
  494. package/dist/list-3XJ7VZN4.mjs +0 -75
  495. package/dist/list-3XJ7VZN4.mjs.map +0 -1
  496. package/dist/list-47FO2DBS.js +0 -80
  497. package/dist/list-47FO2DBS.js.map +0 -1
  498. package/dist/list-4JFVZU6U.mjs +0 -78
  499. package/dist/list-4JFVZU6U.mjs.map +0 -1
  500. package/dist/list-5DNRGKML.mjs +0 -80
  501. package/dist/list-5DNRGKML.mjs.map +0 -1
  502. package/dist/list-6CPPEJQV.js +0 -75
  503. package/dist/list-6CPPEJQV.js.map +0 -1
  504. package/dist/list-6UYNGBNA.mjs +0 -75
  505. package/dist/list-6UYNGBNA.mjs.map +0 -1
  506. package/dist/list-7F3TLLLA.js +0 -85
  507. package/dist/list-7F3TLLLA.js.map +0 -1
  508. package/dist/list-AVYXRPYR.mjs +0 -53
  509. package/dist/list-AVYXRPYR.mjs.map +0 -1
  510. package/dist/list-B5QJP7XO.mjs +0 -122
  511. package/dist/list-B5QJP7XO.mjs.map +0 -1
  512. package/dist/list-BI6VDR3L.mjs +0 -80
  513. package/dist/list-BI6VDR3L.mjs.map +0 -1
  514. package/dist/list-BIXZNQNL.mjs +0 -90
  515. package/dist/list-BIXZNQNL.mjs.map +0 -1
  516. package/dist/list-E2NKP4RN.mjs +0 -71
  517. package/dist/list-E2NKP4RN.mjs.map +0 -1
  518. package/dist/list-EX74E4W3.js +0 -82
  519. package/dist/list-EX74E4W3.js.map +0 -1
  520. package/dist/list-F7RK6OGO.js +0 -71
  521. package/dist/list-F7RK6OGO.js.map +0 -1
  522. package/dist/list-FQVXBMOV.js +0 -82
  523. package/dist/list-FQVXBMOV.js.map +0 -1
  524. package/dist/list-FTAHO7RS.js +0 -53
  525. package/dist/list-FTAHO7RS.js.map +0 -1
  526. package/dist/list-HJFLTMZZ.js +0 -80
  527. package/dist/list-HJFLTMZZ.js.map +0 -1
  528. package/dist/list-HZCZZBHB.js +0 -83
  529. package/dist/list-HZCZZBHB.js.map +0 -1
  530. package/dist/list-IIUX33VL.mjs +0 -86
  531. package/dist/list-IIUX33VL.mjs.map +0 -1
  532. package/dist/list-JFASUTLY.js +0 -78
  533. package/dist/list-JFASUTLY.js.map +0 -1
  534. package/dist/list-KJIOIAVI.mjs +0 -80
  535. package/dist/list-KJIOIAVI.mjs.map +0 -1
  536. package/dist/list-LKNXTUMI.js +0 -104
  537. package/dist/list-LKNXTUMI.js.map +0 -1
  538. package/dist/list-M34E5BJ5.js +0 -80
  539. package/dist/list-M34E5BJ5.js.map +0 -1
  540. package/dist/list-MX4GYY6P.mjs +0 -87
  541. package/dist/list-MX4GYY6P.mjs.map +0 -1
  542. package/dist/list-O5SCIB3L.js +0 -75
  543. package/dist/list-O5SCIB3L.js.map +0 -1
  544. package/dist/list-O6OJ5XHC.mjs +0 -72
  545. package/dist/list-O6OJ5XHC.mjs.map +0 -1
  546. package/dist/list-ODC5L7LD.mjs +0 -83
  547. package/dist/list-ODC5L7LD.mjs.map +0 -1
  548. package/dist/list-Q5WBWW4Q.mjs +0 -82
  549. package/dist/list-Q5WBWW4Q.mjs.map +0 -1
  550. package/dist/list-QA563QDB.js +0 -90
  551. package/dist/list-QA563QDB.js.map +0 -1
  552. package/dist/list-RJFCSUUQ.mjs +0 -111
  553. package/dist/list-RJFCSUUQ.mjs.map +0 -1
  554. package/dist/list-RMHLZBQG.js +0 -76
  555. package/dist/list-RMHLZBQG.js.map +0 -1
  556. package/dist/list-SRYZRJCV.js +0 -111
  557. package/dist/list-SRYZRJCV.js.map +0 -1
  558. package/dist/list-TOSZ7BU7.js +0 -86
  559. package/dist/list-TOSZ7BU7.js.map +0 -1
  560. package/dist/list-UQQ2PAU3.mjs +0 -104
  561. package/dist/list-UQQ2PAU3.mjs.map +0 -1
  562. package/dist/list-V2WO7LLU.js +0 -72
  563. package/dist/list-V2WO7LLU.js.map +0 -1
  564. package/dist/list-VA5A3CCK.mjs +0 -75
  565. package/dist/list-VA5A3CCK.mjs.map +0 -1
  566. package/dist/list-X6EIZ5MP.js +0 -75
  567. package/dist/list-X6EIZ5MP.js.map +0 -1
  568. package/dist/list-YUYYYQ7E.js +0 -122
  569. package/dist/list-YUYYYQ7E.js.map +0 -1
  570. package/dist/list-Z4GK3RXW.js +0 -78
  571. package/dist/list-Z4GK3RXW.js.map +0 -1
  572. package/dist/list-ZBKYVBPN.mjs +0 -85
  573. package/dist/list-ZBKYVBPN.mjs.map +0 -1
  574. package/dist/list-ZDLAHVOP.mjs +0 -78
  575. package/dist/list-ZDLAHVOP.mjs.map +0 -1
  576. package/dist/list-ZONPFTHT.mjs +0 -82
  577. package/dist/list-ZONPFTHT.mjs.map +0 -1
  578. package/dist/login-UWJ4SQ3T.mjs +0 -279
  579. package/dist/login-UWJ4SQ3T.mjs.map +0 -1
  580. package/dist/login-Y3TEPZOC.js +0 -279
  581. package/dist/login-Y3TEPZOC.js.map +0 -1
  582. package/dist/logout-RTWQU22E.mjs +0 -181
  583. package/dist/logout-RTWQU22E.mjs.map +0 -1
  584. package/dist/logout-TXOAFCK7.js +0 -181
  585. package/dist/logout-TXOAFCK7.js.map +0 -1
  586. package/dist/open-2IGFGDDB.mjs +0 -47
  587. package/dist/open-2IGFGDDB.mjs.map +0 -1
  588. package/dist/open-TCBDPKWM.js +0 -47
  589. package/dist/open-TCBDPKWM.js.map +0 -1
  590. package/dist/pull-3MXPXKVF.mjs +0 -27
  591. package/dist/pull-3MXPXKVF.mjs.map +0 -1
  592. package/dist/pull-5RX2YX5P.js +0 -27
  593. package/dist/pull-5RX2YX5P.js.map +0 -1
  594. package/dist/push-7L3NXCCJ.mjs +0 -27
  595. package/dist/push-7L3NXCCJ.mjs.map +0 -1
  596. package/dist/push-QPS47QAN.js +0 -27
  597. package/dist/push-QPS47QAN.js.map +0 -1
  598. package/dist/query-2PAEPPLR.js +0 -122
  599. package/dist/query-2PAEPPLR.js.map +0 -1
  600. package/dist/query-FJ4JJLRH.mjs +0 -122
  601. package/dist/query-FJ4JJLRH.mjs.map +0 -1
  602. package/dist/records-add-K6ZRY3MM.mjs +0 -98
  603. package/dist/records-add-K6ZRY3MM.mjs.map +0 -1
  604. package/dist/records-add-OQK2SWSP.js +0 -98
  605. package/dist/records-add-OQK2SWSP.js.map +0 -1
  606. package/dist/records-delete-DPNRLQRU.mjs +0 -46
  607. package/dist/records-delete-DPNRLQRU.mjs.map +0 -1
  608. package/dist/records-delete-UC3XJNIF.js +0 -46
  609. package/dist/records-delete-UC3XJNIF.js.map +0 -1
  610. package/dist/records-list-AC7ADD4R.js +0 -89
  611. package/dist/records-list-AC7ADD4R.js.map +0 -1
  612. package/dist/records-list-EEDFGR5M.mjs +0 -89
  613. package/dist/records-list-EEDFGR5M.mjs.map +0 -1
  614. package/dist/records-update-R5G7AOMD.js +0 -53
  615. package/dist/records-update-R5G7AOMD.js.map +0 -1
  616. package/dist/records-update-V23XILMF.mjs +0 -53
  617. package/dist/records-update-V23XILMF.mjs.map +0 -1
  618. package/dist/remove-JS3XWII2.mjs +0 -114
  619. package/dist/remove-JS3XWII2.mjs.map +0 -1
  620. package/dist/remove-QU7WDHPI.js +0 -114
  621. package/dist/remove-QU7WDHPI.js.map +0 -1
  622. package/dist/rename-AQZWJOSA.js +0 -42
  623. package/dist/rename-AQZWJOSA.js.map +0 -1
  624. package/dist/rename-NX4OMJDP.mjs +0 -42
  625. package/dist/rename-NX4OMJDP.mjs.map +0 -1
  626. package/dist/request-increase-FLFEPGIC.js +0 -37
  627. package/dist/request-increase-FLFEPGIC.js.map +0 -1
  628. package/dist/request-increase-NHM27JXH.mjs +0 -37
  629. package/dist/request-increase-NHM27JXH.mjs.map +0 -1
  630. package/dist/restore-HTAPXIPP.js +0 -73
  631. package/dist/restore-HTAPXIPP.js.map +0 -1
  632. package/dist/restore-R5LY5MWO.mjs +0 -73
  633. package/dist/restore-R5LY5MWO.mjs.map +0 -1
  634. package/dist/revoke-2JIUV7JE.mjs +0 -41
  635. package/dist/revoke-2JIUV7JE.mjs.map +0 -1
  636. package/dist/revoke-GH3YEBRW.js +0 -44
  637. package/dist/revoke-GH3YEBRW.js.map +0 -1
  638. package/dist/revoke-MS5OZQHS.js +0 -41
  639. package/dist/revoke-MS5OZQHS.js.map +0 -1
  640. package/dist/revoke-TQJVF3BL.mjs +0 -44
  641. package/dist/revoke-TQJVF3BL.mjs.map +0 -1
  642. package/dist/rotate-QUP62JOC.mjs +0 -52
  643. package/dist/rotate-QUP62JOC.mjs.map +0 -1
  644. package/dist/rotate-U3RJTWOO.js +0 -52
  645. package/dist/rotate-U3RJTWOO.js.map +0 -1
  646. package/dist/run-2KC3XYCD.js +0 -77
  647. package/dist/run-2KC3XYCD.js.map +0 -1
  648. package/dist/run-35JPAOLO.mjs +0 -83
  649. package/dist/run-35JPAOLO.mjs.map +0 -1
  650. package/dist/run-5YPCH5US.mjs +0 -77
  651. package/dist/run-5YPCH5US.mjs.map +0 -1
  652. package/dist/run-6BUAGYXY.mjs +0 -142
  653. package/dist/run-6BUAGYXY.mjs.map +0 -1
  654. package/dist/run-BB27OOPE.js +0 -131
  655. package/dist/run-BB27OOPE.js.map +0 -1
  656. package/dist/run-BPTFP3HA.mjs +0 -144
  657. package/dist/run-BPTFP3HA.mjs.map +0 -1
  658. package/dist/run-DVPUVKTV.mjs +0 -131
  659. package/dist/run-DVPUVKTV.mjs.map +0 -1
  660. package/dist/run-GJEOP5LP.js +0 -144
  661. package/dist/run-GJEOP5LP.js.map +0 -1
  662. package/dist/run-JLC2AGGB.js +0 -83
  663. package/dist/run-JLC2AGGB.js.map +0 -1
  664. package/dist/run-P5B7FK6K.js +0 -142
  665. package/dist/run-P5B7FK6K.js.map +0 -1
  666. package/dist/search-FMFV6U6P.mjs +0 -108
  667. package/dist/search-FMFV6U6P.mjs.map +0 -1
  668. package/dist/search-LEF4NLQJ.js +0 -108
  669. package/dist/search-LEF4NLQJ.js.map +0 -1
  670. package/dist/set-7Q2IUUPV.mjs +0 -105
  671. package/dist/set-7Q2IUUPV.mjs.map +0 -1
  672. package/dist/set-DYXQGJNE.js +0 -59
  673. package/dist/set-DYXQGJNE.js.map +0 -1
  674. package/dist/set-FVXIBW4X.js +0 -105
  675. package/dist/set-FVXIBW4X.js.map +0 -1
  676. package/dist/set-PMA5UWDK.mjs +0 -59
  677. package/dist/set-PMA5UWDK.mjs.map +0 -1
  678. package/dist/status-DS55UJ7O.mjs +0 -153
  679. package/dist/status-DS55UJ7O.mjs.map +0 -1
  680. package/dist/status-GSPWZ255.mjs +0 -56
  681. package/dist/status-GSPWZ255.mjs.map +0 -1
  682. package/dist/status-KH64EWPP.js +0 -153
  683. package/dist/status-KH64EWPP.js.map +0 -1
  684. package/dist/status-M4GI2HR3.js +0 -56
  685. package/dist/status-M4GI2HR3.js.map +0 -1
  686. package/dist/status-OAD2U66Z.js +0 -122
  687. package/dist/status-OAD2U66Z.js.map +0 -1
  688. package/dist/status-U3EPMBTN.mjs +0 -122
  689. package/dist/status-U3EPMBTN.mjs.map +0 -1
  690. package/dist/sync-PKDE2D7V.js +0 -132
  691. package/dist/sync-PKDE2D7V.js.map +0 -1
  692. package/dist/sync-XV5HX5TO.mjs +0 -132
  693. package/dist/sync-XV5HX5TO.mjs.map +0 -1
  694. package/dist/tail-CKK6GFNI.js +0 -108
  695. package/dist/tail-CKK6GFNI.js.map +0 -1
  696. package/dist/tail-D26CEKSH.mjs +0 -108
  697. package/dist/tail-D26CEKSH.mjs.map +0 -1
  698. package/dist/unset-FGAQM4WA.js +0 -107
  699. package/dist/unset-FGAQM4WA.js.map +0 -1
  700. package/dist/unset-TVSHRR64.mjs +0 -107
  701. package/dist/unset-TVSHRR64.mjs.map +0 -1
  702. package/dist/update-337XCLM7.mjs +0 -65
  703. package/dist/update-337XCLM7.mjs.map +0 -1
  704. package/dist/update-43JHGSN7.js +0 -106
  705. package/dist/update-43JHGSN7.js.map +0 -1
  706. package/dist/update-4KGPCVCD.js +0 -71
  707. package/dist/update-4KGPCVCD.js.map +0 -1
  708. package/dist/update-5DIMZPJB.mjs +0 -71
  709. package/dist/update-5DIMZPJB.mjs.map +0 -1
  710. package/dist/update-5WVIKR5E.js +0 -48
  711. package/dist/update-5WVIKR5E.js.map +0 -1
  712. package/dist/update-AAZVLFRJ.js +0 -75
  713. package/dist/update-AAZVLFRJ.js.map +0 -1
  714. package/dist/update-APD7MSPV.js +0 -61
  715. package/dist/update-APD7MSPV.js.map +0 -1
  716. package/dist/update-AR7L7TOZ.js +0 -48
  717. package/dist/update-AR7L7TOZ.js.map +0 -1
  718. package/dist/update-C3I3BHWG.js +0 -63
  719. package/dist/update-C3I3BHWG.js.map +0 -1
  720. package/dist/update-CDBNRXSO.mjs +0 -106
  721. package/dist/update-CDBNRXSO.mjs.map +0 -1
  722. package/dist/update-CXYYWVNO.mjs +0 -75
  723. package/dist/update-CXYYWVNO.mjs.map +0 -1
  724. package/dist/update-DUJU3A4R.mjs +0 -48
  725. package/dist/update-DUJU3A4R.mjs.map +0 -1
  726. package/dist/update-E3GH3WEX.mjs +0 -83
  727. package/dist/update-E3GH3WEX.mjs.map +0 -1
  728. package/dist/update-HHGQ2DVM.js +0 -83
  729. package/dist/update-HHGQ2DVM.js.map +0 -1
  730. package/dist/update-IFDJZ6LW.js +0 -66
  731. package/dist/update-IFDJZ6LW.js.map +0 -1
  732. package/dist/update-JEGVDVSK.js +0 -51
  733. package/dist/update-JEGVDVSK.js.map +0 -1
  734. package/dist/update-JL3MKZXC.mjs +0 -66
  735. package/dist/update-JL3MKZXC.mjs.map +0 -1
  736. package/dist/update-JUTNNHSA.mjs +0 -51
  737. package/dist/update-JUTNNHSA.mjs.map +0 -1
  738. package/dist/update-MBBSJQJL.mjs +0 -79
  739. package/dist/update-MBBSJQJL.mjs.map +0 -1
  740. package/dist/update-NOYJVXCB.mjs +0 -63
  741. package/dist/update-NOYJVXCB.mjs.map +0 -1
  742. package/dist/update-OFUQFYBD.js +0 -76
  743. package/dist/update-OFUQFYBD.js.map +0 -1
  744. package/dist/update-OZC2S3BC.js +0 -79
  745. package/dist/update-OZC2S3BC.js.map +0 -1
  746. package/dist/update-P4PNDOMU.mjs +0 -63
  747. package/dist/update-P4PNDOMU.mjs.map +0 -1
  748. package/dist/update-RJFENG32.mjs +0 -48
  749. package/dist/update-RJFENG32.mjs.map +0 -1
  750. package/dist/update-W2RQW53I.js +0 -65
  751. package/dist/update-W2RQW53I.js.map +0 -1
  752. package/dist/update-WFGCL4JS.mjs +0 -61
  753. package/dist/update-WFGCL4JS.mjs.map +0 -1
  754. package/dist/update-WTIR2BYE.js +0 -63
  755. package/dist/update-WTIR2BYE.js.map +0 -1
  756. package/dist/update-X7J6WRG3.mjs +0 -76
  757. package/dist/update-X7J6WRG3.mjs.map +0 -1
  758. package/dist/upload-7O3K4YAL.mjs +0 -80
  759. package/dist/upload-7O3K4YAL.mjs.map +0 -1
  760. package/dist/upload-DJA44RJ3.js +0 -80
  761. package/dist/upload-DJA44RJ3.js.map +0 -1
  762. package/dist/versions-2JD6EKCA.js +0 -85
  763. package/dist/versions-2JD6EKCA.js.map +0 -1
  764. package/dist/versions-HXI6GAD2.mjs +0 -85
  765. package/dist/versions-HXI6GAD2.mjs.map +0 -1
  766. package/dist/whoami-EI52YRCH.js +0 -30
  767. package/dist/whoami-EI52YRCH.js.map +0 -1
  768. package/dist/whoami-KGRA4QEY.mjs +0 -30
  769. package/dist/whoami-KGRA4QEY.mjs.map +0 -1
  770. package/dist/wrap-LBMHL6N6.mjs +0 -33
  771. package/dist/wrap-LBMHL6N6.mjs.map +0 -1
  772. package/dist/wrap-O7DQWEVA.js +0 -33
  773. package/dist/wrap-O7DQWEVA.js.map +0 -1
  774. /package/dist/{chunk-RIPASL56.mjs.map → chunk-2O4ILSP5.mjs.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  attributes_exports
3
- } from "./chunk-PONU4KJX.mjs";
3
+ } from "./chunk-L5KBRKHS.mjs";
4
4
 
5
5
  // src/observability-sdk/processors/filterable-batch-span-processor.ts
6
6
  import {
@@ -72,4 +72,4 @@ export {
72
72
  FilterableBatchSpanProcessor,
73
73
  DataCapturePresets
74
74
  };
75
- //# sourceMappingURL=chunk-RIPASL56.mjs.map
75
+ //# sourceMappingURL=chunk-2O4ILSP5.mjs.map
@@ -8,12 +8,10 @@ import {
8
8
  ATTR_LANGWATCH_PROMPT_VERSION_ID,
9
9
  ATTR_LANGWATCH_PROMPT_VERSION_NUMBER,
10
10
  ATTR_LANGWATCH_RAG_CONTEXTS,
11
- ATTR_LANGWATCH_SPAN_TYPE
12
- } from "./chunk-PONU4KJX.mjs";
13
- import {
11
+ ATTR_LANGWATCH_SPAN_TYPE,
14
12
  __spreadProps,
15
13
  __spreadValues
16
- } from "./chunk-BAX4W3AY.mjs";
14
+ } from "./chunk-L5KBRKHS.mjs";
17
15
 
18
16
  // src/observability-sdk/span/types.ts
19
17
  var INPUT_OUTPUT_TYPES = [
@@ -151,6 +149,45 @@ var chatRichContentSchema = z.union([
151
149
  value: z.string(),
152
150
  mimeType: z.string().optional()
153
151
  })
152
+ }),
153
+ /**
154
+ * AI-SDK image part. `image` is a data: URI pre-extraction, a
155
+ * /api/files/{projectId}/{id} reference after ingest-side extraction, or an
156
+ * external http(s) URL (passed through, never re-hosted). This is the shape
157
+ * the typescript scenario SDK ships for image attachments in simulated user
158
+ * messages (scenario docs: multimodal-images).
159
+ */
160
+ z.object({
161
+ type: z.literal("image"),
162
+ image: z.string(),
163
+ mediaType: z.string().optional()
164
+ }),
165
+ /**
166
+ * AI-SDK file part. Non-audio mediaTypes are externalized to a `binary`
167
+ * reference at ingest; audio/* mediaTypes route through the `input_audio`
168
+ * externalization path (see `visitContentPart`).
169
+ */
170
+ z.object({
171
+ type: z.literal("file"),
172
+ mediaType: z.string(),
173
+ data: z.string().optional(),
174
+ url: z.string().optional(),
175
+ filename: z.string().optional()
176
+ }),
177
+ /**
178
+ * OpenAI ChatCompletion file part (scenario docs: multimodal-files).
179
+ * `file_data` is a data: URI or raw base64; `file_id` references a file
180
+ * hosted on the provider side and carries no bytes, so it passes through
181
+ * extraction unchanged. Externalized at ingest to a `binary` reference
182
+ * preserving the filename.
183
+ */
184
+ z.object({
185
+ type: z.literal("file"),
186
+ file: z.object({
187
+ file_data: z.string().optional(),
188
+ file_id: z.string().optional(),
189
+ filename: z.string().optional()
190
+ })
154
191
  })
155
192
  ]);
156
193
  var chatMessageSchema = z.object({
@@ -957,4 +994,4 @@ export {
957
994
  getLangWatchTracer,
958
995
  getLangWatchTracerFromProvider
959
996
  };
960
- //# sourceMappingURL=chunk-2V5FBEY3.mjs.map
997
+ //# sourceMappingURL=chunk-3QHURXIZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/observability-sdk/span/types.ts","../src/internal/generated/types/tracer.ts","../src/observability-sdk/evaluation/index.ts","../src/observability-sdk/span/implementation.ts","../src/observability-sdk/span/input-output.ts","../src/observability-sdk/tracer/implementation.ts"],"sourcesContent":["import {\n type AttributeValue,\n type Span,\n type SpanOptions,\n} from \"@opentelemetry/api\";\nimport {\n type SpanInputOutput,\n type ChatMessage,\n} from \"../../internal/generated/types/tracer\";\nimport { type Prompt } from \"@/client-sdk/services/prompts\";\nimport { type AddEvaluationParams } from \"../evaluation\";\n\n\n/**\n * Simple chat message type with just role and content\n */\nexport interface SimpleChatMessage {\n role: string;\n content: unknown;\n}\n\n/**\n * Valid input/output types for span data\n */\nexport const INPUT_OUTPUT_TYPES = [\n \"text\",\n \"raw\",\n \"chat_messages\",\n \"list\",\n \"json\",\n \"guardrail_result\",\n \"evaluation_result\"\n] as const;\n\nexport type InputOutputType = typeof INPUT_OUTPUT_TYPES[number];\n\n\nexport type JsonSerializable =\n | string\n | number\n | boolean\n | null\n | JsonSerializable[]\n | Record<string, any>;\n\n// Import attributes types from parent\nimport type { SemConvAttributes } from \"../semconv\";\n\n/**\n * Supported types of spans for LangWatch observability. These types categorize the nature of the span for downstream analysis and visualization.\n *\n * @example\n * import { spanTypes, SpanType } from './span';\n * const myType: SpanType = 'llm';\n */\nexport const spanTypes = [\n \"span\",\n \"llm\",\n \"chain\",\n \"tool\",\n \"agent\",\n \"guardrail\",\n \"evaluation\",\n \"rag\",\n \"prompt\",\n \"workflow\",\n \"component\",\n \"module\",\n \"server\",\n \"client\",\n \"producer\",\n \"consumer\",\n \"task\",\n \"unknown\",\n] as const;\n\nexport type SpanType = (typeof spanTypes)[number];\n\n/**\n * Context for a RAG (Retrieval-Augmented Generation) span.\n *\n * This structure is used to record which document and chunk were retrieved and used as context for a generation.\n *\n * @property document_id - Unique identifier for the source document.\n * @property chunk_id - Unique identifier for the chunk within the document.\n * @property content - The actual content of the chunk provided to the model.\n *\n * @example\n * const ragContext: LangWatchSpanRAGContext = {\n * document_id: 'doc-123',\n * chunk_id: 'chunk-456',\n * content: 'Relevant passage from the document.'\n * };\n */\nexport interface LangWatchSpanRAGContext {\n document_id: string;\n chunk_id: string;\n content: string;\n}\n\n/**\n * Metrics for a LangWatch span.\n *\n * @property promptTokens - The number of prompt tokens used.\n * @property completionTokens - The number of completion tokens used.\n * @property cost - The cost of the span.\n */\nexport interface LangWatchSpanMetrics {\n /** The number of prompt tokens used */\n promptTokens?: number;\n /** The number of completion tokens used */\n completionTokens?: number;\n /** The cost of the span */\n cost?: number;\n}\n\n/**\n * Options for creating a LangWatch span.\n *\n * @param attributes - Additional attributes to add to the span.\n */\nexport interface LangWatchSpanOptions extends SpanOptions {\n /** Additional attributes to add to the span. */\n attributes?: SemConvAttributes;\n}\n\n/**\n * Extension of OpenTelemetry's Span with LangWatch-specific helpers for LLM, RAG, and GenAI tracing.\n *\n * This interface provides ergonomic methods for recording structured LLM/GenAI data, such as inputs, outputs, RAG contexts, and message events.\n *\n * All methods return `this` for chaining.\n *\n * @example\n * const span = createLangWatchSpan(otelSpan);\n * span\n * .setType('llm')\n * .setInput({ prompt: 'Hello' })\n * .setOutput('Hi!')\n * .addGenAIUserMessageEvent({ content: 'Hello' })\n * .addGenAIAssistantMessageEvent({ content: 'Hi!' });\n */\nexport interface LangWatchSpan extends Span {\n /**\n * Record a manual evaluation result on this span.\n *\n * This emits a `langwatch.evaluation.custom` OpenTelemetry span event whose\n * `json_encoded_event` attribute carries the evaluation payload. It matches\n * the Python SDK's `span.add_evaluation(...)` exactly, so the LangWatch\n * backend parses both identically.\n *\n * @param params - The evaluation parameters. Only `name` is required; see\n * {@link AddEvaluationParams}. `status` defaults to `\"processed\"`.\n * @returns this\n *\n * @example\n * ```typescript\n * span.addEvaluation({\n * name: \"response_quality\",\n * passed: true,\n * score: 0.95,\n * details: \"High quality response\",\n * });\n * ```\n */\n addEvaluation(params: AddEvaluationParams): this;\n\n /**\n * @deprecated Use {@link LangWatchSpan.addEvaluation} instead. Alias kept for\n * backward compatibility with earlier documentation.\n *\n * @param params - The evaluation parameters. See {@link AddEvaluationParams}.\n * @returns this\n */\n recordEvaluation(params: AddEvaluationParams): this;\n\n /**\n * Set multiple attributes for the span.\n *\n * @param attributes - The attributes object\n * @returns this\n */\n setAttributes(attributes: SemConvAttributes): this;\n\n /**\n * Set a single attribute for the span.\n *\n * @param key - The attribute key\n * @param value - The attribute value\n * @returns this\n */\n setAttribute(key: keyof SemConvAttributes, value: AttributeValue): this;\n\n /**\n * Set the type of the span (e.g., 'llm', 'rag', 'tool', etc).\n *\n * This is used for downstream filtering and analytics.\n *\n * @param type - The span type (see SpanType)\n * @returns this\n */\n setType(type: SpanType): this;\n\n /**\n * Set the request model name for the span.\n *\n * This is typically the model name sent in the API request (e.g., 'gpt-4', 'claude-3').\n *\n * @param model - The request model name\n * @returns this\n */\n setRequestModel(model: string): this;\n /**\n * Set the response model name for the span.\n *\n * This is the model name returned in the API response, if different from the request.\n *\n * @param model - The response model name\n * @returns this\n */\n setResponseModel(model: string): this;\n\n /**\n * Set multiple RAG contexts for the span.\n *\n * Use this to record all retrieved documents/chunks used as context for a generation.\n *\n * @param ragContexts - Array of RAG context objects\n * @returns this\n */\n setRAGContexts(ragContexts: LangWatchSpanRAGContext[]): this;\n /**\n * Set a single RAG context for the span.\n *\n * Use this if only one context was retrieved.\n *\n * @param ragContext - The RAG context object\n * @returns this\n */\n setRAGContext(ragContext: LangWatchSpanRAGContext): this;\n\n /**\n * Set the metrics for the span.\n *\n * @param metrics - The metrics object\n * @returns this\n */\n setMetrics(metrics: LangWatchSpanMetrics): this;\n\n /**\n * Set the selected prompt for the span. This will attach this prompt to the trace. If\n * this is set on multiple spans, the last one will be used.\n *\n * @param prompt - The prompt object\n * @returns this\n */\n setSelectedPrompt(prompt: Prompt): this;\n\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"text\" type\n * @param input - String input value\n * @returns this\n */\n setInput(type: \"text\", input: string): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"raw\" type\n * @param input - Any input value\n * @returns this\n */\n setInput(type: \"raw\", input: unknown): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"chat_messages\" type\n * @param input - Chat messages array (supports both ChatMessage[] and SimpleChatMessage[])\n * @returns this\n */\n setInput(type: \"chat_messages\", input: ChatMessage[] | SimpleChatMessage[]): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"list\" type\n * @param input - SpanInputOutput array\n * @returns this\n */\n setInput(type: \"list\", input: SpanInputOutput[]): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"json\" type\n * @param input - Any JSON-serializable value\n * @returns this\n */\n setInput(type: \"json\", input: unknown): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"guardrail_result\" type\n * @param input - Guardrail result value\n * @returns this\n */\n setInput(type: \"guardrail_result\", input: unknown): this;\n /**\n * Record the input to the span with explicit type control.\n *\n * @param type - Force as \"evaluation_result\" type\n * @param input - Evaluation result value\n * @returns this\n */\n setInput(type: \"evaluation_result\", input: unknown): this;\n /**\n * Record the input to the span with automatic type detection.\n *\n * Automatically detects: strings → text, ChatMessage[] → chat_messages,\n * arrays → list, objects → json.\n *\n * @param input - The input value (auto-detected type)\n * @returns this\n */\n setInput(input: unknown): this;\n\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"text\" type\n * @param output - String output value\n * @returns this\n */\n setOutput(type: \"text\", output: string): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"raw\" type\n * @param output - Any output value\n * @returns this\n */\n setOutput(type: \"raw\", output: unknown): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"chat_messages\" type\n * @param output - Chat messages array (supports both ChatMessage[] and SimpleChatMessage[])\n * @returns this\n */\n setOutput(type: \"chat_messages\", output: ChatMessage[] | SimpleChatMessage[]): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"list\" type\n * @param output - SpanInputOutput array\n * @returns this\n */\n setOutput(type: \"list\", output: SpanInputOutput[]): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"json\" type\n * @param output - Any JSON-serializable value\n * @returns this\n */\n setOutput(type: \"json\", output: unknown): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"guardrail_result\" type\n * @param output - Guardrail result value\n * @returns this\n */\n setOutput(type: \"guardrail_result\", output: unknown): this;\n /**\n * Record the output from the span with explicit type control.\n *\n * @param type - Force as \"evaluation_result\" type\n * @param output - Evaluation result value\n * @returns this\n */\n setOutput(type: \"evaluation_result\", output: unknown): this;\n /**\n * Record the output from the span with automatic type detection.\n *\n * Automatically detects: strings → text, ChatMessage[] → chat_messages,\n * arrays → list, objects → json.\n *\n * @param output - The output value (auto-detected type)\n * @returns this\n */\n setOutput(output: unknown): this;\n\n // /**\n // * Set the evaluation output for the span.\n // *\n // * @param guardrail - Whether the evaluation is a guardrail\n // * @param output - The evaluation result\n // * @returns this\n // */\n // setOutputEvaluation(guardrail: boolean, output: EvaluationResultModel): this;\n}\n","import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Tracer schemas (Zod-first). Every shared trace/span/evaluation shape is\n// defined as a Zod schema and its TypeScript type is inferred with z.infer,\n// so the schema and the type can never drift apart. The few ElasticSearch and\n// dataset shapes that are pure structural transforms (Omit/Partial of the\n// schemas above) stay as inferred-type derivations.\n// ---------------------------------------------------------------------------\n\nconst chatRoleSchema = z.union([\n z.literal(\"system\"),\n z.literal(\"user\"),\n z.literal(\"assistant\"),\n z.literal(\"function\"),\n z.literal(\"tool\"),\n z.literal(\"unknown\"),\n]);\n\ntype ChatRole = z.infer<typeof chatRoleSchema>;\n\nconst functionCallSchema = z.object({\n name: z.string().optional(),\n arguments: z.string().optional(),\n});\n\ntype FunctionCall = z.infer<typeof functionCallSchema>;\n\nconst toolCallSchema = z.object({\n id: z.string(),\n type: z.string(),\n function: functionCallSchema,\n});\n\ntype ToolCall = z.infer<typeof toolCallSchema>;\n\nexport const rAGChunkSchema = z.object({\n document_id: z.string().optional().nullable(),\n chunk_id: z.string().optional().nullable(),\n content: z.union([\n z.string(),\n z.record(z.string(), z.any()),\n z.array(z.any()),\n ]),\n});\n\nexport type RAGChunk = z.infer<typeof rAGChunkSchema>;\n\nexport const contextsSchema = z.object({\n traceId: z.string(),\n contexts: z.array(rAGChunkSchema),\n});\n\nexport type Contexts = z.infer<typeof contextsSchema>;\n\nexport const chatRichContentSchema = z.union([\n z.object({\n type: z.literal(\"text\"),\n text: z.string().optional(),\n /** pi-ai uses `content` instead of `text` inside text blocks */\n content: z.string().optional(),\n }),\n z.object({\n text: z.string(),\n }),\n z.object({\n type: z.literal(\"image_url\"),\n image_url: z\n .object({\n url: z.string(),\n detail: z\n .union([z.literal(\"auto\"), z.literal(\"low\"), z.literal(\"high\")])\n .optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.literal(\"tool_call\"),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n args: z.string().optional(),\n }),\n z.object({\n type: z.literal(\"tool_result\"),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n result: z.any().optional(),\n }),\n /**\n * AG-UI binary content part. Used for audio/image/video/file attachments.\n * Mutually-exclusive payload: exactly one of `data` (inline base64), `url`\n * (already-externalized reference), or `id` (stored_objects id) is present.\n * After ingest-side extraction (stored-objects pipeline), inline `data` is\n * rewritten to `id` + `url` pointing at /api/files/{id}.\n */\n z.object({\n type: z.literal(\"binary\"),\n mimeType: z.string(),\n data: z.string().optional(),\n url: z.string().optional(),\n id: z.string().optional(),\n filename: z.string().optional(),\n }),\n /**\n * OpenAI Realtime `input_audio` content part. Pre-extraction the payload is\n * inline base64 (`{ data, format }`); after ingest-side stored-objects\n * extraction it is rewritten to a reference (`{ url, mimeType }`) pointing at\n * /api/files/{projectId}/{id}. Every field is optional so this validates both\n * shapes. Mirrors `inputAudioContentPartSchema` in the scenario event schemas.\n */\n z.object({\n type: z.literal(\"input_audio\"),\n input_audio: z.object({\n data: z.string().optional(),\n format: z.string().optional(),\n url: z.string().optional(),\n mimeType: z.string().optional(),\n id: z.string().optional(),\n }),\n }),\n /**\n * AG-UI media `audio` content part. A typed `source` carries either an\n * externalized `url` or inline base64 `data`, with an optional `mimeType`.\n * Shared shape with image/video/document media parts (see `visitContentPart`).\n */\n z.object({\n type: z.literal(\"audio\"),\n source: z.object({\n type: z.union([z.literal(\"url\"), z.literal(\"data\")]),\n value: z.string(),\n mimeType: z.string().optional(),\n }),\n }),\n /**\n * AI-SDK image part. `image` is a data: URI pre-extraction, a\n * /api/files/{projectId}/{id} reference after ingest-side extraction, or an\n * external http(s) URL (passed through, never re-hosted). This is the shape\n * the typescript scenario SDK ships for image attachments in simulated user\n * messages (scenario docs: multimodal-images).\n */\n z.object({\n type: z.literal(\"image\"),\n image: z.string(),\n mediaType: z.string().optional(),\n }),\n /**\n * AI-SDK file part. Non-audio mediaTypes are externalized to a `binary`\n * reference at ingest; audio/* mediaTypes route through the `input_audio`\n * externalization path (see `visitContentPart`).\n */\n z.object({\n type: z.literal(\"file\"),\n mediaType: z.string(),\n data: z.string().optional(),\n url: z.string().optional(),\n filename: z.string().optional(),\n }),\n /**\n * OpenAI ChatCompletion file part (scenario docs: multimodal-files).\n * `file_data` is a data: URI or raw base64; `file_id` references a file\n * hosted on the provider side and carries no bytes, so it passes through\n * extraction unchanged. Externalized at ingest to a `binary` reference\n * preserving the filename.\n */\n z.object({\n type: z.literal(\"file\"),\n file: z.object({\n file_data: z.string().optional(),\n file_id: z.string().optional(),\n filename: z.string().optional(),\n }),\n }),\n]);\n\nexport type ChatRichContent = z.infer<typeof chatRichContentSchema>;\n\nexport const chatMessageSchema = z.object({\n role: chatRoleSchema.optional(),\n content: z\n .union([z.string(), z.array(chatRichContentSchema)])\n .optional()\n .nullable(),\n /** Vercel AI SDK / pi-ai use `parts` instead of `content` */\n parts: z.array(chatRichContentSchema).optional(),\n function_call: functionCallSchema.optional().nullable(),\n tool_calls: z.array(toolCallSchema).optional().nullable(),\n tool_call_id: z.string().optional().nullable(),\n name: z.string().optional().nullable(),\n reasoning_content: z.string().optional().nullable(),\n});\n\nexport type ChatMessage = z.infer<typeof chatMessageSchema>;\n\nconst typedValueTextSchema = z.object({\n type: z.literal(\"text\"),\n value: z.string(),\n});\n\ntype TypedValueText = z.infer<typeof typedValueTextSchema>;\n\nconst typedValueRawSchema = z.object({\n type: z.literal(\"raw\"),\n value: z.string(),\n});\n\ntype TypedValueRaw = z.infer<typeof typedValueRawSchema>;\n\nconst jSONSerializableSchema = z\n .union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.any()),\n z.array(z.any()),\n ])\n .nullable();\n\nexport const typedValueJsonSchema = z.object({\n type: z.literal(\"json\"),\n value: jSONSerializableSchema,\n});\n\nexport type TypedValueJson = z.infer<typeof typedValueJsonSchema>;\n\nexport const moneySchema = z.object({\n currency: z.string(),\n amount: z.number(),\n});\n\nexport type Money = z.infer<typeof moneySchema>;\n\nexport const evaluationResultSchema = z.object({\n status: z.union([\n z.literal(\"processed\"),\n z.literal(\"skipped\"),\n z.literal(\"error\"),\n ]),\n passed: z.boolean().optional().nullable(),\n score: z.number().optional().nullable(),\n label: z.string().optional().nullable(),\n details: z.string().optional().nullable(),\n cost: moneySchema.optional().nullable(),\n});\n\nexport type EvaluationResult = z.infer<typeof evaluationResultSchema>;\n\nexport const typedValueGuardrailResultSchema = z.object({\n type: z.literal(\"guardrail_result\"),\n value: evaluationResultSchema,\n});\n\nexport type TypedValueGuardrailResult = z.infer<\n typeof typedValueGuardrailResultSchema\n>;\n\nexport const typedValueEvaluationResultSchema = z.object({\n type: z.literal(\"evaluation_result\"),\n value: evaluationResultSchema,\n});\n\nexport type TypedValueEvaluationResult = z.infer<\n typeof typedValueEvaluationResultSchema\n>;\n\nexport const typedValueChatMessagesSchema = z.object({\n type: z.literal(\"chat_messages\"),\n value: z.array(chatMessageSchema),\n});\n\nexport type TypedValueChatMessages = z.infer<\n typeof typedValueChatMessagesSchema\n>;\n\nexport type SpanInputOutput =\n | TypedValueText\n | TypedValueChatMessages\n | TypedValueGuardrailResult\n | TypedValueEvaluationResult\n | TypedValueJson\n | TypedValueRaw\n | {\n type: \"list\";\n value: SpanInputOutput[];\n };\n\nexport const spanInputOutputSchema: z.ZodType<SpanInputOutput> = z.lazy(() =>\n z.union([\n typedValueTextSchema,\n typedValueChatMessagesSchema,\n typedValueGuardrailResultSchema,\n typedValueEvaluationResultSchema,\n typedValueJsonSchema,\n typedValueRawSchema,\n z.object({\n type: z.literal(\"list\"),\n value: z.array(spanInputOutputSchema),\n }),\n ]),\n);\n\nexport const errorCaptureSchema = z.object({\n has_error: z.literal(true),\n message: z.string(),\n stacktrace: z.array(z.string()),\n});\n\nexport type ErrorCapture = z.infer<typeof errorCaptureSchema>;\n\nexport const spanMetricsSchema = z.object({\n prompt_tokens: z.number().optional().nullable(),\n completion_tokens: z.number().optional().nullable(),\n reasoning_tokens: z.number().optional().nullable(),\n cache_read_input_tokens: z.number().optional().nullable(),\n cache_creation_input_tokens: z.number().optional().nullable(),\n tokens_estimated: z.boolean().optional().nullable(),\n cost: z.number().optional().nullable(),\n});\n\nexport type SpanMetrics = z.infer<typeof spanMetricsSchema>;\n\nexport const reservedSpanParamsSchema = z.object({\n frequency_penalty: z.number().optional().nullable(),\n logit_bias: z.record(z.string(), z.number()).optional().nullable(),\n logprobs: z.boolean().optional().nullable(),\n top_logprobs: z.number().optional().nullable(),\n max_tokens: z.number().optional().nullable(),\n n: z.number().optional().nullable(),\n presence_penalty: z.number().optional().nullable(),\n seed: z.number().optional().nullable(),\n stop: z\n .union([z.string(), z.array(z.string())])\n .optional()\n .nullable(),\n stream: z.boolean().optional().nullable(),\n temperature: z.number().optional().nullable(),\n top_p: z.number().optional().nullable(),\n tools: z.array(z.record(z.string(), z.any())).optional().nullable(),\n tool_choice: z\n .union([z.record(z.string(), z.any()), z.string()])\n .optional()\n .nullable(),\n parallel_tool_calls: z.boolean().optional().nullable(),\n functions: z.array(z.record(z.string(), z.any())).optional().nullable(),\n user: z.string().optional().nullable(),\n reasoning_effort: z.string().optional().nullable(),\n});\n\nexport type ReservedSpanParams = z.infer<typeof reservedSpanParamsSchema>;\n\nexport const spanParamsSchema = reservedSpanParamsSchema.and(\n z.record(z.string(), z.any()),\n);\n\nexport type SpanParams = z.infer<typeof spanParamsSchema>;\n\nexport const spanTimestampsSchema = z.object({\n ignore_timestamps_on_write: z.boolean().optional().nullable(),\n started_at: z.number(),\n first_token_at: z.number().optional().nullable(),\n finished_at: z.number(),\n});\n\nexport type SpanTimestamps = z.infer<typeof spanTimestampsSchema>;\n\nexport const spanTypesSchema = z.union([\n z.literal(\"span\"),\n z.literal(\"llm\"),\n z.literal(\"chain\"),\n z.literal(\"tool\"),\n z.literal(\"agent\"),\n z.literal(\"rag\"),\n z.literal(\"guardrail\"),\n z.literal(\"evaluation\"),\n // Low-code\n z.literal(\"workflow\"),\n z.literal(\"component\"),\n // DSPy\n z.literal(\"module\"),\n // OpenTelemetry\n z.literal(\"server\"),\n z.literal(\"client\"),\n z.literal(\"producer\"),\n z.literal(\"consumer\"),\n // Other\n z.literal(\"task\"), // openllmetry\n z.literal(\"unknown\"),\n]);\n\nexport type SpanTypes = z.infer<typeof spanTypesSchema>;\n\nexport const baseSpanSchema = z.object({\n span_id: z.string(),\n parent_id: z.string().optional().nullable(),\n trace_id: z.string(),\n type: spanTypesSchema,\n name: z.string().optional().nullable(),\n input: spanInputOutputSchema.optional().nullable(),\n output: spanInputOutputSchema.optional().nullable(),\n error: errorCaptureSchema.optional().nullable(),\n timestamps: spanTimestampsSchema,\n metrics: spanMetricsSchema.optional().nullable(),\n params: spanParamsSchema.optional().nullable(),\n});\n\nexport type BaseSpan = z.infer<typeof baseSpanSchema>;\n\nexport const lLMSpanSchema = baseSpanSchema.extend({\n type: z.literal(\"llm\"),\n // TODO: deprecate field, standardize on litellm model names\n vendor: z.string().optional().nullable(),\n model: z.string().optional().nullable(),\n});\n\nexport type LLMSpan = z.infer<typeof lLMSpanSchema>;\n\nexport const rAGSpanSchema = baseSpanSchema.extend({\n type: z.literal(\"rag\"),\n contexts: z.array(rAGChunkSchema),\n});\n\nexport type RAGSpan = z.infer<typeof rAGSpanSchema>;\n\nexport const spanSchema = z.union([\n lLMSpanSchema,\n rAGSpanSchema,\n baseSpanSchema,\n]);\n\nexport type Span = z.infer<typeof spanSchema>;\n\nconst spanInputOutputValidatorSchema = spanInputOutputSchema.and(\n z.object({\n value: z.any(),\n }),\n);\n\nexport const spanValidatorSchema = z\n .union([\n lLMSpanSchema.omit({ input: true, output: true, params: true }),\n rAGSpanSchema.omit({ input: true, output: true, params: true }),\n baseSpanSchema.omit({ input: true, output: true, params: true }),\n ])\n .and(\n z.object({\n input: spanInputOutputValidatorSchema.optional().nullable(),\n output: spanInputOutputValidatorSchema.optional().nullable(),\n params: z.record(z.string(), z.any()).optional().nullable(),\n }),\n );\n\nexport type SpanValidator = z.infer<typeof spanValidatorSchema>;\n\nexport type ElasticSearchInputOutput = {\n type: SpanInputOutput[\"type\"];\n value: string;\n};\n\n// Dead ElasticSearch shape kept as a structural type only (no schema needed).\nexport type ElasticSearchSpan = Omit<\n BaseSpan & Partial<Omit<RAGSpan, \"type\">> & Partial<Omit<LLMSpan, \"type\">>,\n \"input\" | \"output\"\n> & {\n project_id: string;\n input?: ElasticSearchInputOutput | null;\n output?: ElasticSearchInputOutput | null;\n timestamps: SpanTimestamps & { inserted_at: number; updated_at: number };\n};\n\nexport const traceInputSchema = z.object({\n value: z.string(),\n});\n\nexport type TraceInput = z.infer<typeof traceInputSchema>;\n\nexport const traceOutputSchema = z.object({\n value: z.string(),\n});\n\nexport type TraceOutput = z.infer<typeof traceOutputSchema>;\n\nconst primitiveTypeSchema = z\n .union([z.string(), z.number(), z.boolean(), z.undefined()])\n .nullable();\n\nexport const reservedTraceMetadataSchema = z.object({\n thread_id: z.string().optional().nullable(),\n user_id: z.string().optional().nullable(),\n customer_id: z.string().optional().nullable(),\n labels: z.array(z.string()).optional().nullable(),\n topic_id: z.string().optional().nullable(),\n subtopic_id: z.string().optional().nullable(),\n sdk_name: z.string().optional().nullable(),\n sdk_version: z.string().optional().nullable(),\n sdk_language: z.string().optional().nullable(),\n telemetry_sdk_language: z.string().optional().nullable(),\n telemetry_sdk_name: z.string().optional().nullable(),\n telemetry_sdk_version: z.string().optional().nullable(),\n prompt_ids: z.array(z.string()).optional().nullable(),\n prompt_version_ids: z.array(z.string()).optional().nullable(),\n});\n\nexport type ReservedTraceMetadata = z.infer<typeof reservedTraceMetadataSchema>;\n\nexport const reservedTraceMetadataMappingSchema = z.record(\n z.string(),\n reservedTraceMetadataSchema.keyof(),\n);\n\nexport type ReservedTraceMetadataMapping = z.infer<\n typeof reservedTraceMetadataMappingSchema\n>;\n\nexport const customMetadataSchema = z.record(\n z.string(),\n z.union([\n primitiveTypeSchema,\n z.array(primitiveTypeSchema),\n z.record(z.string(), primitiveTypeSchema),\n z.record(z.string(), z.record(z.string(), primitiveTypeSchema)),\n ]),\n);\n\nexport type CustomMetadata = z.infer<typeof customMetadataSchema>;\n\nexport const traceMetadataSchema =\n reservedTraceMetadataSchema.and(customMetadataSchema);\n\nexport type TraceMetadata = z.infer<typeof traceMetadataSchema>;\n\nexport const eventSchema = z.object({\n event_id: z.string(),\n event_type: z.string(), // Type of event (e.g., 'thumbs_up_down', 'add_to_cart')\n project_id: z.string(),\n metrics: z.record(z.string(), z.number()),\n event_details: z.record(z.string(), z.string()),\n trace_id: z.string(),\n timestamps: z.object({\n started_at: z.number(),\n inserted_at: z.number(),\n updated_at: z.number(),\n }),\n});\n\nexport type Event = z.infer<typeof eventSchema>;\n\nexport const elasticSearchEventSchema = eventSchema\n .omit({ metrics: true, event_details: true })\n .and(\n z.object({\n metrics: z.array(\n z.object({\n key: z.string(),\n value: z.number(),\n }),\n ),\n event_details: z.array(\n z.object({\n key: z.string(),\n value: z.string(),\n }),\n ),\n }),\n );\n\nexport type ElasticSearchEvent = z.infer<typeof elasticSearchEventSchema>;\n\nconst evaluationStatusSchema = z.union([\n z.literal(\"scheduled\"),\n z.literal(\"in_progress\"),\n z.literal(\"error\"),\n z.literal(\"skipped\"),\n z.literal(\"processed\"),\n]);\n\nexport const evaluationSchema = z.object({\n evaluation_id: z.string(),\n evaluator_id: z.string(),\n span_id: z.string().optional().nullable(),\n name: z.string(),\n type: z.string().optional().nullable(),\n is_guardrail: z.boolean().optional().nullable(),\n evaluation_thread_id: z.string().optional().nullable(), // Thread ID used for thread-based evaluation data\n status: evaluationStatusSchema,\n passed: z.boolean().optional().nullable(),\n score: z.number().optional().nullable(),\n label: z.string().optional().nullable(),\n details: z.string().optional().nullable(),\n inputs: z.record(z.string(), z.any()).optional().nullable(),\n error: errorCaptureSchema.optional().nullable(),\n retries: z.number().optional().nullable(),\n timestamps: z.object({\n ignore_timestamps_on_write: z.boolean().optional().nullable(),\n inserted_at: z.number().optional().nullable(),\n started_at: z.number().optional().nullable(),\n finished_at: z.number().optional().nullable(),\n updated_at: z.number().optional().nullable(),\n }),\n});\n\nexport type Evaluation = z.infer<typeof evaluationSchema>;\n\nexport const elasticSearchEvaluationSchema = evaluationSchema;\n\nexport type ElasticSearchEvaluation = z.infer<\n typeof elasticSearchEvaluationSchema\n>;\n\nexport const rESTEvaluationSchema = evaluationSchema\n .omit({\n evaluation_id: true,\n evaluator_id: true,\n status: true,\n timestamps: true,\n retries: true,\n })\n .and(\n z.object({\n evaluation_id: z.string().optional().nullable(),\n evaluator_id: z.string().optional().nullable(),\n status: z\n .union([\n z.literal(\"processed\"),\n z.literal(\"skipped\"),\n z.literal(\"error\"),\n ])\n .optional()\n .nullable(),\n timestamps: z\n .object({\n started_at: z.number().optional().nullable(),\n finished_at: z.number().optional().nullable(),\n })\n .optional()\n .nullable(),\n }),\n );\n\nexport type RESTEvaluation = z.infer<typeof rESTEvaluationSchema>;\n\nexport const tracePrivacySchema = z.object({\n // Content categories that a `drop` privacy policy stripped before the spans\n // were stored, derived at read time from the marker the drop stamps on each\n // span. The content was never stored and cannot be recovered, which is what\n // distinguishes it from a read-time `restrict` (the data is kept and hidden by\n // audience, surfaced through the field-redaction path). Absent when nothing\n // was dropped.\n droppedCategories: z.array(z.string()).optional(),\n});\n\nexport type TracePrivacy = z.infer<typeof tracePrivacySchema>;\n\nexport const traceSchema = z.object({\n trace_id: z.string(),\n project_id: z.string(),\n metadata: traceMetadataSchema,\n privacy: tracePrivacySchema.optional(),\n timestamps: z.object({\n started_at: z.number(),\n inserted_at: z.number(),\n updated_at: z.number(),\n }),\n input: traceInputSchema.optional(),\n output: traceOutputSchema.optional(),\n contexts: z.array(rAGChunkSchema).optional(),\n expected_output: z\n .object({\n value: z.string(),\n })\n .optional(),\n metrics: z\n .object({\n first_token_ms: z.number().optional().nullable(),\n total_time_ms: z.number().optional().nullable(),\n prompt_tokens: z.number().optional().nullable(),\n completion_tokens: z.number().optional().nullable(),\n reasoning_tokens: z.number().optional().nullable(),\n cache_read_input_tokens: z.number().optional().nullable(),\n cache_creation_input_tokens: z.number().optional().nullable(),\n total_cost: z.number().optional().nullable(),\n tokens_estimated: z.boolean().optional().nullable(),\n })\n .optional(),\n error: errorCaptureSchema.optional().nullable(),\n indexing_md5s: z.array(z.string()).optional(),\n events: z.array(eventSchema).optional(),\n evaluations: z.array(evaluationSchema).optional(),\n spans: z.array(spanSchema),\n // Set server-side when content was teaser-redacted by the plan's\n // visibility window — the UI renders the upgrade CTA off this flag.\n redacted_by_visibility_window: z.boolean().optional(),\n});\n\nexport type Trace = z.infer<typeof traceSchema>;\n\nexport const lLMModeTraceSchema = traceSchema\n .omit({ timestamps: true, indexing_md5s: true })\n .and(\n z.object({\n timestamps: z.object({\n started_at: z.string(),\n inserted_at: z.string(),\n updated_at: z.string(),\n }),\n ascii_tree: z.string(),\n }),\n );\n\nexport type LLMModeTrace = z.infer<typeof lLMModeTraceSchema>;\n\n// Dead ElasticSearch shape kept as a structural type only (no schema needed).\nexport type ElasticSearchTrace = Omit<\n Trace,\n \"metadata\" | \"timestamps\" | \"events\" | \"privacy\"\n> & {\n metadata: ReservedTraceMetadata & {\n custom?: CustomMetadata;\n all_keys?: string[];\n };\n timestamps: Trace[\"timestamps\"] & {\n updated_at: number;\n };\n\n spans?: ElasticSearchSpan[];\n evaluations?: ElasticSearchEvaluation[];\n events?: ElasticSearchEvent[];\n retention_policy?: \"180d\" | \"365d\" | \"730d\" | null;\n retention_holdouts?: string[] | null;\n};\n\nexport const collectorRESTParamsSchema = z.object({\n trace_id: z.union([z.string(), z.undefined()]).optional().nullable(),\n spans: z.array(spanSchema),\n metadata: z\n .object({\n user_id: z.union([z.string(), z.undefined()]).optional().nullable(),\n thread_id: z.union([z.string(), z.undefined()]).optional().nullable(),\n customer_id: z.union([z.string(), z.undefined()]).optional().nullable(),\n labels: z\n .union([z.array(z.string()), z.undefined()])\n .optional()\n .nullable(),\n sdk_version: z.union([z.string(), z.undefined()]).optional().nullable(),\n sdk_language: z.union([z.string(), z.undefined()]).optional().nullable(),\n })\n .and(customMetadataSchema)\n .optional(),\n expected_output: z.string().optional().nullable(),\n evaluations: z.array(rESTEvaluationSchema).optional(),\n});\n\nexport type CollectorRESTParams = z.infer<typeof collectorRESTParamsSchema>;\n\nexport const collectorRESTParamsValidatorSchema =\n collectorRESTParamsSchema.omit({ spans: true });\n\nexport type CollectorRESTParamsValidator = z.infer<\n typeof collectorRESTParamsValidatorSchema\n>;\n\nexport const trackEventRESTParamsValidatorSchema = eventSchema\n .omit({\n event_id: true,\n project_id: true,\n timestamps: true,\n event_details: true,\n })\n .and(\n z.object({\n event_id: z.string().optional(), // auto generated unless you want to guarantee idempotency\n event_details: z.record(z.string(), z.string().nullable()).optional(),\n timestamp: z.number().optional(), // The timestamp when the event occurred\n }),\n );\n\nexport type TrackEventRESTParamsValidator = z.infer<\n typeof trackEventRESTParamsValidatorSchema\n>;\n\n// Dataset Schemas\n\nexport type DatasetSpan =\n | (Omit<\n BaseSpan,\n \"project_id\" | \"trace_id\" | \"id\" | \"timestamps\" | \"metrics\" | \"params\"\n > & { params: Record<string, any>; model?: string | null })\n | (Omit<\n LLMSpan,\n \"project_id\" | \"trace_id\" | \"id\" | \"timestamps\" | \"metrics\" | \"params\"\n > & { params: Record<string, any>; model?: string | null })\n | (Omit<\n RAGSpan,\n \"project_id\" | \"trace_id\" | \"id\" | \"timestamps\" | \"metrics\" | \"params\"\n > & { params: Record<string, any>; model?: string | null });\n","/*\n Manual evaluation recording for the LangWatch observability SDK.\n\n This is the OpenTelemetry-native re-implementation of the `add_evaluation`\n surface that the Python SDK exposes on both spans and traces\n (`langwatch/telemetry/span.py`, `langwatch/telemetry/tracing.py`) and that the\n Python evaluation module emits from `_add_evaluation`\n (`langwatch/evaluation/__init__.py`).\n\n Parity is by construction: this module emits the SAME OpenTelemetry span event\n name (`langwatch.evaluation.custom`), the SAME `json_encoded_event` attribute\n key, and the SAME snake_case payload keys as the Python SDK, so the identical\n backend collector path parses both.\n*/\n\nimport { type Span, isSpanContextValid } from \"@opentelemetry/api\";\nimport { generate as generateKsuid } from \"xksuid\";\nimport { ATTR_LANGWATCH_EVALUATION_CUSTOM } from \"../semconv/attributes\";\n\n/**\n * The status of a recorded evaluation.\n *\n * Mirrors the Python `Literal[\"processed\", \"skipped\", \"error\"]` accepted by\n * `add_evaluation`.\n */\nexport type EvaluationStatus = \"processed\" | \"skipped\" | \"error\";\n\n/**\n * Explicit start/finish timestamps for an evaluation, in milliseconds since the\n * Unix epoch (matching how the LangWatch collector expects timestamps). `Date`\n * instances are also accepted and converted.\n */\nexport interface EvaluationTimestamps {\n /** When the evaluation started. */\n startedAt: Date | number;\n /** When the evaluation finished. */\n finishedAt: Date | number;\n}\n\n/**\n * Parameters for {@link LangWatchSpan.addEvaluation} / recording a manual\n * evaluation result.\n *\n * The field set is derived from the Python `add_evaluation` signature. Only\n * `name` is required; every other field is optional and, when omitted, is\n * emitted as `null` in the JSON payload to match the Python SDK exactly.\n *\n * @property name - Human-readable name of the evaluation (required).\n * @property type - Evaluation type/category (e.g. an evaluator slug).\n * @property evaluationId - Stable id for this evaluation. Auto-generated\n * (`eval_<ksuid>`) when omitted, mirroring Python's `PKSUID(\"eval\")`.\n * @property isGuardrail - Whether this evaluation acted as a guardrail.\n * @property status - Processing status. Defaults to `\"processed\"`.\n * @property passed - Whether the evaluation passed.\n * @property score - Numeric score for the evaluation.\n * @property label - Categorical label for the evaluation.\n * @property details - Free-form details/explanation.\n * @property error - Optional error captured while evaluating.\n * @property timestamps - Optional explicit start/finish timestamps.\n */\nexport interface AddEvaluationParams {\n name: string;\n type?: string;\n evaluationId?: string;\n isGuardrail?: boolean;\n status?: EvaluationStatus;\n passed?: boolean;\n score?: number;\n label?: string;\n details?: string;\n error?: unknown;\n timestamps?: EvaluationTimestamps;\n}\n\n/**\n * Error shape emitted in the evaluation payload.\n *\n * Matches the Python `capture_exception` output (`{ message, stacktrace }`),\n * which is the runtime-proven collector path.\n */\ninterface EvaluationErrorCapture {\n message: string;\n stacktrace: string[];\n}\n\n/**\n * The JSON payload serialized into the `json_encoded_event` attribute.\n *\n * Keys are snake_case to match the Python `_EvaluationTypedDict` emitted by\n * `_add_evaluation`. All keys are always present (with `null` for absent\n * values), matching the Python behavior where every field is passed explicitly.\n */\ninterface EvaluationEventPayload {\n evaluation_id: string;\n span_id: string | null;\n name: string;\n type: string | null;\n is_guardrail: boolean | null;\n status: EvaluationStatus;\n passed: boolean | null;\n score: number | null;\n label: string | null;\n details: string | null;\n error: EvaluationErrorCapture | null;\n timestamps: { started_at: number | null; finished_at: number | null } | null;\n}\n\nfunction toEpochMillis(value: Date | number): number {\n return value instanceof Date ? value.getTime() : value;\n}\n\nfunction captureError(error: unknown): EvaluationErrorCapture {\n if (error instanceof Error) {\n return {\n message: String(error),\n stacktrace: error.stack ? error.stack.split(\"\\n\") : [],\n };\n }\n return {\n message: String(error),\n stacktrace: [],\n };\n}\n\n/**\n * Records a manual evaluation result onto the given OpenTelemetry span by\n * emitting a `langwatch.evaluation.custom` span event whose\n * `json_encoded_event` attribute holds the serialized evaluation payload.\n *\n * This is the shared implementation behind both the span-level and trace-level\n * `addEvaluation` surfaces.\n *\n * @param span - The OpenTelemetry span to attach the evaluation event to.\n * @param params - The evaluation parameters. See {@link AddEvaluationParams}.\n */\nexport function emitEvaluationEvent(\n span: Span,\n params: AddEvaluationParams,\n): void {\n const spanContext = span.spanContext();\n const spanId =\n spanContext && isSpanContextValid(spanContext) ? spanContext.spanId : null;\n\n const payload: EvaluationEventPayload = {\n evaluation_id: params.evaluationId ?? `eval_${generateKsuid()}`,\n span_id: spanId,\n name: params.name,\n type: params.type ?? null,\n is_guardrail: params.isGuardrail ?? null,\n status: params.status ?? \"processed\",\n passed: params.passed ?? null,\n score: params.score ?? null,\n label: params.label ?? null,\n details: params.details ?? null,\n error: params.error != null ? captureError(params.error) : null,\n timestamps: params.timestamps\n ? {\n started_at: toEpochMillis(params.timestamps.startedAt),\n finished_at: toEpochMillis(params.timestamps.finishedAt),\n }\n : null,\n };\n\n span.addEvent(ATTR_LANGWATCH_EVALUATION_CUSTOM, {\n json_encoded_event: JSON.stringify(payload),\n });\n}\n","import * as semconv from \"@opentelemetry/semantic-conventions/incubating\";\nimport {\n type Span,\n type SpanContext,\n type SpanStatus,\n type Attributes,\n type AttributeValue,\n type Link,\n type Exception,\n} from \"@opentelemetry/api\";\nimport {\n type SimpleChatMessage,\n type LangWatchSpan,\n type LangWatchSpanMetrics,\n type LangWatchSpanRAGContext,\n type SpanType,\n} from \"./types\";\nimport { type Prompt } from \"@/client-sdk/services/prompts\";\nimport { type ChatMessage, type SpanInputOutput } from \"../../internal/generated/types/tracer\";\nimport * as intSemconv from \"../semconv/attributes\";\nimport { processSpanInputOutput } from \"./input-output\";\nimport type { SemConvAttributeKey, SemConvAttributes } from \"../semconv\";\nimport {\n emitEvaluationEvent,\n type AddEvaluationParams,\n} from \"../evaluation\";\n\nclass LangWatchSpanInternal implements LangWatchSpan {\n constructor(private span: Span) { }\n setAttributes(attributes: SemConvAttributes): this {\n this.span.setAttributes(attributes);\n return this;\n }\n\n setAttribute(key: SemConvAttributeKey, value: AttributeValue): this {\n this.span.setAttribute(key, value);\n return this;\n }\n\n addEvent(name: string, attributes?: Attributes): this {\n this.span.addEvent(name, attributes);\n return this;\n }\n\n recordException(exception: Exception): this {\n this.span.recordException(exception);\n return this;\n }\n\n setStatus(status: SpanStatus): this {\n this.span.setStatus(status);\n return this;\n }\n\n updateName(name: string): this {\n this.span.updateName(name);\n return this;\n }\n\n end(endTime?: number): void {\n this.span.end(endTime);\n }\n\n isRecording(): boolean {\n return this.span.isRecording();\n }\n\n spanContext(): SpanContext {\n return this.span.spanContext();\n }\n\n addLink(link: Link): this {\n this.span.addLink(link);\n return this;\n }\n\n addLinks(links: Link[]): this {\n this.span.addLinks(links);\n return this;\n }\n\n /**\n * Records a manual evaluation on this span by emitting the `langwatch.evaluation.custom` span\n * event. See {@link AddEvaluationParams} for available parameters.\n */\n addEvaluation(params: AddEvaluationParams): this {\n emitEvaluationEvent(this.span, params);\n return this;\n }\n\n /**\n * @deprecated Use {@link addEvaluation} instead. Thin back-compat alias kept for\n * the earlier documented name.\n */\n recordEvaluation(params: AddEvaluationParams): this {\n return this.addEvaluation(params);\n }\n\n setType(type: SpanType): this {\n return this.setAttribute(intSemconv.ATTR_LANGWATCH_SPAN_TYPE, type);\n }\n\n setSelectedPrompt(prompt: Prompt): this {\n return this.setAttributes({\n [intSemconv.ATTR_LANGWATCH_PROMPT_SELECTED_ID]: prompt.id,\n [intSemconv.ATTR_LANGWATCH_PROMPT_ID]: prompt.id,\n [intSemconv.ATTR_LANGWATCH_PROMPT_VERSION_ID]: prompt.versionId,\n [intSemconv.ATTR_LANGWATCH_PROMPT_VERSION_NUMBER]: prompt.version,\n });\n }\n\n setRequestModel(model: string): this {\n return this.setAttribute(semconv.ATTR_GEN_AI_REQUEST_MODEL, model);\n }\n\n setResponseModel(model: string): this {\n return this.setAttribute(semconv.ATTR_GEN_AI_RESPONSE_MODEL, model);\n }\n\n setRAGContexts(ragContexts: LangWatchSpanRAGContext[]): this {\n return this.setAttribute(\n intSemconv.ATTR_LANGWATCH_RAG_CONTEXTS,\n JSON.stringify(ragContexts)\n );\n }\n\n setRAGContext(ragContext: LangWatchSpanRAGContext): this {\n return this.setRAGContexts([ragContext]);\n }\n\n setMetrics(metrics: LangWatchSpanMetrics): this {\n return this.setAttribute(\n intSemconv.ATTR_LANGWATCH_METRICS,\n JSON.stringify({\n type: \"json\",\n value: metrics,\n })\n );\n }\n\n setInput(type: \"text\", input: string): this;\n setInput(type: \"raw\", input: any): this;\n setInput(type: \"chat_messages\", input: ChatMessage[] | SimpleChatMessage[]): this;\n setInput(type: \"list\", input: SpanInputOutput[]): this;\n setInput(type: \"json\", input: any): this;\n setInput(input: any): this;\n setInput(typeOrInput: any, input?: any): this {\n const spanInput = processSpanInputOutput(typeOrInput, input);\n return this.setAttribute(\n intSemconv.ATTR_LANGWATCH_INPUT,\n JSON.stringify(spanInput)\n );\n }\n\n setOutput(type: \"text\", output: string): this;\n setOutput(type: \"raw\", output: any): this;\n setOutput(type: \"chat_messages\", output: ChatMessage[] | SimpleChatMessage[]): this;\n setOutput(type: \"list\", output: SpanInputOutput[]): this;\n setOutput(type: \"json\", output: any): this;\n setOutput(output: any): this;\n setOutput(typeOrOutput: any, output?: any): this {\n const spanOutput = processSpanInputOutput(typeOrOutput, output);\n return this.setAttribute(\n intSemconv.ATTR_LANGWATCH_OUTPUT,\n JSON.stringify(spanOutput)\n );\n }\n}\n\n/**\n * Creates a LangWatchSpan, which adds additional methods to an OpenTelemetry Span.\n *\n * @param span - The OpenTelemetry Span to add LangWatch methods to\n * @returns A LangWatchSpan with additional methods for LLM/GenAI observability\n *\n * @example\n * ```typescript\n * import { createLangWatchSpan } from './span';\n * const otelSpan = tracer.startSpan('llm-call');\n * const span = createLangWatchSpan(otelSpan);\n * span.setType('llm').setInput('Prompt').setOutput('Completion');\n * ```\n */\nexport function createLangWatchSpan(span: Span): LangWatchSpan {\n return new LangWatchSpanInternal(span);\n}\n","import { z } from \"zod\";\nimport {\n chatMessageSchema,\n spanInputOutputSchema,\n type ChatMessage,\n type SpanInputOutput,\n} from \"../../internal/generated/types/tracer\";\nimport { type SimpleChatMessage, type JsonSerializable, type InputOutputType, INPUT_OUTPUT_TYPES } from \"./types\";\n\n/**\n * Zod schema for simple chat messages (less strict than the generated one)\n */\nconst simpleChatMessageSchema = z.object({\n role: z.string(),\n content: z.union([z.string(), z.array(z.any())]).nullable().optional()\n});\n\nconst simpleChatMessageArraySchema = z.array(simpleChatMessageSchema);\n\n/**\n * Utility function to create a safe fallback value\n */\nfunction createSafeFallbackValue(value: unknown): string {\n if (typeof value === 'object' && value !== null) {\n try {\n return JSON.stringify(value);\n } catch {\n return JSON.stringify({ type: \"raw\", value: \"[Non-Serializable]\" });\n }\n }\n\n return String(value);\n}\n\n/**\n * Utility function to create a safe SpanInputOutput fallback\n */\nfunction createSafeSpanInputOutput(type: \"text\" | \"raw\", value: unknown): SpanInputOutput {\n const safeValue = createSafeFallbackValue(value);\n return { type, value: safeValue } as SpanInputOutput;\n}\n\n/**\n * Simple type checks for common input/output types\n */\nfunction isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isChatMessage(value: unknown): value is ChatMessage | SimpleChatMessage {\n if (!isObject(value)) return false;\n return (\n typeof value.role === \"string\" &&\n (typeof value.content === \"string\" || value.content === null || value.content === undefined)\n );\n}\n\nfunction isChatMessageArray(value: unknown): value is (ChatMessage | SimpleChatMessage)[] {\n return Array.isArray(value) && value.every(isChatMessage);\n}\n\n/**\n * Attempts to validate and convert chat messages with fallback strategies\n */\nfunction processChatMessages(value: unknown): SpanInputOutput {\n // Ensure we have an array\n const messages = Array.isArray(value) ? value : [value];\n\n // Strategy 1: Try strict schema first\n const strictResult = z.array(chatMessageSchema).safeParse(messages);\n if (strictResult.success) {\n return { type: \"chat_messages\", value: strictResult.data } as SpanInputOutput;\n }\n\n // Strategy 2: Try simple schema\n const simpleResult = simpleChatMessageArraySchema.safeParse(messages);\n if (simpleResult.success) {\n return { type: \"chat_messages\", value: simpleResult.data } as SpanInputOutput;\n }\n\n // Strategy 3: Fallback to text\n return createSafeSpanInputOutput(\"text\", JSON.stringify(messages));\n}\n\n/**\n * Converts any value to a SpanInputOutput format with soft validation.\n * Never throws errors, always returns a valid SpanInputOutput.\n */\nfunction convertToSpanInputOutput(value: unknown): SpanInputOutput {\n try {\n // Handle null/undefined\n if (value === null || value === undefined) {\n return spanInputOutputSchema.parse({ type: \"json\", value: null });\n }\n\n // Handle strings\n if (isString(value)) {\n return spanInputOutputSchema.parse({ type: \"text\", value });\n }\n\n // Handle chat messages (single message or array)\n if (isChatMessage(value) || (Array.isArray(value) && value.length > 0 && isChatMessageArray(value))) {\n return processChatMessages(value);\n }\n\n // Handle arrays (non-chat messages)\n if (Array.isArray(value)) {\n return spanInputOutputSchema.parse({\n type: \"list\",\n value: value.map(item => convertToSpanInputOutput(item))\n });\n }\n\n // Handle objects (fallback to json type)\n if (isObject(value)) {\n try {\n return spanInputOutputSchema.parse({ type: \"json\", value });\n } catch {\n // If json type fails, fall back to text\n return createSafeSpanInputOutput(\"text\", value);\n }\n }\n\n // Ultimate fallback for any other type\n return createSafeSpanInputOutput(\"text\", value);\n } catch {\n // Ultimate fallback - if any Zod validation fails, return as text\n return createSafeSpanInputOutput(\"text\", value);\n }\n}\n\n/**\n * Type guard to check if a value is a valid input/output type\n */\nexport function isValidInputOutputType(type: string): type is InputOutputType {\n return INPUT_OUTPUT_TYPES.includes(type as InputOutputType);\n}\n\n/**\n * Validates a value for a specific input/output type using Zod schemas\n */\nfunction validateValueForInputOutputType(type: InputOutputType, value: unknown): unknown {\n switch (type) {\n case \"chat_messages\": {\n const messages = Array.isArray(value) ? value : [value];\n\n // Try strict schema first\n const strictResult = z.array(chatMessageSchema).safeParse(messages);\n if (strictResult.success) {\n return strictResult.data;\n }\n\n // Try simple schema\n const simpleResult = simpleChatMessageArraySchema.safeParse(messages);\n if (simpleResult.success) {\n return simpleResult.data;\n }\n\n // Fallback\n return [{ role: \"user\", content: createSafeFallbackValue(value) }];\n }\n\n case \"list\": {\n const listResult = z.array(spanInputOutputSchema).safeParse(value);\n return listResult.success ? listResult.data : [{ type: \"text\", value: createSafeFallbackValue(value) }];\n }\n\n case \"json\": {\n // For JSON, we accept any serializable value\n try {\n JSON.stringify(value);\n return value;\n } catch {\n return createSafeFallbackValue(value);\n }\n }\n\n case \"text\":\n case \"raw\": {\n const stringResult = z.string().safeParse(value);\n return stringResult.success ? stringResult.data : createSafeFallbackValue(value);\n }\n\n case \"guardrail_result\":\n case \"evaluation_result\": {\n // These types accept any value, just ensure it's serializable\n try {\n JSON.stringify(value);\n return value;\n } catch {\n return createSafeFallbackValue(value);\n }\n }\n\n default:\n return value;\n }\n}\n\n/**\n * Processes input/output values for span storage with soft Zod validation.\n * Never throws errors, always returns a valid SpanInputOutput.\n * When a type is explicitly provided, it will be preferred over auto-detection.\n *\n * @param typeOrValue - Either the explicit type string or the value to auto-detect\n * @param value - The value when explicit type is provided\n * @returns A valid SpanInputOutput object ready for span storage\n */\nexport function processSpanInputOutput(\n typeOrValue: unknown,\n value?: unknown\n): SpanInputOutput {\n try {\n // If explicit type is provided, prefer it over auto-detection\n if (typeof typeOrValue === \"string\" && value !== undefined) {\n const type = isValidInputOutputType(typeOrValue) ? typeOrValue : \"json\";\n const validatedValue = validateValueForInputOutputType(type, value);\n\n // Final validation with spanInputOutputSchema\n const result = spanInputOutputSchema.safeParse({ type, value: validatedValue });\n return result.success ? result.data : createSafeSpanInputOutput(\"raw\", validatedValue);\n }\n\n // Auto-detect type when no explicit type is provided\n return convertToSpanInputOutput(typeOrValue);\n } catch {\n // Ultimate fallback - if any validation fails, return as text\n return createSafeSpanInputOutput(\"text\", typeOrValue);\n }\n}\n\n/**\n * Type-safe method signature for span input/output processing\n */\nexport type SpanInputOutputMethod<T> = {\n (type: \"text\", value: string): T;\n (type: \"raw\", value: unknown): T;\n (type: \"chat_messages\", value: ChatMessage[] | SimpleChatMessage[]): T;\n (type: \"list\", value: SpanInputOutput[]): T;\n (type: \"json\", value: JsonSerializable): T;\n (type: \"guardrail_result\", value: unknown): T;\n (type: \"evaluation_result\", value: unknown): T;\n (value: unknown): T;\n}\n","import {\n type Span,\n type SpanOptions,\n type Context,\n SpanStatusCode,\n type TracerProvider,\n trace,\n} from \"@opentelemetry/api\";\nimport { createLangWatchSpan } from \"../span\";\nimport { type LangWatchTracer } from \"./types\";\nimport { emitEvaluationEvent, type AddEvaluationParams } from \"../evaluation\";\n\n/**\n * Get a LangWatch tracer from the global OpenTelemetry tracer provider.\n *\n * This is the primary entry point for obtaining a LangWatch tracer instance.\n * It uses the globally configured OpenTelemetry tracer provider and wraps\n * the resulting tracer with LangWatch-specific enhancements.\n *\n * **Prerequisites**: Ensure that LangWatch's observability setup has been\n * initialized before calling this function, otherwise the global tracer\n * provider may not be properly configured.\n *\n * @param name - The name of the tracer, typically your service or library name\n * @param version - Optional version identifier for the tracer\n * @returns A LangWatch tracer with enhanced functionality\n *\n * @example Basic usage\n * ```typescript\n * import { getLangWatchTracer } from '@langwatch/typescript-sdk';\n *\n * const tracer = getLangWatchTracer('my-service', '1.0.0');\n *\n * // Use the tracer to create spans\n * const result = await tracer.withActiveSpan('operation', async (span) => {\n * span.setAttributes({ userId: '123' });\n * return await performOperation();\n * });\n * ```\n *\n * @example Multiple tracers for different components\n * ```typescript\n * const apiTracer = getLangWatchTracer('api-server', '2.1.0');\n * const dbTracer = getLangWatchTracer('database-client', '1.5.2');\n *\n * // Each tracer can be used independently\n * await apiTracer.withActiveSpan('handle-request', async (span) => {\n * await dbTracer.withActiveSpan('query-users', async (dbSpan) => {\n * // Nested spans with proper parent-child relationships\n * });\n * });\n * ```\n */\nexport function getLangWatchTracer(\n name: string,\n version?: string,\n): LangWatchTracer {\n return getLangWatchTracerFromProvider(\n trace.getTracerProvider(),\n name,\n version,\n );\n}\n\n\n/**\n * Get a LangWatch tracer from a specific OpenTelemetry tracer provider.\n *\n * This function provides more control over which tracer provider is used,\n * allowing you to work with custom or multiple tracer provider instances.\n * This is useful in advanced scenarios where you need to:\n * - Use different tracer providers for different parts of your application\n * - Work with custom tracer provider configurations\n * - Test with mock tracer providers\n *\n * @param tracerProvider - The OpenTelemetry tracer provider to use\n * @param name - The name of the tracer, typically your service or library name\n * @param version - Optional version identifier for the tracer\n * @returns A LangWatch tracer with enhanced functionality\n *\n * @example Custom tracer provider\n * ```typescript\n * import { NodeTracerProvider } from '@opentelemetry/sdk-node';\n * import { getLangWatchTracerFromProvider } from '@langwatch/typescript-sdk';\n *\n * // Create a custom tracer provider with specific configuration\n * const customProvider = new NodeTracerProvider({\n * resource: Resource.default().merge(\n * new Resource({\n * [SemanticResourceAttributes.SERVICE_NAME]: 'custom-service',\n * })\n * )\n * });\n *\n * const tracer = getLangWatchTracerFromProvider(\n * customProvider,\n * 'custom-tracer',\n * '1.0.0'\n * );\n * ```\n *\n * @example Testing with mock provider\n * ```typescript\n * import { InMemorySpanExporter } from '@opentelemetry/sdk-trace-base';\n *\n * const mockExporter = new InMemorySpanExporter();\n * const testProvider = new NodeTracerProvider();\n * testProvider.addSpanProcessor(new SimpleSpanProcessor(mockExporter));\n *\n * const testTracer = getLangWatchTracerFromProvider(\n * testProvider,\n * 'test-tracer'\n * );\n *\n * // Use testTracer in tests and verify spans via mockExporter\n * ```\n */\nexport function getLangWatchTracerFromProvider(\n tracerProvider: TracerProvider,\n name: string,\n version?: string,\n): LangWatchTracer {\n const tracer = tracerProvider.getTracer(name, version);\n\n /**\n * ⚠️ Do not remove, or worse, move this declaration.\n * It's required so the proxy handler can reference the proxyInstance\n * without running afoul of JavaScript's temporal dead zone.\n */\n let proxyInstance: LangWatchTracer;\n\n const handler: ProxyHandler<LangWatchTracer> = {\n get(target, prop) {\n switch (prop) {\n case \"startActiveSpan\":\n return (...args: any[]) => {\n const spanArgs = normalizeSpanArgs(args);\n const options = withDefaultOrigin(spanArgs.options);\n\n const wrappedFn = (span: Span, ...cbArgs: any[]) =>\n spanArgs.fn(createLangWatchSpan(span), ...cbArgs);\n\n if (spanArgs.context !== void 0)\n return target.startActiveSpan(spanArgs.name, options, spanArgs.context, wrappedFn);\n\n return target.startActiveSpan(spanArgs.name, options, wrappedFn);\n };\n\n case \"withActiveSpan\":\n return (...args: any[]) => {\n const spanArgs = normalizeSpanArgs(args);\n const optionsWithOrigin = withDefaultOrigin(spanArgs.options);\n\n const cb = (span: Span) => {\n const wrappedSpan = createLangWatchSpan(span);\n\n try {\n const result = spanArgs.fn(wrappedSpan);\n\n // If result is a promise, handle it async\n if (result && typeof result.then === \"function\") {\n return result\n .then((result: any) => {\n wrappedSpan.setStatus({\n code: SpanStatusCode.OK,\n });\n return result;\n })\n .catch((err: any) => {\n wrappedSpan.setStatus({\n code: SpanStatusCode.ERROR,\n message: err?.message ?? String(err),\n });\n wrappedSpan.recordException?.(err);\n throw err;\n })\n .finally(() => {\n wrappedSpan.end();\n });\n }\n\n // Sync result - end span and return\n wrappedSpan.setStatus({\n code: SpanStatusCode.OK,\n });\n wrappedSpan.end();\n return result;\n } catch (err: any) {\n wrappedSpan.setStatus({\n code: SpanStatusCode.ERROR,\n message: err?.message ?? String(err),\n });\n wrappedSpan.recordException?.(err);\n wrappedSpan.end();\n throw err;\n }\n };\n\n // Call target.startActiveSpan to avoid double-wrapping\n if (spanArgs.context !== void 0)\n return target.startActiveSpan(spanArgs.name, optionsWithOrigin, spanArgs.context, cb);\n\n return target.startActiveSpan(spanArgs.name, optionsWithOrigin, cb);\n };\n\n case \"startSpan\":\n return (name: string, options?: SpanOptions, context?: Context) =>\n createLangWatchSpan(target.startSpan(name, withDefaultOrigin(options), context));\n\n case \"addEvaluation\":\n return (params: AddEvaluationParams) => {\n const activeSpan = trace.getActiveSpan();\n if (!activeSpan) return;\n emitEvaluationEvent(activeSpan, params);\n };\n\n default: {\n const value = (target as any)[prop];\n\n return typeof value === \"function\" ? value.bind(target) : value;\n }\n }\n },\n };\n\n // See comment above about why.\n // eslint-disable-next-line prefer-const\n proxyInstance = new Proxy(tracer, handler) as LangWatchTracer;\n return proxyInstance;\n}\n\n/**\n * Normalizes the variable arguments passed to span methods.\n * Handles the following overloaded signatures:\n * - (name, fn)\n * - (name, options, fn)\n * - (name, options, context, fn)\n *\n * @param args - The arguments array from the span method\n * @returns An object with normalized name, options, context, and fn properties\n * @throws Error if no callback function is found in the arguments\n */\nfunction normalizeSpanArgs(args: any[]) {\n const [name, arg2, arg3, arg4] = args;\n\n if (typeof arg4 === \"function\")\n return { name, options: arg2, context: arg3, fn: arg4 };\n\n if (typeof arg3 === \"function\") return { name, options: arg2, fn: arg3 };\n if (typeof arg2 === \"function\") return { name, fn: arg2 };\n\n throw new Error(\"Expected a span callback as the last argument\");\n}\n\n/**\n * Injects `langwatch.origin = \"application\"` into span options unless\n * the caller already provided a `langwatch.origin` attribute.\n *\n * This ensures regular application traces are explicitly tagged,\n * while experiments (which set `langwatch.origin = \"evaluation\"`) are not overridden.\n */\nfunction withDefaultOrigin(options?: SpanOptions): SpanOptions {\n const existing = options?.attributes?.[\"langwatch.origin\"];\n if (existing) return options ?? {};\n\n return {\n ...options,\n attributes: {\n ...options?.attributes,\n \"langwatch.origin\": \"application\",\n },\n };\n}\n"],"mappings":"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","names":["z","z","result","_a","_b","name"]}
@@ -2,26 +2,20 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkYKWXS2BMjs = require('./chunk-YKWXS2BM.js');
6
5
 
7
6
 
8
7
 
9
8
 
10
9
 
10
+ var _chunkEDWIKCYXjs = require('./chunk-EDWIKCYX.js');
11
11
 
12
- var _chunkGPGJNBPPjs = require('./chunk-GPGJNBPP.js');
13
12
 
14
13
 
15
- var _chunkOOXU4LFWjs = require('./chunk-OOXU4LFW.js');
16
14
 
17
15
 
18
16
 
19
17
 
20
-
21
- var _chunkHDA25KWZjs = require('./chunk-HDA25KWZ.js');
22
-
23
-
24
- var _chunkBRPEG3YQjs = require('./chunk-BRPEG3YQ.js');
18
+ var _chunkTKSTXX3Djs = require('./chunk-TKSTXX3D.js');
25
19
 
26
20
  // src/observability-sdk/setup/node/setup.ts
27
21
  var _sdknode = require('@opentelemetry/sdk-node');
@@ -35,12 +29,12 @@ var _resources = require('@opentelemetry/resources');
35
29
  var _incubating = require('@opentelemetry/semantic-conventions/incubating'); var semconv = _interopRequireWildcard(_incubating);
36
30
  function createMergedResource(attributes, serviceName, givenResource) {
37
31
  const langwatchResource = _resources.resourceFromAttributes.call(void 0, {
38
- [_chunkHDA25KWZjs.ATTR_LANGWATCH_SDK_NAME]: _chunkGPGJNBPPjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
39
- [_chunkHDA25KWZjs.ATTR_LANGWATCH_SDK_LANGUAGE]: _chunkGPGJNBPPjs.LANGWATCH_SDK_LANGUAGE,
40
- [_chunkHDA25KWZjs.ATTR_LANGWATCH_SDK_VERSION]: _chunkGPGJNBPPjs.LANGWATCH_SDK_VERSION
32
+ [_chunkTKSTXX3Djs.ATTR_LANGWATCH_SDK_NAME]: _chunkEDWIKCYXjs.LANGWATCH_SDK_NAME_OBSERVABILITY,
33
+ [_chunkTKSTXX3Djs.ATTR_LANGWATCH_SDK_LANGUAGE]: _chunkEDWIKCYXjs.LANGWATCH_SDK_LANGUAGE,
34
+ [_chunkTKSTXX3Djs.ATTR_LANGWATCH_SDK_VERSION]: _chunkEDWIKCYXjs.LANGWATCH_SDK_VERSION
41
35
  });
42
- const userResource = _resources.resourceFromAttributes.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {
43
- [semconv.ATTR_SERVICE_NAME]: serviceName != null ? serviceName : _chunkGPGJNBPPjs.DEFAULT_SERVICE_NAME
36
+ const userResource = _resources.resourceFromAttributes.call(void 0, _chunkTKSTXX3Djs.__spreadValues.call(void 0, {
37
+ [semconv.ATTR_SERVICE_NAME]: serviceName != null ? serviceName : _chunkEDWIKCYXjs.DEFAULT_SERVICE_NAME
44
38
  }, attributes != null ? attributes : {}));
45
39
  return (givenResource != null ? givenResource : _resources.defaultResource.call(void 0, )).merge(langwatchResource).merge(userResource);
46
40
  }
@@ -113,7 +107,7 @@ var getLangWatchConfig = (options) => {
113
107
  return {
114
108
  disabled: isDisabled,
115
109
  apiKey: isDisabled ? void 0 : (_a = config.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY,
116
- endpoint: isDisabled ? void 0 : (_c = (_b = config.endpoint) != null ? _b : process.env.LANGWATCH_ENDPOINT) != null ? _c : _chunkGPGJNBPPjs.DEFAULT_ENDPOINT,
110
+ endpoint: isDisabled ? void 0 : (_c = (_b = config.endpoint) != null ? _b : process.env.LANGWATCH_ENDPOINT) != null ? _c : _chunkEDWIKCYXjs.DEFAULT_ENDPOINT,
117
111
  processorType: (_d = config.processorType) != null ? _d : "batch"
118
112
  };
119
113
  };
@@ -163,11 +157,11 @@ var warnIfMisconfigured = (options, langwatch, logger) => {
163
157
  };
164
158
  function setupObservability(options = {}) {
165
159
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
166
- const logger = (_d = (_a = options.debug) == null ? void 0 : _a.logger) != null ? _d : new (0, _chunkHDA25KWZjs.ConsoleLogger)({
160
+ const logger = (_d = (_a = options.debug) == null ? void 0 : _a.logger) != null ? _d : new (0, _chunkTKSTXX3Djs.ConsoleLogger)({
167
161
  level: (_c = (_b = options.debug) == null ? void 0 : _b.logLevel) != null ? _c : "warn",
168
162
  prefix: "LangWatch Observability SDK"
169
163
  });
170
- _chunkOOXU4LFWjs.initializeObservabilitySdkConfig.call(void 0, {
164
+ _chunkTKSTXX3Djs.initializeObservabilitySdkConfig.call(void 0, {
171
165
  logger,
172
166
  dataCapture: options.dataCapture
173
167
  });
@@ -245,7 +239,7 @@ function setupDedicatedProvider(provider, options, logger) {
245
239
  }
246
240
  };
247
241
  if (!langwatch.disabled) {
248
- const traceExporter = new (0, _chunkYKWXS2BMjs.LangWatchTraceExporter)({
242
+ const traceExporter = new (0, _chunkEDWIKCYXjs.LangWatchTraceExporter)({
249
243
  apiKey: langwatch.apiKey,
250
244
  endpoint: langwatch.endpoint
251
245
  });
@@ -316,7 +310,7 @@ function attachToExistingProvider(provider, options, logger) {
316
310
  const langwatch = getLangWatchConfig(options);
317
311
  const addedProcessors = [];
318
312
  if (!langwatch.disabled) {
319
- const traceExporter = new (0, _chunkYKWXS2BMjs.LangWatchTraceExporter)({
313
+ const traceExporter = new (0, _chunkEDWIKCYXjs.LangWatchTraceExporter)({
320
314
  apiKey: langwatch.apiKey,
321
315
  endpoint: langwatch.endpoint
322
316
  });
@@ -381,11 +375,11 @@ function createAndStartNodeSdk(options, logger, resource) {
381
375
  logger.debug("Console recording of logs enabled; adding console log record processor");
382
376
  }
383
377
  if (!langwatch.disabled) {
384
- const traceExporter = new (0, _chunkYKWXS2BMjs.LangWatchTraceExporter)({
378
+ const traceExporter = new (0, _chunkEDWIKCYXjs.LangWatchTraceExporter)({
385
379
  apiKey: langwatch.apiKey,
386
380
  endpoint: langwatch.endpoint
387
381
  });
388
- const logExporter = new (0, _chunkYKWXS2BMjs.LangWatchLogsExporter)({
382
+ const logExporter = new (0, _chunkEDWIKCYXjs.LangWatchLogsExporter)({
389
383
  apiKey: langwatch.apiKey,
390
384
  endpoint: langwatch.endpoint
391
385
  });
@@ -455,7 +449,7 @@ function createAndStartNodeSdk(options, logger, resource) {
455
449
  });
456
450
  }
457
451
  if (loggerProvider) {
458
- _chunkYKWXS2BMjs.setLangWatchLoggerProvider.call(void 0, loggerProvider);
452
+ _chunkEDWIKCYXjs.setLangWatchLoggerProvider.call(void 0, loggerProvider);
459
453
  logger.debug("Set LangWatch logger provider");
460
454
  }
461
455
  if (!((_e = options.advanced) == null ? void 0 : _e.disableAutoShutdown)) {
@@ -509,4 +503,4 @@ var ensureSetup = () => {
509
503
 
510
504
 
511
505
  exports.setupObservability = setupObservability; exports.ensureSetup = ensureSetup;
512
- //# sourceMappingURL=chunk-FSACIXYG.js.map
506
+ //# sourceMappingURL=chunk-53AMPF5E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-53AMPF5E.js","../src/observability-sdk/setup/node/setup.ts","../src/observability-sdk/setup/utils.ts"],"names":["_b"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-53AMPF5E.js","sourcesContent":[null,"import { NodeSDK } from \"@opentelemetry/sdk-node\";\nimport { SimpleLogRecordProcessor, BatchLogRecordProcessor, type LogRecordProcessor, ConsoleLogRecordExporter, LoggerProvider } from \"@opentelemetry/sdk-logs\";\nimport { createMergedResource, getConcreteProvider, isConcreteProvider } from \"../utils\";\nimport { type SetupObservabilityOptions, type ObservabilityHandle } from \"./types\";\nimport { trace } from \"@opentelemetry/api\";\nimport {\n ConsoleSpanExporter,\n SimpleSpanProcessor,\n BatchSpanProcessor,\n type SpanProcessor,\n} from \"@opentelemetry/sdk-trace-base\";\nimport { type Resource } from \"@opentelemetry/resources\";\nimport { LangWatchLogsExporter, LangWatchTraceExporter } from \"../../exporters\";\nimport { ConsoleLogger, type Logger } from \"../../../logger\";\nimport { initializeObservabilitySdkConfig } from \"../../config\";\nimport { setLangWatchLoggerProvider } from \"../../logger\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\nimport { registerInstrumentations } from \"@opentelemetry/instrumentation\";\n\n// Helper functions\nconst createNoOpHandle = (logger: Logger): ObservabilityHandle => ({\n shutdown: async () => {\n logger.debug(\"Shutdown called for LangWatch no-op. Nothing will be shutdown\");\n },\n});\n\nconst getLangWatchConfig = (options: SetupObservabilityOptions) => {\n const isDisabled = options.langwatch === 'disabled';\n const config = typeof options.langwatch === 'object' ? options.langwatch : {};\n\n return {\n disabled: isDisabled,\n apiKey: isDisabled ? void 0 : (config.apiKey ?? process.env.LANGWATCH_API_KEY),\n endpoint: isDisabled ? void 0 : (config.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT),\n processorType: config.processorType ?? 'batch'\n };\n};\n\nconst checkForEarlyExit = (options: SetupObservabilityOptions, logger: Logger): ObservabilityHandle | null => {\n const globalProvider = trace.getTracerProvider();\n const alreadySetup = isConcreteProvider(globalProvider);\n\n if (alreadySetup && !options.advanced?.UNSAFE_forceOpenTelemetryReinitialization) {\n if (options.advanced?.attachToExistingProvider) {\n return null;\n }\n\n logger.error(\n `OpenTelemetry is already set up in this process.\\n` +\n `Spans will NOT be sent to LangWatch unless you add the LangWatch span processor or exporter to your existing OpenTelemetry setup.\\n` +\n `You must either:\\n` +\n ` 1. Remove your existing OpenTelemetry setup and only use LangWatch,\\n` +\n ` 2. Add the LangWatch span processor to your existing setup, or replace the existing exporter with the LangWatch exporter.\\n` +\n ` 3. Use advanced.attachToExistingProvider to let LangWatch attach its processors to the existing provider.\\n` +\n `\\nFor step-by-step instructions, see the LangWatch docs and check out the integration guide for your framework:\\n` +\n ` https://docs.langwatch.ai/integration/typescript/guide\\n` +\n `\\nSee also: https://github.com/open-telemetry/opentelemetry-js/issues/5299`,\n );\n return createNoOpHandle(logger);\n }\n\n if (alreadySetup) {\n logger.warn(\n \"OpenTelemetry is already set up, but UNSAFE_forceOpenTelemetryReinitialization=true. \" +\n \"Proceeding with reinitialization. This may cause conflicts.\"\n );\n }\n\n return null;\n};\n\nconst warnIfMisconfigured = (options: SetupObservabilityOptions, langwatch: ReturnType<typeof getLangWatchConfig>, logger: Logger) => {\n // Check if LangWatch is disabled but no alternative export mechanisms are provided\n // Note: If we reach this function, we know advanced.disabled and advanced.skipOpenTelemetrySetup are false\n // because those are handled as early exits in setupObservability()\n if (langwatch.disabled) {\n const hasAlternativeExport =\n options.spanProcessors?.length ??\n options.logRecordProcessors?.length ??\n options.debug?.consoleTracing ??\n options.debug?.consoleLogging ??\n options.traceExporter;\n\n if (!hasAlternativeExport) {\n const errorMessage =\n \"LangWatch integration is disabled but no custom span processors, trace exporters, or console tracing is configured. \" +\n \"OpenTelemetry will be set up but traces will not be exported anywhere. \" +\n \"Either:\\n\" +\n \" 1. Enable LangWatch integration (remove langwatch: 'disabled')\\n\" +\n \" 2. Provide custom spanProcessors, logRecordProcessors, or traceExporter\\n\" +\n \" 3. Enable debug.consoleTracing or debug.consoleLogging for development\\n\" +\n \" 4. Use advanced.disabled to completely disable observability\\n\" +\n \" 5. Use advanced.skipOpenTelemetrySetup to handle OpenTelemetry setup yourself\";\n\n if (options.advanced?.throwOnSetupError) {\n throw new Error(errorMessage);\n } else {\n logger.error(errorMessage);\n }\n }\n }\n};\n\nexport function setupObservability(options: SetupObservabilityOptions = {}): ObservabilityHandle {\n const logger = options.debug?.logger ?? new ConsoleLogger({\n level: options.debug?.logLevel ?? 'warn',\n prefix: \"LangWatch Observability SDK\",\n });\n\n initializeObservabilitySdkConfig({\n logger,\n dataCapture: options.dataCapture,\n });\n\n if (options.advanced?.disabled) {\n logger.debug(\"Observability disabled via advanced.disabled\");\n return createNoOpHandle(logger);\n }\n\n if (options.advanced?.skipOpenTelemetrySetup) {\n logger.debug(\"Skipping OpenTelemetry setup\");\n return createNoOpHandle(logger);\n }\n\n if (options.tracerProvider) {\n try {\n return setupDedicatedProvider(options.tracerProvider, options, logger);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(`Failed to set up dedicated provider: ${errorMessage}`);\n if (options.advanced?.throwOnSetupError) throw err;\n return createNoOpHandle(logger);\n }\n }\n\n const earlyExit = checkForEarlyExit(options, logger);\n if (earlyExit) return earlyExit;\n\n try {\n const globalProvider = trace.getTracerProvider();\n const existingProvider = getConcreteProvider(globalProvider);\n\n if (options.advanced?.attachToExistingProvider && existingProvider) {\n const handle = attachToExistingProvider(existingProvider, options, logger);\n if (handle) return handle;\n\n const errorMsg =\n \"attachToExistingProvider is enabled but the existing provider does not support adding span processors. \" +\n \"This may be due to an incompatible OpenTelemetry version. No spans will be exported to LangWatch.\";\n if (options.advanced?.throwOnSetupError) throw new Error(errorMsg);\n logger.error(errorMsg);\n return createNoOpHandle(logger);\n }\n\n const sdk = createAndStartNodeSdk(options, logger, createMergedResource(\n options.attributes,\n options.serviceName,\n options.resource,\n ));\n\n logger.info(\"LangWatch Observability SDK setup completed successfully\");\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down NodeSDK\");\n await sdk?.shutdown();\n logger.info(\"NodeSDK shutdown complete\");\n },\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(`Failed to initialize NodeSDK: ${errorMessage}`);\n\n if (err instanceof Error && err.stack) {\n logger.debug(`Stack trace: ${err.stack}`);\n }\n\n if (options.advanced?.throwOnSetupError) throw err;\n return createNoOpHandle(logger);\n }\n}\n\nfunction setupDedicatedProvider(\n provider: import(\"@opentelemetry/api\").TracerProvider,\n options: SetupObservabilityOptions,\n logger: Logger,\n): ObservabilityHandle {\n const langwatch = getLangWatchConfig(options);\n const addedProcessors: SpanProcessor[] = [];\n\n const internalArray = (provider as any)?._activeSpanProcessor?._spanProcessors;\n const hasPublicApi = typeof (provider as any)?.addSpanProcessor === 'function';\n\n if (!Array.isArray(internalArray) && !hasPublicApi) {\n const msg = \"Dedicated tracerProvider does not support adding span processors.\";\n if (options.advanced?.throwOnSetupError) throw new Error(msg);\n logger.error(msg);\n return createNoOpHandle(logger);\n }\n\n const addProcessor = (processor: SpanProcessor) => {\n if (hasPublicApi) {\n (provider as any).addSpanProcessor(processor);\n } else {\n internalArray.push(processor);\n }\n };\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n const processor = langwatch.processorType === 'batch'\n ? new BatchSpanProcessor(traceExporter)\n : new SimpleSpanProcessor(traceExporter);\n\n addedProcessors.push(processor);\n addProcessor(processor);\n logger.info(\"Attached LangWatch span processor to dedicated provider\");\n }\n\n if (options.traceExporter) {\n const p = new SimpleSpanProcessor(options.traceExporter);\n addedProcessors.push(p);\n addProcessor(p);\n }\n\n if (options.spanProcessors?.length) {\n for (const p of options.spanProcessors) {\n addedProcessors.push(p);\n addProcessor(p);\n }\n }\n\n let unregisterInstrumentations: (() => void) | undefined;\n if (options.instrumentations?.length) {\n unregisterInstrumentations = registerInstrumentations({\n tracerProvider: provider,\n instrumentations: options.instrumentations,\n });\n logger.info(`Registered ${options.instrumentations.length} instrumentations against dedicated provider`);\n }\n\n logger.info(\"LangWatch Observability SDK setup completed with dedicated provider (trace-only, global provider untouched)\");\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down dedicated LangWatch processors\");\n try {\n await Promise.all(addedProcessors.map((p) => p.shutdown()));\n } finally {\n const candidates = [\n (provider as any)?._activeSpanProcessor?._spanProcessors,\n (provider as any)?.activeSpanProcessor?._spanProcessors,\n (provider as any)?._registeredSpanProcessors,\n ];\n for (const arr of candidates) {\n if (!Array.isArray(arr)) continue;\n for (const p of addedProcessors) {\n const idx = arr.indexOf(p);\n if (idx !== -1) arr.splice(idx, 1);\n }\n }\n unregisterInstrumentations?.();\n }\n logger.info(\"LangWatch processor shutdown complete\");\n },\n };\n}\n\nfunction attachToExistingProvider(\n provider: unknown,\n options: SetupObservabilityOptions,\n logger: Logger,\n): ObservabilityHandle | null {\n const internalArray = (provider as any)?._activeSpanProcessor?._spanProcessors;\n const hasPublicApi = typeof (provider as any)?.addSpanProcessor === 'function';\n\n if (!Array.isArray(internalArray) && !hasPublicApi) {\n return null;\n }\n\n const addProcessor = (processor: SpanProcessor) => {\n if (hasPublicApi) {\n (provider as any).addSpanProcessor(processor);\n } else {\n internalArray.push(processor);\n }\n };\n\n const langwatch = getLangWatchConfig(options);\n const addedProcessors: SpanProcessor[] = [];\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n const processor = langwatch.processorType === 'batch'\n ? new BatchSpanProcessor(traceExporter)\n : new SimpleSpanProcessor(traceExporter);\n\n addedProcessors.push(processor);\n addProcessor(processor);\n logger.info(\"Attached LangWatch span processor to existing global provider\");\n }\n\n if (options.traceExporter) {\n const traceExporterProcessor = new SimpleSpanProcessor(options.traceExporter);\n addedProcessors.push(traceExporterProcessor);\n addProcessor(traceExporterProcessor);\n logger.debug(\"Attached user-provided traceExporter to existing provider\");\n }\n\n if (options.spanProcessors?.length) {\n for (const processor of options.spanProcessors) {\n addedProcessors.push(processor);\n addProcessor(processor);\n }\n logger.debug(`Attached ${options.spanProcessors.length} user-provided span processors to existing provider`);\n }\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down attached LangWatch processors\");\n try {\n await Promise.all(addedProcessors.map((p) => p.shutdown()));\n } finally {\n const candidates = [\n (provider as any)?._activeSpanProcessor?._spanProcessors,\n (provider as any)?.activeSpanProcessor?._spanProcessors,\n (provider as any)?._registeredSpanProcessors,\n ];\n for (const arr of candidates) {\n if (!Array.isArray(arr)) continue;\n for (const p of addedProcessors) {\n const idx = arr.indexOf(p);\n if (idx !== -1) arr.splice(idx, 1);\n }\n }\n }\n logger.info(\"LangWatch processor shutdown complete\");\n },\n };\n}\n\nexport function createAndStartNodeSdk(\n options: SetupObservabilityOptions,\n logger: Logger,\n resource: Resource,\n): NodeSDK {\n const langwatch = getLangWatchConfig(options);\n\n if (langwatch.disabled) {\n logger.warn(\"LangWatch integration disabled, using user-provided SpanProcessors and LogRecordProcessors\");\n } else {\n logger.info(`Using LangWatch ${langwatch.processorType} processors for tracing and logging`);\n }\n\n const spanProcessors: SpanProcessor[] = [];\n const logProcessors: LogRecordProcessor[] = [];\n\n // Console processors\n if (options.debug?.consoleTracing) {\n spanProcessors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));\n logger.debug(\"Console tracing enabled; adding console span exporter\");\n }\n if (options.debug?.consoleLogging) {\n logProcessors.push(new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()));\n logger.debug(\"Console recording of logs enabled; adding console log record processor\");\n }\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n const logExporter = new LangWatchLogsExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n if (langwatch.processorType === 'batch') {\n spanProcessors.push(new BatchSpanProcessor(traceExporter));\n logProcessors.push(new BatchLogRecordProcessor(logExporter));\n logger.debug(`Added LangWatch ${langwatch.processorType} SpanProcessor and LogRecordProcessor to SDK`);\n } else {\n spanProcessors.push(new SimpleSpanProcessor(traceExporter));\n logProcessors.push(new SimpleLogRecordProcessor(logExporter));\n logger.debug(`Added LangWatch ${langwatch.processorType} SpanProcessor and LogRecordProcessor to SDK`);\n }\n }\n\n if (options.traceExporter) {\n spanProcessors.push(new SimpleSpanProcessor(options.traceExporter));\n logger.debug(`Added user-provided SpanProcessor to SDK`);\n }\n\n if (options.spanProcessors?.length) {\n spanProcessors.push(...options.spanProcessors);\n logger.debug(`Added user-provided ${options.spanProcessors.length} SpanProcessors to SDK`);\n }\n if (options.logRecordProcessors?.length) {\n logProcessors.push(...options.logRecordProcessors);\n logger.debug(`Added user-provided ${options.logRecordProcessors.length} LogRecordProcessors to SDK`);\n }\n\n warnIfMisconfigured(options, langwatch, logger);\n\n // Create logger provider\n const loggerProvider = logProcessors.length ? new LoggerProvider({\n resource,\n processors: logProcessors,\n }) : void 0;\n\n if (loggerProvider) {\n logger.debug(\"Created LangWatch logger provider\");\n }\n\n const sdk = new NodeSDK({\n resource,\n serviceName: options.serviceName,\n autoDetectResources: options.autoDetectResources,\n contextManager: options.contextManager,\n textMapPropagator: options.textMapPropagator,\n metricReader: options.metricReader,\n views: options.views,\n resourceDetectors: options.resourceDetectors,\n sampler: options.sampler,\n spanProcessors,\n logRecordProcessors: logProcessors,\n spanLimits: options.spanLimits,\n idGenerator: options.idGenerator,\n instrumentations: options.instrumentations,\n });\n\n sdk.start();\n logger.info(\"NodeSDK started successfully\");\n\n // Fix for Next.js 15: Explicitly verify and register provider if still proxy\n // See: https://github.com/langwatch/langwatch/issues/753\n if (process.env.NEXT_RUNTIME === 'nodejs') {\n // Wait a tick to ensure SDK initialization completes\n setImmediate(() => {\n const globalProvider = trace.getTracerProvider();\n\n // Check if provider is still a proxy (Next.js 15 issue)\n if (globalProvider.constructor.name === 'ProxyTracerProvider') {\n logger.warn('Global provider is still ProxyTracerProvider after SDK start - applying Next.js 15 workaround');\n\n // Access the real provider from the delegate\n const realProvider = (globalProvider as any)._delegate;\n\n if (realProvider?.constructor.name === 'NodeTracerProvider') {\n // Explicitly register the real provider globally\n trace.setGlobalTracerProvider(realProvider);\n logger.info('Successfully registered NodeTracerProvider globally for Next.js 15');\n } else {\n logger.error('Could not find NodeTracerProvider in proxy delegate - spans may not be exported');\n }\n } else {\n logger.debug(`Provider registered correctly: ${globalProvider.constructor.name}`);\n }\n });\n }\n\n if (loggerProvider) {\n setLangWatchLoggerProvider(loggerProvider);\n logger.debug(\"Set LangWatch logger provider\");\n }\n\n if (!options.advanced?.disableAutoShutdown) {\n let isShuttingDown = false;\n\n const gracefulShutdown = async ({ signal, exitAfter }: { signal: string; exitAfter: boolean }) => {\n if (isShuttingDown) return;\n isShuttingDown = true;\n\n logger.debug(`${signal}: shutting down OpenTelemetry...`);\n try {\n await sdk.shutdown();\n logger.debug('OpenTelemetry shutdown complete');\n } catch (err) {\n logger.error('Error shutting down OpenTelemetry', err);\n } finally {\n if (exitAfter) {\n process.exit(0);\n }\n }\n };\n\n // Normal process exit when event loop drains (e.g. CLI scripts, one-shot programs)\n process.on('beforeExit', () => {\n void gracefulShutdown({ signal: 'beforeExit', exitAfter: false });\n });\n\n // Ctrl+C\n process.on('SIGINT', () => {\n void gracefulShutdown({ signal: 'SIGINT', exitAfter: true });\n });\n\n // External kill / Docker stop / k8s pod termination\n process.on('SIGTERM', () => {\n void gracefulShutdown({ signal: 'SIGTERM', exitAfter: true });\n });\n }\n\n return sdk;\n}\n\n/**\n * Ensure observability is set up, but only if not already configured.\n * \n * This is an idempotent function that:\n * - Does nothing if OpenTelemetry is already configured (by you or another library)\n * - Sets up LangWatch observability if no tracer provider exists\n * - Does nothing if LANGWATCH_API_KEY is not set\n * \n * This is useful for libraries/SDKs that want to ensure tracing is available\n * without conflicting with user's existing observability setup.\n * \n * @example\n * ```typescript\n * import { ensureSetup } from \"langwatch/observability/node\";\n * \n * // Safe to call - won't conflict with existing setup\n * ensureSetup();\n * \n * // Now you can use tracing\n * const tracer = trace.getTracer(\"my-app\");\n * ```\n */\nexport const ensureSetup = (): ObservabilityHandle => {\n const globalProvider = trace.getTracerProvider();\n const alreadySetup = isConcreteProvider(globalProvider);\n \n // If already set up, return no-op handle (don't log error, just silently skip)\n if (alreadySetup) {\n return {\n shutdown: async () => {\n // No-op - we didn't set up anything\n },\n };\n }\n \n // If no API key, return no-op handle (can't set up without it)\n if (!process.env.LANGWATCH_API_KEY) {\n return {\n shutdown: async () => {\n // No-op - no API key available\n },\n };\n }\n \n // Set up observability with defaults\n return setupObservability();\n};\n","import {\n defaultResource,\n type Resource,\n resourceFromAttributes,\n} from \"@opentelemetry/resources\";\nimport { type Attributes } from \"@opentelemetry/api\";\nimport * as semconv from \"@opentelemetry/semantic-conventions/incubating\";\nimport {\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_VERSION,\n DEFAULT_SERVICE_NAME,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n} from \"../../internal/constants\";\nimport {\n ATTR_LANGWATCH_SDK_NAME,\n ATTR_LANGWATCH_SDK_VERSION,\n ATTR_LANGWATCH_SDK_LANGUAGE,\n} from \"../semconv/attributes\";\n\n/**\n * Creates a merged resource from the given attributes, service name, and given resource.\n */\nexport function createMergedResource(\n attributes: Attributes | undefined,\n serviceName: string | undefined,\n givenResource: Resource | undefined,\n): Resource {\n const langwatchResource = resourceFromAttributes({\n [ATTR_LANGWATCH_SDK_NAME]: LANGWATCH_SDK_NAME_OBSERVABILITY,\n [ATTR_LANGWATCH_SDK_LANGUAGE]: LANGWATCH_SDK_LANGUAGE,\n [ATTR_LANGWATCH_SDK_VERSION]: LANGWATCH_SDK_VERSION,\n });\n\n const userResource = resourceFromAttributes({\n [semconv.ATTR_SERVICE_NAME]: serviceName ?? DEFAULT_SERVICE_NAME,\n ...(attributes ?? {}),\n });\n\n return (givenResource ?? defaultResource())\n .merge(langwatchResource)\n .merge(userResource);\n}\n\nfunction hasAttachableProcessorRegistry(obj: unknown): boolean {\n if (!obj || typeof obj !== \"object\") return false;\n const candidates = [\n (obj as any)?._activeSpanProcessor?._spanProcessors,\n (obj as any)?.activeSpanProcessor?._spanProcessors,\n (obj as any)?._registeredSpanProcessors,\n ];\n return candidates.some(Array.isArray);\n}\n\n/**\n * Returns the concrete OpenTelemetry provider (NodeTracerProvider or BasicTracerProvider),\n * either from the given provider or its delegate, or undefined if not found.\n */\nexport function getConcreteProvider(provider: unknown): unknown {\n if (!provider || typeof provider !== \"object\") return undefined;\n\n // Check provider itself\n const constructorName = (provider as any).constructor?.name;\n if ([\"NodeTracerProvider\", \"BasicTracerProvider\"].includes(constructorName)) {\n return provider;\n }\n if (typeof (provider as any).addSpanProcessor === \"function\") {\n return provider;\n }\n if (hasAttachableProcessorRegistry(provider)) {\n return provider;\n }\n\n // Check one level of delegate (ProxyTracerProvider pattern)\n let delegate;\n if (typeof (provider as any).getDelegate === \"function\") {\n delegate = (provider as any).getDelegate();\n } else if ((provider as any).delegate) {\n delegate = (provider as any).delegate;\n } else if ((provider as any)._delegate) {\n // Also check for _delegate (OpenTelemetry's actual property name)\n // See: https://github.com/langwatch/langwatch/issues/753\n delegate = (provider as any)._delegate;\n }\n\n if (delegate && typeof delegate === \"object\") {\n const delegateConstructorName = delegate.constructor?.name;\n if ([\"NodeTracerProvider\", \"BasicTracerProvider\"].includes(delegateConstructorName)) {\n return delegate;\n }\n if (typeof delegate.addSpanProcessor === \"function\") {\n return delegate;\n }\n if (hasAttachableProcessorRegistry(delegate)) {\n return delegate;\n }\n }\n\n return void 0;\n}\n\n/**\n * Returns true if the given provider (or its delegate) is a concrete OpenTelemetry provider.\n */\nexport function isConcreteProvider(provider: unknown): boolean {\n return !!getConcreteProvider(provider);\n}\n\n"]}