@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,239 +0,0 @@
1
- /**
2
- * Static Renderer
3
- *
4
- * When `src/web/entry-server.tsx` exists, this module:
5
- * 1. Runs a Vite SSR build (as a subprocess to avoid in-process Bun/Vite issues)
6
- * 2. Imports the built entry-server.js
7
- * 3. Discovers routes to pre-render:
8
- * - If `routeTree` is exported: auto-discovers all non-parameterized routes
9
- * - If `getStaticPaths()` is exported: merges those paths in (for parameterized routes)
10
- * - If neither: throws an error
11
- * 4. Calls render(url) for each route
12
- * 5. Replaces <!--app-html--> in the client template with rendered HTML
13
- * 6. Writes pre-rendered HTML files to .agentuity/client/
14
- */
15
-
16
- import { join } from 'node:path';
17
- import { mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'node:fs';
18
- import type { Logger } from '../../../types';
19
-
20
- /** Minimal shape of a TanStack Router route tree node. */
21
- interface RouteTreeNode {
22
- path?: string;
23
- options?: { path?: string };
24
- children?: Record<string, RouteTreeNode>;
25
- }
26
-
27
- /**
28
- * Walks a TanStack Router route tree and extracts all non-parameterized paths.
29
- * Skips layout routes (no path) and parameterized routes (containing $).
30
- *
31
- * Accumulates the full URL path through the parent chain, since child routes
32
- * under layout routes have relative paths (e.g., '/key-value' under a
33
- * '/reference/api' layout should resolve to '/reference/api/key-value').
34
- */
35
- function extractRoutePaths(node: RouteTreeNode): string[] {
36
- const paths = new Set<string>();
37
-
38
- function walk(route: RouteTreeNode, parentPath: string) {
39
- const segment: string | undefined = route.path ?? route.options?.path;
40
-
41
- // Build the full path by accumulating segments from parent routes.
42
- // - Layout routes have no path (undefined) and don't contribute to the URL.
43
- // - Index routes have path '/' and resolve to the parent path itself.
44
- // - Leaf/layout routes have paths like '/reference/api' or '/key-value'.
45
- let currentPath = parentPath;
46
- if (segment && segment !== '/') {
47
- // Non-root segment: append to parent path.
48
- // Segments always start with '/' (TanStack Router convention).
49
- currentPath = parentPath === '/' ? segment : parentPath + segment;
50
- }
51
-
52
- // Add non-parameterized, non-empty paths
53
- if (currentPath && !currentPath.includes('$')) {
54
- const normalized = currentPath === '/' ? '/' : currentPath.replace(/\/+$/, '');
55
- if (normalized) {
56
- paths.add(normalized);
57
- }
58
- }
59
-
60
- // Recurse into children, passing the accumulated path
61
- const children = route.children;
62
- if (children && typeof children === 'object') {
63
- for (const child of Object.values(children)) {
64
- if (child) walk(child, currentPath);
65
- }
66
- }
67
- }
68
-
69
- walk(node, '');
70
- return [...paths].sort();
71
- }
72
-
73
- export interface StaticRenderOptions {
74
- rootDir: string;
75
- logger: Logger;
76
- dev?: boolean;
77
- }
78
-
79
- export interface StaticRenderResult {
80
- routes: number;
81
- duration: number;
82
- }
83
-
84
- export async function runStaticRender(options: StaticRenderOptions): Promise<StaticRenderResult> {
85
- const { rootDir, logger, dev = false } = options;
86
- const started = Date.now();
87
-
88
- const clientDir = join(rootDir, '.agentuity/client');
89
- const ssrOutDir = join(rootDir, '.agentuity/ssr');
90
- const entryServerPath = join(rootDir, 'src/web/entry-server.tsx');
91
- const templatePath = join(clientDir, 'index.html');
92
-
93
- // Verify prerequisites
94
- if (!existsSync(entryServerPath)) {
95
- throw new Error(
96
- 'Static rendering requires src/web/entry-server.tsx. ' +
97
- 'This file must export a render(url: string) function and either ' +
98
- 'a routeTree for auto-discovery or getStaticPaths() for explicit paths.'
99
- );
100
- }
101
-
102
- if (!existsSync(templatePath)) {
103
- throw new Error(
104
- 'Client build must complete before static rendering. ' +
105
- 'No index.html found in .agentuity/client/'
106
- );
107
- }
108
-
109
- // Step 1: Vite SSR build (subprocess)
110
- // Run as a subprocess to avoid in-process Bun/Vite module resolution issues
111
- // that cause @mdx-js/rollup and other plugins to fail during SSR builds.
112
- // This matches the approach used for client builds in vite-builder.ts.
113
- logger.debug('Running Vite SSR build for static rendering (subprocess)...');
114
-
115
- const buildMode = dev ? 'development' : 'production';
116
-
117
- const viteProcess = Bun.spawn(
118
- [
119
- 'bun',
120
- 'x',
121
- 'vite',
122
- 'build',
123
- '--ssr',
124
- entryServerPath,
125
- '--outDir',
126
- ssrOutDir,
127
- '--mode',
128
- buildMode,
129
- ],
130
- {
131
- cwd: rootDir,
132
- stdout: 'inherit',
133
- stderr: 'inherit',
134
- }
135
- );
136
-
137
- const exitCode = await viteProcess.exited;
138
-
139
- if (exitCode !== 0) {
140
- throw new Error(`Vite SSR build exited with code ${exitCode}`);
141
- }
142
-
143
- // Steps 2–4: wrapped in try-finally so SSR artifacts are always cleaned up,
144
- // even if an exception is thrown during module import, validation, or rendering.
145
- let routeCount = 0;
146
- try {
147
- // Step 2: Import the built SSR entry
148
- const ssrEntryPath = join(ssrOutDir, 'entry-server.js');
149
- if (!existsSync(ssrEntryPath)) {
150
- throw new Error(`SSR build did not produce entry-server.js at ${ssrEntryPath}`);
151
- }
152
-
153
- const ssrModule = await import(ssrEntryPath);
154
-
155
- if (typeof ssrModule.render !== 'function') {
156
- throw new Error(
157
- 'entry-server.tsx must export a render(url: string) function that returns HTML string'
158
- );
159
- }
160
-
161
- // Step 3: Discover routes
162
- // Priority: auto-discover from routeTree + merge getStaticPaths() if present
163
- const discovered = new Set<string>();
164
-
165
- // 3a. Auto-discover from exported routeTree (skips parameterized routes)
166
- if (ssrModule.routeTree) {
167
- const autoRoutes = extractRoutePaths(ssrModule.routeTree);
168
- for (const r of autoRoutes) {
169
- discovered.add(r);
170
- }
171
- logger.debug(`Auto-discovered ${autoRoutes.length} routes from route tree`);
172
- }
173
-
174
- // 3b. Merge paths from getStaticPaths() if exported (for parameterized routes, etc.)
175
- if (typeof ssrModule.getStaticPaths === 'function') {
176
- const extraRoutes = await ssrModule.getStaticPaths();
177
- if (!Array.isArray(extraRoutes)) {
178
- throw new Error(
179
- 'getStaticPaths() must return an array of URL paths (e.g., ["/", "/about"])'
180
- );
181
- }
182
- for (const r of extraRoutes) {
183
- discovered.add(r);
184
- }
185
- logger.debug(`getStaticPaths() added ${extraRoutes.length} paths`);
186
- }
187
-
188
- // Must have at least one source of routes
189
- if (discovered.size === 0) {
190
- throw new Error(
191
- 'No routes to pre-render. Export routeTree from entry-server.tsx for auto-discovery, ' +
192
- 'or export getStaticPaths() returning an array of URL paths.'
193
- );
194
- }
195
-
196
- const routes: string[] = [...discovered].sort();
197
- routeCount = routes.length;
198
- logger.debug(`Total: ${routes.length} routes for pre-rendering`);
199
-
200
- // Step 4: Read template and pre-render each route
201
- const template = readFileSync(templatePath, 'utf-8');
202
- if (!template.includes('<!--app-html-->')) {
203
- logger.warn(
204
- 'index.html is missing the <!--app-html--> placeholder; ' +
205
- 'pre-rendered content will not be injected into the page.'
206
- );
207
- }
208
-
209
- for (const route of routes) {
210
- try {
211
- const html = await ssrModule.render(route);
212
- const page = template.replace('<!--app-html-->', html);
213
-
214
- let outPath: string;
215
- if (route === '/') {
216
- outPath = join(clientDir, 'index.html');
217
- } else {
218
- const dir = join(clientDir, route.slice(1));
219
- mkdirSync(dir, { recursive: true });
220
- outPath = join(dir, 'index.html');
221
- }
222
-
223
- writeFileSync(outPath, page, 'utf-8');
224
- } catch (err) {
225
- const message = err instanceof Error ? err.message : String(err);
226
- logger.warn(`Failed to render route ${route}: ${message}`);
227
- // Continue rendering other routes
228
- }
229
- }
230
- } finally {
231
- // Step 5: Clean up SSR build artifacts (always runs, even on error)
232
- rmSync(ssrOutDir, { recursive: true, force: true });
233
- }
234
-
235
- const duration = Date.now() - started;
236
- logger.debug(`Static rendering complete: ${routeCount} routes in ${duration}ms`);
237
-
238
- return { routes: routeCount, duration };
239
- }
@@ -1,73 +0,0 @@
1
- /**
2
- * Vite plugin to fix Tailwind v4 oxide scanner hang in containers
3
- *
4
- * The Tailwind v4 oxide scanner (native Rust binary) can hang or fail when
5
- * scanning the filesystem in containerized environments. Adding source(none)
6
- * to @import "tailwindcss" disables the oxide filesystem scanner, and an
7
- * explicit @source directive pointing at the project's src/ directory tells
8
- * Tailwind exactly where to find utility classes.
9
- *
10
- * @see https://github.com/tailwindlabs/tailwindcss/discussions/19661
11
- * @see https://tailwindcss.com/docs/detecting-classes-in-source-files
12
- */
13
-
14
- import { dirname, join, relative, sep } from 'node:path';
15
- import type { Plugin } from 'vite';
16
-
17
- export function tailwindSourcePlugin(): Plugin {
18
- let root: string;
19
-
20
- return {
21
- name: 'agentuity:tailwind-source',
22
- enforce: 'pre',
23
-
24
- configResolved(config) {
25
- root = config.root;
26
- },
27
-
28
- transform(code, id) {
29
- // Only transform CSS files
30
- if (!id.endsWith('.css')) {
31
- return null;
32
- }
33
-
34
- // Check if the file contains @import "tailwindcss" (with either quote type)
35
- if (!/@import\s+["']tailwindcss["']/.test(code)) {
36
- return null;
37
- }
38
-
39
- // Compute relative path from CSS file to project's src/ directory
40
- const cssDir = dirname(id);
41
- const srcDir = join(root, 'src');
42
- let relPath = relative(cssDir, srcDir).split(sep).join('/');
43
- if (relPath === '') {
44
- relPath = '.';
45
- } else if (!relPath.startsWith('.')) {
46
- relPath = './' + relPath;
47
- }
48
-
49
- // Transform @import "tailwindcss" → @import "tailwindcss" source(none)
50
- // and add explicit @source so Tailwind knows where to scan for classes.
51
- // Does NOT transform if source() is already specified.
52
- const transformed = code.replace(
53
- /@import\s+(["'])tailwindcss\1([^;]*);/g,
54
- (match, quote, rest) => {
55
- // If source() is already present, don't modify
56
- if (/source\s*\(/.test(rest)) {
57
- return match;
58
- }
59
- return `@import ${quote}tailwindcss${quote}${rest} source(none);\n@source "${relPath}";`;
60
- }
61
- );
62
-
63
- if (transformed !== code) {
64
- return {
65
- code: transformed,
66
- map: null,
67
- };
68
- }
69
-
70
- return null;
71
- },
72
- };
73
- }
@@ -1,349 +0,0 @@
1
- /**
2
- * Vite Dev Server Configuration
3
- *
4
- * Vite is the primary dev server — serves frontend assets natively and proxies
5
- * API/WebSocket requests to the Bun backend server.
6
- */
7
-
8
- import { join } from 'node:path';
9
- import { existsSync } from 'node:fs';
10
- import type { InlineConfig, Plugin } from 'vite';
11
- import type { Logger } from '../../../types';
12
-
13
- export interface GenerateAssetServerConfigOptions {
14
- rootDir: string;
15
- logger: Logger;
16
- workbenchPath?: string;
17
- port: number; // The port Vite will listen on (user-facing)
18
- backendPort: number; // The port Bun backend is running on (internal)
19
- /** User-defined route mount paths from createApp({ router }) (e.g., ['/api', '/v1']) */
20
- routePaths?: string[];
21
- /** Live tunnel hostname (e.g. "epXXX.agentuity-us.live.internal") to add to Vite's allowedHosts */
22
- liveHostname?: string;
23
- }
24
-
25
- /**
26
- * Vite plugin that injects analytics scripts in dev mode.
27
- *
28
- * In production the beacon plugin handles this at build time. In dev mode
29
- * the analytics config + session + beacon scripts are served by the Bun
30
- * backend at /_agentuity/webanalytics/* routes, but we need to inject the
31
- * `<script>` tags into the HTML so the browser loads them.
32
- */
33
- function devAnalyticsPlugin(): Plugin {
34
- return {
35
- name: 'agentuity:dev-analytics',
36
- transformIndexHtml: {
37
- order: 'pre',
38
- handler(html) {
39
- // Default analytics config — matches resolveAnalyticsConfig(undefined) in runtime
40
- const config = {
41
- enabled: true,
42
- trackClicks: true,
43
- trackScroll: true,
44
- trackOutboundLinks: true,
45
- trackForms: false,
46
- trackWebVitals: true,
47
- trackErrors: true,
48
- trackSPANavigation: true,
49
- isDevmode: true,
50
- };
51
-
52
- const injection =
53
- `<script>window.__AGENTUITY_ANALYTICS__=${JSON.stringify(config)};</script>` +
54
- '<script src="/_agentuity/webanalytics/session.js" async></script>' +
55
- '<script src="/_agentuity/webanalytics/analytics.js"></script>';
56
-
57
- if (html.includes('</head>')) {
58
- return html.replace('</head>', `${injection}</head>`);
59
- }
60
- return html;
61
- },
62
- },
63
- };
64
- }
65
-
66
- /**
67
- * Vite plugin that serves src/web/index.html as the SPA fallback.
68
- *
69
- * Vite's built-in SPA fallback only serves index.html from the project root.
70
- * Since Agentuity apps keep their HTML entry at src/web/index.html, we need
71
- * this plugin to rewrite the URL so Vite's built-in transform pipeline
72
- * (including React Fast Refresh injection) processes it correctly.
73
- */
74
- function spaFallbackPlugin(rootDir: string, routePaths: string[], workbenchPath?: string): Plugin {
75
- const htmlPath = join(rootDir, 'src', 'web', 'index.html');
76
- const hasHtml = existsSync(htmlPath);
77
-
78
- return {
79
- name: 'agentuity:spa-fallback',
80
- configureServer(server) {
81
- if (!hasHtml) return;
82
-
83
- server.middlewares.use(async (req, res, next) => {
84
- // Only handle GET/HEAD navigation requests
85
- if (req.method !== 'GET' && req.method !== 'HEAD') return next();
86
-
87
- const url = req.url || '/';
88
- const pathname = url.split('?')[0] || '/';
89
- const accept = req.headers.accept || '';
90
- const secFetchDest = req.headers['sec-fetch-dest'] || '';
91
-
92
- // For robustness, treat unknown GET/HEAD routes as potential SPA navigations.
93
- // We still avoid intercepting assets/backend paths via the filters below.
94
- // (This also makes non-browser readiness probes like fetch('/streams') work.)
95
- const isDocumentRequest = secFetchDest === 'document' || accept.includes('text/html');
96
-
97
- // Skip file requests (have an extension)
98
- if (pathname !== '/' && /\.[a-zA-Z0-9]+$/.test(pathname)) return next();
99
-
100
- // For non-document requests, only allow root path fallback.
101
- // (e.g. don't turn module/script fetches into HTML accidentally)
102
- if (!isDocumentRequest && pathname === '/') {
103
- // allow root fallback for simple probes
104
- }
105
-
106
- // Skip Vite/module/internal asset paths
107
- if (
108
- pathname.startsWith('/@vite') ||
109
- pathname.startsWith('/@react-refresh') ||
110
- pathname.startsWith('/@id/') ||
111
- pathname.startsWith('/@fs/') ||
112
- pathname.startsWith('/node_modules/') ||
113
- pathname.startsWith('/src/') ||
114
- (pathname.startsWith('/@') && !pathname.startsWith('/_agentuity'))
115
- ) {
116
- return next();
117
- }
118
-
119
- // Skip paths that are proxied to the Bun backend
120
- if (
121
- pathname.startsWith('/_agentuity') ||
122
- pathname.startsWith('/_health') ||
123
- pathname.startsWith('/_idle')
124
- ) {
125
- return next();
126
- }
127
- // Skip workbench path (served by Bun)
128
- if (
129
- workbenchPath &&
130
- (pathname === workbenchPath || pathname.startsWith(workbenchPath + '/'))
131
- ) {
132
- return next();
133
- }
134
- for (const rp of routePaths) {
135
- if (pathname === rp || pathname.startsWith(rp + '/')) return next();
136
- }
137
-
138
- // If this isn't clearly a document navigation, still allow SPA fallback
139
- // for extensionless client-side routes like /streams, /rpc, /webrtc.
140
- // We already excluded backend paths and asset/module paths above.
141
-
142
- try {
143
- let html = await Bun.file(htmlPath).text();
144
- // Match old devHtmlHandler behavior from the generated Bun entry:
145
- // rewrite relative paths so the app works from / and client-side routes.
146
- html = html
147
- .replace(/src="\.\//g, 'src="/src/web/')
148
- .replace(/href="\.\//g, 'href="/src/web/');
149
-
150
- // Let Vite inject HMR client, React refresh preamble, etc.
151
- html = await server.transformIndexHtml(url, html, req.originalUrl);
152
-
153
- res.statusCode = 200;
154
- res.setHeader('Content-Type', 'text/html; charset=utf-8');
155
- res.end(html);
156
- } catch (error) {
157
- next(error as Error);
158
- }
159
- });
160
- },
161
- };
162
- }
163
-
164
- /**
165
- * Generate Vite config for asset-only server (HMR + React transformation)
166
- */
167
- export async function generateAssetServerConfig(
168
- options: GenerateAssetServerConfigOptions
169
- ): Promise<InlineConfig> {
170
- const {
171
- rootDir,
172
- logger,
173
- workbenchPath,
174
- port,
175
- backendPort,
176
- routePaths = ['/api'],
177
- liveHostname,
178
- } = options;
179
-
180
- // Load path aliases from tsconfig.json if available
181
- const tsconfigPath = join(rootDir, 'tsconfig.json');
182
- let alias = {};
183
-
184
- try {
185
- const tsconfig = JSON.parse(await Bun.file(tsconfigPath).text());
186
- const paths = tsconfig?.compilerOptions?.paths || {};
187
- alias = Object.fromEntries(
188
- Object.entries(paths)
189
- .filter(([, value]) => {
190
- const pathArray = value as string[];
191
- return pathArray.length > 0 && pathArray[0] !== undefined;
192
- })
193
- .map(([key, value]) => {
194
- const pathArray = value as string[];
195
- const firstPath = pathArray[0] ?? '';
196
- return [key.replace('/*', ''), join(rootDir, firstPath.replace('/*', ''))];
197
- })
198
- );
199
- } catch {
200
- // No tsconfig or no paths - that's fine
201
- }
202
-
203
- return {
204
- root: rootDir,
205
- base: '/',
206
- clearScreen: false,
207
- // Serve public assets from src/web/public/ at root path (e.g., /favicon.png)
208
- // The Bun server proxies /public/* requests to Vite, rewriting to root paths
209
- publicDir: join(rootDir, 'src', 'web', 'public'),
210
-
211
- resolve: {
212
- alias,
213
- // Deduplicate React to prevent multiple instances (if used)
214
- dedupe: ['react', 'react-dom', 'react/jsx-runtime', 'react/jsx-dev-runtime'],
215
- },
216
-
217
- // Pre-bundle dependencies to avoid issues with pre-built packages
218
- // Only include @agentuity/workbench if workbench is enabled
219
- optimizeDeps: {
220
- include: workbenchPath ? ['@agentuity/workbench', '@agentuity/core'] : ['@agentuity/core'],
221
- },
222
-
223
- // Only allow frontend env vars (server uses process.env)
224
- envPrefix: ['VITE_', 'AGENTUITY_PUBLIC_', 'PUBLIC_'],
225
-
226
- server: {
227
- // Vite is the primary dev server — listens on the user-facing port
228
- port,
229
- strictPort: true, // Port is pre-verified as available by findAvailablePort()
230
- host: '127.0.0.1',
231
-
232
- // When accessed via an Agentuity live tunnel, the Host header is the
233
- // tunnel hostname (e.g. "epXXX.agentuity-us.live.internal"). Without
234
- // adding it here, Vite 6+ rejects the request with "host not allowed".
235
- ...(liveHostname ? { allowedHosts: [liveHostname] } : {}),
236
-
237
- // Proxy backend routes to Bun server (HTTP only).
238
- // WebSocket upgrades are handled by the front-door TCP proxy (ws-proxy.ts)
239
- // which routes them directly to the Bun backend, bypassing Vite entirely.
240
- // This avoids Bun's broken node:http upgrade socket implementation.
241
- proxy: {
242
- // User-defined route mounts (from createApp({ router }))
243
- ...Object.fromEntries(
244
- routePaths.map((routePath) => [
245
- routePath,
246
- {
247
- target: `http://127.0.0.1:${backendPort}`,
248
- changeOrigin: true,
249
- },
250
- ])
251
- ),
252
- // Agentuity system routes (workbench API, health, analytics, etc.)
253
- '/_agentuity': {
254
- target: `http://127.0.0.1:${backendPort}`,
255
- changeOrigin: true,
256
- },
257
- // Workbench UI route (served by Bun, references /@fs/* paths handled by Vite)
258
- ...(workbenchPath
259
- ? {
260
- [workbenchPath]: {
261
- target: `http://127.0.0.1:${backendPort}`,
262
- changeOrigin: true,
263
- },
264
- }
265
- : {}),
266
- // Legacy health check routes
267
- '/_health': {
268
- target: `http://127.0.0.1:${backendPort}`,
269
- changeOrigin: true,
270
- },
271
- '/_idle': {
272
- target: `http://127.0.0.1:${backendPort}`,
273
- changeOrigin: true,
274
- },
275
- },
276
-
277
- // HMR works natively — Vite is the primary server, no proxy needed
278
- // Auto-detect host/protocol from page origin for tunnel support
279
- hmr: true,
280
-
281
- // Don't open browser automatically
282
- open: false,
283
- },
284
-
285
- // Define environment variables for browser
286
- define: {
287
- ...(workbenchPath
288
- ? { 'import.meta.env.AGENTUITY_PUBLIC_WORKBENCH_PATH': JSON.stringify(workbenchPath) }
289
- : {}),
290
- 'import.meta.env.AGENTUITY_PUBLIC_HAS_SDK_KEY': JSON.stringify(
291
- process.env.AGENTUITY_SDK_KEY ? 'true' : 'false'
292
- ),
293
- 'process.env.NODE_ENV': JSON.stringify('development'),
294
- },
295
-
296
- // Agentuity-specific plugins (Vite loads user plugins from vite.config.ts automatically)
297
- plugins: await (async () => {
298
- const { browserEnvPlugin } = await import('./browser-env-plugin');
299
- const { publicAssetPathPlugin } = await import('./public-asset-path-plugin');
300
-
301
- return [
302
- // Browser env plugin to map process.env to import.meta.env
303
- browserEnvPlugin(),
304
- // Warn about incorrect public asset paths in dev mode
305
- publicAssetPathPlugin({ warnInDev: true }),
306
- // Inject analytics scripts in dev HTML
307
- devAnalyticsPlugin(),
308
- // SPA fallback: serve src/web/index.html for navigation requests
309
- spaFallbackPlugin(rootDir, routePaths, workbenchPath),
310
- ];
311
- })(),
312
-
313
- // Suppress build-related options (this is dev-only)
314
- build: {
315
- rollupOptions: {
316
- external: ['vite', '@agentuity/cli'],
317
- },
318
- },
319
-
320
- // Custom logger to integrate with our logger
321
- customLogger: {
322
- info(msg: string) {
323
- // Show port-related messages at info level (important for debugging port conflicts)
324
- // Keep other Vite info messages (like HMR updates) at debug to avoid noise
325
- if (msg.includes('Port') || msg.includes('port')) {
326
- logger.info(`[Vite Asset] ${msg}`);
327
- } else {
328
- logger.debug(`[Vite Asset] ${msg}`);
329
- }
330
- },
331
- warn(msg: string) {
332
- logger.warn(`[Vite Asset] ${msg}`);
333
- },
334
- warnOnce(msg: string) {
335
- logger.warn(`[Vite Asset] ${msg}`);
336
- },
337
- error(msg: string) {
338
- logger.error(`[Vite Asset] ${msg}`);
339
- },
340
- clearScreen() {
341
- // No-op
342
- },
343
- hasErrorLogged: () => false,
344
- hasWarned: false,
345
- },
346
-
347
- logLevel: 'info',
348
- };
349
- }