@agent-deck/cli 1.10.3 → 1.10.4
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/managed/npm-prefix-install.d.ts.map +1 -1
- package/dist/managed/npm-prefix-install.js +48 -7
- package/dist/managed/npm-prefix-install.js.map +1 -1
- package/dist/managed/paths.d.ts +2 -1
- package/dist/managed/paths.d.ts.map +1 -1
- package/dist/managed/paths.js +4 -2
- package/dist/managed/paths.js.map +1 -1
- package/dist/managed/updater.d.ts.map +1 -1
- package/dist/managed/updater.js +14 -0
- package/dist/managed/updater.js.map +1 -1
- package/dist/managed/verify-install.d.ts +14 -0
- package/dist/managed/verify-install.d.ts.map +1 -0
- package/dist/managed/verify-install.js +53 -0
- package/dist/managed/verify-install.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-prefix-install.d.ts","sourceRoot":"","sources":["../../src/managed/npm-prefix-install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"npm-prefix-install.d.ts","sourceRoot":"","sources":["../../src/managed/npm-prefix-install.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,CACrB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,KACtB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAiC/C,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAO,GACpC,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CnE"}
|
|
@@ -7,7 +7,10 @@ exports.PACKAGE_NAME = void 0;
|
|
|
7
7
|
exports.installCliVersionToPrefix = installCliVersionToPrefix;
|
|
8
8
|
const node_child_process_1 = require("node:child_process");
|
|
9
9
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
11
|
const paths_1 = require("./paths");
|
|
12
|
+
const verify_install_1 = require("./verify-install");
|
|
13
|
+
const STALE_PARTIAL_MS = 60 * 60 * 1000;
|
|
11
14
|
exports.PACKAGE_NAME = '@agent-deck/cli';
|
|
12
15
|
const defaultNpmSpawn = (args, options) => new Promise((resolve) => {
|
|
13
16
|
const child = (0, node_child_process_1.spawn)('npm', args, {
|
|
@@ -22,25 +25,63 @@ const defaultNpmSpawn = (args, options) => new Promise((resolve) => {
|
|
|
22
25
|
child.on('error', (err) => resolve({ code: 1, stderr: err.message }));
|
|
23
26
|
child.on('exit', (code) => resolve({ code: code ?? 1, stderr }));
|
|
24
27
|
});
|
|
28
|
+
function removeStalePartials() {
|
|
29
|
+
for (const entry of node_fs_1.default.readdirSync((0, paths_1.versionsDir)(), { withFileTypes: true })) {
|
|
30
|
+
if (!entry.isDirectory() || !entry.name.startsWith('.partial-')) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const full = node_path_1.default.join((0, paths_1.versionsDir)(), entry.name);
|
|
34
|
+
try {
|
|
35
|
+
if (Date.now() - node_fs_1.default.statSync(full).mtimeMs > STALE_PARTIAL_MS) {
|
|
36
|
+
node_fs_1.default.rmSync(full, { recursive: true, force: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// raced with another process cleaning up
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
25
44
|
async function installCliVersionToPrefix(version, options = {}) {
|
|
26
45
|
const npmSpawn = options.npmSpawn ?? defaultNpmSpawn;
|
|
27
46
|
const partial = (0, paths_1.partialVersionDir)(version);
|
|
28
47
|
const finalDir = (0, paths_1.versionDir)(version);
|
|
29
48
|
node_fs_1.default.mkdirSync((0, paths_1.versionsDir)(), { recursive: true });
|
|
30
|
-
|
|
49
|
+
removeStalePartials();
|
|
31
50
|
node_fs_1.default.mkdirSync(partial, { recursive: true });
|
|
51
|
+
const fail = (error) => {
|
|
52
|
+
node_fs_1.default.rmSync(partial, { recursive: true, force: true });
|
|
53
|
+
return { ok: false, error };
|
|
54
|
+
};
|
|
32
55
|
const result = await npmSpawn(['install', '--prefix', partial, `${exports.PACKAGE_NAME}@${version}`], {});
|
|
33
56
|
if (result.code !== 0) {
|
|
34
|
-
|
|
35
|
-
return { ok: false, error: result.stderr.trim() || `npm install failed (exit ${result.code})` };
|
|
57
|
+
return fail(result.stderr.trim() || `npm install failed (exit ${result.code})`);
|
|
36
58
|
}
|
|
37
59
|
const entry = (0, paths_1.cliEntryInVersionDir)(partial);
|
|
38
60
|
if (!node_fs_1.default.existsSync(entry)) {
|
|
39
|
-
|
|
40
|
-
|
|
61
|
+
return fail(`Install succeeded but missing CLI entry: ${entry}`);
|
|
62
|
+
}
|
|
63
|
+
const verified = (0, verify_install_1.verifyInstalledVersion)(partial);
|
|
64
|
+
if (!verified.ok) {
|
|
65
|
+
return fail(`Install verification failed (${verified.file}): ${verified.error}`);
|
|
66
|
+
}
|
|
67
|
+
// Another process may have finished the same version first; keep its copy if it is intact.
|
|
68
|
+
if (node_fs_1.default.existsSync(finalDir)) {
|
|
69
|
+
if ((0, verify_install_1.verifyInstalledVersion)(finalDir).ok) {
|
|
70
|
+
node_fs_1.default.rmSync(partial, { recursive: true, force: true });
|
|
71
|
+
return { ok: true, dir: finalDir };
|
|
72
|
+
}
|
|
73
|
+
node_fs_1.default.rmSync(finalDir, { recursive: true, force: true });
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
node_fs_1.default.renameSync(partial, finalDir);
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
if (node_fs_1.default.existsSync(finalDir) && (0, verify_install_1.verifyInstalledVersion)(finalDir).ok) {
|
|
80
|
+
node_fs_1.default.rmSync(partial, { recursive: true, force: true });
|
|
81
|
+
return { ok: true, dir: finalDir };
|
|
82
|
+
}
|
|
83
|
+
return fail(err instanceof Error ? err.message : String(err));
|
|
41
84
|
}
|
|
42
|
-
node_fs_1.default.rmSync(finalDir, { recursive: true, force: true });
|
|
43
|
-
node_fs_1.default.renameSync(partial, finalDir);
|
|
44
85
|
return { ok: true, dir: finalDir };
|
|
45
86
|
}
|
|
46
87
|
//# sourceMappingURL=npm-prefix-install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-prefix-install.js","sourceRoot":"","sources":["../../src/managed/npm-prefix-install.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"npm-prefix-install.js","sourceRoot":"","sources":["../../src/managed/npm-prefix-install.ts"],"names":[],"mappings":"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"}
|
package/dist/managed/paths.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare function agentDeckHome(): string;
|
|
2
2
|
export declare function versionsDir(): string;
|
|
3
3
|
export declare function versionDir(version: string): string;
|
|
4
|
-
|
|
4
|
+
/** Unique per install attempt so concurrent CLI processes never extract into the same directory. */
|
|
5
|
+
export declare function partialVersionDir(version: string, token?: string): string;
|
|
5
6
|
export declare function currentLinkPath(): string;
|
|
6
7
|
export declare function updateStatePath(): string;
|
|
7
8
|
/** Override with AGENT_DECK_LOCAL_BIN for tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/managed/paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/managed/paths.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAqD,GAAG,MAAM,CAErH;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,oDAAoD;AACpD,wBAAgB,WAAW,IAAI,MAAM,CAMpC;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAUxD"}
|
package/dist/managed/paths.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.localBinDir = localBinDir;
|
|
|
13
13
|
exports.localBinLauncherPath = localBinLauncherPath;
|
|
14
14
|
exports.cliEntryInVersionDir = cliEntryInVersionDir;
|
|
15
15
|
exports.resolveCurrentVersionDir = resolveCurrentVersionDir;
|
|
16
|
+
const node_crypto_1 = require("node:crypto");
|
|
16
17
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
17
18
|
const node_os_1 = __importDefault(require("node:os"));
|
|
18
19
|
const node_path_1 = __importDefault(require("node:path"));
|
|
@@ -25,8 +26,9 @@ function versionsDir() {
|
|
|
25
26
|
function versionDir(version) {
|
|
26
27
|
return node_path_1.default.join(versionsDir(), version);
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
/** Unique per install attempt so concurrent CLI processes never extract into the same directory. */
|
|
30
|
+
function partialVersionDir(version, token = `${process.pid}-${(0, node_crypto_1.randomBytes)(4).toString('hex')}`) {
|
|
31
|
+
return node_path_1.default.join(versionsDir(), `.partial-${version}-${token}`);
|
|
30
32
|
}
|
|
31
33
|
function currentLinkPath() {
|
|
32
34
|
return node_path_1.default.join(agentDeckHome(), 'current');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/managed/paths.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/managed/paths.ts"],"names":[],"mappings":";;;;;AAKA,sCAEC;AAED,kCAEC;AAED,gCAEC;AAGD,8CAEC;AAED,0CAEC;AAED,0CAEC;AAGD,kCAMC;AAED,oDAEC;AAED,oDAEC;AAED,4DAUC;AAzDD,6CAA0C;AAC1C,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAE7B,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AACvF,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,oGAAoG;AACpG,SAAgB,iBAAiB,CAAC,OAAe,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IAC3G,OAAO,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,mBAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,mBAAmB,CAAC,CAAC;AACzD,CAAC;AAED,oDAAoD;AACpD,SAAgB,WAAW;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,mBAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,OAAO,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED,SAAgB,wBAAwB;IACtC,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,iBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/managed/updater.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/managed/updater.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AASjE,wBAAgB,qBAAqB,IAAI,OAAO,CAG/C;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAajE;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAMzD;AAED,wBAAgB,2BAA2B,IAAI;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAqC1E;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,yBAAyB,CAAA;CAAO,GAClE,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,yBAAyB,CAAC;CAC9C,GACL,IAAI,CAkCN;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,yBAAyB,CAAC;CACnD,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAO/B"}
|
package/dist/managed/updater.js
CHANGED
|
@@ -18,6 +18,7 @@ const npm_prefix_install_1 = require("./npm-prefix-install");
|
|
|
18
18
|
const paths_1 = require("./paths");
|
|
19
19
|
const semver_1 = require("./semver");
|
|
20
20
|
const update_state_1 = require("./update-state");
|
|
21
|
+
const verify_install_1 = require("./verify-install");
|
|
21
22
|
const CACHE_TTL_MS = 24 * 60 * 60 * 1000;
|
|
22
23
|
const REGISTRY_URL = 'https://registry.npmjs.org/@agent-deck/cli/latest';
|
|
23
24
|
function isAutoupdaterDisabled() {
|
|
@@ -62,6 +63,16 @@ function maybeActivatePendingVersion() {
|
|
|
62
63
|
if (!node_fs_1.default.existsSync((0, paths_1.cliEntryInVersionDir)(dir))) {
|
|
63
64
|
return { activated: null };
|
|
64
65
|
}
|
|
66
|
+
// Never point `current` at a version that cannot load; drop it so the next check re-downloads.
|
|
67
|
+
if (!(0, verify_install_1.verifyInstalledVersion)(dir).ok) {
|
|
68
|
+
node_fs_1.default.rmSync(dir, { recursive: true, force: true });
|
|
69
|
+
(0, update_state_1.writeUpdateState)({
|
|
70
|
+
checkedAt: state?.checkedAt ?? new Date().toISOString(),
|
|
71
|
+
latest: state?.latest ?? pending,
|
|
72
|
+
pendingVersion: null,
|
|
73
|
+
});
|
|
74
|
+
return { activated: null };
|
|
75
|
+
}
|
|
65
76
|
(0, activate_1.activateVersion)(pending);
|
|
66
77
|
(0, update_state_1.writeUpdateState)({
|
|
67
78
|
checkedAt: state?.checkedAt ?? new Date().toISOString(),
|
|
@@ -75,6 +86,9 @@ async function ensurePendingDownload(latest, options = {}) {
|
|
|
75
86
|
return;
|
|
76
87
|
}
|
|
77
88
|
const dir = (0, paths_1.versionDir)(latest);
|
|
89
|
+
if (node_fs_1.default.existsSync((0, paths_1.cliEntryInVersionDir)(dir)) && !(0, verify_install_1.verifyInstalledVersion)(dir).ok) {
|
|
90
|
+
node_fs_1.default.rmSync(dir, { recursive: true, force: true });
|
|
91
|
+
}
|
|
78
92
|
if (node_fs_1.default.existsSync((0, paths_1.cliEntryInVersionDir)(dir))) {
|
|
79
93
|
const prev = (0, update_state_1.readUpdateState)();
|
|
80
94
|
(0, update_state_1.writeUpdateState)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/managed/updater.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/managed/updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type VerifyResult = {
|
|
2
|
+
ok: true;
|
|
3
|
+
} | {
|
|
4
|
+
ok: false;
|
|
5
|
+
file: string;
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Syntax-checks every built `@agent-deck/*` file in an installed version dir.
|
|
10
|
+
* A truncated file (interrupted or interleaved npm extraction) otherwise crashes the CLI at load
|
|
11
|
+
* time, after the `current` link already points at it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function verifyInstalledVersion(versionDirPath: string): VerifyResult;
|
|
14
|
+
//# sourceMappingURL=verify-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-install.d.ts","sourceRoot":"","sources":["../../src/managed/verify-install.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAerF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAwB3E"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.verifyInstalledVersion = verifyInstalledVersion;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_vm_1 = __importDefault(require("node:vm"));
|
|
10
|
+
const CJS_WRAPPER_PARAMS = ['exports', 'require', 'module', '__filename', '__dirname'];
|
|
11
|
+
function* walkJsFiles(dir) {
|
|
12
|
+
for (const entry of node_fs_1.default.readdirSync(dir, { withFileTypes: true })) {
|
|
13
|
+
const full = node_path_1.default.join(dir, entry.name);
|
|
14
|
+
if (entry.isDirectory()) {
|
|
15
|
+
yield* walkJsFiles(full);
|
|
16
|
+
}
|
|
17
|
+
else if (entry.isFile() && entry.name.endsWith('.js')) {
|
|
18
|
+
yield full;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Syntax-checks every built `@agent-deck/*` file in an installed version dir.
|
|
24
|
+
* A truncated file (interrupted or interleaved npm extraction) otherwise crashes the CLI at load
|
|
25
|
+
* time, after the `current` link already points at it.
|
|
26
|
+
*/
|
|
27
|
+
function verifyInstalledVersion(versionDirPath) {
|
|
28
|
+
const scope = node_path_1.default.join(versionDirPath, 'node_modules', '@agent-deck');
|
|
29
|
+
let packages;
|
|
30
|
+
try {
|
|
31
|
+
packages = node_fs_1.default.readdirSync(scope, { withFileTypes: true });
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
return { ok: false, file: scope, error: err instanceof Error ? err.message : String(err) };
|
|
35
|
+
}
|
|
36
|
+
for (const pkg of packages) {
|
|
37
|
+
const distDir = node_path_1.default.join(scope, pkg.name, 'dist');
|
|
38
|
+
if (!node_fs_1.default.existsSync(distDir)) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
for (const file of walkJsFiles(distDir)) {
|
|
42
|
+
try {
|
|
43
|
+
const source = node_fs_1.default.readFileSync(file, 'utf8').replace(/^#!.*/, '');
|
|
44
|
+
node_vm_1.default.compileFunction(source, CJS_WRAPPER_PARAMS, { filename: file });
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
return { ok: false, file, error: err instanceof Error ? err.message : String(err) };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { ok: true };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=verify-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-install.js","sourceRoot":"","sources":["../../src/managed/verify-install.ts"],"names":[],"mappings":";;;;;AAwBA,wDAwBC;AAhDD,sDAAyB;AACzB,0DAA6B;AAC7B,sDAAyB;AAIzB,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAEvF,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAW;IAC/B,KAAK,MAAM,KAAK,IAAI,iBAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,cAAsB;IAC3D,MAAM,KAAK,GAAG,mBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IACvE,IAAI,QAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,QAAQ,GAAG,iBAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7F,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,iBAAE,CAAC,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-deck/cli",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.4",
|
|
4
4
|
"description": "Local MCP proxy — decks of tools, keys, and self-improving playbooks",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"prepublishOnly": "node ../../scripts/pre-publish-check.mjs && npm run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@agent-deck/backend": "^1.10.
|
|
44
|
-
"@agent-deck/shared": "^1.10.
|
|
43
|
+
"@agent-deck/backend": "^1.10.4",
|
|
44
|
+
"@agent-deck/shared": "^1.10.4"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^20.11.5",
|