@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
@@ -514,67 +514,42 @@ export function printIntegrationExamples(): void {
514
514
  tui.newline();
515
515
 
516
516
  console.log(tui.muted('━'.repeat(60)));
517
- console.log(tui.bold(' 1. Set up your API routes (e.g., src/api/index.ts):'));
517
+ console.log(tui.bold(' 1. Set up your API routes:'));
518
518
  console.log(tui.muted('━'.repeat(60)));
519
519
  console.log(`
520
- import { createRouter } from '@agentuity/runtime';
520
+ import { Hono } from 'hono';
521
521
  import { mountAuthRoutes } from '@agentuity/auth';
522
- import { auth, authMiddleware } from '../auth';
522
+ import { auth, authMiddleware } from './auth';
523
523
 
524
- const api = createRouter();
524
+ const app = new Hono();
525
525
 
526
526
  // Mount auth routes (sign-in, sign-up, sign-out, session, etc.)
527
- // Must match the basePath configured in createAuth (default: /api/auth)
528
- api.on(['GET', 'POST'], '/api/auth/*', mountAuthRoutes(auth));
527
+ app.on(['GET', 'POST'], '/api/auth/*', mountAuthRoutes(auth));
529
528
 
530
529
  // Protect your API routes with auth middleware
531
- api.use('/api/*', authMiddleware);
530
+ app.use('/api/*', authMiddleware);
532
531
 
533
- api.get('/api/me', async (c) => {
532
+ app.get('/api/me', async (c) => {
534
533
  const user = await c.var.auth.getUser();
535
534
  return c.json({ id: user.id, email: user.email });
536
535
  });
537
536
 
538
- export default api;
537
+ export default app;
539
538
  `);
540
539
 
541
540
  console.log(tui.muted('━'.repeat(60)));
542
- console.log(tui.bold(' 2. Wrap your React app with AuthProvider:'));
541
+ console.log(tui.bold(' 2. Use the auth client in your frontend:'));
543
542
  console.log(tui.muted('━'.repeat(60)));
544
543
  console.log(`
545
- import { AgentuityProvider } from '@agentuity/react';
546
- import { createAuthClient, AuthProvider } from '@agentuity/auth/react';
544
+ import { createAuthClient } from '@agentuity/auth/client';
547
545
 
548
546
  const authClient = createAuthClient();
549
547
 
550
- function App() {
551
- return (
552
- <AgentuityProvider>
553
- <AuthProvider authClient={authClient}>
554
- {/* your app */}
555
- </AuthProvider>
556
- </AgentuityProvider>
557
- );
558
- }
559
- `);
548
+ // Sign in
549
+ await authClient.signIn.email({ email, password });
560
550
 
561
- console.log(tui.muted('━'.repeat(60)));
562
- console.log(tui.bold(' 3. Access auth in agents via ctx.auth:'));
563
- console.log(tui.muted('━'.repeat(60)));
564
- console.log(`
565
- import { createAgent } from '@agentuity/runtime';
566
-
567
- export default createAgent('my-agent', {
568
- schema: { input: s.object({ name: s.string() }), output: s.string() },
569
- handler: async (ctx, input) => {
570
- // ctx.auth is available when using auth middleware
571
- if (ctx.auth) {
572
- const user = await ctx.auth.getUser();
573
- return \`Hello, \${user.email}!\`;
574
- }
575
- return 'Hello, anonymous!';
576
- },
577
- });
551
+ // Get session
552
+ const session = await authClient.getSession();
578
553
  `);
579
554
 
580
555
  tui.newline();
@@ -11,7 +11,7 @@ const ProjectCreateResponseSchema = z.object({
11
11
  path: z.string().describe('Project directory path'),
12
12
  projectId: z.string().optional().describe('Project ID if registered'),
13
13
  orgId: z.string().optional().describe('Organization ID if registered'),
14
- template: z.string().describe('Template used'),
14
+ framework: z.string().describe('Framework used'),
15
15
  installed: z.boolean().describe('Whether dependencies were installed'),
16
16
  built: z.boolean().describe('Whether the project was built'),
17
17
  domains: z.array(z.string()).optional().describe('Array of custom domains'),
@@ -29,33 +29,30 @@ export const createProjectSubcommand = createSubcommand({
29
29
  examples: [
30
30
  { command: getCommand('project create'), description: 'Create new project' },
31
31
  {
32
- command: getCommand('project create --name my-ai-agent'),
33
- description: 'Create new project',
32
+ command: getCommand('project create --name my-ai-app'),
33
+ description: 'Create named project',
34
34
  },
35
35
  {
36
- command: getCommand('project create --name customer-service-bot --dir ~/projects/agent'),
37
- description: 'Create new project',
36
+ command: getCommand('project create --name my-app --framework nextjs'),
37
+ description: 'Create with Next.js',
38
38
  },
39
39
  {
40
- command: getCommand('project create --template basic --no-install'),
41
- description: 'Use no install option',
40
+ command: getCommand('project create --framework hono --no-install'),
41
+ description: 'Scaffold without installing',
42
42
  },
43
- { command: getCommand('project new --no-register'), description: 'Use no register option' },
43
+ { command: getCommand('project new --no-register'), description: 'Skip cloud registration' },
44
44
  ],
45
45
  schema: {
46
46
  options: z.object({
47
47
  name: z.string().optional().describe('Project name'),
48
48
  dir: z.string().optional().describe('Directory to create the project in'),
49
49
  domains: z.array(z.string()).optional().describe('Array of custom domains'),
50
- template: z.string().optional().describe('Template to use'),
51
- templateDir: z
50
+ framework: z
52
51
  .string()
53
52
  .optional()
54
- .describe('Local template directory for testing (e.g., ./packages/templates)'),
55
- templateBranch: z
56
- .string()
57
- .optional()
58
- .describe('GitHub branch to use for templates (default: main)'),
53
+ .describe(
54
+ 'Framework to use (e.g., nextjs, astro, sveltekit, remix, nuxt, hono, vite-react)'
55
+ ),
59
56
  install: z
60
57
  .boolean()
61
58
  .optional()
@@ -101,9 +98,7 @@ export const createProjectSubcommand = createSubcommand({
101
98
  projectName: opts.name,
102
99
  dir: opts.dir,
103
100
  domains: opts.domains,
104
- template: opts.template,
105
- templateDir: opts.templateDir,
106
- templateBranch: opts.templateBranch,
101
+ framework: opts.framework,
107
102
  noInstall: opts.install === false,
108
103
  noBuild: opts.build === false,
109
104
  skipPrompts: opts.confirm === true,
@@ -130,7 +125,7 @@ export const createProjectSubcommand = createSubcommand({
130
125
  path: result.path,
131
126
  projectId: result.projectId,
132
127
  orgId: result.orgId,
133
- template: result.template,
128
+ framework: result.framework,
134
129
  installed: result.installed,
135
130
  built: result.built,
136
131
  domains: result.domains,
@@ -0,0 +1,166 @@
1
+ /**
2
+ * AI SDK example generators for each framework.
3
+ *
4
+ * Each function returns a map of relative file paths to file contents
5
+ * that demonstrate a simple AI chat endpoint using the Vercel AI SDK
6
+ * with the Agentuity AI Gateway.
7
+ */
8
+
9
+ export function nextjsAiExample(): Record<string, string> {
10
+ return {
11
+ 'app/api/chat/route.ts': `import { generateText } from 'ai';
12
+ import { openai } from '@ai-sdk/openai';
13
+ import { NextResponse } from 'next/server';
14
+
15
+ export async function POST(request: Request) {
16
+ \tconst { message } = await request.json();
17
+
18
+ \tconst { text } = await generateText({
19
+ \t\tmodel: openai('gpt-4o-mini'),
20
+ \t\tprompt: message,
21
+ \t});
22
+
23
+ \treturn NextResponse.json({ reply: text });
24
+ }
25
+ `,
26
+ };
27
+ }
28
+
29
+ export function nuxtAiExample(): Record<string, string> {
30
+ return {
31
+ 'server/api/chat.post.ts': `import { generateText } from 'ai';
32
+ import { openai } from '@ai-sdk/openai';
33
+
34
+ export default defineEventHandler(async (event) => {
35
+ \tconst { message } = await readBody(event);
36
+
37
+ \tconst { text } = await generateText({
38
+ \t\tmodel: openai('gpt-4o-mini'),
39
+ \t\tprompt: message,
40
+ \t});
41
+
42
+ \treturn { reply: text };
43
+ });
44
+ `,
45
+ };
46
+ }
47
+
48
+ export function remixAiExample(): Record<string, string> {
49
+ return {
50
+ 'app/routes/api.chat.ts': `import { type ActionFunctionArgs, json } from '@remix-run/node';
51
+ import { generateText } from 'ai';
52
+ import { openai } from '@ai-sdk/openai';
53
+
54
+ export async function action({ request }: ActionFunctionArgs) {
55
+ \tconst { message } = await request.json();
56
+
57
+ \tconst { text } = await generateText({
58
+ \t\tmodel: openai('gpt-4o-mini'),
59
+ \t\tprompt: message,
60
+ \t});
61
+
62
+ \treturn json({ reply: text });
63
+ }
64
+ `,
65
+ };
66
+ }
67
+
68
+ export function sveltekitAiExample(): Record<string, string> {
69
+ return {
70
+ 'src/routes/api/chat/+server.ts': `import { json } from '@sveltejs/kit';
71
+ import type { RequestHandler } from './$types';
72
+ import { generateText } from 'ai';
73
+ import { openai } from '@ai-sdk/openai';
74
+
75
+ export const POST: RequestHandler = async ({ request }) => {
76
+ \tconst { message } = await request.json();
77
+
78
+ \tconst { text } = await generateText({
79
+ \t\tmodel: openai('gpt-4o-mini'),
80
+ \t\tprompt: message,
81
+ \t});
82
+
83
+ \treturn json({ reply: text });
84
+ };
85
+ `,
86
+ };
87
+ }
88
+
89
+ export function astroAiExample(): Record<string, string> {
90
+ return {
91
+ 'src/pages/api/chat.ts': `import type { APIRoute } from 'astro';
92
+ import { generateText } from 'ai';
93
+ import { openai } from '@ai-sdk/openai';
94
+
95
+ export const POST: APIRoute = async ({ request }) => {
96
+ \tconst { message } = await request.json();
97
+
98
+ \tconst { text } = await generateText({
99
+ \t\tmodel: openai('gpt-4o-mini'),
100
+ \t\tprompt: message,
101
+ \t});
102
+
103
+ \treturn new Response(
104
+ \t\tJSON.stringify({ reply: text }),
105
+ \t\t{ headers: { 'Content-Type': 'application/json' } }
106
+ \t);
107
+ };
108
+ `,
109
+ };
110
+ }
111
+
112
+ export function honoAiExample(): Record<string, string> {
113
+ return {
114
+ 'src/index.ts': `import { Hono } from 'hono';
115
+ import { generateText } from 'ai';
116
+ import { openai } from '@ai-sdk/openai';
117
+
118
+ const app = new Hono();
119
+
120
+ app.get('/', (c) => c.text('Hello from Hono + Agentuity!'));
121
+
122
+ app.post('/api/chat', async (c) => {
123
+ \tconst { message } = await c.req.json();
124
+
125
+ \tconst { text } = await generateText({
126
+ \t\tmodel: openai('gpt-4o-mini'),
127
+ \t\tprompt: message,
128
+ \t});
129
+
130
+ \treturn c.json({ reply: text });
131
+ });
132
+
133
+ export default app;
134
+ `,
135
+ };
136
+ }
137
+
138
+ export function viteReactAiExample(): Record<string, string> {
139
+ return {
140
+ 'server.ts': `import { generateText } from 'ai';
141
+ import { openai } from '@ai-sdk/openai';
142
+
143
+ Bun.serve({
144
+ \tport: process.env.PORT ?? 3000,
145
+ \tasync fetch(request) {
146
+ \t\tconst url = new URL(request.url);
147
+
148
+ \t\tif (url.pathname === '/api/chat' && request.method === 'POST') {
149
+ \t\t\tconst { message } = await request.json();
150
+
151
+ \t\t\tconst { text } = await generateText({
152
+ \t\t\t\tmodel: openai('gpt-4o-mini'),
153
+ \t\t\t\tprompt: message,
154
+ \t\t\t});
155
+
156
+ \t\t\treturn Response.json({ reply: text });
157
+ \t\t}
158
+
159
+ \t\treturn new Response('Not Found', { status: 404 });
160
+ \t},
161
+ });
162
+
163
+ console.log('Server running on http://localhost:' + (process.env.PORT ?? 3000));
164
+ `,
165
+ };
166
+ }
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Agentuity-branded landing page generators for each framework.
3
+ *
4
+ * Each function returns a map of relative file paths to file contents
5
+ * that replace the framework's default landing page with a dark-themed
6
+ * Agentuity welcome page matching the brand design system.
7
+ *
8
+ * Design: dark background (#09090b), cyan accent (#00FFFF), Agentuity
9
+ * logo, "Welcome to Agentuity" heading, and framework-specific next steps.
10
+ */
11
+
12
+ // ─── Shared ──────────────────────────────────────────────────────────────────
13
+
14
+ const AGENTUITY_LOGO_SVG = `<svg xmlns="http://www.w3.org/2000/svg" width="48" height="42" viewBox="0 0 220 191" fill="none">
15
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M220 191H0L31.427 136.5H0L8 122.5H180.5L220 191ZM47.588 136.5L24.234 177H195.766L172.412 136.5H47.588Z" fill="#00FFFF"/>
16
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M110 0L157.448 82.5H189L197 96.5H54.5L110 0ZM78.702 82.5L110 28.081L141.298 82.5H78.702Z" fill="#00FFFF"/>
17
+ </svg>`;
18
+
19
+ const SHARED_STYLES = `
20
+ <style>
21
+ * { margin: 0; padding: 0; box-sizing: border-box; }
22
+ body { background: #09090b; color: #a1a1aa; font-family: system-ui, -apple-system, sans-serif; min-height: 100vh; display: flex; justify-content: center; }
23
+ .wrap { max-width: 48rem; width: 100%; padding: 4rem; display: flex; flex-direction: column; gap: 1rem; }
24
+ .header { text-align: center; margin-bottom: 2rem; }
25
+ .header svg { margin-bottom: 1rem; }
26
+ .header h1 { font-size: 3rem; font-weight: 100; color: #fff; }
27
+ .header p { font-size: 1.125rem; color: #71717a; }
28
+ .header em { font-style: italic; font-family: Georgia, serif; }
29
+ .card { background: #000; border: 1px solid #1c1c1e; border-radius: 0.5rem; padding: 2rem; }
30
+ .card h3 { color: #fff; font-size: 1.25rem; font-weight: 400; margin-bottom: 1.5rem; }
31
+ .step { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 1.25rem; }
32
+ .step:last-child { margin-bottom: 0; }
33
+ .check { width: 1rem; height: 1rem; border: 1px solid #22c55e; background: #052e16; border-radius: 0.25rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.1rem; }
34
+ .check svg { width: 0.625rem; height: 0.625rem; }
35
+ .step h4 { color: #fff; font-size: 0.875rem; font-weight: 400; margin-bottom: 0.25rem; }
36
+ .step p { font-size: 0.75rem; }
37
+ code { color: #fff; background: #1c1c1e; padding: 0.125rem 0.375rem; border-radius: 0.25rem; font-size: 0.75rem; }
38
+ a.badge { position: fixed; bottom: 1rem; right: 1rem; display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; background: #09090b; border: 1px solid #27272a; border-radius: 0.5rem; color: #a1a1aa; font-size: 0.75rem; text-decoration: none; transition: border-color 0.2s; z-index: 50; }
39
+ a.badge:hover { border-color: #00FFFF; }
40
+ a.badge svg { width: 16px; height: 14px; }
41
+ </style>`;
42
+
43
+ const CHECK_SVG =
44
+ '<svg fill="none" stroke="#22c55e" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><path d="M20 6 9 17l-5-5"/></svg>';
45
+
46
+ const BADGE_SVG =
47
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 191" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M220 191H0L31.427 136.5H0L8 122.5H180.5L220 191ZM47.588 136.5L24.234 177H195.766L172.412 136.5H47.588Z" fill="#00FFFF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M110 0L157.448 82.5H189L197 96.5H54.5L110 0ZM78.702 82.5L110 28.081L141.298 82.5H78.702Z" fill="#00FFFF"/></svg>';
48
+
49
+ function buildPage(frameworkLabel: string, steps: { title: string; text: string }[]): string {
50
+ const stepsHtml = steps
51
+ .map(
52
+ (s) => `
53
+ <div class="step">
54
+ <div class="check">${CHECK_SVG}</div>
55
+ <div><h4>${s.title}</h4><p>${s.text}</p></div>
56
+ </div>`
57
+ )
58
+ .join('');
59
+
60
+ return `<!DOCTYPE html>
61
+ <html lang="en">
62
+ <head>
63
+ <meta charset="utf-8"/>
64
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
65
+ <title>Agentuity + ${frameworkLabel}</title>
66
+ ${SHARED_STYLES}
67
+ </head>
68
+ <body>
69
+ <div class="wrap">
70
+ <div class="header">
71
+ ${AGENTUITY_LOGO_SVG}
72
+ <h1>Welcome to Agentuity</h1>
73
+ <p><em>${frameworkLabel}</em> + AI Gateway</p>
74
+ </div>
75
+ <div class="card">
76
+ <h3>Getting started</h3>
77
+ ${stepsHtml}
78
+ </div>
79
+ </div>
80
+ <a class="badge" href="https://agentuity.dev/" target="_blank" rel="noopener noreferrer">${BADGE_SVG} Powered by Agentuity</a>
81
+ </body>
82
+ </html>`;
83
+ }
84
+
85
+ // ─── Framework-specific Landing Pages ────────────────────────────────────────
86
+
87
+ export function nextjsLandingPage(): Record<string, string> {
88
+ return {
89
+ 'src/app/page.tsx': `export default function Home() {
90
+ return (
91
+ <div
92
+ style={{ background: '#09090b', color: '#a1a1aa', fontFamily: 'system-ui, -apple-system, sans-serif', minHeight: '100vh', display: 'flex', justifyContent: 'center' }}
93
+ dangerouslySetInnerHTML={{
94
+ __html: \`${buildReactInnerHtml('Next.js', [
95
+ {
96
+ title: 'AI Gateway',
97
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
98
+ },
99
+ {
100
+ title: 'API route',
101
+ text: 'Edit <code>app/api/chat/route.ts</code> to customize the AI endpoint.',
102
+ },
103
+ {
104
+ title: 'Deploy',
105
+ text: 'Run <code>agentuity deploy</code> to ship to production.',
106
+ },
107
+ ])}\`
108
+ }}
109
+ />
110
+ );
111
+ }
112
+ `,
113
+ 'src/app/globals.css': `body { margin: 0; }
114
+ `,
115
+ };
116
+ }
117
+
118
+ export function nuxtLandingPage(): Record<string, string> {
119
+ return {
120
+ 'app.vue': `<template>
121
+ <div v-html="html" />
122
+ </template>
123
+
124
+ <script setup lang="ts">
125
+ const html = \`${buildPage('Nuxt', [
126
+ {
127
+ title: 'AI Gateway',
128
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
129
+ },
130
+ {
131
+ title: 'Server route',
132
+ text: 'Edit <code>server/api/chat.post.ts</code> to customize the AI endpoint.',
133
+ },
134
+ { title: 'Deploy', text: 'Run <code>agentuity deploy</code> to ship to production.' },
135
+ ])}\`;
136
+ </script>
137
+ `,
138
+ };
139
+ }
140
+
141
+ export function remixLandingPage(): Record<string, string> {
142
+ return {
143
+ 'app/routes/_index.tsx': `export default function Index() {
144
+ return (
145
+ <div
146
+ style={{ background: '#09090b', color: '#a1a1aa', fontFamily: 'system-ui, -apple-system, sans-serif', minHeight: '100vh', display: 'flex', justifyContent: 'center' }}
147
+ dangerouslySetInnerHTML={{
148
+ __html: \`${buildReactInnerHtml('Remix', [
149
+ {
150
+ title: 'AI Gateway',
151
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
152
+ },
153
+ {
154
+ title: 'Action route',
155
+ text: 'Edit <code>app/routes/api.chat.ts</code> to customize the AI endpoint.',
156
+ },
157
+ {
158
+ title: 'Deploy',
159
+ text: 'Run <code>agentuity deploy</code> to ship to production.',
160
+ },
161
+ ])}\`
162
+ }}
163
+ />
164
+ );
165
+ }
166
+ `,
167
+ };
168
+ }
169
+
170
+ export function sveltekitLandingPage(): Record<string, string> {
171
+ return {
172
+ 'src/routes/+page.svelte': `{@html \`${buildPage('SvelteKit', [
173
+ {
174
+ title: 'AI Gateway',
175
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
176
+ },
177
+ {
178
+ title: 'Server route',
179
+ text: 'Edit <code>src/routes/api/chat/+server.ts</code> to customize the AI endpoint.',
180
+ },
181
+ { title: 'Deploy', text: 'Run <code>agentuity deploy</code> to ship to production.' },
182
+ ])}\`}
183
+ `,
184
+ };
185
+ }
186
+
187
+ export function astroLandingPage(): Record<string, string> {
188
+ return {
189
+ 'src/pages/index.astro': `---
190
+ ---
191
+ ${buildPage('Astro', [
192
+ {
193
+ title: 'AI Gateway',
194
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
195
+ },
196
+ {
197
+ title: 'API route',
198
+ text: 'Edit <code>src/pages/api/chat.ts</code> to customize the AI endpoint.',
199
+ },
200
+ { title: 'Deploy', text: 'Run <code>agentuity deploy</code> to ship to production.' },
201
+ ])}
202
+ `,
203
+ };
204
+ }
205
+
206
+ export function viteReactLandingPage(): Record<string, string> {
207
+ return {
208
+ 'src/App.tsx': `export default function App() {
209
+ return (
210
+ <div
211
+ style={{ background: '#09090b', color: '#a1a1aa', fontFamily: 'system-ui, -apple-system, sans-serif', minHeight: '100vh', display: 'flex', justifyContent: 'center' }}
212
+ dangerouslySetInnerHTML={{
213
+ __html: \`${buildReactInnerHtml('Vite + React', [
214
+ {
215
+ title: 'AI Gateway',
216
+ text: 'Run <code>agentuity dev</code> to start with AI Gateway routing.',
217
+ },
218
+ {
219
+ title: 'Server',
220
+ text: 'Edit <code>server.ts</code> to customize the AI endpoint.',
221
+ },
222
+ {
223
+ title: 'Deploy',
224
+ text: 'Run <code>agentuity deploy</code> to ship to production.',
225
+ },
226
+ ])}\`
227
+ }}
228
+ />
229
+ );
230
+ }
231
+ `,
232
+ 'src/index.css': `body { margin: 0; }
233
+ `,
234
+ };
235
+ }
236
+
237
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
238
+
239
+ /** Build inner HTML for React's dangerouslySetInnerHTML (no <html>/<body> wrapper) */
240
+ function buildReactInnerHtml(
241
+ frameworkLabel: string,
242
+ steps: { title: string; text: string }[]
243
+ ): string {
244
+ const stepsHtml = steps
245
+ .map(
246
+ (s) => `
247
+ <div class="step">
248
+ <div class="check">${CHECK_SVG}</div>
249
+ <div><h4>${s.title}</h4><p>${s.text}</p></div>
250
+ </div>`
251
+ )
252
+ .join('');
253
+
254
+ return `${SHARED_STYLES}
255
+ <div class="wrap">
256
+ <div class="header">
257
+ ${AGENTUITY_LOGO_SVG}
258
+ <h1>Welcome to Agentuity</h1>
259
+ <p><em>${frameworkLabel}</em> + AI Gateway</p>
260
+ </div>
261
+ <div class="card">
262
+ <h3>Getting started</h3>
263
+ ${stepsHtml}
264
+ </div>
265
+ </div>
266
+ <a class="badge" href="https://agentuity.dev/" target="_blank" rel="noopener noreferrer">${BADGE_SVG} Powered by Agentuity</a>`;
267
+ }