@agentuity/cli 1.0.13 → 1.0.14
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/bin/cli.ts +8 -0
- package/dist/cmd/upgrade/npm-availability.d.ts +6 -7
- package/dist/cmd/upgrade/npm-availability.d.ts.map +1 -1
- package/dist/cmd/upgrade/npm-availability.js +9 -18
- package/dist/cmd/upgrade/npm-availability.js.map +1 -1
- package/package.json +6 -6
- package/src/cmd/upgrade/npm-availability.ts +14 -23
package/bin/cli.ts
CHANGED
|
@@ -299,6 +299,14 @@ await registerCommands(program, commands, ctx as unknown as CommandContext);
|
|
|
299
299
|
|
|
300
300
|
try {
|
|
301
301
|
await program.parseAsync(process.argv);
|
|
302
|
+
// Ensure clean exit after successful command execution.
|
|
303
|
+
// In TTY environments, process.stdin may keep the event loop alive
|
|
304
|
+
// (e.g., after confirm() calls resume()/setRawMode()), and Bun does not
|
|
305
|
+
// support process.stdin.unref(), so we must explicitly exit.
|
|
306
|
+
closeDatabase();
|
|
307
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
308
|
+
const exit = (globalThis as any).AGENTUITY_PROCESS_EXIT || process.exit;
|
|
309
|
+
exit(0);
|
|
302
310
|
} catch (error) {
|
|
303
311
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
304
312
|
const exit = (globalThis as any).AGENTUITY_PROCESS_EXIT || process.exit;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* npm registry availability checking utilities.
|
|
3
|
-
* Used to verify a version is available
|
|
3
|
+
* Used to verify a version is available on npm before attempting upgrade.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Run a command via Bun.spawn with a timeout that kills the process.
|
|
@@ -15,17 +15,16 @@ export declare function spawnWithTimeout(cmd: string[], options: {
|
|
|
15
15
|
stderr: Buffer;
|
|
16
16
|
}>;
|
|
17
17
|
/**
|
|
18
|
-
* Check if a specific version of @agentuity/cli is
|
|
19
|
-
* Uses `bun info` to verify bun's own resolver/CDN can see the version,
|
|
20
|
-
* which avoids the race where npm registry returns 200 but bun's CDN
|
|
21
|
-
* has not yet propagated the version.
|
|
18
|
+
* Check if a specific version of @agentuity/cli is available on the npm registry.
|
|
22
19
|
*
|
|
23
20
|
* @param version - Version to check (with or without 'v' prefix)
|
|
24
21
|
* @returns true if version is available, false otherwise
|
|
25
22
|
*/
|
|
26
|
-
export declare function isVersionAvailableOnNpm(version: string
|
|
23
|
+
export declare function isVersionAvailableOnNpm(version: string, options?: {
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
}): Promise<boolean>;
|
|
27
26
|
/**
|
|
28
|
-
* Quick check if a version is available
|
|
27
|
+
* Quick check if a version is available on npm.
|
|
29
28
|
* Used for implicit version checks (auto-upgrade flow).
|
|
30
29
|
*
|
|
31
30
|
* @param version - Version to check (with or without 'v' prefix)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-availability.d.ts","sourceRoot":"","sources":["../../../src/cmd/upgrade/npm-availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"npm-availability.d.ts","sourceRoot":"","sources":["../../../src/cmd/upgrade/npm-availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC/D;AAoCD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpF;AAED,MAAM,WAAW,iBAAiB;IACjC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,MAAM,WAAW,uBAAuB;IACvC,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACrC,SAAS,EAAE,MAAM,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9D,OAAO,GAAE,uBAA4B,GACnC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAoD/C"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* npm registry availability checking utilities.
|
|
3
|
-
* Used to verify a version is available
|
|
3
|
+
* Used to verify a version is available on npm before attempting upgrade.
|
|
4
4
|
*/
|
|
5
|
-
import { tmpdir } from 'node:os';
|
|
6
5
|
const PACKAGE_SPEC = '@agentuity/cli';
|
|
7
|
-
/** Default timeout for `bun info` subprocess calls (10 seconds) */
|
|
8
|
-
const BUN_INFO_TIMEOUT_MS = 10_000;
|
|
9
6
|
/** Default timeout for install (`bun add -g`) subprocess calls (30 seconds) */
|
|
10
7
|
const INSTALL_TIMEOUT_MS = 30_000;
|
|
11
8
|
/**
|
|
@@ -72,25 +69,19 @@ async function withTimeout(promise, timeoutMs, description) {
|
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
/**
|
|
75
|
-
* Check if a specific version of @agentuity/cli is
|
|
76
|
-
* Uses `bun info` to verify bun's own resolver/CDN can see the version,
|
|
77
|
-
* which avoids the race where npm registry returns 200 but bun's CDN
|
|
78
|
-
* has not yet propagated the version.
|
|
72
|
+
* Check if a specific version of @agentuity/cli is available on the npm registry.
|
|
79
73
|
*
|
|
80
74
|
* @param version - Version to check (with or without 'v' prefix)
|
|
81
75
|
* @returns true if version is available, false otherwise
|
|
82
76
|
*/
|
|
83
|
-
export async function isVersionAvailableOnNpm(version) {
|
|
77
|
+
export async function isVersionAvailableOnNpm(version, options) {
|
|
84
78
|
const normalizedVersion = version.replace(/^v/, '');
|
|
79
|
+
const timeoutMs = options?.timeoutMs ?? 10_000;
|
|
85
80
|
try {
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
81
|
+
const response = await fetch(`https://registry.npmjs.org/${PACKAGE_SPEC}/${normalizedVersion}`, { signal: AbortSignal.timeout(timeoutMs) });
|
|
82
|
+
if (!response.ok)
|
|
88
83
|
return false;
|
|
89
|
-
|
|
90
|
-
const info = JSON.parse(result.stdout.toString());
|
|
91
|
-
if (info.error) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
84
|
+
const info = (await response.json());
|
|
94
85
|
return info.version === normalizedVersion;
|
|
95
86
|
}
|
|
96
87
|
catch {
|
|
@@ -98,14 +89,14 @@ export async function isVersionAvailableOnNpm(version) {
|
|
|
98
89
|
}
|
|
99
90
|
}
|
|
100
91
|
/**
|
|
101
|
-
* Quick check if a version is available
|
|
92
|
+
* Quick check if a version is available on npm.
|
|
102
93
|
* Used for implicit version checks (auto-upgrade flow).
|
|
103
94
|
*
|
|
104
95
|
* @param version - Version to check (with or without 'v' prefix)
|
|
105
96
|
* @returns true if version is available, false if unavailable or error
|
|
106
97
|
*/
|
|
107
98
|
export async function isVersionAvailableOnNpmQuick(version) {
|
|
108
|
-
return isVersionAvailableOnNpm(version);
|
|
99
|
+
return isVersionAvailableOnNpm(version, { timeoutMs: 1_000 });
|
|
109
100
|
}
|
|
110
101
|
/**
|
|
111
102
|
* Wait for a version to become available on npm with exponential backoff.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-availability.js","sourceRoot":"","sources":["../../../src/cmd/upgrade/npm-availability.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"npm-availability.js","sourceRoot":"","sources":["../../../src/cmd/upgrade/npm-availability.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"prepublishOnly": "bun run clean && bun run build"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@agentuity/auth": "1.0.
|
|
45
|
-
"@agentuity/core": "1.0.
|
|
46
|
-
"@agentuity/server": "1.0.
|
|
44
|
+
"@agentuity/auth": "1.0.14",
|
|
45
|
+
"@agentuity/core": "1.0.14",
|
|
46
|
+
"@agentuity/server": "1.0.14",
|
|
47
47
|
"@datasert/cronjs-parser": "^1.4.0",
|
|
48
48
|
"@vitejs/plugin-react": "^5.1.2",
|
|
49
49
|
"acorn-loose": "^8.5.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": "1.0.
|
|
63
|
+
"@agentuity/frontend": "1.0.14"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@agentuity/test-utils": "1.0.
|
|
66
|
+
"@agentuity/test-utils": "1.0.14",
|
|
67
67
|
"@types/adm-zip": "^0.5.7",
|
|
68
68
|
"@types/bun": "latest",
|
|
69
69
|
"@types/tar-fs": "^2.0.4",
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* npm registry availability checking utilities.
|
|
3
|
-
* Used to verify a version is available
|
|
3
|
+
* Used to verify a version is available on npm before attempting upgrade.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { tmpdir } from 'node:os';
|
|
7
|
-
|
|
8
6
|
const PACKAGE_SPEC = '@agentuity/cli';
|
|
9
7
|
|
|
10
|
-
/** Default timeout for `bun info` subprocess calls (10 seconds) */
|
|
11
|
-
const BUN_INFO_TIMEOUT_MS = 10_000;
|
|
12
|
-
|
|
13
8
|
/** Default timeout for install (`bun add -g`) subprocess calls (30 seconds) */
|
|
14
9
|
const INSTALL_TIMEOUT_MS = 30_000;
|
|
15
10
|
|
|
@@ -89,28 +84,24 @@ async function withTimeout<T>(
|
|
|
89
84
|
}
|
|
90
85
|
|
|
91
86
|
/**
|
|
92
|
-
* Check if a specific version of @agentuity/cli is
|
|
93
|
-
* Uses `bun info` to verify bun's own resolver/CDN can see the version,
|
|
94
|
-
* which avoids the race where npm registry returns 200 but bun's CDN
|
|
95
|
-
* has not yet propagated the version.
|
|
87
|
+
* Check if a specific version of @agentuity/cli is available on the npm registry.
|
|
96
88
|
*
|
|
97
89
|
* @param version - Version to check (with or without 'v' prefix)
|
|
98
90
|
* @returns true if version is available, false otherwise
|
|
99
91
|
*/
|
|
100
|
-
export async function isVersionAvailableOnNpm(
|
|
92
|
+
export async function isVersionAvailableOnNpm(
|
|
93
|
+
version: string,
|
|
94
|
+
options?: { timeoutMs?: number }
|
|
95
|
+
): Promise<boolean> {
|
|
101
96
|
const normalizedVersion = version.replace(/^v/, '');
|
|
97
|
+
const timeoutMs = options?.timeoutMs ?? 10_000;
|
|
102
98
|
try {
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
{
|
|
99
|
+
const response = await fetch(
|
|
100
|
+
`https://registry.npmjs.org/${PACKAGE_SPEC}/${normalizedVersion}`,
|
|
101
|
+
{ signal: AbortSignal.timeout(timeoutMs) }
|
|
106
102
|
);
|
|
107
|
-
if (
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
const info = JSON.parse(result.stdout.toString());
|
|
111
|
-
if (info.error) {
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
103
|
+
if (!response.ok) return false;
|
|
104
|
+
const info = (await response.json()) as { version?: string };
|
|
114
105
|
return info.version === normalizedVersion;
|
|
115
106
|
} catch {
|
|
116
107
|
return false;
|
|
@@ -118,14 +109,14 @@ export async function isVersionAvailableOnNpm(version: string): Promise<boolean>
|
|
|
118
109
|
}
|
|
119
110
|
|
|
120
111
|
/**
|
|
121
|
-
* Quick check if a version is available
|
|
112
|
+
* Quick check if a version is available on npm.
|
|
122
113
|
* Used for implicit version checks (auto-upgrade flow).
|
|
123
114
|
*
|
|
124
115
|
* @param version - Version to check (with or without 'v' prefix)
|
|
125
116
|
* @returns true if version is available, false if unavailable or error
|
|
126
117
|
*/
|
|
127
118
|
export async function isVersionAvailableOnNpmQuick(version: string): Promise<boolean> {
|
|
128
|
-
return isVersionAvailableOnNpm(version);
|
|
119
|
+
return isVersionAvailableOnNpm(version, { timeoutMs: 1_000 });
|
|
129
120
|
}
|
|
130
121
|
|
|
131
122
|
export interface WaitForNpmOptions {
|