@agentuity/cli 0.0.69 → 0.0.71
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/AGENTS.md +1 -1
- package/README.md +1 -1
- package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
- package/dist/cmd/ai/capabilities/show.js +0 -13
- package/dist/cmd/ai/capabilities/show.js.map +1 -1
- package/dist/cmd/ai/prompt/agent.js +1 -1
- package/dist/cmd/ai/prompt/api.js +1 -1
- package/dist/cmd/build/ast.d.ts +1 -2
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +261 -260
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/bundler.d.ts +4 -1
- package/dist/cmd/build/bundler.d.ts.map +1 -1
- package/dist/cmd/build/bundler.js +89 -6
- package/dist/cmd/build/bundler.js.map +1 -1
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +2 -1
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/plugin.d.ts.map +1 -1
- package/dist/cmd/build/plugin.js +152 -414
- package/dist/cmd/build/plugin.js.map +1 -1
- package/dist/cmd/build/route-registry.d.ts +36 -0
- package/dist/cmd/build/route-registry.d.ts.map +1 -0
- package/dist/cmd/build/route-registry.js +151 -0
- package/dist/cmd/build/route-registry.js.map +1 -0
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +2 -0
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +0 -2
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +4 -3
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/dev/sync.d.ts.map +1 -1
- package/dist/cmd/dev/sync.js +0 -15
- package/dist/cmd/dev/sync.js.map +1 -1
- package/dist/cmd/dev/templates.d.ts.map +1 -1
- package/dist/cmd/dev/templates.js +11 -35
- package/dist/cmd/dev/templates.js.map +1 -1
- package/dist/cmd/profile/create.d.ts.map +1 -1
- package/dist/cmd/profile/create.js +0 -1
- package/dist/cmd/profile/create.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +64 -53
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -3
- package/dist/config.js.map +1 -1
- package/dist/env-util.d.ts.map +1 -1
- package/dist/env-util.js +0 -3
- package/dist/env-util.js.map +1 -1
- package/dist/tui/box.d.ts +19 -0
- package/dist/tui/box.d.ts.map +1 -0
- package/dist/tui/box.js +160 -0
- package/dist/tui/box.js.map +1 -0
- package/dist/tui/colors.d.ts +20 -0
- package/dist/tui/colors.d.ts.map +1 -0
- package/dist/tui/colors.js +52 -0
- package/dist/tui/colors.js.map +1 -0
- package/dist/tui/group.d.ts +25 -0
- package/dist/tui/group.d.ts.map +1 -0
- package/dist/tui/group.js +32 -0
- package/dist/tui/group.js.map +1 -0
- package/dist/tui/prompt.d.ts +65 -0
- package/dist/tui/prompt.d.ts.map +1 -0
- package/dist/tui/prompt.js +377 -0
- package/dist/tui/prompt.js.map +1 -0
- package/dist/tui/symbols.d.ts +32 -0
- package/dist/tui/symbols.d.ts.map +1 -0
- package/dist/tui/symbols.js +52 -0
- package/dist/tui/symbols.js.map +1 -0
- package/dist/tui.d.ts +6 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +6 -0
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +0 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/src/cmd/ai/capabilities/show.ts +0 -13
- package/src/cmd/ai/prompt/agent.ts +1 -1
- package/src/cmd/ai/prompt/api.ts +1 -1
- package/src/cmd/build/ast.ts +364 -334
- package/src/cmd/build/bundler.ts +123 -9
- package/src/cmd/build/index.ts +2 -1
- package/src/cmd/build/plugin.ts +171 -493
- package/src/cmd/build/route-registry.ts +198 -0
- package/src/cmd/cloud/deploy.ts +2 -0
- package/src/cmd/cloud/index.ts +0 -2
- package/src/cmd/dev/index.ts +4 -3
- package/src/cmd/dev/sync.ts +0 -28
- package/src/cmd/dev/templates.ts +11 -35
- package/src/cmd/profile/create.ts +0 -1
- package/src/cmd/project/template-flow.ts +77 -57
- package/src/config.ts +0 -3
- package/src/env-util.ts +0 -3
- package/src/tui/box.ts +202 -0
- package/src/tui/colors.ts +55 -0
- package/src/tui/group.ts +56 -0
- package/src/tui/prompt.ts +506 -0
- package/src/tui/symbols.ts +64 -0
- package/src/tui.ts +14 -0
- package/src/types.ts +0 -1
- package/dist/cmd/cloud/objectstore/delete-bucket.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/delete-bucket.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/delete-bucket.js +0 -72
- package/dist/cmd/cloud/objectstore/delete-bucket.js.map +0 -1
- package/dist/cmd/cloud/objectstore/delete.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/delete.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/delete.js +0 -65
- package/dist/cmd/cloud/objectstore/delete.js.map +0 -1
- package/dist/cmd/cloud/objectstore/get.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/get.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/get.js +0 -75
- package/dist/cmd/cloud/objectstore/get.js.map +0 -1
- package/dist/cmd/cloud/objectstore/index.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/index.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/index.js +0 -36
- package/dist/cmd/cloud/objectstore/index.js.map +0 -1
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/list-buckets.js +0 -46
- package/dist/cmd/cloud/objectstore/list-buckets.js.map +0 -1
- package/dist/cmd/cloud/objectstore/list-keys.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/list-keys.js +0 -58
- package/dist/cmd/cloud/objectstore/list-keys.js.map +0 -1
- package/dist/cmd/cloud/objectstore/put.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/put.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/put.js +0 -66
- package/dist/cmd/cloud/objectstore/put.js.map +0 -1
- package/dist/cmd/cloud/objectstore/repl.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/repl.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/repl.js +0 -224
- package/dist/cmd/cloud/objectstore/repl.js.map +0 -1
- package/dist/cmd/cloud/objectstore/url.d.ts +0 -3
- package/dist/cmd/cloud/objectstore/url.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/url.js +0 -64
- package/dist/cmd/cloud/objectstore/url.js.map +0 -1
- package/dist/cmd/cloud/objectstore/util.d.ts +0 -11
- package/dist/cmd/cloud/objectstore/util.d.ts.map +0 -1
- package/dist/cmd/cloud/objectstore/util.js +0 -18
- package/dist/cmd/cloud/objectstore/util.js.map +0 -1
- package/src/cmd/build/ast.test.ts +0 -418
- package/src/cmd/build/fix-duplicate-exports.test.ts +0 -387
- package/src/cmd/cloud/objectstore/delete-bucket.ts +0 -77
- package/src/cmd/cloud/objectstore/delete.ts +0 -67
- package/src/cmd/cloud/objectstore/get.ts +0 -77
- package/src/cmd/cloud/objectstore/index.ts +0 -36
- package/src/cmd/cloud/objectstore/list-buckets.ts +0 -51
- package/src/cmd/cloud/objectstore/list-keys.ts +0 -63
- package/src/cmd/cloud/objectstore/put.ts +0 -74
- package/src/cmd/cloud/objectstore/repl.ts +0 -239
- package/src/cmd/cloud/objectstore/url.ts +0 -67
- package/src/cmd/cloud/objectstore/util.ts +0 -29
- package/src/crypto/box.test.ts +0 -431
- package/src/env-util.test.ts +0 -194
package/src/cmd/build/bundler.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { $ } from 'bun';
|
|
2
2
|
import { join, relative, resolve, dirname, basename } from 'node:path';
|
|
3
|
-
import { cpSync, existsSync, mkdirSync, rmSync } from 'node:fs';
|
|
3
|
+
import { cpSync, existsSync, mkdirSync, rmSync, readdirSync } from 'node:fs';
|
|
4
4
|
import gitParseUrl from 'git-url-parse';
|
|
5
5
|
import AgentuityBundler, { getBuildMetadata } from './plugin';
|
|
6
6
|
import { getFilesRecursively } from './file';
|
|
7
7
|
import { getVersion } from '../../version';
|
|
8
8
|
import type { Project } from '../../types';
|
|
9
9
|
import { fixDuplicateExportsInDirectory } from './fix-duplicate-exports';
|
|
10
|
-
import {
|
|
11
|
-
import type { LogLevel } from '../../types';
|
|
10
|
+
import type { Logger } from '../../types';
|
|
12
11
|
import { generateWorkbenchMainTsx, generateWorkbenchIndexHtml } from './workbench-templates';
|
|
13
12
|
import { analyzeWorkbench } from './ast';
|
|
14
13
|
import { StructuredError } from '@agentuity/core';
|
|
@@ -27,6 +26,8 @@ export interface BundleOptions extends DeployOptions {
|
|
|
27
26
|
project?: Project;
|
|
28
27
|
port?: number;
|
|
29
28
|
outDir?: string;
|
|
29
|
+
region: string;
|
|
30
|
+
logger: Logger;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
type BuildResult = Awaited<ReturnType<typeof Bun.build>>;
|
|
@@ -73,6 +74,8 @@ export async function bundle({
|
|
|
73
74
|
pullRequestURL,
|
|
74
75
|
message,
|
|
75
76
|
env,
|
|
77
|
+
region,
|
|
78
|
+
logger,
|
|
76
79
|
}: BundleOptions) {
|
|
77
80
|
const appFile = join(rootDir, 'app.ts');
|
|
78
81
|
if (!existsSync(appFile)) {
|
|
@@ -148,6 +151,101 @@ export async function bundle({
|
|
|
148
151
|
}
|
|
149
152
|
}
|
|
150
153
|
|
|
154
|
+
// Common externals for native modules (same as legacy CLI)
|
|
155
|
+
const commonExternals = ['bun', 'fsevents', 'chromium-bidi', 'sharp'];
|
|
156
|
+
|
|
157
|
+
// OpenTelemetry packages need to be externalized due to CommonJS/ESM hybrid issues
|
|
158
|
+
const otelExternals = ['@opentelemetry/*', '@traceloop/*'];
|
|
159
|
+
|
|
160
|
+
// Allow projects to specify custom externals via package.json "externals" field
|
|
161
|
+
const customExternals: string[] = [];
|
|
162
|
+
if (pkgContents.externals && Array.isArray(pkgContents.externals)) {
|
|
163
|
+
customExternals.push(...pkgContents.externals.filter((e: unknown) => typeof e === 'string'));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const externalPatterns = [...commonExternals, ...otelExternals, ...customExternals];
|
|
167
|
+
|
|
168
|
+
// For production builds: install externals FIRST, then discover full dependency tree
|
|
169
|
+
// This prevents bundling dependencies that will be in node_modules anyway
|
|
170
|
+
let external = externalPatterns;
|
|
171
|
+
if (!dev) {
|
|
172
|
+
logger.debug('Installing externalized packages to discover full dependency tree...');
|
|
173
|
+
|
|
174
|
+
// Step 1: Collect packages matching external patterns
|
|
175
|
+
const externalInstalls: string[] = [];
|
|
176
|
+
for (const pattern of externalPatterns) {
|
|
177
|
+
if (pattern.endsWith('/*')) {
|
|
178
|
+
const prefix = pattern.slice(0, -2);
|
|
179
|
+
const nmDir = join(rootDir, 'node_modules', prefix);
|
|
180
|
+
if (existsSync(nmDir)) {
|
|
181
|
+
const entries = readdirSync(nmDir);
|
|
182
|
+
for (const entry of entries) {
|
|
183
|
+
const pkgName = `${prefix}/${entry}`;
|
|
184
|
+
if (existsSync(join(rootDir, 'node_modules', pkgName))) {
|
|
185
|
+
externalInstalls.push(pkgName);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
if (existsSync(join(rootDir, 'node_modules', pattern))) {
|
|
191
|
+
externalInstalls.push(pattern);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Step 2: Write minimal package.json and install externals
|
|
197
|
+
if (externalInstalls.length > 0) {
|
|
198
|
+
await Bun.write(
|
|
199
|
+
`${outDir}/package.json`,
|
|
200
|
+
JSON.stringify({ name: pkgContents.name, version: pkgContents.version }, null, 2)
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
logger.debug(
|
|
204
|
+
'Installing %d packages: %s',
|
|
205
|
+
externalInstalls.length,
|
|
206
|
+
externalInstalls.join(', ')
|
|
207
|
+
);
|
|
208
|
+
await $`bun install --no-save --ignore-scripts --target=bun-linux-x64 ${externalInstalls}`
|
|
209
|
+
.cwd(outDir)
|
|
210
|
+
.quiet();
|
|
211
|
+
|
|
212
|
+
// Step 3: Scan what actually got installed (includes transitive dependencies)
|
|
213
|
+
const installedNmDir = join(outDir, 'node_modules');
|
|
214
|
+
if (existsSync(installedNmDir)) {
|
|
215
|
+
const allInstalled: string[] = [];
|
|
216
|
+
|
|
217
|
+
// Recursively find all installed packages
|
|
218
|
+
const scanDir = (dir: string, prefix = '') => {
|
|
219
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
220
|
+
for (const entry of entries) {
|
|
221
|
+
if (entry.isDirectory()) {
|
|
222
|
+
const pkgName = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
223
|
+
|
|
224
|
+
// Check if this is a package (has package.json)
|
|
225
|
+
if (existsSync(join(dir, entry.name, 'package.json'))) {
|
|
226
|
+
allInstalled.push(pkgName);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Recurse into scoped packages (@org/package)
|
|
230
|
+
if (entry.name.startsWith('@')) {
|
|
231
|
+
scanDir(join(dir, entry.name), entry.name);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
scanDir(installedNmDir);
|
|
238
|
+
logger.debug(
|
|
239
|
+
'Discovered %d total packages (including dependencies)',
|
|
240
|
+
allInstalled.length
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
// Step 4: Use ALL installed packages as externals for bundling
|
|
244
|
+
external = allInstalled;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
151
249
|
await (async () => {
|
|
152
250
|
const config: Bun.BuildConfig = {
|
|
153
251
|
entrypoints: appEntrypoints,
|
|
@@ -166,6 +264,7 @@ export async function bundle({
|
|
|
166
264
|
drop: isProd ? ['debugger'] : undefined,
|
|
167
265
|
splitting: true,
|
|
168
266
|
conditions: [isProd ? 'production' : 'development', 'bun'],
|
|
267
|
+
external,
|
|
169
268
|
naming: {
|
|
170
269
|
entry: '[dir]/[name].[ext]',
|
|
171
270
|
chunk: 'chunk/[name]-[hash].[ext]',
|
|
@@ -259,6 +358,7 @@ export async function bundle({
|
|
|
259
358
|
mkdirSync(webOutDir, { recursive: true });
|
|
260
359
|
mkdirSync(join(webOutDir, 'chunk'), { recursive: true });
|
|
261
360
|
mkdirSync(join(webOutDir, 'asset'), { recursive: true });
|
|
361
|
+
const isLocalRegion = region === 'local' || region === 'l';
|
|
262
362
|
|
|
263
363
|
const config: Bun.BuildConfig = {
|
|
264
364
|
entrypoints: webEntrypoints,
|
|
@@ -276,8 +376,10 @@ export async function bundle({
|
|
|
276
376
|
splitting: true,
|
|
277
377
|
packages: 'bundle',
|
|
278
378
|
external: workspaceRoot !== rootDir ? [] : undefined,
|
|
379
|
+
// Ensure React is resolved from the consuming app's node_modules
|
|
380
|
+
conditions: ['browser', 'import', 'default'],
|
|
279
381
|
publicPath:
|
|
280
|
-
isProd && deploymentId
|
|
382
|
+
isProd && deploymentId && !isLocalRegion
|
|
281
383
|
? `https://static.agentuity.com/${deploymentId}/`
|
|
282
384
|
: undefined,
|
|
283
385
|
naming: {
|
|
@@ -323,7 +425,6 @@ export async function bundle({
|
|
|
323
425
|
// Create workbench config with proper defaults
|
|
324
426
|
const defaultConfig = { route: '/workbench', headers: {}, port: port || 3500 };
|
|
325
427
|
const config = { ...defaultConfig, ...analysis.config };
|
|
326
|
-
const logger = createLogger((process.env.AGENTUITY_LOG_LEVEL as LogLevel) || 'info');
|
|
327
428
|
try {
|
|
328
429
|
// Generate workbench files on the fly instead of using files from package
|
|
329
430
|
const tempWorkbenchDir = join(outDir, 'temp-workbench');
|
|
@@ -564,13 +665,26 @@ export async function bundle({
|
|
|
564
665
|
}
|
|
565
666
|
}
|
|
566
667
|
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
668
|
+
// Write minimal package.json for dev mode (production already wrote it above)
|
|
669
|
+
if (dev) {
|
|
670
|
+
await Bun.write(
|
|
671
|
+
`${outDir}/package.json`,
|
|
672
|
+
JSON.stringify({ name: pkgContents.name, version: pkgContents.version }, null, 2)
|
|
673
|
+
);
|
|
674
|
+
}
|
|
571
675
|
|
|
572
676
|
await Bun.write(
|
|
573
677
|
`${outDir}/agentuity.metadata.json`,
|
|
574
678
|
dev ? JSON.stringify(buildmetadata, null, 2) : JSON.stringify(buildmetadata)
|
|
575
679
|
);
|
|
680
|
+
|
|
681
|
+
// Generate route mapping file for runtime route tracking
|
|
682
|
+
const routeMapping: Record<string, string> = {};
|
|
683
|
+
for (const route of buildmetadata.routes ?? []) {
|
|
684
|
+
routeMapping[`${route.method} ${route.path}`] = route.id;
|
|
685
|
+
}
|
|
686
|
+
await Bun.write(
|
|
687
|
+
`${outDir}/.routemapping.json`,
|
|
688
|
+
dev ? JSON.stringify(routeMapping, null, 2) : JSON.stringify(routeMapping)
|
|
689
|
+
);
|
|
576
690
|
}
|
package/src/cmd/build/index.ts
CHANGED
|
@@ -56,7 +56,6 @@ export const command = createCommand({
|
|
|
56
56
|
env.set('AGENTUITY_TRANSPORT_URL', serviceUrls.catalyst);
|
|
57
57
|
env.set('AGENTUITY_CATALYST_URL', serviceUrls.catalyst);
|
|
58
58
|
env.set('AGENTUITY_VECTOR_URL', serviceUrls.vector);
|
|
59
|
-
env.set('AGENTUITY_OBJECTSTORE_URL', serviceUrls.objectstore);
|
|
60
59
|
env.set('AGENTUITY_KEYVALUE_URL', serviceUrls.keyvalue);
|
|
61
60
|
env.set('AGENTUITY_STREAM_URL', serviceUrls.stream);
|
|
62
61
|
env.set('AGENTUITY_CLOUD_ORG_ID', project.orgId);
|
|
@@ -74,6 +73,8 @@ export const command = createCommand({
|
|
|
74
73
|
orgId: project?.orgId,
|
|
75
74
|
projectId: project?.projectId,
|
|
76
75
|
env,
|
|
76
|
+
region: project?.region ?? 'local',
|
|
77
|
+
logger: ctx.logger,
|
|
77
78
|
});
|
|
78
79
|
|
|
79
80
|
// Run TypeScript type checking after registry generation (skip in dev mode)
|