@detergent-software/atk 0.12.1-dev.2
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/build/cli.d.ts +3 -0
- package/build/cli.d.ts.map +1 -0
- package/build/cli.js +35 -0
- package/build/cli.js.map +1 -0
- package/build/commands/_app.d.ts +3 -0
- package/build/commands/_app.d.ts.map +1 -0
- package/build/commands/_app.js +12 -0
- package/build/commands/_app.js.map +1 -0
- package/build/commands/audit.d.ts +12 -0
- package/build/commands/audit.d.ts.map +1 -0
- package/build/commands/audit.js +78 -0
- package/build/commands/audit.js.map +1 -0
- package/build/commands/browse.d.ts +15 -0
- package/build/commands/browse.d.ts.map +1 -0
- package/build/commands/browse.js +284 -0
- package/build/commands/browse.js.map +1 -0
- package/build/commands/cache.d.ts +13 -0
- package/build/commands/cache.d.ts.map +1 -0
- package/build/commands/cache.js +67 -0
- package/build/commands/cache.js.map +1 -0
- package/build/commands/config.d.ts +13 -0
- package/build/commands/config.d.ts.map +1 -0
- package/build/commands/config.js +62 -0
- package/build/commands/config.js.map +1 -0
- package/build/commands/diff.d.ts +16 -0
- package/build/commands/diff.d.ts.map +1 -0
- package/build/commands/diff.js +158 -0
- package/build/commands/diff.js.map +1 -0
- package/build/commands/doctor.d.ts +11 -0
- package/build/commands/doctor.d.ts.map +1 -0
- package/build/commands/doctor.js +30 -0
- package/build/commands/doctor.js.map +1 -0
- package/build/commands/index.d.ts +3 -0
- package/build/commands/index.d.ts.map +1 -0
- package/build/commands/index.js +30 -0
- package/build/commands/index.js.map +1 -0
- package/build/commands/info.d.ts +25 -0
- package/build/commands/info.d.ts.map +1 -0
- package/build/commands/info.js +198 -0
- package/build/commands/info.js.map +1 -0
- package/build/commands/init.d.ts +17 -0
- package/build/commands/init.d.ts.map +1 -0
- package/build/commands/init.js +504 -0
- package/build/commands/init.js.map +1 -0
- package/build/commands/install.d.ts +18 -0
- package/build/commands/install.d.ts.map +1 -0
- package/build/commands/install.js +186 -0
- package/build/commands/install.js.map +1 -0
- package/build/commands/list.d.ts +20 -0
- package/build/commands/list.d.ts.map +1 -0
- package/build/commands/list.js +61 -0
- package/build/commands/list.js.map +1 -0
- package/build/commands/outdated.d.ts +21 -0
- package/build/commands/outdated.d.ts.map +1 -0
- package/build/commands/outdated.js +81 -0
- package/build/commands/outdated.js.map +1 -0
- package/build/commands/pin.d.ts +22 -0
- package/build/commands/pin.d.ts.map +1 -0
- package/build/commands/pin.js +94 -0
- package/build/commands/pin.js.map +1 -0
- package/build/commands/prune.d.ts +14 -0
- package/build/commands/prune.d.ts.map +1 -0
- package/build/commands/prune.js +203 -0
- package/build/commands/prune.js.map +1 -0
- package/build/commands/publish.d.ts +14 -0
- package/build/commands/publish.d.ts.map +1 -0
- package/build/commands/publish.js +345 -0
- package/build/commands/publish.js.map +1 -0
- package/build/commands/search.d.ts +16 -0
- package/build/commands/search.d.ts.map +1 -0
- package/build/commands/search.js +80 -0
- package/build/commands/search.js.map +1 -0
- package/build/commands/sync.d.ts +15 -0
- package/build/commands/sync.d.ts.map +1 -0
- package/build/commands/sync.js +209 -0
- package/build/commands/sync.js.map +1 -0
- package/build/commands/uninstall.d.ts +18 -0
- package/build/commands/uninstall.d.ts.map +1 -0
- package/build/commands/uninstall.js +304 -0
- package/build/commands/uninstall.js.map +1 -0
- package/build/commands/unpin.d.ts +22 -0
- package/build/commands/unpin.d.ts.map +1 -0
- package/build/commands/unpin.js +79 -0
- package/build/commands/unpin.js.map +1 -0
- package/build/commands/update.d.ts +17 -0
- package/build/commands/update.d.ts.map +1 -0
- package/build/commands/update.js +151 -0
- package/build/commands/update.js.map +1 -0
- package/build/commands/why.d.ts +23 -0
- package/build/commands/why.d.ts.map +1 -0
- package/build/commands/why.js +108 -0
- package/build/commands/why.js.map +1 -0
- package/build/components/AssetDetail.d.ts +32 -0
- package/build/components/AssetDetail.d.ts.map +1 -0
- package/build/components/AssetDetail.js +45 -0
- package/build/components/AssetDetail.js.map +1 -0
- package/build/components/AssetTable.d.ts +25 -0
- package/build/components/AssetTable.d.ts.map +1 -0
- package/build/components/AssetTable.js +96 -0
- package/build/components/AssetTable.js.map +1 -0
- package/build/components/BrowseExpandedBundle.d.ts +26 -0
- package/build/components/BrowseExpandedBundle.d.ts.map +1 -0
- package/build/components/BrowseExpandedBundle.js +59 -0
- package/build/components/BrowseExpandedBundle.js.map +1 -0
- package/build/components/BrowseExpandedRow.d.ts +14 -0
- package/build/components/BrowseExpandedRow.d.ts.map +1 -0
- package/build/components/BrowseExpandedRow.js +9 -0
- package/build/components/BrowseExpandedRow.js.map +1 -0
- package/build/components/BrowseList.d.ts +26 -0
- package/build/components/BrowseList.d.ts.map +1 -0
- package/build/components/BrowseList.js +101 -0
- package/build/components/BrowseList.js.map +1 -0
- package/build/components/BundleDetail.d.ts +7 -0
- package/build/components/BundleDetail.d.ts.map +1 -0
- package/build/components/BundleDetail.js +12 -0
- package/build/components/BundleDetail.js.map +1 -0
- package/build/components/DependencyTree.d.ts +19 -0
- package/build/components/DependencyTree.d.ts.map +1 -0
- package/build/components/DependencyTree.js +21 -0
- package/build/components/DependencyTree.js.map +1 -0
- package/build/components/DiagnosticList.d.ts +19 -0
- package/build/components/DiagnosticList.d.ts.map +1 -0
- package/build/components/DiagnosticList.js +17 -0
- package/build/components/DiagnosticList.js.map +1 -0
- package/build/components/DiffView.d.ts +30 -0
- package/build/components/DiffView.d.ts.map +1 -0
- package/build/components/DiffView.js +32 -0
- package/build/components/DiffView.js.map +1 -0
- package/build/components/DryRunBanner.d.ts +11 -0
- package/build/components/DryRunBanner.d.ts.map +1 -0
- package/build/components/DryRunBanner.js +6 -0
- package/build/components/DryRunBanner.js.map +1 -0
- package/build/components/Field.d.ts +12 -0
- package/build/components/Field.d.ts.map +1 -0
- package/build/components/Field.js +9 -0
- package/build/components/Field.js.map +1 -0
- package/build/components/FilterBar.d.ts +18 -0
- package/build/components/FilterBar.d.ts.map +1 -0
- package/build/components/FilterBar.js +21 -0
- package/build/components/FilterBar.js.map +1 -0
- package/build/components/Header.d.ts +13 -0
- package/build/components/Header.d.ts.map +1 -0
- package/build/components/Header.js +20 -0
- package/build/components/Header.js.map +1 -0
- package/build/components/HelpBar.d.ts +11 -0
- package/build/components/HelpBar.d.ts.map +1 -0
- package/build/components/HelpBar.js +9 -0
- package/build/components/HelpBar.js.map +1 -0
- package/build/components/InstallConfirmBar.d.ts +9 -0
- package/build/components/InstallConfirmBar.d.ts.map +1 -0
- package/build/components/InstallConfirmBar.js +23 -0
- package/build/components/InstallConfirmBar.js.map +1 -0
- package/build/components/InstallSummary.d.ts +29 -0
- package/build/components/InstallSummary.d.ts.map +1 -0
- package/build/components/InstallSummary.js +12 -0
- package/build/components/InstallSummary.js.map +1 -0
- package/build/components/SectionDivider.d.ts +5 -0
- package/build/components/SectionDivider.d.ts.map +1 -0
- package/build/components/SectionDivider.js +11 -0
- package/build/components/SectionDivider.js.map +1 -0
- package/build/components/Spinner.d.ts +13 -0
- package/build/components/Spinner.d.ts.map +1 -0
- package/build/components/Spinner.js +11 -0
- package/build/components/Spinner.js.map +1 -0
- package/build/components/StatusBadge.d.ts +23 -0
- package/build/components/StatusBadge.d.ts.map +1 -0
- package/build/components/StatusBadge.js +43 -0
- package/build/components/StatusBadge.js.map +1 -0
- package/build/components/index.d.ts +20 -0
- package/build/components/index.d.ts.map +1 -0
- package/build/components/index.js +20 -0
- package/build/components/index.js.map +1 -0
- package/build/hooks/useBrowseState.d.ts +122 -0
- package/build/hooks/useBrowseState.d.ts.map +1 -0
- package/build/hooks/useBrowseState.js +315 -0
- package/build/hooks/useBrowseState.js.map +1 -0
- package/build/hooks/useCommand.d.ts +23 -0
- package/build/hooks/useCommand.d.ts.map +1 -0
- package/build/hooks/useCommand.js +43 -0
- package/build/hooks/useCommand.js.map +1 -0
- package/build/lib/adapter.d.ts +40 -0
- package/build/lib/adapter.d.ts.map +1 -0
- package/build/lib/adapter.js +112 -0
- package/build/lib/adapter.js.map +1 -0
- package/build/lib/auth.d.ts +31 -0
- package/build/lib/auth.d.ts.map +1 -0
- package/build/lib/auth.js +101 -0
- package/build/lib/auth.js.map +1 -0
- package/build/lib/breakpoints.d.ts +3 -0
- package/build/lib/breakpoints.d.ts.map +1 -0
- package/build/lib/breakpoints.js +8 -0
- package/build/lib/breakpoints.js.map +1 -0
- package/build/lib/checksum.d.ts +31 -0
- package/build/lib/checksum.d.ts.map +1 -0
- package/build/lib/checksum.js +78 -0
- package/build/lib/checksum.js.map +1 -0
- package/build/lib/config.d.ts +42 -0
- package/build/lib/config.d.ts.map +1 -0
- package/build/lib/config.js +123 -0
- package/build/lib/config.js.map +1 -0
- package/build/lib/detector.d.ts +35 -0
- package/build/lib/detector.d.ts.map +1 -0
- package/build/lib/detector.js +125 -0
- package/build/lib/detector.js.map +1 -0
- package/build/lib/diagnostics.d.ts +10 -0
- package/build/lib/diagnostics.d.ts.map +1 -0
- package/build/lib/diagnostics.js +195 -0
- package/build/lib/diagnostics.js.map +1 -0
- package/build/lib/diff.d.ts +34 -0
- package/build/lib/diff.d.ts.map +1 -0
- package/build/lib/diff.js +78 -0
- package/build/lib/diff.js.map +1 -0
- package/build/lib/fetch-retry.d.ts +43 -0
- package/build/lib/fetch-retry.d.ts.map +1 -0
- package/build/lib/fetch-retry.js +137 -0
- package/build/lib/fetch-retry.js.map +1 -0
- package/build/lib/github.d.ts +57 -0
- package/build/lib/github.d.ts.map +1 -0
- package/build/lib/github.js +96 -0
- package/build/lib/github.js.map +1 -0
- package/build/lib/gitignore.d.ts +37 -0
- package/build/lib/gitignore.d.ts.map +1 -0
- package/build/lib/gitignore.js +142 -0
- package/build/lib/gitignore.js.map +1 -0
- package/build/lib/init.d.ts +100 -0
- package/build/lib/init.d.ts.map +1 -0
- package/build/lib/init.js +295 -0
- package/build/lib/init.js.map +1 -0
- package/build/lib/installer.d.ts +50 -0
- package/build/lib/installer.d.ts.map +1 -0
- package/build/lib/installer.js +435 -0
- package/build/lib/installer.js.map +1 -0
- package/build/lib/lockfile.d.ts +170 -0
- package/build/lib/lockfile.d.ts.map +1 -0
- package/build/lib/lockfile.js +437 -0
- package/build/lib/lockfile.js.map +1 -0
- package/build/lib/markdown.d.ts +9 -0
- package/build/lib/markdown.d.ts.map +1 -0
- package/build/lib/markdown.js +67 -0
- package/build/lib/markdown.js.map +1 -0
- package/build/lib/parse-json.d.ts +34 -0
- package/build/lib/parse-json.d.ts.map +1 -0
- package/build/lib/parse-json.js +52 -0
- package/build/lib/parse-json.js.map +1 -0
- package/build/lib/paths.d.ts +28 -0
- package/build/lib/paths.d.ts.map +1 -0
- package/build/lib/paths.js +68 -0
- package/build/lib/paths.js.map +1 -0
- package/build/lib/publisher.d.ts +49 -0
- package/build/lib/publisher.d.ts.map +1 -0
- package/build/lib/publisher.js +388 -0
- package/build/lib/publisher.js.map +1 -0
- package/build/lib/registry.d.ts +97 -0
- package/build/lib/registry.d.ts.map +1 -0
- package/build/lib/registry.js +248 -0
- package/build/lib/registry.js.map +1 -0
- package/build/lib/resolver.d.ts +50 -0
- package/build/lib/resolver.d.ts.map +1 -0
- package/build/lib/resolver.js +110 -0
- package/build/lib/resolver.js.map +1 -0
- package/build/lib/schemas/adapter.d.ts +33 -0
- package/build/lib/schemas/adapter.d.ts.map +1 -0
- package/build/lib/schemas/adapter.js +27 -0
- package/build/lib/schemas/adapter.js.map +1 -0
- package/build/lib/schemas/bundle.d.ts +38 -0
- package/build/lib/schemas/bundle.d.ts.map +1 -0
- package/build/lib/schemas/bundle.js +19 -0
- package/build/lib/schemas/bundle.js.map +1 -0
- package/build/lib/schemas/config.d.ts +12 -0
- package/build/lib/schemas/config.d.ts.map +1 -0
- package/build/lib/schemas/config.js +14 -0
- package/build/lib/schemas/config.js.map +1 -0
- package/build/lib/schemas/index.d.ts +7 -0
- package/build/lib/schemas/index.d.ts.map +1 -0
- package/build/lib/schemas/index.js +7 -0
- package/build/lib/schemas/index.js.map +1 -0
- package/build/lib/schemas/lockfile.d.ts +102 -0
- package/build/lib/schemas/lockfile.d.ts.map +1 -0
- package/build/lib/schemas/lockfile.js +50 -0
- package/build/lib/schemas/lockfile.js.map +1 -0
- package/build/lib/schemas/manifest.d.ts +91 -0
- package/build/lib/schemas/manifest.d.ts.map +1 -0
- package/build/lib/schemas/manifest.js +42 -0
- package/build/lib/schemas/manifest.js.map +1 -0
- package/build/lib/schemas/registry.d.ts +225 -0
- package/build/lib/schemas/registry.d.ts.map +1 -0
- package/build/lib/schemas/registry.js +59 -0
- package/build/lib/schemas/registry.js.map +1 -0
- package/build/lib/search.d.ts +23 -0
- package/build/lib/search.d.ts.map +1 -0
- package/build/lib/search.js +139 -0
- package/build/lib/search.js.map +1 -0
- package/build/lib/tool-resolver.d.ts +12 -0
- package/build/lib/tool-resolver.d.ts.map +1 -0
- package/build/lib/tool-resolver.js +24 -0
- package/build/lib/tool-resolver.js.map +1 -0
- package/build/lib/uninstaller.d.ts +109 -0
- package/build/lib/uninstaller.d.ts.map +1 -0
- package/build/lib/uninstaller.js +368 -0
- package/build/lib/uninstaller.js.map +1 -0
- package/build/lib/updater.d.ts +68 -0
- package/build/lib/updater.d.ts.map +1 -0
- package/build/lib/updater.js +230 -0
- package/build/lib/updater.js.map +1 -0
- package/build/lib/version.d.ts +13 -0
- package/build/lib/version.d.ts.map +1 -0
- package/build/lib/version.js +30 -0
- package/build/lib/version.js.map +1 -0
- package/build/windows-esm-loader.d.ts +15 -0
- package/build/windows-esm-loader.d.ts.map +1 -0
- package/build/windows-esm-loader.js +11 -0
- package/build/windows-esm-loader.js.map +1 -0
- package/package.json +67 -0
- package/tool-adapters/claude-code.json +34 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { DryRunBanner, InstallSummary, Spinner } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { loadAdapter } from '../lib/adapter.js';
|
|
8
|
+
import { executeInstallPlan } from '../lib/installer.js';
|
|
9
|
+
import { LockfileLockedError, readLockfile, upgradeToDirectInstall, withLockfileLock, writeLockfile, } from '../lib/lockfile.js';
|
|
10
|
+
import { findProjectRoot } from '../lib/paths.js';
|
|
11
|
+
import { fetchRegistry, findBundle, isDeprecated } from '../lib/registry.js';
|
|
12
|
+
import { resolveBundleInstallPlan, resolveInstallPlan } from '../lib/resolver.js';
|
|
13
|
+
import { resolveTool } from '../lib/tool-resolver.js';
|
|
14
|
+
import { parseNameVersion } from '../lib/version.js';
|
|
15
|
+
export const description = 'Install an asset or bundle';
|
|
16
|
+
export const options = z.object({
|
|
17
|
+
dryRun: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.default(false)
|
|
20
|
+
.describe(option({
|
|
21
|
+
alias: 'n',
|
|
22
|
+
description: 'Show what would be installed without making changes',
|
|
23
|
+
})),
|
|
24
|
+
force: z
|
|
25
|
+
.boolean()
|
|
26
|
+
.default(false)
|
|
27
|
+
.describe(option({
|
|
28
|
+
alias: 'f',
|
|
29
|
+
description: 'Force reinstall even if already installed',
|
|
30
|
+
})),
|
|
31
|
+
pin: z
|
|
32
|
+
.boolean()
|
|
33
|
+
.default(false)
|
|
34
|
+
.describe(option({
|
|
35
|
+
alias: 'p',
|
|
36
|
+
description: 'Pin the asset at the installed version',
|
|
37
|
+
})),
|
|
38
|
+
projectRoot: z
|
|
39
|
+
.string()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe(option({
|
|
42
|
+
alias: 'P',
|
|
43
|
+
description: 'Override project root directory',
|
|
44
|
+
})),
|
|
45
|
+
refresh: z
|
|
46
|
+
.boolean()
|
|
47
|
+
.default(false)
|
|
48
|
+
.describe(option({
|
|
49
|
+
description: 'Bypass the registry cache and fetch fresh data',
|
|
50
|
+
})),
|
|
51
|
+
tool: z
|
|
52
|
+
.string()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe(option({
|
|
55
|
+
alias: 'T',
|
|
56
|
+
description: 'Target tool (e.g., claude-code)',
|
|
57
|
+
})),
|
|
58
|
+
});
|
|
59
|
+
export const args = z.tuple([z.string().describe('Asset or bundle name to install (supports name@version syntax)')]);
|
|
60
|
+
export default function Install({ args: [rawName], options: { dryRun, force, pin, projectRoot, refresh, tool }, }) {
|
|
61
|
+
const { name, version: requestedVersion } = parseNameVersion(rawName);
|
|
62
|
+
const state = useCommand(async (progress) => {
|
|
63
|
+
const projectDir = findProjectRoot(projectRoot);
|
|
64
|
+
progress('Loading configuration...');
|
|
65
|
+
const { tool: resolvedTool } = await resolveTool(tool, projectDir);
|
|
66
|
+
progress(`Loading ${resolvedTool} adapter...`);
|
|
67
|
+
const adapter = await loadAdapter(resolvedTool);
|
|
68
|
+
progress('Fetching registry...');
|
|
69
|
+
const registry = await fetchRegistry({ force: refresh });
|
|
70
|
+
const deprecation = isDeprecated(registry, name);
|
|
71
|
+
if (deprecation.deprecated && !force) {
|
|
72
|
+
return {
|
|
73
|
+
name,
|
|
74
|
+
outcome: 'deprecated',
|
|
75
|
+
reason: deprecation.reason,
|
|
76
|
+
replacement: deprecation.replacement,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Check if the name matches a bundle
|
|
80
|
+
const bundle = findBundle(registry, name);
|
|
81
|
+
// Dry-run: resolve plan without acquiring lockfile lock or executing
|
|
82
|
+
if (dryRun) {
|
|
83
|
+
if (bundle) {
|
|
84
|
+
progress('Resolving bundle assets...');
|
|
85
|
+
const plan = resolveBundleInstallPlan(registry, bundle);
|
|
86
|
+
return { bundleName: bundle.name, outcome: 'dry-run-bundle', plan, tool: resolvedTool };
|
|
87
|
+
}
|
|
88
|
+
const versionLabel = requestedVersion ? `@${requestedVersion}` : '';
|
|
89
|
+
progress(`Resolving dependencies${versionLabel}...`);
|
|
90
|
+
const plan = resolveInstallPlan(registry, name, undefined, requestedVersion);
|
|
91
|
+
return { outcome: 'dry-run-install', plan, tool: resolvedTool };
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
return await withLockfileLock(projectDir, async () => {
|
|
95
|
+
if (bundle) {
|
|
96
|
+
// Bundle installation flow
|
|
97
|
+
if (!force) {
|
|
98
|
+
const lockfile = await readLockfile(projectDir, resolvedTool);
|
|
99
|
+
const bundleAssets = bundle.assets ?? [];
|
|
100
|
+
const allInstalled = bundleAssets.length > 0 &&
|
|
101
|
+
bundleAssets.every((ref) => (lockfile.assets ?? []).some((a) => a.name === ref.name && a.type === ref.type));
|
|
102
|
+
if (allInstalled) {
|
|
103
|
+
return {
|
|
104
|
+
bundleName: bundle.name,
|
|
105
|
+
outcome: 'bundle-already-installed',
|
|
106
|
+
version: bundle.version,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
progress('Resolving bundle assets...');
|
|
111
|
+
const plan = resolveBundleInstallPlan(registry, bundle);
|
|
112
|
+
const results = await executeInstallPlan(plan, {
|
|
113
|
+
adapter,
|
|
114
|
+
bundleOrigin: { name: bundle.name, version: bundle.version },
|
|
115
|
+
force,
|
|
116
|
+
onProgress: progress,
|
|
117
|
+
pin,
|
|
118
|
+
projectDir: projectDir,
|
|
119
|
+
});
|
|
120
|
+
return { bundleName: bundle.name, outcome: 'bundle-installed', results, tool: resolvedTool };
|
|
121
|
+
}
|
|
122
|
+
// Single asset installation flow
|
|
123
|
+
if (!force) {
|
|
124
|
+
const lockfile = await readLockfile(projectDir, resolvedTool);
|
|
125
|
+
const existing = (lockfile.assets ?? []).find((a) => a.name === name);
|
|
126
|
+
if (existing) {
|
|
127
|
+
// If it was auto-installed as a dependency, upgrade it to a direct install
|
|
128
|
+
if ((existing.installReason ?? 'direct') === 'dependency') {
|
|
129
|
+
const updated = upgradeToDirectInstall(lockfile, name);
|
|
130
|
+
await writeLockfile(projectDir, updated);
|
|
131
|
+
return { name, outcome: 'upgraded-to-direct', version: existing.version };
|
|
132
|
+
}
|
|
133
|
+
return { name, outcome: 'already-installed', version: existing.version };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const versionLabel = requestedVersion ? `@${requestedVersion}` : '';
|
|
137
|
+
progress(`Resolving dependencies${versionLabel}...`);
|
|
138
|
+
const plan = resolveInstallPlan(registry, name, undefined, requestedVersion);
|
|
139
|
+
const results = await executeInstallPlan(plan, {
|
|
140
|
+
adapter,
|
|
141
|
+
force,
|
|
142
|
+
onProgress: progress,
|
|
143
|
+
pin,
|
|
144
|
+
projectDir: projectDir,
|
|
145
|
+
});
|
|
146
|
+
return { outcome: 'installed', results, tool: resolvedTool };
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (error instanceof LockfileLockedError) {
|
|
151
|
+
throw new Error('Another ATK process is currently modifying this project. Please wait and try again.');
|
|
152
|
+
}
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
}, [dryRun, force, name, pin, refresh, requestedVersion, tool]);
|
|
156
|
+
if (state.status === 'loading') {
|
|
157
|
+
return _jsx(Spinner, { message: state.message });
|
|
158
|
+
}
|
|
159
|
+
if (state.status === 'error') {
|
|
160
|
+
return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
|
|
161
|
+
}
|
|
162
|
+
const { data } = state;
|
|
163
|
+
if (data.outcome === 'bundle-already-installed') {
|
|
164
|
+
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." })] }));
|
|
165
|
+
}
|
|
166
|
+
if (data.outcome === 'bundle-installed') {
|
|
167
|
+
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 })] }));
|
|
168
|
+
}
|
|
169
|
+
if (data.outcome === 'already-installed') {
|
|
170
|
+
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." })] }));
|
|
171
|
+
}
|
|
172
|
+
if (data.outcome === 'upgraded-to-direct') {
|
|
173
|
+
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." })] }));
|
|
174
|
+
}
|
|
175
|
+
if (data.outcome === 'dry-run-install') {
|
|
176
|
+
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}`)))] }));
|
|
177
|
+
}
|
|
178
|
+
if (data.outcome === 'dry-run-bundle') {
|
|
179
|
+
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}`)))] }));
|
|
180
|
+
}
|
|
181
|
+
if (data.outcome === 'deprecated') {
|
|
182
|
+
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." })] }));
|
|
183
|
+
}
|
|
184
|
+
return _jsx(InstallSummary, { results: data.results, tool: data.tool });
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "List installed assets";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
5
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
6
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
skill: "skill";
|
|
8
|
+
agent: "agent";
|
|
9
|
+
rule: "rule";
|
|
10
|
+
hook: "hook";
|
|
11
|
+
"memory-template": "memory-template";
|
|
12
|
+
"mcp-config": "mcp-config";
|
|
13
|
+
}>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
type Props = {
|
|
16
|
+
options: z.infer<typeof options>;
|
|
17
|
+
};
|
|
18
|
+
export default function List({ options: { projectRoot, tool, type } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { AssetTable, Spinner } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { getInstalledAssets, readLockfile } from '../lib/lockfile.js';
|
|
8
|
+
import { findProjectRoot } from '../lib/paths.js';
|
|
9
|
+
import { AssetType } from '../lib/schemas/manifest.js';
|
|
10
|
+
import { resolveTool } from '../lib/tool-resolver.js';
|
|
11
|
+
export const description = 'List installed assets';
|
|
12
|
+
export const options = z.object({
|
|
13
|
+
projectRoot: z
|
|
14
|
+
.string()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe(option({
|
|
17
|
+
alias: 'P',
|
|
18
|
+
description: 'Override project root directory',
|
|
19
|
+
})),
|
|
20
|
+
tool: z
|
|
21
|
+
.string()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe(option({
|
|
24
|
+
alias: 'T',
|
|
25
|
+
description: 'Target tool (e.g., claude-code)',
|
|
26
|
+
})),
|
|
27
|
+
type: AssetType.optional().describe(option({
|
|
28
|
+
alias: 't',
|
|
29
|
+
description: 'Filter by asset type (skill, agent, rule, hook, memory-template, mcp-config)',
|
|
30
|
+
})),
|
|
31
|
+
});
|
|
32
|
+
export default function List({ options: { projectRoot, tool, type } }) {
|
|
33
|
+
const state = useCommand(async (progress) => {
|
|
34
|
+
const projectDir = findProjectRoot(projectRoot);
|
|
35
|
+
progress('Loading configuration...');
|
|
36
|
+
const { tool: resolvedTool } = await resolveTool(tool);
|
|
37
|
+
progress('Reading lockfile...');
|
|
38
|
+
const lockfile = await readLockfile(projectDir, resolvedTool);
|
|
39
|
+
const assets = getInstalledAssets(lockfile, type);
|
|
40
|
+
return { assets, tool: resolvedTool };
|
|
41
|
+
}, [projectRoot, tool, type], 'Reading lockfile...');
|
|
42
|
+
if (state.status === 'loading') {
|
|
43
|
+
return _jsx(Spinner, { message: state.message });
|
|
44
|
+
}
|
|
45
|
+
if (state.status === 'error') {
|
|
46
|
+
return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
|
|
47
|
+
}
|
|
48
|
+
const { assets, tool: resolvedTool } = state.data;
|
|
49
|
+
if (assets.length === 0) {
|
|
50
|
+
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."] })] }));
|
|
51
|
+
}
|
|
52
|
+
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) => ({
|
|
53
|
+
fileCount: asset.files.length,
|
|
54
|
+
installedAt: asset.installedAt,
|
|
55
|
+
name: asset.name,
|
|
56
|
+
pinnedVersion: asset.pinnedVersion,
|
|
57
|
+
type: asset.type,
|
|
58
|
+
version: asset.version,
|
|
59
|
+
})), columns: ['name', 'type', 'version', 'files', 'installed'] })] }));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "Show available updates for installed assets";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
5
|
+
refresh: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
7
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
8
|
+
skill: "skill";
|
|
9
|
+
agent: "agent";
|
|
10
|
+
rule: "rule";
|
|
11
|
+
hook: "hook";
|
|
12
|
+
"memory-template": "memory-template";
|
|
13
|
+
"mcp-config": "mcp-config";
|
|
14
|
+
}>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
type Props = {
|
|
17
|
+
options: z.infer<typeof options>;
|
|
18
|
+
};
|
|
19
|
+
export default function Outdated({ options: { projectRoot, refresh, tool, type } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=outdated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outdated.d.ts","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,WAAW,gDAAgD,CAAC;AAEzE,eAAO,MAAM,OAAO;;;;;;;;;;;;iBAiClB,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,2CAwIxF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useStdout } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { Spinner, StatusBadge } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { getBreakpoint } from '../lib/breakpoints.js';
|
|
8
|
+
import { readLockfile } from '../lib/lockfile.js';
|
|
9
|
+
import { findProjectRoot } from '../lib/paths.js';
|
|
10
|
+
import { fetchRegistry } from '../lib/registry.js';
|
|
11
|
+
import { AssetType } from '../lib/schemas/manifest.js';
|
|
12
|
+
import { resolveTool } from '../lib/tool-resolver.js';
|
|
13
|
+
import { checkOutdated } from '../lib/updater.js';
|
|
14
|
+
export const description = 'Show available updates for installed assets';
|
|
15
|
+
export const options = z.object({
|
|
16
|
+
projectRoot: z
|
|
17
|
+
.string()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe(option({
|
|
20
|
+
alias: 'P',
|
|
21
|
+
description: 'Override project root directory',
|
|
22
|
+
})),
|
|
23
|
+
refresh: z
|
|
24
|
+
.boolean()
|
|
25
|
+
.default(false)
|
|
26
|
+
.describe(option({
|
|
27
|
+
description: 'Bypass the registry cache and fetch fresh data',
|
|
28
|
+
})),
|
|
29
|
+
tool: z
|
|
30
|
+
.string()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe(option({
|
|
33
|
+
alias: 'T',
|
|
34
|
+
description: 'Target tool (e.g., claude-code)',
|
|
35
|
+
})),
|
|
36
|
+
type: AssetType.optional().describe(option({
|
|
37
|
+
alias: 't',
|
|
38
|
+
description: 'Filter by asset type (skill, agent, rule, hook, memory-template, mcp-config)',
|
|
39
|
+
})),
|
|
40
|
+
});
|
|
41
|
+
const COLUMN_WIDTHS = {
|
|
42
|
+
medium: { installed: 12, latest: 12, name: 24, type: 14 },
|
|
43
|
+
narrow: { installed: 12, latest: 12, name: 20 },
|
|
44
|
+
wide: { installed: 12, latest: 12, name: 24, type: 18 },
|
|
45
|
+
};
|
|
46
|
+
export default function Outdated({ options: { projectRoot, refresh, tool, type } }) {
|
|
47
|
+
const { stdout } = useStdout();
|
|
48
|
+
const terminalWidth = stdout?.columns ?? 120;
|
|
49
|
+
const bp = getBreakpoint(terminalWidth);
|
|
50
|
+
const showType = bp !== 'narrow';
|
|
51
|
+
const cols = COLUMN_WIDTHS[bp];
|
|
52
|
+
const state = useCommand(async (progress) => {
|
|
53
|
+
const projectDir = findProjectRoot(projectRoot);
|
|
54
|
+
progress('Loading configuration...');
|
|
55
|
+
const { tool: resolvedTool } = await resolveTool(tool);
|
|
56
|
+
progress('Fetching registry...');
|
|
57
|
+
const registry = await fetchRegistry({ force: refresh });
|
|
58
|
+
progress('Checking versions...');
|
|
59
|
+
const lockfile = await readLockfile(projectDir, resolvedTool);
|
|
60
|
+
const allOutdated = checkOutdated(lockfile, registry);
|
|
61
|
+
const outdated = type ? allOutdated.filter((a) => a.type === type) : allOutdated;
|
|
62
|
+
const assets = lockfile.assets ?? [];
|
|
63
|
+
const totalInstalled = type ? assets.filter((a) => a.type === type).length : assets.length;
|
|
64
|
+
return { outdated, tool: resolvedTool, totalInstalled };
|
|
65
|
+
}, [projectRoot, refresh, tool, type]);
|
|
66
|
+
if (state.status === 'loading') {
|
|
67
|
+
return _jsx(Spinner, { message: state.message });
|
|
68
|
+
}
|
|
69
|
+
if (state.status === 'error') {
|
|
70
|
+
return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
|
|
71
|
+
}
|
|
72
|
+
const { outdated, tool: resolvedTool, totalInstalled } = state.data;
|
|
73
|
+
if (totalInstalled === 0) {
|
|
74
|
+
return (_jsxs(Text, { dimColor: true, children: ["No assets installed", type ? ` (type: ${type})` : '', " for ", resolvedTool, "."] }));
|
|
75
|
+
}
|
|
76
|
+
if (outdated.length === 0) {
|
|
77
|
+
return (_jsxs(Text, { color: 'green', children: ["\u2713 All ", totalInstalled, " installed asset", totalInstalled !== 1 ? 's' : '', type ? ` (type: ${type})` : '', " are up to date."] }));
|
|
78
|
+
}
|
|
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, { flexShrink: 0, width: 10, children: _jsx(Text, { bold: true, underline: true, wrap: 'truncate', children: "Trust" }) }), _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, { flexShrink: 0, width: 10, children: _jsx(StatusBadge, { level: asset.trustLevel }) }), _jsx(Box, { flexGrow: 1, overflow: 'hidden', children: asset.pinned ? _jsx(Text, { color: 'yellow', children: "Pinned" }) : _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
|
+
//# sourceMappingURL=outdated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outdated.js","sourceRoot":"","sources":["../../src/commands/outdated.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "Pin an installed asset to a specific version";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
5
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
6
|
+
type: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
skill: "skill";
|
|
8
|
+
agent: "agent";
|
|
9
|
+
rule: "rule";
|
|
10
|
+
hook: "hook";
|
|
11
|
+
"memory-template": "memory-template";
|
|
12
|
+
"mcp-config": "mcp-config";
|
|
13
|
+
}>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const args: z.ZodTuple<[z.ZodString], null>;
|
|
16
|
+
type Props = {
|
|
17
|
+
args: z.infer<typeof args>;
|
|
18
|
+
options: z.infer<typeof options>;
|
|
19
|
+
};
|
|
20
|
+
export default function Pin({ args: [nameArg], options: { projectRoot, tool, type } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=pin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../../src/commands/pin.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAE1E,eAAO,MAAM,OAAO;;;;;;;;;;;iBAyBlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAEf,CAAC;AAOH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAyF3F"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { Spinner } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { findInstalledAsset, isPinned, LockfileError, LockfileLockedError, pinAssetVersion, readLockfile, withLockfileLock, writeLockfile, } from '../lib/lockfile.js';
|
|
8
|
+
import { findProjectRoot } from '../lib/paths.js';
|
|
9
|
+
import { AssetType } from '../lib/schemas/manifest.js';
|
|
10
|
+
import { resolveTool } from '../lib/tool-resolver.js';
|
|
11
|
+
export const description = 'Pin an installed asset to a specific version';
|
|
12
|
+
export const options = z.object({
|
|
13
|
+
projectRoot: z
|
|
14
|
+
.string()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe(option({
|
|
17
|
+
alias: 'P',
|
|
18
|
+
description: 'Override project root directory',
|
|
19
|
+
})),
|
|
20
|
+
tool: z
|
|
21
|
+
.string()
|
|
22
|
+
.optional()
|
|
23
|
+
.describe(option({
|
|
24
|
+
alias: 'T',
|
|
25
|
+
description: 'Target tool (e.g., claude-code)',
|
|
26
|
+
})),
|
|
27
|
+
type: AssetType.optional().describe(option({
|
|
28
|
+
alias: 't',
|
|
29
|
+
description: 'Filter by asset type (skill, agent, rule, hook, memory-template, mcp-config)',
|
|
30
|
+
})),
|
|
31
|
+
});
|
|
32
|
+
export const args = z.tuple([
|
|
33
|
+
z.string().describe('Asset name, optionally with @version suffix (e.g., my-asset@2.0.0)'),
|
|
34
|
+
]);
|
|
35
|
+
export default function Pin({ args: [nameArg], options: { projectRoot, tool, type } }) {
|
|
36
|
+
const state = useCommand(async (progress) => {
|
|
37
|
+
// Parse name@version syntax
|
|
38
|
+
const atIndex = nameArg.lastIndexOf('@');
|
|
39
|
+
const hasVersion = atIndex > 0; // ignore leading @ (e.g., @scoped names shouldn't match)
|
|
40
|
+
const name = hasVersion ? nameArg.slice(0, atIndex) : nameArg;
|
|
41
|
+
const explicitVersion = hasVersion ? nameArg.slice(atIndex + 1) : undefined;
|
|
42
|
+
const projectDir = findProjectRoot(projectRoot);
|
|
43
|
+
progress('Loading configuration...');
|
|
44
|
+
const { tool: resolvedTool } = await resolveTool(tool);
|
|
45
|
+
try {
|
|
46
|
+
return await withLockfileLock(projectDir, async () => {
|
|
47
|
+
progress('Reading lockfile...');
|
|
48
|
+
const lockfile = await readLockfile(projectDir, resolvedTool);
|
|
49
|
+
// Look up the installed asset to determine current version
|
|
50
|
+
const installed = findInstalledAsset(lockfile, name, type);
|
|
51
|
+
if (!installed) {
|
|
52
|
+
throw new LockfileError(`Asset '${name}' is not installed`);
|
|
53
|
+
}
|
|
54
|
+
const pinVersion = explicitVersion ?? installed.version;
|
|
55
|
+
// Check if already pinned to the same version
|
|
56
|
+
if (isPinned(lockfile, name, type) && installed.pinnedVersion === pinVersion) {
|
|
57
|
+
return { name, outcome: 'already-pinned', version: pinVersion };
|
|
58
|
+
}
|
|
59
|
+
// Track previous pin for informational message
|
|
60
|
+
const previousPin = installed.pinnedVersion;
|
|
61
|
+
progress('Pinning asset version...');
|
|
62
|
+
const updatedLockfile = pinAssetVersion(lockfile, name, pinVersion, type);
|
|
63
|
+
progress('Writing lockfile...');
|
|
64
|
+
await writeLockfile(projectDir, updatedLockfile);
|
|
65
|
+
if (previousPin) {
|
|
66
|
+
return { name, outcome: 'updated-pin', previousVersion: previousPin, version: pinVersion };
|
|
67
|
+
}
|
|
68
|
+
return { name, outcome: 'pinned', version: pinVersion };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error instanceof LockfileLockedError) {
|
|
73
|
+
throw new Error('Another ATK process is currently modifying this project. Please wait and try again.');
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}, [nameArg, projectRoot, tool, type]);
|
|
78
|
+
if (state.status === 'loading') {
|
|
79
|
+
return _jsx(Spinner, { message: state.message });
|
|
80
|
+
}
|
|
81
|
+
if (state.status === 'error') {
|
|
82
|
+
return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
|
|
83
|
+
}
|
|
84
|
+
const { data } = state;
|
|
85
|
+
if (data.outcome === 'already-pinned') {
|
|
86
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: data.name }), " is already pinned to v", data.version] }));
|
|
87
|
+
}
|
|
88
|
+
if (data.outcome === 'updated-pin') {
|
|
89
|
+
return (_jsxs(Text, { color: 'green', children: ["Pinned ", _jsx(Text, { bold: true, children: data.name }), " to v", data.version, " ", _jsxs(Text, { dimColor: true, children: ["(was v", data.previousVersion, ")"] })] }));
|
|
90
|
+
}
|
|
91
|
+
// data.outcome === 'pinned'
|
|
92
|
+
return (_jsxs(Text, { color: 'green', children: ["Pinned ", _jsx(Text, { bold: true, children: data.name }), " to v", data.version] }));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=pin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pin.js","sourceRoot":"","sources":["../../src/commands/pin.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "Remove orphaned dependencies";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
5
|
+
projectRoot: z.ZodOptional<z.ZodString>;
|
|
6
|
+
tool: z.ZodOptional<z.ZodString>;
|
|
7
|
+
yes: z.ZodDefault<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
type Props = {
|
|
10
|
+
options: z.infer<typeof options>;
|
|
11
|
+
};
|
|
12
|
+
export default function Prune({ options: { dryRun, projectRoot, tool, yes } }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=prune.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/commands/prune.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,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;AAqBF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,kDA4OnF"}
|