langwatch 0.20.0 → 0.22.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 (534) hide show
  1. package/dist/{add-2I554R6L.mjs → add-7QFHK67E.mjs} +10 -7
  2. package/dist/{add-2I554R6L.mjs.map → add-7QFHK67E.mjs.map} +1 -1
  3. package/dist/{add-FJ2SMVQE.js → add-EJSXUSD6.js} +13 -10
  4. package/dist/add-EJSXUSD6.js.map +1 -0
  5. package/dist/assign-5UEB6AJU.js +50 -0
  6. package/dist/assign-5UEB6AJU.js.map +1 -0
  7. package/dist/assign-JCCQ5D7I.mjs +50 -0
  8. package/dist/assign-JCCQ5D7I.mjs.map +1 -0
  9. package/dist/chunk-2BJPLPLU.js +33 -0
  10. package/dist/chunk-2BJPLPLU.js.map +1 -0
  11. package/dist/chunk-2OHGLTXZ.mjs +51 -0
  12. package/dist/chunk-2OHGLTXZ.mjs.map +1 -0
  13. package/dist/chunk-2VVANTLB.js +68 -0
  14. package/dist/chunk-2VVANTLB.js.map +1 -0
  15. package/dist/{chunk-L5Z7F7MG.mjs → chunk-43STSE3B.mjs} +2 -2
  16. package/dist/chunk-47F7UDHN.js +76 -0
  17. package/dist/chunk-47F7UDHN.js.map +1 -0
  18. package/dist/chunk-5PMWRY5J.js +80 -0
  19. package/dist/chunk-5PMWRY5J.js.map +1 -0
  20. package/dist/chunk-7FD7BEJP.mjs +63 -0
  21. package/dist/chunk-7FD7BEJP.mjs.map +1 -0
  22. package/dist/{chunk-PIF2RJWZ.js → chunk-AK4YCKWK.js} +107 -108
  23. package/dist/chunk-AK4YCKWK.js.map +1 -0
  24. package/dist/chunk-AMPLL3EP.js +70 -0
  25. package/dist/chunk-AMPLL3EP.js.map +1 -0
  26. package/dist/chunk-CGFG5FCC.js +674 -0
  27. package/dist/chunk-CGFG5FCC.js.map +1 -0
  28. package/dist/chunk-CLYXJJ6C.js +66 -0
  29. package/dist/chunk-CLYXJJ6C.js.map +1 -0
  30. package/dist/{chunk-WSESRS6L.mjs → chunk-COKOLKOR.mjs} +8 -6
  31. package/dist/{chunk-WSESRS6L.mjs.map → chunk-COKOLKOR.mjs.map} +1 -1
  32. package/dist/chunk-COMOCQA6.mjs +13 -0
  33. package/dist/chunk-COMOCQA6.mjs.map +1 -0
  34. package/dist/chunk-CYRJSLKD.js +68 -0
  35. package/dist/chunk-CYRJSLKD.js.map +1 -0
  36. package/dist/{chunk-BJUXJHMQ.js → chunk-D2FHOR76.js} +2 -2
  37. package/dist/{chunk-BJUXJHMQ.js.map → chunk-D2FHOR76.js.map} +1 -1
  38. package/dist/{chunk-5LYWRKDF.js → chunk-DB6OJGP4.js} +2 -60
  39. package/dist/chunk-DB6OJGP4.js.map +1 -0
  40. package/dist/chunk-DTEKJ3UD.mjs +66 -0
  41. package/dist/chunk-DTEKJ3UD.mjs.map +1 -0
  42. package/dist/{chunk-NW32UPEI.js → chunk-DUG35J5N.js} +17 -17
  43. package/dist/{chunk-NW32UPEI.js.map → chunk-DUG35J5N.js.map} +1 -1
  44. package/dist/chunk-DWHR6QJK.mjs +46 -0
  45. package/dist/chunk-DWHR6QJK.mjs.map +1 -0
  46. package/dist/{chunk-A7CF6ZGH.mjs → chunk-ESGWN42J.mjs} +2 -2
  47. package/dist/{chunk-FMYG6IOZ.mjs → chunk-FARZEN6T.mjs} +2 -2
  48. package/dist/chunk-FG3JQBJB.mjs +68 -0
  49. package/dist/chunk-FG3JQBJB.mjs.map +1 -0
  50. package/dist/chunk-FKIH4XCX.js +63 -0
  51. package/dist/chunk-FKIH4XCX.js.map +1 -0
  52. package/dist/chunk-GLCAOVJA.js +100 -0
  53. package/dist/chunk-GLCAOVJA.js.map +1 -0
  54. package/dist/{chunk-VCC7F6B7.js → chunk-H6F5OGSL.js} +11 -11
  55. package/dist/{chunk-VCC7F6B7.js.map → chunk-H6F5OGSL.js.map} +1 -1
  56. package/dist/chunk-HHRXMHVH.js +54 -0
  57. package/dist/chunk-HHRXMHVH.js.map +1 -0
  58. package/dist/{chunk-ZLCERT3X.js → chunk-HPQFHP6K.js} +12 -10
  59. package/dist/chunk-HPQFHP6K.js.map +1 -0
  60. package/dist/chunk-I2LDJPTG.mjs +100 -0
  61. package/dist/chunk-I2LDJPTG.mjs.map +1 -0
  62. package/dist/chunk-ILLEMTW3.mjs +674 -0
  63. package/dist/chunk-ILLEMTW3.mjs.map +1 -0
  64. package/dist/{chunk-OLI6GF46.js → chunk-JWF5KHWM.js} +16 -14
  65. package/dist/chunk-JWF5KHWM.js.map +1 -0
  66. package/dist/{chunk-CWXQ53NE.mjs → chunk-JYR4TXSB.mjs} +10 -8
  67. package/dist/chunk-JYR4TXSB.mjs.map +1 -0
  68. package/dist/chunk-KH64V3CL.mjs +54 -0
  69. package/dist/chunk-KH64V3CL.mjs.map +1 -0
  70. package/dist/chunk-KJSFJ5Z3.js +51 -0
  71. package/dist/chunk-KJSFJ5Z3.js.map +1 -0
  72. package/dist/{chunk-WASZSPD7.mjs → chunk-L3IOXWDG.mjs} +100 -101
  73. package/dist/chunk-L3IOXWDG.mjs.map +1 -0
  74. package/dist/{chunk-SSONRNFB.mjs → chunk-LN33ZL4Z.mjs} +2 -2
  75. package/dist/{chunk-SSONRNFB.mjs.map → chunk-LN33ZL4Z.mjs.map} +1 -1
  76. package/dist/{chunk-5M66X6SZ.mjs → chunk-LULJYN3P.mjs} +3 -3
  77. package/dist/chunk-M3WJZUOE.js +13 -0
  78. package/dist/chunk-M3WJZUOE.js.map +1 -0
  79. package/dist/{chunk-JVIQJFUE.mjs → chunk-M4IBRWUC.mjs} +2 -60
  80. package/dist/chunk-M4IBRWUC.mjs.map +1 -0
  81. package/dist/chunk-NIW2SFZZ.mjs +85 -0
  82. package/dist/chunk-NIW2SFZZ.mjs.map +1 -0
  83. package/dist/chunk-NMACMKQN.mjs +68 -0
  84. package/dist/chunk-NMACMKQN.mjs.map +1 -0
  85. package/dist/chunk-OAAMDWSK.js +65 -0
  86. package/dist/chunk-OAAMDWSK.js.map +1 -0
  87. package/dist/chunk-PO6XRHYW.mjs +80 -0
  88. package/dist/chunk-PO6XRHYW.mjs.map +1 -0
  89. package/dist/chunk-QH3WUSKF.mjs +33 -0
  90. package/dist/chunk-QH3WUSKF.mjs.map +1 -0
  91. package/dist/chunk-RKJDDUGQ.mjs +65 -0
  92. package/dist/chunk-RKJDDUGQ.mjs.map +1 -0
  93. package/dist/chunk-TCO73AV5.mjs +53 -0
  94. package/dist/chunk-TCO73AV5.mjs.map +1 -0
  95. package/dist/chunk-TQYUM3WH.mjs +70 -0
  96. package/dist/chunk-TQYUM3WH.mjs.map +1 -0
  97. package/dist/chunk-TV6ZXLE5.mjs +76 -0
  98. package/dist/chunk-TV6ZXLE5.mjs.map +1 -0
  99. package/dist/chunk-VMDYRBQ7.js +85 -0
  100. package/dist/chunk-VMDYRBQ7.js.map +1 -0
  101. package/dist/chunk-WE2PHCFS.js +53 -0
  102. package/dist/chunk-WE2PHCFS.js.map +1 -0
  103. package/dist/chunk-WLMXMXHE.js +54 -0
  104. package/dist/chunk-WLMXMXHE.js.map +1 -0
  105. package/dist/chunk-X7QBE6AA.js +46 -0
  106. package/dist/chunk-X7QBE6AA.js.map +1 -0
  107. package/dist/chunk-YTR56IZO.mjs +54 -0
  108. package/dist/chunk-YTR56IZO.mjs.map +1 -0
  109. package/dist/{chunk-QLBNSGWC.js → chunk-Z6MQQXMS.js} +4 -4
  110. package/dist/{chunk-QLBNSGWC.js.map → chunk-Z6MQQXMS.js.map} +1 -1
  111. package/dist/{chunk-QNT5P6VV.js → chunk-ZZL6VZZU.js} +2 -2
  112. package/dist/{chunk-QNT5P6VV.js.map → chunk-ZZL6VZZU.js.map} +1 -1
  113. package/dist/cli/index.js +467 -20
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/index.mjs +467 -20
  116. package/dist/cli/index.mjs.map +1 -1
  117. package/dist/create-45FMHT6B.mjs +78 -0
  118. package/dist/create-45FMHT6B.mjs.map +1 -0
  119. package/dist/create-4OA73B7I.mjs +44 -0
  120. package/dist/create-4OA73B7I.mjs.map +1 -0
  121. package/dist/create-4U5BPFCT.mjs +51 -0
  122. package/dist/create-4U5BPFCT.mjs.map +1 -0
  123. package/dist/create-ARJEJDYU.mjs +18 -0
  124. package/dist/create-CQ7W2OAA.js +78 -0
  125. package/dist/create-CQ7W2OAA.js.map +1 -0
  126. package/dist/create-FI6HBFTB.mjs +63 -0
  127. package/dist/create-FI6HBFTB.mjs.map +1 -0
  128. package/dist/create-FYLUSZTP.js +38 -0
  129. package/dist/create-FYLUSZTP.js.map +1 -0
  130. package/dist/create-GGYYU5KM.mjs +51 -0
  131. package/dist/create-GGYYU5KM.mjs.map +1 -0
  132. package/dist/create-K5LFAS4E.mjs +61 -0
  133. package/dist/create-K5LFAS4E.mjs.map +1 -0
  134. package/dist/create-KAPF2AOL.js +44 -0
  135. package/dist/create-KAPF2AOL.js.map +1 -0
  136. package/dist/create-LWG7ZHEW.mjs +71 -0
  137. package/dist/create-LWG7ZHEW.mjs.map +1 -0
  138. package/dist/create-MXYMAFMF.js +71 -0
  139. package/dist/create-MXYMAFMF.js.map +1 -0
  140. package/dist/create-NFYHBFF5.mjs +50 -0
  141. package/dist/create-NFYHBFF5.mjs.map +1 -0
  142. package/dist/create-OSAXTSUC.js +51 -0
  143. package/dist/create-OSAXTSUC.js.map +1 -0
  144. package/dist/create-RPHO5TZX.js +51 -0
  145. package/dist/create-RPHO5TZX.js.map +1 -0
  146. package/dist/create-RRI5ZTMI.mjs +51 -0
  147. package/dist/create-RRI5ZTMI.mjs.map +1 -0
  148. package/dist/create-UKLLNRXV.js +61 -0
  149. package/dist/create-UKLLNRXV.js.map +1 -0
  150. package/dist/create-UZ5NDYPV.js +88 -0
  151. package/dist/create-UZ5NDYPV.js.map +1 -0
  152. package/dist/create-WV2NQDV5.js +63 -0
  153. package/dist/create-WV2NQDV5.js.map +1 -0
  154. package/dist/create-XGD3GULQ.js +50 -0
  155. package/dist/create-XGD3GULQ.js.map +1 -0
  156. package/dist/create-XZXVGMKU.js +51 -0
  157. package/dist/create-XZXVGMKU.js.map +1 -0
  158. package/dist/create-Z2XFL2HX.js +18 -0
  159. package/dist/create-Z2XFL2HX.js.map +1 -0
  160. package/dist/create-Z7DUMMQ4.mjs +38 -0
  161. package/dist/create-Z7DUMMQ4.mjs.map +1 -0
  162. package/dist/create-ZU4L3XOF.mjs +88 -0
  163. package/dist/create-ZU4L3XOF.mjs.map +1 -0
  164. package/dist/delete-22LDMLNG.mjs +61 -0
  165. package/dist/delete-22LDMLNG.mjs.map +1 -0
  166. package/dist/delete-2S67GS6A.mjs +40 -0
  167. package/dist/delete-2S67GS6A.mjs.map +1 -0
  168. package/dist/delete-3WCCA5O2.mjs +44 -0
  169. package/dist/delete-3WCCA5O2.mjs.map +1 -0
  170. package/dist/delete-4QNGDUH6.js +44 -0
  171. package/dist/delete-4QNGDUH6.js.map +1 -0
  172. package/dist/delete-555RUBQA.js +55 -0
  173. package/dist/delete-555RUBQA.js.map +1 -0
  174. package/dist/delete-5NINT2KV.mjs +42 -0
  175. package/dist/delete-5NINT2KV.mjs.map +1 -0
  176. package/dist/delete-5VDH4Q3Z.js +44 -0
  177. package/dist/delete-5VDH4Q3Z.js.map +1 -0
  178. package/dist/delete-6JPJPG4B.js +38 -0
  179. package/dist/delete-6JPJPG4B.js.map +1 -0
  180. package/dist/delete-6ZD3ARMB.js +61 -0
  181. package/dist/delete-6ZD3ARMB.js.map +1 -0
  182. package/dist/delete-AOSVEVNL.mjs +44 -0
  183. package/dist/delete-AOSVEVNL.mjs.map +1 -0
  184. package/dist/delete-BLTSYYZQ.js +40 -0
  185. package/dist/delete-BLTSYYZQ.js.map +1 -0
  186. package/dist/delete-CTE3RNKB.mjs +42 -0
  187. package/dist/delete-CTE3RNKB.mjs.map +1 -0
  188. package/dist/delete-HEF4DLSV.mjs +38 -0
  189. package/dist/delete-HEF4DLSV.mjs.map +1 -0
  190. package/dist/delete-I36NLS2V.mjs +65 -0
  191. package/dist/delete-I36NLS2V.mjs.map +1 -0
  192. package/dist/delete-J2P2Y2BW.mjs +63 -0
  193. package/dist/delete-J2P2Y2BW.mjs.map +1 -0
  194. package/dist/delete-KIXZ73DF.mjs +38 -0
  195. package/dist/delete-KIXZ73DF.mjs.map +1 -0
  196. package/dist/delete-L3SU34X6.mjs +44 -0
  197. package/dist/delete-L3SU34X6.mjs.map +1 -0
  198. package/dist/delete-N6OZW65U.js +44 -0
  199. package/dist/delete-N6OZW65U.js.map +1 -0
  200. package/dist/delete-PPEXA2V4.js +42 -0
  201. package/dist/delete-PPEXA2V4.js.map +1 -0
  202. package/dist/delete-PXGB35PF.js +65 -0
  203. package/dist/delete-PXGB35PF.js.map +1 -0
  204. package/dist/delete-QVE52G3Q.mjs +42 -0
  205. package/dist/delete-QVE52G3Q.mjs.map +1 -0
  206. package/dist/delete-R5TSAZOU.js +42 -0
  207. package/dist/delete-R5TSAZOU.js.map +1 -0
  208. package/dist/delete-RIHVCQ6G.mjs +55 -0
  209. package/dist/delete-RIHVCQ6G.mjs.map +1 -0
  210. package/dist/delete-UWPOVLSO.js +38 -0
  211. package/dist/delete-UWPOVLSO.js.map +1 -0
  212. package/dist/delete-XKF7KO4Y.js +63 -0
  213. package/dist/delete-XKF7KO4Y.js.map +1 -0
  214. package/dist/delete-ZY2UCN3W.js +42 -0
  215. package/dist/delete-ZY2UCN3W.js.map +1 -0
  216. package/dist/download-2Q5T4WW2.js +96 -0
  217. package/dist/download-2Q5T4WW2.js.map +1 -0
  218. package/dist/download-7RBJ3GZM.mjs +96 -0
  219. package/dist/download-7RBJ3GZM.mjs.map +1 -0
  220. package/dist/duplicate-7N6B5PJD.mjs +48 -0
  221. package/dist/duplicate-7N6B5PJD.mjs.map +1 -0
  222. package/dist/duplicate-HZGUFROD.js +48 -0
  223. package/dist/duplicate-HZGUFROD.js.map +1 -0
  224. package/dist/export-PP5LG6Q7.js +91 -0
  225. package/dist/export-PP5LG6Q7.js.map +1 -0
  226. package/dist/export-TGKA6WA4.mjs +91 -0
  227. package/dist/export-TGKA6WA4.mjs.map +1 -0
  228. package/dist/get-2AXSP6AP.js +62 -0
  229. package/dist/get-2AXSP6AP.js.map +1 -0
  230. package/dist/get-6UQYEENU.mjs +55 -0
  231. package/dist/get-6UQYEENU.mjs.map +1 -0
  232. package/dist/get-73K7EOMU.mjs +53 -0
  233. package/dist/get-73K7EOMU.mjs.map +1 -0
  234. package/dist/get-7JYKMJXV.mjs +85 -0
  235. package/dist/get-7JYKMJXV.mjs.map +1 -0
  236. package/dist/get-7V7OBWY5.js +86 -0
  237. package/dist/get-7V7OBWY5.js.map +1 -0
  238. package/dist/get-CBNUMPUN.mjs +64 -0
  239. package/dist/get-CBNUMPUN.mjs.map +1 -0
  240. package/dist/get-E2RIDN65.mjs +70 -0
  241. package/dist/get-E2RIDN65.mjs.map +1 -0
  242. package/dist/get-EN3CQXA7.js +51 -0
  243. package/dist/get-EN3CQXA7.js.map +1 -0
  244. package/dist/get-GHUHFWC3.js +58 -0
  245. package/dist/get-GHUHFWC3.js.map +1 -0
  246. package/dist/get-GQTPK2MW.mjs +51 -0
  247. package/dist/get-GQTPK2MW.mjs.map +1 -0
  248. package/dist/get-I2CQCKFW.mjs +62 -0
  249. package/dist/get-I2CQCKFW.mjs.map +1 -0
  250. package/dist/get-IDYGZX5O.mjs +51 -0
  251. package/dist/get-IDYGZX5O.mjs.map +1 -0
  252. package/dist/get-JAWJ5RIB.mjs +66 -0
  253. package/dist/get-JAWJ5RIB.mjs.map +1 -0
  254. package/dist/get-JYN765FP.js +53 -0
  255. package/dist/get-JYN765FP.js.map +1 -0
  256. package/dist/get-MHGIJVZ5.js +51 -0
  257. package/dist/get-MHGIJVZ5.js.map +1 -0
  258. package/dist/get-NIA7XUS2.mjs +56 -0
  259. package/dist/get-NIA7XUS2.mjs.map +1 -0
  260. package/dist/get-PM5HD5BJ.js +64 -0
  261. package/dist/get-PM5HD5BJ.js.map +1 -0
  262. package/dist/get-PR65PTQ5.mjs +86 -0
  263. package/dist/get-PR65PTQ5.mjs.map +1 -0
  264. package/dist/get-PYWLY7QQ.mjs +71 -0
  265. package/dist/get-PYWLY7QQ.mjs.map +1 -0
  266. package/dist/get-QMCMYTDV.mjs +58 -0
  267. package/dist/get-QMCMYTDV.mjs.map +1 -0
  268. package/dist/get-QNYINIDO.mjs +95 -0
  269. package/dist/get-QNYINIDO.mjs.map +1 -0
  270. package/dist/get-S7MFACWM.js +70 -0
  271. package/dist/get-S7MFACWM.js.map +1 -0
  272. package/dist/get-SBMD2X2P.js +66 -0
  273. package/dist/get-SBMD2X2P.js.map +1 -0
  274. package/dist/get-T754IOEI.js +85 -0
  275. package/dist/get-T754IOEI.js.map +1 -0
  276. package/dist/get-TOXTYIN5.js +71 -0
  277. package/dist/get-TOXTYIN5.js.map +1 -0
  278. package/dist/get-UCHL4WHT.js +95 -0
  279. package/dist/get-UCHL4WHT.js.map +1 -0
  280. package/dist/get-Y22XVMEO.js +55 -0
  281. package/dist/get-Y22XVMEO.js.map +1 -0
  282. package/dist/get-ZEUJA3KA.js +56 -0
  283. package/dist/get-ZEUJA3KA.js.map +1 -0
  284. package/dist/{implementation-8fGNr_Mq.d.ts → implementation-7POf4yX4.d.ts} +1 -1
  285. package/dist/{implementation-DPQ9ez-J.d.mts → implementation-BbuGM8_W.d.mts} +1 -1
  286. package/dist/index.d.mts +395 -28
  287. package/dist/index.d.ts +395 -28
  288. package/dist/index.js +49 -196
  289. package/dist/index.js.map +1 -1
  290. package/dist/index.mjs +35 -182
  291. package/dist/index.mjs.map +1 -1
  292. package/dist/list-3JR4HKGF.mjs +70 -0
  293. package/dist/list-3JR4HKGF.mjs.map +1 -0
  294. package/dist/list-6BRQWVVV.js +74 -0
  295. package/dist/list-6BRQWVVV.js.map +1 -0
  296. package/dist/list-6JTFDJAI.mjs +93 -0
  297. package/dist/list-6JTFDJAI.mjs.map +1 -0
  298. package/dist/list-7LV6GOZO.js +85 -0
  299. package/dist/list-7LV6GOZO.js.map +1 -0
  300. package/dist/list-AEX4S72W.mjs +74 -0
  301. package/dist/list-AEX4S72W.mjs.map +1 -0
  302. package/dist/list-AGELVAP7.js +70 -0
  303. package/dist/list-AGELVAP7.js.map +1 -0
  304. package/dist/list-ARBOOOYN.mjs +81 -0
  305. package/dist/list-ARBOOOYN.mjs.map +1 -0
  306. package/dist/list-AYOW6OF7.js +73 -0
  307. package/dist/list-AYOW6OF7.js.map +1 -0
  308. package/dist/list-BAKCZVTL.mjs +78 -0
  309. package/dist/list-BAKCZVTL.mjs.map +1 -0
  310. package/dist/list-BDNGLOLK.mjs +77 -0
  311. package/dist/list-BDNGLOLK.mjs.map +1 -0
  312. package/dist/list-C6DPYHQ2.js +109 -0
  313. package/dist/list-C6DPYHQ2.js.map +1 -0
  314. package/dist/list-E7YPBCAF.mjs +85 -0
  315. package/dist/list-E7YPBCAF.mjs.map +1 -0
  316. package/dist/list-EPB36Y7W.mjs +49 -0
  317. package/dist/list-EPB36Y7W.mjs.map +1 -0
  318. package/dist/list-FLTPMAHR.js +93 -0
  319. package/dist/list-FLTPMAHR.js.map +1 -0
  320. package/dist/list-FPIWJ65T.mjs +83 -0
  321. package/dist/list-FPIWJ65T.mjs.map +1 -0
  322. package/dist/list-GN3SAZG2.js +83 -0
  323. package/dist/list-GN3SAZG2.js.map +1 -0
  324. package/dist/list-JK36QVS2.js +73 -0
  325. package/dist/list-JK36QVS2.js.map +1 -0
  326. package/dist/list-JRWFJU5H.js +81 -0
  327. package/dist/list-JRWFJU5H.js.map +1 -0
  328. package/dist/list-KIJ4ILEN.mjs +78 -0
  329. package/dist/list-KIJ4ILEN.mjs.map +1 -0
  330. package/dist/list-KQKELE44.mjs +73 -0
  331. package/dist/list-KQKELE44.mjs.map +1 -0
  332. package/dist/list-LMMRRFZC.js +77 -0
  333. package/dist/list-LMMRRFZC.js.map +1 -0
  334. package/dist/{list-53QTWXGF.mjs → list-N7WIOJ5A.mjs} +29 -68
  335. package/dist/list-N7WIOJ5A.mjs.map +1 -0
  336. package/dist/list-RS4QL7NE.mjs +83 -0
  337. package/dist/list-RS4QL7NE.mjs.map +1 -0
  338. package/dist/list-SDMJ2GJE.js +81 -0
  339. package/dist/list-SDMJ2GJE.js.map +1 -0
  340. package/dist/list-UKGJOVJE.js +49 -0
  341. package/dist/list-UKGJOVJE.js.map +1 -0
  342. package/dist/list-UOTJUE2P.js +79 -0
  343. package/dist/list-UOTJUE2P.js.map +1 -0
  344. package/dist/list-W2MYF4RU.js +78 -0
  345. package/dist/list-W2MYF4RU.js.map +1 -0
  346. package/dist/list-WYYGGV5V.mjs +81 -0
  347. package/dist/list-WYYGGV5V.mjs.map +1 -0
  348. package/dist/list-WZ4KHBMF.mjs +73 -0
  349. package/dist/list-WZ4KHBMF.mjs.map +1 -0
  350. package/dist/list-XTOWXYB2.js +83 -0
  351. package/dist/list-XTOWXYB2.js.map +1 -0
  352. package/dist/list-Z5EEMYRQ.js +78 -0
  353. package/dist/list-Z5EEMYRQ.js.map +1 -0
  354. package/dist/list-ZB53NL6Z.mjs +79 -0
  355. package/dist/list-ZB53NL6Z.mjs.map +1 -0
  356. package/dist/{login-QWXRNDAM.mjs → login-4AX6AOKI.mjs} +20 -3
  357. package/dist/login-4AX6AOKI.mjs.map +1 -0
  358. package/dist/{login-XBFOVP6G.js → login-H3SQDBT7.js} +21 -4
  359. package/dist/login-H3SQDBT7.js.map +1 -0
  360. package/dist/observability-sdk/index.d.mts +3 -3
  361. package/dist/observability-sdk/index.d.ts +3 -3
  362. package/dist/observability-sdk/index.js +8 -6
  363. package/dist/observability-sdk/index.js.map +1 -1
  364. package/dist/observability-sdk/index.mjs +8 -6
  365. package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
  366. package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
  367. package/dist/observability-sdk/instrumentation/langchain/index.js +17 -16
  368. package/dist/observability-sdk/instrumentation/langchain/index.js.map +1 -1
  369. package/dist/observability-sdk/instrumentation/langchain/index.mjs +3 -2
  370. package/dist/observability-sdk/instrumentation/langchain/index.mjs.map +1 -1
  371. package/dist/observability-sdk/setup/node/index.js +6 -5
  372. package/dist/observability-sdk/setup/node/index.js.map +1 -1
  373. package/dist/observability-sdk/setup/node/index.mjs +5 -4
  374. package/dist/pull-64HVVOBC.mjs +23 -0
  375. package/dist/pull-QIANBELG.js +23 -0
  376. package/dist/pull-QIANBELG.js.map +1 -0
  377. package/dist/push-GXLGORLM.mjs +23 -0
  378. package/dist/push-GXLGORLM.mjs.map +1 -0
  379. package/dist/push-I3BJSL6N.js +23 -0
  380. package/dist/push-I3BJSL6N.js.map +1 -0
  381. package/dist/query-UF2LDBR4.js +158 -0
  382. package/dist/query-UF2LDBR4.js.map +1 -0
  383. package/dist/query-ZI7HJSIY.mjs +158 -0
  384. package/dist/query-ZI7HJSIY.mjs.map +1 -0
  385. package/dist/records-add-4LX4JHLO.mjs +94 -0
  386. package/dist/records-add-4LX4JHLO.mjs.map +1 -0
  387. package/dist/records-add-WTIGBJV4.js +94 -0
  388. package/dist/records-add-WTIGBJV4.js.map +1 -0
  389. package/dist/records-delete-IY37NWPN.mjs +42 -0
  390. package/dist/records-delete-IY37NWPN.mjs.map +1 -0
  391. package/dist/records-delete-MLOG4DM4.js +42 -0
  392. package/dist/records-delete-MLOG4DM4.js.map +1 -0
  393. package/dist/records-list-EP6OCFH5.js +85 -0
  394. package/dist/records-list-EP6OCFH5.js.map +1 -0
  395. package/dist/records-list-RIDOAE2V.mjs +85 -0
  396. package/dist/records-list-RIDOAE2V.mjs.map +1 -0
  397. package/dist/records-update-5QZBDYUJ.js +49 -0
  398. package/dist/records-update-5QZBDYUJ.js.map +1 -0
  399. package/dist/records-update-JINO26IA.mjs +49 -0
  400. package/dist/records-update-JINO26IA.mjs.map +1 -0
  401. package/dist/{remove-Q573N52S.mjs → remove-HLVK7VUB.mjs} +10 -7
  402. package/dist/{remove-Q573N52S.mjs.map → remove-HLVK7VUB.mjs.map} +1 -1
  403. package/dist/{remove-KIZPGE7J.js → remove-LDX2BSUH.js} +12 -9
  404. package/dist/remove-LDX2BSUH.js.map +1 -0
  405. package/dist/rename-FP7X3GJJ.mjs +38 -0
  406. package/dist/rename-FP7X3GJJ.mjs.map +1 -0
  407. package/dist/rename-PUSZYLZ7.js +38 -0
  408. package/dist/rename-PUSZYLZ7.js.map +1 -0
  409. package/dist/restore-5L5MLISA.mjs +63 -0
  410. package/dist/restore-5L5MLISA.mjs.map +1 -0
  411. package/dist/restore-OXNQMRMJ.js +63 -0
  412. package/dist/restore-OXNQMRMJ.js.map +1 -0
  413. package/dist/run-AIGCDUDF.mjs +143 -0
  414. package/dist/run-AIGCDUDF.mjs.map +1 -0
  415. package/dist/run-CKZ6VNKK.js +143 -0
  416. package/dist/run-CKZ6VNKK.js.map +1 -0
  417. package/dist/run-FE4QMJO5.mjs +67 -0
  418. package/dist/run-FE4QMJO5.mjs.map +1 -0
  419. package/dist/run-FJDOSV5E.js +128 -0
  420. package/dist/run-FJDOSV5E.js.map +1 -0
  421. package/dist/run-GUSPWLCC.mjs +128 -0
  422. package/dist/run-GUSPWLCC.mjs.map +1 -0
  423. package/dist/run-KNCB7OEA.js +86 -0
  424. package/dist/run-KNCB7OEA.js.map +1 -0
  425. package/dist/run-KZKAHFBR.js +67 -0
  426. package/dist/run-KZKAHFBR.js.map +1 -0
  427. package/dist/run-QW2HL4EK.mjs +86 -0
  428. package/dist/run-QW2HL4EK.mjs.map +1 -0
  429. package/dist/run-UZVJBWGG.js +130 -0
  430. package/dist/run-UZVJBWGG.js.map +1 -0
  431. package/dist/run-WZ4CSMTP.mjs +130 -0
  432. package/dist/run-WZ4CSMTP.mjs.map +1 -0
  433. package/dist/search-5B32YGSP.mjs +112 -0
  434. package/dist/search-5B32YGSP.mjs.map +1 -0
  435. package/dist/search-J5GDX5JK.js +112 -0
  436. package/dist/search-J5GDX5JK.js.map +1 -0
  437. package/dist/set-2DYJNVS5.mjs +62 -0
  438. package/dist/set-2DYJNVS5.mjs.map +1 -0
  439. package/dist/set-S5L5QSYZ.js +62 -0
  440. package/dist/set-S5L5QSYZ.js.map +1 -0
  441. package/dist/status-OIXOYFH4.mjs +101 -0
  442. package/dist/status-OIXOYFH4.mjs.map +1 -0
  443. package/dist/status-Q2PEMYJT.mjs +70 -0
  444. package/dist/status-Q2PEMYJT.mjs.map +1 -0
  445. package/dist/status-QRK56VLF.js +70 -0
  446. package/dist/status-QRK56VLF.js.map +1 -0
  447. package/dist/status-T7NOWM4X.js +101 -0
  448. package/dist/status-T7NOWM4X.js.map +1 -0
  449. package/dist/{sync-YPJIIHKC.js → sync-IDSAYUGO.js} +16 -13
  450. package/dist/sync-IDSAYUGO.js.map +1 -0
  451. package/dist/{sync-TM7JZNNW.mjs → sync-LA27E4UB.mjs} +12 -9
  452. package/dist/{sync-TM7JZNNW.mjs.map → sync-LA27E4UB.mjs.map} +1 -1
  453. package/dist/{types-DQiByKdr.d.ts → types-B4TSe7JR.d.ts} +6546 -2251
  454. package/dist/{types-CoHIwxng.d.mts → types-CWY5yQki.d.mts} +6546 -2251
  455. package/dist/update-3B43ZW4X.mjs +53 -0
  456. package/dist/update-3B43ZW4X.mjs.map +1 -0
  457. package/dist/update-3C6Y2Y2P.js +53 -0
  458. package/dist/update-3C6Y2Y2P.js.map +1 -0
  459. package/dist/update-4D7R3VYO.js +75 -0
  460. package/dist/update-4D7R3VYO.js.map +1 -0
  461. package/dist/update-4FC4YPW7.mjs +71 -0
  462. package/dist/update-4FC4YPW7.mjs.map +1 -0
  463. package/dist/update-4YMVL4UT.mjs +74 -0
  464. package/dist/update-4YMVL4UT.mjs.map +1 -0
  465. package/dist/update-7ZEJO5SB.js +74 -0
  466. package/dist/update-7ZEJO5SB.js.map +1 -0
  467. package/dist/update-BADZ6GRL.js +66 -0
  468. package/dist/update-BADZ6GRL.js.map +1 -0
  469. package/dist/update-DLFJBCI2.js +68 -0
  470. package/dist/update-DLFJBCI2.js.map +1 -0
  471. package/dist/update-EB7WMPOP.js +53 -0
  472. package/dist/update-EB7WMPOP.js.map +1 -0
  473. package/dist/update-EG6BZOLC.mjs +51 -0
  474. package/dist/update-EG6BZOLC.mjs.map +1 -0
  475. package/dist/update-FKL5Y73R.js +69 -0
  476. package/dist/update-FKL5Y73R.js.map +1 -0
  477. package/dist/update-GWTLCIAT.mjs +69 -0
  478. package/dist/update-GWTLCIAT.mjs.map +1 -0
  479. package/dist/update-MFZOMTRJ.mjs +51 -0
  480. package/dist/update-MFZOMTRJ.mjs.map +1 -0
  481. package/dist/update-PSY46JJD.mjs +68 -0
  482. package/dist/update-PSY46JJD.mjs.map +1 -0
  483. package/dist/update-PXCMJWY3.mjs +53 -0
  484. package/dist/update-PXCMJWY3.mjs.map +1 -0
  485. package/dist/update-R72C65QF.mjs +66 -0
  486. package/dist/update-R72C65QF.mjs.map +1 -0
  487. package/dist/update-RCZ47II5.js +52 -0
  488. package/dist/update-RCZ47II5.js.map +1 -0
  489. package/dist/update-RPD2OXXQ.js +51 -0
  490. package/dist/update-RPD2OXXQ.js.map +1 -0
  491. package/dist/update-VLY6LJVM.js +51 -0
  492. package/dist/update-VLY6LJVM.js.map +1 -0
  493. package/dist/update-WKM6XI4V.mjs +75 -0
  494. package/dist/update-WKM6XI4V.mjs.map +1 -0
  495. package/dist/update-WQK5Q34V.mjs +52 -0
  496. package/dist/update-WQK5Q34V.mjs.map +1 -0
  497. package/dist/update-YMWBN55I.js +71 -0
  498. package/dist/update-YMWBN55I.js.map +1 -0
  499. package/dist/upload-6LF5GVLP.js +73 -0
  500. package/dist/upload-6LF5GVLP.js.map +1 -0
  501. package/dist/upload-QWAITH5R.mjs +73 -0
  502. package/dist/upload-QWAITH5R.mjs.map +1 -0
  503. package/dist/versions-HIYVXIKM.js +82 -0
  504. package/dist/versions-HIYVXIKM.js.map +1 -0
  505. package/dist/versions-JPUSBSTF.mjs +82 -0
  506. package/dist/versions-JPUSBSTF.mjs.map +1 -0
  507. package/package.json +1 -1
  508. package/dist/add-FJ2SMVQE.js.map +0 -1
  509. package/dist/chunk-5LYWRKDF.js.map +0 -1
  510. package/dist/chunk-CWXQ53NE.mjs.map +0 -1
  511. package/dist/chunk-JVIQJFUE.mjs.map +0 -1
  512. package/dist/chunk-OLI6GF46.js.map +0 -1
  513. package/dist/chunk-PIF2RJWZ.js.map +0 -1
  514. package/dist/chunk-WASZSPD7.mjs.map +0 -1
  515. package/dist/chunk-ZLCERT3X.js.map +0 -1
  516. package/dist/list-53QTWXGF.mjs.map +0 -1
  517. package/dist/list-LBDUK454.js +0 -148
  518. package/dist/list-LBDUK454.js.map +0 -1
  519. package/dist/login-QWXRNDAM.mjs.map +0 -1
  520. package/dist/login-XBFOVP6G.js.map +0 -1
  521. package/dist/pull-3B3CBSSM.js +0 -20
  522. package/dist/pull-3B3CBSSM.js.map +0 -1
  523. package/dist/pull-WK6P7KS2.mjs +0 -20
  524. package/dist/push-G457CXVG.mjs +0 -20
  525. package/dist/push-GKFQL6GO.js +0 -20
  526. package/dist/push-GKFQL6GO.js.map +0 -1
  527. package/dist/remove-KIZPGE7J.js.map +0 -1
  528. package/dist/sync-YPJIIHKC.js.map +0 -1
  529. /package/dist/{chunk-L5Z7F7MG.mjs.map → chunk-43STSE3B.mjs.map} +0 -0
  530. /package/dist/{chunk-A7CF6ZGH.mjs.map → chunk-ESGWN42J.mjs.map} +0 -0
  531. /package/dist/{chunk-FMYG6IOZ.mjs.map → chunk-FARZEN6T.mjs.map} +0 -0
  532. /package/dist/{chunk-5M66X6SZ.mjs.map → chunk-LULJYN3P.mjs.map} +0 -0
  533. /package/dist/{pull-WK6P7KS2.mjs.map → create-ARJEJDYU.mjs.map} +0 -0
  534. /package/dist/{push-G457CXVG.mjs.map → pull-64HVVOBC.mjs.map} +0 -0
@@ -0,0 +1,130 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+
4
+ var _chunkVMDYRBQ7js = require('./chunk-VMDYRBQ7.js');
5
+
6
+
7
+ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
8
+ require('./chunk-2BJPLPLU.js');
9
+ require('./chunk-D2FHOR76.js');
10
+ require('./chunk-OHM7JUMR.js');
11
+
12
+ // src/cli/commands/suites/run.ts
13
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
14
+ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
15
+ var runSuiteCommand = async (id, options) => {
16
+ var _a, _b, _c, _d, _e, _f;
17
+ _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
18
+ const service = new (0, _chunkVMDYRBQ7js.SuitesApiService)();
19
+ const spinner = _ora2.default.call(void 0, `Scheduling suite run "${id}"...`).start();
20
+ try {
21
+ const result = await service.run(id);
22
+ spinner.succeed(
23
+ `Suite run scheduled: ${result.jobCount} job${result.jobCount !== 1 ? "s" : ""} (batch: ${result.batchRunId})`
24
+ );
25
+ if (result.skippedArchived.scenarios.length > 0 || result.skippedArchived.targets.length > 0) {
26
+ console.log();
27
+ console.log(_chalk2.default.yellow(" Skipped archived references:"));
28
+ if (result.skippedArchived.scenarios.length > 0) {
29
+ console.log(_chalk2.default.yellow(` Scenarios: ${result.skippedArchived.scenarios.join(", ")}`));
30
+ }
31
+ if (result.skippedArchived.targets.length > 0) {
32
+ console.log(_chalk2.default.yellow(` Targets: ${result.skippedArchived.targets.join(", ")}`));
33
+ }
34
+ }
35
+ if (options.format === "json") {
36
+ console.log(JSON.stringify(result, null, 2));
37
+ return;
38
+ }
39
+ if (!options.wait) {
40
+ console.log();
41
+ console.log(` ${_chalk2.default.gray("Batch Run ID:")} ${_chalk2.default.green(result.batchRunId)}`);
42
+ console.log(` ${_chalk2.default.gray("Jobs:")} ${result.jobCount}`);
43
+ console.log();
44
+ console.log(
45
+ _chalk2.default.gray(
46
+ `View results in the LangWatch dashboard under Simulations.`
47
+ )
48
+ );
49
+ console.log(
50
+ _chalk2.default.gray(
51
+ `Or re-run with ${_chalk2.default.cyan("--wait")} to poll for completion.`
52
+ )
53
+ );
54
+ return;
55
+ }
56
+ console.log();
57
+ const pollSpinner = _ora2.default.call(void 0, "Waiting for suite run to complete...").start();
58
+ const apiKey = (_a = process.env.LANGWATCH_API_KEY) != null ? _a : "";
59
+ const endpoint = (_b = process.env.LANGWATCH_ENDPOINT) != null ? _b : "https://app.langwatch.ai";
60
+ let completed = false;
61
+ let lastStatus = "";
62
+ const startTime = Date.now();
63
+ const TIMEOUT_MS = 10 * 60 * 1e3;
64
+ while (!completed) {
65
+ if (Date.now() - startTime > TIMEOUT_MS) {
66
+ pollSpinner.fail("Suite run timed out after 10 minutes");
67
+ console.log(
68
+ _chalk2.default.yellow(
69
+ `Check results in the dashboard. Batch ID: ${result.batchRunId}`
70
+ )
71
+ );
72
+ process.exit(1);
73
+ }
74
+ await new Promise((resolve) => setTimeout(resolve, 3e3));
75
+ try {
76
+ const statusResponse = await fetch(
77
+ `${endpoint}/api/scenario-events?batchRunId=${encodeURIComponent(result.batchRunId)}`,
78
+ {
79
+ method: "GET",
80
+ headers: { "X-Auth-Token": apiKey }
81
+ }
82
+ );
83
+ if (statusResponse.ok) {
84
+ const statusData = await statusResponse.json();
85
+ const total = (_c = statusData.totalCount) != null ? _c : result.jobCount;
86
+ const completedCount = (_d = statusData.completedCount) != null ? _d : 0;
87
+ const passed = (_e = statusData.passedCount) != null ? _e : 0;
88
+ const failed = (_f = statusData.failedCount) != null ? _f : 0;
89
+ const newStatus = `${completedCount}/${total} completed (${passed} passed, ${failed} failed)`;
90
+ if (newStatus !== lastStatus) {
91
+ pollSpinner.text = `Running... ${newStatus}`;
92
+ lastStatus = newStatus;
93
+ }
94
+ if (completedCount >= total && total > 0) {
95
+ completed = true;
96
+ if (failed > 0) {
97
+ pollSpinner.warn(
98
+ `Suite run completed: ${passed}/${total} passed, ${_chalk2.default.red(`${failed} failed`)}`
99
+ );
100
+ } else {
101
+ pollSpinner.succeed(
102
+ `Suite run completed: ${_chalk2.default.green(`${passed}/${total} passed`)}`
103
+ );
104
+ }
105
+ }
106
+ }
107
+ } catch (e) {
108
+ }
109
+ }
110
+ console.log();
111
+ console.log(` ${_chalk2.default.gray("Batch Run ID:")} ${_chalk2.default.green(result.batchRunId)}`);
112
+ console.log();
113
+ } catch (error) {
114
+ spinner.fail();
115
+ if (error instanceof _chunkVMDYRBQ7js.SuitesApiError) {
116
+ console.error(_chalk2.default.red(`Error: ${error.message}`));
117
+ } else {
118
+ console.error(
119
+ _chalk2.default.red(
120
+ `Error: ${error instanceof Error ? error.message : "Unknown error"}`
121
+ )
122
+ );
123
+ }
124
+ process.exit(1);
125
+ }
126
+ };
127
+
128
+
129
+ exports.runSuiteCommand = runSuiteCommand;
130
+ //# sourceMappingURL=run-UZVJBWGG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/run-UZVJBWGG.js","../src/cli/commands/suites/run.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/run-UZVJBWGG.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n SuitesApiService,\n SuitesApiError,\n} from \"@/client-sdk/services/suites\";\nimport { checkApiKey } from \"../../utils/apiKey\";\n\nexport const runSuiteCommand = async (\n id: string,\n options: { wait?: boolean; format?: string },\n): Promise<void> => {\n checkApiKey();\n\n const service = new SuitesApiService();\n const spinner = ora(`Scheduling suite run \"${id}\"...`).start();\n\n try {\n const result = await service.run(id);\n\n spinner.succeed(\n `Suite run scheduled: ${result.jobCount} job${result.jobCount !== 1 ? \"s\" : \"\"} (batch: ${result.batchRunId})`,\n );\n\n if (result.skippedArchived.scenarios.length > 0 || result.skippedArchived.targets.length > 0) {\n console.log();\n console.log(chalk.yellow(\" Skipped archived references:\"));\n if (result.skippedArchived.scenarios.length > 0) {\n console.log(chalk.yellow(` Scenarios: ${result.skippedArchived.scenarios.join(\", \")}`));\n }\n if (result.skippedArchived.targets.length > 0) {\n console.log(chalk.yellow(` Targets: ${result.skippedArchived.targets.join(\", \")}`));\n }\n }\n\n if (options.format === \"json\") {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n if (!options.wait) {\n console.log();\n console.log(` ${chalk.gray(\"Batch Run ID:\")} ${chalk.green(result.batchRunId)}`);\n console.log(` ${chalk.gray(\"Jobs:\")} ${result.jobCount}`);\n console.log();\n console.log(\n chalk.gray(\n `View results in the LangWatch dashboard under Simulations.`,\n ),\n );\n console.log(\n chalk.gray(\n `Or re-run with ${chalk.cyan(\"--wait\")} to poll for completion.`,\n ),\n );\n return;\n }\n\n // Poll for completion\n console.log();\n const pollSpinner = ora(\"Waiting for suite run to complete...\").start();\n\n const apiKey = process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint = process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\n\n let completed = false;\n let lastStatus = \"\";\n const startTime = Date.now();\n const TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes\n\n while (!completed) {\n if (Date.now() - startTime > TIMEOUT_MS) {\n pollSpinner.fail(\"Suite run timed out after 10 minutes\");\n console.log(\n chalk.yellow(\n `Check results in the dashboard. Batch ID: ${result.batchRunId}`,\n ),\n );\n process.exit(1);\n }\n\n await new Promise((resolve) => setTimeout(resolve, 3000));\n\n try {\n // Poll the scenario events endpoint for batch status\n const statusResponse = await fetch(\n `${endpoint}/api/scenario-events?batchRunId=${encodeURIComponent(result.batchRunId)}`,\n {\n method: \"GET\",\n headers: { \"X-Auth-Token\": apiKey },\n },\n );\n\n if (statusResponse.ok) {\n const statusData = await statusResponse.json() as {\n totalCount?: number;\n completedCount?: number;\n passedCount?: number;\n failedCount?: number;\n status?: string;\n };\n\n const total = statusData.totalCount ?? result.jobCount;\n const completedCount = statusData.completedCount ?? 0;\n const passed = statusData.passedCount ?? 0;\n const failed = statusData.failedCount ?? 0;\n\n const newStatus = `${completedCount}/${total} completed (${passed} passed, ${failed} failed)`;\n if (newStatus !== lastStatus) {\n pollSpinner.text = `Running... ${newStatus}`;\n lastStatus = newStatus;\n }\n\n if (completedCount >= total && total > 0) {\n completed = true;\n if (failed > 0) {\n pollSpinner.warn(\n `Suite run completed: ${passed}/${total} passed, ${chalk.red(`${failed} failed`)}`,\n );\n } else {\n pollSpinner.succeed(\n `Suite run completed: ${chalk.green(`${passed}/${total} passed`)}`,\n );\n }\n }\n }\n } catch {\n // Polling error — continue waiting\n }\n }\n\n console.log();\n console.log(` ${chalk.gray(\"Batch Run ID:\")} ${chalk.green(result.batchRunId)}`);\n console.log();\n } catch (error) {\n spinner.fail();\n if (error instanceof SuitesApiError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"]}
@@ -0,0 +1,130 @@
1
+ import {
2
+ SuitesApiError,
3
+ SuitesApiService
4
+ } from "./chunk-NIW2SFZZ.mjs";
5
+ import {
6
+ checkApiKey
7
+ } from "./chunk-DHJKJVY7.mjs";
8
+ import "./chunk-QH3WUSKF.mjs";
9
+ import "./chunk-LN33ZL4Z.mjs";
10
+ import "./chunk-URTD2WOC.mjs";
11
+
12
+ // src/cli/commands/suites/run.ts
13
+ import chalk from "chalk";
14
+ import ora from "ora";
15
+ var runSuiteCommand = async (id, options) => {
16
+ var _a, _b, _c, _d, _e, _f;
17
+ checkApiKey();
18
+ const service = new SuitesApiService();
19
+ const spinner = ora(`Scheduling suite run "${id}"...`).start();
20
+ try {
21
+ const result = await service.run(id);
22
+ spinner.succeed(
23
+ `Suite run scheduled: ${result.jobCount} job${result.jobCount !== 1 ? "s" : ""} (batch: ${result.batchRunId})`
24
+ );
25
+ if (result.skippedArchived.scenarios.length > 0 || result.skippedArchived.targets.length > 0) {
26
+ console.log();
27
+ console.log(chalk.yellow(" Skipped archived references:"));
28
+ if (result.skippedArchived.scenarios.length > 0) {
29
+ console.log(chalk.yellow(` Scenarios: ${result.skippedArchived.scenarios.join(", ")}`));
30
+ }
31
+ if (result.skippedArchived.targets.length > 0) {
32
+ console.log(chalk.yellow(` Targets: ${result.skippedArchived.targets.join(", ")}`));
33
+ }
34
+ }
35
+ if (options.format === "json") {
36
+ console.log(JSON.stringify(result, null, 2));
37
+ return;
38
+ }
39
+ if (!options.wait) {
40
+ console.log();
41
+ console.log(` ${chalk.gray("Batch Run ID:")} ${chalk.green(result.batchRunId)}`);
42
+ console.log(` ${chalk.gray("Jobs:")} ${result.jobCount}`);
43
+ console.log();
44
+ console.log(
45
+ chalk.gray(
46
+ `View results in the LangWatch dashboard under Simulations.`
47
+ )
48
+ );
49
+ console.log(
50
+ chalk.gray(
51
+ `Or re-run with ${chalk.cyan("--wait")} to poll for completion.`
52
+ )
53
+ );
54
+ return;
55
+ }
56
+ console.log();
57
+ const pollSpinner = ora("Waiting for suite run to complete...").start();
58
+ const apiKey = (_a = process.env.LANGWATCH_API_KEY) != null ? _a : "";
59
+ const endpoint = (_b = process.env.LANGWATCH_ENDPOINT) != null ? _b : "https://app.langwatch.ai";
60
+ let completed = false;
61
+ let lastStatus = "";
62
+ const startTime = Date.now();
63
+ const TIMEOUT_MS = 10 * 60 * 1e3;
64
+ while (!completed) {
65
+ if (Date.now() - startTime > TIMEOUT_MS) {
66
+ pollSpinner.fail("Suite run timed out after 10 minutes");
67
+ console.log(
68
+ chalk.yellow(
69
+ `Check results in the dashboard. Batch ID: ${result.batchRunId}`
70
+ )
71
+ );
72
+ process.exit(1);
73
+ }
74
+ await new Promise((resolve) => setTimeout(resolve, 3e3));
75
+ try {
76
+ const statusResponse = await fetch(
77
+ `${endpoint}/api/scenario-events?batchRunId=${encodeURIComponent(result.batchRunId)}`,
78
+ {
79
+ method: "GET",
80
+ headers: { "X-Auth-Token": apiKey }
81
+ }
82
+ );
83
+ if (statusResponse.ok) {
84
+ const statusData = await statusResponse.json();
85
+ const total = (_c = statusData.totalCount) != null ? _c : result.jobCount;
86
+ const completedCount = (_d = statusData.completedCount) != null ? _d : 0;
87
+ const passed = (_e = statusData.passedCount) != null ? _e : 0;
88
+ const failed = (_f = statusData.failedCount) != null ? _f : 0;
89
+ const newStatus = `${completedCount}/${total} completed (${passed} passed, ${failed} failed)`;
90
+ if (newStatus !== lastStatus) {
91
+ pollSpinner.text = `Running... ${newStatus}`;
92
+ lastStatus = newStatus;
93
+ }
94
+ if (completedCount >= total && total > 0) {
95
+ completed = true;
96
+ if (failed > 0) {
97
+ pollSpinner.warn(
98
+ `Suite run completed: ${passed}/${total} passed, ${chalk.red(`${failed} failed`)}`
99
+ );
100
+ } else {
101
+ pollSpinner.succeed(
102
+ `Suite run completed: ${chalk.green(`${passed}/${total} passed`)}`
103
+ );
104
+ }
105
+ }
106
+ }
107
+ } catch (e) {
108
+ }
109
+ }
110
+ console.log();
111
+ console.log(` ${chalk.gray("Batch Run ID:")} ${chalk.green(result.batchRunId)}`);
112
+ console.log();
113
+ } catch (error) {
114
+ spinner.fail();
115
+ if (error instanceof SuitesApiError) {
116
+ console.error(chalk.red(`Error: ${error.message}`));
117
+ } else {
118
+ console.error(
119
+ chalk.red(
120
+ `Error: ${error instanceof Error ? error.message : "Unknown error"}`
121
+ )
122
+ );
123
+ }
124
+ process.exit(1);
125
+ }
126
+ };
127
+ export {
128
+ runSuiteCommand
129
+ };
130
+ //# sourceMappingURL=run-WZ4CSMTP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/suites/run.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n SuitesApiService,\n SuitesApiError,\n} from \"@/client-sdk/services/suites\";\nimport { checkApiKey } from \"../../utils/apiKey\";\n\nexport const runSuiteCommand = async (\n id: string,\n options: { wait?: boolean; format?: string },\n): Promise<void> => {\n checkApiKey();\n\n const service = new SuitesApiService();\n const spinner = ora(`Scheduling suite run \"${id}\"...`).start();\n\n try {\n const result = await service.run(id);\n\n spinner.succeed(\n `Suite run scheduled: ${result.jobCount} job${result.jobCount !== 1 ? \"s\" : \"\"} (batch: ${result.batchRunId})`,\n );\n\n if (result.skippedArchived.scenarios.length > 0 || result.skippedArchived.targets.length > 0) {\n console.log();\n console.log(chalk.yellow(\" Skipped archived references:\"));\n if (result.skippedArchived.scenarios.length > 0) {\n console.log(chalk.yellow(` Scenarios: ${result.skippedArchived.scenarios.join(\", \")}`));\n }\n if (result.skippedArchived.targets.length > 0) {\n console.log(chalk.yellow(` Targets: ${result.skippedArchived.targets.join(\", \")}`));\n }\n }\n\n if (options.format === \"json\") {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n if (!options.wait) {\n console.log();\n console.log(` ${chalk.gray(\"Batch Run ID:\")} ${chalk.green(result.batchRunId)}`);\n console.log(` ${chalk.gray(\"Jobs:\")} ${result.jobCount}`);\n console.log();\n console.log(\n chalk.gray(\n `View results in the LangWatch dashboard under Simulations.`,\n ),\n );\n console.log(\n chalk.gray(\n `Or re-run with ${chalk.cyan(\"--wait\")} to poll for completion.`,\n ),\n );\n return;\n }\n\n // Poll for completion\n console.log();\n const pollSpinner = ora(\"Waiting for suite run to complete...\").start();\n\n const apiKey = process.env.LANGWATCH_API_KEY ?? \"\";\n const endpoint = process.env.LANGWATCH_ENDPOINT ?? \"https://app.langwatch.ai\";\n\n let completed = false;\n let lastStatus = \"\";\n const startTime = Date.now();\n const TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes\n\n while (!completed) {\n if (Date.now() - startTime > TIMEOUT_MS) {\n pollSpinner.fail(\"Suite run timed out after 10 minutes\");\n console.log(\n chalk.yellow(\n `Check results in the dashboard. Batch ID: ${result.batchRunId}`,\n ),\n );\n process.exit(1);\n }\n\n await new Promise((resolve) => setTimeout(resolve, 3000));\n\n try {\n // Poll the scenario events endpoint for batch status\n const statusResponse = await fetch(\n `${endpoint}/api/scenario-events?batchRunId=${encodeURIComponent(result.batchRunId)}`,\n {\n method: \"GET\",\n headers: { \"X-Auth-Token\": apiKey },\n },\n );\n\n if (statusResponse.ok) {\n const statusData = await statusResponse.json() as {\n totalCount?: number;\n completedCount?: number;\n passedCount?: number;\n failedCount?: number;\n status?: string;\n };\n\n const total = statusData.totalCount ?? result.jobCount;\n const completedCount = statusData.completedCount ?? 0;\n const passed = statusData.passedCount ?? 0;\n const failed = statusData.failedCount ?? 0;\n\n const newStatus = `${completedCount}/${total} completed (${passed} passed, ${failed} failed)`;\n if (newStatus !== lastStatus) {\n pollSpinner.text = `Running... ${newStatus}`;\n lastStatus = newStatus;\n }\n\n if (completedCount >= total && total > 0) {\n completed = true;\n if (failed > 0) {\n pollSpinner.warn(\n `Suite run completed: ${passed}/${total} passed, ${chalk.red(`${failed} failed`)}`,\n );\n } else {\n pollSpinner.succeed(\n `Suite run completed: ${chalk.green(`${passed}/${total} passed`)}`,\n );\n }\n }\n }\n } catch {\n // Polling error — continue waiting\n }\n }\n\n console.log();\n console.log(` ${chalk.gray(\"Batch Run ID:\")} ${chalk.green(result.batchRunId)}`);\n console.log();\n } catch (error) {\n spinner.fail();\n if (error instanceof SuitesApiError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,112 @@
1
+ import {
2
+ TracesApiError,
3
+ TracesApiService
4
+ } from "./chunk-KH64V3CL.mjs";
5
+ import {
6
+ formatRelativeTime,
7
+ formatTable
8
+ } from "./chunk-DTEKJ3UD.mjs";
9
+ import {
10
+ checkApiKey
11
+ } from "./chunk-DHJKJVY7.mjs";
12
+ import "./chunk-QH3WUSKF.mjs";
13
+ import "./chunk-LN33ZL4Z.mjs";
14
+ import "./chunk-URTD2WOC.mjs";
15
+
16
+ // src/cli/commands/traces/search.ts
17
+ import chalk from "chalk";
18
+ import ora from "ora";
19
+ var searchTracesCommand = async (options) => {
20
+ var _a;
21
+ checkApiKey();
22
+ const service = new TracesApiService();
23
+ const spinner = ora("Searching traces...").start();
24
+ try {
25
+ const now = Date.now();
26
+ const oneDayAgo = now - 24 * 60 * 60 * 1e3;
27
+ const startDate = options.startDate ? new Date(options.startDate).getTime() : oneDayAgo;
28
+ const endDate = options.endDate ? new Date(options.endDate).getTime() : now;
29
+ const pageSize = options.limit ? parseInt(options.limit, 10) : 25;
30
+ const result = await service.search({
31
+ query: options.query,
32
+ startDate,
33
+ endDate,
34
+ pageSize,
35
+ format: (_a = options.format) != null ? _a : "json"
36
+ });
37
+ const traces = result.traces;
38
+ spinner.succeed(
39
+ `Found ${result.pagination.totalHits} trace${result.pagination.totalHits !== 1 ? "s" : ""} (showing ${traces.length})`
40
+ );
41
+ if (traces.length === 0) {
42
+ console.log();
43
+ console.log(chalk.gray("No traces found matching your criteria."));
44
+ console.log(chalk.gray("Try widening your date range or search query."));
45
+ return;
46
+ }
47
+ if (options.format === "json") {
48
+ console.log(JSON.stringify(result, null, 2));
49
+ return;
50
+ }
51
+ console.log();
52
+ const tableData = traces.map((trace) => {
53
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i;
54
+ const traceId = (_c = (_b = (_a2 = trace.traceId) != null ? _a2 : trace.trace_id) != null ? _b : trace.id) != null ? _c : "\u2014";
55
+ const rawInput = (_e = (_d = trace.input) != null ? _d : trace.ComputedInput) != null ? _e : "\u2014";
56
+ const rawOutput = (_g = (_f = trace.output) != null ? _f : trace.ComputedOutput) != null ? _g : "\u2014";
57
+ const input = truncate(typeof rawInput === "string" ? rawInput : JSON.stringify(rawInput), 60);
58
+ const output = truncate(typeof rawOutput === "string" ? rawOutput : JSON.stringify(rawOutput), 40);
59
+ const timestamps = trace.timestamps;
60
+ const startedAt = (_i = (_h = timestamps == null ? void 0 : timestamps.started_at) != null ? _h : trace.StartedAt) != null ? _i : trace.startedAt;
61
+ const timeStr = startedAt ? formatRelativeTime(new Date(startedAt).toISOString()) : "\u2014";
62
+ return {
63
+ "Trace ID": traceId.substring(0, 20),
64
+ Input: input,
65
+ Output: output,
66
+ Time: timeStr
67
+ };
68
+ });
69
+ formatTable({
70
+ data: tableData,
71
+ headers: ["Trace ID", "Input", "Output", "Time"],
72
+ colorMap: {
73
+ "Trace ID": chalk.green,
74
+ Input: chalk.cyan
75
+ }
76
+ });
77
+ console.log();
78
+ if (result.pagination.totalHits > traces.length) {
79
+ console.log(
80
+ chalk.gray(
81
+ `Showing ${traces.length} of ${result.pagination.totalHits} total. Use --limit to see more.`
82
+ )
83
+ );
84
+ }
85
+ console.log(
86
+ chalk.gray(
87
+ `Use ${chalk.cyan("langwatch trace get <traceId>")} to view full details`
88
+ )
89
+ );
90
+ } catch (error) {
91
+ spinner.fail();
92
+ if (error instanceof TracesApiError) {
93
+ console.error(chalk.red(`Error: ${error.message}`));
94
+ } else {
95
+ console.error(
96
+ chalk.red(
97
+ `Error searching traces: ${error instanceof Error ? error.message : "Unknown error"}`
98
+ )
99
+ );
100
+ }
101
+ process.exit(1);
102
+ }
103
+ };
104
+ function truncate(str, maxLen) {
105
+ const cleaned = str.replace(/\n/g, " ").trim();
106
+ if (cleaned.length <= maxLen) return cleaned;
107
+ return cleaned.substring(0, maxLen - 1) + "\u2026";
108
+ }
109
+ export {
110
+ searchTracesCommand
111
+ };
112
+ //# sourceMappingURL=search-5B32YGSP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/traces/search.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n TracesApiService,\n TracesApiError,\n} from \"@/client-sdk/services/traces/traces-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable, formatRelativeTime } from \"../../utils/formatting\";\n\nexport const searchTracesCommand = async (options: {\n query?: string;\n startDate?: string;\n endDate?: string;\n limit?: string;\n format?: string;\n}): Promise<void> => {\n checkApiKey();\n\n const service = new TracesApiService();\n const spinner = ora(\"Searching traces...\").start();\n\n try {\n const now = Date.now();\n const oneDayAgo = now - 24 * 60 * 60 * 1000;\n\n const startDate = options.startDate\n ? new Date(options.startDate).getTime()\n : oneDayAgo;\n const endDate = options.endDate\n ? new Date(options.endDate).getTime()\n : now;\n const pageSize = options.limit ? parseInt(options.limit, 10) : 25;\n\n const result = await service.search({\n query: options.query,\n startDate,\n endDate,\n pageSize,\n format: (options.format as \"digest\" | \"json\") ?? \"json\",\n });\n\n const traces = result.traces as Array<Record<string, unknown>>;\n\n spinner.succeed(\n `Found ${result.pagination.totalHits} trace${result.pagination.totalHits !== 1 ? \"s\" : \"\"} (showing ${traces.length})`,\n );\n\n if (traces.length === 0) {\n console.log();\n console.log(chalk.gray(\"No traces found matching your criteria.\"));\n console.log(chalk.gray(\"Try widening your date range or search query.\"));\n return;\n }\n\n if (options.format === \"json\") {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n console.log();\n\n const tableData = traces.map((trace) => {\n const traceId = (trace.traceId ?? trace.trace_id ?? trace.id ?? \"—\") as string;\n const rawInput = trace.input ?? trace.ComputedInput ?? \"—\";\n const rawOutput = trace.output ?? trace.ComputedOutput ?? \"—\";\n const input = truncate(typeof rawInput === \"string\" ? rawInput : JSON.stringify(rawInput), 60);\n const output = truncate(typeof rawOutput === \"string\" ? rawOutput : JSON.stringify(rawOutput), 40);\n const timestamps = trace.timestamps as Record<string, unknown> | undefined;\n const startedAt = timestamps?.started_at ?? trace.StartedAt ?? trace.startedAt;\n const timeStr = startedAt ? formatRelativeTime(new Date(startedAt as number).toISOString()) : \"—\";\n\n return {\n \"Trace ID\": traceId.substring(0, 20),\n Input: input,\n Output: output,\n Time: timeStr,\n };\n });\n\n formatTable({\n data: tableData,\n headers: [\"Trace ID\", \"Input\", \"Output\", \"Time\"],\n colorMap: {\n \"Trace ID\": chalk.green,\n Input: chalk.cyan,\n },\n });\n\n console.log();\n if (result.pagination.totalHits > traces.length) {\n console.log(\n chalk.gray(\n `Showing ${traces.length} of ${result.pagination.totalHits} total. Use --limit to see more.`,\n ),\n );\n }\n console.log(\n chalk.gray(\n `Use ${chalk.cyan(\"langwatch trace get <traceId>\")} to view full details`,\n ),\n );\n } catch (error) {\n spinner.fail();\n if (error instanceof TracesApiError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error searching traces: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n ),\n );\n }\n process.exit(1);\n }\n};\n\nfunction truncate(str: string, maxLen: number): string {\n const cleaned = str.replace(/\\n/g, \" \").trim();\n if (cleaned.length <= maxLen) return cleaned;\n return cleaned.substring(0, maxLen - 1) + \"…\";\n}\n"],"mappings":"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","names":["_a"]}
@@ -0,0 +1,112 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+
4
+ var _chunkWLMXMXHEjs = require('./chunk-WLMXMXHE.js');
5
+
6
+
7
+
8
+ var _chunkCLYXJJ6Cjs = require('./chunk-CLYXJJ6C.js');
9
+
10
+
11
+ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
12
+ require('./chunk-2BJPLPLU.js');
13
+ require('./chunk-D2FHOR76.js');
14
+ require('./chunk-OHM7JUMR.js');
15
+
16
+ // src/cli/commands/traces/search.ts
17
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
18
+ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
19
+ var searchTracesCommand = async (options) => {
20
+ var _a;
21
+ _chunkF6E4XQQUjs.checkApiKey.call(void 0, );
22
+ const service = new (0, _chunkWLMXMXHEjs.TracesApiService)();
23
+ const spinner = _ora2.default.call(void 0, "Searching traces...").start();
24
+ try {
25
+ const now = Date.now();
26
+ const oneDayAgo = now - 24 * 60 * 60 * 1e3;
27
+ const startDate = options.startDate ? new Date(options.startDate).getTime() : oneDayAgo;
28
+ const endDate = options.endDate ? new Date(options.endDate).getTime() : now;
29
+ const pageSize = options.limit ? parseInt(options.limit, 10) : 25;
30
+ const result = await service.search({
31
+ query: options.query,
32
+ startDate,
33
+ endDate,
34
+ pageSize,
35
+ format: (_a = options.format) != null ? _a : "json"
36
+ });
37
+ const traces = result.traces;
38
+ spinner.succeed(
39
+ `Found ${result.pagination.totalHits} trace${result.pagination.totalHits !== 1 ? "s" : ""} (showing ${traces.length})`
40
+ );
41
+ if (traces.length === 0) {
42
+ console.log();
43
+ console.log(_chalk2.default.gray("No traces found matching your criteria."));
44
+ console.log(_chalk2.default.gray("Try widening your date range or search query."));
45
+ return;
46
+ }
47
+ if (options.format === "json") {
48
+ console.log(JSON.stringify(result, null, 2));
49
+ return;
50
+ }
51
+ console.log();
52
+ const tableData = traces.map((trace) => {
53
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i;
54
+ const traceId = (_c = (_b = (_a2 = trace.traceId) != null ? _a2 : trace.trace_id) != null ? _b : trace.id) != null ? _c : "\u2014";
55
+ const rawInput = (_e = (_d = trace.input) != null ? _d : trace.ComputedInput) != null ? _e : "\u2014";
56
+ const rawOutput = (_g = (_f = trace.output) != null ? _f : trace.ComputedOutput) != null ? _g : "\u2014";
57
+ const input = truncate(typeof rawInput === "string" ? rawInput : JSON.stringify(rawInput), 60);
58
+ const output = truncate(typeof rawOutput === "string" ? rawOutput : JSON.stringify(rawOutput), 40);
59
+ const timestamps = trace.timestamps;
60
+ const startedAt = (_i = (_h = timestamps == null ? void 0 : timestamps.started_at) != null ? _h : trace.StartedAt) != null ? _i : trace.startedAt;
61
+ const timeStr = startedAt ? _chunkCLYXJJ6Cjs.formatRelativeTime.call(void 0, new Date(startedAt).toISOString()) : "\u2014";
62
+ return {
63
+ "Trace ID": traceId.substring(0, 20),
64
+ Input: input,
65
+ Output: output,
66
+ Time: timeStr
67
+ };
68
+ });
69
+ _chunkCLYXJJ6Cjs.formatTable.call(void 0, {
70
+ data: tableData,
71
+ headers: ["Trace ID", "Input", "Output", "Time"],
72
+ colorMap: {
73
+ "Trace ID": _chalk2.default.green,
74
+ Input: _chalk2.default.cyan
75
+ }
76
+ });
77
+ console.log();
78
+ if (result.pagination.totalHits > traces.length) {
79
+ console.log(
80
+ _chalk2.default.gray(
81
+ `Showing ${traces.length} of ${result.pagination.totalHits} total. Use --limit to see more.`
82
+ )
83
+ );
84
+ }
85
+ console.log(
86
+ _chalk2.default.gray(
87
+ `Use ${_chalk2.default.cyan("langwatch trace get <traceId>")} to view full details`
88
+ )
89
+ );
90
+ } catch (error) {
91
+ spinner.fail();
92
+ if (error instanceof _chunkWLMXMXHEjs.TracesApiError) {
93
+ console.error(_chalk2.default.red(`Error: ${error.message}`));
94
+ } else {
95
+ console.error(
96
+ _chalk2.default.red(
97
+ `Error searching traces: ${error instanceof Error ? error.message : "Unknown error"}`
98
+ )
99
+ );
100
+ }
101
+ process.exit(1);
102
+ }
103
+ };
104
+ function truncate(str, maxLen) {
105
+ const cleaned = str.replace(/\n/g, " ").trim();
106
+ if (cleaned.length <= maxLen) return cleaned;
107
+ return cleaned.substring(0, maxLen - 1) + "\u2026";
108
+ }
109
+
110
+
111
+ exports.searchTracesCommand = searchTracesCommand;
112
+ //# sourceMappingURL=search-J5GDX5JK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/search-J5GDX5JK.js","../src/cli/commands/traces/search.ts"],"names":["_a"],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/search-J5GDX5JK.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n TracesApiService,\n TracesApiError,\n} from \"@/client-sdk/services/traces/traces-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\nimport { formatTable, formatRelativeTime } from \"../../utils/formatting\";\n\nexport const searchTracesCommand = async (options: {\n query?: string;\n startDate?: string;\n endDate?: string;\n limit?: string;\n format?: string;\n}): Promise<void> => {\n checkApiKey();\n\n const service = new TracesApiService();\n const spinner = ora(\"Searching traces...\").start();\n\n try {\n const now = Date.now();\n const oneDayAgo = now - 24 * 60 * 60 * 1000;\n\n const startDate = options.startDate\n ? new Date(options.startDate).getTime()\n : oneDayAgo;\n const endDate = options.endDate\n ? new Date(options.endDate).getTime()\n : now;\n const pageSize = options.limit ? parseInt(options.limit, 10) : 25;\n\n const result = await service.search({\n query: options.query,\n startDate,\n endDate,\n pageSize,\n format: (options.format as \"digest\" | \"json\") ?? \"json\",\n });\n\n const traces = result.traces as Array<Record<string, unknown>>;\n\n spinner.succeed(\n `Found ${result.pagination.totalHits} trace${result.pagination.totalHits !== 1 ? \"s\" : \"\"} (showing ${traces.length})`,\n );\n\n if (traces.length === 0) {\n console.log();\n console.log(chalk.gray(\"No traces found matching your criteria.\"));\n console.log(chalk.gray(\"Try widening your date range or search query.\"));\n return;\n }\n\n if (options.format === \"json\") {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n console.log();\n\n const tableData = traces.map((trace) => {\n const traceId = (trace.traceId ?? trace.trace_id ?? trace.id ?? \"—\") as string;\n const rawInput = trace.input ?? trace.ComputedInput ?? \"—\";\n const rawOutput = trace.output ?? trace.ComputedOutput ?? \"—\";\n const input = truncate(typeof rawInput === \"string\" ? rawInput : JSON.stringify(rawInput), 60);\n const output = truncate(typeof rawOutput === \"string\" ? rawOutput : JSON.stringify(rawOutput), 40);\n const timestamps = trace.timestamps as Record<string, unknown> | undefined;\n const startedAt = timestamps?.started_at ?? trace.StartedAt ?? trace.startedAt;\n const timeStr = startedAt ? formatRelativeTime(new Date(startedAt as number).toISOString()) : \"—\";\n\n return {\n \"Trace ID\": traceId.substring(0, 20),\n Input: input,\n Output: output,\n Time: timeStr,\n };\n });\n\n formatTable({\n data: tableData,\n headers: [\"Trace ID\", \"Input\", \"Output\", \"Time\"],\n colorMap: {\n \"Trace ID\": chalk.green,\n Input: chalk.cyan,\n },\n });\n\n console.log();\n if (result.pagination.totalHits > traces.length) {\n console.log(\n chalk.gray(\n `Showing ${traces.length} of ${result.pagination.totalHits} total. Use --limit to see more.`,\n ),\n );\n }\n console.log(\n chalk.gray(\n `Use ${chalk.cyan(\"langwatch trace get <traceId>\")} to view full details`,\n ),\n );\n } catch (error) {\n spinner.fail();\n if (error instanceof TracesApiError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error searching traces: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n ),\n );\n }\n process.exit(1);\n }\n};\n\nfunction truncate(str: string, maxLen: number): string {\n const cleaned = str.replace(/\\n/g, \" \").trim();\n if (cleaned.length <= maxLen) return cleaned;\n return cleaned.substring(0, maxLen - 1) + \"…\";\n}\n"]}
@@ -0,0 +1,62 @@
1
+ import {
2
+ ModelProvidersApiError,
3
+ ModelProvidersApiService
4
+ } from "./chunk-2OHGLTXZ.mjs";
5
+ import {
6
+ checkApiKey
7
+ } from "./chunk-DHJKJVY7.mjs";
8
+ import "./chunk-QH3WUSKF.mjs";
9
+ import "./chunk-LN33ZL4Z.mjs";
10
+ import {
11
+ __spreadValues
12
+ } from "./chunk-URTD2WOC.mjs";
13
+
14
+ // src/cli/commands/model-providers/set.ts
15
+ import chalk from "chalk";
16
+ import ora from "ora";
17
+ var setModelProviderCommand = async (provider, options) => {
18
+ var _a, _b, _c, _d;
19
+ checkApiKey();
20
+ const service = new ModelProvidersApiService();
21
+ const spinner = ora(`Configuring model provider "${provider}"...`).start();
22
+ try {
23
+ const customKeys = {};
24
+ if (options.apiKey) {
25
+ const keyFieldMap = {
26
+ openai: "OPENAI_API_KEY",
27
+ anthropic: "ANTHROPIC_API_KEY",
28
+ azure: "AZURE_API_KEY",
29
+ google: "GOOGLE_API_KEY",
30
+ groq: "GROQ_API_KEY",
31
+ cohere: "COHERE_API_KEY"
32
+ };
33
+ const keyField = (_a = keyFieldMap[provider]) != null ? _a : `${provider.toUpperCase()}_API_KEY`;
34
+ customKeys[keyField] = options.apiKey;
35
+ }
36
+ await service.set(provider, __spreadValues(__spreadValues({
37
+ enabled: (_b = options.enabled) != null ? _b : true
38
+ }, Object.keys(customKeys).length > 0 && { customKeys }), options.defaultModel && { defaultModel: options.defaultModel }));
39
+ spinner.succeed(
40
+ `Configured model provider "${chalk.cyan(provider)}"`
41
+ );
42
+ if (options.format === "json") {
43
+ console.log(JSON.stringify({ provider, enabled: (_c = options.enabled) != null ? _c : true, defaultModel: (_d = options.defaultModel) != null ? _d : null }, null, 2));
44
+ }
45
+ } catch (error) {
46
+ spinner.fail();
47
+ if (error instanceof ModelProvidersApiError) {
48
+ console.error(chalk.red(`Error: ${error.message}`));
49
+ } else {
50
+ console.error(
51
+ chalk.red(
52
+ `Error configuring model provider: ${error instanceof Error ? error.message : "Unknown error"}`
53
+ )
54
+ );
55
+ }
56
+ process.exit(1);
57
+ }
58
+ };
59
+ export {
60
+ setModelProviderCommand
61
+ };
62
+ //# sourceMappingURL=set-2DYJNVS5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/model-providers/set.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport {\n ModelProvidersApiService,\n ModelProvidersApiError,\n} from \"@/client-sdk/services/model-providers/model-providers-api.service\";\nimport { checkApiKey } from \"../../utils/apiKey\";\n\nexport const setModelProviderCommand = async (\n provider: string,\n options: { enabled?: boolean; apiKey?: string; defaultModel?: string; format?: string },\n): Promise<void> => {\n checkApiKey();\n\n const service = new ModelProvidersApiService();\n const spinner = ora(`Configuring model provider \"${provider}\"...`).start();\n\n try {\n const customKeys: Record<string, string> = {};\n if (options.apiKey) {\n // Map common provider names to their expected key field\n const keyFieldMap: Record<string, string> = {\n openai: \"OPENAI_API_KEY\",\n anthropic: \"ANTHROPIC_API_KEY\",\n azure: \"AZURE_API_KEY\",\n google: \"GOOGLE_API_KEY\",\n groq: \"GROQ_API_KEY\",\n cohere: \"COHERE_API_KEY\",\n };\n const keyField = keyFieldMap[provider] ?? `${provider.toUpperCase()}_API_KEY`;\n customKeys[keyField] = options.apiKey;\n }\n\n await service.set(provider, {\n enabled: options.enabled ?? true,\n ...(Object.keys(customKeys).length > 0 && { customKeys }),\n ...(options.defaultModel && { defaultModel: options.defaultModel }),\n });\n\n spinner.succeed(\n `Configured model provider \"${chalk.cyan(provider)}\"`,\n );\n\n if (options.format === \"json\") {\n console.log(JSON.stringify({ provider, enabled: options.enabled ?? true, defaultModel: options.defaultModel ?? null }, null, 2));\n }\n } catch (error) {\n spinner.fail();\n if (error instanceof ModelProvidersApiError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error configuring model provider: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAOT,IAAM,0BAA0B,OACrC,UACA,YACkB;AAXpB;AAYE,cAAY;AAEZ,QAAM,UAAU,IAAI,yBAAyB;AAC7C,QAAM,UAAU,IAAI,+BAA+B,QAAQ,MAAM,EAAE,MAAM;AAEzE,MAAI;AACF,UAAM,aAAqC,CAAC;AAC5C,QAAI,QAAQ,QAAQ;AAElB,YAAM,cAAsC;AAAA,QAC1C,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AACA,YAAM,YAAW,iBAAY,QAAQ,MAApB,YAAyB,GAAG,SAAS,YAAY,CAAC;AACnE,iBAAW,QAAQ,IAAI,QAAQ;AAAA,IACjC;AAEA,UAAM,QAAQ,IAAI,UAAU;AAAA,MAC1B,UAAS,aAAQ,YAAR,YAAmB;AAAA,OACxB,OAAO,KAAK,UAAU,EAAE,SAAS,KAAK,EAAE,WAAW,IACnD,QAAQ,gBAAgB,EAAE,cAAc,QAAQ,aAAa,EAClE;AAED,YAAQ;AAAA,MACN,8BAA8B,MAAM,KAAK,QAAQ,CAAC;AAAA,IACpD;AAEA,QAAI,QAAQ,WAAW,QAAQ;AAC7B,cAAQ,IAAI,KAAK,UAAU,EAAE,UAAU,UAAS,aAAQ,YAAR,YAAmB,MAAM,eAAc,aAAQ,iBAAR,YAAwB,KAAK,GAAG,MAAM,CAAC,CAAC;AAAA,IACjI;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,KAAK;AACb,QAAI,iBAAiB,wBAAwB;AAC3C,cAAQ,MAAM,MAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,IACpD,OAAO;AACL,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ,qCAAqC,iBAAiB,QAAQ,MAAM,UAAU,eAAe;AAAA,QAC/F;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}