@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 @@
1
+ {"version":3,"file":"uninstaller.js","sourceRoot":"","sources":["../../src/lib/uninstaller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { Adapter } from './schemas/adapter.js';
2
+ import type { InstalledAsset, Lockfile } from './schemas/lockfile.js';
3
+ import type { Registry } from './schemas/registry.js';
4
+ import { type InstallResult } from './installer.js';
5
+ export interface OutdatedAsset {
6
+ installedVersion: string;
7
+ latestVersion: string;
8
+ name: string;
9
+ /** Whether the asset is version-pinned. */
10
+ pinned?: boolean;
11
+ trustLevel: string;
12
+ type: string;
13
+ }
14
+ export interface UpdateAssetsResult {
15
+ failures: UpdateFailure[];
16
+ results: UpdateResult[];
17
+ /** Assets that were skipped during bulk update because they are pinned. */
18
+ skipped?: OutdatedAsset[];
19
+ }
20
+ export interface UpdateFailure {
21
+ error: string;
22
+ name: string;
23
+ type: string;
24
+ }
25
+ export interface UpdateOptions {
26
+ /** Adapter for the target tool. */
27
+ adapter: Adapter;
28
+ /** Force update even if the asset is pinned. */
29
+ force?: boolean;
30
+ /** Pre-read lockfile to avoid redundant reads (used for dropped dependency cleanup). */
31
+ lockfile?: Lockfile;
32
+ /** Callback for progress updates. */
33
+ onProgress?: (message: string) => void;
34
+ /** Project root directory. */
35
+ projectDir: string;
36
+ /** Target version to update to (defaults to latest). */
37
+ targetVersion?: string;
38
+ /** Tool identifier. */
39
+ tool: string;
40
+ }
41
+ export interface UpdateResult {
42
+ fromVersion: string;
43
+ installResult: InstallResult;
44
+ name: string;
45
+ toVersion: string;
46
+ type: string;
47
+ }
48
+ export declare class UpdaterError extends Error {
49
+ constructor(message: string);
50
+ }
51
+ /**
52
+ * Check which installed assets have newer versions in the registry.
53
+ * Compares the installed version against the asset's `latest` version
54
+ * using the version-aware `findAsset` lookup.
55
+ */
56
+ export declare function checkOutdated(lockfile: Lockfile, registry: Registry): OutdatedAsset[];
57
+ /**
58
+ * Update a single asset to the target version (defaults to latest).
59
+ * Uninstalls the current version and installs the target from registry.
60
+ */
61
+ export declare function updateAsset(assetName: string, installed: InstalledAsset, registry: Registry, options: UpdateOptions): Promise<UpdateResult>;
62
+ /**
63
+ * Update multiple assets. If no names provided, updates all outdated assets.
64
+ * When `targetVersion` is set in options and a single asset name is given,
65
+ * bypasses the outdated check and updates directly to the specified version.
66
+ */
67
+ export declare function updateAssets(assetNames: string[] | undefined, lockfile: Lockfile, registry: Registry, options: UpdateOptions): Promise<UpdateAssetsResult>;
68
+ //# sourceMappingURL=updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/lib/updater.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMxE,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,EAAE,CAwBrF;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,CAsGvB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,kBAAkB,CAAC,CA0F7B"}
@@ -0,0 +1,230 @@
1
+ import { compare, valid } from 'semver';
2
+ import { executeInstallPlan } from './installer.js';
3
+ import { findDependents, findInstalledAsset, readLockfile } from './lockfile.js';
4
+ import { findAsset } from './registry.js';
5
+ import { resolveInstallPlan } from './resolver.js';
6
+ import { uninstallAsset } from './uninstaller.js';
7
+ export class UpdaterError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'UpdaterError';
11
+ }
12
+ }
13
+ /**
14
+ * Check which installed assets have newer versions in the registry.
15
+ * Compares the installed version against the asset's `latest` version
16
+ * using the version-aware `findAsset` lookup.
17
+ */
18
+ export function checkOutdated(lockfile, registry) {
19
+ const outdated = [];
20
+ for (const installed of lockfile.assets ?? []) {
21
+ const resolved = findAsset(registry, installed.name, installed.type);
22
+ if (!resolved) {
23
+ // Asset no longer in registry — skip (could be removed/deprecated)
24
+ continue;
25
+ }
26
+ // resolved.version is the latest version (findAsset defaults to latest)
27
+ if (isNewer(resolved.version, installed.version)) {
28
+ outdated.push({
29
+ installedVersion: installed.version,
30
+ latestVersion: resolved.version,
31
+ name: installed.name,
32
+ pinned: installed.pinnedVersion ? true : undefined,
33
+ trustLevel: resolved.versionData.trustLevel ?? 'experimental',
34
+ type: installed.type,
35
+ });
36
+ }
37
+ }
38
+ return outdated;
39
+ }
40
+ /**
41
+ * Update a single asset to the target version (defaults to latest).
42
+ * Uninstalls the current version and installs the target from registry.
43
+ */
44
+ export async function updateAsset(assetName, installed, registry, options) {
45
+ const { adapter, onProgress, projectDir, targetVersion, tool } = options;
46
+ // Resolve the target version — defaults to latest when targetVersion is undefined
47
+ const resolved = findAsset(registry, assetName, installed.type, targetVersion);
48
+ if (!resolved) {
49
+ if (targetVersion) {
50
+ throw new UpdaterError(`Asset "${assetName}" version "${targetVersion}" not found in registry.`);
51
+ }
52
+ throw new UpdaterError(`Asset "${assetName}" not found in registry.`);
53
+ }
54
+ const toVersion = resolved.version;
55
+ if (!isNewer(toVersion, installed.version)) {
56
+ if (targetVersion) {
57
+ throw new UpdaterError(`Asset "${assetName}" is already at or ahead of the requested version (installed: v${installed.version}, requested: v${toVersion}).`);
58
+ }
59
+ throw new UpdaterError(`Asset "${assetName}" is already at the latest version (v${installed.version}).`);
60
+ }
61
+ const fromVersion = installed.version;
62
+ // Capture old dependencies before uninstalling
63
+ const oldDeps = installed.dependencies ?? [];
64
+ // Uninstall current version without cascade — new version may still need the same deps
65
+ onProgress?.(`Removing ${assetName}@${fromVersion}...`);
66
+ await uninstallAsset(assetName, { cascade: false, onProgress, projectDir, tool });
67
+ // Install target version (pass explicit version to resolver)
68
+ onProgress?.(`Installing ${assetName}@${toVersion}...`);
69
+ let results;
70
+ try {
71
+ const plan = resolveInstallPlan(registry, assetName, installed.type, toVersion);
72
+ results = await executeInstallPlan(plan, {
73
+ adapter,
74
+ force: true,
75
+ onProgress,
76
+ projectDir,
77
+ });
78
+ }
79
+ catch (installError) {
80
+ // Install failed — attempt to rollback by re-installing the old version
81
+ onProgress?.(`Install of ${assetName}@${toVersion} failed, attempting to restore ${assetName}@${fromVersion}...`);
82
+ try {
83
+ const rollbackPlan = resolveInstallPlan(registry, assetName, installed.type, fromVersion);
84
+ await executeInstallPlan(rollbackPlan, {
85
+ adapter,
86
+ force: true,
87
+ onProgress,
88
+ projectDir,
89
+ });
90
+ }
91
+ catch (rollbackError) {
92
+ throw new UpdaterError(`Failed to update "${assetName}" to v${toVersion}: ${installError instanceof Error ? installError.message : String(installError)}. ` +
93
+ `Rollback to v${fromVersion} also failed: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}. ` +
94
+ `The asset may need to be manually reinstalled.`);
95
+ }
96
+ throw new UpdaterError(`Failed to update "${assetName}" to v${toVersion}: ${installError instanceof Error ? installError.message : String(installError)}. ` +
97
+ `The previous version (v${fromVersion}) has been restored.`);
98
+ }
99
+ const directResult = results.find((r) => r.name === assetName);
100
+ if (!directResult) {
101
+ throw new UpdaterError(`Install did not produce a result for "${assetName}".`);
102
+ }
103
+ // Clean up dropped dependencies: deps in old version but not in new version
104
+ const newDeps = resolved.versionData.dependencies ?? [];
105
+ const newDepKeys = new Set(newDeps.map((d) => `${d.type}:${d.name}`));
106
+ const droppedDeps = oldDeps.filter((d) => !newDepKeys.has(`${d.type}:${d.name}`));
107
+ if (droppedDeps.length > 0) {
108
+ const updatedLockfile = options.lockfile ?? (await readLockfile(projectDir, tool));
109
+ for (const dep of droppedDeps) {
110
+ const depAsset = findInstalledAsset(updatedLockfile, dep.name, dep.type);
111
+ if (!depAsset)
112
+ continue;
113
+ // Only remove if it was a dependency and no other asset depends on it
114
+ if ((depAsset.installReason ?? 'direct') !== 'dependency')
115
+ continue;
116
+ const dependents = findDependents(updatedLockfile, dep.name, dep.type);
117
+ if (dependents.length === 0) {
118
+ onProgress?.(`Removing dropped dependency ${dep.name}...`);
119
+ await uninstallAsset(dep.name, { cascade: true, onProgress, projectDir, tool });
120
+ }
121
+ }
122
+ }
123
+ return {
124
+ fromVersion,
125
+ installResult: directResult,
126
+ name: assetName,
127
+ toVersion,
128
+ type: installed.type,
129
+ };
130
+ }
131
+ /**
132
+ * Update multiple assets. If no names provided, updates all outdated assets.
133
+ * When `targetVersion` is set in options and a single asset name is given,
134
+ * bypasses the outdated check and updates directly to the specified version.
135
+ */
136
+ export async function updateAssets(assetNames, lockfile, registry, options) {
137
+ // When a specific target version is requested for a single asset, bypass outdated check
138
+ // and delegate directly to updateAsset which handles version comparison.
139
+ if (options.targetVersion && assetNames && assetNames.length === 1) {
140
+ const name = assetNames[0];
141
+ const installed = (lockfile.assets ?? []).find((a) => a.name === name);
142
+ if (!installed) {
143
+ throw new UpdaterError(`Asset "${name}" is not installed.`);
144
+ }
145
+ // Check pin state for explicitly targeted asset
146
+ if (installed.pinnedVersion && !options.force) {
147
+ throw new UpdaterError(`Asset "${name}" is pinned to version "${installed.pinnedVersion}". Use --force to override the pin.`);
148
+ }
149
+ const currentLockfile = await readLockfile(options.projectDir, options.tool);
150
+ const result = await updateAsset(name, installed, registry, {
151
+ ...options,
152
+ lockfile: currentLockfile,
153
+ });
154
+ return { failures: [], results: [result] };
155
+ }
156
+ const outdated = checkOutdated(lockfile, registry);
157
+ let toUpdate;
158
+ const skipped = [];
159
+ if (assetNames && assetNames.length > 0) {
160
+ toUpdate = outdated.filter((o) => assetNames.includes(o.name));
161
+ // Check for names that aren't outdated
162
+ for (const name of assetNames) {
163
+ if (!outdated.find((o) => o.name === name)) {
164
+ const installed = (lockfile.assets ?? []).find((a) => a.name === name);
165
+ if (!installed) {
166
+ throw new UpdaterError(`Asset "${name}" is not installed.`);
167
+ }
168
+ throw new UpdaterError(`Asset "${name}" is already at the latest version (v${installed.version}).`);
169
+ }
170
+ }
171
+ // For explicitly targeted pinned assets, throw unless force is true
172
+ for (const asset of toUpdate) {
173
+ if (asset.pinned && !options.force) {
174
+ throw new UpdaterError(`Asset "${asset.name}" is pinned. Use --force to override the pin.`);
175
+ }
176
+ }
177
+ }
178
+ else {
179
+ // Bulk update: skip pinned assets without error
180
+ toUpdate = [];
181
+ for (const asset of outdated) {
182
+ if (asset.pinned) {
183
+ skipped.push(asset);
184
+ options.onProgress?.(`Skipping pinned asset ${asset.name} (pinned, use --force to override)`);
185
+ }
186
+ else {
187
+ toUpdate.push(asset);
188
+ }
189
+ }
190
+ }
191
+ if (toUpdate.length === 0) {
192
+ return { failures: [], results: [], skipped: skipped.length > 0 ? skipped : undefined };
193
+ }
194
+ const results = [];
195
+ const failures = [];
196
+ for (const asset of toUpdate) {
197
+ const installed = (lockfile.assets ?? []).find((a) => a.name === asset.name);
198
+ if (!installed) {
199
+ throw new UpdaterError(`Asset "${asset.name}" is installed but not found in lockfile.`);
200
+ }
201
+ try {
202
+ // Read the lockfile once per iteration for dropped dependency cleanup,
203
+ // rather than letting each updateAsset call re-read it internally.
204
+ const currentLockfile = await readLockfile(options.projectDir, options.tool);
205
+ const result = await updateAsset(asset.name, installed, registry, {
206
+ ...options,
207
+ lockfile: currentLockfile,
208
+ });
209
+ results.push(result);
210
+ }
211
+ catch (error) {
212
+ const message = error instanceof Error ? error.message : String(error);
213
+ options.onProgress?.(`Failed to update ${asset.name}: ${message}`);
214
+ failures.push({ error: message, name: asset.name, type: asset.type });
215
+ }
216
+ }
217
+ return { failures, results, skipped: skipped.length > 0 ? skipped : undefined };
218
+ }
219
+ /**
220
+ * Check if the registry version is newer than the installed version.
221
+ * Falls back to string comparison if semver parsing fails.
222
+ */
223
+ function isNewer(registryVersion, installedVersion) {
224
+ if (valid(registryVersion) && valid(installedVersion)) {
225
+ return compare(registryVersion, installedVersion) > 0;
226
+ }
227
+ // Fallback: string comparison
228
+ return registryVersion !== installedVersion;
229
+ }
230
+ //# sourceMappingURL=updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/lib/updater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const CLI_VERSION: string;
2
+ export declare function isPreRelease(): boolean;
3
+ /**
4
+ * Parse a `name@version` specifier into its name and optional version parts.
5
+ * Splits on the last `@` to correctly handle scoped names (e.g., `@scope/name@1.0.0`).
6
+ * If no `@` is present (or the only `@` is at position 0 for scoped names), returns
7
+ * the full input as the name with no version.
8
+ */
9
+ export declare function parseNameVersion(input: string): {
10
+ name: string;
11
+ version?: string;
12
+ };
13
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,QAAc,CAAC;AAEvC,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBlF"}
@@ -0,0 +1,30 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
6
+ export const CLI_VERSION = pkg.version;
7
+ export function isPreRelease() {
8
+ return CLI_VERSION.includes('-');
9
+ }
10
+ /**
11
+ * Parse a `name@version` specifier into its name and optional version parts.
12
+ * Splits on the last `@` to correctly handle scoped names (e.g., `@scope/name@1.0.0`).
13
+ * If no `@` is present (or the only `@` is at position 0 for scoped names), returns
14
+ * the full input as the name with no version.
15
+ */
16
+ export function parseNameVersion(input) {
17
+ const lastAt = input.lastIndexOf('@');
18
+ // No '@' at all, or the only '@' is a leading scope prefix (e.g., `@scope/name`)
19
+ if (lastAt <= 0) {
20
+ return { name: input };
21
+ }
22
+ const name = input.slice(0, lastAt);
23
+ const version = input.slice(lastAt + 1);
24
+ // Guard against empty version (trailing `@` with nothing after it)
25
+ if (!version) {
26
+ return { name: input };
27
+ }
28
+ return { name, version };
29
+ }
30
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAwB,CAAC;AAEjH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;AAEvC,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEtC,iFAAiF;IACjF,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAExC,mEAAmE;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,15 @@
1
+ type ResolveContext = {
2
+ conditions: string[];
3
+ importAttributes: Record<string, string>;
4
+ parentURL?: string;
5
+ };
6
+ type ResolveFn = (specifier: string, context: ResolveContext) => Promise<{
7
+ shortCircuit?: boolean;
8
+ url: string;
9
+ }>;
10
+ export declare function resolve(specifier: string, context: ResolveContext, nextResolve: ResolveFn): Promise<{
11
+ shortCircuit?: boolean;
12
+ url: string;
13
+ }>;
14
+ export {};
15
+ //# sourceMappingURL=windows-esm-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-esm-loader.d.ts","sourceRoot":"","sources":["../src/windows-esm-loader.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,SAAS,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAIlH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAKlD"}
@@ -0,0 +1,11 @@
1
+ const WINDOWS_PATH_RE = /^[A-Za-z]:[/\\]/;
2
+ export async function resolve(specifier, context, nextResolve) {
3
+ if (WINDOWS_PATH_RE.test(specifier)) {
4
+ return { shortCircuit: true, url: windowsPathToFileURL(specifier) };
5
+ }
6
+ return nextResolve(specifier, context);
7
+ }
8
+ function windowsPathToFileURL(path) {
9
+ return 'file:///' + path.replaceAll('\\', '/');
10
+ }
11
+ //# sourceMappingURL=windows-esm-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-esm-loader.js","sourceRoot":"","sources":["../src/windows-esm-loader.ts"],"names":[],"mappings":"AAQA,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAiB,EACjB,OAAuB,EACvB,WAAsB;IAEtB,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@detergent-software/atk",
3
+ "version": "0.12.1-dev.2",
4
+ "description": "Agentic Tool Kit — CLI for managing AI coding tool assets.",
5
+ "type": "module",
6
+ "bin": {
7
+ "atk": "./build/cli.js"
8
+ },
9
+ "files": [
10
+ "build",
11
+ "!build/__tests__",
12
+ "tool-adapters"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "format": "prettier --write \"src/**/*.{ts,tsx}\"",
18
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
19
+ "lint": "eslint src/",
20
+ "lint:fix": "eslint src/ --fix --cache",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "typecheck": "tsc --noEmit"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/EmergentSoftware/agentic-toolkit.git",
28
+ "directory": "packages/cli"
29
+ },
30
+ "publishConfig": {
31
+ "registry": "https://registry.npmjs.org",
32
+ "access": "public"
33
+ },
34
+ "engines": {
35
+ "node": ">=24.0.0"
36
+ },
37
+ "dependencies": {
38
+ "chalk": "^5.4.0",
39
+ "diff": "8.0.3",
40
+ "ink": "^6.0.0",
41
+ "ink-spinner": "^5.0.0",
42
+ "ink-text-input": "^6.0.0",
43
+ "pastel": "^4.0.0",
44
+ "react": "^19.0.0",
45
+ "semver": "^7.7.0",
46
+ "zod": "^4.0.0"
47
+ },
48
+ "devDependencies": {
49
+ "@eslint/js": "^9.0.0",
50
+ "@testing-library/react": "^16.0.0",
51
+ "@types/diff": "^7.0.0",
52
+ "@types/node": "^24.0.0",
53
+ "@types/react": "^19.0.0",
54
+ "@types/semver": "^7.5.0",
55
+ "@vitest/eslint-plugin": "^1.0.0",
56
+ "eslint": "^9.0.0",
57
+ "eslint-config-prettier": "^10.0.0",
58
+ "eslint-plugin-perfectionist": "^5.0.0",
59
+ "eslint-plugin-react": "^7.37.0",
60
+ "eslint-plugin-react-hooks": "^7.0.0",
61
+ "ink-testing-library": "^4.0.0",
62
+ "prettier": "^3.4.0",
63
+ "typescript": "^5.7.0",
64
+ "typescript-eslint": "^8.0.0",
65
+ "vitest": "^4.0.0"
66
+ }
67
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "../../../schemas/adapter.schema.json",
3
+ "tool": "claude-code",
4
+ "displayName": "Claude Code",
5
+ "configDetection": [".claude/"],
6
+ "placements": {
7
+ "skill": {
8
+ "path": ".claude/skills/{name}/",
9
+ "entrypointName": "SKILL.md"
10
+ },
11
+ "agent": {
12
+ "path": ".claude/agents/{name}.md"
13
+ },
14
+ "rule": {
15
+ "path": ".claude/rules/{name}.md"
16
+ },
17
+ "hook": {
18
+ "path": ".claude/hooks/{name}.sh",
19
+ "configFile": ".claude/settings.json",
20
+ "configKey": "hooks",
21
+ "configMerge": true
22
+ },
23
+ "memory-template": {
24
+ "path": ".claude/CLAUDE.md"
25
+ },
26
+ "mcp-config": {
27
+ "path": "",
28
+ "configFile": ".mcp.json",
29
+ "configKey": "mcpServers",
30
+ "configMerge": true,
31
+ "fileless": true
32
+ }
33
+ }
34
+ }