@agentuity/cli 1.0.47 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cmd/build/app-router-detector.d.ts +2 -5
- package/dist/cmd/build/app-router-detector.d.ts.map +1 -1
- package/dist/cmd/build/app-router-detector.js +130 -154
- package/dist/cmd/build/app-router-detector.js.map +1 -1
- package/dist/cmd/build/ids.d.ts +11 -0
- package/dist/cmd/build/ids.d.ts.map +1 -0
- package/dist/cmd/build/ids.js +18 -0
- package/dist/cmd/build/ids.js.map +1 -0
- package/dist/cmd/build/vite/agent-discovery.d.ts +8 -4
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.js +166 -487
- package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +10 -16
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +67 -134
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/docs-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/docs-generator.js +0 -2
- package/dist/cmd/build/vite/docs-generator.js.map +1 -1
- package/dist/cmd/build/vite/index.d.ts.map +1 -1
- package/dist/cmd/build/vite/index.js +0 -36
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/lifecycle-generator.d.ts +10 -2
- package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/lifecycle-generator.js +302 -23
- package/dist/cmd/build/vite/lifecycle-generator.js.map +1 -1
- package/dist/cmd/build/vite/route-discovery.d.ts +11 -38
- package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
- package/dist/cmd/build/vite/route-discovery.js +97 -177
- package/dist/cmd/build/vite/route-discovery.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +1 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
- package/dist/cmd/build/vite/static-renderer.js +1 -9
- package/dist/cmd/build/vite/static-renderer.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts +6 -3
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +171 -18
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +8 -3
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +14 -13
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +6 -34
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts +53 -0
- package/dist/cmd/build/vite/ws-proxy.d.ts.map +1 -0
- package/dist/cmd/build/vite/ws-proxy.js +95 -0
- package/dist/cmd/build/vite/ws-proxy.js.map +1 -0
- package/dist/cmd/build/vite-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite-bundler.js +0 -3
- package/dist/cmd/build/vite-bundler.js.map +1 -1
- package/dist/cmd/dev/file-watcher.d.ts.map +1 -1
- package/dist/cmd/dev/file-watcher.js +2 -8
- package/dist/cmd/dev/file-watcher.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +369 -720
- package/dist/cmd/dev/index.js.map +1 -1
- package/package.json +6 -8
- package/src/cmd/ai/prompt/agent.md +0 -1
- package/src/cmd/ai/prompt/api.md +0 -7
- package/src/cmd/ai/prompt/web.md +51 -213
- package/src/cmd/build/app-router-detector.ts +152 -182
- package/src/cmd/build/ids.ts +19 -0
- package/src/cmd/build/vite/agent-discovery.ts +208 -679
- package/src/cmd/build/vite/bun-dev-server.ts +78 -154
- package/src/cmd/build/vite/docs-generator.ts +0 -2
- package/src/cmd/build/vite/index.ts +1 -42
- package/src/cmd/build/vite/lifecycle-generator.ts +345 -21
- package/src/cmd/build/vite/route-discovery.ts +116 -274
- package/src/cmd/build/vite/server-bundler.ts +1 -1
- package/src/cmd/build/vite/static-renderer.ts +1 -11
- package/src/cmd/build/vite/vite-asset-server-config.ts +196 -20
- package/src/cmd/build/vite/vite-asset-server.ts +25 -15
- package/src/cmd/build/vite/vite-builder.ts +6 -51
- package/src/cmd/build/vite/ws-proxy.ts +126 -0
- package/src/cmd/build/vite-bundler.ts +0 -4
- package/src/cmd/dev/file-watcher.ts +2 -9
- package/src/cmd/dev/index.ts +409 -832
- package/dist/cmd/build/ast.d.ts +0 -78
- package/dist/cmd/build/ast.d.ts.map +0 -1
- package/dist/cmd/build/ast.js +0 -2703
- package/dist/cmd/build/ast.js.map +0 -1
- package/dist/cmd/build/entry-generator.d.ts +0 -25
- package/dist/cmd/build/entry-generator.d.ts.map +0 -1
- package/dist/cmd/build/entry-generator.js +0 -695
- package/dist/cmd/build/entry-generator.js.map +0 -1
- package/dist/cmd/build/vite/api-mount-path.d.ts +0 -61
- package/dist/cmd/build/vite/api-mount-path.d.ts.map +0 -1
- package/dist/cmd/build/vite/api-mount-path.js +0 -83
- package/dist/cmd/build/vite/api-mount-path.js.map +0 -1
- package/dist/cmd/build/vite/registry-generator.d.ts +0 -19
- package/dist/cmd/build/vite/registry-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/registry-generator.js +0 -1108
- package/dist/cmd/build/vite/registry-generator.js.map +0 -1
- package/dist/cmd/build/webanalytics-generator.d.ts +0 -16
- package/dist/cmd/build/webanalytics-generator.d.ts.map +0 -1
- package/dist/cmd/build/webanalytics-generator.js +0 -178
- package/dist/cmd/build/webanalytics-generator.js.map +0 -1
- package/dist/cmd/build/workbench.d.ts +0 -7
- package/dist/cmd/build/workbench.d.ts.map +0 -1
- package/dist/cmd/build/workbench.js +0 -55
- package/dist/cmd/build/workbench.js.map +0 -1
- package/dist/utils/route-migration.d.ts +0 -62
- package/dist/utils/route-migration.d.ts.map +0 -1
- package/dist/utils/route-migration.js +0 -630
- package/dist/utils/route-migration.js.map +0 -1
- package/src/cmd/build/ast.ts +0 -3529
- package/src/cmd/build/entry-generator.ts +0 -760
- package/src/cmd/build/vite/api-mount-path.ts +0 -87
- package/src/cmd/build/vite/registry-generator.ts +0 -1267
- package/src/cmd/build/webanalytics-generator.ts +0 -197
- package/src/cmd/build/workbench.ts +0 -58
- package/src/utils/route-migration.ts +0 -757
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Bun Dev Server
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Spawns Bun with --hot as a subprocess. Bun's --hot mode re-evaluates changed
|
|
5
|
+
* modules and hot-swaps the default export's `fetch` handler on the running
|
|
6
|
+
* server — no process restart, no port rebind, no dropped connections.
|
|
7
|
+
*
|
|
8
|
+
* The user's app.ts exports the result of createApp() which includes `fetch`
|
|
9
|
+
* and `port` properties that Bun uses to manage the server lifecycle.
|
|
6
10
|
*/
|
|
7
11
|
|
|
8
12
|
import type { Logger } from '../../../types';
|
|
@@ -11,15 +15,11 @@ import { getAgentEnv } from '../../../agent-detection';
|
|
|
11
15
|
export interface BunDevServerOptions {
|
|
12
16
|
rootDir: string;
|
|
13
17
|
port?: number;
|
|
14
|
-
projectId?: string;
|
|
15
|
-
orgId?: string;
|
|
16
|
-
deploymentId?: string;
|
|
17
18
|
logger: Logger;
|
|
18
|
-
vitePort: number;
|
|
19
|
-
inspect?: boolean;
|
|
20
|
-
inspectWait?: boolean;
|
|
21
|
-
inspectBrk?: boolean;
|
|
22
|
-
noBundle?: boolean; // Run src/generated/app.ts directly without bundling
|
|
19
|
+
vitePort: number;
|
|
20
|
+
inspect?: boolean;
|
|
21
|
+
inspectWait?: boolean;
|
|
22
|
+
inspectBrk?: boolean;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export interface BunDevServerResult {
|
|
@@ -27,173 +27,97 @@ export interface BunDevServerResult {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* Start Bun dev server (Vite asset server must already be running)
|
|
31
|
-
*
|
|
32
|
-
* IMPORTANT: This function assumes that the dev bundle has already been built:
|
|
33
|
-
* - Entry file generated at src/generated/app.ts (with workbench config if enabled)
|
|
34
|
-
* - Bundled to .agentuity/app.js with LLM patches applied
|
|
35
|
-
*
|
|
36
|
-
* The bundle is loaded here to ensure AI Gateway routing patches are active.
|
|
37
|
-
* Vite port is read from process.env.VITE_PORT at runtime.
|
|
30
|
+
* Start Bun dev server with --hot (Vite asset server must already be running).
|
|
38
31
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
32
|
+
* Uses `bun --hot` so Bun watches all imported files and hot-swaps the fetch
|
|
33
|
+
* handler on the running server. The server stays up — only the changed modules
|
|
34
|
+
* are re-evaluated.
|
|
41
35
|
*/
|
|
42
36
|
export async function startBunDevServer(options: BunDevServerOptions): Promise<BunDevServerResult> {
|
|
43
|
-
const {
|
|
44
|
-
rootDir,
|
|
45
|
-
port = 3500,
|
|
46
|
-
logger,
|
|
47
|
-
vitePort,
|
|
48
|
-
inspect,
|
|
49
|
-
inspectWait,
|
|
50
|
-
inspectBrk,
|
|
51
|
-
noBundle,
|
|
52
|
-
} = options;
|
|
37
|
+
const { rootDir, port = 3500, logger, vitePort, inspect, inspectWait, inspectBrk } = options;
|
|
53
38
|
|
|
54
39
|
logger.debug('Starting Bun dev server (Vite already running on port %d)...', vitePort);
|
|
55
40
|
|
|
56
|
-
const appPath =
|
|
41
|
+
const appPath = `${rootDir}/app.ts`;
|
|
57
42
|
|
|
58
|
-
// Verify entry file exists before attempting to load
|
|
59
43
|
const appFile = Bun.file(appPath);
|
|
60
44
|
if (!(await appFile.exists())) {
|
|
61
|
-
throw new Error(
|
|
62
|
-
noBundle
|
|
63
|
-
? `Generated entry not found at ${appPath}. Run the dev command to generate it.`
|
|
64
|
-
: `Dev bundle not found at ${appPath}. The bundle must be generated before starting the dev server.`
|
|
65
|
-
);
|
|
45
|
+
throw new Error(`App entry not found at ${appPath}.`);
|
|
66
46
|
}
|
|
67
47
|
|
|
68
|
-
// Set PORT env var so the generated app uses the correct port
|
|
69
48
|
process.env.PORT = String(port);
|
|
70
49
|
|
|
71
|
-
|
|
72
|
-
const useDebugger = inspect || inspectWait || inspectBrk;
|
|
73
|
-
|
|
74
|
-
if (useDebugger) {
|
|
75
|
-
// Spawn bun as subprocess with debugger flag
|
|
76
|
-
logger.debug('📦 Spawning bun with debugger enabled...');
|
|
77
|
-
|
|
78
|
-
// Determine which debugger flag to use (priority: inspectBrk > inspectWait > inspect)
|
|
79
|
-
let debugFlag: string;
|
|
80
|
-
if (inspectBrk) {
|
|
81
|
-
debugFlag = '--inspect-brk';
|
|
82
|
-
} else if (inspectWait) {
|
|
83
|
-
debugFlag = '--inspect-wait';
|
|
84
|
-
} else {
|
|
85
|
-
debugFlag = '--inspect';
|
|
86
|
-
}
|
|
50
|
+
const args: string[] = ['bun'];
|
|
87
51
|
|
|
88
|
-
|
|
52
|
+
// --hot: in-process hot reload — re-evaluates changed modules and swaps
|
|
53
|
+
// the default export's fetch handler without restarting the process.
|
|
54
|
+
// --no-clear-screen: don't clear terminal on reload (CLI manages output)
|
|
55
|
+
args.push('--hot', '--no-clear-screen');
|
|
89
56
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
PORT: String(port),
|
|
98
|
-
},
|
|
99
|
-
});
|
|
57
|
+
if (inspectBrk) {
|
|
58
|
+
args.push('--inspect-brk');
|
|
59
|
+
} else if (inspectWait) {
|
|
60
|
+
args.push('--inspect-wait');
|
|
61
|
+
} else if (inspect) {
|
|
62
|
+
args.push('--inspect');
|
|
63
|
+
}
|
|
100
64
|
|
|
101
|
-
|
|
102
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
103
|
-
(globalThis as any).__AGENTUITY_BUN_SUBPROCESS__ = bunProcess;
|
|
104
|
-
|
|
105
|
-
// Wait for server to actually start listening
|
|
106
|
-
const maxRetries = 50;
|
|
107
|
-
const retryDelay = 100;
|
|
108
|
-
let serverReady = false;
|
|
109
|
-
|
|
110
|
-
for (let i = 0; i < maxRetries; i++) {
|
|
111
|
-
try {
|
|
112
|
-
await fetch(`http://127.0.0.1:${port}/`, {
|
|
113
|
-
method: 'HEAD',
|
|
114
|
-
signal: AbortSignal.timeout(1000),
|
|
115
|
-
});
|
|
116
|
-
// Any response (even 404) means server is listening
|
|
117
|
-
serverReady = true;
|
|
118
|
-
break;
|
|
119
|
-
} catch {
|
|
120
|
-
// Connection refused or timeout - server not ready yet
|
|
121
|
-
}
|
|
122
|
-
// Wait before next check
|
|
123
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
124
|
-
}
|
|
65
|
+
args.push('run', appPath);
|
|
125
66
|
|
|
126
|
-
|
|
127
|
-
// Kill the subprocess if server didn't start
|
|
128
|
-
try {
|
|
129
|
-
bunProcess.kill();
|
|
130
|
-
} catch (err) {
|
|
131
|
-
logger.debug('Error killing subprocess during startup failure: %s', err);
|
|
132
|
-
}
|
|
133
|
-
throw new Error(
|
|
134
|
-
`Bun server failed to start on port ${port} after ${maxRetries * retryDelay}ms`
|
|
135
|
-
);
|
|
136
|
-
}
|
|
67
|
+
logger.debug('Spawning bun subprocess: %s', args.join(' '));
|
|
137
68
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
throw new Error(`Failed to load generated app: ${errorMessage}`);
|
|
157
|
-
}
|
|
69
|
+
const bunProcess = Bun.spawn(args, {
|
|
70
|
+
cwd: rootDir,
|
|
71
|
+
stdout: 'inherit',
|
|
72
|
+
stderr: 'inherit',
|
|
73
|
+
env: {
|
|
74
|
+
...process.env,
|
|
75
|
+
...getAgentEnv(),
|
|
76
|
+
PORT: String(port),
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
81
|
+
(globalThis as any).__AGENTUITY_BUN_SUBPROCESS__ = bunProcess;
|
|
82
|
+
|
|
83
|
+
// Wait for server to start listening
|
|
84
|
+
const maxRetries = 50;
|
|
85
|
+
const retryDelay = 100;
|
|
86
|
+
let serverReady = false;
|
|
158
87
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const retryDelay = 100; // ms
|
|
163
|
-
let serverReady = false;
|
|
164
|
-
|
|
165
|
-
for (let i = 0; i < maxRetries; i++) {
|
|
166
|
-
// Check if global server object exists
|
|
167
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
168
|
-
if ((globalThis as any).__AGENTUITY_SERVER__) {
|
|
169
|
-
// Server object exists, now verify it's actually listening by making a request
|
|
170
|
-
try {
|
|
171
|
-
await fetch(`http://127.0.0.1:${port}/`, {
|
|
172
|
-
method: 'HEAD',
|
|
173
|
-
signal: AbortSignal.timeout(1000),
|
|
174
|
-
});
|
|
175
|
-
// Any response (even 404) means server is listening
|
|
176
|
-
serverReady = true;
|
|
177
|
-
break;
|
|
178
|
-
} catch {
|
|
179
|
-
// Connection refused or timeout - server not ready yet
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// Wait before next check
|
|
183
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
88
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
89
|
+
if (bunProcess.exitCode !== null) {
|
|
90
|
+
throw new Error(`Bun subprocess exited with code ${bunProcess.exitCode} during startup`);
|
|
184
91
|
}
|
|
185
92
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
93
|
+
try {
|
|
94
|
+
await fetch(`http://127.0.0.1:${port}/`, {
|
|
95
|
+
method: 'HEAD',
|
|
96
|
+
signal: AbortSignal.timeout(1000),
|
|
97
|
+
});
|
|
98
|
+
serverReady = true;
|
|
99
|
+
break;
|
|
100
|
+
} catch {
|
|
101
|
+
// Not ready yet
|
|
190
102
|
}
|
|
103
|
+
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
104
|
+
}
|
|
191
105
|
|
|
192
|
-
|
|
193
|
-
|
|
106
|
+
if (!serverReady) {
|
|
107
|
+
try {
|
|
108
|
+
bunProcess.kill();
|
|
109
|
+
} catch (err) {
|
|
110
|
+
logger.debug('Error killing subprocess during startup failure: %s', err);
|
|
111
|
+
}
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
+
(globalThis as any).__AGENTUITY_BUN_SUBPROCESS__ = undefined;
|
|
114
|
+
throw new Error(
|
|
115
|
+
`Bun server failed to start on port ${port} after ${maxRetries * retryDelay}ms`
|
|
116
|
+
);
|
|
194
117
|
}
|
|
195
118
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
119
|
+
logger.debug(`Bun dev server started on http://127.0.0.1:${port} (--hot mode)`);
|
|
120
|
+
logger.debug(`Proxied to Vite:${vitePort}`);
|
|
121
|
+
|
|
122
|
+
return { bunServerPort: port };
|
|
199
123
|
}
|
|
@@ -18,7 +18,6 @@ This directory contains auto-generated TypeScript files created by the Agentuity
|
|
|
18
18
|
## Generated Files
|
|
19
19
|
|
|
20
20
|
- \`registry.ts\` - Agent registry from \`src/agent/**\`
|
|
21
|
-
- \`routes.ts\` - Route registry from \`src/api/**\`
|
|
22
21
|
- \`app.ts\` - Application entry point
|
|
23
22
|
- \`analytics-config.ts\` - Web analytics configuration from \`agentuity.json\`
|
|
24
23
|
- \`webanalytics.ts\` - Web analytics injection and route registration
|
|
@@ -63,7 +62,6 @@ const AGENTS_MD_CONTENT = `# AI Agent Instructions
|
|
|
63
62
|
## What Gets Generated
|
|
64
63
|
|
|
65
64
|
- \`registry.ts\` - Built from agent discovery in \`src/agent/\`
|
|
66
|
-
- \`routes.ts\` - Built from route discovery in \`src/api/\`
|
|
67
65
|
- \`app.ts\` - Entry point assembled from project configuration
|
|
68
66
|
- \`analytics-config.ts\` - Web analytics configuration from \`agentuity.json\`
|
|
69
67
|
- \`webanalytics.ts\` - Web analytics injection and route registration
|
|
@@ -3,13 +3,10 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { createLogger } from '@agentuity/server';
|
|
4
4
|
import type { LogLevel, DeployOptions } from '../../../types';
|
|
5
5
|
import { discoverAgents, type AgentMetadata } from './agent-discovery';
|
|
6
|
-
import { discoverRoutes, type RouteMetadata
|
|
7
|
-
import { generateAgentRegistry, generateRouteRegistry } from './registry-generator';
|
|
6
|
+
import { discoverRoutes, type RouteMetadata } from './route-discovery';
|
|
8
7
|
import { generateLifecycleTypes } from './lifecycle-generator';
|
|
9
8
|
import { generateEnvTypes } from './env-types-generator';
|
|
10
9
|
import { generateMetadata, writeMetadataFile, generateRouteMapping } from './metadata-generator';
|
|
11
|
-
import { generateEntryFile } from '../entry-generator';
|
|
12
|
-
import { loadAgentuityConfig, getWorkbenchConfig } from './config-loader';
|
|
13
10
|
|
|
14
11
|
// Re-export plugins
|
|
15
12
|
export { browserEnvPlugin } from './browser-env-plugin';
|
|
@@ -59,7 +56,6 @@ export function agentuityPlugin(options: AgentuityPluginOptions): Plugin {
|
|
|
59
56
|
// Store discovered metadata
|
|
60
57
|
let agents: AgentMetadata[] = [];
|
|
61
58
|
let routes: RouteMetadata[] = [];
|
|
62
|
-
let routeInfoList: RouteInfo[] = [];
|
|
63
59
|
|
|
64
60
|
logger.trace('Initializing Agentuity Vite plugin', { dev, rootDir, projectId, deploymentId });
|
|
65
61
|
|
|
@@ -73,31 +69,12 @@ export function agentuityPlugin(options: AgentuityPluginOptions): Plugin {
|
|
|
73
69
|
async buildStart() {
|
|
74
70
|
logger.trace('buildStart: Discovering agents and routes');
|
|
75
71
|
|
|
76
|
-
// Load agentuity.config.ts for entry file generation
|
|
77
|
-
const config = await loadAgentuityConfig(rootDir, logger);
|
|
78
|
-
const workbenchConfig = getWorkbenchConfig(config, dev);
|
|
79
|
-
|
|
80
|
-
// Note: Workbench files are generated in runAllBuilds() BEFORE builds start (dev mode only)
|
|
81
|
-
// We just need the config here for entry file generation
|
|
82
|
-
|
|
83
72
|
// Discover agents (read-only)
|
|
84
73
|
agents = await discoverAgents(srcDir, projectId, deploymentId, logger);
|
|
85
74
|
|
|
86
75
|
// Discover routes (read-only)
|
|
87
76
|
const routeDiscovery = await discoverRoutes(srcDir, projectId, deploymentId, logger);
|
|
88
77
|
routes = routeDiscovery.routes;
|
|
89
|
-
routeInfoList = routeDiscovery.routeInfoList;
|
|
90
|
-
|
|
91
|
-
// Generate registries
|
|
92
|
-
if (agents.length > 0) {
|
|
93
|
-
generateAgentRegistry(srcDir, agents);
|
|
94
|
-
logger.trace('Generated agent registry with %d agent(s)', agents.length);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (routeInfoList.length > 0) {
|
|
98
|
-
await generateRouteRegistry(srcDir, routeInfoList, agents);
|
|
99
|
-
logger.trace('Generated route registry with %d route(s)', routeInfoList.length);
|
|
100
|
-
}
|
|
101
78
|
|
|
102
79
|
// Generate lifecycle types
|
|
103
80
|
logger.debug('[vite-plugin] About to call generateLifecycleTypes');
|
|
@@ -115,17 +92,6 @@ export function agentuityPlugin(options: AgentuityPluginOptions): Plugin {
|
|
|
115
92
|
});
|
|
116
93
|
logger.debug(`[vite-plugin] generateEnvTypes returned: ${envTypesResult}`);
|
|
117
94
|
|
|
118
|
-
// Generate entry file (pass workbench and analytics config)
|
|
119
|
-
await generateEntryFile({
|
|
120
|
-
rootDir,
|
|
121
|
-
projectId,
|
|
122
|
-
deploymentId,
|
|
123
|
-
logger,
|
|
124
|
-
mode: dev ? 'dev' : 'prod',
|
|
125
|
-
workbench: workbenchConfig.configured ? workbenchConfig : undefined,
|
|
126
|
-
analytics: config?.analytics,
|
|
127
|
-
});
|
|
128
|
-
|
|
129
95
|
logger.trace('buildStart: Discovery complete');
|
|
130
96
|
},
|
|
131
97
|
|
|
@@ -137,9 +103,6 @@ export function agentuityPlugin(options: AgentuityPluginOptions): Plugin {
|
|
|
137
103
|
if (id === 'virtual:agentuity/agents') {
|
|
138
104
|
return '\0virtual:agentuity/agents';
|
|
139
105
|
}
|
|
140
|
-
if (id === 'virtual:agentuity/routes') {
|
|
141
|
-
return '\0virtual:agentuity/routes';
|
|
142
|
-
}
|
|
143
106
|
return null;
|
|
144
107
|
},
|
|
145
108
|
|
|
@@ -152,10 +115,6 @@ export function agentuityPlugin(options: AgentuityPluginOptions): Plugin {
|
|
|
152
115
|
// Re-export from generated registry
|
|
153
116
|
return `export { agentRegistry } from '../src/generated/registry.js';`;
|
|
154
117
|
}
|
|
155
|
-
if (id === '\0virtual:agentuity/routes') {
|
|
156
|
-
// Re-export from generated route registry
|
|
157
|
-
return `export { routeRegistry } from '../src/generated/routes.js';`;
|
|
158
|
-
}
|
|
159
118
|
return null;
|
|
160
119
|
},
|
|
161
120
|
|