@detergent-software/atk 8.9.0-dev.26 → 8.9.0-dev.27
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/CHANGELOG.md +12 -0
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/index.js +5 -40
- package/build/commands/index.js.map +1 -1
- package/build/commands/prune.d.ts.map +1 -1
- package/build/commands/prune.js +4 -2
- package/build/commands/prune.js.map +1 -1
- package/build/hooks/usePruneState.d.ts +1 -7
- package/build/hooks/usePruneState.d.ts.map +1 -1
- package/build/hooks/usePruneState.js +18 -62
- package/build/hooks/usePruneState.js.map +1 -1
- package/build/lib/pruner.d.ts +26 -0
- package/build/lib/pruner.d.ts.map +1 -0
- package/build/lib/pruner.js +42 -0
- package/build/lib/pruner.js.map +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [8.9.0-dev.27](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.26&targetVersion=GTv8.9.0-dev.27) (2026-10-19)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **cli:** exit 1 when prune can't remove an orphan (ATK-608) ([6ab0f7f](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/6ab0f7f6c41706aa1b8d331784cbfb7a0d7d5a11))
|
|
6
|
+
|
|
7
|
+
### Refactoring
|
|
8
|
+
|
|
9
|
+
* **cli:** list bare atk's commands from the command manifest (ATK-608) ([f28604c](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/f28604c0e8c11f3059ec96caf3cc224fe6d02a0b))
|
|
10
|
+
* **cli:** run prune's removal loop once, from lib/pruner.ts (ATK-608) ([7c2fc6d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/7c2fc6dfe5b7c31056e5b579354a006e1a595fcf))
|
|
11
|
+
* **cli:** tidy prune after review (ATK-608) ([16cdfb6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/16cdfb634e21f924501a4a6b30c0981c886df492))
|
|
12
|
+
|
|
1
13
|
## [8.9.0-dev.26](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.25&targetVersion=GTv8.9.0-dev.26) (2026-10-18)
|
|
2
14
|
|
|
3
15
|
### Performance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,8DAAyD,CAAC;AAOlF,MAAM,CAAC,OAAO,UAAU,KAAK,4CAiB5B"}
|
package/build/commands/index.js
CHANGED
|
@@ -1,46 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
|
+
import commandManifest from '../command-manifest.json' with { type: 'json' };
|
|
3
4
|
export const description = 'Agentic Tool Kit — manage assets for AI coding tools';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
['cache', 'Manage the registry cache'],
|
|
8
|
-
['checkout', 'Fetch a writable working copy of a registry asset'],
|
|
9
|
-
['config', 'Get, set, list, or reset configuration values'],
|
|
10
|
-
['deprecate', 'Deprecate an asset or bundle (or undo it) via PR, without publishing a version'],
|
|
11
|
-
['diff', 'Show changes between installed and latest version'],
|
|
12
|
-
['doctor', 'Check environment health and diagnose issues'],
|
|
13
|
-
['drift', 'Compare a local asset directory against the latest published version'],
|
|
14
|
-
['freeze', 'Freeze an installed asset to prevent sync and update from overwriting it'],
|
|
15
|
-
['info', 'Show details about an asset or bundle'],
|
|
16
|
-
['init', 'Scaffold a new asset or bundle'],
|
|
17
|
-
['install', 'Install an asset or bundle (no args syncs from lockfile)'],
|
|
18
|
-
['list', 'List installed assets'],
|
|
19
|
-
['login', 'Sign in with your Emergent (Microsoft Entra) account'],
|
|
20
|
-
['logout', 'Sign out of your Emergent account'],
|
|
21
|
-
['move', 'Move an installed asset between the project and the user scope'],
|
|
22
|
-
['outdated', 'Show available updates for installed assets'],
|
|
23
|
-
['pin', 'Pin an installed asset at its installed version'],
|
|
24
|
-
['promote', 'Promote an org-scoped asset or bundle to the global namespace'],
|
|
25
|
-
['prune', 'Remove orphaned dependencies'],
|
|
26
|
-
['publish', 'Publish one or more assets, or a bundle, to the registry'],
|
|
27
|
-
['register', 'Drop a manifest.json into an existing local directory'],
|
|
28
|
-
['release-notes', 'Show ATK release notes — recent history or a specific version'],
|
|
29
|
-
['reviewer', 'Get, set, or clear the designated PR reviewers for org-scoped asset publishes'],
|
|
30
|
-
['schema', 'Show the schema for an asset type, bundle, adapter, lockfile, config, or registry'],
|
|
31
|
-
['search', 'Search for assets and bundles in the registry'],
|
|
32
|
-
['setup', 'Initialize ATK in a project or the user scope — select tools and create config files'],
|
|
33
|
-
['sync', 'Re-apply drifted installed assets, keeping local edits (use --force to re-apply all)'],
|
|
34
|
-
['thaw', 'Thaw a frozen asset to allow sync and update to overwrite it again'],
|
|
35
|
-
['uninstall', 'Uninstall an asset or bundle'],
|
|
36
|
-
['unpin', 'Remove a version pin from an installed asset'],
|
|
37
|
-
['unpublish', 'Unpublish an asset or bundle from the registry via PR'],
|
|
38
|
-
['update', 'Update installed assets'],
|
|
39
|
-
['whoami', 'Show who you are signed in as and where the credential came from'],
|
|
40
|
-
['why', 'Explain why an asset is installed'],
|
|
41
|
-
];
|
|
42
|
-
const maxNameLen = Math.max(...commands.map(([name]) => name.length));
|
|
5
|
+
// The descriptions each command's `--help` shows, from the build-time manifest (ATK-605), so this screen can't drift.
|
|
6
|
+
const commands = commandManifest.filter(({ name }) => name !== 'index');
|
|
7
|
+
const maxNameLen = Math.max(...commands.map(({ name }) => name.length));
|
|
43
8
|
export default function Index() {
|
|
44
|
-
return (_jsxs(Box, { flexDirection: 'column', gap: 1, children: [_jsxs(Text, { children: ["Asset manager for AI coding tools. Use ", _jsx(Text, { bold: true, children: "atk --help" }), " to see available commands."] }), _jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { dimColor: true, children: "Commands:" }), commands.map((
|
|
9
|
+
return (_jsxs(Box, { flexDirection: 'column', gap: 1, children: [_jsxs(Text, { children: ["Asset manager for AI coding tools. Use ", _jsx(Text, { bold: true, children: "atk --help" }), " to see available commands."] }), _jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { dimColor: true, children: "Commands:" }), commands.map(({ description: desc, name }) => (_jsxs(Text, { children: [' ', _jsx(Text, { bold: true, children: name.padEnd(maxNameLen) }), " ", desc] }, name)))] })] }));
|
|
45
10
|
}
|
|
46
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,eAAe,MAAM,0BAA0B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG,sDAAsD,CAAC;AAElF,sHAAsH;AACtH,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AAExE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAExE,MAAM,CAAC,OAAO,UAAU,KAAK;IAC3B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAChC,MAAC,IAAI,0DACoC,KAAC,IAAI,IAAC,IAAI,iCAAkB,mCAC9D,EACP,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,QAAQ,gCAAiB,EAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAC7C,MAAC,IAAI,eACF,IAAI,EACL,KAAC,IAAI,IAAC,IAAI,kBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAQ,OAAE,IAAI,KAFxC,IAAI,CAGR,CACR,CAAC,IACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;;;iBAsDlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,kDA4L/F"}
|
package/build/commands/prune.js
CHANGED
|
@@ -96,17 +96,19 @@ export default function Prune({ options: { dryRun, json, projectRoot, tool, user
|
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
}, [state.phase, exit]);
|
|
99
|
-
// Exit on done (cancelled or completed)
|
|
99
|
+
// Exit on done (cancelled or completed); an orphan that could not be removed fails the run
|
|
100
100
|
useEffect(() => {
|
|
101
101
|
if (state.phase === 'done') {
|
|
102
102
|
const timer = setTimeout(() => {
|
|
103
|
+
if (state.outcome?.outcome === 'pruned' && state.outcome.errors.length > 0)
|
|
104
|
+
process.exitCode = 1;
|
|
103
105
|
exit();
|
|
104
106
|
}, 100);
|
|
105
107
|
return () => {
|
|
106
108
|
clearTimeout(timer);
|
|
107
109
|
};
|
|
108
110
|
}
|
|
109
|
-
}, [state.phase, exit]);
|
|
111
|
+
}, [state.phase, state.outcome, exit]);
|
|
110
112
|
// ---------------------------------------------------------------------------
|
|
111
113
|
// Render
|
|
112
114
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Adapter } from '../lib/schemas/adapter.js';
|
|
2
2
|
import type { InstalledAsset } from '../lib/schemas/lockfile.js';
|
|
3
|
+
import { type PruneError } from '../lib/pruner.js';
|
|
3
4
|
import { type ResolvedScope } from '../lib/scope.js';
|
|
4
5
|
export type PruneAction = {
|
|
5
6
|
code?: string;
|
|
@@ -35,13 +36,6 @@ export type PruneAction = {
|
|
|
35
36
|
type: 'SCOPE_RESOLVED';
|
|
36
37
|
where: ResolvedScope;
|
|
37
38
|
};
|
|
38
|
-
/** An orphan prune could not remove. */
|
|
39
|
-
export interface PruneError {
|
|
40
|
-
error: string;
|
|
41
|
-
name: string;
|
|
42
|
-
org?: string;
|
|
43
|
-
type: string;
|
|
44
|
-
}
|
|
45
39
|
export interface PruneFlags {
|
|
46
40
|
dryRun: boolean;
|
|
47
41
|
projectRoot?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePruneState.d.ts","sourceRoot":"","sources":["../../src/hooks/usePruneState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"usePruneState.d.ts","sourceRoot":"","sources":["../../src/hooks/usePruneState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAOnE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClF;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC1F;IACE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;CACtB,GACD;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC1C;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9F;IACE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,GACD;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GACtE;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAWhE;AAMD,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAmF/E;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAoKnG"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useEffect, useReducer, useRef } from 'react';
|
|
2
2
|
import { errorGuidance, errorMessage } from '../lib/errors.js';
|
|
3
|
-
import { findAllOrphanedAssets, readLockfile
|
|
3
|
+
import { findAllOrphanedAssets, readLockfile } from '../lib/lockfile.js';
|
|
4
|
+
import { pruneOrphans } from '../lib/pruner.js';
|
|
4
5
|
import { resolveScope } from '../lib/scope.js';
|
|
5
6
|
import { resolveTools } from '../lib/tool-resolver.js';
|
|
6
|
-
import { removeSingleAsset } from '../lib/uninstaller.js';
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
// Initial state factory
|
|
9
9
|
// ---------------------------------------------------------------------------
|
|
@@ -115,6 +115,7 @@ export function usePruneState(flags) {
|
|
|
115
115
|
return;
|
|
116
116
|
hasLoadedRef.current = true;
|
|
117
117
|
let cancelled = false;
|
|
118
|
+
const controller = new AbortController();
|
|
118
119
|
const load = async () => {
|
|
119
120
|
const { dryRun, projectRoot, tool, user, yes } = state.flags;
|
|
120
121
|
const where = await resolveScope({ projectRoot, user });
|
|
@@ -148,35 +149,12 @@ export function usePruneState(flags) {
|
|
|
148
149
|
}
|
|
149
150
|
if (yes) {
|
|
150
151
|
dispatch({ message: 'Removing orphans...', type: 'LOAD_PROGRESS' });
|
|
151
|
-
const result = await
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
for (const orphan of freshOrphans) {
|
|
158
|
-
if (cancelled)
|
|
159
|
-
break;
|
|
160
|
-
try {
|
|
161
|
-
dispatch({ message: `Removing ${orphan.name}...`, type: 'LOAD_PROGRESS' });
|
|
162
|
-
for (const adapter of adapters) {
|
|
163
|
-
await removeSingleAsset(orphan, adapter, projectDir, { lockfile: currentLockfile });
|
|
164
|
-
}
|
|
165
|
-
currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type, orphan.org);
|
|
166
|
-
removed.push(orphan);
|
|
167
|
-
}
|
|
168
|
-
catch (err) {
|
|
169
|
-
errors.push({
|
|
170
|
-
error: errorMessage(err),
|
|
171
|
-
name: orphan.name,
|
|
172
|
-
...(orphan.org ? { org: orphan.org } : {}),
|
|
173
|
-
type: orphan.type,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
dispatch({ message: 'Updating lockfile...', type: 'LOAD_PROGRESS' });
|
|
178
|
-
await writeLockfile(projectDir, currentLockfile);
|
|
179
|
-
return { errors, orphans: freshOrphans, removed };
|
|
152
|
+
const result = await pruneOrphans(projectDir, adapters, {
|
|
153
|
+
onProgress: (message) => {
|
|
154
|
+
if (!cancelled)
|
|
155
|
+
dispatch({ message, type: 'LOAD_PROGRESS' });
|
|
156
|
+
},
|
|
157
|
+
signal: controller.signal,
|
|
180
158
|
});
|
|
181
159
|
if (cancelled)
|
|
182
160
|
return;
|
|
@@ -218,6 +196,7 @@ export function usePruneState(flags) {
|
|
|
218
196
|
});
|
|
219
197
|
return () => {
|
|
220
198
|
cancelled = true;
|
|
199
|
+
controller.abort();
|
|
221
200
|
};
|
|
222
201
|
// Phase-gated effect: only runs when entering 'loading'
|
|
223
202
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -227,6 +206,7 @@ export function usePruneState(flags) {
|
|
|
227
206
|
if (state.phase !== 'executing')
|
|
228
207
|
return;
|
|
229
208
|
let cancelled = false;
|
|
209
|
+
const controller = new AbortController();
|
|
230
210
|
const execute = async () => {
|
|
231
211
|
const { outcome } = state;
|
|
232
212
|
if (!outcome || outcome.outcome !== 'confirming') {
|
|
@@ -236,37 +216,12 @@ export function usePruneState(flags) {
|
|
|
236
216
|
const { adapters } = outcome;
|
|
237
217
|
const { projectRoot, user } = state.flags;
|
|
238
218
|
const { root: projectDir } = await resolveScope({ projectRoot, user });
|
|
239
|
-
const result = await
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
for (const orphan of freshOrphans) {
|
|
246
|
-
if (cancelled)
|
|
247
|
-
break;
|
|
248
|
-
try {
|
|
249
|
-
if (!cancelled)
|
|
250
|
-
dispatch({ message: `Removing ${orphan.name}...`, type: 'EXECUTE_PROGRESS' });
|
|
251
|
-
for (const adapter of adapters) {
|
|
252
|
-
await removeSingleAsset(orphan, adapter, projectDir, { lockfile: currentLockfile });
|
|
253
|
-
}
|
|
254
|
-
currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type, orphan.org);
|
|
255
|
-
removed.push(orphan);
|
|
256
|
-
}
|
|
257
|
-
catch (err) {
|
|
258
|
-
errors.push({
|
|
259
|
-
error: errorMessage(err),
|
|
260
|
-
name: orphan.name,
|
|
261
|
-
...(orphan.org ? { org: orphan.org } : {}),
|
|
262
|
-
type: orphan.type,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
if (!cancelled)
|
|
267
|
-
dispatch({ message: 'Updating lockfile...', type: 'EXECUTE_PROGRESS' });
|
|
268
|
-
await writeLockfile(projectDir, currentLockfile);
|
|
269
|
-
return { errors, orphans: freshOrphans, removed };
|
|
219
|
+
const result = await pruneOrphans(projectDir, adapters, {
|
|
220
|
+
onProgress: (message) => {
|
|
221
|
+
if (!cancelled)
|
|
222
|
+
dispatch({ message, type: 'EXECUTE_PROGRESS' });
|
|
223
|
+
},
|
|
224
|
+
signal: controller.signal,
|
|
270
225
|
});
|
|
271
226
|
if (cancelled)
|
|
272
227
|
return;
|
|
@@ -285,6 +240,7 @@ export function usePruneState(flags) {
|
|
|
285
240
|
});
|
|
286
241
|
return () => {
|
|
287
242
|
cancelled = true;
|
|
243
|
+
controller.abort();
|
|
288
244
|
};
|
|
289
245
|
// Phase-gated effect: only runs when entering 'executing'
|
|
290
246
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePruneState.js","sourceRoot":"","sources":["../../src/hooks/usePruneState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAKtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"usePruneState.js","sourceRoot":"","sources":["../../src/hooks/usePruneState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Adapter } from './schemas/adapter.js';
|
|
2
|
+
import type { InstalledAsset } from './schemas/lockfile.js';
|
|
3
|
+
/** An orphan prune could not remove. */
|
|
4
|
+
export interface PruneError {
|
|
5
|
+
error: string;
|
|
6
|
+
name: string;
|
|
7
|
+
org?: string;
|
|
8
|
+
type: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PruneResult {
|
|
11
|
+
errors: PruneError[];
|
|
12
|
+
/** The orphans found inside the lock, which can differ from an earlier scan. */
|
|
13
|
+
orphans: InstalledAsset[];
|
|
14
|
+
removed: InstalledAsset[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Removes every orphaned dependency, under the lockfile lock, from disk for each adapter and then
|
|
18
|
+
* from the lockfile, which is written once at the end. An orphan whose removal fails is reported in
|
|
19
|
+
* `errors` and keeps its lockfile entry; the rest go on. An aborted `signal` stops before the next
|
|
20
|
+
* orphan, and what was removed so far is still written.
|
|
21
|
+
*/
|
|
22
|
+
export declare function pruneOrphans(projectDir: string, adapters: Adapter[], { onProgress, signal }?: {
|
|
23
|
+
onProgress?: (message: string) => void;
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
}): Promise<PruneResult>;
|
|
26
|
+
//# sourceMappingURL=pruner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pruner.d.ts","sourceRoot":"","sources":["../../src/lib/pruner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAY5D,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gFAAgF;IAChF,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,EAAE,UAAU,EAAE,MAAM,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC5F,OAAO,CAAC,WAAW,CAAC,CAiCtB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { errorMessage } from './errors.js';
|
|
2
|
+
import { findAllOrphanedAssets, readLockfile, removeAssetFromLockfile, withLockfileErrorHandling, writeLockfile, } from './lockfile.js';
|
|
3
|
+
import { removeSingleAsset } from './uninstaller.js';
|
|
4
|
+
/**
|
|
5
|
+
* Removes every orphaned dependency, under the lockfile lock, from disk for each adapter and then
|
|
6
|
+
* from the lockfile, which is written once at the end. An orphan whose removal fails is reported in
|
|
7
|
+
* `errors` and keeps its lockfile entry; the rest go on. An aborted `signal` stops before the next
|
|
8
|
+
* orphan, and what was removed so far is still written.
|
|
9
|
+
*/
|
|
10
|
+
export async function pruneOrphans(projectDir, adapters, { onProgress, signal } = {}) {
|
|
11
|
+
return withLockfileErrorHandling(projectDir, async () => {
|
|
12
|
+
// Re-read the lockfile inside the lock for freshness
|
|
13
|
+
let lockfile = await readLockfile(projectDir);
|
|
14
|
+
const orphans = findAllOrphanedAssets(lockfile);
|
|
15
|
+
const removed = [];
|
|
16
|
+
const errors = [];
|
|
17
|
+
for (const orphan of orphans) {
|
|
18
|
+
if (signal?.aborted)
|
|
19
|
+
break;
|
|
20
|
+
try {
|
|
21
|
+
onProgress?.(`Removing ${orphan.name}...`);
|
|
22
|
+
for (const adapter of adapters) {
|
|
23
|
+
await removeSingleAsset(orphan, adapter, projectDir, { lockfile });
|
|
24
|
+
}
|
|
25
|
+
lockfile = removeAssetFromLockfile(lockfile, orphan.name, orphan.type, orphan.org);
|
|
26
|
+
removed.push(orphan);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
errors.push({
|
|
30
|
+
error: errorMessage(err),
|
|
31
|
+
name: orphan.name,
|
|
32
|
+
...(orphan.org ? { org: orphan.org } : {}),
|
|
33
|
+
type: orphan.type,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
onProgress?.('Updating lockfile...');
|
|
38
|
+
await writeLockfile(projectDir, lockfile);
|
|
39
|
+
return { errors, orphans, removed };
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=pruner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pruner.js","sourceRoot":"","sources":["../../src/lib/pruner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAiBrD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,QAAmB,EACnB,EAAE,UAAU,EAAE,MAAM,KAAuE,EAAE;IAE7F,OAAO,yBAAyB,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACtD,qDAAqD;QACrD,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM;YAC3B,IAAI,CAAC;gBACH,UAAU,EAAE,CAAC,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC;oBACxB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,UAAU,EAAE,CAAC,sBAAsB,CAAC,CAAC;QACrC,MAAM,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE1C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@detergent-software/atk",
|
|
3
|
-
"version": "8.9.0-dev.
|
|
3
|
+
"version": "8.9.0-dev.27",
|
|
4
4
|
"description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"tsx": "^4.21.0",
|
|
63
63
|
"typescript": "~6.0.3",
|
|
64
64
|
"vitest": "^5.0.3",
|
|
65
|
-
"@atk/
|
|
66
|
-
"@atk/
|
|
65
|
+
"@atk/tsconfig": "0.0.0",
|
|
66
|
+
"@atk/eslint-config": "0.0.0"
|
|
67
67
|
},
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "pnpm manifest && tsc",
|