@detergent-software/atk 3.0.0-dev.3 → 3.0.0-dev.5

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 (106) hide show
  1. package/build/commands/audit.d.ts.map +1 -1
  2. package/build/commands/audit.js +15 -10
  3. package/build/commands/audit.js.map +1 -1
  4. package/build/commands/browse.d.ts.map +1 -1
  5. package/build/commands/browse.js +39 -114
  6. package/build/commands/browse.js.map +1 -1
  7. package/build/commands/diff.d.ts.map +1 -1
  8. package/build/commands/diff.js +4 -2
  9. package/build/commands/diff.js.map +1 -1
  10. package/build/commands/info.d.ts.map +1 -1
  11. package/build/commands/info.js +15 -2
  12. package/build/commands/info.js.map +1 -1
  13. package/build/commands/install.d.ts.map +1 -1
  14. package/build/commands/install.js +47 -32
  15. package/build/commands/install.js.map +1 -1
  16. package/build/commands/list.d.ts.map +1 -1
  17. package/build/commands/list.js +18 -8
  18. package/build/commands/list.js.map +1 -1
  19. package/build/commands/outdated.d.ts.map +1 -1
  20. package/build/commands/outdated.js +7 -6
  21. package/build/commands/outdated.js.map +1 -1
  22. package/build/commands/prune.d.ts.map +1 -1
  23. package/build/commands/prune.js +36 -47
  24. package/build/commands/prune.js.map +1 -1
  25. package/build/commands/publish.d.ts.map +1 -1
  26. package/build/commands/publish.js +46 -583
  27. package/build/commands/publish.js.map +1 -1
  28. package/build/commands/setup.d.ts +1 -1
  29. package/build/commands/setup.d.ts.map +1 -1
  30. package/build/commands/setup.js +49 -242
  31. package/build/commands/setup.js.map +1 -1
  32. package/build/commands/sync.d.ts.map +1 -1
  33. package/build/commands/sync.js +111 -120
  34. package/build/commands/sync.js.map +1 -1
  35. package/build/commands/uninstall.d.ts.map +1 -1
  36. package/build/commands/uninstall.js +103 -218
  37. package/build/commands/uninstall.js.map +1 -1
  38. package/build/commands/update.d.ts.map +1 -1
  39. package/build/commands/update.js +33 -23
  40. package/build/commands/update.js.map +1 -1
  41. package/build/components/AssetTable.d.ts +2 -1
  42. package/build/components/AssetTable.d.ts.map +1 -1
  43. package/build/components/AssetTable.js +5 -2
  44. package/build/components/AssetTable.js.map +1 -1
  45. package/build/components/DryRunBanner.d.ts +3 -3
  46. package/build/components/DryRunBanner.d.ts.map +1 -1
  47. package/build/components/DryRunBanner.js +2 -2
  48. package/build/components/DryRunBanner.js.map +1 -1
  49. package/build/components/InstallSummary.d.ts +3 -3
  50. package/build/components/InstallSummary.d.ts.map +1 -1
  51. package/build/components/InstallSummary.js +2 -2
  52. package/build/components/InstallSummary.js.map +1 -1
  53. package/build/hooks/useBrowseState.d.ts +23 -0
  54. package/build/hooks/useBrowseState.d.ts.map +1 -1
  55. package/build/hooks/useBrowseState.js +77 -1
  56. package/build/hooks/useBrowseState.js.map +1 -1
  57. package/build/hooks/useConfirmation.d.ts +18 -0
  58. package/build/hooks/useConfirmation.d.ts.map +1 -0
  59. package/build/hooks/useConfirmation.js +56 -0
  60. package/build/hooks/useConfirmation.js.map +1 -0
  61. package/build/hooks/useInitState.d.ts.map +1 -1
  62. package/build/hooks/useInitState.js +3 -2
  63. package/build/hooks/useInitState.js.map +1 -1
  64. package/build/hooks/usePublishState.d.ts +115 -0
  65. package/build/hooks/usePublishState.d.ts.map +1 -0
  66. package/build/hooks/usePublishState.js +670 -0
  67. package/build/hooks/usePublishState.js.map +1 -0
  68. package/build/hooks/useSetupState.d.ts +59 -0
  69. package/build/hooks/useSetupState.d.ts.map +1 -0
  70. package/build/hooks/useSetupState.js +297 -0
  71. package/build/hooks/useSetupState.js.map +1 -0
  72. package/build/hooks/useUninstallState.d.ts +102 -0
  73. package/build/hooks/useUninstallState.d.ts.map +1 -0
  74. package/build/hooks/useUninstallState.js +335 -0
  75. package/build/hooks/useUninstallState.js.map +1 -0
  76. package/build/lib/config.d.ts +4 -1
  77. package/build/lib/config.d.ts.map +1 -1
  78. package/build/lib/config.js +9 -9
  79. package/build/lib/config.js.map +1 -1
  80. package/build/lib/diagnostics.js +1 -1
  81. package/build/lib/diagnostics.js.map +1 -1
  82. package/build/lib/installer.js +1 -0
  83. package/build/lib/installer.js.map +1 -1
  84. package/build/lib/lockfile.d.ts +13 -13
  85. package/build/lib/lockfile.d.ts.map +1 -1
  86. package/build/lib/lockfile.js +39 -40
  87. package/build/lib/lockfile.js.map +1 -1
  88. package/build/lib/schemas/config.d.ts +7 -3
  89. package/build/lib/schemas/config.d.ts.map +1 -1
  90. package/build/lib/schemas/config.js +12 -2
  91. package/build/lib/schemas/config.js.map +1 -1
  92. package/build/lib/schemas/lockfile.d.ts +2 -0
  93. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  94. package/build/lib/schemas/lockfile.js +1 -0
  95. package/build/lib/schemas/lockfile.js.map +1 -1
  96. package/build/lib/tool-resolver.d.ts +17 -6
  97. package/build/lib/tool-resolver.d.ts.map +1 -1
  98. package/build/lib/tool-resolver.js +31 -15
  99. package/build/lib/tool-resolver.js.map +1 -1
  100. package/build/lib/uninstaller.d.ts.map +1 -1
  101. package/build/lib/uninstaller.js +5 -2
  102. package/build/lib/uninstaller.js.map +1 -1
  103. package/build/lib/updater.d.ts.map +1 -1
  104. package/build/lib/updater.js +5 -1
  105. package/build/lib/updater.js.map +1 -1
  106. package/package.json +1 -1
@@ -13,7 +13,7 @@ import { parseOrgFromName, resolveActiveOrg } from '../lib/org.js';
13
13
  import { findProjectRoot } from '../lib/paths.js';
14
14
  import { fetchRegistry, findBundle, isDeprecated } from '../lib/registry.js';
15
15
  import { resolveBundleInstallPlan, resolveInstallPlan } from '../lib/resolver.js';
16
- import { resolveTool } from '../lib/tool-resolver.js';
16
+ import { resolveTools } from '../lib/tool-resolver.js';
17
17
  import { parseNameVersion } from '../lib/version.js';
18
18
  import Sync from './sync.js';
19
19
  export const description = 'Install an asset or bundle (no args syncs from lockfile)';
@@ -87,7 +87,8 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
87
87
  const projectDir = findProjectRoot(projectRoot);
88
88
  progress('Loading configuration...');
89
89
  const config = await loadMergedConfig(projectDir);
90
- const { adapter, tool: resolvedTool } = await resolveTool(tool, projectDir);
90
+ const tools = await resolveTools(tool, projectDir);
91
+ const toolNames = tools.map((t) => t.tool);
91
92
  progress('Fetching registry...');
92
93
  const registry = await fetchRegistry({ force: refresh });
93
94
  // Read lockfile to get org for resolution
@@ -111,30 +112,30 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
111
112
  if (bundle) {
112
113
  progress('Resolving bundle assets...');
113
114
  const plan = resolveBundleInstallPlan(registry, bundle, org);
114
- return { bundleName: bundle.name, outcome: 'dry-run-bundle', plan, tool: resolvedTool };
115
+ return { bundleName: bundle.name, outcome: 'dry-run-bundle', plan, tools: toolNames };
115
116
  }
116
117
  const versionLabel = effectiveVersion ? `@${effectiveVersion}` : '';
117
118
  progress(`Resolving dependencies${versionLabel}...`);
118
119
  const plan = resolveInstallPlan(registry, name, undefined, effectiveVersion, org);
119
- return { outcome: 'dry-run-install', plan, tool: resolvedTool };
120
+ return { outcome: 'dry-run-install', plan, tools: toolNames };
120
121
  }
121
122
  try {
122
123
  return await withLockfileLock(projectDir, async () => {
123
124
  if (bundle) {
124
- // Bundle installation flow
125
+ // Bundle installation flow — check if already installed for ALL tools
125
126
  if (!force) {
126
127
  const lockfile = await readLockfile(projectDir);
127
128
  const bundleAssets = bundle.assets ?? [];
128
- const allInstalled = bundleAssets.length > 0 &&
129
+ const allInstalledForAllTools = tools.every(({ adapter: toolAdapter }) => bundleAssets.length > 0 &&
129
130
  bundleAssets.every((ref) => {
130
- const installed = (lockfile.assets ?? []).find((a) => a.name === ref.name && a.type === ref.type);
131
+ const installed = (lockfile.assets ?? []).find((a) => a.name === ref.name && a.type === ref.type && a.tool === toolAdapter.tool);
131
132
  if (!installed)
132
133
  return false;
133
- const resolved = resolveInstalledPaths(installed, adapter, projectDir);
134
+ const resolved = resolveInstalledPaths(installed, toolAdapter, projectDir);
134
135
  const absolutePaths = resolved.files.map((f) => join(projectDir, f.installedPath));
135
136
  return areAssetFilesIntact(absolutePaths);
136
- });
137
- if (allInstalled) {
137
+ }));
138
+ if (allInstalledForAllTools) {
138
139
  return {
139
140
  bundleName: bundle.name,
140
141
  outcome: 'bundle-already-installed',
@@ -144,21 +145,29 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
144
145
  }
145
146
  progress('Resolving bundle assets...');
146
147
  const plan = resolveBundleInstallPlan(registry, bundle, org);
147
- const results = await executeInstallPlan(plan, {
148
- adapter,
149
- bundleOrigin: { name: bundle.name, version: bundle.version },
150
- force,
151
- onProgress: progress,
152
- pin,
153
- projectDir: projectDir,
154
- });
155
- return { bundleName: bundle.name, outcome: 'bundle-installed', results, tool: resolvedTool };
148
+ // Execute install plan for each tool adapter
149
+ const toolResults = [];
150
+ for (const { adapter: toolAdapter, tool: toolName } of tools) {
151
+ progress(`Installing bundle for ${toolName}...`);
152
+ const results = await executeInstallPlan(plan, {
153
+ adapter: toolAdapter,
154
+ bundleOrigin: { name: bundle.name, version: bundle.version },
155
+ force,
156
+ onProgress: progress,
157
+ pin,
158
+ projectDir: projectDir,
159
+ });
160
+ toolResults.push({ results, tool: toolName });
161
+ }
162
+ return { bundleName: bundle.name, outcome: 'bundle-installed', toolResults };
156
163
  }
157
164
  // Single asset installation flow
158
165
  if (!force) {
159
166
  const lockfile = await readLockfile(projectDir);
167
+ // Check across all tools — use the first tool's adapter for checking existing state
160
168
  const existing = (lockfile.assets ?? []).find((a) => a.name === name);
161
- const existingResolved = existing ? resolveInstalledPaths(existing, adapter, projectDir) : undefined;
169
+ const firstAdapter = tools[0].adapter;
170
+ const existingResolved = existing ? resolveInstalledPaths(existing, firstAdapter, projectDir) : undefined;
162
171
  const existingAbsolutePaths = existingResolved?.files.map((f) => join(projectDir, f.installedPath)) ?? [];
163
172
  if (existing && areAssetFilesIntact(existingAbsolutePaths)) {
164
173
  // If it was auto-installed as a dependency, upgrade it to a direct install
@@ -180,14 +189,20 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
180
189
  const versionLabel = effectiveVersion ? `@${effectiveVersion}` : '';
181
190
  progress(`Resolving dependencies${versionLabel}...`);
182
191
  const plan = resolveInstallPlan(registry, name, undefined, effectiveVersion, org);
183
- const results = await executeInstallPlan(plan, {
184
- adapter,
185
- force,
186
- onProgress: progress,
187
- pin,
188
- projectDir: projectDir,
189
- });
190
- return { outcome: 'installed', results, tool: resolvedTool };
192
+ // Execute install plan for each tool adapter
193
+ const toolResults = [];
194
+ for (const { adapter: toolAdapter, tool: toolName } of tools) {
195
+ progress(`Installing for ${toolName}...`);
196
+ const results = await executeInstallPlan(plan, {
197
+ adapter: toolAdapter,
198
+ force,
199
+ onProgress: progress,
200
+ pin,
201
+ projectDir: projectDir,
202
+ });
203
+ toolResults.push({ results, tool: toolName });
204
+ }
205
+ return { outcome: 'installed', toolResults };
191
206
  });
192
207
  }
193
208
  catch (error) {
@@ -208,7 +223,7 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
208
223
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " is already fully installed (v", data.version, ")."] }), _jsx(Text, { dimColor: true, children: "Use --force to reinstall." })] }));
209
224
  }
210
225
  if (data.outcome === 'bundle-installed') {
211
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " \u2014 ", data.results.length, " asset", data.results.length !== 1 ? 's' : ''] }), _jsx(InstallSummary, { results: data.results, tool: data.tool })] }));
226
+ return (_jsx(Box, { flexDirection: 'column', children: data.toolResults.map(({ results, tool: toolName }) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " \u2014 ", results.length, " asset", results.length !== 1 ? 's' : ''] }), _jsx(InstallSummary, { results: results, tools: [toolName] })] }, toolName))) }));
212
227
  }
213
228
  if (data.outcome === 'already-installed') {
214
229
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: data.name }), " is already installed (v", data.version, ")."] }), _jsx(Text, { dimColor: true, children: "Use --force to reinstall." })] }));
@@ -217,14 +232,14 @@ function InstallAsset({ dryRun, force, org: cliOrg, pin, projectRoot, rawName, r
217
232
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 ", _jsx(Text, { bold: true, children: data.name }), " (v", data.version, ") is now a direct install."] }), _jsx(Text, { dimColor: true, children: "It will no longer be auto-removed when its parent is uninstalled." })] }));
218
233
  }
219
234
  if (data.outcome === 'dry-run-install') {
220
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tool: data.tool }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [entry.asset.name, ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: entry.asset.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, `${entry.asset.type}/${entry.asset.name}`)))] }));
235
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [entry.asset.name, ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: entry.asset.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, `${entry.asset.type}/${entry.asset.name}`)))] }));
221
236
  }
222
237
  if (data.outcome === 'dry-run-bundle') {
223
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tool: data.tool }), _jsx(Text, { children: " " }), _jsx(Text, { children: _jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", data.bundleName] }) }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [entry.asset.name, ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: entry.asset.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, `${entry.asset.type}/${entry.asset.name}`)))] }));
238
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'install', count: data.plan.totalCount, tools: data.tools }), _jsx(Text, { children: " " }), _jsx(Text, { children: _jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", data.bundleName] }) }), _jsx(Text, { children: " " }), data.plan.entries.map((entry) => (_jsxs(Text, { children: [' ', entry.reason === 'dependency' ? (_jsxs(Text, { color: 'cyan', children: [entry.asset.name, ' ', _jsxs(Text, { dimColor: true, children: ["(", entry.asset.type, ") v", entry.version, " \u2014 dependency"] })] })) : (_jsxs(Text, { children: [_jsx(Text, { bold: true, children: entry.asset.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.version] })] }))] }, `${entry.asset.type}/${entry.asset.name}`)))] }));
224
239
  }
225
240
  if (data.outcome === 'deprecated') {
226
241
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'yellow', children: ["Warning: \"", data.name, "\" is deprecated \u2014 ", data.reason] }), data.replacement && (_jsxs(Text, { children: ["Consider using", ' ', _jsx(Text, { bold: true, color: 'cyan', children: data.replacement }), ' ', "instead."] })), _jsx(Text, { dimColor: true, children: "Use --force to install anyway." })] }));
227
242
  }
228
- return _jsx(InstallSummary, { results: data.results, tool: data.tool });
243
+ return (_jsx(Box, { flexDirection: 'column', children: data.toolResults.map(({ results, tool: toolName }) => (_jsx(InstallSummary, { results: results, tools: [toolName] }, toolName))) }));
229
244
  }
230
245
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,eAAO,MAAM,OAAO;;;;;;;;;;;iBAyBlB,CAAC;AAOH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA6D3E"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,eAAO,MAAM,OAAO;;;;;;;;;;;iBAyBlB,CAAC;AAQH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA0E3E"}
@@ -7,7 +7,7 @@ import { useCommand } from '../hooks/useCommand.js';
7
7
  import { getInstalledAssets, readLockfile } from '../lib/lockfile.js';
8
8
  import { findProjectRoot } from '../lib/paths.js';
9
9
  import { AssetType } from '../lib/schemas/manifest.js';
10
- import { resolveTool } from '../lib/tool-resolver.js';
10
+ import { resolveTools } from '../lib/tool-resolver.js';
11
11
  export const description = 'List installed assets';
12
12
  export const options = z.object({
13
13
  projectRoot: z
@@ -32,11 +32,16 @@ export const options = z.object({
32
32
  export default function List({ options: { projectRoot, tool, type } }) {
33
33
  const state = useCommand(async (progress) => {
34
34
  const projectDir = findProjectRoot(projectRoot);
35
- const { tool: resolvedTool } = await resolveTool(tool);
35
+ const resolved = await resolveTools(tool);
36
+ const resolvedToolNames = resolved.map((r) => r.tool);
36
37
  progress('Reading lockfile...');
37
38
  const lockfile = await readLockfile(projectDir);
38
- const assets = getInstalledAssets(lockfile, type);
39
- return { assets, tool: resolvedTool };
39
+ const allAssets = getInstalledAssets(lockfile, type);
40
+ // When a specific tool is requested, filter to assets for that tool
41
+ const assets = tool
42
+ ? allAssets.filter((a) => a.tool === tool || (!a.tool && resolvedToolNames.includes(tool)))
43
+ : allAssets;
44
+ return { assets, multiTool: resolved.length > 1, tools: resolvedToolNames };
40
45
  }, [projectRoot, tool, type], 'Reading lockfile...');
41
46
  if (state.status === 'loading') {
42
47
  return _jsx(Spinner, { message: state.message });
@@ -44,18 +49,23 @@ export default function List({ options: { projectRoot, tool, type } }) {
44
49
  if (state.status === 'error') {
45
50
  return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
46
51
  }
47
- const { assets, tool: resolvedTool } = state.data;
52
+ const { assets, multiTool, tools } = state.data;
53
+ const toolLabel = tools.join(', ');
48
54
  if (assets.length === 0) {
49
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { dimColor: true, children: ["No assets installed", type ? ` (type: ${type})` : '', " for ", resolvedTool, "."] }), _jsxs(Text, { dimColor: true, children: ["Run ", _jsxs(Text, { bold: true, children: ["atk search ", '<query>'] }), " to find assets to install."] })] }));
55
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { dimColor: true, children: ["No assets installed", type ? ` (type: ${type})` : '', " for ", toolLabel, "."] }), _jsxs(Text, { dimColor: true, children: ["Run ", _jsxs(Text, { bold: true, children: ["atk search ", '<query>'] }), " to find assets to install."] })] }));
50
56
  }
51
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { wrap: 'truncate', children: [_jsx(Text, { bold: true, children: assets.length }), " asset", assets.length !== 1 ? 's' : '', " installed for", ' ', _jsx(Text, { color: 'cyan', children: resolvedTool }), type && _jsxs(Text, { dimColor: true, children: [" (type: ", type, ")"] }), ":"] }), _jsx(Text, { children: " " }), _jsx(AssetTable, { assets: assets.map((asset) => ({
57
+ const columns = multiTool
58
+ ? ['name', 'type', 'tool', 'version', 'files', 'installed']
59
+ : ['name', 'type', 'version', 'files', 'installed'];
60
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { wrap: 'truncate', children: [_jsx(Text, { bold: true, children: assets.length }), " asset", assets.length !== 1 ? 's' : '', " installed for", ' ', _jsx(Text, { color: 'cyan', children: toolLabel }), type && _jsxs(Text, { dimColor: true, children: [" (type: ", type, ")"] }), ":"] }), _jsx(Text, { children: " " }), _jsx(AssetTable, { assets: assets.map((asset) => ({
52
61
  fileCount: asset.files.length,
53
62
  frozen: asset.frozen,
54
63
  installedAt: asset.installedAt,
55
64
  name: asset.name,
56
65
  pinnedVersion: asset.pinnedVersion,
66
+ tool: asset.tool,
57
67
  type: asset.type,
58
68
  version: asset.version,
59
- })), columns: ['name', 'type', 'version', 'files', 'installed'] })] }));
69
+ })), columns: columns })] }));
60
70
  }
61
71
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CACH;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,iCAAiC;KAC/C,CAAC,CACH;IACH,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACjC,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,8EAA8E;KAC5F,CAAC,CACH;CACF,CAAC,CAAC;AAYH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAS;IAC1E,MAAM,KAAK,GAAG,UAAU,CACtB,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtD,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAErD,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI;YACjB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3F,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC9E,CAAC,EACD,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EACzB,qBAAqB,CACtB,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAC,OAAO,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAS,KAAK,CAAC,OAAO,IAAQ,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,QAAQ,0CACQ,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,WAAO,SAAS,SAC7D,EACP,MAAC,IAAI,IAAC,QAAQ,2BACR,MAAC,IAAI,IAAC,IAAI,kCAAa,SAAS,IAAQ,mCACvC,IACH,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAwE,SAAS;QAC5F,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;QAC3D,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEtD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,IAAI,EAAC,UAAU,aACnB,KAAC,IAAI,IAAC,IAAI,kBAAE,MAAM,CAAC,MAAM,GAAQ,YAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,oBAAgB,GAAG,EACzF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,GAAQ,EACpC,IAAI,IAAI,MAAC,IAAI,IAAC,QAAQ,+BAAU,IAAI,SAAS,SACzC,EACP,KAAC,IAAI,oBAAS,EACd,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC,EACH,OAAO,EAAE,OAAO,GAChB,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"outdated.d.ts","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,WAAW,gDAAgD,CAAC;AAEzE,eAAO,MAAM,OAAO;;;;;;;;;;;;iBAkClB,CAAC;AAcH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAqIxF"}
1
+ {"version":3,"file":"outdated.d.ts","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,WAAW,gDAAgD,CAAC;AAEzE,eAAO,MAAM,OAAO;;;;;;;;;;;;iBAkClB,CAAC;AAcH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAsIxF"}
@@ -9,7 +9,7 @@ import { readLockfile } from '../lib/lockfile.js';
9
9
  import { findProjectRoot } from '../lib/paths.js';
10
10
  import { fetchRegistry } from '../lib/registry.js';
11
11
  import { AssetType } from '../lib/schemas/manifest.js';
12
- import { resolveTool } from '../lib/tool-resolver.js';
12
+ import { resolveTools } from '../lib/tool-resolver.js';
13
13
  import { checkOutdated } from '../lib/updater.js';
14
14
  export const description = 'Show available updates for installed assets';
15
15
  export const options = z.object({
@@ -52,7 +52,8 @@ export default function Outdated({ options: { projectRoot, refresh, tool, type }
52
52
  const cols = COLUMN_WIDTHS[bp];
53
53
  const state = useCommand(async (progress) => {
54
54
  const projectDir = findProjectRoot(projectRoot);
55
- const { tool: resolvedTool } = await resolveTool(tool);
55
+ const resolved = await resolveTools(tool);
56
+ const toolLabel = resolved.map((r) => r.tool).join(', ');
56
57
  progress('Fetching registry...');
57
58
  const registry = await fetchRegistry({ force: refresh });
58
59
  progress('Checking versions...');
@@ -61,7 +62,7 @@ export default function Outdated({ options: { projectRoot, refresh, tool, type }
61
62
  const outdated = type ? allOutdated.filter((a) => a.type === type) : allOutdated;
62
63
  const assets = lockfile.assets ?? [];
63
64
  const totalInstalled = type ? assets.filter((a) => a.type === type).length : assets.length;
64
- return { outdated, tool: resolvedTool, totalInstalled };
65
+ return { outdated, toolLabel, totalInstalled };
65
66
  }, [projectRoot, refresh, tool, type]);
66
67
  if (state.status === 'loading') {
67
68
  return _jsx(Spinner, { message: state.message });
@@ -69,13 +70,13 @@ export default function Outdated({ options: { projectRoot, refresh, tool, type }
69
70
  if (state.status === 'error') {
70
71
  return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
71
72
  }
72
- const { outdated, tool: resolvedTool, totalInstalled } = state.data;
73
+ const { outdated, toolLabel, totalInstalled } = state.data;
73
74
  if (totalInstalled === 0) {
74
- return (_jsxs(Text, { dimColor: true, children: ["No assets installed", type ? ` (type: ${type})` : '', " for ", resolvedTool, "."] }));
75
+ return (_jsxs(Text, { dimColor: true, children: ["No assets installed", type ? ` (type: ${type})` : '', " for ", toolLabel, "."] }));
75
76
  }
76
77
  if (outdated.length === 0) {
77
78
  return (_jsxs(Text, { color: 'green', children: ["\u2713 All ", totalInstalled, " installed asset", totalInstalled !== 1 ? 's' : '', type ? ` (type: ${type})` : '', " ", totalInstalled !== 1 ? 'are' : 'is', " up to date."] }));
78
79
  }
79
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: outdated.length }), " outdated asset", outdated.length !== 1 ? 's' : '', " for ", _jsx(Text, { color: 'cyan', children: resolvedTool }), ":"] }), _jsx(Text, { children: " " }), _jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.name, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Name" }) }), showType && (_jsx(Box, { flexShrink: 0, width: 'type' in cols ? cols.type : 0, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Type" }) })), _jsx(Box, { flexShrink: 0, width: cols.installed, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Installed" }) }), _jsx(Box, { flexShrink: 0, width: cols.latest, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Latest" }) }), _jsx(Box, { flexGrow: 1, overflow: 'hidden', children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: ' ' }) })] }), outdated.map((asset) => (_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.name, children: _jsx(Text, { color: 'cyan', wrap: 'truncate', children: asset.name }) }), showType && (_jsx(Box, { flexShrink: 0, width: 'type' in cols ? cols.type : 0, children: _jsx(Text, { wrap: 'truncate', children: asset.type }) })), _jsx(Box, { flexShrink: 0, width: cols.installed, children: _jsx(Text, { color: 'red', wrap: 'truncate', children: asset.installedVersion }) }), _jsx(Box, { flexShrink: 0, width: cols.latest, children: _jsx(Text, { color: 'green', wrap: 'truncate', children: asset.latestVersion }) }), _jsx(Box, { flexGrow: 1, overflow: 'hidden', children: asset.pinned ? (_jsx(Text, { color: 'yellow', children: "Pinned" })) : asset.frozen ? (_jsx(Text, { color: 'cyan', children: "Frozen" })) : (_jsx(Text, {})) })] }, `${asset.type}/${asset.name}`))), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Run ", _jsx(Text, { bold: true, children: "atk update" }), " to update all, or ", _jsxs(Text, { bold: true, children: ["atk update ", '<name>'] }), " for a specific asset."] })] }));
80
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: outdated.length }), " outdated asset", outdated.length !== 1 ? 's' : '', " for ", _jsx(Text, { color: 'cyan', children: toolLabel }), ":"] }), _jsx(Text, { children: " " }), _jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.name, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Name" }) }), showType && (_jsx(Box, { flexShrink: 0, width: 'type' in cols ? cols.type : 0, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Type" }) })), _jsx(Box, { flexShrink: 0, width: cols.installed, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Installed" }) }), _jsx(Box, { flexShrink: 0, width: cols.latest, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Latest" }) }), _jsx(Box, { flexGrow: 1, overflow: 'hidden', children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: ' ' }) })] }), outdated.map((asset) => (_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.name, children: _jsx(Text, { color: 'cyan', wrap: 'truncate', children: asset.name }) }), showType && (_jsx(Box, { flexShrink: 0, width: 'type' in cols ? cols.type : 0, children: _jsx(Text, { wrap: 'truncate', children: asset.type }) })), _jsx(Box, { flexShrink: 0, width: cols.installed, children: _jsx(Text, { color: 'red', wrap: 'truncate', children: asset.installedVersion }) }), _jsx(Box, { flexShrink: 0, width: cols.latest, children: _jsx(Text, { color: 'green', wrap: 'truncate', children: asset.latestVersion }) }), _jsx(Box, { flexGrow: 1, overflow: 'hidden', children: asset.pinned ? (_jsx(Text, { color: 'yellow', children: "Pinned" })) : asset.frozen ? (_jsx(Text, { color: 'cyan', children: "Frozen" })) : (_jsx(Text, {})) })] }, `${asset.type}/${asset.name}`))), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Run ", _jsx(Text, { bold: true, children: "atk update" }), " to update all, or ", _jsxs(Text, { bold: true, children: ["atk update ", '<name>'] }), " for a specific asset."] })] }));
80
81
  }
81
82
  //# sourceMappingURL=outdated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outdated.js","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outdated.js","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;iBAqClB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAsBF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,kDA0PnF"}
1
+ {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,WAAW,iCAAiC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;iBAqClB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAsBF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,kDA0OnF"}
@@ -1,13 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Box, Text, useApp, useInput, useStdin } from 'ink';
2
+ import { Box, Text, useApp } from 'ink';
3
3
  import { option } from 'pastel';
4
4
  import { useEffect, useState } from 'react';
5
5
  import { z } from 'zod';
6
6
  import { DryRunBanner, Spinner } from '../components/index.js';
7
7
  import { useCommand } from '../hooks/useCommand.js';
8
+ import { useConfirmation } from '../hooks/useConfirmation.js';
9
+ import { loadAdapter } from '../lib/adapter.js';
8
10
  import { findAllOrphanedAssets, LockfileLockedError, readLockfile, removeAssetFromLockfile, withLockfileLock, writeLockfile, } from '../lib/lockfile.js';
9
11
  import { findProjectRoot } from '../lib/paths.js';
10
- import { resolveTool } from '../lib/tool-resolver.js';
12
+ import { resolveTools } from '../lib/tool-resolver.js';
11
13
  import { removeSingleAsset } from '../lib/uninstaller.js';
12
14
  export const description = 'Remove orphaned dependencies';
13
15
  export const options = z.object({
@@ -41,28 +43,27 @@ export const options = z.object({
41
43
  })),
42
44
  });
43
45
  export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
44
- const [confirmed, setConfirmed] = useState(false);
45
- const [cancelled, setCancelled] = useState(false);
46
- const [executing, setExecuting] = useState(false);
47
46
  const [pruneResult, setPruneResult] = useState(null);
48
47
  const [pruneError, setPruneError] = useState(null);
49
48
  const [pruneProgress, setPruneProgress] = useState('Removing orphans...');
50
49
  const { exit } = useApp();
51
50
  const state = useCommand(async (progress) => {
52
51
  const projectDir = findProjectRoot(projectRoot);
53
- const { adapter, tool: resolvedTool } = await resolveTool(tool);
52
+ const resolved = await resolveTools(tool);
53
+ const defaultAdapter = resolved[0].adapter;
54
+ const toolNames = resolved.map((r) => r.tool);
54
55
  progress('Reading lockfile...');
55
56
  const lockfile = await readLockfile(projectDir);
56
57
  if ((lockfile.assets ?? []).length === 0) {
57
- return { outcome: 'no-orphans', tool: resolvedTool };
58
+ return { outcome: 'no-orphans', toolNames };
58
59
  }
59
60
  progress('Scanning for orphaned dependencies...');
60
61
  const orphans = findAllOrphanedAssets(lockfile);
61
62
  if (orphans.length === 0) {
62
- return { outcome: 'no-orphans', tool: resolvedTool };
63
+ return { outcome: 'no-orphans', toolNames };
63
64
  }
64
65
  if (dryRun) {
65
- return { orphans, outcome: 'dry-run', tool: resolvedTool };
66
+ return { orphans, outcome: 'dry-run', toolNames };
66
67
  }
67
68
  if (yes) {
68
69
  try {
@@ -75,7 +76,9 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
75
76
  for (const orphan of freshOrphans) {
76
77
  try {
77
78
  progress(`Removing ${orphan.name}...`);
78
- await removeSingleAsset(orphan, adapter, projectDir);
79
+ // Use per-asset tool field for correct adapter; fall back to default
80
+ const effectiveAdapter = orphan.tool ? await loadAdapter(orphan.tool) : defaultAdapter;
81
+ await removeSingleAsset(orphan, effectiveAdapter, projectDir);
79
82
  currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type);
80
83
  removed.push(orphan.name);
81
84
  }
@@ -90,7 +93,7 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
90
93
  await writeLockfile(projectDir, currentLockfile);
91
94
  return { errors, orphans: freshOrphans, removed };
92
95
  });
93
- return { ...result, adapter, outcome: 'pruned', tool: resolvedTool };
96
+ return { ...result, defaultAdapter, outcome: 'pruned', toolNames };
94
97
  }
95
98
  catch (error) {
96
99
  if (error instanceof LockfileLockedError) {
@@ -102,30 +105,14 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
102
105
  if (!process.stdin.isTTY) {
103
106
  throw new Error('Confirmation required but stdin is not interactive. Use --yes (-y) to skip the prompt.');
104
107
  }
105
- return { adapter, orphans, outcome: 'confirming', tool: resolvedTool };
108
+ return { defaultAdapter, orphans, outcome: 'confirming', toolNames };
106
109
  }, [dryRun, projectRoot, tool, yes]);
107
- // Handle confirmation input
108
- const isConfirming = !confirmed && !cancelled && state.status === 'done' && state.data.outcome === 'confirming';
109
- const { isRawModeSupported: isTTY } = useStdin();
110
- useInput((input) => {
111
- if (input === 'y' || input === 'Y') {
112
- setConfirmed(true);
113
- }
114
- else if (input === 'n' || input === 'N') {
115
- setCancelled(true);
116
- }
117
- }, { isActive: isConfirming && isTTY });
118
- // Auto-cancel in non-TTY mode (no interactive prompt available)
119
- useEffect(() => {
120
- if (isConfirming && !isTTY) {
121
- setCancelled(true);
122
- }
123
- }, [isConfirming, isTTY]);
110
+ // Confirmation hook — active only during the confirming phase
111
+ const confirmation = useConfirmation(state.status === 'done' && state.data.outcome === 'confirming');
124
112
  // Execute prune after confirmation
125
113
  useEffect(() => {
126
- if (confirmed && !executing && state.status === 'done' && state.data.outcome === 'confirming') {
127
- setExecuting(true);
128
- const { adapter: confirmedAdapter, orphans } = state.data;
114
+ if (confirmation.isConfirmed && !pruneResult && !pruneError && state.status === 'done' && state.data.outcome === 'confirming') {
115
+ const { defaultAdapter: confirmedDefaultAdapter } = state.data;
129
116
  const projectDir = findProjectRoot(projectRoot);
130
117
  withLockfileLock(projectDir, async () => {
131
118
  let currentLockfile = await readLockfile(projectDir);
@@ -135,7 +122,9 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
135
122
  for (const orphan of freshOrphans) {
136
123
  setPruneProgress(`Removing ${orphan.name}...`);
137
124
  try {
138
- await removeSingleAsset(orphan, confirmedAdapter, projectDir);
125
+ // Use per-asset tool field for correct adapter; fall back to default
126
+ const effectiveAdapter = orphan.tool ? await loadAdapter(orphan.tool) : confirmedDefaultAdapter;
127
+ await removeSingleAsset(orphan, effectiveAdapter, projectDir);
139
128
  currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type);
140
129
  removed.push(orphan.name);
141
130
  }
@@ -148,7 +137,7 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
148
137
  }
149
138
  setPruneProgress('Updating lockfile...');
150
139
  await writeLockfile(projectDir, currentLockfile);
151
- return { errors, orphans, removed };
140
+ return { errors, orphans: freshOrphans, removed };
152
141
  })
153
142
  .then((result) => {
154
143
  setPruneResult(result);
@@ -157,10 +146,10 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
157
146
  setPruneError(err instanceof Error ? err.message : String(err));
158
147
  });
159
148
  }
160
- }, [confirmed, executing, state, projectRoot]);
149
+ }, [confirmation.isConfirmed, pruneResult, pruneError, state, projectRoot]);
161
150
  // Exit after cancellation
162
151
  useEffect(() => {
163
- if (cancelled) {
152
+ if (confirmation.isCancelled) {
164
153
  const timer = setTimeout(() => {
165
154
  exit();
166
155
  }, 100);
@@ -168,7 +157,7 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
168
157
  clearTimeout(timer);
169
158
  };
170
159
  }
171
- }, [cancelled, exit]);
160
+ }, [confirmation.isCancelled, exit]);
172
161
  // --- Render ---
173
162
  if (state.status === 'loading') {
174
163
  return _jsx(Spinner, { message: state.message });
@@ -178,33 +167,33 @@ export default function Prune({ options: { dryRun, projectRoot, tool, yes } }) {
178
167
  }
179
168
  const { data } = state;
180
169
  if (data.outcome === 'no-orphans') {
181
- return _jsxs(Text, { dimColor: true, children: ["No orphaned dependencies found for ", data.tool, ". Nothing to prune."] });
170
+ return _jsxs(Text, { dimColor: true, children: ["No orphaned dependencies found for ", data.toolNames.join(', '), ". Nothing to prune."] });
182
171
  }
183
172
  if (data.outcome === 'dry-run') {
184
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'prune', count: data.orphans.length, tool: data.tool }), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Orphaned dependencies:" }), data.orphans.map((o) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", o.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", o.type, ") v", o.version] })] }, `orphan-${o.type}/${o.name}`)))] }));
173
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'prune', count: data.orphans.length, tools: data.toolNames }), _jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Orphaned dependencies:" }), data.orphans.map((o) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", o.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", o.type, ") v", o.version] })] }, `orphan-${o.type}/${o.name}`)))] }));
185
174
  }
186
175
  if (data.outcome === 'pruned') {
187
- return _jsx(PruneSummary, { errors: data.errors, orphans: data.orphans, removed: data.removed, tool: data.tool });
176
+ return _jsx(PruneSummary, { errors: data.errors, orphans: data.orphans, removed: data.removed, toolNames: data.toolNames });
188
177
  }
189
178
  if (data.outcome === 'confirming') {
190
- if (cancelled) {
191
- return isTTY ? (_jsx(Text, { color: 'yellow', children: "Cancelled." })) : (_jsx(Text, { color: 'yellow', children: "Confirmation required. Use --yes (-y) to skip the prompt." }));
179
+ if (confirmation.isCancelled) {
180
+ return confirmation.isTTY ? (_jsx(Text, { color: 'yellow', children: "Cancelled." })) : (_jsx(Text, { color: 'yellow', children: "Confirmation required. Use --yes (-y) to skip the prompt." }));
192
181
  }
193
182
  if (pruneError) {
194
183
  return _jsxs(Text, { color: 'red', children: ["Error: ", pruneError] });
195
184
  }
196
- if (confirmed && !pruneResult) {
185
+ if (confirmation.isConfirmed && !pruneResult) {
197
186
  return _jsx(Spinner, { message: pruneProgress });
198
187
  }
199
- if (confirmed && pruneResult) {
200
- return (_jsx(PruneSummary, { errors: pruneResult.errors, orphans: data.orphans, removed: pruneResult.removed, tool: data.tool }));
188
+ if (confirmation.isConfirmed && pruneResult) {
189
+ return (_jsx(PruneSummary, { errors: pruneResult.errors, orphans: data.orphans, removed: pruneResult.removed, toolNames: data.toolNames }));
201
190
  }
202
191
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { dimColor: true, children: "Orphaned dependencies to remove:" }), data.orphans.map((o) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", o.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", o.type, ") v", o.version] })] }, `orphan-${o.type}/${o.name}`))), _jsx(Text, { children: " " }), _jsxs(Text, { children: ["Remove ", data.orphans.length, " orphan", data.orphans.length !== 1 ? 's' : '', "? (y/n)"] })] }));
203
192
  }
204
193
  return null;
205
194
  }
206
- function PruneSummary({ errors, orphans, removed, tool }) {
207
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Pruned ", removed.length, " orphaned dependenc", removed.length !== 1 ? 'ies' : 'y', " from ", tool] }), removed.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), orphans
195
+ function PruneSummary({ errors, orphans, removed, toolNames }) {
196
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["\u2713 Pruned ", removed.length, " orphaned dependenc", removed.length !== 1 ? 'ies' : 'y', " from ", toolNames.join(', ')] }), removed.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), orphans
208
197
  .filter((o) => removed.includes(o.name))
209
198
  .map((o) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'green', children: ["\u2713 ", o.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", o.type, ") v", o.version] })] }, `orphan-${o.type}/${o.name}`)))] })), errors.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: 'red', children: "Errors:" }), errors.map((e) => (_jsxs(Text, { color: 'red', children: [' ', "\u2715 ", e.name, ": ", e.error] }, `err-${e.name}`)))] }))] }));
210
199
  }