@detergent-software/atk 9.1.0 → 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.
- package/CHANGELOG.md +128 -0
- package/README.md +37 -17
- package/build/command-manifest.json +89 -7
- package/build/commands/_app.d.ts +2 -1
- package/build/commands/_app.d.ts.map +1 -1
- package/build/commands/audit.d.ts +1 -1
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/browse.d.ts +1 -1
- package/build/commands/browse.d.ts.map +1 -1
- package/build/commands/browse.js +119 -16
- package/build/commands/browse.js.map +1 -1
- package/build/commands/cache.d.ts +1 -1
- package/build/commands/cache.d.ts.map +1 -1
- package/build/commands/checkout.d.ts +1 -1
- package/build/commands/checkout.d.ts.map +1 -1
- package/build/commands/config.d.ts +1 -1
- package/build/commands/config.d.ts.map +1 -1
- package/build/commands/deprecate.d.ts +1 -1
- package/build/commands/deprecate.d.ts.map +1 -1
- package/build/commands/diff.d.ts +4 -2
- package/build/commands/diff.d.ts.map +1 -1
- package/build/commands/diff.js +86 -13
- package/build/commands/diff.js.map +1 -1
- package/build/commands/doctor.d.ts +1 -1
- package/build/commands/doctor.d.ts.map +1 -1
- package/build/commands/drift.d.ts +2 -1
- package/build/commands/drift.d.ts.map +1 -1
- package/build/commands/drift.js +8 -3
- package/build/commands/drift.js.map +1 -1
- package/build/commands/freeze.d.ts +2 -2
- package/build/commands/freeze.d.ts.map +1 -1
- package/build/commands/freeze.js +45 -22
- package/build/commands/freeze.js.map +1 -1
- package/build/commands/index.d.ts +1 -1
- package/build/commands/index.d.ts.map +1 -1
- package/build/commands/info.d.ts +1 -1
- package/build/commands/info.d.ts.map +1 -1
- package/build/commands/info.js +24 -4
- package/build/commands/info.js.map +1 -1
- package/build/commands/init.d.ts +1 -1
- package/build/commands/init.d.ts.map +1 -1
- package/build/commands/install.d.ts +2 -2
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +284 -66
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.d.ts +2 -1
- package/build/commands/list.d.ts.map +1 -1
- package/build/commands/list.js +64 -6
- package/build/commands/list.js.map +1 -1
- package/build/commands/login.d.ts +1 -1
- package/build/commands/login.d.ts.map +1 -1
- package/build/commands/logout.d.ts +1 -1
- package/build/commands/logout.d.ts.map +1 -1
- package/build/commands/move.d.ts +1 -1
- package/build/commands/move.d.ts.map +1 -1
- package/build/commands/outdated.d.ts +2 -1
- package/build/commands/outdated.d.ts.map +1 -1
- package/build/commands/outdated.js +11 -1
- package/build/commands/outdated.js.map +1 -1
- package/build/commands/pin.d.ts +2 -2
- package/build/commands/pin.d.ts.map +1 -1
- package/build/commands/pin.js +77 -46
- package/build/commands/pin.js.map +1 -1
- package/build/commands/promote.d.ts +1 -1
- package/build/commands/promote.d.ts.map +1 -1
- package/build/commands/prune.d.ts +1 -1
- package/build/commands/prune.d.ts.map +1 -1
- package/build/commands/publish.d.ts +1 -1
- package/build/commands/publish.d.ts.map +1 -1
- package/build/commands/register.d.ts +1 -1
- package/build/commands/register.d.ts.map +1 -1
- package/build/commands/release-notes.d.ts +1 -1
- package/build/commands/release-notes.d.ts.map +1 -1
- package/build/commands/reviewer.d.ts +1 -1
- package/build/commands/reviewer.d.ts.map +1 -1
- package/build/commands/schema.d.ts +2 -2
- package/build/commands/schema.d.ts.map +1 -1
- package/build/commands/search.d.ts +2 -1
- package/build/commands/search.d.ts.map +1 -1
- package/build/commands/search.js +4 -2
- package/build/commands/search.js.map +1 -1
- package/build/commands/setup.d.ts +1 -1
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/sync.d.ts +14 -2
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +86 -17
- package/build/commands/sync.js.map +1 -1
- package/build/commands/thaw.d.ts +2 -2
- package/build/commands/thaw.d.ts.map +1 -1
- package/build/commands/thaw.js +44 -21
- package/build/commands/thaw.js.map +1 -1
- package/build/commands/uninstall.d.ts +2 -2
- package/build/commands/uninstall.d.ts.map +1 -1
- package/build/commands/uninstall.js +35 -11
- package/build/commands/uninstall.js.map +1 -1
- package/build/commands/unpin.d.ts +2 -2
- package/build/commands/unpin.d.ts.map +1 -1
- package/build/commands/unpin.js +54 -25
- package/build/commands/unpin.js.map +1 -1
- package/build/commands/unpublish.d.ts +1 -1
- package/build/commands/unpublish.d.ts.map +1 -1
- package/build/commands/update.d.ts +3 -2
- package/build/commands/update.d.ts.map +1 -1
- package/build/commands/update.js +270 -74
- package/build/commands/update.js.map +1 -1
- package/build/commands/validate.d.ts +1 -1
- package/build/commands/validate.d.ts.map +1 -1
- package/build/commands/whoami.d.ts +1 -1
- package/build/commands/whoami.d.ts.map +1 -1
- package/build/commands/why.d.ts +1 -1
- package/build/commands/why.d.ts.map +1 -1
- package/build/components/AssetDetail.d.ts +6 -1
- package/build/components/AssetDetail.d.ts.map +1 -1
- package/build/components/AssetDetail.js +9 -2
- package/build/components/AssetDetail.js.map +1 -1
- package/build/components/AssetTable.d.ts +1 -1
- package/build/components/AssetTable.d.ts.map +1 -1
- package/build/components/AssetVersionLine.d.ts +1 -1
- package/build/components/AssetVersionLine.d.ts.map +1 -1
- package/build/components/BrowseExpandedBundle.d.ts +1 -1
- package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
- package/build/components/BrowseExpandedRow.d.ts +1 -1
- package/build/components/BrowseExpandedRow.d.ts.map +1 -1
- package/build/components/BrowseList.d.ts +3 -1
- package/build/components/BrowseList.d.ts.map +1 -1
- package/build/components/BrowseList.js +12 -6
- package/build/components/BrowseList.js.map +1 -1
- package/build/components/BundleDetail.d.ts +3 -1
- package/build/components/BundleDetail.d.ts.map +1 -1
- package/build/components/BundleDetail.js +4 -2
- package/build/components/BundleDetail.js.map +1 -1
- package/build/components/CrossScopeWarning.d.ts +1 -1
- package/build/components/CrossScopeWarning.d.ts.map +1 -1
- package/build/components/DependencyTree.d.ts +1 -1
- package/build/components/DependencyTree.d.ts.map +1 -1
- package/build/components/DeprecationSummary.d.ts +2 -2
- package/build/components/DeprecationSummary.d.ts.map +1 -1
- package/build/components/DiagnosticList.d.ts +1 -1
- package/build/components/DiagnosticList.d.ts.map +1 -1
- package/build/components/DiffView.d.ts +34 -5
- package/build/components/DiffView.d.ts.map +1 -1
- package/build/components/DiffView.js +47 -8
- package/build/components/DiffView.js.map +1 -1
- package/build/components/DryRunBanner.d.ts +1 -1
- package/build/components/DryRunBanner.d.ts.map +1 -1
- package/build/components/ErrorView.d.ts +2 -2
- package/build/components/ErrorView.d.ts.map +1 -1
- package/build/components/ExcludedSkippedHint.d.ts +1 -1
- package/build/components/ExcludedSkippedHint.d.ts.map +1 -1
- package/build/components/Field.d.ts +1 -1
- package/build/components/Field.d.ts.map +1 -1
- package/build/components/Field.js +1 -1
- package/build/components/Field.js.map +1 -1
- package/build/components/FilterBar.d.ts +1 -1
- package/build/components/FilterBar.d.ts.map +1 -1
- package/build/components/FrozenSkippedHint.d.ts +1 -1
- package/build/components/FrozenSkippedHint.d.ts.map +1 -1
- package/build/components/Header.d.ts +1 -1
- package/build/components/Header.d.ts.map +1 -1
- package/build/components/HelpBar.d.ts +5 -1
- package/build/components/HelpBar.d.ts.map +1 -1
- package/build/components/HelpBar.js +18 -4
- package/build/components/HelpBar.js.map +1 -1
- package/build/components/InitSuccess.d.ts +1 -1
- package/build/components/InitSuccess.d.ts.map +1 -1
- package/build/components/InstallConfirmBar.d.ts +5 -3
- package/build/components/InstallConfirmBar.d.ts.map +1 -1
- package/build/components/InstallConfirmBar.js +15 -2
- package/build/components/InstallConfirmBar.js.map +1 -1
- package/build/components/InstallSummary.d.ts +1 -1
- package/build/components/InstallSummary.d.ts.map +1 -1
- package/build/components/InstalledTree.d.ts +17 -0
- package/build/components/InstalledTree.d.ts.map +1 -0
- package/build/components/InstalledTree.js +31 -0
- package/build/components/InstalledTree.js.map +1 -0
- package/build/components/Link.d.ts +1 -1
- package/build/components/Link.d.ts.map +1 -1
- package/build/components/ListActionBar.d.ts +1 -1
- package/build/components/ListActionBar.d.ts.map +1 -1
- package/build/components/ListBrowseList.d.ts +1 -1
- package/build/components/ListBrowseList.d.ts.map +1 -1
- package/build/components/ListExpandedRow.d.ts +1 -1
- package/build/components/ListExpandedRow.d.ts.map +1 -1
- package/build/components/ListHelpBar.d.ts +1 -1
- package/build/components/ListHelpBar.d.ts.map +1 -1
- package/build/components/LocalEditsHint.d.ts +1 -1
- package/build/components/LocalEditsHint.d.ts.map +1 -1
- package/build/components/MultiSelectList.d.ts +1 -1
- package/build/components/MultiSelectList.d.ts.map +1 -1
- package/build/components/NoticeBanner.d.ts +1 -1
- package/build/components/NoticeBanner.d.ts.map +1 -1
- package/build/components/OrphanListItem.d.ts +1 -1
- package/build/components/OrphanListItem.d.ts.map +1 -1
- package/build/components/PromptField.d.ts +1 -1
- package/build/components/PromptField.d.ts.map +1 -1
- package/build/components/ReadmeSection.d.ts +1 -1
- package/build/components/ReadmeSection.d.ts.map +1 -1
- package/build/components/RegistryChangeSummary.d.ts +2 -2
- package/build/components/RegistryChangeSummary.d.ts.map +1 -1
- package/build/components/RunStoppedHint.d.ts +1 -1
- package/build/components/RunStoppedHint.d.ts.map +1 -1
- package/build/components/SchemaTable.d.ts +1 -1
- package/build/components/SchemaTable.d.ts.map +1 -1
- package/build/components/SectionDivider.d.ts +1 -1
- package/build/components/SectionDivider.d.ts.map +1 -1
- package/build/components/SkippedAssetSection.d.ts +1 -1
- package/build/components/SkippedAssetSection.d.ts.map +1 -1
- package/build/components/Spinner.d.ts +1 -1
- package/build/components/Spinner.d.ts.map +1 -1
- package/build/components/StatusBadge.d.ts +2 -2
- package/build/components/StatusBadge.d.ts.map +1 -1
- package/build/components/SyncAllInSync.d.ts +1 -1
- package/build/components/SyncAllInSync.d.ts.map +1 -1
- package/build/components/SyncDriftedList.d.ts +1 -1
- package/build/components/SyncDriftedList.d.ts.map +1 -1
- package/build/components/SyncNoAssets.d.ts +1 -1
- package/build/components/SyncNoAssets.d.ts.map +1 -1
- package/build/components/UndeclaredRemovedHint.d.ts +1 -1
- package/build/components/UndeclaredRemovedHint.d.ts.map +1 -1
- package/build/components/UpdateBanner.d.ts +1 -1
- package/build/components/UpdateBanner.d.ts.map +1 -1
- package/build/components/index.d.ts +2 -1
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +2 -1
- package/build/components/index.js.map +1 -1
- package/build/hooks/useBrowseState.d.ts +31 -1
- package/build/hooks/useBrowseState.d.ts.map +1 -1
- package/build/hooks/useBrowseState.js +99 -15
- package/build/hooks/useBrowseState.js.map +1 -1
- package/build/hooks/useUninstallState.d.ts +22 -2
- package/build/hooks/useUninstallState.d.ts.map +1 -1
- package/build/hooks/useUninstallState.js +161 -16
- package/build/hooks/useUninstallState.js.map +1 -1
- package/build/lib/atk-api/generated/types.gen.d.ts +8 -8
- package/build/lib/atk-schemas/claude-plugin.d.ts +56 -0
- package/build/lib/atk-schemas/claude-plugin.d.ts.map +1 -0
- package/build/lib/atk-schemas/claude-plugin.js +199 -0
- package/build/lib/atk-schemas/claude-plugin.js.map +1 -0
- package/build/lib/atk-schemas/index.d.ts +3 -0
- package/build/lib/atk-schemas/index.d.ts.map +1 -1
- package/build/lib/atk-schemas/index.js +3 -0
- package/build/lib/atk-schemas/index.js.map +1 -1
- package/build/lib/atk-schemas/manifest.d.ts +2 -2
- package/build/lib/atk-schemas/manifest.d.ts.map +1 -1
- package/build/lib/atk-schemas/null-optionals.d.ts +1 -1
- package/build/lib/atk-schemas/null-optionals.d.ts.map +1 -1
- package/build/lib/atk-schemas/registry.d.ts +6 -0
- package/build/lib/atk-schemas/registry.d.ts.map +1 -1
- package/build/lib/atk-schemas/registry.js +2 -0
- package/build/lib/atk-schemas/registry.js.map +1 -1
- package/build/lib/config.d.ts +18 -0
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +32 -9
- package/build/lib/config.js.map +1 -1
- package/build/lib/diff-command.d.ts +43 -3
- package/build/lib/diff-command.d.ts.map +1 -1
- package/build/lib/diff-command.js +93 -15
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/format.d.ts +5 -0
- package/build/lib/format.d.ts.map +1 -1
- package/build/lib/format.js +7 -0
- package/build/lib/format.js.map +1 -1
- package/build/lib/install-targets.d.ts +90 -0
- package/build/lib/install-targets.d.ts.map +1 -0
- package/build/lib/install-targets.js +146 -0
- package/build/lib/install-targets.js.map +1 -0
- package/build/lib/installed-tree.d.ts +47 -0
- package/build/lib/installed-tree.d.ts.map +1 -0
- package/build/lib/installed-tree.js +72 -0
- package/build/lib/installed-tree.js.map +1 -0
- package/build/lib/installer.js +3 -2
- package/build/lib/installer.js.map +1 -1
- package/build/lib/named-entry.d.ts +24 -0
- package/build/lib/named-entry.d.ts.map +1 -0
- package/build/lib/named-entry.js +33 -0
- package/build/lib/named-entry.js.map +1 -0
- package/build/lib/pastel/_app.d.ts +1 -1
- package/build/lib/pastel/_app.d.ts.map +1 -1
- package/build/lib/registry.d.ts +43 -0
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +73 -0
- package/build/lib/registry.js.map +1 -1
- package/build/lib/resolver.d.ts +35 -0
- package/build/lib/resolver.d.ts.map +1 -1
- package/build/lib/resolver.js +65 -21
- package/build/lib/resolver.js.map +1 -1
- package/build/lib/schemas/config.d.ts +2 -2
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/search.d.ts +9 -2
- package/build/lib/search.d.ts.map +1 -1
- package/build/lib/search.js +18 -1
- package/build/lib/search.js.map +1 -1
- package/build/lib/sync.d.ts +9 -0
- package/build/lib/sync.d.ts.map +1 -1
- package/build/lib/sync.js +13 -8
- package/build/lib/sync.js.map +1 -1
- package/build/lib/uninstaller.d.ts +51 -3
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +134 -39
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/updater.d.ts +6 -7
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +23 -33
- package/build/lib/updater.js.map +1 -1
- package/package.json +21 -21
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
|
}
|
package/build/lib/sync.js.map
CHANGED
|
@@ -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
|
-
*
|
|
154
|
-
*
|
|
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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"}
|
package/build/lib/uninstaller.js
CHANGED
|
@@ -50,8 +50,18 @@ export async function adaptersWithCopies(assets, removing, projectDir, { lockfil
|
|
|
50
50
|
return found;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
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
|
-
//
|
|
77
|
-
|
|
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
|
-
|
|
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
|
-
|
|
110
|
-
|
|
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
|
-
|
|
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
|
|
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 } : {};
|