@agentuity/cli 2.0.11 → 3.0.0-alpha.1

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,71 @@
1
+ /**
2
+ * Build adapter types.
3
+ *
4
+ * Adapters know how to build a specific framework and package the result.
5
+ * They receive a DetectedFramework and produce a BuildResult.
6
+ */
7
+ import type { DetectedFramework, PackageJsonData } from '../detect/types';
8
+ import type { Logger, DeployOptions } from '../../../types';
9
+ import type { BuildReportCollector } from '../../../build-report';
10
+ /**
11
+ * Result of a successful build.
12
+ */
13
+ export interface BuildResult {
14
+ /** Absolute path to the build output directory */
15
+ outputDir: string;
16
+ /** The start command to run the application */
17
+ startCommand?: string;
18
+ /** Server entrypoint file (relative to outputDir) */
19
+ serverEntry?: string;
20
+ /** Static/CDN assets directory (absolute path), for CDN upload enumeration */
21
+ staticDir?: string;
22
+ /** Port the app listens on */
23
+ port?: number;
24
+ /** Build duration in milliseconds */
25
+ duration: number;
26
+ /** Human-readable build log lines */
27
+ logs: string[];
28
+ }
29
+ /**
30
+ * Options passed to a build adapter.
31
+ */
32
+ export interface BuildAdapterOptions {
33
+ /** Absolute path to the project root */
34
+ projectDir: string;
35
+ /** Detected framework info */
36
+ framework: DetectedFramework;
37
+ /** Parsed package.json */
38
+ packageJson: PackageJsonData;
39
+ /** Absolute path to write build output */
40
+ outputDir: string;
41
+ /** Logger instance */
42
+ logger: Logger;
43
+ /** Build report collector for structured error reporting */
44
+ collector?: BuildReportCollector;
45
+ /** Development mode (less minification, inline sourcemaps) */
46
+ dev?: boolean;
47
+ /** Project ID (for Agentuity metadata) */
48
+ projectId?: string;
49
+ /** Org ID (for Agentuity metadata) */
50
+ orgId?: string;
51
+ /** Region (for Agentuity metadata) */
52
+ region?: string;
53
+ /** Deployment ID (for Agentuity metadata) */
54
+ deploymentId?: string;
55
+ /** Deployment options from CLI (git info, trigger, etc.) */
56
+ deploymentOptions?: DeployOptions;
57
+ /** Deployment config from agentuity.json (resources, mode, dependencies, domains) */
58
+ deploymentConfig?: Record<string, unknown>;
59
+ }
60
+ /**
61
+ * A build adapter that knows how to build a specific framework.
62
+ */
63
+ export interface BuildAdapter {
64
+ /** Framework this adapter handles */
65
+ name: string;
66
+ /**
67
+ * Run the build for this framework.
68
+ */
69
+ build(options: BuildAdapterOptions): Promise<BuildResult>;
70
+ }
71
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IAEjB,qCAAqC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAE7B,0BAA0B;IAC1B,WAAW,EAAE,eAAe,CAAC;IAE7B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAElB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,4DAA4D;IAC5D,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAEjC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAElC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Build adapter types.
3
+ *
4
+ * Adapters know how to build a specific framework and package the result.
5
+ * They receive a DetectedFramework and produce a BuildResult.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/cmd/build/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Framework detection engine.
3
+ *
4
+ * Evaluates detector rules from the framework database against a real project
5
+ * directory. Handles three rule types:
6
+ * - matchPackage: check if package exists in dependencies/devDependencies
7
+ * - path: check if a file exists at the given path
8
+ * - path + matchContent: check if a file exists AND its content matches a regex
9
+ *
10
+ * The `every` array requires ALL rules to match.
11
+ * The `some` array requires at least ONE rule to match.
12
+ * If both are present, both conditions must be satisfied.
13
+ */
14
+ import type { FrameworkDefinition } from './frameworks';
15
+ import type { PackageJsonData } from './types';
16
+ /**
17
+ * Run detection against the framework database.
18
+ * Returns the first matching framework definition, or null.
19
+ *
20
+ * The framework list is evaluated in order — more specific frameworks
21
+ * should be listed before generic ones.
22
+ */
23
+ export declare function detectFromDatabase(projectDir: string, pkg: PackageJsonData, frameworkList: FrameworkDefinition[]): Promise<FrameworkDefinition | null>;
24
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA4E/C;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,eAAe,EACpB,aAAa,EAAE,mBAAmB,EAAE,GAClC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAOrC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Framework detection engine.
3
+ *
4
+ * Evaluates detector rules from the framework database against a real project
5
+ * directory. Handles three rule types:
6
+ * - matchPackage: check if package exists in dependencies/devDependencies
7
+ * - path: check if a file exists at the given path
8
+ * - path + matchContent: check if a file exists AND its content matches a regex
9
+ *
10
+ * The `every` array requires ALL rules to match.
11
+ * The `some` array requires at least ONE rule to match.
12
+ * If both are present, both conditions must be satisfied.
13
+ */
14
+ import { join } from 'node:path';
15
+ /**
16
+ * Check if a single detector rule matches the project.
17
+ */
18
+ async function matchRule(rule, projectDir, pkg) {
19
+ // Package match: check dependencies and devDependencies
20
+ if (rule.matchPackage) {
21
+ const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
22
+ return rule.matchPackage in allDeps;
23
+ }
24
+ // File path match (with optional content matching)
25
+ if (rule.path) {
26
+ const filePath = join(projectDir, rule.path);
27
+ const file = Bun.file(filePath);
28
+ if (!(await file.exists()))
29
+ return false;
30
+ // If matchContent is specified, check file content against regex
31
+ if (rule.matchContent) {
32
+ try {
33
+ const content = await file.text();
34
+ return new RegExp(rule.matchContent).test(content);
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ // File exists, no content check needed
41
+ return true;
42
+ }
43
+ return false;
44
+ }
45
+ /**
46
+ * Check if a framework definition matches the project.
47
+ */
48
+ async function matchFramework(fw, projectDir, pkg) {
49
+ const { detectors } = fw;
50
+ if (!detectors)
51
+ return false;
52
+ // Check 'every' rules: ALL must match
53
+ if (detectors.every && detectors.every.length > 0) {
54
+ for (const rule of detectors.every) {
55
+ if (!(await matchRule(rule, projectDir, pkg))) {
56
+ return false;
57
+ }
58
+ }
59
+ }
60
+ // Check 'some' rules: at least ONE must match
61
+ if (detectors.some && detectors.some.length > 0) {
62
+ let anyMatch = false;
63
+ for (const rule of detectors.some) {
64
+ if (await matchRule(rule, projectDir, pkg)) {
65
+ anyMatch = true;
66
+ break;
67
+ }
68
+ }
69
+ if (!anyMatch)
70
+ return false;
71
+ }
72
+ // If we have 'every' rules and they all matched (and 'some' either matched or wasn't present), pass
73
+ // If we only have 'some' rules and one matched, pass
74
+ return true;
75
+ }
76
+ /**
77
+ * Run detection against the framework database.
78
+ * Returns the first matching framework definition, or null.
79
+ *
80
+ * The framework list is evaluated in order — more specific frameworks
81
+ * should be listed before generic ones.
82
+ */
83
+ export async function detectFromDatabase(projectDir, pkg, frameworkList) {
84
+ for (const fw of frameworkList) {
85
+ if (await matchFramework(fw, projectDir, pkg)) {
86
+ return fw;
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC;;GAEG;AACH,KAAK,UAAU,SAAS,CACvB,IAAkB,EAClB,UAAkB,EAClB,GAAoB;IAEpB,wDAAwD;IACxD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;IACrC,CAAC;IAED,mDAAmD;IACnD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzC,iEAAiE;QACjE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,uCAAuC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC5B,EAAuB,EACvB,UAAkB,EAClB,GAAoB;IAEpB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,sCAAsC;IACtC,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;IACF,CAAC;IAED,8CAA8C;IAC9C,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5C,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACP,CAAC;QACF,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;IAC7B,CAAC;IAED,oGAAoG;IACpG,qDAAqD;IACrD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAkB,EAClB,GAAoB,EACpB,aAAoC;IAEpC,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,MAAM,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Framework detection database.
3
+ *
4
+ * Package detection rules (which npm packages and config files identify each
5
+ * framework) were informed by the @vercel/frameworks package (Apache-2.0,
6
+ * Copyright 2017 Vercel Inc, github.com/vercel/vercel/tree/main/packages/frameworks).
7
+ *
8
+ * All Vercel-specific properties (logos, CDN URLs, runtime config, routing
9
+ * rules, deploy targets) have been stripped. Only generic framework facts
10
+ * remain: package names, config filenames, default build commands, and output
11
+ * directories as documented by each framework's own docs.
12
+ *
13
+ * Framework entries are ordered by specificity — more specific frameworks
14
+ * (e.g., SvelteKit) should be listed before generic ones (e.g., Vite).
15
+ */
16
+ export interface DetectorRule {
17
+ /** Match a package in dependencies or devDependencies */
18
+ matchPackage?: string;
19
+ /** Match a file path (relative to project root) */
20
+ path?: string;
21
+ /** Regex pattern to match against file content (requires `path`) */
22
+ matchContent?: string;
23
+ }
24
+ export interface FrameworkDefinition {
25
+ /** Human-readable name */
26
+ name: string;
27
+ /** Unique slug identifier */
28
+ slug: string;
29
+ /** Default build command (null = no build step) */
30
+ buildCommand: string | null;
31
+ /** Default output directory for static assets */
32
+ outputDirectory: string | null;
33
+ /**
34
+ * Static/CDN asset directory, relative to the project root.
35
+ *
36
+ * Points to the directory containing files suitable for CDN upload
37
+ * (JS bundles, CSS, images, fonts, etc.) after the build runs.
38
+ *
39
+ * - `null` means the entire outputDirectory IS the static output
40
+ * (pure static-site generators, SPAs) — resolved to outputDirectory.
41
+ * - A string path (e.g., `.next/static`, `.output/public`) is resolved
42
+ * relative to the project root, since some frameworks put static
43
+ * assets outside their main output directory.
44
+ * - `undefined` (omitted) means no known static asset directory.
45
+ */
46
+ staticDir?: string | null;
47
+ /** Environment variable prefix for browser-inlined values */
48
+ envPrefix?: string;
49
+ /**
50
+ * Detection rules.
51
+ * - `every`: ALL must match for the framework to be detected.
52
+ * - `some`: at least ONE must match (in addition to all `every` rules).
53
+ */
54
+ detectors: {
55
+ every?: DetectorRule[];
56
+ some?: DetectorRule[];
57
+ };
58
+ }
59
+ /**
60
+ * JS/TS framework definitions for detection.
61
+ *
62
+ * Order matters — first match wins. More specific frameworks come first,
63
+ * generic catch-alls (Vite, Parcel) come last.
64
+ */
65
+ export declare const frameworkDefinitions: FrameworkDefinition[];
66
+ //# sourceMappingURL=frameworks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworks.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/frameworks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,YAAY;IAC5B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IACnC,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iDAAiD;IACjD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,EAAE;QACV,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;KACtB,CAAC;CACF;AAID;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,EAuQrD,CAAC"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Framework detection database.
3
+ *
4
+ * Package detection rules (which npm packages and config files identify each
5
+ * framework) were informed by the @vercel/frameworks package (Apache-2.0,
6
+ * Copyright 2017 Vercel Inc, github.com/vercel/vercel/tree/main/packages/frameworks).
7
+ *
8
+ * All Vercel-specific properties (logos, CDN URLs, runtime config, routing
9
+ * rules, deploy targets) have been stripped. Only generic framework facts
10
+ * remain: package names, config filenames, default build commands, and output
11
+ * directories as documented by each framework's own docs.
12
+ *
13
+ * Framework entries are ordered by specificity — more specific frameworks
14
+ * (e.g., SvelteKit) should be listed before generic ones (e.g., Vite).
15
+ */
16
+ // ─── Framework Database ──────────────────────────────────────────────────────
17
+ /**
18
+ * JS/TS framework definitions for detection.
19
+ *
20
+ * Order matters — first match wins. More specific frameworks come first,
21
+ * generic catch-alls (Vite, Parcel) come last.
22
+ */
23
+ export const frameworkDefinitions = [
24
+ // ── Meta-frameworks (most specific, check first) ──
25
+ {
26
+ name: 'Next.js',
27
+ slug: 'nextjs',
28
+ buildCommand: 'next build',
29
+ outputDirectory: null, // Dynamic — reads from next.config
30
+ staticDir: '.next/static', // Relative to project root (adapter handles standalone copy)
31
+ envPrefix: 'NEXT_PUBLIC_',
32
+ detectors: {
33
+ every: [{ matchPackage: 'next' }],
34
+ },
35
+ },
36
+ {
37
+ name: 'Nuxt',
38
+ slug: 'nuxt',
39
+ buildCommand: 'nuxt build',
40
+ outputDirectory: 'dist',
41
+ staticDir: '.output/public', // Nitro output; static assets served from here
42
+ envPrefix: 'NUXT_ENV_',
43
+ detectors: {
44
+ some: [
45
+ { matchPackage: 'nuxt' },
46
+ { matchPackage: 'nuxt3' },
47
+ { matchPackage: 'nuxt-edge' },
48
+ { matchPackage: 'nuxt-nightly' },
49
+ ],
50
+ },
51
+ },
52
+ {
53
+ name: 'Remix',
54
+ slug: 'remix',
55
+ buildCommand: 'remix build',
56
+ outputDirectory: 'public',
57
+ staticDir: 'public/build', // Built browser bundles
58
+ detectors: {
59
+ some: [
60
+ { matchPackage: '@remix-run/dev' },
61
+ { path: 'remix.config.js' },
62
+ { path: 'remix.config.mjs' },
63
+ ],
64
+ },
65
+ },
66
+ {
67
+ name: 'React Router',
68
+ slug: 'react-router',
69
+ buildCommand: 'react-router build',
70
+ outputDirectory: 'build',
71
+ staticDir: 'build/client', // Client-side assets
72
+ detectors: {
73
+ some: [
74
+ { path: 'react-router.config.js' },
75
+ { path: 'react-router.config.ts' },
76
+ { path: 'vite.config.js', matchContent: '@react-router/dev/vite' },
77
+ { path: 'vite.config.ts', matchContent: '@react-router/dev/vite' },
78
+ ],
79
+ },
80
+ },
81
+ {
82
+ name: 'SvelteKit',
83
+ slug: 'sveltekit',
84
+ buildCommand: 'vite build',
85
+ outputDirectory: 'public',
86
+ staticDir: 'build/client', // adapter-node client assets
87
+ detectors: {
88
+ every: [
89
+ {
90
+ path: 'package.json',
91
+ matchContent: '"(dev)?(d|D)ependencies":\\s*{[^}]*"@sveltejs\\/kit":\\s*".+?"[^}]*}',
92
+ },
93
+ ],
94
+ },
95
+ },
96
+ {
97
+ name: 'Astro',
98
+ slug: 'astro',
99
+ buildCommand: 'astro build',
100
+ outputDirectory: 'dist',
101
+ staticDir: null, // Entire dist/ is static (SSG default); dist/client/ for SSR
102
+ envPrefix: 'PUBLIC_',
103
+ detectors: {
104
+ every: [{ matchPackage: 'astro' }],
105
+ },
106
+ },
107
+ {
108
+ name: 'SolidStart',
109
+ slug: 'solidstart',
110
+ buildCommand: 'vinxi build',
111
+ outputDirectory: '.output',
112
+ staticDir: '.output/public', // Nitro-based static assets
113
+ envPrefix: 'VITE_',
114
+ detectors: {
115
+ every: [{ matchPackage: 'solid-js' }, { matchPackage: '@solidjs/start' }],
116
+ },
117
+ },
118
+ {
119
+ name: 'TanStack Start',
120
+ slug: 'tanstack-start',
121
+ buildCommand: 'vite build',
122
+ outputDirectory: 'dist',
123
+ staticDir: '.output/public', // Nitro-based; similar to Nuxt/SolidStart
124
+ detectors: {
125
+ every: [{ matchPackage: '@tanstack/router-plugin' }, { matchPackage: 'nitro' }],
126
+ },
127
+ },
128
+ {
129
+ name: 'RedwoodJS',
130
+ slug: 'redwoodjs',
131
+ buildCommand: 'yarn rw build',
132
+ outputDirectory: null, // Dynamic — depends on target
133
+ staticDir: 'web/dist', // Redwood web-side build output
134
+ envPrefix: 'REDWOOD_ENV_',
135
+ detectors: {
136
+ every: [{ matchPackage: '@redwoodjs/core' }],
137
+ },
138
+ },
139
+ // ── Static site generators ──
140
+ {
141
+ name: 'Gatsby.js',
142
+ slug: 'gatsby',
143
+ buildCommand: 'gatsby build',
144
+ outputDirectory: 'public',
145
+ staticDir: null, // Entire public/ is static output
146
+ envPrefix: 'GATSBY_',
147
+ detectors: {
148
+ every: [{ matchPackage: 'gatsby' }],
149
+ },
150
+ },
151
+ {
152
+ name: 'Eleventy',
153
+ slug: 'eleventy',
154
+ buildCommand: 'npx @11ty/eleventy',
155
+ outputDirectory: '_site',
156
+ staticDir: null, // Entire _site/ is static output
157
+ detectors: {
158
+ every: [{ matchPackage: '@11ty/eleventy' }],
159
+ },
160
+ },
161
+ {
162
+ name: 'VitePress',
163
+ slug: 'vitepress',
164
+ buildCommand: 'vitepress build docs',
165
+ outputDirectory: 'docs/.vitepress/dist',
166
+ staticDir: null, // Entire output is static
167
+ detectors: {
168
+ every: [{ matchPackage: 'vitepress' }],
169
+ },
170
+ },
171
+ {
172
+ name: 'VuePress',
173
+ slug: 'vuepress',
174
+ buildCommand: 'vuepress build src',
175
+ outputDirectory: 'src/.vuepress/dist',
176
+ staticDir: null, // Entire output is static
177
+ detectors: {
178
+ every: [{ matchPackage: 'vuepress' }],
179
+ },
180
+ },
181
+ {
182
+ name: 'Docusaurus',
183
+ slug: 'docusaurus',
184
+ buildCommand: 'docusaurus build',
185
+ outputDirectory: 'build',
186
+ staticDir: null, // Entire build/ is static output
187
+ detectors: {
188
+ some: [{ matchPackage: '@docusaurus/core' }],
189
+ },
190
+ },
191
+ {
192
+ name: 'Hexo',
193
+ slug: 'hexo',
194
+ buildCommand: 'hexo generate',
195
+ outputDirectory: 'public',
196
+ staticDir: null, // Entire public/ is static output
197
+ detectors: {
198
+ every: [{ matchPackage: 'hexo' }],
199
+ },
200
+ },
201
+ // ── UI frameworks (with CLI build) ──
202
+ {
203
+ name: 'Angular',
204
+ slug: 'angular',
205
+ buildCommand: 'ng build',
206
+ outputDirectory: 'dist',
207
+ staticDir: null, // Entire dist/ is static output (browser subfolder in v17+)
208
+ detectors: {
209
+ every: [{ matchPackage: '@angular/cli' }],
210
+ },
211
+ },
212
+ {
213
+ name: 'Vue.js',
214
+ slug: 'vue',
215
+ buildCommand: 'vue-cli-service build',
216
+ outputDirectory: 'dist',
217
+ staticDir: null, // Entire dist/ is static output
218
+ envPrefix: 'VUE_APP_',
219
+ detectors: {
220
+ every: [{ matchPackage: '@vue/cli-service' }],
221
+ },
222
+ },
223
+ {
224
+ name: 'Create React App',
225
+ slug: 'create-react-app',
226
+ buildCommand: 'react-scripts build',
227
+ outputDirectory: 'build',
228
+ staticDir: null, // Entire build/ is static output
229
+ envPrefix: 'REACT_APP_',
230
+ detectors: {
231
+ some: [{ matchPackage: 'react-scripts' }, { matchPackage: 'react-dev-utils' }],
232
+ },
233
+ },
234
+ {
235
+ name: 'Preact',
236
+ slug: 'preact',
237
+ buildCommand: 'preact build',
238
+ outputDirectory: 'build',
239
+ staticDir: null, // Entire build/ is static output
240
+ detectors: {
241
+ every: [{ matchPackage: 'preact-cli' }],
242
+ },
243
+ },
244
+ // ── Server frameworks (no default build step) ──
245
+ {
246
+ name: 'Nitro',
247
+ slug: 'nitro',
248
+ buildCommand: 'nitro build',
249
+ outputDirectory: 'dist',
250
+ staticDir: '.output/public', // Nitro static assets
251
+ detectors: {
252
+ some: [{ matchPackage: 'nitropack' }, { matchPackage: 'nitro' }],
253
+ },
254
+ },
255
+ // ── Generic bundlers (least specific, check last) ──
256
+ {
257
+ name: 'Vite',
258
+ slug: 'vite',
259
+ buildCommand: 'vite build',
260
+ outputDirectory: 'dist',
261
+ staticDir: null, // Entire dist/ is static output
262
+ envPrefix: 'VITE_',
263
+ detectors: {
264
+ every: [{ matchPackage: 'vite' }],
265
+ },
266
+ },
267
+ {
268
+ name: 'Parcel',
269
+ slug: 'parcel',
270
+ buildCommand: 'parcel build',
271
+ outputDirectory: 'dist',
272
+ staticDir: null, // Entire dist/ is static output
273
+ detectors: {
274
+ every: [{ matchPackage: 'parcel' }],
275
+ },
276
+ },
277
+ ];
278
+ //# sourceMappingURL=frameworks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/frameworks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generic JS/TS project detector (fallback).
3
+ *
4
+ * This is the catch-all detector for projects that don't match any specific
5
+ * framework. It looks for:
6
+ * 1. A package.json with a "build" script
7
+ * 2. A "start" script or "main" field for the start command
8
+ *
9
+ * If neither is found, detection fails — we can't build what we don't understand.
10
+ */
11
+ import type { FrameworkDetector } from './types';
12
+ export declare const genericDetector: FrameworkDetector;
13
+ //# sourceMappingURL=generic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/detect/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,eAAe,EAAE,iBAuD7B,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Generic JS/TS project detector (fallback).
3
+ *
4
+ * This is the catch-all detector for projects that don't match any specific
5
+ * framework. It looks for:
6
+ * 1. A package.json with a "build" script
7
+ * 2. A "start" script or "main" field for the start command
8
+ *
9
+ * If neither is found, detection fails — we can't build what we don't understand.
10
+ */
11
+ import { join } from 'node:path';
12
+ import { detectPackageManager } from './util';
13
+ export const genericDetector = {
14
+ name: 'generic',
15
+ priority: 100, // Lowest priority — true fallback
16
+ async detect(projectDir, pkg) {
17
+ // Must have a package.json with something we can work with
18
+ if (!pkg.scripts?.build && !pkg.scripts?.start && !pkg.main) {
19
+ return null;
20
+ }
21
+ const pm = await detectPackageManager(projectDir);
22
+ // Determine build command
23
+ const buildCommand = pkg.scripts?.build ?? null;
24
+ if (!buildCommand) {
25
+ // No build script — might be a runtime-only project
26
+ // We'll still try if there's a start command
27
+ }
28
+ // Determine start command
29
+ let startCommand;
30
+ let serverEntry;
31
+ if (pkg.scripts?.start) {
32
+ startCommand = pkg.scripts.start;
33
+ }
34
+ else if (pkg.main) {
35
+ // Check if main entry exists
36
+ const mainFile = Bun.file(join(projectDir, pkg.main));
37
+ if (await mainFile.exists()) {
38
+ const runtime = pm === 'bun' ? 'bun' : 'node';
39
+ startCommand = `${runtime} ${pkg.main}`;
40
+ serverEntry = pkg.main;
41
+ }
42
+ }
43
+ // If no build and no start, we can't do anything
44
+ if (!buildCommand && !startCommand) {
45
+ return null;
46
+ }
47
+ // Detect runtime from engines field or package manager
48
+ const runtime = pkg.engines?.bun ? 'bun' : pm === 'bun' ? 'bun' : 'node';
49
+ return {
50
+ name: 'generic',
51
+ runtime,
52
+ packageManager: pm,
53
+ buildCommand: buildCommand ?? 'echo "No build step"',
54
+ buildOutput: '.', // Generic — build output could be anywhere
55
+ startCommand,
56
+ serverEntry,
57
+ port: 3000,
58
+ confidence: 'low',
59
+ };
60
+ },
61
+ };
62
+ //# sourceMappingURL=generic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../src/cmd/build/detect/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAsB;IACjD,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,GAAG,EAAE,kCAAkC;IAEjD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG;QAC3B,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAElD,0BAA0B;QAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,oDAAoD;YACpD,6CAA6C;QAC9C,CAAC;QAED,0BAA0B;QAC1B,IAAI,YAAgC,CAAC;QACrC,IAAI,WAA+B,CAAC;QAEpC,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACxB,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9C,YAAY,GAAG,GAAG,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACxC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;YACxB,CAAC;QACF,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,uDAAuD;QACvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAEzE,OAAO;YACN,IAAI,EAAE,SAAS;YACf,OAAO;YACP,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,YAAY,IAAI,sBAAsB;YACpD,WAAW,EAAE,GAAG,EAAE,2CAA2C;YAC7D,YAAY;YACZ,WAAW;YACX,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,KAAK;SACjB,CAAC;IACH,CAAC;CACD,CAAC"}