@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
@@ -8,8 +8,10 @@ import {
8
8
  parseEvalMetadata,
9
9
  analyzeWorkbench,
10
10
  checkRouteConflicts,
11
+ generateLifecycleTypes,
12
+ findCreateAppEndPosition,
11
13
  } from './ast';
12
- import type { WorkbenchConfig } from '@agentuity/core';
14
+ import { StructuredError, type WorkbenchConfig } from '@agentuity/core';
13
15
  import { applyPatch, generatePatches } from './patch';
14
16
  import { detectSubagent } from '../../utils/detectSubagent';
15
17
  import { createLogger } from '@agentuity/server';
@@ -26,6 +28,37 @@ function toPascalCase(str: string): string {
26
28
  return camel.charAt(0).toUpperCase() + camel.slice(1);
27
29
  }
28
30
 
31
+ /**
32
+ * Setup lifecycle types by analyzing app.ts for setup() function
33
+ */
34
+ async function setupLifecycleTypes(
35
+ rootDir: string,
36
+ outDir: string,
37
+ srcDir: string,
38
+ logger: ReturnType<typeof createLogger>
39
+ ): Promise<boolean> {
40
+ // Look for app.ts in both root and src directories
41
+ const rootAppFile = join(dirname(srcDir), 'app.ts');
42
+ const srcAppFile = join(srcDir, 'app.ts');
43
+
44
+ let appFile = '';
45
+ if (await Bun.file(rootAppFile).exists()) {
46
+ appFile = rootAppFile;
47
+ } else if (await Bun.file(srcAppFile).exists()) {
48
+ appFile = srcAppFile;
49
+ }
50
+
51
+ if (!appFile || !(await Bun.file(appFile).exists())) {
52
+ return false;
53
+ }
54
+
55
+ try {
56
+ return await generateLifecycleTypes(rootDir, outDir, appFile);
57
+ } catch (error) {
58
+ logger.fatal('Failed to generate lifecycle types:', error);
59
+ }
60
+ }
61
+
29
62
  /**
30
63
  * Setup workbench configuration by analyzing app.ts file
31
64
  */
@@ -70,6 +103,9 @@ async function setupWorkbench(srcDir: string): Promise<WorkbenchConfig | null> {
70
103
  return workbenchConfig;
71
104
  }
72
105
 
106
+ const AgentIdentifierCollisionError = StructuredError('AgentIdentifierCollisionError');
107
+ const SubAgentNameCollisionError = StructuredError('SubAgentNameCollisionError');
108
+
73
109
  function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, string>>) {
74
110
  // Separate parent agents and subagents
75
111
  const parentAgents = agentInfo.filter((a) => !a.parent);
@@ -103,11 +139,12 @@ function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, s
103
139
  }
104
140
 
105
141
  if (collisions.length > 0) {
106
- throw new Error(
107
- `Agent identifier naming collisions detected:\n${collisions.join('\n')}\n\n` +
142
+ throw new AgentIdentifierCollisionError({
143
+ message:
144
+ `Agent identifier naming collisions detected:\n${collisions.join('\n')}\n\n` +
108
145
  `This occurs when different agent names produce the same camelCase identifier.\n` +
109
- `Please rename your agents to avoid this collision.`
110
- );
146
+ `Please rename your agents to avoid this collision.`,
147
+ });
111
148
  }
112
149
 
113
150
  // Generate imports for all agents
@@ -133,11 +170,12 @@ function generateAgentRegistry(srcDir: string, agentInfo: Array<Record<string, s
133
170
 
134
171
  // Check for collision with reserved agent properties
135
172
  if (reservedAgentProperties.includes(childPropertyName)) {
136
- throw new Error(
137
- `Subagent property name collision detected: "${childPropertyName}" in parent "${parentAgent.name}"\n` +
173
+ throw new SubAgentNameCollisionError({
174
+ message:
175
+ `Subagent property name collision detected: "${childPropertyName}" in parent "${parentAgent.name}"\n` +
138
176
  `The child name "${child.name}" conflicts with a reserved agent property (${reservedAgentProperties.join(', ')}).\n` +
139
- `Please rename the subagent to avoid this collision.`
140
- );
177
+ `Please rename the subagent to avoid this collision.`,
178
+ });
141
179
  }
142
180
  }
143
181
  }
@@ -263,6 +301,11 @@ import type { AgentRunner, Logger } from '@agentuity/runtime';
263
301
  import type { KeyValueStorage, ObjectStorage, StreamStorage, VectorStorage } from '@agentuity/core';
264
302
  import type { Agent } from '@agentuity/react';
265
303
 
304
+ /**
305
+ * Registry of all agents in this application.
306
+ * Provides strongly-typed access to agent metadata and runner functions.
307
+ * Auto-generated from your agent files during build.
308
+ */
266
309
  export const agentRegistry = {
267
310
  ${registry}
268
311
  } as const;
@@ -330,11 +373,22 @@ export function getBuildMetadata(): Partial<BuildMetadata> {
330
373
  return metadata;
331
374
  }
332
375
 
376
+ const AgentNameDuplicateError = StructuredError('AgentNameDuplicateError');
377
+ const MetadataMissingError = StructuredError('MetadataMissingError');
378
+ const MetadataPropertyMissingError = StructuredError('MetadataPropertyMissingError')<{
379
+ name: string;
380
+ }>();
381
+ const SubAgentMissingError = StructuredError('SubAgentMissingError');
382
+
333
383
  const AgentuityBundler: BunPlugin = {
334
384
  name: 'Agentuity Bundler',
335
385
  setup(build) {
336
386
  const rootDir = resolve(build.config.root ?? '.');
337
387
  const srcDir = join(rootDir, 'src');
388
+ const outDir = build.config.outdir;
389
+ if (!outDir) {
390
+ throw new Error('missing outdir must be set');
391
+ }
338
392
  const projectId = build.config.define?.['process.env.AGENTUITY_CLOUD_PROJECT_ID']
339
393
  ? JSON.parse(build.config.define['process.env.AGENTUITY_CLOUD_PROJECT_ID'])
340
394
  : '';
@@ -401,9 +455,9 @@ const AgentuityBundler: BunPlugin = {
401
455
  for (const [, kv] of agentMetadata) {
402
456
  const found = kv.get('name');
403
457
  if (newAgentName === found) {
404
- throw new Error(
405
- `The agent in ${kv.get('filename')} and the agent in ${md.get('filename')} have the same name (${found}). Agent Names must be unique within a project.`
406
- );
458
+ throw new AgentNameDuplicateError({
459
+ message: `The agent in ${kv.get('filename')} and the agent in ${md.get('filename')} have the same name (${found}). Agent Names must be unique within a project.`,
460
+ });
407
461
  }
408
462
  }
409
463
 
@@ -499,7 +553,9 @@ const AgentuityBundler: BunPlugin = {
499
553
  if (hasAgent) {
500
554
  const md = agentMetadata.get(name);
501
555
  if (!md) {
502
- throw new Error(`Couldn't find agent metadata for ${route}`);
556
+ throw new MetadataMissingError({
557
+ message: `Couldn't find agent metadata for ${route}`,
558
+ });
503
559
  }
504
560
  agentDetail = {
505
561
  name,
@@ -550,13 +606,47 @@ const AgentuityBundler: BunPlugin = {
550
606
  }
551
607
  }
552
608
 
609
+ // Register standalone agents (agents without routes)
610
+ const routeAgentNames = new Set(
611
+ agentInfo
612
+ .filter((a) => {
613
+ // Check if this agent was added via a route (has a corresponding route file)
614
+ const agentPath = a.path.replace(/^\./, '').replace(/\/agent$/, '/route');
615
+ return routes.has(agentPath.replace(/^\/src\//, './'));
616
+ })
617
+ .map((a) => a.name)
618
+ );
619
+
620
+ for (const agentDetail of agentInfo) {
621
+ if (!routeAgentNames.has(agentDetail.name)) {
622
+ // This is a standalone agent - register it without a route
623
+ const agentPath = agentDetail.path;
624
+ const agentDirPath = agentPath.replace(/\/agent$/, '');
625
+ const evalsPath = join(srcDir, agentDirPath.replace(/^\./, ''), 'eval.ts');
626
+ const evalsImport = existsSync(evalsPath)
627
+ ? `\n require('./src/${agentDirPath.replace(/^\.\//, '')}/eval');`
628
+ : '';
629
+ const isSubagent = !!agentDetail.parent;
630
+ const agentRegistrationName = isSubagent
631
+ ? `${agentDetail.parent}.${agentDetail.name}`
632
+ : agentDetail.name;
633
+
634
+ const buffer = `await (async() => {
635
+ const { registerAgent } = await import('@agentuity/runtime');
636
+ const agent = require('./src${agentPath}').default;
637
+ registerAgent("${agentRegistrationName}", agent);${evalsImport}
638
+ })();`;
639
+ inserts.push(buffer);
640
+ }
641
+ }
642
+
553
643
  const indexFile = join(srcDir, 'web', 'index.html');
554
644
 
555
- if (existsSync(indexFile)) {
556
- // Setup workbench configuration - evaluate fresh each time during builds
557
- const workbenchConfig = await setupWorkbench(srcDir);
645
+ // Setup workbench configuration - evaluate fresh each time during builds
646
+ const workbenchConfig = await setupWorkbench(srcDir);
558
647
 
559
- inserts.unshift(`await (async () => {
648
+ if (existsSync(indexFile)) {
649
+ inserts.push(`await (async () => {
560
650
  const { serveStatic } = require('hono/bun');
561
651
  const { getRouter, registerDevModeRoutes } = await import('@agentuity/runtime');
562
652
  const router = getRouter()!;
@@ -600,6 +690,42 @@ const AgentuityBundler: BunPlugin = {
600
690
  })();`);
601
691
  }
602
692
 
693
+ // Add standalone agents (agents without routes) to agentInfo
694
+ // These agents can still be called by other agents or routes via ctx.agent
695
+ const registeredIdentifiers = new Set(agentInfo.map((a) => a.identifier));
696
+ for (const [identifier, md] of agentMetadata) {
697
+ if (!registeredIdentifiers.has(identifier)) {
698
+ // md.get('filename') can be either absolute or relative to rootDir
699
+ const filename = md.get('filename')!;
700
+ const absolutePath = filename.startsWith('/')
701
+ ? filename
702
+ : join(rootDir, filename);
703
+
704
+ // Convert to path relative to srcDir like route-based agents
705
+ // e.g., /path/to/src/agents/lifecycle/agent.ts -> ./agents/lifecycle/agent
706
+ const agentPath = absolutePath.replace(srcDir, '.').replace('.ts', '');
707
+
708
+ // Extract folder name as agent name (same as route-based logic)
709
+ const folderName = basename(dirname(absolutePath));
710
+
711
+ const { isSubagent, parentName } = detectSubagent(absolutePath, srcDir);
712
+
713
+ const agentDetail: Record<string, string> = {
714
+ name: folderName,
715
+ id: md.get('id')!,
716
+ path: agentPath,
717
+ filename: absolutePath,
718
+ identifier: md.get('identifier')!,
719
+ description: md.get('description') ?? '',
720
+ agentId: md.get('agentId')!,
721
+ };
722
+ if (isSubagent && parentName) {
723
+ agentDetail.parent = parentName;
724
+ }
725
+ agentInfo.push(agentDetail);
726
+ }
727
+ }
728
+
603
729
  // Only generate registry if there are agents
604
730
  // Note: We don't import the registry here because:
605
731
  // 1. Evals are already imported when agents are registered (see line 421-422)
@@ -607,34 +733,53 @@ const AgentuityBundler: BunPlugin = {
607
733
  // 3. Importing it causes bundler resolution issues since it's generated during build
608
734
  generateAgentRegistry(srcDir, agentInfo);
609
735
 
610
- // create the workbench routes
611
- inserts.push(`await (async() => {
736
+ // Generate lifecycle types if setup() is present in app.ts
737
+ await setupLifecycleTypes(rootDir, outDir, srcDir, logger);
738
+
739
+ // Only create the workbench metadata route if workbench is actually configured
740
+ if (workbenchConfig) {
741
+ inserts.push(`await (async() => {
612
742
  const { createWorkbenchMetadataRoute, getRouter } = await import('@agentuity/runtime');
613
743
  const router = getRouter()!;
614
744
  router.get('/_agentuity/workbench/metadata.json', createWorkbenchMetadataRoute());
615
745
  })();`);
746
+ }
616
747
 
617
748
  const file = Bun.file(args.path);
618
749
  let contents = await file.text();
619
- let inserted = false;
620
- let index = contents.indexOf(' createApp(');
621
- if (index < 0) {
622
- index = contents.indexOf(' createApp (');
623
- }
624
- if (index < 0) {
625
- throw new Error(`couldn't find the required createApp function in ${args.path}`);
626
- }
627
- const endSemi = contents.indexOf(');', index);
628
- if (endSemi > 0) {
750
+ // Use AST-based parsing to reliably find createApp statement end
751
+ const insertPos = findCreateAppEndPosition(contents);
752
+
753
+ // Add initialization call after all agent registrations
754
+ const setupCall = `
755
+ // Initialize providers and run agent setup callbacks after all agents are registered
756
+ await (async() => {
757
+ const { runAgentSetups, getThreadProvider, getSessionProvider, getAppState } = await import('@agentuity/runtime');
758
+
759
+ const threadProvider = getThreadProvider();
760
+ const sessionProvider = getSessionProvider();
761
+
762
+ const state = getAppState();
763
+
764
+ // Initialize providers first
765
+ await threadProvider.initialize(state);
766
+ await sessionProvider.initialize(state);
767
+
768
+ // Then run agent setups
769
+ await runAgentSetups(state);
770
+ })();`;
771
+
772
+ if (insertPos > 0) {
629
773
  contents =
630
- contents.slice(0, endSemi + 2) +
774
+ contents.slice(0, insertPos) +
631
775
  '\n\n' +
632
776
  inserts.join('\n') +
633
- contents.slice(endSemi + 2);
634
- inserted = true;
635
- }
636
- if (!inserted) {
637
- contents += `\n${inserts.join('\n')}`;
777
+ setupCall +
778
+ contents.slice(insertPos);
779
+ } else {
780
+ // Fallback: append to end if AST parsing fails
781
+ logger.warn('Could not find createApp in AST, appending code to end of file');
782
+ contents += `\n${inserts.join('\n')}${setupCall}`;
638
783
  }
639
784
 
640
785
  // generate the build metadata
@@ -649,22 +794,40 @@ const AgentuityBundler: BunPlugin = {
649
794
 
650
795
  for (const [, v] of agentMetadata) {
651
796
  if (!v.has('filename')) {
652
- throw new Error('agent metadata is missing expected filename property');
797
+ throw new MetadataPropertyMissingError({
798
+ name: 'filename',
799
+ message: 'agent metadata is missing expected filename property',
800
+ });
653
801
  }
654
802
  if (!v.has('id')) {
655
- throw new Error('agent metadata is missing expected id property');
803
+ throw new MetadataPropertyMissingError({
804
+ name: 'id',
805
+ message: 'agent metadata is missing expected id property',
806
+ });
656
807
  }
657
808
  if (!v.has('identifier')) {
658
- throw new Error('agent metadata is missing expected identifier property');
809
+ throw new MetadataPropertyMissingError({
810
+ name: 'identifier',
811
+ message: 'agent metadata is missing expected identifier property',
812
+ });
659
813
  }
660
814
  if (!v.has('version')) {
661
- throw new Error('agent metadata is missing expected version property');
815
+ throw new MetadataPropertyMissingError({
816
+ name: 'version',
817
+ message: 'agent metadata is missing expected version property',
818
+ });
662
819
  }
663
820
  if (!v.has('name')) {
664
- throw new Error('agent metadata is missing expected name property');
821
+ throw new MetadataPropertyMissingError({
822
+ name: 'name',
823
+ message: 'agent metadata is missing expected name property',
824
+ });
665
825
  }
666
826
  if (!v.has('agentId')) {
667
- throw new Error('agent metadata is missing expected agentId property');
827
+ throw new MetadataPropertyMissingError({
828
+ name: 'agentId',
829
+ message: 'agent metadata is missing expected agentId property',
830
+ });
668
831
  }
669
832
 
670
833
  const parentName = v.get('parent');
@@ -687,10 +850,11 @@ const AgentuityBundler: BunPlugin = {
687
850
  );
688
851
  if (!parentExists) {
689
852
  const subagentPaths = subagents.map((s) => s.get('filename')).join(', ');
690
- throw new Error(
691
- `Subagent(s) [${subagentPaths}] reference parent "${parentName}" which does not exist. ` +
692
- `Ensure the parent agent is defined.`
693
- );
853
+ throw new SubAgentMissingError({
854
+ message:
855
+ `Subagent(s) [${subagentPaths}] reference parent "${parentName}" which does not exist. ` +
856
+ `Ensure the parent agent is defined.`,
857
+ });
694
858
  }
695
859
  }
696
860
 
@@ -794,7 +958,7 @@ const AgentuityBundler: BunPlugin = {
794
958
  metadata.agents!.push(agentData);
795
959
  }
796
960
 
797
- const routeMappingJSFile = Bun.file(join(build.config.outdir!, '.routemapping.json'));
961
+ const routeMappingJSFile = Bun.file(join(outDir, '.routemapping.json'));
798
962
  await routeMappingJSFile.write(JSON.stringify(routeMapping));
799
963
 
800
964
  return {
@@ -11,8 +11,11 @@ export const getSubcommand = createSubcommand({
11
11
  description: 'Get details about a specific agent',
12
12
  requires: { auth: true, apiClient: true, project: true },
13
13
  examples: [
14
- getCommand('cloud agent get agent_abc123'),
15
- getCommand('--json cloud agent get agent_abc123'),
14
+ { command: getCommand('cloud agent get agent_abc123'), description: 'Get item details' },
15
+ {
16
+ command: getCommand('--json cloud agent get agent_abc123'),
17
+ description: 'Show output in JSON format',
18
+ },
16
19
  ],
17
20
  schema: {
18
21
  args: z.object({
@@ -1,11 +1,16 @@
1
1
  import { createCommand } from '../../../types';
2
2
  import { listSubcommand } from './list';
3
3
  import { getSubcommand } from './get';
4
+ import { getCommand } from '../../../command-prefix';
4
5
 
5
6
  export const agentCommand = createCommand({
6
7
  name: 'agent',
7
8
  description: 'Manage agents',
8
9
  aliases: ['agents'],
9
10
  tags: ['read-only', 'fast', 'requires-auth'],
11
+ examples: [
12
+ { command: getCommand('cloud agent list'), description: 'List all agents' },
13
+ { command: getCommand('cloud agent get <id>'), description: 'Get agent details' },
14
+ ],
10
15
  subcommands: [listSubcommand, getSubcommand],
11
16
  });
@@ -13,9 +13,9 @@ export const listSubcommand = createSubcommand({
13
13
  aliases: ['ls'],
14
14
  requires: { auth: true, apiClient: true, project: true },
15
15
  examples: [
16
- getCommand('cloud agent list'),
17
- getCommand('cloud agent list --verbose'),
18
- getCommand('--json cloud agent list'),
16
+ { command: getCommand('cloud agent list'), description: 'List items' },
17
+ { command: getCommand('cloud agent list --verbose'), description: 'Use verbose option' },
18
+ { command: getCommand('--json cloud agent list'), description: 'Show output in JSON format' },
19
19
  ],
20
20
  schema: {
21
21
  options: z.object({
@@ -16,11 +16,20 @@ export const createSubcommand = createSubcommandHelper({
16
16
  description: 'Create a new API key',
17
17
  tags: ['destructive', 'creates-resource', 'slow', 'requires-auth'],
18
18
  examples: [
19
- getCommand('cloud apikey create --name "My API Key" --expires-at 1y'),
20
- getCommand('cloud apikey create --name "Short-lived Key" --expires-at 30d'),
21
- getCommand(
22
- 'cloud apikey create --name "Production Key" --expires-at 2026-01-01T00:00:00Z --confirm'
23
- ),
19
+ {
20
+ command: getCommand('cloud apikey create --name "My API Key" --expires-at 1y'),
21
+ description: 'Create API key with 1 year expiration',
22
+ },
23
+ {
24
+ command: getCommand('cloud apikey create --name "Short-lived Key" --expires-at 30d'),
25
+ description: 'Create API key with 30 day expiration',
26
+ },
27
+ {
28
+ command: getCommand(
29
+ 'cloud apikey create --name "Production Key" --expires-at 2026-01-01T00:00:00Z --confirm'
30
+ ),
31
+ description: 'Create API key with specific date and skip confirmation',
32
+ },
24
33
  ],
25
34
  requires: { auth: true, apiClient: true, org: true },
26
35
  optional: { project: true },
@@ -17,9 +17,9 @@ export const deleteSubcommand = createSubcommand({
17
17
  tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth'],
18
18
  idempotent: true,
19
19
  examples: [
20
- getCommand('cloud apikey delete <id>'),
21
- getCommand('cloud apikey del <id>'),
22
- getCommand('cloud apikey rm <id>'),
20
+ { command: getCommand('cloud apikey delete <id>'), description: 'Delete item' },
21
+ { command: getCommand('cloud apikey del <id>'), description: 'Run <id> command' },
22
+ { command: getCommand('cloud apikey rm <id>'), description: 'Delete item' },
23
23
  ],
24
24
  requires: { auth: true, apiClient: true },
25
25
  schema: {
@@ -9,7 +9,7 @@ export const getSubcommand = createSubcommand({
9
9
  name: 'get',
10
10
  description: 'Get a specific API key by id',
11
11
  tags: ['read-only', 'fast', 'requires-auth'],
12
- examples: [getCommand('cloud apikey get <id>')],
12
+ examples: [{ command: getCommand('cloud apikey get <id>'), description: 'Get item details' }],
13
13
  requires: { auth: true, apiClient: true },
14
14
  idempotent: true,
15
15
  schema: {
@@ -3,11 +3,19 @@ import { createSubcommand } from './create';
3
3
  import { listSubcommand } from './list';
4
4
  import { getSubcommand } from './get';
5
5
  import { deleteSubcommand } from './delete';
6
+ import { getCommand } from '../../../command-prefix';
6
7
 
7
8
  export const command = createCommand({
8
9
  name: 'apikey',
9
10
  description: 'Manage API keys',
10
11
  tags: ['fast', 'requires-auth'],
12
+ examples: [
13
+ { command: getCommand('cloud apikey list'), description: 'List all API keys' },
14
+ {
15
+ command: getCommand('cloud apikey create --name "My Key" --expires-at 1y'),
16
+ description: 'Create new API key',
17
+ },
18
+ ],
11
19
  subcommands: [createSubcommand, listSubcommand, getSubcommand, deleteSubcommand],
12
20
  });
13
21
  export default command;
@@ -9,7 +9,10 @@ export const listSubcommand = createSubcommand({
9
9
  aliases: ['ls'],
10
10
  description: 'List all API keys',
11
11
  tags: ['read-only', 'fast', 'requires-auth'],
12
- examples: [getCommand('cloud apikey list'), getCommand('cloud apikey ls')],
12
+ examples: [
13
+ { command: getCommand('cloud apikey list'), description: 'List items' },
14
+ { command: getCommand('cloud apikey ls'), description: 'List items' },
15
+ ],
13
16
  requires: { auth: true, apiClient: true },
14
17
  idempotent: true,
15
18
  schema: {
@@ -0,0 +1,87 @@
1
+ import { z } from 'zod';
2
+ import { createResources, APIError } from '@agentuity/server';
3
+ import { createSubcommand as defineSubcommand } from '../../../types';
4
+ import * as tui from '../../../tui';
5
+ import { getCatalystAPIClient } from '../../../config';
6
+ import { getCommand } from '../../../command-prefix';
7
+ import { isDryRunMode, outputDryRun } from '../../../explain';
8
+ import { ErrorCode } from '../../../errors';
9
+
10
+ export const createSubcommand = defineSubcommand({
11
+ name: 'create',
12
+ aliases: ['new'],
13
+ description: 'Create a new database resource',
14
+ tags: ['mutating', 'creates-resource', 'slow', 'requires-auth', 'requires-deployment'],
15
+ idempotent: false,
16
+ requires: { auth: true, org: true, region: true },
17
+ examples: [
18
+ { command: getCommand('cloud db create'), description: 'Create new item' },
19
+ { command: getCommand('cloud db new'), description: 'Run new command' },
20
+ { command: getCommand('cloud db create --name my-db'), description: 'Create new item' },
21
+ { command: getCommand('--dry-run cloud db create'), description: 'Create new item' },
22
+ ],
23
+ schema: {
24
+ options: z.object({
25
+ name: z.string().optional().describe('Custom database name (optional)'),
26
+ }),
27
+ response: z.object({
28
+ success: z.boolean().describe('Whether creation succeeded'),
29
+ name: z.string().describe('Created database name'),
30
+ }),
31
+ },
32
+
33
+ async handler(ctx) {
34
+ const { logger, opts, orgId, region, config, auth, options } = ctx;
35
+
36
+ // Handle dry-run mode
37
+ if (isDryRunMode(options)) {
38
+ const message = opts.name
39
+ ? `Would create database with name: ${opts.name} in region: ${region}`
40
+ : `Would create database in region: ${region}`;
41
+ outputDryRun(message, options);
42
+ if (!options.json) {
43
+ tui.newline();
44
+ tui.info('[DRY RUN] Database creation skipped');
45
+ }
46
+ return {
47
+ success: false,
48
+ name: opts.name || 'dry-run-db',
49
+ };
50
+ }
51
+
52
+ const catalystClient = getCatalystAPIClient(config, logger, auth);
53
+
54
+ try {
55
+ const created = await tui.spinner({
56
+ message: `Creating database in ${region}`,
57
+ clearOnSuccess: true,
58
+ callback: async () => {
59
+ return await createResources(catalystClient, orgId, region!, [
60
+ { type: 'db', name: opts.name },
61
+ ]);
62
+ },
63
+ });
64
+ if (created.length > 0) {
65
+ if (!options.json) {
66
+ tui.success(`Created database: ${tui.bold(created[0].name)}`);
67
+ }
68
+ return {
69
+ success: true,
70
+ name: created[0].name,
71
+ };
72
+ } else {
73
+ tui.fatal('Failed to create database');
74
+ }
75
+ } catch (ex) {
76
+ if (ex instanceof APIError) {
77
+ if (ex.status === 409) {
78
+ tui.fatal(
79
+ `database with the name "${opts.name}" already exists. Use another name or don't specify --name for a unique name to be generated automatically.`,
80
+ ErrorCode.INVALID_ARGUMENT
81
+ );
82
+ }
83
+ }
84
+ throw ex;
85
+ }
86
+ },
87
+ });