@agentuity/cli 2.0.10 → 3.0.0-alpha.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 (353) hide show
  1. package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
  2. package/dist/cmd/ai/prompt/index.js +2 -7
  3. package/dist/cmd/ai/prompt/index.js.map +1 -1
  4. package/dist/cmd/build/adapters/generic.d.ts +29 -0
  5. package/dist/cmd/build/adapters/generic.d.ts.map +1 -0
  6. package/dist/cmd/build/adapters/generic.js +190 -0
  7. package/dist/cmd/build/adapters/generic.js.map +1 -0
  8. package/dist/cmd/build/adapters/index.d.ts +15 -0
  9. package/dist/cmd/build/adapters/index.d.ts.map +1 -0
  10. package/dist/cmd/build/adapters/index.js +24 -0
  11. package/dist/cmd/build/adapters/index.js.map +1 -0
  12. package/dist/cmd/build/adapters/nextjs.d.ts +11 -0
  13. package/dist/cmd/build/adapters/nextjs.d.ts.map +1 -0
  14. package/dist/cmd/build/adapters/nextjs.js +118 -0
  15. package/dist/cmd/build/adapters/nextjs.js.map +1 -0
  16. package/dist/cmd/build/adapters/static-server.d.ts +23 -0
  17. package/dist/cmd/build/adapters/static-server.d.ts.map +1 -0
  18. package/dist/cmd/build/adapters/static-server.js +137 -0
  19. package/dist/cmd/build/adapters/static-server.js.map +1 -0
  20. package/dist/cmd/build/adapters/types.d.ts +71 -0
  21. package/dist/cmd/build/adapters/types.d.ts.map +1 -0
  22. package/dist/cmd/build/adapters/types.js +8 -0
  23. package/dist/cmd/build/adapters/types.js.map +1 -0
  24. package/dist/cmd/build/detect/engine.d.ts +24 -0
  25. package/dist/cmd/build/detect/engine.d.ts.map +1 -0
  26. package/dist/cmd/build/detect/engine.js +91 -0
  27. package/dist/cmd/build/detect/engine.js.map +1 -0
  28. package/dist/cmd/build/detect/frameworks.d.ts +66 -0
  29. package/dist/cmd/build/detect/frameworks.d.ts.map +1 -0
  30. package/dist/cmd/build/detect/frameworks.js +278 -0
  31. package/dist/cmd/build/detect/frameworks.js.map +1 -0
  32. package/dist/cmd/build/detect/generic.d.ts +13 -0
  33. package/dist/cmd/build/detect/generic.d.ts.map +1 -0
  34. package/dist/cmd/build/detect/generic.js +62 -0
  35. package/dist/cmd/build/detect/generic.js.map +1 -0
  36. package/dist/cmd/build/detect/index.d.ts +27 -0
  37. package/dist/cmd/build/detect/index.d.ts.map +1 -0
  38. package/dist/cmd/build/detect/index.js +76 -0
  39. package/dist/cmd/build/detect/index.js.map +1 -0
  40. package/dist/cmd/build/detect/types.d.ts +91 -0
  41. package/dist/cmd/build/detect/types.d.ts.map +1 -0
  42. package/dist/cmd/build/detect/types.js +9 -0
  43. package/dist/cmd/build/detect/types.js.map +1 -0
  44. package/dist/cmd/build/detect/util.d.ts +41 -0
  45. package/dist/cmd/build/detect/util.d.ts.map +1 -0
  46. package/dist/cmd/build/detect/util.js +101 -0
  47. package/dist/cmd/build/detect/util.js.map +1 -0
  48. package/dist/cmd/build/index.d.ts.map +1 -1
  49. package/dist/cmd/build/index.js +49 -22
  50. package/dist/cmd/build/index.js.map +1 -1
  51. package/dist/cmd/build/package/index.d.ts +30 -0
  52. package/dist/cmd/build/package/index.d.ts.map +1 -0
  53. package/dist/cmd/build/package/index.js +39 -0
  54. package/dist/cmd/build/package/index.js.map +1 -0
  55. package/dist/cmd/build/package/launch.d.ts +56 -0
  56. package/dist/cmd/build/package/launch.d.ts.map +1 -0
  57. package/dist/cmd/build/package/launch.js +56 -0
  58. package/dist/cmd/build/package/launch.js.map +1 -0
  59. package/dist/cmd/build/typecheck.d.ts.map +1 -1
  60. package/dist/cmd/build/typecheck.js +8 -0
  61. package/dist/cmd/build/typecheck.js.map +1 -1
  62. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  63. package/dist/cmd/cloud/deploy.js +63 -13
  64. package/dist/cmd/cloud/deploy.js.map +1 -1
  65. package/dist/cmd/coder/create.d.ts.map +1 -1
  66. package/dist/cmd/coder/create.js +18 -0
  67. package/dist/cmd/coder/create.js.map +1 -1
  68. package/dist/cmd/coder/index.d.ts.map +1 -1
  69. package/dist/cmd/coder/index.js +4 -0
  70. package/dist/cmd/coder/index.js.map +1 -1
  71. package/dist/cmd/coder/start.d.ts.map +1 -1
  72. package/dist/cmd/coder/start.js +49 -1
  73. package/dist/cmd/coder/start.js.map +1 -1
  74. package/dist/cmd/coder/update.d.ts.map +1 -1
  75. package/dist/cmd/coder/update.js +21 -1
  76. package/dist/cmd/coder/update.js.map +1 -1
  77. package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
  78. package/dist/cmd/coder/workspace/create.js +17 -1
  79. package/dist/cmd/coder/workspace/create.js.map +1 -1
  80. package/dist/cmd/coder/workspace/list.js +2 -2
  81. package/dist/cmd/coder/workspace/list.js.map +1 -1
  82. package/dist/cmd/dev/index.d.ts +9 -0
  83. package/dist/cmd/dev/index.d.ts.map +1 -1
  84. package/dist/cmd/dev/index.js +127 -923
  85. package/dist/cmd/dev/index.js.map +1 -1
  86. package/dist/cmd/project/auth/shared.d.ts.map +1 -1
  87. package/dist/cmd/project/auth/shared.js +14 -38
  88. package/dist/cmd/project/auth/shared.js.map +1 -1
  89. package/dist/cmd/project/create.d.ts.map +1 -1
  90. package/dist/cmd/project/create.js +12 -19
  91. package/dist/cmd/project/create.js.map +1 -1
  92. package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
  93. package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
  94. package/dist/cmd/project/frameworks-ai-examples.js +160 -0
  95. package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
  96. package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
  97. package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
  98. package/dist/cmd/project/frameworks-landing-pages.js +242 -0
  99. package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
  100. package/dist/cmd/project/frameworks.d.ts +58 -0
  101. package/dist/cmd/project/frameworks.d.ts.map +1 -0
  102. package/dist/cmd/project/frameworks.js +152 -0
  103. package/dist/cmd/project/frameworks.js.map +1 -0
  104. package/dist/cmd/project/reconcile.d.ts.map +1 -1
  105. package/dist/cmd/project/reconcile.js +10 -23
  106. package/dist/cmd/project/reconcile.js.map +1 -1
  107. package/dist/cmd/project/remote-import.js +1 -1
  108. package/dist/cmd/project/scaffold.d.ts +58 -0
  109. package/dist/cmd/project/scaffold.d.ts.map +1 -0
  110. package/dist/cmd/project/scaffold.js +223 -0
  111. package/dist/cmd/project/scaffold.js.map +1 -0
  112. package/dist/cmd/project/template-flow.d.ts +8 -4
  113. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  114. package/dist/cmd/project/template-flow.js +93 -144
  115. package/dist/cmd/project/template-flow.js.map +1 -1
  116. package/dist/deploy-metadata.d.ts +49 -0
  117. package/dist/deploy-metadata.d.ts.map +1 -0
  118. package/dist/deploy-metadata.js +183 -0
  119. package/dist/deploy-metadata.js.map +1 -0
  120. package/dist/index.d.ts +1 -1
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js.map +1 -1
  123. package/dist/types.d.ts +25 -31
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/types.js.map +1 -1
  126. package/package.json +13 -8
  127. package/src/cmd/ai/prompt/index.ts +2 -7
  128. package/src/cmd/build/adapters/generic.ts +239 -0
  129. package/src/cmd/build/adapters/index.ts +30 -0
  130. package/src/cmd/build/adapters/nextjs.ts +146 -0
  131. package/src/cmd/build/adapters/static-server.ts +143 -0
  132. package/src/cmd/build/adapters/types.ts +93 -0
  133. package/src/cmd/build/detect/engine.ts +111 -0
  134. package/src/cmd/build/detect/frameworks.ts +335 -0
  135. package/src/cmd/build/detect/generic.ts +71 -0
  136. package/src/cmd/build/detect/index.ts +122 -0
  137. package/src/cmd/build/detect/types.ts +109 -0
  138. package/src/cmd/build/detect/util.ts +104 -0
  139. package/src/cmd/build/index.ts +64 -24
  140. package/src/cmd/build/package/index.ts +66 -0
  141. package/src/cmd/build/package/launch.ts +104 -0
  142. package/src/cmd/build/typecheck.ts +9 -0
  143. package/src/cmd/cloud/deploy.ts +86 -13
  144. package/src/cmd/coder/create.ts +24 -1
  145. package/src/cmd/coder/index.ts +4 -0
  146. package/src/cmd/coder/start.ts +60 -1
  147. package/src/cmd/coder/update.ts +18 -1
  148. package/src/cmd/coder/workspace/create.ts +20 -2
  149. package/src/cmd/coder/workspace/list.ts +2 -2
  150. package/src/cmd/dev/index.ts +155 -1059
  151. package/src/cmd/project/auth/shared.ts +14 -39
  152. package/src/cmd/project/create.ts +14 -19
  153. package/src/cmd/project/frameworks-ai-examples.ts +166 -0
  154. package/src/cmd/project/frameworks-landing-pages.ts +267 -0
  155. package/src/cmd/project/frameworks.ts +223 -0
  156. package/src/cmd/project/reconcile.ts +10 -22
  157. package/src/cmd/project/remote-import.ts +1 -1
  158. package/src/cmd/project/scaffold.ts +300 -0
  159. package/src/cmd/project/template-flow.ts +102 -156
  160. package/src/deploy-metadata.ts +253 -0
  161. package/src/index.ts +0 -2
  162. package/src/types.ts +0 -31
  163. package/dist/agents-docs.d.ts +0 -23
  164. package/dist/agents-docs.d.ts.map +0 -1
  165. package/dist/agents-docs.js +0 -56
  166. package/dist/agents-docs.js.map +0 -1
  167. package/dist/cmd/ai/prompt/agent.d.ts +0 -10
  168. package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
  169. package/dist/cmd/ai/prompt/agent.js +0 -28
  170. package/dist/cmd/ai/prompt/agent.js.map +0 -1
  171. package/dist/cmd/build/app-router-detector.d.ts +0 -39
  172. package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
  173. package/dist/cmd/build/app-router-detector.js +0 -229
  174. package/dist/cmd/build/app-router-detector.js.map +0 -1
  175. package/dist/cmd/build/format-schema.d.ts +0 -6
  176. package/dist/cmd/build/format-schema.d.ts.map +0 -1
  177. package/dist/cmd/build/format-schema.js +0 -60
  178. package/dist/cmd/build/format-schema.js.map +0 -1
  179. package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
  180. package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
  181. package/dist/cmd/build/vite/agent-discovery.js +0 -263
  182. package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
  183. package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
  184. package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
  185. package/dist/cmd/build/vite/beacon-plugin.js +0 -137
  186. package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
  187. package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
  188. package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
  189. package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
  190. package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
  191. package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
  192. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
  193. package/dist/cmd/build/vite/bun-dev-server.js +0 -340
  194. package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
  195. package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
  196. package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
  197. package/dist/cmd/build/vite/bundle-files.js +0 -107
  198. package/dist/cmd/build/vite/bundle-files.js.map +0 -1
  199. package/dist/cmd/build/vite/config-loader.d.ts +0 -29
  200. package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
  201. package/dist/cmd/build/vite/config-loader.js +0 -57
  202. package/dist/cmd/build/vite/config-loader.js.map +0 -1
  203. package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
  204. package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
  205. package/dist/cmd/build/vite/db-rewrite.js +0 -169
  206. package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
  207. package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
  208. package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
  209. package/dist/cmd/build/vite/docs-generator.js +0 -97
  210. package/dist/cmd/build/vite/docs-generator.js.map +0 -1
  211. package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
  212. package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
  213. package/dist/cmd/build/vite/env-types-generator.js +0 -110
  214. package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
  215. package/dist/cmd/build/vite/index.d.ts +0 -3
  216. package/dist/cmd/build/vite/index.d.ts.map +0 -1
  217. package/dist/cmd/build/vite/index.js +0 -4
  218. package/dist/cmd/build/vite/index.js.map +0 -1
  219. package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
  220. package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
  221. package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
  222. package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
  223. package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
  224. package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
  225. package/dist/cmd/build/vite/metadata-generator.js +0 -575
  226. package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
  227. package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
  228. package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
  229. package/dist/cmd/build/vite/prompt-generator.js +0 -123
  230. package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
  231. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
  232. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
  233. package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
  234. package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
  235. package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
  236. package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
  237. package/dist/cmd/build/vite/route-discovery.js +0 -187
  238. package/dist/cmd/build/vite/route-discovery.js.map +0 -1
  239. package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
  240. package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
  241. package/dist/cmd/build/vite/server-bundler.js +0 -388
  242. package/dist/cmd/build/vite/server-bundler.js.map +0 -1
  243. package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
  244. package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
  245. package/dist/cmd/build/vite/static-renderer.js +0 -188
  246. package/dist/cmd/build/vite/static-renderer.js.map +0 -1
  247. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
  248. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
  249. package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
  250. package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
  251. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
  252. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
  253. package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
  254. package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
  255. package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
  256. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
  257. package/dist/cmd/build/vite/vite-asset-server.js +0 -109
  258. package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
  259. package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
  260. package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
  261. package/dist/cmd/build/vite/vite-builder.js +0 -401
  262. package/dist/cmd/build/vite/vite-builder.js.map +0 -1
  263. package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
  264. package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
  265. package/dist/cmd/build/vite/workbench-generator.js +0 -135
  266. package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
  267. package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
  268. package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
  269. package/dist/cmd/build/vite/ws-proxy.js +0 -95
  270. package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
  271. package/dist/cmd/build/vite-bundler.d.ts +0 -29
  272. package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
  273. package/dist/cmd/build/vite-bundler.js +0 -93
  274. package/dist/cmd/build/vite-bundler.js.map +0 -1
  275. package/dist/cmd/dev/agents.d.ts +0 -2
  276. package/dist/cmd/dev/agents.d.ts.map +0 -1
  277. package/dist/cmd/dev/agents.js +0 -123
  278. package/dist/cmd/dev/agents.js.map +0 -1
  279. package/dist/cmd/dev/api.d.ts +0 -20
  280. package/dist/cmd/dev/api.d.ts.map +0 -1
  281. package/dist/cmd/dev/api.js +0 -42
  282. package/dist/cmd/dev/api.js.map +0 -1
  283. package/dist/cmd/dev/dev-lock.d.ts +0 -62
  284. package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
  285. package/dist/cmd/dev/dev-lock.js +0 -250
  286. package/dist/cmd/dev/dev-lock.js.map +0 -1
  287. package/dist/cmd/dev/download.d.ts +0 -11
  288. package/dist/cmd/dev/download.d.ts.map +0 -1
  289. package/dist/cmd/dev/download.js +0 -94
  290. package/dist/cmd/dev/download.js.map +0 -1
  291. package/dist/cmd/dev/file-watcher.d.ts +0 -24
  292. package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
  293. package/dist/cmd/dev/file-watcher.js +0 -349
  294. package/dist/cmd/dev/file-watcher.js.map +0 -1
  295. package/dist/cmd/dev/process-manager.d.ts +0 -104
  296. package/dist/cmd/dev/process-manager.d.ts.map +0 -1
  297. package/dist/cmd/dev/process-manager.js +0 -204
  298. package/dist/cmd/dev/process-manager.js.map +0 -1
  299. package/dist/cmd/dev/sync.d.ts +0 -12
  300. package/dist/cmd/dev/sync.d.ts.map +0 -1
  301. package/dist/cmd/dev/sync.js +0 -227
  302. package/dist/cmd/dev/sync.js.map +0 -1
  303. package/dist/cmd/dev/templates.d.ts +0 -3
  304. package/dist/cmd/dev/templates.d.ts.map +0 -1
  305. package/dist/cmd/dev/templates.js +0 -58
  306. package/dist/cmd/dev/templates.js.map +0 -1
  307. package/dist/cmd/project/download.d.ts +0 -35
  308. package/dist/cmd/project/download.d.ts.map +0 -1
  309. package/dist/cmd/project/download.js +0 -403
  310. package/dist/cmd/project/download.js.map +0 -1
  311. package/dist/cmd/project/templates.d.ts +0 -9
  312. package/dist/cmd/project/templates.d.ts.map +0 -1
  313. package/dist/cmd/project/templates.js +0 -34
  314. package/dist/cmd/project/templates.js.map +0 -1
  315. package/src/agents-docs.ts +0 -86
  316. package/src/cmd/ai/prompt/agent.md +0 -305
  317. package/src/cmd/ai/prompt/agent.ts +0 -31
  318. package/src/cmd/build/app-router-detector.ts +0 -320
  319. package/src/cmd/build/format-schema.ts +0 -66
  320. package/src/cmd/build/vite/agent-discovery.ts +0 -380
  321. package/src/cmd/build/vite/beacon-plugin.ts +0 -164
  322. package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
  323. package/src/cmd/build/vite/bun-dev-server.ts +0 -458
  324. package/src/cmd/build/vite/bundle-files.ts +0 -135
  325. package/src/cmd/build/vite/config-loader.ts +0 -76
  326. package/src/cmd/build/vite/db-rewrite.ts +0 -189
  327. package/src/cmd/build/vite/docs-generator.ts +0 -103
  328. package/src/cmd/build/vite/env-types-generator.ts +0 -145
  329. package/src/cmd/build/vite/index.ts +0 -3
  330. package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
  331. package/src/cmd/build/vite/metadata-generator.ts +0 -713
  332. package/src/cmd/build/vite/prompt-generator.ts +0 -169
  333. package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
  334. package/src/cmd/build/vite/route-discovery.ts +0 -271
  335. package/src/cmd/build/vite/server-bundler.ts +0 -481
  336. package/src/cmd/build/vite/static-renderer.ts +0 -239
  337. package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
  338. package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
  339. package/src/cmd/build/vite/vite-asset-server.ts +0 -154
  340. package/src/cmd/build/vite/vite-builder.ts +0 -503
  341. package/src/cmd/build/vite/workbench-generator.ts +0 -152
  342. package/src/cmd/build/vite/ws-proxy.ts +0 -126
  343. package/src/cmd/build/vite-bundler.ts +0 -137
  344. package/src/cmd/dev/agents.ts +0 -140
  345. package/src/cmd/dev/api.ts +0 -65
  346. package/src/cmd/dev/dev-lock.ts +0 -332
  347. package/src/cmd/dev/download.ts +0 -117
  348. package/src/cmd/dev/file-watcher.ts +0 -423
  349. package/src/cmd/dev/process-manager.ts +0 -261
  350. package/src/cmd/dev/sync.ts +0 -411
  351. package/src/cmd/dev/templates.ts +0 -66
  352. package/src/cmd/project/download.ts +0 -505
  353. package/src/cmd/project/templates.ts +0 -56
@@ -1,154 +0,0 @@
1
- /**
2
- * Vite Dev Server (Primary)
3
- *
4
- * Starts Vite as the primary dev server on the user-facing port.
5
- * Serves frontend assets natively and proxies API/WebSocket requests
6
- * to the Bun backend server.
7
- */
8
-
9
- import { join } from 'node:path';
10
- import { createRequire } from 'node:module';
11
- import { createServer as createNetServer } from 'node:net';
12
- import type { ViteDevServer } from 'vite';
13
- import type { Logger } from '../../../types';
14
- import { generateAssetServerConfig } from './vite-asset-server-config';
15
-
16
- export interface ViteAssetServerResult {
17
- server: ViteDevServer;
18
- port: number;
19
- }
20
-
21
- export interface StartViteAssetServerOptions {
22
- rootDir: string;
23
- logger: Logger;
24
- workbenchPath?: string;
25
- port?: number; // Preferred user-facing port (default: 3500)
26
- backendPort: number; // Port of the Bun backend server
27
- /** User-defined route mount paths from createApp({ router }) */
28
- routePaths?: string[];
29
- /** Live tunnel hostname to add to Vite's allowedHosts */
30
- liveHostname?: string;
31
- }
32
-
33
- /**
34
- * Check if a specific port is available on the given host.
35
- */
36
- function isPortAvailable(port: number, host: string): Promise<boolean> {
37
- return new Promise((resolve) => {
38
- const server = createNetServer();
39
- server.once('error', () => {
40
- resolve(false);
41
- });
42
- server.listen(port, host, () => {
43
- server.close(() => {
44
- resolve(true);
45
- });
46
- });
47
- });
48
- }
49
-
50
- /**
51
- * Find an available port starting from the preferred port.
52
- * Tries incrementing ports up to maxAttempts times.
53
- */
54
- async function findAvailablePort(
55
- preferredPort: number,
56
- host: string = '127.0.0.1',
57
- maxAttempts: number = 20
58
- ): Promise<number> {
59
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
60
- const port = preferredPort + attempt;
61
- const available = await isPortAvailable(port, host);
62
- if (available) {
63
- return port;
64
- }
65
- }
66
- throw new Error(
67
- `Could not find an available port after ${maxAttempts} attempts starting from ${preferredPort}`
68
- );
69
- }
70
-
71
- /**
72
- * Start Vite asset server on a dynamically-chosen port
73
- * Returns the server instance and the actual port number
74
- */
75
- export async function startViteAssetServer(
76
- options: StartViteAssetServerOptions
77
- ): Promise<ViteAssetServerResult> {
78
- const {
79
- rootDir,
80
- logger,
81
- workbenchPath,
82
- port: preferredPort = 3500,
83
- backendPort,
84
- routePaths,
85
- liveHostname,
86
- } = options;
87
-
88
- logger.debug('Starting Vite dev server (primary, proxying backend on port %d)...', backendPort);
89
-
90
- // Find an available port for the user-facing Vite server
91
- const availablePort = await findAvailablePort(preferredPort, '127.0.0.1');
92
-
93
- if (availablePort !== preferredPort) {
94
- logger.info(
95
- `Port ${preferredPort} is in use, using port ${availablePort} for Vite dev server`
96
- );
97
- }
98
-
99
- // Generate config with proxy to Bun backend
100
- const config = await generateAssetServerConfig({
101
- rootDir,
102
- logger,
103
- workbenchPath,
104
- port: availablePort,
105
- backendPort,
106
- routePaths,
107
- liveHostname,
108
- });
109
-
110
- // Dynamically import vite from the project's node_modules
111
- // This ensures we resolve from the target project directory, not the CWD
112
- const projectRequire = createRequire(join(rootDir, 'package.json'));
113
- const { createServer } = await import(projectRequire.resolve('vite'));
114
-
115
- // Create Vite server with config
116
- const server = await createServer(config);
117
-
118
- // Start listening with timeout to prevent hangs
119
- const STARTUP_TIMEOUT_MS = 30000; // 30 seconds
120
-
121
- try {
122
- await Promise.race([
123
- server.listen(),
124
- new Promise<never>((_, reject) => {
125
- const timeoutId = setTimeout(() => {
126
- reject(
127
- new Error(
128
- `Vite asset server failed to start within ${STARTUP_TIMEOUT_MS / 1000}s`
129
- )
130
- );
131
- }, STARTUP_TIMEOUT_MS);
132
- // Clean up timeout when listen succeeds (via finally in the outer try)
133
- server.httpServer?.once('listening', () => clearTimeout(timeoutId));
134
- }),
135
- ]);
136
- } catch (error) {
137
- // Attempt to close the server on failure
138
- try {
139
- await server.close();
140
- } catch {
141
- // Ignore close errors
142
- }
143
- throw error;
144
- }
145
-
146
- // Port was pre-verified and strictPort:true ensures Vite uses exactly this port
147
- const actualPort = availablePort;
148
-
149
- logger.debug(`Vite dev server running on port ${actualPort} (primary)`);
150
- logger.debug(`Frontend: HMR, React transformation, source maps (native)`);
151
- logger.debug(`Backend: proxying to Bun on port ${backendPort}`);
152
-
153
- return { server, port: actualPort };
154
- }
@@ -1,503 +0,0 @@
1
- /**
2
- * Vite Builder
3
- *
4
- * Utilities for running Vite builds (client, server, workbench)
5
- */
6
-
7
- import { join } from 'node:path';
8
- import { existsSync, rmSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
9
- import { createHash } from 'node:crypto';
10
- import { createRequire } from 'node:module';
11
- import type { InlineConfig } from 'vite';
12
- import type { Logger, DeployOptions } from '../../../types';
13
- import type { BuildReportCollector } from '../../../build-report';
14
-
15
- /**
16
- * Read the pre-built beacon script from @agentuity/frontend package.
17
- * Tries multiple resolution strategies for workspace/installed/symlink scenarios.
18
- */
19
- async function readBeaconScript(projectRoot: string): Promise<string> {
20
- let frontendPath: string | null = null;
21
-
22
- try {
23
- frontendPath = await Bun.resolve('@agentuity/frontend', projectRoot);
24
- } catch {
25
- // Not found from project root
26
- }
27
-
28
- if (!frontendPath) {
29
- try {
30
- const thisDir = new URL('.', import.meta.url).pathname;
31
- frontendPath = await Bun.resolve('@agentuity/frontend', thisDir);
32
- } catch {
33
- // Not found from CLI directory
34
- }
35
- }
36
-
37
- if (!frontendPath) {
38
- try {
39
- const projectRequire = createRequire(join(projectRoot, 'package.json'));
40
- frontendPath = projectRequire.resolve('@agentuity/frontend');
41
- } catch {
42
- // Not found via createRequire
43
- }
44
- }
45
-
46
- if (!frontendPath) {
47
- throw new Error(
48
- 'Could not resolve @agentuity/frontend. Ensure the package is installed and built.'
49
- );
50
- }
51
-
52
- const packageDir = join(frontendPath, '..');
53
- const beaconPath = join(packageDir, 'beacon.js');
54
-
55
- const beaconFile = Bun.file(beaconPath);
56
- if (!(await beaconFile.exists())) {
57
- throw new Error(
58
- `Beacon script not found at ${beaconPath}. Run "bun run build" in @agentuity/frontend first.`
59
- );
60
- }
61
-
62
- return beaconFile.text();
63
- }
64
-
65
- /**
66
- * Post-build step: inject the analytics beacon into the built index.html.
67
- *
68
- * 1. Reads the beacon script from @agentuity/frontend
69
- * 2. Writes it as a content-hashed asset file
70
- * 3. Injects a <script data-agentuity-beacon> tag into the HTML
71
- *
72
- * This runs after `vite build` completes so it works regardless of the
73
- * user's vite.config.ts — no Vite plugin required.
74
- */
75
- async function injectBeacon(rootDir: string, cdnBaseUrl: string, logger: Logger): Promise<void> {
76
- const clientDir = join(rootDir, '.agentuity/client');
77
- const indexHtmlPath = join(clientDir, 'index.html');
78
-
79
- if (!existsSync(indexHtmlPath)) {
80
- logger.debug('No index.html found, skipping beacon injection');
81
- return;
82
- }
83
-
84
- let beaconCode: string;
85
- try {
86
- beaconCode = await readBeaconScript(rootDir);
87
- } catch (error) {
88
- logger.warn(
89
- 'Failed to read beacon script, skipping injection: %s',
90
- error instanceof Error ? error.message : String(error)
91
- );
92
- return;
93
- }
94
-
95
- // Write beacon as a content-hashed asset (matches Vite's naming convention)
96
- const hash = createHash('sha256').update(beaconCode).digest('hex').slice(0, 8);
97
- const beaconFileName = `agentuity-beacon-${hash}.js`;
98
- const assetsDir = join(clientDir, 'assets');
99
- mkdirSync(assetsDir, { recursive: true });
100
- writeFileSync(join(assetsDir, beaconFileName), beaconCode);
101
-
102
- // If a Vite manifest exists, add the beacon so the metadata generator
103
- // includes it in the asset list. When no manifest exists, the directory
104
- // scanner in metadata-generator.ts picks up assets/ directly.
105
- const manifestPath = join(clientDir, '.vite', 'manifest.json');
106
- if (existsSync(manifestPath)) {
107
- const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
108
- manifest['agentuity-beacon'] = { file: `assets/${beaconFileName}` };
109
- writeFileSync(manifestPath, JSON.stringify(manifest));
110
- }
111
-
112
- // Build the beacon URL using the CDN base
113
- const normalizedBase = cdnBaseUrl.endsWith('/') ? cdnBaseUrl : `${cdnBaseUrl}/`;
114
- const beaconUrl = `${normalizedBase}assets/${beaconFileName}`;
115
-
116
- // Inject the script tag into index.html
117
- // The script must be sync (no async/defer) to patch history API before router loads.
118
- // The data-agentuity-beacon attribute is the marker the runtime looks for.
119
- const beaconScript = `<script data-agentuity-beacon src="${beaconUrl}"></script>`;
120
-
121
- let html = readFileSync(indexHtmlPath, 'utf-8');
122
- if (html.includes('</head>')) {
123
- html = html.replace('</head>', `${beaconScript}</head>`);
124
- } else if (html.includes('<body')) {
125
- html = html.replace(/<body([^>]*)>/, `<body$1>${beaconScript}`);
126
- } else {
127
- html = beaconScript + html;
128
- }
129
-
130
- writeFileSync(indexHtmlPath, html);
131
- logger.debug('Injected analytics beacon: %s', beaconUrl);
132
- }
133
-
134
- export interface ViteBuildOptions {
135
- rootDir: string;
136
- mode: 'client' | 'server' | 'workbench';
137
- dev?: boolean;
138
- port?: number;
139
- projectId?: string;
140
- orgId?: string;
141
- region?: string;
142
- deploymentId?: string;
143
- workbenchRoute?: string;
144
- workbenchEnabled?: boolean;
145
- /** Whether analytics is enabled (for beacon injection in client build) */
146
- analyticsEnabled?: boolean;
147
- logger: Logger;
148
- deploymentOptions?: DeployOptions;
149
- /** Deployment config from agentuity.json (resources, mode, dependencies, domains) */
150
- deploymentConfig?: Record<string, unknown>;
151
- /** Optional collector for structured error reporting */
152
- collector?: BuildReportCollector;
153
- /** Optional config profile name (e.g., 'staging', 'test') for .env.{profile} files */
154
- profile?: string;
155
- }
156
-
157
- /**
158
- * Run a Vite build for the specified mode
159
- * Uses inline Vite config (customizable via agentuity.config.ts)
160
- */
161
- export async function runViteBuild(options: ViteBuildOptions): Promise<void> {
162
- const { rootDir, mode, dev = false, logger, profile } = options;
163
-
164
- logger.debug(`Running Vite build for mode: ${mode}`);
165
-
166
- // For server mode, use Bun.build (preserves process.env at runtime)
167
- if (mode === 'server') {
168
- const srcDir = join(rootDir, 'src');
169
-
170
- // Generate documentation files (if they don't exist)
171
- const { generateDocumentation } = await import('./docs-generator');
172
- await generateDocumentation(srcDir, logger);
173
-
174
- // Generate/update prompt files in dev mode only (non-blocking)
175
- if (dev) {
176
- import('./prompt-generator')
177
- .then(({ generatePromptFiles }) => generatePromptFiles(srcDir, logger))
178
- .catch((err) => logger.warn('Failed to generate prompt files: %s', err.message));
179
- }
180
-
181
- // Generate lifecycle types (if setup() exists)
182
- const { generateLifecycleTypes } = await import('./lifecycle-generator');
183
- await generateLifecycleTypes(rootDir, srcDir, logger);
184
-
185
- // Generate environment types from local .env files
186
- const { generateEnvTypes } = await import('./env-types-generator');
187
- await generateEnvTypes({
188
- rootDir,
189
- srcDir,
190
- logger,
191
- isProduction: !dev,
192
- profile,
193
- });
194
-
195
- // Build with Bun.build (app.ts is the entrypoint)
196
- const { installExternalsAndBuild } = await import('./server-bundler');
197
- await installExternalsAndBuild({
198
- rootDir,
199
- dev,
200
- logger,
201
- });
202
- return;
203
- }
204
-
205
- // Dynamically import vite for workbench builds
206
- const { build: viteBuild } = await import('vite');
207
-
208
- // For client/workbench, use inline config with vite.config.ts loading
209
- let viteConfig: InlineConfig;
210
-
211
- if (mode === 'client') {
212
- // For client builds, spawn vite as a subprocess.
213
- // This avoids issues with Bun's module loading that cause problems
214
- // with certain plugins like @sveltejs/vite-plugin-svelte.
215
- // The vite.config.ts in the project handles all configuration.
216
- const buildMode = dev ? 'development' : 'production';
217
- const clientOutDir = join(rootDir, '.agentuity/client');
218
-
219
- // Ensure vite.config.ts exists (fallback for projects created before v2 template update)
220
- const viteConfigPath = join(rootDir, 'vite.config.ts');
221
- if (!existsSync(viteConfigPath)) {
222
- logger.debug('Generating fallback vite.config.ts');
223
- const fallbackConfig = `import react from '@vitejs/plugin-react';
224
- import { defineConfig } from 'vite';
225
- import { join } from 'node:path';
226
-
227
- export default defineConfig({
228
- plugins: [react()],
229
- root: '.',
230
- build: {
231
- rollupOptions: {
232
- input: join(__dirname, 'src/web/index.html'),
233
- },
234
- },
235
- });
236
- `;
237
- await Bun.write(viteConfigPath, fallbackConfig);
238
- }
239
-
240
- // Construct CDN base URL for production builds so Vite prefixes all
241
- // asset URLs (CSS, JS chunks) with the CDN origin instead of "/".
242
- const cdnBaseUrl =
243
- !dev && options.deploymentId
244
- ? `https://${options.region === 'local' ? 'localstack-static-assets.t3.storageapi.dev' : 'cdn.agentuity.com'}/${options.deploymentId}/client/`
245
- : undefined;
246
-
247
- const args = [
248
- 'bun',
249
- 'x',
250
- 'vite',
251
- 'build',
252
- '--mode',
253
- buildMode,
254
- '--outDir',
255
- clientOutDir,
256
- '--logLevel',
257
- 'error',
258
- '--clearScreen',
259
- 'false',
260
- ];
261
- if (cdnBaseUrl) {
262
- args.push('--base', cdnBaseUrl);
263
- }
264
-
265
- logger.debug('Spawning vite build for client (subprocess mode)');
266
- logger.debug(' outDir: %s', clientOutDir);
267
- logger.debug(' mode: %s', buildMode);
268
- if (cdnBaseUrl) {
269
- logger.debug(' base (CDN): %s', cdnBaseUrl);
270
- }
271
-
272
- const viteProcess = Bun.spawn(args, {
273
- cwd: rootDir,
274
- stdout: 'inherit',
275
- stderr: 'inherit',
276
- });
277
-
278
- const exitCode = await viteProcess.exited;
279
-
280
- if (exitCode !== 0) {
281
- throw new Error(`Vite build exited with code ${exitCode}`);
282
- }
283
-
284
- logger.debug('Vite build complete for mode: client');
285
- return;
286
- } else if (mode === 'workbench') {
287
- const { workbenchRoute = '/workbench' } = options;
288
- // Ensure route ends with / for Vite base
289
- const base = workbenchRoute.endsWith('/') ? workbenchRoute : `${workbenchRoute}/`;
290
-
291
- // Workbench is built with React (internal UI)
292
- // Use CLI's bundled React plugin since workbench is our code
293
- const reactModule = await import('@vitejs/plugin-react');
294
- const react = reactModule.default;
295
-
296
- viteConfig = {
297
- root: join(rootDir, '.agentuity/workbench-src'), // Use generated workbench source
298
- base, // All workbench assets are under the configured route
299
- plugins: [react()],
300
- envPrefix: ['VITE_', 'AGENTUITY_PUBLIC_', 'PUBLIC_'],
301
- build: {
302
- outDir: join(rootDir, '.agentuity/workbench'),
303
- rollupOptions: {
304
- input: join(rootDir, '.agentuity/workbench-src/index.html'),
305
- },
306
- manifest: true,
307
- emptyOutDir: true,
308
- },
309
- logLevel: 'warn',
310
- };
311
- } else {
312
- throw new Error(`Unknown build mode: ${mode}`);
313
- }
314
-
315
- // For workbench mode, use programmatic vite build
316
- const buildMode = dev ? 'development' : 'production';
317
-
318
- await viteBuild({
319
- ...viteConfig,
320
- mode: buildMode,
321
- });
322
-
323
- logger.debug(`Vite build complete for mode: ${mode}`);
324
- }
325
-
326
- interface BuildResult {
327
- workbench: { included: boolean; duration: number };
328
- client: { included: boolean; duration: number };
329
- server: { included: boolean; duration: number };
330
- static: { included: boolean; duration: number; routes: number };
331
- }
332
-
333
- /**
334
- * Run all builds in sequence: client -> workbench (if enabled) -> server
335
- */
336
- export async function runAllBuilds(options: Omit<ViteBuildOptions, 'mode'>): Promise<BuildResult> {
337
- const { rootDir, projectId = '', dev = false, logger, collector } = options;
338
-
339
- if (!dev) {
340
- rmSync(join(rootDir, '.agentuity'), { force: true, recursive: true });
341
- }
342
-
343
- const result: BuildResult = {
344
- workbench: { included: false, duration: 0 },
345
- client: { included: false, duration: 0 },
346
- server: { included: false, duration: 0 },
347
- static: { included: false, duration: 0, routes: 0 },
348
- };
349
-
350
- // Load runtime config from createApp() in app.ts (v2 approach)
351
- const { getWorkbenchConfig, loadRuntimeConfig } = await import('./config-loader');
352
- const runtimeConfig = await loadRuntimeConfig(rootDir, logger);
353
-
354
- const workbenchConfig = getWorkbenchConfig(dev, runtimeConfig);
355
- // Generate workbench files BEFORE any builds if enabled (dev mode only)
356
- if (workbenchConfig.enabled) {
357
- logger.debug('Workbench enabled (dev mode), generating files before build...');
358
- const { generateWorkbenchFiles } = await import('./workbench-generator');
359
- await generateWorkbenchFiles(rootDir, projectId, workbenchConfig, logger);
360
- }
361
-
362
- // 1. Discover agents and routes BEFORE builds
363
- logger.debug('Discovering agents and routes...');
364
- const { discoverAgents } = await import('./agent-discovery');
365
- const { discoverRoutes } = await import('./route-discovery');
366
-
367
- const srcDir = join(rootDir, 'src');
368
- const agentMetadata = await discoverAgents(
369
- srcDir,
370
- projectId,
371
- options.deploymentId || '',
372
- logger
373
- );
374
- const { routes } = await discoverRoutes(srcDir, projectId, options.deploymentId || '', logger);
375
-
376
- // Agent metadata is used for metadata.json generation (no registry codegen needed)
377
-
378
- // Check if web frontend exists
379
- const hasWebFrontend = await Bun.file(join(rootDir, 'src', 'web', 'index.html')).exists();
380
-
381
- // Check if analytics is enabled
382
- // v2: analytics config comes from createApp()
383
- const analyticsFromRuntime = runtimeConfig?.analytics;
384
- const analyticsEnabled =
385
- analyticsFromRuntime !== undefined ? analyticsFromRuntime !== false : true;
386
-
387
- // 2. Build client (only if web frontend exists)
388
- if (hasWebFrontend) {
389
- logger.debug('Building client assets...');
390
- const endClientDiagnostic = collector?.startDiagnostic('client-build');
391
- const started = Date.now();
392
- await runViteBuild({
393
- ...options,
394
- mode: 'client',
395
- workbenchEnabled: workbenchConfig.enabled,
396
- workbenchRoute: workbenchConfig.route,
397
- analyticsEnabled,
398
- });
399
-
400
- // Normalize index.html location: vite may output to src/web/index.html
401
- // depending on the project's vite.config.ts configuration
402
- const clientDir = join(rootDir, '.agentuity/client');
403
- const nestedIndexHtml = join(clientDir, 'src/web/index.html');
404
- const rootIndexHtml = join(clientDir, 'index.html');
405
- if (existsSync(nestedIndexHtml) && !existsSync(rootIndexHtml)) {
406
- const { renameSync, mkdirSync: mkdirSyncFs } = await import('node:fs');
407
- // Ensure target directory exists
408
- mkdirSyncFs(clientDir, { recursive: true });
409
- renameSync(nestedIndexHtml, rootIndexHtml);
410
- logger.debug('Moved index.html from src/web/ to client root');
411
- }
412
-
413
- // Post-build: inject analytics beacon into the built HTML.
414
- // Must run AFTER the index.html normalization above (Vite may
415
- // output to src/web/index.html which gets moved to the client root).
416
- const isLocalRegion = options.region === 'local';
417
- const cdnDomain = isLocalRegion
418
- ? 'localstack-static-assets.t3.storageapi.dev'
419
- : 'cdn.agentuity.com';
420
- const cdnBaseUrl =
421
- !dev && options.deploymentId
422
- ? `https://${cdnDomain}/${options.deploymentId}/client/`
423
- : undefined;
424
-
425
- if (cdnBaseUrl && analyticsEnabled) {
426
- await injectBeacon(rootDir, cdnBaseUrl, logger);
427
- }
428
-
429
- result.client.included = true;
430
- result.client.duration = Date.now() - started;
431
- endClientDiagnostic?.();
432
- } else {
433
- logger.debug('Skipping client build - no src/web/index.html found');
434
- }
435
-
436
- // 2b. Static rendering (if entry-server.tsx exists)
437
- const entryServerPath = join(rootDir, 'src', 'web', 'entry-server.tsx');
438
- if (existsSync(entryServerPath) && hasWebFrontend) {
439
- logger.debug('Running static rendering (pre-rendering all routes)...');
440
- const endStaticDiagnostic = collector?.startDiagnostic('static-render');
441
- const { runStaticRender } = await import('./static-renderer');
442
- const staticResult = await runStaticRender({
443
- rootDir,
444
- logger,
445
- dev,
446
- });
447
- result.static.included = true;
448
- result.static.duration = staticResult.duration;
449
- result.static.routes = staticResult.routes;
450
- endStaticDiagnostic?.();
451
- }
452
-
453
- // 3. Build workbench (if enabled in config)
454
- if (workbenchConfig.enabled) {
455
- logger.debug('Building workbench assets...');
456
- const endWorkbenchDiagnostic = collector?.startDiagnostic('workbench-build');
457
- const started = Date.now();
458
- await runViteBuild({
459
- ...options,
460
- mode: 'workbench',
461
- workbenchRoute: workbenchConfig.route,
462
- workbenchEnabled: true,
463
- });
464
- result.workbench.included = true;
465
- result.workbench.duration = Date.now() - started;
466
- endWorkbenchDiagnostic?.();
467
- }
468
-
469
- // 4. Build server
470
- logger.debug('Building server...');
471
- const endServerDiagnostic = collector?.startDiagnostic('server-build');
472
- const serverStarted = Date.now();
473
- await runViteBuild({ ...options, mode: 'server' });
474
- result.server.included = true;
475
- result.server.duration = Date.now() - serverStarted;
476
- endServerDiagnostic?.();
477
-
478
- // 5. Generate metadata (after all builds complete)
479
- logger.debug('Generating metadata...');
480
- const endMetadataDiagnostic = collector?.startDiagnostic('metadata-generation');
481
- const { generateMetadata, writeMetadataFile } = await import('./metadata-generator');
482
-
483
- // Generate metadata
484
- const metadata = await generateMetadata({
485
- rootDir,
486
- projectId,
487
- orgId: options.orgId,
488
- deploymentId: options.deploymentId,
489
- agents: agentMetadata,
490
- routes,
491
- logger,
492
- dev,
493
- deploymentOptions: options.deploymentOptions,
494
- deploymentConfig: options.deploymentConfig,
495
- });
496
-
497
- writeMetadataFile(rootDir, metadata, dev, logger);
498
- endMetadataDiagnostic?.();
499
- logger.debug('Registry and metadata generation complete');
500
-
501
- logger.debug('All builds complete');
502
- return result;
503
- }