@detergent-software/atk 8.7.0-dev.4 → 8.7.0-dev.6

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 CHANGED
@@ -1,3 +1,20 @@
1
+ ## [8.7.0-dev.6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.5&targetVersion=GTv8.7.0-dev.6) (2026-10-15)
2
+
3
+ ### Features
4
+
5
+ * **cli:** move an install between the project and user scope (ATK-334) ([62ca125](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/62ca125c40e3170176039335179defc48a64352a))
6
+
7
+ ### Bug Fixes
8
+
9
+ * **cli:** plan the move under its locks and roll back per tool (ATK-334) ([e815fa9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/e815fa9e61f27bac0cc25d4bcdca6d59f8e0f1e2))
10
+
11
+ ## [8.7.0-dev.5](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.4&targetVersion=GTv8.7.0-dev.5) (2026-10-15)
12
+
13
+ ### Bug Fixes
14
+
15
+ * **cli:** name the variable's own value in the other-drive error (ATK-482) ([5a261bc](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5a261bcc5bf1562cc91921ec3b666eb85ae3180c))
16
+ * **cli:** place Codex and Copilot user assets in CODEX_HOME and XDG_CONFIG_HOME (ATK-482) ([ccd2b0a](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/ccd2b0a16c1df3695dafa50e122e122baf0f8bbd))
17
+
1
18
  ## [8.7.0-dev.4](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.7.0-dev.3&targetVersion=GTv8.7.0-dev.4) (2026-10-15)
2
19
 
3
20
  ### Features
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,8DAAyD,CAAC;AA0ClF,MAAM,CAAC,OAAO,UAAU,KAAK,4CAiB5B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,8DAAyD,CAAC;AA2ClF,MAAM,CAAC,OAAO,UAAU,KAAK,4CAiB5B"}
@@ -18,6 +18,7 @@ const commands = [
18
18
  ['list', 'List installed assets'],
19
19
  ['login', 'Sign in with your Emergent (Microsoft Entra) account'],
20
20
  ['logout', 'Sign out of your Emergent account'],
21
+ ['move', 'Move an installed asset between the project and the user scope'],
21
22
  ['outdated', 'Show available updates for installed assets'],
22
23
  ['pin', 'Pin an installed asset at its installed version'],
23
24
  ['promote', 'Promote an org-scoped asset or bundle to the global namespace'],
@@ -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,MAAM,CAAC,MAAM,WAAW,GAAG,sDAAsD,CAAC;AAElF,MAAM,QAAQ,GAAG;IACf,CAAC,OAAO,EAAE,gDAAgD,CAAC;IAC3D,CAAC,QAAQ,EAAE,yCAAyC,CAAC;IACrD,CAAC,OAAO,EAAE,2BAA2B,CAAC;IACtC,CAAC,UAAU,EAAE,mDAAmD,CAAC;IACjE,CAAC,QAAQ,EAAE,+CAA+C,CAAC;IAC3D,CAAC,WAAW,EAAE,gFAAgF,CAAC;IAC/F,CAAC,MAAM,EAAE,mDAAmD,CAAC;IAC7D,CAAC,QAAQ,EAAE,8CAA8C,CAAC;IAC1D,CAAC,OAAO,EAAE,sEAAsE,CAAC;IACjF,CAAC,QAAQ,EAAE,0EAA0E,CAAC;IACtF,CAAC,MAAM,EAAE,uCAAuC,CAAC;IACjD,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAC1C,CAAC,SAAS,EAAE,0DAA0D,CAAC;IACvE,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACjC,CAAC,OAAO,EAAE,sDAAsD,CAAC;IACjE,CAAC,QAAQ,EAAE,mCAAmC,CAAC;IAC/C,CAAC,UAAU,EAAE,6CAA6C,CAAC;IAC3D,CAAC,KAAK,EAAE,iDAAiD,CAAC;IAC1D,CAAC,SAAS,EAAE,+DAA+D,CAAC;IAC5E,CAAC,OAAO,EAAE,8BAA8B,CAAC;IACzC,CAAC,SAAS,EAAE,4CAA4C,CAAC;IACzD,CAAC,UAAU,EAAE,uDAAuD,CAAC;IACrE,CAAC,eAAe,EAAE,+DAA+D,CAAC;IAClF,CAAC,UAAU,EAAE,+EAA+E,CAAC;IAC7F,CAAC,QAAQ,EAAE,mFAAmF,CAAC;IAC/F,CAAC,QAAQ,EAAE,+CAA+C,CAAC;IAC3D,CAAC,OAAO,EAAE,oEAAoE,CAAC;IAC/E,CAAC,MAAM,EAAE,6FAA6F,CAAC;IACvG,CAAC,MAAM,EAAE,oEAAoE,CAAC;IAC9E,CAAC,WAAW,EAAE,8BAA8B,CAAC;IAC7C,CAAC,OAAO,EAAE,8CAA8C,CAAC;IACzD,CAAC,WAAW,EAAE,uDAAuD,CAAC;IACtE,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IACrC,CAAC,QAAQ,EAAE,kEAAkE,CAAC;IAC9E,CAAC,KAAK,EAAE,mCAAmC,CAAC;CACpC,CAAC;AAEX,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtE,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,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAC9B,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,sDAAsD,CAAC;AAElF,MAAM,QAAQ,GAAG;IACf,CAAC,OAAO,EAAE,gDAAgD,CAAC;IAC3D,CAAC,QAAQ,EAAE,yCAAyC,CAAC;IACrD,CAAC,OAAO,EAAE,2BAA2B,CAAC;IACtC,CAAC,UAAU,EAAE,mDAAmD,CAAC;IACjE,CAAC,QAAQ,EAAE,+CAA+C,CAAC;IAC3D,CAAC,WAAW,EAAE,gFAAgF,CAAC;IAC/F,CAAC,MAAM,EAAE,mDAAmD,CAAC;IAC7D,CAAC,QAAQ,EAAE,8CAA8C,CAAC;IAC1D,CAAC,OAAO,EAAE,sEAAsE,CAAC;IACjF,CAAC,QAAQ,EAAE,0EAA0E,CAAC;IACtF,CAAC,MAAM,EAAE,uCAAuC,CAAC;IACjD,CAAC,MAAM,EAAE,gCAAgC,CAAC;IAC1C,CAAC,SAAS,EAAE,0DAA0D,CAAC;IACvE,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACjC,CAAC,OAAO,EAAE,sDAAsD,CAAC;IACjE,CAAC,QAAQ,EAAE,mCAAmC,CAAC;IAC/C,CAAC,MAAM,EAAE,gEAAgE,CAAC;IAC1E,CAAC,UAAU,EAAE,6CAA6C,CAAC;IAC3D,CAAC,KAAK,EAAE,iDAAiD,CAAC;IAC1D,CAAC,SAAS,EAAE,+DAA+D,CAAC;IAC5E,CAAC,OAAO,EAAE,8BAA8B,CAAC;IACzC,CAAC,SAAS,EAAE,4CAA4C,CAAC;IACzD,CAAC,UAAU,EAAE,uDAAuD,CAAC;IACrE,CAAC,eAAe,EAAE,+DAA+D,CAAC;IAClF,CAAC,UAAU,EAAE,+EAA+E,CAAC;IAC7F,CAAC,QAAQ,EAAE,mFAAmF,CAAC;IAC/F,CAAC,QAAQ,EAAE,+CAA+C,CAAC;IAC3D,CAAC,OAAO,EAAE,oEAAoE,CAAC;IAC/E,CAAC,MAAM,EAAE,6FAA6F,CAAC;IACvG,CAAC,MAAM,EAAE,oEAAoE,CAAC;IAC9E,CAAC,WAAW,EAAE,8BAA8B,CAAC;IAC7C,CAAC,OAAO,EAAE,8CAA8C,CAAC;IACzD,CAAC,WAAW,EAAE,uDAAuD,CAAC;IACtE,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IACrC,CAAC,QAAQ,EAAE,kEAAkE,CAAC;IAC9E,CAAC,KAAK,EAAE,mCAAmC,CAAC;CACpC,CAAC;AAEX,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtE,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,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAC9B,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"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Move an installed asset between the project and the user scope";
3
+ export declare const options: z.ZodObject<{
4
+ dryRun: z.ZodDefault<z.ZodBoolean>;
5
+ force: z.ZodDefault<z.ZodBoolean>;
6
+ json: z.ZodDefault<z.ZodBoolean>;
7
+ projectRoot: z.ZodOptional<z.ZodString>;
8
+ to: z.ZodEnum<{
9
+ project: "project";
10
+ user: "user";
11
+ }>;
12
+ type: z.ZodOptional<z.ZodEnum<{
13
+ skill: "skill";
14
+ agent: "agent";
15
+ rule: "rule";
16
+ hook: "hook";
17
+ "memory-template": "memory-template";
18
+ "mcp-config": "mcp-config";
19
+ }>>;
20
+ }, z.core.$strip>;
21
+ export declare const args: z.ZodTuple<[z.ZodString], null>;
22
+ type Props = {
23
+ args: z.infer<typeof args>;
24
+ options: z.infer<typeof options>;
25
+ };
26
+ export default function Move({ args: [rawName], options: { dryRun, force, json, projectRoot, to, type } }: Props): import("react/jsx-runtime").JSX.Element;
27
+ export {};
28
+ //# sourceMappingURL=move.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.d.ts","sourceRoot":"","sources":["../../src/commands/move.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,WAAW,mEAAmE,CAAC;AAE5F,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;iBAgDlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAAmF,CAAC;AAIrG,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA6I/G"}
@@ -0,0 +1,180 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { option } from 'pastel';
4
+ import { z } from 'zod';
5
+ import { ErrorView, Spinner } from '../components/index.js';
6
+ import { useCommand } from '../hooks/useCommand.js';
7
+ import { errorMessage } from '../lib/errors.js';
8
+ import { executeMove, finishMoveCommand, planMove } from '../lib/mover.js';
9
+ import { formatOrgName, parseOrgFromName } from '../lib/org.js';
10
+ import { renderJson, useNonInteractive } from '../lib/output.js';
11
+ import { fetchRegistry } from '../lib/registry.js';
12
+ import { AssetType } from '../lib/schemas/index.js';
13
+ import { scopeLabel } from '../lib/scope.js';
14
+ export const description = 'Move an installed asset between the project and the user scope';
15
+ export const options = z.object({
16
+ dryRun: z
17
+ .boolean()
18
+ .default(false)
19
+ .describe(option({
20
+ description: 'Show what would be installed and removed without making changes',
21
+ })),
22
+ force: z
23
+ .boolean()
24
+ .default(false)
25
+ .describe(option({
26
+ alias: 'f',
27
+ description: "Move a frozen asset with local edits (they are lost), and overwrite files at the target that ATK didn't install",
28
+ })),
29
+ json: z
30
+ .boolean()
31
+ .default(false)
32
+ .describe(option({
33
+ alias: 'j',
34
+ description: 'Output raw JSON (for scripting and CI)',
35
+ })),
36
+ projectRoot: z
37
+ .string()
38
+ .optional()
39
+ .describe(option({
40
+ alias: 'P',
41
+ description: 'The project side of the move (default: the project at the current directory)',
42
+ })),
43
+ to: z.enum(['project', 'user']).describe(option({
44
+ description: 'The scope to move the asset to: user (the user root, ~ by default) or project',
45
+ })),
46
+ type: AssetType.optional().describe(option({
47
+ alias: 't',
48
+ description: 'Asset type, when the name is installed as more than one type',
49
+ })),
50
+ });
51
+ export const args = z.tuple([z.string().describe('Asset name to move (supports @org/name syntax)')]);
52
+ export default function Move({ args: [rawName], options: { dryRun, force, json, projectRoot, to, type } }) {
53
+ const { name, org } = parseOrgFromName(rawName);
54
+ const { json: effectiveJson } = useNonInteractive(json);
55
+ const state = useCommand(async (progress) => {
56
+ progress('Fetching registry...');
57
+ const registry = await fetchRegistry({ force: true });
58
+ progress('Planning the move...');
59
+ const request = { force, name, org, projectRoot, to, type };
60
+ if (dryRun)
61
+ return { outcome: 'dry-run', plan: await planMove(request, registry, progress) };
62
+ const result = await executeMove(request, registry, progress);
63
+ if (result.outcome === 'source-uninstall-failed')
64
+ process.exitCode = 1;
65
+ return result;
66
+ }, [rawName, dryRun, force, projectRoot, to, type]);
67
+ if (state.status === 'loading') {
68
+ return _jsx(Spinner, { message: state.message });
69
+ }
70
+ if (state.status === 'error') {
71
+ if (effectiveJson) {
72
+ return renderJson({
73
+ ...(state.code ? { code: state.code } : {}),
74
+ ...(state.command ? { command: state.command } : {}),
75
+ ...(state.hint ? { hint: state.hint } : {}),
76
+ message: state.message,
77
+ outcome: 'error',
78
+ });
79
+ }
80
+ return _jsx(ErrorView, { command: state.command, hint: state.hint, message: state.message });
81
+ }
82
+ const { data } = state;
83
+ const { plan } = data;
84
+ const from = scopeLabel(plan.from);
85
+ const target = scopeLabel(plan.to);
86
+ if (data.outcome === 'source-uninstall-failed') {
87
+ const message = `Installed ${formatOrgName(plan.asset.org, plan.asset.name)} in ${target}, but removing it from ${from} failed: ${errorMessage(data.error)}`;
88
+ const command = finishMoveCommand(plan);
89
+ const hint = `Both scopes have it installed now. Run the command to finish the move, or atk sync in ${from} to restore its files.`;
90
+ if (effectiveJson) {
91
+ return renderJson({
92
+ ...moveFields(plan),
93
+ command,
94
+ hint,
95
+ installed: installedFields(data.toolResults),
96
+ message,
97
+ outcome: data.outcome,
98
+ });
99
+ }
100
+ return _jsx(ErrorView, { command: command, hint: hint, message: message });
101
+ }
102
+ if (data.outcome === 'dry-run') {
103
+ if (effectiveJson) {
104
+ return renderJson({
105
+ ...moveFields(plan),
106
+ install: plan.install.entries.map((e) => ({
107
+ name: e.asset.name,
108
+ ...(e.asset.org ? { org: e.asset.org } : {}),
109
+ reason: e.reason,
110
+ type: e.asset.type,
111
+ version: e.version,
112
+ })),
113
+ outcome: data.outcome,
114
+ uninstall: [plan.asset, ...plan.dependencies.moving].map(assetFields),
115
+ });
116
+ }
117
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { color: 'yellow', children: "~ Dry run \u2014 no changes will be made" }), _jsxs(Text, { children: ["Would move ", _jsx(Text, { bold: true, children: formatOrgName(plan.asset.org, plan.asset.name) }), " v", plan.asset.version, " from", ' ', from, " to ", target, ":"] }), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Install in ", target, " (", plan.targetTools.map((t) => t.tool).join(', '), "):"] }), plan.install.entries.length === 0 && _jsxs(Text, { dimColor: true, children: [' ', "nothing (already installed)"] }), plan.install.entries.map((e) => (_jsxs(Text, { children: [' ', "+ ", formatOrgName(e.asset.org, e.asset.name), _jsxs(Text, { dimColor: true, children: [' ', "(", e.asset.type, ") v", e.version, e.reason === 'dependency' ? ' (dependency)' : ''] })] }, `${e.asset.type}:${e.asset.org ?? ''}:${e.asset.name}`))), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Remove from ", from, ":"] }), [plan.asset, ...plan.dependencies.moving].map((a) => (_jsx(AssetLine, { asset: a, mark: '\u2715' }, `${a.type}:${a.org ?? ''}:${a.name}`))), _jsx(Kept, { from: from, plan: plan })] }));
118
+ }
119
+ if (effectiveJson) {
120
+ return renderJson({
121
+ ...moveFields(plan),
122
+ installed: installedFields(data.toolResults),
123
+ outcome: data.outcome,
124
+ removed: data.removed.map((r) => ({
125
+ name: r.name,
126
+ ...(r.org ? { org: r.org } : {}),
127
+ reason: r.reason,
128
+ type: r.type,
129
+ version: r.version,
130
+ })),
131
+ ...(data.warnings.length > 0 ? { warnings: data.warnings } : {}),
132
+ });
133
+ }
134
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["Moved ", _jsx(Text, { bold: true, children: formatOrgName(plan.asset.org, plan.asset.name) }), " v", plan.asset.version, " from ", from, " to", ' ', target, plan.asset.pinnedVersion ? _jsx(Text, { dimColor: true, children: " (pinned)" }) : null, plan.frozen ? _jsx(Text, { dimColor: true, children: " (frozen)" }) : null] }), plan.dependencies.moving.map((a) => (_jsx(AssetLine, { asset: a, mark: '\u2192' }, `${a.type}:${a.org ?? ''}:${a.name}`))), _jsx(Kept, { from: from, plan: plan }), data.warnings.map((warning) => (_jsxs(Text, { color: 'yellow', children: ["! ", warning] }, warning)))] }));
135
+ }
136
+ function assetFields(asset) {
137
+ return {
138
+ installReason: asset.installReason ?? 'direct',
139
+ name: asset.name,
140
+ ...(asset.org ? { org: asset.org } : {}),
141
+ ...(asset.pinnedVersion ? { pinnedVersion: asset.pinnedVersion } : {}),
142
+ type: asset.type,
143
+ version: asset.version,
144
+ };
145
+ }
146
+ function AssetLine({ asset, mark }) {
147
+ return (_jsxs(Text, { children: [' ', mark, " ", formatOrgName(asset.org, asset.name), _jsxs(Text, { dimColor: true, children: [' ', "(", asset.type, ") v", asset.version, (asset.installReason ?? 'direct') === 'dependency' ? ' (dependency)' : ''] })] }));
148
+ }
149
+ function installedFields(toolResults) {
150
+ return toolResults.map(({ results, tool }) => ({
151
+ assets: results.map((r) => ({
152
+ name: r.name,
153
+ ...(r.org ? { org: r.org } : {}),
154
+ reason: r.installReason,
155
+ type: r.type,
156
+ version: r.version,
157
+ })),
158
+ tool,
159
+ }));
160
+ }
161
+ /** The asset's dependencies that stay in the source because other assets there need them. */
162
+ function Kept({ from, plan }) {
163
+ if (plan.dependencies.staying.length === 0)
164
+ return null;
165
+ return (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Kept in ", from, " (other assets there need them):"] }), plan.dependencies.staying.map((a) => (_jsx(AssetLine, { asset: a, mark: '=' }, `${a.type}:${a.org ?? ''}:${a.name}`)))] }));
166
+ }
167
+ /** The fields every `--json` outcome of a planned move carries: the asset and both scopes. */
168
+ function moveFields(plan) {
169
+ return {
170
+ asset: assetFields(plan.asset),
171
+ dependencies: {
172
+ moving: plan.dependencies.moving.map(assetFields),
173
+ staying: plan.dependencies.staying.map(assetFields),
174
+ },
175
+ from: { root: plan.from.root, scope: plan.from.scope, tools: plan.sourceTools.map((t) => t.tool) },
176
+ frozen: plan.frozen,
177
+ to: { root: plan.to.root, scope: plan.to.scope, tools: plan.targetTools.map((t) => t.tool) },
178
+ };
179
+ }
180
+ //# sourceMappingURL=move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../src/commands/move.tsx"],"names":[],"mappings":"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"}
@@ -21,8 +21,10 @@ export declare class AdapterError extends GuidedError {
21
21
  * `userPlacements` (none when it has none), so every reader of `placements` places assets,
22
22
  * and finds their config entries, the user-scope way.
23
23
  *
24
- * While the adapter's `userConfigDir.env` is set (Claude Code's `CLAUDE_CONFIG_DIR`, an absolute path), the user
25
- * placements under `userConfigDir.dir`, and its `files`, move into that directory. They stay
24
+ * While the adapter's `userConfigDir.env` is set (Claude Code's `CLAUDE_CONFIG_DIR`, Codex's
25
+ * `CODEX_HOME`, Copilot's `XDG_CONFIG_HOME`: an absolute path), the user placements under
26
+ * `userConfigDir.dir`, and its `files`, move into that directory, or into its `subdir` (Copilot's
27
+ * `$XDG_CONFIG_HOME/.copilot`). Those under a `keep` prefix stay (Copilot's hooks). They stay
26
28
  * relative to `root`, the user root (with `..` when the directory is outside it), so the
27
29
  * lockfile records where each was written and every reader still joins them onto the root.
28
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,eAAe,EAAsB,MAAM,sBAAsB,CAAC;AAG7G,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,qBAAa,YAAa,SAAQ,WAAW;IAClC,IAAI,SAAkB;CAChC;AAKD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAEhG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAqB1G;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAoC1D;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC;IAC9D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC,CAwDD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE;IACL,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,EACD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB;IACD,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CA8DA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAEjF"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,eAAe,EAAsB,MAAM,sBAAsB,CAAC;AAG7G,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,qBAAa,YAAa,SAAQ,WAAW;IAClC,IAAI,SAAkB;CAChC;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBrF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAEhG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAqB1G;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAoC1D;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,IAAI,OAAO,CAAC;IAC9D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC,CAwDD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE;IACL,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,EACD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB;IACD,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E,CA8DA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAEjF"}
@@ -20,8 +20,10 @@ const adapterCache = new Map();
20
20
  * `userPlacements` (none when it has none), so every reader of `placements` places assets,
21
21
  * and finds their config entries, the user-scope way.
22
22
  *
23
- * While the adapter's `userConfigDir.env` is set (Claude Code's `CLAUDE_CONFIG_DIR`, an absolute path), the user
24
- * placements under `userConfigDir.dir`, and its `files`, move into that directory. They stay
23
+ * While the adapter's `userConfigDir.env` is set (Claude Code's `CLAUDE_CONFIG_DIR`, Codex's
24
+ * `CODEX_HOME`, Copilot's `XDG_CONFIG_HOME`: an absolute path), the user placements under
25
+ * `userConfigDir.dir`, and its `files`, move into that directory, or into its `subdir` (Copilot's
26
+ * `$XDG_CONFIG_HOME/.copilot`). Those under a `keep` prefix stay (Copilot's hooks). They stay
25
27
  * relative to `root`, the user root (with `..` when the directory is outside it), so the
26
28
  * lockfile records where each was written and every reader still joins them onto the root.
27
29
  */
@@ -288,8 +290,9 @@ export function supportsAssetType(adapter, assetType) {
288
290
  return assetType in adapter.placements;
289
291
  }
290
292
  /**
291
- * The directory `userConfigDir.env` moves the tool's user config to, relative to `root` as a
292
- * POSIX path ('.' for the root itself), or undefined while the variable is unset or empty.
293
+ * The directory `userConfigDir.env` (joined with its `subdir`) moves the tool's user config to,
294
+ * relative to `root` as a POSIX path ('.' for the root itself), or undefined while the variable
295
+ * is unset or empty.
293
296
  */
294
297
  function movedUserConfigDir(userConfigDir, root) {
295
298
  const value = process.env[userConfigDir.env];
@@ -299,15 +302,21 @@ function movedUserConfigDir(userConfigDir, root) {
299
302
  if (!isAbsolute(value)) {
300
303
  throw new AdapterError(`${userConfigDir.env} (${value}) is a relative path, so where it points depends on the directory a command runs from.`, { hint: `Set ${userConfigDir.env} to an absolute path.` });
301
304
  }
302
- const dir = resolve(value);
305
+ const dir = resolve(value, userConfigDir.subdir ?? '');
303
306
  const relativeDir = toRelativePosix(resolve(root), dir);
304
307
  if (isAbsolute(relativeDir)) {
305
- throw new AdapterError(`${userConfigDir.env} (${dir}) is on another drive than the ATK user root (${root}), so ATK can't record its paths.`, { hint: `Point ATK_USER_ROOT at a directory on the same drive as ${userConfigDir.env}.` });
308
+ throw new AdapterError(`${userConfigDir.env} (${resolve(value)}) is on another drive than the ATK user root (${root}), so ATK can't record its paths.`, { hint: `Point ATK_USER_ROOT at a directory on the same drive as ${userConfigDir.env}.` });
306
309
  }
307
310
  return relativeDir === '' ? '.' : relativeDir;
308
311
  }
309
- /** A user placement path moved into `movedDir` when it is under `userConfigDir.dir` or one of its `files`. */
312
+ /**
313
+ * A user placement path moved into `movedDir` when it is under `userConfigDir.dir` or one of its
314
+ * `files`, unless it is under one of its `keep` prefixes.
315
+ */
310
316
  function rebaseUserPath(path, userConfigDir, movedDir) {
317
+ if (userConfigDir.keep?.some((prefix) => path.startsWith(prefix))) {
318
+ return path;
319
+ }
311
320
  if (path.startsWith(`${userConfigDir.dir}/`)) {
312
321
  return posix.join(movedDir, path.slice(userConfigDir.dir.length + 1));
313
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAgB,aAAa,EAA4C,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAe3C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,mHAAmH;AACnH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AAElE,MAAM,OAAO,YAAa,SAAQ,WAAW;IAClC,IAAI,GAAG,cAAc,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,KAAY,EAAE,IAAY;IAC1E,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IAChD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,QAAQ,GAAG,aAAa,IAAI,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC1E,IAAI,CAAC,aAAa,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;QACpD,IAAI;QACJ;YACE,GAAG,SAAS;YACZ,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACzE,GAAG,CAAC,SAAS,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;SACzF;KACF,CAAC,CACH,CAAC;IACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,SAAoB;IACjE,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAgB,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB,EAAE,SAAiB,EAAE,kBAA2B;IAC/F,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,YAAY,KAAK,kBAAkB,CAAC;IAC7C,CAAC;IAED,MAAM,kBAAkB,GAA2B;QACjD,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,6BAA6B;QACnC,YAAY,EAAE,oCAAoC;QAClD,iBAAiB,EAAE,sCAAsC;QACzD,IAAI,EAAE,iCAAiC;QACvC,KAAK,EAAE,4BAA4B;KACpC,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,yEAAyE;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAa;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,YAAY,CAAC,8BAA8B,IAAI,wBAAwB,QAAQ,EAAE,EAAE;YAC3F,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YAC/E,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,6BAA6B,IAAI,GAAG,CAAC,CAAC;QAC3F,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,qFAAqF;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE1C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,6BAA6B,IAAI,GAAG,CAAC,CAAC;YAC3F,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,+FAA+F;YAC/F,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B;IAIlD,MAAM,WAAW,GAAuB;QACtC,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,CAAC;KACd,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,eAAe,GAAG,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,WAAW,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE1C,8BAA8B;QAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,WAAW,CAAC,cAAc,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAC;YAC7E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACxB,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,MAAM,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACxB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAKC,EACD,OAAgB,EAChB,UAAkB;IAKlB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,IAAiB,CAAC,CAAC;IAEjE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAyC,EAAE,CAAC;IAC/D,MAAM,KAAK,GAA2E,EAAE,CAAC;IAEzF,kEAAkE;IAClE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,sBAAsB;QACtB,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS,CAAC,UAAU;gBAC1B,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnE,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,mBAAmB,KAAK,CAAC,IAAI,EAAE;SACrC,CAAC,CAAC;QACH,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,wBAAwB,CAC5C,SAAS,CAAC,IAAI,EACd,KAAK,CAAC,IAAI,EACV,UAAU,EACV,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,IAAI,EACV,SAAS,CAAC,cAAc,EACxB,KAAK,CAAC,UAAU,CACjB,CAAC;QACF,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,sFAAsF;IACtF,wFAAwF;IACxF,wFAAwF;IACxF,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9E,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,SAAS,CAAC,UAAU;YAC1B,GAAG,EAAE,GAAG,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA0B,EAAE,SAAiB,EAAE,QAAgB;IAClG,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,SAAoB;IACtE,OAAO,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,aAA4B,EAAE,IAAY;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CACpB,GAAG,aAAa,CAAC,GAAG,KAAK,KAAK,wFAAwF,EACtH,EAAE,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,uBAAuB,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,YAAY,CACpB,GAAG,aAAa,CAAC,GAAG,KAAK,GAAG,iDAAiD,IAAI,mCAAmC,EACpH,EAAE,IAAI,EAAE,2DAA2D,aAAa,CAAC,GAAG,GAAG,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;AAChD,CAAC;AAED,8GAA8G;AAC9G,SAAS,cAAc,CAAC,IAAY,EAAE,aAA4B,EAAE,QAAgB;IAClF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,cAAuB,EACvB,kBAA2B;IAE3B,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEtE,IAAI,cAAc,EAAE,CAAC;QACnB,iFAAiF;QACjF,MAAM,OAAO,GAAG,gBAAgB,CAAC;QACjC,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC9D,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE9C,IAAI,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9D,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import type { InstallPlan } from './resolver.js';
2
+ import type { AssetType, Registry } from './schemas/index.js';
3
+ import type { InstalledAsset, Lockfile } from './schemas/lockfile.js';
4
+ import { GuidedError } from './errors.js';
5
+ import { type ToolInstallResult } from './multi-tool-install.js';
6
+ import { type ResolvedScope, type Scope } from './scope.js';
7
+ import { resolveTools } from './tool-resolver.js';
8
+ import { type UninstallPlan, type UninstallResult } from './uninstaller.js';
9
+ /** A move worked out before anything is written: both halves, and the scopes they run in. */
10
+ export interface MovePlan {
11
+ /** The asset's lockfile entry in the source scope. */
12
+ asset: InstalledAsset;
13
+ /**
14
+ * The asset's dependencies the source has: `moving` leave it with the asset (nothing else
15
+ * there needs them), `staying` stay because other source assets need them.
16
+ */
17
+ dependencies: {
18
+ moving: InstalledAsset[];
19
+ staying: InstalledAsset[];
20
+ };
21
+ from: ResolvedScope;
22
+ /** The asset is frozen in the source, so it is frozen at the target too. */
23
+ frozen: boolean;
24
+ /** What the target installs: `requested` less the dependencies it already has in place. */
25
+ install: InstallPlan;
26
+ /**
27
+ * The plan the target install runs, which trims it the same way under the lockfile lock: the
28
+ * asset at its source version (unless the target has that version in place), and its dependencies.
29
+ */
30
+ requested: InstallPlan;
31
+ sourceTools: ScopeTools;
32
+ targetTools: ScopeTools;
33
+ to: ResolvedScope;
34
+ /** What the source uninstalls: the asset and its `moving` dependencies. */
35
+ uninstall: UninstallPlan;
36
+ }
37
+ /** What `atk move` asks for: an installed asset of one scope, and the scope to move it to. */
38
+ export interface MoveRequest {
39
+ /**
40
+ * Move a frozen asset with local edits (the edits are lost), and let the target install
41
+ * overwrite files ATK didn't install, as `install --force` does.
42
+ */
43
+ force?: boolean;
44
+ name: string;
45
+ /** The org of an `@org/name` spec. */
46
+ org?: string;
47
+ /** The project side of the move (`-P`); the marker walk from cwd otherwise. */
48
+ projectRoot?: string;
49
+ to: Scope;
50
+ type?: AssetType;
51
+ }
52
+ /**
53
+ * How a move that got past its target install ended. A `moved` move's `warnings` are follow-ups
54
+ * that failed after the source uninstall (dropping the source's freeze record).
55
+ */
56
+ export type MoveResult = {
57
+ error: unknown;
58
+ outcome: 'source-uninstall-failed';
59
+ toolResults: ToolInstallResult[];
60
+ } | {
61
+ outcome: 'moved';
62
+ removed: UninstallResult[];
63
+ toolResults: ToolInstallResult[];
64
+ warnings: string[];
65
+ };
66
+ type ScopeTools = Awaited<ReturnType<typeof resolveTools>>;
67
+ /** Thrown when a move is refused before anything is written. */
68
+ export declare class MoveError extends GuidedError {
69
+ name: string;
70
+ }
71
+ /**
72
+ * `plan` with each dependency the source has installed at the source's version, so a dependency
73
+ * that moves keeps its lockfile entry. Only when the registry still has that version, it declares
74
+ * the same dependencies as the version the resolver picked (so the rest of the plan still fits
75
+ * it), and every dependent in the plan accepts it. The others stay as the resolver picked them.
76
+ */
77
+ export declare function atSourceVersions(plan: InstallPlan, source: Lockfile): InstallPlan;
78
+ /**
79
+ * Plan and run a move. Both lockfiles stay locked throughout, the user root's first, so two moves
80
+ * in opposite directions take them in the same order, and the plan ({@link planMove}) is worked out
81
+ * under them. The target install runs first and rolls itself back when it fails, so the source is
82
+ * untouched; so is it when giving the new target entries the source's pin, install reason, bundle
83
+ * and freeze fails, which rolls the target back too. Then the source uninstalls the asset and its
84
+ * moving dependencies (a failure there is `source-uninstall-failed`, with both scopes installed),
85
+ * and drops its freeze record.
86
+ */
87
+ export declare function executeMove(request: MoveRequest, registry: Registry, onProgress?: (message: string) => void): Promise<MoveResult & {
88
+ plan: MovePlan;
89
+ }>;
90
+ /**
91
+ * The command that finishes a move whose source half failed: the uninstall in the source scope.
92
+ */
93
+ export declare function finishMoveCommand({ asset, from }: Pick<MovePlan, 'asset' | 'from'>): string;
94
+ /**
95
+ * Work out a move without writing anything. The target scope is `to`, the source the other one;
96
+ * `-P` (or the marker walk) gives the project side. Refused here: a project root that is the user
97
+ * root, an asset the source doesn't have (or a bundle), one other source assets depend on, one the
98
+ * target has at another version, and a frozen one with local edits unless `force`. A target that
99
+ * already has the asset in place at the same version keeps its copy.
100
+ */
101
+ export declare function planMove(request: MoveRequest, registry: Registry, onProgress?: (message: string) => void): Promise<MovePlan>;
102
+ export {};
103
+ //# sourceMappingURL=mover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mover.d.ts","sourceRoot":"","sources":["../../src/lib/mover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,375 @@
1
+ import { join } from 'node:path';
2
+ import { satisfies } from 'semver';
3
+ import { resolveInstalledPaths } from './adapter.js';
4
+ import { supportsType } from './asset-tools.js';
5
+ import { verifyChecksums, verifyConfigEntries } from './checksum.js';
6
+ import { getConfigEntriesForTool } from './config-entries.js';
7
+ import { freezeAssetInConfig } from './config.js';
8
+ import { errorMessage, GuidedError } from './errors.js';
9
+ import { isInstalledForTool } from './installed-for-tool.js';
10
+ import { rollBackInstalledAssets } from './installer.js';
11
+ import { addAssetToLockfile, findDependencyAsset, findInstalledAsset, findInstalledAssetWithFallback, identityKey, readLockfile, withLockfileErrorHandling, writeLockfile, } from './lockfile.js';
12
+ import { executeInstallPlanForTools, withoutKeptDependencies } from './multi-tool-install.js';
13
+ import { formatOrgName } from './org.js';
14
+ import { isLatestAlias } from './registry.js';
15
+ import { resolveInstallPlan } from './resolver.js';
16
+ import {} from './schemas/config.js';
17
+ import { loadScopeConfig, resolveScope, saveScopeConfig, scopeLabel } from './scope.js';
18
+ import { resolveTools } from './tool-resolver.js';
19
+ import { planUninstall, uninstallAsset } from './uninstaller.js';
20
+ /** Thrown when a move is refused before anything is written. */
21
+ export class MoveError extends GuidedError {
22
+ name = 'MoveError';
23
+ }
24
+ /**
25
+ * `plan` with each dependency the source has installed at the source's version, so a dependency
26
+ * that moves keeps its lockfile entry. Only when the registry still has that version, it declares
27
+ * the same dependencies as the version the resolver picked (so the rest of the plan still fits
28
+ * it), and every dependent in the plan accepts it. The others stay as the resolver picked them.
29
+ */
30
+ export function atSourceVersions(plan, source) {
31
+ const rangesFor = (name, type) => plan.entries.flatMap(({ versionData }) => (versionData.dependencies ?? [])
32
+ .filter((d) => d.name === name && d.type === type && d.version && !isLatestAlias(d.version))
33
+ .map((d) => d.version));
34
+ const entries = plan.entries.map((entry) => {
35
+ if (entry.reason !== 'dependency')
36
+ return entry;
37
+ const installed = findInstalledAsset(source, entry.asset.name, entry.asset.type, entry.asset.org);
38
+ if (!installed || installed.version === entry.version)
39
+ return entry;
40
+ const versionData = entry.asset.versions[installed.version];
41
+ if (!versionData || dependencyKey(versionData) !== dependencyKey(entry.versionData))
42
+ return entry;
43
+ const accepted = rangesFor(entry.asset.name, entry.asset.type).every((range) => satisfies(installed.version, range));
44
+ return accepted ? { ...entry, version: installed.version, versionData } : entry;
45
+ });
46
+ return { entries, totalCount: entries.length };
47
+ }
48
+ /**
49
+ * Plan and run a move. Both lockfiles stay locked throughout, the user root's first, so two moves
50
+ * in opposite directions take them in the same order, and the plan ({@link planMove}) is worked out
51
+ * under them. The target install runs first and rolls itself back when it fails, so the source is
52
+ * untouched; so is it when giving the new target entries the source's pin, install reason, bundle
53
+ * and freeze fails, which rolls the target back too. Then the source uninstalls the asset and its
54
+ * moving dependencies (a failure there is `source-uninstall-failed`, with both scopes installed),
55
+ * and drops its freeze record.
56
+ */
57
+ export async function executeMove(request, registry, onProgress) {
58
+ const { project, user } = await moveScopes(request);
59
+ return await withLockfileErrorHandling(user.root, () => withLockfileErrorHandling(project.root, async () => {
60
+ const plan = await planMove(request, registry, onProgress);
61
+ return { ...(await runMove(plan, request.force, onProgress)), plan };
62
+ }));
63
+ }
64
+ /**
65
+ * The command that finishes a move whose source half failed: the uninstall in the source scope.
66
+ */
67
+ export function finishMoveCommand({ asset, from }) {
68
+ const spec = formatOrgName(asset.org, asset.name);
69
+ const where = from.scope === 'user' ? '--user' : `--project-root "${from.root}"`;
70
+ return `atk uninstall ${spec} --type ${asset.type} ${where} --yes`;
71
+ }
72
+ /**
73
+ * Work out a move without writing anything. The target scope is `to`, the source the other one;
74
+ * `-P` (or the marker walk) gives the project side. Refused here: a project root that is the user
75
+ * root, an asset the source doesn't have (or a bundle), one other source assets depend on, one the
76
+ * target has at another version, and a frozen one with local edits unless `force`. A target that
77
+ * already has the asset in place at the same version keeps its copy.
78
+ */
79
+ export async function planMove(request, registry, onProgress) {
80
+ const { project, user } = await moveScopes(request);
81
+ const [from, to] = request.to === 'user' ? [project, user] : [user, project];
82
+ const [sourceTools, targetTools, source, target] = await Promise.all([
83
+ resolveTools(undefined, from.root),
84
+ resolveTools(undefined, to.root),
85
+ readLockfile(from.root),
86
+ readLockfile(to.root),
87
+ ]);
88
+ const asset = findSourceAsset(source, request, from);
89
+ const displayName = formatOrgName(asset.org, asset.name);
90
+ const uninstall = planUninstall(source, asset.name, asset.org, asset.type);
91
+ if (uninstall.dependents.length > 0) {
92
+ const dependents = uninstall.dependents.map((d) => formatOrgName(d.org, d.name)).join(', ');
93
+ throw new MoveError(`"${displayName}" is needed by ${dependents} in ${scopeLabel(from)}, so it can't leave it.`, {
94
+ hint: `Move ${dependents} instead, or install ${displayName} in ${scopeLabel(to)} as well.`,
95
+ });
96
+ }
97
+ const atTarget = findInstalledAsset(target, asset.name, asset.type, asset.org);
98
+ if (atTarget && atTarget.version !== asset.version) {
99
+ throw new MoveError(`"${displayName}" is already installed in ${scopeLabel(to)} at v${atTarget.version}, not v${asset.version}.`, { hint: `Uninstall or update it in ${scopeLabel(to)} first, so the move doesn't change its version there.` });
100
+ }
101
+ const frozen = isFrozen(await loadScopeConfig(from.root), asset);
102
+ if (frozen && !request.force && (await hasLocalEdits(asset, sourceTools, from.root))) {
103
+ throw new MoveError(`"${displayName}" is frozen and has local edits in ${scopeLabel(from)}; moving it installs the registry's v${asset.version} and loses them.`, { hint: 'Run it again with --force to move it anyway.' });
104
+ }
105
+ const resolved = atSourceVersions(resolveInstallPlan(registry, asset.name, asset.type, asset.version, asset.org), source);
106
+ const inPlace = atTarget !== undefined &&
107
+ targetTools
108
+ .filter(({ adapter }) => supportsType(adapter, asset.type))
109
+ .every(({ adapter }) => isInstalledForTool(atTarget, adapter, to.root));
110
+ const requested = inPlace ? withoutEntry(resolved, asset) : resolved;
111
+ const install = withoutKeptDependencies(requested, target, targetTools, {
112
+ onProgress,
113
+ projectDir: to.root,
114
+ scope: to.scope,
115
+ });
116
+ const moving = uninstall.orphanedDependencies;
117
+ const movingKeys = new Set(moving.map(identityKey));
118
+ const staying = dependencyClosure(source, asset).filter((d) => !movingKeys.has(identityKey(d)));
119
+ return {
120
+ asset,
121
+ dependencies: { moving, staying },
122
+ from,
123
+ frozen,
124
+ install,
125
+ requested,
126
+ sourceTools,
127
+ targetTools,
128
+ to,
129
+ uninstall,
130
+ };
131
+ }
132
+ /**
133
+ * Give the target's entries what the source's had. A moved asset (the asset and its moving
134
+ * dependencies) the target didn't have gets its install reason, its bundle and, at the same
135
+ * version, its pin; one it had gets a pin it lacks, and a direct install reason when either was
136
+ * direct. A staying dependency the target newly got its own copy of gets its pin. Then freeze the
137
+ * asset when it was frozen: the last step, so a failure before it leaves nothing frozen.
138
+ */
139
+ async function carryOver(plan, targetBefore) {
140
+ const { to } = plan;
141
+ let lockfile = await readLockfile(to.root);
142
+ const pinOf = (source, placed) => source.pinnedVersion && source.version === placed.version ? { pinnedVersion: source.pinnedVersion } : {};
143
+ for (const moved of [plan.asset, ...plan.dependencies.moving]) {
144
+ const placed = findInstalledAsset(lockfile, moved.name, moved.type, moved.org);
145
+ if (!placed)
146
+ continue;
147
+ const had = findInstalledAsset(targetBefore, moved.name, moved.type, moved.org);
148
+ const direct = (moved.installReason ?? 'direct') === 'direct';
149
+ const entry = had
150
+ ? {
151
+ ...placed,
152
+ installReason: direct || (had.installReason ?? 'direct') === 'direct' ? 'direct' : 'dependency',
153
+ ...(placed.pinnedVersion ? {} : pinOf(moved, placed)),
154
+ }
155
+ : {
156
+ ...placed,
157
+ ...(moved.bundleOrigin ? { bundleOrigin: moved.bundleOrigin } : {}),
158
+ installReason: direct ? 'direct' : 'dependency',
159
+ ...pinOf(moved, placed),
160
+ };
161
+ lockfile = addAssetToLockfile(lockfile, entry);
162
+ }
163
+ for (const staying of plan.dependencies.staying) {
164
+ const placed = findInstalledAsset(lockfile, staying.name, staying.type, staying.org);
165
+ if (!placed || findInstalledAsset(targetBefore, staying.name, staying.type, staying.org))
166
+ continue;
167
+ lockfile = addAssetToLockfile(lockfile, { ...placed, ...pinOf(staying, placed) });
168
+ }
169
+ await writeLockfile(to.root, lockfile);
170
+ if (plan.frozen)
171
+ await freezeAssetInConfig(to.root, plan.asset.name, plan.asset.type, plan.asset.org);
172
+ }
173
+ /** The installed assets `asset` depends on in `lockfile`, directly or through others. */
174
+ function dependencyClosure(lockfile, asset) {
175
+ const found = new Map();
176
+ const queue = [asset];
177
+ while (queue.length > 0) {
178
+ const current = queue.shift();
179
+ for (const dependency of current.dependencies ?? []) {
180
+ const installed = findDependencyAsset(lockfile, dependency, current.org);
181
+ if (!installed || found.has(identityKey(installed)) || identityKey(installed) === identityKey(asset))
182
+ continue;
183
+ found.set(identityKey(installed), installed);
184
+ queue.push(installed);
185
+ }
186
+ }
187
+ return [...found.values()];
188
+ }
189
+ /** A version's dependency declarations, as one comparable string. */
190
+ function dependencyKey({ dependencies = [], }) {
191
+ return dependencies
192
+ .map((d) => `${d.type}:${d.name}@${d.version ?? ''}`)
193
+ .sort()
194
+ .join(',');
195
+ }
196
+ /**
197
+ * The source's entry for the requested asset: the org's (the spec's, else the lockfile's), else
198
+ * the global one, as `uninstall` finds it. A name of several types needs `--type`, and a bundle
199
+ * is refused, since a move takes one asset.
200
+ */
201
+ function findSourceAsset(source, request, from) {
202
+ const org = request.org ?? source.org;
203
+ const installed = findInstalledAssetWithFallback(source, request.name, request.type, org);
204
+ const spec = formatOrgName(request.org, request.name);
205
+ if (!installed) {
206
+ if ((source.assets ?? []).some((a) => a.bundleOrigin?.name === request.name)) {
207
+ throw new MoveError(`"${spec}" is a bundle; atk move moves one asset at a time.`, {
208
+ hint: 'Move each of its assets, or install the bundle in the other scope and uninstall it here.',
209
+ });
210
+ }
211
+ throw new MoveError(`"${spec}" is not installed in ${scopeLabel(from)}.`);
212
+ }
213
+ if (!request.type) {
214
+ const types = (source.assets ?? [])
215
+ .filter((a) => a.name === installed.name && a.org === installed.org)
216
+ .map((a) => a.type)
217
+ .sort();
218
+ if (types.length > 1) {
219
+ throw new MoveError(`"${spec}" is installed as more than one type (${types.join(', ')}). Name the one to move with --type.`);
220
+ }
221
+ }
222
+ return installed;
223
+ }
224
+ /**
225
+ * Whether any of the asset's files, or the config entries it registered, differs from what its
226
+ * lockfile entry recorded, for any tool that has it in place.
227
+ */
228
+ async function hasLocalEdits(asset, tools, root) {
229
+ for (const { adapter } of tools) {
230
+ if (!isInstalledForTool(asset, adapter, root))
231
+ continue;
232
+ const files = resolveInstalledPaths(asset, adapter, root).files.map((f) => ({
233
+ checksum: f.checksum,
234
+ path: join(root, f.installedPath),
235
+ }));
236
+ if ((await verifyChecksums(files)).some((f) => !f.actual.startsWith('FILE_NOT_FOUND')))
237
+ return true;
238
+ const entries = getConfigEntriesForTool(asset, adapter);
239
+ if ((await verifyConfigEntries(entries, root)).some((f) => f.reason === 'CONFIG_CHECKSUM_MISMATCH'))
240
+ return true;
241
+ }
242
+ return false;
243
+ }
244
+ /** Whether `config` freezes exactly this asset: its org too, so a global asset isn't an org's. */
245
+ function isFrozen(config, asset) {
246
+ return (config?.frozenAssets ?? []).some((entry) => sameIdentity(entry, asset));
247
+ }
248
+ /**
249
+ * The two scopes of a move: the project (`-P`, or the marker walk) and the user root. A project
250
+ * root that is the user root leaves no other scope to move to.
251
+ */
252
+ async function moveScopes(request) {
253
+ const project = await resolveScope({ projectRoot: request.projectRoot });
254
+ if (project.scope === 'user') {
255
+ throw new MoveError(`The project root is the user root (${project.root}), so there is no other scope to move to.`, {
256
+ hint: 'Run atk move from a project, or name one with -P <dir>.',
257
+ });
258
+ }
259
+ return { project, user: await resolveScope({ user: true }) };
260
+ }
261
+ /** The plan entry an install result is for. */
262
+ function planEntryOf(plan, result) {
263
+ return plan.entries.find(({ asset }) => asset.name === result.name && asset.type === result.type && asset.org === result.org);
264
+ }
265
+ /**
266
+ * Undo a target install whose follow-up failed, as a failed multi-tool install does: for each
267
+ * tool, the assets its pass added leave the target, and the ones it already had in place get their
268
+ * entries from before back. A pass that moved an asset it had in place to another version stays,
269
+ * since that version may need what the pass added. Best-effort.
270
+ */
271
+ async function rollBackTarget(plan, toolResults, targetBefore, onProgress) {
272
+ const { to } = plan;
273
+ try {
274
+ let lockfile = await readLockfile(to.root);
275
+ const restore = new Map();
276
+ for (let i = toolResults.length - 1; i >= 0; i--) {
277
+ const { adapter, tool } = plan.targetTools[i];
278
+ const placed = toolResults[i].results.flatMap((result) => {
279
+ const entry = planEntryOf(plan.requested, result);
280
+ if (!entry)
281
+ return [];
282
+ const before = findInstalledAsset(targetBefore, entry.asset.name, entry.asset.type, entry.asset.org);
283
+ const inPlace = before && isInstalledForTool(before, adapter, to.root) ? before : undefined;
284
+ return [{ asset: entry.asset, inPlace, result }];
285
+ });
286
+ if (placed.some(({ inPlace, result }) => inPlace && inPlace.version !== result.version)) {
287
+ onProgress?.(`Keeping the install for ${tool}: it moved an installed asset to another version.`);
288
+ continue;
289
+ }
290
+ const added = placed.filter(({ inPlace }) => !inPlace);
291
+ if (added.length > 0) {
292
+ lockfile = await rollBackInstalledAssets(added, targetBefore, lockfile, {
293
+ adapter,
294
+ onProgress,
295
+ projectDir: to.root,
296
+ });
297
+ }
298
+ for (const { inPlace } of placed)
299
+ if (inPlace)
300
+ restore.set(identityKey(inPlace), inPlace);
301
+ }
302
+ for (const before of restore.values())
303
+ lockfile = addAssetToLockfile(lockfile, before);
304
+ await writeLockfile(to.root, lockfile);
305
+ }
306
+ catch (error) {
307
+ onProgress?.(`Warning: Failed to roll back ${scopeLabel(to)} — ${errorMessage(error)}`);
308
+ }
309
+ }
310
+ /** Run a move planned under both lockfile locks (see {@link executeMove}). */
311
+ async function runMove(plan, force, onProgress) {
312
+ const { asset, from, to } = plan;
313
+ const targetBefore = await readLockfile(to.root);
314
+ const toolResults = await executeInstallPlanForTools(plan.requested, plan.targetTools, {
315
+ force,
316
+ onProgress,
317
+ onTool: (tool) => onProgress?.(`Installing in ${scopeLabel(to)} for ${tool}...`),
318
+ projectDir: to.root,
319
+ scope: to.scope,
320
+ });
321
+ try {
322
+ await carryOver(plan, targetBefore);
323
+ }
324
+ catch (error) {
325
+ await rollBackTarget(plan, toolResults, targetBefore, onProgress);
326
+ throw error;
327
+ }
328
+ let removed;
329
+ try {
330
+ onProgress?.(`Removing from ${scopeLabel(from)}...`);
331
+ const lockfile = await readLockfile(from.root);
332
+ const [first, ...others] = plan.sourceTools;
333
+ removed = await uninstallAsset(asset.name, {
334
+ adapter: first.adapter,
335
+ additionalAdapters: others.map((t) => t.adapter),
336
+ lockfile,
337
+ onProgress,
338
+ org: asset.org,
339
+ plan: planUninstall(lockfile, asset.name, asset.org, asset.type),
340
+ projectDir: from.root,
341
+ scope: from.scope,
342
+ type: asset.type,
343
+ });
344
+ }
345
+ catch (error) {
346
+ return { error, outcome: 'source-uninstall-failed', toolResults };
347
+ }
348
+ const warnings = [];
349
+ if (plan.frozen) {
350
+ try {
351
+ await thaw(from.root, asset);
352
+ }
353
+ catch (error) {
354
+ warnings.push(`Failed to remove the freeze record from ${scopeLabel(from)}: ${errorMessage(error)}`);
355
+ }
356
+ }
357
+ return { outcome: 'moved', removed, toolResults, warnings };
358
+ }
359
+ function sameIdentity(a, b) {
360
+ return a.name === b.name && a.type === b.type && a.org === b.org;
361
+ }
362
+ /** Remove exactly this asset's freeze record from the config of the scope at `root`. */
363
+ async function thaw(root, asset) {
364
+ const config = await loadScopeConfig(root);
365
+ if (!config || !isFrozen(config, asset))
366
+ return;
367
+ const frozenAssets = (config.frozenAssets ?? []).filter((entry) => !sameIdentity(entry, asset));
368
+ await saveScopeConfig(root, { ...config, frozenAssets });
369
+ }
370
+ /** `plan` without the entry of `asset`. */
371
+ function withoutEntry(plan, asset) {
372
+ const entries = plan.entries.filter((entry) => !sameIdentity(entry.asset, asset));
373
+ return { entries, totalCount: entries.length };
374
+ }
375
+ //# sourceMappingURL=mover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mover.js","sourceRoot":"","sources":["../../src/lib/mover.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export declare const UserConfigDir: z.ZodObject<{
25
25
  dir: z.ZodString;
26
26
  env: z.ZodString;
27
27
  files: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
+ keep: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ subdir: z.ZodOptional<z.ZodString>;
28
30
  }, z.core.$strip>;
29
31
  export type UserConfigDir = z.infer<typeof UserConfigDir>;
30
32
  export declare const AdapterSchema: z.ZodObject<{
@@ -64,6 +66,8 @@ export declare const AdapterSchema: z.ZodObject<{
64
66
  dir: z.ZodString;
65
67
  env: z.ZodString;
66
68
  files: z.ZodOptional<z.ZodArray<z.ZodString>>;
69
+ keep: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ subdir: z.ZodOptional<z.ZodString>;
67
71
  }, z.core.$strip>>;
68
72
  userPlacements: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
69
73
  skill: "skill";
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBA8E1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;iBAaxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAexB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBA8E1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;iBAyBxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAexB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -68,6 +68,14 @@ export const UserConfigDir = z.object({
68
68
  .array(z.string())
69
69
  .optional()
70
70
  .describe('Files at the user root that the tool keeps inside the moved directory instead (e.g. [".claude.json"] for Claude Code)'),
71
+ keep: z
72
+ .array(z.string())
73
+ .optional()
74
+ .describe('User placement paths under `dir/` that stay put while `env` is set, as path prefixes (e.g. [".copilot/hooks/"] for Copilot CLI, whose hooks always read the home directory)'),
75
+ subdir: z
76
+ .string()
77
+ .optional()
78
+ .describe('The tool’s directory inside the path `env` names, when it is not that path itself (e.g. ".copilot" for Copilot CLI’s `$XDG_CONFIG_HOME/.copilot`)'),
71
79
  });
72
80
  export const AdapterSchema = z.object({
73
81
  $schema: z.string().optional().describe('JSON Schema reference for editor validation and autocomplete'),
@@ -75,7 +83,7 @@ export const AdapterSchema = z.object({
75
83
  displayName: z.string().describe('Human-readable tool name'),
76
84
  placements: z.partialRecord(AssetType, PlacementConfig).describe('File placement rules per asset type'),
77
85
  tool: z.string().describe('Tool identifier (e.g., claude-code)'),
78
- userConfigDir: UserConfigDir.optional().describe('Where the tool’s user config directory moves to: while `env` is set, user placements under `dir/`, and the `files`, are placed in that directory instead.'),
86
+ userConfigDir: UserConfigDir.optional().describe('Where the tool’s user config directory moves to: while `env` is set, user placements under `dir/` (except the `keep` ones), and the `files`, are placed in that directory (or its `subdir`) instead.'),
79
87
  userPlacements: z
80
88
  .partialRecord(AssetType, PlacementConfig)
81
89
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@detergent-software/atk",
3
- "version": "8.7.0-dev.4",
3
+ "version": "8.7.0-dev.6",
4
4
  "description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,6 +28,10 @@
28
28
  "fileless": true
29
29
  }
30
30
  },
31
+ "userConfigDir": {
32
+ "env": "CODEX_HOME",
33
+ "dir": ".codex"
34
+ },
31
35
  "userPlacements": {
32
36
  "skill": {
33
37
  "path": ".codex/skills/{name}/",
@@ -27,6 +27,12 @@
27
27
  "configFragmentKey": "mcpServers"
28
28
  }
29
29
  },
30
+ "userConfigDir": {
31
+ "env": "XDG_CONFIG_HOME",
32
+ "dir": ".copilot",
33
+ "subdir": ".copilot",
34
+ "keep": [".copilot/hooks/"]
35
+ },
30
36
  "userPlacements": {
31
37
  "skill": {
32
38
  "path": ".copilot/skills/{name}/",