@agentuity/cli 0.0.97 → 0.0.99
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/banner.d.ts.map +1 -1
- package/dist/banner.js +22 -6
- package/dist/banner.js.map +1 -1
- package/dist/cmd/build/entry-generator.d.ts.map +1 -1
- package/dist/cmd/build/entry-generator.js +85 -64
- package/dist/cmd/build/entry-generator.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +3 -7
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +38 -16
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +11 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +17 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +1 -1
- 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 +21 -2
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +32 -21
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/dev/file-watcher.d.ts +24 -0
- package/dist/cmd/dev/file-watcher.d.ts.map +1 -0
- package/dist/cmd/dev/file-watcher.js +183 -0
- package/dist/cmd/dev/file-watcher.js.map +1 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +61 -23
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/setup/index.d.ts.map +1 -1
- package/dist/cmd/setup/index.js +3 -3
- package/dist/cmd/setup/index.js.map +1 -1
- package/dist/repl.js +2 -2
- package/dist/repl.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +8 -4
- package/src/banner.ts +25 -6
- package/src/cmd/build/entry-generator.ts +85 -65
- package/src/cmd/build/vite/bun-dev-server.ts +45 -18
- package/src/cmd/build/vite/server-bundler.ts +16 -1
- package/src/cmd/build/vite/vite-asset-server-config.ts +22 -1
- package/src/cmd/build/vite/vite-asset-server.ts +1 -1
- package/src/cmd/build/vite/vite-builder.ts +29 -2
- package/src/cmd/cloud/deploy.ts +41 -24
- package/src/cmd/dev/file-watcher.ts +234 -0
- package/src/cmd/dev/index.ts +69 -24
- package/src/cmd/setup/index.ts +7 -3
- package/src/repl.ts +2 -2
- package/src/types.ts +6 -0
package/dist/banner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAwEvE;AAED,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAEjE"}
|
package/dist/banner.js
CHANGED
|
@@ -20,9 +20,27 @@ export function generateBanner(version, compact) {
|
|
|
20
20
|
const versionLabel = ' Version: '; // Include leading space
|
|
21
21
|
const versionLink = LINKS
|
|
22
22
|
? link(getReleaseUrl(_version), _version, WHITE ?? undefined)
|
|
23
|
-
: _version;
|
|
23
|
+
: WHITE + _version + RESET;
|
|
24
24
|
const versionLinkWidth = getDisplayWidth(stripAnsi(versionLink));
|
|
25
25
|
const versionPadding = width - versionLabel.length - versionLinkWidth - 1;
|
|
26
|
+
const docsLabel = ' Docs: ';
|
|
27
|
+
const docsLink = LINKS
|
|
28
|
+
? link('https://preview.agentuity.dev', 'preview.agentuity.dev', WHITE)
|
|
29
|
+
: WHITE + 'https://preview.agentuity.dev' + RESET;
|
|
30
|
+
const docsWidth = getDisplayWidth(stripAnsi(docsLink));
|
|
31
|
+
const docsPadding = width - docsLabel.length - docsWidth - 1;
|
|
32
|
+
const communityLabel = ' Community: ';
|
|
33
|
+
const communityLink = LINKS
|
|
34
|
+
? link('https://discord.gg/agentuity', 'discord.gg/agentuity', WHITE)
|
|
35
|
+
: WHITE + 'https://discord.gg/agentuity' + RESET;
|
|
36
|
+
const communityWidth = getDisplayWidth(stripAnsi(communityLink));
|
|
37
|
+
const communityPadding = width - communityLabel.length - communityWidth - 1;
|
|
38
|
+
const dashboardLabel = ' Dashboard: ';
|
|
39
|
+
const dashboardLink = LINKS
|
|
40
|
+
? link('https://app-v1.agentuity.com', 'app-v1.agentuity.com', WHITE)
|
|
41
|
+
: WHITE + 'https://app-v1.agentuity.com' + RESET;
|
|
42
|
+
const dashboardWidth = getDisplayWidth(stripAnsi(dashboardLink));
|
|
43
|
+
const dashboardPadding = width - dashboardLabel.length - dashboardWidth - 1;
|
|
26
44
|
const lines = [
|
|
27
45
|
CYAN + '╭────────────────────────────────────────────────────╮' + RESET,
|
|
28
46
|
CYAN + `│ ⨺ Agentuity ${WHITE}The full-stack platform for AI agents${CYAN} │` + RESET,
|
|
@@ -34,18 +52,16 @@ export function generateBanner(version, compact) {
|
|
|
34
52
|
RESET,
|
|
35
53
|
compact
|
|
36
54
|
? undefined
|
|
37
|
-
: CYAN +
|
|
38
|
-
`│ Docs: ${link('https://preview.agentuity.dev', undefined, WHITE)}${CYAN} │` +
|
|
39
|
-
RESET,
|
|
55
|
+
: CYAN + `│${docsLabel}${docsLink + ''.padEnd(docsPadding) + CYAN} │` + RESET,
|
|
40
56
|
compact
|
|
41
57
|
? undefined
|
|
42
58
|
: CYAN +
|
|
43
|
-
|
|
59
|
+
`│${communityLabel}${communityLink + ''.padEnd(communityPadding) + CYAN} │` +
|
|
44
60
|
RESET,
|
|
45
61
|
compact
|
|
46
62
|
? undefined
|
|
47
63
|
: CYAN +
|
|
48
|
-
|
|
64
|
+
`│${dashboardLabel}${dashboardLink + ''.padEnd(dashboardPadding) + CYAN} │` +
|
|
49
65
|
RESET,
|
|
50
66
|
CYAN + '╰────────────────────────────────────────────────────╯' + RESET,
|
|
51
67
|
].filter(Boolean);
|
package/dist/banner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EACN,eAAe,EACf,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,eAAe,EACf,SAAS,GACT,MAAM,OAAO,CAAC;AAEf,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,OAAc;IAC9D,MAAM,QAAQ,GAAG,OAAO,IAAI,UAAU,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU;QACtB,CAAC,CAAC,IAAI;YACL,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;YAC/B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,KAAK,GAAG,UAAU;QACvB,CAAC,CAAC,IAAI;YACL,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IAEnC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,8BAA8B;IAChD,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,wBAAwB;IAClE,MAAM,WAAW,GAAG,KAAK;QACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC;QAC7D,CAAC,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-generator.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3D,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"entry-generator.d.ts","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3D,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiZpF"}
|
|
@@ -54,21 +54,12 @@ export async function generateEntryFile(options) {
|
|
|
54
54
|
`import { `,
|
|
55
55
|
...runtimeImports,
|
|
56
56
|
`} from '@agentuity/runtime';`,
|
|
57
|
+
`import type { Context } from 'hono';`,
|
|
57
58
|
`import { websocket } from 'hono/bun';`, // Always use Bun WebSocket (dev and prod)
|
|
58
59
|
!isDev && hasWebFrontend ? `import { serveStatic } from 'hono/bun';` : '',
|
|
59
60
|
].filter(Boolean);
|
|
60
61
|
imports.push(`import { type LogLevel } from '@agentuity/core';`);
|
|
61
|
-
|
|
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
|
-
: '';
|
|
62
|
+
imports.push(`import { bootstrapRuntimeEnv } from '@agentuity/cli/runtime-bootstrap';`);
|
|
72
63
|
// Generate route mounting code for all discovered routes
|
|
73
64
|
const routeImportsAndMounts = [];
|
|
74
65
|
let routeIndex = 0;
|
|
@@ -111,7 +102,7 @@ app.route('/', workbenchRouter);
|
|
|
111
102
|
// Asset proxy routes - Forward Vite-specific requests to asset server
|
|
112
103
|
const VITE_ASSET_PORT = ${vitePort};
|
|
113
104
|
|
|
114
|
-
const proxyToVite = async (c) => {
|
|
105
|
+
const proxyToVite = async (c: Context) => {
|
|
115
106
|
const viteUrl = \`http://127.0.0.1:\${VITE_ASSET_PORT}\${c.req.path}\`;
|
|
116
107
|
const controller = new AbortController();
|
|
117
108
|
const timeout = setTimeout(() => controller.abort(), 10000); // 10s timeout
|
|
@@ -170,40 +161,48 @@ app.get('/*.css', proxyToVite);
|
|
|
170
161
|
let webRoutes = '';
|
|
171
162
|
if (hasWebFrontend) {
|
|
172
163
|
if (isDev) {
|
|
173
|
-
const htmlPath = join(srcDir, 'web', 'index.html');
|
|
174
164
|
webRoutes = `
|
|
175
165
|
// Web routes (dev mode with Vite HMR via proxy)
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
);
|
|
197
|
-
|
|
166
|
+
// Proxy HTML from Vite to let @vitejs/plugin-react handle React Fast Refresh preamble
|
|
167
|
+
const devHtmlHandler = async (c: Context) => {
|
|
168
|
+
const viteUrl = \`http://127.0.0.1:${vitePort}/src/web/index.html\`;
|
|
169
|
+
|
|
170
|
+
try {
|
|
171
|
+
otel.logger.debug('[Proxy] GET /src/web/index.html -> Vite:%d', ${vitePort});
|
|
172
|
+
const res = await fetch(viteUrl, { signal: AbortSignal.timeout(10000) });
|
|
173
|
+
|
|
174
|
+
// Get HTML text and transform relative paths to absolute
|
|
175
|
+
const html = await res.text();
|
|
176
|
+
const transformedHtml = html
|
|
177
|
+
.replace(/src="\\.\\//g, 'src="/src/web/')
|
|
178
|
+
.replace(/href="\\.\\//g, 'href="/src/web/');
|
|
179
|
+
|
|
180
|
+
return new Response(transformedHtml, {
|
|
181
|
+
status: res.status,
|
|
182
|
+
headers: res.headers,
|
|
183
|
+
});
|
|
184
|
+
} catch (err) {
|
|
185
|
+
otel.logger.error('Failed to proxy HTML to Vite: %s', err instanceof Error ? err.message : String(err));
|
|
186
|
+
return c.text('Vite asset server error (HTML)', 500);
|
|
187
|
+
}
|
|
198
188
|
};
|
|
199
189
|
app.get('/', devHtmlHandler);
|
|
200
190
|
// 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
|
|
205
|
-
//
|
|
206
|
-
|
|
191
|
+
app.all('/_agentuity/*', (c: Context) => c.notFound());
|
|
192
|
+
app.all('/api/*', (c: Context) => c.notFound());
|
|
193
|
+
${hasWorkbench ? '' : `app.all('/workbench/*', (c: Context) => c.notFound());`}
|
|
194
|
+
// SPA fallback - serve index.html for client-side routing
|
|
195
|
+
// Asset requests (/*.js, /*.tsx, /*.css, etc.) are handled by Vite proxy routes if present,
|
|
196
|
+
// otherwise we check for file extensions to avoid returning HTML for missing assets
|
|
197
|
+
app.get('*', (c: Context) => {
|
|
198
|
+
const path = c.req.path;
|
|
199
|
+
// If path has a file extension and Vite proxy isn't handling it, return 404
|
|
200
|
+
// This prevents returning HTML for missing assets like /foo.js
|
|
201
|
+
if (${!vitePort} && /\\.[a-zA-Z0-9]+$/.test(path)) {
|
|
202
|
+
return c.notFound();
|
|
203
|
+
}
|
|
204
|
+
return devHtmlHandler(c);
|
|
205
|
+
});
|
|
207
206
|
`;
|
|
208
207
|
}
|
|
209
208
|
else {
|
|
@@ -211,14 +210,34 @@ app.get('*', devHtmlHandler);
|
|
|
211
210
|
// Web routes (production - static files)
|
|
212
211
|
import { readFileSync } from 'node:fs';
|
|
213
212
|
const indexHtml = readFileSync(import.meta.dir + '/client/index.html', 'utf-8');
|
|
213
|
+
|
|
214
|
+
app.get('/', (c: Context) => c.html(indexHtml));
|
|
215
|
+
|
|
216
|
+
// Serve static assets from /assets/* (Vite bundled output)
|
|
214
217
|
app.use('/assets/*', serveStatic({ root: import.meta.dir + '/client' }));
|
|
215
|
-
|
|
216
|
-
//
|
|
217
|
-
app.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
app.
|
|
218
|
+
|
|
219
|
+
// Serve static public assets (favicon.ico, robots.txt, etc. from Vite's public folder)
|
|
220
|
+
app.use('/*', serveStatic({ root: import.meta.dir + '/client', rewriteRequestPath: (path) => path }));
|
|
221
|
+
|
|
222
|
+
// 404 for unmatched API/system routes (IMPORTANT: comes before SPA fallback)
|
|
223
|
+
app.all('/_agentuity/*', (c: Context) => c.notFound());
|
|
224
|
+
app.all('/api/*', (c: Context) => c.notFound());
|
|
225
|
+
${hasWorkbench ? '' : `app.all('/workbench/*', (c: Context) => c.notFound());`}
|
|
226
|
+
|
|
227
|
+
// SPA fallback with asset protection
|
|
228
|
+
// In production, we need to distinguish between:
|
|
229
|
+
// - SPA routes like /dashboard, /users/123 (should return HTML)
|
|
230
|
+
// - Missing assets like /foo.js, /bar.css (should return 404)
|
|
231
|
+
// We check for file extensions to detect asset requests
|
|
232
|
+
app.get('*', (c: Context) => {
|
|
233
|
+
const path = c.req.path;
|
|
234
|
+
// If path has a file extension, it's likely an asset request
|
|
235
|
+
// Return 404 instead of serving HTML
|
|
236
|
+
if (/\\.[a-zA-Z0-9]+$/.test(path)) {
|
|
237
|
+
return c.notFound();
|
|
238
|
+
}
|
|
239
|
+
return c.html(indexHtml);
|
|
240
|
+
});
|
|
222
241
|
`;
|
|
223
242
|
}
|
|
224
243
|
}
|
|
@@ -229,7 +248,7 @@ app.get('*', (c) => c.html(indexHtml));
|
|
|
229
248
|
? isDev
|
|
230
249
|
? `
|
|
231
250
|
// Workbench route (dev mode - let Vite serve source files with HMR)
|
|
232
|
-
app.get('${workbenchRoute}', async (c) => {
|
|
251
|
+
app.get('${workbenchRoute}', async (c: Context) => {
|
|
233
252
|
const html = await Bun.file('${workbenchSrcDir}/index.html').text();
|
|
234
253
|
// Rewrite script/css paths to use Vite's @fs protocol
|
|
235
254
|
const withVite = html
|
|
@@ -245,7 +264,7 @@ import { readFileSync, existsSync } from 'node:fs';
|
|
|
245
264
|
const workbenchIndexPath = import.meta.dir + '/workbench/index.html';
|
|
246
265
|
if (existsSync(workbenchIndexPath)) {
|
|
247
266
|
const workbenchIndex = readFileSync(workbenchIndexPath, 'utf-8');
|
|
248
|
-
app.get('${workbenchRoute}', (c) => c.html(workbenchIndex));
|
|
267
|
+
app.get('${workbenchRoute}', (c: Context) => c.html(workbenchIndex));
|
|
249
268
|
app.get('${workbenchRoute}/*', serveStatic({ root: import.meta.dir + '/workbench' }));
|
|
250
269
|
}
|
|
251
270
|
`
|
|
@@ -253,9 +272,7 @@ if (existsSync(workbenchIndexPath)) {
|
|
|
253
272
|
// Server startup (same for dev and prod - Bun.serve with native WebSocket)
|
|
254
273
|
const serverStartup = `
|
|
255
274
|
// Start Bun server${isDev ? ' (dev mode with Vite asset proxy)' : ''}
|
|
256
|
-
if (typeof Bun !== 'undefined'
|
|
257
|
-
// Not the main module, skip server startup (this is being imported/analyzed)
|
|
258
|
-
} else if (typeof Bun !== 'undefined') {
|
|
275
|
+
if (typeof Bun !== 'undefined') {
|
|
259
276
|
// Enable process exit protection now that we're starting the server
|
|
260
277
|
enableProcessExitProtection();
|
|
261
278
|
|
|
@@ -275,16 +292,25 @@ if (typeof Bun !== 'undefined' && !import.meta.main) {
|
|
|
275
292
|
`;
|
|
276
293
|
const code = `// Auto-generated by Agentuity for ${mode} mode
|
|
277
294
|
// DO NOT EDIT - This file is regenerated on every build
|
|
278
|
-
// NOTE: Bun auto-loads .env files from CWD before executing JavaScript
|
|
279
|
-
|
|
280
295
|
${imports.join('\n')}
|
|
281
296
|
|
|
282
|
-
|
|
297
|
+
// Step 0: Bootstrap runtime environment (load profile-specific .env files)
|
|
298
|
+
// Only in development - production env vars are injected by platform
|
|
299
|
+
// This must happen BEFORE any imports that depend on environment variables
|
|
300
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
301
|
+
// Pass project directory (parent of .agentuity/) so .env files are loaded correctly
|
|
302
|
+
await bootstrapRuntimeEnv({ projectDir: import.meta.dir + '/..' });
|
|
303
|
+
}
|
|
283
304
|
|
|
284
305
|
// Step 1: Initialize telemetry and services
|
|
285
306
|
const serverUrl = \`http://127.0.0.1:\${process.env.PORT || '3500'}\`;
|
|
286
307
|
const otel = register({ processors: [], logLevel: (process.env.AGENTUITY_LOG_LEVEL || 'info') as LogLevel });
|
|
287
|
-
|
|
308
|
+
|
|
309
|
+
// Get app state and config for use below
|
|
310
|
+
const appState = getAppState();
|
|
311
|
+
const appConfig = getAppConfig();
|
|
312
|
+
|
|
313
|
+
createServices(otel.logger, appConfig, serverUrl);
|
|
288
314
|
|
|
289
315
|
// Make logger and tracer globally available for user's app.ts
|
|
290
316
|
setGlobalLogger(otel.logger);
|
|
@@ -314,10 +340,6 @@ app.use('/api/*', createAgentMiddleware(''));
|
|
|
314
340
|
// Step 4: Import user's app.ts (runs createApp, gets state/config)
|
|
315
341
|
await import('../app.ts');
|
|
316
342
|
|
|
317
|
-
// Get app state and config for use below
|
|
318
|
-
const appState = getAppState();
|
|
319
|
-
const appConfig = getAppConfig();
|
|
320
|
-
|
|
321
343
|
// Step 5: Initialize providers
|
|
322
344
|
const threadProvider = getThreadProvider();
|
|
323
345
|
const sessionProvider = getSessionProvider();
|
|
@@ -328,8 +350,8 @@ await sessionProvider.initialize(appState);
|
|
|
328
350
|
// Step 6: Mount routes (AFTER middleware is applied)
|
|
329
351
|
|
|
330
352
|
// System health/idle endpoints
|
|
331
|
-
const healthHandler = (c:
|
|
332
|
-
const idleHandler = (c:
|
|
353
|
+
const healthHandler = (c: Context) => c.text('OK');
|
|
354
|
+
const idleHandler = (c: Context) => {
|
|
333
355
|
// Check if server is idle (no pending requests/connections)
|
|
334
356
|
const server = (globalThis as any).__AGENTUITY_SERVER__;
|
|
335
357
|
if (!server) return c.text('NO', { status: 200 });
|
|
@@ -343,7 +365,6 @@ const idleHandler = (c: any) => {
|
|
|
343
365
|
return c.text('OK', { status: 200 });
|
|
344
366
|
};
|
|
345
367
|
|
|
346
|
-
// Mount on both /_agentuity/* and /* for backwards compatibility
|
|
347
368
|
app.get('/_agentuity/health', healthHandler);
|
|
348
369
|
app.get('/_health', healthHandler);
|
|
349
370
|
app.get('/_agentuity/idle', idleHandler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-generator.js","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAYxD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA6B;IACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;IAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAEzD,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,qBAAqB,CAAC,CAAC;IAEtD,+DAA+D;IAC/D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAExF,8BAA8B;IAC9B,MAAM,cAAc,GACnB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;IAEjC,qEAAqE;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IAED,mBAAmB;IACnB,MAAM,cAAc,GAAG;QACtB,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,yBAAyB;QACzB,0BAA0B;QAC1B,gBAAgB;QAChB,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;QACvB,oBAAoB;QACpB,oBAAoB;QACpB,oBAAoB;QACpB,gCAAgC;QAChC,wBAAwB;KACxB,CAAC;IAEF,IAAI,YAAY,EAAE,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAG;QACf,WAAW;QACX,GAAG,cAAc;QACjB,8BAA8B;QAC9B,uCAAuC,EAAE,0CAA0C;QACnF,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE;KACzE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"entry-generator.js","sourceRoot":"","sources":["../../../src/cmd/build/entry-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,18 +12,14 @@ export interface BunDevServerOptions {
|
|
|
12
12
|
orgId?: string;
|
|
13
13
|
deploymentId?: string;
|
|
14
14
|
logger: Logger;
|
|
15
|
+
vitePort: number;
|
|
15
16
|
}
|
|
16
17
|
export interface BunDevServerResult {
|
|
17
|
-
viteAssetServer: {
|
|
18
|
-
server: {
|
|
19
|
-
close: () => void | Promise<void>;
|
|
20
|
-
};
|
|
21
|
-
port: number;
|
|
22
|
-
};
|
|
23
18
|
bunServerPort: number;
|
|
24
19
|
}
|
|
25
20
|
/**
|
|
26
|
-
* Start Bun dev server
|
|
21
|
+
* Start Bun dev server (Vite asset server must already be running)
|
|
22
|
+
* Generates entry file with proxy routes pointing to Vite
|
|
27
23
|
*/
|
|
28
24
|
export declare function startBunDevServer(options: BunDevServerOptions): Promise<BunDevServerResult>;
|
|
29
25
|
//# sourceMappingURL=bun-dev-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun-dev-server.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/bun-dev-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bun-dev-server.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/bun-dev-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAClC,aAAa,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6EjG"}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* Runs Bun server that handles ALL app logic (HTTP + WebSocket) and proxies
|
|
5
5
|
* frontend asset requests to Vite asset server for HMR support.
|
|
6
6
|
*/
|
|
7
|
-
import { startViteAssetServer } from './vite-asset-server';
|
|
8
7
|
/**
|
|
9
|
-
* Start Bun dev server
|
|
8
|
+
* Start Bun dev server (Vite asset server must already be running)
|
|
9
|
+
* Generates entry file with proxy routes pointing to Vite
|
|
10
10
|
*/
|
|
11
11
|
export async function startBunDevServer(options) {
|
|
12
|
-
const { rootDir, port = 3500, projectId = '', deploymentId = '', logger } = options;
|
|
13
|
-
logger.debug('Starting Bun dev server
|
|
12
|
+
const { rootDir, port = 3500, projectId = '', deploymentId = '', logger, vitePort } = options;
|
|
13
|
+
logger.debug('Starting Bun dev server (Vite already running on port %d)...', vitePort);
|
|
14
14
|
// Generate workbench source files if enabled (dev mode)
|
|
15
15
|
const { loadAgentuityConfig, getWorkbenchConfig } = await import('./config-loader');
|
|
16
16
|
const config = await loadAgentuityConfig(rootDir, logger);
|
|
@@ -20,16 +20,8 @@ export async function startBunDevServer(options) {
|
|
|
20
20
|
const { generateWorkbenchFiles } = await import('./workbench-generator');
|
|
21
21
|
await generateWorkbenchFiles(rootDir, projectId, workbenchConfig, logger);
|
|
22
22
|
}
|
|
23
|
-
// Step 1: Start Vite asset server FIRST and get its dynamic port
|
|
24
|
-
logger.info('🎨 Starting Vite asset server for HMR...');
|
|
25
|
-
const viteAssetServer = await startViteAssetServer({
|
|
26
|
-
rootDir,
|
|
27
|
-
logger,
|
|
28
|
-
workbenchPath: workbenchConfig.enabled ? workbenchConfig.route : undefined,
|
|
29
|
-
});
|
|
30
|
-
const vitePort = viteAssetServer.port;
|
|
31
23
|
// Step 2: Generate entry file with Vite port for asset proxying
|
|
32
|
-
logger.
|
|
24
|
+
logger.debug('📝 Generating entry file with asset proxy configuration...');
|
|
33
25
|
const { generateEntryFile } = await import('../entry-generator');
|
|
34
26
|
await generateEntryFile({
|
|
35
27
|
rootDir,
|
|
@@ -41,13 +33,43 @@ export async function startBunDevServer(options) {
|
|
|
41
33
|
vitePort, // Pass Vite port for proxy routes
|
|
42
34
|
});
|
|
43
35
|
// Step 3: Load the generated app - this will start Bun.serve() internally
|
|
44
|
-
logger.
|
|
36
|
+
logger.debug('📦 Loading generated app (Bun server will start)...');
|
|
45
37
|
const appPath = `${rootDir}/.agentuity/app.generated.ts`;
|
|
38
|
+
// Set PORT env var so the generated app uses the correct port
|
|
39
|
+
process.env.PORT = String(port);
|
|
46
40
|
await import(appPath);
|
|
47
|
-
|
|
41
|
+
// Wait for server to actually start listening
|
|
42
|
+
// The generated app sets (globalThis as any).__AGENTUITY_SERVER__ when server starts
|
|
43
|
+
const maxRetries = 50; // Increased retries for slower systems
|
|
44
|
+
const retryDelay = 100; // ms
|
|
45
|
+
let serverReady = false;
|
|
46
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
47
|
+
// Check if global server object exists
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
if (globalThis.__AGENTUITY_SERVER__) {
|
|
50
|
+
// Server object exists, now verify it's actually listening by making a request
|
|
51
|
+
try {
|
|
52
|
+
await fetch(`http://127.0.0.1:${port}/`, {
|
|
53
|
+
method: 'HEAD',
|
|
54
|
+
signal: AbortSignal.timeout(1000),
|
|
55
|
+
});
|
|
56
|
+
// Any response (even 404) means server is listening
|
|
57
|
+
serverReady = true;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Connection refused or timeout - server not ready yet
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Wait before next check
|
|
65
|
+
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
66
|
+
}
|
|
67
|
+
if (!serverReady) {
|
|
68
|
+
throw new Error(`Bun server failed to start on port ${port} after ${maxRetries * retryDelay}ms`);
|
|
69
|
+
}
|
|
70
|
+
logger.debug(`Bun dev server started on http://127.0.0.1:${port}`);
|
|
48
71
|
logger.debug(`Asset requests (/@vite/*, /src/web/*, etc.) proxied to Vite:${vitePort}`);
|
|
49
72
|
return {
|
|
50
|
-
viteAssetServer,
|
|
51
73
|
bunServerPort: port,
|
|
52
74
|
};
|
|
53
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun-dev-server.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/bun-dev-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"bun-dev-server.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/bun-dev-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-bundler.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/server-bundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"server-bundler.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/server-bundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6P1F"}
|
|
@@ -20,16 +20,25 @@ export async function installExternalsAndBuild(options) {
|
|
|
20
20
|
// Build tool externals: packages that should be external but NOT installed
|
|
21
21
|
// These are devDependencies that may exist in node_modules but aren't needed at runtime
|
|
22
22
|
const buildToolExternals = ['@babel/*', 'lightningcss', '@vitejs/*', 'vite', 'esbuild'];
|
|
23
|
-
// Load custom externals from agentuity.config.ts if it exists
|
|
23
|
+
// Load custom externals and define from agentuity.config.ts if it exists
|
|
24
24
|
const customExternals = [];
|
|
25
|
+
let userDefine = {};
|
|
25
26
|
const configPath = join(rootDir, 'agentuity.config.ts');
|
|
26
27
|
if (await Bun.file(configPath).exists()) {
|
|
27
28
|
try {
|
|
28
29
|
const config = await import(configPath);
|
|
29
30
|
const userConfig = config.default;
|
|
31
|
+
// Load custom externals (legacy build.external support)
|
|
30
32
|
if (userConfig?.build?.external && Array.isArray(userConfig.build.external)) {
|
|
31
33
|
customExternals.push(...userConfig.build.external.filter((e) => typeof e === 'string'));
|
|
32
34
|
}
|
|
35
|
+
// Load custom define values
|
|
36
|
+
if (userConfig?.define && typeof userConfig.define === 'object') {
|
|
37
|
+
userDefine = userConfig.define;
|
|
38
|
+
if (Object.keys(userDefine).length > 0) {
|
|
39
|
+
logger.debug('Loaded %d custom define(s) from agentuity.config.ts for server bundle', Object.keys(userDefine).length);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
}
|
|
34
43
|
catch (error) {
|
|
35
44
|
logger.info('Failed to load agentuity.config.ts for externals:', error);
|
|
@@ -144,6 +153,7 @@ export async function installExternalsAndBuild(options) {
|
|
|
144
153
|
minify: !dev,
|
|
145
154
|
sourcemap: (dev ? 'inline' : 'external'),
|
|
146
155
|
external,
|
|
156
|
+
define: userDefine, // Include custom define values from agentuity.config.ts
|
|
147
157
|
naming: {
|
|
148
158
|
entry: 'app.js', // Output as app.js (not app.generated.js)
|
|
149
159
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-bundler.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/server-bundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AASjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAA4B;IAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,aAAa,MAAM,EAAE,CAAC,CAAC;IAExE,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAE7E,2EAA2E;IAC3E,wFAAwF;IACxF,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAExF,
|
|
1
|
+
{"version":3,"file":"server-bundler.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/server-bundler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-asset-server-config.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-asset-server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gCAAgC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,gCAAgC,GACvC,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"vite-asset-server-config.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-asset-server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,gCAAgC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,gCAAgC,GACvC,OAAO,CAAC,YAAY,CAAC,CAmIvB"}
|
|
@@ -10,6 +10,17 @@ import { join } from 'node:path';
|
|
|
10
10
|
*/
|
|
11
11
|
export async function generateAssetServerConfig(options) {
|
|
12
12
|
const { rootDir, logger, workbenchPath, port } = options;
|
|
13
|
+
// Load custom user config for define values and plugins
|
|
14
|
+
const { loadAgentuityConfig } = await import('./config-loader');
|
|
15
|
+
const userConfig = await loadAgentuityConfig(rootDir, logger);
|
|
16
|
+
const userDefine = userConfig?.define || {};
|
|
17
|
+
const userPlugins = userConfig?.plugins || [];
|
|
18
|
+
if (Object.keys(userDefine).length > 0) {
|
|
19
|
+
logger.debug('Loaded %d custom define(s) from agentuity.config.ts', Object.keys(userDefine).length);
|
|
20
|
+
}
|
|
21
|
+
if (userPlugins.length > 0) {
|
|
22
|
+
logger.debug('Loaded %d custom plugin(s) from agentuity.config.ts', userPlugins.length);
|
|
23
|
+
}
|
|
13
24
|
// Load path aliases from tsconfig.json if available
|
|
14
25
|
const tsconfigPath = join(rootDir, 'tsconfig.json');
|
|
15
26
|
let alias = {};
|
|
@@ -58,14 +69,19 @@ export async function generateAssetServerConfig(options) {
|
|
|
58
69
|
},
|
|
59
70
|
// Define environment variables for browser
|
|
60
71
|
define: {
|
|
72
|
+
// Merge user-defined constants first
|
|
73
|
+
...userDefine,
|
|
74
|
+
// Then add default defines (these will override any user-defined protected keys)
|
|
61
75
|
...(workbenchPath
|
|
62
76
|
? { 'import.meta.env.AGENTUITY_PUBLIC_WORKBENCH_PATH': JSON.stringify(workbenchPath) }
|
|
63
77
|
: {}),
|
|
64
78
|
'import.meta.env.AGENTUITY_PUBLIC_HAS_SDK_KEY': JSON.stringify(process.env.AGENTUITY_SDK_KEY ? 'true' : 'false'),
|
|
65
79
|
'process.env.NODE_ENV': JSON.stringify('development'),
|
|
66
80
|
},
|
|
67
|
-
//
|
|
81
|
+
// Plugins: User plugins first (e.g., Tailwind), then React and browser env
|
|
68
82
|
plugins: [
|
|
83
|
+
// User-defined plugins from agentuity.config.ts (e.g., Tailwind CSS)
|
|
84
|
+
...userPlugins,
|
|
69
85
|
// React plugin for JSX/TSX transformation and Fast Refresh
|
|
70
86
|
(await import('@vitejs/plugin-react')).default(),
|
|
71
87
|
// Browser env plugin to map process.env to import.meta.env
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-asset-server-config.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-asset-server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,OAAyC;IAEzC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzD,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpD,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,QAAQ,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC;QACrD,KAAK,GAAG,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1C,MAAM,SAAS,GAAG,KAAiB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,wCAAwC;IACzC,CAAC;IAED,OAAO;QACN,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK,EAAE,mDAAmD;QAErE,OAAO,EAAE;YACR,KAAK;YACL,kDAAkD;YAClD,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,uBAAuB,CAAC;SAC5E;QAED,yDAAyD;QACzD,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC;QAEpD,MAAM,EAAE;YACP,2BAA2B;YAC3B,IAAI;YACJ,UAAU,EAAE,KAAK,EAAE,kCAAkC;YACrD,IAAI,EAAE,WAAW;YAEjB,kEAAkE;YAClE,IAAI,EAAE;gBACL,MAAM,EAAE,uBAAuB;gBAC/B,WAAW,EAAE,IAAI;aACjB;YAED,wEAAwE;YACxE,GAAG,EAAE;gBACJ,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,qCAAqC;gBAC3C,UAAU,EAAE,IAAI,EAAE,wDAAwD;aAC1E;YAED,0DAA0D;YAC1D,IAAI,EAAE,KAAK;SACX;QAED,2CAA2C;QAC3C,MAAM,EAAE;YACP,GAAG,CAAC,aAAa;gBAChB,CAAC,CAAC,EAAE,iDAAiD,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;gBACtF,CAAC,CAAC,EAAE,CAAC;YACN,8CAA8C,EAAE,IAAI,CAAC,SAAS,CAC7D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAChD;YACD,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SACrD;QAED,
|
|
1
|
+
{"version":3,"file":"vite-asset-server-config.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-asset-server-config.ts"],"names":[],"mappings":"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"}
|