@detergent-software/atk 3.0.0 → 4.0.0

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 (328) hide show
  1. package/README.md +361 -0
  2. package/build/commands/_app.d.ts.map +1 -1
  3. package/build/commands/_app.js +23 -3
  4. package/build/commands/_app.js.map +1 -1
  5. package/build/commands/audit.d.ts.map +1 -1
  6. package/build/commands/audit.js +76 -37
  7. package/build/commands/audit.js.map +1 -1
  8. package/build/commands/browse.d.ts.map +1 -1
  9. package/build/commands/browse.js +126 -154
  10. package/build/commands/browse.js.map +1 -1
  11. package/build/commands/cache.d.ts.map +1 -1
  12. package/build/commands/cache.js +13 -15
  13. package/build/commands/cache.js.map +1 -1
  14. package/build/commands/config.d.ts +1 -1
  15. package/build/commands/config.d.ts.map +1 -1
  16. package/build/commands/config.js +7 -3
  17. package/build/commands/config.js.map +1 -1
  18. package/build/commands/diff.d.ts.map +1 -1
  19. package/build/commands/diff.js +4 -117
  20. package/build/commands/diff.js.map +1 -1
  21. package/build/commands/freeze.d.ts +1 -2
  22. package/build/commands/freeze.d.ts.map +1 -1
  23. package/build/commands/freeze.js +17 -37
  24. package/build/commands/freeze.js.map +1 -1
  25. package/build/commands/info.d.ts +1 -2
  26. package/build/commands/info.d.ts.map +1 -1
  27. package/build/commands/info.js +43 -38
  28. package/build/commands/info.js.map +1 -1
  29. package/build/commands/init.d.ts.map +1 -1
  30. package/build/commands/init.js +41 -414
  31. package/build/commands/init.js.map +1 -1
  32. package/build/commands/install.d.ts.map +1 -1
  33. package/build/commands/install.js +79 -72
  34. package/build/commands/install.js.map +1 -1
  35. package/build/commands/list.d.ts +2 -2
  36. package/build/commands/list.d.ts.map +1 -1
  37. package/build/commands/list.js +138 -27
  38. package/build/commands/list.js.map +1 -1
  39. package/build/commands/outdated.d.ts.map +1 -1
  40. package/build/commands/outdated.js +20 -10
  41. package/build/commands/outdated.js.map +1 -1
  42. package/build/commands/pin.d.ts +1 -2
  43. package/build/commands/pin.d.ts.map +1 -1
  44. package/build/commands/pin.js +44 -47
  45. package/build/commands/pin.js.map +1 -1
  46. package/build/commands/prune.d.ts.map +1 -1
  47. package/build/commands/prune.js +76 -151
  48. package/build/commands/prune.js.map +1 -1
  49. package/build/commands/publish.d.ts +4 -1
  50. package/build/commands/publish.d.ts.map +1 -1
  51. package/build/commands/publish.js +139 -388
  52. package/build/commands/publish.js.map +1 -1
  53. package/build/commands/search.d.ts.map +1 -1
  54. package/build/commands/search.js +14 -19
  55. package/build/commands/search.js.map +1 -1
  56. package/build/commands/setup.d.ts +1 -1
  57. package/build/commands/setup.d.ts.map +1 -1
  58. package/build/commands/setup.js +48 -253
  59. package/build/commands/setup.js.map +1 -1
  60. package/build/commands/sync.d.ts.map +1 -1
  61. package/build/commands/sync.js +43 -169
  62. package/build/commands/sync.js.map +1 -1
  63. package/build/commands/thaw.d.ts +1 -2
  64. package/build/commands/thaw.d.ts.map +1 -1
  65. package/build/commands/thaw.js +19 -37
  66. package/build/commands/thaw.js.map +1 -1
  67. package/build/commands/uninstall.d.ts.map +1 -1
  68. package/build/commands/uninstall.js +106 -221
  69. package/build/commands/uninstall.js.map +1 -1
  70. package/build/commands/unpin.d.ts +1 -2
  71. package/build/commands/unpin.d.ts.map +1 -1
  72. package/build/commands/unpin.js +23 -38
  73. package/build/commands/unpin.js.map +1 -1
  74. package/build/commands/update.d.ts.map +1 -1
  75. package/build/commands/update.js +57 -54
  76. package/build/commands/update.js.map +1 -1
  77. package/build/commands/why.d.ts +1 -1
  78. package/build/commands/why.d.ts.map +1 -1
  79. package/build/commands/why.js +14 -6
  80. package/build/commands/why.js.map +1 -1
  81. package/build/components/AssetDetail.d.ts +1 -3
  82. package/build/components/AssetDetail.d.ts.map +1 -1
  83. package/build/components/AssetDetail.js +22 -21
  84. package/build/components/AssetDetail.js.map +1 -1
  85. package/build/components/AssetTable.d.ts +5 -2
  86. package/build/components/AssetTable.d.ts.map +1 -1
  87. package/build/components/AssetTable.js +37 -40
  88. package/build/components/AssetTable.js.map +1 -1
  89. package/build/components/AssetVersionLine.d.ts +27 -0
  90. package/build/components/AssetVersionLine.d.ts.map +1 -0
  91. package/build/components/AssetVersionLine.js +10 -0
  92. package/build/components/AssetVersionLine.js.map +1 -0
  93. package/build/components/BrowseExpandedBundle.d.ts +10 -1
  94. package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
  95. package/build/components/BrowseExpandedBundle.js +25 -2
  96. package/build/components/BrowseExpandedBundle.js.map +1 -1
  97. package/build/components/BrowseExpandedRow.d.ts +4 -1
  98. package/build/components/BrowseExpandedRow.d.ts.map +1 -1
  99. package/build/components/BrowseExpandedRow.js +24 -3
  100. package/build/components/BrowseExpandedRow.js.map +1 -1
  101. package/build/components/BrowseList.d.ts +5 -1
  102. package/build/components/BrowseList.d.ts.map +1 -1
  103. package/build/components/BrowseList.js +57 -47
  104. package/build/components/BrowseList.js.map +1 -1
  105. package/build/components/BundleDetail.d.ts +2 -1
  106. package/build/components/BundleDetail.d.ts.map +1 -1
  107. package/build/components/BundleDetail.js +3 -2
  108. package/build/components/BundleDetail.js.map +1 -1
  109. package/build/components/DiffView.d.ts +0 -2
  110. package/build/components/DiffView.d.ts.map +1 -1
  111. package/build/components/DiffView.js +11 -5
  112. package/build/components/DiffView.js.map +1 -1
  113. package/build/components/DryRunBanner.d.ts +3 -3
  114. package/build/components/DryRunBanner.d.ts.map +1 -1
  115. package/build/components/DryRunBanner.js +2 -2
  116. package/build/components/DryRunBanner.js.map +1 -1
  117. package/build/components/FilterBar.d.ts +10 -3
  118. package/build/components/FilterBar.d.ts.map +1 -1
  119. package/build/components/FilterBar.js +4 -4
  120. package/build/components/FilterBar.js.map +1 -1
  121. package/build/components/FrozenSkippedHint.d.ts +11 -0
  122. package/build/components/FrozenSkippedHint.d.ts.map +1 -0
  123. package/build/components/FrozenSkippedHint.js +12 -0
  124. package/build/components/FrozenSkippedHint.js.map +1 -0
  125. package/build/components/HelpBar.d.ts.map +1 -1
  126. package/build/components/HelpBar.js +3 -3
  127. package/build/components/HelpBar.js.map +1 -1
  128. package/build/components/InitSuccess.d.ts +5 -0
  129. package/build/components/InitSuccess.d.ts.map +1 -0
  130. package/build/components/InitSuccess.js +20 -0
  131. package/build/components/InitSuccess.js.map +1 -0
  132. package/build/components/InstallSummary.d.ts +3 -3
  133. package/build/components/InstallSummary.d.ts.map +1 -1
  134. package/build/components/InstallSummary.js +2 -2
  135. package/build/components/InstallSummary.js.map +1 -1
  136. package/build/components/Link.d.ts +7 -0
  137. package/build/components/Link.d.ts.map +1 -0
  138. package/build/components/Link.js +6 -0
  139. package/build/components/Link.js.map +1 -0
  140. package/build/components/ListActionBar.d.ts +11 -0
  141. package/build/components/ListActionBar.d.ts.map +1 -0
  142. package/build/components/ListActionBar.js +30 -0
  143. package/build/components/ListActionBar.js.map +1 -0
  144. package/build/components/ListBrowseList.d.ts +27 -0
  145. package/build/components/ListBrowseList.d.ts.map +1 -0
  146. package/build/components/ListBrowseList.js +57 -0
  147. package/build/components/ListBrowseList.js.map +1 -0
  148. package/build/components/ListExpandedRow.d.ts +38 -0
  149. package/build/components/ListExpandedRow.d.ts.map +1 -0
  150. package/build/components/ListExpandedRow.js +46 -0
  151. package/build/components/ListExpandedRow.js.map +1 -0
  152. package/build/components/ListHelpBar.d.ts +19 -0
  153. package/build/components/ListHelpBar.d.ts.map +1 -0
  154. package/build/components/ListHelpBar.js +11 -0
  155. package/build/components/ListHelpBar.js.map +1 -0
  156. package/build/components/OrphanListItem.d.ts +15 -0
  157. package/build/components/OrphanListItem.d.ts.map +1 -0
  158. package/build/components/OrphanListItem.js +6 -0
  159. package/build/components/OrphanListItem.js.map +1 -0
  160. package/build/components/PromptField.d.ts +19 -0
  161. package/build/components/PromptField.d.ts.map +1 -0
  162. package/build/components/PromptField.js +7 -0
  163. package/build/components/PromptField.js.map +1 -0
  164. package/build/components/SkippedAssetSection.d.ts +35 -0
  165. package/build/components/SkippedAssetSection.d.ts.map +1 -0
  166. package/build/components/SkippedAssetSection.js +15 -0
  167. package/build/components/SkippedAssetSection.js.map +1 -0
  168. package/build/components/StatusBadge.d.ts +1 -1
  169. package/build/components/StatusBadge.d.ts.map +1 -1
  170. package/build/components/StatusBadge.js +4 -0
  171. package/build/components/StatusBadge.js.map +1 -1
  172. package/build/components/SyncAllInSync.d.ts +14 -0
  173. package/build/components/SyncAllInSync.d.ts.map +1 -0
  174. package/build/components/SyncAllInSync.js +10 -0
  175. package/build/components/SyncAllInSync.js.map +1 -0
  176. package/build/components/SyncDriftedList.d.ts +24 -0
  177. package/build/components/SyncDriftedList.d.ts.map +1 -0
  178. package/build/components/SyncDriftedList.js +17 -0
  179. package/build/components/SyncDriftedList.js.map +1 -0
  180. package/build/components/SyncNoAssets.d.ts +12 -0
  181. package/build/components/SyncNoAssets.d.ts.map +1 -0
  182. package/build/components/SyncNoAssets.js +9 -0
  183. package/build/components/SyncNoAssets.js.map +1 -0
  184. package/build/components/index.d.ts +16 -2
  185. package/build/components/index.d.ts.map +1 -1
  186. package/build/components/index.js +16 -2
  187. package/build/components/index.js.map +1 -1
  188. package/build/hooks/useBrowseState.d.ts +44 -1
  189. package/build/hooks/useBrowseState.d.ts.map +1 -1
  190. package/build/hooks/useBrowseState.js +148 -13
  191. package/build/hooks/useBrowseState.js.map +1 -1
  192. package/build/hooks/useConfirmation.d.ts +18 -0
  193. package/build/hooks/useConfirmation.d.ts.map +1 -0
  194. package/build/hooks/useConfirmation.js +56 -0
  195. package/build/hooks/useConfirmation.js.map +1 -0
  196. package/build/hooks/useInitState.d.ts +109 -0
  197. package/build/hooks/useInitState.d.ts.map +1 -0
  198. package/build/hooks/useInitState.js +474 -0
  199. package/build/hooks/useInitState.js.map +1 -0
  200. package/build/hooks/useListActions.d.ts +15 -0
  201. package/build/hooks/useListActions.d.ts.map +1 -0
  202. package/build/hooks/useListActions.js +155 -0
  203. package/build/hooks/useListActions.js.map +1 -0
  204. package/build/hooks/useListState.d.ts +151 -0
  205. package/build/hooks/useListState.d.ts.map +1 -0
  206. package/build/hooks/useListState.js +448 -0
  207. package/build/hooks/useListState.js.map +1 -0
  208. package/build/hooks/usePruneState.d.ts +76 -0
  209. package/build/hooks/usePruneState.d.ts.map +1 -0
  210. package/build/hooks/usePruneState.js +252 -0
  211. package/build/hooks/usePruneState.js.map +1 -0
  212. package/build/hooks/usePublishState.d.ts +147 -0
  213. package/build/hooks/usePublishState.d.ts.map +1 -0
  214. package/build/hooks/usePublishState.js +916 -0
  215. package/build/hooks/usePublishState.js.map +1 -0
  216. package/build/hooks/useSetupState.d.ts +57 -0
  217. package/build/hooks/useSetupState.d.ts.map +1 -0
  218. package/build/hooks/useSetupState.js +236 -0
  219. package/build/hooks/useSetupState.js.map +1 -0
  220. package/build/hooks/useUninstallState.d.ts +102 -0
  221. package/build/hooks/useUninstallState.d.ts.map +1 -0
  222. package/build/hooks/useUninstallState.js +342 -0
  223. package/build/hooks/useUninstallState.js.map +1 -0
  224. package/build/lib/adapter.d.ts +21 -0
  225. package/build/lib/adapter.d.ts.map +1 -1
  226. package/build/lib/adapter.js +59 -1
  227. package/build/lib/adapter.js.map +1 -1
  228. package/build/lib/checksum.d.ts +39 -0
  229. package/build/lib/checksum.d.ts.map +1 -1
  230. package/build/lib/checksum.js +98 -13
  231. package/build/lib/checksum.js.map +1 -1
  232. package/build/lib/config.d.ts +38 -18
  233. package/build/lib/config.d.ts.map +1 -1
  234. package/build/lib/config.js +103 -55
  235. package/build/lib/config.js.map +1 -1
  236. package/build/lib/detector.d.ts +2 -11
  237. package/build/lib/detector.d.ts.map +1 -1
  238. package/build/lib/detector.js +2 -64
  239. package/build/lib/detector.js.map +1 -1
  240. package/build/lib/diagnostics.d.ts +7 -0
  241. package/build/lib/diagnostics.d.ts.map +1 -1
  242. package/build/lib/diagnostics.js +54 -34
  243. package/build/lib/diagnostics.js.map +1 -1
  244. package/build/lib/diff-command.d.ts +40 -0
  245. package/build/lib/diff-command.d.ts.map +1 -0
  246. package/build/lib/diff-command.js +145 -0
  247. package/build/lib/diff-command.js.map +1 -0
  248. package/build/lib/diff.d.ts +7 -0
  249. package/build/lib/diff.d.ts.map +1 -1
  250. package/build/lib/diff.js +15 -10
  251. package/build/lib/diff.js.map +1 -1
  252. package/build/lib/format.d.ts +6 -0
  253. package/build/lib/format.d.ts.map +1 -0
  254. package/build/lib/format.js +18 -0
  255. package/build/lib/format.js.map +1 -0
  256. package/build/lib/github.d.ts +35 -0
  257. package/build/lib/github.d.ts.map +1 -1
  258. package/build/lib/github.js +44 -0
  259. package/build/lib/github.js.map +1 -1
  260. package/build/lib/gitignore.d.ts +17 -0
  261. package/build/lib/gitignore.d.ts.map +1 -1
  262. package/build/lib/gitignore.js +17 -1
  263. package/build/lib/gitignore.js.map +1 -1
  264. package/build/lib/init.d.ts +22 -0
  265. package/build/lib/init.d.ts.map +1 -1
  266. package/build/lib/init.js +163 -18
  267. package/build/lib/init.js.map +1 -1
  268. package/build/lib/installer.d.ts +1 -0
  269. package/build/lib/installer.d.ts.map +1 -1
  270. package/build/lib/installer.js +7 -7
  271. package/build/lib/installer.js.map +1 -1
  272. package/build/lib/lockfile.d.ts +19 -17
  273. package/build/lib/lockfile.d.ts.map +1 -1
  274. package/build/lib/lockfile.js +43 -67
  275. package/build/lib/lockfile.js.map +1 -1
  276. package/build/lib/publisher.d.ts +41 -12
  277. package/build/lib/publisher.d.ts.map +1 -1
  278. package/build/lib/publisher.js +226 -64
  279. package/build/lib/publisher.js.map +1 -1
  280. package/build/lib/registry.d.ts +20 -5
  281. package/build/lib/registry.d.ts.map +1 -1
  282. package/build/lib/registry.js +41 -30
  283. package/build/lib/registry.js.map +1 -1
  284. package/build/lib/schemas/config.d.ts +31 -3
  285. package/build/lib/schemas/config.d.ts.map +1 -1
  286. package/build/lib/schemas/config.js +21 -2
  287. package/build/lib/schemas/config.js.map +1 -1
  288. package/build/lib/schemas/index.d.ts +1 -1
  289. package/build/lib/schemas/index.d.ts.map +1 -1
  290. package/build/lib/schemas/index.js +1 -1
  291. package/build/lib/schemas/index.js.map +1 -1
  292. package/build/lib/schemas/lockfile.d.ts +18 -2
  293. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  294. package/build/lib/schemas/lockfile.js +7 -1
  295. package/build/lib/schemas/lockfile.js.map +1 -1
  296. package/build/lib/schemas/manifest.d.ts +1 -1
  297. package/build/lib/schemas/manifest.d.ts.map +1 -1
  298. package/build/lib/schemas/manifest.js +7 -2
  299. package/build/lib/schemas/manifest.js.map +1 -1
  300. package/build/lib/schemas/registry.d.ts +2 -4
  301. package/build/lib/schemas/registry.d.ts.map +1 -1
  302. package/build/lib/schemas/registry.js +1 -1
  303. package/build/lib/schemas/registry.js.map +1 -1
  304. package/build/lib/search.d.ts +15 -1
  305. package/build/lib/search.d.ts.map +1 -1
  306. package/build/lib/search.js +65 -65
  307. package/build/lib/search.js.map +1 -1
  308. package/build/lib/setup.d.ts +28 -0
  309. package/build/lib/setup.d.ts.map +1 -0
  310. package/build/lib/setup.js +98 -0
  311. package/build/lib/setup.js.map +1 -0
  312. package/build/lib/sync.d.ts +109 -0
  313. package/build/lib/sync.d.ts.map +1 -0
  314. package/build/lib/sync.js +217 -0
  315. package/build/lib/sync.js.map +1 -0
  316. package/build/lib/tool-resolver.d.ts +29 -6
  317. package/build/lib/tool-resolver.d.ts.map +1 -1
  318. package/build/lib/tool-resolver.js +54 -15
  319. package/build/lib/tool-resolver.js.map +1 -1
  320. package/build/lib/updater.d.ts +7 -4
  321. package/build/lib/updater.d.ts.map +1 -1
  322. package/build/lib/updater.js +10 -6
  323. package/build/lib/updater.js.map +1 -1
  324. package/build/lib/version.js +1 -1
  325. package/build/lib/version.js.map +1 -1
  326. package/package.json +79 -65
  327. package/tool-adapters/claude-code.json +1 -1
  328. package/tool-adapters/copilot-cli.json +1 -1
@@ -0,0 +1,252 @@
1
+ import { useEffect, useReducer, useRef } from 'react';
2
+ import { findAllOrphanedAssets, readLockfile, removeAssetFromLockfile, withLockfileErrorHandling, writeLockfile, } from '../lib/lockfile.js';
3
+ import { findProjectRoot } from '../lib/paths.js';
4
+ import { resolveTools } from '../lib/tool-resolver.js';
5
+ import { removeSingleAsset } from '../lib/uninstaller.js';
6
+ // ---------------------------------------------------------------------------
7
+ // Initial state factory
8
+ // ---------------------------------------------------------------------------
9
+ export function createInitialState(flags) {
10
+ return {
11
+ errorMessage: '',
12
+ executeErrors: [],
13
+ executeOrphans: [],
14
+ executeRemoved: [],
15
+ flags,
16
+ outcome: null,
17
+ phase: 'loading',
18
+ progress: 'Initializing...',
19
+ };
20
+ }
21
+ // ---------------------------------------------------------------------------
22
+ // Pure reducer
23
+ // ---------------------------------------------------------------------------
24
+ export function pruneReducer(state, action) {
25
+ switch (action.type) {
26
+ case 'CANCEL': {
27
+ if (state.phase !== 'confirming')
28
+ return state;
29
+ return { ...state, phase: 'done' };
30
+ }
31
+ case 'CONFIRM': {
32
+ if (state.phase !== 'confirming')
33
+ return state;
34
+ return { ...state, phase: 'executing', progress: 'Executing...' };
35
+ }
36
+ case 'ERROR':
37
+ return { ...state, errorMessage: action.message, phase: 'error' };
38
+ case 'EXECUTE_DONE': {
39
+ // Extract toolNames from the previous confirming outcome for the pruned outcome
40
+ const toolNames = state.outcome && 'toolNames' in state.outcome ? state.outcome.toolNames : [];
41
+ return {
42
+ ...state,
43
+ executeErrors: action.errors,
44
+ executeOrphans: action.orphans,
45
+ executeRemoved: action.removed,
46
+ outcome: {
47
+ errors: action.errors,
48
+ orphans: action.orphans,
49
+ outcome: 'pruned',
50
+ removed: action.removed,
51
+ toolNames,
52
+ },
53
+ phase: 'done',
54
+ };
55
+ }
56
+ case 'EXECUTE_ERROR': {
57
+ return { ...state, errorMessage: action.message, phase: 'error' };
58
+ }
59
+ case 'EXECUTE_PROGRESS': {
60
+ if (state.phase !== 'executing')
61
+ return state;
62
+ return { ...state, progress: action.message };
63
+ }
64
+ case 'LOAD_DONE': {
65
+ const { outcome } = action;
66
+ switch (outcome.outcome) {
67
+ case 'confirming':
68
+ return { ...state, outcome, phase: 'confirming' };
69
+ case 'dry-run':
70
+ case 'no-orphans':
71
+ case 'pruned':
72
+ return { ...state, outcome, phase: 'done' };
73
+ default:
74
+ return { ...state, outcome, phase: 'done' };
75
+ }
76
+ }
77
+ case 'LOAD_PROGRESS': {
78
+ if (state.phase !== 'loading')
79
+ return state;
80
+ return { ...state, progress: action.message };
81
+ }
82
+ default:
83
+ return state;
84
+ }
85
+ }
86
+ // ---------------------------------------------------------------------------
87
+ // Hook
88
+ // ---------------------------------------------------------------------------
89
+ export function usePruneState(flags) {
90
+ const [state, dispatch] = useReducer(pruneReducer, undefined, () => createInitialState(flags));
91
+ // Guard against React development-mode double-firing of effects.
92
+ const hasLoadedRef = useRef(false);
93
+ // --- Loading phase-gated effect ---
94
+ useEffect(() => {
95
+ if (state.phase !== 'loading')
96
+ return;
97
+ if (hasLoadedRef.current)
98
+ return;
99
+ hasLoadedRef.current = true;
100
+ let cancelled = false;
101
+ const load = async () => {
102
+ const { dryRun, projectRoot, tool, yes } = state.flags;
103
+ const projectDir = findProjectRoot(projectRoot);
104
+ const resolved = await resolveTools(tool, projectDir);
105
+ const defaultAdapter = resolved[0].adapter;
106
+ const toolNames = resolved.map((r) => r.tool);
107
+ if (cancelled)
108
+ return;
109
+ dispatch({ message: 'Reading lockfile...', type: 'LOAD_PROGRESS' });
110
+ const lockfile = await readLockfile(projectDir);
111
+ if (cancelled)
112
+ return;
113
+ if ((lockfile.assets ?? []).length === 0) {
114
+ dispatch({ outcome: { outcome: 'no-orphans', toolNames }, type: 'LOAD_DONE' });
115
+ return;
116
+ }
117
+ dispatch({ message: 'Scanning for orphaned dependencies...', type: 'LOAD_PROGRESS' });
118
+ const orphans = findAllOrphanedAssets(lockfile);
119
+ if (orphans.length === 0) {
120
+ dispatch({ outcome: { outcome: 'no-orphans', toolNames }, type: 'LOAD_DONE' });
121
+ return;
122
+ }
123
+ if (dryRun) {
124
+ dispatch({ outcome: { orphans, outcome: 'dry-run', toolNames }, type: 'LOAD_DONE' });
125
+ return;
126
+ }
127
+ if (yes) {
128
+ dispatch({ message: 'Removing orphans...', type: 'LOAD_PROGRESS' });
129
+ const result = await withLockfileErrorHandling(projectDir, async () => {
130
+ // Re-read lockfile inside the lock for freshness
131
+ let currentLockfile = await readLockfile(projectDir);
132
+ const freshOrphans = findAllOrphanedAssets(currentLockfile);
133
+ const removed = [];
134
+ const errors = [];
135
+ for (const orphan of freshOrphans) {
136
+ if (cancelled)
137
+ break;
138
+ try {
139
+ dispatch({ message: `Removing ${orphan.name}...`, type: 'LOAD_PROGRESS' });
140
+ await removeSingleAsset(orphan, defaultAdapter, projectDir);
141
+ currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type);
142
+ removed.push(orphan.name);
143
+ }
144
+ catch (err) {
145
+ errors.push({
146
+ error: err instanceof Error ? err.message : String(err),
147
+ name: orphan.name,
148
+ });
149
+ }
150
+ }
151
+ dispatch({ message: 'Updating lockfile...', type: 'LOAD_PROGRESS' });
152
+ await writeLockfile(projectDir, currentLockfile);
153
+ return { errors, orphans: freshOrphans, removed };
154
+ });
155
+ if (cancelled)
156
+ return;
157
+ dispatch({
158
+ outcome: {
159
+ errors: result.errors,
160
+ orphans: result.orphans,
161
+ outcome: 'pruned',
162
+ removed: result.removed,
163
+ toolNames,
164
+ },
165
+ type: 'LOAD_DONE',
166
+ });
167
+ return;
168
+ }
169
+ // Confirmation path — check for interactive TTY
170
+ if (!process.stdin.isTTY) {
171
+ dispatch({
172
+ message: 'Confirmation required but stdin is not interactive. Use --yes (-y) to skip the prompt.',
173
+ type: 'ERROR',
174
+ });
175
+ return;
176
+ }
177
+ dispatch({
178
+ outcome: { defaultAdapter, orphans, outcome: 'confirming', toolNames },
179
+ type: 'LOAD_DONE',
180
+ });
181
+ };
182
+ load().catch((err) => {
183
+ if (!cancelled) {
184
+ dispatch({ message: err instanceof Error ? err.message : String(err), type: 'ERROR' });
185
+ }
186
+ });
187
+ return () => {
188
+ cancelled = true;
189
+ };
190
+ // Phase-gated effect: only runs when entering 'loading'
191
+ // eslint-disable-next-line react-hooks/exhaustive-deps
192
+ }, [state.phase]);
193
+ // --- Executing phase-gated effect ---
194
+ useEffect(() => {
195
+ if (state.phase !== 'executing')
196
+ return;
197
+ let cancelled = false;
198
+ const execute = async () => {
199
+ const { outcome } = state;
200
+ if (!outcome || outcome.outcome !== 'confirming') {
201
+ dispatch({ message: 'Internal error: no confirming outcome available for execution.', type: 'EXECUTE_ERROR' });
202
+ return;
203
+ }
204
+ const { defaultAdapter } = outcome;
205
+ const { projectRoot } = state.flags;
206
+ const projectDir = findProjectRoot(projectRoot);
207
+ const result = await withLockfileErrorHandling(projectDir, async () => {
208
+ // Re-read lockfile inside the lock for freshness
209
+ let currentLockfile = await readLockfile(projectDir);
210
+ const freshOrphans = findAllOrphanedAssets(currentLockfile);
211
+ const removed = [];
212
+ const errors = [];
213
+ for (const orphan of freshOrphans) {
214
+ if (cancelled)
215
+ break;
216
+ try {
217
+ if (!cancelled)
218
+ dispatch({ message: `Removing ${orphan.name}...`, type: 'EXECUTE_PROGRESS' });
219
+ await removeSingleAsset(orphan, defaultAdapter, projectDir);
220
+ currentLockfile = removeAssetFromLockfile(currentLockfile, orphan.name, orphan.type);
221
+ removed.push(orphan.name);
222
+ }
223
+ catch (err) {
224
+ errors.push({
225
+ error: err instanceof Error ? err.message : String(err),
226
+ name: orphan.name,
227
+ });
228
+ }
229
+ }
230
+ if (!cancelled)
231
+ dispatch({ message: 'Updating lockfile...', type: 'EXECUTE_PROGRESS' });
232
+ await writeLockfile(projectDir, currentLockfile);
233
+ return { errors, orphans: freshOrphans, removed };
234
+ });
235
+ if (cancelled)
236
+ return;
237
+ dispatch({ errors: result.errors, orphans: result.orphans, removed: result.removed, type: 'EXECUTE_DONE' });
238
+ };
239
+ execute().catch((err) => {
240
+ if (!cancelled) {
241
+ dispatch({ message: err instanceof Error ? err.message : String(err), type: 'EXECUTE_ERROR' });
242
+ }
243
+ });
244
+ return () => {
245
+ cancelled = true;
246
+ };
247
+ // Phase-gated effect: only runs when entering 'executing'
248
+ // eslint-disable-next-line react-hooks/exhaustive-deps
249
+ }, [state.phase]);
250
+ return [state, dispatch];
251
+ }
252
+ //# sourceMappingURL=usePruneState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePruneState.js","sourceRoot":"","sources":["../../src/hooks/usePruneState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import type { PublishPlan, PublishResult, PublishTarget, RawAssetDetection, ValidationResult, VersionCheckResult } from '../lib/publisher.js';
2
+ import type { Adapter } from '../lib/schemas/adapter.js';
3
+ export type MetadataSubPhase = 'building-staging' | 'description' | 'tags';
4
+ export type PublishAction = {
5
+ adapters: Adapter[];
6
+ type: 'TOOLS_LOADED';
7
+ } | {
8
+ authorValue: string;
9
+ orgValue: string;
10
+ rawDetection: RawAssetDetection;
11
+ toolsDetected: Array<{
12
+ tool: string;
13
+ }>;
14
+ type: 'RAW_DETECT_DONE';
15
+ } | {
16
+ isUpdate: boolean;
17
+ resolvedVersion: string;
18
+ token: string;
19
+ type: 'REGISTRY_CHECK_DONE';
20
+ versionCheck: VersionCheckResult;
21
+ } | {
22
+ message: string;
23
+ type: 'BUMP_DONE';
24
+ updatedTarget: PublishTarget;
25
+ version: string;
26
+ } | {
27
+ message: string;
28
+ type: 'ERROR';
29
+ } | {
30
+ message: string;
31
+ type: 'PUBLISH_PROGRESS';
32
+ } | {
33
+ plan: PublishPlan;
34
+ type: 'PLAN_DONE';
35
+ } | {
36
+ rawDetection: RawAssetDetection;
37
+ target: PublishTarget;
38
+ type: 'RAW_DETECT_DONE_NON_INTERACTIVE';
39
+ } | {
40
+ resolvedPath: string;
41
+ type: 'RESOLVED_INSTALLED';
42
+ } | {
43
+ resolvedPath: string;
44
+ type: 'RESOLVED_UPDATE';
45
+ } | {
46
+ result: PublishResult;
47
+ type: 'PUBLISH_DONE';
48
+ } | {
49
+ target: PublishTarget;
50
+ type: 'DETECT_DONE';
51
+ } | {
52
+ target: PublishTarget;
53
+ type: 'STAGING_DONE';
54
+ } | {
55
+ tool: string;
56
+ type: 'TOGGLE_PROMPT_TOOL';
57
+ } | {
58
+ type: 'CONFIRM_PROMPT_TOOLS';
59
+ } | {
60
+ type: 'INSTALL_DONE';
61
+ } | {
62
+ type: 'SET_BUMP_SELECTION';
63
+ value: string;
64
+ } | {
65
+ type: 'SET_CONFIRM_VALUE';
66
+ value: string;
67
+ } | {
68
+ type: 'SET_DESCRIPTION';
69
+ value: string;
70
+ } | {
71
+ type: 'SET_PROMPT_TAGS';
72
+ value: string;
73
+ } | {
74
+ type: 'SET_PUBLISH_CONFIRM_VALUE';
75
+ value: string;
76
+ } | {
77
+ type: 'SET_TAGS';
78
+ value: string;
79
+ } | {
80
+ type: 'SUBMIT_BUMP';
81
+ } | {
82
+ type: 'SUBMIT_CONFIRM';
83
+ } | {
84
+ type: 'SUBMIT_DESCRIPTION';
85
+ } | {
86
+ type: 'SUBMIT_PROMPT_TAGS';
87
+ } | {
88
+ type: 'SUBMIT_PUBLISH_CONFIRM';
89
+ } | {
90
+ type: 'SUBMIT_TAGS';
91
+ } | {
92
+ type: 'TOOL_CURSOR_DOWN';
93
+ } | {
94
+ type: 'TOOL_CURSOR_UP';
95
+ } | {
96
+ type: 'VALIDATE_DONE';
97
+ validation: ValidationResult;
98
+ };
99
+ export interface PublishFlags {
100
+ descriptionFlag?: string;
101
+ dryRun: boolean;
102
+ fromInstalled: boolean;
103
+ message?: string;
104
+ projectRoot?: string;
105
+ rawPath: string;
106
+ refresh?: boolean;
107
+ tagsFlag?: string;
108
+ tool?: string;
109
+ update: boolean;
110
+ }
111
+ export type PublishPhase = 'building-plan' | 'bump-prompt' | 'checking-registry' | 'confirm-publish' | 'confirm-update' | 'detecting' | 'done' | 'dry-run-result' | 'error' | 'gathering-metadata' | 'installing' | 'loading-tools' | 'prompting-tags' | 'prompting-tools' | 'publishing' | 'resolving-installed' | 'resolving-update' | 'validating';
112
+ export interface PublishState {
113
+ authorValue: string;
114
+ bumpSelection: string;
115
+ confirmValue: string;
116
+ descriptionValue: string;
117
+ errorMessage: string;
118
+ flags: PublishFlags;
119
+ isRawPublish: boolean;
120
+ isUpdate: boolean;
121
+ metadataSubPhase: MetadataSubPhase;
122
+ orgValue: string;
123
+ phase: PublishPhase;
124
+ plan: PublishPlan | undefined;
125
+ progressMessage: string;
126
+ promptTagsValue: string;
127
+ publishConfirmValue: string;
128
+ publishResult: PublishResult | undefined;
129
+ rawDetection: null | RawAssetDetection;
130
+ resolvedPath: string;
131
+ resolvedVersion: string;
132
+ selectedPromptTools: string[];
133
+ tagsValue: string;
134
+ target: PublishTarget | undefined;
135
+ token: string | undefined;
136
+ toolAdapters: Adapter[];
137
+ toolCursorIndex: number;
138
+ toolsDetected: Array<{
139
+ tool: string;
140
+ }>;
141
+ validation: undefined | ValidationResult;
142
+ versionCheck: undefined | VersionCheckResult;
143
+ }
144
+ export declare function createInitialState(flags: PublishFlags): PublishState;
145
+ export declare function publishReducer(state: PublishState, action: PublishAction): PublishState;
146
+ export declare function usePublishState(flags: PublishFlags): readonly [PublishState, React.Dispatch<PublishAction>];
147
+ //# sourceMappingURL=usePublishState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePublishState.d.ts","sourceRoot":"","sources":["../../src/hooks/usePublishState.ts"],"names":[],"mappings":"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"}