@agentuity/cli 0.0.94 → 0.0.96

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 (277) hide show
  1. package/AGENTS.md +54 -0
  2. package/dist/auth.d.ts +1 -1
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +8 -5
  5. package/dist/auth.js.map +1 -1
  6. package/dist/banner.js +1 -1
  7. package/dist/banner.js.map +1 -1
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +190 -27
  10. package/dist/cli.js.map +1 -1
  11. package/dist/cmd/auth/signup.js +1 -1
  12. package/dist/cmd/auth/signup.js.map +1 -1
  13. package/dist/cmd/build/ast.d.ts.map +1 -1
  14. package/dist/cmd/build/ast.js +7 -0
  15. package/dist/cmd/build/ast.js.map +1 -1
  16. package/dist/cmd/build/entry-generator.d.ts +20 -0
  17. package/dist/cmd/build/entry-generator.d.ts.map +1 -0
  18. package/dist/cmd/build/entry-generator.js +366 -0
  19. package/dist/cmd/build/entry-generator.js.map +1 -0
  20. package/dist/cmd/build/index.d.ts.map +1 -1
  21. package/dist/cmd/build/index.js +5 -23
  22. package/dist/cmd/build/index.js.map +1 -1
  23. package/dist/cmd/build/vite/agent-discovery.d.ts +33 -0
  24. package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -0
  25. package/dist/cmd/build/vite/agent-discovery.js +297 -0
  26. package/dist/cmd/build/vite/agent-discovery.js.map +1 -0
  27. package/dist/cmd/build/vite/browser-env-plugin.d.ts +9 -0
  28. package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +1 -0
  29. package/dist/cmd/build/vite/browser-env-plugin.js +28 -0
  30. package/dist/cmd/build/vite/browser-env-plugin.js.map +1 -0
  31. package/dist/cmd/build/vite/bun-dev-server.d.ts +29 -0
  32. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -0
  33. package/dist/cmd/build/vite/bun-dev-server.js +54 -0
  34. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -0
  35. package/dist/cmd/build/vite/config-loader.d.ts +23 -0
  36. package/dist/cmd/build/vite/config-loader.d.ts.map +1 -0
  37. package/dist/cmd/build/vite/config-loader.js +50 -0
  38. package/dist/cmd/build/vite/config-loader.js.map +1 -0
  39. package/dist/cmd/build/vite/index.d.ts +26 -0
  40. package/dist/cmd/build/vite/index.d.ts.map +1 -0
  41. package/dist/cmd/build/vite/index.js +127 -0
  42. package/dist/cmd/build/vite/index.js.map +1 -0
  43. package/dist/cmd/build/vite/lifecycle-generator.d.ts +11 -0
  44. package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +1 -0
  45. package/dist/cmd/build/vite/lifecycle-generator.js +35 -0
  46. package/dist/cmd/build/vite/lifecycle-generator.js.map +1 -0
  47. package/dist/cmd/build/vite/metadata-generator.d.ts +32 -0
  48. package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -0
  49. package/dist/cmd/build/vite/metadata-generator.js +489 -0
  50. package/dist/cmd/build/vite/metadata-generator.js.map +1 -0
  51. package/dist/cmd/build/vite/patch-plugin.d.ts +21 -0
  52. package/dist/cmd/build/vite/patch-plugin.d.ts.map +1 -0
  53. package/dist/cmd/build/vite/patch-plugin.js +70 -0
  54. package/dist/cmd/build/vite/patch-plugin.js.map +1 -0
  55. package/dist/cmd/build/vite/registry-generator.d.ts +19 -0
  56. package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -0
  57. package/dist/cmd/build/{route-registry.js → vite/registry-generator.js} +126 -48
  58. package/dist/cmd/build/vite/registry-generator.js.map +1 -0
  59. package/dist/cmd/build/vite/route-discovery.d.ts +58 -0
  60. package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -0
  61. package/dist/cmd/build/vite/route-discovery.js +125 -0
  62. package/dist/cmd/build/vite/route-discovery.js.map +1 -0
  63. package/dist/cmd/build/vite/server-bundler.d.ts +16 -0
  64. package/dist/cmd/build/vite/server-bundler.d.ts.map +1 -0
  65. package/dist/cmd/build/vite/server-bundler.js +194 -0
  66. package/dist/cmd/build/vite/server-bundler.js.map +1 -0
  67. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +19 -0
  68. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -0
  69. package/dist/cmd/build/vite/vite-asset-server-config.js +105 -0
  70. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -0
  71. package/dist/cmd/build/vite/vite-asset-server.d.ts +23 -0
  72. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -0
  73. package/dist/cmd/build/vite/vite-asset-server.js +40 -0
  74. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -0
  75. package/dist/cmd/build/vite/vite-builder.d.ts +44 -0
  76. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -0
  77. package/dist/cmd/build/vite/vite-builder.js +232 -0
  78. package/dist/cmd/build/vite/vite-builder.js.map +1 -0
  79. package/dist/cmd/build/vite/workbench-generator.d.ts +10 -0
  80. package/dist/cmd/build/vite/workbench-generator.d.ts.map +1 -0
  81. package/dist/cmd/build/vite/workbench-generator.js +135 -0
  82. package/dist/cmd/build/vite/workbench-generator.js.map +1 -0
  83. package/dist/cmd/build/vite-bundler.d.ts +23 -0
  84. package/dist/cmd/build/vite-bundler.d.ts.map +1 -0
  85. package/dist/cmd/build/vite-bundler.js +79 -0
  86. package/dist/cmd/build/vite-bundler.js.map +1 -0
  87. package/dist/cmd/cloud/agent/get.d.ts.map +1 -1
  88. package/dist/cmd/cloud/agent/get.js +1 -0
  89. package/dist/cmd/cloud/agent/get.js.map +1 -1
  90. package/dist/cmd/cloud/agent/list.d.ts.map +1 -1
  91. package/dist/cmd/cloud/agent/list.js +1 -0
  92. package/dist/cmd/cloud/agent/list.js.map +1 -1
  93. package/dist/cmd/cloud/db/get.d.ts.map +1 -1
  94. package/dist/cmd/cloud/db/get.js +1 -0
  95. package/dist/cmd/cloud/db/get.js.map +1 -1
  96. package/dist/cmd/cloud/db/list.d.ts.map +1 -1
  97. package/dist/cmd/cloud/db/list.js +1 -0
  98. package/dist/cmd/cloud/db/list.js.map +1 -1
  99. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  100. package/dist/cmd/cloud/deploy.js +152 -128
  101. package/dist/cmd/cloud/deploy.js.map +1 -1
  102. package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
  103. package/dist/cmd/cloud/deployment/list.js +4 -0
  104. package/dist/cmd/cloud/deployment/list.js.map +1 -1
  105. package/dist/cmd/cloud/env/list.d.ts.map +1 -1
  106. package/dist/cmd/cloud/env/list.js +1 -0
  107. package/dist/cmd/cloud/env/list.js.map +1 -1
  108. package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
  109. package/dist/cmd/cloud/keyvalue/get.js +1 -0
  110. package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
  111. package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
  112. package/dist/cmd/cloud/keyvalue/keys.js +1 -0
  113. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
  114. package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -1
  115. package/dist/cmd/cloud/keyvalue/list-namespaces.js +1 -0
  116. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
  117. package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -1
  118. package/dist/cmd/cloud/keyvalue/stats.js +1 -0
  119. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
  120. package/dist/cmd/cloud/secret/list.d.ts.map +1 -1
  121. package/dist/cmd/cloud/secret/list.js +1 -0
  122. package/dist/cmd/cloud/secret/list.js.map +1 -1
  123. package/dist/cmd/cloud/session/list.d.ts.map +1 -1
  124. package/dist/cmd/cloud/session/list.js +4 -0
  125. package/dist/cmd/cloud/session/list.js.map +1 -1
  126. package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
  127. package/dist/cmd/cloud/storage/get.js +1 -0
  128. package/dist/cmd/cloud/storage/get.js.map +1 -1
  129. package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
  130. package/dist/cmd/cloud/storage/list.js +3 -0
  131. package/dist/cmd/cloud/storage/list.js.map +1 -1
  132. package/dist/cmd/cloud/stream/get.d.ts.map +1 -1
  133. package/dist/cmd/cloud/stream/get.js +1 -0
  134. package/dist/cmd/cloud/stream/get.js.map +1 -1
  135. package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
  136. package/dist/cmd/cloud/stream/list.js +1 -0
  137. package/dist/cmd/cloud/stream/list.js.map +1 -1
  138. package/dist/cmd/cloud/vector/get.d.ts.map +1 -1
  139. package/dist/cmd/cloud/vector/get.js +1 -0
  140. package/dist/cmd/cloud/vector/get.js.map +1 -1
  141. package/dist/cmd/cloud/vector/search.d.ts.map +1 -1
  142. package/dist/cmd/cloud/vector/search.js +1 -0
  143. package/dist/cmd/cloud/vector/search.js.map +1 -1
  144. package/dist/cmd/dev/index.d.ts.map +1 -1
  145. package/dist/cmd/dev/index.js +291 -751
  146. package/dist/cmd/dev/index.js.map +1 -1
  147. package/dist/cmd/dev/sync.d.ts +1 -1
  148. package/dist/cmd/dev/sync.d.ts.map +1 -1
  149. package/dist/cmd/dev/sync.js +3 -0
  150. package/dist/cmd/dev/sync.js.map +1 -1
  151. package/dist/cmd/profile/show.d.ts.map +1 -1
  152. package/dist/cmd/profile/show.js +3 -4
  153. package/dist/cmd/profile/show.js.map +1 -1
  154. package/dist/cmd/project/create.d.ts.map +1 -1
  155. package/dist/cmd/project/create.js +3 -4
  156. package/dist/cmd/project/create.js.map +1 -1
  157. package/dist/cmd/project/list.d.ts.map +1 -1
  158. package/dist/cmd/project/list.js +1 -0
  159. package/dist/cmd/project/list.js.map +1 -1
  160. package/dist/cmd/project/show.d.ts.map +1 -1
  161. package/dist/cmd/project/show.js +1 -0
  162. package/dist/cmd/project/show.js.map +1 -1
  163. package/dist/cmd/upgrade/index.d.ts.map +1 -1
  164. package/dist/cmd/upgrade/index.js +5 -3
  165. package/dist/cmd/upgrade/index.js.map +1 -1
  166. package/dist/config.d.ts +1 -1
  167. package/dist/config.d.ts.map +1 -1
  168. package/dist/config.js +29 -11
  169. package/dist/config.js.map +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js.map +1 -1
  173. package/dist/runtime-bootstrap.d.ts +3 -2
  174. package/dist/runtime-bootstrap.d.ts.map +1 -1
  175. package/dist/runtime-bootstrap.js +7 -2
  176. package/dist/runtime-bootstrap.js.map +1 -1
  177. package/dist/schemas/deploy.d.ts +1 -1
  178. package/dist/types.d.ts +40 -1
  179. package/dist/types.d.ts.map +1 -1
  180. package/dist/types.js.map +1 -1
  181. package/dist/utils/bun-version-checker.d.ts +11 -0
  182. package/dist/utils/bun-version-checker.d.ts.map +1 -0
  183. package/dist/utils/bun-version-checker.js +56 -0
  184. package/dist/utils/bun-version-checker.js.map +1 -0
  185. package/dist/version-check.d.ts.map +1 -1
  186. package/dist/version-check.js +5 -2
  187. package/dist/version-check.js.map +1 -1
  188. package/package.json +10 -3
  189. package/src/auth.ts +9 -5
  190. package/src/banner.ts +1 -1
  191. package/src/cli.ts +228 -29
  192. package/src/cmd/auth/signup.ts +1 -1
  193. package/src/cmd/build/ast.ts +7 -0
  194. package/src/cmd/build/entry-generator.ts +404 -0
  195. package/src/cmd/build/index.ts +7 -28
  196. package/src/cmd/build/vite/agent-discovery.ts +467 -0
  197. package/src/cmd/build/vite/browser-env-plugin.ts +34 -0
  198. package/src/cmd/build/vite/bun-dev-server.ts +78 -0
  199. package/src/cmd/build/vite/config-loader.ts +70 -0
  200. package/src/cmd/build/vite/index.ts +166 -0
  201. package/src/cmd/build/vite/lifecycle-generator.ts +43 -0
  202. package/src/cmd/build/vite/metadata-generator.ts +602 -0
  203. package/src/cmd/build/vite/patch-plugin.ts +88 -0
  204. package/src/cmd/build/vite/registry-generator.ts +288 -0
  205. package/src/cmd/build/vite/route-discovery.ts +186 -0
  206. package/src/cmd/build/vite/server-bundler.ts +258 -0
  207. package/src/cmd/build/vite/vite-asset-server-config.ts +134 -0
  208. package/src/cmd/build/vite/vite-asset-server.ts +63 -0
  209. package/src/cmd/build/vite/vite-builder.ts +284 -0
  210. package/src/cmd/build/vite/workbench-generator.ts +152 -0
  211. package/src/cmd/build/vite-bundler.ts +110 -0
  212. package/src/cmd/cloud/agent/get.ts +2 -0
  213. package/src/cmd/cloud/agent/list.ts +1 -0
  214. package/src/cmd/cloud/db/get.ts +1 -0
  215. package/src/cmd/cloud/db/list.ts +1 -0
  216. package/src/cmd/cloud/deploy.ts +175 -144
  217. package/src/cmd/cloud/deployment/list.ts +4 -0
  218. package/src/cmd/cloud/env/list.ts +1 -0
  219. package/src/cmd/cloud/keyvalue/get.ts +1 -0
  220. package/src/cmd/cloud/keyvalue/keys.ts +1 -0
  221. package/src/cmd/cloud/keyvalue/list-namespaces.ts +1 -0
  222. package/src/cmd/cloud/keyvalue/stats.ts +2 -0
  223. package/src/cmd/cloud/secret/list.ts +1 -0
  224. package/src/cmd/cloud/session/list.ts +4 -0
  225. package/src/cmd/cloud/storage/get.ts +1 -0
  226. package/src/cmd/cloud/storage/list.ts +4 -0
  227. package/src/cmd/cloud/stream/get.ts +1 -0
  228. package/src/cmd/cloud/stream/list.ts +1 -0
  229. package/src/cmd/cloud/vector/get.ts +1 -0
  230. package/src/cmd/cloud/vector/search.ts +1 -0
  231. package/src/cmd/dev/index.ts +323 -914
  232. package/src/cmd/dev/sync.ts +5 -1
  233. package/src/cmd/profile/show.ts +3 -4
  234. package/src/cmd/project/create.ts +3 -4
  235. package/src/cmd/project/list.ts +1 -0
  236. package/src/cmd/project/show.ts +1 -0
  237. package/src/cmd/upgrade/index.ts +6 -3
  238. package/src/config.ts +31 -11
  239. package/src/index.ts +2 -0
  240. package/src/runtime-bootstrap.ts +8 -2
  241. package/src/types.ts +48 -1
  242. package/src/utils/bun-version-checker.ts +70 -0
  243. package/src/version-check.ts +6 -2
  244. package/dist/cmd/build/bundler.d.ts +0 -22
  245. package/dist/cmd/build/bundler.d.ts.map +0 -1
  246. package/dist/cmd/build/bundler.js +0 -766
  247. package/dist/cmd/build/bundler.js.map +0 -1
  248. package/dist/cmd/build/config-loader.d.ts +0 -16
  249. package/dist/cmd/build/config-loader.d.ts.map +0 -1
  250. package/dist/cmd/build/config-loader.js +0 -227
  251. package/dist/cmd/build/config-loader.js.map +0 -1
  252. package/dist/cmd/build/file.d.ts +0 -2
  253. package/dist/cmd/build/file.d.ts.map +0 -1
  254. package/dist/cmd/build/file.js +0 -10
  255. package/dist/cmd/build/file.js.map +0 -1
  256. package/dist/cmd/build/fix-duplicate-exports.d.ts +0 -2
  257. package/dist/cmd/build/fix-duplicate-exports.d.ts.map +0 -1
  258. package/dist/cmd/build/fix-duplicate-exports.js +0 -170
  259. package/dist/cmd/build/fix-duplicate-exports.js.map +0 -1
  260. package/dist/cmd/build/plugin.d.ts +0 -6
  261. package/dist/cmd/build/plugin.d.ts.map +0 -1
  262. package/dist/cmd/build/plugin.js +0 -645
  263. package/dist/cmd/build/plugin.js.map +0 -1
  264. package/dist/cmd/build/route-discovery.d.ts +0 -54
  265. package/dist/cmd/build/route-discovery.d.ts.map +0 -1
  266. package/dist/cmd/build/route-discovery.js +0 -148
  267. package/dist/cmd/build/route-discovery.js.map +0 -1
  268. package/dist/cmd/build/route-registry.d.ts +0 -38
  269. package/dist/cmd/build/route-registry.d.ts.map +0 -1
  270. package/dist/cmd/build/route-registry.js.map +0 -1
  271. package/src/cmd/build/bundler.ts +0 -927
  272. package/src/cmd/build/config-loader.ts +0 -268
  273. package/src/cmd/build/file.ts +0 -10
  274. package/src/cmd/build/fix-duplicate-exports.ts +0 -207
  275. package/src/cmd/build/plugin.ts +0 -782
  276. package/src/cmd/build/route-discovery.ts +0 -202
  277. package/src/cmd/build/route-registry.ts +0 -222
@@ -0,0 +1,366 @@
1
+ /**
2
+ * Vite-native entry file generator (v2 - clean architecture)
3
+ * Single source for both dev and prod with minimal differences
4
+ */
5
+ import { join } from 'node:path';
6
+ import { discoverRoutes } from './vite/route-discovery';
7
+ /**
8
+ * Generate entry file with clean Vite-native architecture
9
+ */
10
+ export async function generateEntryFile(options) {
11
+ const { rootDir, projectId, deploymentId, logger, mode, workbench, vitePort } = options;
12
+ const isDev = mode === 'dev';
13
+ const srcDir = join(rootDir, 'src');
14
+ const agentuityDir = join(rootDir, '.agentuity');
15
+ const entryPath = join(agentuityDir, 'app.generated.ts');
16
+ logger.trace(`Generating ${mode} mode entry file...`);
17
+ // Discover routes to determine which files need to be imported
18
+ const { routeInfoList } = await discoverRoutes(srcDir, projectId, deploymentId, logger);
19
+ // Check for web and workbench
20
+ const hasWebFrontend = (await Bun.file(join(srcDir, 'web', 'index.html')).exists()) ||
21
+ (await Bun.file(join(srcDir, 'web', 'frontend.tsx')).exists());
22
+ const hasWorkbench = !!workbench;
23
+ // Get unique route files that need to be imported (relative to src/)
24
+ const routeFiles = new Set();
25
+ for (const route of routeInfoList) {
26
+ if (route.filename) {
27
+ routeFiles.add(route.filename);
28
+ }
29
+ }
30
+ // Generate imports
31
+ const runtimeImports = [
32
+ ` createRouter,`,
33
+ ` createBaseMiddleware,`,
34
+ ` createCorsMiddleware,`,
35
+ ` createOtelMiddleware,`,
36
+ ` createAgentMiddleware,`,
37
+ ` getAppState,`,
38
+ ` getAppConfig,`,
39
+ ` register,`,
40
+ ` createServices,`,
41
+ ` runAgentSetups,`,
42
+ ` getThreadProvider,`,
43
+ ` getSessionProvider,`,
44
+ ` setGlobalLogger,`,
45
+ ` setGlobalTracer,`,
46
+ ` setGlobalRouter,`,
47
+ ` enableProcessExitProtection,`,
48
+ ` hasWaitUntilPending,`,
49
+ ];
50
+ if (hasWorkbench) {
51
+ runtimeImports.push(` createWorkbenchRouter,`);
52
+ }
53
+ const imports = [
54
+ `import { `,
55
+ ...runtimeImports,
56
+ `} from '@agentuity/runtime';`,
57
+ `import { websocket } from 'hono/bun';`, // Always use Bun WebSocket (dev and prod)
58
+ !isDev && hasWebFrontend ? `import { serveStatic } from 'hono/bun';` : '',
59
+ ].filter(Boolean);
60
+ imports.push(`import { type LogLevel } from '@agentuity/core';`);
61
+ // HMR setup (dev only)
62
+ const hmrSetup = isDev
63
+ ? `
64
+ // HMR restart handler
65
+ if (typeof (globalThis as any).__AGENTUITY_RESTART__ === 'undefined') {
66
+ (globalThis as any).__AGENTUITY_RESTART__ = () => {
67
+ console.log('[HMR] Restart triggered but handler not ready yet');
68
+ };
69
+ }
70
+ `
71
+ : '';
72
+ // Generate route mounting code for all discovered routes
73
+ const routeImportsAndMounts = [];
74
+ let routeIndex = 0;
75
+ for (const routeFile of routeFiles) {
76
+ // Convert src/api/auth/route.ts -> auth/route
77
+ const relativePath = routeFile.replace(/^src\/api\//, '').replace(/\.tsx?$/, '');
78
+ // Determine the mount path
79
+ // src/api/index.ts -> /api
80
+ // src/api/auth/route.ts -> /api/auth
81
+ // src/api/users/profile/route.ts -> /api/users/profile
82
+ let mountPath = '/api';
83
+ if (relativePath !== 'index') {
84
+ // Remove 'route' or 'index' from the end
85
+ const cleanPath = relativePath.replace(/\/(route|index)$/, '');
86
+ if (cleanPath) {
87
+ mountPath = `/api/${cleanPath}`;
88
+ }
89
+ }
90
+ const importName = `router_${routeIndex++}`;
91
+ routeImportsAndMounts.push(`const { default: ${importName} } = await import('../src/api/${relativePath}.js');`);
92
+ routeImportsAndMounts.push(`app.route('${mountPath}', ${importName});`);
93
+ }
94
+ const apiMount = routeImportsAndMounts.length > 0
95
+ ? `
96
+ // Mount API routes
97
+ ${routeImportsAndMounts.join('\n')}
98
+ `
99
+ : '';
100
+ // Workbench API routes mounting (if enabled)
101
+ const workbenchApiMount = hasWorkbench
102
+ ? `
103
+ // Mount workbench API routes (/_agentuity/workbench/*)
104
+ const workbenchRouter = createWorkbenchRouter();
105
+ app.route('/', workbenchRouter);
106
+ `
107
+ : '';
108
+ // Asset proxy routes (dev mode only - proxy to Vite asset server)
109
+ const assetProxyRoutes = isDev && vitePort
110
+ ? `
111
+ // Asset proxy routes - Forward Vite-specific requests to asset server
112
+ const VITE_ASSET_PORT = ${vitePort};
113
+
114
+ const proxyToVite = async (c) => {
115
+ const viteUrl = \`http://127.0.0.1:\${VITE_ASSET_PORT}\${c.req.path}\`;
116
+ const controller = new AbortController();
117
+ const timeout = setTimeout(() => controller.abort(), 10000); // 10s timeout
118
+ try {
119
+ otel.logger.debug(\`[Proxy] \${c.req.method} \${c.req.path} -> Vite:\${VITE_ASSET_PORT}\`);
120
+ const res = await fetch(viteUrl, { signal: controller.signal });
121
+ clearTimeout(timeout);
122
+ otel.logger.debug(\`[Proxy] \${c.req.path} -> \${res.status} (\${res.headers.get('content-type')})\`);
123
+ return new Response(res.body, {
124
+ status: res.status,
125
+ headers: res.headers,
126
+ });
127
+ } catch (err) {
128
+ clearTimeout(timeout);
129
+ if (err instanceof Error && err.name === 'AbortError') {
130
+ otel.logger.error(\`Vite proxy timeout: \${c.req.path}\`);
131
+ return c.text('Vite asset server timeout', 504);
132
+ }
133
+ otel.logger.error(\`Failed to proxy to Vite: \${c.req.path} - \${err instanceof Error ? err.message : String(err)}\`);
134
+ return c.text('Vite asset server error', 500);
135
+ }
136
+ };
137
+
138
+ // Vite client scripts and HMR
139
+ app.get('/@vite/*', proxyToVite);
140
+ app.get('/@react-refresh', proxyToVite);
141
+
142
+ // Source files for HMR
143
+ app.get('/src/web/*', proxyToVite);
144
+ app.get('/src/*', proxyToVite); // Catch-all for other source files
145
+
146
+ // Workbench source files (in .agentuity/workbench-src/)
147
+ app.get('/.agentuity/workbench-src/*', proxyToVite);
148
+
149
+ // Node modules (Vite transforms these)
150
+ app.get('/node_modules/*', proxyToVite);
151
+
152
+ // Scoped packages (e.g., @agentuity/*, @types/*)
153
+ app.get('/@*', proxyToVite);
154
+
155
+ // File system access (for Vite's @fs protocol)
156
+ app.get('/@fs/*', proxyToVite);
157
+
158
+ // Module resolution (for Vite's @id protocol)
159
+ app.get('/@id/*', proxyToVite);
160
+
161
+ // Any .js, .jsx, .ts, .tsx files (catch remaining modules)
162
+ app.get('/*.js', proxyToVite);
163
+ app.get('/*.jsx', proxyToVite);
164
+ app.get('/*.ts', proxyToVite);
165
+ app.get('/*.tsx', proxyToVite);
166
+ app.get('/*.css', proxyToVite);
167
+ `
168
+ : '';
169
+ // Web routes (different for dev/prod)
170
+ let webRoutes = '';
171
+ if (hasWebFrontend) {
172
+ if (isDev) {
173
+ const htmlPath = join(srcDir, 'web', 'index.html');
174
+ webRoutes = `
175
+ // Web routes (dev mode with Vite HMR via proxy)
176
+ const devHtmlHandler = async (c) => {
177
+ const html = await Bun.file('${htmlPath}').text();
178
+ const withHmr = html
179
+ // Fix relative paths to use proxy routes (with or without ./)
180
+ .replace(/src=["'](?:\\.\\/)?([^"'\\/]+\\.tsx?)["']/g, 'src="/src/web/$1"')
181
+ // Inject Vite HMR scripts - point directly to Vite asset server for WebSocket
182
+ .replace(
183
+ '</head>',
184
+ \`<script type="module">
185
+ import RefreshRuntime from '/@react-refresh'
186
+ RefreshRuntime.injectIntoGlobalHook(window)
187
+ window.$RefreshReg$ = () => {}
188
+ window.$RefreshSig$ = () => (type) => type
189
+ </script>
190
+ <script type="module">
191
+ // Configure Vite client to connect to asset server for HMR WebSocket
192
+ window.__VITE_HMR_BASE_URL__ = 'http://127.0.0.1:${vitePort}';
193
+ </script>
194
+ <script type="module" src="http://127.0.0.1:${vitePort}/@vite/client"></script>
195
+ </head>\`
196
+ );
197
+ return c.html(withHmr);
198
+ };
199
+ app.get('/', devHtmlHandler);
200
+ // 404 for unmatched API/system routes
201
+ app.all('/_agentuity/*', (c) => c.notFound());
202
+ app.all('/api/*', (c) => c.notFound());
203
+ ${hasWorkbench ? '' : `app.all('/workbench/*', (c) => c.notFound());`}
204
+ // SPA fallback - serve index.html for all other GET requests
205
+ // This is last so user routes, API routes, and workbench routes match first
206
+ app.get('*', devHtmlHandler);
207
+ `;
208
+ }
209
+ else {
210
+ webRoutes = `
211
+ // Web routes (production - static files)
212
+ import { readFileSync } from 'node:fs';
213
+ const indexHtml = readFileSync(import.meta.dir + '/client/index.html', 'utf-8');
214
+ app.use('/assets/*', serveStatic({ root: import.meta.dir + '/client' }));
215
+ app.get('/', (c) => c.html(indexHtml));
216
+ // 404 for unmatched API/system routes
217
+ app.all('/_agentuity/*', (c) => c.notFound());
218
+ app.all('/api/*', (c) => c.notFound());
219
+ ${hasWorkbench ? '' : `app.all('/workbench/*', (c) => c.notFound());`}
220
+ // SPA fallback - serve index.html for all other GET requests
221
+ app.get('*', (c) => c.html(indexHtml));
222
+ `;
223
+ }
224
+ }
225
+ // Workbench routes (if enabled)
226
+ const workbenchRoute = workbench?.route ?? '/workbench';
227
+ const workbenchSrcDir = join(agentuityDir, 'workbench-src');
228
+ const workbenchRoutes = hasWorkbench
229
+ ? isDev
230
+ ? `
231
+ // Workbench route (dev mode - let Vite serve source files with HMR)
232
+ app.get('${workbenchRoute}', async (c) => {
233
+ const html = await Bun.file('${workbenchSrcDir}/index.html').text();
234
+ // Rewrite script/css paths to use Vite's @fs protocol
235
+ const withVite = html
236
+ .replace('src="./main.tsx"', 'src="/@fs${workbenchSrcDir}/main.tsx"')
237
+ .replace('href="./styles.css"', 'href="/@fs${workbenchSrcDir}/styles.css"');
238
+ return c.html(withVite);
239
+ });
240
+ `
241
+ : `
242
+ // Workbench routes (production - serve pre-built assets)
243
+ // Use import.meta.dir for absolute paths (app.js runs from .agentuity/)
244
+ import { readFileSync, existsSync } from 'node:fs';
245
+ const workbenchIndexPath = import.meta.dir + '/workbench/index.html';
246
+ if (existsSync(workbenchIndexPath)) {
247
+ const workbenchIndex = readFileSync(workbenchIndexPath, 'utf-8');
248
+ app.get('${workbenchRoute}', (c) => c.html(workbenchIndex));
249
+ app.get('${workbenchRoute}/*', serveStatic({ root: import.meta.dir + '/workbench' }));
250
+ }
251
+ `
252
+ : '';
253
+ // Server startup (same for dev and prod - Bun.serve with native WebSocket)
254
+ const serverStartup = `
255
+ // Start Bun server${isDev ? ' (dev mode with Vite asset proxy)' : ''}
256
+ if (typeof Bun !== 'undefined' && !import.meta.main) {
257
+ // Not the main module, skip server startup (this is being imported/analyzed)
258
+ } else if (typeof Bun !== 'undefined') {
259
+ // Enable process exit protection now that we're starting the server
260
+ enableProcessExitProtection();
261
+
262
+ const port = parseInt(process.env.PORT || '3500', 10);
263
+ const server = Bun.serve({
264
+ fetch: app.fetch,
265
+ websocket,
266
+ port,
267
+ hostname: '127.0.0.1',
268
+ });
269
+
270
+ // Make server available globally for health checks
271
+ (globalThis as any).__AGENTUITY_SERVER__ = server;
272
+
273
+ otel.logger.info(\`Server listening on http://127.0.0.1:\${port}\`);${isDev && vitePort ? `\n\totel.logger.debug(\`Proxying Vite assets from port ${vitePort}\`);` : ''}
274
+ }
275
+ `;
276
+ const code = `// Auto-generated by Agentuity for ${mode} mode
277
+ // DO NOT EDIT - This file is regenerated on every build
278
+ // NOTE: Bun auto-loads .env files from CWD before executing JavaScript
279
+
280
+ ${imports.join('\n')}
281
+
282
+ ${hmrSetup}
283
+
284
+ // Step 1: Initialize telemetry and services
285
+ const serverUrl = \`http://127.0.0.1:\${process.env.PORT || '3500'}\`;
286
+ const otel = register({ processors: [], logLevel: (process.env.AGENTUITY_LOG_LEVEL || 'info') as LogLevel });
287
+ const servicesResult = createServices(otel.logger, undefined, serverUrl);
288
+
289
+ // Make logger and tracer globally available for user's app.ts
290
+ setGlobalLogger(otel.logger);
291
+ setGlobalTracer(otel.tracer);
292
+
293
+ // Step 2: Create router and set as global
294
+ const app = createRouter();
295
+ setGlobalRouter(app);
296
+
297
+ // Step 3: Apply middleware in correct order (BEFORE mounting routes)
298
+ app.use('*', createBaseMiddleware({
299
+ logger: otel.logger,
300
+ tracer: otel.tracer,
301
+ meter: otel.meter,
302
+ }));
303
+
304
+ app.use('/_agentuity/*', createCorsMiddleware());
305
+ app.use('/api/*', createCorsMiddleware());
306
+
307
+ // Critical: otelMiddleware creates session/thread/waitUntilHandler
308
+ app.use('/_agentuity/*', createOtelMiddleware());
309
+ app.use('/api/*', createOtelMiddleware());
310
+
311
+ // Critical: agentMiddleware sets up agent context
312
+ app.use('/api/*', createAgentMiddleware(''));
313
+
314
+ // Step 4: Import user's app.ts (runs createApp, gets state/config)
315
+ await import('../app.ts');
316
+
317
+ // Get app state and config for use below
318
+ const appState = getAppState();
319
+ const appConfig = getAppConfig();
320
+
321
+ // Step 5: Initialize providers
322
+ const threadProvider = getThreadProvider();
323
+ const sessionProvider = getSessionProvider();
324
+
325
+ await threadProvider.initialize(appState);
326
+ await sessionProvider.initialize(appState);
327
+
328
+ // Step 6: Mount routes (AFTER middleware is applied)
329
+
330
+ // System health/idle endpoints
331
+ const healthHandler = (c: any) => c.text('OK');
332
+ const idleHandler = (c: any) => {
333
+ // Check if server is idle (no pending requests/connections)
334
+ const server = (globalThis as any).__AGENTUITY_SERVER__;
335
+ if (!server) return c.text('NO', { status: 200 });
336
+
337
+ // Check for pending background tasks
338
+ if (hasWaitUntilPending()) return c.text('NO', { status: 200 });
339
+
340
+ if (server.pendingRequests > 1) return c.text('NO', { status: 200 });
341
+ if (server.pendingWebSockets > 0) return c.text('NO', { status: 200 });
342
+
343
+ return c.text('OK', { status: 200 });
344
+ };
345
+
346
+ // Mount on both /_agentuity/* and /* for backwards compatibility
347
+ app.get('/_agentuity/health', healthHandler);
348
+ app.get('/_health', healthHandler);
349
+ app.get('/_agentuity/idle', idleHandler);
350
+ app.get('/_idle', idleHandler);
351
+
352
+ ${assetProxyRoutes}
353
+ ${apiMount}
354
+ ${workbenchApiMount}
355
+ ${workbenchRoutes}
356
+ ${webRoutes}
357
+
358
+ // Step 7: Run agent setup to signal completion
359
+ await runAgentSetups(appState);
360
+
361
+ ${serverStartup}
362
+ `;
363
+ await Bun.write(entryPath, code);
364
+ logger.trace(`Generated ${mode} mode entry file at %s`, entryPath);
365
+ }
366
+ //# sourceMappingURL=entry-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-generator.js","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,OAAO,mCA2HlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,OAAO,mCAuGlB,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { resolve, join, relative } from 'node:path';
3
- import { getServiceUrls } from '@agentuity/server';
4
3
  import { createCommand } from '../../types';
5
- import { bundle } from './bundler';
4
+ import { viteBundle } from './vite-bundler';
6
5
  import * as tui from '../../tui';
7
6
  import { getCommand } from '../../command-prefix';
8
7
  import { ErrorCode } from '../../errors';
@@ -45,28 +44,12 @@ export const command = createCommand({
45
44
  const rel = outDir.startsWith(absoluteProjectDir)
46
45
  ? relative(absoluteProjectDir, outDir)
47
46
  : outDir;
48
- tui.info(`Bundling project at ${absoluteProjectDir} to ${rel}`);
49
- const env = new Map();
50
- if (project) {
51
- const serviceUrls = getServiceUrls(project.region);
52
- env.set('AGENTUITY_TRANSPORT_URL', serviceUrls.catalyst);
53
- env.set('AGENTUITY_CATALYST_URL', serviceUrls.catalyst);
54
- env.set('AGENTUITY_VECTOR_URL', serviceUrls.vector);
55
- env.set('AGENTUITY_KEYVALUE_URL', serviceUrls.keyvalue);
56
- env.set('AGENTUITY_STREAM_URL', serviceUrls.stream);
57
- env.set('AGENTUITY_CLOUD_ORG_ID', project.orgId);
58
- env.set('AGENTUITY_CLOUD_PROJECT_ID', project.projectId);
59
- env.set('AGENTUITY_REGION', project.region);
60
- }
61
- ctx.logger.trace('setting env to %s', env);
62
- await bundle({
47
+ tui.info(`Building project with Vite at ${absoluteProjectDir} to ${rel}`);
48
+ await viteBundle({
63
49
  rootDir: absoluteProjectDir,
64
50
  dev: opts.dev || false,
65
- outDir,
66
- project,
67
- orgId: project?.orgId,
68
51
  projectId: project?.projectId,
69
- env,
52
+ orgId: project?.orgId,
70
53
  region: project?.region ?? 'local',
71
54
  logger: ctx.logger,
72
55
  });
@@ -87,7 +70,6 @@ export const command = createCommand({
87
70
  if (!opts.dev && !opts.skipTypeCheck) {
88
71
  try {
89
72
  tui.info('Running type check...');
90
- const absoluteProjectDir = resolve(projectDir);
91
73
  const result = await Bun.$ `bunx tsc --noEmit --skipLibCheck`
92
74
  .cwd(absoluteProjectDir)
93
75
  .nothrow();
@@ -107,7 +89,7 @@ export const command = createCommand({
107
89
  tui.fatal('Unable to run TypeScript type checking. Ensure TypeScript is installed.');
108
90
  }
109
91
  }
110
- tui.success('Bundle complete');
92
+ tui.success('Build complete');
111
93
  return {
112
94
  success: true,
113
95
  bundlePath: outDir,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cmd/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChD,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,4CAA4C;IACzD,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,kBAAkB,CAAC;IAC/C,OAAO,EAAE,CAAC,QAAQ,CAAC;IACnB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAClE,EAAE,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE;QAC9E,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;KACpE;IACD,MAAM,EAAE;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC9E,aAAa,EAAE,CAAC;iBACd,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,4BAA4B,CAAC;SACxC,CAAC;QACF,QAAQ,EAAE,mBAAmB;KAC7B;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAE1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAE3F,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;gBAChD,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBACtC,CAAC,CAAC,MAAM,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,iCAAiC,kBAAkB,OAAO,GAAG,EAAE,CAAC,CAAC;YAE1E,MAAM,UAAU,CAAC;gBAChB,OAAO,EAAE,kBAAkB;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK;gBACtB,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;aAClB,CAAC,CAAC;YAEH,+EAA+E;YAC/E,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBAClC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxC,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACtC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,aAAa,OAAO,WAAW,EAAE,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACP,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,IAAI,gCAAgC,CAAC,CAAC;gBAC9E,CAAC;YACF,CAAC;YAED,4EAA4E;YAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACJ,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA,kCAAkC;yBAC1D,GAAG,CAAC,kBAAkB,CAAC;yBACvB,OAAO,EAAE,CAAC;oBAEZ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBAC3B,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACP,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;wBAClC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACxC,GAAG,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBAC9C,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACzB,2CAA2C;oBAC3C,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxE,GAAG,CAAC,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;oBACnD,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;gBACtF,CAAC;YACF,CAAC;YAED,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAE9B,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,OAAO,EAAE,SAAS,IAAI,SAAS;gBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK;aACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,KAAuB,CAAC;gBACnC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;oBAC3B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC;QACF,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Agent Discovery - READ-ONLY AST analysis
3
+ *
4
+ * Discovers agents by scanning src/agent/**\/*.ts files
5
+ * Extracts metadata WITHOUT mutating source files
6
+ */
7
+ import type { Logger } from '../../../types';
8
+ export interface AgentMetadata {
9
+ filename: string;
10
+ name: string;
11
+ id: string;
12
+ agentId: string;
13
+ version: string;
14
+ description?: string;
15
+ inputSchemaCode?: string;
16
+ outputSchemaCode?: string;
17
+ evals?: EvalMetadata[];
18
+ }
19
+ export interface EvalMetadata {
20
+ id: string;
21
+ evalId: string;
22
+ name: string;
23
+ filename: string;
24
+ version: string;
25
+ description?: string;
26
+ agentIdentifier: string;
27
+ projectId: string;
28
+ }
29
+ /**
30
+ * Discover all agents in src/agent directory (READ-ONLY)
31
+ */
32
+ export declare function discoverAgents(srcDir: string, projectId: string, deploymentId: string, logger: Logger): Promise<AgentMetadata[]>;
33
+ //# sourceMappingURL=agent-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-discovery.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/agent-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA0C7C,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,MAAM,EAAE,MAAM,CAAC;IACf,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;AAgUD;;GAEG;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,CAgE1B"}