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,280 +0,0 @@
1
- import {
2
- runDeviceFlowLogin,
3
- runUnifiedLoginFlow
4
- } from "./chunk-O444ZEPO.mjs";
5
- import "./chunk-3CPA262Z.mjs";
6
- import "./chunk-YP4LDCP6.mjs";
7
- import {
8
- resolveControlPlaneEndpoint
9
- } from "./chunk-XLJ5GJTK.mjs";
10
- import {
11
- loadConfig,
12
- saveConfig
13
- } from "./chunk-U47MQ6CS.mjs";
14
- import {
15
- DEFAULT_ENDPOINT
16
- } from "./chunk-E5ZEMGE7.mjs";
17
- import {
18
- formatApiErrorMessage
19
- } from "./chunk-J3KM7ZO7.mjs";
20
- import "./chunk-BAX4W3AY.mjs";
21
-
22
- // src/cli/commands/login.ts
23
- import * as fs from "fs";
24
- import * as path from "path";
25
- import chalk from "chalk";
26
- import prompts from "prompts";
27
- function printAgentHintBanner() {
28
- console.log(
29
- chalk.gray(
30
- "Running interactively. To skip these prompts (CI / agents that already have a credential):"
31
- )
32
- );
33
- console.log(
34
- chalk.gray(
35
- " --device AI tools / SSO (claude, codex, gemini, opencode)"
36
- )
37
- );
38
- console.log(
39
- chalk.gray(
40
- " --project project SDK key into .env via browser (SDK, evals, prompts)"
41
- )
42
- );
43
- console.log(
44
- chalk.gray(
45
- " --api-key <KEY> project SDK key you already have, into .env"
46
- )
47
- );
48
- console.log(
49
- chalk.gray(
50
- " --token <TOKEN> pre-minted device session (writes ~/.langwatch/config.json)"
51
- )
52
- );
53
- console.log(
54
- chalk.gray(
55
- " --endpoint <URL> self-hosted instance URL"
56
- )
57
- );
58
- console.log();
59
- }
60
- var updateEnvFile = (apiKey) => {
61
- const envPath = path.join(process.cwd(), ".env");
62
- if (!fs.existsSync(envPath)) {
63
- fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
64
- `);
65
- return { created: true, updated: false, path: envPath };
66
- }
67
- const content = fs.readFileSync(envPath, "utf-8");
68
- const lines = content.split("\n");
69
- let found = false;
70
- const updatedLines = lines.map((line) => {
71
- if (line.startsWith("LANGWATCH_API_KEY=")) {
72
- found = true;
73
- return `LANGWATCH_API_KEY=${apiKey}`;
74
- }
75
- return line;
76
- });
77
- if (!found) {
78
- if (content.endsWith("\n") || content === "") {
79
- updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
80
- } else {
81
- updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
82
- }
83
- }
84
- fs.writeFileSync(envPath, updatedLines.join("\n"));
85
- return { created: false, updated: found, path: envPath };
86
- };
87
- var loginCommand = async (options) => {
88
- var _a, _b;
89
- try {
90
- const endpointFromEnv = (_a = process.env.LANGWATCH_ENDPOINT) == null ? void 0 : _a.trim();
91
- const presetEndpoint = (_b = options == null ? void 0 : options.endpoint) != null ? _b : endpointFromEnv;
92
- if (presetEndpoint) {
93
- const trimmed = presetEndpoint.replace(/\/+$/, "");
94
- const cfg = loadConfig();
95
- cfg.control_plane_url = trimmed;
96
- saveConfig(cfg);
97
- }
98
- if (options == null ? void 0 : options.token) {
99
- const token = options.token.trim();
100
- if (token.length < 10) {
101
- console.error(chalk.red("Error: token seems too short. Please check and try again."));
102
- process.exit(1);
103
- }
104
- const cfg = loadConfig();
105
- cfg.access_token = token;
106
- saveConfig(cfg);
107
- console.log(chalk.green("\u2713 device-session token saved"));
108
- console.log(chalk.gray(" ~/.langwatch/config.json"));
109
- return;
110
- }
111
- if (options == null ? void 0 : options.device) {
112
- await runDeviceFlowLogin({ browser: options.browser });
113
- return;
114
- }
115
- if (options == null ? void 0 : options.project) {
116
- await runUnifiedLoginFlow({
117
- kind: "project_api_key",
118
- browser: options.browser
119
- });
120
- return;
121
- }
122
- if (options == null ? void 0 : options.apiKey) {
123
- const apiKey = options.apiKey.trim();
124
- if (apiKey.length < 10) {
125
- console.error(chalk.red("Error: API key seems too short. Please check and try again."));
126
- process.exit(1);
127
- }
128
- const envResult = updateEnvFile(apiKey);
129
- console.log(chalk.green("API key saved successfully."));
130
- if (envResult.created) {
131
- console.log(chalk.gray(`Created .env file at ${envResult.path}`));
132
- } else if (envResult.updated) {
133
- console.log(chalk.gray(`Updated existing API key in ${envResult.path}`));
134
- } else {
135
- console.log(chalk.gray(`Added API key to ${envResult.path}`));
136
- }
137
- return;
138
- }
139
- if (!process.stdin.isTTY) {
140
- console.log(
141
- chalk.gray(
142
- "No login mode given. Defaulting to project login (writes LANGWATCH_API_KEY to .env). Force it with --project."
143
- )
144
- );
145
- console.log(
146
- chalk.gray(
147
- "For AI-tools login (claude, codex, gemini, opencode), re-run: langwatch login --device"
148
- )
149
- );
150
- console.log();
151
- await runUnifiedLoginFlow({
152
- kind: "project_api_key",
153
- browser: options == null ? void 0 : options.browser
154
- });
155
- return;
156
- }
157
- printAgentHintBanner();
158
- console.log(chalk.blue("\u{1F510} LangWatch Login"));
159
- console.log();
160
- if (!(options == null ? void 0 : options.endpoint)) {
161
- const current = resolveControlPlaneEndpoint();
162
- const hasCustomEndpoint = current.url !== DEFAULT_ENDPOINT;
163
- const cloudChoice = {
164
- title: "LangWatch Cloud",
165
- description: "app.langwatch.ai",
166
- value: "cloud"
167
- };
168
- const choices = hasCustomEndpoint ? [
169
- {
170
- title: `Self-hosted instance (${current.url})`,
171
- description: "Keep using your current endpoint",
172
- value: "keep"
173
- },
174
- {
175
- title: "Self-hosted instance (different endpoint)",
176
- description: "Point at another LangWatch deployment",
177
- value: "self-hosted"
178
- },
179
- cloudChoice
180
- ] : [
181
- cloudChoice,
182
- {
183
- title: "Self-hosted instance",
184
- description: "Your company's LangWatch deployment (custom URL)",
185
- value: "self-hosted"
186
- }
187
- ];
188
- const where = await prompts({
189
- type: "select",
190
- name: "where",
191
- message: "Where do you want to log in?",
192
- choices,
193
- initial: 0
194
- });
195
- if (!where.where) {
196
- console.log(chalk.yellow("Login cancelled"));
197
- process.exit(0);
198
- }
199
- const cfg = loadConfig();
200
- if (where.where === "cloud") {
201
- cfg.control_plane_url = DEFAULT_ENDPOINT;
202
- saveConfig(cfg);
203
- } else if (where.where === "keep") {
204
- cfg.control_plane_url = current.url;
205
- saveConfig(cfg);
206
- } else if (where.where === "self-hosted") {
207
- const url = await prompts({
208
- type: "text",
209
- name: "url",
210
- message: "Self-hosted LangWatch URL (e.g. https://lw.acme.internal):",
211
- validate: (v) => {
212
- try {
213
- const parsed = new URL(v);
214
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
215
- return "URL must start with http(s)://";
216
- }
217
- return true;
218
- } catch (e) {
219
- return "URL must be absolute (https://...)";
220
- }
221
- }
222
- });
223
- if (!url.url) {
224
- console.log(chalk.yellow("Login cancelled"));
225
- process.exit(0);
226
- }
227
- cfg.control_plane_url = url.url.replace(/\/+$/, "");
228
- saveConfig(cfg);
229
- }
230
- }
231
- const mode = await prompts({
232
- type: "select",
233
- name: "mode",
234
- message: "How do you want to use LangWatch?",
235
- choices: [
236
- {
237
- title: "AI tools / agentic flows",
238
- description: "claude, codex, cursor, gemini, opencode - device-flow SSO",
239
- value: "device"
240
- },
241
- {
242
- title: "Project / SDK API key",
243
- description: "langwatch eval, sync, prompts, SDK auto-instrumentation - writes .env",
244
- value: "api-key"
245
- },
246
- {
247
- title: "Both",
248
- description: "Run both flows in sequence",
249
- value: "both"
250
- }
251
- ],
252
- initial: 0
253
- });
254
- if (!mode.mode) {
255
- console.log(chalk.yellow("Login cancelled"));
256
- process.exit(0);
257
- }
258
- if (mode.mode === "device" || mode.mode === "both") {
259
- await runDeviceFlowLogin({ browser: options == null ? void 0 : options.browser });
260
- }
261
- if (mode.mode === "api-key" || mode.mode === "both") {
262
- await runUnifiedLoginFlow({
263
- kind: "project_api_key",
264
- browser: options == null ? void 0 : options.browser
265
- });
266
- }
267
- return;
268
- } catch (error) {
269
- console.error(
270
- chalk.red(
271
- `Error during login: ${formatApiErrorMessage({ error })}`
272
- )
273
- );
274
- process.exit(1);
275
- }
276
- };
277
- export {
278
- loginCommand
279
- };
280
- //# sourceMappingURL=login-7N3FOJOH.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/commands/login.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport prompts from \"prompts\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\nimport {\n runDeviceFlowLogin,\n runUnifiedLoginFlow,\n} from \"@/cli/utils/governance/login-flow\";\nimport {\n loadConfig,\n saveConfig,\n} from \"@/cli/utils/governance/config\";\nimport { resolveControlPlaneEndpoint } from \"@/cli/utils/governance/resolveEndpoint\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\n/**\n * Always-on agent-hint banner shown above the interactive prompts on\n * `langwatch login` (no flags). Some agent harnesses fake a TTY but can't\n * actually answer prompts — this banner names the escape-hatch flags so\n * the agent (or the human staring at the stuck prompt) can re-invoke\n * with the right flag and proceed.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\nfunction printAgentHintBanner(): void {\n console.log(\n chalk.gray(\n \"Running interactively. To skip these prompts (CI / agents that already have a credential):\",\n ),\n );\n console.log(\n chalk.gray(\n \" --device AI tools / SSO (claude, codex, gemini, opencode)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --project project SDK key into .env via browser (SDK, evals, prompts)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --api-key <KEY> project SDK key you already have, into .env\",\n ),\n );\n console.log(\n chalk.gray(\n \" --token <TOKEN> pre-minted device session (writes ~/.langwatch/config.json)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --endpoint <URL> self-hosted instance URL\",\n ),\n );\n console.log();\n}\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\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\n if (!found) {\n // Add to end of file\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\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (\n options?: {\n apiKey?: string;\n device?: boolean;\n project?: boolean;\n browser?: string;\n endpoint?: string;\n token?: string;\n },\n): Promise<void> => {\n try {\n // Honor `--endpoint` flag OR `LANGWATCH_ENDPOINT` env. Persist the\n // resolved value BEFORE the chosen flow runs so subsequent reads\n // (in the device flow, the API-key flow, any sub-command spawned\n // later) see the right control-plane URL. The 4-source resolver\n // (flag > env > config > default) honors this value via the\n // persisted-config layer for any flow that doesn't explicitly take\n // a flag. The env var has the same precedence as the flag for the\n // login flow itself so users running `LANGWATCH_ENDPOINT=... langwatch\n // login` skip the cloud/self-hosted picker.\n const endpointFromEnv = process.env.LANGWATCH_ENDPOINT?.trim();\n const presetEndpoint = options?.endpoint ?? endpointFromEnv;\n if (presetEndpoint) {\n const trimmed = presetEndpoint.replace(/\\/+$/, \"\");\n const cfg = loadConfig();\n cfg.control_plane_url = trimmed;\n saveConfig(cfg);\n }\n\n // --token: pre-minted device-session escape hatch (CI / agent contexts\n // where the token was minted via the dashboard 'Personal Access Tokens'\n // surface). No browser, no prompts — just persist the token so\n // subsequent `langwatch claude/codex/...` invocations can use it.\n if (options?.token) {\n const token = options.token.trim();\n if (token.length < 10) {\n console.error(chalk.red(\"Error: token seems too short. Please check and try again.\"));\n process.exit(1);\n }\n const cfg = loadConfig();\n cfg.access_token = token;\n // No refresh_token / expires_at — that's the trade-off of bypassing\n // the device flow. The wrapper auto-login will mint a real session\n // if this token expires, since loadConfig+isLoggedIn only checks\n // access_token presence.\n saveConfig(cfg);\n console.log(chalk.green(\"✓ device-session token saved\"));\n console.log(chalk.gray(\" ~/.langwatch/config.json\"));\n return;\n }\n\n // Device-flow mode: SSO via the control plane's RFC 8628 endpoints,\n // mints a personal virtual key bound to the user. This is the\n // governance-plane onboarding for enterprise users, distinct from the\n // single-user API-key flow below.\n if (options?.device) {\n await runDeviceFlowLogin({ browser: options.browser });\n return;\n }\n\n // --project: force PROJECT login (mint a project SDK key via the browser,\n // write it to $CWD/.env). Symmetric to --device, and the explicit form of\n // what a non-TTY context already defaults to. Use this when you want a\n // real project's key for the SDK / `langwatch eval` / prompts rather than\n // a personal device session. No \"where\"/\"how\" prompts; the project is\n // picked in the browser.\n if (options?.project) {\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options.browser,\n });\n return;\n }\n\n // Non-interactive mode: --api-key flag provided\n if (options?.apiKey) {\n const apiKey = options.apiKey.trim();\n if (apiKey.length < 10) {\n console.error(chalk.red(\"Error: API key seems too short. Please check and try again.\"));\n process.exit(1);\n }\n\n const envResult = updateEnvFile(apiKey);\n console.log(chalk.green(\"API key saved successfully.\"));\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 return;\n }\n\n // Interactive mode (no flags). On a non-TTY context (CI, an agent's\n // piped stdin) we cannot prompt. Erroring here used to nudge agents\n // toward `--device`, which signs them into a personal device-session and\n // silently routed their evaluations to a personal project. Default to\n // PROJECT login instead: it writes a real project's key to `.env`, which\n // is what the SDK, `langwatch eval`, and the skills expect. AI-tools\n // login stays explicit behind `--device`.\n if (!process.stdin.isTTY) {\n console.log(\n chalk.gray(\n \"No login mode given. Defaulting to project login (writes LANGWATCH_API_KEY to .env). Force it with --project.\",\n ),\n );\n console.log(\n chalk.gray(\n \"For AI-tools login (claude, codex, gemini, opencode), re-run: langwatch login --device\",\n ),\n );\n console.log();\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options?.browser,\n });\n return;\n }\n\n // Always-on agent-hint banner — fake-TTY agents see this BEFORE the\n // prompt block so they (or the human watching) can re-invoke with the\n // right flag instead of staring at a stuck prompt.\n printAgentHintBanner();\n\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log();\n\n // Q1 — endpoint (cloud vs self-hosted). Skipped if --endpoint was\n // passed (already persisted above). The chosen endpoint is persisted to\n // ~/.langwatch/config.json on EVERY branch so the subsequent\n // `runUnifiedLoginFlow`/`runDeviceFlowLogin` call (which reads\n // control_plane_url directly) and every later CLI command's resolver read\n // target the right host with no env-vs-config ambiguity.\n if (!options?.endpoint) {\n // When the user already resolved a non-cloud endpoint (local dev or a\n // self-hosted deployment via LANGWATCH_ENDPOINT or persisted config),\n // default to keeping it but still offer to switch endpoint or jump to\n // Cloud. On a fresh install Cloud stays the priority default.\n const current = resolveControlPlaneEndpoint();\n const hasCustomEndpoint = current.url !== DEFAULT_ENDPOINT;\n\n const cloudChoice = {\n title: \"LangWatch Cloud\",\n description: \"app.langwatch.ai\",\n value: \"cloud\",\n };\n const choices = hasCustomEndpoint\n ? [\n {\n title: `Self-hosted instance (${current.url})`,\n description: \"Keep using your current endpoint\",\n value: \"keep\",\n },\n {\n title: \"Self-hosted instance (different endpoint)\",\n description: \"Point at another LangWatch deployment\",\n value: \"self-hosted\",\n },\n cloudChoice,\n ]\n : [\n cloudChoice,\n {\n title: \"Self-hosted instance\",\n description: \"Your company's LangWatch deployment (custom URL)\",\n value: \"self-hosted\",\n },\n ];\n\n const where = await prompts({\n type: \"select\",\n name: \"where\",\n message: \"Where do you want to log in?\",\n choices,\n initial: 0,\n });\n if (!where.where) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const cfg = loadConfig();\n if (where.where === \"cloud\") {\n // Always repoint to cloud, overriding any stale local control_plane_url.\n // Otherwise the device flow would dial the old localhost host and fail\n // with ECONNREFUSED.\n cfg.control_plane_url = DEFAULT_ENDPOINT;\n saveConfig(cfg);\n } else if (where.where === \"keep\") {\n cfg.control_plane_url = current.url;\n saveConfig(cfg);\n } else if (where.where === \"self-hosted\") {\n const url = await prompts({\n type: \"text\",\n name: \"url\",\n message: \"Self-hosted LangWatch URL (e.g. https://lw.acme.internal):\",\n validate: (v: string) => {\n try {\n const parsed = new URL(v);\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n return \"URL must start with http(s)://\";\n }\n return true;\n } catch {\n return \"URL must be absolute (https://...)\";\n }\n },\n });\n if (!url.url) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n cfg.control_plane_url = (url.url as string).replace(/\\/+$/, \"\");\n saveConfig(cfg);\n }\n }\n\n // Q2 — auth mode (AI tools = device-flow vs Project SDK = API key)\n const mode = await prompts({\n type: \"select\",\n name: \"mode\",\n message: \"How do you want to use LangWatch?\",\n choices: [\n {\n title: \"AI tools / agentic flows\",\n description: \"claude, codex, cursor, gemini, opencode - device-flow SSO\",\n value: \"device\",\n },\n {\n title: \"Project / SDK API key\",\n description: \"langwatch eval, sync, prompts, SDK auto-instrumentation - writes .env\",\n value: \"api-key\",\n },\n {\n title: \"Both\",\n description: \"Run both flows in sequence\",\n value: \"both\",\n },\n ],\n initial: 0,\n });\n if (!mode.mode) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n if (mode.mode === \"device\" || mode.mode === \"both\") {\n await runDeviceFlowLogin({ browser: options?.browser });\n }\n if (mode.mode === \"api-key\" || mode.mode === \"both\") {\n // No-paste convergence (sergey f9fcc3927 + alexis bfef4ebab):\n // /authorize page shows a project-picker + 'Generate API key'\n // button; the freshly-minted key flows back to the CLI over the\n // same RFC 8628 poll endpoint as the device-session flow. No\n // copy-paste of the credential ever.\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options?.browser,\n });\n }\n return;\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n formatApiErrorMessage({ error })\n }`,\n ),\n );\n process.exit(1);\n }\n};\n\n\n"],"mappings":"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","names":[]}
@@ -1,280 +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; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
-
3
-
4
- var _chunkC6ZREBUAjs = require('./chunk-C6ZREBUA.js');
5
- require('./chunk-S4JKLESF.js');
6
- require('./chunk-ZA5BH7IZ.js');
7
-
8
-
9
- var _chunk4F3LCT7Ujs = require('./chunk-4F3LCT7U.js');
10
-
11
-
12
-
13
- var _chunkOGAE7BVQjs = require('./chunk-OGAE7BVQ.js');
14
-
15
-
16
- var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
17
-
18
-
19
- var _chunkC5Y772G7js = require('./chunk-C5Y772G7.js');
20
- require('./chunk-BRPEG3YQ.js');
21
-
22
- // src/cli/commands/login.ts
23
- var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
24
- var _path = require('path'); var path = _interopRequireWildcard(_path);
25
- var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
26
- var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
27
- function printAgentHintBanner() {
28
- console.log(
29
- _chalk2.default.gray(
30
- "Running interactively. To skip these prompts (CI / agents that already have a credential):"
31
- )
32
- );
33
- console.log(
34
- _chalk2.default.gray(
35
- " --device AI tools / SSO (claude, codex, gemini, opencode)"
36
- )
37
- );
38
- console.log(
39
- _chalk2.default.gray(
40
- " --project project SDK key into .env via browser (SDK, evals, prompts)"
41
- )
42
- );
43
- console.log(
44
- _chalk2.default.gray(
45
- " --api-key <KEY> project SDK key you already have, into .env"
46
- )
47
- );
48
- console.log(
49
- _chalk2.default.gray(
50
- " --token <TOKEN> pre-minted device session (writes ~/.langwatch/config.json)"
51
- )
52
- );
53
- console.log(
54
- _chalk2.default.gray(
55
- " --endpoint <URL> self-hosted instance URL"
56
- )
57
- );
58
- console.log();
59
- }
60
- var updateEnvFile = (apiKey) => {
61
- const envPath = path.join(process.cwd(), ".env");
62
- if (!fs.existsSync(envPath)) {
63
- fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}
64
- `);
65
- return { created: true, updated: false, path: envPath };
66
- }
67
- const content = fs.readFileSync(envPath, "utf-8");
68
- const lines = content.split("\n");
69
- let found = false;
70
- const updatedLines = lines.map((line) => {
71
- if (line.startsWith("LANGWATCH_API_KEY=")) {
72
- found = true;
73
- return `LANGWATCH_API_KEY=${apiKey}`;
74
- }
75
- return line;
76
- });
77
- if (!found) {
78
- if (content.endsWith("\n") || content === "") {
79
- updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);
80
- } else {
81
- updatedLines.push("", `LANGWATCH_API_KEY=${apiKey}`);
82
- }
83
- }
84
- fs.writeFileSync(envPath, updatedLines.join("\n"));
85
- return { created: false, updated: found, path: envPath };
86
- };
87
- var loginCommand = async (options) => {
88
- var _a, _b;
89
- try {
90
- const endpointFromEnv = (_a = process.env.LANGWATCH_ENDPOINT) == null ? void 0 : _a.trim();
91
- const presetEndpoint = (_b = options == null ? void 0 : options.endpoint) != null ? _b : endpointFromEnv;
92
- if (presetEndpoint) {
93
- const trimmed = presetEndpoint.replace(/\/+$/, "");
94
- const cfg = _chunkOGAE7BVQjs.loadConfig.call(void 0, );
95
- cfg.control_plane_url = trimmed;
96
- _chunkOGAE7BVQjs.saveConfig.call(void 0, cfg);
97
- }
98
- if (options == null ? void 0 : options.token) {
99
- const token = options.token.trim();
100
- if (token.length < 10) {
101
- console.error(_chalk2.default.red("Error: token seems too short. Please check and try again."));
102
- process.exit(1);
103
- }
104
- const cfg = _chunkOGAE7BVQjs.loadConfig.call(void 0, );
105
- cfg.access_token = token;
106
- _chunkOGAE7BVQjs.saveConfig.call(void 0, cfg);
107
- console.log(_chalk2.default.green("\u2713 device-session token saved"));
108
- console.log(_chalk2.default.gray(" ~/.langwatch/config.json"));
109
- return;
110
- }
111
- if (options == null ? void 0 : options.device) {
112
- await _chunkC6ZREBUAjs.runDeviceFlowLogin.call(void 0, { browser: options.browser });
113
- return;
114
- }
115
- if (options == null ? void 0 : options.project) {
116
- await _chunkC6ZREBUAjs.runUnifiedLoginFlow.call(void 0, {
117
- kind: "project_api_key",
118
- browser: options.browser
119
- });
120
- return;
121
- }
122
- if (options == null ? void 0 : options.apiKey) {
123
- const apiKey = options.apiKey.trim();
124
- if (apiKey.length < 10) {
125
- console.error(_chalk2.default.red("Error: API key seems too short. Please check and try again."));
126
- process.exit(1);
127
- }
128
- const envResult = updateEnvFile(apiKey);
129
- console.log(_chalk2.default.green("API key saved successfully."));
130
- if (envResult.created) {
131
- console.log(_chalk2.default.gray(`Created .env file at ${envResult.path}`));
132
- } else if (envResult.updated) {
133
- console.log(_chalk2.default.gray(`Updated existing API key in ${envResult.path}`));
134
- } else {
135
- console.log(_chalk2.default.gray(`Added API key to ${envResult.path}`));
136
- }
137
- return;
138
- }
139
- if (!process.stdin.isTTY) {
140
- console.log(
141
- _chalk2.default.gray(
142
- "No login mode given. Defaulting to project login (writes LANGWATCH_API_KEY to .env). Force it with --project."
143
- )
144
- );
145
- console.log(
146
- _chalk2.default.gray(
147
- "For AI-tools login (claude, codex, gemini, opencode), re-run: langwatch login --device"
148
- )
149
- );
150
- console.log();
151
- await _chunkC6ZREBUAjs.runUnifiedLoginFlow.call(void 0, {
152
- kind: "project_api_key",
153
- browser: options == null ? void 0 : options.browser
154
- });
155
- return;
156
- }
157
- printAgentHintBanner();
158
- console.log(_chalk2.default.blue("\u{1F510} LangWatch Login"));
159
- console.log();
160
- if (!(options == null ? void 0 : options.endpoint)) {
161
- const current = _chunk4F3LCT7Ujs.resolveControlPlaneEndpoint.call(void 0, );
162
- const hasCustomEndpoint = current.url !== _chunkNC42BNF4js.DEFAULT_ENDPOINT;
163
- const cloudChoice = {
164
- title: "LangWatch Cloud",
165
- description: "app.langwatch.ai",
166
- value: "cloud"
167
- };
168
- const choices = hasCustomEndpoint ? [
169
- {
170
- title: `Self-hosted instance (${current.url})`,
171
- description: "Keep using your current endpoint",
172
- value: "keep"
173
- },
174
- {
175
- title: "Self-hosted instance (different endpoint)",
176
- description: "Point at another LangWatch deployment",
177
- value: "self-hosted"
178
- },
179
- cloudChoice
180
- ] : [
181
- cloudChoice,
182
- {
183
- title: "Self-hosted instance",
184
- description: "Your company's LangWatch deployment (custom URL)",
185
- value: "self-hosted"
186
- }
187
- ];
188
- const where = await _prompts2.default.call(void 0, {
189
- type: "select",
190
- name: "where",
191
- message: "Where do you want to log in?",
192
- choices,
193
- initial: 0
194
- });
195
- if (!where.where) {
196
- console.log(_chalk2.default.yellow("Login cancelled"));
197
- process.exit(0);
198
- }
199
- const cfg = _chunkOGAE7BVQjs.loadConfig.call(void 0, );
200
- if (where.where === "cloud") {
201
- cfg.control_plane_url = _chunkNC42BNF4js.DEFAULT_ENDPOINT;
202
- _chunkOGAE7BVQjs.saveConfig.call(void 0, cfg);
203
- } else if (where.where === "keep") {
204
- cfg.control_plane_url = current.url;
205
- _chunkOGAE7BVQjs.saveConfig.call(void 0, cfg);
206
- } else if (where.where === "self-hosted") {
207
- const url = await _prompts2.default.call(void 0, {
208
- type: "text",
209
- name: "url",
210
- message: "Self-hosted LangWatch URL (e.g. https://lw.acme.internal):",
211
- validate: (v) => {
212
- try {
213
- const parsed = new URL(v);
214
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
215
- return "URL must start with http(s)://";
216
- }
217
- return true;
218
- } catch (e) {
219
- return "URL must be absolute (https://...)";
220
- }
221
- }
222
- });
223
- if (!url.url) {
224
- console.log(_chalk2.default.yellow("Login cancelled"));
225
- process.exit(0);
226
- }
227
- cfg.control_plane_url = url.url.replace(/\/+$/, "");
228
- _chunkOGAE7BVQjs.saveConfig.call(void 0, cfg);
229
- }
230
- }
231
- const mode = await _prompts2.default.call(void 0, {
232
- type: "select",
233
- name: "mode",
234
- message: "How do you want to use LangWatch?",
235
- choices: [
236
- {
237
- title: "AI tools / agentic flows",
238
- description: "claude, codex, cursor, gemini, opencode - device-flow SSO",
239
- value: "device"
240
- },
241
- {
242
- title: "Project / SDK API key",
243
- description: "langwatch eval, sync, prompts, SDK auto-instrumentation - writes .env",
244
- value: "api-key"
245
- },
246
- {
247
- title: "Both",
248
- description: "Run both flows in sequence",
249
- value: "both"
250
- }
251
- ],
252
- initial: 0
253
- });
254
- if (!mode.mode) {
255
- console.log(_chalk2.default.yellow("Login cancelled"));
256
- process.exit(0);
257
- }
258
- if (mode.mode === "device" || mode.mode === "both") {
259
- await _chunkC6ZREBUAjs.runDeviceFlowLogin.call(void 0, { browser: options == null ? void 0 : options.browser });
260
- }
261
- if (mode.mode === "api-key" || mode.mode === "both") {
262
- await _chunkC6ZREBUAjs.runUnifiedLoginFlow.call(void 0, {
263
- kind: "project_api_key",
264
- browser: options == null ? void 0 : options.browser
265
- });
266
- }
267
- return;
268
- } catch (error) {
269
- console.error(
270
- _chalk2.default.red(
271
- `Error during login: ${_chunkC5Y772G7js.formatApiErrorMessage.call(void 0, { error })}`
272
- )
273
- );
274
- process.exit(1);
275
- }
276
- };
277
-
278
-
279
- exports.loginCommand = loginCommand;
280
- //# sourceMappingURL=login-JC4YGO3M.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-JC4YGO3M.js","../src/cli/commands/login.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-JC4YGO3M.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport prompts from \"prompts\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\nimport {\n runDeviceFlowLogin,\n runUnifiedLoginFlow,\n} from \"@/cli/utils/governance/login-flow\";\nimport {\n loadConfig,\n saveConfig,\n} from \"@/cli/utils/governance/config\";\nimport { resolveControlPlaneEndpoint } from \"@/cli/utils/governance/resolveEndpoint\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\n/**\n * Always-on agent-hint banner shown above the interactive prompts on\n * `langwatch login` (no flags). Some agent harnesses fake a TTY but can't\n * actually answer prompts — this banner names the escape-hatch flags so\n * the agent (or the human staring at the stuck prompt) can re-invoke\n * with the right flag and proceed.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\nfunction printAgentHintBanner(): void {\n console.log(\n chalk.gray(\n \"Running interactively. To skip these prompts (CI / agents that already have a credential):\",\n ),\n );\n console.log(\n chalk.gray(\n \" --device AI tools / SSO (claude, codex, gemini, opencode)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --project project SDK key into .env via browser (SDK, evals, prompts)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --api-key <KEY> project SDK key you already have, into .env\",\n ),\n );\n console.log(\n chalk.gray(\n \" --token <TOKEN> pre-minted device session (writes ~/.langwatch/config.json)\",\n ),\n );\n console.log(\n chalk.gray(\n \" --endpoint <URL> self-hosted instance URL\",\n ),\n );\n console.log();\n}\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\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\n if (!found) {\n // Add to end of file\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\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (\n options?: {\n apiKey?: string;\n device?: boolean;\n project?: boolean;\n browser?: string;\n endpoint?: string;\n token?: string;\n },\n): Promise<void> => {\n try {\n // Honor `--endpoint` flag OR `LANGWATCH_ENDPOINT` env. Persist the\n // resolved value BEFORE the chosen flow runs so subsequent reads\n // (in the device flow, the API-key flow, any sub-command spawned\n // later) see the right control-plane URL. The 4-source resolver\n // (flag > env > config > default) honors this value via the\n // persisted-config layer for any flow that doesn't explicitly take\n // a flag. The env var has the same precedence as the flag for the\n // login flow itself so users running `LANGWATCH_ENDPOINT=... langwatch\n // login` skip the cloud/self-hosted picker.\n const endpointFromEnv = process.env.LANGWATCH_ENDPOINT?.trim();\n const presetEndpoint = options?.endpoint ?? endpointFromEnv;\n if (presetEndpoint) {\n const trimmed = presetEndpoint.replace(/\\/+$/, \"\");\n const cfg = loadConfig();\n cfg.control_plane_url = trimmed;\n saveConfig(cfg);\n }\n\n // --token: pre-minted device-session escape hatch (CI / agent contexts\n // where the token was minted via the dashboard 'Personal Access Tokens'\n // surface). No browser, no prompts — just persist the token so\n // subsequent `langwatch claude/codex/...` invocations can use it.\n if (options?.token) {\n const token = options.token.trim();\n if (token.length < 10) {\n console.error(chalk.red(\"Error: token seems too short. Please check and try again.\"));\n process.exit(1);\n }\n const cfg = loadConfig();\n cfg.access_token = token;\n // No refresh_token / expires_at — that's the trade-off of bypassing\n // the device flow. The wrapper auto-login will mint a real session\n // if this token expires, since loadConfig+isLoggedIn only checks\n // access_token presence.\n saveConfig(cfg);\n console.log(chalk.green(\"✓ device-session token saved\"));\n console.log(chalk.gray(\" ~/.langwatch/config.json\"));\n return;\n }\n\n // Device-flow mode: SSO via the control plane's RFC 8628 endpoints,\n // mints a personal virtual key bound to the user. This is the\n // governance-plane onboarding for enterprise users, distinct from the\n // single-user API-key flow below.\n if (options?.device) {\n await runDeviceFlowLogin({ browser: options.browser });\n return;\n }\n\n // --project: force PROJECT login (mint a project SDK key via the browser,\n // write it to $CWD/.env). Symmetric to --device, and the explicit form of\n // what a non-TTY context already defaults to. Use this when you want a\n // real project's key for the SDK / `langwatch eval` / prompts rather than\n // a personal device session. No \"where\"/\"how\" prompts; the project is\n // picked in the browser.\n if (options?.project) {\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options.browser,\n });\n return;\n }\n\n // Non-interactive mode: --api-key flag provided\n if (options?.apiKey) {\n const apiKey = options.apiKey.trim();\n if (apiKey.length < 10) {\n console.error(chalk.red(\"Error: API key seems too short. Please check and try again.\"));\n process.exit(1);\n }\n\n const envResult = updateEnvFile(apiKey);\n console.log(chalk.green(\"API key saved successfully.\"));\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 return;\n }\n\n // Interactive mode (no flags). On a non-TTY context (CI, an agent's\n // piped stdin) we cannot prompt. Erroring here used to nudge agents\n // toward `--device`, which signs them into a personal device-session and\n // silently routed their evaluations to a personal project. Default to\n // PROJECT login instead: it writes a real project's key to `.env`, which\n // is what the SDK, `langwatch eval`, and the skills expect. AI-tools\n // login stays explicit behind `--device`.\n if (!process.stdin.isTTY) {\n console.log(\n chalk.gray(\n \"No login mode given. Defaulting to project login (writes LANGWATCH_API_KEY to .env). Force it with --project.\",\n ),\n );\n console.log(\n chalk.gray(\n \"For AI-tools login (claude, codex, gemini, opencode), re-run: langwatch login --device\",\n ),\n );\n console.log();\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options?.browser,\n });\n return;\n }\n\n // Always-on agent-hint banner — fake-TTY agents see this BEFORE the\n // prompt block so they (or the human watching) can re-invoke with the\n // right flag instead of staring at a stuck prompt.\n printAgentHintBanner();\n\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log();\n\n // Q1 — endpoint (cloud vs self-hosted). Skipped if --endpoint was\n // passed (already persisted above). The chosen endpoint is persisted to\n // ~/.langwatch/config.json on EVERY branch so the subsequent\n // `runUnifiedLoginFlow`/`runDeviceFlowLogin` call (which reads\n // control_plane_url directly) and every later CLI command's resolver read\n // target the right host with no env-vs-config ambiguity.\n if (!options?.endpoint) {\n // When the user already resolved a non-cloud endpoint (local dev or a\n // self-hosted deployment via LANGWATCH_ENDPOINT or persisted config),\n // default to keeping it but still offer to switch endpoint or jump to\n // Cloud. On a fresh install Cloud stays the priority default.\n const current = resolveControlPlaneEndpoint();\n const hasCustomEndpoint = current.url !== DEFAULT_ENDPOINT;\n\n const cloudChoice = {\n title: \"LangWatch Cloud\",\n description: \"app.langwatch.ai\",\n value: \"cloud\",\n };\n const choices = hasCustomEndpoint\n ? [\n {\n title: `Self-hosted instance (${current.url})`,\n description: \"Keep using your current endpoint\",\n value: \"keep\",\n },\n {\n title: \"Self-hosted instance (different endpoint)\",\n description: \"Point at another LangWatch deployment\",\n value: \"self-hosted\",\n },\n cloudChoice,\n ]\n : [\n cloudChoice,\n {\n title: \"Self-hosted instance\",\n description: \"Your company's LangWatch deployment (custom URL)\",\n value: \"self-hosted\",\n },\n ];\n\n const where = await prompts({\n type: \"select\",\n name: \"where\",\n message: \"Where do you want to log in?\",\n choices,\n initial: 0,\n });\n if (!where.where) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const cfg = loadConfig();\n if (where.where === \"cloud\") {\n // Always repoint to cloud, overriding any stale local control_plane_url.\n // Otherwise the device flow would dial the old localhost host and fail\n // with ECONNREFUSED.\n cfg.control_plane_url = DEFAULT_ENDPOINT;\n saveConfig(cfg);\n } else if (where.where === \"keep\") {\n cfg.control_plane_url = current.url;\n saveConfig(cfg);\n } else if (where.where === \"self-hosted\") {\n const url = await prompts({\n type: \"text\",\n name: \"url\",\n message: \"Self-hosted LangWatch URL (e.g. https://lw.acme.internal):\",\n validate: (v: string) => {\n try {\n const parsed = new URL(v);\n if (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") {\n return \"URL must start with http(s)://\";\n }\n return true;\n } catch {\n return \"URL must be absolute (https://...)\";\n }\n },\n });\n if (!url.url) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n cfg.control_plane_url = (url.url as string).replace(/\\/+$/, \"\");\n saveConfig(cfg);\n }\n }\n\n // Q2 — auth mode (AI tools = device-flow vs Project SDK = API key)\n const mode = await prompts({\n type: \"select\",\n name: \"mode\",\n message: \"How do you want to use LangWatch?\",\n choices: [\n {\n title: \"AI tools / agentic flows\",\n description: \"claude, codex, cursor, gemini, opencode - device-flow SSO\",\n value: \"device\",\n },\n {\n title: \"Project / SDK API key\",\n description: \"langwatch eval, sync, prompts, SDK auto-instrumentation - writes .env\",\n value: \"api-key\",\n },\n {\n title: \"Both\",\n description: \"Run both flows in sequence\",\n value: \"both\",\n },\n ],\n initial: 0,\n });\n if (!mode.mode) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n if (mode.mode === \"device\" || mode.mode === \"both\") {\n await runDeviceFlowLogin({ browser: options?.browser });\n }\n if (mode.mode === \"api-key\" || mode.mode === \"both\") {\n // No-paste convergence (sergey f9fcc3927 + alexis bfef4ebab):\n // /authorize page shows a project-picker + 'Generate API key'\n // button; the freshly-minted key flows back to the CLI over the\n // same RFC 8628 poll endpoint as the device-session flow. No\n // copy-paste of the credential ever.\n await runUnifiedLoginFlow({\n kind: \"project_api_key\",\n browser: options?.browser,\n });\n }\n return;\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n formatApiErrorMessage({ error })\n }`,\n ),\n );\n process.exit(1);\n }\n};\n\n\n"]}