@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.
Files changed (314) hide show
  1. package/build/cli.d.ts +3 -0
  2. package/build/cli.d.ts.map +1 -0
  3. package/build/cli.js +35 -0
  4. package/build/cli.js.map +1 -0
  5. package/build/commands/_app.d.ts +3 -0
  6. package/build/commands/_app.d.ts.map +1 -0
  7. package/build/commands/_app.js +12 -0
  8. package/build/commands/_app.js.map +1 -0
  9. package/build/commands/audit.d.ts +12 -0
  10. package/build/commands/audit.d.ts.map +1 -0
  11. package/build/commands/audit.js +78 -0
  12. package/build/commands/audit.js.map +1 -0
  13. package/build/commands/browse.d.ts +15 -0
  14. package/build/commands/browse.d.ts.map +1 -0
  15. package/build/commands/browse.js +284 -0
  16. package/build/commands/browse.js.map +1 -0
  17. package/build/commands/cache.d.ts +13 -0
  18. package/build/commands/cache.d.ts.map +1 -0
  19. package/build/commands/cache.js +67 -0
  20. package/build/commands/cache.js.map +1 -0
  21. package/build/commands/config.d.ts +13 -0
  22. package/build/commands/config.d.ts.map +1 -0
  23. package/build/commands/config.js +62 -0
  24. package/build/commands/config.js.map +1 -0
  25. package/build/commands/diff.d.ts +16 -0
  26. package/build/commands/diff.d.ts.map +1 -0
  27. package/build/commands/diff.js +158 -0
  28. package/build/commands/diff.js.map +1 -0
  29. package/build/commands/doctor.d.ts +11 -0
  30. package/build/commands/doctor.d.ts.map +1 -0
  31. package/build/commands/doctor.js +30 -0
  32. package/build/commands/doctor.js.map +1 -0
  33. package/build/commands/index.d.ts +3 -0
  34. package/build/commands/index.d.ts.map +1 -0
  35. package/build/commands/index.js +30 -0
  36. package/build/commands/index.js.map +1 -0
  37. package/build/commands/info.d.ts +25 -0
  38. package/build/commands/info.d.ts.map +1 -0
  39. package/build/commands/info.js +198 -0
  40. package/build/commands/info.js.map +1 -0
  41. package/build/commands/init.d.ts +17 -0
  42. package/build/commands/init.d.ts.map +1 -0
  43. package/build/commands/init.js +504 -0
  44. package/build/commands/init.js.map +1 -0
  45. package/build/commands/install.d.ts +18 -0
  46. package/build/commands/install.d.ts.map +1 -0
  47. package/build/commands/install.js +186 -0
  48. package/build/commands/install.js.map +1 -0
  49. package/build/commands/list.d.ts +20 -0
  50. package/build/commands/list.d.ts.map +1 -0
  51. package/build/commands/list.js +61 -0
  52. package/build/commands/list.js.map +1 -0
  53. package/build/commands/outdated.d.ts +21 -0
  54. package/build/commands/outdated.d.ts.map +1 -0
  55. package/build/commands/outdated.js +81 -0
  56. package/build/commands/outdated.js.map +1 -0
  57. package/build/commands/pin.d.ts +22 -0
  58. package/build/commands/pin.d.ts.map +1 -0
  59. package/build/commands/pin.js +94 -0
  60. package/build/commands/pin.js.map +1 -0
  61. package/build/commands/prune.d.ts +14 -0
  62. package/build/commands/prune.d.ts.map +1 -0
  63. package/build/commands/prune.js +203 -0
  64. package/build/commands/prune.js.map +1 -0
  65. package/build/commands/publish.d.ts +14 -0
  66. package/build/commands/publish.d.ts.map +1 -0
  67. package/build/commands/publish.js +345 -0
  68. package/build/commands/publish.js.map +1 -0
  69. package/build/commands/search.d.ts +16 -0
  70. package/build/commands/search.d.ts.map +1 -0
  71. package/build/commands/search.js +80 -0
  72. package/build/commands/search.js.map +1 -0
  73. package/build/commands/sync.d.ts +15 -0
  74. package/build/commands/sync.d.ts.map +1 -0
  75. package/build/commands/sync.js +209 -0
  76. package/build/commands/sync.js.map +1 -0
  77. package/build/commands/uninstall.d.ts +18 -0
  78. package/build/commands/uninstall.d.ts.map +1 -0
  79. package/build/commands/uninstall.js +304 -0
  80. package/build/commands/uninstall.js.map +1 -0
  81. package/build/commands/unpin.d.ts +22 -0
  82. package/build/commands/unpin.d.ts.map +1 -0
  83. package/build/commands/unpin.js +79 -0
  84. package/build/commands/unpin.js.map +1 -0
  85. package/build/commands/update.d.ts +17 -0
  86. package/build/commands/update.d.ts.map +1 -0
  87. package/build/commands/update.js +151 -0
  88. package/build/commands/update.js.map +1 -0
  89. package/build/commands/why.d.ts +23 -0
  90. package/build/commands/why.d.ts.map +1 -0
  91. package/build/commands/why.js +108 -0
  92. package/build/commands/why.js.map +1 -0
  93. package/build/components/AssetDetail.d.ts +32 -0
  94. package/build/components/AssetDetail.d.ts.map +1 -0
  95. package/build/components/AssetDetail.js +45 -0
  96. package/build/components/AssetDetail.js.map +1 -0
  97. package/build/components/AssetTable.d.ts +25 -0
  98. package/build/components/AssetTable.d.ts.map +1 -0
  99. package/build/components/AssetTable.js +96 -0
  100. package/build/components/AssetTable.js.map +1 -0
  101. package/build/components/BrowseExpandedBundle.d.ts +26 -0
  102. package/build/components/BrowseExpandedBundle.d.ts.map +1 -0
  103. package/build/components/BrowseExpandedBundle.js +59 -0
  104. package/build/components/BrowseExpandedBundle.js.map +1 -0
  105. package/build/components/BrowseExpandedRow.d.ts +14 -0
  106. package/build/components/BrowseExpandedRow.d.ts.map +1 -0
  107. package/build/components/BrowseExpandedRow.js +9 -0
  108. package/build/components/BrowseExpandedRow.js.map +1 -0
  109. package/build/components/BrowseList.d.ts +26 -0
  110. package/build/components/BrowseList.d.ts.map +1 -0
  111. package/build/components/BrowseList.js +101 -0
  112. package/build/components/BrowseList.js.map +1 -0
  113. package/build/components/BundleDetail.d.ts +7 -0
  114. package/build/components/BundleDetail.d.ts.map +1 -0
  115. package/build/components/BundleDetail.js +12 -0
  116. package/build/components/BundleDetail.js.map +1 -0
  117. package/build/components/DependencyTree.d.ts +19 -0
  118. package/build/components/DependencyTree.d.ts.map +1 -0
  119. package/build/components/DependencyTree.js +21 -0
  120. package/build/components/DependencyTree.js.map +1 -0
  121. package/build/components/DiagnosticList.d.ts +19 -0
  122. package/build/components/DiagnosticList.d.ts.map +1 -0
  123. package/build/components/DiagnosticList.js +17 -0
  124. package/build/components/DiagnosticList.js.map +1 -0
  125. package/build/components/DiffView.d.ts +30 -0
  126. package/build/components/DiffView.d.ts.map +1 -0
  127. package/build/components/DiffView.js +32 -0
  128. package/build/components/DiffView.js.map +1 -0
  129. package/build/components/DryRunBanner.d.ts +11 -0
  130. package/build/components/DryRunBanner.d.ts.map +1 -0
  131. package/build/components/DryRunBanner.js +6 -0
  132. package/build/components/DryRunBanner.js.map +1 -0
  133. package/build/components/Field.d.ts +12 -0
  134. package/build/components/Field.d.ts.map +1 -0
  135. package/build/components/Field.js +9 -0
  136. package/build/components/Field.js.map +1 -0
  137. package/build/components/FilterBar.d.ts +18 -0
  138. package/build/components/FilterBar.d.ts.map +1 -0
  139. package/build/components/FilterBar.js +21 -0
  140. package/build/components/FilterBar.js.map +1 -0
  141. package/build/components/Header.d.ts +13 -0
  142. package/build/components/Header.d.ts.map +1 -0
  143. package/build/components/Header.js +20 -0
  144. package/build/components/Header.js.map +1 -0
  145. package/build/components/HelpBar.d.ts +11 -0
  146. package/build/components/HelpBar.d.ts.map +1 -0
  147. package/build/components/HelpBar.js +9 -0
  148. package/build/components/HelpBar.js.map +1 -0
  149. package/build/components/InstallConfirmBar.d.ts +9 -0
  150. package/build/components/InstallConfirmBar.d.ts.map +1 -0
  151. package/build/components/InstallConfirmBar.js +23 -0
  152. package/build/components/InstallConfirmBar.js.map +1 -0
  153. package/build/components/InstallSummary.d.ts +29 -0
  154. package/build/components/InstallSummary.d.ts.map +1 -0
  155. package/build/components/InstallSummary.js +12 -0
  156. package/build/components/InstallSummary.js.map +1 -0
  157. package/build/components/SectionDivider.d.ts +5 -0
  158. package/build/components/SectionDivider.d.ts.map +1 -0
  159. package/build/components/SectionDivider.js +11 -0
  160. package/build/components/SectionDivider.js.map +1 -0
  161. package/build/components/Spinner.d.ts +13 -0
  162. package/build/components/Spinner.d.ts.map +1 -0
  163. package/build/components/Spinner.js +11 -0
  164. package/build/components/Spinner.js.map +1 -0
  165. package/build/components/StatusBadge.d.ts +23 -0
  166. package/build/components/StatusBadge.d.ts.map +1 -0
  167. package/build/components/StatusBadge.js +43 -0
  168. package/build/components/StatusBadge.js.map +1 -0
  169. package/build/components/index.d.ts +20 -0
  170. package/build/components/index.d.ts.map +1 -0
  171. package/build/components/index.js +20 -0
  172. package/build/components/index.js.map +1 -0
  173. package/build/hooks/useBrowseState.d.ts +122 -0
  174. package/build/hooks/useBrowseState.d.ts.map +1 -0
  175. package/build/hooks/useBrowseState.js +315 -0
  176. package/build/hooks/useBrowseState.js.map +1 -0
  177. package/build/hooks/useCommand.d.ts +23 -0
  178. package/build/hooks/useCommand.d.ts.map +1 -0
  179. package/build/hooks/useCommand.js +43 -0
  180. package/build/hooks/useCommand.js.map +1 -0
  181. package/build/lib/adapter.d.ts +40 -0
  182. package/build/lib/adapter.d.ts.map +1 -0
  183. package/build/lib/adapter.js +112 -0
  184. package/build/lib/adapter.js.map +1 -0
  185. package/build/lib/auth.d.ts +31 -0
  186. package/build/lib/auth.d.ts.map +1 -0
  187. package/build/lib/auth.js +101 -0
  188. package/build/lib/auth.js.map +1 -0
  189. package/build/lib/breakpoints.d.ts +3 -0
  190. package/build/lib/breakpoints.d.ts.map +1 -0
  191. package/build/lib/breakpoints.js +8 -0
  192. package/build/lib/breakpoints.js.map +1 -0
  193. package/build/lib/checksum.d.ts +31 -0
  194. package/build/lib/checksum.d.ts.map +1 -0
  195. package/build/lib/checksum.js +78 -0
  196. package/build/lib/checksum.js.map +1 -0
  197. package/build/lib/config.d.ts +42 -0
  198. package/build/lib/config.d.ts.map +1 -0
  199. package/build/lib/config.js +123 -0
  200. package/build/lib/config.js.map +1 -0
  201. package/build/lib/detector.d.ts +35 -0
  202. package/build/lib/detector.d.ts.map +1 -0
  203. package/build/lib/detector.js +125 -0
  204. package/build/lib/detector.js.map +1 -0
  205. package/build/lib/diagnostics.d.ts +10 -0
  206. package/build/lib/diagnostics.d.ts.map +1 -0
  207. package/build/lib/diagnostics.js +195 -0
  208. package/build/lib/diagnostics.js.map +1 -0
  209. package/build/lib/diff.d.ts +34 -0
  210. package/build/lib/diff.d.ts.map +1 -0
  211. package/build/lib/diff.js +78 -0
  212. package/build/lib/diff.js.map +1 -0
  213. package/build/lib/fetch-retry.d.ts +43 -0
  214. package/build/lib/fetch-retry.d.ts.map +1 -0
  215. package/build/lib/fetch-retry.js +137 -0
  216. package/build/lib/fetch-retry.js.map +1 -0
  217. package/build/lib/github.d.ts +57 -0
  218. package/build/lib/github.d.ts.map +1 -0
  219. package/build/lib/github.js +96 -0
  220. package/build/lib/github.js.map +1 -0
  221. package/build/lib/gitignore.d.ts +37 -0
  222. package/build/lib/gitignore.d.ts.map +1 -0
  223. package/build/lib/gitignore.js +142 -0
  224. package/build/lib/gitignore.js.map +1 -0
  225. package/build/lib/init.d.ts +100 -0
  226. package/build/lib/init.d.ts.map +1 -0
  227. package/build/lib/init.js +295 -0
  228. package/build/lib/init.js.map +1 -0
  229. package/build/lib/installer.d.ts +50 -0
  230. package/build/lib/installer.d.ts.map +1 -0
  231. package/build/lib/installer.js +435 -0
  232. package/build/lib/installer.js.map +1 -0
  233. package/build/lib/lockfile.d.ts +170 -0
  234. package/build/lib/lockfile.d.ts.map +1 -0
  235. package/build/lib/lockfile.js +437 -0
  236. package/build/lib/lockfile.js.map +1 -0
  237. package/build/lib/markdown.d.ts +9 -0
  238. package/build/lib/markdown.d.ts.map +1 -0
  239. package/build/lib/markdown.js +67 -0
  240. package/build/lib/markdown.js.map +1 -0
  241. package/build/lib/parse-json.d.ts +34 -0
  242. package/build/lib/parse-json.d.ts.map +1 -0
  243. package/build/lib/parse-json.js +52 -0
  244. package/build/lib/parse-json.js.map +1 -0
  245. package/build/lib/paths.d.ts +28 -0
  246. package/build/lib/paths.d.ts.map +1 -0
  247. package/build/lib/paths.js +68 -0
  248. package/build/lib/paths.js.map +1 -0
  249. package/build/lib/publisher.d.ts +49 -0
  250. package/build/lib/publisher.d.ts.map +1 -0
  251. package/build/lib/publisher.js +388 -0
  252. package/build/lib/publisher.js.map +1 -0
  253. package/build/lib/registry.d.ts +97 -0
  254. package/build/lib/registry.d.ts.map +1 -0
  255. package/build/lib/registry.js +248 -0
  256. package/build/lib/registry.js.map +1 -0
  257. package/build/lib/resolver.d.ts +50 -0
  258. package/build/lib/resolver.d.ts.map +1 -0
  259. package/build/lib/resolver.js +110 -0
  260. package/build/lib/resolver.js.map +1 -0
  261. package/build/lib/schemas/adapter.d.ts +33 -0
  262. package/build/lib/schemas/adapter.d.ts.map +1 -0
  263. package/build/lib/schemas/adapter.js +27 -0
  264. package/build/lib/schemas/adapter.js.map +1 -0
  265. package/build/lib/schemas/bundle.d.ts +38 -0
  266. package/build/lib/schemas/bundle.d.ts.map +1 -0
  267. package/build/lib/schemas/bundle.js +19 -0
  268. package/build/lib/schemas/bundle.js.map +1 -0
  269. package/build/lib/schemas/config.d.ts +12 -0
  270. package/build/lib/schemas/config.d.ts.map +1 -0
  271. package/build/lib/schemas/config.js +14 -0
  272. package/build/lib/schemas/config.js.map +1 -0
  273. package/build/lib/schemas/index.d.ts +7 -0
  274. package/build/lib/schemas/index.d.ts.map +1 -0
  275. package/build/lib/schemas/index.js +7 -0
  276. package/build/lib/schemas/index.js.map +1 -0
  277. package/build/lib/schemas/lockfile.d.ts +102 -0
  278. package/build/lib/schemas/lockfile.d.ts.map +1 -0
  279. package/build/lib/schemas/lockfile.js +50 -0
  280. package/build/lib/schemas/lockfile.js.map +1 -0
  281. package/build/lib/schemas/manifest.d.ts +91 -0
  282. package/build/lib/schemas/manifest.d.ts.map +1 -0
  283. package/build/lib/schemas/manifest.js +42 -0
  284. package/build/lib/schemas/manifest.js.map +1 -0
  285. package/build/lib/schemas/registry.d.ts +225 -0
  286. package/build/lib/schemas/registry.d.ts.map +1 -0
  287. package/build/lib/schemas/registry.js +59 -0
  288. package/build/lib/schemas/registry.js.map +1 -0
  289. package/build/lib/search.d.ts +23 -0
  290. package/build/lib/search.d.ts.map +1 -0
  291. package/build/lib/search.js +139 -0
  292. package/build/lib/search.js.map +1 -0
  293. package/build/lib/tool-resolver.d.ts +12 -0
  294. package/build/lib/tool-resolver.d.ts.map +1 -0
  295. package/build/lib/tool-resolver.js +24 -0
  296. package/build/lib/tool-resolver.js.map +1 -0
  297. package/build/lib/uninstaller.d.ts +109 -0
  298. package/build/lib/uninstaller.d.ts.map +1 -0
  299. package/build/lib/uninstaller.js +368 -0
  300. package/build/lib/uninstaller.js.map +1 -0
  301. package/build/lib/updater.d.ts +68 -0
  302. package/build/lib/updater.d.ts.map +1 -0
  303. package/build/lib/updater.js +230 -0
  304. package/build/lib/updater.js.map +1 -0
  305. package/build/lib/version.d.ts +13 -0
  306. package/build/lib/version.d.ts.map +1 -0
  307. package/build/lib/version.js +30 -0
  308. package/build/lib/version.js.map +1 -0
  309. package/build/windows-esm-loader.d.ts +15 -0
  310. package/build/windows-esm-loader.d.ts.map +1 -0
  311. package/build/windows-esm-loader.js +11 -0
  312. package/build/windows-esm-loader.js.map +1 -0
  313. package/package.json +67 -0
  314. package/tool-adapters/claude-code.json +34 -0
@@ -0,0 +1,304 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Text, useApp, useInput } from 'ink';
3
+ import { option } from 'pastel';
4
+ import { useEffect, useState } from 'react';
5
+ import { z } from 'zod';
6
+ import { DryRunBanner, Spinner } from '../components/index.js';
7
+ import { useCommand } from '../hooks/useCommand.js';
8
+ import { findInstalledAsset, LockfileLockedError, readLockfile, withLockfileLock } from '../lib/lockfile.js';
9
+ import { findProjectRoot } from '../lib/paths.js';
10
+ import { fetchRegistry, findBundle } from '../lib/registry.js';
11
+ import { resolveTool } from '../lib/tool-resolver.js';
12
+ import { executeBundleUninstall, planBundleUninstall, planUninstall, uninstallAsset, } from '../lib/uninstaller.js';
13
+ export const description = 'Uninstall an asset or bundle';
14
+ export const options = z.object({
15
+ cascade: z
16
+ .boolean()
17
+ .default(true)
18
+ .describe(option({
19
+ description: 'Cascade-remove orphaned dependencies (use --no-cascade to disable)',
20
+ })),
21
+ dryRun: z
22
+ .boolean()
23
+ .default(false)
24
+ .describe(option({
25
+ alias: 'n',
26
+ description: 'Show what would be uninstalled without making changes',
27
+ })),
28
+ projectRoot: z
29
+ .string()
30
+ .optional()
31
+ .describe(option({
32
+ alias: 'P',
33
+ description: 'Override project root directory',
34
+ })),
35
+ refresh: z
36
+ .boolean()
37
+ .default(false)
38
+ .describe(option({
39
+ description: 'Bypass the registry cache and fetch fresh data',
40
+ })),
41
+ tool: z
42
+ .string()
43
+ .optional()
44
+ .describe(option({
45
+ alias: 'T',
46
+ description: 'Target tool (e.g., claude-code)',
47
+ })),
48
+ yes: z
49
+ .boolean()
50
+ .default(false)
51
+ .describe(option({
52
+ alias: 'y',
53
+ description: 'Skip confirmation prompt',
54
+ })),
55
+ });
56
+ export const args = z.tuple([z.string().describe('Asset or bundle name to uninstall')]);
57
+ export default function Uninstall({ args: [name], options: { cascade, dryRun, projectRoot, refresh, tool, yes }, }) {
58
+ const [bundleResult, setBundleResult] = useState(null);
59
+ const [bundleError, setBundleError] = useState(null);
60
+ const [bundleProgress, setBundleProgress] = useState('Removing bundle assets...');
61
+ const [singleResult, setSingleResult] = useState(null);
62
+ const [singleError, setSingleError] = useState(null);
63
+ const [singleProgress, setSingleProgress] = useState('Uninstalling...');
64
+ const [confirmed, setConfirmed] = useState(false);
65
+ const [cancelled, setCancelled] = useState(false);
66
+ const [executing, setExecuting] = useState(false);
67
+ const { exit } = useApp();
68
+ const state = useCommand(async (progress) => {
69
+ const projectDir = findProjectRoot(projectRoot);
70
+ progress('Loading configuration...');
71
+ const { tool: resolvedTool } = await resolveTool(tool);
72
+ // Step 1: Try bundle detection first
73
+ progress('Fetching registry...');
74
+ const registry = await fetchRegistry({ force: refresh });
75
+ const bundle = findBundle(registry, name);
76
+ if (bundle) {
77
+ // Bundle uninstall path
78
+ progress('Planning bundle removal...');
79
+ const lockfile = await readLockfile(projectDir, resolvedTool);
80
+ const plan = planBundleUninstall(lockfile, bundle.name, bundle.version);
81
+ // If nothing to remove, return not-installed outcome
82
+ if (plan.assetsToRemove.length === 0 && plan.orphansToRemove.length === 0) {
83
+ return { bundleName: bundle.name, outcome: 'bundle-not-installed' };
84
+ }
85
+ // Dry-run: return plan without executing
86
+ if (dryRun) {
87
+ return { outcome: 'dry-run-bundle', plan, tool: resolvedTool };
88
+ }
89
+ // If --yes flag, execute immediately
90
+ if (yes) {
91
+ progress('Removing bundle assets...');
92
+ const result = await executeBundleUninstall(plan, {
93
+ cascade,
94
+ onProgress: progress,
95
+ projectDir,
96
+ tool: resolvedTool,
97
+ });
98
+ return { outcome: 'bundle-success', plan, result, tool: resolvedTool };
99
+ }
100
+ // Otherwise, return the plan for confirmation prompt
101
+ return { outcome: 'bundle-confirming', plan, tool: resolvedTool };
102
+ }
103
+ // Dry-run for single asset: read lockfile directly (skip lock), compute plan, return
104
+ if (dryRun) {
105
+ progress('Reading lockfile...');
106
+ const lockfile = await readLockfile(projectDir, resolvedTool);
107
+ const installed = findInstalledAsset(lockfile, name);
108
+ if (!installed) {
109
+ return { name, outcome: 'not-installed' };
110
+ }
111
+ const plan = planUninstall(lockfile, name);
112
+ return { outcome: 'dry-run-single', plan, tool: resolvedTool };
113
+ }
114
+ // Fall through to existing single-asset uninstall logic
115
+ try {
116
+ return await withLockfileLock(projectDir, async () => {
117
+ progress('Reading lockfile...');
118
+ const lockfile = await readLockfile(projectDir, resolvedTool);
119
+ const installed = findInstalledAsset(lockfile, name);
120
+ if (!installed) {
121
+ return { name, outcome: 'not-installed' };
122
+ }
123
+ // Compute the plan for display
124
+ const plan = planUninstall(lockfile, name);
125
+ // If dependents exist and no --yes flag, ask for confirmation
126
+ if (plan.dependents.length > 0 && !yes) {
127
+ return { lockfile, outcome: 'confirming', plan, tool: resolvedTool };
128
+ }
129
+ progress(`Uninstalling ${name}...`);
130
+ const results = await uninstallAsset(name, {
131
+ cascade,
132
+ lockfile,
133
+ onProgress: progress,
134
+ plan,
135
+ projectDir,
136
+ tool: resolvedTool,
137
+ });
138
+ return { outcome: 'success', plan, results, tool: resolvedTool };
139
+ });
140
+ }
141
+ catch (error) {
142
+ if (error instanceof LockfileLockedError) {
143
+ throw new Error('Another ATK process is currently modifying this project. Please wait and try again.');
144
+ }
145
+ throw error;
146
+ }
147
+ }, [cascade, dryRun, name, projectRoot, refresh, tool, yes]);
148
+ // Handle confirmation input (bundle and single-asset)
149
+ const isConfirming = !confirmed &&
150
+ !cancelled &&
151
+ state.status === 'done' &&
152
+ (state.data.outcome === 'bundle-confirming' || state.data.outcome === 'confirming');
153
+ useInput((input) => {
154
+ if (input === 'y' || input === 'Y') {
155
+ setConfirmed(true);
156
+ }
157
+ else if (input === 'n' || input === 'N') {
158
+ setCancelled(true);
159
+ }
160
+ }, { isActive: isConfirming });
161
+ // Execute bundle uninstall after confirmation
162
+ useEffect(() => {
163
+ if (confirmed && !executing && state.status === 'done' && state.data.outcome === 'bundle-confirming') {
164
+ setExecuting(true);
165
+ const { plan, tool: resolvedTool } = state.data;
166
+ const projectDir = findProjectRoot(projectRoot);
167
+ executeBundleUninstall(plan, {
168
+ cascade,
169
+ onProgress: (message) => {
170
+ setBundleProgress(message);
171
+ },
172
+ projectDir,
173
+ tool: resolvedTool,
174
+ })
175
+ .then((result) => {
176
+ setBundleResult(result);
177
+ })
178
+ .catch((err) => {
179
+ setBundleError(err instanceof Error ? err.message : String(err));
180
+ });
181
+ }
182
+ }, [confirmed, executing, state, cascade, projectRoot]);
183
+ // Execute single-asset uninstall after confirmation
184
+ useEffect(() => {
185
+ if (confirmed && !executing && state.status === 'done' && state.data.outcome === 'confirming') {
186
+ setExecuting(true);
187
+ const { lockfile, plan, tool: resolvedTool } = state.data;
188
+ const projectDir = findProjectRoot(projectRoot);
189
+ uninstallAsset(name, {
190
+ cascade,
191
+ lockfile,
192
+ onProgress: (message) => {
193
+ setSingleProgress(message);
194
+ },
195
+ plan,
196
+ projectDir,
197
+ tool: resolvedTool,
198
+ })
199
+ .then((results) => {
200
+ setSingleResult(results);
201
+ })
202
+ .catch((err) => {
203
+ setSingleError(err instanceof Error ? err.message : String(err));
204
+ });
205
+ }
206
+ }, [confirmed, executing, state, cascade, name, projectRoot]);
207
+ // Exit after cancellation
208
+ useEffect(() => {
209
+ if (cancelled) {
210
+ const timer = setTimeout(() => {
211
+ exit();
212
+ }, 100);
213
+ return () => {
214
+ clearTimeout(timer);
215
+ };
216
+ }
217
+ }, [cancelled, exit]);
218
+ // --- Render ---
219
+ if (state.status === 'loading') {
220
+ return _jsx(Spinner, { message: state.message });
221
+ }
222
+ if (state.status === 'error') {
223
+ return _jsxs(Text, { color: 'red', children: ["Error: ", state.message] });
224
+ }
225
+ const { data } = state;
226
+ // --- Single-asset outcomes ---
227
+ if (data.outcome === 'not-installed') {
228
+ return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: data.name }), " is not installed."] }));
229
+ }
230
+ if (data.outcome === 'dry-run-single') {
231
+ const { plan, tool: resolvedTool } = data;
232
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'uninstall', count: 1, tool: resolvedTool }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [' ', _jsx(Text, { bold: true, children: plan.primary.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", plan.primary.type, ") v", plan.primary.version] })] }), plan.primary.files.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Files to remove:" }), plan.primary.files.map((f) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2715 ", f.installedPath] }, f.installedPath)))] })), (plan.primary.configEntries ?? []).length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Config entries to clean:" }), (plan.primary.configEntries ?? []).map((c) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2715 ", c.key] }, c.key)))] })), plan.dependents.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { color: 'yellow', children: ["Warning: the following assets depend on ", _jsx(Text, { bold: true, children: plan.primary.name }), ":"] }), plan.dependents.map((d) => (_jsxs(Text, { color: 'yellow', children: [' ', "- ", d.name, " (", d.type, ")"] }, d.name)))] })), plan.orphanedDependencies.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Orphaned dependencies that would also be removed:" }), plan.orphanedDependencies.map((d) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", d.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", d.type, ") v", d.version] })] }, d.name)))] }))] }));
233
+ }
234
+ if (data.outcome === 'success') {
235
+ return _jsx(SingleUninstallSummary, { name: name, plan: data.plan, results: data.results, tool: data.tool });
236
+ }
237
+ if (data.outcome === 'confirming') {
238
+ const { plan, tool: resolvedTool } = data;
239
+ // Cancelled
240
+ if (cancelled) {
241
+ return _jsx(Text, { color: 'yellow', children: "Cancelled." });
242
+ }
243
+ // Error during execution
244
+ if (singleError) {
245
+ return _jsxs(Text, { color: 'red', children: ["Error: ", singleError] });
246
+ }
247
+ // Confirmed and waiting for execution result
248
+ if (confirmed && !singleResult) {
249
+ return _jsx(Spinner, { message: singleProgress });
250
+ }
251
+ // Execution complete — show results
252
+ if (confirmed && singleResult) {
253
+ return _jsx(SingleUninstallSummary, { name: name, plan: plan, results: singleResult, tool: resolvedTool });
254
+ }
255
+ // Awaiting confirmation — show dependents warning and prompt
256
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'yellow', children: ["Warning: the following assets depend on ", _jsx(Text, { bold: true, children: name }), ":"] }), plan.dependents.map((d) => (_jsxs(Text, { color: 'yellow', children: [' ', "- ", d.name, " (", d.type, ")"] }, d.name))), plan.orphanedDependencies.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Orphaned dependencies that will also be removed:" }), plan.orphanedDependencies.map((d) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", d.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", d.type, ") v", d.version] })] }, d.name)))] })), _jsx(Text, { children: " " }), _jsx(Text, { children: "Continue with uninstall? (y/n)" })] }));
257
+ }
258
+ // --- Bundle outcomes ---
259
+ if (data.outcome === 'dry-run-bundle') {
260
+ const { plan, tool: resolvedTool } = data;
261
+ const totalRemovals = plan.assetsToRemove.length + plan.orphansToRemove.length;
262
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunBanner, { action: 'uninstall', count: totalRemovals, tool: resolvedTool }), _jsx(Text, { children: " " }), _jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", plan.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", plan.bundleVersion] })] }), plan.assetsToRemove.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Assets to remove:" }), plan.assetsToRemove.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'red', children: ["- ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name)))] })), plan.orphansToRemove.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Orphaned dependencies to remove:" }), plan.orphansToRemove.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name)))] })), plan.assetsToSkip.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Skipped (still needed):" }), plan.assetsToSkip.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'yellow', children: ["~ ", a.name] }), _jsxs(Text, { dimColor: true, children: [" \u2014 ", a.reason] })] }, a.name)))] }))] }));
263
+ }
264
+ if (data.outcome === 'bundle-not-installed') {
265
+ return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " Bundle ", _jsx(Text, { bold: true, children: data.bundleName }), " is not currently installed."] }));
266
+ }
267
+ if (data.outcome === 'bundle-confirming') {
268
+ const { plan } = data;
269
+ const totalRemovals = plan.assetsToRemove.length + plan.orphansToRemove.length;
270
+ // Cancelled
271
+ if (cancelled) {
272
+ return _jsx(Text, { color: 'yellow', children: "Cancelled." });
273
+ }
274
+ // Error during execution
275
+ if (bundleError) {
276
+ return _jsxs(Text, { color: 'red', children: ["Error: ", bundleError] });
277
+ }
278
+ // Confirmed and waiting for execution result
279
+ if (confirmed && !bundleResult) {
280
+ return _jsx(Spinner, { message: bundleProgress });
281
+ }
282
+ // Execution complete — show results
283
+ if (confirmed && bundleResult) {
284
+ return _jsx(BundleUninstallSummary, { plan: plan, result: bundleResult, tool: data.tool });
285
+ }
286
+ // Awaiting confirmation — show plan
287
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", plan.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", plan.bundleVersion] })] }), _jsx(Text, { children: " " }), plan.assetsToRemove.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Assets to remove:" }), plan.assetsToRemove.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'red', children: ["- ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name))), _jsx(Text, { children: " " })] })), plan.orphansToRemove.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Orphaned dependencies to remove:" }), plan.orphansToRemove.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["- ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name))), _jsx(Text, { children: " " })] })), plan.assetsToSkip.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Skipped (still needed):" }), plan.assetsToSkip.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'yellow', children: ["~ ", a.name] }), _jsxs(Text, { dimColor: true, children: [" \u2014 ", a.reason] })] }, a.name))), _jsx(Text, { children: " " })] })), _jsxs(Text, { children: ["Remove ", totalRemovals, " asset", totalRemovals !== 1 ? 's' : '', "? (y/n)"] })] }));
288
+ }
289
+ if (data.outcome === 'bundle-success') {
290
+ return _jsx(BundleUninstallSummary, { plan: data.plan, result: data.result, tool: data.tool });
291
+ }
292
+ // This should never be reached, but TypeScript exhaustiveness
293
+ return null;
294
+ }
295
+ function BundleUninstallSummary({ plan, result, tool }) {
296
+ const totalRemoved = result.removedAssets.length + result.removedOrphans.length;
297
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsxs(Text, { bold: true, color: 'magenta', children: ["Bundle: ", plan.bundleName] }), _jsxs(Text, { dimColor: true, children: [" v", plan.bundleVersion] })] }), _jsx(Text, { children: " " }), _jsxs(Text, { color: 'green', children: ["\u2713 Removed ", totalRemoved, " asset", totalRemoved !== 1 ? 's' : '', " from ", tool] }), result.removedAssets.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed assets:" }), result.removedAssets.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'green', children: ["\u2713 ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name)))] })), result.removedOrphans.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed orphaned dependencies:" }), result.removedOrphans.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'cyan', children: ["\u2713 ", a.name] }), _jsxs(Text, { dimColor: true, children: [' ', "(", a.type, ") v", a.version] })] }, a.name)))] })), result.skippedAssets.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Skipped (still needed):" }), result.skippedAssets.map((a) => (_jsxs(Text, { children: [' ', _jsxs(Text, { color: 'yellow', children: ["~ ", a.name] }), _jsxs(Text, { dimColor: true, children: [" \u2014 ", a.reason] })] }, a.name)))] })), result.errors.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { color: 'red', children: "Errors:" }), result.errors.map((e) => (_jsxs(Text, { color: 'red', children: [' ', "\u2715 ", e.asset, ": ", e.error] }, e.asset)))] }))] }));
298
+ }
299
+ function SingleUninstallSummary({ name, plan, results, tool }) {
300
+ const primaryResult = results.find((r) => r.reason === 'direct');
301
+ const orphanResults = results.filter((r) => r.reason === 'orphan');
302
+ return (_jsxs(Box, { flexDirection: 'column', children: [plan.dependents.length > 0 && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'yellow', children: ["Warning: the following assets depend on ", _jsx(Text, { bold: true, children: name }), ":"] }), plan.dependents.map((d) => (_jsxs(Text, { color: 'yellow', children: [' ', "- ", d.name, " (", d.type, ")"] }, d.name))), _jsx(Text, { children: " " })] })), primaryResult && (_jsxs(Text, { color: 'green', children: ["\u2713 Uninstalled ", _jsx(Text, { bold: true, children: primaryResult.name }), " (", primaryResult.type, ") v", primaryResult.version, " from", ' ', tool] })), primaryResult && primaryResult.filesRemoved.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed files:" }), primaryResult.filesRemoved.map((f) => (_jsxs(Text, { dimColor: true, children: ["\u2715 ", f] }, f)))] })), primaryResult && primaryResult.configEntriesCleaned.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Cleaned config entries:" }), primaryResult.configEntriesCleaned.map((c) => (_jsxs(Text, { dimColor: true, children: ["\u2715 ", c.key] }, c.key)))] })), orphanResults.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { dimColor: true, children: "Removed orphaned dependencies:" }), orphanResults.map((r) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: r.name }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }, r.name)))] }))] }));
303
+ }
304
+ //# sourceMappingURL=uninstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Remove a version pin from an installed asset";
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 Unpin({ args: [name], options: { projectRoot, tool, type } }: Props): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=unpin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpin.d.ts","sourceRoot":"","sources":["../../src/commands/unpin.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,iCAAwD,CAAC;AAE1E,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;AAIF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAoE1F"}
@@ -0,0 +1,79 @@
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, readLockfile, unpinAssetVersion, 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 = 'Remove a version pin from an installed asset';
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([z.string().describe('Asset name to unpin')]);
33
+ export default function Unpin({ args: [name], options: { projectRoot, tool, type } }) {
34
+ const state = useCommand(async (progress) => {
35
+ const projectDir = findProjectRoot(projectRoot);
36
+ progress('Loading configuration...');
37
+ const { tool: resolvedTool } = await resolveTool(tool);
38
+ try {
39
+ return await withLockfileLock(projectDir, async () => {
40
+ progress('Reading lockfile...');
41
+ const lockfile = await readLockfile(projectDir, resolvedTool);
42
+ // Verify the asset is installed
43
+ const installed = findInstalledAsset(lockfile, name, type);
44
+ if (!installed) {
45
+ throw new LockfileError(`Asset '${name}' is not installed`);
46
+ }
47
+ // Check if the asset is actually pinned
48
+ if (!isPinned(lockfile, name, type)) {
49
+ return { name, outcome: 'not-pinned' };
50
+ }
51
+ const previousVersion = installed.pinnedVersion;
52
+ progress('Removing version pin...');
53
+ const updatedLockfile = unpinAssetVersion(lockfile, name, type);
54
+ progress('Writing lockfile...');
55
+ await writeLockfile(projectDir, updatedLockfile);
56
+ return { name, outcome: 'unpinned', version: previousVersion };
57
+ });
58
+ }
59
+ catch (error) {
60
+ if (error instanceof LockfileLockedError) {
61
+ throw new Error('Another ATK process is currently modifying this project. Please wait and try again.');
62
+ }
63
+ throw error;
64
+ }
65
+ }, [name, projectRoot, 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 { data } = state;
73
+ if (data.outcome === 'not-pinned') {
74
+ return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", _jsx(Text, { bold: true, children: data.name }), " is not currently pinned"] }));
75
+ }
76
+ // data.outcome === 'unpinned'
77
+ return (_jsxs(Text, { color: 'green', children: ["Unpinned ", _jsx(Text, { bold: true, children: data.name }), " ", _jsxs(Text, { dimColor: true, children: ["(was pinned to v", data.version, ")"] })] }));
78
+ }
79
+ //# sourceMappingURL=unpin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unpin.js","sourceRoot":"","sources":["../../src/commands/unpin.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ export declare const description = "Update installed assets";
3
+ export declare const options: z.ZodObject<{
4
+ dryRun: z.ZodDefault<z.ZodBoolean>;
5
+ force: z.ZodDefault<z.ZodBoolean>;
6
+ projectRoot: z.ZodOptional<z.ZodString>;
7
+ refresh: z.ZodDefault<z.ZodBoolean>;
8
+ tool: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>;
10
+ export declare const args: z.ZodTuple<[z.ZodOptional<z.ZodString>], null>;
11
+ type Props = {
12
+ args: z.infer<typeof args>;
13
+ options: z.infer<typeof options>;
14
+ };
15
+ export default function Update({ args: [rawName], options: { dryRun, force, projectRoot, refresh, tool } }: Props): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,WAAW,4BAA4B,CAAC;AAErD,eAAO,MAAM,OAAO;;;;;;iBA6ClB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAEf,CAAC;AAEH,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;AAOF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAyNhH"}