@agentuity/cli 0.0.59 → 0.0.61

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 (625) hide show
  1. package/bin/cli.ts +15 -4
  2. package/dist/banner.d.ts +1 -0
  3. package/dist/banner.d.ts.map +1 -1
  4. package/dist/banner.js +28 -13
  5. package/dist/banner.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +99 -10
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cmd/ai/capabilities/index.d.ts.map +1 -1
  10. package/dist/cmd/ai/capabilities/index.js +4 -0
  11. package/dist/cmd/ai/capabilities/index.js.map +1 -1
  12. package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
  13. package/dist/cmd/ai/capabilities/show.js +23 -5
  14. package/dist/cmd/ai/capabilities/show.js.map +1 -1
  15. package/dist/cmd/ai/index.d.ts.map +1 -1
  16. package/dist/cmd/ai/index.js +11 -0
  17. package/dist/cmd/ai/index.js.map +1 -1
  18. package/dist/cmd/ai/prompt/agent.d.ts +3 -0
  19. package/dist/cmd/ai/prompt/agent.d.ts.map +1 -0
  20. package/dist/cmd/ai/prompt/agent.js +340 -0
  21. package/dist/cmd/ai/prompt/agent.js.map +1 -0
  22. package/dist/cmd/ai/prompt/api.d.ts +3 -0
  23. package/dist/cmd/ai/prompt/api.d.ts.map +1 -0
  24. package/dist/cmd/ai/prompt/api.js +272 -0
  25. package/dist/cmd/ai/prompt/api.js.map +1 -0
  26. package/dist/cmd/ai/prompt/index.d.ts +1 -2
  27. package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
  28. package/dist/cmd/ai/prompt/index.js +17 -1
  29. package/dist/cmd/ai/prompt/index.js.map +1 -1
  30. package/dist/cmd/ai/prompt/llm.d.ts +1 -0
  31. package/dist/cmd/ai/prompt/llm.d.ts.map +1 -1
  32. package/dist/cmd/ai/prompt/llm.js +2 -2
  33. package/dist/cmd/ai/prompt/llm.js.map +1 -1
  34. package/dist/cmd/ai/prompt/web.d.ts +3 -0
  35. package/dist/cmd/ai/prompt/web.d.ts.map +1 -0
  36. package/dist/cmd/ai/prompt/web.js +299 -0
  37. package/dist/cmd/ai/prompt/web.js.map +1 -0
  38. package/dist/cmd/ai/schema/generate.js +1 -1
  39. package/dist/cmd/ai/schema/generate.js.map +1 -1
  40. package/dist/cmd/ai/schema/index.d.ts.map +1 -1
  41. package/dist/cmd/ai/schema/index.js +2 -0
  42. package/dist/cmd/ai/schema/index.js.map +1 -1
  43. package/dist/cmd/ai/schema/show.d.ts.map +1 -1
  44. package/dist/cmd/ai/schema/show.js +4 -1
  45. package/dist/cmd/ai/schema/show.js.map +1 -1
  46. package/dist/cmd/auth/api.d.ts.map +1 -1
  47. package/dist/cmd/auth/api.js +12 -6
  48. package/dist/cmd/auth/api.js.map +1 -1
  49. package/dist/cmd/auth/index.d.ts.map +1 -1
  50. package/dist/cmd/auth/index.js +5 -0
  51. package/dist/cmd/auth/index.js.map +1 -1
  52. package/dist/cmd/auth/login.d.ts.map +1 -1
  53. package/dist/cmd/auth/login.js +5 -22
  54. package/dist/cmd/auth/login.js.map +1 -1
  55. package/dist/cmd/auth/logout.d.ts.map +1 -1
  56. package/dist/cmd/auth/logout.js +4 -1
  57. package/dist/cmd/auth/logout.js.map +1 -1
  58. package/dist/cmd/auth/signup.d.ts.map +1 -1
  59. package/dist/cmd/auth/signup.js +4 -1
  60. package/dist/cmd/auth/signup.js.map +1 -1
  61. package/dist/cmd/auth/ssh/add.d.ts.map +1 -1
  62. package/dist/cmd/auth/ssh/add.js +13 -4
  63. package/dist/cmd/auth/ssh/add.js.map +1 -1
  64. package/dist/cmd/auth/ssh/api.d.ts.map +1 -1
  65. package/dist/cmd/auth/ssh/api.js +11 -5
  66. package/dist/cmd/auth/ssh/api.js.map +1 -1
  67. package/dist/cmd/auth/ssh/delete.js +4 -4
  68. package/dist/cmd/auth/ssh/delete.js.map +1 -1
  69. package/dist/cmd/auth/ssh/index.d.ts.map +1 -1
  70. package/dist/cmd/auth/ssh/index.js +5 -0
  71. package/dist/cmd/auth/ssh/index.js.map +1 -1
  72. package/dist/cmd/auth/ssh/list.js +3 -3
  73. package/dist/cmd/auth/ssh/list.js.map +1 -1
  74. package/dist/cmd/auth/whoami.d.ts.map +1 -1
  75. package/dist/cmd/auth/whoami.js +4 -4
  76. package/dist/cmd/auth/whoami.js.map +1 -1
  77. package/dist/cmd/build/ast.d.ts +24 -1
  78. package/dist/cmd/build/ast.d.ts.map +1 -1
  79. package/dist/cmd/build/ast.js +526 -14
  80. package/dist/cmd/build/ast.js.map +1 -1
  81. package/dist/cmd/build/bundler.d.ts +3 -1
  82. package/dist/cmd/build/bundler.d.ts.map +1 -1
  83. package/dist/cmd/build/bundler.js +89 -38
  84. package/dist/cmd/build/bundler.js.map +1 -1
  85. package/dist/cmd/build/file.js +1 -1
  86. package/dist/cmd/build/file.js.map +1 -1
  87. package/dist/cmd/build/fix-duplicate-exports.d.ts.map +1 -1
  88. package/dist/cmd/build/fix-duplicate-exports.js +4 -1
  89. package/dist/cmd/build/fix-duplicate-exports.js.map +1 -1
  90. package/dist/cmd/build/index.d.ts.map +1 -1
  91. package/dist/cmd/build/index.js +55 -13
  92. package/dist/cmd/build/index.js.map +1 -1
  93. package/dist/cmd/build/plugin.d.ts.map +1 -1
  94. package/dist/cmd/build/plugin.js +183 -38
  95. package/dist/cmd/build/plugin.js.map +1 -1
  96. package/dist/cmd/cloud/agent/get.d.ts.map +1 -1
  97. package/dist/cmd/cloud/agent/get.js +5 -2
  98. package/dist/cmd/cloud/agent/get.js.map +1 -1
  99. package/dist/cmd/cloud/agent/index.d.ts.map +1 -1
  100. package/dist/cmd/cloud/agent/index.js +5 -0
  101. package/dist/cmd/cloud/agent/index.js.map +1 -1
  102. package/dist/cmd/cloud/agent/list.js +3 -3
  103. package/dist/cmd/cloud/agent/list.js.map +1 -1
  104. package/dist/cmd/cloud/apikey/create.d.ts.map +1 -1
  105. package/dist/cmd/cloud/apikey/create.js +12 -3
  106. package/dist/cmd/cloud/apikey/create.js.map +1 -1
  107. package/dist/cmd/cloud/apikey/delete.js +3 -3
  108. package/dist/cmd/cloud/apikey/delete.js.map +1 -1
  109. package/dist/cmd/cloud/apikey/get.js +1 -1
  110. package/dist/cmd/cloud/apikey/get.js.map +1 -1
  111. package/dist/cmd/cloud/apikey/index.d.ts.map +1 -1
  112. package/dist/cmd/cloud/apikey/index.js +8 -0
  113. package/dist/cmd/cloud/apikey/index.js.map +1 -1
  114. package/dist/cmd/cloud/apikey/list.d.ts.map +1 -1
  115. package/dist/cmd/cloud/apikey/list.js +4 -1
  116. package/dist/cmd/cloud/apikey/list.js.map +1 -1
  117. package/dist/cmd/cloud/db/create.d.ts +2 -0
  118. package/dist/cmd/cloud/db/create.d.ts.map +1 -0
  119. package/dist/cmd/cloud/db/create.js +82 -0
  120. package/dist/cmd/cloud/db/create.js.map +1 -0
  121. package/dist/cmd/cloud/db/delete.d.ts.map +1 -0
  122. package/dist/cmd/cloud/db/delete.js +119 -0
  123. package/dist/cmd/cloud/db/delete.js.map +1 -0
  124. package/dist/cmd/cloud/db/get.d.ts +2 -0
  125. package/dist/cmd/cloud/db/get.d.ts.map +1 -0
  126. package/dist/cmd/cloud/db/get.js +72 -0
  127. package/dist/cmd/cloud/db/get.js.map +1 -0
  128. package/dist/cmd/cloud/db/index.d.ts +2 -0
  129. package/dist/cmd/cloud/db/index.d.ts.map +1 -0
  130. package/dist/cmd/cloud/db/index.js +19 -0
  131. package/dist/cmd/cloud/db/index.js.map +1 -0
  132. package/dist/cmd/cloud/db/list.d.ts.map +1 -0
  133. package/dist/cmd/cloud/db/list.js +85 -0
  134. package/dist/cmd/cloud/db/list.js.map +1 -0
  135. package/dist/cmd/cloud/db/sql.d.ts +2 -0
  136. package/dist/cmd/cloud/db/sql.d.ts.map +1 -0
  137. package/dist/cmd/cloud/db/sql.js +111 -0
  138. package/dist/cmd/cloud/db/sql.js.map +1 -0
  139. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  140. package/dist/cmd/cloud/deploy.js +9 -3
  141. package/dist/cmd/cloud/deploy.js.map +1 -1
  142. package/dist/cmd/cloud/deployment/index.d.ts.map +1 -1
  143. package/dist/cmd/cloud/deployment/index.js +5 -0
  144. package/dist/cmd/cloud/deployment/index.js.map +1 -1
  145. package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
  146. package/dist/cmd/cloud/deployment/list.js +12 -3
  147. package/dist/cmd/cloud/deployment/list.js.map +1 -1
  148. package/dist/cmd/cloud/deployment/logs.d.ts.map +1 -1
  149. package/dist/cmd/cloud/deployment/logs.js +16 -4
  150. package/dist/cmd/cloud/deployment/logs.js.map +1 -1
  151. package/dist/cmd/cloud/deployment/remove.d.ts.map +1 -1
  152. package/dist/cmd/cloud/deployment/remove.js +12 -3
  153. package/dist/cmd/cloud/deployment/remove.js.map +1 -1
  154. package/dist/cmd/cloud/deployment/rollback.d.ts.map +1 -1
  155. package/dist/cmd/cloud/deployment/rollback.js +8 -2
  156. package/dist/cmd/cloud/deployment/rollback.js.map +1 -1
  157. package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
  158. package/dist/cmd/cloud/deployment/show.js +8 -2
  159. package/dist/cmd/cloud/deployment/show.js.map +1 -1
  160. package/dist/cmd/cloud/deployment/undeploy.d.ts.map +1 -1
  161. package/dist/cmd/cloud/deployment/undeploy.js +12 -3
  162. package/dist/cmd/cloud/deployment/undeploy.js.map +1 -1
  163. package/dist/cmd/cloud/deployment/utils.d.ts.map +1 -1
  164. package/dist/cmd/cloud/deployment/utils.js +3 -1
  165. package/dist/cmd/cloud/deployment/utils.js.map +1 -1
  166. package/dist/cmd/cloud/domain.d.ts.map +1 -1
  167. package/dist/cmd/cloud/domain.js +4 -2
  168. package/dist/cmd/cloud/domain.js.map +1 -1
  169. package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
  170. package/dist/cmd/cloud/env/delete.js +4 -1
  171. package/dist/cmd/cloud/env/delete.js.map +1 -1
  172. package/dist/cmd/cloud/env/get.d.ts.map +1 -1
  173. package/dist/cmd/cloud/env/get.js +6 -4
  174. package/dist/cmd/cloud/env/get.js.map +1 -1
  175. package/dist/cmd/cloud/env/import.d.ts.map +1 -1
  176. package/dist/cmd/cloud/env/import.js +10 -0
  177. package/dist/cmd/cloud/env/import.js.map +1 -1
  178. package/dist/cmd/cloud/env/index.d.ts.map +1 -1
  179. package/dist/cmd/cloud/env/index.js +8 -0
  180. package/dist/cmd/cloud/env/index.js.map +1 -1
  181. package/dist/cmd/cloud/env/list.d.ts.map +1 -1
  182. package/dist/cmd/cloud/env/list.js +5 -3
  183. package/dist/cmd/cloud/env/list.js.map +1 -1
  184. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  185. package/dist/cmd/cloud/env/pull.js +4 -1
  186. package/dist/cmd/cloud/env/pull.js.map +1 -1
  187. package/dist/cmd/cloud/env/push.js +1 -1
  188. package/dist/cmd/cloud/env/push.js.map +1 -1
  189. package/dist/cmd/cloud/env/set.js +3 -3
  190. package/dist/cmd/cloud/env/set.js.map +1 -1
  191. package/dist/cmd/cloud/index.d.ts.map +1 -1
  192. package/dist/cmd/cloud/index.js +9 -2
  193. package/dist/cmd/cloud/index.js.map +1 -1
  194. package/dist/cmd/cloud/keyvalue/create-namespace.d.ts.map +1 -1
  195. package/dist/cmd/cloud/keyvalue/create-namespace.js +9 -3
  196. package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -1
  197. package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts.map +1 -1
  198. package/dist/cmd/cloud/keyvalue/delete-namespace.js +12 -3
  199. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
  200. package/dist/cmd/cloud/keyvalue/delete.d.ts.map +1 -1
  201. package/dist/cmd/cloud/keyvalue/delete.js +6 -3
  202. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
  203. package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
  204. package/dist/cmd/cloud/keyvalue/get.js +3 -3
  205. package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
  206. package/dist/cmd/cloud/keyvalue/index.d.ts.map +1 -1
  207. package/dist/cmd/cloud/keyvalue/index.js +8 -0
  208. package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
  209. package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
  210. package/dist/cmd/cloud/keyvalue/keys.js +3 -3
  211. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
  212. package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -1
  213. package/dist/cmd/cloud/keyvalue/list-namespaces.js +3 -3
  214. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
  215. package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
  216. package/dist/cmd/cloud/keyvalue/repl.js +1 -1
  217. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
  218. package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
  219. package/dist/cmd/cloud/keyvalue/search.js +9 -3
  220. package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
  221. package/dist/cmd/cloud/keyvalue/set.d.ts.map +1 -1
  222. package/dist/cmd/cloud/keyvalue/set.js +12 -3
  223. package/dist/cmd/cloud/keyvalue/set.js.map +1 -1
  224. package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -1
  225. package/dist/cmd/cloud/keyvalue/stats.js +6 -3
  226. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
  227. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +1 -1
  228. package/dist/cmd/cloud/objectstore/delete-bucket.js +8 -2
  229. package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -1
  230. package/dist/cmd/cloud/objectstore/delete.d.ts.map +1 -1
  231. package/dist/cmd/cloud/objectstore/delete.js +12 -3
  232. package/dist/cmd/cloud/objectstore/delete.js.map +1 -1
  233. package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -1
  234. package/dist/cmd/cloud/objectstore/get.js +12 -3
  235. package/dist/cmd/cloud/objectstore/get.js.map +1 -1
  236. package/dist/cmd/cloud/objectstore/index.d.ts.map +1 -1
  237. package/dist/cmd/cloud/objectstore/index.js +8 -0
  238. package/dist/cmd/cloud/objectstore/index.js.map +1 -1
  239. package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -1
  240. package/dist/cmd/cloud/objectstore/list-buckets.js +6 -1
  241. package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -1
  242. package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -1
  243. package/dist/cmd/cloud/objectstore/list-keys.js +6 -3
  244. package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -1
  245. package/dist/cmd/cloud/objectstore/put.d.ts.map +1 -1
  246. package/dist/cmd/cloud/objectstore/put.js +12 -3
  247. package/dist/cmd/cloud/objectstore/put.js.map +1 -1
  248. package/dist/cmd/cloud/objectstore/repl.d.ts.map +1 -1
  249. package/dist/cmd/cloud/objectstore/repl.js +6 -1
  250. package/dist/cmd/cloud/objectstore/repl.js.map +1 -1
  251. package/dist/cmd/cloud/objectstore/url.d.ts.map +1 -1
  252. package/dist/cmd/cloud/objectstore/url.js +12 -3
  253. package/dist/cmd/cloud/objectstore/url.js.map +1 -1
  254. package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
  255. package/dist/cmd/cloud/scp/download.js +16 -4
  256. package/dist/cmd/cloud/scp/download.js.map +1 -1
  257. package/dist/cmd/cloud/scp/index.d.ts.map +1 -1
  258. package/dist/cmd/cloud/scp/index.js +11 -0
  259. package/dist/cmd/cloud/scp/index.js.map +1 -1
  260. package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
  261. package/dist/cmd/cloud/scp/upload.js +16 -4
  262. package/dist/cmd/cloud/scp/upload.js.map +1 -1
  263. package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
  264. package/dist/cmd/cloud/secret/delete.js +4 -1
  265. package/dist/cmd/cloud/secret/delete.js.map +1 -1
  266. package/dist/cmd/cloud/secret/get.d.ts.map +1 -1
  267. package/dist/cmd/cloud/secret/get.js +7 -5
  268. package/dist/cmd/cloud/secret/get.js.map +1 -1
  269. package/dist/cmd/cloud/secret/import.d.ts.map +1 -1
  270. package/dist/cmd/cloud/secret/import.js +5 -2
  271. package/dist/cmd/cloud/secret/import.js.map +1 -1
  272. package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
  273. package/dist/cmd/cloud/secret/index.js +8 -0
  274. package/dist/cmd/cloud/secret/index.js.map +1 -1
  275. package/dist/cmd/cloud/secret/list.d.ts.map +1 -1
  276. package/dist/cmd/cloud/secret/list.js +5 -3
  277. package/dist/cmd/cloud/secret/list.js.map +1 -1
  278. package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
  279. package/dist/cmd/cloud/secret/pull.js +4 -1
  280. package/dist/cmd/cloud/secret/pull.js.map +1 -1
  281. package/dist/cmd/cloud/secret/push.js +1 -1
  282. package/dist/cmd/cloud/secret/push.js.map +1 -1
  283. package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
  284. package/dist/cmd/cloud/secret/set.js +8 -2
  285. package/dist/cmd/cloud/secret/set.js.map +1 -1
  286. package/dist/cmd/cloud/session/get.js +1 -1
  287. package/dist/cmd/cloud/session/get.js.map +1 -1
  288. package/dist/cmd/cloud/session/index.d.ts.map +1 -1
  289. package/dist/cmd/cloud/session/index.js +5 -0
  290. package/dist/cmd/cloud/session/index.js.map +1 -1
  291. package/dist/cmd/cloud/session/list.d.ts.map +1 -1
  292. package/dist/cmd/cloud/session/list.js +29 -8
  293. package/dist/cmd/cloud/session/list.js.map +1 -1
  294. package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
  295. package/dist/cmd/cloud/session/logs.js +8 -2
  296. package/dist/cmd/cloud/session/logs.js.map +1 -1
  297. package/dist/cmd/cloud/ssh.d.ts.map +1 -1
  298. package/dist/cmd/cloud/ssh.js +15 -6
  299. package/dist/cmd/cloud/ssh.js.map +1 -1
  300. package/dist/cmd/cloud/storage/create.d.ts +2 -0
  301. package/dist/cmd/cloud/storage/create.d.ts.map +1 -0
  302. package/dist/cmd/cloud/storage/create.js +61 -0
  303. package/dist/cmd/cloud/storage/create.js.map +1 -0
  304. package/dist/cmd/cloud/storage/delete.d.ts +2 -0
  305. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -0
  306. package/dist/cmd/cloud/storage/delete.js +170 -0
  307. package/dist/cmd/cloud/storage/delete.js.map +1 -0
  308. package/dist/cmd/cloud/storage/download.d.ts +2 -0
  309. package/dist/cmd/cloud/storage/download.d.ts.map +1 -0
  310. package/dist/cmd/cloud/storage/download.js +143 -0
  311. package/dist/cmd/cloud/storage/download.js.map +1 -0
  312. package/dist/cmd/cloud/storage/get.d.ts +2 -0
  313. package/dist/cmd/cloud/storage/get.d.ts.map +1 -0
  314. package/dist/cmd/cloud/storage/get.js +95 -0
  315. package/dist/cmd/cloud/storage/get.js.map +1 -0
  316. package/dist/cmd/cloud/storage/index.d.ts +2 -0
  317. package/dist/cmd/cloud/storage/index.d.ts.map +1 -0
  318. package/dist/cmd/cloud/storage/index.js +30 -0
  319. package/dist/cmd/cloud/storage/index.js.map +1 -0
  320. package/dist/cmd/cloud/storage/list.d.ts +2 -0
  321. package/dist/cmd/cloud/storage/list.d.ts.map +1 -0
  322. package/dist/cmd/cloud/storage/list.js +193 -0
  323. package/dist/cmd/cloud/storage/list.js.map +1 -0
  324. package/dist/cmd/cloud/storage/upload.d.ts +2 -0
  325. package/dist/cmd/cloud/storage/upload.d.ts.map +1 -0
  326. package/dist/cmd/cloud/storage/upload.js +145 -0
  327. package/dist/cmd/cloud/storage/upload.js.map +1 -0
  328. package/dist/cmd/cloud/storage/utils.d.ts +18 -0
  329. package/dist/cmd/cloud/storage/utils.d.ts.map +1 -0
  330. package/dist/cmd/cloud/storage/utils.js +21 -0
  331. package/dist/cmd/cloud/storage/utils.js.map +1 -0
  332. package/dist/cmd/cloud/stream/delete.d.ts.map +1 -1
  333. package/dist/cmd/cloud/stream/delete.js +9 -3
  334. package/dist/cmd/cloud/stream/delete.js.map +1 -1
  335. package/dist/cmd/cloud/stream/get.d.ts.map +1 -1
  336. package/dist/cmd/cloud/stream/get.js +10 -4
  337. package/dist/cmd/cloud/stream/get.js.map +1 -1
  338. package/dist/cmd/cloud/stream/index.d.ts.map +1 -1
  339. package/dist/cmd/cloud/stream/index.js +5 -0
  340. package/dist/cmd/cloud/stream/index.js.map +1 -1
  341. package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
  342. package/dist/cmd/cloud/stream/list.js +8 -5
  343. package/dist/cmd/cloud/stream/list.js.map +1 -1
  344. package/dist/cmd/cloud/vector/delete.d.ts.map +1 -1
  345. package/dist/cmd/cloud/vector/delete.js +12 -3
  346. package/dist/cmd/cloud/vector/delete.js.map +1 -1
  347. package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
  348. package/dist/cmd/cloud/vector/get.js +12 -3
  349. package/dist/cmd/cloud/vector/get.js.map +1 -1
  350. package/dist/cmd/cloud/vector/index.d.ts.map +1 -1
  351. package/dist/cmd/cloud/vector/index.js +8 -0
  352. package/dist/cmd/cloud/vector/index.js.map +1 -1
  353. package/dist/cmd/cloud/vector/search.d.ts.map +1 -1
  354. package/dist/cmd/cloud/vector/search.js +20 -5
  355. package/dist/cmd/cloud/vector/search.js.map +1 -1
  356. package/dist/cmd/dev/agents.d.ts.map +1 -1
  357. package/dist/cmd/dev/agents.js +7 -2
  358. package/dist/cmd/dev/agents.js.map +1 -1
  359. package/dist/cmd/dev/api.d.ts.map +1 -1
  360. package/dist/cmd/dev/api.js +3 -1
  361. package/dist/cmd/dev/api.js.map +1 -1
  362. package/dist/cmd/dev/index.d.ts.map +1 -1
  363. package/dist/cmd/dev/index.js +13 -5
  364. package/dist/cmd/dev/index.js.map +1 -1
  365. package/dist/cmd/help/index.d.ts +2 -0
  366. package/dist/cmd/help/index.d.ts.map +1 -0
  367. package/dist/cmd/help/index.js +35 -0
  368. package/dist/cmd/help/index.js.map +1 -0
  369. package/dist/cmd/index.d.ts.map +1 -1
  370. package/dist/cmd/index.js +1 -0
  371. package/dist/cmd/index.js.map +1 -1
  372. package/dist/cmd/profile/create.js +3 -3
  373. package/dist/cmd/profile/create.js.map +1 -1
  374. package/dist/cmd/profile/delete.d.ts.map +1 -1
  375. package/dist/cmd/profile/delete.js +6 -3
  376. package/dist/cmd/profile/delete.js.map +1 -1
  377. package/dist/cmd/profile/index.d.ts.map +1 -1
  378. package/dist/cmd/profile/index.js +8 -0
  379. package/dist/cmd/profile/index.js.map +1 -1
  380. package/dist/cmd/profile/list.d.ts.map +1 -1
  381. package/dist/cmd/profile/list.js +4 -1
  382. package/dist/cmd/profile/list.js.map +1 -1
  383. package/dist/cmd/profile/show.d.ts.map +1 -1
  384. package/dist/cmd/profile/show.js +6 -3
  385. package/dist/cmd/profile/show.js.map +1 -1
  386. package/dist/cmd/profile/use.js +3 -3
  387. package/dist/cmd/profile/use.js.map +1 -1
  388. package/dist/cmd/project/create.d.ts.map +1 -1
  389. package/dist/cmd/project/create.js +11 -5
  390. package/dist/cmd/project/create.js.map +1 -1
  391. package/dist/cmd/project/delete.d.ts.map +1 -1
  392. package/dist/cmd/project/delete.js +15 -6
  393. package/dist/cmd/project/delete.js.map +1 -1
  394. package/dist/cmd/project/download.d.ts +1 -1
  395. package/dist/cmd/project/download.d.ts.map +1 -1
  396. package/dist/cmd/project/download.js +28 -2
  397. package/dist/cmd/project/download.js.map +1 -1
  398. package/dist/cmd/project/index.d.ts.map +1 -1
  399. package/dist/cmd/project/index.js +5 -0
  400. package/dist/cmd/project/index.js.map +1 -1
  401. package/dist/cmd/project/list.js +3 -3
  402. package/dist/cmd/project/list.js.map +1 -1
  403. package/dist/cmd/project/show.d.ts.map +1 -1
  404. package/dist/cmd/project/show.js +6 -3
  405. package/dist/cmd/project/show.js.map +1 -1
  406. package/dist/cmd/project/templates.d.ts.map +1 -1
  407. package/dist/cmd/project/templates.js +10 -2
  408. package/dist/cmd/project/templates.js.map +1 -1
  409. package/dist/cmd/repl/index.js +1 -1
  410. package/dist/cmd/repl/index.js.map +1 -1
  411. package/dist/cmd/version/index.d.ts.map +1 -1
  412. package/dist/cmd/version/index.js +4 -1
  413. package/dist/cmd/version/index.js.map +1 -1
  414. package/dist/command-prefix.d.ts.map +1 -1
  415. package/dist/command-prefix.js +5 -3
  416. package/dist/command-prefix.js.map +1 -1
  417. package/dist/config.d.ts +1 -1
  418. package/dist/config.d.ts.map +1 -1
  419. package/dist/config.js +3 -1
  420. package/dist/config.js.map +1 -1
  421. package/dist/crypto/box.d.ts.map +1 -1
  422. package/dist/crypto/box.js +31 -17
  423. package/dist/crypto/box.js.map +1 -1
  424. package/dist/download.d.ts.map +1 -1
  425. package/dist/download.js +7 -1
  426. package/dist/download.js.map +1 -1
  427. package/dist/env-util.d.ts +3 -0
  428. package/dist/env-util.d.ts.map +1 -1
  429. package/dist/env-util.js +43 -2
  430. package/dist/env-util.js.map +1 -1
  431. package/dist/errors.d.ts +4 -2
  432. package/dist/errors.d.ts.map +1 -1
  433. package/dist/errors.js +7 -1
  434. package/dist/errors.js.map +1 -1
  435. package/dist/index.d.ts +1 -1
  436. package/dist/index.d.ts.map +1 -1
  437. package/dist/index.js +1 -1
  438. package/dist/index.js.map +1 -1
  439. package/dist/schema-generator.d.ts +5 -1
  440. package/dist/schema-generator.d.ts.map +1 -1
  441. package/dist/schema-generator.js +1 -0
  442. package/dist/schema-generator.js.map +1 -1
  443. package/dist/steps.js +17 -13
  444. package/dist/steps.js.map +1 -1
  445. package/dist/tui.d.ts +4 -2
  446. package/dist/tui.d.ts.map +1 -1
  447. package/dist/tui.js +24 -14
  448. package/dist/tui.js.map +1 -1
  449. package/dist/types.d.ts +10 -6
  450. package/dist/types.d.ts.map +1 -1
  451. package/dist/types.js.map +1 -1
  452. package/dist/utils/date.d.ts.map +1 -1
  453. package/dist/utils/date.js +7 -2
  454. package/dist/utils/date.js.map +1 -1
  455. package/dist/version.js +1 -1
  456. package/dist/version.js.map +1 -1
  457. package/package.json +3 -3
  458. package/src/banner.ts +29 -13
  459. package/src/cli.ts +124 -14
  460. package/src/cmd/ai/capabilities/index.ts +4 -0
  461. package/src/cmd/ai/capabilities/show.ts +23 -5
  462. package/src/cmd/ai/index.ts +11 -0
  463. package/src/cmd/ai/prompt/agent.ts +342 -0
  464. package/src/cmd/ai/prompt/api.ts +274 -0
  465. package/src/cmd/ai/prompt/index.ts +18 -3
  466. package/src/cmd/ai/prompt/llm.ts +2 -2
  467. package/src/cmd/ai/prompt/web.ts +301 -0
  468. package/src/cmd/ai/schema/generate.ts +1 -1
  469. package/src/cmd/ai/schema/index.ts +2 -0
  470. package/src/cmd/ai/schema/show.ts +4 -1
  471. package/src/cmd/auth/api.ts +28 -6
  472. package/src/cmd/auth/index.ts +5 -0
  473. package/src/cmd/auth/login.ts +5 -22
  474. package/src/cmd/auth/logout.ts +4 -1
  475. package/src/cmd/auth/signup.ts +4 -1
  476. package/src/cmd/auth/ssh/add.ts +13 -4
  477. package/src/cmd/auth/ssh/api.ts +21 -5
  478. package/src/cmd/auth/ssh/delete.ts +4 -4
  479. package/src/cmd/auth/ssh/index.ts +5 -0
  480. package/src/cmd/auth/ssh/list.ts +3 -3
  481. package/src/cmd/auth/whoami.ts +4 -7
  482. package/src/cmd/build/ast.ts +605 -31
  483. package/src/cmd/build/bundler.ts +110 -37
  484. package/src/cmd/build/file.ts +1 -1
  485. package/src/cmd/build/fix-duplicate-exports.ts +4 -1
  486. package/src/cmd/build/index.ts +58 -13
  487. package/src/cmd/build/plugin.ts +210 -46
  488. package/src/cmd/cloud/agent/get.ts +5 -2
  489. package/src/cmd/cloud/agent/index.ts +5 -0
  490. package/src/cmd/cloud/agent/list.ts +3 -3
  491. package/src/cmd/cloud/apikey/create.ts +14 -5
  492. package/src/cmd/cloud/apikey/delete.ts +3 -3
  493. package/src/cmd/cloud/apikey/get.ts +1 -1
  494. package/src/cmd/cloud/apikey/index.ts +8 -0
  495. package/src/cmd/cloud/apikey/list.ts +4 -1
  496. package/src/cmd/cloud/db/create.ts +87 -0
  497. package/src/cmd/cloud/db/delete.ts +133 -0
  498. package/src/cmd/cloud/db/get.ts +83 -0
  499. package/src/cmd/cloud/db/index.ts +19 -0
  500. package/src/cmd/cloud/db/list.ts +95 -0
  501. package/src/cmd/cloud/db/sql.ts +134 -0
  502. package/src/cmd/cloud/deploy.ts +9 -3
  503. package/src/cmd/cloud/deployment/index.ts +5 -0
  504. package/src/cmd/cloud/deployment/list.ts +12 -3
  505. package/src/cmd/cloud/deployment/logs.ts +16 -4
  506. package/src/cmd/cloud/deployment/remove.ts +14 -4
  507. package/src/cmd/cloud/deployment/rollback.ts +8 -3
  508. package/src/cmd/cloud/deployment/show.ts +8 -2
  509. package/src/cmd/cloud/deployment/undeploy.ts +12 -4
  510. package/src/cmd/cloud/deployment/utils.ts +7 -1
  511. package/src/cmd/cloud/domain.ts +9 -2
  512. package/src/cmd/cloud/env/delete.ts +4 -1
  513. package/src/cmd/cloud/env/get.ts +6 -4
  514. package/src/cmd/cloud/env/import.ts +10 -0
  515. package/src/cmd/cloud/env/index.ts +8 -0
  516. package/src/cmd/cloud/env/list.ts +5 -3
  517. package/src/cmd/cloud/env/pull.ts +4 -1
  518. package/src/cmd/cloud/env/push.ts +1 -1
  519. package/src/cmd/cloud/env/set.ts +3 -3
  520. package/src/cmd/cloud/index.ts +9 -2
  521. package/src/cmd/cloud/keyvalue/create-namespace.ts +9 -4
  522. package/src/cmd/cloud/keyvalue/delete-namespace.ts +12 -4
  523. package/src/cmd/cloud/keyvalue/delete.ts +6 -4
  524. package/src/cmd/cloud/keyvalue/get.ts +3 -4
  525. package/src/cmd/cloud/keyvalue/index.ts +8 -0
  526. package/src/cmd/cloud/keyvalue/keys.ts +3 -4
  527. package/src/cmd/cloud/keyvalue/list-namespaces.ts +3 -4
  528. package/src/cmd/cloud/keyvalue/repl.ts +1 -2
  529. package/src/cmd/cloud/keyvalue/search.ts +9 -4
  530. package/src/cmd/cloud/keyvalue/set.ts +14 -4
  531. package/src/cmd/cloud/keyvalue/stats.ts +6 -4
  532. package/src/cmd/cloud/objectstore/delete-bucket.ts +8 -3
  533. package/src/cmd/cloud/objectstore/delete.ts +12 -4
  534. package/src/cmd/cloud/objectstore/get.ts +12 -4
  535. package/src/cmd/cloud/objectstore/index.ts +8 -0
  536. package/src/cmd/cloud/objectstore/list-buckets.ts +6 -2
  537. package/src/cmd/cloud/objectstore/list-keys.ts +6 -4
  538. package/src/cmd/cloud/objectstore/put.ts +16 -4
  539. package/src/cmd/cloud/objectstore/repl.ts +6 -2
  540. package/src/cmd/cloud/objectstore/url.ts +12 -4
  541. package/src/cmd/cloud/scp/download.ts +16 -5
  542. package/src/cmd/cloud/scp/index.ts +11 -0
  543. package/src/cmd/cloud/scp/upload.ts +16 -5
  544. package/src/cmd/cloud/secret/delete.ts +4 -1
  545. package/src/cmd/cloud/secret/get.ts +7 -5
  546. package/src/cmd/cloud/secret/import.ts +5 -2
  547. package/src/cmd/cloud/secret/index.ts +8 -0
  548. package/src/cmd/cloud/secret/list.ts +5 -3
  549. package/src/cmd/cloud/secret/pull.ts +4 -1
  550. package/src/cmd/cloud/secret/push.ts +1 -1
  551. package/src/cmd/cloud/secret/set.ts +8 -2
  552. package/src/cmd/cloud/session/get.ts +1 -1
  553. package/src/cmd/cloud/session/index.ts +5 -0
  554. package/src/cmd/cloud/session/list.ts +29 -8
  555. package/src/cmd/cloud/session/logs.ts +8 -2
  556. package/src/cmd/cloud/ssh.ts +15 -7
  557. package/src/cmd/cloud/storage/create.ts +65 -0
  558. package/src/cmd/cloud/storage/delete.ts +198 -0
  559. package/src/cmd/cloud/storage/download.ts +166 -0
  560. package/src/cmd/cloud/storage/get.ts +106 -0
  561. package/src/cmd/cloud/storage/index.ts +30 -0
  562. package/src/cmd/cloud/storage/list.ts +221 -0
  563. package/src/cmd/cloud/storage/upload.ts +165 -0
  564. package/src/cmd/cloud/storage/utils.ts +26 -0
  565. package/src/cmd/cloud/stream/delete.ts +9 -4
  566. package/src/cmd/cloud/stream/get.ts +10 -5
  567. package/src/cmd/cloud/stream/index.ts +5 -0
  568. package/src/cmd/cloud/stream/list.ts +8 -6
  569. package/src/cmd/cloud/vector/delete.ts +17 -6
  570. package/src/cmd/cloud/vector/get.ts +12 -4
  571. package/src/cmd/cloud/vector/index.ts +8 -0
  572. package/src/cmd/cloud/vector/search.ts +20 -6
  573. package/src/cmd/dev/agents.ts +7 -2
  574. package/src/cmd/dev/api.ts +4 -1
  575. package/src/cmd/dev/index.ts +16 -5
  576. package/src/cmd/help/index.ts +40 -0
  577. package/src/cmd/index.ts +1 -0
  578. package/src/cmd/profile/create.ts +3 -3
  579. package/src/cmd/profile/delete.ts +6 -3
  580. package/src/cmd/profile/index.ts +8 -0
  581. package/src/cmd/profile/list.ts +4 -1
  582. package/src/cmd/profile/show.ts +6 -3
  583. package/src/cmd/profile/use.ts +3 -3
  584. package/src/cmd/project/create.ts +11 -5
  585. package/src/cmd/project/delete.ts +15 -6
  586. package/src/cmd/project/download.ts +35 -3
  587. package/src/cmd/project/index.ts +5 -0
  588. package/src/cmd/project/list.ts +3 -3
  589. package/src/cmd/project/show.ts +6 -3
  590. package/src/cmd/project/templates.ts +12 -2
  591. package/src/cmd/repl/index.ts +1 -1
  592. package/src/cmd/version/index.ts +4 -1
  593. package/src/command-prefix.ts +5 -3
  594. package/src/config.ts +4 -2
  595. package/src/crypto/box.ts +69 -17
  596. package/src/download.ts +7 -1
  597. package/src/env-util.ts +44 -2
  598. package/src/errors.ts +9 -1
  599. package/src/index.ts +6 -1
  600. package/src/schema-generator.ts +7 -1
  601. package/src/steps.ts +22 -13
  602. package/src/tui.ts +32 -16
  603. package/src/types.ts +11 -6
  604. package/src/utils/date.ts +9 -4
  605. package/src/version.ts +1 -1
  606. package/dist/cmd/cloud/resource/add.d.ts +0 -2
  607. package/dist/cmd/cloud/resource/add.d.ts.map +0 -1
  608. package/dist/cmd/cloud/resource/add.js +0 -70
  609. package/dist/cmd/cloud/resource/add.js.map +0 -1
  610. package/dist/cmd/cloud/resource/delete.d.ts.map +0 -1
  611. package/dist/cmd/cloud/resource/delete.js +0 -126
  612. package/dist/cmd/cloud/resource/delete.js.map +0 -1
  613. package/dist/cmd/cloud/resource/index.d.ts +0 -2
  614. package/dist/cmd/cloud/resource/index.d.ts.map +0 -1
  615. package/dist/cmd/cloud/resource/index.js +0 -12
  616. package/dist/cmd/cloud/resource/index.js.map +0 -1
  617. package/dist/cmd/cloud/resource/list.d.ts.map +0 -1
  618. package/dist/cmd/cloud/resource/list.js +0 -100
  619. package/dist/cmd/cloud/resource/list.js.map +0 -1
  620. package/src/cmd/cloud/resource/add.ts +0 -75
  621. package/src/cmd/cloud/resource/delete.ts +0 -141
  622. package/src/cmd/cloud/resource/index.ts +0 -12
  623. package/src/cmd/cloud/resource/list.ts +0 -105
  624. /package/dist/cmd/cloud/{resource → db}/delete.d.ts +0 -0
  625. /package/dist/cmd/cloud/{resource → db}/list.d.ts +0 -0
@@ -0,0 +1,221 @@
1
+ import { z } from 'zod';
2
+ import { listResources } from '@agentuity/server';
3
+ import { createSubcommand } from '../../../types';
4
+ import * as tui from '../../../tui';
5
+ import { getCatalystAPIClient } from '../../../config';
6
+ import { getCommand } from '../../../command-prefix';
7
+ import { ErrorCode } from '../../../errors';
8
+ import { createS3Client } from './utils';
9
+
10
+ const StorageListResponseSchema = z.object({
11
+ buckets: z
12
+ .array(
13
+ z.object({
14
+ bucket_name: z.string().describe('Storage bucket name'),
15
+ access_key: z.string().optional().describe('S3 access key'),
16
+ secret_key: z.string().optional().describe('S3 secret key'),
17
+ region: z.string().optional().describe('S3 region'),
18
+ endpoint: z.string().optional().describe('S3 endpoint URL'),
19
+ })
20
+ )
21
+ .optional()
22
+ .describe('List of storage resources'),
23
+ files: z
24
+ .array(
25
+ z.object({
26
+ key: z.string().describe('File key/path'),
27
+ size: z.number().describe('File size in bytes'),
28
+ lastModified: z.string().describe('Last modified timestamp'),
29
+ })
30
+ )
31
+ .optional()
32
+ .describe('List of files in bucket'),
33
+ });
34
+
35
+ export const listSubcommand = createSubcommand({
36
+ name: 'list',
37
+ aliases: ['ls'],
38
+ description: 'List storage resources or files in a bucket',
39
+ tags: ['read-only', 'fast', 'requires-auth'],
40
+ requires: { auth: true, org: true, region: true },
41
+ idempotent: true,
42
+ examples: [
43
+ { command: getCommand('cloud storage list'), description: 'List items' },
44
+ { command: getCommand('cloud storage list my-bucket'), description: 'List items' },
45
+ {
46
+ command: getCommand('cloud storage list my-bucket path/prefix'),
47
+ description: 'List items',
48
+ },
49
+ {
50
+ command: getCommand('--json cloud storage list'),
51
+ description: 'Show output in JSON format',
52
+ },
53
+ { command: getCommand('cloud storage ls'), description: 'List items' },
54
+ {
55
+ command: getCommand('cloud storage list --show-credentials'),
56
+ description: 'Use show credentials option',
57
+ },
58
+ ],
59
+ schema: {
60
+ args: z.object({
61
+ name: z.string().optional().describe('Bucket name to list files from'),
62
+ prefix: z.string().optional().describe('Path prefix to filter files'),
63
+ }),
64
+ options: z.object({
65
+ showCredentials: z
66
+ .boolean()
67
+ .optional()
68
+ .describe(
69
+ 'Show credentials in plain text (default: masked in terminal, unmasked in JSON)'
70
+ ),
71
+ nameOnly: z.boolean().optional().describe('Print the name only'),
72
+ }),
73
+ response: StorageListResponseSchema,
74
+ },
75
+
76
+ async handler(ctx) {
77
+ const { logger, args, opts, options, orgId, region, config, auth } = ctx;
78
+
79
+ const catalystClient = getCatalystAPIClient(config, logger, auth);
80
+
81
+ const resources = await tui.spinner({
82
+ message: `Fetching storage for ${orgId} in ${region}`,
83
+ clearOnSuccess: true,
84
+ callback: async () => {
85
+ return listResources(catalystClient, orgId, region);
86
+ },
87
+ });
88
+
89
+ // If bucket name is provided, list files in the bucket
90
+ if (args.name) {
91
+ const bucket = resources.s3.find((s3) => s3.bucket_name === args.name);
92
+
93
+ if (!bucket) {
94
+ tui.fatal(`Storage bucket '${args.name}' not found`, ErrorCode.RESOURCE_NOT_FOUND);
95
+ }
96
+
97
+ if (!bucket.access_key || !bucket.secret_key || !bucket.endpoint) {
98
+ tui.fatal(
99
+ `Storage bucket '${args.name}' is missing credentials`,
100
+ ErrorCode.CONFIG_INVALID
101
+ );
102
+ }
103
+
104
+ const s3Client = createS3Client({
105
+ endpoint: bucket.endpoint,
106
+ access_key: bucket.access_key,
107
+ secret_key: bucket.secret_key,
108
+ region: bucket.region,
109
+ });
110
+
111
+ const result = await tui.spinner({
112
+ message: `Listing files in ${args.name}${args.prefix ? ` with prefix ${args.prefix}` : ''}`,
113
+ clearOnSuccess: true,
114
+ callback: async () => {
115
+ return s3Client.list(
116
+ args.prefix
117
+ ? {
118
+ prefix: args.prefix,
119
+ }
120
+ : null
121
+ );
122
+ },
123
+ });
124
+
125
+ const objects = result.contents || [];
126
+
127
+ if (!options.json) {
128
+ if (objects.length === 0) {
129
+ tui.info('No files found');
130
+ } else {
131
+ if (opts.nameOnly) {
132
+ for (const obj of objects) {
133
+ console.log(obj.key);
134
+ }
135
+ } else {
136
+ tui.info(
137
+ tui.bold(
138
+ `Files in ${args.name}${args.prefix ? ` (prefix: ${args.prefix})` : ''}`
139
+ )
140
+ );
141
+ tui.newline();
142
+ for (const obj of objects) {
143
+ console.log(
144
+ `${obj.key} ${tui.muted(`(${obj.size} bytes, ${obj.lastModified})`)}`
145
+ );
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ return {
152
+ files: objects.map((obj) => {
153
+ const lastModified = obj.lastModified;
154
+ let lastModifiedStr = '';
155
+ if (typeof lastModified === 'string') {
156
+ lastModifiedStr = lastModified;
157
+ } else if (
158
+ lastModified &&
159
+ typeof lastModified === 'object' &&
160
+ 'toISOString' in lastModified
161
+ ) {
162
+ lastModifiedStr = (lastModified as Date).toISOString();
163
+ }
164
+ return {
165
+ key: obj.key,
166
+ size: obj.size ?? 0,
167
+ lastModified: lastModifiedStr,
168
+ };
169
+ }),
170
+ };
171
+ }
172
+
173
+ // Otherwise, list buckets
174
+ // Mask credentials in terminal output by default, unless --show-credentials is passed
175
+ const shouldShowCredentials = opts.showCredentials === true;
176
+ const shouldMask = !options.json && !shouldShowCredentials;
177
+
178
+ if (!options.json) {
179
+ if (resources.s3.length === 0) {
180
+ tui.info('No storage buckets found');
181
+ } else {
182
+ if (!opts.nameOnly) {
183
+ tui.info(tui.bold('Storage'));
184
+ tui.newline();
185
+ }
186
+ for (const s3 of resources.s3) {
187
+ if (opts.nameOnly) {
188
+ console.log(s3.bucket_name);
189
+ continue;
190
+ }
191
+ console.log(tui.bold(s3.bucket_name));
192
+ if (s3.access_key) {
193
+ const displayAccessKey = shouldMask
194
+ ? tui.maskSecret(s3.access_key)
195
+ : s3.access_key;
196
+ console.log(` Access Key: ${tui.muted(displayAccessKey)}`);
197
+ }
198
+ if (s3.secret_key) {
199
+ const displaySecretKey = shouldMask
200
+ ? tui.maskSecret(s3.secret_key)
201
+ : s3.secret_key;
202
+ console.log(` Secret Key: ${tui.muted(displaySecretKey)}`);
203
+ }
204
+ if (s3.region) console.log(` Region: ${tui.muted(s3.region)}`);
205
+ if (s3.endpoint) console.log(` Endpoint: ${tui.muted(s3.endpoint)}`);
206
+ tui.newline();
207
+ }
208
+ }
209
+ }
210
+
211
+ return {
212
+ buckets: resources.s3.map((s3) => ({
213
+ bucket_name: s3.bucket_name,
214
+ access_key: s3.access_key ?? undefined,
215
+ secret_key: s3.secret_key ?? undefined,
216
+ region: s3.region ?? undefined,
217
+ endpoint: s3.endpoint ?? undefined,
218
+ })),
219
+ };
220
+ },
221
+ });
@@ -0,0 +1,165 @@
1
+ import { z } from 'zod';
2
+ import { basename } from 'path';
3
+ import { listResources } from '@agentuity/server';
4
+ import { createSubcommand } from '../../../types';
5
+ import * as tui from '../../../tui';
6
+ import { getCatalystAPIClient } from '../../../config';
7
+ import { getCommand } from '../../../command-prefix';
8
+ import { ErrorCode } from '../../../errors';
9
+ import { createS3Client } from './utils';
10
+
11
+ export const uploadSubcommand = createSubcommand({
12
+ name: 'upload',
13
+ aliases: ['put'],
14
+ description: 'Upload a file to storage bucket',
15
+ tags: ['write', 'requires-auth'],
16
+ requires: { auth: true, org: true, region: true },
17
+ idempotent: false,
18
+ examples: [
19
+ {
20
+ command: `${getCommand('cloud storage upload')} my-bucket file.txt`,
21
+ description: 'Upload file to bucket',
22
+ },
23
+ {
24
+ command: `${getCommand('cloud storage put')} my-bucket file.txt --content-type text/plain`,
25
+ description: 'Upload file with content type',
26
+ },
27
+ {
28
+ command: `cat file.txt | ${getCommand('cloud storage upload')} my-bucket -`,
29
+ description: 'Upload from stdin',
30
+ },
31
+ ],
32
+ schema: {
33
+ args: z.object({
34
+ name: z.string().describe('Bucket name'),
35
+ filename: z.string().describe('File path to upload or "-" for STDIN'),
36
+ }),
37
+ options: z.object({
38
+ contentType: z
39
+ .string()
40
+ .optional()
41
+ .describe('Content type (auto-detected if not provided)'),
42
+ }),
43
+ response: z.object({
44
+ success: z.boolean().describe('Whether upload succeeded'),
45
+ bucket: z.string().describe('Bucket name'),
46
+ filename: z.string().describe('Uploaded filename'),
47
+ size: z.number().describe('File size in bytes'),
48
+ }),
49
+ },
50
+
51
+ async handler(ctx) {
52
+ const { logger, args, opts, options, orgId, region, config, auth } = ctx;
53
+
54
+ const catalystClient = getCatalystAPIClient(config, logger, auth);
55
+
56
+ // Fetch bucket credentials
57
+ const resources = await tui.spinner({
58
+ message: `Fetching credentials for ${args.name}`,
59
+ clearOnSuccess: true,
60
+ callback: async () => {
61
+ return listResources(catalystClient, orgId, region);
62
+ },
63
+ });
64
+
65
+ const bucket = resources.s3.find((s3) => s3.bucket_name === args.name);
66
+
67
+ if (!bucket) {
68
+ tui.fatal(`Storage bucket '${args.name}' not found`, ErrorCode.RESOURCE_NOT_FOUND);
69
+ }
70
+
71
+ if (!bucket.access_key || !bucket.secret_key || !bucket.endpoint) {
72
+ tui.fatal(
73
+ `Storage bucket '${args.name}' is missing credentials`,
74
+ ErrorCode.CONFIG_INVALID
75
+ );
76
+ }
77
+
78
+ // TODO: we need to optimize this to not load the entire file in memory!
79
+
80
+ // Read file content
81
+ let fileContent: Buffer;
82
+ let actualFilename: string;
83
+
84
+ if (args.filename === '-') {
85
+ // Read from STDIN (binary-safe)
86
+ try {
87
+ const arrayBuffer = await Bun.readableStreamToArrayBuffer(Bun.stdin.stream());
88
+ fileContent = Buffer.from(arrayBuffer);
89
+ actualFilename = 'stdin';
90
+ } catch (error) {
91
+ tui.fatal(
92
+ `Cannot read from stdin: ${error instanceof Error ? error.message : String(error)}`,
93
+ ErrorCode.FILE_NOT_FOUND
94
+ );
95
+ }
96
+ } else {
97
+ // Read from file
98
+ const file = Bun.file(args.filename);
99
+ if (!(await file.exists())) {
100
+ tui.fatal(`File not found: ${args.filename}`, ErrorCode.FILE_NOT_FOUND);
101
+ }
102
+ fileContent = Buffer.from(await file.arrayBuffer());
103
+ actualFilename = basename(args.filename);
104
+ }
105
+
106
+ // Auto-detect content type
107
+ let contentType = opts.contentType;
108
+ if (!contentType && args.filename !== '-') {
109
+ const filename = basename(args.filename);
110
+ const dotIndex = filename.lastIndexOf('.');
111
+ const ext = dotIndex > 0 ? filename.substring(dotIndex + 1).toLowerCase() : undefined;
112
+ const mimeTypes: Record<string, string> = {
113
+ txt: 'text/plain',
114
+ html: 'text/html',
115
+ css: 'text/css',
116
+ yaml: 'application/x-yaml',
117
+ yml: 'application/x-yaml',
118
+ js: 'application/javascript',
119
+ json: 'application/json',
120
+ xml: 'application/xml',
121
+ pdf: 'application/pdf',
122
+ zip: 'application/zip',
123
+ jpg: 'image/jpeg',
124
+ jpeg: 'image/jpeg',
125
+ png: 'image/png',
126
+ gif: 'image/gif',
127
+ svg: 'image/svg+xml',
128
+ mp4: 'video/mp4',
129
+ mp3: 'audio/mpeg',
130
+ };
131
+ contentType = ext ? mimeTypes[ext] : 'application/octet-stream';
132
+ }
133
+
134
+ // Upload using Bun.s3
135
+ const s3Client = createS3Client({
136
+ endpoint: bucket.endpoint,
137
+ access_key: bucket.access_key,
138
+ secret_key: bucket.secret_key,
139
+ region: bucket.region,
140
+ });
141
+
142
+ await tui.spinner({
143
+ message: `Uploading ${actualFilename} to ${args.name}`,
144
+ clearOnSuccess: true,
145
+ callback: async () => {
146
+ await s3Client.write(actualFilename, fileContent, {
147
+ type: contentType,
148
+ });
149
+ },
150
+ });
151
+
152
+ if (!options.json) {
153
+ tui.success(
154
+ `Uploaded ${tui.bold(actualFilename)} to ${tui.bold(args.name)} (${fileContent.length} bytes)`
155
+ );
156
+ }
157
+
158
+ return {
159
+ success: true,
160
+ bucket: args.name,
161
+ filename: actualFilename,
162
+ size: fileContent.length,
163
+ };
164
+ },
165
+ });
@@ -0,0 +1,26 @@
1
+ import { S3Client } from 'bun';
2
+
3
+ /**
4
+ * Creates an S3Client configured for Agentuity storage buckets
5
+ *
6
+ * Agentuity provides bucket-specific endpoints in virtual-hosted-style format.
7
+ * The endpoint is already bucket-specific (e.g., bucket-name.agentuity.run),
8
+ * so we use virtualHostedStyle: true WITHOUT passing a bucket parameter.
9
+ *
10
+ * @param bucket - Bucket configuration with endpoint, credentials, and region
11
+ * @returns Configured S3Client instance
12
+ */
13
+ export function createS3Client(bucket: {
14
+ endpoint: string;
15
+ access_key: string;
16
+ secret_key: string;
17
+ region?: string | null;
18
+ }): S3Client {
19
+ return new S3Client({
20
+ endpoint: bucket.endpoint.startsWith('http') ? bucket.endpoint : `https://${bucket.endpoint}`,
21
+ accessKeyId: bucket.access_key,
22
+ secretAccessKey: bucket.secret_key,
23
+ region: bucket.region || 'auto',
24
+ virtualHostedStyle: true,
25
+ });
26
+ }
@@ -3,7 +3,6 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { createStorageAdapter } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
-
7
6
  const DeleteStreamResponseSchema = z.object({
8
7
  id: z.string().describe('Stream ID'),
9
8
  });
@@ -16,9 +15,15 @@ export const deleteSubcommand = createCommand({
16
15
  idempotent: true,
17
16
  requires: { auth: true, project: true },
18
17
  examples: [
19
- `${getCommand('stream delete stream-id-123')} - Delete a stream`,
20
- `${getCommand('stream rm stream-id-456')} - Delete stream (using alias)`,
21
- `${getCommand('stream del stream-id-789')} - Delete stream (using alias)`,
18
+ { command: getCommand('stream delete stream-id-123'), description: 'Delete a stream' },
19
+ {
20
+ command: getCommand('stream rm stream-id-456'),
21
+ description: 'Delete stream (using alias)',
22
+ },
23
+ {
24
+ command: getCommand('stream del stream-id-789'),
25
+ description: 'Delete stream (using alias)',
26
+ },
22
27
  ],
23
28
  schema: {
24
29
  args: z.object({
@@ -3,7 +3,6 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { createStorageAdapter } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
-
7
6
  function formatBytes(bytes: number): string {
8
7
  if (bytes === 0) return '0 B';
9
8
  if (bytes < 1024) return `${bytes} B`;
@@ -27,10 +26,16 @@ export const getSubcommand = createCommand({
27
26
  requires: { auth: true, project: true },
28
27
  idempotent: true,
29
28
  examples: [
30
- `${getCommand('stream get stream-id-123')} - Get stream details`,
31
- `${getCommand('stream get stream-id-123 --json')} - Get stream as JSON`,
32
- `${getCommand('stream get stream-id-123 --output stream.dat')} - Download stream to file`,
33
- `${getCommand('stream get stream-id-123 -o stream.dat')} - Download stream (short flag)`,
29
+ { command: getCommand('stream get stream-id-123'), description: 'Get stream details' },
30
+ { command: getCommand('stream get stream-id-123 --json'), description: 'Get stream as JSON' },
31
+ {
32
+ command: getCommand('stream get stream-id-123 --output stream.dat'),
33
+ description: 'Download stream to file',
34
+ },
35
+ {
36
+ command: getCommand('stream get stream-id-123 -o stream.dat'),
37
+ description: 'Download stream (short flag)',
38
+ },
34
39
  ],
35
40
  schema: {
36
41
  args: z.object({
@@ -2,12 +2,17 @@ import { createCommand } from '../../../types';
2
2
  import listSubcommand from './list';
3
3
  import getSubcommand from './get';
4
4
  import deleteSubcommand from './delete';
5
+ import { getCommand } from '../../../command-prefix';
5
6
 
6
7
  export const streamCommand = createCommand({
7
8
  name: 'stream',
8
9
  aliases: ['streams'],
9
10
  description: 'Manage streams',
10
11
  tags: ['slow', 'requires-auth'],
12
+ examples: [
13
+ { command: getCommand('cloud stream list'), description: 'List all streams' },
14
+ { command: getCommand('cloud stream get <id>'), description: 'Get stream details' },
15
+ ],
11
16
  subcommands: [listSubcommand, getSubcommand, deleteSubcommand],
12
17
  });
13
18
 
@@ -3,7 +3,6 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { createStorageAdapter } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
-
7
6
  function formatBytes(bytes: number): string {
8
7
  if (bytes === 0) return '0 B';
9
8
  if (bytes < 1024) return `${bytes} B`;
@@ -33,11 +32,14 @@ export const listSubcommand = createCommand({
33
32
  requires: { auth: true, project: true },
34
33
  idempotent: true,
35
34
  examples: [
36
- `${getCommand('stream list')} - List all streams`,
37
- `${getCommand('stream ls --size 50')} - List 50 most recent streams`,
38
- `${getCommand('stream list --name agent-logs')} - Filter by name`,
39
- `${getCommand('stream list --metadata type=export')} - Filter by metadata`,
40
- `${getCommand('stream ls --json')} - Output as JSON`,
35
+ { command: getCommand('stream list'), description: 'List all streams' },
36
+ { command: getCommand('stream ls --size 50'), description: 'List 50 most recent streams' },
37
+ { command: getCommand('stream list --name agent-logs'), description: 'Filter by name' },
38
+ {
39
+ command: getCommand('stream list --metadata type=export'),
40
+ description: 'Filter by metadata',
41
+ },
42
+ { command: getCommand('stream ls --json'), description: 'Output as JSON' },
41
43
  ],
42
44
  schema: {
43
45
  options: z.object({
@@ -4,7 +4,6 @@ import { ErrorCode } from '../../../errors';
4
4
  import * as tui from '../../../tui';
5
5
  import { createStorageAdapter } from './util';
6
6
  import { getCommand } from '../../../command-prefix';
7
-
8
7
  const VectorDeleteResponseSchema = z.object({
9
8
  success: z.boolean().describe('Whether the operation succeeded'),
10
9
  namespace: z.string().describe('Namespace name'),
@@ -22,9 +21,18 @@ export const deleteSubcommand = createCommand({
22
21
  requires: { auth: true, project: true },
23
22
  idempotent: true,
24
23
  examples: [
25
- `${getCommand('vector delete products chair-001')} - Delete a single vector (interactive)`,
26
- `${getCommand('vector rm knowledge-base doc-123 doc-456 --confirm')} - Delete multiple vectors without confirmation`,
27
- `${getCommand('vector del embeddings old-profile-1 old-profile-2 --confirm')} - Bulk delete without confirmation`,
24
+ {
25
+ command: getCommand('vector delete products chair-001'),
26
+ description: 'Delete a single vector (interactive)',
27
+ },
28
+ {
29
+ command: getCommand('vector rm knowledge-base doc-123 doc-456 --confirm'),
30
+ description: 'Delete multiple vectors without confirmation',
31
+ },
32
+ {
33
+ command: getCommand('vector del embeddings old-profile-1 old-profile-2 --confirm'),
34
+ description: 'Bulk delete without confirmation',
35
+ },
28
36
  ],
29
37
  schema: {
30
38
  args: z.object({
@@ -51,8 +59,11 @@ export const deleteSubcommand = createCommand({
51
59
  ErrorCode.VALIDATION_FAILED
52
60
  );
53
61
  }
54
- const keyList = args.keys.length > 3 ? `${args.keys.slice(0, 3).join(', ')}...` : args.keys.join(', ');
55
- tui.warning(`This will delete ${args.keys.length} vector(s) from ${tui.bold(args.namespace)}: ${keyList}`);
62
+ const keyList =
63
+ args.keys.length > 3 ? `${args.keys.slice(0, 3).join(', ')}...` : args.keys.join(', ');
64
+ tui.warning(
65
+ `This will delete ${args.keys.length} vector(s) from ${tui.bold(args.namespace)}: ${keyList}`
66
+ );
56
67
  const confirm = await new Promise<boolean>((resolve) => {
57
68
  process.stdout.write('Are you sure? (yes/no): ');
58
69
  process.stdin.once('data', (data) => {
@@ -3,7 +3,6 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { createStorageAdapter } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
-
7
6
  const VectorGetResponseSchema = z.object({
8
7
  exists: z.boolean().describe('Whether the vector exists'),
9
8
  key: z.string().optional().describe('Vector key'),
@@ -20,9 +19,18 @@ export const getSubcommand = createCommand({
20
19
  requires: { auth: true, project: true },
21
20
  idempotent: true,
22
21
  examples: [
23
- `${getCommand('vector get products chair-001')} - Get a specific product vector`,
24
- `${getCommand('vector get knowledge-base doc-123')} - Get a document from knowledge base`,
25
- `${getCommand('vector get embeddings user-profile-456')} - Get user profile embedding`,
22
+ {
23
+ command: getCommand('vector get products chair-001'),
24
+ description: 'Get a specific product vector',
25
+ },
26
+ {
27
+ command: getCommand('vector get knowledge-base doc-123'),
28
+ description: 'Get a document from knowledge base',
29
+ },
30
+ {
31
+ command: getCommand('vector get embeddings user-profile-456'),
32
+ description: 'Get user profile embedding',
33
+ },
26
34
  ],
27
35
  schema: {
28
36
  args: z.object({
@@ -2,12 +2,20 @@ import { createCommand } from '../../../types';
2
2
  import { deleteSubcommand } from './delete';
3
3
  import { getSubcommand } from './get';
4
4
  import { searchSubcommand } from './search';
5
+ import { getCommand } from '../../../command-prefix';
5
6
 
6
7
  export const vectorCommand = createCommand({
7
8
  name: 'vector',
8
9
  aliases: ['vec'],
9
10
  description: 'Manage vector storage for your projects',
10
11
  tags: ['requires-auth', 'destructive', 'deletes-resource', 'slow'],
12
+ examples: [
13
+ {
14
+ command: getCommand('cloud vector search "query text"'),
15
+ description: 'Search vector storage',
16
+ },
17
+ { command: getCommand('cloud vec get <id>'), description: 'Get vector by ID' },
18
+ ],
11
19
  subcommands: [searchSubcommand, getSubcommand, deleteSubcommand],
12
20
  requires: { auth: true, project: true },
13
21
  });
@@ -3,7 +3,6 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { createStorageAdapter } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
-
7
6
  const VectorSearchResultSchema = z.object({
8
7
  id: z.string().describe('Vector ID'),
9
8
  key: z.string().describe('Vector key'),
@@ -26,11 +25,26 @@ export const searchSubcommand = createCommand({
26
25
  requires: { auth: true, project: true },
27
26
  idempotent: true,
28
27
  examples: [
29
- `${getCommand('vector search products "comfortable office chair"')} - Search for similar products`,
30
- `${getCommand('vector list knowledge-base "machine learning"')} - Search knowledge base`,
31
- `${getCommand('vector search docs "API documentation" --limit 5')} - Limit results`,
32
- `${getCommand('vector search products "ergonomic" --similarity 0.8')} - Set minimum similarity`,
33
- `${getCommand('vector ls embeddings "neural networks" --metadata category=ai')} - Filter by metadata`,
28
+ {
29
+ command: getCommand('vector search products "comfortable office chair"'),
30
+ description: 'Search for similar products',
31
+ },
32
+ {
33
+ command: getCommand('vector list knowledge-base "machine learning"'),
34
+ description: 'Search knowledge base',
35
+ },
36
+ {
37
+ command: getCommand('vector search docs "API documentation" --limit 5'),
38
+ description: 'Limit results',
39
+ },
40
+ {
41
+ command: getCommand('vector search products "ergonomic" --similarity 0.8'),
42
+ description: 'Set minimum similarity',
43
+ },
44
+ {
45
+ command: getCommand('vector ls embeddings "neural networks" --metadata category=ai'),
46
+ description: 'Filter by metadata',
47
+ },
34
48
  ],
35
49
  schema: {
36
50
  args: z.object({