@detergent-software/atk 8.7.0-dev.5 → 8.7.0-dev.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +28 -6
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/index.d.ts.map +1 -1
  6. package/build/commands/index.js +1 -0
  7. package/build/commands/index.js.map +1 -1
  8. package/build/commands/move.d.ts +28 -0
  9. package/build/commands/move.d.ts.map +1 -0
  10. package/build/commands/move.js +180 -0
  11. package/build/commands/move.js.map +1 -0
  12. package/build/commands/schema.d.ts +1 -1
  13. package/build/commands/uninstall.js +2 -2
  14. package/build/commands/uninstall.js.map +1 -1
  15. package/build/components/StatusBadge.d.ts +1 -1
  16. package/build/components/StatusBadge.d.ts.map +1 -1
  17. package/build/components/StatusBadge.js +1 -0
  18. package/build/components/StatusBadge.js.map +1 -1
  19. package/build/components/SyncDriftedList.d.ts.map +1 -1
  20. package/build/components/SyncDriftedList.js +2 -2
  21. package/build/components/SyncDriftedList.js.map +1 -1
  22. package/build/lib/adapter.d.ts +30 -0
  23. package/build/lib/adapter.d.ts.map +1 -1
  24. package/build/lib/adapter.js +84 -18
  25. package/build/lib/adapter.js.map +1 -1
  26. package/build/lib/diff-command.js +3 -3
  27. package/build/lib/diff-command.js.map +1 -1
  28. package/build/lib/installed-for-tool.d.ts +2 -1
  29. package/build/lib/installed-for-tool.d.ts.map +1 -1
  30. package/build/lib/installed-for-tool.js +5 -2
  31. package/build/lib/installed-for-tool.js.map +1 -1
  32. package/build/lib/installer.d.ts.map +1 -1
  33. package/build/lib/installer.js +39 -6
  34. package/build/lib/installer.js.map +1 -1
  35. package/build/lib/mover.d.ts +103 -0
  36. package/build/lib/mover.d.ts.map +1 -0
  37. package/build/lib/mover.js +375 -0
  38. package/build/lib/mover.js.map +1 -0
  39. package/build/lib/owned-paths.js +4 -4
  40. package/build/lib/owned-paths.js.map +1 -1
  41. package/build/lib/schemas/adapter.d.ts +10 -1
  42. package/build/lib/schemas/adapter.d.ts.map +1 -1
  43. package/build/lib/schemas/lockfile.d.ts +2 -0
  44. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  45. package/build/lib/schemas/lockfile.js +4 -0
  46. package/build/lib/schemas/lockfile.js.map +1 -1
  47. package/build/lib/sync.d.ts +2 -1
  48. package/build/lib/sync.d.ts.map +1 -1
  49. package/build/lib/sync.js +7 -1
  50. package/build/lib/sync.js.map +1 -1
  51. package/build/lib/uninstaller.d.ts +14 -1
  52. package/build/lib/uninstaller.d.ts.map +1 -1
  53. package/build/lib/uninstaller.js +37 -13
  54. package/build/lib/uninstaller.js.map +1 -1
  55. package/build/lib/updater.js +8 -4
  56. package/build/lib/updater.js.map +1 -1
  57. package/package.json +1 -1
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
- import { resolveInstalledPaths } from './adapter.js';
3
+ import { adapterAsPlaced, resolveInstalledPaths } from './adapter.js';
4
4
  import { isExcludedForTool, supportsType } from './asset-tools.js';
5
5
  import { matchesChecksum, verifyChecksums, verifyConfigEntries } from './checksum.js';
6
6
  import { getConfigEntriesForTool } from './config-entries.js';
@@ -33,7 +33,7 @@ export function configEntriesToRemove(asset, adapter, projectDir) {
33
33
  const ownEntries = getConfigEntriesForTool(asset, adapter);
34
34
  return ownEntries.length > 0
35
35
  ? ownEntries.map((e) => ({ checksum: e.checksum, command: e.command, file: e.file, key: e.key }))
36
- : resolveInstalledPaths(asset, adapter, projectDir).configEntries;
36
+ : resolveInstalledPaths(asset, adapterAsPlaced(adapter, asset), projectDir).configEntries;
37
37
  }
38
38
  /**
39
39
  * Whether `entry`, which an asset being removed placed, now holds the value of another asset that
@@ -54,7 +54,7 @@ export async function holdsAnotherOwnersValue(entry, owners, projectDir) {
54
54
  export function pathsOwnedByOthers(lockfile, asset, adapter, projectDir) {
55
55
  const paths = new Set();
56
56
  for (const other of otherAssetsPlacedFor(lockfile, asset, adapter)) {
57
- for (const file of resolveInstalledPaths(other, adapter, projectDir).files) {
57
+ for (const file of resolveInstalledPaths(other, adapterAsPlaced(adapter, other), projectDir).files) {
58
58
  paths.add(join(projectDir, file.installedPath));
59
59
  }
60
60
  }
@@ -124,7 +124,7 @@ function configEntryKey(entry, projectDir) {
124
124
  * its files mapped to the checksums it recorded for them.
125
125
  */
126
126
  function filesPlacedByOthers(lockfile, asset, adapter, projectDir) {
127
- return otherAssetsPlacedFor(lockfile, asset, adapter).map((other) => new Map(resolveInstalledPaths(other, adapter, projectDir).files.map((file) => [
127
+ return otherAssetsPlacedFor(lockfile, asset, adapter).map((other) => new Map(resolveInstalledPaths(other, adapterAsPlaced(adapter, other), projectDir).files.map((file) => [
128
128
  join(projectDir, file.installedPath),
129
129
  file.checksum,
130
130
  ])));
@@ -1 +1 @@
1
- {"version":3,"file":"owned-paths.js","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owned-paths.js","sourceRoot":"","sources":["../../src/lib/owned-paths.ts"],"names":[],"mappings":"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"}
@@ -98,5 +98,14 @@ export declare const AdapterSchema: z.ZodObject<{
98
98
  path: z.ZodString;
99
99
  }, z.core.$strip>>>;
100
100
  }, z.core.$strip>;
101
- export type Adapter = z.infer<typeof AdapterSchema>;
101
+ export type Adapter = z.infer<typeof AdapterSchema> & {
102
+ /**
103
+ * Set by `adapterForScope` on the adapter the user scope sees, never read from a file: the user
104
+ * config directory its placements are under, as `userConfigDirs` records it in the lockfile
105
+ * (absent while `userConfigDir.env` is unset).
106
+ */
107
+ userScope?: {
108
+ movedDir?: string;
109
+ };
110
+ };
102
111
  //# sourceMappingURL=adapter.d.ts.map
@@ -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;;;;;;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"}
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,GAAG;IACpD;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC,CAAC"}
@@ -63,6 +63,7 @@ export declare const InstalledAsset: z.ZodObject<{
63
63
  "mcp-config": "mcp-config";
64
64
  }>;
65
65
  undeclaredTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ userConfigDirs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
66
67
  version: z.ZodString;
67
68
  }, z.core.$strip>;
68
69
  export type InstalledAsset = z.infer<typeof InstalledAsset>;
@@ -117,6 +118,7 @@ export declare const LockfileSchema: z.ZodObject<{
117
118
  "mcp-config": "mcp-config";
118
119
  }>;
119
120
  undeclaredTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
121
+ userConfigDirs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
120
122
  version: z.ZodString;
121
123
  }, z.core.$strip>>>;
122
124
  lockVersion: z.ZodLiteral<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;iBAgBtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkDzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;iBAgBtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwDzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -62,6 +62,10 @@ export const InstalledAsset = z.object({
62
62
  .array(z.string())
63
63
  .optional()
64
64
  .describe('The tools in excludedTools that a hook was skipped for because its manifest does not declare them, not uninstalled for. Sync and update place the hook for such a tool once its version declares it'),
65
+ userConfigDirs: z
66
+ .record(z.string(), z.string())
67
+ .optional()
68
+ .describe('User scope only: per tool adapter id, the directory its `userConfigDir.env` (e.g. CLAUDE_CONFIG_DIR) had moved the tool’s user config to when ATK placed this asset, relative to the user root (e.g. { "claude-code": "../cc" }). A tool missing here placed it in its default directory. Uninstall, sync and audit find the tool’s copy there'),
65
69
  version: z.string().describe('Installed version'),
66
70
  });
67
71
  export const LockfileSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,8 @@ export interface SyncAssetsOptions {
59
59
  }
60
60
  export interface SyncEntry {
61
61
  asset: InstalledAsset;
62
- reason: 'forced' | 'missing' | 'modified';
62
+ /** `moved`: the tool's user config directory moved since ATK placed the asset. */
63
+ reason: 'forced' | 'missing' | 'modified' | 'moved';
63
64
  result?: InstallResult;
64
65
  }
65
66
  export interface SyncFailure extends ErrorGuidance {
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
package/build/lib/sync.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { join } from 'node:path';
2
- import { resolveInstalledPaths } from './adapter.js';
2
+ import { configDirMove, resolveInstalledPaths } from './adapter.js';
3
3
  import { declarationAllows, excludeToolFromAsset, isExcludedAtVersion, isExcludedForTool, supportsType, withToolExcluded, } from './asset-tools.js';
4
4
  import { getCredential } from './auth.js';
5
5
  import { getConfigEntriesForTool, needsConfigRegistration } from './config-entries.js';
@@ -92,6 +92,12 @@ export async function classifySyncEntries(options) {
92
92
  toSync.push({ asset, reason: 'forced' });
93
93
  continue;
94
94
  }
95
+ // The tool's user config directory moved since ATK placed the asset: reinstall it where the tool
96
+ // reads it now (removing it from the old directory first).
97
+ if (configDirMove(adapter, asset)) {
98
+ toSync.push({ asset, reason: 'moved' });
99
+ continue;
100
+ }
95
101
  const resolved = resolveInstalledPaths(asset, adapter, projectDir);
96
102
  const filesToCheck = resolved.files.map((f) => ({
97
103
  checksum: f.checksum,