@agentuity/cli 2.0.10 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
  2. package/dist/cmd/ai/prompt/index.js +2 -7
  3. package/dist/cmd/ai/prompt/index.js.map +1 -1
  4. package/dist/cmd/build/adapters/generic.d.ts +29 -0
  5. package/dist/cmd/build/adapters/generic.d.ts.map +1 -0
  6. package/dist/cmd/build/adapters/generic.js +190 -0
  7. package/dist/cmd/build/adapters/generic.js.map +1 -0
  8. package/dist/cmd/build/adapters/index.d.ts +15 -0
  9. package/dist/cmd/build/adapters/index.d.ts.map +1 -0
  10. package/dist/cmd/build/adapters/index.js +24 -0
  11. package/dist/cmd/build/adapters/index.js.map +1 -0
  12. package/dist/cmd/build/adapters/nextjs.d.ts +11 -0
  13. package/dist/cmd/build/adapters/nextjs.d.ts.map +1 -0
  14. package/dist/cmd/build/adapters/nextjs.js +118 -0
  15. package/dist/cmd/build/adapters/nextjs.js.map +1 -0
  16. package/dist/cmd/build/adapters/static-server.d.ts +23 -0
  17. package/dist/cmd/build/adapters/static-server.d.ts.map +1 -0
  18. package/dist/cmd/build/adapters/static-server.js +137 -0
  19. package/dist/cmd/build/adapters/static-server.js.map +1 -0
  20. package/dist/cmd/build/adapters/types.d.ts +71 -0
  21. package/dist/cmd/build/adapters/types.d.ts.map +1 -0
  22. package/dist/cmd/build/adapters/types.js +8 -0
  23. package/dist/cmd/build/adapters/types.js.map +1 -0
  24. package/dist/cmd/build/detect/engine.d.ts +24 -0
  25. package/dist/cmd/build/detect/engine.d.ts.map +1 -0
  26. package/dist/cmd/build/detect/engine.js +91 -0
  27. package/dist/cmd/build/detect/engine.js.map +1 -0
  28. package/dist/cmd/build/detect/frameworks.d.ts +66 -0
  29. package/dist/cmd/build/detect/frameworks.d.ts.map +1 -0
  30. package/dist/cmd/build/detect/frameworks.js +278 -0
  31. package/dist/cmd/build/detect/frameworks.js.map +1 -0
  32. package/dist/cmd/build/detect/generic.d.ts +13 -0
  33. package/dist/cmd/build/detect/generic.d.ts.map +1 -0
  34. package/dist/cmd/build/detect/generic.js +62 -0
  35. package/dist/cmd/build/detect/generic.js.map +1 -0
  36. package/dist/cmd/build/detect/index.d.ts +27 -0
  37. package/dist/cmd/build/detect/index.d.ts.map +1 -0
  38. package/dist/cmd/build/detect/index.js +76 -0
  39. package/dist/cmd/build/detect/index.js.map +1 -0
  40. package/dist/cmd/build/detect/types.d.ts +91 -0
  41. package/dist/cmd/build/detect/types.d.ts.map +1 -0
  42. package/dist/cmd/build/detect/types.js +9 -0
  43. package/dist/cmd/build/detect/types.js.map +1 -0
  44. package/dist/cmd/build/detect/util.d.ts +41 -0
  45. package/dist/cmd/build/detect/util.d.ts.map +1 -0
  46. package/dist/cmd/build/detect/util.js +101 -0
  47. package/dist/cmd/build/detect/util.js.map +1 -0
  48. package/dist/cmd/build/index.d.ts.map +1 -1
  49. package/dist/cmd/build/index.js +49 -22
  50. package/dist/cmd/build/index.js.map +1 -1
  51. package/dist/cmd/build/package/index.d.ts +30 -0
  52. package/dist/cmd/build/package/index.d.ts.map +1 -0
  53. package/dist/cmd/build/package/index.js +39 -0
  54. package/dist/cmd/build/package/index.js.map +1 -0
  55. package/dist/cmd/build/package/launch.d.ts +56 -0
  56. package/dist/cmd/build/package/launch.d.ts.map +1 -0
  57. package/dist/cmd/build/package/launch.js +56 -0
  58. package/dist/cmd/build/package/launch.js.map +1 -0
  59. package/dist/cmd/build/typecheck.d.ts.map +1 -1
  60. package/dist/cmd/build/typecheck.js +8 -0
  61. package/dist/cmd/build/typecheck.js.map +1 -1
  62. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  63. package/dist/cmd/cloud/deploy.js +63 -13
  64. package/dist/cmd/cloud/deploy.js.map +1 -1
  65. package/dist/cmd/coder/create.d.ts.map +1 -1
  66. package/dist/cmd/coder/create.js +18 -0
  67. package/dist/cmd/coder/create.js.map +1 -1
  68. package/dist/cmd/coder/index.d.ts.map +1 -1
  69. package/dist/cmd/coder/index.js +4 -0
  70. package/dist/cmd/coder/index.js.map +1 -1
  71. package/dist/cmd/coder/start.d.ts.map +1 -1
  72. package/dist/cmd/coder/start.js +49 -1
  73. package/dist/cmd/coder/start.js.map +1 -1
  74. package/dist/cmd/coder/update.d.ts.map +1 -1
  75. package/dist/cmd/coder/update.js +21 -1
  76. package/dist/cmd/coder/update.js.map +1 -1
  77. package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
  78. package/dist/cmd/coder/workspace/create.js +17 -1
  79. package/dist/cmd/coder/workspace/create.js.map +1 -1
  80. package/dist/cmd/coder/workspace/list.js +2 -2
  81. package/dist/cmd/coder/workspace/list.js.map +1 -1
  82. package/dist/cmd/dev/index.d.ts +9 -0
  83. package/dist/cmd/dev/index.d.ts.map +1 -1
  84. package/dist/cmd/dev/index.js +127 -923
  85. package/dist/cmd/dev/index.js.map +1 -1
  86. package/dist/cmd/project/auth/shared.d.ts.map +1 -1
  87. package/dist/cmd/project/auth/shared.js +14 -38
  88. package/dist/cmd/project/auth/shared.js.map +1 -1
  89. package/dist/cmd/project/create.d.ts.map +1 -1
  90. package/dist/cmd/project/create.js +12 -19
  91. package/dist/cmd/project/create.js.map +1 -1
  92. package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
  93. package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
  94. package/dist/cmd/project/frameworks-ai-examples.js +160 -0
  95. package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
  96. package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
  97. package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
  98. package/dist/cmd/project/frameworks-landing-pages.js +242 -0
  99. package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
  100. package/dist/cmd/project/frameworks.d.ts +58 -0
  101. package/dist/cmd/project/frameworks.d.ts.map +1 -0
  102. package/dist/cmd/project/frameworks.js +152 -0
  103. package/dist/cmd/project/frameworks.js.map +1 -0
  104. package/dist/cmd/project/reconcile.d.ts.map +1 -1
  105. package/dist/cmd/project/reconcile.js +10 -23
  106. package/dist/cmd/project/reconcile.js.map +1 -1
  107. package/dist/cmd/project/remote-import.js +1 -1
  108. package/dist/cmd/project/scaffold.d.ts +58 -0
  109. package/dist/cmd/project/scaffold.d.ts.map +1 -0
  110. package/dist/cmd/project/scaffold.js +223 -0
  111. package/dist/cmd/project/scaffold.js.map +1 -0
  112. package/dist/cmd/project/template-flow.d.ts +8 -4
  113. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  114. package/dist/cmd/project/template-flow.js +93 -144
  115. package/dist/cmd/project/template-flow.js.map +1 -1
  116. package/dist/deploy-metadata.d.ts +49 -0
  117. package/dist/deploy-metadata.d.ts.map +1 -0
  118. package/dist/deploy-metadata.js +183 -0
  119. package/dist/deploy-metadata.js.map +1 -0
  120. package/dist/index.d.ts +1 -1
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js.map +1 -1
  123. package/dist/types.d.ts +25 -31
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/types.js.map +1 -1
  126. package/package.json +13 -8
  127. package/src/cmd/ai/prompt/index.ts +2 -7
  128. package/src/cmd/build/adapters/generic.ts +239 -0
  129. package/src/cmd/build/adapters/index.ts +30 -0
  130. package/src/cmd/build/adapters/nextjs.ts +146 -0
  131. package/src/cmd/build/adapters/static-server.ts +143 -0
  132. package/src/cmd/build/adapters/types.ts +93 -0
  133. package/src/cmd/build/detect/engine.ts +111 -0
  134. package/src/cmd/build/detect/frameworks.ts +335 -0
  135. package/src/cmd/build/detect/generic.ts +71 -0
  136. package/src/cmd/build/detect/index.ts +122 -0
  137. package/src/cmd/build/detect/types.ts +109 -0
  138. package/src/cmd/build/detect/util.ts +104 -0
  139. package/src/cmd/build/index.ts +64 -24
  140. package/src/cmd/build/package/index.ts +66 -0
  141. package/src/cmd/build/package/launch.ts +104 -0
  142. package/src/cmd/build/typecheck.ts +9 -0
  143. package/src/cmd/cloud/deploy.ts +86 -13
  144. package/src/cmd/coder/create.ts +24 -1
  145. package/src/cmd/coder/index.ts +4 -0
  146. package/src/cmd/coder/start.ts +60 -1
  147. package/src/cmd/coder/update.ts +18 -1
  148. package/src/cmd/coder/workspace/create.ts +20 -2
  149. package/src/cmd/coder/workspace/list.ts +2 -2
  150. package/src/cmd/dev/index.ts +155 -1059
  151. package/src/cmd/project/auth/shared.ts +14 -39
  152. package/src/cmd/project/create.ts +14 -19
  153. package/src/cmd/project/frameworks-ai-examples.ts +166 -0
  154. package/src/cmd/project/frameworks-landing-pages.ts +267 -0
  155. package/src/cmd/project/frameworks.ts +223 -0
  156. package/src/cmd/project/reconcile.ts +10 -22
  157. package/src/cmd/project/remote-import.ts +1 -1
  158. package/src/cmd/project/scaffold.ts +300 -0
  159. package/src/cmd/project/template-flow.ts +102 -156
  160. package/src/deploy-metadata.ts +253 -0
  161. package/src/index.ts +0 -2
  162. package/src/types.ts +0 -31
  163. package/dist/agents-docs.d.ts +0 -23
  164. package/dist/agents-docs.d.ts.map +0 -1
  165. package/dist/agents-docs.js +0 -56
  166. package/dist/agents-docs.js.map +0 -1
  167. package/dist/cmd/ai/prompt/agent.d.ts +0 -10
  168. package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
  169. package/dist/cmd/ai/prompt/agent.js +0 -28
  170. package/dist/cmd/ai/prompt/agent.js.map +0 -1
  171. package/dist/cmd/build/app-router-detector.d.ts +0 -39
  172. package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
  173. package/dist/cmd/build/app-router-detector.js +0 -229
  174. package/dist/cmd/build/app-router-detector.js.map +0 -1
  175. package/dist/cmd/build/format-schema.d.ts +0 -6
  176. package/dist/cmd/build/format-schema.d.ts.map +0 -1
  177. package/dist/cmd/build/format-schema.js +0 -60
  178. package/dist/cmd/build/format-schema.js.map +0 -1
  179. package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
  180. package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
  181. package/dist/cmd/build/vite/agent-discovery.js +0 -263
  182. package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
  183. package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
  184. package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
  185. package/dist/cmd/build/vite/beacon-plugin.js +0 -137
  186. package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
  187. package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
  188. package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
  189. package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
  190. package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
  191. package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
  192. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
  193. package/dist/cmd/build/vite/bun-dev-server.js +0 -340
  194. package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
  195. package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
  196. package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
  197. package/dist/cmd/build/vite/bundle-files.js +0 -107
  198. package/dist/cmd/build/vite/bundle-files.js.map +0 -1
  199. package/dist/cmd/build/vite/config-loader.d.ts +0 -29
  200. package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
  201. package/dist/cmd/build/vite/config-loader.js +0 -57
  202. package/dist/cmd/build/vite/config-loader.js.map +0 -1
  203. package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
  204. package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
  205. package/dist/cmd/build/vite/db-rewrite.js +0 -169
  206. package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
  207. package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
  208. package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
  209. package/dist/cmd/build/vite/docs-generator.js +0 -97
  210. package/dist/cmd/build/vite/docs-generator.js.map +0 -1
  211. package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
  212. package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
  213. package/dist/cmd/build/vite/env-types-generator.js +0 -110
  214. package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
  215. package/dist/cmd/build/vite/index.d.ts +0 -3
  216. package/dist/cmd/build/vite/index.d.ts.map +0 -1
  217. package/dist/cmd/build/vite/index.js +0 -4
  218. package/dist/cmd/build/vite/index.js.map +0 -1
  219. package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
  220. package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
  221. package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
  222. package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
  223. package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
  224. package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
  225. package/dist/cmd/build/vite/metadata-generator.js +0 -575
  226. package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
  227. package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
  228. package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
  229. package/dist/cmd/build/vite/prompt-generator.js +0 -123
  230. package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
  231. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
  232. package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
  233. package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
  234. package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
  235. package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
  236. package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
  237. package/dist/cmd/build/vite/route-discovery.js +0 -187
  238. package/dist/cmd/build/vite/route-discovery.js.map +0 -1
  239. package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
  240. package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
  241. package/dist/cmd/build/vite/server-bundler.js +0 -388
  242. package/dist/cmd/build/vite/server-bundler.js.map +0 -1
  243. package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
  244. package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
  245. package/dist/cmd/build/vite/static-renderer.js +0 -188
  246. package/dist/cmd/build/vite/static-renderer.js.map +0 -1
  247. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
  248. package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
  249. package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
  250. package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
  251. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
  252. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
  253. package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
  254. package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
  255. package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
  256. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
  257. package/dist/cmd/build/vite/vite-asset-server.js +0 -109
  258. package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
  259. package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
  260. package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
  261. package/dist/cmd/build/vite/vite-builder.js +0 -401
  262. package/dist/cmd/build/vite/vite-builder.js.map +0 -1
  263. package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
  264. package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
  265. package/dist/cmd/build/vite/workbench-generator.js +0 -135
  266. package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
  267. package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
  268. package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
  269. package/dist/cmd/build/vite/ws-proxy.js +0 -95
  270. package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
  271. package/dist/cmd/build/vite-bundler.d.ts +0 -29
  272. package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
  273. package/dist/cmd/build/vite-bundler.js +0 -93
  274. package/dist/cmd/build/vite-bundler.js.map +0 -1
  275. package/dist/cmd/dev/agents.d.ts +0 -2
  276. package/dist/cmd/dev/agents.d.ts.map +0 -1
  277. package/dist/cmd/dev/agents.js +0 -123
  278. package/dist/cmd/dev/agents.js.map +0 -1
  279. package/dist/cmd/dev/api.d.ts +0 -20
  280. package/dist/cmd/dev/api.d.ts.map +0 -1
  281. package/dist/cmd/dev/api.js +0 -42
  282. package/dist/cmd/dev/api.js.map +0 -1
  283. package/dist/cmd/dev/dev-lock.d.ts +0 -62
  284. package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
  285. package/dist/cmd/dev/dev-lock.js +0 -250
  286. package/dist/cmd/dev/dev-lock.js.map +0 -1
  287. package/dist/cmd/dev/download.d.ts +0 -11
  288. package/dist/cmd/dev/download.d.ts.map +0 -1
  289. package/dist/cmd/dev/download.js +0 -94
  290. package/dist/cmd/dev/download.js.map +0 -1
  291. package/dist/cmd/dev/file-watcher.d.ts +0 -24
  292. package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
  293. package/dist/cmd/dev/file-watcher.js +0 -349
  294. package/dist/cmd/dev/file-watcher.js.map +0 -1
  295. package/dist/cmd/dev/process-manager.d.ts +0 -104
  296. package/dist/cmd/dev/process-manager.d.ts.map +0 -1
  297. package/dist/cmd/dev/process-manager.js +0 -204
  298. package/dist/cmd/dev/process-manager.js.map +0 -1
  299. package/dist/cmd/dev/sync.d.ts +0 -12
  300. package/dist/cmd/dev/sync.d.ts.map +0 -1
  301. package/dist/cmd/dev/sync.js +0 -227
  302. package/dist/cmd/dev/sync.js.map +0 -1
  303. package/dist/cmd/dev/templates.d.ts +0 -3
  304. package/dist/cmd/dev/templates.d.ts.map +0 -1
  305. package/dist/cmd/dev/templates.js +0 -58
  306. package/dist/cmd/dev/templates.js.map +0 -1
  307. package/dist/cmd/project/download.d.ts +0 -35
  308. package/dist/cmd/project/download.d.ts.map +0 -1
  309. package/dist/cmd/project/download.js +0 -403
  310. package/dist/cmd/project/download.js.map +0 -1
  311. package/dist/cmd/project/templates.d.ts +0 -9
  312. package/dist/cmd/project/templates.d.ts.map +0 -1
  313. package/dist/cmd/project/templates.js +0 -34
  314. package/dist/cmd/project/templates.js.map +0 -1
  315. package/src/agents-docs.ts +0 -86
  316. package/src/cmd/ai/prompt/agent.md +0 -305
  317. package/src/cmd/ai/prompt/agent.ts +0 -31
  318. package/src/cmd/build/app-router-detector.ts +0 -320
  319. package/src/cmd/build/format-schema.ts +0 -66
  320. package/src/cmd/build/vite/agent-discovery.ts +0 -380
  321. package/src/cmd/build/vite/beacon-plugin.ts +0 -164
  322. package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
  323. package/src/cmd/build/vite/bun-dev-server.ts +0 -458
  324. package/src/cmd/build/vite/bundle-files.ts +0 -135
  325. package/src/cmd/build/vite/config-loader.ts +0 -76
  326. package/src/cmd/build/vite/db-rewrite.ts +0 -189
  327. package/src/cmd/build/vite/docs-generator.ts +0 -103
  328. package/src/cmd/build/vite/env-types-generator.ts +0 -145
  329. package/src/cmd/build/vite/index.ts +0 -3
  330. package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
  331. package/src/cmd/build/vite/metadata-generator.ts +0 -713
  332. package/src/cmd/build/vite/prompt-generator.ts +0 -169
  333. package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
  334. package/src/cmd/build/vite/route-discovery.ts +0 -271
  335. package/src/cmd/build/vite/server-bundler.ts +0 -481
  336. package/src/cmd/build/vite/static-renderer.ts +0 -239
  337. package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
  338. package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
  339. package/src/cmd/build/vite/vite-asset-server.ts +0 -154
  340. package/src/cmd/build/vite/vite-builder.ts +0 -503
  341. package/src/cmd/build/vite/workbench-generator.ts +0 -152
  342. package/src/cmd/build/vite/ws-proxy.ts +0 -126
  343. package/src/cmd/build/vite-bundler.ts +0 -137
  344. package/src/cmd/dev/agents.ts +0 -140
  345. package/src/cmd/dev/api.ts +0 -65
  346. package/src/cmd/dev/dev-lock.ts +0 -332
  347. package/src/cmd/dev/download.ts +0 -117
  348. package/src/cmd/dev/file-watcher.ts +0 -423
  349. package/src/cmd/dev/process-manager.ts +0 -261
  350. package/src/cmd/dev/sync.ts +0 -411
  351. package/src/cmd/dev/templates.ts +0 -66
  352. package/src/cmd/project/download.ts +0 -505
  353. package/src/cmd/project/templates.ts +0 -56
@@ -1,713 +0,0 @@
1
- /**
2
- * Metadata Generator
3
- *
4
- * Generates agentuity.metadata.json and .routemapping.json from discovered agents and routes
5
- */
6
-
7
- import { join } from 'node:path';
8
- import { writeFileSync, mkdirSync, existsSync, readFileSync, statSync, readdirSync } from 'node:fs';
9
- import { type BuildMetadata, DeploymentConfig, getContentType } from '@agentuity/server';
10
- import type { z } from 'zod';
11
- import type { AgentMetadata } from './agent-discovery';
12
- import type { RouteMetadata } from './route-discovery';
13
- import type { Logger, DeployOptions } from '../../../types';
14
- import { toForwardSlash } from '../../../utils/normalize-path';
15
- import { getVersion } from '../../../version';
16
- import { getGitInfo, buildGitTags } from '../../../utils/git';
17
-
18
- interface ViteManifestEntry {
19
- file: string;
20
- src?: string;
21
- isEntry?: boolean;
22
- css?: string[];
23
- assets?: string[];
24
- }
25
-
26
- interface AssetInfo {
27
- filename: string;
28
- kind: string;
29
- contentType: string;
30
- size: number;
31
- contentEncoding?: string;
32
- }
33
-
34
- /**
35
- * Determine if an asset should be compressed with gzip.
36
- * The result is included in asset metadata so the API can generate
37
- * presigned URLs with matching Content-Encoding.
38
- */
39
- function shouldCompressAsset(asset: {
40
- filename: string;
41
- contentType: string;
42
- kind: string;
43
- }): boolean {
44
- const ct = asset.contentType.toLowerCase();
45
- const filename = asset.filename.toLowerCase();
46
-
47
- if (ct.startsWith('image/') && ct !== 'image/svg+xml') {
48
- return false;
49
- }
50
- if (ct.startsWith('video/') || ct.startsWith('audio/')) {
51
- return false;
52
- }
53
- if (ct === 'font/woff' || ct === 'font/woff2') {
54
- return false;
55
- }
56
- if (/\.(zip|gz|tgz|tar|bz2|br)$/.test(filename)) {
57
- return false;
58
- }
59
-
60
- if (
61
- ct.startsWith('text/') ||
62
- ct === 'application/javascript' ||
63
- ct === 'application/json' ||
64
- ct === 'application/xml' ||
65
- ct === 'application/xhtml+xml' ||
66
- ct === 'image/svg+xml'
67
- ) {
68
- return true;
69
- }
70
-
71
- if (ct === 'font/ttf' || ct === 'application/vnd.ms-fontobject') {
72
- return true;
73
- }
74
-
75
- if (
76
- asset.kind === 'entry-point' ||
77
- asset.kind === 'script' ||
78
- asset.kind === 'stylesheet' ||
79
- asset.kind === 'sourcemap'
80
- ) {
81
- return true;
82
- }
83
-
84
- return false;
85
- }
86
-
87
- function getAssetKind(filename: string, isEntry: boolean = false): string {
88
- const ext = filename.split('.').pop()?.toLowerCase();
89
-
90
- // Check for sourcemap
91
- if (filename.endsWith('.js.map') || filename.endsWith('.css.map')) {
92
- return 'sourcemap';
93
- }
94
-
95
- switch (ext) {
96
- case 'js':
97
- case 'mjs':
98
- // Distinguish entry-point from regular scripts
99
- return isEntry ? 'entry-point' : 'script';
100
- case 'css':
101
- return 'stylesheet';
102
- case 'png':
103
- case 'jpg':
104
- case 'jpeg':
105
- case 'gif':
106
- case 'svg':
107
- case 'webp':
108
- return 'image';
109
- case 'ico':
110
- return 'asset';
111
- case 'woff':
112
- case 'woff2':
113
- case 'ttf':
114
- case 'eot':
115
- return 'font';
116
- default:
117
- return 'other';
118
- }
119
- }
120
-
121
- export interface MetadataGeneratorOptions {
122
- rootDir: string;
123
- projectId: string;
124
- orgId?: string;
125
- deploymentId?: string;
126
- agents: AgentMetadata[];
127
- routes: RouteMetadata[];
128
- dev?: boolean;
129
- logger: Logger;
130
- deploymentOptions?: DeployOptions;
131
- /** Deployment config from agentuity.json (resources, mode, dependencies, domains) */
132
- deploymentConfig?: z.infer<typeof DeploymentConfig>;
133
- }
134
-
135
- /**
136
- * Normalize an agent filename/import path into a key for lookup
137
- */
138
- function normalizeImportKey(path: string): string {
139
- // Strip leading './' or 'src/' or '@'
140
- let p = toForwardSlash(path).replace(/^src\//, '');
141
- if (p.startsWith('./')) p = p.slice(2);
142
- if (p.startsWith('@')) p = p.slice(1);
143
-
144
- // Drop extension
145
- p = p.replace(/\.(t|j)sx?$/, '');
146
-
147
- // Drop common module file suffixes (agent.ts, index.ts become just the directory)
148
- p = p.replace(/\/(agent|index)$/, '');
149
-
150
- return p;
151
- }
152
-
153
- /**
154
- * Generate agentuity.metadata.json
155
- */
156
- export async function generateMetadata(options: MetadataGeneratorOptions): Promise<BuildMetadata> {
157
- const { rootDir, projectId, orgId = '', agents, routes, logger } = options;
158
-
159
- // Build agent lookup by import path for route schema enrichment
160
- const agentsByImportKey = new Map<string, AgentMetadata>();
161
- for (const agent of agents) {
162
- if (!agent.filename) continue;
163
- const key = normalizeImportKey(agent.filename);
164
- agentsByImportKey.set(key, agent);
165
- logger.trace(`Agent lookup: ${key} -> ${agent.name}`);
166
- }
167
-
168
- // Enrich routes with schemas from agents (if not already set)
169
- const enrichedRoutes = routes.map((route) => {
170
- let schema = route.schema ? { ...route.schema } : undefined;
171
-
172
- const importPath = route.config?.agentImportPath as string | undefined;
173
-
174
- if (importPath) {
175
- const key = normalizeImportKey(importPath);
176
- const agent = agentsByImportKey.get(key);
177
-
178
- if (agent && (agent.inputSchemaCode || agent.outputSchemaCode)) {
179
- // Initialize schema object if needed
180
- if (!schema) schema = {};
181
-
182
- // Only fill in missing pieces; allow explicit route schema to override
183
- if (!schema.input && agent.inputSchemaCode) {
184
- schema.input = agent.inputSchemaCode;
185
- logger.trace(`Route ${route.path}: added input schema from agent ${agent.name}`);
186
- }
187
- if (!schema.output && agent.outputSchemaCode) {
188
- schema.output = agent.outputSchemaCode;
189
- logger.trace(`Route ${route.path}: added output schema from agent ${agent.name}`);
190
- }
191
- } else {
192
- logger.trace(`No agent found for import path ${importPath} in route ${route.filename}`);
193
- }
194
- }
195
-
196
- return {
197
- ...route,
198
- schema,
199
- };
200
- });
201
-
202
- // Read package.json for project metadata
203
- const pkgPath = join(rootDir, 'package.json');
204
- let pkgContents: {
205
- name?: string;
206
- version?: string;
207
- description?: string;
208
- keywords?: string[];
209
- dependencies?: Record<string, string>;
210
- } = {};
211
-
212
- if (existsSync(pkgPath)) {
213
- try {
214
- const pkgText = Bun.file(pkgPath);
215
- pkgContents = JSON.parse(await pkgText.text());
216
- } catch (error) {
217
- logger.warn(`Failed to read package.json: ${error}`);
218
- }
219
- }
220
-
221
- // Read asset manifests from Vite builds
222
- const assets: AssetInfo[] = [];
223
- const agentuityDir = join(rootDir, '.agentuity');
224
- const seenAssets = new Set<string>(); // Track unique assets to avoid duplicates
225
-
226
- // Helper to add asset with metadata
227
- const addAsset = (relativePath: string, prefix: string, isEntry: boolean = false) => {
228
- const assetPath = `${prefix}/${relativePath}`;
229
-
230
- // Skip if already added
231
- if (seenAssets.has(assetPath)) {
232
- return;
233
- }
234
-
235
- const fullPath = join(agentuityDir, prefix, relativePath);
236
- if (existsSync(fullPath)) {
237
- const stats = statSync(fullPath);
238
-
239
- // Skip empty marker files (.gitkeep, .keep, etc.)
240
- if (stats.size === 0) {
241
- return;
242
- }
243
-
244
- seenAssets.add(assetPath);
245
- const kind = getAssetKind(relativePath, isEntry);
246
- const contentType = getContentType(relativePath);
247
- const assetInfo: AssetInfo = {
248
- filename: assetPath,
249
- kind,
250
- contentType,
251
- size: stats.size,
252
- };
253
- if (shouldCompressAsset(assetInfo)) {
254
- assetInfo.contentEncoding = 'gzip';
255
- }
256
- assets.push(assetInfo);
257
- }
258
- };
259
-
260
- // Read client manifest
261
- let hasClientManifest = false;
262
- const clientManifestPath = join(agentuityDir, 'client', '.vite', 'manifest.json');
263
- if (existsSync(clientManifestPath)) {
264
- hasClientManifest = true;
265
- try {
266
- const clientManifest: Record<string, ViteManifestEntry> = JSON.parse(
267
- readFileSync(clientManifestPath, 'utf-8')
268
- );
269
- for (const entry of Object.values(clientManifest)) {
270
- // Mark JS files as entry-point if they are entry files
271
- const isEntry = entry.isEntry === true && entry.file.endsWith('.js');
272
- addAsset(entry.file, 'client', isEntry);
273
-
274
- // Add sourcemap if it exists
275
- const sourcemapPath = entry.file + '.map';
276
- const fullSourcemapPath = join(agentuityDir, 'client', sourcemapPath);
277
- if (existsSync(fullSourcemapPath)) {
278
- addAsset(sourcemapPath, 'client');
279
- }
280
-
281
- if (entry.css) {
282
- entry.css.forEach((css) => {
283
- addAsset(css, 'client');
284
- // Add CSS sourcemap if it exists
285
- const cssMapPath = css + '.map';
286
- const fullCssMapPath = join(agentuityDir, 'client', cssMapPath);
287
- if (existsSync(fullCssMapPath)) {
288
- addAsset(cssMapPath, 'client');
289
- }
290
- });
291
- }
292
- if (entry.assets) {
293
- entry.assets.forEach((asset) => addAsset(asset, 'client'));
294
- }
295
- }
296
- logger.trace(`Found ${assets.length} client assets from manifest`);
297
- } catch (error) {
298
- logger.warn(`Failed to read client manifest: ${error}`);
299
- }
300
- }
301
-
302
- // Read workbench manifest (optional)
303
- const workbenchManifestPath = join(agentuityDir, 'workbench', '.vite', 'manifest.json');
304
- if (existsSync(workbenchManifestPath)) {
305
- try {
306
- const workbenchManifest: Record<string, ViteManifestEntry> = JSON.parse(
307
- readFileSync(workbenchManifestPath, 'utf-8')
308
- );
309
- for (const entry of Object.values(workbenchManifest)) {
310
- const isEntry = entry.isEntry === true && entry.file.endsWith('.js');
311
- addAsset(entry.file, 'workbench', isEntry);
312
-
313
- // Add sourcemap if it exists
314
- const sourcemapPath = entry.file + '.map';
315
- const fullSourcemapPath = join(agentuityDir, 'workbench', sourcemapPath);
316
- if (existsSync(fullSourcemapPath)) {
317
- addAsset(sourcemapPath, 'workbench');
318
- }
319
-
320
- if (entry.css) {
321
- entry.css.forEach((css) => {
322
- addAsset(css, 'workbench');
323
- // Add CSS sourcemap if it exists
324
- const cssMapPath = css + '.map';
325
- const fullCssMapPath = join(agentuityDir, 'workbench', cssMapPath);
326
- if (existsSync(fullCssMapPath)) {
327
- addAsset(cssMapPath, 'workbench');
328
- }
329
- });
330
- }
331
- if (entry.assets) {
332
- entry.assets.forEach((asset) => addAsset(asset, 'workbench'));
333
- }
334
- }
335
- logger.trace(`Found ${assets.length} total assets (including workbench)`);
336
- } catch (error) {
337
- logger.warn(`Failed to read workbench manifest: ${error}`);
338
- }
339
- }
340
-
341
- // Scan client directory for static files copied from public/
342
- // Vite copies src/web/public/* to .agentuity/client/* (at root, not in public/ subfolder)
343
- // We need to find these files and add them to assets for CDN upload
344
- const clientDir = join(agentuityDir, 'client');
345
- if (existsSync(clientDir)) {
346
- try {
347
- function scanClientDirectory(dir: string, prefix: string = '') {
348
- const entries = readdirSync(dir, { withFileTypes: true });
349
- for (const entry of entries) {
350
- const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;
351
- const fullPath = join(dir, entry.name);
352
-
353
- // Skip .vite metadata dir always; skip assets/ only if manifest
354
- // was found (the manifest already enumerates those files).
355
- if (entry.isDirectory()) {
356
- if (entry.name === '.vite') {
357
- continue;
358
- }
359
- if (entry.name === 'assets' && hasClientManifest) {
360
- continue;
361
- }
362
- scanClientDirectory(fullPath, relativePath);
363
- } else if (entry.isFile()) {
364
- // Skip files we already added from manifest (index.html is the entry point)
365
- if (entry.name === 'index.html') {
366
- continue;
367
- }
368
-
369
- const stats = statSync(fullPath);
370
- // Skip empty files
371
- if (stats.size === 0) continue;
372
-
373
- const assetPath = `client/${relativePath}`;
374
- if (!seenAssets.has(assetPath)) {
375
- seenAssets.add(assetPath);
376
- const contentType = getContentType(entry.name);
377
- const assetInfo: AssetInfo = {
378
- filename: assetPath,
379
- kind: 'static',
380
- contentType,
381
- size: stats.size,
382
- };
383
- if (shouldCompressAsset(assetInfo)) {
384
- assetInfo.contentEncoding = 'gzip';
385
- }
386
- assets.push(assetInfo);
387
- }
388
- }
389
- }
390
- }
391
-
392
- scanClientDirectory(clientDir);
393
- logger.trace(`Found ${assets.length} total assets (including static files)`);
394
- } catch (error) {
395
- logger.warn(`Failed to scan client directory for static files: ${error}`);
396
- }
397
- }
398
-
399
- // Build metadata structure
400
- const metadata: BuildMetadata = {
401
- routes: enrichedRoutes.map((route) => ({
402
- id: route.id,
403
- filename: route.filename,
404
- path: route.path,
405
- method: route.method as 'get' | 'post' | 'put' | 'delete' | 'patch',
406
- version: route.version,
407
- type: route.type,
408
- agentIds: route.agentIds,
409
- config: route.config,
410
- schema: route.schema,
411
- })),
412
- agents: agents.map((agent) => ({
413
- filename: agent.filename,
414
- id: agent.id,
415
- agentId: agent.agentId,
416
- version: agent.version,
417
- name: agent.name,
418
- description: agent.description,
419
- projectId,
420
- schema:
421
- agent.inputSchemaCode || agent.outputSchemaCode
422
- ? {
423
- input: agent.inputSchemaCode,
424
- output: agent.outputSchemaCode,
425
- }
426
- : undefined,
427
- evals: agent.evals?.map((evalItem) => ({
428
- filename: evalItem.filename,
429
- id: evalItem.id,
430
- identifier: evalItem.identifier,
431
- name: evalItem.name,
432
- version: evalItem.version,
433
- description: evalItem.description,
434
- agentIdentifier: evalItem.agentIdentifier,
435
- projectId: evalItem.projectId,
436
- })),
437
- })),
438
- assets,
439
- project: {
440
- id: projectId,
441
- name: pkgContents.name || 'unknown',
442
- version: pkgContents.version,
443
- description: pkgContents.description,
444
- keywords: pkgContents.keywords,
445
- orgId,
446
- },
447
- deployment: {
448
- ...options.deploymentConfig, // deployment config from agentuity.json (resources, mode, dependencies, domains)
449
- id: options.deploymentId || '',
450
- date: new Date().toISOString(),
451
- build: {
452
- bun: Bun.version,
453
- agentuity: getVersion(), // CLI version used to build
454
- arch: process.arch,
455
- platform: process.platform,
456
- },
457
- git: await getGitInfo(rootDir, logger),
458
- },
459
- };
460
-
461
- // Build tags from git info (includes 'latest', branch, and short commit)
462
- const gitInfo = metadata.deployment.git;
463
- if (gitInfo) {
464
- gitInfo.tags = buildGitTags(gitInfo);
465
- }
466
-
467
- if (options.deploymentOptions) {
468
- const git = { ...(metadata.deployment.git ?? {}), ...options.deploymentOptions };
469
- if (options.deploymentOptions.pullRequestNumber) {
470
- git.pull_request = {
471
- number: options.deploymentOptions.pullRequestNumber,
472
- url: options.deploymentOptions.pullRequestUrl,
473
- };
474
- delete git.pullRequestNumber;
475
- delete git.pullRequestUrl;
476
- }
477
- metadata.deployment.git = git;
478
- }
479
-
480
- return metadata;
481
- }
482
-
483
- /**
484
- * Generate AGENTS.md content for AI coding agents
485
- */
486
- function generateAgentsMd(metadata: BuildMetadata): string {
487
- const lines: string[] = [];
488
-
489
- lines.push('# Compiled Agentuity Application');
490
- lines.push('');
491
- lines.push(
492
- 'This directory contains compiled and bundled source code from an Agentuity application.'
493
- );
494
- lines.push('');
495
-
496
- // Add source repository info if available
497
- if (metadata.deployment?.git?.repo) {
498
- lines.push('## Source Repository');
499
- lines.push('');
500
- lines.push(`**Repository:** ${metadata.deployment.git.repo}`);
501
-
502
- if (metadata.deployment.git.branch) {
503
- lines.push(`**Branch:** ${metadata.deployment.git.branch}`);
504
- }
505
-
506
- if (metadata.deployment.git.commit) {
507
- const shortCommit = metadata.deployment.git.commit.substring(0, 7);
508
- const commitUrl = metadata.deployment.git.repo.endsWith('.git')
509
- ? metadata.deployment.git.repo.slice(0, -4)
510
- : metadata.deployment.git.repo;
511
- lines.push(
512
- `**Commit:** [\`${shortCommit}\`](${commitUrl}/commit/${metadata.deployment.git.commit})`
513
- );
514
- }
515
-
516
- if (metadata.deployment.git.message) {
517
- lines.push(`**Message:** ${metadata.deployment.git.message}`);
518
- }
519
-
520
- lines.push('');
521
- }
522
-
523
- // Add build info
524
- lines.push('## Build Information');
525
- lines.push('');
526
- if (metadata.project?.name) {
527
- lines.push(
528
- `**Project:** ${metadata.project.name}${metadata.project.version ? ` v${metadata.project.version}` : ''}`
529
- );
530
- }
531
- if (metadata.project?.id) {
532
- lines.push(`**Project ID:** ${metadata.project.id}`);
533
- }
534
- if (metadata.project?.orgId) {
535
- lines.push(`**Org ID:** ${metadata.project.orgId}`);
536
- }
537
- if (metadata.deployment.id) {
538
- lines.push(`**Deployment ID:** ${metadata.deployment.id}`);
539
- }
540
- if (metadata.deployment?.build) {
541
- lines.push(
542
- `**Built with:** Agentuity CLI v${metadata.deployment.build.agentuity}, Bun v${metadata.deployment.build.bun}`
543
- );
544
- lines.push(
545
- `**Platform:** ${metadata.deployment.build.platform}-${metadata.deployment.build.arch}`
546
- );
547
- }
548
- if (metadata.deployment?.date) {
549
- lines.push(`**Build date:** ${metadata.deployment.date}`);
550
- }
551
- lines.push('');
552
-
553
- // Add structure overview
554
- lines.push('## Structure');
555
- lines.push('');
556
- lines.push('```');
557
- lines.push('.agentuity/');
558
- lines.push('├── app.js # Bundled server application');
559
- lines.push('├── agentuity.metadata.json # Build metadata and schemas');
560
- if (metadata.assets?.some((a: { filename: string }) => a.filename.startsWith('client/'))) {
561
- lines.push('├── client/ # Frontend assets (fallback, CDN by default)');
562
- }
563
- if (metadata.assets?.some((a: { filename: string }) => a.filename.startsWith('public/'))) {
564
- lines.push('├── public/ # Static assets');
565
- }
566
- lines.push('└── AGENTS.md # This file');
567
- lines.push('```');
568
- lines.push('');
569
-
570
- // Add agent/route details
571
- if (metadata.agents && metadata.agents.length > 0) {
572
- lines.push('## Agents');
573
- lines.push('');
574
- lines.push(`This application defines ${metadata.agents.length} agent(s):`);
575
- lines.push('');
576
- for (const agent of metadata.agents) {
577
- lines.push(`- **${agent.name}** (ID: \`${agent.id}\`)`);
578
- }
579
- lines.push('');
580
- }
581
-
582
- if (metadata.routes && metadata.routes.length > 0) {
583
- lines.push('## Routes');
584
- lines.push('');
585
- lines.push(`This application defines ${metadata.routes.length} route(s):`);
586
- lines.push('');
587
- for (const route of metadata.routes) {
588
- lines.push(`- \`${route.method.toUpperCase()} ${route.path}\` (${route.type})`);
589
- }
590
- lines.push('');
591
- }
592
-
593
- // Add runtime environment info
594
- lines.push('## Runtime Environment');
595
- lines.push('');
596
- lines.push('When deployed, this application runs in a managed runtime environment with:');
597
- lines.push('');
598
- lines.push('**User & Permissions:**');
599
- lines.push('- User: `agentuity` (UID: 1022, GID: 1777)');
600
- lines.push('- Home directory: `/home/agentuity`');
601
- lines.push('- Working directory: `/home/agentuity` (application code deployed here)');
602
- lines.push('- Logs directory: `/home/agentuity/logs`');
603
- lines.push('- Temp directory: `/home/agentuity/tmp`');
604
- lines.push('');
605
- lines.push('**Pre-installed Tools:**');
606
- lines.push('- **Runtimes:** Node.js 24, Bun 1.x');
607
- lines.push('- **AI Tools:** Amp, Opencode AI, Claude Code');
608
- lines.push('- **Version Control:** git, GitHub CLI (gh)');
609
- lines.push('- **Browser Automation:** Chromium, ChromeDriver, Xvfb (headless display)');
610
- lines.push('- **Media Processing:** ffmpeg');
611
- lines.push('- **Network Tools:** curl, wget, netcat, dnsutils');
612
- lines.push('- **Other:** openssh-client, openssh-sftp-server, strace, unzip, fuse');
613
- lines.push('');
614
- lines.push('**Environment Variables:**');
615
- lines.push('- `AGENTUITY_DATA_DIR=/home/agentuity/data` - Persistent data storage');
616
- lines.push('- `AGENTUITY_LOG_DIR=/home/agentuity/logs` - Application logs');
617
- lines.push('- `CHROME_BIN=/usr/bin/chromium` - Chromium browser path');
618
- lines.push('- `DISPLAY=:99` - X11 display for headless browser');
619
- lines.push(
620
- '- `PATH` includes `/home/agentuity/.local/bin` and `/home/agentuity/.agentuity/bin`'
621
- );
622
- lines.push('');
623
- lines.push('**Ports:**');
624
- lines.push(
625
- '- `3000: This default port that the project is running. Use PORT environment if not available'
626
- );
627
- lines.push('');
628
-
629
- // Add note about metadata
630
- lines.push('## For AI Coding Agents');
631
- lines.push('');
632
- lines.push(
633
- 'This is production-ready compiled code. For development and source code modifications:'
634
- );
635
- lines.push('');
636
- if (metadata.deployment?.git?.repo) {
637
- lines.push(`1. Clone the source repository: ${metadata.deployment.git.repo}`);
638
- lines.push('2. Make changes to source files in `src/`');
639
- lines.push('3. Run `agentuity build` to rebuild this bundle');
640
- } else {
641
- lines.push('1. Locate the original source repository');
642
- lines.push('2. Make changes to source files in `src/`');
643
- lines.push('3. Run `agentuity build` to rebuild this bundle');
644
- }
645
- lines.push('');
646
- lines.push(
647
- 'See `agentuity.metadata.json` for detailed information about agents, routes, and schemas.'
648
- );
649
-
650
- return lines.join('\n');
651
- }
652
-
653
- /**
654
- * Write agentuity.metadata.json to .agentuity directory
655
- */
656
- export function writeMetadataFile(
657
- rootDir: string,
658
- metadata: BuildMetadata,
659
- dev: boolean,
660
- logger: Logger
661
- ): void {
662
- const agentuityDir = join(rootDir, '.agentuity');
663
-
664
- // Ensure .agentuity directory exists
665
- if (!existsSync(agentuityDir)) {
666
- mkdirSync(agentuityDir, { recursive: true });
667
- }
668
-
669
- const metadataPath = join(agentuityDir, 'agentuity.metadata.json');
670
- const metadataContent = dev ? JSON.stringify(metadata, null, 2) : JSON.stringify(metadata);
671
-
672
- writeFileSync(metadataPath, metadataContent, 'utf-8');
673
- logger.trace('Wrote agentuity.metadata.json');
674
-
675
- // Write AGENTS.md for AI coding agents
676
- if (!dev) {
677
- const agentMdPath = join(agentuityDir, 'AGENTS.md');
678
- const agentMdContent = generateAgentsMd(metadata);
679
-
680
- writeFileSync(agentMdPath, agentMdContent, 'utf-8');
681
- logger.trace('Wrote AGENTS.md');
682
- }
683
- }
684
-
685
- /**
686
- * Generate .routemapping.json for runtime route tracking
687
- */
688
- export function generateRouteMapping(
689
- rootDir: string,
690
- routes: RouteMetadata[],
691
- dev: boolean,
692
- logger: Logger
693
- ): void {
694
- const agentuityDir = join(rootDir, '.agentuity');
695
-
696
- // Ensure .agentuity directory exists
697
- if (!existsSync(agentuityDir)) {
698
- mkdirSync(agentuityDir, { recursive: true });
699
- }
700
-
701
- const routeMapping: Record<string, string> = {};
702
- for (const route of routes) {
703
- routeMapping[`${route.method} ${route.path}`] = route.id;
704
- }
705
-
706
- const routeMappingPath = join(agentuityDir, '.routemapping.json');
707
- const routeMappingContent = dev
708
- ? JSON.stringify(routeMapping, null, 2)
709
- : JSON.stringify(routeMapping);
710
-
711
- writeFileSync(routeMappingPath, routeMappingContent, 'utf-8');
712
- logger.trace('Wrote .routemapping.json');
713
- }