@agentuity/cli 2.0.11 → 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 (339) 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.js +7 -7
  66. package/dist/cmd/coder/create.js.map +1 -1
  67. package/dist/cmd/coder/update.js +8 -8
  68. package/dist/cmd/coder/update.js.map +1 -1
  69. package/dist/cmd/coder/workspace/create.js +9 -9
  70. package/dist/cmd/coder/workspace/create.js.map +1 -1
  71. package/dist/cmd/dev/index.d.ts +9 -0
  72. package/dist/cmd/dev/index.d.ts.map +1 -1
  73. package/dist/cmd/dev/index.js +127 -923
  74. package/dist/cmd/dev/index.js.map +1 -1
  75. package/dist/cmd/project/auth/shared.d.ts.map +1 -1
  76. package/dist/cmd/project/auth/shared.js +14 -38
  77. package/dist/cmd/project/auth/shared.js.map +1 -1
  78. package/dist/cmd/project/create.d.ts.map +1 -1
  79. package/dist/cmd/project/create.js +12 -19
  80. package/dist/cmd/project/create.js.map +1 -1
  81. package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
  82. package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
  83. package/dist/cmd/project/frameworks-ai-examples.js +160 -0
  84. package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
  85. package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
  86. package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
  87. package/dist/cmd/project/frameworks-landing-pages.js +242 -0
  88. package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
  89. package/dist/cmd/project/frameworks.d.ts +58 -0
  90. package/dist/cmd/project/frameworks.d.ts.map +1 -0
  91. package/dist/cmd/project/frameworks.js +152 -0
  92. package/dist/cmd/project/frameworks.js.map +1 -0
  93. package/dist/cmd/project/reconcile.d.ts.map +1 -1
  94. package/dist/cmd/project/reconcile.js +10 -23
  95. package/dist/cmd/project/reconcile.js.map +1 -1
  96. package/dist/cmd/project/remote-import.js +1 -1
  97. package/dist/cmd/project/scaffold.d.ts +58 -0
  98. package/dist/cmd/project/scaffold.d.ts.map +1 -0
  99. package/dist/cmd/project/scaffold.js +223 -0
  100. package/dist/cmd/project/scaffold.js.map +1 -0
  101. package/dist/cmd/project/template-flow.d.ts +8 -4
  102. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  103. package/dist/cmd/project/template-flow.js +93 -144
  104. package/dist/cmd/project/template-flow.js.map +1 -1
  105. package/dist/deploy-metadata.d.ts +49 -0
  106. package/dist/deploy-metadata.d.ts.map +1 -0
  107. package/dist/deploy-metadata.js +183 -0
  108. package/dist/deploy-metadata.js.map +1 -0
  109. package/dist/index.d.ts +1 -1
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js.map +1 -1
  112. package/dist/types.d.ts +24 -30
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/types.js.map +1 -1
  115. package/package.json +13 -8
  116. package/src/cmd/ai/prompt/index.ts +2 -7
  117. package/src/cmd/build/adapters/generic.ts +239 -0
  118. package/src/cmd/build/adapters/index.ts +30 -0
  119. package/src/cmd/build/adapters/nextjs.ts +146 -0
  120. package/src/cmd/build/adapters/static-server.ts +143 -0
  121. package/src/cmd/build/adapters/types.ts +93 -0
  122. package/src/cmd/build/detect/engine.ts +111 -0
  123. package/src/cmd/build/detect/frameworks.ts +335 -0
  124. package/src/cmd/build/detect/generic.ts +71 -0
  125. package/src/cmd/build/detect/index.ts +122 -0
  126. package/src/cmd/build/detect/types.ts +109 -0
  127. package/src/cmd/build/detect/util.ts +104 -0
  128. package/src/cmd/build/index.ts +64 -24
  129. package/src/cmd/build/package/index.ts +66 -0
  130. package/src/cmd/build/package/launch.ts +104 -0
  131. package/src/cmd/build/typecheck.ts +9 -0
  132. package/src/cmd/cloud/deploy.ts +86 -13
  133. package/src/cmd/coder/create.ts +8 -8
  134. package/src/cmd/coder/update.ts +7 -7
  135. package/src/cmd/coder/workspace/create.ts +10 -10
  136. package/src/cmd/dev/index.ts +155 -1059
  137. package/src/cmd/project/auth/shared.ts +14 -39
  138. package/src/cmd/project/create.ts +14 -19
  139. package/src/cmd/project/frameworks-ai-examples.ts +166 -0
  140. package/src/cmd/project/frameworks-landing-pages.ts +267 -0
  141. package/src/cmd/project/frameworks.ts +223 -0
  142. package/src/cmd/project/reconcile.ts +10 -22
  143. package/src/cmd/project/remote-import.ts +1 -1
  144. package/src/cmd/project/scaffold.ts +300 -0
  145. package/src/cmd/project/template-flow.ts +102 -156
  146. package/src/deploy-metadata.ts +253 -0
  147. package/src/index.ts +0 -2
  148. package/src/types.ts +0 -31
  149. package/dist/agents-docs.d.ts +0 -23
  150. package/dist/agents-docs.d.ts.map +0 -1
  151. package/dist/agents-docs.js +0 -56
  152. package/dist/agents-docs.js.map +0 -1
  153. package/dist/cmd/ai/prompt/agent.d.ts +0 -10
  154. package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
  155. package/dist/cmd/ai/prompt/agent.js +0 -28
  156. package/dist/cmd/ai/prompt/agent.js.map +0 -1
  157. package/dist/cmd/build/app-router-detector.d.ts +0 -39
  158. package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
  159. package/dist/cmd/build/app-router-detector.js +0 -229
  160. package/dist/cmd/build/app-router-detector.js.map +0 -1
  161. package/dist/cmd/build/format-schema.d.ts +0 -6
  162. package/dist/cmd/build/format-schema.d.ts.map +0 -1
  163. package/dist/cmd/build/format-schema.js +0 -60
  164. package/dist/cmd/build/format-schema.js.map +0 -1
  165. package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
  166. package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
  167. package/dist/cmd/build/vite/agent-discovery.js +0 -263
  168. package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
  169. package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
  170. package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
  171. package/dist/cmd/build/vite/beacon-plugin.js +0 -137
  172. package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
  173. package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
  174. package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
  175. package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
  176. package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
  177. package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
  178. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
  179. package/dist/cmd/build/vite/bun-dev-server.js +0 -340
  180. package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
  181. package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
  182. package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
  183. package/dist/cmd/build/vite/bundle-files.js +0 -107
  184. package/dist/cmd/build/vite/bundle-files.js.map +0 -1
  185. package/dist/cmd/build/vite/config-loader.d.ts +0 -29
  186. package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
  187. package/dist/cmd/build/vite/config-loader.js +0 -57
  188. package/dist/cmd/build/vite/config-loader.js.map +0 -1
  189. package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
  190. package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
  191. package/dist/cmd/build/vite/db-rewrite.js +0 -169
  192. package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
  193. package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
  194. package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
  195. package/dist/cmd/build/vite/docs-generator.js +0 -97
  196. package/dist/cmd/build/vite/docs-generator.js.map +0 -1
  197. package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
  198. package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
  199. package/dist/cmd/build/vite/env-types-generator.js +0 -110
  200. package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
  201. package/dist/cmd/build/vite/index.d.ts +0 -3
  202. package/dist/cmd/build/vite/index.d.ts.map +0 -1
  203. package/dist/cmd/build/vite/index.js +0 -4
  204. package/dist/cmd/build/vite/index.js.map +0 -1
  205. package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
  206. package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
  207. package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
  208. package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
  209. package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
  210. package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
  211. package/dist/cmd/build/vite/metadata-generator.js +0 -575
  212. package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
  213. package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
  214. package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
  215. package/dist/cmd/build/vite/prompt-generator.js +0 -123
  216. package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
  217. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
  218. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
  219. package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
  220. package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
  221. package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
  222. package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
  223. package/dist/cmd/build/vite/route-discovery.js +0 -187
  224. package/dist/cmd/build/vite/route-discovery.js.map +0 -1
  225. package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
  226. package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
  227. package/dist/cmd/build/vite/server-bundler.js +0 -388
  228. package/dist/cmd/build/vite/server-bundler.js.map +0 -1
  229. package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
  230. package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
  231. package/dist/cmd/build/vite/static-renderer.js +0 -188
  232. package/dist/cmd/build/vite/static-renderer.js.map +0 -1
  233. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
  234. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
  235. package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
  236. package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
  237. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
  238. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
  239. package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
  240. package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
  241. package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
  242. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
  243. package/dist/cmd/build/vite/vite-asset-server.js +0 -109
  244. package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
  245. package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
  246. package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
  247. package/dist/cmd/build/vite/vite-builder.js +0 -401
  248. package/dist/cmd/build/vite/vite-builder.js.map +0 -1
  249. package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
  250. package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
  251. package/dist/cmd/build/vite/workbench-generator.js +0 -135
  252. package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
  253. package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
  254. package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
  255. package/dist/cmd/build/vite/ws-proxy.js +0 -95
  256. package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
  257. package/dist/cmd/build/vite-bundler.d.ts +0 -29
  258. package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
  259. package/dist/cmd/build/vite-bundler.js +0 -93
  260. package/dist/cmd/build/vite-bundler.js.map +0 -1
  261. package/dist/cmd/dev/agents.d.ts +0 -2
  262. package/dist/cmd/dev/agents.d.ts.map +0 -1
  263. package/dist/cmd/dev/agents.js +0 -123
  264. package/dist/cmd/dev/agents.js.map +0 -1
  265. package/dist/cmd/dev/api.d.ts +0 -20
  266. package/dist/cmd/dev/api.d.ts.map +0 -1
  267. package/dist/cmd/dev/api.js +0 -42
  268. package/dist/cmd/dev/api.js.map +0 -1
  269. package/dist/cmd/dev/dev-lock.d.ts +0 -62
  270. package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
  271. package/dist/cmd/dev/dev-lock.js +0 -250
  272. package/dist/cmd/dev/dev-lock.js.map +0 -1
  273. package/dist/cmd/dev/download.d.ts +0 -11
  274. package/dist/cmd/dev/download.d.ts.map +0 -1
  275. package/dist/cmd/dev/download.js +0 -94
  276. package/dist/cmd/dev/download.js.map +0 -1
  277. package/dist/cmd/dev/file-watcher.d.ts +0 -24
  278. package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
  279. package/dist/cmd/dev/file-watcher.js +0 -349
  280. package/dist/cmd/dev/file-watcher.js.map +0 -1
  281. package/dist/cmd/dev/process-manager.d.ts +0 -104
  282. package/dist/cmd/dev/process-manager.d.ts.map +0 -1
  283. package/dist/cmd/dev/process-manager.js +0 -204
  284. package/dist/cmd/dev/process-manager.js.map +0 -1
  285. package/dist/cmd/dev/sync.d.ts +0 -12
  286. package/dist/cmd/dev/sync.d.ts.map +0 -1
  287. package/dist/cmd/dev/sync.js +0 -227
  288. package/dist/cmd/dev/sync.js.map +0 -1
  289. package/dist/cmd/dev/templates.d.ts +0 -3
  290. package/dist/cmd/dev/templates.d.ts.map +0 -1
  291. package/dist/cmd/dev/templates.js +0 -58
  292. package/dist/cmd/dev/templates.js.map +0 -1
  293. package/dist/cmd/project/download.d.ts +0 -35
  294. package/dist/cmd/project/download.d.ts.map +0 -1
  295. package/dist/cmd/project/download.js +0 -403
  296. package/dist/cmd/project/download.js.map +0 -1
  297. package/dist/cmd/project/templates.d.ts +0 -9
  298. package/dist/cmd/project/templates.d.ts.map +0 -1
  299. package/dist/cmd/project/templates.js +0 -34
  300. package/dist/cmd/project/templates.js.map +0 -1
  301. package/src/agents-docs.ts +0 -86
  302. package/src/cmd/ai/prompt/agent.md +0 -305
  303. package/src/cmd/ai/prompt/agent.ts +0 -31
  304. package/src/cmd/build/app-router-detector.ts +0 -320
  305. package/src/cmd/build/format-schema.ts +0 -66
  306. package/src/cmd/build/vite/agent-discovery.ts +0 -380
  307. package/src/cmd/build/vite/beacon-plugin.ts +0 -164
  308. package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
  309. package/src/cmd/build/vite/bun-dev-server.ts +0 -458
  310. package/src/cmd/build/vite/bundle-files.ts +0 -135
  311. package/src/cmd/build/vite/config-loader.ts +0 -76
  312. package/src/cmd/build/vite/db-rewrite.ts +0 -189
  313. package/src/cmd/build/vite/docs-generator.ts +0 -103
  314. package/src/cmd/build/vite/env-types-generator.ts +0 -145
  315. package/src/cmd/build/vite/index.ts +0 -3
  316. package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
  317. package/src/cmd/build/vite/metadata-generator.ts +0 -713
  318. package/src/cmd/build/vite/prompt-generator.ts +0 -169
  319. package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
  320. package/src/cmd/build/vite/route-discovery.ts +0 -271
  321. package/src/cmd/build/vite/server-bundler.ts +0 -481
  322. package/src/cmd/build/vite/static-renderer.ts +0 -239
  323. package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
  324. package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
  325. package/src/cmd/build/vite/vite-asset-server.ts +0 -154
  326. package/src/cmd/build/vite/vite-builder.ts +0 -503
  327. package/src/cmd/build/vite/workbench-generator.ts +0 -152
  328. package/src/cmd/build/vite/ws-proxy.ts +0 -126
  329. package/src/cmd/build/vite-bundler.ts +0 -137
  330. package/src/cmd/dev/agents.ts +0 -140
  331. package/src/cmd/dev/api.ts +0 -65
  332. package/src/cmd/dev/dev-lock.ts +0 -332
  333. package/src/cmd/dev/download.ts +0 -117
  334. package/src/cmd/dev/file-watcher.ts +0 -423
  335. package/src/cmd/dev/process-manager.ts +0 -261
  336. package/src/cmd/dev/sync.ts +0 -411
  337. package/src/cmd/dev/templates.ts +0 -66
  338. package/src/cmd/project/download.ts +0 -505
  339. package/src/cmd/project/templates.ts +0 -56
@@ -1,152 +0,0 @@
1
- /**
2
- * Workbench file generator for Vite builds
3
- */
4
-
5
- import { join } from 'node:path';
6
- import { mkdirSync, existsSync, cpSync } from 'node:fs';
7
- import {
8
- encodeWorkbenchConfig,
9
- type WorkbenchConfig as CoreWorkbenchConfig,
10
- } from '@agentuity/core';
11
- import type { Logger, WorkbenchConfig } from '../../../types';
12
-
13
- /**
14
- * Find the @agentuity/workbench package path
15
- */
16
- async function findWorkbenchPackage(rootDir: string, logger: Logger): Promise<string | null> {
17
- // Try app-level node_modules first
18
- const appLevel = join(rootDir, 'node_modules', '@agentuity', 'workbench');
19
- if (existsSync(appLevel)) {
20
- return appLevel;
21
- }
22
-
23
- // Try workspace root (walk up looking for workspace)
24
- let current = rootDir;
25
- while (true) {
26
- const pkgPath = join(current, 'package.json');
27
- if (existsSync(pkgPath)) {
28
- try {
29
- const pkg = JSON.parse(await Bun.file(pkgPath).text());
30
- if (pkg.workspaces) {
31
- // Found workspace root
32
- const workspaceWorkbench = join(current, 'node_modules', '@agentuity', 'workbench');
33
- if (existsSync(workspaceWorkbench)) {
34
- return workspaceWorkbench;
35
- }
36
- // Try workspace packages directory
37
- const packagesWorkbench = join(current, 'packages', 'workbench');
38
- if (existsSync(packagesWorkbench)) {
39
- return packagesWorkbench;
40
- }
41
- }
42
- } catch {
43
- // Ignore parse errors
44
- }
45
- }
46
- const parent = join(current, '..');
47
- if (parent === current) break;
48
- current = parent;
49
- }
50
-
51
- logger.warn('Could not find @agentuity/workbench package');
52
- return null;
53
- }
54
-
55
- /**
56
- * Generate workbench main.tsx file
57
- */
58
- function generateMainTsx(config: CoreWorkbenchConfig): string {
59
- const encodedConfig = encodeWorkbenchConfig(config);
60
- return `// Generated workbench entry point
61
- import React from 'react';
62
- import { createRoot } from 'react-dom/client';
63
- import { App } from '@agentuity/workbench';
64
- import './styles.css'; // Import CSS for Vite HMR
65
-
66
- // Root element
67
- const rootElement = document.getElementById('root');
68
- if (!rootElement) {
69
- throw new Error('Root element not found');
70
- }
71
-
72
- // Render the app
73
- const root = createRoot(rootElement);
74
- root.render(<App configBase64="${encodedConfig}" />);
75
- `;
76
- }
77
-
78
- /**
79
- * Generate workbench index.html file
80
- */
81
- function generateIndexHtml(): string {
82
- return `<!DOCTYPE html>
83
- <html lang="en">
84
- <head>
85
- <meta charset="UTF-8">
86
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
87
- <title>Agentuity Workbench</title>
88
- </head>
89
- <body>
90
- <div id="root"></div>
91
- <script type="module" src="./main.tsx"></script>
92
- </body>
93
- </html>`;
94
- }
95
-
96
- /**
97
- * Generate workbench files in .agentuity/workbench-src/
98
- * This keeps them separate from user's source code
99
- */
100
- export async function generateWorkbenchFiles(
101
- rootDir: string,
102
- _projectId: string,
103
- config: WorkbenchConfig,
104
- logger: Logger
105
- ): Promise<void> {
106
- const workbenchDir = join(rootDir, '.agentuity', 'workbench-src');
107
-
108
- // Create directory if it doesn't exist
109
- if (!existsSync(workbenchDir)) {
110
- mkdirSync(workbenchDir, { recursive: true });
111
- logger.debug('Created workbench directory: %s', workbenchDir);
112
- }
113
-
114
- // Create core workbench config
115
- const coreConfig: CoreWorkbenchConfig = {
116
- route: config.route ?? '/workbench',
117
- headers: config.headers ?? {},
118
- };
119
-
120
- // Generate main.tsx
121
- const mainTsxPath = join(workbenchDir, 'main.tsx');
122
- await Bun.write(mainTsxPath, generateMainTsx(coreConfig));
123
- logger.debug('Generated workbench main.tsx');
124
-
125
- // Generate index.html
126
- const indexHtmlPath = join(workbenchDir, 'index.html');
127
- await Bun.write(indexHtmlPath, generateIndexHtml());
128
- logger.debug('Generated workbench index.html');
129
-
130
- // Copy standalone CSS from @agentuity/workbench package
131
- const workbenchPackage = await findWorkbenchPackage(rootDir, logger);
132
- if (workbenchPackage) {
133
- const distCss = join(workbenchPackage, 'dist', 'standalone.css');
134
- const srcCss = join(workbenchPackage, 'src', 'standalone.css');
135
- const destCss = join(workbenchDir, 'styles.css');
136
-
137
- if (existsSync(distCss)) {
138
- cpSync(distCss, destCss);
139
- logger.debug('Copied workbench standalone.css from dist');
140
- } else if (existsSync(srcCss)) {
141
- cpSync(srcCss, destCss);
142
- logger.warn('Using source standalone.css (ensure @agentuity/workbench is built)');
143
- } else {
144
- logger.error('Workbench styles not found in package: %s', workbenchPackage);
145
- throw new Error('Workbench styles not found. Ensure @agentuity/workbench is installed.');
146
- }
147
- } else {
148
- throw new Error('Could not find @agentuity/workbench package. Ensure it is installed.');
149
- }
150
-
151
- logger.trace('Workbench files generated successfully');
152
- }
@@ -1,126 +0,0 @@
1
- /**
2
- * WebSocket-aware front-door TCP proxy for dev mode.
3
- *
4
- * Bun's node:http has several bugs that prevent Vite's built-in http-proxy
5
- * from proxying WebSocket upgrades (see linked PRs). Rather than polyfilling
6
- * those bugs, this module places a lightweight `net.createServer` on the
7
- * user-facing port. It inspects the first bytes of each TCP connection and
8
- * routes accordingly:
9
- *
10
- * - **WebSocket upgrades to backend paths** → piped directly to Bun backend
11
- * (Bun's native `server.upgrade()` works perfectly over raw TCP)
12
- * - **Everything else** (HTTP requests, Vite HMR WebSocket) → piped to Vite
13
- *
14
- * From the browser's perspective there is only one port. Vite and Bun both
15
- * listen on internal ports that are never exposed.
16
- *
17
- * Bun bugs this works around:
18
- * - https://github.com/oven-sh/bun/pull/27237 (socket.write drops data)
19
- * - https://github.com/oven-sh/bun/pull/26264 (missing destroySoon)
20
- * - https://github.com/oven-sh/bun/pull/27859 (http.request upgrade event)
21
- * - Server-side upgrade socket read broken (HTTP parser doesn't hand off)
22
- *
23
- * This entire module can be removed once those Bun PRs are merged and the
24
- * Vite `ws: true` proxy works natively under Bun.
25
- *
26
- * ```
27
- * Browser ──TCP──▶ net.Server (:3500, user-facing)
28
- * │
29
- * ┌───────────┴───────────┐
30
- * ▼ (WS upgrade to ▼ (everything else)
31
- * backend paths)
32
- * Bun backend (:3501) Vite server (:3502)
33
- * ```
34
- */
35
-
36
- import { createServer, connect, type Server } from 'node:net';
37
- import type { Logger } from '../../../types';
38
-
39
- export interface WsProxyOptions {
40
- /** Port the front-door proxy listens on (user-facing) */
41
- port: number;
42
- /** Port of the Vite dev server (internal) */
43
- vitePort: number;
44
- /** Port of the Bun backend server (internal) */
45
- backendPort: number;
46
- /** Route path prefixes that should be proxied to the backend */
47
- routePaths: string[];
48
- logger: Logger;
49
- }
50
-
51
- /**
52
- * Start a front-door TCP proxy that routes WebSocket upgrades to the Bun
53
- * backend and everything else to Vite. Returns the `net.Server` instance.
54
- */
55
- export function startWsProxy(options: WsProxyOptions): Promise<Server> {
56
- const { port, vitePort, backendPort, routePaths, logger } = options;
57
-
58
- // Prefixes whose WebSocket upgrades go to Bun instead of Vite
59
- const wsPathPrefixes = ['/_agentuity', ...routePaths];
60
-
61
- return new Promise((resolve, reject) => {
62
- const server = createServer((socket) => {
63
- let handled = false;
64
-
65
- // Peek at the first chunk to decide where to route
66
- socket.once('data', (firstChunk) => {
67
- handled = true;
68
-
69
- const header = firstChunk.toString('utf8', 0, Math.min(firstChunk.length, 4096));
70
-
71
- // Detect: is this a WebSocket upgrade for a backend path?
72
- const isUpgrade = /upgrade:\s*websocket/i.test(header);
73
- let targetPort = vitePort;
74
-
75
- if (isUpgrade) {
76
- const pathMatch = header.match(/^(?:GET|POST)\s+(\S+)/);
77
- const pathname = (pathMatch?.[1] ?? '/').split('?')[0] ?? '/';
78
-
79
- const isBackendPath = wsPathPrefixes.some(
80
- (prefix) => pathname === prefix || pathname.startsWith(prefix + '/')
81
- );
82
-
83
- if (isBackendPath) {
84
- targetPort = backendPort;
85
- logger.debug('WS upgrade %s → Bun :%d', pathname, backendPort);
86
- }
87
- }
88
-
89
- const target = connect(targetPort, '127.0.0.1');
90
-
91
- target.on('connect', () => {
92
- target.write(firstChunk);
93
- socket.pipe(target);
94
- target.pipe(socket);
95
- });
96
-
97
- target.on('error', () => {
98
- if (!socket.destroyed) socket.destroy();
99
- });
100
- socket.on('error', () => {
101
- if (!target.destroyed) target.destroy();
102
- });
103
- });
104
-
105
- // Client disconnected before sending anything
106
- socket.on('close', () => {
107
- if (!handled) socket.destroy();
108
- });
109
- socket.on('error', () => {
110
- if (!handled) socket.destroy();
111
- });
112
- });
113
-
114
- server.on('error', reject);
115
-
116
- server.listen(port, '127.0.0.1', () => {
117
- logger.debug(
118
- 'WS front-door proxy on :%d (Vite :%d, Bun :%d)',
119
- port,
120
- vitePort,
121
- backendPort
122
- );
123
- resolve(server);
124
- });
125
- });
126
- }
@@ -1,137 +0,0 @@
1
- /**
2
- * Vite-based bundler
3
- *
4
- * Replaces the Bun bundler with Vite for client and server builds
5
- */
6
-
7
- import { join } from 'node:path';
8
- import { stat } from 'node:fs/promises';
9
- import { StructuredError } from '@agentuity/core';
10
- import type { Logger, DeployOptions } from '../../types';
11
- import { runAllBuilds } from './vite/vite-builder';
12
- import { checkAndUpgradeDependencies } from '../../utils/dependency-checker';
13
- import { checkBunVersion } from '../../utils/bun-version-checker';
14
- import * as tui from '../../tui';
15
- import type { BuildReportCollector } from '../../build-report';
16
-
17
- const AppFileNotFoundError = StructuredError('AppFileNotFoundError');
18
- const BuildFailedError = StructuredError('BuildFailedError');
19
-
20
- export interface ViteBundleOptions {
21
- rootDir: string;
22
- dev?: boolean;
23
- projectId?: string;
24
- orgId?: string;
25
- region?: string;
26
- deploymentId?: string;
27
- port?: number;
28
- logger: Logger;
29
- deploymentOptions?: DeployOptions;
30
- /** Deployment config from agentuity.json (resources, mode, dependencies, domains) */
31
- deploymentConfig?: Record<string, unknown>;
32
- /** Optional collector for structured error reporting */
33
- collector?: BuildReportCollector;
34
- }
35
-
36
- /**
37
- * Bundle the project using Vite
38
- */
39
- export async function viteBundle(options: ViteBundleOptions): Promise<{ output: string[] }> {
40
- const {
41
- rootDir,
42
- projectId = '',
43
- orgId = '',
44
- region = 'local',
45
- deploymentId = '',
46
- port = 3500,
47
- logger,
48
- deploymentOptions,
49
- deploymentConfig,
50
- collector,
51
- } = options;
52
-
53
- const output: string[] = [];
54
-
55
- // Check Bun version meets minimum requirements
56
- const versionOutput = await checkBunVersion();
57
- output.push(...versionOutput);
58
-
59
- // Verify app.ts exists
60
- const appFile = join(rootDir, 'app.ts');
61
- if (!(await Bun.file(appFile).exists())) {
62
- const errorMessage = `App file not found at expected location: ${appFile}`;
63
- collector?.addGeneralError('build', errorMessage, 'BUILD001');
64
- throw new AppFileNotFoundError({
65
- message: errorMessage,
66
- });
67
- }
68
-
69
- // Verify src directory exists
70
- const srcDir = join(rootDir, 'src');
71
- const srcDirExists = await stat(srcDir)
72
- .then((s) => s.isDirectory())
73
- .catch(() => false);
74
- if (!srcDirExists) {
75
- const errorMessage = `Source directory not found: ${srcDir}`;
76
- collector?.addGeneralError('build', errorMessage, 'BUILD002');
77
- throw new BuildFailedError({
78
- message: errorMessage,
79
- });
80
- }
81
-
82
- // Check and upgrade @agentuity/* dependencies if needed
83
- const upgradeResult = await checkAndUpgradeDependencies(rootDir, logger);
84
- if (upgradeResult.failed.length > 0 && process.stdin.isTTY) {
85
- const errorMessage = `Failed to upgrade dependencies: ${upgradeResult.failed.join(', ')}`;
86
- collector?.addGeneralError('build', errorMessage, 'BUILD003');
87
- throw new BuildFailedError({
88
- message: errorMessage,
89
- });
90
- }
91
-
92
- try {
93
- // Run all builds (client -> workbench -> server)
94
- logger.debug('Starting builds...');
95
-
96
- const result = await runAllBuilds({
97
- rootDir,
98
- dev: options.dev || false, // Pass through dev flag for development builds
99
- port,
100
- projectId,
101
- orgId,
102
- region,
103
- deploymentId,
104
- logger,
105
- deploymentOptions,
106
- deploymentConfig,
107
- collector,
108
- });
109
-
110
- if (result.client.included) {
111
- output.push(tui.muted(`✓ Client built in ${result.client.duration}ms`));
112
- }
113
- if (result.workbench.included) {
114
- output.push(tui.muted(`✓ Workbench built in ${result.workbench.duration}ms`));
115
- }
116
- if (result.static.included) {
117
- output.push(
118
- tui.muted(
119
- `✓ ${result.static.routes} routes pre-rendered in ${result.static.duration}ms`
120
- )
121
- );
122
- }
123
- if (result.server.included) {
124
- output.push(tui.muted(`✓ Server built in ${result.server.duration}ms`));
125
- }
126
-
127
- logger.debug('All builds complete');
128
-
129
- return { output };
130
- } catch (error) {
131
- const errorMessage = `Build failed: ${error instanceof Error ? error.message : String(error)}`;
132
- collector?.addGeneralError('build', errorMessage, 'BUILD004');
133
- throw new BuildFailedError({
134
- message: errorMessage,
135
- });
136
- }
137
- }
@@ -1,140 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../types';
3
- import * as tui from '../../tui';
4
- import { APIResponseSchema } from '@agentuity/server';
5
- import { abbreviate, abbreviateDescription } from '../../utils/format';
6
- import { getCommand } from '../../command-prefix';
7
-
8
- const AgentSchema = z.object({
9
- id: z.string(),
10
- name: z.string(),
11
- description: z.string().nullable(),
12
- identifier: z.string().nullable(), // nullable for legacy records
13
- version: z.string().nullable(),
14
- deploymentId: z.string().nullable(),
15
- devmode: z.boolean(),
16
- metadata: z.record(z.string(), z.unknown()).nullable(),
17
- createdAt: z.string(),
18
- updatedAt: z.string(),
19
- evals: z.array(
20
- z.object({
21
- id: z.string(),
22
- name: z.string(),
23
- description: z.string().nullable(),
24
- identifier: z.string().nullable(),
25
- deploymentId: z.string().nullable(),
26
- version: z.string().nullable(),
27
- devmode: z.boolean(),
28
- createdAt: z.string(),
29
- updatedAt: z.string(),
30
- })
31
- ),
32
- });
33
-
34
- const AgentsResponseSchema = APIResponseSchema(z.array(AgentSchema));
35
-
36
- export const agentsSubcommand = createSubcommand({
37
- name: 'agents',
38
- description: 'Show devmode agent results',
39
- examples: [
40
- { command: getCommand('dev agents'), description: 'Show all development mode agents' },
41
- { command: getCommand('dev agents --verbose'), description: 'Show agents with full details' },
42
- ],
43
- requires: { auth: true, apiClient: true, project: true },
44
- schema: {
45
- options: z.object({
46
- deploymentId: z.string().optional().describe('Filter by deployment ID'),
47
- format: z
48
- .enum(['json', 'table'])
49
- .optional()
50
- .default('table')
51
- .describe('Output format: json or table'),
52
- verbose: z.boolean().optional().default(false).describe('Show full IDs and descriptions'),
53
- }),
54
- response: z.array(AgentSchema),
55
- },
56
- async handler(ctx) {
57
- const { opts, apiClient, project, options } = ctx;
58
- const projectId = project.projectId;
59
- const format = opts?.format ?? 'table';
60
- const verbose = opts?.verbose ?? false;
61
-
62
- const deploymentId = opts?.deploymentId;
63
- const queryParams = deploymentId ? `?deploymentId=${deploymentId}` : '';
64
-
65
- const response = options.json
66
- ? await apiClient.get(`/cli/agent/${projectId}${queryParams}`, AgentsResponseSchema)
67
- : await tui.spinner('Fetching agents', async () => {
68
- return apiClient.get(`/cli/agent/${projectId}${queryParams}`, AgentsResponseSchema);
69
- });
70
-
71
- if (!response.success) {
72
- tui.fatal(`Failed to fetch agents: ${response.message ?? 'Unknown error'}`);
73
- }
74
-
75
- // Filter out legacy agents without identifiers
76
- const agents = response.data.filter((agent) => agent.identifier !== null);
77
-
78
- if (format === 'json' && !options.json) {
79
- console.log(JSON.stringify(agents, null, 2));
80
- return agents;
81
- }
82
-
83
- if (!options.json) {
84
- tui.info(`Agents (${agents.length})`);
85
- if (agents.length === 0) {
86
- tui.muted('No agents found');
87
- } else {
88
- tui.table(
89
- agents.map((agent) => ({
90
- name: agent.name,
91
- id: verbose ? agent.id : abbreviate(agent.id, 20),
92
- identifier: verbose ? agent.identifier! : abbreviate(agent.identifier!, 20),
93
- deployment: abbreviate(agent.deploymentId, 20),
94
- version: verbose
95
- ? (agent.version ?? 'N/A')
96
- : (abbreviate(agent.version, 20) ?? 'N/A'),
97
- evals: agent.evals.length,
98
- createdAt: new Date(agent.createdAt).toLocaleString(),
99
- })),
100
- ['name', 'id', 'identifier', 'deployment', 'version', 'evals', 'createdAt']
101
- );
102
-
103
- // Show evals for each agent
104
- for (const agent of agents) {
105
- if (agent.evals.length > 0) {
106
- console.log(`\n Evals for ${agent.name}:`);
107
- tui.table(
108
- agent.evals.map((evalItem) => ({
109
- name: evalItem.name,
110
- id: verbose ? evalItem.id : abbreviate(evalItem.id, 20),
111
- identifier: verbose
112
- ? (evalItem.identifier ?? 'N/A')
113
- : (abbreviate(evalItem.identifier, 20) ?? 'N/A'),
114
- deployment: abbreviate(evalItem.deploymentId, 20),
115
- version: verbose
116
- ? (evalItem.version ?? 'N/A')
117
- : (abbreviate(evalItem.version, 20) ?? 'N/A'),
118
- description: verbose
119
- ? (evalItem.description ?? 'N/A')
120
- : abbreviateDescription(evalItem.description),
121
- createdAt: new Date(evalItem.createdAt).toLocaleString(),
122
- })),
123
- [
124
- 'name',
125
- 'id',
126
- 'identifier',
127
- 'deployment',
128
- 'version',
129
- 'description',
130
- 'createdAt',
131
- ]
132
- );
133
- }
134
- }
135
- }
136
- }
137
-
138
- return agents;
139
- },
140
- });
@@ -1,65 +0,0 @@
1
- import { APIResponseSchema } from '@agentuity/server';
2
- import { z } from 'zod';
3
- import type { APIClient } from '../../api';
4
- import { StructuredError } from '@agentuity/core';
5
- import { createPublicKey } from 'crypto';
6
-
7
- const DevmodeRequestSchema = z.object({
8
- hostname: z.string().optional().describe('the hostname for the endpoint'),
9
- publicKey: z.string().optional().describe('the public key PEM for the endpoint'),
10
- });
11
-
12
- type DevmodeRequest = z.infer<typeof DevmodeRequestSchema>;
13
-
14
- function extractPublicKeyPEM(privateKeyPEM: string): string | undefined {
15
- try {
16
- const publicKey = createPublicKey(privateKeyPEM);
17
- return publicKey.export({ type: 'spki', format: 'pem' }) as string;
18
- } catch {
19
- return undefined;
20
- }
21
- }
22
-
23
- const DevmodeResponseSchema = z.object({
24
- id: z.string(),
25
- hostname: z.string(),
26
- privateKey: z.string().optional(),
27
- });
28
- export type DevmodeResponse = z.infer<typeof DevmodeResponseSchema>;
29
-
30
- const DevmodeResponseAPISchema = APIResponseSchema(DevmodeResponseSchema);
31
- type DevmodeResponseAPI = z.infer<typeof DevmodeResponseAPISchema>;
32
-
33
- const DevmodeEndpointError = StructuredError('DevmodeEndpointError');
34
-
35
- /**
36
- * Generate an Endpoint ID and Hostname
37
- *
38
- * @param apiClient the api client to use
39
- * @param projectId the project id
40
- * @param hostname the hostname is already configured
41
- * @param privateKey the private key PEM if already configured
42
- * @returns
43
- */
44
- export async function generateEndpoint(
45
- apiClient: APIClient,
46
- projectId: string,
47
- hostname?: string,
48
- privateKey?: string
49
- ): Promise<DevmodeResponse> {
50
- const publicKey = privateKey ? extractPublicKeyPEM(privateKey) : undefined;
51
-
52
- const resp = await apiClient.request<DevmodeResponseAPI, DevmodeRequest>(
53
- 'POST',
54
- `/cli/devmode/3/${projectId}`,
55
- DevmodeResponseAPISchema,
56
- { hostname, publicKey },
57
- DevmodeRequestSchema
58
- );
59
-
60
- if (!resp.success) {
61
- throw new DevmodeEndpointError({ message: resp.message });
62
- }
63
-
64
- return resp.data;
65
- }