@agentuity/cli 1.0.22 → 1.0.24

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 (404) hide show
  1. package/dist/auth.d.ts.map +1 -1
  2. package/dist/auth.js +7 -0
  3. package/dist/auth.js.map +1 -1
  4. package/dist/cache/resource-region.d.ts +1 -1
  5. package/dist/cache/resource-region.d.ts.map +1 -1
  6. package/dist/cache/resource-region.js.map +1 -1
  7. package/dist/cmd/ai/claude-code/install.d.ts.map +1 -1
  8. package/dist/cmd/ai/claude-code/install.js +0 -1
  9. package/dist/cmd/ai/claude-code/install.js.map +1 -1
  10. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +4 -2
  11. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +1 -1
  12. package/dist/cmd/build/vite/public-asset-path-plugin.js +18 -4
  13. package/dist/cmd/build/vite/public-asset-path-plugin.js.map +1 -1
  14. package/dist/cmd/cloud/db/index.d.ts.map +1 -1
  15. package/dist/cmd/cloud/db/index.js +2 -0
  16. package/dist/cmd/cloud/db/index.js.map +1 -1
  17. package/dist/cmd/cloud/db/stats.d.ts +3 -0
  18. package/dist/cmd/cloud/db/stats.d.ts.map +1 -0
  19. package/dist/cmd/cloud/db/stats.js +66 -0
  20. package/dist/cmd/cloud/db/stats.js.map +1 -0
  21. package/dist/cmd/cloud/email/create.d.ts +3 -0
  22. package/dist/cmd/cloud/email/create.d.ts.map +1 -0
  23. package/dist/cmd/cloud/email/create.js +66 -0
  24. package/dist/cmd/cloud/email/create.js.map +1 -0
  25. package/dist/cmd/cloud/email/delete.d.ts +3 -0
  26. package/dist/cmd/cloud/email/delete.d.ts.map +1 -0
  27. package/dist/cmd/cloud/email/delete.js +47 -0
  28. package/dist/cmd/cloud/email/delete.js.map +1 -0
  29. package/dist/cmd/cloud/email/destination/delete.d.ts +3 -0
  30. package/dist/cmd/cloud/email/destination/delete.d.ts.map +1 -0
  31. package/dist/cmd/cloud/email/destination/delete.js +54 -0
  32. package/dist/cmd/cloud/email/destination/delete.js.map +1 -0
  33. package/dist/cmd/cloud/email/destination/index.d.ts +3 -0
  34. package/dist/cmd/cloud/email/destination/index.d.ts.map +1 -0
  35. package/dist/cmd/cloud/email/destination/index.js +14 -0
  36. package/dist/cmd/cloud/email/destination/index.js.map +1 -0
  37. package/dist/cmd/cloud/email/destination/list.d.ts +3 -0
  38. package/dist/cmd/cloud/email/destination/list.d.ts.map +1 -0
  39. package/dist/cmd/cloud/email/destination/list.js +39 -0
  40. package/dist/cmd/cloud/email/destination/list.js.map +1 -0
  41. package/dist/cmd/cloud/email/destination/schemas.d.ts +9 -0
  42. package/dist/cmd/cloud/email/destination/schemas.d.ts.map +1 -0
  43. package/dist/cmd/cloud/email/destination/schemas.js +9 -0
  44. package/dist/cmd/cloud/email/destination/schemas.js.map +1 -0
  45. package/dist/cmd/cloud/email/destination/url.d.ts +3 -0
  46. package/dist/cmd/cloud/email/destination/url.d.ts.map +1 -0
  47. package/dist/cmd/cloud/email/destination/url.js +65 -0
  48. package/dist/cmd/cloud/email/destination/url.js.map +1 -0
  49. package/dist/cmd/cloud/email/get.d.ts +3 -0
  50. package/dist/cmd/cloud/email/get.d.ts.map +1 -0
  51. package/dist/cmd/cloud/email/get.js +43 -0
  52. package/dist/cmd/cloud/email/get.js.map +1 -0
  53. package/dist/cmd/cloud/email/inbound/get.d.ts +3 -0
  54. package/dist/cmd/cloud/email/inbound/get.d.ts.map +1 -0
  55. package/dist/cmd/cloud/email/inbound/get.js +43 -0
  56. package/dist/cmd/cloud/email/inbound/get.js.map +1 -0
  57. package/dist/cmd/cloud/email/inbound/index.d.ts +3 -0
  58. package/dist/cmd/cloud/email/inbound/index.d.ts.map +1 -0
  59. package/dist/cmd/cloud/email/inbound/index.js +12 -0
  60. package/dist/cmd/cloud/email/inbound/index.js.map +1 -0
  61. package/dist/cmd/cloud/email/inbound/list.d.ts +3 -0
  62. package/dist/cmd/cloud/email/inbound/list.d.ts.map +1 -0
  63. package/dist/cmd/cloud/email/inbound/list.js +41 -0
  64. package/dist/cmd/cloud/email/inbound/list.js.map +1 -0
  65. package/dist/cmd/cloud/email/inbound/schemas.d.ts +13 -0
  66. package/dist/cmd/cloud/email/inbound/schemas.d.ts.map +1 -0
  67. package/dist/cmd/cloud/email/inbound/schemas.js +13 -0
  68. package/dist/cmd/cloud/email/inbound/schemas.js.map +1 -0
  69. package/dist/cmd/cloud/email/index.d.ts +3 -0
  70. package/dist/cmd/cloud/email/index.d.ts.map +1 -0
  71. package/dist/cmd/cloud/email/index.js +30 -0
  72. package/dist/cmd/cloud/email/index.js.map +1 -0
  73. package/dist/cmd/cloud/email/list.d.ts +3 -0
  74. package/dist/cmd/cloud/email/list.d.ts.map +1 -0
  75. package/dist/cmd/cloud/email/list.js +44 -0
  76. package/dist/cmd/cloud/email/list.js.map +1 -0
  77. package/dist/cmd/cloud/email/outbound/get.d.ts +3 -0
  78. package/dist/cmd/cloud/email/outbound/get.d.ts.map +1 -0
  79. package/dist/cmd/cloud/email/outbound/get.js +45 -0
  80. package/dist/cmd/cloud/email/outbound/get.js.map +1 -0
  81. package/dist/cmd/cloud/email/outbound/index.d.ts +3 -0
  82. package/dist/cmd/cloud/email/outbound/index.d.ts.map +1 -0
  83. package/dist/cmd/cloud/email/outbound/index.js +12 -0
  84. package/dist/cmd/cloud/email/outbound/index.js.map +1 -0
  85. package/dist/cmd/cloud/email/outbound/list.d.ts +3 -0
  86. package/dist/cmd/cloud/email/outbound/list.d.ts.map +1 -0
  87. package/dist/cmd/cloud/email/outbound/list.js +43 -0
  88. package/dist/cmd/cloud/email/outbound/list.js.map +1 -0
  89. package/dist/cmd/cloud/email/outbound/schemas.d.ts +15 -0
  90. package/dist/cmd/cloud/email/outbound/schemas.d.ts.map +1 -0
  91. package/dist/cmd/cloud/email/outbound/schemas.js +15 -0
  92. package/dist/cmd/cloud/email/outbound/schemas.js.map +1 -0
  93. package/dist/cmd/cloud/email/send.d.ts +3 -0
  94. package/dist/cmd/cloud/email/send.d.ts.map +1 -0
  95. package/dist/cmd/cloud/email/send.js +75 -0
  96. package/dist/cmd/cloud/email/send.js.map +1 -0
  97. package/dist/cmd/cloud/email/stats.d.ts +3 -0
  98. package/dist/cmd/cloud/email/stats.d.ts.map +1 -0
  99. package/dist/cmd/cloud/email/stats.js +65 -0
  100. package/dist/cmd/cloud/email/stats.js.map +1 -0
  101. package/dist/cmd/cloud/email/util.d.ts +23 -0
  102. package/dist/cmd/cloud/email/util.d.ts.map +1 -0
  103. package/dist/cmd/cloud/email/util.js +42 -0
  104. package/dist/cmd/cloud/email/util.js.map +1 -0
  105. package/dist/cmd/cloud/index.d.ts.map +1 -1
  106. package/dist/cmd/cloud/index.js +10 -0
  107. package/dist/cmd/cloud/index.js.map +1 -1
  108. package/dist/cmd/cloud/queue/get.js +4 -4
  109. package/dist/cmd/cloud/queue/get.js.map +1 -1
  110. package/dist/cmd/cloud/queue/receive.d.ts.map +1 -1
  111. package/dist/cmd/cloud/queue/receive.js +11 -7
  112. package/dist/cmd/cloud/queue/receive.js.map +1 -1
  113. package/dist/cmd/cloud/queue/stats.js +3 -3
  114. package/dist/cmd/cloud/queue/stats.js.map +1 -1
  115. package/dist/cmd/cloud/region-lookup.d.ts +1 -1
  116. package/dist/cmd/cloud/region-lookup.d.ts.map +1 -1
  117. package/dist/cmd/cloud/region-lookup.js +44 -2
  118. package/dist/cmd/cloud/region-lookup.js.map +1 -1
  119. package/dist/cmd/cloud/sandbox/checkpoint/create.d.ts +3 -0
  120. package/dist/cmd/cloud/sandbox/checkpoint/create.d.ts.map +1 -0
  121. package/dist/cmd/cloud/sandbox/checkpoint/create.js +71 -0
  122. package/dist/cmd/cloud/sandbox/checkpoint/create.js.map +1 -0
  123. package/dist/cmd/cloud/sandbox/checkpoint/delete.d.ts +3 -0
  124. package/dist/cmd/cloud/sandbox/checkpoint/delete.d.ts.map +1 -0
  125. package/dist/cmd/cloud/sandbox/checkpoint/delete.js +78 -0
  126. package/dist/cmd/cloud/sandbox/checkpoint/delete.js.map +1 -0
  127. package/dist/cmd/cloud/sandbox/checkpoint/index.d.ts +2 -0
  128. package/dist/cmd/cloud/sandbox/checkpoint/index.d.ts.map +1 -0
  129. package/dist/cmd/cloud/sandbox/checkpoint/index.js +33 -0
  130. package/dist/cmd/cloud/sandbox/checkpoint/index.js.map +1 -0
  131. package/dist/cmd/cloud/sandbox/checkpoint/list.d.ts +3 -0
  132. package/dist/cmd/cloud/sandbox/checkpoint/list.d.ts.map +1 -0
  133. package/dist/cmd/cloud/sandbox/checkpoint/list.js +72 -0
  134. package/dist/cmd/cloud/sandbox/checkpoint/list.js.map +1 -0
  135. package/dist/cmd/cloud/sandbox/checkpoint/restore.d.ts +3 -0
  136. package/dist/cmd/cloud/sandbox/checkpoint/restore.d.ts.map +1 -0
  137. package/dist/cmd/cloud/sandbox/checkpoint/restore.js +61 -0
  138. package/dist/cmd/cloud/sandbox/checkpoint/restore.js.map +1 -0
  139. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
  140. package/dist/cmd/cloud/sandbox/get.js +5 -3
  141. package/dist/cmd/cloud/sandbox/get.js.map +1 -1
  142. package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -1
  143. package/dist/cmd/cloud/sandbox/index.js +4 -0
  144. package/dist/cmd/cloud/sandbox/index.js.map +1 -1
  145. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts +7 -0
  146. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -1
  147. package/dist/cmd/cloud/sandbox/snapshot/build.js +55 -37
  148. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
  149. package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts.map +1 -1
  150. package/dist/cmd/cloud/sandbox/snapshot/generate.js +5 -1
  151. package/dist/cmd/cloud/sandbox/snapshot/generate.js.map +1 -1
  152. package/dist/cmd/cloud/sandbox/snapshot/get.js +3 -3
  153. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
  154. package/dist/cmd/cloud/sandbox/stats.d.ts +3 -0
  155. package/dist/cmd/cloud/sandbox/stats.d.ts.map +1 -0
  156. package/dist/cmd/cloud/sandbox/stats.js +72 -0
  157. package/dist/cmd/cloud/sandbox/stats.js.map +1 -0
  158. package/dist/cmd/cloud/schedule/create.d.ts +3 -0
  159. package/dist/cmd/cloud/schedule/create.d.ts.map +1 -0
  160. package/dist/cmd/cloud/schedule/create.js +71 -0
  161. package/dist/cmd/cloud/schedule/create.js.map +1 -0
  162. package/dist/cmd/cloud/schedule/delete.d.ts +3 -0
  163. package/dist/cmd/cloud/schedule/delete.d.ts.map +1 -0
  164. package/dist/cmd/cloud/schedule/delete.js +37 -0
  165. package/dist/cmd/cloud/schedule/delete.js.map +1 -0
  166. package/dist/cmd/cloud/schedule/delivery/get.d.ts +3 -0
  167. package/dist/cmd/cloud/schedule/delivery/get.d.ts.map +1 -0
  168. package/dist/cmd/cloud/schedule/delivery/get.js +77 -0
  169. package/dist/cmd/cloud/schedule/delivery/get.js.map +1 -0
  170. package/dist/cmd/cloud/schedule/delivery/index.d.ts +3 -0
  171. package/dist/cmd/cloud/schedule/delivery/index.d.ts.map +1 -0
  172. package/dist/cmd/cloud/schedule/delivery/index.js +23 -0
  173. package/dist/cmd/cloud/schedule/delivery/index.js.map +1 -0
  174. package/dist/cmd/cloud/schedule/delivery/list.d.ts +3 -0
  175. package/dist/cmd/cloud/schedule/delivery/list.d.ts.map +1 -0
  176. package/dist/cmd/cloud/schedule/delivery/list.js +66 -0
  177. package/dist/cmd/cloud/schedule/delivery/list.js.map +1 -0
  178. package/dist/cmd/cloud/schedule/destination/create.d.ts +3 -0
  179. package/dist/cmd/cloud/schedule/destination/create.d.ts.map +1 -0
  180. package/dist/cmd/cloud/schedule/destination/create.js +100 -0
  181. package/dist/cmd/cloud/schedule/destination/create.js.map +1 -0
  182. package/dist/cmd/cloud/schedule/destination/delete.d.ts +3 -0
  183. package/dist/cmd/cloud/schedule/destination/delete.d.ts.map +1 -0
  184. package/dist/cmd/cloud/schedule/destination/delete.js +40 -0
  185. package/dist/cmd/cloud/schedule/destination/delete.js.map +1 -0
  186. package/dist/cmd/cloud/schedule/destination/get.d.ts +3 -0
  187. package/dist/cmd/cloud/schedule/destination/get.d.ts.map +1 -0
  188. package/dist/cmd/cloud/schedule/destination/get.js +59 -0
  189. package/dist/cmd/cloud/schedule/destination/get.js.map +1 -0
  190. package/dist/cmd/cloud/schedule/destination/index.d.ts +3 -0
  191. package/dist/cmd/cloud/schedule/destination/index.d.ts.map +1 -0
  192. package/dist/cmd/cloud/schedule/destination/index.js +26 -0
  193. package/dist/cmd/cloud/schedule/destination/index.js.map +1 -0
  194. package/dist/cmd/cloud/schedule/destination/list.d.ts +3 -0
  195. package/dist/cmd/cloud/schedule/destination/list.d.ts.map +1 -0
  196. package/dist/cmd/cloud/schedule/destination/list.js +62 -0
  197. package/dist/cmd/cloud/schedule/destination/list.js.map +1 -0
  198. package/dist/cmd/cloud/schedule/get.d.ts +3 -0
  199. package/dist/cmd/cloud/schedule/get.d.ts.map +1 -0
  200. package/dist/cmd/cloud/schedule/get.js +80 -0
  201. package/dist/cmd/cloud/schedule/get.js.map +1 -0
  202. package/dist/cmd/cloud/schedule/index.d.ts +3 -0
  203. package/dist/cmd/cloud/schedule/index.d.ts.map +1 -0
  204. package/dist/cmd/cloud/schedule/index.js +37 -0
  205. package/dist/cmd/cloud/schedule/index.js.map +1 -0
  206. package/dist/cmd/cloud/schedule/list.d.ts +3 -0
  207. package/dist/cmd/cloud/schedule/list.d.ts.map +1 -0
  208. package/dist/cmd/cloud/schedule/list.js +59 -0
  209. package/dist/cmd/cloud/schedule/list.js.map +1 -0
  210. package/dist/cmd/cloud/schedule/stats.d.ts +3 -0
  211. package/dist/cmd/cloud/schedule/stats.d.ts.map +1 -0
  212. package/dist/cmd/cloud/schedule/stats.js +64 -0
  213. package/dist/cmd/cloud/schedule/stats.js.map +1 -0
  214. package/dist/cmd/cloud/schedule/update.d.ts +3 -0
  215. package/dist/cmd/cloud/schedule/update.d.ts.map +1 -0
  216. package/dist/cmd/cloud/schedule/update.js +65 -0
  217. package/dist/cmd/cloud/schedule/update.js.map +1 -0
  218. package/dist/cmd/cloud/schedule/util.d.ts +10 -0
  219. package/dist/cmd/cloud/schedule/util.d.ts.map +1 -0
  220. package/dist/cmd/cloud/schedule/util.js +17 -0
  221. package/dist/cmd/cloud/schedule/util.js.map +1 -0
  222. package/dist/cmd/cloud/services/index.d.ts +3 -0
  223. package/dist/cmd/cloud/services/index.d.ts.map +1 -0
  224. package/dist/cmd/cloud/services/index.js +10 -0
  225. package/dist/cmd/cloud/services/index.js.map +1 -0
  226. package/dist/cmd/cloud/services/stats.d.ts +3 -0
  227. package/dist/cmd/cloud/services/stats.d.ts.map +1 -0
  228. package/dist/cmd/cloud/services/stats.js +153 -0
  229. package/dist/cmd/cloud/services/stats.js.map +1 -0
  230. package/dist/cmd/cloud/stream/index.d.ts.map +1 -1
  231. package/dist/cmd/cloud/stream/index.js +2 -1
  232. package/dist/cmd/cloud/stream/index.js.map +1 -1
  233. package/dist/cmd/cloud/stream/stats.d.ts +3 -0
  234. package/dist/cmd/cloud/stream/stats.d.ts.map +1 -0
  235. package/dist/cmd/cloud/stream/stats.js +64 -0
  236. package/dist/cmd/cloud/stream/stats.js.map +1 -0
  237. package/dist/cmd/cloud/task/create.d.ts +3 -0
  238. package/dist/cmd/cloud/task/create.d.ts.map +1 -0
  239. package/dist/cmd/cloud/task/create.js +107 -0
  240. package/dist/cmd/cloud/task/create.js.map +1 -0
  241. package/dist/cmd/cloud/task/get.d.ts +3 -0
  242. package/dist/cmd/cloud/task/get.d.ts.map +1 -0
  243. package/dist/cmd/cloud/task/get.js +125 -0
  244. package/dist/cmd/cloud/task/get.js.map +1 -0
  245. package/dist/cmd/cloud/task/index.d.ts +3 -0
  246. package/dist/cmd/cloud/task/index.d.ts.map +1 -0
  247. package/dist/cmd/cloud/task/index.js +34 -0
  248. package/dist/cmd/cloud/task/index.js.map +1 -0
  249. package/dist/cmd/cloud/task/list.d.ts +3 -0
  250. package/dist/cmd/cloud/task/list.d.ts.map +1 -0
  251. package/dist/cmd/cloud/task/list.js +173 -0
  252. package/dist/cmd/cloud/task/list.js.map +1 -0
  253. package/dist/cmd/cloud/task/stats.d.ts +3 -0
  254. package/dist/cmd/cloud/task/stats.d.ts.map +1 -0
  255. package/dist/cmd/cloud/task/stats.js +66 -0
  256. package/dist/cmd/cloud/task/stats.js.map +1 -0
  257. package/dist/cmd/cloud/task/update.d.ts +3 -0
  258. package/dist/cmd/cloud/task/update.d.ts.map +1 -0
  259. package/dist/cmd/cloud/task/update.js +117 -0
  260. package/dist/cmd/cloud/task/update.js.map +1 -0
  261. package/dist/cmd/cloud/task/util.d.ts +15 -0
  262. package/dist/cmd/cloud/task/util.d.ts.map +1 -0
  263. package/dist/cmd/cloud/task/util.js +41 -0
  264. package/dist/cmd/cloud/task/util.js.map +1 -0
  265. package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
  266. package/dist/cmd/cloud/vector/get.js +17 -12
  267. package/dist/cmd/cloud/vector/get.js.map +1 -1
  268. package/dist/cmd/cloud/vector/stats.d.ts.map +1 -1
  269. package/dist/cmd/cloud/vector/stats.js +10 -7
  270. package/dist/cmd/cloud/vector/stats.js.map +1 -1
  271. package/dist/cmd/cloud/webhook/create.d.ts +3 -0
  272. package/dist/cmd/cloud/webhook/create.d.ts.map +1 -0
  273. package/dist/cmd/cloud/webhook/create.js +54 -0
  274. package/dist/cmd/cloud/webhook/create.js.map +1 -0
  275. package/dist/cmd/cloud/webhook/delete.d.ts +3 -0
  276. package/dist/cmd/cloud/webhook/delete.d.ts.map +1 -0
  277. package/dist/cmd/cloud/webhook/delete.js +50 -0
  278. package/dist/cmd/cloud/webhook/delete.js.map +1 -0
  279. package/dist/cmd/cloud/webhook/deliveries.d.ts +3 -0
  280. package/dist/cmd/cloud/webhook/deliveries.d.ts.map +1 -0
  281. package/dist/cmd/cloud/webhook/deliveries.js +129 -0
  282. package/dist/cmd/cloud/webhook/deliveries.js.map +1 -0
  283. package/dist/cmd/cloud/webhook/destinations.d.ts +3 -0
  284. package/dist/cmd/cloud/webhook/destinations.d.ts.map +1 -0
  285. package/dist/cmd/cloud/webhook/destinations.js +223 -0
  286. package/dist/cmd/cloud/webhook/destinations.js.map +1 -0
  287. package/dist/cmd/cloud/webhook/get.d.ts +3 -0
  288. package/dist/cmd/cloud/webhook/get.d.ts.map +1 -0
  289. package/dist/cmd/cloud/webhook/get.js +50 -0
  290. package/dist/cmd/cloud/webhook/get.js.map +1 -0
  291. package/dist/cmd/cloud/webhook/index.d.ts +3 -0
  292. package/dist/cmd/cloud/webhook/index.d.ts.map +1 -0
  293. package/dist/cmd/cloud/webhook/index.js +45 -0
  294. package/dist/cmd/cloud/webhook/index.js.map +1 -0
  295. package/dist/cmd/cloud/webhook/list.d.ts +3 -0
  296. package/dist/cmd/cloud/webhook/list.d.ts.map +1 -0
  297. package/dist/cmd/cloud/webhook/list.js +72 -0
  298. package/dist/cmd/cloud/webhook/list.js.map +1 -0
  299. package/dist/cmd/cloud/webhook/receipts.d.ts +3 -0
  300. package/dist/cmd/cloud/webhook/receipts.d.ts.map +1 -0
  301. package/dist/cmd/cloud/webhook/receipts.js +144 -0
  302. package/dist/cmd/cloud/webhook/receipts.js.map +1 -0
  303. package/dist/cmd/cloud/webhook/util.d.ts +27 -0
  304. package/dist/cmd/cloud/webhook/util.d.ts.map +1 -0
  305. package/dist/cmd/cloud/webhook/util.js +20 -0
  306. package/dist/cmd/cloud/webhook/util.js.map +1 -0
  307. package/dist/config.d.ts +8 -0
  308. package/dist/config.d.ts.map +1 -1
  309. package/dist/tui.d.ts +4 -0
  310. package/dist/tui.d.ts.map +1 -1
  311. package/dist/tui.js +8 -0
  312. package/dist/tui.js.map +1 -1
  313. package/dist/types.d.ts +10 -2
  314. package/dist/types.d.ts.map +1 -1
  315. package/dist/types.js +3 -2
  316. package/dist/types.js.map +1 -1
  317. package/dist/version-check.d.ts.map +1 -1
  318. package/dist/version-check.js +18 -3
  319. package/dist/version-check.js.map +1 -1
  320. package/package.json +6 -6
  321. package/src/auth.ts +7 -0
  322. package/src/cache/resource-region.ts +4 -1
  323. package/src/cmd/ai/claude-code/install.ts +0 -3
  324. package/src/cmd/build/vite/public-asset-path-plugin.ts +18 -4
  325. package/src/cmd/cloud/db/index.ts +2 -0
  326. package/src/cmd/cloud/db/stats.ts +80 -0
  327. package/src/cmd/cloud/email/create.ts +80 -0
  328. package/src/cmd/cloud/email/delete.ts +53 -0
  329. package/src/cmd/cloud/email/destination/delete.ts +65 -0
  330. package/src/cmd/cloud/email/destination/index.ts +15 -0
  331. package/src/cmd/cloud/email/destination/list.ts +46 -0
  332. package/src/cmd/cloud/email/destination/schemas.ts +9 -0
  333. package/src/cmd/cloud/email/destination/url.ts +76 -0
  334. package/src/cmd/cloud/email/get.ts +52 -0
  335. package/src/cmd/cloud/email/inbound/get.ts +52 -0
  336. package/src/cmd/cloud/email/inbound/index.ts +13 -0
  337. package/src/cmd/cloud/email/inbound/list.ts +48 -0
  338. package/src/cmd/cloud/email/inbound/schemas.ts +13 -0
  339. package/src/cmd/cloud/email/index.ts +31 -0
  340. package/src/cmd/cloud/email/list.ts +51 -0
  341. package/src/cmd/cloud/email/outbound/get.ts +54 -0
  342. package/src/cmd/cloud/email/outbound/index.ts +13 -0
  343. package/src/cmd/cloud/email/outbound/list.ts +50 -0
  344. package/src/cmd/cloud/email/outbound/schemas.ts +15 -0
  345. package/src/cmd/cloud/email/send.ts +89 -0
  346. package/src/cmd/cloud/email/stats.ts +77 -0
  347. package/src/cmd/cloud/email/util.ts +70 -0
  348. package/src/cmd/cloud/index.ts +10 -0
  349. package/src/cmd/cloud/queue/get.ts +4 -4
  350. package/src/cmd/cloud/queue/receive.ts +15 -7
  351. package/src/cmd/cloud/queue/stats.ts +3 -3
  352. package/src/cmd/cloud/region-lookup.ts +58 -2
  353. package/src/cmd/cloud/sandbox/checkpoint/create.ts +85 -0
  354. package/src/cmd/cloud/sandbox/checkpoint/delete.ts +93 -0
  355. package/src/cmd/cloud/sandbox/checkpoint/index.ts +33 -0
  356. package/src/cmd/cloud/sandbox/checkpoint/list.ts +83 -0
  357. package/src/cmd/cloud/sandbox/checkpoint/restore.ts +72 -0
  358. package/src/cmd/cloud/sandbox/get.ts +6 -3
  359. package/src/cmd/cloud/sandbox/index.ts +4 -0
  360. package/src/cmd/cloud/sandbox/snapshot/build.ts +68 -64
  361. package/src/cmd/cloud/sandbox/snapshot/generate.ts +5 -1
  362. package/src/cmd/cloud/sandbox/snapshot/get.ts +3 -3
  363. package/src/cmd/cloud/sandbox/stats.ts +86 -0
  364. package/src/cmd/cloud/schedule/create.ts +82 -0
  365. package/src/cmd/cloud/schedule/delete.ts +42 -0
  366. package/src/cmd/cloud/schedule/delivery/get.ts +84 -0
  367. package/src/cmd/cloud/schedule/delivery/index.ts +24 -0
  368. package/src/cmd/cloud/schedule/delivery/list.ts +81 -0
  369. package/src/cmd/cloud/schedule/destination/create.ts +114 -0
  370. package/src/cmd/cloud/schedule/destination/delete.ts +45 -0
  371. package/src/cmd/cloud/schedule/destination/get.ts +66 -0
  372. package/src/cmd/cloud/schedule/destination/index.ts +27 -0
  373. package/src/cmd/cloud/schedule/destination/list.ts +77 -0
  374. package/src/cmd/cloud/schedule/get.ts +97 -0
  375. package/src/cmd/cloud/schedule/index.ts +38 -0
  376. package/src/cmd/cloud/schedule/list.ts +77 -0
  377. package/src/cmd/cloud/schedule/stats.ts +74 -0
  378. package/src/cmd/cloud/schedule/update.ts +74 -0
  379. package/src/cmd/cloud/schedule/util.ts +29 -0
  380. package/src/cmd/cloud/services/index.ts +11 -0
  381. package/src/cmd/cloud/services/stats.ts +225 -0
  382. package/src/cmd/cloud/stream/index.ts +2 -1
  383. package/src/cmd/cloud/stream/stats.ts +74 -0
  384. package/src/cmd/cloud/task/create.ts +123 -0
  385. package/src/cmd/cloud/task/get.ts +139 -0
  386. package/src/cmd/cloud/task/index.ts +35 -0
  387. package/src/cmd/cloud/task/list.ts +190 -0
  388. package/src/cmd/cloud/task/stats.ts +74 -0
  389. package/src/cmd/cloud/task/update.ts +122 -0
  390. package/src/cmd/cloud/task/util.ts +62 -0
  391. package/src/cmd/cloud/vector/get.ts +16 -11
  392. package/src/cmd/cloud/vector/stats.ts +10 -8
  393. package/src/cmd/cloud/webhook/create.ts +66 -0
  394. package/src/cmd/cloud/webhook/delete.ts +57 -0
  395. package/src/cmd/cloud/webhook/deliveries.ts +162 -0
  396. package/src/cmd/cloud/webhook/destinations.ts +287 -0
  397. package/src/cmd/cloud/webhook/get.ts +59 -0
  398. package/src/cmd/cloud/webhook/index.ts +46 -0
  399. package/src/cmd/cloud/webhook/list.ts +82 -0
  400. package/src/cmd/cloud/webhook/receipts.ts +170 -0
  401. package/src/cmd/cloud/webhook/util.ts +35 -0
  402. package/src/tui.ts +9 -0
  403. package/src/types.ts +3 -1
  404. package/src/version-check.ts +22 -3
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../types';
3
+ import * as tui from '../../../tui';
4
+ import { createEmailAdapter, EmailAddressSchema } from './util';
5
+
6
+ export const listSubcommand = createCommand({
7
+ name: 'list',
8
+ aliases: ['ls'],
9
+ description: 'List email addresses',
10
+ tags: ['read-only', 'requires-auth'],
11
+ requires: { auth: true },
12
+ schema: {
13
+ response: z.array(EmailAddressSchema),
14
+ },
15
+
16
+ async handler(ctx) {
17
+ const { options } = ctx;
18
+ const email = await createEmailAdapter(ctx);
19
+ const addresses = await email.listAddresses();
20
+
21
+ if (!options.json) {
22
+ tui.table(
23
+ addresses.map((item) => ({
24
+ ID: item.id,
25
+ Email: item.email,
26
+ Project: item.project_id ?? '-',
27
+ Provider: item.provider ?? '-',
28
+ Created: new Date(item.created_at).toLocaleString(),
29
+ })),
30
+ [
31
+ { name: 'ID', alignment: 'left' },
32
+ { name: 'Email', alignment: 'left' },
33
+ { name: 'Project', alignment: 'left' },
34
+ { name: 'Provider', alignment: 'left' },
35
+ { name: 'Created', alignment: 'left' },
36
+ ]
37
+ );
38
+ }
39
+
40
+ return addresses.map((item) => ({
41
+ id: item.id,
42
+ email: item.email,
43
+ project_id: item.project_id,
44
+ provider: item.provider,
45
+ created_at: item.created_at,
46
+ updated_at: item.updated_at,
47
+ }));
48
+ },
49
+ });
50
+
51
+ export default listSubcommand;
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../../types';
3
+ import * as tui from '../../../../tui';
4
+ import { createEmailAdapter, truncate } from '../util';
5
+ import { EmailOutboundSchema } from './schemas';
6
+
7
+ export const getSubcommand = createCommand({
8
+ name: 'get',
9
+ description: 'Get a sent email by ID',
10
+ tags: ['read-only', 'requires-auth'],
11
+ requires: { auth: true },
12
+ schema: {
13
+ args: z.object({
14
+ id: z.string().min(1).describe('Outbound email ID (eout_*)'),
15
+ }),
16
+ response: EmailOutboundSchema,
17
+ },
18
+
19
+ async handler(ctx) {
20
+ const { args, options } = ctx;
21
+ const email = await createEmailAdapter(ctx);
22
+ const outbound = await email.getOutbound(args.id);
23
+
24
+ if (!outbound) {
25
+ tui.fatal(`Outbound email not found: ${args.id}`);
26
+ }
27
+
28
+ if (!options.json) {
29
+ tui.success(`Outbound Email: ${tui.bold(outbound.id)}`);
30
+ tui.table(
31
+ [
32
+ {
33
+ ID: outbound.id,
34
+ From: outbound.from,
35
+ To: outbound.to,
36
+ Subject: outbound.subject ?? '-',
37
+ Text: truncate(outbound.text),
38
+ Status: outbound.status ?? '-',
39
+ Error: outbound.error ?? '-',
40
+ Created: outbound.created_at
41
+ ? new Date(outbound.created_at).toLocaleString()
42
+ : '-',
43
+ },
44
+ ],
45
+ ['ID', 'From', 'To', 'Subject', 'Text', 'Status', 'Error', 'Created'],
46
+ { layout: 'vertical', padStart: ' ' }
47
+ );
48
+ }
49
+
50
+ return outbound;
51
+ },
52
+ });
53
+
54
+ export default getSubcommand;
@@ -0,0 +1,13 @@
1
+ import { createCommand } from '../../../../types';
2
+ import { listSubcommand } from './list';
3
+ import { getSubcommand } from './get';
4
+
5
+ export const outboundCommand = createCommand({
6
+ name: 'outbound',
7
+ description: 'Manage outbound (sent) emails',
8
+ tags: ['requires-auth'],
9
+ requires: { auth: true },
10
+ subcommands: [listSubcommand, getSubcommand],
11
+ });
12
+
13
+ export default outboundCommand;
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../../types';
3
+ import * as tui from '../../../../tui';
4
+ import { createEmailAdapter } from '../util';
5
+ import { EmailOutboundSchema } from './schemas';
6
+
7
+ export const listSubcommand = createCommand({
8
+ name: 'list',
9
+ aliases: ['ls'],
10
+ description: 'List sent emails',
11
+ tags: ['read-only', 'requires-auth'],
12
+ requires: { auth: true },
13
+ schema: {
14
+ options: z.object({
15
+ addressId: z.string().optional().describe('Filter by email address ID'),
16
+ }),
17
+ response: z.array(EmailOutboundSchema),
18
+ },
19
+
20
+ async handler(ctx) {
21
+ const { opts, options } = ctx;
22
+ const email = await createEmailAdapter(ctx);
23
+ const outbound = await email.listOutbound(opts.addressId);
24
+
25
+ if (!options.json) {
26
+ tui.table(
27
+ outbound.map((item) => ({
28
+ ID: item.id,
29
+ From: item.from,
30
+ To: item.to,
31
+ Subject: item.subject ?? '-',
32
+ Status: item.status ?? '-',
33
+ Created: item.created_at ? new Date(item.created_at).toLocaleString() : '-',
34
+ })),
35
+ [
36
+ { name: 'ID', alignment: 'left' },
37
+ { name: 'From', alignment: 'left' },
38
+ { name: 'To', alignment: 'left' },
39
+ { name: 'Subject', alignment: 'left' },
40
+ { name: 'Status', alignment: 'left' },
41
+ { name: 'Created', alignment: 'left' },
42
+ ]
43
+ );
44
+ }
45
+
46
+ return outbound;
47
+ },
48
+ });
49
+
50
+ export default listSubcommand;
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+
3
+ export const EmailOutboundSchema = z.object({
4
+ id: z.string(),
5
+ from: z.string(),
6
+ to: z.string(),
7
+ subject: z.string().optional(),
8
+ text: z.string().optional(),
9
+ html: z.string().optional(),
10
+ status: z.string().optional(),
11
+ error: z.string().optional(),
12
+ created_at: z.string().optional(),
13
+ headers: z.record(z.string(), z.unknown()).optional(),
14
+ attachments: z.array(z.unknown()).optional(),
15
+ });
@@ -0,0 +1,89 @@
1
+ import { basename } from 'node:path';
2
+ import { z } from 'zod';
3
+ import type { EmailAttachment } from '@agentuity/core';
4
+ import { createCommand } from '../../../types';
5
+ import * as tui from '../../../tui';
6
+ import { createEmailAdapter, truncate } from './util';
7
+ import { EmailOutboundSchema } from './outbound/schemas';
8
+
9
+ export const sendSubcommand = createCommand({
10
+ name: 'send',
11
+ description: 'Send an email',
12
+ tags: ['mutating', 'requires-auth'],
13
+ requires: { auth: true },
14
+ schema: {
15
+ args: z.object({
16
+ to: z.string().email().describe('Destination email address'),
17
+ }),
18
+ options: z.object({
19
+ from: z.string().email().describe('Sender email address (must be owned by org)'),
20
+ subject: z.string().min(1).describe('Email subject'),
21
+ text: z.string().optional().describe('Plain text body'),
22
+ html: z.string().optional().describe('HTML body'),
23
+ file: z.array(z.string()).optional().describe('Attachment file path (repeatable)'),
24
+ }),
25
+ response: EmailOutboundSchema,
26
+ },
27
+
28
+ async handler(ctx) {
29
+ const { args, opts, options } = ctx;
30
+
31
+ if (!opts.text && !opts.html) {
32
+ tui.fatal('At least one of --text or --html is required');
33
+ }
34
+
35
+ const fileValues = Array.isArray(opts.file)
36
+ ? opts.file
37
+ : opts.file
38
+ ? [opts.file]
39
+ : [];
40
+
41
+ const attachments: EmailAttachment[] = [];
42
+ for (const filePath of fileValues) {
43
+ const file = Bun.file(filePath);
44
+ if (!(await file.exists())) {
45
+ tui.fatal(`Attachment file not found: ${filePath}`);
46
+ }
47
+
48
+ const buffer = Buffer.from(await file.arrayBuffer());
49
+ attachments.push({
50
+ filename: basename(filePath),
51
+ contentType: file.type || 'application/octet-stream',
52
+ content: buffer.toString('base64'),
53
+ });
54
+ }
55
+
56
+ const email = await createEmailAdapter(ctx);
57
+ const outbound = await email.send({
58
+ to: [args.to],
59
+ from: opts.from,
60
+ subject: opts.subject,
61
+ text: opts.text,
62
+ html: opts.html,
63
+ attachments: attachments.length > 0 ? attachments : undefined,
64
+ });
65
+
66
+ if (!options.json) {
67
+ tui.success('Email queued for delivery');
68
+ tui.table(
69
+ [
70
+ {
71
+ ID: outbound.id,
72
+ From: outbound.from || opts.from,
73
+ To: outbound.to || args.to,
74
+ Subject: outbound.subject ?? opts.subject,
75
+ Text: truncate(outbound.text ?? opts.text),
76
+ Status: outbound.status ?? 'pending',
77
+ Attachments: attachments.length > 0 ? attachments.length.toString() : '-',
78
+ },
79
+ ],
80
+ ['ID', 'From', 'To', 'Subject', 'Text', 'Status', 'Attachments'],
81
+ { layout: 'vertical', padStart: ' ' }
82
+ );
83
+ }
84
+
85
+ return outbound;
86
+ },
87
+ });
88
+
89
+ export default sendSubcommand;
@@ -0,0 +1,77 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../types';
3
+ import * as tui from '../../../tui';
4
+ import { getGlobalCatalystAPIClient } from '../../../config';
5
+ import { getCommand } from '../../../command-prefix';
6
+ import { getServiceStats, type ServiceStatsData } from '@agentuity/server';
7
+
8
+ function formatNumber(n: number): string {
9
+ if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;
10
+ if (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;
11
+ return String(n);
12
+ }
13
+
14
+ function displayStats(data: ServiceStatsData): void {
15
+ const svc = data.services.email;
16
+ if (!svc) {
17
+ tui.info('No email data found.');
18
+ return;
19
+ }
20
+ tui.header('Email Statistics');
21
+ tui.newline();
22
+ console.log(
23
+ ` ${tui.muted('Addresses:')} ${formatNumber(svc.addressCount)}`
24
+ );
25
+ console.log(
26
+ ` ${tui.muted('Inbound:')} ${formatNumber(svc.inboundCount)}`
27
+ );
28
+ console.log(
29
+ ` ${tui.muted('Outbound:')} ${formatNumber(svc.outboundCount)} (${svc.outboundSuccess} ok, ${svc.outboundFailed} failed)`
30
+ );
31
+ }
32
+
33
+ export const statsSubcommand = createCommand({
34
+ name: 'stats',
35
+ description: 'View email statistics',
36
+ tags: ['read-only', 'requires-auth'],
37
+ requires: { auth: true, org: true },
38
+ examples: [
39
+ {
40
+ command: getCommand('cloud email stats'),
41
+ description: 'View email statistics',
42
+ },
43
+ ],
44
+ schema: {
45
+ options: z.object({
46
+ start: z.string().optional().describe('Start time (ISO 8601)'),
47
+ end: z.string().optional().describe('End time (ISO 8601)'),
48
+ }),
49
+ },
50
+ idempotent: true,
51
+
52
+ async handler(ctx) {
53
+ const { opts, options } = ctx;
54
+ const client = await getGlobalCatalystAPIClient(ctx.logger, ctx.auth, ctx.config?.name);
55
+ const orgId = ctx.orgId ?? ctx.options.orgId ?? ctx.config?.preferences?.orgId;
56
+
57
+ if (!orgId) {
58
+ ctx.logger.fatal('Organization ID is required. Use --org-id or set a preferred org.');
59
+ return;
60
+ }
61
+
62
+ const data = await getServiceStats(client, orgId, {
63
+ service: 'email',
64
+ start: opts.start,
65
+ end: opts.end,
66
+ orgIdHeader: orgId,
67
+ });
68
+
69
+ if (!options.json) {
70
+ displayStats(data);
71
+ }
72
+
73
+ return data;
74
+ },
75
+ });
76
+
77
+ export default statsSubcommand;
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import { EmailStorageService, type Logger } from '@agentuity/core';
3
+ import { createServerFetchAdapter } from '@agentuity/server';
4
+ import type { AuthData, Config, GlobalOptions } from '../../../types';
5
+ import { getCatalystUrl } from '../../../catalyst';
6
+ import { defaultProfileName, getDefaultRegion } from '../../../config';
7
+ import * as tui from '../../../tui';
8
+
9
+ export type {
10
+ EmailAddress,
11
+ EmailDestination,
12
+ EmailInbound,
13
+ EmailOutbound,
14
+ EmailAttachment,
15
+ EmailSendParams,
16
+ } from '@agentuity/core';
17
+
18
+ export interface EmailContext {
19
+ logger: Logger;
20
+ auth: AuthData;
21
+ config: Config | null;
22
+ options: GlobalOptions;
23
+ }
24
+
25
+ export function resolveEmailOrgId(ctx: EmailContext): string {
26
+ const orgId =
27
+ ctx.options.orgId ??
28
+ (process.env.AGENTUITY_CLOUD_ORG_ID || ctx.config?.preferences?.orgId);
29
+
30
+ if (!orgId) {
31
+ tui.fatal('Organization ID is required. Use --org-id flag or set AGENTUITY_CLOUD_ORG_ID.');
32
+ }
33
+
34
+ return orgId;
35
+ }
36
+
37
+ export const EmailAddressSchema = z.object({
38
+ id: z.string(),
39
+ email: z.string(),
40
+ project_id: z.string().optional(),
41
+ provider: z.string().optional(),
42
+ config: z.record(z.string(), z.unknown()).optional(),
43
+ created_at: z.string(),
44
+ updated_at: z.string().optional(),
45
+ });
46
+
47
+ export function truncate(value: string | undefined, length = 200): string {
48
+ if (!value) {
49
+ return '-';
50
+ }
51
+ return value.length > length ? `${value.slice(0, length - 3)}...` : value;
52
+ }
53
+
54
+ export async function createEmailAdapter(ctx: EmailContext, region?: string) {
55
+ const orgId = resolveEmailOrgId(ctx);
56
+ const adapter = createServerFetchAdapter(
57
+ {
58
+ headers: {
59
+ Authorization: `Bearer ${ctx.auth.apiKey}`,
60
+ 'x-agentuity-orgid': orgId,
61
+ },
62
+ },
63
+ ctx.logger
64
+ );
65
+
66
+ const resolvedRegion =
67
+ region ?? (await getDefaultRegion(ctx.config?.name ?? defaultProfileName, ctx.config));
68
+ const baseUrl = getCatalystUrl(resolvedRegion);
69
+ return new EmailStorageService(baseUrl, adapter);
70
+ }
@@ -10,12 +10,17 @@ import { scpSubcommand } from './scp';
10
10
  import { deploymentCommand } from './deployment';
11
11
  import keyvalueCommand from './keyvalue';
12
12
  import queueCommand from './queue';
13
+ import webhookCommand from './webhook';
13
14
  import { agentCommand } from './agent';
14
15
  import envCommand from './env';
15
16
  import apikeyCommand from './apikey';
16
17
  import streamCommand from './stream';
17
18
  import vectorCommand from './vector';
19
+ import { emailCommand } from './email';
20
+ import taskCommand from './task';
18
21
  import sandboxCommand from './sandbox';
22
+ import scheduleCommand from './schedule';
23
+ import servicesCommand from './services';
19
24
  import { regionSubcommand } from './region';
20
25
  import { machineCommand } from './machine';
21
26
  import { evalCommand } from './eval';
@@ -35,10 +40,14 @@ export const command = createCommand({
35
40
  apikeyCommand,
36
41
  keyvalueCommand,
37
42
  queueCommand,
43
+ webhookCommand,
44
+ taskCommand,
38
45
  agentCommand,
39
46
  streamCommand,
47
+ emailCommand,
40
48
  vectorCommand,
41
49
  sandboxCommand,
50
+ scheduleCommand,
42
51
  envCommand,
43
52
  evalCommand,
44
53
  evalRunCommand,
@@ -46,6 +55,7 @@ export const command = createCommand({
46
55
  dbCommand,
47
56
  redisCommand,
48
57
  storageCommand,
58
+ servicesCommand,
49
59
  sessionCommand,
50
60
  threadCommand,
51
61
  sshSubcommand,
@@ -42,12 +42,12 @@ function displayMessage(message: Message): void {
42
42
  tui.table([details], undefined, { layout: 'vertical' });
43
43
 
44
44
  tui.newline();
45
- tui.info('Payload');
45
+ tui.header('Payload');
46
46
  tui.json(message.payload);
47
47
 
48
48
  if (message.metadata && Object.keys(message.metadata).length > 0) {
49
49
  tui.newline();
50
- tui.info('Metadata');
50
+ tui.header('Metadata');
51
51
  tui.json(message.metadata);
52
52
  }
53
53
  }
@@ -119,7 +119,7 @@ export const getSubcommand = createCommand({
119
119
  queue.next_offset !== undefined
120
120
  ) {
121
121
  tui.newline();
122
- tui.info('Stats');
122
+ tui.header('Stats');
123
123
  tui.table(
124
124
  [
125
125
  {
@@ -135,7 +135,7 @@ export const getSubcommand = createCommand({
135
135
 
136
136
  if (queue.default_visibility_timeout_seconds !== undefined) {
137
137
  tui.newline();
138
- tui.info('Settings');
138
+ tui.header('Settings');
139
139
  const settings: Record<string, unknown> = {};
140
140
  if (queue.default_ttl_seconds != null) {
141
141
  settings['Default TTL'] = `${queue.default_ttl_seconds}s`;
@@ -55,15 +55,23 @@ export const receiveSubcommand = createCommand({
55
55
  tui.info('No messages available');
56
56
  } else {
57
57
  tui.success(`Received message: ${message.id}`);
58
- tui.info(` Offset: ${message.offset}`);
59
- tui.info(` State: ${message.state}`);
60
- tui.info(` Delivery Attempts: ${message.delivery_attempts}`);
61
- tui.info('');
62
- tui.info('Payload:');
58
+ tui.table(
59
+ [
60
+ {
61
+ Offset: message.offset,
62
+ State: message.state,
63
+ 'Delivery Attempts': message.delivery_attempts,
64
+ },
65
+ ],
66
+ undefined,
67
+ { layout: 'vertical' }
68
+ );
69
+ tui.newline();
70
+ tui.header('Payload');
63
71
  tui.json(message.payload);
64
72
  if (message.metadata) {
65
- tui.info('');
66
- tui.info('Metadata:');
73
+ tui.newline();
74
+ tui.header('Metadata');
67
75
  tui.json(message.metadata);
68
76
  }
69
77
  }
@@ -45,7 +45,7 @@ function formatDuration(start: string, end: string): string {
45
45
  function displayOrgAnalytics(analytics: OrgAnalytics): void {
46
46
  const { summary, queues, period } = analytics;
47
47
 
48
- tui.info(`Organization Analytics (${formatDuration(period.start, period.end)})`);
48
+ tui.header(`Organization Analytics (${formatDuration(period.start, period.end)})`);
49
49
  tui.newline();
50
50
  console.log(tui.colorPrimary('Summary:'));
51
51
  console.log(` ${tui.muted('Total Queues:')} ${summary.total_queues}`);
@@ -84,7 +84,7 @@ function displayQueueAnalytics(analytics: QueueAnalytics): void {
84
84
  const { queue_name, queue_type, period, current, period_stats, latency, consumer_latency } =
85
85
  analytics;
86
86
 
87
- tui.info(`Queue: ${queue_name} (${queue_type})`);
87
+ tui.header(`Queue: ${queue_name} (${queue_type})`);
88
88
  console.log(tui.colorWarning(`Period: ${formatDuration(period.start, period.end)}`));
89
89
  tui.newline();
90
90
 
@@ -146,7 +146,7 @@ function displayQueueAnalytics(analytics: QueueAnalytics): void {
146
146
 
147
147
  if (analytics.destinations && analytics.destinations.length > 0) {
148
148
  tui.newline();
149
- tui.info('Destinations:');
149
+ tui.header('Destinations');
150
150
  const destData = analytics.destinations.map((d) => {
151
151
  const total = d.success_count + d.failure_count;
152
152
  const errorRate = total > 0 ? (d.failure_count / total) * 100 : 0;
@@ -1,8 +1,9 @@
1
- import { StreamStorageService, type Logger } from '@agentuity/core';
1
+ import { StreamStorageService, TaskStorageService, type Logger } from '@agentuity/core';
2
2
  import {
3
3
  projectGet,
4
4
  sandboxResolve,
5
5
  deploymentGet,
6
+ getWebhook,
6
7
  type APIClient,
7
8
  createServerFetchAdapter,
8
9
  getServiceUrls,
@@ -13,7 +14,7 @@ import type { AuthData, Config } from '../../types';
13
14
  import * as tui from '../../tui';
14
15
  import { ErrorCode } from '../../errors';
15
16
 
16
- export type IdentifierType = 'project' | 'deployment' | 'sandbox' | 'stream';
17
+ export type IdentifierType = 'project' | 'deployment' | 'sandbox' | 'stream' | 'webhook' | 'task';
17
18
 
18
19
  /**
19
20
  * Determine the type of identifier based on its prefix
@@ -28,9 +29,15 @@ export function getIdentifierType(identifier: string): IdentifierType {
28
29
  if (identifier.startsWith('sbx_')) {
29
30
  return 'sandbox';
30
31
  }
32
+ if (identifier.startsWith('task_')) {
33
+ return 'task';
34
+ }
31
35
  if (identifier.startsWith('stream_')) {
32
36
  return 'stream';
33
37
  }
38
+ if (identifier.startsWith('wh_')) {
39
+ return 'webhook';
40
+ }
34
41
  // Default to project for unknown prefixes
35
42
  return 'project';
36
43
  }
@@ -82,6 +89,34 @@ export async function getIdentifierRegion(
82
89
  }
83
90
  const deployment = await deploymentGet(apiClient, identifier);
84
91
  region = deployment.cloudRegion ?? null;
92
+ } else if (identifierType === 'task') {
93
+ // Tasks live in per-tenant DBs accessible from any regional Catalyst.
94
+ // Use default region to reach Catalyst, which can resolve the task for the org.
95
+ const taskDefaultRegion = await getDefaultRegion(profileName, config);
96
+ const taskBaseUrl = getServiceUrls(taskDefaultRegion).catalyst;
97
+ const resolvedTaskOrgId =
98
+ orgId ?? process.env.AGENTUITY_CLOUD_ORG_ID ?? config?.preferences?.orgId;
99
+ if (!resolvedTaskOrgId) {
100
+ tui.fatal(
101
+ `Organization ID required to resolve task '${identifier}'. Use --org-id or set AGENTUITY_CLOUD_ORG_ID.`,
102
+ ErrorCode.INVALID_ARGUMENT
103
+ );
104
+ }
105
+ const taskAdapter = createServerFetchAdapter(
106
+ {
107
+ headers: {
108
+ Authorization: `Bearer ${auth.apiKey}`,
109
+ 'x-agentuity-orgid': resolvedTaskOrgId,
110
+ },
111
+ },
112
+ logger
113
+ );
114
+ const taskService = new TaskStorageService(taskBaseUrl, taskAdapter);
115
+ const taskResult = await taskService.get(identifier);
116
+ if (taskResult) {
117
+ region = taskDefaultRegion;
118
+ orgId = resolvedTaskOrgId;
119
+ }
85
120
  } else if (identifierType === 'sandbox') {
86
121
  // sandbox - use CLI API to resolve across all orgs the user has access to
87
122
  if (!apiClient) {
@@ -96,6 +131,27 @@ export async function getIdentifierRegion(
96
131
  if (sandbox.orgId) {
97
132
  orgId = sandbox.orgId;
98
133
  }
134
+ } else if (identifierType === 'webhook') {
135
+ // Webhook tenant DB is not regional — any global Catalyst can serve the request.
136
+ // We still look up the webhook to validate it exists and cache the orgId.
137
+ if (!apiClient) {
138
+ tui.fatal(
139
+ `API client required for webhook region lookup. This is an internal error.`,
140
+ ErrorCode.INVALID_ARGUMENT
141
+ );
142
+ }
143
+ const resolvedOrgId =
144
+ orgId ?? process.env.AGENTUITY_CLOUD_ORG_ID ?? config?.preferences?.orgId;
145
+ const webhook = await getWebhook(
146
+ apiClient,
147
+ identifier,
148
+ resolvedOrgId ? { orgId: resolvedOrgId } : undefined
149
+ );
150
+ if (webhook) {
151
+ orgId = resolvedOrgId;
152
+ }
153
+ // Use default region since webhooks are global
154
+ region = await getDefaultRegion(profileName, config);
99
155
  } else {
100
156
  // stream - use the streams service to look up stream info
101
157
  // Any regional streams service can look up any stream and return its info