@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
package/src/crypto/box.ts CHANGED
@@ -62,6 +62,7 @@
62
62
  import { createCipheriv, createDecipheriv, createECDH, randomBytes, KeyObject } from 'node:crypto';
63
63
  import { Readable, Writable } from 'node:stream';
64
64
  import { createHash } from 'node:crypto';
65
+ import { StructuredError } from '@agentuity/core';
65
66
 
66
67
  const FRAME = 65519;
67
68
  const DEK_SIZE = 32;
@@ -87,13 +88,64 @@ function concatKDFSHA256(z: Buffer, keyDataLen: number, ...otherInfo: Buffer[]):
87
88
  return h.digest();
88
89
  }
89
90
 
91
+ const InvalidECPublicKeyError = StructuredError('InvalidECPublicKeyError', 'Invalid EC public key');
92
+ const InvalidECPrivateKeyError = StructuredError(
93
+ 'InvalidECPrivateKeyError',
94
+ 'Invalid EC private key'
95
+ );
96
+ const InvalidDEKTooShortError = StructuredError(
97
+ 'InvalidDEKTooShortError',
98
+ 'Invalid DEK too short (wrapped)'
99
+ );
100
+ const InvalidDEKFormatError = StructuredError(
101
+ 'InvalidDEKFormatError',
102
+ 'Invalid DEK format (wrapped)'
103
+ );
104
+ const DEKUnwrappedFailedError = StructuredError('DEKUnwrappedFailedError', 'DEK unwrap failed');
105
+
106
+ const InvalidKeyECOnlyError = StructuredError(
107
+ 'InvalidKeyECOnlyError',
108
+ 'Invalid Key: only EC keys supported'
109
+ );
110
+ const InvalidKeyP256OnlyError = StructuredError(
111
+ 'InvalidKeyP256OnlyError',
112
+ 'Invalid Key: only P-256 keys supported'
113
+ );
114
+
115
+ const InvalidCipherTextLengthError = StructuredError(
116
+ 'InvalidCipherTextLengthError',
117
+ 'ciphertext length exceeds uint16 limit'
118
+ );
119
+
120
+ const InvalidWrappedDEKLengthError = StructuredError(
121
+ 'InvalidWrappedDEKLengthError',
122
+ 'invalid wrapped DEK length'
123
+ );
124
+
125
+ const UnexpectedEOFChunkLengthError = StructuredError(
126
+ 'UnexpectedEOFChunkLengthError',
127
+ 'unexpected EOF reading chunk length'
128
+ );
129
+
130
+ const UnexpectedChunkTooLargeError = StructuredError(
131
+ 'UnexpectedChunkTooLargeError',
132
+ 'chunk too large'
133
+ );
134
+
135
+ const UnexpectedChunkTooShortError = StructuredError(
136
+ 'UnexpectedChunkTooShortError',
137
+ 'chunk too short for auth tag'
138
+ );
139
+
140
+ const UnexpectedEOFError = StructuredError('UnexpectedEOFError', 'unexpected EOF');
141
+
90
142
  function wrapDEKWithECDH(dek: Buffer, recipientPub: KeyObject): Buffer {
91
143
  const ephemeral = createECDH('prime256v1');
92
144
  ephemeral.generateKeys();
93
145
 
94
146
  const jwk = recipientPub.export({ format: 'jwk' });
95
147
  if (!jwk.x || !jwk.y) {
96
- throw new Error('Invalid EC public key');
148
+ throw new InvalidECPublicKeyError();
97
149
  }
98
150
 
99
151
  const xBuf = Buffer.from(jwk.x, 'base64url');
@@ -116,7 +168,7 @@ function wrapDEKWithECDH(dek: Buffer, recipientPub: KeyObject): Buffer {
116
168
 
117
169
  function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
118
170
  if (wrapped.length < PUBKEY_LEN + 12 + DEK_SIZE + GCM_TAG) {
119
- throw new Error('wrapped DEK too short');
171
+ throw new InvalidDEKTooShortError();
120
172
  }
121
173
 
122
174
  const ephemeralPubBytes = wrapped.subarray(0, PUBKEY_LEN);
@@ -124,7 +176,7 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
124
176
 
125
177
  const jwk = recipientPriv.export({ format: 'jwk' });
126
178
  if (!jwk.d) {
127
- throw new Error('Invalid EC private key');
179
+ throw new InvalidECPrivateKeyError();
128
180
  }
129
181
 
130
182
  const ecdh = createECDH('prime256v1');
@@ -139,14 +191,14 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
139
191
 
140
192
  const nonceSize = 12;
141
193
  if (remaining.length < nonceSize) {
142
- throw new Error('invalid wrapped DEK format');
194
+ throw new InvalidDEKFormatError();
143
195
  }
144
196
 
145
197
  const nonce = remaining.subarray(0, nonceSize);
146
198
  const ciphertextAndTag = remaining.subarray(nonceSize);
147
199
 
148
200
  if (ciphertextAndTag.length < GCM_TAG) {
149
- throw new Error('invalid wrapped DEK format');
201
+ throw new InvalidDEKFormatError();
150
202
  }
151
203
 
152
204
  const ciphertext = ciphertextAndTag.subarray(0, ciphertextAndTag.length - GCM_TAG);
@@ -158,8 +210,8 @@ function unwrapDEKWithECDH(wrapped: Buffer, recipientPriv: KeyObject): Buffer {
158
210
  let plaintext: Buffer;
159
211
  try {
160
212
  plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
161
- } catch (_err) {
162
- throw new Error('DEK unwrap failed');
213
+ } catch (err) {
214
+ throw new DEKUnwrappedFailedError({ cause: err });
163
215
  }
164
216
 
165
217
  kek.fill(0);
@@ -182,11 +234,11 @@ export async function encryptFIPSKEMDEMStream(
182
234
  dst: Writable
183
235
  ): Promise<number> {
184
236
  if (pub.asymmetricKeyType !== 'ec') {
185
- throw new Error('only EC keys supported');
237
+ throw new InvalidKeyECOnlyError();
186
238
  }
187
239
  const keyDetails = pub.asymmetricKeyDetails;
188
240
  if (!keyDetails || keyDetails.namedCurve !== 'prime256v1') {
189
- throw new Error('only P-256 keys supported');
241
+ throw new InvalidKeyP256OnlyError();
190
242
  }
191
243
 
192
244
  const dek = randomBytes(DEK_SIZE);
@@ -234,7 +286,7 @@ export async function encryptFIPSKEMDEMStream(
234
286
  const ct = Buffer.concat([ciphertext, tag]);
235
287
 
236
288
  if (ct.length > 0xffff) {
237
- throw new Error('ciphertext length exceeds uint16 limit');
289
+ throw new InvalidCipherTextLengthError();
238
290
  }
239
291
 
240
292
  const ctLenBuf = Buffer.alloc(2);
@@ -264,11 +316,11 @@ export async function decryptFIPSKEMDEMStream(
264
316
  dst: Writable
265
317
  ): Promise<number> {
266
318
  if (priv.asymmetricKeyType !== 'ec') {
267
- throw new Error('only EC keys supported');
319
+ throw new InvalidKeyECOnlyError();
268
320
  }
269
321
  const keyDetails = priv.asymmetricKeyDetails;
270
322
  if (!keyDetails || keyDetails.namedCurve !== 'prime256v1') {
271
- throw new Error('only P-256 keys supported');
323
+ throw new InvalidKeyP256OnlyError();
272
324
  }
273
325
 
274
326
  const it = src[Symbol.asyncIterator]();
@@ -279,7 +331,7 @@ export async function decryptFIPSKEMDEMStream(
279
331
  const wrappedLen = lenBuf.readUInt16BE(0);
280
332
 
281
333
  if (wrappedLen === 0 || wrappedLen > 200) {
282
- throw new Error('invalid wrapped DEK length');
334
+ throw new InvalidWrappedDEKLengthError();
283
335
  }
284
336
 
285
337
  const wrapped = Buffer.alloc(wrappedLen);
@@ -305,19 +357,19 @@ export async function decryptFIPSKEMDEMStream(
305
357
  break;
306
358
  }
307
359
  if (chunkLenRead < 2) {
308
- throw new Error('unexpected EOF reading chunk length');
360
+ throw new UnexpectedEOFChunkLengthError();
309
361
  }
310
362
 
311
363
  const chunkLen = chunkLenBuf.readUInt16BE(0);
312
364
  if (chunkLen > FRAME + GCM_TAG) {
313
- throw new Error('chunk too large');
365
+ throw new UnexpectedChunkTooLargeError();
314
366
  }
315
367
 
316
368
  const cipherBuf = Buffer.alloc(chunkLen);
317
369
  await readExact(it, src, cipherBuf);
318
370
 
319
371
  if (cipherBuf.length < GCM_TAG) {
320
- throw new Error('chunk too short for auth tag');
372
+ throw new UnexpectedChunkTooShortError();
321
373
  }
322
374
 
323
375
  const ciphertext = cipherBuf.subarray(0, cipherBuf.length - GCM_TAG);
@@ -438,7 +490,7 @@ async function readExact(
438
490
  while (offset < buf.length) {
439
491
  const result = await iterator.next();
440
492
  if (result.done) {
441
- throw new Error('unexpected EOF');
493
+ throw new UnexpectedEOFError();
442
494
  }
443
495
 
444
496
  const chunk = result.value;
package/src/download.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Transform, Readable } from 'node:stream';
2
2
  import * as tui from './tui';
3
+ import { APIError } from '@agentuity/server';
3
4
 
4
5
  export interface DownloadOptions {
5
6
  url: string;
@@ -25,7 +26,12 @@ export async function downloadWithProgress(
25
26
 
26
27
  const response = await fetch(url, { headers: requestHeaders });
27
28
  if (!response.ok) {
28
- throw new Error(`Download failed: ${response.statusText}`);
29
+ throw new APIError({
30
+ url,
31
+ status: response.status,
32
+ sessionId: response.headers.get('x-session-id'),
33
+ error: `Download failed: ${response.statusText}`,
34
+ });
29
35
  }
30
36
 
31
37
  const contentLength = parseInt(response.headers.get('content-length') || '0', 10);
package/src/env-util.ts CHANGED
@@ -204,6 +204,9 @@ export function splitEnvAndSecrets(vars: EnvVars): {
204
204
 
205
205
  /**
206
206
  * Mask a secret value for display
207
+ * - For URLs with credentials: parses and masks username/password partially
208
+ * - For long strings: shows more context (first 6 and last 6 chars)
209
+ * - For short strings: shows generic masking
207
210
  */
208
211
  export function maskSecret(value: string): string {
209
212
  if (!value) {
@@ -214,8 +217,47 @@ export function maskSecret(value: string): string {
214
217
  return '***';
215
218
  }
216
219
 
217
- // Show first 4 and last 4 characters
218
- return `${value.slice(0, 4)}...${value.slice(-4)}`;
220
+ // Try to parse as URL with credentials
221
+ try {
222
+ const url = new URL(value);
223
+
224
+ // If URL has username or password, mask them partially
225
+ if (url.username || url.password) {
226
+ let maskedAuth = '';
227
+
228
+ if (url.username) {
229
+ // Show first 2 and last 2 chars of username
230
+ const len = url.username.length;
231
+ if (len <= 4) {
232
+ maskedAuth = '***';
233
+ } else {
234
+ maskedAuth = `${url.username.slice(0, 2)}***${url.username.slice(-2)}`;
235
+ }
236
+ }
237
+
238
+ if (url.password) {
239
+ // Show first 3 and last 3 chars of password
240
+ const len = url.password.length;
241
+ if (len <= 6) {
242
+ maskedAuth += ':***';
243
+ } else {
244
+ maskedAuth += `:${url.password.slice(0, 3)}***${url.password.slice(-3)}`;
245
+ }
246
+ } else if (url.username) {
247
+ // Username but no password
248
+ maskedAuth += ':***';
249
+ }
250
+
251
+ // Reconstruct URL with masked credentials
252
+ const maskedUrl = `${url.protocol}//${maskedAuth}@${url.host}${url.pathname}${url.search}${url.hash}`;
253
+ return maskedUrl;
254
+ }
255
+ } catch {
256
+ // Not a valid URL, fall through to regular masking
257
+ }
258
+
259
+ // For long strings, show first 6 and last 6 characters for better context
260
+ return `${value.slice(0, 6)}...${value.slice(-6)}`;
219
261
  }
220
262
 
221
263
  /**
package/src/errors.ts CHANGED
@@ -13,6 +13,7 @@ export enum ExitCode {
13
13
  NETWORK_ERROR = 6,
14
14
  FILE_ERROR = 7,
15
15
  USER_CANCELLED = 8,
16
+ BUILD_FAILED = 9,
16
17
  }
17
18
 
18
19
  /**
@@ -68,6 +69,9 @@ export enum ErrorCode {
68
69
 
69
70
  // User cancellation
70
71
  USER_CANCELLED = 'USER_CANCELLED',
72
+
73
+ // Build failed error
74
+ BUILD_FAILED = 'BUILD_FAILED',
71
75
  }
72
76
 
73
77
  /**
@@ -121,6 +125,10 @@ export function getExitCode(errorCode: ErrorCode): ExitCode {
121
125
  case ErrorCode.USER_CANCELLED:
122
126
  return ExitCode.USER_CANCELLED;
123
127
 
128
+ // Build errors
129
+ case ErrorCode.BUILD_FAILED:
130
+ return ExitCode.BUILD_FAILED;
131
+
124
132
  // Resource conflicts and other errors
125
133
  case ErrorCode.RESOURCE_ALREADY_EXISTS:
126
134
  case ErrorCode.RESOURCE_CONFLICT:
@@ -203,7 +211,7 @@ export function exitWithError(
203
211
  if (errorFormat === 'json') {
204
212
  console.error(formatErrorJSON(error));
205
213
  } else {
206
- console.error(formatErrorHuman(error));
214
+ logger.error(formatErrorHuman(error));
207
215
  }
208
216
  const exitCode = error.exitCode ?? getExitCode(error.code);
209
217
  process.exit(exitCode);
package/src/index.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  export { createCLI, registerCommands } from './cli';
2
2
  export { validateRuntime, isBun } from './runtime';
3
- export { generateCLISchema, type CLISchema, type SchemaCommand } from './schema-generator';
3
+ export {
4
+ generateCLISchema,
5
+ type CLISchema,
6
+ type SchemaCommand,
7
+ type SchemaExample,
8
+ } from './schema-generator';
4
9
  export {
5
10
  ErrorCode,
6
11
  createError,
@@ -31,13 +31,18 @@ export interface SchemaPagination {
31
31
  };
32
32
  }
33
33
 
34
+ export interface SchemaExample {
35
+ command: string;
36
+ description: string;
37
+ }
38
+
34
39
  export interface SchemaCommand {
35
40
  name: string;
36
41
  description: string;
37
42
  aliases?: string[];
38
43
  arguments?: SchemaArgument[];
39
44
  options?: SchemaOption[];
40
- examples?: string[];
45
+ examples?: SchemaExample[];
41
46
  response?: unknown;
42
47
  idempotent?: boolean;
43
48
  prerequisites?: string[];
@@ -280,6 +285,7 @@ export function generateCLISchema(
280
285
  6: 'Network error (API unreachable or timeout)',
281
286
  7: 'File system error (file read/write failed)',
282
287
  8: 'User cancelled (operation aborted by user)',
288
+ 9: 'Build failed',
283
289
  },
284
290
  globalOptions: [
285
291
  {
package/src/steps.ts CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  import type { ColorScheme } from './terminal';
9
9
  import type { LogLevel } from './types';
10
- import { ValidationError } from '@agentuity/server';
10
+ import { ValidationInputError, ValidationOutputError, type IssuesType } from '@agentuity/server';
11
11
 
12
12
  /**
13
13
  * Get the appropriate exit function (Bun.exit or process.exit)
@@ -201,6 +201,17 @@ export async function runSteps(steps: Step[], logLevel?: LogLevel): Promise<void
201
201
  }
202
202
  }
203
203
 
204
+ function printValidationIssues(issues?: IssuesType) {
205
+ const errorColor = getColor('red');
206
+ console.error(`${errorColor}Validation details:${COLORS.reset}`);
207
+ if (issues) {
208
+ for (const issue of issues) {
209
+ const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
210
+ console.error(` ${path}: ${issue.message}`);
211
+ }
212
+ }
213
+ }
214
+
204
215
  /**
205
216
  * Run steps with animated TUI (original behavior)
206
217
  */
@@ -283,12 +294,11 @@ async function runStepsTUI(state: StepState[]): Promise<void> {
283
294
  if (step.outcome?.status === 'error') {
284
295
  const errorColor = getColor('red');
285
296
  console.error(`\n${errorColor}Error: ${step.outcome.message}${COLORS.reset}`);
286
- if (step.outcome.cause instanceof ValidationError) {
287
- console.error(`${errorColor}Validation details:${COLORS.reset}`);
288
- for (const issue of step.outcome.cause.issues) {
289
- const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
290
- console.error(` ${path}: ${issue.message}`);
291
- }
297
+ if (
298
+ step.outcome.cause instanceof ValidationInputError ||
299
+ step.outcome.cause instanceof ValidationOutputError
300
+ ) {
301
+ printValidationIssues(step.outcome.cause.issues);
292
302
  }
293
303
  console.error('');
294
304
  process.stdout.write('\x1B[?25h'); // Show cursor
@@ -342,12 +352,11 @@ async function runStepsPlain(state: StepState[]): Promise<void> {
342
352
  console.log(`${redColor}${ICONS.error}${COLORS.reset} ${step.label}`);
343
353
  const errorColor = getColor('red');
344
354
  console.error(`\n${errorColor}Error: ${step.outcome.message}${COLORS.reset}`);
345
- if (step.outcome.cause instanceof ValidationError) {
346
- console.error(`${errorColor}Validation details:${COLORS.reset}`);
347
- for (const issue of step.outcome.cause.issues) {
348
- const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
349
- console.error(` ${path}: ${issue.message}`);
350
- }
355
+ if (
356
+ step.outcome.cause instanceof ValidationInputError ||
357
+ step.outcome.cause instanceof ValidationOutputError
358
+ ) {
359
+ printValidationIssues(step.outcome.cause.issues);
351
360
  }
352
361
  console.error('');
353
362
  process.exit(1);
package/src/tui.ts CHANGED
@@ -13,6 +13,10 @@ import type { ColorScheme } from './terminal';
13
13
  import type { Profile } from './types';
14
14
  import { type APIClient as APIClientType } from './api';
15
15
  import { getExitCode } from './errors';
16
+ import { maskSecret } from './env-util';
17
+
18
+ // Re-export maskSecret for convenience
19
+ export { maskSecret };
16
20
 
17
21
  // Icons
18
22
  const ICONS = {
@@ -45,6 +49,7 @@ function getColors() {
45
49
  muted: { light: '', dark: '' },
46
50
  bold: { light: '', dark: '' },
47
51
  link: { light: '', dark: '' },
52
+ primary: { light: '', dark: '' },
48
53
  reset: '',
49
54
  } as const;
50
55
  }
@@ -78,6 +83,10 @@ function getColors() {
78
83
  light: '\x1b[34;4m', // blue underline (need ANSI for underline)
79
84
  dark: '\x1b[94;4m', // bright blue underline
80
85
  },
86
+ primary: {
87
+ light: Bun.color('#000000', 'ansi') || '\x1b[30m', // black
88
+ dark: Bun.color('#FFFFFF', 'ansi') || '\x1b[97m', // white
89
+ },
81
90
  reset: '\x1b[0m',
82
91
  } as const;
83
92
  }
@@ -135,6 +144,12 @@ export function colorMuted(text: string): string {
135
144
  return `${color}${text}${reset}`;
136
145
  }
137
146
 
147
+ export function colorPrimary(text: string): string {
148
+ const color = getColor('primary');
149
+ const reset = getColor('reset');
150
+ return `${color}${text}${reset}`;
151
+ }
152
+
138
153
  /**
139
154
  * Get the appropriate color function for a log severity level
140
155
  */
@@ -237,25 +252,15 @@ export function bold(text: string): string {
237
252
  * Used for table headings
238
253
  */
239
254
  export function heading(text: string): string {
240
- const USE_COLORS = shouldUseColors();
241
- if (!USE_COLORS) {
242
- return text;
243
- }
244
-
245
- // For light mode: use inverse (black bg, white text)
246
- // For dark mode: use white bold
247
- const style = isDarkMode()
248
- ? '\x1b[1;37m' // bold white
249
- : '\x1b[7m'; // inverse
255
+ const color = getColor('info');
250
256
  const reset = getColor('reset');
251
- return `${style}${text}${reset}`;
257
+ return `${color}${text}${reset}`;
252
258
  }
253
259
 
254
260
  /**
255
261
  * Format text as a link (blue and underlined)
256
262
  */
257
- export function link(url: string, title?: string): string {
258
- const color = getColor('link');
263
+ export function link(url: string, title?: string, color = getColor('link')): string {
259
264
  const reset = getColor('reset');
260
265
 
261
266
  // Check if terminal supports hyperlinks (OSC 8) and colors are enabled
@@ -1435,6 +1440,11 @@ export function table<T extends Record<string, unknown>>(
1435
1440
  head?: string[];
1436
1441
  colAligns?: Array<'left' | 'right' | 'center'>;
1437
1442
  wordWrap?: boolean;
1443
+ style?: {
1444
+ head?: string[];
1445
+ border?: string[];
1446
+ };
1447
+ colors?: boolean;
1438
1448
  }) => {
1439
1449
  push(row: unknown[]): void;
1440
1450
  toString(): string;
@@ -1450,11 +1460,14 @@ export function table<T extends Record<string, unknown>>(
1450
1460
  let columnNames: string[];
1451
1461
  let colAligns: Array<'left' | 'right' | 'center'>;
1452
1462
 
1463
+ let headings: string[];
1464
+
1453
1465
  if (isAdvancedMode) {
1454
1466
  // Advanced mode: use provided column configurations
1455
1467
  const columnConfigs = columns as TableColumn[];
1456
1468
  columnNames = columnConfigs.map((col) => col.name);
1457
1469
  colAligns = columnConfigs.map((col) => col.alignment || 'left');
1470
+ headings = columnNames.map((name) => heading(name));
1458
1471
  } else {
1459
1472
  // Simple mode: determine column names from data or columns parameter
1460
1473
  columnNames = columns
@@ -1463,15 +1476,18 @@ export function table<T extends Record<string, unknown>>(
1463
1476
  ? Object.keys(data[0])
1464
1477
  : [];
1465
1478
  colAligns = columnNames.map(() => 'left' as const);
1479
+ headings = columnNames.map((name) => heading(name));
1466
1480
  }
1467
1481
 
1468
- // Apply heading style to column names
1469
- const headings = columnNames.map((name) => heading(name));
1470
-
1471
1482
  const t = new Table({
1472
1483
  head: headings,
1473
1484
  colAligns,
1474
1485
  wordWrap: true,
1486
+ style: {
1487
+ head: [], // Disable cli-table3's default red styling - we apply our own via heading()
1488
+ border: [], // Disable default border styling too
1489
+ },
1490
+ colors: false, // Completely disable cli-table3's color system to preserve our ANSI codes
1475
1491
  });
1476
1492
 
1477
1493
  // Add rows to table
package/src/types.ts CHANGED
@@ -127,6 +127,11 @@ export interface PaginationInfo {
127
127
  };
128
128
  }
129
129
 
130
+ export interface CommandExample {
131
+ command: string;
132
+ description: string;
133
+ }
134
+
130
135
  export interface CommandSchemas {
131
136
  args?: z.ZodType;
132
137
  options?: z.ZodType;
@@ -263,7 +268,7 @@ export function createSubcommand<
263
268
  toplevel?: boolean;
264
269
  requires?: R;
265
270
  optional?: O;
266
- examples?: string[];
271
+ examples?: CommandExample[];
267
272
  idempotent?: boolean;
268
273
  prerequisites?: string[];
269
274
  pagination?: PaginationInfo;
@@ -304,7 +309,7 @@ export function createCommand<
304
309
  hidden?: boolean;
305
310
  requires?: R;
306
311
  optional?: O;
307
- examples?: string[];
312
+ examples?: CommandExample[];
308
313
  idempotent?: boolean;
309
314
  prerequisites?: string[];
310
315
  pagination?: PaginationInfo;
@@ -338,7 +343,7 @@ type CommandDefBase =
338
343
  description: string;
339
344
  aliases?: string[];
340
345
  banner?: boolean;
341
- examples?: string[];
346
+ examples?: CommandExample[];
342
347
  idempotent?: boolean;
343
348
  prerequisites?: string[];
344
349
  pagination?: PaginationInfo;
@@ -352,7 +357,7 @@ type CommandDefBase =
352
357
  description: string;
353
358
  aliases?: string[];
354
359
  banner?: boolean;
355
- examples?: string[];
360
+ examples?: CommandExample[];
356
361
  idempotent?: boolean;
357
362
  prerequisites?: string[];
358
363
  pagination?: PaginationInfo;
@@ -369,7 +374,7 @@ type SubcommandDefBase =
369
374
  aliases?: string[];
370
375
  toplevel?: boolean;
371
376
  banner?: boolean;
372
- examples?: string[];
377
+ examples?: CommandExample[];
373
378
  idempotent?: boolean;
374
379
  prerequisites?: string[];
375
380
  pagination?: PaginationInfo;
@@ -384,7 +389,7 @@ type SubcommandDefBase =
384
389
  aliases?: string[];
385
390
  toplevel?: boolean;
386
391
  banner?: boolean;
387
- examples?: string[];
392
+ examples?: CommandExample[];
388
393
  idempotent?: boolean;
389
394
  prerequisites?: string[];
390
395
  pagination?: PaginationInfo;
package/src/utils/date.ts CHANGED
@@ -1,3 +1,7 @@
1
+ import { StructuredError } from '@agentuity/core';
2
+
3
+ const InvalidDateFormatError = StructuredError('InvalidDateFormatError')<{ input: string }>();
4
+
1
5
  /**
2
6
  * Parse duration string (e.g., "1h", "2d", "1y") or ISO date to ISO date string
3
7
  *
@@ -16,7 +20,7 @@ export function parseExpiresAt(input: string): string {
16
20
  // Validate it's a valid date
17
21
  const date = new Date(input);
18
22
  if (isNaN(date.getTime())) {
19
- throw new Error(`Invalid date format: ${input}`);
23
+ throw new InvalidDateFormatError({ input, message: `Invalid date format: ${input}` });
20
24
  }
21
25
  return date.toISOString();
22
26
  }
@@ -26,9 +30,10 @@ export function parseExpiresAt(input: string): string {
26
30
  const match = input.match(durationRegex);
27
31
 
28
32
  if (!match) {
29
- throw new Error(
30
- `Invalid expires-at format: ${input}. Use ISO date (2025-12-31T23:59:59Z) or duration (1h, 2d, 1y)`
31
- );
33
+ throw new InvalidDateFormatError({
34
+ input,
35
+ message: `Invalid expires-at format: ${input}. Use ISO date (2025-12-31T23:59:59Z) or duration (1h, 2d, 1y)`,
36
+ });
32
37
  }
33
38
 
34
39
  const [, amount, unit] = match;
package/src/version.ts CHANGED
@@ -16,7 +16,7 @@ export function getPackage(): typeof pkg {
16
16
  }
17
17
 
18
18
  export function getVersion(): string {
19
- return getPackage().version || 'dev';
19
+ return process.env.AGENTUITY_CLI_VERSION || getPackage().version || 'dev';
20
20
  }
21
21
 
22
22
  export function getPackageName(): string {
@@ -1,2 +0,0 @@
1
- export declare const addSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=add.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/resource/add.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,yCAkExB,CAAC"}