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,300 +0,0 @@
1
- import {
2
- DeviceFlowError,
3
- pollUntilDone,
4
- startDeviceCode
5
- } from "./chunk-3CPA262Z.mjs";
6
- import {
7
- extractLookupIdFromToken,
8
- getCliBootstrap,
9
- listIngestionKeys
10
- } from "./chunk-YP4LDCP6.mjs";
11
- import {
12
- loadConfig,
13
- saveConfig
14
- } from "./chunk-U47MQ6CS.mjs";
15
- import {
16
- __spreadProps,
17
- __spreadValues
18
- } from "./chunk-BAX4W3AY.mjs";
19
-
20
- // src/cli/utils/governance/login-flow.ts
21
- import * as fs from "fs";
22
- import * as path from "path";
23
- import chalk from "chalk";
24
- import ora from "ora";
25
-
26
- // src/cli/utils/governance/login-ceremony.ts
27
- var DEFAULT_TOOLS = [
28
- { slug: "claude", displayName: "Claude Code" },
29
- { slug: "codex", displayName: "Codex" },
30
- { slug: "cursor", displayName: "Cursor" }
31
- ];
32
- function padRight(s, width) {
33
- if (s.length >= width) return s;
34
- return s + " ".repeat(width - s.length);
35
- }
36
- function formatUsd(n) {
37
- if (Number.isInteger(n)) return `$${n}`;
38
- return `$${n.toFixed(2)}`;
39
- }
40
- function formatUsedUsd(n) {
41
- return `$${n.toFixed(2)}`;
42
- }
43
- function formatLoginCeremony(input) {
44
- const lines = [];
45
- const orgSuffix = input.organizationName ? ` @ ${input.organizationName}` : "";
46
- lines.push(`\u2713 Logged in as ${input.email}${orgSuffix}`);
47
- const tools = input.tools && input.tools.length > 0 ? input.tools : DEFAULT_TOOLS;
48
- lines.push("");
49
- lines.push("Your AI tools (run any of these):");
50
- const cmdWidth = Math.max(
51
- ...tools.map((t) => `langwatch ${t.slug}`.length)
52
- );
53
- for (const tool of tools) {
54
- const cmd = `langwatch ${tool.slug}`;
55
- const labelSuffix = tool.displayName ? ` # ${tool.displayName}` : "";
56
- lines.push(` $ ${padRight(cmd, cmdWidth)}${labelSuffix}`);
57
- }
58
- if (input.providers && input.providers.length > 0) {
59
- lines.push("");
60
- lines.push("Model providers you can issue a virtual key for:");
61
- const nameWidth = Math.max(...input.providers.map((p) => p.name.length));
62
- for (const p of input.providers) {
63
- const padded = padRight(p.name, nameWidth);
64
- const annotations = [];
65
- if (p.displayName && p.displayName !== p.name) {
66
- annotations.push(p.displayName);
67
- }
68
- if (p.configured === false) annotations.push("(not configured yet)");
69
- const suffix = annotations.length > 0 ? ` ${annotations.join(" ")}` : "";
70
- lines.push(` \u2022 ${padded}${suffix}`);
71
- }
72
- }
73
- if (input.budget) {
74
- lines.push("");
75
- const period = input.budget.period.charAt(0).toUpperCase() + input.budget.period.slice(1).toLowerCase();
76
- lines.push(
77
- `${period} budget: ${formatUsd(input.budget.limitUsd)} | Used: ${formatUsedUsd(input.budget.usedUsd)}`
78
- );
79
- }
80
- if (input.openCommand !== false) {
81
- lines.push("");
82
- lines.push("Or open the app in your browser:");
83
- lines.push(" $ langwatch open");
84
- }
85
- return lines;
86
- }
87
-
88
- // src/cli/utils/governance/login-flow.ts
89
- async function runUnifiedLoginFlow(opts = {}) {
90
- var _a, _b, _c, _d, _e, _f, _g, _h;
91
- const kind = (_a = opts.kind) != null ? _a : "device_session";
92
- const cfg = (_b = opts.cfg) != null ? _b : loadConfig();
93
- const baseUrl = cfg.control_plane_url;
94
- console.log(chalk.blue("\u{1F510} LangWatch login"));
95
- console.log(chalk.gray(`Control plane: ${baseUrl}`));
96
- console.log(
97
- chalk.gray(
98
- kind === "project_api_key" ? "Mode: project SDK API key (will write .env)" : "Mode: device session (will write ~/.langwatch/config.json)"
99
- )
100
- );
101
- const dc = await startDeviceCode({ baseUrl }, { credentialType: kind });
102
- const verifyURL = (_c = dc.verification_uri_complete) != null ? _c : `${dc.verification_uri.replace(/\/+$/, "")}?user_code=${encodeURIComponent(dc.user_code)}`;
103
- console.log();
104
- console.log(chalk.cyan(`Opening: ${verifyURL}`));
105
- console.log(
106
- chalk.gray(
107
- `If your browser doesn't open, paste the URL above and enter code: ${chalk.bold(dc.user_code)}`
108
- )
109
- );
110
- console.log();
111
- await openInBrowser(verifyURL, opts.browser);
112
- const spinner = ora({
113
- text: "Waiting for you to approve in the browser",
114
- discardStdin: false
115
- }).start();
116
- const onSigint = () => {
117
- spinner.stop();
118
- console.log(chalk.gray("\nLogin cancelled."));
119
- process.exit(130);
120
- };
121
- process.once("SIGINT", onSigint);
122
- try {
123
- const result = await pollUntilDone({ baseUrl }, dc);
124
- if (result.kind === "device_session") {
125
- spinner.succeed(`Logged in as ${result.user.email}`);
126
- persistDeviceSession(cfg, result);
127
- saveConfig(cfg);
128
- const bootstrap = await fetchBootstrapSafely(cfg);
129
- if (bootstrap == null ? void 0 : bootstrap.gatewayUrl) {
130
- cfg.gateway_url = bootstrap.gatewayUrl;
131
- saveConfig(cfg);
132
- }
133
- if (bootstrap == null ? void 0 : bootstrap.toolPolicies) {
134
- cfg.tool_policies = bootstrap.toolPolicies;
135
- saveConfig(cfg);
136
- }
137
- if (cfg.default_personal_ingest_keys && Object.keys(cfg.default_personal_ingest_keys).length > 0) {
138
- try {
139
- const liveKeys = await listIngestionKeys(cfg);
140
- const liveSet = new Set(liveKeys.map((k) => `${k.sourceType}:${k.lookupId}`));
141
- const reconciled = {};
142
- let changed = false;
143
- for (const [sourceType, entry] of Object.entries(cfg.default_personal_ingest_keys)) {
144
- const lookupId = extractLookupIdFromToken((_d = entry.secret) != null ? _d : "");
145
- if (lookupId && liveSet.has(`${sourceType}:${lookupId}`)) {
146
- reconciled[sourceType] = entry;
147
- } else {
148
- changed = true;
149
- }
150
- }
151
- if (changed) {
152
- cfg.default_personal_ingest_keys = reconciled;
153
- saveConfig(cfg);
154
- }
155
- } catch (e) {
156
- }
157
- }
158
- console.log();
159
- const ceremonyLines = formatLoginCeremony({
160
- email: (_f = (_e = cfg.user) == null ? void 0 : _e.email) != null ? _f : result.user.email,
161
- organizationName: (_g = cfg.organization) == null ? void 0 : _g.name,
162
- tools: bootstrap == null ? void 0 : bootstrap.tools,
163
- providers: bootstrap == null ? void 0 : bootstrap.providers,
164
- budget: ((_h = bootstrap == null ? void 0 : bootstrap.budget) == null ? void 0 : _h.monthlyLimitUsd) != null ? {
165
- period: bootstrap.budget.period,
166
- limitUsd: bootstrap.budget.monthlyLimitUsd,
167
- usedUsd: bootstrap.budget.monthlyUsedUsd
168
- } : void 0
169
- });
170
- for (const line of ceremonyLines) {
171
- console.log(line);
172
- }
173
- console.log();
174
- console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));
175
- return cfg;
176
- }
177
- spinner.succeed(
178
- `API key generated for project ${chalk.bold(result.project.name)}`
179
- );
180
- const envResult = writeApiKeyToEnv(result.api_key);
181
- console.log();
182
- console.log(chalk.green("\u2713 API key saved to .env"));
183
- if (envResult.created) {
184
- console.log(chalk.gray(` \u2022 Created .env file at ${envResult.path}`));
185
- } else if (envResult.updated) {
186
- console.log(chalk.gray(` \u2022 Updated existing API key in ${envResult.path}`));
187
- } else {
188
- console.log(chalk.gray(` \u2022 Added API key to ${envResult.path}`));
189
- }
190
- console.log();
191
- console.log(
192
- chalk.gray(
193
- ` Project: ${result.project.name} (${result.project.slug})`
194
- )
195
- );
196
- console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));
197
- return cfg;
198
- } catch (err) {
199
- spinner.fail();
200
- if (err instanceof DeviceFlowError) {
201
- switch (err.kind) {
202
- case "denied":
203
- throw new Error(
204
- "authorization denied \u2014 you can retry `langwatch login`"
205
- );
206
- case "expired":
207
- throw new Error(
208
- "authorization request expired \u2014 run `langwatch login` again"
209
- );
210
- default:
211
- throw err;
212
- }
213
- }
214
- throw err;
215
- } finally {
216
- process.removeListener("SIGINT", onSigint);
217
- }
218
- }
219
- async function runDeviceFlowLogin(opts = {}) {
220
- return runUnifiedLoginFlow(__spreadProps(__spreadValues({}, opts), { kind: "device_session" }));
221
- }
222
- function persistDeviceSession(cfg, result) {
223
- cfg.access_token = result.access_token;
224
- cfg.refresh_token = result.refresh_token;
225
- cfg.expires_at = Math.floor(Date.now() / 1e3) + result.expires_in;
226
- cfg.user = {
227
- id: result.user.id,
228
- email: result.user.email,
229
- name: result.user.name
230
- };
231
- cfg.organization = {
232
- id: result.organization.id,
233
- slug: result.organization.slug,
234
- name: result.organization.name
235
- };
236
- if (result.default_personal_vk) {
237
- cfg.default_personal_vk = {
238
- id: result.default_personal_vk.id,
239
- secret: result.default_personal_vk.secret,
240
- prefix: result.default_personal_vk.prefix
241
- };
242
- }
243
- if (result.endpoint) {
244
- cfg.control_plane_url = result.endpoint.replace(/\/+$/, "");
245
- }
246
- }
247
- function writeApiKeyToEnv(apiKey) {
248
- const envPath = path.join(process.cwd(), ".env");
249
- if (!fs.existsSync(envPath)) {
250
- fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
251
- `);
252
- return { created: true, updated: false, path: envPath };
253
- }
254
- const content = fs.readFileSync(envPath, "utf-8");
255
- const lines = content.split("\n");
256
- let found = false;
257
- const updatedLines = lines.map((line) => {
258
- if (line.startsWith("LANGWATCH_API_KEY=")) {
259
- found = true;
260
- return `LANGWATCH_API_KEY=${apiKey}`;
261
- }
262
- return line;
263
- });
264
- if (!found) {
265
- if (content.endsWith("\n") || content === "") {
266
- updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
267
- } else {
268
- updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
269
- }
270
- }
271
- fs.writeFileSync(envPath, updatedLines.join("\n"));
272
- return { created: false, updated: found, path: envPath };
273
- }
274
- async function fetchBootstrapSafely(cfg) {
275
- try {
276
- return await getCliBootstrap(cfg);
277
- } catch (e) {
278
- return null;
279
- }
280
- }
281
- async function openInBrowser(url, override) {
282
- var _a, _b;
283
- const choice = (_b = (_a = override != null ? override : process.env.LANGWATCH_BROWSER) != null ? _a : process.env.BROWSER) != null ? _b : "";
284
- if (choice === "none") return;
285
- const open = (await import("open")).default;
286
- try {
287
- if (!choice || choice === "default") {
288
- await open(url);
289
- return;
290
- }
291
- await open(url, { app: { name: choice } });
292
- } catch (e) {
293
- }
294
- }
295
-
296
- export {
297
- runUnifiedLoginFlow,
298
- runDeviceFlowLogin
299
- };
300
- //# sourceMappingURL=chunk-O444ZEPO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/utils/governance/login-flow.ts","../src/cli/utils/governance/login-ceremony.ts"],"sourcesContent":["/**\n * Shared device-code login implementations. Two entry points:\n *\n * 1. `runUnifiedLoginFlow({ kind })` — the canonical flow used by\n * `langwatch login` (interactive routes here for both modes). The\n * same browser-approval ceremony works for either credential type;\n * only the persist target differs:\n * kind: 'device_session' → ~/.langwatch/config.json\n * kind: 'project_api_key' → $CWD/.env (LANGWATCH_API_KEY)\n * No copy-paste of the credential ever — the server ships it\n * back to the CLI over the same RFC 8628 poll endpoint.\n *\n * 2. `runDeviceFlowLogin(...)` — back-compat wrapper that calls\n * `runUnifiedLoginFlow({ kind: 'device_session' })`. Preserved so\n * `commands/login.ts --device` and `utils/governance/wrapper.ts`\n * auto-login keep working without churn.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n startDeviceCode,\n pollUntilDone,\n DeviceFlowError,\n type CredentialType,\n type ExchangeApiKeyResult,\n type ExchangeDeviceSessionResult,\n} from \"./device-flow\";\nimport { loadConfig, saveConfig, type GovernanceConfig } from \"./config\";\nimport { formatLoginCeremony } from \"./login-ceremony\";\nimport {\n extractLookupIdFromToken,\n getCliBootstrap,\n listIngestionKeys,\n type CliBootstrapResponse,\n} from \"./cli-api\";\n\nexport interface RunUnifiedLoginOptions {\n /** Credential type to mint. Defaults to 'device_session' for back-compat. */\n kind?: CredentialType;\n /** Optional browser override (LANGWATCH_BROWSER also honoured). */\n browser?: string;\n /** Pre-loaded config to mutate; defaults to `loadConfig()`. */\n cfg?: GovernanceConfig;\n}\n\nexport type RunDeviceFlowLoginOptions = Omit<RunUnifiedLoginOptions, \"kind\">;\n\n/**\n * Run the canonical device-code login flow end-to-end. Selects what to\n * mint via `kind` (defaults to device_session); the same browser\n * approval ceremony covers both modes. On success, persists to the\n * right store + returns the latest GovernanceConfig.\n */\nexport async function runUnifiedLoginFlow(\n opts: RunUnifiedLoginOptions = {},\n): Promise<GovernanceConfig> {\n const kind: CredentialType = opts.kind ?? \"device_session\";\n const cfg = opts.cfg ?? loadConfig();\n const baseUrl = cfg.control_plane_url;\n\n console.log(chalk.blue(\"🔐 LangWatch login\"));\n console.log(chalk.gray(`Control plane: ${baseUrl}`));\n console.log(\n chalk.gray(\n kind === \"project_api_key\"\n ? \"Mode: project SDK API key (will write .env)\"\n : \"Mode: device session (will write ~/.langwatch/config.json)\",\n ),\n );\n\n const dc = await startDeviceCode({ baseUrl }, { credentialType: kind });\n const verifyURL =\n dc.verification_uri_complete ??\n `${dc.verification_uri.replace(/\\/+$/, \"\")}?user_code=${encodeURIComponent(dc.user_code)}`;\n\n console.log();\n console.log(chalk.cyan(`Opening: ${verifyURL}`));\n console.log(\n chalk.gray(\n `If your browser doesn't open, paste the URL above and enter code: ${chalk.bold(dc.user_code)}`,\n ),\n );\n console.log();\n\n await openInBrowser(verifyURL, opts.browser);\n\n // discardStdin:false is load-bearing. ora's default (true) flips stdin to\n // raw mode while the spinner runs, so Ctrl+C arrives as a raw 0x03 byte that\n // ora swallows instead of a SIGINT — the wait becomes unkillable. Keeping\n // stdin cooked lets the terminal deliver SIGINT; the handler stops the\n // spinner and exits cleanly so the user can always abort the login wait.\n const spinner = ora({\n text: \"Waiting for you to approve in the browser\",\n discardStdin: false,\n }).start();\n const onSigint = () => {\n spinner.stop();\n console.log(chalk.gray(\"\\nLogin cancelled.\"));\n process.exit(130);\n };\n process.once(\"SIGINT\", onSigint);\n try {\n const result = await pollUntilDone({ baseUrl }, dc);\n if (result.kind === \"device_session\") {\n spinner.succeed(`Logged in as ${result.user.email}`);\n persistDeviceSession(cfg, result);\n saveConfig(cfg);\n\n const bootstrap = await fetchBootstrapSafely(cfg);\n\n // Pick up the server's authoritative gateway URL. Without this,\n // self-hosted CLI users would see the SaaS default\n // (https://gateway.langwatch.ai) on whoami / login output even\n // though the actual gateway is on localhost:5563. The server's\n // `gatewayUrl` reflects `LW_GATEWAY_BASE_URL` or the IS_SAAS-\n // aware fallback. Backwards-compatible: older servers (without\n // this field) leave the local default in place.\n if (bootstrap?.gatewayUrl) {\n cfg.gateway_url = bootstrap.gatewayUrl;\n saveConfig(cfg);\n }\n\n // Cache the org's per-tool path policy so the `langwatch <tool>`\n // wrapper gates path selection on the admin's choices offline.\n // Older servers omit the field; the wrapper then falls back to\n // the hardcoded defaults.\n if (bootstrap?.toolPolicies) {\n cfg.tool_policies = bootstrap.toolPolicies;\n saveConfig(cfg);\n }\n\n // Reconcile cached ingestion keys (#4755): after a fresh login, drop\n // any locally cached entries whose token was revoked on the platform.\n // Errors are swallowed — a login must never fail on reconcile; the\n // worst outcome is a stale cache entry that the per-invocation wrapper\n // check will catch anyway.\n if (cfg.default_personal_ingest_keys && Object.keys(cfg.default_personal_ingest_keys).length > 0) {\n try {\n const liveKeys = await listIngestionKeys(cfg);\n const liveSet = new Set(liveKeys.map((k) => `${k.sourceType}:${k.lookupId}`));\n const reconciled: GovernanceConfig[\"default_personal_ingest_keys\"] = {};\n let changed = false;\n for (const [sourceType, entry] of Object.entries(cfg.default_personal_ingest_keys)) {\n const lookupId = extractLookupIdFromToken(entry.secret ?? \"\");\n if (lookupId && liveSet.has(`${sourceType}:${lookupId}`)) {\n reconciled[sourceType] = entry;\n } else {\n // Entry is stale (revoked or lookupId missing) — omit from reconciled\n changed = true;\n }\n }\n if (changed) {\n cfg.default_personal_ingest_keys = reconciled;\n saveConfig(cfg);\n }\n } catch {\n // Network error / older server: keep existing cache untouched\n }\n }\n\n console.log();\n const ceremonyLines = formatLoginCeremony({\n email: cfg.user?.email ?? result.user.email,\n organizationName: cfg.organization?.name,\n tools: bootstrap?.tools,\n providers: bootstrap?.providers,\n budget:\n bootstrap?.budget?.monthlyLimitUsd != null\n ? {\n period: bootstrap.budget.period,\n limitUsd: bootstrap.budget.monthlyLimitUsd,\n usedUsd: bootstrap.budget.monthlyUsedUsd,\n }\n : undefined,\n });\n for (const line of ceremonyLines) {\n console.log(line);\n }\n console.log();\n console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));\n\n return cfg;\n }\n\n // kind === 'api_key' — write to project-local .env (NO copy-paste)\n spinner.succeed(\n `API key generated for project ${chalk.bold(result.project.name)}`,\n );\n const envResult = writeApiKeyToEnv(result.api_key);\n console.log();\n console.log(chalk.green(\"✓ API key saved to .env\"));\n if (envResult.created) {\n console.log(chalk.gray(` • Created .env file at ${envResult.path}`));\n } else if (envResult.updated) {\n console.log(chalk.gray(` • Updated existing API key in ${envResult.path}`));\n } else {\n console.log(chalk.gray(` • Added API key to ${envResult.path}`));\n }\n console.log();\n console.log(\n chalk.gray(\n ` Project: ${result.project.name} (${result.project.slug})`,\n ),\n );\n console.log(chalk.gray(` Dashboard: ${cfg.control_plane_url}`));\n return cfg;\n } catch (err) {\n spinner.fail();\n if (err instanceof DeviceFlowError) {\n switch (err.kind) {\n case \"denied\":\n throw new Error(\n \"authorization denied — you can retry `langwatch login`\",\n );\n case \"expired\":\n throw new Error(\n \"authorization request expired — run `langwatch login` again\",\n );\n default:\n throw err;\n }\n }\n throw err;\n } finally {\n process.removeListener(\"SIGINT\", onSigint);\n }\n}\n\n/**\n * Back-compat wrapper. New callers should use `runUnifiedLoginFlow`\n * directly with an explicit `kind`.\n */\nexport async function runDeviceFlowLogin(\n opts: RunDeviceFlowLoginOptions = {},\n): Promise<GovernanceConfig> {\n return runUnifiedLoginFlow({ ...opts, kind: \"device_session\" });\n}\n\nfunction persistDeviceSession(\n cfg: GovernanceConfig,\n result: ExchangeDeviceSessionResult,\n): void {\n cfg.access_token = result.access_token;\n cfg.refresh_token = result.refresh_token;\n cfg.expires_at = Math.floor(Date.now() / 1000) + result.expires_in;\n cfg.user = {\n id: result.user.id,\n email: result.user.email,\n name: result.user.name,\n };\n cfg.organization = {\n id: result.organization.id,\n slug: result.organization.slug,\n name: result.organization.name,\n };\n if (result.default_personal_vk) {\n cfg.default_personal_vk = {\n id: result.default_personal_vk.id,\n secret: result.default_personal_vk.secret,\n prefix: result.default_personal_vk.prefix,\n };\n }\n if (result.endpoint) {\n cfg.control_plane_url = result.endpoint.replace(/\\/+$/, \"\");\n }\n}\n\ninterface EnvWriteResult {\n created: boolean;\n updated: boolean;\n path: string;\n}\n\nfunction writeApiKeyToEnv(apiKey: string): EnvWriteResult {\n const envPath = path.join(process.cwd(), \".env\");\n if (!fs.existsSync(envPath)) {\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n if (!found) {\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n}\n\nasync function fetchBootstrapSafely(\n cfg: GovernanceConfig,\n): Promise<CliBootstrapResponse | null> {\n try {\n return await getCliBootstrap(cfg);\n } catch {\n return null;\n }\n}\n\nasync function openInBrowser(url: string, override?: string): Promise<void> {\n const choice =\n override ?? process.env.LANGWATCH_BROWSER ?? process.env.BROWSER ?? \"\";\n if (choice === \"none\") return;\n const open = (await import(\"open\")).default;\n try {\n if (!choice || choice === \"default\") {\n await open(url);\n return;\n }\n await open(url, { app: { name: choice } });\n } catch {\n // browser failure shouldn't break login — user can paste manually\n }\n}\n\n// The post-login shell-rc persist offer was removed when `langwatch\n// login` became auth-only: the device session in config.json is\n// already authoritative, so login never edits the shell rc. The\n// persist offer now lives in the `langwatch <tool>` wrapper and fires\n// only in ingestion mode (maybeOfferIngestionShellRcPersist in\n// shell-rc.ts), framed as installing telemetry.\n\n// Type-only re-exports so callers can import the shapes from this\n// module without reaching into device-flow.ts.\nexport type { ExchangeApiKeyResult, ExchangeDeviceSessionResult };\n","/**\n * Render the \"You're in!\" ceremony emitted by `langwatch login` after a\n * successful device-flow exchange.\n *\n * Two clearly-separated lists, sourced from the org's AI Tools catalog:\n *\n * ✓ Logged in as jane@acme.com @ Acme\n *\n * Your AI tools (run any of these):\n * $ langwatch claude # Claude Code\n * $ langwatch codex # Codex\n *\n * Model providers you can issue a virtual key for:\n * • anthropic Claude\n * • openai (not configured yet)\n *\n * Monthly budget: $500 | Used: $0.00\n *\n * Or open the app in your browser:\n * $ langwatch open\n *\n * The two sections answer two different questions: which coding assistants\n * can I run right now (`tools`), and which model providers can I mint my own\n * virtual key for (`providers`). They are NOT the same thing — conflating\n * them was the bug this rewrite fixes.\n *\n * Pure function: takes the data, returns an array of lines. Caller applies\n * any chalk colouring + writes to stdout. Lets unit tests assert on the\n * literal output without colour/escape noise.\n */\n\nexport interface LoginCeremonyTool {\n /** CLI slug the wrapper runs (e.g. \"claude\", \"codex\"). */\n slug: string;\n /** Human-readable assistant name (e.g. \"Claude Code\"). */\n displayName: string;\n}\n\nexport interface LoginCeremonyProvider {\n /** Provider key (lowercase, e.g. \"anthropic\", \"openai\", \"gemini\"). */\n name: string;\n /** Optional human-readable provider label (e.g. \"Anthropic\"). */\n displayName?: string;\n /**\n * Whether the org has a live credential for this provider. When false the\n * ceremony annotates the row so the user knows the tile still needs setup\n * before a minted key will work.\n */\n configured?: boolean;\n}\n\nexport interface LoginCeremonyBudget {\n /** Period label (e.g. \"Monthly\"). Capitalised in output. */\n period: string;\n /** Spend ceiling in USD (rendered as `$N`). */\n limitUsd: number;\n /** Used so far in USD (rendered with two decimals). */\n usedUsd: number;\n}\n\nexport interface LoginCeremonyInput {\n email: string;\n organizationName?: string;\n /**\n * Coding assistants the user can run via `langwatch <slug>`, sourced from\n * the org's catalog. When empty / omitted the ceremony falls back to the\n * built-in default wrappers so a fresh org still gets a next-step.\n */\n tools?: LoginCeremonyTool[];\n /** Model providers the user can mint their own virtual key for. */\n providers?: LoginCeremonyProvider[];\n budget?: LoginCeremonyBudget;\n /** Whether the `langwatch open` browser-launch command is available. */\n openCommand?: boolean;\n}\n\n/** Fallback wrappers when the org has not published any coding-assistant tile. */\nconst DEFAULT_TOOLS: LoginCeremonyTool[] = [\n { slug: \"claude\", displayName: \"Claude Code\" },\n { slug: \"codex\", displayName: \"Codex\" },\n { slug: \"cursor\", displayName: \"Cursor\" },\n];\n\nfunction padRight(s: string, width: number): string {\n if (s.length >= width) return s;\n return s + \" \".repeat(width - s.length);\n}\n\nfunction formatUsd(n: number): string {\n // $500 (whole) → \"$500\"; $42.18 → \"$42.18\".\n if (Number.isInteger(n)) return `$${n}`;\n return `$${n.toFixed(2)}`;\n}\n\nfunction formatUsedUsd(n: number): string {\n return `$${n.toFixed(2)}`;\n}\n\nexport function formatLoginCeremony(input: LoginCeremonyInput): string[] {\n const lines: string[] = [];\n\n const orgSuffix = input.organizationName ? ` @ ${input.organizationName}` : \"\";\n lines.push(`✓ Logged in as ${input.email}${orgSuffix}`);\n\n // AI tools (coding assistants). Fall back to the built-in wrappers when the\n // org published none, so the user always gets a runnable next-step.\n const tools =\n input.tools && input.tools.length > 0 ? input.tools : DEFAULT_TOOLS;\n lines.push(\"\");\n lines.push(\"Your AI tools (run any of these):\");\n const cmdWidth = Math.max(\n ...tools.map((t) => `langwatch ${t.slug}`.length),\n );\n for (const tool of tools) {\n const cmd = `langwatch ${tool.slug}`;\n const labelSuffix = tool.displayName ? ` # ${tool.displayName}` : \"\";\n lines.push(` $ ${padRight(cmd, cmdWidth)}${labelSuffix}`);\n }\n\n // Model providers the user can mint a virtual key for — a different concept\n // from the tools above. Only shown when the org published provider tiles.\n if (input.providers && input.providers.length > 0) {\n lines.push(\"\");\n lines.push(\"Model providers you can issue a virtual key for:\");\n const nameWidth = Math.max(...input.providers.map((p) => p.name.length));\n for (const p of input.providers) {\n const padded = padRight(p.name, nameWidth);\n const annotations: string[] = [];\n if (p.displayName && p.displayName !== p.name) {\n annotations.push(p.displayName);\n }\n if (p.configured === false) annotations.push(\"(not configured yet)\");\n const suffix = annotations.length > 0 ? ` ${annotations.join(\" \")}` : \"\";\n lines.push(` • ${padded}${suffix}`);\n }\n }\n\n if (input.budget) {\n lines.push(\"\");\n const period =\n input.budget.period.charAt(0).toUpperCase() +\n input.budget.period.slice(1).toLowerCase();\n lines.push(\n `${period} budget: ${formatUsd(input.budget.limitUsd)} | Used: ${formatUsedUsd(input.budget.usedUsd)}`,\n );\n }\n\n if (input.openCommand !== false) {\n lines.push(\"\");\n lines.push(\"Or open the app in your browser:\");\n lines.push(\" $ langwatch open\");\n }\n\n return lines;\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-O75KIBCK.js","../src/observability-sdk/setup/node/setup.ts","../src/observability-sdk/setup/utils.ts"],"names":["_b"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-O75KIBCK.js","sourcesContent":[null,"import { NodeSDK } from \"@opentelemetry/sdk-node\";\nimport { SimpleLogRecordProcessor, BatchLogRecordProcessor, type LogRecordProcessor, ConsoleLogRecordExporter, LoggerProvider } from \"@opentelemetry/sdk-logs\";\nimport { createMergedResource, getConcreteProvider, isConcreteProvider } from \"../utils\";\nimport { type SetupObservabilityOptions, type ObservabilityHandle } from \"./types\";\nimport { trace } from \"@opentelemetry/api\";\nimport {\n ConsoleSpanExporter,\n SimpleSpanProcessor,\n BatchSpanProcessor,\n type SpanProcessor,\n} from \"@opentelemetry/sdk-trace-base\";\nimport { type Resource } from \"@opentelemetry/resources\";\nimport { LangWatchLogsExporter, LangWatchTraceExporter } from \"../../exporters\";\nimport { ConsoleLogger, type Logger } from \"../../../logger\";\nimport { initializeObservabilitySdkConfig } from \"../../config\";\nimport { setLangWatchLoggerProvider } from \"../../logger\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\nimport { registerInstrumentations } from \"@opentelemetry/instrumentation\";\n\n// Helper functions\nconst createNoOpHandle = (logger: Logger): ObservabilityHandle => ({\n shutdown: async () => {\n logger.debug(\"Shutdown called for LangWatch no-op. Nothing will be shutdown\");\n },\n});\n\nconst getLangWatchConfig = (options: SetupObservabilityOptions) => {\n const isDisabled = options.langwatch === 'disabled';\n const config = typeof options.langwatch === 'object' ? options.langwatch : {};\n\n return {\n disabled: isDisabled,\n apiKey: isDisabled ? void 0 : (config.apiKey ?? process.env.LANGWATCH_API_KEY),\n endpoint: isDisabled ? void 0 : (config.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT),\n processorType: config.processorType ?? 'batch'\n };\n};\n\nconst checkForEarlyExit = (options: SetupObservabilityOptions, logger: Logger): ObservabilityHandle | null => {\n const globalProvider = trace.getTracerProvider();\n const alreadySetup = isConcreteProvider(globalProvider);\n\n if (alreadySetup && !options.advanced?.UNSAFE_forceOpenTelemetryReinitialization) {\n if (options.advanced?.attachToExistingProvider) {\n return null;\n }\n\n logger.error(\n `OpenTelemetry is already set up in this process.\\n` +\n `Spans will NOT be sent to LangWatch unless you add the LangWatch span processor or exporter to your existing OpenTelemetry setup.\\n` +\n `You must either:\\n` +\n ` 1. Remove your existing OpenTelemetry setup and only use LangWatch,\\n` +\n ` 2. Add the LangWatch span processor to your existing setup, or replace the existing exporter with the LangWatch exporter.\\n` +\n ` 3. Use advanced.attachToExistingProvider to let LangWatch attach its processors to the existing provider.\\n` +\n `\\nFor step-by-step instructions, see the LangWatch docs and check out the integration guide for your framework:\\n` +\n ` https://docs.langwatch.ai/integration/typescript/guide\\n` +\n `\\nSee also: https://github.com/open-telemetry/opentelemetry-js/issues/5299`,\n );\n return createNoOpHandle(logger);\n }\n\n if (alreadySetup) {\n logger.warn(\n \"OpenTelemetry is already set up, but UNSAFE_forceOpenTelemetryReinitialization=true. \" +\n \"Proceeding with reinitialization. This may cause conflicts.\"\n );\n }\n\n return null;\n};\n\nconst warnIfMisconfigured = (options: SetupObservabilityOptions, langwatch: ReturnType<typeof getLangWatchConfig>, logger: Logger) => {\n // Check if LangWatch is disabled but no alternative export mechanisms are provided\n // Note: If we reach this function, we know advanced.disabled and advanced.skipOpenTelemetrySetup are false\n // because those are handled as early exits in setupObservability()\n if (langwatch.disabled) {\n const hasAlternativeExport =\n options.spanProcessors?.length ??\n options.logRecordProcessors?.length ??\n options.debug?.consoleTracing ??\n options.debug?.consoleLogging ??\n options.traceExporter;\n\n if (!hasAlternativeExport) {\n const errorMessage =\n \"LangWatch integration is disabled but no custom span processors, trace exporters, or console tracing is configured. \" +\n \"OpenTelemetry will be set up but traces will not be exported anywhere. \" +\n \"Either:\\n\" +\n \" 1. Enable LangWatch integration (remove langwatch: 'disabled')\\n\" +\n \" 2. Provide custom spanProcessors, logRecordProcessors, or traceExporter\\n\" +\n \" 3. Enable debug.consoleTracing or debug.consoleLogging for development\\n\" +\n \" 4. Use advanced.disabled to completely disable observability\\n\" +\n \" 5. Use advanced.skipOpenTelemetrySetup to handle OpenTelemetry setup yourself\";\n\n if (options.advanced?.throwOnSetupError) {\n throw new Error(errorMessage);\n } else {\n logger.error(errorMessage);\n }\n }\n }\n};\n\nexport function setupObservability(options: SetupObservabilityOptions = {}): ObservabilityHandle {\n const logger = options.debug?.logger ?? new ConsoleLogger({\n level: options.debug?.logLevel ?? 'warn',\n prefix: \"LangWatch Observability SDK\",\n });\n\n initializeObservabilitySdkConfig({\n logger,\n dataCapture: options.dataCapture,\n });\n\n if (options.advanced?.disabled) {\n logger.debug(\"Observability disabled via advanced.disabled\");\n return createNoOpHandle(logger);\n }\n\n if (options.advanced?.skipOpenTelemetrySetup) {\n logger.debug(\"Skipping OpenTelemetry setup\");\n return createNoOpHandle(logger);\n }\n\n if (options.tracerProvider) {\n try {\n return setupDedicatedProvider(options.tracerProvider, options, logger);\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(`Failed to set up dedicated provider: ${errorMessage}`);\n if (options.advanced?.throwOnSetupError) throw err;\n return createNoOpHandle(logger);\n }\n }\n\n const earlyExit = checkForEarlyExit(options, logger);\n if (earlyExit) return earlyExit;\n\n try {\n const globalProvider = trace.getTracerProvider();\n const existingProvider = getConcreteProvider(globalProvider);\n\n if (options.advanced?.attachToExistingProvider && existingProvider) {\n const handle = attachToExistingProvider(existingProvider, options, logger);\n if (handle) return handle;\n\n const errorMsg =\n \"attachToExistingProvider is enabled but the existing provider does not support adding span processors. \" +\n \"This may be due to an incompatible OpenTelemetry version. No spans will be exported to LangWatch.\";\n if (options.advanced?.throwOnSetupError) throw new Error(errorMsg);\n logger.error(errorMsg);\n return createNoOpHandle(logger);\n }\n\n const sdk = createAndStartNodeSdk(options, logger, createMergedResource(\n options.attributes,\n options.serviceName,\n options.resource,\n ));\n\n logger.info(\"LangWatch Observability SDK setup completed successfully\");\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down NodeSDK\");\n await sdk?.shutdown();\n logger.info(\"NodeSDK shutdown complete\");\n },\n };\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n logger.error(`Failed to initialize NodeSDK: ${errorMessage}`);\n\n if (err instanceof Error && err.stack) {\n logger.debug(`Stack trace: ${err.stack}`);\n }\n\n if (options.advanced?.throwOnSetupError) throw err;\n return createNoOpHandle(logger);\n }\n}\n\nfunction setupDedicatedProvider(\n provider: import(\"@opentelemetry/api\").TracerProvider,\n options: SetupObservabilityOptions,\n logger: Logger,\n): ObservabilityHandle {\n const langwatch = getLangWatchConfig(options);\n const addedProcessors: SpanProcessor[] = [];\n\n const internalArray = (provider as any)?._activeSpanProcessor?._spanProcessors;\n const hasPublicApi = typeof (provider as any)?.addSpanProcessor === 'function';\n\n if (!Array.isArray(internalArray) && !hasPublicApi) {\n const msg = \"Dedicated tracerProvider does not support adding span processors.\";\n if (options.advanced?.throwOnSetupError) throw new Error(msg);\n logger.error(msg);\n return createNoOpHandle(logger);\n }\n\n const addProcessor = (processor: SpanProcessor) => {\n if (hasPublicApi) {\n (provider as any).addSpanProcessor(processor);\n } else {\n internalArray.push(processor);\n }\n };\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n const processor = langwatch.processorType === 'batch'\n ? new BatchSpanProcessor(traceExporter)\n : new SimpleSpanProcessor(traceExporter);\n\n addedProcessors.push(processor);\n addProcessor(processor);\n logger.info(\"Attached LangWatch span processor to dedicated provider\");\n }\n\n if (options.traceExporter) {\n const p = new SimpleSpanProcessor(options.traceExporter);\n addedProcessors.push(p);\n addProcessor(p);\n }\n\n if (options.spanProcessors?.length) {\n for (const p of options.spanProcessors) {\n addedProcessors.push(p);\n addProcessor(p);\n }\n }\n\n let unregisterInstrumentations: (() => void) | undefined;\n if (options.instrumentations?.length) {\n unregisterInstrumentations = registerInstrumentations({\n tracerProvider: provider,\n instrumentations: options.instrumentations,\n });\n logger.info(`Registered ${options.instrumentations.length} instrumentations against dedicated provider`);\n }\n\n logger.info(\"LangWatch Observability SDK setup completed with dedicated provider (trace-only, global provider untouched)\");\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down dedicated LangWatch processors\");\n try {\n await Promise.all(addedProcessors.map((p) => p.shutdown()));\n } finally {\n const candidates = [\n (provider as any)?._activeSpanProcessor?._spanProcessors,\n (provider as any)?.activeSpanProcessor?._spanProcessors,\n (provider as any)?._registeredSpanProcessors,\n ];\n for (const arr of candidates) {\n if (!Array.isArray(arr)) continue;\n for (const p of addedProcessors) {\n const idx = arr.indexOf(p);\n if (idx !== -1) arr.splice(idx, 1);\n }\n }\n unregisterInstrumentations?.();\n }\n logger.info(\"LangWatch processor shutdown complete\");\n },\n };\n}\n\nfunction attachToExistingProvider(\n provider: unknown,\n options: SetupObservabilityOptions,\n logger: Logger,\n): ObservabilityHandle | null {\n const internalArray = (provider as any)?._activeSpanProcessor?._spanProcessors;\n const hasPublicApi = typeof (provider as any)?.addSpanProcessor === 'function';\n\n if (!Array.isArray(internalArray) && !hasPublicApi) {\n return null;\n }\n\n const addProcessor = (processor: SpanProcessor) => {\n if (hasPublicApi) {\n (provider as any).addSpanProcessor(processor);\n } else {\n internalArray.push(processor);\n }\n };\n\n const langwatch = getLangWatchConfig(options);\n const addedProcessors: SpanProcessor[] = [];\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n const processor = langwatch.processorType === 'batch'\n ? new BatchSpanProcessor(traceExporter)\n : new SimpleSpanProcessor(traceExporter);\n\n addedProcessors.push(processor);\n addProcessor(processor);\n logger.info(\"Attached LangWatch span processor to existing global provider\");\n }\n\n if (options.traceExporter) {\n const traceExporterProcessor = new SimpleSpanProcessor(options.traceExporter);\n addedProcessors.push(traceExporterProcessor);\n addProcessor(traceExporterProcessor);\n logger.debug(\"Attached user-provided traceExporter to existing provider\");\n }\n\n if (options.spanProcessors?.length) {\n for (const processor of options.spanProcessors) {\n addedProcessors.push(processor);\n addProcessor(processor);\n }\n logger.debug(`Attached ${options.spanProcessors.length} user-provided span processors to existing provider`);\n }\n\n return {\n shutdown: async () => {\n logger.debug(\"Shutting down attached LangWatch processors\");\n try {\n await Promise.all(addedProcessors.map((p) => p.shutdown()));\n } finally {\n const candidates = [\n (provider as any)?._activeSpanProcessor?._spanProcessors,\n (provider as any)?.activeSpanProcessor?._spanProcessors,\n (provider as any)?._registeredSpanProcessors,\n ];\n for (const arr of candidates) {\n if (!Array.isArray(arr)) continue;\n for (const p of addedProcessors) {\n const idx = arr.indexOf(p);\n if (idx !== -1) arr.splice(idx, 1);\n }\n }\n }\n logger.info(\"LangWatch processor shutdown complete\");\n },\n };\n}\n\nexport function createAndStartNodeSdk(\n options: SetupObservabilityOptions,\n logger: Logger,\n resource: Resource,\n): NodeSDK {\n const langwatch = getLangWatchConfig(options);\n\n if (langwatch.disabled) {\n logger.warn(\"LangWatch integration disabled, using user-provided SpanProcessors and LogRecordProcessors\");\n } else {\n logger.info(`Using LangWatch ${langwatch.processorType} processors for tracing and logging`);\n }\n\n const spanProcessors: SpanProcessor[] = [];\n const logProcessors: LogRecordProcessor[] = [];\n\n // Console processors\n if (options.debug?.consoleTracing) {\n spanProcessors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));\n logger.debug(\"Console tracing enabled; adding console span exporter\");\n }\n if (options.debug?.consoleLogging) {\n logProcessors.push(new SimpleLogRecordProcessor(new ConsoleLogRecordExporter()));\n logger.debug(\"Console recording of logs enabled; adding console log record processor\");\n }\n\n if (!langwatch.disabled) {\n const traceExporter = new LangWatchTraceExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n const logExporter = new LangWatchLogsExporter({\n apiKey: langwatch.apiKey,\n endpoint: langwatch.endpoint,\n });\n\n if (langwatch.processorType === 'batch') {\n spanProcessors.push(new BatchSpanProcessor(traceExporter));\n logProcessors.push(new BatchLogRecordProcessor(logExporter));\n logger.debug(`Added LangWatch ${langwatch.processorType} SpanProcessor and LogRecordProcessor to SDK`);\n } else {\n spanProcessors.push(new SimpleSpanProcessor(traceExporter));\n logProcessors.push(new SimpleLogRecordProcessor(logExporter));\n logger.debug(`Added LangWatch ${langwatch.processorType} SpanProcessor and LogRecordProcessor to SDK`);\n }\n }\n\n if (options.traceExporter) {\n spanProcessors.push(new SimpleSpanProcessor(options.traceExporter));\n logger.debug(`Added user-provided SpanProcessor to SDK`);\n }\n\n if (options.spanProcessors?.length) {\n spanProcessors.push(...options.spanProcessors);\n logger.debug(`Added user-provided ${options.spanProcessors.length} SpanProcessors to SDK`);\n }\n if (options.logRecordProcessors?.length) {\n logProcessors.push(...options.logRecordProcessors);\n logger.debug(`Added user-provided ${options.logRecordProcessors.length} LogRecordProcessors to SDK`);\n }\n\n warnIfMisconfigured(options, langwatch, logger);\n\n // Create logger provider\n const loggerProvider = logProcessors.length ? new LoggerProvider({\n resource,\n processors: logProcessors,\n }) : void 0;\n\n if (loggerProvider) {\n logger.debug(\"Created LangWatch logger provider\");\n }\n\n const sdk = new NodeSDK({\n resource,\n serviceName: options.serviceName,\n autoDetectResources: options.autoDetectResources,\n contextManager: options.contextManager,\n textMapPropagator: options.textMapPropagator,\n metricReader: options.metricReader,\n views: options.views,\n resourceDetectors: options.resourceDetectors,\n sampler: options.sampler,\n spanProcessors,\n logRecordProcessors: logProcessors,\n spanLimits: options.spanLimits,\n idGenerator: options.idGenerator,\n instrumentations: options.instrumentations,\n });\n\n sdk.start();\n logger.info(\"NodeSDK started successfully\");\n\n // Fix for Next.js 15: Explicitly verify and register provider if still proxy\n // See: https://github.com/langwatch/langwatch/issues/753\n if (process.env.NEXT_RUNTIME === 'nodejs') {\n // Wait a tick to ensure SDK initialization completes\n setImmediate(() => {\n const globalProvider = trace.getTracerProvider();\n\n // Check if provider is still a proxy (Next.js 15 issue)\n if (globalProvider.constructor.name === 'ProxyTracerProvider') {\n logger.warn('Global provider is still ProxyTracerProvider after SDK start - applying Next.js 15 workaround');\n\n // Access the real provider from the delegate\n const realProvider = (globalProvider as any)._delegate;\n\n if (realProvider?.constructor.name === 'NodeTracerProvider') {\n // Explicitly register the real provider globally\n trace.setGlobalTracerProvider(realProvider);\n logger.info('Successfully registered NodeTracerProvider globally for Next.js 15');\n } else {\n logger.error('Could not find NodeTracerProvider in proxy delegate - spans may not be exported');\n }\n } else {\n logger.debug(`Provider registered correctly: ${globalProvider.constructor.name}`);\n }\n });\n }\n\n if (loggerProvider) {\n setLangWatchLoggerProvider(loggerProvider);\n logger.debug(\"Set LangWatch logger provider\");\n }\n\n if (!options.advanced?.disableAutoShutdown) {\n let isShuttingDown = false;\n\n const gracefulShutdown = async ({ signal, exitAfter }: { signal: string; exitAfter: boolean }) => {\n if (isShuttingDown) return;\n isShuttingDown = true;\n\n logger.debug(`${signal}: shutting down OpenTelemetry...`);\n try {\n await sdk.shutdown();\n logger.debug('OpenTelemetry shutdown complete');\n } catch (err) {\n logger.error('Error shutting down OpenTelemetry', err);\n } finally {\n if (exitAfter) {\n process.exit(0);\n }\n }\n };\n\n // Normal process exit when event loop drains (e.g. CLI scripts, one-shot programs)\n process.on('beforeExit', () => {\n void gracefulShutdown({ signal: 'beforeExit', exitAfter: false });\n });\n\n // Ctrl+C\n process.on('SIGINT', () => {\n void gracefulShutdown({ signal: 'SIGINT', exitAfter: true });\n });\n\n // External kill / Docker stop / k8s pod termination\n process.on('SIGTERM', () => {\n void gracefulShutdown({ signal: 'SIGTERM', exitAfter: true });\n });\n }\n\n return sdk;\n}\n\n/**\n * Ensure observability is set up, but only if not already configured.\n * \n * This is an idempotent function that:\n * - Does nothing if OpenTelemetry is already configured (by you or another library)\n * - Sets up LangWatch observability if no tracer provider exists\n * - Does nothing if LANGWATCH_API_KEY is not set\n * \n * This is useful for libraries/SDKs that want to ensure tracing is available\n * without conflicting with user's existing observability setup.\n * \n * @example\n * ```typescript\n * import { ensureSetup } from \"langwatch/observability/node\";\n * \n * // Safe to call - won't conflict with existing setup\n * ensureSetup();\n * \n * // Now you can use tracing\n * const tracer = trace.getTracer(\"my-app\");\n * ```\n */\nexport const ensureSetup = (): ObservabilityHandle => {\n const globalProvider = trace.getTracerProvider();\n const alreadySetup = isConcreteProvider(globalProvider);\n \n // If already set up, return no-op handle (don't log error, just silently skip)\n if (alreadySetup) {\n return {\n shutdown: async () => {\n // No-op - we didn't set up anything\n },\n };\n }\n \n // If no API key, return no-op handle (can't set up without it)\n if (!process.env.LANGWATCH_API_KEY) {\n return {\n shutdown: async () => {\n // No-op - no API key available\n },\n };\n }\n \n // Set up observability with defaults\n return setupObservability();\n};\n","import {\n defaultResource,\n type Resource,\n resourceFromAttributes,\n} from \"@opentelemetry/resources\";\nimport { type Attributes } from \"@opentelemetry/api\";\nimport * as semconv from \"@opentelemetry/semantic-conventions/incubating\";\nimport {\n LANGWATCH_SDK_LANGUAGE,\n LANGWATCH_SDK_VERSION,\n DEFAULT_SERVICE_NAME,\n LANGWATCH_SDK_NAME_OBSERVABILITY,\n} from \"../../internal/constants\";\nimport {\n ATTR_LANGWATCH_SDK_NAME,\n ATTR_LANGWATCH_SDK_VERSION,\n ATTR_LANGWATCH_SDK_LANGUAGE,\n} from \"../semconv/attributes\";\n\n/**\n * Creates a merged resource from the given attributes, service name, and given resource.\n */\nexport function createMergedResource(\n attributes: Attributes | undefined,\n serviceName: string | undefined,\n givenResource: Resource | undefined,\n): Resource {\n const langwatchResource = resourceFromAttributes({\n [ATTR_LANGWATCH_SDK_NAME]: LANGWATCH_SDK_NAME_OBSERVABILITY,\n [ATTR_LANGWATCH_SDK_LANGUAGE]: LANGWATCH_SDK_LANGUAGE,\n [ATTR_LANGWATCH_SDK_VERSION]: LANGWATCH_SDK_VERSION,\n });\n\n const userResource = resourceFromAttributes({\n [semconv.ATTR_SERVICE_NAME]: serviceName ?? DEFAULT_SERVICE_NAME,\n ...(attributes ?? {}),\n });\n\n return (givenResource ?? defaultResource())\n .merge(langwatchResource)\n .merge(userResource);\n}\n\nfunction hasAttachableProcessorRegistry(obj: unknown): boolean {\n if (!obj || typeof obj !== \"object\") return false;\n const candidates = [\n (obj as any)?._activeSpanProcessor?._spanProcessors,\n (obj as any)?.activeSpanProcessor?._spanProcessors,\n (obj as any)?._registeredSpanProcessors,\n ];\n return candidates.some(Array.isArray);\n}\n\n/**\n * Returns the concrete OpenTelemetry provider (NodeTracerProvider or BasicTracerProvider),\n * either from the given provider or its delegate, or undefined if not found.\n */\nexport function getConcreteProvider(provider: unknown): unknown {\n if (!provider || typeof provider !== \"object\") return undefined;\n\n // Check provider itself\n const constructorName = (provider as any).constructor?.name;\n if ([\"NodeTracerProvider\", \"BasicTracerProvider\"].includes(constructorName)) {\n return provider;\n }\n if (typeof (provider as any).addSpanProcessor === \"function\") {\n return provider;\n }\n if (hasAttachableProcessorRegistry(provider)) {\n return provider;\n }\n\n // Check one level of delegate (ProxyTracerProvider pattern)\n let delegate;\n if (typeof (provider as any).getDelegate === \"function\") {\n delegate = (provider as any).getDelegate();\n } else if ((provider as any).delegate) {\n delegate = (provider as any).delegate;\n } else if ((provider as any)._delegate) {\n // Also check for _delegate (OpenTelemetry's actual property name)\n // See: https://github.com/langwatch/langwatch/issues/753\n delegate = (provider as any)._delegate;\n }\n\n if (delegate && typeof delegate === \"object\") {\n const delegateConstructorName = delegate.constructor?.name;\n if ([\"NodeTracerProvider\", \"BasicTracerProvider\"].includes(delegateConstructorName)) {\n return delegate;\n }\n if (typeof delegate.addSpanProcessor === \"function\") {\n return delegate;\n }\n if (hasAttachableProcessorRegistry(delegate)) {\n return delegate;\n }\n }\n\n return void 0;\n}\n\n/**\n * Returns true if the given provider (or its delegate) is a concrete OpenTelemetry provider.\n */\nexport function isConcreteProvider(provider: unknown): boolean {\n return !!getConcreteProvider(provider);\n}\n\n"]}
@@ -1,67 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
2
-
3
- var _chunkBRPEG3YQjs = require('./chunk-BRPEG3YQ.js');
4
-
5
- // src/cli/utils/governance/config.ts
6
- var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
7
- var _os = require('os'); var os = _interopRequireWildcard(_os);
8
- var _path = require('path'); var path = _interopRequireWildcard(_path);
9
- function defaults() {
10
- var _a;
11
- const cp = (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : "https://app.langwatch.ai";
12
- const explicitGw = process.env.LANGWATCH_GATEWAY_URL;
13
- const gw = explicitGw != null ? explicitGw : /^https?:\/\/(localhost|127\.0\.0\.1)/.test(cp) ? "http://localhost:5563" : "https://gateway.langwatch.ai";
14
- return { gateway_url: gw, control_plane_url: cp };
15
- }
16
- var VK_SECRET_PREFIX = "vk-lw-";
17
- function isCanonicalVkSecret(secret) {
18
- return !!secret && secret.startsWith(VK_SECRET_PREFIX);
19
- }
20
- function configPath() {
21
- const env = process.env.LANGWATCH_CLI_CONFIG;
22
- if (env) return env;
23
- return path.join(os.homedir(), ".langwatch", "config.json");
24
- }
25
- function loadConfig() {
26
- const p = configPath();
27
- if (!fs.existsSync(p)) return defaults();
28
- try {
29
- const text = fs.readFileSync(p, "utf8");
30
- const parsed = JSON.parse(text);
31
- const cfg = _chunkBRPEG3YQjs.__spreadValues.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, defaults()), parsed);
32
- if (cfg.default_personal_vk && !isCanonicalVkSecret(cfg.default_personal_vk.secret)) {
33
- delete cfg.default_personal_vk;
34
- }
35
- return cfg;
36
- } catch (err) {
37
- throw new Error(`Failed to parse ${p}: ${err.message}`);
38
- }
39
- }
40
- function saveConfig(cfg) {
41
- const p = configPath();
42
- const dir = path.dirname(p);
43
- fs.mkdirSync(dir, { recursive: true, mode: 448 });
44
- const tmp = p + ".tmp";
45
- fs.writeFileSync(tmp, JSON.stringify(cfg, null, 2), { mode: 384 });
46
- fs.renameSync(tmp, p);
47
- }
48
- function clearConfig() {
49
- const p = configPath();
50
- try {
51
- fs.unlinkSync(p);
52
- } catch (err) {
53
- if (err.code !== "ENOENT") throw err;
54
- }
55
- }
56
- function isLoggedIn(cfg) {
57
- return !!cfg && !!cfg.access_token;
58
- }
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
- exports.configPath = configPath; exports.loadConfig = loadConfig; exports.saveConfig = saveConfig; exports.clearConfig = clearConfig; exports.isLoggedIn = isLoggedIn;
67
- //# sourceMappingURL=chunk-OGAE7BVQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-OGAE7BVQ.js","../src/cli/utils/governance/config.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACGA,+DAAoB;AACpB,+DAAoB;AACpB,uEAAsB;AA0FtB,SAAS,QAAA,CAAA,EAA6B;AAnGtC,EAAA,IAAA,EAAA;AA0GE,EAAA,MAAM,GAAA,EAAA,CAAK,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,0BAAA;AAC7C,EAAA,MAAM,WAAA,EAAa,OAAA,CAAQ,GAAA,CAAI,qBAAA;AAU/B,EAAA,MAAM,GAAA,EACJ,WAAA,GAAA,KAAA,EAAA,WAAA,EACC,sCAAA,CAAuC,IAAA,CAAK,EAAE,EAAA,EAC3C,wBAAA,EACA,8BAAA;AACN,EAAA,OAAO,EAAE,WAAA,EAAa,EAAA,EAAI,iBAAA,EAAmB,GAAG,CAAA;AAClD;AASA,IAAM,iBAAA,EAAmB,QAAA;AAOlB,SAAS,mBAAA,CAAoB,MAAA,EAAqC;AACvE,EAAA,OAAO,CAAC,CAAC,OAAA,GAAU,MAAA,CAAO,UAAA,CAAW,gBAAgB,CAAA;AACvD;AAMO,SAAS,UAAA,CAAA,EAAqB;AACnC,EAAA,MAAM,IAAA,EAAM,OAAA,CAAQ,GAAA,CAAI,oBAAA;AACxB,EAAA,GAAA,CAAI,GAAA,EAAK,OAAO,GAAA;AAChB,EAAA,OAAY,IAAA,CAAA,IAAA,CAAQ,EAAA,CAAA,OAAA,CAAQ,CAAA,EAAG,YAAA,EAAc,aAAa,CAAA;AAC5D;AAGO,SAAS,UAAA,CAAA,EAA+B;AAC7C,EAAA,MAAM,EAAA,EAAI,UAAA,CAAW,CAAA;AACrB,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,CAAC,CAAA,EAAG,OAAO,QAAA,CAAS,CAAA;AACvC,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,EAAU,EAAA,CAAA,YAAA,CAAa,CAAA,EAAG,MAAM,CAAA;AACtC,IAAA,MAAM,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC9B,IAAA,MAAM,IAAA,EAAM,6CAAA,6CAAA,CAAA,CAAA,EAAK,QAAA,CAAS,CAAA,CAAA,EAAM,MAAA,CAAA;AAMhC,IAAA,GAAA,CACE,GAAA,CAAI,oBAAA,GACJ,CAAC,mBAAA,CAAoB,GAAA,CAAI,mBAAA,CAAoB,MAAM,CAAA,EACnD;AACA,MAAA,OAAO,GAAA,CAAI,mBAAA;AAAA,IACb;AACA,IAAA,OAAO,GAAA;AAAA,EACT,EAAA,MAAA,CAAS,GAAA,EAAK;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gBAAA,EAAmB,CAAC,CAAA,EAAA,EAAM,GAAA,CAAc,OAAO,CAAA,CAAA;AACjE,EAAA;AACF;AAGwD;AACjC,EAAA;AACK,EAAA;AACwB,EAAA;AAClC,EAAA;AACsC,EAAA;AAClC,EAAA;AACtB;AAGoC;AACb,EAAA;AACjB,EAAA;AACa,IAAA;AACH,EAAA;AACgD,IAAA;AAC9D,EAAA;AACF;AAG8E;AACtD,EAAA;AACxB;AD/IyD;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-OGAE7BVQ.js","sourcesContent":[null,"/**\n * Persists langwatch CLI governance credentials at\n * ~/.langwatch/config.json. The file is mode 0600 (atomic rename\n * on save). The shape mirrors what `POST /api/auth/cli/exchange`\n * returns plus a few client-side fields.\n */\n\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nimport type { PlatformToolPolicyMap } from \"./platform-tool-policy\";\n\nexport interface GovernanceConfig {\n /** AI Gateway base URL (e.g. https://gateway.langwatch.ai). */\n gateway_url: string;\n /** Control plane base URL (e.g. https://app.langwatch.ai). */\n control_plane_url: string;\n\n /** Short-lived bearer for the gateway. */\n access_token?: string;\n /** Long-lived token for refreshing access_token. */\n refresh_token?: string;\n /** Unix epoch (seconds) when access_token expires. */\n expires_at?: number;\n\n user?: { id?: string; email?: string; name?: string };\n organization?: { id?: string; slug?: string; name?: string };\n default_personal_vk?: { id?: string; secret?: string; prefix?: string };\n\n /**\n * Personal ingest keys (the project-scoped ingest-only ApiKey\n * `sk-lw-<...>` shape minted by `/api/auth/cli/governance/ingestion-key`),\n * keyed by the tool's source_type slug (`claude_code` / `codex` /\n * `gemini` / `opencode`). One key per source so different wrapped\n * tools surface as their own ingestion source in /me + /messages.\n *\n * When the right key is present for a wrapped tool, the\n * `langwatch <tool>` wrapper injects the standard OTEL_*_EXPORTER\n * env vars pointing at the OTLP endpoint with this key as the\n * Authorization bearer (reusing the cache instead of re-minting).\n *\n * Unset until the wrapper's first auto-mint for that tool.\n */\n default_personal_ingest_keys?: Record<\n string,\n { id?: string; secret?: string; prefix?: string }\n >;\n\n /**\n * Persistent answer to the post-login \"save export block to your\n * shell rc?\" prompt. `skip` = user picked \"never\", stay quiet\n * forever. `undefined` = ask each login that lands in an\n * unconfigured shell. The \"not now\" answer doesn't persist — it\n * lets the next login re-ask on its own.\n */\n shell_rc_preference?: \"skip\";\n\n /**\n * Per-wrapped-tool routing mode answer.\n *\n * \"gateway\" — Path A: route the tool's HTTP calls through\n * the AI Gateway via base-URL swap (full server-\n * side I/O + cost capture, no client OTel).\n * \"ingestion\" — Path B: enable the tool's native OTel exporter\n * pointed at /api/otel + mint the user's personal\n * ingest key (sk-lw-*). For codex this also writes\n * the [otel] block to ~/.codex/config.toml\n * automatically.\n * \"ask\" — re-prompt on the next `langwatch <tool>`. The\n * default when this key is absent.\n *\n * The two modes are mutually exclusive per the no-double-trace\n * rule — gateway capture + OTel emission on the same call would\n * double-count both traces and cost. The wrapper picks Path A\n * by default when a personal VK is configured, and falls back\n * to Path B when no VK + the user opts in.\n */\n tool_mode?: Record<string, \"gateway\" | \"ingestion\" | \"ask\">;\n\n /**\n * Per-(org, tool) path policy cached from the login bootstrap\n * (`/api/auth/cli/bootstrap` → `toolPolicies`). The `langwatch\n * <tool>` wrapper gates path selection on this map so it only\n * offers the paths the org admin permits. Absent for a legacy /\n * offline CLI that never cached it; `resolvePlatformToolPolicy`\n * then falls back to the hardcoded defaults.\n */\n tool_policies?: PlatformToolPolicyMap;\n\n /**\n * Most-recent signed `request_increase_url` returned by the\n * gateway in a 402 budget_exceeded payload — cached so\n * `langwatch request-increase` opens the exact URL the gateway\n * produced (with HMAC'd user/limit/spent params).\n */\n last_request_increase_url?: string;\n}\n\nfunction defaults(): GovernanceConfig {\n // Note: the single source of truth for endpoint resolution at command\n // boundaries is `resolveControlPlaneEndpoint()` in resolveEndpoint.ts.\n // This function only seeds the *initial* GovernanceConfig shape when\n // no file exists yet — at boot, before the user has logged in.\n // `LANGWATCH_URL` legacy alias intentionally NOT read (was undocumented;\n // dropped per rchaves directive 2026-05-05).\n const cp = process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\n const explicitGw = process.env.LANGWATCH_GATEWAY_URL;\n // Self-hosted detection: when the user pointed `LANGWATCH_ENDPOINT` at\n // localhost (the standard `make dev` shape) and didn't override the\n // gateway URL, default to the local AI gateway port (5563 per\n // langwatch/CLAUDE.md `make service svc=aigateway`). Without this,\n // `langwatch login` + `whoami` printed the production gateway URL on\n // self-hosted installs and the user's `langwatch claude` calls would\n // route at the wrong place (Ariana QA — same shape as the /me tile\n // base-URL bug Sergey c45e69987 / Alexis 30e52a718 fixed on the\n // control-plane side).\n const gw =\n explicitGw ??\n (/^https?:\\/\\/(localhost|127\\.0\\.0\\.1)/.test(cp)\n ? \"http://localhost:5563\"\n : \"https://gateway.langwatch.ai\");\n return { gateway_url: gw, control_plane_url: cp };\n}\n\n/**\n * Canonical personal-VK secret prefix. Mirrors the control plane's\n * `vk-lw-<ULID>` minting format (langwatch virtualKey.crypto.ts). The\n * gateway rejects anything else as malformed_key before any DB lookup,\n * so a config carrying a legacy-format secret (older `lw_vk_live_*`\n * logins) routes every `langwatch <tool>` call straight to a 401.\n */\nconst VK_SECRET_PREFIX = \"vk-lw-\";\n\n/**\n * Whether a stored secret is in the format the current gateway can\n * parse. Legacy secrets minted before the format change fail this and\n * must be re-issued via a fresh login.\n */\nexport function isCanonicalVkSecret(secret: string | undefined): boolean {\n return !!secret && secret.startsWith(VK_SECRET_PREFIX);\n}\n\n/**\n * Returns the absolute path to the config file. Override with\n * LANGWATCH_CLI_CONFIG for tests / non-default homes.\n */\nexport function configPath(): string {\n const env = process.env.LANGWATCH_CLI_CONFIG;\n if (env) return env;\n return path.join(os.homedir(), \".langwatch\", \"config.json\");\n}\n\n/** Read the config from disk, merging in defaults for missing keys. */\nexport function loadConfig(): GovernanceConfig {\n const p = configPath();\n if (!fs.existsSync(p)) return defaults();\n try {\n const text = fs.readFileSync(p, \"utf8\");\n const parsed = JSON.parse(text) as Partial<GovernanceConfig>;\n const cfg = { ...defaults(), ...parsed };\n // Drop a legacy-format personal VK secret on load. Keeping it would\n // route every `langwatch <tool>` call to a malformed_key 401; once\n // dropped, the wrapper preflight tells the user to re-login and the\n // next login persists a fresh `vk-lw-` secret. A valid canonical\n // secret is never touched, so this won't wipe a working credential.\n if (\n cfg.default_personal_vk &&\n !isCanonicalVkSecret(cfg.default_personal_vk.secret)\n ) {\n delete cfg.default_personal_vk;\n }\n return cfg;\n } catch (err) {\n throw new Error(`Failed to parse ${p}: ${(err as Error).message}`);\n }\n}\n\n/** Write the config atomically (tmp file + rename) with mode 0600. */\nexport function saveConfig(cfg: GovernanceConfig): void {\n const p = configPath();\n const dir = path.dirname(p);\n fs.mkdirSync(dir, { recursive: true, mode: 0o700 });\n const tmp = p + \".tmp\";\n fs.writeFileSync(tmp, JSON.stringify(cfg, null, 2), { mode: 0o600 });\n fs.renameSync(tmp, p);\n}\n\n/** Delete the config file; idempotent. */\nexport function clearConfig(): void {\n const p = configPath();\n try {\n fs.unlinkSync(p);\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n}\n\n/** Whether a loaded config has live credentials. */\nexport function isLoggedIn(cfg: GovernanceConfig | null | undefined): boolean {\n return !!cfg && !!cfg.access_token;\n}\n"]}
@@ -1,54 +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/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 : createLangWatchApiClient();
22
- }
23
- handleApiError(operation, error) {
24
- const message = formatApiErrorForOperation({ operation, error, options: {
25
- status: extractStatusFromResponse(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
- export {
52
- TracesApiService
53
- };
54
- //# sourceMappingURL=chunk-OJ4URNYC.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/client-sdk/services/traces/traces-api.service.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;AA8BO,IAAM,iBAAN,cAA6B,MAAM;AAAA,EACxC,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAG5B,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,eAAe,SAAS,WAAW,KAAK;AAAA,EACpD;AAAA,EAEA,MAAM,OAAO,QAAuD;AAClE,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU,KAAK,sBAAsB;AAAA,MACtE,MAAM;AAAA,IACR,CAAC;AACD,QAAI,MAAO,MAAK,eAAe,iBAAiB,KAAK;AACrD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,IAAI,SAAiB,SAAqE;AAC9F,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,UAAU;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,UACN,MAAM,EAAE,QAAQ;AAAA,UAChB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,QAAI,MAAO,MAAK,eAAe,cAAc,OAAO,KAAK,KAAK;AAC9D,WAAO;AAAA,EACT;AACF;","names":[]}