@detergent-software/atk 8.1.2-dev.35 → 8.1.2-dev.37

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.
@@ -4,13 +4,15 @@ import { dirname, join } from 'node:path';
4
4
  import { getPlacement, isEntrypoint, resolveInstalledPaths } from './adapter.js';
5
5
  import { carryExcludedTools, isExcludedForTool } from './asset-tools.js';
6
6
  import { computeConfigEntryChecksum, computeHookGroupChecksum, hashBytes } from './checksum.js';
7
- import { getConfigEntriesForTool, mergeConfigEntriesForTool } from './config-entries.js';
8
- import { detectConfigFormat, normalizeForFormat, readConfigFile, resolveConfigFormat, writeConfigFile, } from './config-file.js';
7
+ import { getConfigEntriesForTool, getOtherToolsConfigEntries, mergeConfigEntriesForTool, normalizeConfigPath, } from './config-entries.js';
8
+ import { normalizeForFormat, readConfigFile, resolveConfigFormat, writeConfigFile, } from './config-file.js';
9
+ import { addToEnabledList, removeFromEnabledList } from './enabled-list.js';
9
10
  import { ApiCodeError, errorGuidance, errorMessage } from './errors.js';
10
11
  import { ensureGitignoreEntries } from './gitignore.js';
11
12
  import { buildHookGroup, deriveHookCommand, hookGroupOwnsCommand, removeHookGroup } from './hook-config.js';
12
13
  import { hookScriptPath, makeExecutable } from './hook-script.js';
13
- import { addAssetToLockfile, readLockfile, removeAssetFromLockfile, writeLockfile, } from './lockfile.js';
14
+ import { isInstalledForTool } from './installed-for-tool.js';
15
+ import { addAssetToLockfile, findInstalledAsset, readLockfile, removeAssetFromLockfile, writeLockfile, } from './lockfile.js';
14
16
  import { formatOrgName } from './org.js';
15
17
  import { configEntriesOwnedByOthers, holdsAnotherOwnersValue, pathsOwnedByOthers } from './owned-paths.js';
16
18
  import { toRelativePosix } from './paths.js';
@@ -48,12 +50,15 @@ export class FileConflictError extends InstallerError {
48
50
  export class InstallPlanError extends InstallerError {
49
51
  asset;
50
52
  cause;
53
+ /** The plan kept what it installed before `asset`, because it moved an installed asset to another version. */
54
+ keptInstall;
51
55
  name = 'InstallPlanError';
52
- constructor(asset, cause, rolledBack) {
56
+ constructor(asset, cause, rolledBack, keptInstall = false) {
53
57
  const rollback = rolledBack > 0 ? ` and ${rolledBack} previously installed asset(s) were rolled back` : '';
54
58
  super(`Install failed at asset "${formatOrgName(asset.org, asset.name)}"${rollback}: ${errorMessage(cause)}`, errorGuidance(cause));
55
59
  this.asset = asset;
56
60
  this.cause = cause;
61
+ this.keptInstall = keptInstall;
57
62
  }
58
63
  }
59
64
  /** A plan whose files for `asset` could not be downloaded; nothing was written. */
@@ -84,8 +89,12 @@ export function assertInstalledByAnyTool(plan, toolResults) {
84
89
  /**
85
90
  * Execute a full install plan — install all assets in order.
86
91
  * On partial failure, deletes the files the failing asset wrote where no file was before placing
87
- * its files failed, and rolls back previously installed assets (deletes placed files, reverts config entries, removes
88
- * lockfile entries) so the system is not left in an inconsistent state.
92
+ * its files failed, and rolls back the assets the plan added before it (deletes placed files,
93
+ * reverts config entries, removes lockfile entries) so the system is not left in an inconsistent
94
+ * state. An asset the tool already had in place keeps what the plan placed, since rolling it back
95
+ * would delete its working copy, and gets its lockfile entry back. When the plan moved such an
96
+ * asset to another version, which may need the assets the plan added, nothing is rolled back
97
+ * ({@link InstallPlanError.keptInstall}).
89
98
  */
90
99
  export async function executeInstallPlan(plan, options) {
91
100
  const results = [];
@@ -103,6 +112,8 @@ export async function executeInstallPlan(plan, options) {
103
112
  const managedPaths = buildManagedPaths(options.managedFrom ?? lockfile, options.projectDir, options.adapter);
104
113
  // ...and each block or keyed config entry to the assets that wrote it
105
114
  const managedEntries = buildManagedEntries(options.managedFrom ?? lockfile, options.projectDir, options.adapter);
115
+ // ...and each keyed config entry of other tools to its owners, who may share it for this tool
116
+ const ownersElsewhere = buildEntryOwnersElsewhere(options.managedFrom ?? lockfile, options.adapter);
106
117
  // In multi-tool projects the same plan runs once per tool. A tool that has no
107
118
  // placement for an asset type (e.g. Codex CLI has no `rule` placement) skips
108
119
  // those entries instead of aborting the whole run for that tool. When the tool
@@ -117,12 +128,20 @@ export async function executeInstallPlan(plan, options) {
117
128
  if (supportedEntries.length === 0 && plan.entries.length > 0 && !options.skipUnsupported) {
118
129
  throw new InstallerError(`Tool "${options.adapter.tool}" does not support asset type "${plan.entries[0].asset.type}"`);
119
130
  }
131
+ // The assets this tool had in place before the plan, by plan entry, which a failure keeps.
132
+ const installedBefore = options.installedBefore ?? options.managedFrom ?? lockfile;
133
+ const inPlace = new Map();
134
+ for (const entry of supportedEntries) {
135
+ const installed = findInstalledAsset(installedBefore, entry.asset.name, entry.asset.type, entry.asset.org);
136
+ if (installed && isInstalledForTool(installed, options.adapter, options.projectDir))
137
+ inPlace.set(entry, installed);
138
+ }
120
139
  // The files the asset being placed wrote where no file was, which a failure removes.
121
140
  let created = [];
122
141
  try {
123
142
  for (const entry of supportedEntries) {
124
143
  created = [];
125
- const { lockfile: updatedLockfile, result, sharedEntries, } = await installAsset(entry, options, managedPaths, managedEntries, lockfile, created);
144
+ const { lockfile: updatedLockfile, result, sharedEntries, } = await installAsset(entry, options, managedPaths, managedEntries, ownersElsewhere, lockfile, created);
126
145
  results.push(result);
127
146
  // A later entry of this plan may land on these files or entries, and must see whose they are.
128
147
  for (const file of result.filesPlaced)
@@ -144,15 +163,41 @@ export async function executeInstallPlan(plan, options) {
144
163
  options.onProgress?.(`Warning: Failed to delete file during rollback: ${path} — ${errorMessage(error)}`);
145
164
  }
146
165
  }
147
- // Roll back all successfully installed assets in reverse order
148
- if (results.length > 0) {
149
- options.onProgress?.(`Install failed, rolling back ${results.length} installed asset(s)...`);
150
- await rollBackInstalledAssets(results.map((result, i) => ({ asset: supportedEntries[i].asset, result })), initialLockfile, lockfile, options);
151
- options.onProgress?.(`Rollback complete.`);
152
- }
153
166
  // Re-throw the original error with rollback context, keeping any API error code and
154
167
  // recovery hint/command (e.g. from an API auth failure).
155
- throw new InstallPlanError(supportedEntries[results.length].asset, error, results.length);
168
+ const failed = supportedEntries[results.length].asset;
169
+ const placed = results.map((result, i) => ({
170
+ asset: supportedEntries[i].asset,
171
+ entry: supportedEntries[i],
172
+ result,
173
+ }));
174
+ if (placed.some(({ entry }) => inPlace.has(entry) && inPlace.get(entry).version !== entry.version)) {
175
+ options.onProgress?.(`Keeping the install for ${options.adapter.tool}: it moved an installed asset to another version.`);
176
+ throw new InstallPlanError(failed, error, 0, true);
177
+ }
178
+ // Roll back the assets the plan added, in reverse order
179
+ const added = placed.filter(({ entry }) => !inPlace.has(entry));
180
+ if (added.length > 0) {
181
+ options.onProgress?.(`Install failed, rolling back ${added.length} installed asset(s)...`);
182
+ lockfile = await rollBackInstalledAssets(added, initialLockfile, lockfile, options);
183
+ options.onProgress?.(`Rollback complete.`);
184
+ }
185
+ // The assets that were in place keep their files, of the same version, and get their entries back.
186
+ const kept = placed.filter(({ entry }) => inPlace.has(entry));
187
+ if (kept.length > 0) {
188
+ try {
189
+ for (const { asset } of kept) {
190
+ const previous = findInstalledAsset(initialLockfile, asset.name, asset.type, asset.org);
191
+ if (previous)
192
+ lockfile = addAssetToLockfile(lockfile, previous);
193
+ }
194
+ await writeLockfile(options.projectDir, lockfile);
195
+ }
196
+ catch (error) {
197
+ options.onProgress?.(`Warning: Failed to restore lockfile entries during rollback — ${errorMessage(error)}`);
198
+ }
199
+ }
200
+ throw new InstallPlanError(failed, error, added.length);
156
201
  }
157
202
  return results;
158
203
  }
@@ -193,9 +238,10 @@ export function placeableEntries(plan, adapter) {
193
238
  }
194
239
  /**
195
240
  * Undo the installs of `installed` for the adapter's tool, in reverse order (best-effort): delete
196
- * their placed files, revert their config entries and give each asset its lockfile entry from
197
- * `before`, or remove it. A file or config entry an asset of `before` also owns is kept. Returns
198
- * `lockfile` with the entries reverted, as written.
241
+ * their placed files, revert their config entries (deleting a config file they created once it is
242
+ * empty), take the names they added out of an enabled list, and give each asset its lockfile entry
243
+ * from `before`, or remove it. A file or config entry an asset of `before` also owns is kept.
244
+ * Returns `lockfile` with the entries reverted, as written.
199
245
  */
200
246
  export async function rollBackInstalledAssets(installed, before, lockfile, options) {
201
247
  for (const { asset: rolledBack, result } of installed.toReversed()) {
@@ -217,19 +263,31 @@ export async function rollBackInstalledAssets(installed, before, lockfile, optio
217
263
  }
218
264
  // Revert config file entries (best-effort), except one holding the value of an asset from
219
265
  // before this plan that also owns it
266
+ const placement = getPlacement(options.adapter, result.type);
220
267
  const entriesOwnedByOthers = configEntriesOwnedByOthers(before, rolledBack, options.adapter, options.projectDir);
268
+ const kept = new Set();
221
269
  for (const entry of result.configEntriesCreated) {
222
270
  try {
223
- if (await holdsAnotherOwnersValue(entry, entriesOwnedByOthers, options.projectDir))
271
+ if (await holdsAnotherOwnersValue(entry, entriesOwnedByOthers, options.projectDir)) {
272
+ kept.add(entry.key);
224
273
  continue;
274
+ }
225
275
  const configPath = join(options.projectDir, entry.file);
226
- const format = resolveConfigFormat(configPath, getPlacement(options.adapter, result.type));
227
- await revertConfigEntry(configPath, entry.key, entry.command, format, options.onProgress);
276
+ const format = resolveConfigFormat(configPath, placement);
277
+ const created = result.configFilesCreated?.includes(entry.file) ?? false;
278
+ await revertConfigEntry(configPath, entry.key, entry.command, format, created, options.onProgress);
228
279
  }
229
280
  catch (error) {
230
281
  options.onProgress?.(`Warning: Failed to revert config entry ${entry.key} during rollback — ${errorMessage(error)}`);
231
282
  }
232
283
  }
284
+ // Take the names the install added out of the enabled list again, except one whose entry was
285
+ // kept for its other owner (as uninstall does)
286
+ const { configKey, enabledListFile, enabledListKey } = placement ?? {};
287
+ const names = (result.enabledListAdded ?? []).filter((name) => !kept.has(`${configKey}.${name}`));
288
+ if (enabledListFile && enabledListKey && names.length > 0) {
289
+ await removeFromEnabledList(join(options.projectDir, enabledListFile), enabledListKey, names, result.configFilesCreated?.includes(enabledListFile) ?? false, options.onProgress);
290
+ }
233
291
  // Revert the lockfile entry using the in-memory lockfile (best-effort). An asset that
234
292
  // was already recorded before this plan ran (a sync/update reinstall, or a second
235
293
  // tool's pass in a multi-tool install) gets its previous entry back, so other tools'
@@ -258,41 +316,25 @@ function addOwner(owned, key, owner) {
258
316
  }
259
317
  }
260
318
  /**
261
- * Append entry names to a string-array key in a config file (e.g., `enabledMcpjsonServers`
262
- * in `.claude/settings.local.json`), creating the file/array as needed and de-duplicating.
263
- * Used to auto-approve installed MCP servers so the tool doesn't prompt on open.
319
+ * Map each name of a keyed config entry other tools have to the owners of each such entry: the
320
+ * assets that recorded it for one other tool, in one file. Assets the adapter's tool can't hold
321
+ * are left out, as in {@link buildManagedEntries}.
264
322
  */
265
- async function addToEnabledList(enabledListFilePath, enabledListKey, names, onProgress) {
266
- try {
267
- const format = detectConfigFormat(enabledListFilePath);
268
- let config = {};
269
- if (existsSync(enabledListFilePath)) {
270
- config = await readConfigFile(enabledListFilePath, format);
271
- }
272
- else {
273
- const dir = dirname(enabledListFilePath);
274
- if (!existsSync(dir)) {
275
- await mkdir(dir, { recursive: true });
276
- }
277
- }
278
- const existing = Array.isArray(config[enabledListKey]) ? config[enabledListKey] : [];
279
- const list = existing.filter((v) => typeof v === 'string');
280
- let changed = !Array.isArray(config[enabledListKey]);
281
- for (const name of names) {
282
- if (!list.includes(name)) {
283
- list.push(name);
284
- changed = true;
285
- }
286
- }
287
- if (changed) {
288
- config[enabledListKey] = list;
289
- await writeConfigFile(enabledListFilePath, config, format, onProgress);
323
+ function buildEntryOwnersElsewhere(lockfile, adapter) {
324
+ const byName = new Map();
325
+ for (const asset of lockfile.assets ?? []) {
326
+ if (isExcludedForTool(asset, adapter.tool) || !getPlacement(adapter, asset.type))
327
+ continue;
328
+ for (const entry of getOtherToolsConfigEntries(asset, adapter)) {
329
+ const name = configEntryName(entry.key);
330
+ if (entry.command !== undefined || name === undefined)
331
+ continue;
332
+ const byFile = byName.get(name) ?? new Map();
333
+ byName.set(name, byFile);
334
+ addOwner(byFile, sharedEntryKey({ file: normalizeConfigPath(entry.file), key: entry.key }), asset);
290
335
  }
291
336
  }
292
- catch (error) {
293
- // Non-fatal — log but don't fail the install
294
- onProgress?.(`Warning: Failed to update enabled list ${enabledListFilePath} — ${errorMessage(error)}`);
295
- }
337
+ return new Map([...byName].map(([name, byFile]) => [name, [...byFile.values()]]));
296
338
  }
297
339
  /**
298
340
  * Map each memory-template block and keyed config entry the given lockfile's assets wrote for the
@@ -335,13 +377,20 @@ function buildManagedPaths(lockfile, projectDir, adapter) {
335
377
  }
336
378
  /**
337
379
  * Throw a FileConflictError if another installed asset wrote `entry` and `asset` didn't. An entry
338
- * no installed asset wrote is left to the merge, as before.
380
+ * no installed asset wrote is left to the merge, as before. An asset that recorded the entry of
381
+ * that name for another tool together with all of its owners here (a forced install, or one from
382
+ * before installs refused a shared entry) shares it here too: otherwise the first of them to sync
383
+ * a newly added tool would lock the others out of it.
339
384
  */
340
- function checkEntryConflict(entry, managedEntries, asset) {
385
+ function checkEntryConflict(entry, managedEntries, ownersElsewhere, asset) {
341
386
  const owners = managedEntries.get(sharedEntryKey(entry));
342
387
  if (!owners || isOwner(owners, asset)) {
343
388
  return;
344
389
  }
390
+ const sharedElsewhere = (entry.entry ? ownersElsewhere.get(entry.entry.name) : undefined)?.some((coOwners) => isOwner(coOwners, asset) && owners.every((owner) => isOwner(coOwners, owner)));
391
+ if (sharedElsewhere) {
392
+ return;
393
+ }
345
394
  throw new FileConflictError(entry.file, owners[0], entry.label);
346
395
  }
347
396
  /**
@@ -377,6 +426,11 @@ async function checkUserEntryConflict(entry, managedEntries, format) {
377
426
  }
378
427
  throw new FileConflictError(entry.file, undefined, entry.label);
379
428
  }
429
+ /** The name a keyed config entry has in its section: `neon` for `mcpServers.neon`. */
430
+ function configEntryName(key) {
431
+ const dotIndex = key.indexOf('.');
432
+ return dotIndex === -1 ? undefined : key.slice(dotIndex + 1);
433
+ }
380
434
  /**
381
435
  * Fetch all files for an asset version from the ATK API, plus its
382
436
  * manifest-declared entrypoint. Lists the version directory and downloads
@@ -447,7 +501,7 @@ function fragmentEntries(content, configKey, fragmentKey) {
447
501
  * before the write), so a caller can remove them when placing fails partway. It is emptied once
448
502
  * every file is placed.
449
503
  */
450
- async function installAsset(entry, options, managedPaths, managedEntries, lockfile, created) {
504
+ async function installAsset(entry, options, managedPaths, managedEntries, ownersElsewhere, lockfile, created) {
451
505
  const { asset } = entry;
452
506
  const { adapter, force, onProgress, pin, projectDir } = options;
453
507
  onProgress?.(`Installing ${asset.name}...`);
@@ -488,7 +542,7 @@ async function installAsset(entry, options, managedPaths, managedEntries, lockfi
488
542
  const sharedEntries = plannedSharedEntries(asset.name, asset.type, placement, basePath, mergeContent);
489
543
  if (!force) {
490
544
  for (const shared of sharedEntries) {
491
- checkEntryConflict(shared, managedEntries, asset);
545
+ checkEntryConflict(shared, managedEntries, ownersElsewhere, asset);
492
546
  await checkUserEntryConflict(shared, managedEntries, configFormat);
493
547
  }
494
548
  }
@@ -595,6 +649,13 @@ async function installAsset(entry, options, managedPaths, managedEntries, lockfi
595
649
  // Every file is placed, and the config entries below can point at them (a hook runs its script),
596
650
  // so a failure from here on leaves them in place.
597
651
  created.length = 0;
652
+ // The config files the writes below can create, which a rollback then removes once empty.
653
+ const absentConfigFiles = [placement.configFile, placement.enabledListFile]
654
+ .filter((file) => !!file)
655
+ .map((file) => join(basePath, file))
656
+ .filter((path) => !existsSync(path));
657
+ // The names the install adds to the placement's enabled list, which a rollback takes out again.
658
+ let enabledListAdded = [];
598
659
  // Handle config file updates if needed.
599
660
  if (placement.configFile && placement.configKey && placement.configHookMerge) {
600
661
  // Hook placement: merge the asset's hookConfig event bindings into the tool
@@ -615,7 +676,7 @@ async function installAsset(entry, options, managedPaths, managedEntries, lockfi
615
676
  // Auto-register the merged entry names into an enabled-list (e.g. enabledMcpjsonServers
616
677
  // in settings.local.json) so the tool auto-approves them.
617
678
  if (names.length > 0 && placement.enabledListFile && placement.enabledListKey) {
618
- await addToEnabledList(join(basePath, placement.enabledListFile), placement.enabledListKey, names, onProgress);
679
+ enabledListAdded = await addToEnabledList(join(basePath, placement.enabledListFile), placement.enabledListKey, names, onProgress);
619
680
  }
620
681
  }
621
682
  else {
@@ -626,6 +687,9 @@ async function installAsset(entry, options, managedPaths, managedEntries, lockfi
626
687
  }
627
688
  }
628
689
  written.push(...sharedEntries.filter((shared) => configEntries.some((c) => !c.command && c.key === shared.key)));
690
+ const configFilesCreated = absentConfigFiles
691
+ .filter((path) => existsSync(path))
692
+ .map((path) => toRelativePosix(projectDir, path));
629
693
  // Config entries are tool-specific but the lockfile is shared across tools: tag this
630
694
  // tool's entries and carry over whatever other tools already registered for this asset,
631
695
  // so a multi-tool install/sync/update never drops another tool's registration record.
@@ -664,6 +728,8 @@ async function installAsset(entry, options, managedPaths, managedEntries, lockfi
664
728
  result: {
665
729
  ...(options.bundleOrigin ? { bundleOrigin: options.bundleOrigin } : {}),
666
730
  configEntriesCreated: configEntries,
731
+ ...(configFilesCreated.length > 0 ? { configFilesCreated } : {}),
732
+ ...(enabledListAdded.length > 0 ? { enabledListAdded } : {}),
667
733
  filesPlaced,
668
734
  installReason: entry.reason,
669
735
  name: asset.name,
@@ -853,9 +919,10 @@ function resolveFilePath(pathTemplate, assetName, basePath, relativePath, assetT
853
919
  /**
854
920
  * Revert a config file entry created during installation.
855
921
  * Reads the config file, removes the entry at the given key path (e.g., "mcpServers.my-mcp"),
856
- * and writes it back. If the parent section becomes empty, it is also removed.
922
+ * and writes it back. If the parent section becomes empty, it is also removed. A file the
923
+ * install created (`deleteWhenEmpty`) is deleted instead once nothing is left in it.
857
924
  */
858
- async function revertConfigEntry(configFilePath, keyPath, command, format, onProgress) {
925
+ async function revertConfigEntry(configFilePath, keyPath, command, format, deleteWhenEmpty, onProgress) {
859
926
  if (!existsSync(configFilePath)) {
860
927
  return;
861
928
  }
@@ -885,6 +952,10 @@ async function revertConfigEntry(configFilePath, keyPath, command, format, onPro
885
952
  delete config[sectionKey];
886
953
  }
887
954
  }
955
+ if (deleteWhenEmpty && Object.keys(config).length === 0) {
956
+ await unlink(configFilePath);
957
+ return;
958
+ }
888
959
  await writeConfigFile(configFilePath, config, format, onProgress);
889
960
  }
890
961
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { InstallPlan } from './resolver.js';
2
2
  import type { Adapter } from './schemas/adapter.js';
3
- import type { InstalledAsset } from './schemas/lockfile.js';
4
3
  import { type InstallOptions, type InstallResult } from './installer.js';
5
4
  export interface ToolInstallResult {
6
5
  results: InstallResult[];
@@ -12,7 +11,8 @@ export interface ToolInstallResult {
12
11
  * leave it, and the lockfile gets their entries from before the command back. An asset that was
13
12
  * already in place for a tool keeps what that tool's pass placed, because rolling it back would
14
13
  * delete its working copy (see {@link rollBackInstalledAssets}). When a pass moved such an asset
15
- * to another version, the whole pass stays, since that version may need the assets it added.
14
+ * to another version, the whole pass stays, since that version may need the assets it added; when
15
+ * the failing pass kept itself that way ({@link InstallPlanError.keptInstall}), every pass stays.
16
16
  */
17
17
  export declare function executeInstallPlanForTools(plan: InstallPlan, tools: Array<{
18
18
  adapter: Adapter;
@@ -20,9 +20,4 @@ export declare function executeInstallPlanForTools(plan: InstallPlan, tools: Arr
20
20
  }>, options: Omit<InstallOptions, 'adapter' | 'skipUnsupported'> & {
21
21
  onTool?: (tool: string) => void;
22
22
  }): Promise<ToolInstallResult[]>;
23
- /**
24
- * Whether a lockfile asset is in place for one tool: not uninstalled for it (`excludedTools`),
25
- * its files are on disk, and the tool's config registration was recorded.
26
- */
27
- export declare function isInstalledForTool(installed: InstalledAsset, adapter: Adapter, projectDir: string): boolean;
28
23
  //# sourceMappingURL=multi-tool-install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,uBAAuB,CAAC;AAMtE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACjG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuD9B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAK3G"}
1
+ {"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAKpD,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,iBAAiB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACjG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0D9B"}
@@ -1,17 +1,15 @@
1
- import { join } from 'node:path';
2
- import { resolveInstalledPaths } from './adapter.js';
3
- import { isExcludedForTool } from './asset-tools.js';
4
- import { needsConfigRegistration } from './config-entries.js';
5
1
  import { errorMessage } from './errors.js';
6
- import { assertInstalledByAnyTool, executeInstallPlan, placeableEntries, rollBackInstalledAssets, } from './installer.js';
7
- import { areAssetFilesIntact, findInstalledAsset, readLockfile } from './lockfile.js';
2
+ import { isInstalledForTool } from './installed-for-tool.js';
3
+ import { assertInstalledByAnyTool, executeInstallPlan, InstallPlanError, placeableEntries, rollBackInstalledAssets, } from './installer.js';
4
+ import { findInstalledAsset, readLockfile } from './lockfile.js';
8
5
  /**
9
6
  * Install `plan` once per tool, as `atk install` and `atk browse` do. A failure in any tool's pass
10
7
  * undoes the earlier tools' passes too, then rethrows: the assets the command added for a tool
11
8
  * leave it, and the lockfile gets their entries from before the command back. An asset that was
12
9
  * already in place for a tool keeps what that tool's pass placed, because rolling it back would
13
10
  * delete its working copy (see {@link rollBackInstalledAssets}). When a pass moved such an asset
14
- * to another version, the whole pass stays, since that version may need the assets it added.
11
+ * to another version, the whole pass stays, since that version may need the assets it added; when
12
+ * the failing pass kept itself that way ({@link InstallPlanError.keptInstall}), every pass stays.
15
13
  */
16
14
  export async function executeInstallPlanForTools(plan, tools, options) {
17
15
  const { onTool, ...installOptions } = options;
@@ -33,6 +31,7 @@ export async function executeInstallPlanForTools(plan, tools, options) {
33
31
  const results = await executeInstallPlan(plan, {
34
32
  ...installOptions,
35
33
  adapter,
34
+ installedBefore: before,
36
35
  skipUnsupported: tools.length > 1,
37
36
  });
38
37
  toolResults.push({ results, tool });
@@ -41,6 +40,9 @@ export async function executeInstallPlanForTools(plan, tools, options) {
41
40
  assertInstalledByAnyTool(plan, toolResults);
42
41
  }
43
42
  catch (error) {
43
+ // The failing tool kept its pass, whose lockfile entries the other passes' rollback would undo.
44
+ if (error instanceof InstallPlanError && error.keptInstall)
45
+ throw error;
44
46
  try {
45
47
  let lockfile;
46
48
  for (let i = toolResults.length - 1; i >= 0; i--) {
@@ -73,16 +75,4 @@ export async function executeInstallPlanForTools(plan, tools, options) {
73
75
  }
74
76
  return toolResults;
75
77
  }
76
- /**
77
- * Whether a lockfile asset is in place for one tool: not uninstalled for it (`excludedTools`),
78
- * its files are on disk, and the tool's config registration was recorded.
79
- */
80
- export function isInstalledForTool(installed, adapter, projectDir) {
81
- if (isExcludedForTool(installed, adapter.tool))
82
- return false;
83
- if (needsConfigRegistration(installed, adapter))
84
- return false;
85
- const resolved = resolveInstalledPaths(installed, adapter, projectDir);
86
- return areAssetFilesIntact(resolved.files.map((f) => join(projectDir, f.installedPath)));
87
- }
88
78
  //# sourceMappingURL=multi-tool-install.js.map