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 +0,0 @@
1
- {"version":3,"sources":["../src/client-sdk/services/gateway-budgets/gateway-budgets-api.service.ts"],"sourcesContent":["import { formatApiErrorForOperation } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nexport type BudgetScopeKind =\n | \"ORGANIZATION\"\n | \"TEAM\"\n | \"PROJECT\"\n | \"VIRTUAL_KEY\"\n | \"PRINCIPAL\";\n\nexport type BudgetWindow = \"MINUTE\" | \"HOUR\" | \"DAY\" | \"WEEK\" | \"MONTH\" | \"TOTAL\";\nexport type BudgetOnBreach = \"BLOCK\" | \"WARN\";\n\nexport interface GatewayBudget {\n id: string;\n organization_id: string;\n scope_type: BudgetScopeKind;\n scope_id: string;\n name: string;\n description: string | null;\n window: BudgetWindow;\n on_breach: BudgetOnBreach;\n limit_usd: string;\n spent_usd: string;\n timezone: string | null;\n current_period_started_at: string;\n resets_at: string;\n last_reset_at: string | null;\n archived_at: string | null;\n created_at: string;\n}\n\nexport type CreateGatewayBudgetScope =\n | { kind: \"ORGANIZATION\"; organization_id: string }\n | { kind: \"TEAM\"; team_id: string }\n | { kind: \"PROJECT\"; project_id: string }\n | { kind: \"VIRTUAL_KEY\"; virtual_key_id: string }\n | { kind: \"PRINCIPAL\"; principal_user_id: string };\n\nexport interface CreateGatewayBudgetInput {\n scope: CreateGatewayBudgetScope;\n name: string;\n description?: string;\n window: BudgetWindow;\n limit_usd: number | string;\n on_breach?: BudgetOnBreach;\n timezone?: string | null;\n}\n\nexport interface UpdateGatewayBudgetInput {\n name?: string;\n description?: string | null;\n limit_usd?: number | string;\n on_breach?: BudgetOnBreach;\n timezone?: string | null;\n}\n\nexport class GatewayBudgetsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"GatewayBudgetsApiError\";\n }\n}\n\nexport class GatewayBudgetsApiService {\n private readonly endpoint: string;\n private readonly apiKey: string;\n\n constructor(config?: { endpoint?: string; apiKey?: string }) {\n this.endpoint = (config?.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT).replace(/\\/+$/, \"\");\n this.apiKey = config?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n }\n\n private headers(): Record<string, string> {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n }\n\n private async request<T>(operation: string, path: string, init?: RequestInit): Promise<T> {\n const response = await fetch(`${this.endpoint}${path}`, {\n ...init,\n headers: { ...this.headers(), ...(init?.headers ?? {}) },\n });\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n parsedBody = await response.text();\n }\n const message = formatApiErrorForOperation({\n operation,\n error: parsedBody,\n options: { status: response.status },\n });\n throw new GatewayBudgetsApiError(message, operation, parsedBody);\n }\n return (await response.json()) as T;\n }\n\n async list(): Promise<GatewayBudget[]> {\n const { data } = await this.request<{ data: GatewayBudget[] }>(\n \"list gateway budgets\",\n \"/api/gateway/v1/budgets\",\n );\n return data;\n }\n\n async create(input: CreateGatewayBudgetInput): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n \"create gateway budget\",\n \"/api/gateway/v1/budgets\",\n { method: \"POST\", body: JSON.stringify(input) },\n );\n return budget;\n }\n\n async update(id: string, input: UpdateGatewayBudgetInput): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n `update gateway budget \"${id}\"`,\n `/api/gateway/v1/budgets/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: JSON.stringify(input) },\n );\n return budget;\n }\n\n async archive(id: string): Promise<GatewayBudget> {\n const { budget } = await this.request<{ budget: GatewayBudget }>(\n `archive gateway budget \"${id}\"`,\n `/api/gateway/v1/budgets/${encodeURIComponent(id)}`,\n { method: \"DELETE\" },\n );\n return budget;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAyDO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAChD,YACE,SACgB,WACA,eAChB;AACA,UAAM,OAAO;AAHG;AACA;AAGhB,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,2BAAN,MAA+B;AAAA,EAIpC,YAAY,QAAiD;AAxE/D;AAyEI,SAAK,aAAY,4CAAQ,aAAR,YAAoB,QAAQ,IAAI,uBAAhC,YAAsD,kBAAkB,QAAQ,QAAQ,EAAE;AAC3G,SAAK,UAAS,4CAAQ,WAAR,YAAkB,QAAQ,IAAI,sBAA9B,YAAmD;AAAA,EACnE;AAAA,EAEQ,UAAkC;AACxC,WAAO;AAAA,MACL,eAAe,UAAU,KAAK,MAAM;AAAA,MACpC,gBAAgB;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,MAAc,QAAW,WAAmB,MAAc,MAAgC;AApF5F;AAqFI,UAAM,WAAW,MAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,iCACnD,OADmD;AAAA,MAEtD,SAAS,kCAAK,KAAK,QAAQ,KAAO,kCAAM,YAAN,YAAiB,CAAC;AAAA,IACtD,EAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,UAAI;AACJ,UAAI;AACF,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC,SAAQ;AACN,qBAAa,MAAM,SAAS,KAAK;AAAA,MACnC;AACA,YAAM,UAAU,2BAA2B;AAAA,QACzC;AAAA,QACA,OAAO;AAAA,QACP,SAAS,EAAE,QAAQ,SAAS,OAAO;AAAA,MACrC,CAAC;AACD,YAAM,IAAI,uBAAuB,SAAS,WAAW,UAAU;AAAA,IACjE;AACA,WAAQ,MAAM,SAAS,KAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,OAAiC;AACrC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK;AAAA,MAC1B;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,OAAyD;AACpE,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IAChD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,IAAY,OAAyD;AAChF,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B,0BAA0B,EAAE;AAAA,MAC5B,2BAA2B,mBAAmB,EAAE,CAAC;AAAA,MACjD,EAAE,QAAQ,SAAS,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,IAAoC;AAChD,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK;AAAA,MAC5B,2BAA2B,EAAE;AAAA,MAC7B,2BAA2B,mBAAmB,EAAE,CAAC;AAAA,MACjD,EAAE,QAAQ,SAAS;AAAA,IACrB;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,36 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/client-sdk/services/experiments/run-status.ts
2
- var INTERRUPTED_THRESHOLD_MS = 5 * 60 * 1e3;
3
- var deriveRunStatus = (timestamps, now = Date.now()) => {
4
- if (timestamps.stoppedAt != null) return "stopped";
5
- if (timestamps.finishedAt != null) return "completed";
6
- if (timestamps.updatedAt != null && now - timestamps.updatedAt > INTERRUPTED_THRESHOLD_MS) {
7
- return "interrupted";
8
- }
9
- return "running";
10
- };
11
- var isTerminalStatus = (status) => status === "completed" || status === "stopped";
12
-
13
- // src/cli/commands/experiment/resolve-run.ts
14
- var resolveRunId = async ({
15
- service,
16
- experimentSlug,
17
- runId
18
- }) => {
19
- const explicit = runId == null ? void 0 : runId.trim();
20
- if (explicit) return explicit;
21
- const { runs } = await service.listRuns({ experimentSlug, pageSize: 1 });
22
- const latest = runs == null ? void 0 : runs[0];
23
- if (!latest) {
24
- throw new Error(
25
- `No runs found for experiment "${experimentSlug}". Start one first, or pass --run-id <id>.`
26
- );
27
- }
28
- return latest.runId;
29
- };
30
-
31
-
32
-
33
-
34
-
35
- exports.deriveRunStatus = deriveRunStatus; exports.isTerminalStatus = isTerminalStatus; exports.resolveRunId = resolveRunId;
36
- //# sourceMappingURL=chunk-3BDHATON.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-3BDHATON.js","../src/client-sdk/services/experiments/run-status.ts","../src/cli/commands/experiment/resolve-run.ts"],"names":[],"mappings":"AAAA;ACMO,IAAM,yBAAA,EAA2B,EAAA,EAAI,GAAA,EAAK,GAAA;AAW1C,IAAM,gBAAA,EAAkB,CAC7B,UAAA,EACA,IAAA,EAAc,IAAA,CAAK,GAAA,CAAI,CAAA,EAAA,GACT;AACd,EAAA,GAAA,CAAI,UAAA,CAAW,UAAA,GAAa,IAAA,EAAM,OAAO,SAAA;AACzC,EAAA,GAAA,CAAI,UAAA,CAAW,WAAA,GAAc,IAAA,EAAM,OAAO,WAAA;AAC1C,EAAA,GAAA,CACE,UAAA,CAAW,UAAA,GAAa,KAAA,GACxB,IAAA,EAAM,UAAA,CAAW,UAAA,EAAY,wBAAA,EAC7B;AACA,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT,CAAA;AAEO,IAAM,iBAAA,EAAmB,CAAC,MAAA,EAAA,GAC/B,OAAA,IAAW,YAAA,GAAe,OAAA,IAAW,SAAA;ADtBvC;AACA;AEPO,IAAM,aAAA,EAAe,MAAA,CAAO;AAAA,EACjC,OAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAAA,GAIuB;AACrB,EAAA,MAAM,SAAA,EAAW,MAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,KAAA,CAAO,IAAA,CAAA,CAAA;AACxB,EAAA,GAAA,CAAI,QAAA,EAAU,OAAO,QAAA;AAErB,EAAA,MAAM,EAAE,KAAK,EAAA,EAAI,MAAM,OAAA,CAAQ,QAAA,CAAS,EAAE,cAAA,EAAgB,QAAA,EAAU,EAAE,CAAC,CAAA;AACvE,EAAA,MAAM,OAAA,EAAS,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,IAAA,CAAO,CAAA,CAAA;AACtB,EAAA,GAAA,CAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,8BAAA,EAAiC,cAAc,CAAA,0CAAA;AAAA,IACjD,CAAA;AAAA,EACF;AACA,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB,CAAA;AFIA;AACA;AACE;AACA;AACA;AACF,4HAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-3BDHATON.js","sourcesContent":[null,"// Experiment runs are stored as a timestamp-driven state in ClickHouse: a run\n// is \"completed\" once finishedAt is set, \"stopped\" once stoppedAt is set, and\n// otherwise still \"running\". A run that stopped emitting updates a while ago\n// without ever finishing is reported as \"interrupted\": the SDK process likely\n// died before sending finished_at/stopped_at.\n\nexport const INTERRUPTED_THRESHOLD_MS = 5 * 60 * 1000;\n\nexport type RunStatus = \"completed\" | \"stopped\" | \"running\" | \"interrupted\";\n\nexport interface RunTimestamps {\n createdAt?: number | null;\n updatedAt?: number | null;\n finishedAt?: number | null;\n stoppedAt?: number | null;\n}\n\nexport const deriveRunStatus = (\n timestamps: RunTimestamps,\n now: number = Date.now(),\n): RunStatus => {\n if (timestamps.stoppedAt != null) return \"stopped\";\n if (timestamps.finishedAt != null) return \"completed\";\n if (\n timestamps.updatedAt != null &&\n now - timestamps.updatedAt > INTERRUPTED_THRESHOLD_MS\n ) {\n return \"interrupted\";\n }\n return \"running\";\n};\n\nexport const isTerminalStatus = (status: RunStatus): boolean =>\n status === \"completed\" || status === \"stopped\";\n","import { ExperimentsApiService } from \"@/client-sdk/services/experiments/experiments-api.service\";\n\n// Resolve which run an experiment subcommand should act on: an explicit\n// --run-id when given, otherwise the latest run for the experiment. The runs\n// list is returned newest-first by the API, so the first entry is the latest.\nexport const resolveRunId = async ({\n service,\n experimentSlug,\n runId,\n}: {\n service: ExperimentsApiService;\n experimentSlug: string;\n runId?: string;\n}): Promise<string> => {\n const explicit = runId?.trim();\n if (explicit) return explicit;\n\n const { runs } = await service.listRuns({ experimentSlug, pageSize: 1 });\n const latest = runs?.[0];\n if (!latest) {\n throw new Error(\n `No runs found for experiment \"${experimentSlug}\". Start one first, or pass --run-id <id>.`,\n );\n }\n return latest.runId;\n};\n"]}
@@ -1,124 +0,0 @@
1
- import {
2
- __spreadValues
3
- } from "./chunk-BAX4W3AY.mjs";
4
-
5
- // src/cli/utils/governance/device-flow.ts
6
- import * as os from "os";
7
- import { setTimeout as wait } from "timers/promises";
8
- var DeviceFlowError = class extends Error {
9
- constructor(kind, message) {
10
- super(message);
11
- this.kind = kind;
12
- this.name = "DeviceFlowError";
13
- }
14
- };
15
- async function startDeviceCode(opts, init = {}) {
16
- const body = {};
17
- if (init.credentialType) body.credential_type = init.credentialType;
18
- const dc = await postJSON(opts, "/api/auth/cli/device-code", body);
19
- if (!dc.interval || dc.interval <= 0) dc.interval = 5;
20
- return dc;
21
- }
22
- function collectClientInfo() {
23
- let hostname2 = "";
24
- let uname = "";
25
- try {
26
- hostname2 = os.hostname();
27
- } catch (e) {
28
- }
29
- try {
30
- uname = os.userInfo().username;
31
- } catch (e) {
32
- }
33
- return { hostname: hostname2, uname, platform: process.platform };
34
- }
35
- async function exchange(opts, deviceCode) {
36
- const res = await rawPost(opts, "/api/auth/cli/exchange", {
37
- device_code: deviceCode,
38
- client_info: collectClientInfo()
39
- });
40
- switch (res.status) {
41
- case 200: {
42
- const body = await res.json();
43
- if (!("kind" in body) || !body.kind) {
44
- return __spreadValues({ kind: "device_session" }, body);
45
- }
46
- return body;
47
- }
48
- case 428:
49
- throw new DeviceFlowError("pending", "authorization pending");
50
- case 410:
51
- throw new DeviceFlowError("denied", "authorization denied");
52
- case 408:
53
- throw new DeviceFlowError("expired", "authorization request expired");
54
- case 429:
55
- throw new DeviceFlowError("slow_down", "polling too fast");
56
- default: {
57
- const body = await res.text().catch(() => "");
58
- throw new DeviceFlowError("other", `unexpected status ${res.status}: ${body.slice(0, 256)}`);
59
- }
60
- }
61
- }
62
- async function pollUntilDone(opts, dc) {
63
- let interval = dc.interval * 1e3;
64
- const ceiling = 6e4;
65
- const deadline = Date.now() + dc.expires_in * 1e3;
66
- for (; ; ) {
67
- if (Date.now() > deadline) {
68
- throw new DeviceFlowError("expired", "authorization request expired");
69
- }
70
- await wait(interval);
71
- try {
72
- return await exchange(opts, dc.device_code);
73
- } catch (err) {
74
- if (!(err instanceof DeviceFlowError)) throw err;
75
- if (err.kind === "pending") continue;
76
- if (err.kind === "slow_down") {
77
- interval = Math.min(interval * 2, ceiling);
78
- continue;
79
- }
80
- throw err;
81
- }
82
- }
83
- }
84
- async function logout(opts, refreshToken, accessToken) {
85
- const body = { refresh_token: refreshToken };
86
- if (accessToken) body.access_token = accessToken;
87
- const res = await rawPost(opts, "/api/auth/cli/logout", body);
88
- if (res.status === 200 || res.status === 401 || res.status === 404) return;
89
- const text = await res.text().catch(() => "");
90
- throw new DeviceFlowError("other", `logout failed (${res.status}): ${text.slice(0, 256)}`);
91
- }
92
- async function postJSON(opts, path, body) {
93
- const res = await rawPost(opts, path, body);
94
- if (!res.ok) {
95
- const text = await res.text().catch(() => "");
96
- throw new DeviceFlowError("other", `${path} \u2192 ${res.status}: ${text.slice(0, 256)}`);
97
- }
98
- return await res.json();
99
- }
100
- function rawPost(opts, path, body) {
101
- var _a;
102
- const url = opts.baseUrl.replace(/\/+$/, "") + path;
103
- const f = (_a = opts.fetchImpl) != null ? _a : fetch;
104
- return f(url, {
105
- method: "POST",
106
- headers: {
107
- "Content-Type": "application/json",
108
- Accept: "application/json",
109
- // Origin enforcement on the server requires this for non-browser
110
- // clients. The base URL is the same as the control plane, so
111
- // mirroring it as Origin satisfies the same-origin gate.
112
- Origin: opts.baseUrl.replace(/\/+$/, "")
113
- },
114
- body: JSON.stringify(body != null ? body : {})
115
- });
116
- }
117
-
118
- export {
119
- DeviceFlowError,
120
- startDeviceCode,
121
- pollUntilDone,
122
- logout
123
- };
124
- //# sourceMappingURL=chunk-3CPA262Z.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/utils/governance/device-flow.ts"],"sourcesContent":["/**\n * RFC 8628 device-code OAuth client for the `langwatch login --device`\n * flow. Targets the control plane's `/api/auth/cli/*` endpoints —\n * the same wire surface a custom CLI client would hit (documented in\n * `docs/ai-gateway/governance/admin-setup.mdx#cli-device-flow-rest-api`).\n *\n * Pure stdlib `fetch`, no axios — matches the rest of the typescript\n * CLI's HTTP style.\n */\n\nimport * as os from \"node:os\";\nimport { setTimeout as wait } from \"node:timers/promises\";\n\nexport interface DeviceCode {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete?: string;\n expires_in: number;\n interval: number;\n}\n\nexport interface ExchangeUser {\n id: string;\n email: string;\n name: string;\n}\n\nexport interface ExchangeOrganization {\n id: string;\n slug?: string;\n name: string;\n}\n\nexport interface ExchangePersonalVK {\n id: string;\n secret: string;\n prefix?: string;\n}\n\nexport interface ExchangeProject {\n id: string;\n slug: string;\n name: string;\n}\n\n/**\n * The CLI device-code flow can mint two distinct credential types:\n * - \"device_session\" — the user-scoped OAuth-style access+refresh\n * token pair used by `langwatch claude/codex/...` wrappers.\n * - \"project_api_key\" — the project-scoped SDK key\n * (`Project.apiKey`) returned verbatim, used by SDK consumers\n * and `langwatch sync/eval/prompt/...` commands.\n *\n * Caller selects via `startDeviceCode({ credentialType })`. Server\n * stamps the choice on the device-code record + flips the response\n * shape on /exchange. Same browser approval ceremony for both — only\n * the persist target differs (`~/.langwatch/config.json` vs `.env`).\n */\nexport type CredentialType = \"device_session\" | \"project_api_key\";\n\nexport interface ExchangeDeviceSessionResult {\n kind: \"device_session\";\n access_token: string;\n refresh_token: string;\n expires_in: number;\n user: ExchangeUser;\n organization: ExchangeOrganization;\n default_personal_vk?: ExchangePersonalVK;\n endpoint?: string;\n}\n\nexport interface ExchangeApiKeyResult {\n kind: \"api_key\";\n api_key: string;\n project: ExchangeProject;\n user: ExchangeUser;\n organization: ExchangeOrganization;\n endpoint?: string;\n}\n\nexport type ExchangeResult =\n | ExchangeDeviceSessionResult\n | ExchangeApiKeyResult;\n\n/**\n * Back-compat alias for the device-session shape. Pre-`f9fcc3927` server\n * builds returned the unkinded shape verbatim; the runtime normaliser\n * below maps that to `{ kind: 'device_session', ... }` so callers can\n * always assume the discriminated form.\n */\nexport type LegacyExchangeResult = Omit<\n ExchangeDeviceSessionResult,\n \"kind\"\n> & { kind?: \"device_session\" };\n\nexport interface RefreshResult {\n access_token: string;\n refresh_token: string;\n expires_in: number;\n}\n\nexport class DeviceFlowError extends Error {\n constructor(public readonly kind: \"pending\" | \"denied\" | \"expired\" | \"slow_down\" | \"unauthorized\" | \"other\", message: string) {\n super(message);\n this.name = \"DeviceFlowError\";\n }\n}\n\nexport interface DeviceFlowOptions {\n /** Control-plane base URL (e.g. https://app.langwatch.ai). */\n baseUrl: string;\n /** Optional fetch override for tests. */\n fetchImpl?: typeof fetch;\n}\n\n/**\n * `POST /api/auth/cli/device-code` — mint a device-code + user-code pair.\n *\n * Optional `credentialType` selects what `/exchange` will return on\n * approval: a user-scoped device session (default) or a project-scoped\n * API key. Older servers ignore the field and stay on the device-session\n * shape — back-compat is the server's responsibility.\n */\nexport async function startDeviceCode(\n opts: DeviceFlowOptions,\n init: { credentialType?: CredentialType } = {},\n): Promise<DeviceCode> {\n const body: Record<string, unknown> = {};\n if (init.credentialType) body.credential_type = init.credentialType;\n const dc = await postJSON<DeviceCode>(opts, \"/api/auth/cli/device-code\", body);\n if (!dc.interval || dc.interval <= 0) dc.interval = 5;\n return dc;\n}\n\n/**\n * Device fingerprint stamped onto the CLI session at /exchange time.\n * The control plane persists it on the access + refresh token records\n * so /me/sessions can render \"Mac (rchaves.local)\" instead of\n * \"Unknown device\" — multi-device users need this to revoke\n * individual sessions without nuking every device they're logged in\n * on (Ariana QA finding). See\n * `langwatch/src/server/routes/auth-cli.ts#clientInfoSchema` for the\n * server contract.\n */\nfunction collectClientInfo(): {\n hostname: string;\n uname: string;\n platform: string;\n} {\n let hostname = \"\";\n let uname = \"\";\n try {\n hostname = os.hostname();\n } catch {\n // os.hostname() can throw on locked-down sandboxes; carry empty.\n }\n try {\n uname = os.userInfo().username;\n } catch {\n // os.userInfo() throws when the uid has no /etc/passwd entry\n // (some Docker images, CI sandboxes); carry empty.\n }\n return { hostname, uname, platform: process.platform };\n}\n\n/**\n * `POST /api/auth/cli/exchange` — single poll. Returns the access+refresh\n * token bundle on success (200), or throws DeviceFlowError with a\n * categorised `kind` so the caller can decide whether to keep polling\n * (`pending`, `slow_down`) or stop (`denied`, `expired`).\n */\nexport async function exchange(\n opts: DeviceFlowOptions,\n deviceCode: string,\n): Promise<ExchangeResult> {\n const res = await rawPost(opts, \"/api/auth/cli/exchange\", {\n device_code: deviceCode,\n client_info: collectClientInfo(),\n });\n switch (res.status) {\n case 200: {\n const body = (await res.json()) as\n | ExchangeResult\n | LegacyExchangeResult;\n // Pre-f9fcc3927 servers returned the device-session shape without\n // a `kind` field. Normalise so callers can always discriminate.\n if (!(\"kind\" in body) || !body.kind) {\n return { kind: \"device_session\", ...(body) };\n }\n return body as ExchangeResult;\n }\n case 428:\n throw new DeviceFlowError(\"pending\", \"authorization pending\");\n case 410:\n throw new DeviceFlowError(\"denied\", \"authorization denied\");\n case 408:\n throw new DeviceFlowError(\"expired\", \"authorization request expired\");\n case 429:\n throw new DeviceFlowError(\"slow_down\", \"polling too fast\");\n default: {\n const body = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `unexpected status ${res.status}: ${body.slice(0, 256)}`);\n }\n }\n}\n\n/**\n * Poll `exchange` at the cadence the server requested until the user\n * approves, denies, or the device-code expires. Honours RFC 8628 §3.5\n * by doubling the polling interval on `slow_down` responses.\n */\nexport async function pollUntilDone(\n opts: DeviceFlowOptions,\n dc: DeviceCode,\n): Promise<ExchangeResult> {\n let interval = dc.interval * 1000;\n const ceiling = 60_000;\n const deadline = Date.now() + dc.expires_in * 1000;\n\n for (;;) {\n if (Date.now() > deadline) {\n throw new DeviceFlowError(\"expired\", \"authorization request expired\");\n }\n await wait(interval);\n try {\n return await exchange(opts, dc.device_code);\n } catch (err) {\n if (!(err instanceof DeviceFlowError)) throw err;\n if (err.kind === \"pending\") continue;\n if (err.kind === \"slow_down\") {\n interval = Math.min(interval * 2, ceiling);\n continue;\n }\n throw err;\n }\n }\n}\n\n/**\n * `POST /api/auth/cli/refresh` — rotate access and refresh tokens.\n * 401 means the refresh token has been revoked server-side (admin\n * disable / off-boarding); the caller should clear local state.\n */\nexport async function refresh(\n opts: DeviceFlowOptions,\n refreshToken: string,\n): Promise<RefreshResult> {\n const res = await rawPost(opts, \"/api/auth/cli/refresh\", { refresh_token: refreshToken });\n if (res.status === 401) {\n throw new DeviceFlowError(\"unauthorized\", \"session revoked — re-authenticate\");\n }\n if (!res.ok) {\n const body = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `refresh failed (${res.status}): ${body.slice(0, 256)}`);\n }\n return (await res.json()) as RefreshResult;\n}\n\n/**\n * `POST /api/auth/cli/logout` — server-side revoke a refresh token\n * AND its paired access token (per `e7a042c69`: a stolen access\n * token used to survive logout for up to 1h until expiry; sending\n * both closes the gap). Idempotent — 200 on already-revoked or\n * unknown tokens.\n */\nexport async function logout(\n opts: DeviceFlowOptions,\n refreshToken: string,\n accessToken?: string,\n): Promise<void> {\n const body: Record<string, string> = { refresh_token: refreshToken };\n if (accessToken) body.access_token = accessToken;\n const res = await rawPost(opts, \"/api/auth/cli/logout\", body);\n // 401/404 mean \"already gone\" — that's success for logout.\n if (res.status === 200 || res.status === 401 || res.status === 404) return;\n const text = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `logout failed (${res.status}): ${text.slice(0, 256)}`);\n}\n\nasync function postJSON<T>(opts: DeviceFlowOptions, path: string, body: unknown): Promise<T> {\n const res = await rawPost(opts, path, body);\n if (!res.ok) {\n const text = await res.text().catch(() => \"\");\n throw new DeviceFlowError(\"other\", `${path} → ${res.status}: ${text.slice(0, 256)}`);\n }\n return (await res.json()) as T;\n}\n\nfunction rawPost(opts: DeviceFlowOptions, path: string, body: unknown): Promise<Response> {\n const url = opts.baseUrl.replace(/\\/+$/, \"\") + path;\n const f = opts.fetchImpl ?? fetch;\n return f(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n // Origin enforcement on the server requires this for non-browser\n // clients. The base URL is the same as the control plane, so\n // mirroring it as Origin satisfies the same-origin gate.\n Origin: opts.baseUrl.replace(/\\/+$/, \"\"),\n },\n body: JSON.stringify(body ?? {}),\n });\n}\n"],"mappings":"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","names":["hostname"]}
@@ -1,96 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
4
-
5
-
6
- var _chunkC5Y772G7js = require('./chunk-C5Y772G7.js');
7
-
8
-
9
-
10
- var _chunkBRPEG3YQjs = require('./chunk-BRPEG3YQ.js');
11
-
12
- // src/client-sdk/services/projects/projects-api.service.ts
13
- var ProjectsApiError = class extends Error {
14
- constructor(message, operation, originalError) {
15
- super(message);
16
- this.operation = operation;
17
- this.originalError = originalError;
18
- this.name = "ProjectsApiError";
19
- }
20
- };
21
- var ProjectsApiService = class {
22
- constructor(config) {
23
- var _a, _b, _c, _d;
24
- this.endpoint = ((_b = (_a = config == null ? void 0 : config.endpoint) != null ? _a : process.env.LANGWATCH_ENDPOINT) != null ? _b : _chunkNC42BNF4js.DEFAULT_ENDPOINT).replace(/\/+$/, "");
25
- this.apiKey = (_d = (_c = config == null ? void 0 : config.apiKey) != null ? _c : process.env.LANGWATCH_API_KEY) != null ? _d : "";
26
- }
27
- headers() {
28
- return {
29
- Authorization: `Bearer ${this.apiKey}`,
30
- "Content-Type": "application/json"
31
- };
32
- }
33
- async request(operation, path, init) {
34
- var _a;
35
- const response = await fetch(`${this.endpoint}${path}`, _chunkBRPEG3YQjs.__spreadProps.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, init), {
36
- headers: _chunkBRPEG3YQjs.__spreadValues.call(void 0, _chunkBRPEG3YQjs.__spreadValues.call(void 0, {}, this.headers()), (_a = init == null ? void 0 : init.headers) != null ? _a : {})
37
- }));
38
- if (!response.ok) {
39
- let parsedBody;
40
- try {
41
- parsedBody = await response.json();
42
- } catch (e) {
43
- parsedBody = await response.text();
44
- }
45
- const message = _chunkC5Y772G7js.formatApiErrorForOperation.call(void 0, {
46
- operation,
47
- error: parsedBody,
48
- options: { status: response.status }
49
- });
50
- throw new ProjectsApiError(message, operation, parsedBody);
51
- }
52
- return await response.json();
53
- }
54
- async list(options) {
55
- const params = new URLSearchParams();
56
- if (options == null ? void 0 : options.page) params.set("page", String(options.page));
57
- if (options == null ? void 0 : options.limit) params.set("limit", String(options.limit));
58
- const qs = params.toString();
59
- return this.request(
60
- "list projects",
61
- `/api/projects${qs ? `?${qs}` : ""}`
62
- );
63
- }
64
- async get(id) {
65
- return this.request(
66
- `get project "${id}"`,
67
- `/api/projects/${encodeURIComponent(id)}`
68
- );
69
- }
70
- async create(input) {
71
- return this.request(
72
- "create project",
73
- "/api/projects",
74
- { method: "POST", body: JSON.stringify(input) }
75
- );
76
- }
77
- async update(id, input) {
78
- return this.request(
79
- `update project "${id}"`,
80
- `/api/projects/${encodeURIComponent(id)}`,
81
- { method: "PATCH", body: JSON.stringify(input) }
82
- );
83
- }
84
- async archive(id) {
85
- return this.request(
86
- `archive project "${id}"`,
87
- `/api/projects/${encodeURIComponent(id)}`,
88
- { method: "DELETE" }
89
- );
90
- }
91
- };
92
-
93
-
94
-
95
- exports.ProjectsApiService = ProjectsApiService;
96
- //# sourceMappingURL=chunk-43OERQAS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-43OERQAS.js","../src/client-sdk/services/projects/projects-api.service.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACwCO,IAAM,iBAAA,EAAN,MAAA,QAA+B,MAAM;AAAA,EAC1C,WAAA,CACE,OAAA,EACgB,SAAA,EACA,aAAA,EAChB;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHG,IAAA,IAAA,CAAA,UAAA,EAAA,SAAA;AACA,IAAA,IAAA,CAAA,cAAA,EAAA,aAAA;AAGhB,IAAA,IAAA,CAAK,KAAA,EAAO,kBAAA;AAAA,EACd;AACF,CAAA;AAEO,IAAM,mBAAA,EAAN,MAAyB;AAAA,EAI9B,WAAA,CAAY,MAAA,EAAiD;AAlE/D,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmEI,IAAA,IAAA,CAAK,SAAA,EAAA,CAAA,CAAY,GAAA,EAAA,CAAA,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,QAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAoB,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAhC,KAAA,EAAA,GAAA,EAAsD,iCAAA,CAAA,CAAkB,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAC3G,IAAA,IAAA,CAAK,OAAA,EAAA,CAAS,GAAA,EAAA,CAAA,GAAA,EAAA,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,MAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAkB,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAA,GAA9B,KAAA,EAAA,GAAA,EAAmD,EAAA;AAAA,EACnE;AAAA,EAEQ,OAAA,CAAA,EAAkC;AACxC,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,CAAA,OAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAA;AACpB,MAAA;AAClB,IAAA;AACF,EAAA;AAE0F,EAAA;AA9E5F,IAAA;AA+EyC,IAAA;AAE1B,MAAA;AACV,IAAA;AACiB,IAAA;AACZ,MAAA;AACA,MAAA;AAC+B,QAAA;AAC3B,MAAA;AAC2B,QAAA;AACnC,MAAA;AACgB,MAAA;AACd,QAAA;AACO,QAAA;AAC4B,QAAA;AACpC,MAAA;AACmC,MAAA;AACtC,IAAA;AAC4B,IAAA;AAC9B,EAAA;AAEoF,EAAA;AAC/C,IAAA;AACtB,IAAA;AACA,IAAA;AACc,IAAA;AACf,IAAA;AACV,MAAA;AACkC,MAAA;AACpC,IAAA;AACF,EAAA;AAEwC,EAAA;AAC1B,IAAA;AACQ,MAAA;AACkB,MAAA;AACtC,IAAA;AACF,EAAA;AAEwE,EAAA;AAC1D,IAAA;AACV,MAAA;AACA,MAAA;AAC6B,MAAA;AAC/B,IAAA;AACF,EAAA;AAEsE,EAAA;AACxD,IAAA;AACW,MAAA;AACe,MAAA;AACN,MAAA;AAChC,IAAA;AACF,EAAA;AAEoD,EAAA;AACtC,IAAA;AACY,MAAA;AACc,MAAA;AACjB,MAAA;AACrB,IAAA;AACF,EAAA;AACF;ADlD2C;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-43OERQAS.js","sourcesContent":[null,"import { formatApiErrorForOperation } from \"@/client-sdk/services/_shared/format-api-error\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nexport interface Project {\n id: string;\n name: string;\n slug: string;\n language: string;\n framework: string;\n teamId: string;\n piiRedactionLevel: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateProjectInput {\n name: string;\n language: string;\n framework: string;\n teamId?: string;\n newTeamName?: string;\n}\n\nexport interface UpdateProjectInput {\n name?: string;\n language?: string;\n framework?: string;\n piiRedactionLevel?: \"STRICT\" | \"ESSENTIAL\" | \"DISABLED\";\n}\n\nexport interface ProjectWithServiceKey extends Project {\n serviceApiKey: string;\n serviceApiKeyId: string;\n}\n\nexport interface PaginatedProjects {\n data: Project[];\n pagination: {\n page: number;\n limit: number;\n total: number;\n totalPages: number;\n };\n}\n\nexport interface ArchivedProject {\n id: string;\n name: string;\n archivedAt: string;\n}\n\nexport class ProjectsApiError extends Error {\n constructor(\n message: string,\n public readonly operation: string,\n public readonly originalError?: unknown,\n ) {\n super(message);\n this.name = \"ProjectsApiError\";\n }\n}\n\nexport class ProjectsApiService {\n private readonly endpoint: string;\n private readonly apiKey: string;\n\n constructor(config?: { endpoint?: string; apiKey?: string }) {\n this.endpoint = (config?.endpoint ?? process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT).replace(/\\/+$/, \"\");\n this.apiKey = config?.apiKey ?? process.env.LANGWATCH_API_KEY ?? \"\";\n }\n\n private headers(): Record<string, string> {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n }\n\n private async request<T>(operation: string, path: string, init?: RequestInit): Promise<T> {\n const response = await fetch(`${this.endpoint}${path}`, {\n ...init,\n headers: { ...this.headers(), ...(init?.headers ?? {}) },\n });\n if (!response.ok) {\n let parsedBody: unknown;\n try {\n parsedBody = await response.json();\n } catch {\n parsedBody = await response.text();\n }\n const message = formatApiErrorForOperation({\n operation,\n error: parsedBody,\n options: { status: response.status },\n });\n throw new ProjectsApiError(message, operation, parsedBody);\n }\n return (await response.json()) as T;\n }\n\n async list(options?: { page?: number; limit?: number }): Promise<PaginatedProjects> {\n const params = new URLSearchParams();\n if (options?.page) params.set(\"page\", String(options.page));\n if (options?.limit) params.set(\"limit\", String(options.limit));\n const qs = params.toString();\n return this.request<PaginatedProjects>(\n \"list projects\",\n `/api/projects${qs ? `?${qs}` : \"\"}`,\n );\n }\n\n async get(id: string): Promise<Project> {\n return this.request<Project>(\n `get project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n );\n }\n\n async create(input: CreateProjectInput): Promise<ProjectWithServiceKey> {\n return this.request<ProjectWithServiceKey>(\n \"create project\",\n \"/api/projects\",\n { method: \"POST\", body: JSON.stringify(input) },\n );\n }\n\n async update(id: string, input: UpdateProjectInput): Promise<Project> {\n return this.request<Project>(\n `update project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: JSON.stringify(input) },\n );\n }\n\n async archive(id: string): Promise<ArchivedProject> {\n return this.request<ArchivedProject>(\n `archive project \"${id}\"`,\n `/api/projects/${encodeURIComponent(id)}`,\n { method: \"DELETE\" },\n );\n }\n}\n"]}
@@ -1,42 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkOGAE7BVQjs = require('./chunk-OGAE7BVQ.js');
4
-
5
-
6
- var _chunkNC42BNF4js = require('./chunk-NC42BNF4.js');
7
-
8
- // src/cli/utils/governance/resolveEndpoint.ts
9
- function resolveControlPlaneEndpoint(opts = {}) {
10
- if (opts.flag) {
11
- return { url: stripTrailingSlash(opts.flag), source: "flag" };
12
- }
13
- const env = process.env.LANGWATCH_ENDPOINT;
14
- if (env && env.trim() !== "") {
15
- return { url: stripTrailingSlash(env), source: "env" };
16
- }
17
- let cfg = opts.cfg;
18
- if (cfg === void 0) {
19
- try {
20
- cfg = _chunkOGAE7BVQjs.loadConfig.call(void 0, );
21
- } catch (e) {
22
- cfg = void 0;
23
- }
24
- }
25
- const persisted = cfg == null ? void 0 : cfg.control_plane_url;
26
- if (persisted && persisted !== _chunkNC42BNF4js.DEFAULT_ENDPOINT) {
27
- return { url: stripTrailingSlash(persisted), source: "config" };
28
- }
29
- return { url: stripTrailingSlash(_chunkNC42BNF4js.DEFAULT_ENDPOINT), source: "default" };
30
- }
31
- function resolveControlPlaneUrl(opts = {}) {
32
- return resolveControlPlaneEndpoint(opts).url;
33
- }
34
- function stripTrailingSlash(url) {
35
- return url.replace(/\/+$/, "");
36
- }
37
-
38
-
39
-
40
-
41
- exports.resolveControlPlaneEndpoint = resolveControlPlaneEndpoint; exports.resolveControlPlaneUrl = resolveControlPlaneUrl;
42
- //# sourceMappingURL=chunk-4F3LCT7U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-4F3LCT7U.js","../src/cli/utils/governance/resolveEndpoint.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACiCO,SAAS,2BAAA,CACd,KAAA,EAA+B,CAAC,CAAA,EACd;AAClB,EAAA,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM;AACb,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA,EAAG,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC9D;AACA,EAAA,MAAM,IAAA,EAAM,OAAA,CAAQ,GAAA,CAAI,kBAAA;AACxB,EAAA,GAAA,CAAI,IAAA,GAAO,GAAA,CAAI,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC5B,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,GAAG,CAAA,EAAG,MAAA,EAAQ,MAAM,CAAA;AAAA,EACvD;AAGA,EAAA,IAAI,IAAA,EAAM,IAAA,CAAK,GAAA;AACf,EAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,CAAA,EAAW;AACrB,IAAA,IAAI;AACF,MAAA,IAAA,EAAM,yCAAA,CAAW;AAAA,IACnB,EAAA,MAAA,CAAQ,CAAA,EAAA;AACN,MAAA,IAAA,EAAM,KAAA,CAAA;AAAA,IACR;AAAA,EACF;AAKA,EAAA,MAAM,UAAA,EAAY,IAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,GAAA,CAAK,iBAAA;AACvB,EAAA,GAAA,CAAI,UAAA,GAAa,UAAA,IAAc,iCAAA,EAAkB;AAC/C,IAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,SAAS,CAAA,EAAG,MAAA,EAAQ,SAAS,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,EAAE,GAAA,EAAK,kBAAA,CAAmB,iCAAgB,CAAA,EAAG,MAAA,EAAQ,UAAU,CAAA;AACxE;AAOO,SAAS,sBAAA,CACd,KAAA,EAA+B,CAAC,CAAA,EACxB;AACR,EAAA,OAAO,2BAAA,CAA4B,IAAI,CAAA,CAAE,GAAA;AAC3C;AAEA,SAAS,kBAAA,CAAmB,GAAA,EAAqB;AAC/C,EAAA,OAAO,GAAA,CAAI,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAC/B;ADhDA;AACA;AACE;AACA;AACF,2HAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-4F3LCT7U.js","sourcesContent":[null,"/**\n * Single source of truth for resolving the LangWatch control-plane URL\n * across the CLI. Replaces the previous three drifted readers\n * (`endpoint.ts:getEndpoint`, `governance/config.ts:defaults`, and the\n * inline `process.env.LANGWATCH_ENDPOINT ?? ...` literal in\n * `commands/status.ts`) so every command sees the same value for the\n * same inputs.\n *\n * Priority (highest wins):\n * 1. opts.flag — per-command override (e.g. `langwatch login --endpoint <url>`)\n * 2. LANGWATCH_ENDPOINT — env var (CI / scripts)\n * 3. persisted config — `~/.langwatch/config.json:control_plane_url` (daily driver)\n * 4. DEFAULT_ENDPOINT — `https://app.langwatch.ai` (cloud default)\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\n\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\nimport { loadConfig } from \"./config\";\n\nexport interface ResolveEndpointOptions {\n /** Per-command override flag value (e.g. `--endpoint`). NULL/empty ignored. */\n flag?: string | null;\n /** Optional pre-loaded config to reuse (skips disk read). */\n cfg?: ReturnType<typeof loadConfig>;\n}\n\nexport interface ResolvedEndpoint {\n /** The resolved URL with trailing slashes stripped. */\n url: string;\n /** Where the value came from — useful for `langwatch config list`. */\n source: \"flag\" | \"env\" | \"config\" | \"default\";\n}\n\n/**\n * Resolve the control-plane endpoint per the documented priority order.\n *\n * Returns both the resolved URL and the source that won, so\n * `langwatch config list` can show the user where each value came from.\n */\nexport function resolveControlPlaneEndpoint(\n opts: ResolveEndpointOptions = {},\n): ResolvedEndpoint {\n if (opts.flag) {\n return { url: stripTrailingSlash(opts.flag), source: \"flag\" };\n }\n const env = process.env.LANGWATCH_ENDPOINT;\n if (env && env.trim() !== \"\") {\n return { url: stripTrailingSlash(env), source: \"env\" };\n }\n // Reading the config involves disk I/O; only do it if we need to.\n // Callers that already have a cfg in scope can pass it in to skip.\n let cfg = opts.cfg;\n if (cfg === undefined) {\n try {\n cfg = loadConfig();\n } catch {\n cfg = undefined;\n }\n }\n // The persisted control_plane_url is populated EITHER by a prior\n // `langwatch login --device` (snapshot of env at save time) OR by an\n // explicit `langwatch config set endpoint <url>`. If it differs from\n // the hardcoded default, treat it as a user choice.\n const persisted = cfg?.control_plane_url;\n if (persisted && persisted !== DEFAULT_ENDPOINT) {\n return { url: stripTrailingSlash(persisted), source: \"config\" };\n }\n return { url: stripTrailingSlash(DEFAULT_ENDPOINT), source: \"default\" };\n}\n\n/**\n * Convenience for callers that just want the URL string and don't need\n * the source-attribution. Equivalent to\n * `resolveControlPlaneEndpoint(opts).url`.\n */\nexport function resolveControlPlaneUrl(\n opts: ResolveEndpointOptions = {},\n): string {\n return resolveControlPlaneEndpoint(opts).url;\n}\n\nfunction stripTrailingSlash(url: string): string {\n return url.replace(/\\/+$/, \"\");\n}\n"]}
@@ -1,196 +0,0 @@
1
- import {
2
- checkApiKey
3
- } from "./chunk-5C7DPGRK.mjs";
4
- import {
5
- PromptsApiService,
6
- PromptsError
7
- } from "./chunk-JBEVRIYW.mjs";
8
- import {
9
- ensureProjectInitialized
10
- } from "./chunk-BGYXA2QV.mjs";
11
- import {
12
- FileManager,
13
- PromptConverter
14
- } from "./chunk-CEJY6QI3.mjs";
15
- import {
16
- formatApiErrorMessage
17
- } from "./chunk-J3KM7ZO7.mjs";
18
-
19
- // src/cli/commands/pull.ts
20
- import * as fs from "fs";
21
- import * as path from "path";
22
- import chalk from "chalk";
23
- import ora from "ora";
24
- var pullPrompts = async ({
25
- config,
26
- lock,
27
- promptsApiService,
28
- result,
29
- tag
30
- }) => {
31
- var _a;
32
- const remoteDeps = Object.entries(config.prompts).filter(
33
- ([, dependency]) => {
34
- if (typeof dependency === "object" && dependency.file) {
35
- return false;
36
- }
37
- if (typeof dependency === "string" && dependency.startsWith("file:")) {
38
- return false;
39
- }
40
- return true;
41
- }
42
- );
43
- if (remoteDeps.length > 0) {
44
- const fetchSpinner = ora(
45
- `Checking ${remoteDeps.length} remote prompts...`
46
- ).start();
47
- for (const [name, dependency] of remoteDeps) {
48
- try {
49
- const versionSpec = typeof dependency === "string" ? dependency : (_a = dependency.version) != null ? _a : "latest";
50
- const displaySpec = tag != null ? tag : versionSpec;
51
- const lockEntry = lock.prompts[name];
52
- const prompt = tag ? await promptsApiService.get(name, { tag }) : await promptsApiService.get(name, { version: versionSpec });
53
- if (prompt) {
54
- const needsUpdate = (lockEntry == null ? void 0 : lockEntry.version) !== prompt.version || !lockEntry.materialized || !fs.existsSync(path.resolve(lockEntry.materialized));
55
- if (needsUpdate) {
56
- const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);
57
- const savedPath = FileManager.saveMaterializedPrompt(
58
- name,
59
- materializedPrompt
60
- );
61
- const relativePath = path.relative(process.cwd(), savedPath);
62
- result.fetched.push({
63
- name,
64
- version: prompt.version,
65
- versionSpec: displaySpec
66
- });
67
- FileManager.updateLockEntry(
68
- lock,
69
- name,
70
- materializedPrompt,
71
- savedPath
72
- );
73
- fetchSpinner.text = `Fetched ${chalk.cyan(
74
- `${name}@${displaySpec}`
75
- )} ${chalk.gray(`(version ${prompt.version})`)} \u2192 ${chalk.gray(
76
- relativePath
77
- )}`;
78
- } else {
79
- result.unchanged.push(name);
80
- }
81
- } else {
82
- result.errors.push({ name, error: "Prompt not found" });
83
- }
84
- } catch (error) {
85
- const errorMessage = formatApiErrorMessage({ error });
86
- result.errors.push({ name, error: errorMessage });
87
- }
88
- }
89
- fetchSpinner.stop();
90
- }
91
- const currentDependencies = new Set(
92
- Object.keys(config.prompts).filter((name) => {
93
- const dependency = config.prompts[name];
94
- if (typeof dependency === "object" && dependency.file) {
95
- return false;
96
- }
97
- if (typeof dependency === "string" && dependency.startsWith("file:")) {
98
- return false;
99
- }
100
- return true;
101
- })
102
- );
103
- const cleanedFiles = FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);
104
- if (cleanedFiles.length > 0) {
105
- result.cleaned = cleanedFiles;
106
- FileManager.removeFromLock(lock, cleanedFiles);
107
- }
108
- };
109
- var printPullResults = ({
110
- result,
111
- lock,
112
- duration
113
- }) => {
114
- if (result.fetched.length > 0) {
115
- for (const { name, version, versionSpec } of result.fetched) {
116
- const lockEntry = lock.prompts[name];
117
- const displayPath = (lockEntry == null ? void 0 : lockEntry.materialized) ? `./${lockEntry.materialized}` : `./prompts/.materialized/${name}.prompt.yaml`;
118
- console.log(
119
- chalk.green(
120
- `\u2713 Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(
121
- `(version ${version})`
122
- )} \u2192 ${chalk.gray(displayPath)}`
123
- )
124
- );
125
- }
126
- }
127
- if (result.cleaned.length > 0) {
128
- for (const name of result.cleaned) {
129
- console.log(
130
- chalk.yellow(
131
- `\u2713 Cleaned ${chalk.cyan(name)} (no longer in dependencies)`
132
- )
133
- );
134
- }
135
- }
136
- if (result.errors.length > 0) {
137
- for (const { name, error } of result.errors) {
138
- console.error(chalk.red(`\u2717 Failed ${chalk.cyan(name)}: ${error}`));
139
- }
140
- }
141
- const totalActions = result.fetched.length + result.cleaned.length;
142
- if (totalActions === 0 && result.errors.length === 0) {
143
- console.log(chalk.gray(`Pulled in ${duration}s, no changes`));
144
- } else {
145
- const summary = [];
146
- if (result.fetched.length > 0)
147
- summary.push(`${result.fetched.length} fetched`);
148
- if (result.cleaned.length > 0)
149
- summary.push(`${result.cleaned.length} cleaned`);
150
- if (result.errors.length > 0)
151
- summary.push(`${result.errors.length} errors`);
152
- console.log(chalk.gray(`Pulled ${summary.join(", ")} in ${duration}s`));
153
- }
154
- };
155
- var pullCommand = async (options) => {
156
- console.log("\u2B07\uFE0F Pulling remote prompts...");
157
- const startTime = Date.now();
158
- try {
159
- checkApiKey();
160
- const promptsApiService = new PromptsApiService();
161
- await ensureProjectInitialized(false);
162
- const config = FileManager.loadPromptsConfig();
163
- const lock = FileManager.loadPromptsLock();
164
- const result = {
165
- fetched: [],
166
- pushed: [],
167
- unchanged: [],
168
- cleaned: [],
169
- errors: []
170
- };
171
- await pullPrompts({ config, lock, promptsApiService, result, tag: options == null ? void 0 : options.tag });
172
- FileManager.savePromptsLock(lock);
173
- const duration = ((Date.now() - startTime) / 1e3).toFixed(1);
174
- printPullResults({ result, lock, duration });
175
- if (result.errors.length > 0) {
176
- process.exit(1);
177
- }
178
- } catch (error) {
179
- if (error instanceof PromptsError) {
180
- console.error(chalk.red(`Error: ${error.message}`));
181
- } else {
182
- console.error(
183
- chalk.red(
184
- `Unexpected error: ${formatApiErrorMessage({ error })}`
185
- )
186
- );
187
- }
188
- process.exit(1);
189
- }
190
- };
191
-
192
- export {
193
- pullPrompts,
194
- pullCommand
195
- };
196
- //# sourceMappingURL=chunk-4VOXYSVX.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/commands/pull.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { formatApiErrorMessage } from \"@/client-sdk/services/_shared/format-api-error\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n tag,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n tag?: string;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const displaySpec = tag ?? versionSpec;\n\n const lockEntry = lock.prompts[name];\n\n const prompt = tag\n ? await promptsApiService.get(name, { tag })\n : await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec: displaySpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${displaySpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n formatApiErrorMessage({ error });\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.error(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (options?: { tag?: string }): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result, tag: options?.tag });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n formatApiErrorMessage({ error })\n }`\n )\n );\n }\n process.exit(1);\n }\n};\n"],"mappings":"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","names":[]}
@@ -1,34 +0,0 @@
1
- import {
2
- resolveControlPlaneUrl
3
- } from "./chunk-XLJ5GJTK.mjs";
4
-
5
- // src/cli/utils/apiKey.ts
6
- import chalk from "chalk";
7
- import { config } from "dotenv";
8
-
9
- // src/cli/utils/endpoint.ts
10
- function getEndpoint() {
11
- return resolveControlPlaneUrl();
12
- }
13
-
14
- // src/cli/utils/apiKey.ts
15
- var checkApiKey = () => {
16
- config({ quiet: true });
17
- const apiKey = process.env.LANGWATCH_API_KEY;
18
- if (!apiKey || apiKey.trim() === "") {
19
- const authUrl = `${getEndpoint()}/authorize`;
20
- console.error(chalk.red("Error: LANGWATCH_API_KEY not found."));
21
- console.error(chalk.gray("Get your API key from:"));
22
- console.error(chalk.cyan(` ${authUrl}`));
23
- console.error(chalk.gray("Then either run:"));
24
- console.error(chalk.cyan(" langwatch login --api-key <your-key>"));
25
- console.error(chalk.gray("Or add it to your .env file:"));
26
- console.error(chalk.cyan(" echo 'LANGWATCH_API_KEY=<your-key>' >> .env"));
27
- process.exit(1);
28
- }
29
- };
30
-
31
- export {
32
- checkApiKey
33
- };
34
- //# sourceMappingURL=chunk-5C7DPGRK.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/utils/apiKey.ts","../src/cli/utils/endpoint.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport { config } from \"dotenv\";\nimport { getEndpoint } from \"./endpoint\";\n\nexport const checkApiKey = (): void => {\n // Load environment variables from .env file\n config({ quiet: true });\n\n const apiKey = process.env.LANGWATCH_API_KEY;\n\n if (!apiKey || apiKey.trim() === \"\") {\n const authUrl = `${getEndpoint()}/authorize`;\n console.error(chalk.red(\"Error: LANGWATCH_API_KEY not found.\"));\n console.error(chalk.gray(\"Get your API key from:\"));\n console.error(chalk.cyan(` ${authUrl}`));\n console.error(chalk.gray(\"Then either run:\"));\n console.error(chalk.cyan(\" langwatch login --api-key <your-key>\"));\n console.error(chalk.gray(\"Or add it to your .env file:\"));\n console.error(chalk.cyan(\" echo 'LANGWATCH_API_KEY=<your-key>' >> .env\"));\n process.exit(1);\n }\n};","import { resolveControlPlaneUrl } from \"@/cli/utils/governance/resolveEndpoint\";\n\n/**\n * Returns the LangWatch endpoint with any trailing slashes stripped, so callers\n * can safely concatenate paths like `${endpoint}/authorize` without producing\n * `https://app.langwatch.ai//authorize`.\n *\n * Delegates to the single 4-source resolver (flag > env > persisted config >\n * default). This is a thin wrapper preserved for callers that don't need the\n * `--flag` axis. New callers should use `resolveControlPlaneEndpoint()`\n * directly so the source attribution is available.\n *\n * Spec: specs/ai-governance/cli-onboarding/login-unified.feature\n */\nexport function getEndpoint(): string {\n return resolveControlPlaneUrl();\n}\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAClB,SAAS,cAAc;;;ACahB,SAAS,cAAsB;AACpC,SAAO,uBAAuB;AAChC;;;ADZO,IAAM,cAAc,MAAY;AAErC,SAAO,EAAE,OAAO,KAAK,CAAC;AAEtB,QAAM,SAAS,QAAQ,IAAI;AAE3B,MAAI,CAAC,UAAU,OAAO,KAAK,MAAM,IAAI;AACnC,UAAM,UAAU,GAAG,YAAY,CAAC;AAChC,YAAQ,MAAM,MAAM,IAAI,qCAAqC,CAAC;AAC9D,YAAQ,MAAM,MAAM,KAAK,wBAAwB,CAAC;AAClD,YAAQ,MAAM,MAAM,KAAK,KAAK,OAAO,EAAE,CAAC;AACxC,YAAQ,MAAM,MAAM,KAAK,kBAAkB,CAAC;AAC5C,YAAQ,MAAM,MAAM,KAAK,wCAAwC,CAAC;AAClE,YAAQ,MAAM,MAAM,KAAK,8BAA8B,CAAC;AACxD,YAAQ,MAAM,MAAM,KAAK,+CAA+C,CAAC;AACzE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}