@agentuity/cli 0.1.5 → 0.1.7
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/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +3 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/canary/index.d.ts +2 -0
- package/dist/cmd/canary/index.d.ts.map +1 -0
- package/dist/cmd/canary/index.js +186 -0
- package/dist/cmd/canary/index.js.map +1 -0
- package/dist/cmd/dev/file-watcher.d.ts.map +1 -1
- package/dist/cmd/dev/file-watcher.js +49 -19
- package/dist/cmd/dev/file-watcher.js.map +1 -1
- package/dist/cmd/index.d.ts.map +1 -1
- package/dist/cmd/index.js +1 -0
- package/dist/cmd/index.js.map +1 -1
- package/dist/cmd/project/auth/generate.js +2 -2
- package/dist/cmd/project/auth/generate.js.map +1 -1
- package/dist/cmd/project/auth/init.js +2 -2
- package/dist/cmd/project/auth/init.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts +2 -1
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +11 -5
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/template-flow.js +1 -1
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/version-check.js +1 -1
- package/dist/version-check.js.map +1 -1
- package/package.json +6 -6
- package/src/cli.ts +10 -1
- package/src/cmd/build/vite/server-bundler.ts +3 -1
- package/src/cmd/canary/index.ts +212 -0
- package/src/cmd/dev/file-watcher.ts +58 -22
- package/src/cmd/index.ts +1 -0
- package/src/cmd/project/auth/generate.ts +5 -5
- package/src/cmd/project/auth/init.ts +4 -4
- package/src/cmd/project/auth/shared.ts +12 -5
- package/src/cmd/project/template-flow.ts +4 -4
- package/src/types.ts +3 -0
- package/src/version-check.ts +1 -1
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version-check.js
CHANGED
|
@@ -117,7 +117,7 @@ async function performUpgrade(logger) {
|
|
|
117
117
|
const args = process.argv.slice(2);
|
|
118
118
|
const newBinaryPath = process.execPath;
|
|
119
119
|
logger.info('Upgrade successful! Restarting with new version...');
|
|
120
|
-
|
|
120
|
+
console.log('');
|
|
121
121
|
// Spawn new process with same arguments
|
|
122
122
|
const proc = Bun.spawn([newBinaryPath, ...args], {
|
|
123
123
|
stdin: 'inherit',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC;;GAEG;AACH,SAAS,eAAe,CACvB,MAAqB,EACrB,OAMC,EACD,UAAyC,EACzC,IAAc;IAEd,0DAA0D;IAC1D,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+CAA+C;IAC/C,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IACpC,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uDAAuD;IACvD,8DAA8D;IAC9D,IAAI,UAAU,IAAK,UAAkB,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,yBAAyB;IACzB,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAqB;IAC5C,MAAM,SAAS,GAAG,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC;IACzD,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;IAChC,OAAO,OAAO,IAAI,WAAW,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,cAAsB,EAAE,aAAqB;IACzE,+BAA+B;IAC/B,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEtD,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxD,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E,GAAG,CAAC,OAAO,EAAE,CAAC;IAEd,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAAC,MAAqB,EAAE,MAAc;IACxE,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,MAAM,aAAa,GAAW;QAC7B,GAAG,MAAM;QACT,WAAW,EAAE;YACZ,GAAG,MAAM,CAAC,WAAW;YACrB,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;SAC7B;KACD,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,+BAA+B;QAC/B,MAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,MAAc;IAC3C,IAAI,CAAC;QACJ,2EAA2E;QAC3E,qFAAqF;QACrF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,CAAC,CAAA,GAAG,OAAO,CAAC,QAAQ,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAErD,wCAAwC;QACxC,kDAAkD;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAClE,
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"prepublishOnly": "bun run clean && bun run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@agentuity/auth": "0.1.
|
|
44
|
-
"@agentuity/core": "0.1.
|
|
45
|
-
"@agentuity/server": "0.1.
|
|
43
|
+
"@agentuity/auth": "0.1.7",
|
|
44
|
+
"@agentuity/core": "0.1.7",
|
|
45
|
+
"@agentuity/server": "0.1.7",
|
|
46
46
|
"@datasert/cronjs-parser": "^1.4.0",
|
|
47
47
|
"@terascope/fetch-github-release": "^2.2.1",
|
|
48
48
|
"@vitejs/plugin-react": "^5.1.2",
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
"typescript": "^5.9.0",
|
|
61
61
|
"vite": "^7.2.7",
|
|
62
62
|
"zod": "^4.3.5",
|
|
63
|
-
"@agentuity/frontend": "0.1.
|
|
63
|
+
"@agentuity/frontend": "0.1.7"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@agentuity/test-utils": "0.1.
|
|
66
|
+
"@agentuity/test-utils": "0.1.7",
|
|
67
67
|
"@types/adm-zip": "^0.5.7",
|
|
68
68
|
"@types/bun": "latest",
|
|
69
69
|
"@types/tar-fs": "^2.0.4",
|
package/src/cli.ts
CHANGED
|
@@ -796,7 +796,16 @@ async function registerSubcommand(
|
|
|
796
796
|
): Promise<void> {
|
|
797
797
|
const cmd = parent.command(subcommand.name, { hidden }).description(subcommand.description);
|
|
798
798
|
|
|
799
|
-
|
|
799
|
+
// Allow pass-through args for commands that need to forward unknown options
|
|
800
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
801
|
+
if ((subcommand as any).passThroughArgs) {
|
|
802
|
+
cmd.allowUnknownOption();
|
|
803
|
+
cmd.allowExcessArguments();
|
|
804
|
+
// Disable help option so --help passes through to the target command
|
|
805
|
+
cmd.helpOption(false);
|
|
806
|
+
} else {
|
|
807
|
+
cmd.helpOption('-h, --help [json]', 'Display help (with optional JSON output)');
|
|
808
|
+
}
|
|
800
809
|
|
|
801
810
|
if (subcommand.aliases) {
|
|
802
811
|
cmd.aliases(subcommand.aliases);
|
|
@@ -66,7 +66,9 @@ export async function installExternalsAndBuild(options: ServerBundleOptions): Pr
|
|
|
66
66
|
|
|
67
67
|
// Build tool externals: packages that should be external but NOT installed
|
|
68
68
|
// These are devDependencies that may exist in node_modules but aren't needed at runtime
|
|
69
|
-
|
|
69
|
+
// NOTE: @babel/* is NOT externalized because some runtime deps (e.g., puppeteer → cosmiconfig → parse-json)
|
|
70
|
+
// require @babel/code-frame at runtime. Babel packages are pure JS and bundle fine.
|
|
71
|
+
const buildToolExternals = ['lightningcss', '@vitejs/*', 'vite', 'esbuild'];
|
|
70
72
|
|
|
71
73
|
// Load custom externals and define from agentuity.config.ts if it exists
|
|
72
74
|
const customExternals: string[] = [];
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { createCommand } from '../../types';
|
|
2
|
+
import { getPlatformInfo } from '../upgrade';
|
|
3
|
+
import { downloadWithProgress } from '../../download';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { $ } from 'bun';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { homedir } from 'node:os';
|
|
8
|
+
import { readdir, rm, mkdir, stat } from 'node:fs/promises';
|
|
9
|
+
import { createHash } from 'node:crypto';
|
|
10
|
+
import * as tui from '../../tui';
|
|
11
|
+
|
|
12
|
+
const CANARY_CACHE_DIR = join(homedir(), '.agentuity', 'canary');
|
|
13
|
+
const CANARY_BASE_URL = 'https://agentuity-sdk-objects.t3.storage.dev/binary';
|
|
14
|
+
const CACHE_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
15
|
+
|
|
16
|
+
const CanaryArgsSchema = z.object({
|
|
17
|
+
args: z
|
|
18
|
+
.array(z.string())
|
|
19
|
+
.describe('Version/URL followed by commands to run (e.g., 0.1.6-abc1234 deploy --force)'),
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const CanaryResponseSchema = z.object({
|
|
23
|
+
executed: z.boolean().describe('Whether the canary was executed'),
|
|
24
|
+
version: z.string().describe('The canary version'),
|
|
25
|
+
message: z.string().describe('Status message'),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
function isUrl(str: string): boolean {
|
|
29
|
+
return str.startsWith('http://') || str.startsWith('https://');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function getBinaryFilename(platform: { os: string; arch: string }): string {
|
|
33
|
+
return `agentuity-${platform.os}-${platform.arch}.gz`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function getCachePath(version: string): string {
|
|
37
|
+
return join(CANARY_CACHE_DIR, version, 'agentuity');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function hashUrl(url: string): string {
|
|
41
|
+
return createHash('sha256').update(url).digest('hex').slice(0, 12);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async function cleanupOldCanaries(): Promise<void> {
|
|
45
|
+
try {
|
|
46
|
+
await mkdir(CANARY_CACHE_DIR, { recursive: true });
|
|
47
|
+
const entries = await readdir(CANARY_CACHE_DIR);
|
|
48
|
+
const now = Date.now();
|
|
49
|
+
|
|
50
|
+
for (const entry of entries) {
|
|
51
|
+
const entryPath = join(CANARY_CACHE_DIR, entry);
|
|
52
|
+
try {
|
|
53
|
+
const stats = await stat(entryPath);
|
|
54
|
+
if (now - stats.mtimeMs > CACHE_MAX_AGE_MS) {
|
|
55
|
+
await rm(entryPath, { recursive: true, force: true });
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
// Ignore errors for individual entries
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
} catch {
|
|
62
|
+
// Ignore cleanup errors
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function downloadCanary(url: string, destPath: string): Promise<void> {
|
|
67
|
+
const destDir = join(destPath, '..');
|
|
68
|
+
await mkdir(destDir, { recursive: true });
|
|
69
|
+
|
|
70
|
+
const gzPath = `${destPath}.gz`;
|
|
71
|
+
|
|
72
|
+
const stream = await downloadWithProgress({
|
|
73
|
+
url,
|
|
74
|
+
message: 'Downloading canary...',
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const writer = Bun.file(gzPath).writer();
|
|
78
|
+
for await (const chunk of stream) {
|
|
79
|
+
writer.write(chunk);
|
|
80
|
+
}
|
|
81
|
+
await writer.end();
|
|
82
|
+
|
|
83
|
+
if (!(await Bun.file(gzPath).exists())) {
|
|
84
|
+
throw new Error('Download failed - file not created');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
try {
|
|
88
|
+
await $`gunzip ${gzPath}`.quiet();
|
|
89
|
+
} catch (error) {
|
|
90
|
+
if (await Bun.file(gzPath).exists()) {
|
|
91
|
+
await $`rm ${gzPath}`.quiet();
|
|
92
|
+
}
|
|
93
|
+
throw new Error(
|
|
94
|
+
`Decompression failed: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (!(await Bun.file(destPath).exists())) {
|
|
99
|
+
throw new Error('Decompression failed - file not found');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
await $`chmod 755 ${destPath}`.quiet();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export const command = createCommand({
|
|
106
|
+
name: 'canary',
|
|
107
|
+
description: 'Run a canary version of the CLI',
|
|
108
|
+
hidden: true,
|
|
109
|
+
skipUpgradeCheck: true,
|
|
110
|
+
passThroughArgs: true,
|
|
111
|
+
schema: {
|
|
112
|
+
args: CanaryArgsSchema,
|
|
113
|
+
response: CanaryResponseSchema,
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
async handler(ctx) {
|
|
117
|
+
const { args } = ctx;
|
|
118
|
+
|
|
119
|
+
// Get raw args from process.argv to capture ALL args after 'canary <version>'
|
|
120
|
+
// This ensures we forward everything including flags like --json, --force, etc.
|
|
121
|
+
const argv = process.argv;
|
|
122
|
+
const canaryIndex = argv.indexOf('canary');
|
|
123
|
+
|
|
124
|
+
if (args.args.length === 0) {
|
|
125
|
+
tui.error('Usage: agentuity canary <version|url> [commands...]');
|
|
126
|
+
tui.newline();
|
|
127
|
+
tui.info('Examples:');
|
|
128
|
+
tui.info(' agentuity canary 0.1.6-abc1234');
|
|
129
|
+
tui.info(' agentuity canary 0.1.6-abc1234 deploy --log-level trace');
|
|
130
|
+
tui.info(
|
|
131
|
+
' agentuity canary https://agentuity-sdk-objects.t3.storage.dev/binary/0.1.6-abc1234/agentuity-darwin-arm64.gz'
|
|
132
|
+
);
|
|
133
|
+
return {
|
|
134
|
+
executed: false,
|
|
135
|
+
version: '',
|
|
136
|
+
message: 'No target specified',
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Get target from parsed args, but get forward args from raw argv
|
|
141
|
+
// This captures ALL args after the version including any flags
|
|
142
|
+
const target = args.args[0];
|
|
143
|
+
const targetIndex = canaryIndex >= 0 ? argv.indexOf(target, canaryIndex) : -1;
|
|
144
|
+
const forwardArgs = targetIndex >= 0 ? argv.slice(targetIndex + 1) : args.args.slice(1);
|
|
145
|
+
|
|
146
|
+
// Clean up old canaries in background
|
|
147
|
+
cleanupOldCanaries().catch(() => {});
|
|
148
|
+
|
|
149
|
+
const platform = getPlatformInfo();
|
|
150
|
+
let version: string;
|
|
151
|
+
let downloadUrl: string;
|
|
152
|
+
let cachePath: string;
|
|
153
|
+
|
|
154
|
+
if (isUrl(target)) {
|
|
155
|
+
// Extract version from URL, or create a unique hash for custom URLs
|
|
156
|
+
const match = target.match(/\/binary\/([^/]+)\//);
|
|
157
|
+
version = match ? match[1] : `custom-${hashUrl(target)}`;
|
|
158
|
+
downloadUrl = target;
|
|
159
|
+
cachePath = getCachePath(version);
|
|
160
|
+
} else {
|
|
161
|
+
// Treat as version string
|
|
162
|
+
version = target;
|
|
163
|
+
const filename = getBinaryFilename(platform);
|
|
164
|
+
downloadUrl = `${CANARY_BASE_URL}/${version}/${filename}`;
|
|
165
|
+
cachePath = getCachePath(version);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Check cache
|
|
169
|
+
if (await Bun.file(cachePath).exists()) {
|
|
170
|
+
tui.info(`Using cached canary ${version}`);
|
|
171
|
+
} else {
|
|
172
|
+
tui.info(`Downloading canary ${version}...`);
|
|
173
|
+
try {
|
|
174
|
+
await downloadCanary(downloadUrl, cachePath);
|
|
175
|
+
tui.success(`Downloaded canary ${version}`);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
tui.error(`Failed to download canary: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
178
|
+
return {
|
|
179
|
+
executed: false,
|
|
180
|
+
version,
|
|
181
|
+
message: `Failed to download: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Update access time
|
|
187
|
+
try {
|
|
188
|
+
await $`touch -a -m ${cachePath}`.quiet();
|
|
189
|
+
} catch {
|
|
190
|
+
// Ignore touch errors
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
tui.newline();
|
|
194
|
+
tui.info(`Running canary ${version}...`);
|
|
195
|
+
tui.newline();
|
|
196
|
+
|
|
197
|
+
// Execute the canary binary with forwarded args
|
|
198
|
+
// Skip version check in the canary binary to avoid upgrade prompts
|
|
199
|
+
const proc = Bun.spawn([cachePath, ...forwardArgs], {
|
|
200
|
+
stdin: 'inherit',
|
|
201
|
+
stdout: 'inherit',
|
|
202
|
+
stderr: 'inherit',
|
|
203
|
+
env: {
|
|
204
|
+
...process.env,
|
|
205
|
+
AGENTUITY_SKIP_VERSION_CHECK: '1',
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
const exitCode = await proc.exited;
|
|
210
|
+
process.exit(exitCode);
|
|
211
|
+
},
|
|
212
|
+
});
|
|
@@ -44,10 +44,18 @@ export function createFileWatcher(options: FileWatcherOptions): FileWatcherManag
|
|
|
44
44
|
'.opencode',
|
|
45
45
|
'node_modules',
|
|
46
46
|
'.git',
|
|
47
|
+
'.github',
|
|
47
48
|
'dist',
|
|
48
49
|
'build',
|
|
49
50
|
'.next',
|
|
50
51
|
'.turbo',
|
|
52
|
+
'.npm',
|
|
53
|
+
'.dist',
|
|
54
|
+
'.vscode',
|
|
55
|
+
'.idea',
|
|
56
|
+
'.DS_Store',
|
|
57
|
+
'.playwright',
|
|
58
|
+
'src/generated',
|
|
51
59
|
]);
|
|
52
60
|
|
|
53
61
|
// Paths to ignore for file change events (but may still be traversed)
|
|
@@ -59,11 +67,19 @@ export function createFileWatcher(options: FileWatcherOptions): FileWatcherManag
|
|
|
59
67
|
'.opencode',
|
|
60
68
|
'node_modules',
|
|
61
69
|
'.git',
|
|
70
|
+
'.github',
|
|
62
71
|
'dist',
|
|
63
72
|
'build',
|
|
64
73
|
'.next',
|
|
65
74
|
'.turbo',
|
|
75
|
+
'.npm',
|
|
76
|
+
'.dist',
|
|
77
|
+
'.vscode',
|
|
78
|
+
'.idea',
|
|
79
|
+
'.DS_Store',
|
|
80
|
+
'.playwright',
|
|
66
81
|
'src/web', // Vite handles frontend with HMR - no backend restart needed
|
|
82
|
+
'src/generated', // Generated files shouldn't trigger rebuilds
|
|
67
83
|
];
|
|
68
84
|
|
|
69
85
|
/**
|
|
@@ -144,41 +160,61 @@ export function createFileWatcher(options: FileWatcherOptions): FileWatcherManag
|
|
|
144
160
|
return;
|
|
145
161
|
}
|
|
146
162
|
|
|
163
|
+
// Get absolute path for checking
|
|
164
|
+
const absPath = changedFile ? resolve(watchDir, changedFile) : watchDir;
|
|
165
|
+
|
|
166
|
+
// Check if this is a directory
|
|
167
|
+
let isDirectory = false;
|
|
168
|
+
try {
|
|
169
|
+
const stats = statSync(absPath);
|
|
170
|
+
isDirectory = stats.isDirectory();
|
|
171
|
+
} catch {
|
|
172
|
+
// File doesn't exist (was deleted) - not a directory
|
|
173
|
+
isDirectory = false;
|
|
174
|
+
}
|
|
175
|
+
|
|
147
176
|
// Check if an empty directory was created in src/agent/ or src/api/
|
|
148
177
|
// This helps with developer experience by auto-scaffolding template files
|
|
149
|
-
if (changedFile && eventType === 'rename') {
|
|
178
|
+
if (changedFile && eventType === 'rename' && isDirectory) {
|
|
150
179
|
try {
|
|
151
|
-
const absPath = resolve(watchDir, changedFile);
|
|
152
180
|
// Normalize the path for comparison (use forward slashes)
|
|
153
181
|
const normalizedPath = changedFile.replace(/\\/g, '/');
|
|
154
182
|
|
|
155
|
-
// Check if it's
|
|
156
|
-
const
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
if (
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
)
|
|
171
|
-
logger.debug('API directory created: %s', changedFile);
|
|
172
|
-
createAPITemplates(absPath);
|
|
173
|
-
}
|
|
183
|
+
// Check if it's empty
|
|
184
|
+
const contents = readdirSync(absPath);
|
|
185
|
+
if (contents.length === 0) {
|
|
186
|
+
// Check if this is an agent or API directory
|
|
187
|
+
if (
|
|
188
|
+
normalizedPath.startsWith('src/agent/') ||
|
|
189
|
+
normalizedPath.includes('/src/agent/')
|
|
190
|
+
) {
|
|
191
|
+
logger.debug('Agent directory created: %s', changedFile);
|
|
192
|
+
createAgentTemplates(absPath);
|
|
193
|
+
} else if (
|
|
194
|
+
normalizedPath.startsWith('src/api/') ||
|
|
195
|
+
normalizedPath.includes('/src/api/')
|
|
196
|
+
) {
|
|
197
|
+
logger.debug('API directory created: %s', changedFile);
|
|
198
|
+
createAPITemplates(absPath);
|
|
174
199
|
}
|
|
175
200
|
}
|
|
176
201
|
} catch (error) {
|
|
177
202
|
// File might have been deleted or doesn't exist yet - this is normal
|
|
178
|
-
logger.trace(
|
|
203
|
+
logger.trace(
|
|
204
|
+
'Unable to check directory for template creation (%s): %s',
|
|
205
|
+
changedFile,
|
|
206
|
+
error
|
|
207
|
+
);
|
|
179
208
|
}
|
|
180
209
|
}
|
|
181
210
|
|
|
211
|
+
// Ignore directory-only change events (mtime updates when files inside change)
|
|
212
|
+
// We only care about actual file changes - the watcher will report those directly
|
|
213
|
+
if (isDirectory && eventType === 'change') {
|
|
214
|
+
logger.trace('File change ignored (directory mtime update): %s', changedFile);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
|
|
182
218
|
logger.debug('File changed (%s): %s', eventType, changedFile || watchDir);
|
|
183
219
|
onRestart();
|
|
184
220
|
}
|
package/src/cmd/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ export async function discoverCommands(): Promise<CommandDefinition[]> {
|
|
|
7
7
|
import('./ai').then((m) => m.command),
|
|
8
8
|
import('./auth').then((m) => m.command),
|
|
9
9
|
import('./build').then((m) => m.command),
|
|
10
|
+
import('./canary').then((m) => m.command),
|
|
10
11
|
import('./cloud').then((m) => m.command),
|
|
11
12
|
import('./dev').then((m) => m.command),
|
|
12
13
|
import('./git').then((m) => m.gitCommand),
|
|
@@ -58,12 +58,12 @@ export const generateSubcommand = createSubcommand({
|
|
|
58
58
|
|
|
59
59
|
try {
|
|
60
60
|
const sql = isJson
|
|
61
|
-
? await generateAuthSchemaSql(projectDir)
|
|
61
|
+
? await generateAuthSchemaSql(logger, projectDir)
|
|
62
62
|
: await tui.spinner({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
message: 'Generating auth schema SQL from Drizzle schema',
|
|
64
|
+
clearOnSuccess: true,
|
|
65
|
+
callback: () => generateAuthSchemaSql(logger, projectDir),
|
|
66
|
+
});
|
|
67
67
|
|
|
68
68
|
if (toStdout) {
|
|
69
69
|
console.log(sql);
|
|
@@ -155,7 +155,7 @@ export const initSubcommand = createSubcommand({
|
|
|
155
155
|
if (fs.existsSync(authFilePath)) {
|
|
156
156
|
tui.info('src/auth.ts already exists, skipping generation');
|
|
157
157
|
} else {
|
|
158
|
-
const { createFile } = await enquirer.prompt<{ createFile: boolean }>({
|
|
158
|
+
const { createFile } = await enquirer.prompt<{ createFile: boolean; }>({
|
|
159
159
|
type: 'confirm',
|
|
160
160
|
name: 'createFile',
|
|
161
161
|
message: 'Create src/auth.ts with default configuration?',
|
|
@@ -205,7 +205,7 @@ export const initSubcommand = createSubcommand({
|
|
|
205
205
|
const sql = await tui.spinner({
|
|
206
206
|
message: 'Preparing auth database schema...',
|
|
207
207
|
clearOnSuccess: true,
|
|
208
|
-
callback: () => generateAuthSchemaSql(projectDir),
|
|
208
|
+
callback: () => generateAuthSchemaSql(logger, projectDir),
|
|
209
209
|
});
|
|
210
210
|
|
|
211
211
|
const sqlOutputDir = await getGeneratedSqlDir(projectDir);
|
|
@@ -219,7 +219,7 @@ export const initSubcommand = createSubcommand({
|
|
|
219
219
|
console.log(' Run this SQL against your database to create auth tables.');
|
|
220
220
|
tui.newline();
|
|
221
221
|
} else {
|
|
222
|
-
const { runMigrations } = await enquirer.prompt<{ runMigrations: boolean }>({
|
|
222
|
+
const { runMigrations } = await enquirer.prompt<{ runMigrations: boolean; }>({
|
|
223
223
|
type: 'confirm',
|
|
224
224
|
name: 'runMigrations',
|
|
225
225
|
message: 'Run database migrations now? (idempotent, safe to re-run)',
|
|
@@ -230,7 +230,7 @@ export const initSubcommand = createSubcommand({
|
|
|
230
230
|
const sql = await tui.spinner({
|
|
231
231
|
message: 'Preparing auth database schema...',
|
|
232
232
|
clearOnSuccess: true,
|
|
233
|
-
callback: () => generateAuthSchemaSql(projectDir),
|
|
233
|
+
callback: () => generateAuthSchemaSql(logger, projectDir),
|
|
234
234
|
});
|
|
235
235
|
|
|
236
236
|
await runAuthMigrations({
|
|
@@ -218,10 +218,11 @@ export async function detectOrmSetup(projectDir: string): Promise<OrmSetup> {
|
|
|
218
218
|
* This generates SQL DDL statements from the @agentuity/auth Drizzle schema
|
|
219
219
|
* without needing a database connection.
|
|
220
220
|
*
|
|
221
|
+
* @param logger - Logger instance
|
|
221
222
|
* @param projectDir - Project directory (must have @agentuity/auth installed)
|
|
222
223
|
* @returns SQL DDL statements for auth tables
|
|
223
224
|
*/
|
|
224
|
-
export async function generateAuthSchemaSql(projectDir: string): Promise<string> {
|
|
225
|
+
export async function generateAuthSchemaSql(logger: Logger, projectDir: string): Promise<string> {
|
|
225
226
|
const schemaPath = path.join(projectDir, 'node_modules/@agentuity/auth/src/schema.ts');
|
|
226
227
|
|
|
227
228
|
if (!(await Bun.file(schemaPath).exists())) {
|
|
@@ -231,7 +232,7 @@ export async function generateAuthSchemaSql(projectDir: string): Promise<string>
|
|
|
231
232
|
}
|
|
232
233
|
|
|
233
234
|
const proc = Bun.spawn(
|
|
234
|
-
['bunx', 'drizzle-kit', 'export', '--dialect=postgresql', `--schema=${schemaPath}`],
|
|
235
|
+
['bunx', '--bun', 'drizzle-kit', 'export', '--dialect=postgresql', `--schema=${schemaPath}`],
|
|
235
236
|
{
|
|
236
237
|
cwd: projectDir,
|
|
237
238
|
stdout: 'pipe',
|
|
@@ -245,7 +246,14 @@ export async function generateAuthSchemaSql(projectDir: string): Promise<string>
|
|
|
245
246
|
proc.exited,
|
|
246
247
|
]);
|
|
247
248
|
|
|
248
|
-
if (
|
|
249
|
+
if (stderr !== '') {
|
|
250
|
+
logger.error('drizzle-kit export failed', { stderr });
|
|
251
|
+
}
|
|
252
|
+
if (stdout !== '') {
|
|
253
|
+
logger.trace('drizzle-kit export stdout', { stdout });
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (exitCode !== 0 || stderr !== '') {
|
|
249
257
|
const errorMsg = stderr
|
|
250
258
|
.split('\n')
|
|
251
259
|
.filter((line) => !line.includes('Please install'))
|
|
@@ -486,8 +494,7 @@ export default api;
|
|
|
486
494
|
console.log(tui.muted('━'.repeat(60)));
|
|
487
495
|
console.log(`
|
|
488
496
|
import { AgentuityProvider } from '@agentuity/react';
|
|
489
|
-
import { createAuthClient } from '@agentuity/auth/react';
|
|
490
|
-
import { AuthProvider } from '@agentuity/auth';
|
|
497
|
+
import { createAuthClient, AuthProvider } from '@agentuity/auth/react';
|
|
491
498
|
|
|
492
499
|
const authClient = createAuthClient();
|
|
493
500
|
|
|
@@ -304,8 +304,8 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<void> {
|
|
|
304
304
|
val === ''
|
|
305
305
|
? true
|
|
306
306
|
: /^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[A-Za-z]{2,63}$/.test(
|
|
307
|
-
|
|
308
|
-
|
|
307
|
+
val
|
|
308
|
+
),
|
|
309
309
|
});
|
|
310
310
|
if (customDns) {
|
|
311
311
|
_domains = [customDns];
|
|
@@ -449,7 +449,7 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<void> {
|
|
|
449
449
|
const sql = await tui.spinner({
|
|
450
450
|
message: 'Preparing auth database schema...',
|
|
451
451
|
clearOnSuccess: true,
|
|
452
|
-
callback: () => generateAuthSchemaSql(dest),
|
|
452
|
+
callback: () => generateAuthSchemaSql(logger, dest),
|
|
453
453
|
});
|
|
454
454
|
|
|
455
455
|
await runAuthMigrations({
|
|
@@ -469,7 +469,7 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<void> {
|
|
|
469
469
|
const cloudRegion = region ?? process.env.AGENTUITY_REGION ?? 'usc';
|
|
470
470
|
|
|
471
471
|
const pkgJsonPath = resolve(dest, 'package.json');
|
|
472
|
-
let pkgJson: { description?: string; keywords?: string[] } = {};
|
|
472
|
+
let pkgJson: { description?: string; keywords?: string[]; } = {};
|
|
473
473
|
if (existsSync(pkgJsonPath)) {
|
|
474
474
|
pkgJson = await Bun.file(pkgJsonPath).json();
|
|
475
475
|
}
|
package/src/types.ts
CHANGED
|
@@ -497,6 +497,7 @@ export function createCommand<
|
|
|
497
497
|
hidden?: boolean;
|
|
498
498
|
executable?: boolean;
|
|
499
499
|
skipUpgradeCheck?: boolean;
|
|
500
|
+
passThroughArgs?: boolean;
|
|
500
501
|
requires?: R;
|
|
501
502
|
optional?: O;
|
|
502
503
|
examples?: CommandExample[];
|
|
@@ -537,6 +538,7 @@ type CommandDefBase =
|
|
|
537
538
|
banner?: boolean;
|
|
538
539
|
executable?: boolean;
|
|
539
540
|
skipUpgradeCheck?: boolean;
|
|
541
|
+
passThroughArgs?: boolean;
|
|
540
542
|
skipSkill?: boolean;
|
|
541
543
|
examples?: CommandExample[];
|
|
542
544
|
idempotent?: boolean;
|
|
@@ -555,6 +557,7 @@ type CommandDefBase =
|
|
|
555
557
|
banner?: boolean;
|
|
556
558
|
executable?: boolean;
|
|
557
559
|
skipUpgradeCheck?: boolean;
|
|
560
|
+
passThroughArgs?: boolean;
|
|
558
561
|
skipSkill?: boolean;
|
|
559
562
|
examples?: CommandExample[];
|
|
560
563
|
idempotent?: boolean;
|
package/src/version-check.ts
CHANGED
|
@@ -150,7 +150,7 @@ async function performUpgrade(logger: Logger): Promise<void> {
|
|
|
150
150
|
const newBinaryPath = process.execPath;
|
|
151
151
|
|
|
152
152
|
logger.info('Upgrade successful! Restarting with new version...');
|
|
153
|
-
|
|
153
|
+
console.log('');
|
|
154
154
|
|
|
155
155
|
// Spawn new process with same arguments
|
|
156
156
|
const proc = Bun.spawn([newBinaryPath, ...args], {
|