@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
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Framework scaffolding catalog.
3
+ *
4
+ * Maps supported frameworks to their official create CLI commands
5
+ * and the augmentation steps needed to integrate with Agentuity.
6
+ *
7
+ * AI examples and landing pages are in separate files to keep
8
+ * this catalog focused on framework configuration.
9
+ */
10
+
11
+ import {
12
+ nextjsAiExample,
13
+ nuxtAiExample,
14
+ remixAiExample,
15
+ sveltekitAiExample,
16
+ astroAiExample,
17
+ honoAiExample,
18
+ viteReactAiExample,
19
+ } from './frameworks-ai-examples';
20
+
21
+ import {
22
+ nextjsLandingPage,
23
+ nuxtLandingPage,
24
+ remixLandingPage,
25
+ sveltekitLandingPage,
26
+ astroLandingPage,
27
+ viteReactLandingPage,
28
+ } from './frameworks-landing-pages';
29
+
30
+ export interface FrameworkScaffold {
31
+ /** Unique slug (matches detect/frameworks.ts where applicable) */
32
+ slug: string;
33
+
34
+ /** Human-readable name */
35
+ name: string;
36
+
37
+ /** Short description for the select prompt */
38
+ description: string;
39
+
40
+ /**
41
+ * Build the create command.
42
+ *
43
+ * @param projectDir - The target directory name (relative, e.g. "my-app")
44
+ * @returns The full command as an argv array (e.g. ["bunx", "create-next-app", "my-app", ...])
45
+ */
46
+ createCommand: (projectDir: string) => string[];
47
+
48
+ /**
49
+ * Agentuity packages to add as dependencies after scaffolding.
50
+ * `@agentuity/cli` is always added as a devDependency automatically.
51
+ */
52
+ dependencies?: string[];
53
+
54
+ /**
55
+ * Extra devDependencies to add (beyond @agentuity/cli).
56
+ */
57
+ devDependencies?: string[];
58
+
59
+ /**
60
+ * Scripts to merge into package.json.
61
+ * These are merged on top of whatever the framework CLI created.
62
+ */
63
+ scripts?: Record<string, string>;
64
+
65
+ /**
66
+ * Generate AI SDK example files for this framework.
67
+ *
68
+ * Returns a map of relative file paths to file contents.
69
+ * Only called if the user opts in to the AI example.
70
+ */
71
+ aiExample?: () => Record<string, string>;
72
+
73
+ /**
74
+ * Replace the framework's default landing page with an Agentuity-branded page.
75
+ *
76
+ * Returns a map of relative file paths to file contents.
77
+ * Files overwrite the framework's default page after scaffolding.
78
+ */
79
+ landingPage?: () => Record<string, string>;
80
+ }
81
+
82
+ // ─── Framework Catalog ───────────────────────────────────────────────────────
83
+
84
+ export const frameworkCatalog: FrameworkScaffold[] = [
85
+ {
86
+ slug: 'nextjs',
87
+ name: 'Next.js',
88
+ description: 'Full-stack React framework with App Router',
89
+ createCommand: (dir) => [
90
+ 'bunx',
91
+ 'create-next-app@latest',
92
+ dir,
93
+ '--ts',
94
+ '--app',
95
+ '--tailwind',
96
+ '--eslint',
97
+ '--src-dir',
98
+ '--import-alias',
99
+ '@/*',
100
+ '--use-bun',
101
+ ],
102
+ dependencies: ['ai', '@ai-sdk/openai'],
103
+ scripts: {
104
+ deploy: 'agentuity deploy',
105
+ },
106
+ aiExample: nextjsAiExample,
107
+ landingPage: nextjsLandingPage,
108
+ },
109
+ {
110
+ slug: 'nuxt',
111
+ name: 'Nuxt',
112
+ description: 'Full-stack Vue framework with server routes',
113
+ createCommand: (dir) => ['bunx', 'nuxi@latest', 'init', dir, '--packageManager', 'bun'],
114
+ dependencies: ['ai', '@ai-sdk/openai'],
115
+ scripts: {
116
+ deploy: 'agentuity deploy',
117
+ },
118
+ aiExample: nuxtAiExample,
119
+ landingPage: nuxtLandingPage,
120
+ },
121
+ {
122
+ slug: 'remix',
123
+ name: 'Remix',
124
+ description: 'Full-stack React framework with nested routing',
125
+ createCommand: (dir) => [
126
+ 'bunx',
127
+ 'create-remix@latest',
128
+ dir,
129
+ '--yes',
130
+ '--install',
131
+ '--package-manager',
132
+ 'bun',
133
+ ],
134
+ dependencies: ['ai', '@ai-sdk/openai'],
135
+ scripts: {
136
+ deploy: 'agentuity deploy',
137
+ },
138
+ aiExample: remixAiExample,
139
+ landingPage: remixLandingPage,
140
+ },
141
+ {
142
+ slug: 'sveltekit',
143
+ name: 'SvelteKit',
144
+ description: 'Full-stack Svelte framework',
145
+ createCommand: (dir) => [
146
+ 'bunx',
147
+ 'sv@latest',
148
+ 'create',
149
+ dir,
150
+ '--template',
151
+ 'minimal',
152
+ '--types',
153
+ 'ts',
154
+ ],
155
+ dependencies: ['ai', '@ai-sdk/openai'],
156
+ scripts: {
157
+ deploy: 'agentuity deploy',
158
+ },
159
+ aiExample: sveltekitAiExample,
160
+ landingPage: sveltekitLandingPage,
161
+ },
162
+ {
163
+ slug: 'astro',
164
+ name: 'Astro',
165
+ description: 'Content-focused framework with island architecture',
166
+ createCommand: (dir) => [
167
+ 'bunx',
168
+ 'create-astro@latest',
169
+ dir,
170
+ '--template',
171
+ 'basics',
172
+ '--install',
173
+ '--yes',
174
+ '--typescript',
175
+ 'strict',
176
+ ],
177
+ dependencies: ['ai', '@ai-sdk/openai'],
178
+ scripts: {
179
+ deploy: 'agentuity deploy',
180
+ },
181
+ aiExample: astroAiExample,
182
+ landingPage: astroLandingPage,
183
+ },
184
+ {
185
+ slug: 'hono',
186
+ name: 'Hono',
187
+ description: 'Lightweight, fast web framework for the edge',
188
+ createCommand: (dir) => [
189
+ 'bunx',
190
+ 'create-hono@latest',
191
+ dir,
192
+ '--template',
193
+ 'bun',
194
+ '--install',
195
+ '--pm',
196
+ 'bun',
197
+ ],
198
+ dependencies: ['ai', '@ai-sdk/openai'],
199
+ scripts: {
200
+ deploy: 'agentuity deploy',
201
+ },
202
+ aiExample: honoAiExample,
203
+ },
204
+ {
205
+ slug: 'vite-react',
206
+ name: 'Vite + React',
207
+ description: 'React SPA with Vite bundler',
208
+ createCommand: (dir) => ['bunx', 'create-vite@latest', dir, '--template', 'react-ts'],
209
+ dependencies: ['ai', '@ai-sdk/openai'],
210
+ scripts: {
211
+ deploy: 'agentuity deploy',
212
+ },
213
+ aiExample: viteReactAiExample,
214
+ landingPage: viteReactLandingPage,
215
+ },
216
+ ];
217
+
218
+ /**
219
+ * Find a framework scaffold by slug.
220
+ */
221
+ export function getFrameworkBySlug(slug: string): FrameworkScaffold | undefined {
222
+ return frameworkCatalog.find((f) => f.slug === slug);
223
+ }
@@ -118,38 +118,28 @@ export async function getDefaultProjectName(dir: string): Promise<string> {
118
118
  * @internal Exported for testing
119
119
  */
120
120
  export async function isValidProjectStructure(dir: string): Promise<boolean> {
121
- // Check 1: package.json with @agentuity/runtime and agentuity.config.ts
121
+ // Check 1: package.json exists (any JS/TS project is valid)
122
122
  const pkgPath = join(dir, 'package.json');
123
- const configPath = join(dir, 'agentuity.config.ts');
124
123
 
125
124
  if (await Bun.file(pkgPath).exists()) {
126
125
  try {
127
126
  const pkg = await Bun.file(pkgPath).json();
128
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
129
- if (deps['@agentuity/runtime'] && (await Bun.file(configPath).exists())) {
127
+ // Valid if it has a name and at least some structure
128
+ if (pkg.name || pkg.dependencies || pkg.devDependencies) {
130
129
  return true;
131
130
  }
132
131
  } catch {
133
- // Fall through to check child project
132
+ // Invalid package.json
134
133
  }
135
134
  }
136
135
 
137
- // Check 2: ./agentuity/ subdirectory exists with valid structure (parent project with child)
136
+ // Check 2: ./agentuity/ subdirectory exists with a package.json (parent project with child)
138
137
  const agentuityDir = join(dir, 'agentuity');
139
138
  if (existsSync(agentuityDir) && statSync(agentuityDir).isDirectory()) {
140
139
  const childPkgPath = join(agentuityDir, 'package.json');
141
- const childConfigPath = join(agentuityDir, 'agentuity.config.ts');
142
140
 
143
141
  if (await Bun.file(childPkgPath).exists()) {
144
- try {
145
- const childPkg = await Bun.file(childPkgPath).json();
146
- const childDeps = { ...childPkg.dependencies, ...childPkg.devDependencies };
147
- if (childDeps['@agentuity/runtime'] && (await Bun.file(childConfigPath).exists())) {
148
- return true;
149
- }
150
- } catch {
151
- // Invalid package.json in child - fall through
152
- }
142
+ return true;
153
143
  }
154
144
  }
155
145
 
@@ -648,9 +638,8 @@ export async function reconcileProject(opts: ReconcileOptions): Promise<Reconcil
648
638
  return {
649
639
  status: 'error',
650
640
  message:
651
- 'This directory does not appear to be a valid Agentuity project. ' +
652
- 'Expected agentuity.config.ts and @agentuity/runtime dependency, ' +
653
- 'or an agentuity/ subdirectory.',
641
+ 'This directory does not appear to be a valid project. ' +
642
+ 'Expected a package.json with project dependencies.',
654
643
  };
655
644
  }
656
645
 
@@ -743,9 +732,8 @@ export async function runProjectImport(opts: ReconcileOptions): Promise<Reconcil
743
732
  return {
744
733
  status: 'error',
745
734
  message:
746
- 'This directory does not appear to be a valid Agentuity project. ' +
747
- 'Expected agentuity.config.ts and @agentuity/runtime dependency, ' +
748
- 'or an agentuity/ subdirectory.',
735
+ 'This directory does not appear to be a valid project. ' +
736
+ 'Expected a package.json with project dependencies.',
749
737
  };
750
738
  }
751
739
 
@@ -31,7 +31,7 @@ import {
31
31
  getGithubToken,
32
32
  linkProjectToRepo,
33
33
  } from '../git/api';
34
- import { initGitRepo } from './download';
34
+ import { initGitRepo } from './scaffold';
35
35
 
36
36
  // ─── Structured Errors ───
37
37
 
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Framework scaffolding and augmentation.
3
+ *
4
+ * Replaces the old template download system. Instead of maintaining
5
+ * custom templates, we run the framework's official create CLI and
6
+ * then augment the result with Agentuity integration.
7
+ */
8
+
9
+ import { existsSync, mkdirSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ import type { Logger } from '@agentuity/core';
12
+ import * as tui from '../../tui';
13
+ import type { FrameworkScaffold } from './frameworks';
14
+
15
+ interface ScaffoldOptions {
16
+ /** Absolute path to the target directory */
17
+ dest: string;
18
+ /** The directory name (for display) */
19
+ dirName: string;
20
+ /** Selected framework */
21
+ framework: FrameworkScaffold;
22
+ /** Whether to include AI example */
23
+ includeAiExample: boolean;
24
+ /** Logger */
25
+ logger: Logger;
26
+ }
27
+
28
+ interface SetupOptions {
29
+ /** Absolute path to the project directory */
30
+ dest: string;
31
+ /** Human-readable project name */
32
+ projectName: string;
33
+ /** Whether to skip `bun install` */
34
+ noInstall: boolean;
35
+ /** Logger */
36
+ logger: Logger;
37
+ }
38
+
39
+ /**
40
+ * Run the framework's official create CLI to scaffold the project.
41
+ */
42
+ export async function scaffoldFramework(options: ScaffoldOptions): Promise<void> {
43
+ const { dest, dirName, framework, includeAiExample, logger } = options;
44
+
45
+ // Step 1: Run the framework's create command
46
+ const cmd = framework.createCommand(dirName);
47
+ logger.debug('Scaffolding with: %s', cmd.join(' '));
48
+
49
+ const parentDir = join(dest, '..');
50
+ mkdirSync(parentDir, { recursive: true });
51
+
52
+ const exitCode = await tui.runCommand({
53
+ command: `${framework.name} scaffolding`,
54
+ cwd: parentDir,
55
+ cmd,
56
+ clearOnSuccess: true,
57
+ });
58
+
59
+ if (exitCode !== 0) {
60
+ throw new Error(`Framework scaffolding failed (exit code ${exitCode})`);
61
+ }
62
+
63
+ if (!existsSync(dest)) {
64
+ throw new Error(`Scaffolding did not create expected directory: ${dest}`);
65
+ }
66
+
67
+ // Step 2: Augment with Agentuity integration
68
+ await augmentProject(dest, framework, includeAiExample, logger);
69
+ }
70
+
71
+ /**
72
+ * Augment a scaffolded project with Agentuity integration.
73
+ *
74
+ * - Adds @agentuity/cli as devDependency
75
+ * - Merges deploy/build scripts into package.json
76
+ * - Adds AI example files if requested
77
+ * - Generates AGENTS.md documentation
78
+ */
79
+ async function augmentProject(
80
+ dest: string,
81
+ framework: FrameworkScaffold,
82
+ includeAiExample: boolean,
83
+ logger: Logger
84
+ ): Promise<void> {
85
+ await tui.spinner({
86
+ type: 'progress',
87
+ message: '⚡ Adding Agentuity integration...',
88
+ clearOnSuccess: true,
89
+ callback: async (progress) => {
90
+ // Step 1: Merge package.json
91
+ await mergePackageJson(dest, framework);
92
+ progress(40);
93
+
94
+ // Step 2: Add AI example files
95
+ if (includeAiExample && framework.aiExample) {
96
+ const files = framework.aiExample();
97
+ for (const [relativePath, content] of Object.entries(files)) {
98
+ const filePath = join(dest, relativePath);
99
+ const dir = join(filePath, '..');
100
+ mkdirSync(dir, { recursive: true });
101
+ await Bun.write(filePath, content);
102
+ logger.debug('Created AI example: %s', relativePath);
103
+ }
104
+ }
105
+ progress(50);
106
+
107
+ // Step 3: Replace default landing page with Agentuity-branded page
108
+ if (framework.landingPage) {
109
+ const files = framework.landingPage();
110
+ for (const [relativePath, content] of Object.entries(files)) {
111
+ const filePath = join(dest, relativePath);
112
+ const dir = join(filePath, '..');
113
+ mkdirSync(dir, { recursive: true });
114
+ await Bun.write(filePath, content);
115
+ logger.debug('Created landing page: %s', relativePath);
116
+ }
117
+ }
118
+ progress(75);
119
+
120
+ // Step 4: Add .gitignore entries
121
+ await appendGitignore(dest);
122
+ progress(100);
123
+ },
124
+ });
125
+ }
126
+
127
+ /**
128
+ * Merge Agentuity dependencies and scripts into the project's package.json.
129
+ */
130
+ async function mergePackageJson(dest: string, framework: FrameworkScaffold): Promise<void> {
131
+ const pkgPath = join(dest, 'package.json');
132
+ const pkg = await Bun.file(pkgPath).json();
133
+
134
+ // Ensure sections exist
135
+ pkg.dependencies = pkg.dependencies ?? {};
136
+ pkg.devDependencies = pkg.devDependencies ?? {};
137
+ pkg.scripts = pkg.scripts ?? {};
138
+
139
+ // Add @agentuity/cli as devDependency
140
+ pkg.devDependencies['@agentuity/cli'] = 'latest';
141
+
142
+ // Add framework-specific dependencies
143
+ if (framework.dependencies) {
144
+ for (const dep of framework.dependencies) {
145
+ if (!pkg.dependencies[dep]) {
146
+ pkg.dependencies[dep] = 'latest';
147
+ }
148
+ }
149
+ }
150
+
151
+ // Add framework-specific devDependencies
152
+ if (framework.devDependencies) {
153
+ for (const dep of framework.devDependencies) {
154
+ if (!pkg.devDependencies[dep]) {
155
+ pkg.devDependencies[dep] = 'latest';
156
+ }
157
+ }
158
+ }
159
+
160
+ // Merge scripts (framework-specific scripts win)
161
+ if (framework.scripts) {
162
+ for (const [name, script] of Object.entries(framework.scripts)) {
163
+ pkg.scripts[name] = script;
164
+ }
165
+ }
166
+
167
+ await Bun.write(pkgPath, JSON.stringify(pkg, null, '\t') + '\n');
168
+ }
169
+
170
+ /**
171
+ * Append Agentuity-specific entries to .gitignore.
172
+ */
173
+ async function appendGitignore(dest: string): Promise<void> {
174
+ const gitignorePath = join(dest, '.gitignore');
175
+ const entries = ['.agentuity/', '.env', '.env.local', 'agentuity.json'];
176
+
177
+ let content = '';
178
+ if (existsSync(gitignorePath)) {
179
+ content = await Bun.file(gitignorePath).text();
180
+ }
181
+
182
+ const missing = entries.filter((entry) => !content.includes(entry));
183
+ if (missing.length > 0) {
184
+ const section = '\n# Agentuity\n' + missing.join('\n') + '\n';
185
+ await Bun.write(gitignorePath, content.trimEnd() + section);
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Set up the project after scaffolding: install deps, generate docs.
191
+ */
192
+ export async function setupProject(options: SetupOptions): Promise<{ success: boolean }> {
193
+ const { dest, projectName, noInstall, logger } = options;
194
+ let hasError = false;
195
+
196
+ tui.info(`🔧 Setting up ${projectName}...`);
197
+
198
+ // Install dependencies (the framework CLI may have already done this,
199
+ // but we need to install our added deps)
200
+ if (!noInstall) {
201
+ const exitCode = await tui.runCommand({
202
+ command: 'bun install',
203
+ cwd: dest,
204
+ cmd: ['bun', 'install'],
205
+ clearOnSuccess: true,
206
+ });
207
+ if (exitCode !== 0) {
208
+ logger.error('Failed to install dependencies');
209
+ hasError = true;
210
+ }
211
+ }
212
+
213
+ return { success: !hasError };
214
+ }
215
+
216
+ // ─── Git Initialization ──────────────────────────────────────────────────────
217
+
218
+ interface InitGitRepoOptions {
219
+ /** Project name (e.g. "My App") */
220
+ projectName?: string;
221
+ /** Where the project came from (e.g. "Next.js") */
222
+ source?: string;
223
+ /** Git commit author */
224
+ author?: { name: string; email: string };
225
+ }
226
+
227
+ /**
228
+ * Initialize a git repository and create the initial commit.
229
+ */
230
+ export async function initGitRepo(dest: string, options?: InitGitRepoOptions): Promise<void> {
231
+ // Safety: refuse to init if .git already exists (prevents clobbering existing repos)
232
+ if (existsSync(join(dest, '.git'))) {
233
+ // Framework CLI may have already initialized git — skip
234
+ return;
235
+ }
236
+
237
+ const { isGitAvailable, getDefaultBranch } = await import('../../git-helper');
238
+ const gitAvailable = await isGitAvailable();
239
+
240
+ if (gitAvailable) {
241
+ const defaultBranch = (await getDefaultBranch()) || 'main';
242
+
243
+ await tui.runCommand({
244
+ command: `git init -b ${defaultBranch}`,
245
+ cwd: dest,
246
+ cmd: ['git', 'init', '-b', defaultBranch],
247
+ clearOnSuccess: true,
248
+ });
249
+
250
+ // Configure git user in CI/sandbox environments
251
+ if (process.env.CI || process.env.AGENTUITY_SANDBOX_ID) {
252
+ const cfgEmail = options?.author?.email ?? 'bot@agentuity.com';
253
+ const cfgName = options?.author?.name ?? 'Agentuity';
254
+
255
+ await tui.runCommand({
256
+ command: 'git config user.email',
257
+ cwd: dest,
258
+ cmd: ['git', 'config', 'user.email', cfgEmail],
259
+ clearOnSuccess: true,
260
+ });
261
+
262
+ await tui.runCommand({
263
+ command: 'git config user.name',
264
+ cwd: dest,
265
+ cmd: ['git', 'config', 'user.name', cfgName],
266
+ clearOnSuccess: true,
267
+ });
268
+ }
269
+
270
+ await tui.runCommand({
271
+ command: 'git add .',
272
+ cwd: dest,
273
+ cmd: ['git', 'add', '.'],
274
+ clearOnSuccess: true,
275
+ });
276
+
277
+ const authorName = options?.author?.name ?? 'Agentuity';
278
+ const authorEmail = options?.author?.email ?? 'bot@agentuity.com';
279
+ const authorStr = `${authorName} <${authorEmail}>`;
280
+
281
+ await tui.runCommand({
282
+ command: 'git commit',
283
+ cwd: dest,
284
+ cmd: [
285
+ 'git',
286
+ '-c',
287
+ 'commit.gpgsign=false',
288
+ 'commit',
289
+ `--author=${authorStr}`,
290
+ '-m',
291
+ 'Initial Setup',
292
+ ],
293
+ env: {
294
+ GIT_COMMITTER_NAME: authorName,
295
+ GIT_COMMITTER_EMAIL: authorEmail,
296
+ },
297
+ clearOnSuccess: true,
298
+ });
299
+ }
300
+ }