@detergent-software/atk 9.2.0-dev.1 → 9.2.0-dev.10

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 (136) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/README.md +32 -15
  3. package/build/command-manifest.json +81 -5
  4. package/build/commands/browse.d.ts.map +1 -1
  5. package/build/commands/browse.js +119 -16
  6. package/build/commands/browse.js.map +1 -1
  7. package/build/commands/diff.d.ts +4 -2
  8. package/build/commands/diff.d.ts.map +1 -1
  9. package/build/commands/diff.js +86 -13
  10. package/build/commands/diff.js.map +1 -1
  11. package/build/commands/drift.d.ts +2 -1
  12. package/build/commands/drift.d.ts.map +1 -1
  13. package/build/commands/drift.js +8 -3
  14. package/build/commands/drift.js.map +1 -1
  15. package/build/commands/freeze.d.ts +2 -2
  16. package/build/commands/freeze.d.ts.map +1 -1
  17. package/build/commands/freeze.js +45 -22
  18. package/build/commands/freeze.js.map +1 -1
  19. package/build/commands/info.d.ts.map +1 -1
  20. package/build/commands/info.js +18 -2
  21. package/build/commands/info.js.map +1 -1
  22. package/build/commands/install.d.ts +2 -2
  23. package/build/commands/install.d.ts.map +1 -1
  24. package/build/commands/install.js +285 -58
  25. package/build/commands/install.js.map +1 -1
  26. package/build/commands/outdated.d.ts +2 -1
  27. package/build/commands/outdated.d.ts.map +1 -1
  28. package/build/commands/outdated.js +11 -1
  29. package/build/commands/outdated.js.map +1 -1
  30. package/build/commands/pin.d.ts +2 -2
  31. package/build/commands/pin.d.ts.map +1 -1
  32. package/build/commands/pin.js +77 -46
  33. package/build/commands/pin.js.map +1 -1
  34. package/build/commands/schema.d.ts +1 -1
  35. package/build/commands/sync.d.ts +14 -2
  36. package/build/commands/sync.d.ts.map +1 -1
  37. package/build/commands/sync.js +86 -17
  38. package/build/commands/sync.js.map +1 -1
  39. package/build/commands/thaw.d.ts +2 -2
  40. package/build/commands/thaw.d.ts.map +1 -1
  41. package/build/commands/thaw.js +44 -21
  42. package/build/commands/thaw.js.map +1 -1
  43. package/build/commands/uninstall.d.ts +2 -2
  44. package/build/commands/uninstall.d.ts.map +1 -1
  45. package/build/commands/uninstall.js +35 -11
  46. package/build/commands/uninstall.js.map +1 -1
  47. package/build/commands/unpin.d.ts +2 -2
  48. package/build/commands/unpin.d.ts.map +1 -1
  49. package/build/commands/unpin.js +54 -25
  50. package/build/commands/unpin.js.map +1 -1
  51. package/build/commands/update.d.ts +3 -2
  52. package/build/commands/update.d.ts.map +1 -1
  53. package/build/commands/update.js +270 -74
  54. package/build/commands/update.js.map +1 -1
  55. package/build/components/BrowseList.d.ts +3 -1
  56. package/build/components/BrowseList.d.ts.map +1 -1
  57. package/build/components/BrowseList.js +12 -6
  58. package/build/components/BrowseList.js.map +1 -1
  59. package/build/components/BundleDetail.d.ts +3 -1
  60. package/build/components/BundleDetail.d.ts.map +1 -1
  61. package/build/components/BundleDetail.js +4 -2
  62. package/build/components/BundleDetail.js.map +1 -1
  63. package/build/components/DiffView.d.ts +34 -5
  64. package/build/components/DiffView.d.ts.map +1 -1
  65. package/build/components/DiffView.js +47 -8
  66. package/build/components/DiffView.js.map +1 -1
  67. package/build/components/Field.js +1 -1
  68. package/build/components/Field.js.map +1 -1
  69. package/build/components/HelpBar.d.ts +5 -1
  70. package/build/components/HelpBar.d.ts.map +1 -1
  71. package/build/components/HelpBar.js +18 -4
  72. package/build/components/HelpBar.js.map +1 -1
  73. package/build/components/InstallConfirmBar.d.ts +4 -2
  74. package/build/components/InstallConfirmBar.d.ts.map +1 -1
  75. package/build/components/InstallConfirmBar.js +15 -2
  76. package/build/components/InstallConfirmBar.js.map +1 -1
  77. package/build/components/index.d.ts +1 -1
  78. package/build/components/index.d.ts.map +1 -1
  79. package/build/components/index.js +1 -1
  80. package/build/components/index.js.map +1 -1
  81. package/build/hooks/useBrowseState.d.ts +31 -1
  82. package/build/hooks/useBrowseState.d.ts.map +1 -1
  83. package/build/hooks/useBrowseState.js +99 -15
  84. package/build/hooks/useBrowseState.js.map +1 -1
  85. package/build/hooks/useUninstallState.d.ts +22 -2
  86. package/build/hooks/useUninstallState.d.ts.map +1 -1
  87. package/build/hooks/useUninstallState.js +161 -16
  88. package/build/hooks/useUninstallState.js.map +1 -1
  89. package/build/lib/atk-api/generated/types.gen.d.ts +8 -8
  90. package/build/lib/atk-schemas/claude-plugin.d.ts +56 -0
  91. package/build/lib/atk-schemas/claude-plugin.d.ts.map +1 -0
  92. package/build/lib/atk-schemas/claude-plugin.js +199 -0
  93. package/build/lib/atk-schemas/claude-plugin.js.map +1 -0
  94. package/build/lib/atk-schemas/index.d.ts +3 -0
  95. package/build/lib/atk-schemas/index.d.ts.map +1 -1
  96. package/build/lib/atk-schemas/index.js +3 -0
  97. package/build/lib/atk-schemas/index.js.map +1 -1
  98. package/build/lib/config.d.ts +18 -0
  99. package/build/lib/config.d.ts.map +1 -1
  100. package/build/lib/config.js +32 -9
  101. package/build/lib/config.js.map +1 -1
  102. package/build/lib/diff-command.d.ts +43 -3
  103. package/build/lib/diff-command.d.ts.map +1 -1
  104. package/build/lib/diff-command.js +93 -15
  105. package/build/lib/diff-command.js.map +1 -1
  106. package/build/lib/format.d.ts +5 -0
  107. package/build/lib/format.d.ts.map +1 -1
  108. package/build/lib/format.js +7 -0
  109. package/build/lib/format.js.map +1 -1
  110. package/build/lib/install-targets.d.ts +90 -0
  111. package/build/lib/install-targets.d.ts.map +1 -0
  112. package/build/lib/install-targets.js +146 -0
  113. package/build/lib/install-targets.js.map +1 -0
  114. package/build/lib/installer.js +3 -2
  115. package/build/lib/installer.js.map +1 -1
  116. package/build/lib/named-entry.d.ts +24 -0
  117. package/build/lib/named-entry.d.ts.map +1 -0
  118. package/build/lib/named-entry.js +33 -0
  119. package/build/lib/named-entry.js.map +1 -0
  120. package/build/lib/resolver.d.ts +35 -0
  121. package/build/lib/resolver.d.ts.map +1 -1
  122. package/build/lib/resolver.js +65 -21
  123. package/build/lib/resolver.js.map +1 -1
  124. package/build/lib/sync.d.ts +9 -0
  125. package/build/lib/sync.d.ts.map +1 -1
  126. package/build/lib/sync.js +13 -8
  127. package/build/lib/sync.js.map +1 -1
  128. package/build/lib/uninstaller.d.ts +51 -3
  129. package/build/lib/uninstaller.d.ts.map +1 -1
  130. package/build/lib/uninstaller.js +134 -39
  131. package/build/lib/uninstaller.js.map +1 -1
  132. package/build/lib/updater.d.ts +6 -7
  133. package/build/lib/updater.d.ts.map +1 -1
  134. package/build/lib/updater.js +23 -33
  135. package/build/lib/updater.js.map +1 -1
  136. package/package.json +1 -1
package/build/lib/sync.js CHANGED
@@ -9,7 +9,7 @@ import { restoreFiles, snapshotFiles } from './file-snapshot.js';
9
9
  import { hookScriptPath, lacksExecBit } from './hook-script.js';
10
10
  import { executeInstallPlan, fetchPlanFiles, installFailureMessage } from './installer.js';
11
11
  import { changedAmong, editedFiles, localEditsAmong } from './local-edits.js';
12
- import { addAssetToLockfile, getLockfilePath, LockfileError, readLockfile, removeAssetFromLockfile, withLockfileErrorHandling, writeLockfile, } from './lockfile.js';
12
+ import { addAssetToLockfile, getLockfilePath, identityKey, LockfileError, readLockfile, removeAssetFromLockfile, withLockfileErrorHandling, writeLockfile, } from './lockfile.js';
13
13
  import { scopeSwitchGuidance } from './org.js';
14
14
  import { verifyOwnConfigEntries, verifyOwnFiles } from './owned-paths.js';
15
15
  import { findAsset, versionHookConfig, versionTools } from './registry.js';
@@ -46,7 +46,7 @@ export class SyncError extends GuidedError {
46
46
  * script that lacks the exec bit also counts as `modified`.
47
47
  */
48
48
  export async function classifySyncEntries(options) {
49
- const { adapter, assets, force, onProgress, projectConfig, projectDir, registry } = options;
49
+ const { adapter, assets, force, only, onProgress, projectConfig, projectDir, registry } = options;
50
50
  const localEdits = [];
51
51
  const toSync = [];
52
52
  const undeclared = [];
@@ -54,6 +54,8 @@ export async function classifySyncEntries(options) {
54
54
  let frozenSkipped = 0;
55
55
  let skipped = 0;
56
56
  for (const asset of assets) {
57
+ if (only && !only.has(identityKey(asset)))
58
+ continue;
57
59
  onProgress?.(`Checking ${asset.name}...`);
58
60
  if (isFrozenInConfig(projectConfig, asset.name, asset.type, asset.org)) {
59
61
  frozenSkipped++;
@@ -190,7 +192,7 @@ export async function classifySyncEntries(options) {
190
192
  * installed assets, which the original inline dry-run path in sync.tsx omitted.
191
193
  */
192
194
  export async function dryRunSync(options) {
193
- const { force, onProgress, projectConfig, projectDir, registry, scope, tools } = options;
195
+ const { force, only, onProgress, projectConfig, projectDir, registry, scope, tools } = options;
194
196
  onProgress?.('Reading lockfile...');
195
197
  const lockfile = await readLockfile(projectDir);
196
198
  const toolResults = [];
@@ -210,6 +212,7 @@ export async function dryRunSync(options) {
210
212
  adapter,
211
213
  assets: toolAssets,
212
214
  force,
215
+ only,
213
216
  onProgress: onProgress ? (msg) => onProgress(`${msg} for ${toolName}`) : undefined,
214
217
  projectConfig,
215
218
  projectDir,
@@ -269,7 +272,7 @@ export async function dryRunSync(options) {
269
272
  * are not re-fetched during a sync operation.
270
273
  */
271
274
  export async function syncAssets(options) {
272
- const { force, onProgress, projectConfig, projectDir, registry, scope, tools } = options;
275
+ const { force, only, onProgress, projectConfig, projectDir, registry, scope, tools } = options;
273
276
  return withLockfileErrorHandling(projectDir, async () => {
274
277
  onProgress?.('Reading lockfile...');
275
278
  let lockfile = await readLockfile(projectDir);
@@ -294,6 +297,7 @@ export async function syncAssets(options) {
294
297
  adapter,
295
298
  assets: toolAssets,
296
299
  force,
300
+ only,
297
301
  onProgress: onProgress ? (msg) => onProgress(`${msg} for ${toolName}`) : undefined,
298
302
  projectConfig,
299
303
  projectDir,
@@ -470,7 +474,7 @@ export async function syncAssets(options) {
470
474
  if (notAttempted)
471
475
  break;
472
476
  }
473
- lockfile = await upgradeLegacyConfigChecksums(lockfile, projectDir, onProgress);
477
+ lockfile = await upgradeLegacyConfigChecksums(lockfile, projectDir, onProgress, only);
474
478
  // Write the lockfile once at the end to persist any in-memory mutations
475
479
  // (e.g., restored entries from failed reinstalls)
476
480
  await writeLockfile(projectDir, lockfile);
@@ -508,16 +512,17 @@ function toSyncRemoval({ name, org, type }) {
508
512
  * Record each config entry an older CLI checksummed without its nested keys again with a deep
509
513
  * checksum (see {@link upgradeConfigEntryChecksums}), for every asset and tool, so audit and sync
510
514
  * see later edits to an MCP server's `env` or `headers`. An entry whose value no longer matches
511
- * its legacy digest is left as it is: it was edited, and audit still reports it.
515
+ * its legacy digest is left as it is: it was edited, and audit still reports it. With `only`, just
516
+ * the entries the run synced.
512
517
  */
513
- async function upgradeLegacyConfigChecksums(lockfile, projectDir, onProgress) {
518
+ async function upgradeLegacyConfigChecksums(lockfile, projectDir, onProgress, only) {
514
519
  if (!lockfile.assets)
515
520
  return lockfile;
516
521
  let upgraded = 0;
517
522
  const assets = [];
518
523
  for (const asset of lockfile.assets) {
519
524
  const recorded = asset.configEntries;
520
- if (!recorded) {
525
+ if (!recorded || (only && !only.has(identityKey(asset)))) {
521
526
  assets.push(asset);
522
527
  continue;
523
528
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,21 @@ import type { AssetType } from './schemas/index.js';
3
3
  import type { InstalledAsset, Lockfile } from './schemas/lockfile.js';
4
4
  import type { Scope } from './scope.js';
5
5
  import { GuidedError } from './errors.js';
6
+ /** Several named assets to uninstall together, as one set. */
7
+ export interface AssetsUninstallPlan {
8
+ /** The named assets and the named bundles' members, in removal order (dependents first). */
9
+ assetsToRemove: InstalledAsset[];
10
+ /** Members of the named bundles that an asset outside the set still needs, which stay. */
11
+ assetsToSkip?: Array<InstalledAsset & {
12
+ reason: string;
13
+ }>;
14
+ /** The named bundles whose members the set takes; absent when none was named. */
15
+ bundles?: Array<Pick<BundleUninstallPlan, 'bundleName' | 'bundleOrg' | 'bundleVersion'>>;
16
+ /** Installed assets outside the set that depend on one of the named assets. */
17
+ dependents: InstalledAsset[];
18
+ /** Dependencies only the set needed, which become orphaned once it goes. */
19
+ orphansToRemove: InstalledAsset[];
20
+ }
6
21
  export interface BundleUninstallPlan {
7
22
  /** Assets from the bundle to remove (in dependency order — dependents first). */
8
23
  assetsToRemove: InstalledAsset[];
@@ -150,10 +165,18 @@ export declare function adaptersWithCopies(assets: InstalledAsset[], removing: A
150
165
  scope: Scope;
151
166
  }): Promise<Adapter[]>;
152
167
  /**
153
- * Execute a bundle uninstall plan, removing assets and orphaned dependencies.
154
- * Errors are collected per-asset rather than aborting the entire operation.
168
+ * The assets the lockfile records as installed with the bundle. Membership is keyed on the full
169
+ * bundleOrigin (name, org) identity: a same-named bundle in another org must not claim them.
170
+ */
171
+ export declare function bundleMembersOf(lockfile: Lockfile, bundleName: string, bundleOrg?: string): InstalledAsset[];
172
+ /**
173
+ * Execute a bundle uninstall plan, or a plan of several named assets ({@link planAssetsUninstall}),
174
+ * removing the assets and then the orphaned dependencies in one pass with one lockfile write.
175
+ * Errors are collected per-asset rather than aborting the entire operation. An asset whose
176
+ * removal failed keeps its lockfile entry, and so does an orphan it still depends on, which is
177
+ * reported as skipped: no entry is left depending on one that is gone.
155
178
  */
156
- export declare function executeBundleUninstall(plan: BundleUninstallPlan, options: UninstallOptions): Promise<BundleUninstallResult>;
179
+ export declare function executeBundleUninstall(plan: Partial<Pick<BundleUninstallPlan, 'assetsToSkip'>> & Pick<BundleUninstallPlan, 'assetsToRemove' | 'orphansToRemove'>, options: UninstallOptions): Promise<BundleUninstallResult>;
157
180
  /**
158
181
  * Whether the adapter's tool still has a copy of the asset that removing it would remove: a config
159
182
  * entry the lockfile records for the tool, or a file at the tool's placement that no other asset
@@ -164,6 +187,14 @@ export declare function hasCopyForTool(asset: InstalledAsset, adapter: Adapter,
164
187
  lockfile: Pick<Lockfile, 'assets'>;
165
188
  placedByAtk?: boolean;
166
189
  }): Promise<boolean>;
190
+ /**
191
+ * Plan the uninstall of several named assets as one set: the assets in removal order, the
192
+ * installed assets outside the set that depend on one of them (to warn about), and the
193
+ * dependencies that only the set needed, transitively. A dependency the named assets share is an
194
+ * orphan once they all go, which planning them one by one would miss. `removingTools` works as in
195
+ * {@link planUninstall}.
196
+ */
197
+ export declare function planAssetsUninstall(lockfile: Lockfile, targets: InstalledAsset[], removingTools?: string[]): AssetsUninstallPlan;
167
198
  /**
168
199
  * Compute a bundle uninstall plan.
169
200
  * Identifies which bundle assets can be removed, which must be skipped (because
@@ -171,6 +202,23 @@ export declare function hasCopyForTool(asset: InstalledAsset, adapter: Adapter,
171
202
  * become orphaned. `removingTools` works as in {@link planUninstall}.
172
203
  */
173
204
  export declare function planBundleUninstall(lockfile: Lockfile, bundleName: string, bundleVersion: string, bundleOrg?: string, removingTools?: string[]): BundleUninstallPlan;
205
+ /**
206
+ * Plan the uninstall of named assets and bundles as one set (`atk uninstall my-bundle skill-a`).
207
+ * The bundles' members go by the bundle rule ({@link planBundleUninstall}), judged against the
208
+ * whole set: a member that an asset outside the set needs is skipped, with what still needs it,
209
+ * and so is a member that a skipped one needs, so nothing that stays depends on something
210
+ * removed. A member that only the set needs goes with it. The named assets, a member named
211
+ * directly among them, go as in {@link planAssetsUninstall}: an asset outside the set that needs
212
+ * one is a dependent, to confirm. The order, the dependents and the orphans come from there.
213
+ */
214
+ export declare function planSetUninstall(lockfile: Lockfile, { bundles, targets }: {
215
+ bundles: Array<{
216
+ name: string;
217
+ org?: string;
218
+ version: string;
219
+ }>;
220
+ targets: InstalledAsset[];
221
+ }, removingTools?: string[]): AssetsUninstallPlan;
174
222
  /**
175
223
  * Compute the uninstall plan before removing anything.
176
224
  * Identifies dependents (for warnings) and orphaned dependencies (for cascade removal).
@@ -1 +1 @@
1
- {"version":3,"file":"uninstaller.d.ts","sourceRoot":"","sources":["../../src/lib/uninstaller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstaller.d.ts","sourceRoot":"","sources":["../../src/lib/uninstaller.ts"],"names":[],"mappings":"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"}
@@ -50,8 +50,18 @@ export async function adaptersWithCopies(assets, removing, projectDir, { lockfil
50
50
  return found;
51
51
  }
52
52
  /**
53
- * Execute a bundle uninstall plan, removing assets and orphaned dependencies.
54
- * Errors are collected per-asset rather than aborting the entire operation.
53
+ * The assets the lockfile records as installed with the bundle. Membership is keyed on the full
54
+ * bundleOrigin (name, org) identity: a same-named bundle in another org must not claim them.
55
+ */
56
+ export function bundleMembersOf(lockfile, bundleName, bundleOrg) {
57
+ return (lockfile.assets ?? []).filter((a) => isBundleOrigin(a.bundleOrigin, bundleName, bundleOrg));
58
+ }
59
+ /**
60
+ * Execute a bundle uninstall plan, or a plan of several named assets ({@link planAssetsUninstall}),
61
+ * removing the assets and then the orphaned dependencies in one pass with one lockfile write.
62
+ * Errors are collected per-asset rather than aborting the entire operation. An asset whose
63
+ * removal failed keeps its lockfile entry, and so does an orphan it still depends on, which is
64
+ * reported as skipped: no entry is left depending on one that is gone.
55
65
  */
56
66
  export async function executeBundleUninstall(plan, options) {
57
67
  // Bundle membership was already resolved by planBundleUninstall keyed on
@@ -65,7 +75,7 @@ export async function executeBundleUninstall(plan, options) {
65
75
  const keptEntries = [];
66
76
  const removedAssets = [];
67
77
  const removedOrphans = [];
68
- const skippedAssets = plan.assetsToSkip.map((a) => ({
78
+ const skippedAssets = (plan.assetsToSkip ?? []).map((a) => ({
69
79
  name: a.name,
70
80
  ...(a.org ? { org: a.org } : {}),
71
81
  reason: a.reason,
@@ -73,10 +83,25 @@ export async function executeBundleUninstall(plan, options) {
73
83
  version: a.version,
74
84
  }));
75
85
  const errors = [];
76
- // Remove bundle assets in dependency order (dependents first)
77
- for (const asset of plan.assetsToRemove) {
86
+ // An asset that couldn't be removed keeps its entry, so what it depends on stays too.
87
+ const failedKeys = new Set();
88
+ const keptFor = (asset) => findDependents(lockfile, asset.name, asset.type, asset.org)
89
+ .filter((d) => failedKeys.has(identityKey(d)))
90
+ .map((d) => formatOrgName(d.org, d.name));
91
+ const remove = async (asset, removed) => {
92
+ const blockers = keptFor(asset);
93
+ if (blockers.length > 0) {
94
+ failedKeys.add(identityKey(asset));
95
+ skippedAssets.push({
96
+ name: asset.name,
97
+ ...(asset.org ? { org: asset.org } : {}),
98
+ reason: `Required by ${blockers.join(', ')}, which could not be removed`,
99
+ type: asset.type,
100
+ version: asset.version,
101
+ });
102
+ return;
103
+ }
78
104
  try {
79
- onProgress?.(`Removing ${asset.name}...`);
80
105
  await removeAssetForAdapters(asset, adapters, projectDir, lockfile, removal);
81
106
  const dropped = dropOrExcludeEntry(lockfile, asset, adapters, toolScope);
82
107
  lockfile = dropped.lockfile;
@@ -88,7 +113,7 @@ export async function executeBundleUninstall(plan, options) {
88
113
  type: asset.type,
89
114
  });
90
115
  }
91
- removedAssets.push({
116
+ removed.push({
92
117
  name: asset.name,
93
118
  ...(asset.org ? { org: asset.org } : {}),
94
119
  type: asset.type,
@@ -96,6 +121,7 @@ export async function executeBundleUninstall(plan, options) {
96
121
  });
97
122
  }
98
123
  catch (err) {
124
+ failedKeys.add(identityKey(asset));
99
125
  errors.push({
100
126
  asset: asset.name,
101
127
  error: errorMessage(err),
@@ -103,37 +129,16 @@ export async function executeBundleUninstall(plan, options) {
103
129
  type: asset.type,
104
130
  });
105
131
  }
132
+ };
133
+ // Remove bundle assets in dependency order (dependents first)
134
+ for (const asset of plan.assetsToRemove) {
135
+ onProgress?.(`Removing ${asset.name}...`);
136
+ await remove(asset, removedAssets);
106
137
  }
107
138
  // Remove orphaned transitive dependencies
108
139
  for (const orphan of plan.orphansToRemove) {
109
- try {
110
- onProgress?.(`Removing orphaned dependency ${orphan.name}...`);
111
- await removeAssetForAdapters(orphan, adapters, projectDir, lockfile, removal);
112
- const dropped = dropOrExcludeEntry(lockfile, orphan, adapters, toolScope);
113
- lockfile = dropped.lockfile;
114
- if (dropped.remainingTools.length > 0) {
115
- keptEntries.push({
116
- name: orphan.name,
117
- ...(orphan.org ? { org: orphan.org } : {}),
118
- remainingTools: dropped.remainingTools,
119
- type: orphan.type,
120
- });
121
- }
122
- removedOrphans.push({
123
- name: orphan.name,
124
- ...(orphan.org ? { org: orphan.org } : {}),
125
- type: orphan.type,
126
- version: orphan.version,
127
- });
128
- }
129
- catch (err) {
130
- errors.push({
131
- asset: orphan.name,
132
- error: errorMessage(err),
133
- ...(orphan.org ? { org: orphan.org } : {}),
134
- type: orphan.type,
135
- });
136
- }
140
+ onProgress?.(`Removing orphaned dependency ${orphan.name}...`);
141
+ await remove(orphan, removedOrphans);
137
142
  }
138
143
  // Write lockfile once at the end
139
144
  onProgress?.(`Updating lockfile...`);
@@ -166,6 +171,44 @@ export async function hasCopyForTool(asset, adapter, projectDir, { lockfile, pla
166
171
  }
167
172
  return false;
168
173
  }
174
+ /**
175
+ * Plan the uninstall of several named assets as one set: the assets in removal order, the
176
+ * installed assets outside the set that depend on one of them (to warn about), and the
177
+ * dependencies that only the set needed, transitively. A dependency the named assets share is an
178
+ * orphan once they all go, which planning them one by one would miss. `removingTools` works as in
179
+ * {@link planUninstall}.
180
+ */
181
+ export function planAssetsUninstall(lockfile, targets, removingTools = []) {
182
+ const targetKeys = new Set(targets.map(identityKey));
183
+ const dependents = new Map();
184
+ for (const target of targets) {
185
+ for (const dependent of findDependents(lockfile, target.name, target.type, target.org)) {
186
+ const key = identityKey(dependent);
187
+ if (!targetKeys.has(key) && !isExcludedForTools(dependent, removingTools))
188
+ dependents.set(key, dependent);
189
+ }
190
+ }
191
+ // Breadth-first, as planUninstall does, over every asset the set removes.
192
+ const orphans = [];
193
+ const visited = new Set(targetKeys);
194
+ const queue = [...targets];
195
+ while (queue.length > 0) {
196
+ const current = queue.shift();
197
+ for (const orphan of findOrphanedDependencies(lockfile, current, [...targets, ...orphans], removingTools)) {
198
+ const key = identityKey(orphan);
199
+ if (visited.has(key))
200
+ continue;
201
+ visited.add(key);
202
+ orphans.push(orphan);
203
+ queue.push(orphan);
204
+ }
205
+ }
206
+ return {
207
+ assetsToRemove: topologicalSortForRemoval(targets),
208
+ dependents: [...dependents.values()],
209
+ orphansToRemove: orphans,
210
+ };
211
+ }
169
212
  /**
170
213
  * Compute a bundle uninstall plan.
171
214
  * Identifies which bundle assets can be removed, which must be skipped (because
@@ -181,11 +224,9 @@ export function planBundleUninstall(lockfile, bundleName, bundleVersion, bundleO
181
224
  bundleVersion,
182
225
  orphansToRemove: [],
183
226
  };
184
- // Membership is keyed on the full bundleOrigin (name, org) identity — a
185
- // same-named bundle in another org must not claim these assets.
186
- const isThisBundle = (origin) => origin?.name === bundleName && (origin?.org ?? undefined) === (bundleOrg ?? undefined);
227
+ const isThisBundle = (origin) => isBundleOrigin(origin, bundleName, bundleOrg);
187
228
  // Find all assets belonging to this bundle
188
- const bundleAssets = (lockfile.assets ?? []).filter((a) => isThisBundle(a.bundleOrigin));
229
+ const bundleAssets = bundleMembersOf(lockfile, bundleName, bundleOrg);
189
230
  if (bundleAssets.length === 0) {
190
231
  return emptyPlan;
191
232
  }
@@ -231,6 +272,57 @@ export function planBundleUninstall(lockfile, bundleName, bundleVersion, bundleO
231
272
  orphansToRemove: [...orphanSet.values()],
232
273
  };
233
274
  }
275
+ /**
276
+ * Plan the uninstall of named assets and bundles as one set (`atk uninstall my-bundle skill-a`).
277
+ * The bundles' members go by the bundle rule ({@link planBundleUninstall}), judged against the
278
+ * whole set: a member that an asset outside the set needs is skipped, with what still needs it,
279
+ * and so is a member that a skipped one needs, so nothing that stays depends on something
280
+ * removed. A member that only the set needs goes with it. The named assets, a member named
281
+ * directly among them, go as in {@link planAssetsUninstall}: an asset outside the set that needs
282
+ * one is a dependent, to confirm. The order, the dependents and the orphans come from there.
283
+ */
284
+ export function planSetUninstall(lockfile, { bundles, targets }, removingTools = []) {
285
+ const targetKeys = new Set(targets.map(identityKey));
286
+ const members = new Map();
287
+ for (const bundle of bundles) {
288
+ for (const member of bundleMembersOf(lockfile, bundle.name, bundle.org)) {
289
+ const key = identityKey(member);
290
+ if (!targetKeys.has(key))
291
+ members.set(key, member);
292
+ }
293
+ }
294
+ // Skipping a member can leave another member needed by it, so this runs until nothing changes.
295
+ const inSet = new Set([...targetKeys, ...members.keys()]);
296
+ const skipped = new Map();
297
+ for (let changed = true; changed;) {
298
+ changed = false;
299
+ for (const [key, member] of members) {
300
+ if (skipped.has(key))
301
+ continue;
302
+ const needs = findDependents(lockfile, member.name, member.type, member.org).filter((d) => {
303
+ const dependentKey = identityKey(d);
304
+ return (!inSet.has(dependentKey) || skipped.has(dependentKey)) && !isExcludedForTools(d, removingTools);
305
+ });
306
+ if (needs.length === 0)
307
+ continue;
308
+ skipped.set(key, {
309
+ ...member,
310
+ reason: `Required by ${needs.map((d) => formatOrgName(d.org, d.name)).join(', ')}`,
311
+ });
312
+ changed = true;
313
+ }
314
+ }
315
+ const removing = [...targets, ...[...members].filter(([key]) => !skipped.has(key)).map(([, member]) => member)];
316
+ return {
317
+ ...planAssetsUninstall(lockfile, removing, removingTools),
318
+ assetsToSkip: [...skipped.values()],
319
+ bundles: bundles.map(({ name, org, version }) => ({
320
+ bundleName: name,
321
+ ...(org !== undefined ? { bundleOrg: org } : {}),
322
+ bundleVersion: version,
323
+ })),
324
+ };
325
+ }
234
326
  /**
235
327
  * Compute the uninstall plan before removing anything.
236
328
  * Identifies dependents (for warnings) and orphaned dependencies (for cascade removal).
@@ -498,6 +590,9 @@ function dropOrExcludeEntry(lockfile, asset, adapters, toolScope) {
498
590
  const assets = (lockfile.assets ?? []).map((a) => a.name === asset.name && a.type === asset.type && a.org === asset.org ? kept : a);
499
591
  return { lockfile: { ...lockfile, assets }, remainingTools };
500
592
  }
593
+ function isBundleOrigin(origin, name, org) {
594
+ return origin?.name === name && (origin?.org ?? undefined) === (org ?? undefined);
595
+ }
501
596
  /** Result fields describing a lockfile entry that survived a tool-scoped uninstall. */
502
597
  function keptEntryFields(remainingTools) {
503
598
  return remainingTools.length > 0 ? { lockfileEntryKept: true, remainingTools } : {};