@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
@@ -1,229 +0,0 @@
1
- /**
2
- * App Router Detector
3
- *
4
- * Parses the user's `src/app.ts` to detect whether they pass a `router` property
5
- * to `createApp()`. If detected, resolves the router variable(s) to their import
6
- * sources and mount paths.
7
- *
8
- * Uses TypeScript's compiler API to reliably detect the pattern, consistent with
9
- * the lifecycle generator approach.
10
- */
11
- import ts from 'typescript';
12
- import { join, dirname, resolve } from 'node:path';
13
- import { statSync } from 'node:fs';
14
- /**
15
- * Resolve an import path to an actual file on disk.
16
- * Tries the path as-is, then with common extensions.
17
- */
18
- async function resolveImportFile(fromDir, importPath) {
19
- if (!importPath.startsWith('.') && !importPath.startsWith('/')) {
20
- return null; // Package import — can't resolve
21
- }
22
- const basePath = resolve(fromDir, importPath);
23
- const extensions = ['.ts', '.tsx', '/index.ts', '/index.tsx'];
24
- const baseFile = Bun.file(basePath);
25
- if (await baseFile.exists()) {
26
- try {
27
- if (statSync(basePath).isFile())
28
- return basePath;
29
- }
30
- catch {
31
- // ignore
32
- }
33
- }
34
- for (const ext of extensions) {
35
- const candidate = basePath + ext;
36
- if (await Bun.file(candidate).exists()) {
37
- return candidate;
38
- }
39
- }
40
- return null;
41
- }
42
- /**
43
- * Extract router mounts from a createApp() call using TypeScript's AST.
44
- * Returns null if no router property found.
45
- */
46
- function extractRouterMounts(sourceFile) {
47
- let result = null;
48
- function getStringLiteral(node) {
49
- if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node)) {
50
- return node.text;
51
- }
52
- return null;
53
- }
54
- function extractMountFromObject(obj) {
55
- let path;
56
- let varName;
57
- for (const prop of obj.properties) {
58
- if (!ts.isPropertyAssignment(prop) || !ts.isIdentifier(prop.name))
59
- continue;
60
- if (prop.name.text === 'path') {
61
- path = getStringLiteral(prop.initializer) ?? undefined;
62
- }
63
- if (prop.name.text === 'router') {
64
- if (ts.isIdentifier(prop.initializer)) {
65
- varName = prop.initializer.text;
66
- }
67
- }
68
- }
69
- // Also handle shorthand: { path: '/v1', router } where router is shorthand
70
- for (const prop of obj.properties) {
71
- if (ts.isShorthandPropertyAssignment(prop) && prop.name.text === 'router') {
72
- varName = prop.name.text;
73
- }
74
- }
75
- return path && varName ? { path, varName } : null;
76
- }
77
- function processRouterValue(value) {
78
- // Form 1: Identifier → createApp({ router: myRouter })
79
- if (ts.isIdentifier(value)) {
80
- return [{ path: '/api', varName: value.text }];
81
- }
82
- // Form 2: Object → createApp({ router: { path: '/v1', router: myRouter } })
83
- if (ts.isObjectLiteralExpression(value)) {
84
- const mount = extractMountFromObject(value);
85
- return mount ? [mount] : null;
86
- }
87
- // Form 3: Array → createApp({ router: [...] })
88
- if (ts.isArrayLiteralExpression(value)) {
89
- const mounts = [];
90
- for (const element of value.elements) {
91
- if (ts.isObjectLiteralExpression(element)) {
92
- const mount = extractMountFromObject(element);
93
- if (mount)
94
- mounts.push(mount);
95
- }
96
- }
97
- return mounts.length > 0 ? mounts : null;
98
- }
99
- return null;
100
- }
101
- function visit(node) {
102
- if (result)
103
- return;
104
- // Find createApp(...) — with or without await
105
- let callExpr;
106
- if (ts.isCallExpression(node) && ts.isIdentifier(node.expression)) {
107
- if (node.expression.text === 'createApp')
108
- callExpr = node;
109
- }
110
- else if (ts.isAwaitExpression(node) && ts.isCallExpression(node.expression)) {
111
- const call = node.expression;
112
- if (ts.isIdentifier(call.expression) && call.expression.text === 'createApp') {
113
- callExpr = call;
114
- }
115
- }
116
- if (callExpr && callExpr.arguments.length > 0) {
117
- const configArg = callExpr.arguments[0];
118
- if (configArg && ts.isObjectLiteralExpression(configArg)) {
119
- for (const prop of configArg.properties) {
120
- // Handle: router: value
121
- if (ts.isPropertyAssignment(prop) &&
122
- ts.isIdentifier(prop.name) &&
123
- prop.name.text === 'router') {
124
- result = processRouterValue(prop.initializer);
125
- return;
126
- }
127
- // Handle shorthand: createApp({ router })
128
- if (ts.isShorthandPropertyAssignment(prop) && prop.name.text === 'router') {
129
- result = [{ path: '/api', varName: 'router' }];
130
- return;
131
- }
132
- }
133
- }
134
- }
135
- ts.forEachChild(node, visit);
136
- }
137
- visit(sourceFile);
138
- return result;
139
- }
140
- /**
141
- * Build import map from the source file: variable name → import path
142
- */
143
- function buildImportMap(sourceFile) {
144
- const importMap = new Map();
145
- for (const stmt of sourceFile.statements) {
146
- if (!ts.isImportDeclaration(stmt) || !ts.isStringLiteral(stmt.moduleSpecifier))
147
- continue;
148
- const importPath = stmt.moduleSpecifier.text;
149
- const clause = stmt.importClause;
150
- if (!clause)
151
- continue;
152
- // Default import: import router from './api'
153
- if (clause.name) {
154
- importMap.set(clause.name.text, importPath);
155
- }
156
- // Named imports: import { v1, v2 } from './routers'
157
- if (clause.namedBindings && ts.isNamedImports(clause.namedBindings)) {
158
- for (const spec of clause.namedBindings.elements) {
159
- importMap.set(spec.name.text, importPath);
160
- }
161
- }
162
- }
163
- return importMap;
164
- }
165
- /**
166
- * Detect whether `src/app.ts` uses `createApp({ router })`.
167
- *
168
- * Returns `{ detected: false, mounts: [] }` when:
169
- * - `src/app.ts` doesn't exist
170
- * - `createApp()` is called without a `router` property
171
- * - Router variables can't be resolved to files
172
- */
173
- export async function detectExplicitRouter(rootDir, logger) {
174
- const noDetection = { detected: false, mounts: [] };
175
- // Look for app.ts in src/ (standard location), then root
176
- let appFile = join(rootDir, 'src', 'app.ts');
177
- if (!(await Bun.file(appFile).exists())) {
178
- appFile = join(rootDir, 'app.ts');
179
- if (!(await Bun.file(appFile).exists())) {
180
- logger.trace('[router-detect] No app.ts found');
181
- return noDetection;
182
- }
183
- }
184
- try {
185
- const source = await Bun.file(appFile).text();
186
- const appDir = dirname(appFile);
187
- // Quick bail-out before parsing
188
- if (!source.includes('createApp') || !source.includes('router')) {
189
- logger.trace('[router-detect] No createApp + router pattern found in %s', appFile);
190
- return noDetection;
191
- }
192
- // Parse with TypeScript
193
- const sourceFile = ts.createSourceFile(appFile, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
194
- const rawMounts = extractRouterMounts(sourceFile);
195
- if (!rawMounts || rawMounts.length === 0) {
196
- logger.trace('[router-detect] createApp() found but no router property');
197
- return noDetection;
198
- }
199
- // Build import map to resolve variable names to file paths
200
- const importMap = buildImportMap(sourceFile);
201
- // Resolve each router variable to its file
202
- const mounts = [];
203
- for (const { path, varName } of rawMounts) {
204
- const importPath = importMap.get(varName);
205
- if (!importPath) {
206
- logger.debug('[router-detect] Router variable %s is not imported — may be defined locally', varName);
207
- continue;
208
- }
209
- const resolvedFile = await resolveImportFile(appDir, importPath);
210
- if (!resolvedFile) {
211
- logger.warn('[router-detect] Could not resolve import %s for router variable %s', importPath, varName);
212
- continue;
213
- }
214
- logger.trace('[router-detect] Found router mount: %s → %s (%s)', path, varName, resolvedFile);
215
- mounts.push({ path, routerFile: resolvedFile });
216
- }
217
- if (mounts.length === 0) {
218
- logger.debug('[router-detect] Router variables found but none could be resolved to files');
219
- return noDetection;
220
- }
221
- logger.debug('[router-detect] Detected %d explicit router mount(s) in %s', mounts.length, appFile);
222
- return { detected: true, mounts };
223
- }
224
- catch (error) {
225
- logger.warn('[router-detect] Failed to parse %s: %s', appFile, error instanceof Error ? error.message : String(error));
226
- return noDetection;
227
- }
228
- }
229
- //# sourceMappingURL=app-router-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-router-detector.js","sourceRoot":"","sources":["../../../src/cmd/build/app-router-detector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Simple formatter for schema code strings.
3
- * Adds basic indentation and line breaks for readability.
4
- */
5
- export declare function formatSchemaCode(code: string): string;
6
- //# sourceMappingURL=format-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-schema.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/format-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6DrD"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Simple formatter for schema code strings.
3
- * Adds basic indentation and line breaks for readability.
4
- */
5
- export function formatSchemaCode(code) {
6
- if (!code)
7
- return code;
8
- let indentLevel = 0;
9
- const indentSize = 2;
10
- const lines = [];
11
- let currentLine = '';
12
- for (let i = 0; i < code.length; i++) {
13
- const char = code[i];
14
- const nextChar = code[i + 1];
15
- const prevChar = i > 0 ? code[i - 1] : '';
16
- // Skip existing whitespace/newlines
17
- if (char === '\n' || char === '\r' || (char === ' ' && prevChar === ' ')) {
18
- continue;
19
- }
20
- // Handle opening braces
21
- if (char === '{') {
22
- currentLine += char;
23
- lines.push(' '.repeat(indentLevel * indentSize) + currentLine.trim());
24
- indentLevel++;
25
- currentLine = '';
26
- continue;
27
- }
28
- // Handle closing braces
29
- if (char === '}') {
30
- if (currentLine.trim()) {
31
- lines.push(' '.repeat(indentLevel * indentSize) + currentLine.trim());
32
- currentLine = '';
33
- }
34
- indentLevel--;
35
- // Check if next char is closing paren - if so, put on same line
36
- if (nextChar === ')') {
37
- currentLine = '}';
38
- }
39
- else {
40
- lines.push(' '.repeat(indentLevel * indentSize) + char);
41
- }
42
- continue;
43
- }
44
- // Handle commas - add line break after
45
- if (char === ',') {
46
- currentLine += char;
47
- lines.push(' '.repeat(indentLevel * indentSize) + currentLine.trim());
48
- currentLine = '';
49
- continue;
50
- }
51
- // Accumulate characters
52
- currentLine += char;
53
- }
54
- // Add any remaining content
55
- if (currentLine.trim()) {
56
- lines.push(' '.repeat(indentLevel * indentSize) + currentLine.trim());
57
- }
58
- return lines.join('\n');
59
- }
60
- //# sourceMappingURL=format-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"format-schema.js","sourceRoot":"","sources":["../../../src/cmd/build/format-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1C,oCAAoC;QACpC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE,CAAC;YAC1E,SAAS;QACV,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,WAAW,IAAI,IAAI,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,WAAW,EAAE,CAAC;YACd,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS;QACV,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,WAAW,GAAG,EAAE,CAAC;YAClB,CAAC;YACD,WAAW,EAAE,CAAC;YACd,gEAAgE;YAChE,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACtB,WAAW,GAAG,GAAG,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC;YACD,SAAS;QACV,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,WAAW,IAAI,IAAI,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS;QACV,CAAC;QAED,wBAAwB;QACxB,WAAW,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,4BAA4B;IAC5B,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Agent Discovery — import-based
3
- *
4
- * Discovers agents by scanning src/agent/**\/*.ts files and importing them
5
- * at build time. The agent instance already knows its own metadata, schemas,
6
- * and evals — no AST parsing needed.
7
- */
8
- import type { Logger } from '../../../types';
9
- export interface AgentMetadata {
10
- filename: string;
11
- name: string;
12
- id: string;
13
- agentId: string;
14
- version: string;
15
- description?: string;
16
- inputSchemaCode?: string;
17
- outputSchemaCode?: string;
18
- evals?: EvalMetadata[];
19
- }
20
- export interface EvalMetadata {
21
- id: string;
22
- identifier: string;
23
- name: string;
24
- filename: string;
25
- version: string;
26
- description?: string;
27
- agentIdentifier: string;
28
- projectId: string;
29
- }
30
- /**
31
- * Discover all agents in src/agent directory.
32
- *
33
- * Imports each agent file at build time — the agent instance already knows
34
- * its own metadata, schemas, and evals. No AST parsing needed.
35
- */
36
- export declare function discoverAgents(srcDir: string, projectId: string, deploymentId: string, logger: Logger): Promise<AgentMetadata[]>;
37
- //# sourceMappingURL=agent-discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-discovery.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/agent-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAS7C,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CAClB;AAwQD;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC,CAiE1B"}
@@ -1,263 +0,0 @@
1
- /**
2
- * Agent Discovery — import-based
3
- *
4
- * Discovers agents by scanning src/agent/**\/*.ts files and importing them
5
- * at build time. The agent instance already knows its own metadata, schemas,
6
- * and evals — no AST parsing needed.
7
- */
8
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
9
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
10
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
11
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
12
- });
13
- }
14
- return path;
15
- };
16
- import { dirname, join, relative } from 'node:path';
17
- import { StructuredError } from '@agentuity/core';
18
- import { toForwardSlash } from '../../../utils/normalize-path';
19
- const DuplicateEvalNameError = StructuredError('DuplicateEvalNameError')();
20
- /**
21
- * Hash function for generating stable IDs
22
- */
23
- function hash(...val) {
24
- const hasher = new Bun.CryptoHasher('sha256');
25
- for (const v of val)
26
- hasher.update(v);
27
- return hasher.digest().toHex();
28
- }
29
- function hashSHA1(...val) {
30
- const hasher = new Bun.CryptoHasher('sha1');
31
- for (const v of val)
32
- hasher.update(v);
33
- return hasher.digest().toHex();
34
- }
35
- function getAgentId(projectId, deploymentId, filename, version) {
36
- return `agentid_${hashSHA1(projectId, deploymentId, filename, version)}`;
37
- }
38
- function generateStableAgentId(projectId, name) {
39
- return `agent_${hashSHA1(projectId, name)}`.substring(0, 64);
40
- }
41
- function getEvalId(projectId, deploymentId, filename, name, version) {
42
- return `evalid_${hashSHA1(projectId, deploymentId, filename, name, version)}`;
43
- }
44
- function generateStableEvalId(projectId, agentId, name) {
45
- return `eval_${hashSHA1(projectId, agentId, name)}`.substring(0, 64);
46
- }
47
- /**
48
- * Convert a StandardSchemaV1-compatible schema to a JSON Schema string.
49
- * Dynamically imports toJSONSchema from @agentuity/schema (available in user's project).
50
- */
51
- async function schemaToJsonString(schema, rootDir, logger) {
52
- if (!schema)
53
- return undefined;
54
- try {
55
- // Resolve @agentuity/schema from the user's project and import its public entry point.
56
- // The CLI doesn't declare @agentuity/schema as its own dependency — it lives in the
57
- // user's node_modules, so we resolve the path dynamically.
58
- const schemaPackageDir = join(rootDir, 'node_modules', '@agentuity', 'schema');
59
- if (!(await Bun.file(join(schemaPackageDir, 'package.json')).exists())) {
60
- logger.debug('[agent-discovery] @agentuity/schema not found in user project');
61
- return undefined;
62
- }
63
- const { toJSONSchema } = await import(__rewriteRelativeImportExtension(schemaPackageDir));
64
- const jsonSchema = toJSONSchema(schema);
65
- return JSON.stringify(jsonSchema);
66
- }
67
- catch (error) {
68
- logger.debug('[agent-discovery] Failed to convert schema to JSON Schema: %s', error instanceof Error ? error.message : String(error));
69
- return undefined;
70
- }
71
- }
72
- /**
73
- * Import an agent file and extract metadata from the agent instance.
74
- */
75
- async function importAgentMetadata(filePath, relativeFilename, rootDir, projectId, deploymentId, logger) {
76
- try {
77
- const source = await Bun.file(filePath).text();
78
- const version = hash(source);
79
- // Import the agent file — Bun handles TS natively
80
- // No source-level gate: files may re-export agents created elsewhere
81
- const mod = await import(__rewriteRelativeImportExtension(filePath));
82
- const agent = mod.default;
83
- if (!agent?.metadata?.name) {
84
- logger.debug('[agent-discovery] No valid agent found in %s', relativeFilename);
85
- return null;
86
- }
87
- const name = agent.metadata.name;
88
- const description = agent.metadata.description;
89
- const id = getAgentId(projectId, deploymentId, relativeFilename, version);
90
- const agentId = generateStableAgentId(projectId, name);
91
- // Extract schemas as JSON Schema strings
92
- const inputSchemaCode = await schemaToJsonString(agent.inputSchema, rootDir, logger);
93
- const outputSchemaCode = await schemaToJsonString(agent.outputSchema, rootDir, logger);
94
- // Extract evals from agent.evals array (self-registered by createEval())
95
- const evals = [];
96
- if (agent.evals && Array.isArray(agent.evals) && agent.evals.length > 0) {
97
- for (const evalItem of agent.evals) {
98
- const evalName = evalItem.metadata?.name ?? evalItem.name;
99
- if (!evalName)
100
- continue;
101
- const evalDescription = evalItem.metadata?.description ?? evalItem.description;
102
- const evalVersion = version; // same file version
103
- const evalId = getEvalId(projectId, deploymentId, relativeFilename, evalName, evalVersion);
104
- const evalIdentifier = generateStableEvalId(projectId, agentId, evalName);
105
- logger.trace('Found eval "%s" in %s (identifier: %s)', evalName, relativeFilename, evalIdentifier);
106
- evals.push({
107
- id: evalId,
108
- identifier: evalIdentifier,
109
- name: evalName,
110
- filename: relativeFilename,
111
- version: evalVersion,
112
- description: evalDescription,
113
- agentIdentifier: agentId,
114
- projectId,
115
- });
116
- }
117
- }
118
- // Also check for evals in separate eval.ts file in same directory
119
- const agentDir = dirname(filePath);
120
- const evalsPath = join(agentDir, 'eval.ts');
121
- if (await Bun.file(evalsPath).exists()) {
122
- const evalsSource = await Bun.file(evalsPath).text();
123
- if (evalsSource.includes('createEval')) {
124
- try {
125
- await import(__rewriteRelativeImportExtension(evalsPath));
126
- // After importing, the evals self-register on the agent via agent.createEval()
127
- // Re-check agent.evals for any newly registered evals
128
- if (agent.evals && Array.isArray(agent.evals)) {
129
- const relativeEvalsPath = toForwardSlash(relative(join(rootDir), evalsPath));
130
- const evalVersion = hash(evalsSource);
131
- for (const evalItem of agent.evals) {
132
- const evalName = evalItem.metadata?.name ?? evalItem.name;
133
- if (!evalName)
134
- continue;
135
- // Skip if already collected from agent file
136
- if (evals.some((e) => e.name === evalName))
137
- continue;
138
- const evalDescription = evalItem.metadata?.description ?? evalItem.description;
139
- const evalId = getEvalId(projectId, deploymentId, relativeEvalsPath, evalName, evalVersion);
140
- const evalIdentifier = generateStableEvalId(projectId, agentId, evalName);
141
- logger.trace('Found eval "%s" in eval.ts for agent %s (identifier: %s)', evalName, name, evalIdentifier);
142
- evals.push({
143
- id: evalId,
144
- identifier: evalIdentifier,
145
- name: evalName,
146
- filename: relativeEvalsPath,
147
- version: evalVersion,
148
- description: evalDescription,
149
- agentIdentifier: agentId,
150
- projectId,
151
- });
152
- }
153
- }
154
- }
155
- catch (error) {
156
- logger.warn('[agent-discovery] Failed to import evals from %s: %s', evalsPath, error instanceof Error ? error.message : String(error));
157
- }
158
- }
159
- }
160
- // Check for duplicate eval names across sources (agent file + eval.ts).
161
- // Same name + same agent = same stable identifier → duplicate key error
162
- // on the backend database.
163
- if (evals.length > 1) {
164
- const seen = new Map();
165
- for (const evalItem of evals) {
166
- const prev = seen.get(evalItem.name);
167
- if (prev && prev !== evalItem.filename) {
168
- throw new DuplicateEvalNameError({
169
- message: `Duplicate eval name '${evalItem.name}' for agent '${name}': ` +
170
- `defined in both '${prev}' and '${evalItem.filename}'. ` +
171
- 'Eval names must be unique per agent.',
172
- agent: name,
173
- filename: evalItem.filename,
174
- });
175
- }
176
- seen.set(evalItem.name, evalItem.filename);
177
- }
178
- }
179
- return {
180
- filename: relativeFilename,
181
- name,
182
- id,
183
- agentId,
184
- version,
185
- description,
186
- inputSchemaCode,
187
- outputSchemaCode,
188
- evals: evals.length > 0 ? evals : undefined,
189
- };
190
- }
191
- catch (error) {
192
- const errorMsg = error instanceof Error ? error.message : String(error);
193
- throw new Error(`Failed to import agent at ${relativeFilename}:\n` +
194
- ` ${errorMsg}\n\n` +
195
- `Agent files are imported at build time to extract metadata. Code that ` +
196
- `runs at module scope (outside of setup() or handler()) will execute ` +
197
- `during the build — including SDK client constructors that require API ` +
198
- `keys or environment variables.\n\n` +
199
- `To fix this, move initialization code into setup() or handler():\n\n` +
200
- ` // ❌ Don't do this — runs at import time:\n` +
201
- ` const client = new OpenAI();\n` +
202
- ` export default createAgent('my-agent', { handler: async (ctx) => { ... } });\n\n` +
203
- ` // ✅ Do this instead — runs at startup:\n` +
204
- ` export default createAgent('my-agent', {\n` +
205
- ` setup: async () => ({ client: new OpenAI() }),\n` +
206
- ` handler: async (ctx) => { const { client } = ctx.config; ... },\n` +
207
- ` });\n\n` +
208
- `See https://agentuity.dev/agents/creating-agents for more information.`);
209
- }
210
- }
211
- /**
212
- * Discover all agents in src/agent directory.
213
- *
214
- * Imports each agent file at build time — the agent instance already knows
215
- * its own metadata, schemas, and evals. No AST parsing needed.
216
- */
217
- export async function discoverAgents(srcDir, projectId, deploymentId, logger) {
218
- const agentsDir = join(srcDir, 'agent');
219
- const agents = [];
220
- const rootDir = join(srcDir, '..');
221
- // Scan all .ts files in agent directory
222
- const glob = new Bun.Glob('**/*.ts');
223
- let files;
224
- try {
225
- files = await Array.fromAsync(glob.scan(agentsDir));
226
- }
227
- catch {
228
- logger.trace('No agent directory found at %s', agentsDir);
229
- return agents;
230
- }
231
- // Track seen agent names to deduplicate — e.g., index.ts re-exporting agent.ts
232
- const seenAgentNames = new Set();
233
- for (const file of files) {
234
- const filePath = join(agentsDir, file);
235
- // Skip eval.ts files (processed as part of agent discovery)
236
- if (file.endsWith('/eval.ts') || file === 'eval.ts') {
237
- continue;
238
- }
239
- // Skip test files (*.test.ts, *.spec.ts) and test directories
240
- if (file.startsWith('test/') ||
241
- file.includes('/test/') ||
242
- file.startsWith('__tests__/') ||
243
- file.includes('/__tests__/') ||
244
- file.endsWith('.test.ts') ||
245
- file.endsWith('.spec.ts')) {
246
- continue;
247
- }
248
- const relativeFilename = toForwardSlash(relative(rootDir, filePath));
249
- const agentMetadata = await importAgentMetadata(filePath, relativeFilename, rootDir, projectId, deploymentId, logger);
250
- if (agentMetadata) {
251
- if (seenAgentNames.has(agentMetadata.name)) {
252
- logger.trace('Skipping duplicate agent %s from %s (already discovered)', agentMetadata.name, relativeFilename);
253
- continue;
254
- }
255
- seenAgentNames.add(agentMetadata.name);
256
- logger.trace('Discovered agent: %s at %s', agentMetadata.name, relativeFilename);
257
- agents.push(agentMetadata);
258
- }
259
- }
260
- logger.debug('Discovered %d agent(s)', agents.length);
261
- return agents;
262
- }
263
- //# sourceMappingURL=agent-discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-discovery.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/agent-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;;;AAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,sBAAsB,GAAG,eAAe,CAAC,wBAAwB,CAAC,EAGpE,CAAC;AAyBL;;GAEG;AACH,SAAS,IAAI,CAAC,GAAG,GAAa;IAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,GAAa;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAClB,SAAiB,EACjB,YAAoB,EACpB,QAAgB,EAChB,OAAe;IAEf,OAAO,WAAW,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,IAAY;IAC7D,OAAO,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CACjB,SAAiB,EACjB,YAAoB,EACpB,QAAgB,EAChB,IAAY,EACZ,OAAe;IAEf,OAAO,UAAU,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAY;IAC7E,OAAO,QAAQ,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAChC,MAAe,EACf,OAAe,EACf,MAAc;IAEd,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IAAI,CAAC;QACJ,uFAAuF;QACvF,oFAAoF;QACpF,2DAA2D;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC9E,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,kCAAC,gBAAgB,EAAC,CAAC;QACxD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,KAAK,CACX,+DAA+D,EAC/D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CACjC,QAAgB,EAChB,gBAAwB,EACxB,OAAe,EACf,SAAiB,EACjB,YAAoB,EACpB,MAAc;IAEd,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7B,kDAAkD;QAClD,qEAAqE;QACrE,MAAM,GAAG,GAAG,MAAM,MAAM,kCAAC,QAAQ,EAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QAE1B,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,gBAAgB,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/C,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEvD,yCAAyC;QACzC,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrF,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEvF,yEAAyE;QACzE,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;gBAC1D,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;gBAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,oBAAoB;gBACjD,MAAM,MAAM,GAAG,SAAS,CACvB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,WAAW,CACX,CAAC;gBACF,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAE1E,MAAM,CAAC,KAAK,CACX,wCAAwC,EACxC,QAAQ,EACR,gBAAgB,EAChB,cAAc,CACd,CAAC;gBAEF,KAAK,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,MAAM;oBACV,UAAU,EAAE,cAAc;oBAC1B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,gBAAgB;oBAC1B,OAAO,EAAE,WAAW;oBACpB,WAAW,EAAE,eAAe;oBAC5B,eAAe,EAAE,OAAO;oBACxB,SAAS;iBACT,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,kEAAkE;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACJ,MAAM,MAAM,kCAAC,SAAS,EAAC,CAAC;oBACxB,+EAA+E;oBAC/E,sDAAsD;oBACtD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC/C,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;wBAEtC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;4BAC1D,IAAI,CAAC,QAAQ;gCAAE,SAAS;4BAExB,4CAA4C;4BAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;gCAAE,SAAS;4BAErD,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;4BAC/E,MAAM,MAAM,GAAG,SAAS,CACvB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,WAAW,CACX,CAAC;4BACF,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;4BAE1E,MAAM,CAAC,KAAK,CACX,0DAA0D,EAC1D,QAAQ,EACR,IAAI,EACJ,cAAc,CACd,CAAC;4BAEF,KAAK,CAAC,IAAI,CAAC;gCACV,EAAE,EAAE,MAAM;gCACV,UAAU,EAAE,cAAc;gCAC1B,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,iBAAiB;gCAC3B,OAAO,EAAE,WAAW;gCACpB,WAAW,EAAE,eAAe;gCAC5B,eAAe,EAAE,OAAO;gCACxB,SAAS;6BACT,CAAC,CAAC;wBACJ,CAAC;oBACF,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,CACV,sDAAsD,EACtD,SAAS,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,2BAA2B;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACxC,MAAM,IAAI,sBAAsB,CAAC;wBAChC,OAAO,EACN,wBAAwB,QAAQ,CAAC,IAAI,gBAAgB,IAAI,KAAK;4BAC9D,oBAAoB,IAAI,UAAU,QAAQ,CAAC,QAAQ,KAAK;4BACxD,sCAAsC;wBACvC,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC3B,CAAC,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;QAED,OAAO;YACN,QAAQ,EAAE,gBAAgB;YAC1B,IAAI;YACJ,EAAE;YACF,OAAO;YACP,OAAO;YACP,WAAW;YACX,eAAe;YACf,gBAAgB;YAChB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SAC3C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CACd,6BAA6B,gBAAgB,KAAK;YACjD,KAAK,QAAQ,MAAM;YACnB,wEAAwE;YACxE,sEAAsE;YACtE,wEAAwE;YACxE,oCAAoC;YACpC,sEAAsE;YACtE,+CAA+C;YAC/C,kCAAkC;YAClC,oFAAoF;YACpF,6CAA6C;YAC7C,8CAA8C;YAC9C,sDAAsD;YACtD,uEAAuE;YACvE,WAAW;YACX,wEAAwE,CACzE,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,MAAc,EACd,SAAiB,EACjB,YAAoB,EACpB,MAAc;IAEd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEnC,wCAAwC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACJ,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEvC,4DAA4D;QAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrD,SAAS;QACV,CAAC;QAED,8DAA8D;QAC9D,IACC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACxB,CAAC;YACF,SAAS;QACV,CAAC;QAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC9C,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,YAAY,EACZ,MAAM,CACN,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YACnB,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,CACX,0DAA0D,EAC1D,aAAa,CAAC,IAAI,EAClB,gBAAgB,CAChB,CAAC;gBACF,SAAS;YACV,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AACf,CAAC"}