langwatch 0.33.2 → 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 (775) hide show
  1. package/README.md +10 -8
  2. package/dist/{chunk-YQNOLNAK.mjs → chunk-2O4ILSP5.mjs} +2 -2
  3. package/dist/{chunk-PVOHCPWP.mjs → chunk-3QHURXIZ.mjs} +149 -7
  4. package/dist/chunk-3QHURXIZ.mjs.map +1 -0
  5. package/dist/{chunk-O75KIBCK.js → chunk-53AMPF5E.js} +16 -22
  6. package/dist/chunk-53AMPF5E.js.map +1 -0
  7. package/dist/{chunk-GW2YXZYN.js → chunk-EDWIKCYX.js} +130 -48
  8. package/dist/chunk-EDWIKCYX.js.map +1 -0
  9. package/dist/{chunk-FLYABTMA.js → chunk-HBVGKWJK.js} +160 -18
  10. package/dist/chunk-HBVGKWJK.js.map +1 -0
  11. package/dist/{chunk-2PNM3JZ7.js → chunk-IUSLT65Z.js} +2 -2
  12. package/dist/{chunk-2PNM3JZ7.js.map → chunk-IUSLT65Z.js.map} +1 -1
  13. package/dist/{chunk-QAZHQ7SZ.mjs → chunk-KH2GOLFO.mjs} +104 -22
  14. package/dist/chunk-KH2GOLFO.mjs.map +1 -0
  15. package/dist/{chunk-GVFRS2UN.mjs → chunk-L5KBRKHS.mjs} +111 -5
  16. package/dist/chunk-L5KBRKHS.mjs.map +1 -0
  17. package/dist/chunk-TKSTXX3D.js +239 -0
  18. package/dist/chunk-TKSTXX3D.js.map +1 -0
  19. package/dist/{chunk-QGGX6LSK.mjs → chunk-XMAFHMLS.mjs} +10 -16
  20. package/dist/{chunk-QGGX6LSK.mjs.map → chunk-XMAFHMLS.mjs.map} +1 -1
  21. package/dist/cli/bundle.js +3768 -0
  22. package/dist/cli/index.js +10 -1333
  23. package/dist/{implementation-Cbelb5TK.d.ts → implementation-CMWs8g5L.d.ts} +3 -3
  24. package/dist/{implementation-Oz1fNv8p.d.mts → implementation-Cv1hPZBQ.d.mts} +3 -3
  25. package/dist/index.d.mts +263 -17
  26. package/dist/index.d.ts +263 -17
  27. package/dist/index.js +4838 -1382
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +4808 -1352
  30. package/dist/index.mjs.map +1 -1
  31. package/dist/observability-sdk/index.d.mts +6 -6
  32. package/dist/observability-sdk/index.d.ts +6 -6
  33. package/dist/observability-sdk/index.js +6 -9
  34. package/dist/observability-sdk/index.js.map +1 -1
  35. package/dist/observability-sdk/index.mjs +7 -10
  36. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +2 -2
  37. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +2 -2
  38. package/dist/observability-sdk/instrumentation/langchain/index.js +18 -21
  39. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -1
  40. package/dist/observability-sdk/instrumentation/langchain/index.mjs +3 -6
  41. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -1
  42. package/dist/observability-sdk/setup/node/index.d.mts +2 -2
  43. package/dist/observability-sdk/setup/node/index.d.ts +2 -2
  44. package/dist/observability-sdk/setup/node/index.js +4 -8
  45. package/dist/observability-sdk/setup/node/index.js.map +1 -1
  46. package/dist/observability-sdk/setup/node/index.mjs +3 -7
  47. package/dist/{types-BNbQoBnh.d.mts → types-D-yAkWoC.d.ts} +256 -3
  48. package/dist/{types-Dmazk5Bk.d.mts → types-DLfhJb38.d.mts} +1 -1
  49. package/dist/{types-Dmazk5Bk.d.ts → types-DLfhJb38.d.ts} +1 -1
  50. package/dist/{types-BvCQH8F1.d.ts → types-VOZv9LYO.d.mts} +1 -1
  51. package/dist/{types-BvCQH8F1.d.mts → types-VOZv9LYO.d.ts} +1 -1
  52. package/dist/{types-CmMOt86P.d.ts → types-bfBzGB7S.d.mts} +256 -3
  53. package/package.json +24 -17
  54. package/dist/add-52KP5RUX.mjs +0 -148
  55. package/dist/add-52KP5RUX.mjs.map +0 -1
  56. package/dist/add-7Y6MH725.js +0 -148
  57. package/dist/add-7Y6MH725.js.map +0 -1
  58. package/dist/archive-MHACABLP.js +0 -41
  59. package/dist/archive-MHACABLP.js.map +0 -1
  60. package/dist/archive-ZKTGGFDU.mjs +0 -41
  61. package/dist/archive-ZKTGGFDU.mjs.map +0 -1
  62. package/dist/assign-NCK27ZW5.js +0 -54
  63. package/dist/assign-NCK27ZW5.js.map +0 -1
  64. package/dist/assign-W7HMZLLA.mjs +0 -54
  65. package/dist/assign-W7HMZLLA.mjs.map +0 -1
  66. package/dist/chunk-26WXZOLY.js +0 -70
  67. package/dist/chunk-26WXZOLY.js.map +0 -1
  68. package/dist/chunk-2VVANTLB.js +0 -68
  69. package/dist/chunk-2VVANTLB.js.map +0 -1
  70. package/dist/chunk-2XTZ7GBC.mjs +0 -90
  71. package/dist/chunk-2XTZ7GBC.mjs.map +0 -1
  72. package/dist/chunk-3BDHATON.js +0 -36
  73. package/dist/chunk-3BDHATON.js.map +0 -1
  74. package/dist/chunk-3CPA262Z.mjs +0 -124
  75. package/dist/chunk-3CPA262Z.mjs.map +0 -1
  76. package/dist/chunk-43OERQAS.js +0 -96
  77. package/dist/chunk-43OERQAS.js.map +0 -1
  78. package/dist/chunk-4F3LCT7U.js +0 -42
  79. package/dist/chunk-4F3LCT7U.js.map +0 -1
  80. package/dist/chunk-4VOXYSVX.mjs +0 -196
  81. package/dist/chunk-4VOXYSVX.mjs.map +0 -1
  82. package/dist/chunk-5C7DPGRK.mjs +0 -34
  83. package/dist/chunk-5C7DPGRK.mjs.map +0 -1
  84. package/dist/chunk-5U4XEWEX.mjs +0 -136
  85. package/dist/chunk-5U4XEWEX.mjs.map +0 -1
  86. package/dist/chunk-7YJMKWOH.mjs +0 -80
  87. package/dist/chunk-7YJMKWOH.mjs.map +0 -1
  88. package/dist/chunk-A6HNRJNS.js +0 -92
  89. package/dist/chunk-A6HNRJNS.js.map +0 -1
  90. package/dist/chunk-AJUCX3LD.mjs +0 -40
  91. package/dist/chunk-AJUCX3LD.mjs.map +0 -1
  92. package/dist/chunk-B5TBCV6N.js +0 -96
  93. package/dist/chunk-B5TBCV6N.js.map +0 -1
  94. package/dist/chunk-BAX4W3AY.mjs +0 -62
  95. package/dist/chunk-BAX4W3AY.mjs.map +0 -1
  96. package/dist/chunk-BGYXA2QV.mjs +0 -96
  97. package/dist/chunk-BGYXA2QV.mjs.map +0 -1
  98. package/dist/chunk-BMBIZJCM.js +0 -103
  99. package/dist/chunk-BMBIZJCM.js.map +0 -1
  100. package/dist/chunk-BRPEG3YQ.js +0 -62
  101. package/dist/chunk-BRPEG3YQ.js.map +0 -1
  102. package/dist/chunk-BU2DXABO.mjs +0 -85
  103. package/dist/chunk-BU2DXABO.mjs.map +0 -1
  104. package/dist/chunk-BWALMZEU.mjs +0 -101
  105. package/dist/chunk-BWALMZEU.mjs.map +0 -1
  106. package/dist/chunk-C5Y772G7.js +0 -152
  107. package/dist/chunk-C5Y772G7.js.map +0 -1
  108. package/dist/chunk-C6ZREBUA.js +0 -300
  109. package/dist/chunk-C6ZREBUA.js.map +0 -1
  110. package/dist/chunk-CEJY6QI3.mjs +0 -508
  111. package/dist/chunk-CEJY6QI3.mjs.map +0 -1
  112. package/dist/chunk-CLYXJJ6C.js +0 -66
  113. package/dist/chunk-CLYXJJ6C.js.map +0 -1
  114. package/dist/chunk-COMOCQA6.mjs +0 -13
  115. package/dist/chunk-COMOCQA6.mjs.map +0 -1
  116. package/dist/chunk-DBKEEEEC.js +0 -66
  117. package/dist/chunk-DBKEEEEC.js.map +0 -1
  118. package/dist/chunk-DC7HLQID.mjs +0 -51
  119. package/dist/chunk-DC7HLQID.mjs.map +0 -1
  120. package/dist/chunk-DTEKJ3UD.mjs +0 -66
  121. package/dist/chunk-DTEKJ3UD.mjs.map +0 -1
  122. package/dist/chunk-DZTI6GOB.mjs +0 -36
  123. package/dist/chunk-DZTI6GOB.mjs.map +0 -1
  124. package/dist/chunk-E5ZEMGE7.mjs +0 -63
  125. package/dist/chunk-E5ZEMGE7.mjs.map +0 -1
  126. package/dist/chunk-EGOB3GIL.mjs +0 -156
  127. package/dist/chunk-EGOB3GIL.mjs.map +0 -1
  128. package/dist/chunk-F4FGQZND.mjs +0 -348
  129. package/dist/chunk-F4FGQZND.mjs.map +0 -1
  130. package/dist/chunk-FAXQN7S5.js +0 -68
  131. package/dist/chunk-FAXQN7S5.js.map +0 -1
  132. package/dist/chunk-FG3JQBJB.mjs +0 -68
  133. package/dist/chunk-FG3JQBJB.mjs.map +0 -1
  134. package/dist/chunk-FLYABTMA.js.map +0 -1
  135. package/dist/chunk-FMPW7DZ3.mjs +0 -80
  136. package/dist/chunk-FMPW7DZ3.mjs.map +0 -1
  137. package/dist/chunk-GIT5RVG4.mjs +0 -76
  138. package/dist/chunk-GIT5RVG4.mjs.map +0 -1
  139. package/dist/chunk-GVFRS2UN.mjs.map +0 -1
  140. package/dist/chunk-GW2YXZYN.js.map +0 -1
  141. package/dist/chunk-H2DTN2TK.mjs +0 -70
  142. package/dist/chunk-H2DTN2TK.mjs.map +0 -1
  143. package/dist/chunk-HKFNWLCD.js +0 -663
  144. package/dist/chunk-HKFNWLCD.js.map +0 -1
  145. package/dist/chunk-I2663VLP.js +0 -85
  146. package/dist/chunk-I2663VLP.js.map +0 -1
  147. package/dist/chunk-I6QOTFMP.mjs +0 -53
  148. package/dist/chunk-I6QOTFMP.mjs.map +0 -1
  149. package/dist/chunk-IRBHL4BD.js +0 -80
  150. package/dist/chunk-IRBHL4BD.js.map +0 -1
  151. package/dist/chunk-IRVNIJXP.js +0 -51
  152. package/dist/chunk-IRVNIJXP.js.map +0 -1
  153. package/dist/chunk-IXYZL7U2.js +0 -65
  154. package/dist/chunk-IXYZL7U2.js.map +0 -1
  155. package/dist/chunk-J3KM7ZO7.mjs +0 -152
  156. package/dist/chunk-J3KM7ZO7.mjs.map +0 -1
  157. package/dist/chunk-JBEVRIYW.mjs +0 -894
  158. package/dist/chunk-JBEVRIYW.mjs.map +0 -1
  159. package/dist/chunk-JOLGDU7Q.mjs +0 -65
  160. package/dist/chunk-JOLGDU7Q.mjs.map +0 -1
  161. package/dist/chunk-KT6HZNPV.js +0 -36
  162. package/dist/chunk-KT6HZNPV.js.map +0 -1
  163. package/dist/chunk-KUEKEUKX.mjs +0 -36
  164. package/dist/chunk-KUEKEUKX.mjs.map +0 -1
  165. package/dist/chunk-KW2W5KVS.mjs +0 -22
  166. package/dist/chunk-KW2W5KVS.mjs.map +0 -1
  167. package/dist/chunk-LEJQMDGN.js +0 -894
  168. package/dist/chunk-LEJQMDGN.js.map +0 -1
  169. package/dist/chunk-M3WJZUOE.js +0 -13
  170. package/dist/chunk-M3WJZUOE.js.map +0 -1
  171. package/dist/chunk-M52LTOUT.js +0 -1433
  172. package/dist/chunk-M52LTOUT.js.map +0 -1
  173. package/dist/chunk-MHMMZ653.js +0 -40
  174. package/dist/chunk-MHMMZ653.js.map +0 -1
  175. package/dist/chunk-MLGGUNZK.js +0 -90
  176. package/dist/chunk-MLGGUNZK.js.map +0 -1
  177. package/dist/chunk-N37FLXEP.js +0 -76
  178. package/dist/chunk-N37FLXEP.js.map +0 -1
  179. package/dist/chunk-NC42BNF4.js +0 -63
  180. package/dist/chunk-NC42BNF4.js.map +0 -1
  181. package/dist/chunk-NNPQSPYD.js +0 -348
  182. package/dist/chunk-NNPQSPYD.js.map +0 -1
  183. package/dist/chunk-NW4HASQV.js +0 -80
  184. package/dist/chunk-NW4HASQV.js.map +0 -1
  185. package/dist/chunk-NYCKS3GG.js +0 -20
  186. package/dist/chunk-NYCKS3GG.js.map +0 -1
  187. package/dist/chunk-O444ZEPO.mjs +0 -300
  188. package/dist/chunk-O444ZEPO.mjs.map +0 -1
  189. package/dist/chunk-O75KIBCK.js.map +0 -1
  190. package/dist/chunk-OGAE7BVQ.js +0 -67
  191. package/dist/chunk-OGAE7BVQ.js.map +0 -1
  192. package/dist/chunk-OJ4URNYC.mjs +0 -54
  193. package/dist/chunk-OJ4URNYC.mjs.map +0 -1
  194. package/dist/chunk-ONN7U6WN.js +0 -54
  195. package/dist/chunk-ONN7U6WN.js.map +0 -1
  196. package/dist/chunk-OUJ7Z4TK.mjs +0 -103
  197. package/dist/chunk-OUJ7Z4TK.mjs.map +0 -1
  198. package/dist/chunk-PVOHCPWP.mjs.map +0 -1
  199. package/dist/chunk-PXW5C7HA.js +0 -36
  200. package/dist/chunk-PXW5C7HA.js.map +0 -1
  201. package/dist/chunk-Q7AHHFC3.mjs +0 -20
  202. package/dist/chunk-Q7AHHFC3.mjs.map +0 -1
  203. package/dist/chunk-QAZHQ7SZ.mjs.map +0 -1
  204. package/dist/chunk-R3PLRKDO.mjs +0 -68
  205. package/dist/chunk-R3PLRKDO.mjs.map +0 -1
  206. package/dist/chunk-S4JKLESF.js +0 -124
  207. package/dist/chunk-S4JKLESF.js.map +0 -1
  208. package/dist/chunk-SBBELZKD.js +0 -101
  209. package/dist/chunk-SBBELZKD.js.map +0 -1
  210. package/dist/chunk-SIIRLUO4.js +0 -136
  211. package/dist/chunk-SIIRLUO4.js.map +0 -1
  212. package/dist/chunk-SIXSSID3.mjs +0 -43
  213. package/dist/chunk-SIXSSID3.mjs.map +0 -1
  214. package/dist/chunk-SRGYS3N7.js +0 -196
  215. package/dist/chunk-SRGYS3N7.js.map +0 -1
  216. package/dist/chunk-SUANHT23.mjs +0 -92
  217. package/dist/chunk-SUANHT23.mjs.map +0 -1
  218. package/dist/chunk-SWPMKS2X.mjs +0 -1433
  219. package/dist/chunk-SWPMKS2X.mjs.map +0 -1
  220. package/dist/chunk-T7AFY3JF.js +0 -63
  221. package/dist/chunk-T7AFY3JF.js.map +0 -1
  222. package/dist/chunk-U47MQ6CS.mjs +0 -67
  223. package/dist/chunk-U47MQ6CS.mjs.map +0 -1
  224. package/dist/chunk-U4PE5N4K.js +0 -34
  225. package/dist/chunk-U4PE5N4K.js.map +0 -1
  226. package/dist/chunk-VS22JXRY.js +0 -133
  227. package/dist/chunk-VS22JXRY.js.map +0 -1
  228. package/dist/chunk-W2BNKVWJ.mjs +0 -36
  229. package/dist/chunk-W2BNKVWJ.mjs.map +0 -1
  230. package/dist/chunk-W35QTHIH.mjs +0 -63
  231. package/dist/chunk-W35QTHIH.mjs.map +0 -1
  232. package/dist/chunk-W7DAEYAO.js +0 -53
  233. package/dist/chunk-W7DAEYAO.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-X4BHZH7P.js +0 -156
  237. package/dist/chunk-X4BHZH7P.js.map +0 -1
  238. package/dist/chunk-X6NSR74I.mjs +0 -663
  239. package/dist/chunk-X6NSR74I.mjs.map +0 -1
  240. package/dist/chunk-XHQP55GA.mjs +0 -42
  241. package/dist/chunk-XHQP55GA.mjs.map +0 -1
  242. package/dist/chunk-XLJ5GJTK.mjs +0 -42
  243. package/dist/chunk-XLJ5GJTK.mjs.map +0 -1
  244. package/dist/chunk-XMAAQWBG.mjs +0 -96
  245. package/dist/chunk-XMAAQWBG.mjs.map +0 -1
  246. package/dist/chunk-YBLYQYXL.js +0 -22
  247. package/dist/chunk-YBLYQYXL.js.map +0 -1
  248. package/dist/chunk-YF4IFY2X.js +0 -42
  249. package/dist/chunk-YF4IFY2X.js.map +0 -1
  250. package/dist/chunk-YIACSQXG.mjs +0 -66
  251. package/dist/chunk-YIACSQXG.mjs.map +0 -1
  252. package/dist/chunk-YP4LDCP6.mjs +0 -277
  253. package/dist/chunk-YP4LDCP6.mjs.map +0 -1
  254. package/dist/chunk-ZA5BH7IZ.js +0 -277
  255. package/dist/chunk-ZA5BH7IZ.js.map +0 -1
  256. package/dist/chunk-ZFFJYYDN.js +0 -508
  257. package/dist/chunk-ZFFJYYDN.js.map +0 -1
  258. package/dist/cli/index.d.mts +0 -1
  259. package/dist/cli/index.d.ts +0 -1
  260. package/dist/cli/index.js.map +0 -1
  261. package/dist/cli/index.mjs +0 -1334
  262. package/dist/cli/index.mjs.map +0 -1
  263. package/dist/config-QAMXJYXX.js +0 -96
  264. package/dist/config-QAMXJYXX.js.map +0 -1
  265. package/dist/config-VPRQKJMJ.mjs +0 -96
  266. package/dist/config-VPRQKJMJ.mjs.map +0 -1
  267. package/dist/create-2FRM4WVA.mjs +0 -52
  268. package/dist/create-2FRM4WVA.mjs.map +0 -1
  269. package/dist/create-34FEJBYM.js +0 -49
  270. package/dist/create-34FEJBYM.js.map +0 -1
  271. package/dist/create-36DDGEPS.js +0 -50
  272. package/dist/create-36DDGEPS.js.map +0 -1
  273. package/dist/create-3IUBLMI7.mjs +0 -43
  274. package/dist/create-3IUBLMI7.mjs.map +0 -1
  275. package/dist/create-3NCRMEMB.mjs +0 -72
  276. package/dist/create-3NCRMEMB.mjs.map +0 -1
  277. package/dist/create-4GFIXF5E.mjs +0 -58
  278. package/dist/create-4GFIXF5E.mjs.map +0 -1
  279. package/dist/create-4ODQ66VV.mjs +0 -91
  280. package/dist/create-4ODQ66VV.mjs.map +0 -1
  281. package/dist/create-5TFOS2OJ.mjs +0 -42
  282. package/dist/create-5TFOS2OJ.mjs.map +0 -1
  283. package/dist/create-7OBPYNWK.js +0 -42
  284. package/dist/create-7OBPYNWK.js.map +0 -1
  285. package/dist/create-ACC73K6P.mjs +0 -87
  286. package/dist/create-ACC73K6P.mjs.map +0 -1
  287. package/dist/create-DRTKTUVY.js +0 -48
  288. package/dist/create-DRTKTUVY.js.map +0 -1
  289. package/dist/create-DYCE3DG5.mjs +0 -75
  290. package/dist/create-DYCE3DG5.mjs.map +0 -1
  291. package/dist/create-EASGLRR7.js +0 -58
  292. package/dist/create-EASGLRR7.js.map +0 -1
  293. package/dist/create-EBEOJS2H.mjs +0 -50
  294. package/dist/create-EBEOJS2H.mjs.map +0 -1
  295. package/dist/create-FJMGFFCM.mjs +0 -92
  296. package/dist/create-FJMGFFCM.mjs.map +0 -1
  297. package/dist/create-I5INSZYR.mjs +0 -88
  298. package/dist/create-I5INSZYR.mjs.map +0 -1
  299. package/dist/create-IPLFOXBK.js +0 -91
  300. package/dist/create-IPLFOXBK.js.map +0 -1
  301. package/dist/create-IZAVSAXI.js +0 -72
  302. package/dist/create-IZAVSAXI.js.map +0 -1
  303. package/dist/create-P3647AMU.mjs +0 -94
  304. package/dist/create-P3647AMU.mjs.map +0 -1
  305. package/dist/create-PL3BMGB5.js +0 -43
  306. package/dist/create-PL3BMGB5.js.map +0 -1
  307. package/dist/create-Q6WY7YSF.js +0 -52
  308. package/dist/create-Q6WY7YSF.js.map +0 -1
  309. package/dist/create-RGZUQUZO.js +0 -94
  310. package/dist/create-RGZUQUZO.js.map +0 -1
  311. package/dist/create-SPAXSFIN.mjs +0 -88
  312. package/dist/create-SPAXSFIN.mjs.map +0 -1
  313. package/dist/create-SYHW6YGS.js +0 -88
  314. package/dist/create-SYHW6YGS.js.map +0 -1
  315. package/dist/create-T3V4JRJQ.mjs +0 -71
  316. package/dist/create-T3V4JRJQ.mjs.map +0 -1
  317. package/dist/create-TCP2VODP.js +0 -88
  318. package/dist/create-TCP2VODP.js.map +0 -1
  319. package/dist/create-TZ76BDWV.mjs +0 -49
  320. package/dist/create-TZ76BDWV.mjs.map +0 -1
  321. package/dist/create-UKY4IZ7G.js +0 -87
  322. package/dist/create-UKY4IZ7G.js.map +0 -1
  323. package/dist/create-WGU3PIT2.js +0 -71
  324. package/dist/create-WGU3PIT2.js.map +0 -1
  325. package/dist/create-WTO4NPVP.js +0 -75
  326. package/dist/create-WTO4NPVP.js.map +0 -1
  327. package/dist/create-XPJS3IZT.mjs +0 -48
  328. package/dist/create-XPJS3IZT.mjs.map +0 -1
  329. package/dist/create-ZBLKIRIH.js +0 -23
  330. package/dist/create-ZBLKIRIH.js.map +0 -1
  331. package/dist/create-ZU4LXLBN.mjs +0 -23
  332. package/dist/create-ZU4LXLBN.mjs.map +0 -1
  333. package/dist/create-ZW3J4VVP.js +0 -92
  334. package/dist/create-ZW3J4VVP.js.map +0 -1
  335. package/dist/delete-3PMEY5RH.mjs +0 -42
  336. package/dist/delete-3PMEY5RH.mjs.map +0 -1
  337. package/dist/delete-6FRZ6LJJ.mjs +0 -61
  338. package/dist/delete-6FRZ6LJJ.mjs.map +0 -1
  339. package/dist/delete-7KSO3V3O.js +0 -39
  340. package/dist/delete-7KSO3V3O.js.map +0 -1
  341. package/dist/delete-BPKFSXIY.js +0 -52
  342. package/dist/delete-BPKFSXIY.js.map +0 -1
  343. package/dist/delete-BSYUEGEX.js +0 -52
  344. package/dist/delete-BSYUEGEX.js.map +0 -1
  345. package/dist/delete-DOIVCA44.js +0 -52
  346. package/dist/delete-DOIVCA44.js.map +0 -1
  347. package/dist/delete-DSDE42CQ.js +0 -41
  348. package/dist/delete-DSDE42CQ.js.map +0 -1
  349. package/dist/delete-E2O6CPEK.mjs +0 -38
  350. package/dist/delete-E2O6CPEK.mjs.map +0 -1
  351. package/dist/delete-FLA25Y4H.js +0 -39
  352. package/dist/delete-FLA25Y4H.js.map +0 -1
  353. package/dist/delete-G5IYZ6R5.mjs +0 -59
  354. package/dist/delete-G5IYZ6R5.mjs.map +0 -1
  355. package/dist/delete-HZIBPYQY.js +0 -61
  356. package/dist/delete-HZIBPYQY.js.map +0 -1
  357. package/dist/delete-IRJG3K2J.mjs +0 -41
  358. package/dist/delete-IRJG3K2J.mjs.map +0 -1
  359. package/dist/delete-JMX33YI4.mjs +0 -52
  360. package/dist/delete-JMX33YI4.mjs.map +0 -1
  361. package/dist/delete-KNAPRRCM.js +0 -44
  362. package/dist/delete-KNAPRRCM.js.map +0 -1
  363. package/dist/delete-M7EG5VPB.mjs +0 -39
  364. package/dist/delete-M7EG5VPB.mjs.map +0 -1
  365. package/dist/delete-MSAI4E5L.js +0 -52
  366. package/dist/delete-MSAI4E5L.js.map +0 -1
  367. package/dist/delete-NH4NQLFP.mjs +0 -57
  368. package/dist/delete-NH4NQLFP.mjs.map +0 -1
  369. package/dist/delete-NPKRSFGU.js +0 -57
  370. package/dist/delete-NPKRSFGU.js.map +0 -1
  371. package/dist/delete-POZCY7IQ.mjs +0 -52
  372. package/dist/delete-POZCY7IQ.mjs.map +0 -1
  373. package/dist/delete-R2HXHQBB.js +0 -42
  374. package/dist/delete-R2HXHQBB.js.map +0 -1
  375. package/dist/delete-TSXQER52.js +0 -59
  376. package/dist/delete-TSXQER52.js.map +0 -1
  377. package/dist/delete-U655HP5R.mjs +0 -39
  378. package/dist/delete-U655HP5R.mjs.map +0 -1
  379. package/dist/delete-UERL72WN.js +0 -38
  380. package/dist/delete-UERL72WN.js.map +0 -1
  381. package/dist/delete-UTKUA6Z4.mjs +0 -52
  382. package/dist/delete-UTKUA6Z4.mjs.map +0 -1
  383. package/dist/delete-WP3JYGLE.mjs +0 -59
  384. package/dist/delete-WP3JYGLE.mjs.map +0 -1
  385. package/dist/delete-X6JLYJCH.js +0 -59
  386. package/dist/delete-X6JLYJCH.js.map +0 -1
  387. package/dist/delete-XAUAF53M.mjs +0 -52
  388. package/dist/delete-XAUAF53M.mjs.map +0 -1
  389. package/dist/delete-YT3ID37D.mjs +0 -44
  390. package/dist/delete-YT3ID37D.mjs.map +0 -1
  391. package/dist/docs-23TMQCLZ.js +0 -77
  392. package/dist/docs-23TMQCLZ.js.map +0 -1
  393. package/dist/docs-YG2DQVHD.mjs +0 -77
  394. package/dist/docs-YG2DQVHD.mjs.map +0 -1
  395. package/dist/download-F2DXRLJP.mjs +0 -100
  396. package/dist/download-F2DXRLJP.mjs.map +0 -1
  397. package/dist/download-PK2DSPEO.js +0 -100
  398. package/dist/download-PK2DSPEO.js.map +0 -1
  399. package/dist/duplicate-B7OUVDVB.mjs +0 -45
  400. package/dist/duplicate-B7OUVDVB.mjs.map +0 -1
  401. package/dist/duplicate-IGMNYMPS.js +0 -45
  402. package/dist/duplicate-IGMNYMPS.js.map +0 -1
  403. package/dist/export-SNBK2AV4.mjs +0 -103
  404. package/dist/export-SNBK2AV4.mjs.map +0 -1
  405. package/dist/export-VIEFMUVQ.js +0 -103
  406. package/dist/export-VIEFMUVQ.js.map +0 -1
  407. package/dist/get-45ULRVIG.js +0 -49
  408. package/dist/get-45ULRVIG.js.map +0 -1
  409. package/dist/get-4NKLZBDS.mjs +0 -85
  410. package/dist/get-4NKLZBDS.mjs.map +0 -1
  411. package/dist/get-5HAYNLXN.js +0 -85
  412. package/dist/get-5HAYNLXN.js.map +0 -1
  413. package/dist/get-6CNGBUW6.js +0 -71
  414. package/dist/get-6CNGBUW6.js.map +0 -1
  415. package/dist/get-6ECLGAOQ.js +0 -67
  416. package/dist/get-6ECLGAOQ.js.map +0 -1
  417. package/dist/get-ATD54O5U.js +0 -94
  418. package/dist/get-ATD54O5U.js.map +0 -1
  419. package/dist/get-BOXL42XW.mjs +0 -66
  420. package/dist/get-BOXL42XW.mjs.map +0 -1
  421. package/dist/get-C6OSKZH3.js +0 -51
  422. package/dist/get-C6OSKZH3.js.map +0 -1
  423. package/dist/get-C7SCGYAT.js +0 -70
  424. package/dist/get-C7SCGYAT.js.map +0 -1
  425. package/dist/get-CLTPKM7D.mjs +0 -68
  426. package/dist/get-CLTPKM7D.mjs.map +0 -1
  427. package/dist/get-CRGWXOZP.mjs +0 -70
  428. package/dist/get-CRGWXOZP.mjs.map +0 -1
  429. package/dist/get-D6SHECLX.mjs +0 -51
  430. package/dist/get-D6SHECLX.mjs.map +0 -1
  431. package/dist/get-EH37CXA2.js +0 -149
  432. package/dist/get-EH37CXA2.js.map +0 -1
  433. package/dist/get-FBWUXIQN.js +0 -76
  434. package/dist/get-FBWUXIQN.js.map +0 -1
  435. package/dist/get-FCJFZY5M.js +0 -56
  436. package/dist/get-FCJFZY5M.js.map +0 -1
  437. package/dist/get-H3DWTNDA.js +0 -71
  438. package/dist/get-H3DWTNDA.js.map +0 -1
  439. package/dist/get-JKRW7OHW.mjs +0 -52
  440. package/dist/get-JKRW7OHW.mjs.map +0 -1
  441. package/dist/get-KS3QMH5A.mjs +0 -76
  442. package/dist/get-KS3QMH5A.mjs.map +0 -1
  443. package/dist/get-NP6FEVLY.mjs +0 -49
  444. package/dist/get-NP6FEVLY.mjs.map +0 -1
  445. package/dist/get-P7W3V3CB.mjs +0 -52
  446. package/dist/get-P7W3V3CB.mjs.map +0 -1
  447. package/dist/get-QO7VEIRN.mjs +0 -149
  448. package/dist/get-QO7VEIRN.mjs.map +0 -1
  449. package/dist/get-QUXBSMZE.js +0 -52
  450. package/dist/get-QUXBSMZE.js.map +0 -1
  451. package/dist/get-ROAE6T5N.mjs +0 -56
  452. package/dist/get-ROAE6T5N.mjs.map +0 -1
  453. package/dist/get-RYIZPF25.mjs +0 -71
  454. package/dist/get-RYIZPF25.mjs.map +0 -1
  455. package/dist/get-T5BHOLX2.js +0 -68
  456. package/dist/get-T5BHOLX2.js.map +0 -1
  457. package/dist/get-TITUKTHE.mjs +0 -71
  458. package/dist/get-TITUKTHE.mjs.map +0 -1
  459. package/dist/get-UOZBGGCG.mjs +0 -71
  460. package/dist/get-UOZBGGCG.mjs.map +0 -1
  461. package/dist/get-WW7HVSUY.mjs +0 -67
  462. package/dist/get-WW7HVSUY.mjs.map +0 -1
  463. package/dist/get-XDNDTHQU.js +0 -71
  464. package/dist/get-XDNDTHQU.js.map +0 -1
  465. package/dist/get-YPCHKUHM.js +0 -52
  466. package/dist/get-YPCHKUHM.js.map +0 -1
  467. package/dist/get-ZLSHYP57.js +0 -66
  468. package/dist/get-ZLSHYP57.js.map +0 -1
  469. package/dist/get-ZXTDMVWX.mjs +0 -94
  470. package/dist/get-ZXTDMVWX.mjs.map +0 -1
  471. package/dist/health-LCGP7UDT.js +0 -73
  472. package/dist/health-LCGP7UDT.js.map +0 -1
  473. package/dist/health-MCMRR6RQ.mjs +0 -73
  474. package/dist/health-MCMRR6RQ.mjs.map +0 -1
  475. package/dist/ingestion-templates-7TLETXIF.mjs +0 -169
  476. package/dist/ingestion-templates-7TLETXIF.mjs.map +0 -1
  477. package/dist/ingestion-templates-AT5AKWJB.js +0 -169
  478. package/dist/ingestion-templates-AT5AKWJB.js.map +0 -1
  479. package/dist/init-SQ5UUFDM.js +0 -16
  480. package/dist/init-SQ5UUFDM.js.map +0 -1
  481. package/dist/init-UGSR2T2P.mjs +0 -16
  482. package/dist/init-UGSR2T2P.mjs.map +0 -1
  483. package/dist/init-shell-AEPYN2KV.mjs +0 -72
  484. package/dist/init-shell-AEPYN2KV.mjs.map +0 -1
  485. package/dist/init-shell-ULEEQ522.js +0 -72
  486. package/dist/init-shell-ULEEQ522.js.map +0 -1
  487. package/dist/install-PQACVMPW.mjs +0 -191
  488. package/dist/install-PQACVMPW.mjs.map +0 -1
  489. package/dist/install-UAGU7V2O.js +0 -191
  490. package/dist/install-UAGU7V2O.js.map +0 -1
  491. package/dist/list-44QMJJBX.js +0 -82
  492. package/dist/list-44QMJJBX.js.map +0 -1
  493. package/dist/list-45DYTLFR.js +0 -86
  494. package/dist/list-45DYTLFR.js.map +0 -1
  495. package/dist/list-53O3I5OT.js +0 -53
  496. package/dist/list-53O3I5OT.js.map +0 -1
  497. package/dist/list-5RDJDIDE.js +0 -78
  498. package/dist/list-5RDJDIDE.js.map +0 -1
  499. package/dist/list-6ZUZ54WZ.mjs +0 -83
  500. package/dist/list-6ZUZ54WZ.mjs.map +0 -1
  501. package/dist/list-7TJVXJW3.mjs +0 -75
  502. package/dist/list-7TJVXJW3.mjs.map +0 -1
  503. package/dist/list-B5QJP7XO.mjs +0 -122
  504. package/dist/list-B5QJP7XO.mjs.map +0 -1
  505. package/dist/list-BJXU6QSV.js +0 -87
  506. package/dist/list-BJXU6QSV.js.map +0 -1
  507. package/dist/list-C4TIICKC.mjs +0 -82
  508. package/dist/list-C4TIICKC.mjs.map +0 -1
  509. package/dist/list-CH36A6CW.js +0 -80
  510. package/dist/list-CH36A6CW.js.map +0 -1
  511. package/dist/list-CSPHALVP.mjs +0 -111
  512. package/dist/list-CSPHALVP.mjs.map +0 -1
  513. package/dist/list-CSZZQTHD.mjs +0 -82
  514. package/dist/list-CSZZQTHD.mjs.map +0 -1
  515. package/dist/list-DEQI2KOQ.js +0 -72
  516. package/dist/list-DEQI2KOQ.js.map +0 -1
  517. package/dist/list-FJ2T2GJT.js +0 -104
  518. package/dist/list-FJ2T2GJT.js.map +0 -1
  519. package/dist/list-FRLZQVS6.js +0 -71
  520. package/dist/list-FRLZQVS6.js.map +0 -1
  521. package/dist/list-FYKAGJ6V.mjs +0 -87
  522. package/dist/list-FYKAGJ6V.mjs.map +0 -1
  523. package/dist/list-G3ASKJUN.mjs +0 -104
  524. package/dist/list-G3ASKJUN.mjs.map +0 -1
  525. package/dist/list-GGTQOQA4.js +0 -111
  526. package/dist/list-GGTQOQA4.js.map +0 -1
  527. package/dist/list-GL4SXZ2E.js +0 -82
  528. package/dist/list-GL4SXZ2E.js.map +0 -1
  529. package/dist/list-GYJNBKUF.mjs +0 -53
  530. package/dist/list-GYJNBKUF.mjs.map +0 -1
  531. package/dist/list-J33YMH3T.js +0 -78
  532. package/dist/list-J33YMH3T.js.map +0 -1
  533. package/dist/list-J55FWBDR.js +0 -75
  534. package/dist/list-J55FWBDR.js.map +0 -1
  535. package/dist/list-JMX456IB.js +0 -75
  536. package/dist/list-JMX456IB.js.map +0 -1
  537. package/dist/list-KX4MIAJE.mjs +0 -85
  538. package/dist/list-KX4MIAJE.mjs.map +0 -1
  539. package/dist/list-L33MTOSA.mjs +0 -80
  540. package/dist/list-L33MTOSA.mjs.map +0 -1
  541. package/dist/list-LKF24T6D.js +0 -83
  542. package/dist/list-LKF24T6D.js.map +0 -1
  543. package/dist/list-M3IEVLUD.mjs +0 -86
  544. package/dist/list-M3IEVLUD.mjs.map +0 -1
  545. package/dist/list-M77G2Y5F.js +0 -76
  546. package/dist/list-M77G2Y5F.js.map +0 -1
  547. package/dist/list-MSIHIWG5.js +0 -80
  548. package/dist/list-MSIHIWG5.js.map +0 -1
  549. package/dist/list-N4LN7RVG.mjs +0 -90
  550. package/dist/list-N4LN7RVG.mjs.map +0 -1
  551. package/dist/list-OZDM5FA6.mjs +0 -75
  552. package/dist/list-OZDM5FA6.mjs.map +0 -1
  553. package/dist/list-PKDYDBNU.js +0 -75
  554. package/dist/list-PKDYDBNU.js.map +0 -1
  555. package/dist/list-PYQZKUBA.js +0 -85
  556. package/dist/list-PYQZKUBA.js.map +0 -1
  557. package/dist/list-QZZLS5TP.js +0 -78
  558. package/dist/list-QZZLS5TP.js.map +0 -1
  559. package/dist/list-R4SZ3SMF.mjs +0 -78
  560. package/dist/list-R4SZ3SMF.mjs.map +0 -1
  561. package/dist/list-TAFBD6EY.mjs +0 -71
  562. package/dist/list-TAFBD6EY.mjs.map +0 -1
  563. package/dist/list-VJL5TZ4T.mjs +0 -72
  564. package/dist/list-VJL5TZ4T.mjs.map +0 -1
  565. package/dist/list-VKNEMSY4.mjs +0 -80
  566. package/dist/list-VKNEMSY4.mjs.map +0 -1
  567. package/dist/list-WJNJNMQC.mjs +0 -75
  568. package/dist/list-WJNJNMQC.mjs.map +0 -1
  569. package/dist/list-XRW6CP7E.js +0 -90
  570. package/dist/list-XRW6CP7E.js.map +0 -1
  571. package/dist/list-YAR5NB2Q.mjs +0 -76
  572. package/dist/list-YAR5NB2Q.mjs.map +0 -1
  573. package/dist/list-YUYYYQ7E.js +0 -122
  574. package/dist/list-YUYYYQ7E.js.map +0 -1
  575. package/dist/list-Z3YOLIK2.mjs +0 -78
  576. package/dist/list-Z3YOLIK2.mjs.map +0 -1
  577. package/dist/list-Z6OG6DLD.mjs +0 -78
  578. package/dist/list-Z6OG6DLD.mjs.map +0 -1
  579. package/dist/login-7N3FOJOH.mjs +0 -280
  580. package/dist/login-7N3FOJOH.mjs.map +0 -1
  581. package/dist/login-JC4YGO3M.js +0 -280
  582. package/dist/login-JC4YGO3M.js.map +0 -1
  583. package/dist/logout-device-J325Y37F.js +0 -39
  584. package/dist/logout-device-J325Y37F.js.map +0 -1
  585. package/dist/logout-device-JOPQKPFL.mjs +0 -39
  586. package/dist/logout-device-JOPQKPFL.mjs.map +0 -1
  587. package/dist/open-2IGFGDDB.mjs +0 -47
  588. package/dist/open-2IGFGDDB.mjs.map +0 -1
  589. package/dist/open-TCBDPKWM.js +0 -47
  590. package/dist/open-TCBDPKWM.js.map +0 -1
  591. package/dist/pull-GBTWGZX6.js +0 -27
  592. package/dist/pull-GBTWGZX6.js.map +0 -1
  593. package/dist/pull-VHGPIULB.mjs +0 -27
  594. package/dist/pull-VHGPIULB.mjs.map +0 -1
  595. package/dist/push-5CNRDWJU.js +0 -27
  596. package/dist/push-5CNRDWJU.js.map +0 -1
  597. package/dist/push-ZPL2UNNV.mjs +0 -27
  598. package/dist/push-ZPL2UNNV.mjs.map +0 -1
  599. package/dist/query-5R2V74N2.js +0 -122
  600. package/dist/query-5R2V74N2.js.map +0 -1
  601. package/dist/query-PRJT7GQY.mjs +0 -122
  602. package/dist/query-PRJT7GQY.mjs.map +0 -1
  603. package/dist/records-add-E3S34UNT.js +0 -98
  604. package/dist/records-add-E3S34UNT.js.map +0 -1
  605. package/dist/records-add-P2FTGDNL.mjs +0 -98
  606. package/dist/records-add-P2FTGDNL.mjs.map +0 -1
  607. package/dist/records-delete-GCB6S4F3.js +0 -46
  608. package/dist/records-delete-GCB6S4F3.js.map +0 -1
  609. package/dist/records-delete-TZATYNEX.mjs +0 -46
  610. package/dist/records-delete-TZATYNEX.mjs.map +0 -1
  611. package/dist/records-list-AI5CT26J.mjs +0 -89
  612. package/dist/records-list-AI5CT26J.mjs.map +0 -1
  613. package/dist/records-list-XXOWLCZT.js +0 -89
  614. package/dist/records-list-XXOWLCZT.js.map +0 -1
  615. package/dist/records-update-TK3HWM2C.mjs +0 -53
  616. package/dist/records-update-TK3HWM2C.mjs.map +0 -1
  617. package/dist/records-update-ZVKQVZHW.js +0 -53
  618. package/dist/records-update-ZVKQVZHW.js.map +0 -1
  619. package/dist/remove-DPTA2GMZ.js +0 -114
  620. package/dist/remove-DPTA2GMZ.js.map +0 -1
  621. package/dist/remove-XAF4RTKP.mjs +0 -114
  622. package/dist/remove-XAF4RTKP.mjs.map +0 -1
  623. package/dist/rename-AAQZTQCF.mjs +0 -42
  624. package/dist/rename-AAQZTQCF.mjs.map +0 -1
  625. package/dist/rename-YG4P5PRQ.js +0 -42
  626. package/dist/rename-YG4P5PRQ.js.map +0 -1
  627. package/dist/request-increase-FLFEPGIC.js +0 -37
  628. package/dist/request-increase-FLFEPGIC.js.map +0 -1
  629. package/dist/request-increase-NHM27JXH.mjs +0 -37
  630. package/dist/request-increase-NHM27JXH.mjs.map +0 -1
  631. package/dist/restore-6TIHZUPS.js +0 -73
  632. package/dist/restore-6TIHZUPS.js.map +0 -1
  633. package/dist/restore-VJDHJ7Y3.mjs +0 -73
  634. package/dist/restore-VJDHJ7Y3.mjs.map +0 -1
  635. package/dist/revoke-7HUYDQZ6.mjs +0 -44
  636. package/dist/revoke-7HUYDQZ6.mjs.map +0 -1
  637. package/dist/revoke-OHOLPKBQ.js +0 -44
  638. package/dist/revoke-OHOLPKBQ.js.map +0 -1
  639. package/dist/revoke-OQQ56B2Z.js +0 -41
  640. package/dist/revoke-OQQ56B2Z.js.map +0 -1
  641. package/dist/revoke-UUVPYOPV.mjs +0 -41
  642. package/dist/revoke-UUVPYOPV.mjs.map +0 -1
  643. package/dist/rotate-D2QBTQC7.js +0 -52
  644. package/dist/rotate-D2QBTQC7.js.map +0 -1
  645. package/dist/rotate-MU4L6YPU.mjs +0 -52
  646. package/dist/rotate-MU4L6YPU.mjs.map +0 -1
  647. package/dist/run-2KISYEZP.js +0 -83
  648. package/dist/run-2KISYEZP.js.map +0 -1
  649. package/dist/run-ARQ7O43R.js +0 -142
  650. package/dist/run-ARQ7O43R.js.map +0 -1
  651. package/dist/run-D4YIYYTE.mjs +0 -144
  652. package/dist/run-D4YIYYTE.mjs.map +0 -1
  653. package/dist/run-GC3RJI74.mjs +0 -131
  654. package/dist/run-GC3RJI74.mjs.map +0 -1
  655. package/dist/run-HPDENKM2.js +0 -77
  656. package/dist/run-HPDENKM2.js.map +0 -1
  657. package/dist/run-NRODARJS.js +0 -144
  658. package/dist/run-NRODARJS.js.map +0 -1
  659. package/dist/run-PC5KFO4B.mjs +0 -142
  660. package/dist/run-PC5KFO4B.mjs.map +0 -1
  661. package/dist/run-URPG3S24.mjs +0 -83
  662. package/dist/run-URPG3S24.mjs.map +0 -1
  663. package/dist/run-V3O4TEQ2.js +0 -131
  664. package/dist/run-V3O4TEQ2.js.map +0 -1
  665. package/dist/run-WWBEHGYG.mjs +0 -77
  666. package/dist/run-WWBEHGYG.mjs.map +0 -1
  667. package/dist/search-L7IAXT4D.mjs +0 -108
  668. package/dist/search-L7IAXT4D.mjs.map +0 -1
  669. package/dist/search-M34FSP25.js +0 -108
  670. package/dist/search-M34FSP25.js.map +0 -1
  671. package/dist/set-5YJE4NOS.mjs +0 -105
  672. package/dist/set-5YJE4NOS.mjs.map +0 -1
  673. package/dist/set-6QKEZXES.js +0 -59
  674. package/dist/set-6QKEZXES.js.map +0 -1
  675. package/dist/set-ECD6VHQI.js +0 -105
  676. package/dist/set-ECD6VHQI.js.map +0 -1
  677. package/dist/set-X7XDEFU5.mjs +0 -59
  678. package/dist/set-X7XDEFU5.mjs.map +0 -1
  679. package/dist/status-6UGUEKSC.mjs +0 -120
  680. package/dist/status-6UGUEKSC.mjs.map +0 -1
  681. package/dist/status-DOPST7HX.js +0 -120
  682. package/dist/status-DOPST7HX.js.map +0 -1
  683. package/dist/status-GSPWZ255.mjs +0 -56
  684. package/dist/status-GSPWZ255.mjs.map +0 -1
  685. package/dist/status-M4GI2HR3.js +0 -56
  686. package/dist/status-M4GI2HR3.js.map +0 -1
  687. package/dist/status-PXWG34DC.mjs +0 -153
  688. package/dist/status-PXWG34DC.mjs.map +0 -1
  689. package/dist/status-TA4AIE6X.js +0 -153
  690. package/dist/status-TA4AIE6X.js.map +0 -1
  691. package/dist/sync-IVZ5VCKT.js +0 -132
  692. package/dist/sync-IVZ5VCKT.js.map +0 -1
  693. package/dist/sync-JRLKLXA6.mjs +0 -132
  694. package/dist/sync-JRLKLXA6.mjs.map +0 -1
  695. package/dist/tail-CKK6GFNI.js +0 -108
  696. package/dist/tail-CKK6GFNI.js.map +0 -1
  697. package/dist/tail-D26CEKSH.mjs +0 -108
  698. package/dist/tail-D26CEKSH.mjs.map +0 -1
  699. package/dist/unset-GLPKW2JV.js +0 -107
  700. package/dist/unset-GLPKW2JV.js.map +0 -1
  701. package/dist/unset-WSH675SN.mjs +0 -107
  702. package/dist/unset-WSH675SN.mjs.map +0 -1
  703. package/dist/update-3EI6SA7W.mjs +0 -65
  704. package/dist/update-3EI6SA7W.mjs.map +0 -1
  705. package/dist/update-3YLN3YXF.mjs +0 -83
  706. package/dist/update-3YLN3YXF.mjs.map +0 -1
  707. package/dist/update-4DSTSBSA.js +0 -51
  708. package/dist/update-4DSTSBSA.js.map +0 -1
  709. package/dist/update-4IRKH5VI.js +0 -48
  710. package/dist/update-4IRKH5VI.js.map +0 -1
  711. package/dist/update-62D6MLES.mjs +0 -79
  712. package/dist/update-62D6MLES.mjs.map +0 -1
  713. package/dist/update-7YUF7UJG.js +0 -61
  714. package/dist/update-7YUF7UJG.js.map +0 -1
  715. package/dist/update-AS7FCV5B.mjs +0 -61
  716. package/dist/update-AS7FCV5B.mjs.map +0 -1
  717. package/dist/update-BNJEOWPP.mjs +0 -71
  718. package/dist/update-BNJEOWPP.mjs.map +0 -1
  719. package/dist/update-CU4Z6XQR.mjs +0 -106
  720. package/dist/update-CU4Z6XQR.mjs.map +0 -1
  721. package/dist/update-DSRRR6J7.js +0 -76
  722. package/dist/update-DSRRR6J7.js.map +0 -1
  723. package/dist/update-E6BQSBVN.mjs +0 -63
  724. package/dist/update-E6BQSBVN.mjs.map +0 -1
  725. package/dist/update-ELVULBIN.mjs +0 -63
  726. package/dist/update-ELVULBIN.mjs.map +0 -1
  727. package/dist/update-EWBAZK64.mjs +0 -48
  728. package/dist/update-EWBAZK64.mjs.map +0 -1
  729. package/dist/update-EWS5LIXP.mjs +0 -51
  730. package/dist/update-EWS5LIXP.mjs.map +0 -1
  731. package/dist/update-G2LS465K.js +0 -65
  732. package/dist/update-G2LS465K.js.map +0 -1
  733. package/dist/update-GEKVSLEY.js +0 -79
  734. package/dist/update-GEKVSLEY.js.map +0 -1
  735. package/dist/update-GFAZJBC2.mjs +0 -75
  736. package/dist/update-GFAZJBC2.mjs.map +0 -1
  737. package/dist/update-JJDVXFLD.mjs +0 -48
  738. package/dist/update-JJDVXFLD.mjs.map +0 -1
  739. package/dist/update-JXSPKDKA.mjs +0 -66
  740. package/dist/update-JXSPKDKA.mjs.map +0 -1
  741. package/dist/update-KDJ64TZ2.js +0 -48
  742. package/dist/update-KDJ64TZ2.js.map +0 -1
  743. package/dist/update-MF56UHWY.js +0 -106
  744. package/dist/update-MF56UHWY.js.map +0 -1
  745. package/dist/update-MTHJCYKT.js +0 -63
  746. package/dist/update-MTHJCYKT.js.map +0 -1
  747. package/dist/update-NGJUN2VK.mjs +0 -76
  748. package/dist/update-NGJUN2VK.mjs.map +0 -1
  749. package/dist/update-SFGJMGKD.js +0 -75
  750. package/dist/update-SFGJMGKD.js.map +0 -1
  751. package/dist/update-SZNXZ7Y3.js +0 -83
  752. package/dist/update-SZNXZ7Y3.js.map +0 -1
  753. package/dist/update-UJYDVNOF.js +0 -63
  754. package/dist/update-UJYDVNOF.js.map +0 -1
  755. package/dist/update-XNHGNAQL.js +0 -66
  756. package/dist/update-XNHGNAQL.js.map +0 -1
  757. package/dist/update-YA6C47QH.js +0 -71
  758. package/dist/update-YA6C47QH.js.map +0 -1
  759. package/dist/upload-FXQRYNQC.js +0 -80
  760. package/dist/upload-FXQRYNQC.js.map +0 -1
  761. package/dist/upload-LERNY5WA.mjs +0 -80
  762. package/dist/upload-LERNY5WA.mjs.map +0 -1
  763. package/dist/versions-FI44YDAP.js +0 -85
  764. package/dist/versions-FI44YDAP.js.map +0 -1
  765. package/dist/versions-HP6HA2TT.mjs +0 -85
  766. package/dist/versions-HP6HA2TT.mjs.map +0 -1
  767. package/dist/whoami-EI52YRCH.js +0 -30
  768. package/dist/whoami-EI52YRCH.js.map +0 -1
  769. package/dist/whoami-KGRA4QEY.mjs +0 -30
  770. package/dist/whoami-KGRA4QEY.mjs.map +0 -1
  771. package/dist/wrap-G3UCHRFN.mjs +0 -34
  772. package/dist/wrap-G3UCHRFN.mjs.map +0 -1
  773. package/dist/wrap-SJHGCERM.js +0 -34
  774. package/dist/wrap-SJHGCERM.js.map +0 -1
  775. /package/dist/{chunk-YQNOLNAK.mjs.map → chunk-2O4ILSP5.mjs.map} +0 -0
@@ -1,54 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkPXW5C7HAjs = require('./chunk-PXW5C7HA.js');
4
-
5
-
6
-
7
- var _chunkC5Y772G7js = require('./chunk-C5Y772G7.js');
8
-
9
- // src/client-sdk/services/traces/traces-api.service.ts
10
- var TracesApiError = class extends Error {
11
- constructor(message, operation, originalError) {
12
- super(message);
13
- this.operation = operation;
14
- this.originalError = originalError;
15
- this.name = "TracesApiError";
16
- }
17
- };
18
- var TracesApiService = class {
19
- constructor(config) {
20
- var _a;
21
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkPXW5C7HAjs.createLangWatchApiClient.call(void 0, );
22
- }
23
- handleApiError(operation, error) {
24
- const message = _chunkC5Y772G7js.formatApiErrorForOperation.call(void 0, { operation, error, options: {
25
- status: _chunkC5Y772G7js.extractStatusFromResponse.call(void 0, error)
26
- } });
27
- throw new TracesApiError(message, operation, error);
28
- }
29
- async search(params) {
30
- const { data, error } = await this.apiClient.POST("/api/traces/search", {
31
- body: params
32
- });
33
- if (error) this.handleApiError("search traces", error);
34
- return data;
35
- }
36
- async get(traceId, options) {
37
- const { data, error } = await this.apiClient.GET(
38
- "/api/traces/{traceId}",
39
- {
40
- params: {
41
- path: { traceId },
42
- query: options
43
- }
44
- }
45
- );
46
- if (error) this.handleApiError(`get trace "${traceId}"`, error);
47
- return data;
48
- }
49
- };
50
-
51
-
52
-
53
- exports.TracesApiService = TracesApiService;
54
- //# sourceMappingURL=chunk-ONN7U6WN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ONN7U6WN.js","../src/client-sdk/services/traces/traces-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACsBO,IAAM,eAAA,EAAN,MAAA,QAA6B,MAAM;AAAA,EACxC,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,gBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,iBAAA,EAAN,MAAuB;AAAA,EAG5B,WAAA,CAAY,MAAA,EAAqD;AA5CnE,IAAA,IAAA,EAAA;AA6CI,IAAA,IAAA,CAAK,UAAA,EAAA,CAAY,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,kBAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAA8B,uDAAA,CAAyB;AAAA,EAC1E;AAAA,EAEQ,cAAA,CAAe,SAAA,EAAmB,KAAA,EAAuB;AAC/D,IAAA,MAAM,QAAA,EAAU,yDAAA,EAA6B,SAAA,EAAsB,KAAA,EAAc,OAAA,EAAS;AAAA,MACxF,MAAA,EAAQ,wDAAA,KAA+B;AAAA,IACzC,EAAE,CAAC,CAAA;AACH,IAAA,MAAM,IAAI,cAAA,CAAe,OAAA,EAAS,SAAA,EAAW,KAAK,CAAA;AAAA,EACpD;AAAA,EAEA,MAAM,MAAA,CAAO,MAAA,EAAuD;AAClE,IAAA,MAAM,EAAE,IAAA,EAAM,MAAM,EAAA,EAAI,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,oBAAA,EAAsB;AAAA,MACtE,IAAA,EAAM;AAAA,IACR,CAAC,CAAA;AACD,IAAA,GAAA,CAAI,KAAA,EAAO,IAAA,CAAK,cAAA,CAAe,eAAA,EAAiB,KAAK,CAAA;AACrD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,MAAM,GAAA,CAAI,OAAA,EAAiB,OAAA,EAAqE;AAC9F,IAAA,MAAM,EAAE,IAAA,EAAM,MAAM,EAAA,EAAI,MAAM,IAAA,CAAK,SAAA,CAAU,GAAA;AAAA,MAC3C,uBAAA;AAAA,MACA;AAAA,QACE,MAAA,EAAQ;AAAA,UACN,IAAA,EAAM,EAAE,QAAQ,CAAA;AAAA,UAChB,KAAA,EAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAA;AACA,IAAA,GAAA,CAAI,KAAA,EAAO,IAAA,CAAK,cAAA,CAAe,CAAA,WAAA,EAAc,OAAO,CAAA,CAAA,CAAA,EAAK,KAAK,CAAA;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA;AD3BA;AACA;AACE;AACF,4CAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ONN7U6WN.js","sourcesContent":[null,"import type { paths } from \"@/internal/generated/openapi/api-client\";\nimport {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport {\n extractStatusFromResponse,\n formatApiErrorForOperation,\n} from \"@/client-sdk/services/_shared/format-api-error\";\n\nexport type TraceSearchBody = NonNullable<\n paths[\"/api/traces/search\"][\"post\"][\"requestBody\"]\n>[\"content\"][\"application/json\"];\n\nexport type TraceSearchResponse =\n paths[\"/api/traces/search\"][\"post\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\ntype TraceGetResponseRaw =\n paths[\"/api/traces/{traceId}\"][\"get\"][\"responses\"][\"200\"][\"content\"][\"application/json\"];\n\nexport type TraceGetResponse = TraceGetResponseRaw extends string\n ? TraceGetResponseRaw\n : TraceGetResponseRaw extends object\n ? TraceGetResponseRaw & {\n /** URL to view this trace on the LangWatch platform */\n platformUrl?: string;\n }\n : TraceGetResponseRaw;\n\nexport class TracesApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"TracesApiError\";\n }\n}\n\nexport class TracesApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const message = formatApiErrorForOperation({ operation: operation, error: error, options: {\n status: extractStatusFromResponse(error),\n } });\n throw new TracesApiError(message, operation, error);\n }\n\n async search(params: TraceSearchBody): Promise<TraceSearchResponse> {\n const { data, error } = await this.apiClient.POST(\"/api/traces/search\", {\n body: params,\n });\n if (error) this.handleApiError(\"search traces\", error);\n return data;\n }\n\n async get(traceId: string, options?: { format?: \"digest\" | \"json\" }): Promise<TraceGetResponse> {\n const { data, error } = await this.apiClient.GET(\n \"/api/traces/{traceId}\",\n {\n params: {\n path: { traceId },\n query: options,\n },\n },\n );\n if (error) this.handleApiError(`get trace \"${traceId}\"`, error);\n return data;\n }\n}\n"]}
@@ -1,103 +0,0 @@
1
- import {
2
- DEFAULT_ENDPOINT
3
- } from "./chunk-E5ZEMGE7.mjs";
4
- import {
5
- formatApiErrorForOperation
6
- } from "./chunk-J3KM7ZO7.mjs";
7
- import {
8
- __spreadProps,
9
- __spreadValues
10
- } from "./chunk-BAX4W3AY.mjs";
11
-
12
- // src/client-sdk/services/virtual-keys/virtual-keys-api.service.ts
13
- var VirtualKeysApiError = class extends Error {
14
- constructor(message, operation, originalError) {
15
- super(message);
16
- this.operation = operation;
17
- this.originalError = originalError;
18
- this.name = "VirtualKeysApiError";
19
- }
20
- };
21
- var VirtualKeysApiService = class {
22
- constructor(config) {
23
- var _a, _b, _c, _d;
24
- this.endpoint = ((_b = (_a = config == null ? void 0 : config.endpoint) != null ? _a : process.env.LANGWATCH_ENDPOINT) != null ? _b : DEFAULT_ENDPOINT).replace(/\/+$/, "");
25
- this.apiKey = (_d = (_c = config == null ? void 0 : config.apiKey) != null ? _c : process.env.LANGWATCH_API_KEY) != null ? _d : "";
26
- }
27
- headers() {
28
- return {
29
- Authorization: `Bearer ${this.apiKey}`,
30
- "Content-Type": "application/json"
31
- };
32
- }
33
- async request(operation, path, init) {
34
- var _a;
35
- const response = await fetch(`${this.endpoint}${path}`, __spreadProps(__spreadValues({}, init), {
36
- headers: __spreadValues(__spreadValues({}, this.headers()), (_a = init == null ? void 0 : init.headers) != null ? _a : {})
37
- }));
38
- if (!response.ok) {
39
- let parsedBody;
40
- try {
41
- parsedBody = await response.json();
42
- } catch (e) {
43
- parsedBody = await response.text();
44
- }
45
- const message = formatApiErrorForOperation({
46
- operation,
47
- error: parsedBody,
48
- options: { status: response.status }
49
- });
50
- throw new VirtualKeysApiError(message, operation, parsedBody);
51
- }
52
- return await response.json();
53
- }
54
- async list() {
55
- const { data } = await this.request(
56
- "list virtual keys",
57
- "/api/gateway/v1/virtual-keys"
58
- );
59
- return data;
60
- }
61
- async get(id) {
62
- const { virtual_key } = await this.request(
63
- `get virtual key "${id}"`,
64
- `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`
65
- );
66
- return virtual_key;
67
- }
68
- async create(input) {
69
- return this.request(
70
- "create virtual key",
71
- "/api/gateway/v1/virtual-keys",
72
- { method: "POST", body: JSON.stringify(input) }
73
- );
74
- }
75
- async update(id, input) {
76
- const { virtual_key } = await this.request(
77
- `update virtual key "${id}"`,
78
- `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`,
79
- { method: "PATCH", body: JSON.stringify(input) }
80
- );
81
- return virtual_key;
82
- }
83
- async rotate(id) {
84
- return this.request(
85
- `rotate virtual key "${id}"`,
86
- `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/rotate`,
87
- { method: "POST" }
88
- );
89
- }
90
- async revoke(id) {
91
- const { virtual_key } = await this.request(
92
- `revoke virtual key "${id}"`,
93
- `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/revoke`,
94
- { method: "POST" }
95
- );
96
- return virtual_key;
97
- }
98
- };
99
-
100
- export {
101
- VirtualKeysApiService
102
- };
103
- //# sourceMappingURL=chunk-OUJ7Z4TK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client-sdk/services/virtual-keys/virtual-keys-api.service.ts"],"sourcesContent":["import { formatApiErrorForOperation } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nexport type VirtualKeyScopeType = \"ORGANIZATION\" | \"TEAM\" | \"PROJECT\";\n\nexport interface VirtualKeyScope {\n scope_type: VirtualKeyScopeType;\n scope_id: string;\n}\n\nexport interface VirtualKey {\n id: string;\n name: string;\n description: string | null;\n environment: \"live\" | \"test\";\n prefix: string;\n last_four: string;\n status: \"ACTIVE\" | \"REVOKED\";\n principal_user_id: string | null;\n organization_id: string;\n /**\n * Single-PROJECT-scope shorthand: present when the VK has exactly one\n * PROJECT scope row. Null for ORG/TEAM-only VKs and for multi-project\n * VKs (use `scopes[]` for the authoritative scope list in those cases).\n * See vk-config-bundle.feature.\n */\n project_id: string | null;\n scopes: VirtualKeyScope[];\n routing_policy_id: string | null;\n config: Record<string, unknown>;\n created_at: string;\n updated_at: string;\n revoked_at: string | null;\n last_used_at: string | null;\n}\n\nexport interface CreateVirtualKeyInput {\n name: string;\n description?: string;\n environment?: \"live\" | \"test\";\n principal_user_id?: string | null;\n scopes: VirtualKeyScope[];\n routing_policy_id?: string | null;\n config?: Record<string, unknown>;\n}\n\nexport interface UpdateVirtualKeyInput {\n name?: string;\n description?: string | null;\n scopes?: VirtualKeyScope[];\n routing_policy_id?: string | null;\n config?: Record<string, unknown>;\n}\n\nexport interface VirtualKeyWithSecret {\n virtual_key: VirtualKey;\n secret: string;\n}\n\nexport class VirtualKeysApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"VirtualKeysApiError\";\n }\n}\n\nexport class VirtualKeysApiService {\n private readonly endpoint: string;\n private readonly apiKey: string;\n\n constructor(config?: { endpoint?: string; apiKey?: string }) {\n this.endpoint = (config?.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT).replace(/\\/+$/, \"\");\n this.apiKey = config?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n }\n\n private headers(): Record<string, string> {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n }\n\n private async request<T>(operation: string, path: string, init?: RequestInit): Promise<T> {\n const response = await fetch(`${this.endpoint}${path}`, {\n ...init,\n headers: { ...this.headers(), ...(init?.headers ?? {}) },\n });\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n parsedBody = await response.text();\n }\n const message = formatApiErrorForOperation({\n operation,\n error: parsedBody,\n options: { status: response.status },\n });\n throw new VirtualKeysApiError(message, operation, parsedBody);\n }\n return (await response.json()) as T;\n }\n\n async list(): Promise<VirtualKey[]> {\n const { data } = await this.request<{ data: VirtualKey[] }>(\n \"list virtual keys\",\n \"/api/gateway/v1/virtual-keys\",\n );\n return data;\n }\n\n async get(id: string): Promise<VirtualKey> {\n const { virtual_key } = await this.request<{ virtual_key: VirtualKey }>(\n `get virtual key \"${id}\"`,\n `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`,\n );\n return virtual_key;\n }\n\n async create(input: CreateVirtualKeyInput): Promise<VirtualKeyWithSecret> {\n return this.request<VirtualKeyWithSecret>(\n \"create virtual key\",\n \"/api/gateway/v1/virtual-keys\",\n { method: \"POST\", body: JSON.stringify(input) },\n );\n }\n\n async update(id: string, input: UpdateVirtualKeyInput): Promise<VirtualKey> {\n const { virtual_key } = await this.request<{ virtual_key: VirtualKey }>(\n `update virtual key \"${id}\"`,\n `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: JSON.stringify(input) },\n );\n return virtual_key;\n }\n\n async rotate(id: string): Promise<VirtualKeyWithSecret> {\n return this.request<VirtualKeyWithSecret>(\n `rotate virtual key \"${id}\"`,\n `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/rotate`,\n { method: \"POST\" },\n );\n }\n\n async revoke(id: string): Promise<VirtualKey> {\n const { virtual_key } = await this.request<{ virtual_key: VirtualKey }>(\n `revoke virtual key \"${id}\"`,\n `/api/gateway/v1/virtual-keys/${encodeURIComponent(id)}/revoke`,\n { method: \"POST\" },\n );\n return virtual_key;\n }\n}\n"],"mappings":";;;;;;;;;;;;AA2DO,IAAM,sBAAN,cAAkC,MAAM;AAAA,EAC7C,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,wBAAN,MAA4B;AAAA,EAIjC,YAAY,QAAiD;AA1E/D;AA2EI,SAAK,aAAY,4CAAQ,aAAR,YAAoB,QAAQ,IAAI,uBAAhC,YAAsD,kBAAkB,QAAQ,QAAQ,EAAE;AAC3G,SAAK,UAAS,4CAAQ,WAAR,YAAkB,QAAQ,IAAI,sBAA9B,YAAmD;AAAA,EACnE;AAAA,EAEQ,UAAkC;AACxC,WAAO;AAAA,MACL,eAAe,UAAU,KAAK,MAAM;AAAA,MACpC,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAc,QAAW,WAAmB,MAAc,MAAgC;AAtF5F;AAuFI,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,iCACnD,OADmD;AAAA,MAEtD,SAAS,kCAAK,KAAK,QAAQ,KAAO,kCAAM,YAAN,YAAiB,CAAC;AAAA,IACtD,EAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,UAAI;AACJ,UAAI;AACF,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC,SAAQ;AACN,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC;AACA,YAAM,UAAU,2BAA2B;AAAA,QACzC;AAAA,QACA,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,SAAS,OAAO;AAAA,MACrC,CAAC;AACD,YAAM,IAAI,oBAAoB,SAAS,WAAW,UAAU;AAAA,IAC9D;AACA,WAAQ,MAAM,SAAS,KAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,OAA8B;AAClC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK;AAAA,MAC1B;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,IAAiC;AACzC,UAAM,EAAE,YAAY,IAAI,MAAM,KAAK;AAAA,MACjC,oBAAoB,EAAE;AAAA,MACtB,gCAAgC,mBAAmB,EAAE,CAAC;AAAA,IACxD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,OAA6D;AACxE,WAAO,KAAK;AAAA,MACV;AAAA,MACA;AAAA,MACA,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IAChD;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,IAAY,OAAmD;AAC1E,UAAM,EAAE,YAAY,IAAI,MAAM,KAAK;AAAA,MACjC,uBAAuB,EAAE;AAAA,MACzB,gCAAgC,mBAAmB,EAAE,CAAC;AAAA,MACtD,EAAE,QAAQ,SAAS,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAA2C;AACtD,WAAO,KAAK;AAAA,MACV,uBAAuB,EAAE;AAAA,MACzB,gCAAgC,mBAAmB,EAAE,CAAC;AAAA,MACtD,EAAE,QAAQ,OAAO;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,IAAiC;AAC5C,UAAM,EAAE,YAAY,IAAI,MAAM,KAAK;AAAA,MACjC,uBAAuB,EAAE;AAAA,MACzB,gCAAgC,mBAAmB,EAAE,CAAC;AAAA,MACtD,EAAE,QAAQ,OAAO;AAAA,IACnB;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/observability-sdk/span/types.ts","../src/internal/generated/types/tracer.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\";\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 the evaluation result for the span.\n // *\n // * @param details - The evaluation details\n // * @param attributes - Additional attributes to add to the evaluation span.\n // * @returns this\n // */\n // recordEvaluation(\n // details: RecordedEvaluationDetails,\n // attributes?: Attributes,\n // ): 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([z.string(), z.record(z.string(), z.any()), z.array(z.any())]),\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\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([lLMSpanSchema, rAGSpanSchema, baseSpanSchema]);\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","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\";\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 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\";\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 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"]}
@@ -1,36 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
-
3
- var _chunkWZTRPR6Ajs = require('./chunk-WZTRPR6A.js');
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
- var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
12
-
13
-
14
-
15
- var _chunkBRPEG3YQjs = require('./chunk-BRPEG3YQ.js');
16
-
17
- // src/internal/api/client.ts
18
- var _openapifetch = require('openapi-fetch'); var _openapifetch2 = _interopRequireDefault(_openapifetch);
19
- var createLangWatchApiClient = (apiKey = ((_a) => (_a = process.env.LANGWATCH_API_KEY) != null ? _a : "")(), endpoint = ((_b) => (_b = process.env.LANGWATCH_ENDPOINT) != null ? _b : (0, _chunkNC42BNF4js.DEFAULT_ENDPOINT))(), projectId = process.env.LANGWATCH_PROJECT_ID) => {
20
- return _openapifetch2.default.call(void 0, {
21
- baseUrl: endpoint,
22
- headers: _chunkBRPEG3YQjs.__spreadProps.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, _chunkWZTRPR6Ajs.buildAuthHeaders.call(void 0, { apiKey, projectId })), {
23
- "content-type": "application/json",
24
- "user-agent": `langwatch-sdk-node/${_chunkNC42BNF4js.version}`,
25
- "x-langwatch-sdk-name": _chunkNC42BNF4js.LANGWATCH_SDK_NAME_OBSERVABILITY,
26
- "x-langwatch-sdk-language": _chunkNC42BNF4js.LANGWATCH_SDK_LANGUAGE,
27
- "x-langwatch-sdk-version": _chunkNC42BNF4js.LANGWATCH_SDK_VERSION,
28
- "x-langwatch-sdk-platform": _chunkNC42BNF4js.LANGWATCH_SDK_RUNTIME.call(void 0, )
29
- })
30
- });
31
- };
32
-
33
-
34
-
35
- exports.createLangWatchApiClient = createLangWatchApiClient;
36
- //# sourceMappingURL=chunk-PXW5C7HA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-PXW5C7HA.js","../src/internal/api/client.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;AChBA,yGAAgC;AAuBzB,IAAM,yBAAA,EAA2B,CACtC,OAAA,EAAA,CAAiB,CAAA,EAAA,EAAA,GAAA,CAAA,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAiC,EAAA,CAAA,CAAA,CAAA,EAClD,SAAA,EAAA,CAAmB,CAAA,EAAA,EAAA,GAAA,CAAA,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,sCAAA,CAAA,CAAA,CAAA,EACrD,UAAA,EAAgC,OAAA,CAAQ,GAAA,CAAI,oBAAA,EAAA,GACzC;AACH,EAAA,OAAO,oCAAA;AAA2B,IAChC,OAAA,EAAS,QAAA;AAAA,IACT,OAAA,EAAS,4CAAA,6CAAA,CAAA,CAAA,EACJ,+CAAA,EAAmB,MAAA,EAAQ,UAAU,CAAC,CAAA,CAAA,EADlC;AAAA,MAEP,cAAA,EAAgB,kBAAA;AAAA,MAChB,YAAA,EAAc,CAAA,mBAAA,EAAsB,wBAAO,CAAA,CAAA;AACnB,MAAA;AACI,MAAA;AACD,MAAA;AACC,MAAA;AAC9B,IAAA;AACD,EAAA;AACH;ADTkD;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-PXW5C7HA.js","sourcesContent":[null,"import openApiCreateClient from \"openapi-fetch\";\nimport type { paths } from \"../generated/openapi/api-client\";\nimport { version } from \"../../../package.json\";\nimport {\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n} from \"../constants\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\nimport { buildAuthHeaders } from \"./auth\";\n\n\n/**\n * Creates a new LangWatch API client.\n * @param apiKey - The API key or Personal Access Token used for authentication.\n * Defaults to `LANGWATCH_API_KEY`.\n * @param endpoint - The endpoint to use for the API client. Defaults to `LANGWATCH_ENDPOINT`\n * or the internal `DEFAULT_ENDPOINT`.\n * @param projectId - Project identifier. Required when `apiKey` is a PAT\n * (`pat-lw-*`). Defaults to `LANGWATCH_PROJECT_ID`.\n * @returns A new LangWatch API client.\n */\nexport const createLangWatchApiClient = (\n apiKey: string = process.env.LANGWATCH_API_KEY ?? \"\",\n endpoint: string = process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT,\n projectId: string | undefined = process.env.LANGWATCH_PROJECT_ID,\n) => {\n return openApiCreateClient<paths>({\n baseUrl: endpoint,\n headers: {\n ...buildAuthHeaders({ apiKey, projectId }),\n \"content-type\": \"application/json\",\n \"user-agent\": `langwatch-sdk-node/${version}`,\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-platform\": LANGWATCH_SDK_RUNTIME(),\n },\n });\n};\n\n\nexport type LangwatchApiClient = ReturnType<typeof createLangWatchApiClient>;\n"]}
@@ -1,20 +0,0 @@
1
- import {
2
- formatApiErrorMessage
3
- } from "./chunk-J3KM7ZO7.mjs";
4
-
5
- // src/cli/utils/spinnerError.ts
6
- import chalk from "chalk";
7
- function failSpinner({
8
- spinner,
9
- error,
10
- action
11
- }) {
12
- const rendered = formatApiErrorMessage({ error });
13
- const message = /^failed to /i.test(rendered) ? rendered : `Failed to ${action}: ${rendered}`;
14
- spinner.fail(chalk.red(message));
15
- }
16
-
17
- export {
18
- failSpinner
19
- };
20
- //# sourceMappingURL=chunk-Q7AHHFC3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/utils/spinnerError.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport type { Ora } from \"ora\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\n\n/**\n * Collapses the `spinner.fail(); console.error(...)` pattern into a single\n * call. A bare `spinner.fail()` leaves the spinner's starting text\n * (\"Fetching X...\") on screen with a red X, then the real error prints\n * on a separate line — two lines that look unrelated.\n *\n * Also avoids double-prefixing when the caught error is already a service\n * layer `*ApiError` whose message starts with \"Failed to …\" (these come\n * from `formatApiErrorForOperation`).\n */\nexport function failSpinner({\n spinner,\n error,\n action,\n}: {\n spinner: Ora;\n error: unknown;\n /** Short description of what was being done, e.g. \"fetch agents\". */\n action: string;\n}): void {\n const rendered = formatApiErrorMessage({ error });\n const message = /^failed to /i.test(rendered)\n ? rendered\n : `Failed to ${action}: ${rendered}`;\n spinner.fail(chalk.red(message));\n}\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAcX,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,GAKS;AACP,QAAM,WAAW,sBAAsB,EAAE,MAAM,CAAC;AAChD,QAAM,UAAU,eAAe,KAAK,QAAQ,IACxC,WACA,aAAa,MAAM,KAAK,QAAQ;AACpC,UAAQ,KAAK,MAAM,IAAI,OAAO,CAAC;AACjC;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/observability-sdk/exporters/langwatch-trace-exporter.ts","../src/observability-sdk/exporters/trace-filters.ts","../src/observability-sdk/exporters/langwatch-logs-exporter.ts","../src/observability-sdk/semconv/events.ts","../src/observability-sdk/logger/index.ts","../src/observability-sdk/logger/implementation.ts"],"sourcesContent":["import { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\";\nimport { type ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport { type ExportResult } from '@opentelemetry/core';\nimport {\n DEFAULT_ENDPOINT,\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n TRACES_PATH,\n} from \"../../internal/constants\";\nimport { buildAuthHeaders } from \"../../internal/api/auth\";\nimport {\n type TraceFilter,\n type Criteria,\n type Match,\n applyFilters,\n} from \"./trace-filters\";\n\n/**\n * Configuration options for the LangWatchTraceExporter.\n *\n * @property endpoint - Custom LangWatch endpoint URL. Falls back to LANGWATCH_ENDPOINT env var or default.\n * @property apiKey - API key for authentication. Falls back to LANGWATCH_API_KEY env var.\n * @property filters - Array of filters applied sequentially to spans before export.\n * Default: `[{ preset: \"excludeHttpRequests\" }]` to reduce framework noise.\n * Pass `null` or `[]` to disable all filtering.\n */\nexport interface LangWatchTraceExporterOptions {\n endpoint?: string;\n apiKey?: string;\n /**\n * Project identifier. Required when `apiKey` is a Personal Access Token\n * (`pat-lw-*`); ignored for legacy `sk-lw-*` keys. Falls back to\n * `LANGWATCH_PROJECT_ID`.\n */\n projectId?: string;\n filters?: TraceFilter[] | null;\n}\n\nexport type { TraceFilter, Criteria, Match };\n\n/**\n * LangWatchTraceExporter extends the OpenTelemetry OTLP HTTP trace exporter\n * to send trace data to LangWatch with proper authentication and metadata headers.\n *\n * ## Features\n * - Automatic authorization header configuration via API key\n * - SDK version and runtime identification headers\n * - Proper endpoint URL construction for LangWatch ingestion\n * - Intent-based span filtering with presets and custom criteria\n *\n * ## Filtering Behavior\n * - **Default**: HTTP request spans are excluded to reduce framework noise\n * - **Pipeline**: Filters are applied sequentially with AND semantics\n * - **Matching**: All string comparisons are case-sensitive by default\n * - **Array Syntax**: All criteria require arrays of Match objects for explicit filtering\n *\n * ## Filter Types\n * - **Presets**: Pre-configured common filters (`vercelAIOnly`, `excludeHttpRequests`)\n * - **Include**: Keep only spans matching criteria (OR within field, AND across fields)\n * - **Exclude**: Remove spans matching criteria (OR within field, AND across fields)\n *\n * @example Basic usage with default filtering\n * ```typescript\n * import { LangWatchTraceExporter } from '@langwatch/observability';\n *\n * // Default: excludes HTTP request spans\n * const exporter = new LangWatchTraceExporter();\n * ```\n *\n * @example Using presets\n * ```typescript\n * // Keep only Vercel AI SDK spans\n * const exporterAI = new LangWatchTraceExporter({\n * filters: [{ preset: 'vercelAIOnly' }],\n * });\n *\n * // Explicitly exclude HTTP requests (same as default)\n * const exporterNoHttp = new LangWatchTraceExporter({\n * filters: [{ preset: 'excludeHttpRequests' }],\n * });\n *\n * // No filtering at all (send all spans)\n * const exporterAll = new LangWatchTraceExporter({\n * filters: null, // or filters: []\n * });\n * ```\n *\n * @example Custom filtering with criteria\n * ```typescript\n * // Include only spans with specific scope\n * const exporter1 = new LangWatchTraceExporter({\n * filters: [\n * { include: { instrumentationScopeName: [{ equals: 'ai' }] } }\n * ],\n * });\n *\n * // Exclude spans by name pattern\n * const exporter2 = new LangWatchTraceExporter({\n * filters: [\n * { exclude: { name: [{ startsWith: 'internal.' }] } }\n * ],\n * });\n *\n * // Case-insensitive matching\n * const exporter3 = new LangWatchTraceExporter({\n * filters: [\n * { include: { name: [{ equals: 'chat.completion', ignoreCase: true }] } }\n * ],\n * });\n * ```\n *\n * @example Filter pipelines (AND semantics)\n * ```typescript\n * // Keep AI spans, then remove HTTP requests\n * const exporter = new LangWatchTraceExporter({\n * filters: [\n * { include: { instrumentationScopeName: [{ equals: 'ai' }] } },\n * { preset: 'excludeHttpRequests' },\n * ],\n * });\n * ```\n *\n * @example OR semantics within a field\n * ```typescript\n * // Include spans with name starting with 'chat.' OR 'llm.'\n * const exporter = new LangWatchTraceExporter({\n * filters: [\n * {\n * include: {\n * name: [\n * { startsWith: 'chat.' },\n * { startsWith: 'llm.' }\n * ]\n * }\n * }\n * ],\n * });\n * ```\n *\n * @example Using regex patterns\n * ```typescript\n * const exporter = new LangWatchTraceExporter({\n * filters: [\n * {\n * include: {\n * name: [{ matches: /^(chat|llm)\\./i }]\n * }\n * }\n * ],\n * });\n * ```\n */\nexport class LangWatchTraceExporter extends OTLPTraceExporter {\n private readonly filters: TraceFilter[];\n /**\n * Creates a new LangWatchTraceExporter instance.\n *\n * @param opts - Configuration options for the exporter\n * @param opts.apiKey - API key for LangWatch authentication.\n * Falls back to `LANGWATCH_API_KEY` environment variable, then empty string.\n * @param opts.endpoint - Custom endpoint URL for LangWatch ingestion.\n * Falls back to `LANGWATCH_ENDPOINT` environment variable, then default endpoint.\n * @param opts.filters - Array of filters applied sequentially to spans before export (AND semantics).\n * When omitted, defaults to `[{ preset: \"excludeHttpRequests\" }]`.\n * Pass `null` or `[]` to disable all filtering and send all spans.\n *\n * @example\n * ```typescript\n * // With API key and default filtering\n * const exporter = new LangWatchTraceExporter({\n * apiKey: 'your-api-key'\n * });\n *\n * // With custom endpoint and no filtering\n * const exporter = new LangWatchTraceExporter({\n * endpoint: 'https://custom.langwatch.ai',\n * filters: null\n * });\n * ```\n */\n constructor(opts?: LangWatchTraceExporterOptions) {\n const apiKey = opts?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n const projectId = opts?.projectId ?? process.env.LANGWATCH_PROJECT_ID;\n const endpoint =\n opts?.endpoint ??\n process.env.LANGWATCH_ENDPOINT ??\n DEFAULT_ENDPOINT;\n\n const url = new URL(TRACES_PATH, endpoint);\n const otelEndpoint = url.toString();\n\n super({\n headers: {\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-runtime\": LANGWATCH_SDK_RUNTIME(),\n ...buildAuthHeaders({ apiKey, projectId }),\n },\n url: otelEndpoint.toString(),\n });\n\n // Handle filters: null or [] = no filtering, undefined = default, array = use provided\n if (opts?.filters === null || (Array.isArray(opts?.filters) && opts.filters.length === 0)) {\n this.filters = [];\n } else if (Array.isArray(opts?.filters)) {\n this.filters = opts.filters;\n } else {\n this.filters = [{ preset: \"excludeHttpRequests\" }];\n }\n }\n\n export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void {\n const filtered = applyFilters(this.filters, spans);\n super.export(filtered, resultCallback);\n }\n}\n","import { type ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\n\nexport interface Criteria {\n instrumentationScopeName?: Match[];\n name?: Match[];\n}\n\nexport interface Match {\n equals?: string;\n startsWith?: string;\n matches?: RegExp;\n ignoreCase?: boolean;\n}\n\nexport type TraceFilter =\n | { preset: \"vercelAIOnly\" | \"excludeHttpRequests\" }\n | { include: Criteria }\n | { exclude: Criteria };\n\n/**\n * Applies a sequence of filters to an array of spans using AND semantics.\n * Each filter in the sequence is applied to the result of the previous filter,\n * progressively narrowing down the set of spans.\n *\n * @param filters - Array of filter rules to apply sequentially\n * @param spans - Array of spans to filter\n * @returns Filtered array of spans that match all filter criteria\n *\n * @example\n * ```typescript\n * const filters: TraceFilter[] = [\n * { include: { instrumentationScopeName: [{ equals: 'ai' }] } },\n * { preset: 'excludeHttpRequests' }\n * ];\n * const filtered = applyFilters(filters, spans);\n * // Returns only AI spans that are not HTTP requests\n * ```\n */\nexport function applyFilters(\n filters: TraceFilter[] | undefined,\n spans: ReadableSpan[]\n): ReadableSpan[] {\n if (!filters || filters.length === 0) return spans;\n return filters.reduce((current, rule) => applyFilterRule(rule, current), spans);\n}\n\n/**\n * Applies a single filter rule to an array of spans.\n * Handles three types of filters: presets, include rules, and exclude rules.\n *\n * @param rule - Single filter rule (preset, include, or exclude)\n * @param spans - Array of spans to filter\n * @returns Filtered array of spans based on the rule\n *\n * @example\n * ```typescript\n * // Using preset\n * const filtered1 = applyFilterRule({ preset: 'vercelAIOnly' }, spans);\n *\n * // Using include\n * const filtered2 = applyFilterRule(\n * { include: { name: [{ startsWith: 'llm.' }] } },\n * spans\n * );\n *\n * // Using exclude\n * const filtered3 = applyFilterRule(\n * { exclude: { instrumentationScopeName: [{ equals: 'http' }] } },\n * spans\n * );\n * ```\n */\nexport function applyFilterRule(rule: TraceFilter, spans: ReadableSpan[]): ReadableSpan[] {\n if (\"preset\" in rule && rule.preset) {\n return applyPreset(\n (rule as { preset: TraceFilter extends { preset: infer P } ? P : never }).preset as any,\n spans\n );\n }\n\n if (\"include\" in rule && rule.include) {\n const criteria = (rule as { include: Criteria }).include;\n return spans.filter((s) => matchesCriteria(s, criteria));\n }\n\n if (\"exclude\" in rule && rule.exclude) {\n const criteria = (rule as { exclude: Criteria }).exclude;\n return spans.filter((s) => !matchesCriteria(s, criteria));\n }\n\n return spans;\n}\n\n/**\n * Applies a preset filter to an array of spans.\n * Presets are predefined common filtering patterns.\n *\n * Available presets:\n * - `vercelAIOnly`: Keeps only spans from the Vercel AI SDK (instrumentationScope.name === 'ai')\n * - `excludeHttpRequests`: Removes spans that appear to be HTTP requests (span name starts with HTTP verb)\n *\n * @param preset - Name of the preset filter to apply\n * @param spans - Array of spans to filter\n * @returns Filtered array of spans based on the preset\n *\n * @example\n * ```typescript\n * // Keep only Vercel AI spans\n * const aiSpans = applyPreset('vercelAIOnly', spans);\n *\n * // Remove HTTP request spans\n * const noHttpSpans = applyPreset('excludeHttpRequests', spans);\n * ```\n */\nexport function applyPreset(\n preset: \"vercelAIOnly\" | \"excludeHttpRequests\",\n spans: ReadableSpan[]\n): ReadableSpan[] {\n if (preset === \"vercelAIOnly\") return spans.filter((s) => isVercelAiSpan(s));\n if (preset === \"excludeHttpRequests\") return spans.filter((s) => !isHttpRequestSpan(s));\n\n return spans;\n}\n\n/**\n * Checks if a span matches the given criteria.\n * All specified criteria fields must match (AND semantics within a criteria object).\n * Within each field, matchers are evaluated with OR semantics (any matcher can match).\n *\n * @param span - Span to evaluate\n * @param criteria - Criteria to match against (instrumentationScopeName and/or name)\n * @returns True if the span matches all specified criteria, false otherwise\n *\n * @example\n * ```typescript\n * const criteria: Criteria = {\n * instrumentationScopeName: [{ equals: 'ai' }],\n * name: [{ startsWith: 'llm.' }, { startsWith: 'chat.' }]\n * };\n * const matches = matchesCriteria(span, criteria);\n * // Returns true if scope is 'ai' AND name starts with 'llm.' OR 'chat.'\n * ```\n */\nexport function matchesCriteria(span: ReadableSpan, criteria: Criteria): boolean {\n if (criteria.instrumentationScopeName !== void 0) {\n const scopeName = span.instrumentationScope?.name ?? \"\";\n const ok = criteria.instrumentationScopeName.some((m) => valueMatches(scopeName, m));\n if (!ok) return false;\n }\n\n if (criteria.name !== void 0) {\n const ok = criteria.name.some((m) => valueMatches(span.name ?? \"\", m));\n if (!ok) return false;\n }\n\n return true;\n}\n\n/**\n * Evaluates if a string value matches a given match rule.\n * Supports three types of matching: exact equality, prefix matching, and regex matching.\n * All matching is case-sensitive by default unless `ignoreCase` is explicitly set to true.\n *\n * @param value - String value to evaluate\n * @param rule - Match rule specifying the matching criteria\n * @returns True if the value matches the rule, false otherwise\n *\n * @example\n * ```typescript\n * // Exact match (case-sensitive by default)\n * valueMatches('GET /api/users', { equals: 'GET /api/users' }); // true\n * valueMatches('get /api/users', { equals: 'GET /api/users' }); // false\n *\n * // Case-insensitive exact match\n * valueMatches('get /api/users', { equals: 'GET /api/users', ignoreCase: true }); // true\n *\n * // Prefix match\n * valueMatches('GET /api/users', { startsWith: 'GET' }); // true\n * valueMatches('POST /api/users', { startsWith: 'GET' }); // false\n *\n * // Regex match\n * valueMatches('GET /api/users', { matches: /^(GET|POST)\\b/ }); // true\n *\n * // Case-insensitive regex\n * valueMatches('get /api/users', { matches: /^GET\\b/, ignoreCase: true }); // true\n * ```\n */\nexport function valueMatches(value: string, rule: Match): boolean {\n const raw = value ?? \"\";\n const ignoreCase = rule.ignoreCase ?? false;\n\n if (rule.equals !== void 0) {\n return ignoreCase\n ? raw.localeCompare(rule.equals, void 0, { sensitivity: \"base\" }) === 0\n : raw === rule.equals;\n }\n\n if (rule.startsWith !== void 0) {\n return ignoreCase\n ? raw.toLowerCase().startsWith(rule.startsWith.toLowerCase())\n : raw.startsWith(rule.startsWith);\n }\n\n if (rule.matches instanceof RegExp) {\n const re =\n ignoreCase && !rule.matches.flags.includes(\"i\")\n ? new RegExp(rule.matches.source, (rule.matches.flags || \"\") + \"i\")\n : rule.matches;\n return re.test(raw);\n }\n\n return false;\n}\n\n/**\n * Checks if a span is from the Vercel AI SDK.\n * A span is considered a Vercel AI span if its instrumentation scope name is 'ai' (case-insensitive).\n *\n * @param span - Span to check\n * @returns True if the span is from the Vercel AI SDK, false otherwise\n *\n * @example\n * ```typescript\n * if (isVercelAiSpan(span)) {\n * console.log('This is a Vercel AI operation');\n * }\n * ```\n */\nexport function isVercelAiSpan(span: ReadableSpan): boolean {\n const scope = span.instrumentationScope?.name?.toLowerCase?.() ?? \"\";\n return scope === \"ai\";\n}\n\n/**\n * Checks if a span appears to be an HTTP request based on its name.\n * A span is considered an HTTP request if its name starts with a common HTTP verb\n * (GET, POST, PUT, DELETE, PATCH, OPTIONS, HEAD) followed by a word boundary.\n *\n * @param span - Span to check\n * @returns True if the span appears to be an HTTP request, false otherwise\n *\n * @example\n * ```typescript\n * // These would return true:\n * // span.name = \"GET /api/users\"\n * // span.name = \"POST /api/data\"\n * // span.name = \"DELETE /resource/123\"\n *\n * if (isHttpRequestSpan(span)) {\n * console.log('This is an HTTP request span');\n * }\n * ```\n */\nexport function isHttpRequestSpan(span: ReadableSpan): boolean {\n const name = span.name ?? \"\";\n const verbMatch = /^(GET|POST|PUT|DELETE|PATCH|OPTIONS|HEAD)\\b/i.test(name);\n return verbMatch;\n}\n","import { OTLPLogExporter } from \"@opentelemetry/exporter-logs-otlp-http\";\nimport {\n DEFAULT_ENDPOINT,\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n LANGWATCH_SDK_RUNTIME,\n LANGWATCH_SDK_VERSION,\n LOGS_PATH,\n} from \"../../internal/constants\";\n\nexport interface LangWatchLogsExporterOptions {\n endpoint?: string;\n apiKey?: string;\n}\n\n/**\n * LangWatchLogsExporter extends the OpenTelemetry OTLP HTTP logs exporter\n * to send logs to LangWatch with proper authentication and metadata headers.\n *\n * This exporter automatically configures:\n * - Authorization headers using the provided API key or environment variables/fallback\n * - SDK version and language identification headers\n * - Proper endpoint configuration for LangWatch ingestion using provided URL or environment variables/fallback\n *\n * @example\n * ```typescript\n * import { LangWatchLogsExporter } from '@langwatch/observability';\n *\n * // Using environment variables/fallback configuration\n * const exporter = new LangWatchLogsExporter();\n *\n * // Using custom options\n * const exporter = new LangWatchLogsExporter({\n * apiKey: 'your-api-key',\n * endpoint: 'https://custom.langwatch.com'\n * });\n * ```\n */\nexport class LangWatchLogsExporter extends OTLPLogExporter {\n /**\n * Creates a new LangWatchLogsExporter instance.\n *\n * @param opts - Optional configuration options for the exporter.\n * @param opts.apiKey - Optional API key for LangWatch authentication. If not provided,\n * will use environment variables or fallback configuration.\n * @param opts.endpoint - Optional custom endpoint URL for LangWatch ingestion.\n * If not provided, will use environment variables or fallback configuration.\n */\n constructor(opts?: LangWatchLogsExporterOptions) {\n const apiKey = opts?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint =\n opts?.endpoint ??\n process.env.LANGWATCH_ENDPOINT ??\n DEFAULT_ENDPOINT;\n\n const url = new URL(LOGS_PATH, endpoint);\n const otelEndpoint = url.toString();\n\n super({\n headers: {\n \"x-langwatch-sdk-name\": LANGWATCH_SDK_NAME_OBSERVABILITY,\n \"x-langwatch-sdk-language\": LANGWATCH_SDK_LANGUAGE,\n \"x-langwatch-sdk-version\": LANGWATCH_SDK_VERSION,\n \"x-langwatch-sdk-runtime\": LANGWATCH_SDK_RUNTIME(),\n ...(apiKey ? { authorization: `Bearer ${apiKey}` } : {}),\n },\n url: otelEndpoint.toString(),\n });\n }\n}\n","/*\n This file contains the values for the OpenTelemetry semantic conventions for GenAI log\n record event names.\n\n 👉 https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/\n*/\n\n/**\n * GenAI system message event name\n * Used for log records representing system messages in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_SYSTEM_MESSAGE = \"gen.ai.system_message\";\n\n/**\n * GenAI user message event name\n * Used for log records representing user messages in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_USER_MESSAGE = \"gen.ai.user_message\";\n\n/**\n * GenAI assistant message event name\n * Used for log records representing assistant responses in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE = \"gen.ai.assistant_message\";\n\n/**\n * GenAI tool message event name\n * Used for log records representing tool calls or responses in AI conversations\n */\nexport const LOG_EVNT_GEN_AI_TOOL_MESSAGE = \"gen.ai.tool_message\";\n\n/**\n * GenAI choice event name\n * Used for log records representing choices made by AI models\n */\nexport const LOG_EVNT_GEN_AI_CHOICE = \"gen.ai.choice\";\n\n/**\n * LangWatch LangChain callback event name\n * Used for log records representing LangChain callback events\n */\nexport const EVNT_LANGWATCH_LANGCHAIN_CALLBACK = \"langwatch.langchain.callback\";\n","import {\n type Logger,\n type LoggerProvider,\n NoopLoggerProvider,\n} from \"@opentelemetry/api-logs\";\nimport {\n type LangWatchLogger,\n} from \"./types\";\nimport { LangWatchLoggerInternal } from \"./implementation\";\n\n/**\n * The LangWatch-specific global logger provider. It may not be the same as the current\n * OpenTelemetry global logger provider, but it's the last one the `setupObservability`\n * knows about.\n * @internal\n */\nlet currentLoggerProvider: LoggerProvider = new NoopLoggerProvider();\n\n/**\n * @module observability/logger\n * @description\n * Provides LangWatch logger integration with OpenTelemetry, including logger provider\n * management and logger creation utilities.\n *\n * @remarks\n * This module allows you to set a global logger provider, retrieve LangWatch loggers,\n * and wrap OpenTelemetry loggers with LangWatch-specific functionality.\n *\n * @see {@link setLangWatchLoggerProvider}\n * @see {@link getLangWatchLogger}\n * @see {@link getLangWatchLoggerFromProvider}\n * @see {@link createLangWatchLogger}\n */\nexport function setLangWatchLoggerProvider(\n loggerProvider: LoggerProvider,\n): void {\n currentLoggerProvider = loggerProvider;\n}\n\n/**\n * Retrieves a LangWatch logger with the specified name and optional version.\n *\n * @param name - The name of the logger (typically your service or module name).\n * @param version - (Optional) The version of the logger.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @remarks\n * Uses the logger provider set during observability setup. If no provider is set, returns\n * a NoOp logger.\n *\n * @example\n * ```ts\n * const logger = getLangWatchLogger(\"my-service\");\n * logger.info(\"Service started\");\n * ```\n *\n * @see {@link setLangWatchLoggerProvider}\n */\nexport function getLangWatchLogger(\n name: string,\n version?: string,\n): LangWatchLogger {\n return getLangWatchLoggerFromProvider(currentLoggerProvider, name, version);\n}\n\n/**\n * Retrieves a LangWatch logger from a specific OpenTelemetry logger provider.\n *\n * @param loggerProvider - The OpenTelemetry logger provider to use.\n * @param name - The name of the logger.\n * @param version - (Optional) The version of the logger.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @remarks\n * Use this function if you want to use a custom logger provider instead of the global one.\n *\n * @example\n * ```ts\n * const customProvider = new LoggerProvider();\n * const logger = getLangWatchLoggerFromProvider(customProvider, \"custom-service\");\n * ```\n */\nexport function getLangWatchLoggerFromProvider(\n loggerProvider: LoggerProvider,\n name: string,\n version?: string,\n): LangWatchLogger {\n return createLangWatchLogger(loggerProvider.getLogger(name, version));\n}\n\n/**\n * Wraps an OpenTelemetry logger as a LangWatch logger.\n *\n * @param logger - The OpenTelemetry logger to wrap.\n * @returns A {@link LangWatchLogger} instance.\n *\n * @example\n * ```ts\n * import { Logger } from \"@opentelemetry/api-logs\";\n * const otelLogger = new Logger();\n * const lwLogger = createLangWatchLogger(otelLogger);\n * lwLogger.info(\"Wrapped logger\");\n * ```\n */\nexport function createLangWatchLogger(logger: Logger): LangWatchLogger {\n return new LangWatchLoggerInternal(logger);\n}\n\n// Export types and implementation\nexport * from \"./types\";\nexport * from \"./implementation\";\n","import {\n type AnyValue,\n type Logger,\n} from \"@opentelemetry/api-logs\";\nimport {\n type EmitOptions,\n type LangWatchLogger,\n type LangWatchLogRecord,\n type LangWatchSpanGenAIAssistantMessageEventBody,\n type LangWatchSpanGenAIChoiceEventBody,\n type LangWatchSpanGenAISystemMessageEventBody,\n type LangWatchSpanGenAIToolMessageEventBody,\n type LangWatchSpanGenAIUserMessageEventBody,\n} from \"./types\";\nimport { shouldCaptureOutput } from \"../config\";\nimport * as intSemconv from \"../semconv\";\nimport { type SemConvLogRecordAttributes } from \"../semconv\";\nimport { context } from \"@opentelemetry/api\";\n\n/**\n * Internal implementation of {@link LangWatchLogger}.\n *\n * @remarks\n * This class wraps an OpenTelemetry logger and adds LangWatch-specific functionality for\n * structured logging and event emission.\n * Not intended for direct use; use {@link getLangWatchLogger} or\n * {@link createLangWatchLogger} instead.\n */\nexport class LangWatchLoggerInternal implements LangWatchLogger {\n constructor(private logger: Logger) {}\n\n emit(logRecord: LangWatchLogRecord, options?: EmitOptions): void {\n // Handle output capture configuration\n if (!shouldCaptureOutput()) {\n logRecord.body = void 0;\n }\n\n // Set context if not provided and not explicitly excluded\n if (!logRecord.context && !options?.excludeContext) {\n logRecord.context = context.active();\n }\n\n // Emit the log record through the underlying OpenTelemetry logger\n this.logger.emit(logRecord);\n }\n\n emitGenAISystemMessageEvent(\n body: LangWatchSpanGenAISystemMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ): void {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_SYSTEM_MESSAGE,\n { ...body, role: body.role ?? \"system\" } satisfies LangWatchSpanGenAISystemMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIUserMessageEvent(\n body: LangWatchSpanGenAIUserMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_USER_MESSAGE,\n { ...body, role: body.role ?? \"user\" } satisfies LangWatchSpanGenAIUserMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIAssistantMessageEvent(\n body: LangWatchSpanGenAIAssistantMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_ASSISTANT_MESSAGE,\n { ...body, role: body.role ?? \"assistant\" } satisfies LangWatchSpanGenAIAssistantMessageEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIToolMessageEvent(\n body: LangWatchSpanGenAIToolMessageEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n if (body.role === void 0) {\n body.role = \"tool\";\n }\n\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_TOOL_MESSAGE,\n { ...body },\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n emitGenAIChoiceEvent(\n body: LangWatchSpanGenAIChoiceEventBody,\n system?: intSemconv.VAL_GEN_AI_SYSTEMS | (string & {}),\n attributes?: SemConvLogRecordAttributes,\n ) {\n if (body.message && body.message.role === void 0) {\n body.message.role = \"assistant\";\n }\n\n this.emitGenAIEvent(\n intSemconv.LOG_EVNT_GEN_AI_CHOICE,\n {\n ...body,\n message: { ...body.message, role: body.message?.role ?? \"assistant\" },\n } satisfies LangWatchSpanGenAIChoiceEventBody,\n {\n ...attributes,\n \"gen_ai.system\": system,\n },\n );\n }\n\n private emitGenAIEvent(\n eventName: string,\n body: AnyValue,\n attributes?: SemConvLogRecordAttributes,\n ): void {\n this.emit({\n eventName,\n context: context.active(),\n attributes: { ...attributes },\n body: shouldCaptureOutput() ? body : void 0,\n observedTimestamp: new Date().getTime(),\n });\n }\n}\n"],"mappings":"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","names":["_a"]}
@@ -1,68 +0,0 @@
1
- import {
2
- createLangWatchApiClient
3
- } from "./chunk-KUEKEUKX.mjs";
4
- import {
5
- extractStatusFromResponse,
6
- formatApiErrorForOperation
7
- } from "./chunk-J3KM7ZO7.mjs";
8
-
9
- // src/client-sdk/services/dashboards/dashboards-api.service.ts
10
- var DashboardsApiError = class extends Error {
11
- constructor(message, operation, originalError) {
12
- super(message);
13
- this.operation = operation;
14
- this.originalError = originalError;
15
- this.name = "DashboardsApiError";
16
- }
17
- };
18
- var DashboardsApiService = class {
19
- constructor(config) {
20
- var _a;
21
- this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : createLangWatchApiClient();
22
- }
23
- handleApiError(operation, error) {
24
- const message = formatApiErrorForOperation({ operation, error, options: {
25
- status: extractStatusFromResponse(error)
26
- } });
27
- throw new DashboardsApiError(message, operation, error);
28
- }
29
- async list() {
30
- const { data, error } = await this.apiClient.GET("/api/dashboards");
31
- if (error) this.handleApiError("list dashboards", error);
32
- return data;
33
- }
34
- async get(id) {
35
- const { data, error } = await this.apiClient.GET("/api/dashboards/{id}", {
36
- params: { path: { id } }
37
- });
38
- if (error) this.handleApiError(`get dashboard "${id}"`, error);
39
- return data;
40
- }
41
- async create(params) {
42
- const { data, error } = await this.apiClient.POST("/api/dashboards", {
43
- body: params
44
- });
45
- if (error) this.handleApiError("create dashboard", error);
46
- return data;
47
- }
48
- async rename(id, params) {
49
- const { data, error } = await this.apiClient.PATCH("/api/dashboards/{id}", {
50
- params: { path: { id } },
51
- body: params
52
- });
53
- if (error) this.handleApiError(`rename dashboard "${id}"`, error);
54
- return data;
55
- }
56
- async delete(id) {
57
- const { data, error } = await this.apiClient.DELETE("/api/dashboards/{id}", {
58
- params: { path: { id } }
59
- });
60
- if (error) this.handleApiError(`delete dashboard "${id}"`, error);
61
- return data;
62
- }
63
- };
64
-
65
- export {
66
- DashboardsApiService
67
- };
68
- //# sourceMappingURL=chunk-R3PLRKDO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client-sdk/services/dashboards/dashboards-api.service.ts"],"sourcesContent":["import {\n createLangWatchApiClient,\n type LangwatchApiClient,\n} from \"@/internal/api/client\";\nimport { type InternalConfig } from \"@/client-sdk/types\";\nimport {\n extractStatusFromResponse,\n formatApiErrorForOperation,\n} from \"@/client-sdk/services/_shared/format-api-error\";\n\nexport interface DashboardSummary {\n id: string;\n name: string;\n order: number;\n graphCount: number;\n createdAt: string;\n updatedAt: string;\n platformUrl?: string;\n}\n\nexport interface DashboardDetail {\n id: string;\n name: string;\n order: number;\n graphs: unknown[];\n createdAt: string;\n updatedAt: string;\n platformUrl?: string;\n}\n\nexport class DashboardsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"DashboardsApiError\";\n }\n}\n\nexport class DashboardsApiService {\n private readonly apiClient: LangwatchApiClient;\n\n constructor(config?: Pick<InternalConfig, \"langwatchApiClient\">) {\n this.apiClient = config?.langwatchApiClient ?? createLangWatchApiClient();\n }\n\n private handleApiError(operation: string, error: unknown): never {\n const message = formatApiErrorForOperation({ operation: operation, error: error, options: {\n status: extractStatusFromResponse(error),\n } });\n throw new DashboardsApiError(message, operation, error);\n }\n\n async list(): Promise<{ data: DashboardSummary[] }> {\n const { data, error } = await this.apiClient.GET(\"/api/dashboards\");\n if (error) this.handleApiError(\"list dashboards\", error);\n return data as unknown as { data: DashboardSummary[] };\n }\n\n async get(id: string): Promise<DashboardDetail> {\n const { data, error } = await this.apiClient.GET(\"/api/dashboards/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`get dashboard \"${id}\"`, error);\n return data as unknown as DashboardDetail;\n }\n\n async create(params: { name: string }): Promise<DashboardDetail> {\n const { data, error } = await this.apiClient.POST(\"/api/dashboards\", {\n body: params,\n });\n if (error) this.handleApiError(\"create dashboard\", error);\n return data as unknown as DashboardDetail;\n }\n\n async rename(id: string, params: { name: string }): Promise<DashboardDetail> {\n const { data, error } = await this.apiClient.PATCH(\"/api/dashboards/{id}\", {\n params: { path: { id } },\n body: params,\n });\n if (error) this.handleApiError(`rename dashboard \"${id}\"`, error);\n return data as unknown as DashboardDetail;\n }\n\n async delete(id: string): Promise<{ id: string; name: string }> {\n const { data, error } = await this.apiClient.DELETE(\"/api/dashboards/{id}\", {\n params: { path: { id } },\n });\n if (error) this.handleApiError(`delete dashboard \"${id}\"`, error);\n return data as unknown as { id: string; name: string };\n }\n}\n"],"mappings":";;;;;;;;;AA8BO,IAAM,qBAAN,cAAiC,MAAM;AAAA,EAC5C,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,uBAAN,MAA2B;AAAA,EAGhC,YAAY,QAAqD;AA5CnE;AA6CI,SAAK,aAAY,sCAAQ,uBAAR,YAA8B,yBAAyB;AAAA,EAC1E;AAAA,EAEQ,eAAe,WAAmB,OAAuB;AAC/D,UAAM,UAAU,2BAA2B,EAAE,WAAsB,OAAc,SAAS;AAAA,MACxF,QAAQ,0BAA0B,KAAK;AAAA,IACzC,EAAE,CAAC;AACH,UAAM,IAAI,mBAAmB,SAAS,WAAW,KAAK;AAAA,EACxD;AAAA,EAEA,MAAM,OAA8C;AAClD,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,iBAAiB;AAClE,QAAI,MAAO,MAAK,eAAe,mBAAmB,KAAK;AACvD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,IAAsC;AAC9C,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,IAAI,wBAAwB;AAAA,MACvE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,IACzB,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,kBAAkB,EAAE,KAAK,KAAK;AAC7D,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,QAAoD;AAC/D,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,mBAAmB;AAAA,MACnE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,oBAAoB,KAAK;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAY,QAAoD;AAC3E,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,MAAM,wBAAwB;AAAA,MACzE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,MACvB,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,qBAAqB,EAAE,KAAK,KAAK;AAChE,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAmD;AAC9D,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,OAAO,wBAAwB;AAAA,MAC1E,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;AAAA,IACzB,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,qBAAqB,EAAE,KAAK,KAAK;AAChE,WAAO;AAAA,EACT;AACF;","names":[]}