@agentuity/cli 2.0.0-beta.0 → 2.0.0

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 (505) hide show
  1. package/bin/cli.ts +8 -1
  2. package/dist/auth.d.ts +1 -1
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +12 -1
  5. package/dist/auth.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +29 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/cmd/auth/ssh/delete.js +1 -1
  10. package/dist/cmd/auth/ssh/delete.js.map +1 -1
  11. package/dist/cmd/build/app-config-extractor.d.ts +27 -0
  12. package/dist/cmd/build/app-config-extractor.d.ts.map +1 -0
  13. package/dist/cmd/build/app-config-extractor.js +152 -0
  14. package/dist/cmd/build/app-config-extractor.js.map +1 -0
  15. package/dist/cmd/build/ci.d.ts +18 -0
  16. package/dist/cmd/build/ci.d.ts.map +1 -0
  17. package/dist/cmd/build/ci.js +188 -0
  18. package/dist/cmd/build/ci.js.map +1 -0
  19. package/dist/cmd/build/index.d.ts.map +1 -1
  20. package/dist/cmd/build/index.js +50 -14
  21. package/dist/cmd/build/index.js.map +1 -1
  22. package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
  23. package/dist/cmd/build/vite/agent-discovery.js +26 -2
  24. package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
  25. package/dist/cmd/build/vite/bun-dev-server.d.ts +35 -0
  26. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
  27. package/dist/cmd/build/vite/bun-dev-server.js +232 -4
  28. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  29. package/dist/cmd/build/vite/config-loader.d.ts +15 -20
  30. package/dist/cmd/build/vite/config-loader.d.ts.map +1 -1
  31. package/dist/cmd/build/vite/config-loader.js +41 -74
  32. package/dist/cmd/build/vite/config-loader.js.map +1 -1
  33. package/dist/cmd/build/vite/route-discovery.d.ts +5 -0
  34. package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
  35. package/dist/cmd/build/vite/route-discovery.js +13 -11
  36. package/dist/cmd/build/vite/route-discovery.js.map +1 -1
  37. package/dist/cmd/build/vite/static-renderer.d.ts +3 -4
  38. package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
  39. package/dist/cmd/build/vite/static-renderer.js +28 -44
  40. package/dist/cmd/build/vite/static-renderer.js.map +1 -1
  41. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +15 -0
  42. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +1 -0
  43. package/dist/cmd/build/vite/tailwind-source-plugin.js +61 -0
  44. package/dist/cmd/build/vite/tailwind-source-plugin.js.map +1 -0
  45. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
  46. package/dist/cmd/build/vite/vite-asset-server-config.js +4 -48
  47. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  48. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
  49. package/dist/cmd/build/vite/vite-builder.js +70 -155
  50. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  51. package/dist/cmd/cloud/agent/get.d.ts.map +1 -1
  52. package/dist/cmd/cloud/agent/get.js +1 -0
  53. package/dist/cmd/cloud/agent/get.js.map +1 -1
  54. package/dist/cmd/cloud/apikey/delete.js +1 -1
  55. package/dist/cmd/cloud/apikey/delete.js.map +1 -1
  56. package/dist/cmd/cloud/apikey/get.d.ts.map +1 -1
  57. package/dist/cmd/cloud/apikey/get.js +1 -0
  58. package/dist/cmd/cloud/apikey/get.js.map +1 -1
  59. package/dist/cmd/cloud/apikey/index.d.ts.map +1 -1
  60. package/dist/cmd/cloud/apikey/index.js +1 -0
  61. package/dist/cmd/cloud/apikey/index.js.map +1 -1
  62. package/dist/cmd/cloud/db/delete.js +1 -1
  63. package/dist/cmd/cloud/db/delete.js.map +1 -1
  64. package/dist/cmd/cloud/deploy-fork.d.ts +10 -0
  65. package/dist/cmd/cloud/deploy-fork.d.ts.map +1 -1
  66. package/dist/cmd/cloud/deploy-fork.js +71 -32
  67. package/dist/cmd/cloud/deploy-fork.js.map +1 -1
  68. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  69. package/dist/cmd/cloud/deploy.js +54 -12
  70. package/dist/cmd/cloud/deploy.js.map +1 -1
  71. package/dist/cmd/cloud/deployment/remove.js +17 -17
  72. package/dist/cmd/cloud/deployment/remove.js.map +1 -1
  73. package/dist/cmd/cloud/deployment/show.js +1 -1
  74. package/dist/cmd/cloud/deployment/show.js.map +1 -1
  75. package/dist/cmd/cloud/email/create.js +1 -1
  76. package/dist/cmd/cloud/email/create.js.map +1 -1
  77. package/dist/cmd/cloud/email/delete.js +1 -1
  78. package/dist/cmd/cloud/email/delete.js.map +1 -1
  79. package/dist/cmd/cloud/email/destination/delete.js +1 -1
  80. package/dist/cmd/cloud/email/destination/delete.js.map +1 -1
  81. package/dist/cmd/cloud/email/get.d.ts.map +1 -1
  82. package/dist/cmd/cloud/email/get.js +1 -0
  83. package/dist/cmd/cloud/email/get.js.map +1 -1
  84. package/dist/cmd/cloud/email/inbound/get.d.ts.map +1 -1
  85. package/dist/cmd/cloud/email/inbound/get.js +1 -0
  86. package/dist/cmd/cloud/email/inbound/get.js.map +1 -1
  87. package/dist/cmd/cloud/email/outbound/get.d.ts.map +1 -1
  88. package/dist/cmd/cloud/email/outbound/get.js +1 -0
  89. package/dist/cmd/cloud/email/outbound/get.js.map +1 -1
  90. package/dist/cmd/cloud/env/delete.js +1 -1
  91. package/dist/cmd/cloud/env/delete.js.map +1 -1
  92. package/dist/cmd/cloud/env/get.d.ts.map +1 -1
  93. package/dist/cmd/cloud/env/get.js +1 -0
  94. package/dist/cmd/cloud/env/get.js.map +1 -1
  95. package/dist/cmd/cloud/eval/get.d.ts.map +1 -1
  96. package/dist/cmd/cloud/eval/get.js +1 -0
  97. package/dist/cmd/cloud/eval/get.js.map +1 -1
  98. package/dist/cmd/cloud/eval/index.d.ts.map +1 -1
  99. package/dist/cmd/cloud/eval/index.js +1 -0
  100. package/dist/cmd/cloud/eval/index.js.map +1 -1
  101. package/dist/cmd/cloud/eval/list.js +1 -1
  102. package/dist/cmd/cloud/eval/list.js.map +1 -1
  103. package/dist/cmd/cloud/eval-run/get.d.ts.map +1 -1
  104. package/dist/cmd/cloud/eval-run/get.js +1 -0
  105. package/dist/cmd/cloud/eval-run/get.js.map +1 -1
  106. package/dist/cmd/cloud/eval-run/index.d.ts.map +1 -1
  107. package/dist/cmd/cloud/eval-run/index.js +1 -0
  108. package/dist/cmd/cloud/eval-run/index.js.map +1 -1
  109. package/dist/cmd/cloud/eval-run/list.js +1 -1
  110. package/dist/cmd/cloud/eval-run/list.js.map +1 -1
  111. package/dist/cmd/cloud/keyvalue/delete-namespace.js +1 -1
  112. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
  113. package/dist/cmd/cloud/keyvalue/delete.js +1 -1
  114. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
  115. package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
  116. package/dist/cmd/cloud/keyvalue/get.js +1 -0
  117. package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
  118. package/dist/cmd/cloud/keyvalue/index.js +1 -1
  119. package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
  120. package/dist/cmd/cloud/machine/delete.js +1 -1
  121. package/dist/cmd/cloud/machine/delete.js.map +1 -1
  122. package/dist/cmd/cloud/oidc/delete.js +1 -1
  123. package/dist/cmd/cloud/oidc/delete.js.map +1 -1
  124. package/dist/cmd/cloud/oidc/get.d.ts.map +1 -1
  125. package/dist/cmd/cloud/oidc/get.js +1 -0
  126. package/dist/cmd/cloud/oidc/get.js.map +1 -1
  127. package/dist/cmd/cloud/queue/create.d.ts.map +1 -1
  128. package/dist/cmd/cloud/queue/create.js +1 -0
  129. package/dist/cmd/cloud/queue/create.js.map +1 -1
  130. package/dist/cmd/cloud/queue/delete.js +1 -1
  131. package/dist/cmd/cloud/queue/delete.js.map +1 -1
  132. package/dist/cmd/cloud/queue/get.d.ts.map +1 -1
  133. package/dist/cmd/cloud/queue/get.js +1 -0
  134. package/dist/cmd/cloud/queue/get.js.map +1 -1
  135. package/dist/cmd/cloud/redis/get.js +1 -1
  136. package/dist/cmd/cloud/redis/get.js.map +1 -1
  137. package/dist/cmd/cloud/sandbox/checkpoint/create.d.ts.map +1 -1
  138. package/dist/cmd/cloud/sandbox/checkpoint/create.js +1 -0
  139. package/dist/cmd/cloud/sandbox/checkpoint/create.js.map +1 -1
  140. package/dist/cmd/cloud/sandbox/checkpoint/delete.js +1 -1
  141. package/dist/cmd/cloud/sandbox/checkpoint/delete.js.map +1 -1
  142. package/dist/cmd/cloud/sandbox/checkpoint/index.js +1 -1
  143. package/dist/cmd/cloud/sandbox/checkpoint/index.js.map +1 -1
  144. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
  145. package/dist/cmd/cloud/sandbox/create.js +14 -0
  146. package/dist/cmd/cloud/sandbox/create.js.map +1 -1
  147. package/dist/cmd/cloud/sandbox/delete.js +1 -1
  148. package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
  149. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
  150. package/dist/cmd/cloud/sandbox/exec.js +76 -66
  151. package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
  152. package/dist/cmd/cloud/sandbox/execution/index.js +1 -1
  153. package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -1
  154. package/dist/cmd/cloud/sandbox/execution/list.js +2 -2
  155. package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
  156. package/dist/cmd/cloud/sandbox/fs/cp.d.ts +3 -0
  157. package/dist/cmd/cloud/sandbox/fs/cp.d.ts.map +1 -0
  158. package/dist/cmd/cloud/sandbox/{cp.js → fs/cp.js} +13 -13
  159. package/dist/cmd/cloud/sandbox/fs/cp.js.map +1 -0
  160. package/dist/cmd/cloud/sandbox/fs/download.d.ts +3 -0
  161. package/dist/cmd/cloud/sandbox/fs/download.d.ts.map +1 -0
  162. package/dist/cmd/cloud/sandbox/{download.js → fs/download.js} +7 -7
  163. package/dist/cmd/cloud/sandbox/fs/download.js.map +1 -0
  164. package/dist/cmd/cloud/sandbox/fs/index.d.ts +2 -0
  165. package/dist/cmd/cloud/sandbox/fs/index.d.ts.map +1 -0
  166. package/dist/cmd/cloud/sandbox/fs/index.js +36 -0
  167. package/dist/cmd/cloud/sandbox/fs/index.js.map +1 -0
  168. package/dist/cmd/cloud/sandbox/fs/ls.d.ts +3 -0
  169. package/dist/cmd/cloud/sandbox/fs/ls.d.ts.map +1 -0
  170. package/dist/cmd/cloud/sandbox/{ls.js → fs/ls.js} +10 -10
  171. package/dist/cmd/cloud/sandbox/fs/ls.js.map +1 -0
  172. package/dist/cmd/cloud/sandbox/fs/mkdir.d.ts +3 -0
  173. package/dist/cmd/cloud/sandbox/fs/mkdir.d.ts.map +1 -0
  174. package/dist/cmd/cloud/sandbox/{mkdir.js → fs/mkdir.js} +6 -6
  175. package/dist/cmd/cloud/sandbox/fs/mkdir.js.map +1 -0
  176. package/dist/cmd/cloud/sandbox/fs/rm.d.ts +3 -0
  177. package/dist/cmd/cloud/sandbox/fs/rm.d.ts.map +1 -0
  178. package/dist/cmd/cloud/sandbox/{rm.js → fs/rm.js} +6 -5
  179. package/dist/cmd/cloud/sandbox/fs/rm.js.map +1 -0
  180. package/dist/cmd/cloud/sandbox/fs/rmdir.d.ts +3 -0
  181. package/dist/cmd/cloud/sandbox/fs/rmdir.d.ts.map +1 -0
  182. package/dist/cmd/cloud/sandbox/{rmdir.js → fs/rmdir.js} +6 -6
  183. package/dist/cmd/cloud/sandbox/fs/rmdir.js.map +1 -0
  184. package/dist/cmd/cloud/sandbox/fs/upload.d.ts +3 -0
  185. package/dist/cmd/cloud/sandbox/fs/upload.d.ts.map +1 -0
  186. package/dist/cmd/cloud/sandbox/{upload.js → fs/upload.js} +7 -7
  187. package/dist/cmd/cloud/sandbox/fs/upload.js.map +1 -0
  188. package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -1
  189. package/dist/cmd/cloud/sandbox/index.js +4 -14
  190. package/dist/cmd/cloud/sandbox/index.js.map +1 -1
  191. package/dist/cmd/cloud/sandbox/job/create.d.ts +3 -0
  192. package/dist/cmd/cloud/sandbox/job/create.d.ts.map +1 -0
  193. package/dist/cmd/cloud/sandbox/job/create.js +52 -0
  194. package/dist/cmd/cloud/sandbox/job/create.js.map +1 -0
  195. package/dist/cmd/cloud/sandbox/job/destroy.d.ts +3 -0
  196. package/dist/cmd/cloud/sandbox/job/destroy.d.ts.map +1 -0
  197. package/dist/cmd/cloud/sandbox/job/destroy.js +59 -0
  198. package/dist/cmd/cloud/sandbox/job/destroy.js.map +1 -0
  199. package/dist/cmd/cloud/sandbox/job/get.d.ts +3 -0
  200. package/dist/cmd/cloud/sandbox/job/get.d.ts.map +1 -0
  201. package/dist/cmd/cloud/sandbox/job/get.js +66 -0
  202. package/dist/cmd/cloud/sandbox/job/get.js.map +1 -0
  203. package/dist/cmd/cloud/sandbox/job/index.d.ts +3 -0
  204. package/dist/cmd/cloud/sandbox/job/index.d.ts.map +1 -0
  205. package/dist/cmd/cloud/sandbox/job/index.js +41 -0
  206. package/dist/cmd/cloud/sandbox/job/index.js.map +1 -0
  207. package/dist/cmd/cloud/sandbox/job/list.d.ts +3 -0
  208. package/dist/cmd/cloud/sandbox/job/list.d.ts.map +1 -0
  209. package/dist/cmd/cloud/sandbox/job/list.js +67 -0
  210. package/dist/cmd/cloud/sandbox/job/list.js.map +1 -0
  211. package/dist/cmd/cloud/sandbox/job/logs.d.ts +3 -0
  212. package/dist/cmd/cloud/sandbox/job/logs.d.ts.map +1 -0
  213. package/dist/cmd/cloud/sandbox/job/logs.js +124 -0
  214. package/dist/cmd/cloud/sandbox/job/logs.js.map +1 -0
  215. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  216. package/dist/cmd/cloud/sandbox/run.js +14 -2
  217. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  218. package/dist/cmd/cloud/sandbox/runtime/index.js +1 -1
  219. package/dist/cmd/cloud/sandbox/runtime/index.js.map +1 -1
  220. package/dist/cmd/cloud/sandbox/snapshot/build.js +2 -2
  221. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
  222. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
  223. package/dist/cmd/cloud/sandbox/snapshot/create.js +1 -0
  224. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
  225. package/dist/cmd/cloud/sandbox/snapshot/delete.js +1 -1
  226. package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -1
  227. package/dist/cmd/cloud/sandbox/snapshot/index.js +1 -1
  228. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -1
  229. package/dist/cmd/cloud/schedule/create.d.ts.map +1 -1
  230. package/dist/cmd/cloud/schedule/create.js +1 -0
  231. package/dist/cmd/cloud/schedule/create.js.map +1 -1
  232. package/dist/cmd/cloud/schedule/delete.js +1 -1
  233. package/dist/cmd/cloud/schedule/delete.js.map +1 -1
  234. package/dist/cmd/cloud/schedule/delivery/get.d.ts.map +1 -1
  235. package/dist/cmd/cloud/schedule/delivery/get.js +1 -0
  236. package/dist/cmd/cloud/schedule/delivery/get.js.map +1 -1
  237. package/dist/cmd/cloud/schedule/destination/create.d.ts.map +1 -1
  238. package/dist/cmd/cloud/schedule/destination/create.js +1 -0
  239. package/dist/cmd/cloud/schedule/destination/create.js.map +1 -1
  240. package/dist/cmd/cloud/schedule/destination/delete.js +1 -1
  241. package/dist/cmd/cloud/schedule/destination/delete.js.map +1 -1
  242. package/dist/cmd/cloud/schedule/destination/get.d.ts.map +1 -1
  243. package/dist/cmd/cloud/schedule/destination/get.js +1 -0
  244. package/dist/cmd/cloud/schedule/destination/get.js.map +1 -1
  245. package/dist/cmd/cloud/schedule/get.d.ts.map +1 -1
  246. package/dist/cmd/cloud/schedule/get.js +1 -0
  247. package/dist/cmd/cloud/schedule/get.js.map +1 -1
  248. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  249. package/dist/cmd/cloud/session/get.js +1 -0
  250. package/dist/cmd/cloud/session/get.js.map +1 -1
  251. package/dist/cmd/cloud/session/index.d.ts.map +1 -1
  252. package/dist/cmd/cloud/session/index.js +1 -0
  253. package/dist/cmd/cloud/session/index.js.map +1 -1
  254. package/dist/cmd/cloud/session/list.js +1 -1
  255. package/dist/cmd/cloud/session/list.js.map +1 -1
  256. package/dist/cmd/cloud/storage/delete.js +1 -1
  257. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  258. package/dist/cmd/cloud/stream/delete.js +1 -1
  259. package/dist/cmd/cloud/stream/delete.js.map +1 -1
  260. package/dist/cmd/cloud/stream/get.d.ts.map +1 -1
  261. package/dist/cmd/cloud/stream/get.js +1 -0
  262. package/dist/cmd/cloud/stream/get.js.map +1 -1
  263. package/dist/cmd/cloud/task/delete.js +1 -1
  264. package/dist/cmd/cloud/task/delete.js.map +1 -1
  265. package/dist/cmd/cloud/task/index.d.ts.map +1 -1
  266. package/dist/cmd/cloud/task/index.js +1 -0
  267. package/dist/cmd/cloud/task/index.js.map +1 -1
  268. package/dist/cmd/cloud/thread/delete.js +1 -1
  269. package/dist/cmd/cloud/thread/delete.js.map +1 -1
  270. package/dist/cmd/cloud/thread/get.d.ts.map +1 -1
  271. package/dist/cmd/cloud/thread/get.js +1 -0
  272. package/dist/cmd/cloud/thread/get.js.map +1 -1
  273. package/dist/cmd/cloud/thread/index.d.ts.map +1 -1
  274. package/dist/cmd/cloud/thread/index.js +1 -0
  275. package/dist/cmd/cloud/thread/index.js.map +1 -1
  276. package/dist/cmd/cloud/thread/list.js +1 -1
  277. package/dist/cmd/cloud/thread/list.js.map +1 -1
  278. package/dist/cmd/cloud/vector/delete-namespace.js +1 -1
  279. package/dist/cmd/cloud/vector/delete-namespace.js.map +1 -1
  280. package/dist/cmd/cloud/vector/delete.js +1 -1
  281. package/dist/cmd/cloud/vector/delete.js.map +1 -1
  282. package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
  283. package/dist/cmd/cloud/vector/get.js +1 -0
  284. package/dist/cmd/cloud/vector/get.js.map +1 -1
  285. package/dist/cmd/cloud/vector/index.js +1 -1
  286. package/dist/cmd/cloud/vector/index.js.map +1 -1
  287. package/dist/cmd/cloud/webhook/create.d.ts.map +1 -1
  288. package/dist/cmd/cloud/webhook/create.js +1 -0
  289. package/dist/cmd/cloud/webhook/create.js.map +1 -1
  290. package/dist/cmd/cloud/webhook/delete.js +1 -1
  291. package/dist/cmd/cloud/webhook/delete.js.map +1 -1
  292. package/dist/cmd/cloud/webhook/get.d.ts.map +1 -1
  293. package/dist/cmd/cloud/webhook/get.js +1 -0
  294. package/dist/cmd/cloud/webhook/get.js.map +1 -1
  295. package/dist/cmd/coder/hub-url.d.ts.map +1 -1
  296. package/dist/cmd/coder/hub-url.js +3 -1
  297. package/dist/cmd/coder/hub-url.js.map +1 -1
  298. package/dist/cmd/coder/start.js +6 -6
  299. package/dist/cmd/coder/start.js.map +1 -1
  300. package/dist/cmd/coder/tui-init.d.ts +2 -2
  301. package/dist/cmd/coder/tui-init.js +2 -2
  302. package/dist/cmd/coder/tui-init.js.map +1 -1
  303. package/dist/cmd/dev/index.d.ts.map +1 -1
  304. package/dist/cmd/dev/index.js +161 -130
  305. package/dist/cmd/dev/index.js.map +1 -1
  306. package/dist/cmd/dev/process-manager.d.ts +104 -0
  307. package/dist/cmd/dev/process-manager.d.ts.map +1 -0
  308. package/dist/cmd/dev/process-manager.js +204 -0
  309. package/dist/cmd/dev/process-manager.js.map +1 -0
  310. package/dist/cmd/git/account/remove.d.ts.map +1 -1
  311. package/dist/cmd/git/account/remove.js +1 -0
  312. package/dist/cmd/git/account/remove.js.map +1 -1
  313. package/dist/cmd/profile/delete.js +1 -1
  314. package/dist/cmd/profile/delete.js.map +1 -1
  315. package/dist/cmd/project/delete.js +1 -1
  316. package/dist/cmd/project/delete.js.map +1 -1
  317. package/dist/cmd/project/hostname/get.d.ts.map +1 -1
  318. package/dist/cmd/project/hostname/get.js +1 -0
  319. package/dist/cmd/project/hostname/get.js.map +1 -1
  320. package/dist/cmd/project/show.d.ts.map +1 -1
  321. package/dist/cmd/project/show.js +9 -0
  322. package/dist/cmd/project/show.js.map +1 -1
  323. package/dist/cmd/support/report.d.ts.map +1 -1
  324. package/dist/cmd/support/report.js +19 -10
  325. package/dist/cmd/support/report.js.map +1 -1
  326. package/dist/cmd/upgrade/index.d.ts.map +1 -1
  327. package/dist/cmd/upgrade/index.js +3 -16
  328. package/dist/cmd/upgrade/index.js.map +1 -1
  329. package/dist/errors.d.ts +24 -10
  330. package/dist/errors.d.ts.map +1 -1
  331. package/dist/errors.js +42 -12
  332. package/dist/errors.js.map +1 -1
  333. package/dist/schema-generator.d.ts.map +1 -1
  334. package/dist/schema-generator.js +3 -13
  335. package/dist/schema-generator.js.map +1 -1
  336. package/dist/schema-parser.d.ts.map +1 -1
  337. package/dist/schema-parser.js +8 -0
  338. package/dist/schema-parser.js.map +1 -1
  339. package/dist/steps.d.ts.map +1 -1
  340. package/dist/steps.js +38 -0
  341. package/dist/steps.js.map +1 -1
  342. package/dist/tui.d.ts.map +1 -1
  343. package/dist/tui.js +25 -9
  344. package/dist/tui.js.map +1 -1
  345. package/dist/utils/stream-capture.d.ts +9 -0
  346. package/dist/utils/stream-capture.d.ts.map +1 -0
  347. package/dist/utils/stream-capture.js +34 -0
  348. package/dist/utils/stream-capture.js.map +1 -0
  349. package/dist/utils/stream-url.d.ts +23 -0
  350. package/dist/utils/stream-url.d.ts.map +1 -0
  351. package/dist/utils/stream-url.js +153 -0
  352. package/dist/utils/stream-url.js.map +1 -0
  353. package/dist/utils/version-mismatch.d.ts +39 -0
  354. package/dist/utils/version-mismatch.d.ts.map +1 -0
  355. package/dist/utils/version-mismatch.js +161 -0
  356. package/dist/utils/version-mismatch.js.map +1 -0
  357. package/dist/utils/zip.d.ts.map +1 -1
  358. package/dist/utils/zip.js +19 -10
  359. package/dist/utils/zip.js.map +1 -1
  360. package/package.json +11 -7
  361. package/src/auth.ts +12 -2
  362. package/src/cli.ts +33 -1
  363. package/src/cmd/auth/ssh/delete.ts +1 -1
  364. package/src/cmd/build/app-config-extractor.ts +186 -0
  365. package/src/cmd/build/ci.ts +225 -0
  366. package/src/cmd/build/index.ts +61 -14
  367. package/src/cmd/build/vite/agent-discovery.ts +30 -5
  368. package/src/cmd/build/vite/bun-dev-server.ts +319 -6
  369. package/src/cmd/build/vite/config-loader.ts +45 -77
  370. package/src/cmd/build/vite/route-discovery.ts +25 -12
  371. package/src/cmd/build/vite/static-renderer.ts +34 -47
  372. package/src/cmd/build/vite/tailwind-source-plugin.ts +73 -0
  373. package/src/cmd/build/vite/vite-asset-server-config.ts +4 -47
  374. package/src/cmd/build/vite/vite-builder.ts +80 -168
  375. package/src/cmd/cloud/agent/get.ts +1 -0
  376. package/src/cmd/cloud/apikey/delete.ts +1 -1
  377. package/src/cmd/cloud/apikey/get.ts +1 -0
  378. package/src/cmd/cloud/apikey/index.ts +1 -0
  379. package/src/cmd/cloud/db/delete.ts +1 -1
  380. package/src/cmd/cloud/deploy-fork.ts +90 -33
  381. package/src/cmd/cloud/deploy.ts +69 -13
  382. package/src/cmd/cloud/deployment/remove.ts +17 -17
  383. package/src/cmd/cloud/deployment/show.ts +1 -1
  384. package/src/cmd/cloud/email/create.ts +1 -1
  385. package/src/cmd/cloud/email/delete.ts +1 -1
  386. package/src/cmd/cloud/email/destination/delete.ts +1 -1
  387. package/src/cmd/cloud/email/get.ts +1 -0
  388. package/src/cmd/cloud/email/inbound/get.ts +1 -0
  389. package/src/cmd/cloud/email/outbound/get.ts +1 -0
  390. package/src/cmd/cloud/env/delete.ts +1 -1
  391. package/src/cmd/cloud/env/get.ts +1 -0
  392. package/src/cmd/cloud/eval/get.ts +1 -0
  393. package/src/cmd/cloud/eval/index.ts +1 -0
  394. package/src/cmd/cloud/eval/list.ts +1 -1
  395. package/src/cmd/cloud/eval-run/get.ts +1 -0
  396. package/src/cmd/cloud/eval-run/index.ts +1 -0
  397. package/src/cmd/cloud/eval-run/list.ts +1 -1
  398. package/src/cmd/cloud/keyvalue/delete-namespace.ts +1 -1
  399. package/src/cmd/cloud/keyvalue/delete.ts +1 -1
  400. package/src/cmd/cloud/keyvalue/get.ts +1 -0
  401. package/src/cmd/cloud/keyvalue/index.ts +1 -1
  402. package/src/cmd/cloud/machine/delete.ts +1 -1
  403. package/src/cmd/cloud/oidc/delete.ts +1 -1
  404. package/src/cmd/cloud/oidc/get.ts +1 -0
  405. package/src/cmd/cloud/queue/create.ts +1 -0
  406. package/src/cmd/cloud/queue/delete.ts +1 -1
  407. package/src/cmd/cloud/queue/get.ts +1 -0
  408. package/src/cmd/cloud/redis/get.ts +1 -1
  409. package/src/cmd/cloud/sandbox/checkpoint/create.ts +1 -0
  410. package/src/cmd/cloud/sandbox/checkpoint/delete.ts +1 -1
  411. package/src/cmd/cloud/sandbox/checkpoint/index.ts +1 -1
  412. package/src/cmd/cloud/sandbox/create.ts +16 -0
  413. package/src/cmd/cloud/sandbox/delete.ts +1 -1
  414. package/src/cmd/cloud/sandbox/exec.ts +102 -90
  415. package/src/cmd/cloud/sandbox/execution/index.ts +1 -1
  416. package/src/cmd/cloud/sandbox/execution/list.ts +2 -2
  417. package/src/cmd/cloud/sandbox/{cp.ts → fs/cp.ts} +13 -13
  418. package/src/cmd/cloud/sandbox/{download.ts → fs/download.ts} +7 -7
  419. package/src/cmd/cloud/sandbox/fs/index.ts +36 -0
  420. package/src/cmd/cloud/sandbox/{ls.ts → fs/ls.ts} +10 -10
  421. package/src/cmd/cloud/sandbox/{mkdir.ts → fs/mkdir.ts} +6 -6
  422. package/src/cmd/cloud/sandbox/{rm.ts → fs/rm.ts} +6 -5
  423. package/src/cmd/cloud/sandbox/{rmdir.ts → fs/rmdir.ts} +6 -6
  424. package/src/cmd/cloud/sandbox/{upload.ts → fs/upload.ts} +7 -7
  425. package/src/cmd/cloud/sandbox/index.ts +4 -14
  426. package/src/cmd/cloud/sandbox/job/create.ts +63 -0
  427. package/src/cmd/cloud/sandbox/job/destroy.ts +67 -0
  428. package/src/cmd/cloud/sandbox/job/get.ts +78 -0
  429. package/src/cmd/cloud/sandbox/job/index.ts +42 -0
  430. package/src/cmd/cloud/sandbox/job/list.ts +81 -0
  431. package/src/cmd/cloud/sandbox/job/logs.ts +139 -0
  432. package/src/cmd/cloud/sandbox/run.ts +16 -2
  433. package/src/cmd/cloud/sandbox/runtime/index.ts +1 -1
  434. package/src/cmd/cloud/sandbox/snapshot/build.ts +2 -2
  435. package/src/cmd/cloud/sandbox/snapshot/create.ts +1 -0
  436. package/src/cmd/cloud/sandbox/snapshot/delete.ts +1 -1
  437. package/src/cmd/cloud/sandbox/snapshot/index.ts +1 -1
  438. package/src/cmd/cloud/schedule/create.ts +1 -0
  439. package/src/cmd/cloud/schedule/delete.ts +1 -1
  440. package/src/cmd/cloud/schedule/delivery/get.ts +1 -0
  441. package/src/cmd/cloud/schedule/destination/create.ts +1 -0
  442. package/src/cmd/cloud/schedule/destination/delete.ts +1 -1
  443. package/src/cmd/cloud/schedule/destination/get.ts +1 -0
  444. package/src/cmd/cloud/schedule/get.ts +1 -0
  445. package/src/cmd/cloud/session/get.ts +1 -0
  446. package/src/cmd/cloud/session/index.ts +1 -0
  447. package/src/cmd/cloud/session/list.ts +1 -1
  448. package/src/cmd/cloud/storage/delete.ts +1 -1
  449. package/src/cmd/cloud/stream/delete.ts +1 -1
  450. package/src/cmd/cloud/stream/get.ts +1 -0
  451. package/src/cmd/cloud/task/delete.ts +1 -1
  452. package/src/cmd/cloud/task/index.ts +1 -0
  453. package/src/cmd/cloud/thread/delete.ts +1 -1
  454. package/src/cmd/cloud/thread/get.ts +1 -0
  455. package/src/cmd/cloud/thread/index.ts +1 -0
  456. package/src/cmd/cloud/thread/list.ts +1 -1
  457. package/src/cmd/cloud/vector/delete-namespace.ts +1 -1
  458. package/src/cmd/cloud/vector/delete.ts +1 -1
  459. package/src/cmd/cloud/vector/get.ts +1 -0
  460. package/src/cmd/cloud/vector/index.ts +1 -1
  461. package/src/cmd/cloud/webhook/create.ts +1 -0
  462. package/src/cmd/cloud/webhook/delete.ts +1 -1
  463. package/src/cmd/cloud/webhook/get.ts +1 -0
  464. package/src/cmd/coder/hub-url.ts +3 -1
  465. package/src/cmd/coder/start.ts +6 -6
  466. package/src/cmd/coder/tui-init.ts +4 -4
  467. package/src/cmd/dev/index.ts +171 -131
  468. package/src/cmd/dev/process-manager.ts +261 -0
  469. package/src/cmd/git/account/remove.ts +1 -0
  470. package/src/cmd/profile/delete.ts +1 -1
  471. package/src/cmd/project/delete.ts +1 -1
  472. package/src/cmd/project/hostname/get.ts +1 -0
  473. package/src/cmd/project/show.ts +9 -0
  474. package/src/cmd/support/report.ts +21 -10
  475. package/src/cmd/upgrade/index.ts +3 -18
  476. package/src/errors.ts +44 -12
  477. package/src/schema-generator.ts +3 -13
  478. package/src/schema-parser.ts +11 -0
  479. package/src/steps.ts +38 -0
  480. package/src/tui.ts +24 -9
  481. package/src/utils/stream-capture.ts +39 -0
  482. package/src/utils/stream-url.ts +226 -0
  483. package/src/utils/version-mismatch.ts +204 -0
  484. package/src/utils/zip.ts +22 -10
  485. package/dist/cmd/cloud/sandbox/cp.d.ts +0 -3
  486. package/dist/cmd/cloud/sandbox/cp.d.ts.map +0 -1
  487. package/dist/cmd/cloud/sandbox/cp.js.map +0 -1
  488. package/dist/cmd/cloud/sandbox/download.d.ts +0 -3
  489. package/dist/cmd/cloud/sandbox/download.d.ts.map +0 -1
  490. package/dist/cmd/cloud/sandbox/download.js.map +0 -1
  491. package/dist/cmd/cloud/sandbox/ls.d.ts +0 -3
  492. package/dist/cmd/cloud/sandbox/ls.d.ts.map +0 -1
  493. package/dist/cmd/cloud/sandbox/ls.js.map +0 -1
  494. package/dist/cmd/cloud/sandbox/mkdir.d.ts +0 -3
  495. package/dist/cmd/cloud/sandbox/mkdir.d.ts.map +0 -1
  496. package/dist/cmd/cloud/sandbox/mkdir.js.map +0 -1
  497. package/dist/cmd/cloud/sandbox/rm.d.ts +0 -3
  498. package/dist/cmd/cloud/sandbox/rm.d.ts.map +0 -1
  499. package/dist/cmd/cloud/sandbox/rm.js.map +0 -1
  500. package/dist/cmd/cloud/sandbox/rmdir.d.ts +0 -3
  501. package/dist/cmd/cloud/sandbox/rmdir.d.ts.map +0 -1
  502. package/dist/cmd/cloud/sandbox/rmdir.js.map +0 -1
  503. package/dist/cmd/cloud/sandbox/upload.d.ts +0 -3
  504. package/dist/cmd/cloud/sandbox/upload.d.ts.map +0 -1
  505. package/dist/cmd/cloud/sandbox/upload.js.map +0 -1
@@ -0,0 +1,225 @@
1
+ import type { Logger } from '@agentuity/core';
2
+ import { spawn } from 'bun';
3
+ import { mkdir, mkdtemp, readdir, realpath, rm, stat } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { ErrorCode } from '../../errors';
7
+ import * as tui from '../../tui';
8
+
9
+ export interface CIBuildOptions {
10
+ url?: string;
11
+ directory?: string;
12
+ trigger?: string;
13
+ event?: string;
14
+ message?: string;
15
+ commit?: string;
16
+ commitUrl?: string;
17
+ branch?: string;
18
+ repo?: string;
19
+ provider?: string;
20
+ pullRequestNumber?: number;
21
+ pullRequestUrl?: string;
22
+ logsUrl?: string;
23
+ }
24
+
25
+ async function runCommand(cmd: string[], cwd: string): Promise<number> {
26
+ const proc = spawn({
27
+ cmd,
28
+ cwd,
29
+ env: { ...process.env, CI: 'true' },
30
+ stdin: 'ignore',
31
+ stdout: 'inherit',
32
+ stderr: 'inherit',
33
+ });
34
+ await proc.exited;
35
+ return proc.exitCode ?? 1;
36
+ }
37
+ async function downloadSource(url: string, targetPath: string): Promise<void> {
38
+ let lastError: unknown;
39
+
40
+ for (let attempt = 1; attempt <= 3; attempt++) {
41
+ try {
42
+ const response = await fetch(url, { signal: AbortSignal.timeout(60_000) });
43
+ if (!response.ok) {
44
+ throw new Error(`Download failed with status ${response.status}`);
45
+ }
46
+
47
+ await Bun.write(targetPath, await response.arrayBuffer());
48
+ return;
49
+ } catch (error) {
50
+ lastError = error;
51
+ if (attempt < 3) {
52
+ tui.info(`Download failed (attempt ${attempt}/3), retrying...`);
53
+ }
54
+ }
55
+ }
56
+
57
+ throw lastError instanceof Error ? lastError : new Error('Download failed');
58
+ }
59
+
60
+ function buildDeployArgs(opts: CIBuildOptions): string[] {
61
+ const args: string[] = [];
62
+
63
+ if (opts.trigger) args.push('--trigger', opts.trigger);
64
+ if (opts.event) args.push('--event', opts.event);
65
+ if (opts.message) args.push('--message', opts.message);
66
+ if (opts.commit) args.push('--commit', opts.commit);
67
+ if (opts.commitUrl) args.push('--commit-url', opts.commitUrl);
68
+ if (opts.branch) args.push('--branch', opts.branch);
69
+ if (opts.repo) args.push('--repo', opts.repo);
70
+ if (opts.provider) args.push('--provider', opts.provider);
71
+ if (opts.pullRequestNumber !== undefined) {
72
+ args.push('--pull-request-number', String(opts.pullRequestNumber));
73
+ }
74
+ if (opts.pullRequestUrl) args.push('--pull-request-url', opts.pullRequestUrl);
75
+ if (opts.logsUrl) args.push('--logs-url', opts.logsUrl);
76
+
77
+ return args;
78
+ }
79
+
80
+ export async function runCIBuild(opts: CIBuildOptions, _logger: Logger): Promise<void> {
81
+ let tempDir = '';
82
+ // Track subprocess exit code so we can clean up in finally before calling process.exit().
83
+ // Bun does not reliably honor process.exitCode, so an explicit process.exit() is required.
84
+ let pendingExitCode: number | undefined;
85
+
86
+ try {
87
+ let projectDir: string;
88
+
89
+ if (opts.url) {
90
+ // Download and extract source from URL
91
+ tempDir = await mkdtemp(join(tmpdir(), 'agentuity-ci-build-'));
92
+ const sourceZipPath = join(tempDir, 'source.zip');
93
+ const extractPath = join(tempDir, 'build');
94
+
95
+ tui.info('1️⃣ Downloading source code from GitHub...');
96
+ await downloadSource(opts.url, sourceZipPath);
97
+
98
+ tui.info('2️⃣ Unzipping source code from GitHub...');
99
+ await mkdir(extractPath, { recursive: true });
100
+ const unzipExit = await runCommand(
101
+ ['unzip', '-q', sourceZipPath, '-d', extractPath],
102
+ tempDir
103
+ );
104
+ if (unzipExit !== 0 && unzipExit !== 1) {
105
+ tui.error(`Failed to unzip source archive (exit ${unzipExit})`);
106
+ pendingExitCode = unzipExit;
107
+ return;
108
+ }
109
+
110
+ const extractedEntries = await readdir(extractPath, { withFileTypes: true });
111
+ const extractedDirs = extractedEntries.filter((entry) => entry.isDirectory());
112
+ if (extractedDirs.length !== 1) {
113
+ tui.fatal(
114
+ `Expected one root directory after unzip, found ${extractedDirs.length}`,
115
+ ErrorCode.BUILD_FAILED
116
+ );
117
+ }
118
+
119
+ const sourceRoot = extractedDirs.at(0);
120
+ if (!sourceRoot) {
121
+ tui.fatal('Could not determine extracted source directory', ErrorCode.BUILD_FAILED);
122
+ }
123
+
124
+ const sourceRootDir = join(extractPath, sourceRoot.name);
125
+ projectDir = sourceRootDir;
126
+ if (opts.directory) {
127
+ projectDir = join(sourceRootDir, opts.directory);
128
+ }
129
+
130
+ const projectStats = await stat(projectDir).catch(() => null);
131
+ if (!projectStats?.isDirectory()) {
132
+ tui.fatal(`Build directory not found: ${projectDir}`, ErrorCode.CONFIG_INVALID);
133
+ }
134
+
135
+ // Resolve symlinks and verify the project dir is within the source root
136
+ const realProjectDir = await realpath(projectDir).catch(() => null);
137
+ const realSourceRoot = await realpath(sourceRootDir).catch(() => null);
138
+ if (!realProjectDir || !realSourceRoot || !realProjectDir.startsWith(realSourceRoot)) {
139
+ tui.fatal(
140
+ 'Directory path escapes the source root (path traversal denied)',
141
+ ErrorCode.CONFIG_INVALID
142
+ );
143
+ }
144
+ projectDir = realProjectDir;
145
+ } else {
146
+ // No URL — use current working directory (source already present, e.g. snapshot-based deploy)
147
+ tui.info('1️⃣ Using local source (no download URL provided)...');
148
+ projectDir = process.cwd();
149
+ if (opts.directory) {
150
+ projectDir = join(projectDir, opts.directory);
151
+ }
152
+ }
153
+
154
+ const sdkKey = process.env.AGENTUITY_SDK_KEY;
155
+ if (sdkKey) {
156
+ await Bun.write(join(projectDir, '.env'), `AGENTUITY_SDK_KEY=${sdkKey}\n`);
157
+ }
158
+
159
+ tui.info('3️⃣ Installing your project dependencies...');
160
+ const installExit = await runCommand(['bun', 'install'], projectDir);
161
+ if (installExit !== 0) {
162
+ tui.error(`Dependency installation failed (exit ${installExit})`);
163
+ pendingExitCode = installExit;
164
+ return;
165
+ }
166
+
167
+ const packageJsonPath = join(projectDir, 'package.json');
168
+ const packageJsonFile = Bun.file(packageJsonPath);
169
+ let scripts: Record<string, string> | undefined;
170
+ if (await packageJsonFile.exists()) {
171
+ const packageJson = (await packageJsonFile.json()) as {
172
+ scripts?: Record<string, string>;
173
+ };
174
+ scripts = packageJson.scripts;
175
+ }
176
+
177
+ if (scripts?.predeploy) {
178
+ tui.info('🔧 Running predeploy script...');
179
+ const predeployExit = await runCommand(['bun', 'run', '--bun', 'predeploy'], projectDir);
180
+ if (predeployExit !== 0) {
181
+ tui.error(`Predeploy failed (exit ${predeployExit})`);
182
+ pendingExitCode = predeployExit;
183
+ return;
184
+ }
185
+ }
186
+
187
+ tui.info('4️⃣ Deploying your project...');
188
+ // Use the locally installed CLI binary instead of bunx to avoid
189
+ // bunx resolution crashes on certain Bun versions (e.g. arm64 segfaults)
190
+ const localCliBin = join(projectDir, 'node_modules', '.bin', 'agentuity');
191
+ const cliExists = await stat(localCliBin).catch(() => null);
192
+ const deployCmd = cliExists
193
+ ? ['bun', localCliBin, 'deploy', ...buildDeployArgs(opts)]
194
+ : ['bunx', '--bun', 'agentuity', 'deploy', ...buildDeployArgs(opts)];
195
+ tui.info(`Using CLI: ${cliExists ? localCliBin : 'bunx --bun agentuity'}`);
196
+ const deployExit = await runCommand(deployCmd, projectDir);
197
+ if (deployExit !== 0) {
198
+ tui.error(`Deploy failed (exit ${deployExit})`);
199
+ pendingExitCode = deployExit;
200
+ return;
201
+ }
202
+
203
+ if (scripts?.postdeploy) {
204
+ tui.info('🔧 Running postdeploy script...');
205
+ const postdeployExit = await runCommand(['bun', 'run', '--bun', 'postdeploy'], projectDir);
206
+ if (postdeployExit !== 0) {
207
+ tui.error(`Postdeploy failed (exit ${postdeployExit})`);
208
+ pendingExitCode = postdeployExit;
209
+ return;
210
+ }
211
+ }
212
+
213
+ tui.success('✅ Your project has been built...');
214
+ } catch (error) {
215
+ const message = error instanceof Error ? error.message : String(error);
216
+ tui.fatal(`CI build failed: ${message}`, ErrorCode.BUILD_FAILED);
217
+ } finally {
218
+ if (tempDir) {
219
+ await rm(tempDir, { recursive: true, force: true });
220
+ }
221
+ if (pendingExitCode !== undefined) {
222
+ process.exit(pendingExitCode);
223
+ }
224
+ }
225
+ }
@@ -1,12 +1,13 @@
1
1
  import { z } from 'zod';
2
2
  import { resolve, join, relative } from 'node:path';
3
- import { createCommand } from '../../types';
3
+ import { createCommand, DeployOptionsSchema } from '../../types';
4
4
  import { viteBundle } from './vite-bundler';
5
5
  import * as tui from '../../tui';
6
6
  import { getCommand } from '../../command-prefix';
7
7
  import { ErrorCode } from '../../errors';
8
8
  import { typecheck } from './typecheck';
9
9
  import { BuildReportCollector, setGlobalCollector, clearGlobalCollector } from '../../build-report';
10
+ import { detectVersionMismatch, formatVersionMismatchWarning } from '../../utils/version-mismatch';
10
11
 
11
12
  const BuildResponseSchema = z.object({
12
13
  success: z.boolean().describe('Whether the build succeeded'),
@@ -16,6 +17,22 @@ const BuildResponseSchema = z.object({
16
17
  size: z.number().optional().describe('Build size in bytes'),
17
18
  });
18
19
 
20
+ const BuildOptionsSchema = z.intersection(
21
+ DeployOptionsSchema,
22
+ z.object({
23
+ dev: z.boolean().optional().describe('Enable development mode'),
24
+ outdir: z.string().optional().describe('Output directory for build artifacts'),
25
+ skipTypeCheck: z.boolean().default(false).optional().describe('Skip typecheck after build'),
26
+ reportFile: z
27
+ .string()
28
+ .optional()
29
+ .describe('file path to save build report JSON with errors, warnings, and diagnostics'),
30
+ ci: z.boolean().optional().describe('Enable CI build mode'),
31
+ url: z.string().optional().describe('Source code download URL (required with --ci)'),
32
+ directory: z.string().optional().describe('Subdirectory within extracted source'),
33
+ })
34
+ );
35
+
19
36
  export const command = createCommand({
20
37
  name: 'build',
21
38
  description: 'Build Agentuity application for deployment',
@@ -26,28 +43,49 @@ export const command = createCommand({
26
43
  examples: [
27
44
  { command: getCommand('build'), description: 'Build the project' },
28
45
  { command: getCommand('build --dev'), description: 'Run in development mode' },
46
+ {
47
+ command: getCommand('build --ci --url https://example.com/source.zip'),
48
+ description: 'Run CI build from source URL',
49
+ },
29
50
  { command: getCommand('bundle'), description: 'Bundle the project' },
30
51
  ],
31
52
  schema: {
32
- options: z.object({
33
- dev: z.boolean().optional().describe('Enable development mode'),
34
- outdir: z.string().optional().describe('Output directory for build artifacts'),
35
- skipTypeCheck: z
36
- .boolean()
37
- .default(false)
38
- .optional()
39
- .describe('Skip typecheck after build'),
40
- reportFile: z
41
- .string()
42
- .optional()
43
- .describe('file path to save build report JSON with errors, warnings, and diagnostics'),
44
- }),
53
+ options: BuildOptionsSchema,
45
54
  response: BuildResponseSchema,
46
55
  },
47
56
 
48
57
  async handler(ctx) {
49
58
  const { opts, projectDir, project } = ctx;
50
59
 
60
+ if (opts.ci) {
61
+ const { runCIBuild } = await import('./ci');
62
+ await runCIBuild(
63
+ {
64
+ url: opts.url,
65
+ directory: opts.directory,
66
+ trigger: opts.trigger,
67
+ event: opts.event,
68
+ message: opts.message,
69
+ commit: opts.commit,
70
+ commitUrl: opts.commitUrl,
71
+ branch: opts.branch,
72
+ repo: opts.repo,
73
+ provider: opts.provider,
74
+ pullRequestNumber: opts.pullRequestNumber,
75
+ pullRequestUrl: opts.pullRequestUrl,
76
+ logsUrl: opts.logsUrl,
77
+ },
78
+ ctx.logger
79
+ );
80
+
81
+ return {
82
+ success: true,
83
+ bundlePath: projectDir,
84
+ projectName: project?.projectId || 'unknown',
85
+ dev: false,
86
+ };
87
+ }
88
+
51
89
  // Initialize build report collector if reportFile is specified
52
90
  const collector = new BuildReportCollector();
53
91
  if (opts.reportFile) {
@@ -57,6 +95,15 @@ export const command = createCommand({
57
95
  }
58
96
 
59
97
  const absoluteProjectDir = resolve(projectDir);
98
+
99
+ // Check for version mismatches (v1 vs v2 SDK packages)
100
+ const versionMismatch = detectVersionMismatch(absoluteProjectDir, ctx.logger);
101
+ if (versionMismatch.hasV1Packages || versionMismatch.hasMajorMismatches) {
102
+ tui.newline();
103
+ tui.warning(formatVersionMismatchWarning(versionMismatch));
104
+ tui.newline();
105
+ }
106
+
60
107
  const outDir = opts.outdir ? resolve(opts.outdir) : join(absoluteProjectDir, '.agentuity');
61
108
 
62
109
  try {
@@ -279,12 +279,25 @@ async function importAgentMetadata(
279
279
  evals: evals.length > 0 ? evals : undefined,
280
280
  };
281
281
  } catch (error) {
282
- logger.warn(
283
- '[agent-discovery] Failed to import agent %s: %s',
284
- filePath,
285
- error instanceof Error ? error.message : String(error)
282
+ const errorMsg = error instanceof Error ? error.message : String(error);
283
+ throw new Error(
284
+ `Failed to import agent at ${relativeFilename}:\n` +
285
+ ` ${errorMsg}\n\n` +
286
+ `Agent files are imported at build time to extract metadata. Code that ` +
287
+ `runs at module scope (outside of setup() or handler()) will execute ` +
288
+ `during the build — including SDK client constructors that require API ` +
289
+ `keys or environment variables.\n\n` +
290
+ `To fix this, move initialization code into setup() or handler():\n\n` +
291
+ ` // ❌ Don't do this — runs at import time:\n` +
292
+ ` const client = new OpenAI();\n` +
293
+ ` export default createAgent('my-agent', { handler: async (ctx) => { ... } });\n\n` +
294
+ ` // ✅ Do this instead — runs at request time:\n` +
295
+ ` export default createAgent('my-agent', {\n` +
296
+ ` setup: (ctx) => ({ client: new OpenAI() }),\n` +
297
+ ` handler: async (ctx) => { const { client } = ctx.setup; ... },\n` +
298
+ ` });\n\n` +
299
+ `See https://agentuity.dev/docs/agents#setup for more information.`
286
300
  );
287
- return null;
288
301
  }
289
302
  }
290
303
 
@@ -325,6 +338,18 @@ export async function discoverAgents(
325
338
  continue;
326
339
  }
327
340
 
341
+ // Skip test files (*.test.ts, *.spec.ts) and test directories
342
+ if (
343
+ file.startsWith('test/') ||
344
+ file.includes('/test/') ||
345
+ file.startsWith('__tests__/') ||
346
+ file.includes('/__tests__/') ||
347
+ file.endsWith('.test.ts') ||
348
+ file.endsWith('.spec.ts')
349
+ ) {
350
+ continue;
351
+ }
352
+
328
353
  const relativeFilename = toForwardSlash(relative(rootDir, filePath));
329
354
  const agentMetadata = await importAgentMetadata(
330
355
  filePath,