@agentuity/cli 0.0.60 → 0.0.62

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 (609) 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 +85 -9
  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 +13 -2
  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 +558 -21
  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.map +1 -1
  118. package/dist/cmd/cloud/db/create.js +35 -21
  119. package/dist/cmd/cloud/db/create.js.map +1 -1
  120. package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
  121. package/dist/cmd/cloud/db/delete.js +34 -21
  122. package/dist/cmd/cloud/db/delete.js.map +1 -1
  123. package/dist/cmd/cloud/db/get.d.ts.map +1 -1
  124. package/dist/cmd/cloud/db/get.js +9 -3
  125. package/dist/cmd/cloud/db/get.js.map +1 -1
  126. package/dist/cmd/cloud/db/index.d.ts.map +1 -1
  127. package/dist/cmd/cloud/db/index.js +5 -0
  128. package/dist/cmd/cloud/db/index.js.map +1 -1
  129. package/dist/cmd/cloud/db/list.d.ts.map +1 -1
  130. package/dist/cmd/cloud/db/list.js +16 -6
  131. package/dist/cmd/cloud/db/list.js.map +1 -1
  132. package/dist/cmd/cloud/db/sql.d.ts.map +1 -1
  133. package/dist/cmd/cloud/db/sql.js +12 -3
  134. package/dist/cmd/cloud/db/sql.js.map +1 -1
  135. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  136. package/dist/cmd/cloud/deploy.js +9 -3
  137. package/dist/cmd/cloud/deploy.js.map +1 -1
  138. package/dist/cmd/cloud/deployment/index.d.ts.map +1 -1
  139. package/dist/cmd/cloud/deployment/index.js +5 -0
  140. package/dist/cmd/cloud/deployment/index.js.map +1 -1
  141. package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
  142. package/dist/cmd/cloud/deployment/list.js +12 -3
  143. package/dist/cmd/cloud/deployment/list.js.map +1 -1
  144. package/dist/cmd/cloud/deployment/logs.d.ts.map +1 -1
  145. package/dist/cmd/cloud/deployment/logs.js +16 -4
  146. package/dist/cmd/cloud/deployment/logs.js.map +1 -1
  147. package/dist/cmd/cloud/deployment/remove.d.ts.map +1 -1
  148. package/dist/cmd/cloud/deployment/remove.js +12 -3
  149. package/dist/cmd/cloud/deployment/remove.js.map +1 -1
  150. package/dist/cmd/cloud/deployment/rollback.d.ts.map +1 -1
  151. package/dist/cmd/cloud/deployment/rollback.js +8 -2
  152. package/dist/cmd/cloud/deployment/rollback.js.map +1 -1
  153. package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
  154. package/dist/cmd/cloud/deployment/show.js +8 -2
  155. package/dist/cmd/cloud/deployment/show.js.map +1 -1
  156. package/dist/cmd/cloud/deployment/undeploy.d.ts.map +1 -1
  157. package/dist/cmd/cloud/deployment/undeploy.js +12 -3
  158. package/dist/cmd/cloud/deployment/undeploy.js.map +1 -1
  159. package/dist/cmd/cloud/deployment/utils.d.ts.map +1 -1
  160. package/dist/cmd/cloud/deployment/utils.js +3 -1
  161. package/dist/cmd/cloud/deployment/utils.js.map +1 -1
  162. package/dist/cmd/cloud/domain.d.ts.map +1 -1
  163. package/dist/cmd/cloud/domain.js +4 -2
  164. package/dist/cmd/cloud/domain.js.map +1 -1
  165. package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
  166. package/dist/cmd/cloud/env/delete.js +4 -1
  167. package/dist/cmd/cloud/env/delete.js.map +1 -1
  168. package/dist/cmd/cloud/env/get.d.ts.map +1 -1
  169. package/dist/cmd/cloud/env/get.js +4 -1
  170. package/dist/cmd/cloud/env/get.js.map +1 -1
  171. package/dist/cmd/cloud/env/import.d.ts.map +1 -1
  172. package/dist/cmd/cloud/env/import.js +10 -0
  173. package/dist/cmd/cloud/env/import.js.map +1 -1
  174. package/dist/cmd/cloud/env/index.d.ts.map +1 -1
  175. package/dist/cmd/cloud/env/index.js +8 -0
  176. package/dist/cmd/cloud/env/index.js.map +1 -1
  177. package/dist/cmd/cloud/env/list.d.ts.map +1 -1
  178. package/dist/cmd/cloud/env/list.js +4 -1
  179. package/dist/cmd/cloud/env/list.js.map +1 -1
  180. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  181. package/dist/cmd/cloud/env/pull.js +4 -1
  182. package/dist/cmd/cloud/env/pull.js.map +1 -1
  183. package/dist/cmd/cloud/env/push.js +1 -1
  184. package/dist/cmd/cloud/env/push.js.map +1 -1
  185. package/dist/cmd/cloud/env/set.js +3 -3
  186. package/dist/cmd/cloud/env/set.js.map +1 -1
  187. package/dist/cmd/cloud/index.d.ts.map +1 -1
  188. package/dist/cmd/cloud/index.js +7 -0
  189. package/dist/cmd/cloud/index.js.map +1 -1
  190. package/dist/cmd/cloud/keyvalue/create-namespace.d.ts.map +1 -1
  191. package/dist/cmd/cloud/keyvalue/create-namespace.js +9 -3
  192. package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -1
  193. package/dist/cmd/cloud/keyvalue/delete-namespace.d.ts.map +1 -1
  194. package/dist/cmd/cloud/keyvalue/delete-namespace.js +12 -3
  195. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
  196. package/dist/cmd/cloud/keyvalue/delete.d.ts.map +1 -1
  197. package/dist/cmd/cloud/keyvalue/delete.js +6 -3
  198. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
  199. package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
  200. package/dist/cmd/cloud/keyvalue/get.js +3 -3
  201. package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
  202. package/dist/cmd/cloud/keyvalue/index.d.ts.map +1 -1
  203. package/dist/cmd/cloud/keyvalue/index.js +8 -0
  204. package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
  205. package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
  206. package/dist/cmd/cloud/keyvalue/keys.js +3 -3
  207. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
  208. package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -1
  209. package/dist/cmd/cloud/keyvalue/list-namespaces.js +3 -3
  210. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
  211. package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
  212. package/dist/cmd/cloud/keyvalue/repl.js +1 -1
  213. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
  214. package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
  215. package/dist/cmd/cloud/keyvalue/search.js +9 -3
  216. package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
  217. package/dist/cmd/cloud/keyvalue/set.d.ts.map +1 -1
  218. package/dist/cmd/cloud/keyvalue/set.js +12 -3
  219. package/dist/cmd/cloud/keyvalue/set.js.map +1 -1
  220. package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -1
  221. package/dist/cmd/cloud/keyvalue/stats.js +6 -3
  222. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
  223. package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +1 -1
  224. package/dist/cmd/cloud/objectstore/delete-bucket.js +8 -2
  225. package/dist/cmd/cloud/objectstore/delete-bucket.js.map +1 -1
  226. package/dist/cmd/cloud/objectstore/delete.d.ts.map +1 -1
  227. package/dist/cmd/cloud/objectstore/delete.js +12 -3
  228. package/dist/cmd/cloud/objectstore/delete.js.map +1 -1
  229. package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -1
  230. package/dist/cmd/cloud/objectstore/get.js +12 -3
  231. package/dist/cmd/cloud/objectstore/get.js.map +1 -1
  232. package/dist/cmd/cloud/objectstore/index.d.ts.map +1 -1
  233. package/dist/cmd/cloud/objectstore/index.js +8 -0
  234. package/dist/cmd/cloud/objectstore/index.js.map +1 -1
  235. package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -1
  236. package/dist/cmd/cloud/objectstore/list-buckets.js +6 -1
  237. package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -1
  238. package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -1
  239. package/dist/cmd/cloud/objectstore/list-keys.js +6 -3
  240. package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -1
  241. package/dist/cmd/cloud/objectstore/put.d.ts.map +1 -1
  242. package/dist/cmd/cloud/objectstore/put.js +12 -3
  243. package/dist/cmd/cloud/objectstore/put.js.map +1 -1
  244. package/dist/cmd/cloud/objectstore/repl.d.ts.map +1 -1
  245. package/dist/cmd/cloud/objectstore/repl.js +6 -1
  246. package/dist/cmd/cloud/objectstore/repl.js.map +1 -1
  247. package/dist/cmd/cloud/objectstore/url.d.ts.map +1 -1
  248. package/dist/cmd/cloud/objectstore/url.js +12 -3
  249. package/dist/cmd/cloud/objectstore/url.js.map +1 -1
  250. package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
  251. package/dist/cmd/cloud/scp/download.js +16 -4
  252. package/dist/cmd/cloud/scp/download.js.map +1 -1
  253. package/dist/cmd/cloud/scp/index.d.ts.map +1 -1
  254. package/dist/cmd/cloud/scp/index.js +11 -0
  255. package/dist/cmd/cloud/scp/index.js.map +1 -1
  256. package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
  257. package/dist/cmd/cloud/scp/upload.js +16 -4
  258. package/dist/cmd/cloud/scp/upload.js.map +1 -1
  259. package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
  260. package/dist/cmd/cloud/secret/delete.js +4 -1
  261. package/dist/cmd/cloud/secret/delete.js.map +1 -1
  262. package/dist/cmd/cloud/secret/get.d.ts.map +1 -1
  263. package/dist/cmd/cloud/secret/get.js +5 -2
  264. package/dist/cmd/cloud/secret/get.js.map +1 -1
  265. package/dist/cmd/cloud/secret/import.d.ts.map +1 -1
  266. package/dist/cmd/cloud/secret/import.js +5 -2
  267. package/dist/cmd/cloud/secret/import.js.map +1 -1
  268. package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
  269. package/dist/cmd/cloud/secret/index.js +8 -0
  270. package/dist/cmd/cloud/secret/index.js.map +1 -1
  271. package/dist/cmd/cloud/secret/list.d.ts.map +1 -1
  272. package/dist/cmd/cloud/secret/list.js +4 -1
  273. package/dist/cmd/cloud/secret/list.js.map +1 -1
  274. package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
  275. package/dist/cmd/cloud/secret/pull.js +4 -1
  276. package/dist/cmd/cloud/secret/pull.js.map +1 -1
  277. package/dist/cmd/cloud/secret/push.js +1 -1
  278. package/dist/cmd/cloud/secret/push.js.map +1 -1
  279. package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
  280. package/dist/cmd/cloud/secret/set.js +8 -2
  281. package/dist/cmd/cloud/secret/set.js.map +1 -1
  282. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  283. package/dist/cmd/cloud/session/get.js +10 -2
  284. package/dist/cmd/cloud/session/get.js.map +1 -1
  285. package/dist/cmd/cloud/session/index.d.ts.map +1 -1
  286. package/dist/cmd/cloud/session/index.js +5 -0
  287. package/dist/cmd/cloud/session/index.js.map +1 -1
  288. package/dist/cmd/cloud/session/list.d.ts.map +1 -1
  289. package/dist/cmd/cloud/session/list.js +29 -8
  290. package/dist/cmd/cloud/session/list.js.map +1 -1
  291. package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
  292. package/dist/cmd/cloud/session/logs.js +8 -2
  293. package/dist/cmd/cloud/session/logs.js.map +1 -1
  294. package/dist/cmd/cloud/ssh.d.ts.map +1 -1
  295. package/dist/cmd/cloud/ssh.js +15 -6
  296. package/dist/cmd/cloud/ssh.js.map +1 -1
  297. package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
  298. package/dist/cmd/cloud/storage/create.js +12 -3
  299. package/dist/cmd/cloud/storage/create.js.map +1 -1
  300. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
  301. package/dist/cmd/cloud/storage/delete.js +16 -4
  302. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  303. package/dist/cmd/cloud/storage/download.d.ts.map +1 -1
  304. package/dist/cmd/cloud/storage/download.js +16 -4
  305. package/dist/cmd/cloud/storage/download.js.map +1 -1
  306. package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
  307. package/dist/cmd/cloud/storage/get.js +12 -3
  308. package/dist/cmd/cloud/storage/get.js.map +1 -1
  309. package/dist/cmd/cloud/storage/index.d.ts.map +1 -1
  310. package/dist/cmd/cloud/storage/index.js +8 -0
  311. package/dist/cmd/cloud/storage/index.js.map +1 -1
  312. package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
  313. package/dist/cmd/cloud/storage/list.js +35 -12
  314. package/dist/cmd/cloud/storage/list.js.map +1 -1
  315. package/dist/cmd/cloud/storage/upload.d.ts.map +1 -1
  316. package/dist/cmd/cloud/storage/upload.js +21 -9
  317. package/dist/cmd/cloud/storage/upload.js.map +1 -1
  318. package/dist/cmd/cloud/stream/delete.d.ts.map +1 -1
  319. package/dist/cmd/cloud/stream/delete.js +9 -3
  320. package/dist/cmd/cloud/stream/delete.js.map +1 -1
  321. package/dist/cmd/cloud/stream/get.d.ts.map +1 -1
  322. package/dist/cmd/cloud/stream/get.js +10 -4
  323. package/dist/cmd/cloud/stream/get.js.map +1 -1
  324. package/dist/cmd/cloud/stream/index.d.ts.map +1 -1
  325. package/dist/cmd/cloud/stream/index.js +5 -0
  326. package/dist/cmd/cloud/stream/index.js.map +1 -1
  327. package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
  328. package/dist/cmd/cloud/stream/list.js +11 -5
  329. package/dist/cmd/cloud/stream/list.js.map +1 -1
  330. package/dist/cmd/cloud/thread/delete.d.ts +2 -0
  331. package/dist/cmd/cloud/thread/delete.d.ts.map +1 -0
  332. package/dist/cmd/cloud/thread/delete.js +41 -0
  333. package/dist/cmd/cloud/thread/delete.js.map +1 -0
  334. package/dist/cmd/cloud/thread/get.d.ts +2 -0
  335. package/dist/cmd/cloud/thread/get.d.ts.map +1 -0
  336. package/dist/cmd/cloud/thread/get.js +80 -0
  337. package/dist/cmd/cloud/thread/get.js.map +1 -0
  338. package/dist/cmd/cloud/thread/index.d.ts +2 -0
  339. package/dist/cmd/cloud/thread/index.d.ts.map +1 -0
  340. package/dist/cmd/cloud/thread/index.js +17 -0
  341. package/dist/cmd/cloud/thread/index.js.map +1 -0
  342. package/dist/cmd/cloud/thread/list.d.ts +2 -0
  343. package/dist/cmd/cloud/thread/list.d.ts.map +1 -0
  344. package/dist/cmd/cloud/thread/list.js +112 -0
  345. package/dist/cmd/cloud/thread/list.js.map +1 -0
  346. package/dist/cmd/cloud/vector/delete.d.ts.map +1 -1
  347. package/dist/cmd/cloud/vector/delete.js +12 -3
  348. package/dist/cmd/cloud/vector/delete.js.map +1 -1
  349. package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
  350. package/dist/cmd/cloud/vector/get.js +12 -3
  351. package/dist/cmd/cloud/vector/get.js.map +1 -1
  352. package/dist/cmd/cloud/vector/index.d.ts.map +1 -1
  353. package/dist/cmd/cloud/vector/index.js +8 -0
  354. package/dist/cmd/cloud/vector/index.js.map +1 -1
  355. package/dist/cmd/cloud/vector/search.d.ts.map +1 -1
  356. package/dist/cmd/cloud/vector/search.js +20 -5
  357. package/dist/cmd/cloud/vector/search.js.map +1 -1
  358. package/dist/cmd/dev/agents.d.ts.map +1 -1
  359. package/dist/cmd/dev/agents.js +7 -2
  360. package/dist/cmd/dev/agents.js.map +1 -1
  361. package/dist/cmd/dev/api.d.ts.map +1 -1
  362. package/dist/cmd/dev/api.js +3 -1
  363. package/dist/cmd/dev/api.js.map +1 -1
  364. package/dist/cmd/dev/index.d.ts.map +1 -1
  365. package/dist/cmd/dev/index.js +13 -5
  366. package/dist/cmd/dev/index.js.map +1 -1
  367. package/dist/cmd/help/index.d.ts +2 -0
  368. package/dist/cmd/help/index.d.ts.map +1 -0
  369. package/dist/cmd/help/index.js +35 -0
  370. package/dist/cmd/help/index.js.map +1 -0
  371. package/dist/cmd/index.d.ts.map +1 -1
  372. package/dist/cmd/index.js +1 -0
  373. package/dist/cmd/index.js.map +1 -1
  374. package/dist/cmd/profile/create.js +3 -3
  375. package/dist/cmd/profile/create.js.map +1 -1
  376. package/dist/cmd/profile/delete.d.ts.map +1 -1
  377. package/dist/cmd/profile/delete.js +6 -3
  378. package/dist/cmd/profile/delete.js.map +1 -1
  379. package/dist/cmd/profile/index.d.ts.map +1 -1
  380. package/dist/cmd/profile/index.js +8 -0
  381. package/dist/cmd/profile/index.js.map +1 -1
  382. package/dist/cmd/profile/list.d.ts.map +1 -1
  383. package/dist/cmd/profile/list.js +4 -1
  384. package/dist/cmd/profile/list.js.map +1 -1
  385. package/dist/cmd/profile/show.d.ts.map +1 -1
  386. package/dist/cmd/profile/show.js +6 -3
  387. package/dist/cmd/profile/show.js.map +1 -1
  388. package/dist/cmd/profile/use.d.ts.map +1 -1
  389. package/dist/cmd/profile/use.js +12 -3
  390. package/dist/cmd/profile/use.js.map +1 -1
  391. package/dist/cmd/project/create.d.ts.map +1 -1
  392. package/dist/cmd/project/create.js +11 -5
  393. package/dist/cmd/project/create.js.map +1 -1
  394. package/dist/cmd/project/delete.d.ts.map +1 -1
  395. package/dist/cmd/project/delete.js +15 -6
  396. package/dist/cmd/project/delete.js.map +1 -1
  397. package/dist/cmd/project/download.d.ts +1 -1
  398. package/dist/cmd/project/download.d.ts.map +1 -1
  399. package/dist/cmd/project/download.js +37 -2
  400. package/dist/cmd/project/download.js.map +1 -1
  401. package/dist/cmd/project/index.d.ts.map +1 -1
  402. package/dist/cmd/project/index.js +5 -0
  403. package/dist/cmd/project/index.js.map +1 -1
  404. package/dist/cmd/project/list.d.ts.map +1 -1
  405. package/dist/cmd/project/list.js +6 -3
  406. package/dist/cmd/project/list.js.map +1 -1
  407. package/dist/cmd/project/show.d.ts.map +1 -1
  408. package/dist/cmd/project/show.js +6 -3
  409. package/dist/cmd/project/show.js.map +1 -1
  410. package/dist/cmd/project/templates.d.ts.map +1 -1
  411. package/dist/cmd/project/templates.js +10 -2
  412. package/dist/cmd/project/templates.js.map +1 -1
  413. package/dist/cmd/repl/index.js +1 -1
  414. package/dist/cmd/repl/index.js.map +1 -1
  415. package/dist/cmd/version/index.d.ts.map +1 -1
  416. package/dist/cmd/version/index.js +7 -1
  417. package/dist/cmd/version/index.js.map +1 -1
  418. package/dist/command-prefix.d.ts.map +1 -1
  419. package/dist/command-prefix.js +5 -3
  420. package/dist/command-prefix.js.map +1 -1
  421. package/dist/config.d.ts +1 -1
  422. package/dist/config.d.ts.map +1 -1
  423. package/dist/config.js +3 -1
  424. package/dist/config.js.map +1 -1
  425. package/dist/crypto/box.d.ts.map +1 -1
  426. package/dist/crypto/box.js +31 -17
  427. package/dist/crypto/box.js.map +1 -1
  428. package/dist/download.d.ts.map +1 -1
  429. package/dist/download.js +7 -1
  430. package/dist/download.js.map +1 -1
  431. package/dist/env-util.d.ts +3 -0
  432. package/dist/env-util.d.ts.map +1 -1
  433. package/dist/env-util.js +43 -2
  434. package/dist/env-util.js.map +1 -1
  435. package/dist/errors.d.ts +4 -2
  436. package/dist/errors.d.ts.map +1 -1
  437. package/dist/errors.js +7 -1
  438. package/dist/errors.js.map +1 -1
  439. package/dist/index.d.ts +1 -1
  440. package/dist/index.d.ts.map +1 -1
  441. package/dist/index.js +1 -1
  442. package/dist/index.js.map +1 -1
  443. package/dist/schema-generator.d.ts +5 -1
  444. package/dist/schema-generator.d.ts.map +1 -1
  445. package/dist/schema-generator.js +1 -0
  446. package/dist/schema-generator.js.map +1 -1
  447. package/dist/steps.js +17 -13
  448. package/dist/steps.js.map +1 -1
  449. package/dist/tui.d.ts +2 -1
  450. package/dist/tui.d.ts.map +1 -1
  451. package/dist/tui.js +21 -14
  452. package/dist/tui.js.map +1 -1
  453. package/dist/types.d.ts +10 -6
  454. package/dist/types.d.ts.map +1 -1
  455. package/dist/types.js.map +1 -1
  456. package/dist/utils/date.d.ts.map +1 -1
  457. package/dist/utils/date.js +7 -2
  458. package/dist/utils/date.js.map +1 -1
  459. package/package.json +4 -3
  460. package/src/banner.ts +29 -13
  461. package/src/cli.ts +109 -13
  462. package/src/cmd/ai/capabilities/index.ts +4 -0
  463. package/src/cmd/ai/capabilities/show.ts +13 -2
  464. package/src/cmd/ai/index.ts +11 -0
  465. package/src/cmd/ai/prompt/agent.ts +342 -0
  466. package/src/cmd/ai/prompt/api.ts +274 -0
  467. package/src/cmd/ai/prompt/index.ts +18 -3
  468. package/src/cmd/ai/prompt/llm.ts +2 -2
  469. package/src/cmd/ai/prompt/web.ts +301 -0
  470. package/src/cmd/ai/schema/generate.ts +1 -1
  471. package/src/cmd/ai/schema/index.ts +2 -0
  472. package/src/cmd/ai/schema/show.ts +4 -1
  473. package/src/cmd/auth/api.ts +28 -6
  474. package/src/cmd/auth/index.ts +5 -0
  475. package/src/cmd/auth/login.ts +5 -22
  476. package/src/cmd/auth/logout.ts +4 -1
  477. package/src/cmd/auth/signup.ts +4 -1
  478. package/src/cmd/auth/ssh/add.ts +13 -4
  479. package/src/cmd/auth/ssh/api.ts +21 -5
  480. package/src/cmd/auth/ssh/delete.ts +4 -4
  481. package/src/cmd/auth/ssh/index.ts +5 -0
  482. package/src/cmd/auth/ssh/list.ts +3 -3
  483. package/src/cmd/auth/whoami.ts +4 -7
  484. package/src/cmd/build/ast.ts +636 -38
  485. package/src/cmd/build/bundler.ts +110 -37
  486. package/src/cmd/build/file.ts +1 -1
  487. package/src/cmd/build/fix-duplicate-exports.ts +4 -1
  488. package/src/cmd/build/index.ts +58 -13
  489. package/src/cmd/build/plugin.ts +210 -46
  490. package/src/cmd/cloud/agent/get.ts +5 -2
  491. package/src/cmd/cloud/agent/index.ts +5 -0
  492. package/src/cmd/cloud/agent/list.ts +3 -3
  493. package/src/cmd/cloud/apikey/create.ts +14 -5
  494. package/src/cmd/cloud/apikey/delete.ts +3 -3
  495. package/src/cmd/cloud/apikey/get.ts +1 -1
  496. package/src/cmd/cloud/apikey/index.ts +8 -0
  497. package/src/cmd/cloud/apikey/list.ts +4 -1
  498. package/src/cmd/cloud/db/create.ts +37 -22
  499. package/src/cmd/cloud/db/delete.ts +36 -21
  500. package/src/cmd/cloud/db/get.ts +12 -4
  501. package/src/cmd/cloud/db/index.ts +5 -0
  502. package/src/cmd/cloud/db/list.ts +19 -7
  503. package/src/cmd/cloud/db/sql.ts +12 -3
  504. package/src/cmd/cloud/deploy.ts +9 -3
  505. package/src/cmd/cloud/deployment/index.ts +5 -0
  506. package/src/cmd/cloud/deployment/list.ts +12 -3
  507. package/src/cmd/cloud/deployment/logs.ts +16 -4
  508. package/src/cmd/cloud/deployment/remove.ts +14 -4
  509. package/src/cmd/cloud/deployment/rollback.ts +8 -3
  510. package/src/cmd/cloud/deployment/show.ts +8 -2
  511. package/src/cmd/cloud/deployment/undeploy.ts +12 -4
  512. package/src/cmd/cloud/deployment/utils.ts +7 -1
  513. package/src/cmd/cloud/domain.ts +9 -2
  514. package/src/cmd/cloud/env/delete.ts +4 -1
  515. package/src/cmd/cloud/env/get.ts +4 -1
  516. package/src/cmd/cloud/env/import.ts +10 -0
  517. package/src/cmd/cloud/env/index.ts +8 -0
  518. package/src/cmd/cloud/env/list.ts +4 -1
  519. package/src/cmd/cloud/env/pull.ts +4 -1
  520. package/src/cmd/cloud/env/push.ts +1 -1
  521. package/src/cmd/cloud/env/set.ts +3 -3
  522. package/src/cmd/cloud/index.ts +7 -1
  523. package/src/cmd/cloud/keyvalue/create-namespace.ts +9 -4
  524. package/src/cmd/cloud/keyvalue/delete-namespace.ts +12 -4
  525. package/src/cmd/cloud/keyvalue/delete.ts +6 -4
  526. package/src/cmd/cloud/keyvalue/get.ts +3 -4
  527. package/src/cmd/cloud/keyvalue/index.ts +8 -0
  528. package/src/cmd/cloud/keyvalue/keys.ts +3 -4
  529. package/src/cmd/cloud/keyvalue/list-namespaces.ts +3 -4
  530. package/src/cmd/cloud/keyvalue/repl.ts +1 -2
  531. package/src/cmd/cloud/keyvalue/search.ts +9 -4
  532. package/src/cmd/cloud/keyvalue/set.ts +14 -4
  533. package/src/cmd/cloud/keyvalue/stats.ts +6 -4
  534. package/src/cmd/cloud/objectstore/delete-bucket.ts +8 -3
  535. package/src/cmd/cloud/objectstore/delete.ts +12 -4
  536. package/src/cmd/cloud/objectstore/get.ts +12 -4
  537. package/src/cmd/cloud/objectstore/index.ts +8 -0
  538. package/src/cmd/cloud/objectstore/list-buckets.ts +6 -2
  539. package/src/cmd/cloud/objectstore/list-keys.ts +6 -4
  540. package/src/cmd/cloud/objectstore/put.ts +16 -4
  541. package/src/cmd/cloud/objectstore/repl.ts +6 -2
  542. package/src/cmd/cloud/objectstore/url.ts +12 -4
  543. package/src/cmd/cloud/scp/download.ts +16 -5
  544. package/src/cmd/cloud/scp/index.ts +11 -0
  545. package/src/cmd/cloud/scp/upload.ts +16 -5
  546. package/src/cmd/cloud/secret/delete.ts +4 -1
  547. package/src/cmd/cloud/secret/get.ts +5 -2
  548. package/src/cmd/cloud/secret/import.ts +5 -2
  549. package/src/cmd/cloud/secret/index.ts +8 -0
  550. package/src/cmd/cloud/secret/list.ts +4 -1
  551. package/src/cmd/cloud/secret/pull.ts +4 -1
  552. package/src/cmd/cloud/secret/push.ts +1 -1
  553. package/src/cmd/cloud/secret/set.ts +8 -2
  554. package/src/cmd/cloud/session/get.ts +16 -2
  555. package/src/cmd/cloud/session/index.ts +5 -0
  556. package/src/cmd/cloud/session/list.ts +29 -8
  557. package/src/cmd/cloud/session/logs.ts +8 -2
  558. package/src/cmd/cloud/ssh.ts +15 -7
  559. package/src/cmd/cloud/storage/create.ts +12 -3
  560. package/src/cmd/cloud/storage/delete.ts +16 -4
  561. package/src/cmd/cloud/storage/download.ts +16 -4
  562. package/src/cmd/cloud/storage/get.ts +12 -3
  563. package/src/cmd/cloud/storage/index.ts +8 -0
  564. package/src/cmd/cloud/storage/list.ts +39 -15
  565. package/src/cmd/cloud/storage/upload.ts +24 -9
  566. package/src/cmd/cloud/stream/delete.ts +9 -4
  567. package/src/cmd/cloud/stream/get.ts +10 -5
  568. package/src/cmd/cloud/stream/index.ts +5 -0
  569. package/src/cmd/cloud/stream/list.ts +11 -6
  570. package/src/cmd/cloud/thread/delete.ts +44 -0
  571. package/src/cmd/cloud/thread/get.ts +88 -0
  572. package/src/cmd/cloud/thread/index.ts +17 -0
  573. package/src/cmd/cloud/thread/list.ts +125 -0
  574. package/src/cmd/cloud/vector/delete.ts +17 -6
  575. package/src/cmd/cloud/vector/get.ts +12 -4
  576. package/src/cmd/cloud/vector/index.ts +8 -0
  577. package/src/cmd/cloud/vector/search.ts +20 -6
  578. package/src/cmd/dev/agents.ts +7 -2
  579. package/src/cmd/dev/api.ts +4 -1
  580. package/src/cmd/dev/index.ts +16 -5
  581. package/src/cmd/help/index.ts +40 -0
  582. package/src/cmd/index.ts +1 -0
  583. package/src/cmd/profile/create.ts +3 -3
  584. package/src/cmd/profile/delete.ts +6 -3
  585. package/src/cmd/profile/index.ts +8 -0
  586. package/src/cmd/profile/list.ts +4 -1
  587. package/src/cmd/profile/show.ts +6 -3
  588. package/src/cmd/profile/use.ts +12 -3
  589. package/src/cmd/project/create.ts +11 -5
  590. package/src/cmd/project/delete.ts +15 -6
  591. package/src/cmd/project/download.ts +44 -3
  592. package/src/cmd/project/index.ts +5 -0
  593. package/src/cmd/project/list.ts +6 -3
  594. package/src/cmd/project/show.ts +6 -3
  595. package/src/cmd/project/templates.ts +12 -2
  596. package/src/cmd/repl/index.ts +1 -1
  597. package/src/cmd/version/index.ts +7 -1
  598. package/src/command-prefix.ts +5 -3
  599. package/src/config.ts +4 -2
  600. package/src/crypto/box.ts +69 -17
  601. package/src/download.ts +7 -1
  602. package/src/env-util.ts +44 -2
  603. package/src/errors.ts +9 -1
  604. package/src/index.ts +6 -1
  605. package/src/schema-generator.ts +7 -1
  606. package/src/steps.ts +22 -13
  607. package/src/tui.ts +28 -16
  608. package/src/types.ts +11 -6
  609. package/src/utils/date.ts +9 -4
@@ -13,12 +13,21 @@ export const deleteSubcommand = createSubcommand({
13
13
  requires: { auth: true, apiClient: true },
14
14
  idempotent: false,
15
15
  examples: [
16
- getCommand('project delete'),
17
- getCommand('project delete proj_abc123def456'),
18
- getCommand('project delete proj_abc123def456 --confirm'),
19
- getCommand('project rm proj_abc123def456'),
20
- getCommand('--explain project delete proj_abc123def456'),
21
- getCommand('--dry-run project delete proj_abc123def456'),
16
+ { command: getCommand('project delete'), description: 'Delete item' },
17
+ { command: getCommand('project delete proj_abc123def456'), description: 'Delete item' },
18
+ {
19
+ command: getCommand('project delete proj_abc123def456 --confirm'),
20
+ description: 'Use confirm option',
21
+ },
22
+ { command: getCommand('project rm proj_abc123def456'), description: 'Delete item' },
23
+ {
24
+ command: getCommand('--explain project delete proj_abc123def456'),
25
+ description: 'Delete item',
26
+ },
27
+ {
28
+ command: getCommand('--dry-run project delete proj_abc123def456'),
29
+ description: 'Delete item',
30
+ },
22
31
  ],
23
32
  schema: {
24
33
  args: z.object({
@@ -13,9 +13,13 @@ import { tmpdir } from 'node:os';
13
13
  import { finished } from 'node:stream/promises';
14
14
  import { createGunzip } from 'node:zlib';
15
15
  import { extract, type Headers } from 'tar-fs';
16
- import type { Logger } from '@agentuity/core';
16
+ import { StructuredError, type Logger } from '@agentuity/core';
17
17
  import * as tui from '../../tui';
18
18
  import { downloadWithSpinner } from '../../download';
19
+ import { generateLLMPrompt as generateCLIPrompt } from '../ai/prompt/llm';
20
+ import { generateLLMPrompt as generateAgentPrompt } from '../ai/prompt/agent';
21
+ import { generateLLMPrompt as generateWebPrompt } from '../ai/prompt/web';
22
+ import { generateLLMPrompt as generateAPIPrompt } from '../ai/prompt/api';
19
23
  import type { TemplateInfo } from './templates';
20
24
 
21
25
  const GITHUB_REPO = 'agentuity/sdk';
@@ -38,9 +42,16 @@ interface SetupOptions {
38
42
  logger: Logger;
39
43
  }
40
44
 
45
+ const TemplateDirectoryNotFoundError = StructuredError('TemplateDirectoryNotFoundError')<{
46
+ directory: string;
47
+ }>();
48
+
41
49
  async function cleanup(sourceDir: string, dest: string) {
42
50
  if (!existsSync(sourceDir)) {
43
- throw new Error(`Template directory not found: ${sourceDir}`);
51
+ throw new TemplateDirectoryNotFoundError({
52
+ directory: sourceDir,
53
+ message: `Template directory not found: ${sourceDir}`,
54
+ });
44
55
  }
45
56
 
46
57
  tui.spinner(`📦 Copying template files...`, async () => {
@@ -68,7 +79,10 @@ export async function downloadTemplate(options: DownloadOptions): Promise<void>
68
79
  const sourceDir = resolve(join(templateDir, template.directory));
69
80
 
70
81
  if (!existsSync(sourceDir)) {
71
- throw new Error(`Template directory not found: ${sourceDir}`);
82
+ throw new TemplateDirectoryNotFoundError({
83
+ directory: sourceDir,
84
+ message: `Template directory not found: ${sourceDir}`,
85
+ });
72
86
  }
73
87
 
74
88
  return cleanup(sourceDir, dest);
@@ -258,6 +272,33 @@ export async function setupProject(options: SetupOptions): Promise<void> {
258
272
  clearOnSuccess: true,
259
273
  });
260
274
  }
275
+
276
+ // generate and write the AGENTS.md for the cli
277
+ const cliDir = join(dest, 'node_modules', '@agentuity', 'cli');
278
+ if (existsSync(cliDir)) {
279
+ const agentFile = join(cliDir, 'AGENTS.md');
280
+ const prompt = generateCLIPrompt();
281
+ await Bun.write(agentFile, prompt);
282
+ }
283
+
284
+ // generate and write AGENTS.md for each of the main folders
285
+ const agentsDir = join(dest, 'src', 'agents');
286
+ if (existsSync(agentsDir)) {
287
+ const agentsAPIFile = join(agentsDir, 'AGENTS.md');
288
+ await Bun.write(agentsAPIFile, generateAgentPrompt());
289
+ }
290
+
291
+ const apisDir = join(dest, 'src', 'apis');
292
+ if (existsSync(apisDir)) {
293
+ const agentsAPIsFile = join(apisDir, 'AGENTS.md');
294
+ await Bun.write(agentsAPIsFile, generateAPIPrompt());
295
+ }
296
+
297
+ const webDir = join(dest, 'src', 'web');
298
+ if (existsSync(webDir)) {
299
+ const agentsWebFile = join(webDir, 'AGENTS.md');
300
+ await Bun.write(agentsWebFile, generateWebPrompt());
301
+ }
261
302
  }
262
303
 
263
304
  async function replaceInFiles(dir: string, projectName: string, dirName: string): Promise<void> {
@@ -3,10 +3,15 @@ import { createProjectSubcommand } from './create';
3
3
  import { listSubcommand } from './list';
4
4
  import { deleteSubcommand } from './delete';
5
5
  import { showSubcommand } from './show';
6
+ import { getCommand } from '../../command-prefix';
6
7
 
7
8
  export const command = createCommand({
8
9
  name: 'project',
9
10
  description: 'Project related commands',
10
11
  tags: ['fast', 'requires-auth'],
12
+ examples: [
13
+ { command: getCommand('project create my-agent'), description: 'Create a new project' },
14
+ { command: getCommand('project list'), description: 'List all projects' },
15
+ ],
11
16
  subcommands: [createProjectSubcommand, listSubcommand, deleteSubcommand, showSubcommand],
12
17
  });
@@ -24,9 +24,12 @@ export const listSubcommand = createSubcommand({
24
24
  response: ProjectListResponseSchema,
25
25
  },
26
26
  examples: [
27
- getCommand('project list'),
28
- getCommand('--json project list'),
29
- getCommand('project ls'),
27
+ { command: getCommand('project list'), description: 'List projects (human-readable)' },
28
+ { command: getCommand('--json project list'), description: 'List projects in JSON format' },
29
+ {
30
+ command: getCommand('project ls'),
31
+ description: 'Alias for "project list" — list projects (human-readable)',
32
+ },
30
33
  ],
31
34
 
32
35
  async handler(ctx) {
@@ -19,9 +19,12 @@ export const showSubcommand = createSubcommand({
19
19
  tags: ['read-only', 'fast', 'requires-auth', 'requires-project'],
20
20
  requires: { auth: true, apiClient: true },
21
21
  examples: [
22
- getCommand('project show proj_abc123def456'),
23
- getCommand('--json project show proj_abc123def456'),
24
- getCommand('project get proj_abc123def456'),
22
+ { command: getCommand('project show proj_abc123def456'), description: 'Show details' },
23
+ {
24
+ command: getCommand('--json project show proj_abc123def456'),
25
+ description: 'Show output in JSON format',
26
+ },
27
+ { command: getCommand('project get proj_abc123def456'), description: 'Get item details' },
25
28
  ],
26
29
  schema: {
27
30
  args: z.object({
@@ -1,3 +1,5 @@
1
+ import { StructuredError } from '@agentuity/core';
2
+
1
3
  const GITHUB_REPO = 'agentuity/sdk';
2
4
  const GITHUB_BRANCH = 'main';
3
5
  const TEMPLATES_JSON_PATH = 'templates/templates.json';
@@ -13,6 +15,9 @@ interface TemplatesManifest {
13
15
  templates: TemplateInfo[];
14
16
  }
15
17
 
18
+ const TemplateMissingConfigurationError = StructuredError('TemplateMissingConfigurationError');
19
+ const TemplateDownloadError = StructuredError('TemplateDownloadError')<{ status: number }>();
20
+
16
21
  export async function fetchTemplates(localDir?: string, branch?: string): Promise<TemplateInfo[]> {
17
22
  // Load from local directory if provided
18
23
  if (localDir) {
@@ -22,7 +27,9 @@ export async function fetchTemplates(localDir?: string, branch?: string): Promis
22
27
  const file = Bun.file(manifestPath);
23
28
 
24
29
  if (!(await file.exists())) {
25
- throw new Error(`templates.json not found at ${manifestPath}`);
30
+ throw new TemplateMissingConfigurationError({
31
+ message: `templates.json not found at ${manifestPath}`,
32
+ });
26
33
  }
27
34
 
28
35
  const manifest = (await file.json()) as TemplatesManifest;
@@ -40,7 +47,10 @@ export async function fetchTemplates(localDir?: string, branch?: string): Promis
40
47
 
41
48
  const response = await fetch(url, { headers });
42
49
  if (!response.ok) {
43
- throw new Error(`Failed to fetch templates: ${response.statusText}`);
50
+ throw new TemplateDownloadError({
51
+ status: response.status,
52
+ message: `Failed to fetch templates: ${response.statusText}`,
53
+ });
44
54
  }
45
55
 
46
56
  const manifest = (await response.json()) as TemplatesManifest;
@@ -9,7 +9,7 @@ export const command = createCommand({
9
9
  description: 'interactive REPL for testing',
10
10
  tags: ['slow'],
11
11
  idempotent: false,
12
- examples: [getCommand('repl')],
12
+ examples: [{ command: getCommand('repl'), description: 'Run repl command' }],
13
13
 
14
14
  async handler() {
15
15
  // Define test commands
@@ -11,7 +11,13 @@ export const command = createCommand({
11
11
  name: 'version',
12
12
  description: 'Display version information',
13
13
  tags: ['read-only', 'fast'],
14
- examples: [getCommand('version'), getCommand('--version')],
14
+ examples: [
15
+ { command: getCommand('version'), description: 'Show the CLI semantic version' },
16
+ {
17
+ command: getCommand('--version'),
18
+ description: 'Display the current installed CLI version and build metadata',
19
+ },
20
+ ],
15
21
  schema: {
16
22
  response: VersionResponseSchema,
17
23
  },
@@ -17,11 +17,13 @@ export function getCommandPrefix(): string {
17
17
  const scriptPath = process.argv[1] || '';
18
18
  const normalized = path.normalize(scriptPath);
19
19
 
20
+ // If we have AGENTUITY_CLI_VERSION set we are running from compiled binary OR
20
21
  // If the script is in node_modules/.bin or a global bin directory, it's likely global
21
22
  const isGlobal =
22
- normalized.includes(`${path.sep}bin${path.sep}`) &&
23
- !normalized.includes(`${path.sep}node_modules${path.sep}`) &&
24
- !normalized.includes(path.join('packages', 'cli', 'bin'));
23
+ process.env.AGENTUITY_CLI_VERSION ||
24
+ (normalized.includes(`${path.sep}bin${path.sep}`) &&
25
+ !normalized.includes(`${path.sep}node_modules${path.sep}`) &&
26
+ !normalized.includes(path.join('packages', 'cli', 'bin')));
25
27
 
26
28
  if (isGlobal) {
27
29
  cachedPrefix = 'agentuity';
package/src/config.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { existsSync, mkdirSync } from 'node:fs';
3
- import type { Logger } from '@agentuity/core';
3
+ import { StructuredError, type Logger } from '@agentuity/core';
4
4
  import {
5
5
  BuildMetadataSchema,
6
6
  type BuildMetadata,
@@ -609,11 +609,13 @@ export async function createProjectConfig(dir: string, config: InitialProjectCon
609
609
  await Bun.write(join(vscodeDir, 'settings.json'), JSON.stringify(settings, null, 2));
610
610
  }
611
611
 
612
+ const BuildMetadataNotFoundError = StructuredError('BuildMetadataNotFoundError');
613
+
612
614
  export async function loadBuildMetadata(dir: string): Promise<BuildMetadata> {
613
615
  const filename = join(dir, 'agentuity.metadata.json');
614
616
  const file = Bun.file(filename);
615
617
  if (!(await file.exists())) {
616
- throw new Error(`couldn't find ${filename}`);
618
+ throw new BuildMetadataNotFoundError({ message: `couldn't find ${filename}` });
617
619
  }
618
620
  const buffer = await file.text();
619
621
  const config = JSON.parse(buffer);
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
  {