@detergent-software/atk 7.12.0 → 7.13.0-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 (180) hide show
  1. package/README.md +9 -6
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +36 -5
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.js +7 -2
  6. package/build/commands/browse.js.map +1 -1
  7. package/build/commands/install.d.ts.map +1 -1
  8. package/build/commands/install.js +34 -10
  9. package/build/commands/install.js.map +1 -1
  10. package/build/commands/list.js +13 -1
  11. package/build/commands/list.js.map +1 -1
  12. package/build/commands/promote.d.ts +10 -1
  13. package/build/commands/promote.d.ts.map +1 -1
  14. package/build/commands/promote.js +30 -31
  15. package/build/commands/promote.js.map +1 -1
  16. package/build/commands/release-notes.js +1 -1
  17. package/build/commands/release-notes.js.map +1 -1
  18. package/build/commands/setup.d.ts +2 -2
  19. package/build/commands/setup.d.ts.map +1 -1
  20. package/build/commands/setup.js +7 -4
  21. package/build/commands/setup.js.map +1 -1
  22. package/build/commands/sync.js +12 -8
  23. package/build/commands/sync.js.map +1 -1
  24. package/build/commands/uninstall.d.ts.map +1 -1
  25. package/build/commands/uninstall.js +25 -11
  26. package/build/commands/uninstall.js.map +1 -1
  27. package/build/commands/unpublish.d.ts +10 -1
  28. package/build/commands/unpublish.d.ts.map +1 -1
  29. package/build/commands/unpublish.js +30 -19
  30. package/build/commands/unpublish.js.map +1 -1
  31. package/build/commands/update.d.ts.map +1 -1
  32. package/build/commands/update.js +19 -5
  33. package/build/commands/update.js.map +1 -1
  34. package/build/components/ExcludedSkippedHint.d.ts +13 -0
  35. package/build/components/ExcludedSkippedHint.d.ts.map +1 -0
  36. package/build/components/ExcludedSkippedHint.js +12 -0
  37. package/build/components/ExcludedSkippedHint.js.map +1 -0
  38. package/build/components/RegistryChangeSummary.d.ts +21 -0
  39. package/build/components/RegistryChangeSummary.d.ts.map +1 -0
  40. package/build/components/RegistryChangeSummary.js +24 -0
  41. package/build/components/RegistryChangeSummary.js.map +1 -0
  42. package/build/components/StatusBadge.d.ts +1 -1
  43. package/build/components/StatusBadge.d.ts.map +1 -1
  44. package/build/components/StatusBadge.js +2 -0
  45. package/build/components/StatusBadge.js.map +1 -1
  46. package/build/components/SyncAllInSync.d.ts +3 -1
  47. package/build/components/SyncAllInSync.d.ts.map +1 -1
  48. package/build/components/SyncAllInSync.js +3 -2
  49. package/build/components/SyncAllInSync.js.map +1 -1
  50. package/build/components/SyncDriftedList.d.ts +3 -1
  51. package/build/components/SyncDriftedList.d.ts.map +1 -1
  52. package/build/components/SyncDriftedList.js +4 -3
  53. package/build/components/SyncDriftedList.js.map +1 -1
  54. package/build/components/index.d.ts +2 -0
  55. package/build/components/index.d.ts.map +1 -1
  56. package/build/components/index.js +2 -0
  57. package/build/components/index.js.map +1 -1
  58. package/build/hooks/useListActions.d.ts +1 -0
  59. package/build/hooks/useListActions.d.ts.map +1 -1
  60. package/build/hooks/useListActions.js +1 -0
  61. package/build/hooks/useListActions.js.map +1 -1
  62. package/build/hooks/usePruneState.d.ts +1 -1
  63. package/build/hooks/usePruneState.d.ts.map +1 -1
  64. package/build/hooks/usePruneState.js +11 -5
  65. package/build/hooks/usePruneState.js.map +1 -1
  66. package/build/hooks/useRegistryChangeState.d.ts +57 -0
  67. package/build/hooks/useRegistryChangeState.d.ts.map +1 -0
  68. package/build/hooks/useRegistryChangeState.js +112 -0
  69. package/build/hooks/useRegistryChangeState.js.map +1 -0
  70. package/build/hooks/useSetupState.d.ts +2 -1
  71. package/build/hooks/useSetupState.d.ts.map +1 -1
  72. package/build/hooks/useSetupState.js +17 -6
  73. package/build/hooks/useSetupState.js.map +1 -1
  74. package/build/hooks/useUninstallState.d.ts +21 -9
  75. package/build/hooks/useUninstallState.d.ts.map +1 -1
  76. package/build/hooks/useUninstallState.js +76 -15
  77. package/build/hooks/useUninstallState.js.map +1 -1
  78. package/build/lib/api/index.d.ts +2 -2
  79. package/build/lib/api/index.d.ts.map +1 -1
  80. package/build/lib/api/index.js +1 -1
  81. package/build/lib/api/index.js.map +1 -1
  82. package/build/lib/api/sdk.gen.d.ts +21 -1
  83. package/build/lib/api/sdk.gen.d.ts.map +1 -1
  84. package/build/lib/api/sdk.gen.js +56 -0
  85. package/build/lib/api/sdk.gen.js.map +1 -1
  86. package/build/lib/api/types.gen.d.ts +387 -0
  87. package/build/lib/api/types.gen.d.ts.map +1 -1
  88. package/build/lib/api-client.d.ts +5 -0
  89. package/build/lib/api-client.d.ts.map +1 -1
  90. package/build/lib/api-client.js +31 -0
  91. package/build/lib/api-client.js.map +1 -1
  92. package/build/lib/asset-tools.d.ts +55 -0
  93. package/build/lib/asset-tools.d.ts.map +1 -0
  94. package/build/lib/asset-tools.js +71 -0
  95. package/build/lib/asset-tools.js.map +1 -0
  96. package/build/lib/auth.d.ts +1 -14
  97. package/build/lib/auth.d.ts.map +1 -1
  98. package/build/lib/auth.js +1 -30
  99. package/build/lib/auth.js.map +1 -1
  100. package/build/lib/checksum.d.ts.map +1 -1
  101. package/build/lib/checksum.js +4 -2
  102. package/build/lib/checksum.js.map +1 -1
  103. package/build/lib/config-entries.d.ts +52 -0
  104. package/build/lib/config-entries.d.ts.map +1 -0
  105. package/build/lib/config-entries.js +71 -0
  106. package/build/lib/config-entries.js.map +1 -0
  107. package/build/lib/config-file.d.ts +49 -0
  108. package/build/lib/config-file.d.ts.map +1 -0
  109. package/build/lib/config-file.js +84 -0
  110. package/build/lib/config-file.js.map +1 -0
  111. package/build/lib/diagnostics.d.ts.map +1 -1
  112. package/build/lib/diagnostics.js +1 -19
  113. package/build/lib/diagnostics.js.map +1 -1
  114. package/build/lib/diff-command.d.ts.map +1 -1
  115. package/build/lib/diff-command.js +15 -3
  116. package/build/lib/diff-command.js.map +1 -1
  117. package/build/lib/init.d.ts.map +1 -1
  118. package/build/lib/init.js +6 -4
  119. package/build/lib/init.js.map +1 -1
  120. package/build/lib/installer.d.ts +17 -0
  121. package/build/lib/installer.d.ts.map +1 -1
  122. package/build/lib/installer.js +102 -38
  123. package/build/lib/installer.js.map +1 -1
  124. package/build/lib/lockfile.d.ts +11 -0
  125. package/build/lib/lockfile.d.ts.map +1 -1
  126. package/build/lib/lockfile.js +14 -0
  127. package/build/lib/lockfile.js.map +1 -1
  128. package/build/lib/publisher.d.ts.map +1 -1
  129. package/build/lib/publisher.js +1 -7
  130. package/build/lib/publisher.js.map +1 -1
  131. package/build/lib/registry-mutate.d.ts +23 -64
  132. package/build/lib/registry-mutate.d.ts.map +1 -1
  133. package/build/lib/registry-mutate.js +50 -409
  134. package/build/lib/registry-mutate.js.map +1 -1
  135. package/build/lib/registry-repo.d.ts +2 -3
  136. package/build/lib/registry-repo.d.ts.map +1 -1
  137. package/build/lib/registry-repo.js +2 -3
  138. package/build/lib/registry-repo.js.map +1 -1
  139. package/build/lib/release-notes.d.ts +18 -14
  140. package/build/lib/release-notes.d.ts.map +1 -1
  141. package/build/lib/release-notes.js +10 -42
  142. package/build/lib/release-notes.js.map +1 -1
  143. package/build/lib/schemas/adapter.d.ts +10 -0
  144. package/build/lib/schemas/adapter.d.ts.map +1 -1
  145. package/build/lib/schemas/adapter.js +8 -0
  146. package/build/lib/schemas/adapter.js.map +1 -1
  147. package/build/lib/schemas/lockfile.d.ts +5 -0
  148. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  149. package/build/lib/schemas/lockfile.js +8 -0
  150. package/build/lib/schemas/lockfile.js.map +1 -1
  151. package/build/lib/setup.d.ts +6 -0
  152. package/build/lib/setup.d.ts.map +1 -1
  153. package/build/lib/setup.js +49 -4
  154. package/build/lib/setup.js.map +1 -1
  155. package/build/lib/sync.d.ts +9 -1
  156. package/build/lib/sync.d.ts.map +1 -1
  157. package/build/lib/sync.js +31 -8
  158. package/build/lib/sync.js.map +1 -1
  159. package/build/lib/uninstaller.d.ts +35 -0
  160. package/build/lib/uninstaller.d.ts.map +1 -1
  161. package/build/lib/uninstaller.js +96 -29
  162. package/build/lib/uninstaller.js.map +1 -1
  163. package/build/lib/updater.d.ts +6 -0
  164. package/build/lib/updater.d.ts.map +1 -1
  165. package/build/lib/updater.js +35 -3
  166. package/build/lib/updater.js.map +1 -1
  167. package/build/lib/write-file.d.ts +13 -0
  168. package/build/lib/write-file.d.ts.map +1 -1
  169. package/build/lib/write-file.js +22 -0
  170. package/build/lib/write-file.js.map +1 -1
  171. package/package.json +2 -1
  172. package/tool-adapters/codex-cli.json +31 -0
  173. package/build/hooks/usePromoteState.d.ts +0 -51
  174. package/build/hooks/usePromoteState.d.ts.map +0 -1
  175. package/build/hooks/usePromoteState.js +0 -139
  176. package/build/hooks/usePromoteState.js.map +0 -1
  177. package/build/hooks/useUnpublishState.d.ts +0 -52
  178. package/build/hooks/useUnpublishState.d.ts.map +0 -1
  179. package/build/hooks/useUnpublishState.js +0 -140
  180. package/build/hooks/useUnpublishState.js.map +0 -1
@@ -1,17 +1,12 @@
1
1
  import { eq as semverEq, gt as semverGt, prerelease as semverPrerelease, rcompare as semverRcompare, valid as semverValid, } from 'semver';
2
- import { getGitHubToken } from './auth.js';
3
- import { fetchWithRetry } from './fetch-retry.js';
2
+ import { getApiClient, unwrap } from './api-client.js';
3
+ import { getCliReleases } from './api/sdk.gen.js';
4
4
  import { CLI_VERSION, isPreRelease } from './version.js';
5
5
  /** Default number of releases shown in list mode before `--all` is needed. */
6
6
  export const DEFAULT_RELEASE_LIMIT = 15;
7
7
  /**
8
- * The CLI's own source repository (distinct from the registry repo).
9
- * GitHub Releases for this repo are the source of the `release-notes` command.
10
- */
11
- const DEFAULT_CLI_REPO = 'EmergentSoftware/agentic-toolkit-cli';
12
- const RELEASES_URL = `https://api.github.com/repos/${DEFAULT_CLI_REPO}/releases?per_page=100`;
13
- /**
14
- * Fetch GitHub Releases for the CLI repo and return release notes for browsing.
8
+ * Fetch the CLI's releases from the ATK API (`GET /cli/releases`) and return
9
+ * release notes for browsing.
15
10
  *
16
11
  * Without a `version`, returns the release history (newest-first), channel-filtered
17
12
  * and capped at a limit, with each entry flagged for whether it is the installed
@@ -26,14 +21,9 @@ const RELEASES_URL = `https://api.github.com/repos/${DEFAULT_CLI_REPO}/releases?
26
21
  * command can surface them via `ErrorView`.
27
22
  */
28
23
  export async function getReleaseNotes(options = {}, progress) {
29
- progress?.('Authenticating...');
30
- const token = await getGitHubToken();
31
24
  progress?.('Fetching releases...');
32
- const response = await fetchWithRetry(RELEASES_URL, { headers: buildGitHubHeaders(token) });
33
- if (!response.ok) {
34
- throw new Error(httpErrorMessage(response.status, 'CLI releases'));
35
- }
36
- const raw = (await response.json());
25
+ const client = await getApiClient();
26
+ const raw = unwrap(await getCliReleases({ client }), 'CLI releases').releases;
37
27
  // A specific version lookup ignores the channel filter so you can always read
38
28
  // the notes for any published version (including pre-releases).
39
29
  if (options.version) {
@@ -58,7 +48,7 @@ export async function getReleaseNotes(options = {}, progress) {
58
48
  };
59
49
  }
60
50
  /**
61
- * Pure selection logic: from raw GitHub releases, return valid releases ordered
51
+ * Pure selection logic: from raw releases, return valid releases ordered
62
52
  * newest-first, optionally including pre-releases, with each entry flagged for
63
53
  * whether it is the installed version or newer than it. Exported separately so
64
54
  * channel filtering, version comparison, and flagging are unit-testable without
@@ -66,14 +56,14 @@ export async function getReleaseNotes(options = {}, progress) {
66
56
  *
67
57
  * - Tags are normalized by stripping a leading `v`; entries that aren't valid
68
58
  * semver are skipped.
69
- * - A release's channel is `dev` when GitHub's `prerelease` flag is set OR the
59
+ * - A release's channel is `dev` when its `prerelease` flag is set OR the
70
60
  * version carries a semver pre-release component; otherwise `latest`.
71
61
  * - When `includePrerelease` is false, `dev` releases are dropped.
72
62
  */
73
63
  export function selectReleaseNotes(raw, currentVersion, includePrerelease) {
74
64
  const notes = [];
75
65
  for (const entry of raw) {
76
- const version = normalizeTag(entry.tag_name);
66
+ const version = normalizeTag(entry.version ?? entry.tag);
77
67
  if (!version || !semverValid(version)) {
78
68
  continue;
79
69
  }
@@ -88,35 +78,13 @@ export function selectReleaseNotes(raw, currentVersion, includePrerelease) {
88
78
  installed: semverValid(currentVersion) ? semverEq(version, currentVersion) : false,
89
79
  newer: semverValid(currentVersion) ? semverGt(version, currentVersion) : false,
90
80
  prerelease,
91
- publishedAt: entry.published_at ?? null,
81
+ publishedAt: entry.publishedAt ?? null,
92
82
  version,
93
83
  });
94
84
  }
95
85
  notes.sort((a, b) => semverRcompare(a.version, b.version));
96
86
  return notes;
97
87
  }
98
- /** Standard GitHub REST API headers for the releases request. */
99
- function buildGitHubHeaders(token) {
100
- return {
101
- Accept: 'application/vnd.github+json',
102
- Authorization: `Bearer ${token}`,
103
- 'X-GitHub-Api-Version': '2022-11-28',
104
- };
105
- }
106
- /** User-friendly message for a failed GitHub API response. */
107
- function httpErrorMessage(status, resource) {
108
- switch (status) {
109
- case 401:
110
- case 403:
111
- return 'Authentication failed. Check your GitHub token or run `gh auth login`.';
112
- case 404:
113
- return `File not found at ${resource}.`;
114
- case 429:
115
- return 'GitHub API rate limit exceeded. Try again later.';
116
- default:
117
- return `Failed to fetch ${resource}: HTTP ${status}`;
118
- }
119
- }
120
88
  /** Strip a single leading `v` from a release tag, returning undefined when empty. */
121
89
  function normalizeTag(tagName) {
122
90
  if (!tagName)
@@ -1 +1 @@
1
- {"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../src/lib/release-notes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,IAAI,QAAQ,EACd,EAAE,IAAI,QAAQ,EACd,UAAU,IAAI,gBAAgB,EAC9B,QAAQ,IAAI,cAAc,EAC1B,KAAK,IAAI,WAAW,GACrB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAkDxC;;;GAGG;AACH,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AAEhE,MAAM,YAAY,GAAG,gCAAgC,gBAAgB,wBAAwB,CAAC;AAE9F;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA+B,EAAE,EACjC,QAAoC;IAEpC,QAAQ,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IAErC,QAAQ,EAAE,CAAC,sBAAsB,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;IAEvD,8EAA8E;IAC9E,gEAAgE;IAChE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;QACnE,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACvG,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC7D,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,YAAY,EAAE,CAAC;IACtE,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAEpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;IAClF,OAAO;QACL,cAAc,EAAE,WAAW;QAC3B,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;QAC7B,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QAC7B,KAAK,EAAE,GAAG,CAAC,MAAM;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAoB,EACpB,cAAsB,EACtB,iBAA0B;IAE1B,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAmB,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpG,IAAI,CAAC,iBAAiB,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC5C,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,OAAO;YACP,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;YAClF,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK;YAC9E,UAAU;YACV,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;YACvC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,MAAM,EAAE,6BAA6B;QACrC,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,sBAAsB,EAAE,YAAY;KACrC,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,SAAS,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IACxD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,wEAAwE,CAAC;QAClF,KAAK,GAAG;YACN,OAAO,qBAAqB,QAAQ,GAAG,CAAC;QAC1C,KAAK,GAAG;YACN,OAAO,kDAAkD,CAAC;QAC5D;YACE,OAAO,mBAAmB,QAAQ,UAAU,MAAM,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,YAAY,CAAC,OAAgB;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../src/lib/release-notes.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,12 @@ import { z } from 'zod';
2
2
  export declare const PlacementConfig: z.ZodObject<{
3
3
  configCommandPrefix: z.ZodOptional<z.ZodString>;
4
4
  configFile: z.ZodOptional<z.ZodString>;
5
+ configFormat: z.ZodOptional<z.ZodEnum<{
6
+ json: "json";
7
+ toml: "toml";
8
+ }>>;
5
9
  configFragment: z.ZodOptional<z.ZodBoolean>;
10
+ configFragmentKey: z.ZodOptional<z.ZodString>;
6
11
  configHookMerge: z.ZodOptional<z.ZodBoolean>;
7
12
  configKey: z.ZodOptional<z.ZodString>;
8
13
  configMerge: z.ZodOptional<z.ZodBoolean>;
@@ -27,7 +32,12 @@ export declare const AdapterSchema: z.ZodObject<{
27
32
  }> & z.core.$partial, z.ZodObject<{
28
33
  configCommandPrefix: z.ZodOptional<z.ZodString>;
29
34
  configFile: z.ZodOptional<z.ZodString>;
35
+ configFormat: z.ZodOptional<z.ZodEnum<{
36
+ json: "json";
37
+ toml: "toml";
38
+ }>>;
30
39
  configFragment: z.ZodOptional<z.ZodBoolean>;
40
+ configFragmentKey: z.ZodOptional<z.ZodString>;
31
41
  configHookMerge: z.ZodOptional<z.ZodBoolean>;
32
42
  configKey: z.ZodOptional<z.ZodString>;
33
43
  configMerge: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;iBA4C1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;iBAwD1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -6,10 +6,18 @@ export const PlacementConfig = z.object({
6
6
  .optional()
7
7
  .describe('For hook placements: prefix prepended to the installed script path to form the hook command (e.g. "$CLAUDE_PROJECT_DIR/")'),
8
8
  configFile: z.string().optional().describe('Config file to update for registration (e.g., settings.json)'),
9
+ configFormat: z
10
+ .enum(['json', 'toml'])
11
+ .optional()
12
+ .describe('Serialization format of configFile and its merge/verify logic. Defaults to "json"; when omitted, a ".toml" extension is also recognized.'),
9
13
  configFragment: z
10
14
  .boolean()
11
15
  .optional()
12
16
  .describe('When true, the asset content is a fragment of the config file (e.g. a full .mcp.json). Merge the entries inside content[configKey] into configFile[configKey] keyed by each entry’s own name, instead of nesting the whole content under the asset name.'),
17
+ configFragmentKey: z
18
+ .string()
19
+ .optional()
20
+ .describe('For configFragment placements: key inside the asset content that holds the entry map when it differs from configKey (e.g. "mcpServers" when configKey is "mcp_servers"). Lookup order: content[configKey], then content[configFragmentKey], then the whole content.'),
13
21
  configHookMerge: z
14
22
  .boolean()
15
23
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2HAA2H,CAC5H;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC1G,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,0PAA0P,CAC3P;IACH,eAAe,EAAE,CAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,qMAAqM,CACtM;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtF,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,qGAAqG,CAAC;IAClH,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0GAA0G,CAAC;IACvH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kHAAkH,CAAC;IAC/H,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qIAAqI,CACtI;IACH,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,2FAA2F,CAAC;IACxG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CACrF,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACvG,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACnH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACvG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACjE,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/lib/schemas/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,mBAAmB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,2HAA2H,CAC5H;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC1G,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,QAAQ,CACP,0IAA0I,CAC3I;IACH,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,0PAA0P,CAC3P;IACH,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qQAAqQ,CACtQ;IACH,eAAe,EAAE,CAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,qMAAqM,CACtM;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACtF,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,qGAAqG,CAAC;IAClH,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0GAA0G,CAAC;IACvH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kHAAkH,CAAC;IAC/H,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qIAAqI,CACtI;IACH,QAAQ,EAAE,CAAC;SACR,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,2FAA2F,CAAC;IACxG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CACrF,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACvG,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACnH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACvG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACjE,CAAC,CAAC"}
@@ -10,6 +10,7 @@ export declare const ConfigEntry: z.ZodObject<{
10
10
  command: z.ZodOptional<z.ZodString>;
11
11
  file: z.ZodString;
12
12
  key: z.ZodString;
13
+ tool: z.ZodOptional<z.ZodString>;
13
14
  }, z.core.$strip>;
14
15
  export type ConfigEntry = z.infer<typeof ConfigEntry>;
15
16
  export declare const InstalledAsset: z.ZodObject<{
@@ -23,6 +24,7 @@ export declare const InstalledAsset: z.ZodObject<{
23
24
  command: z.ZodOptional<z.ZodString>;
24
25
  file: z.ZodString;
25
26
  key: z.ZodString;
27
+ tool: z.ZodOptional<z.ZodString>;
26
28
  }, z.core.$strip>>>;
27
29
  dependencies: z.ZodOptional<z.ZodArray<z.ZodObject<{
28
30
  name: z.ZodString;
@@ -39,6 +41,7 @@ export declare const InstalledAsset: z.ZodObject<{
39
41
  }, z.core.$strip>>>;
40
42
  description: z.ZodOptional<z.ZodString>;
41
43
  entrypoint: z.ZodOptional<z.ZodString>;
44
+ excludedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
45
  files: z.ZodArray<z.ZodObject<{
43
46
  checksum: z.ZodString;
44
47
  installedPath: z.ZodOptional<z.ZodString>;
@@ -74,6 +77,7 @@ export declare const LockfileSchema: z.ZodObject<{
74
77
  command: z.ZodOptional<z.ZodString>;
75
78
  file: z.ZodString;
76
79
  key: z.ZodString;
80
+ tool: z.ZodOptional<z.ZodString>;
77
81
  }, z.core.$strip>>>;
78
82
  dependencies: z.ZodOptional<z.ZodArray<z.ZodObject<{
79
83
  name: z.ZodString;
@@ -90,6 +94,7 @@ export declare const LockfileSchema: z.ZodObject<{
90
94
  }, z.core.$strip>>>;
91
95
  description: z.ZodOptional<z.ZodString>;
92
96
  entrypoint: z.ZodOptional<z.ZodString>;
97
+ excludedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
93
98
  files: z.ZodArray<z.ZodObject<{
94
99
  checksum: z.ZodString;
95
100
  installedPath: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;iBAUtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;iBAOxB,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,WAAW;;;;;;iBAgBtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4CzB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -16,6 +16,10 @@ export const ConfigEntry = z.object({
16
16
  .describe('For array-valued config sections (e.g. hooks.<Event>): identifies the array element this asset owns by its nested hooks[].command value'),
17
17
  file: z.string().describe('Project-relative POSIX path to the config file'),
18
18
  key: z.string().describe('Dot-path key within the config file (e.g. hooks.Stop)'),
19
+ tool: z
20
+ .string()
21
+ .optional()
22
+ .describe('Tool adapter id (e.g. claude-code) that registered this entry. Absent on entries written by older CLI versions; ownership is then inferred from the config file path'),
19
23
  });
20
24
  export const InstalledAsset = z.object({
21
25
  bundleOrigin: z
@@ -41,6 +45,10 @@ export const InstalledAsset = z.object({
41
45
  .string()
42
46
  .optional()
43
47
  .describe('Primary file for this asset (relative to the asset directory), from the manifest — used to resolve adapter placement paths'),
48
+ excludedTools: z
49
+ .array(z.string())
50
+ .optional()
51
+ .describe('Tool adapter ids (e.g. codex-cli) this asset was explicitly uninstalled for. Sync, audit and update skip the asset for these tools; installing it for a tool removes that tool again. Absent means the asset is wanted for every tool'),
44
52
  files: z.array(InstalledFile).describe('Files placed by this asset'),
45
53
  installReason: z
46
54
  .enum(['direct', 'dependency'])
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface SummaryAction {
17
17
  detail?: string;
18
18
  label: string;
19
19
  }
20
+ /**
21
+ * Parse the raw `atk setup --tool` values into a deduplicated, order-preserving list of tool
22
+ * ids. The flag is repeatable and each value may itself be comma-separated, so
23
+ * `--tool a --tool b`, `--tool a,b` and a mix of both all yield `['a', 'b']`.
24
+ */
25
+ export declare function parseToolsInput(values: string[]): string[];
20
26
  /**
21
27
  * Perform the setup creation step: write project config, write/update the
22
28
  * lockfile, and ensure gitignore entries are present for the selected tools.
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,eAAO,MAAM,WAAW,QAA4B,CAAC;AAMrD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8FtG"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,eAAO,MAAM,WAAW,QAA4B,CAAC;AAMrD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa1D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoHtG"}
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
2
2
  import { mkdir } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { loadAdapter } from './adapter.js';
5
- import { saveProjectConfig } from './config.js';
5
+ import { loadProjectConfig, saveProjectConfig } from './config.js';
6
6
  import { ensureGitignoreEntries, ensureGitignorePatterns } from './gitignore.js';
7
7
  import { getLockfilePath, readLockfile, writeLockfile } from './lockfile.js';
8
8
  // ---------------------------------------------------------------------------
@@ -16,6 +16,23 @@ export const ORG_PATTERN = /^[a-zA-Z][a-zA-Z0-9-]*$/;
16
16
  // ---------------------------------------------------------------------------
17
17
  // Main function
18
18
  // ---------------------------------------------------------------------------
19
+ /**
20
+ * Parse the raw `atk setup --tool` values into a deduplicated, order-preserving list of tool
21
+ * ids. The flag is repeatable and each value may itself be comma-separated, so
22
+ * `--tool a --tool b`, `--tool a,b` and a mix of both all yield `['a', 'b']`.
23
+ */
24
+ export function parseToolsInput(values) {
25
+ const result = [];
26
+ for (const value of values) {
27
+ for (const part of value.split(',')) {
28
+ const trimmed = part.trim();
29
+ if (trimmed && !result.includes(trimmed)) {
30
+ result.push(trimmed);
31
+ }
32
+ }
33
+ }
34
+ return result;
35
+ }
19
36
  /**
20
37
  * Perform the setup creation step: write project config, write/update the
21
38
  * lockfile, and ensure gitignore entries are present for the selected tools.
@@ -32,9 +49,28 @@ export async function performSetupCreation(options) {
32
49
  if (resolvedOrg !== undefined && !ORG_PATTERN.test(resolvedOrg)) {
33
50
  throw new Error(`Invalid org "${resolvedOrg}": must start with a letter and contain only letters, digits, or hyphens.`);
34
51
  }
35
- // 1. Write .atkrc.json with { tools: [...] }
36
- await saveProjectConfig(projectDir, { tools: selectedTools });
37
- actions.push({ detail: `tools: ${selectedTools.join(', ')}`, label: 'Wrote .atkrc.json' });
52
+ // 1. Write .atkrc.json with { tools: [...] }. Setup replaces the tools list, so say which
53
+ // list it replaced and which tools dropped out of it.
54
+ // Frozen assets are not setup's to change, so they carry over.
55
+ const previousConfig = await loadPreviousConfig(projectDir);
56
+ const previousTools = previousConfig?.tools ?? [];
57
+ await saveProjectConfig(projectDir, {
58
+ ...(previousConfig?.frozenAssets?.length ? { frozenAssets: previousConfig.frozenAssets } : {}),
59
+ tools: selectedTools,
60
+ });
61
+ const listChanged = previousTools.length > 0 &&
62
+ (previousTools.length !== selectedTools.length || previousTools.some((t, i) => t !== selectedTools[i]));
63
+ actions.push({
64
+ detail: `tools: ${selectedTools.join(', ')}${listChanged ? ` — replaced: ${previousTools.join(', ')}` : ''}`,
65
+ label: 'Wrote .atkrc.json',
66
+ });
67
+ const removedTools = previousTools.filter((t) => !selectedTools.includes(t));
68
+ if (removedTools.length > 0) {
69
+ actions.push({
70
+ detail: `${removedTools.join(', ')} — installed files and config directories were left in place`,
71
+ label: 'Removed from tools list',
72
+ });
73
+ }
38
74
  // 2. Write/update .atk-lock.json
39
75
  const lockfilePath = getLockfilePath(projectDir);
40
76
  if (existsSync(lockfilePath)) {
@@ -134,4 +170,13 @@ async function ensureToolMarkerDir(projectDir, adapter) {
134
170
  await mkdir(join(projectDir, dirIndicator), { recursive: true });
135
171
  return dirIndicator;
136
172
  }
173
+ /** The existing `.atkrc.json`, or null when it is absent or unreadable. */
174
+ async function loadPreviousConfig(projectDir) {
175
+ try {
176
+ return await loadProjectConfig(projectDir);
177
+ }
178
+ catch {
179
+ return null;
180
+ }
181
+ }
137
182
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ export interface ClassifySyncEntriesOptions {
12
12
  projectDir: string;
13
13
  }
14
14
  export interface ClassifySyncEntriesResult {
15
+ /** Assets skipped because they were uninstalled for this tool (`excludedTools`). */
16
+ excludedSkipped: number;
15
17
  frozenSkipped: number;
16
18
  skipped: number;
17
19
  toSync: SyncEntry[];
@@ -57,6 +59,8 @@ export type SyncOutcome = {
57
59
  };
58
60
  export interface ToolDryRunResult {
59
61
  bootstrapHint?: string;
62
+ /** Assets skipped because they were uninstalled for this tool. Absent when zero. */
63
+ excludedSkipped?: number;
60
64
  frozenSkipped: number;
61
65
  skipped: number;
62
66
  tool: string;
@@ -64,6 +68,8 @@ export interface ToolDryRunResult {
64
68
  }
65
69
  export interface ToolSyncResult {
66
70
  bootstrapHint?: string;
71
+ /** Assets skipped because they were uninstalled for this tool. Absent when zero. */
72
+ excludedSkipped?: number;
67
73
  failures: SyncFailure[];
68
74
  frozenSkipped: number;
69
75
  skipped: number;
@@ -76,7 +82,9 @@ export interface ToolSyncResult {
76
82
  * that previously appeared in both the dry-run and live sync paths.
77
83
  *
78
84
  * For each asset the function:
79
- * 1. Checks if the asset is frozen — if so, increments `frozenSkipped`.
85
+ * 1. Checks if the asset is frozen — if so, increments `frozenSkipped`. An asset that was
86
+ * uninstalled for this tool (`excludedTools`) increments `excludedSkipped` — even under
87
+ * `force`, so sync never resurrects it.
80
88
  * 2. If `force` is true, marks it as `forced` without checking checksums.
81
89
  * 3. Otherwise, resolves installed paths via the adapter, verifies both file
82
90
  * checksums AND registered config-entry checksums (e.g. a hook's
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
package/build/lib/sync.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { join } from 'node:path';
2
2
  import { resolveInstalledPaths } from './adapter.js';
3
+ import { isExcludedForTool, supportsType } from './asset-tools.js';
3
4
  import { verifyChecksums, verifyConfigEntries } from './checksum.js';
5
+ import { getConfigEntriesForTool, needsConfigRegistration } from './config-entries.js';
4
6
  import { isFrozenInConfig } from './config.js';
5
7
  import { executeInstallPlan, InstallerError } from './installer.js';
6
8
  import { addAssetToLockfile, readLockfile, removeAssetFromLockfile, withLockfileErrorHandling, writeLockfile, } from './lockfile.js';
@@ -15,7 +17,9 @@ import { removeSingleAsset, UninstallerError } from './uninstaller.js';
15
17
  * that previously appeared in both the dry-run and live sync paths.
16
18
  *
17
19
  * For each asset the function:
18
- * 1. Checks if the asset is frozen — if so, increments `frozenSkipped`.
20
+ * 1. Checks if the asset is frozen — if so, increments `frozenSkipped`. An asset that was
21
+ * uninstalled for this tool (`excludedTools`) increments `excludedSkipped` — even under
22
+ * `force`, so sync never resurrects it.
19
23
  * 2. If `force` is true, marks it as `forced` without checking checksums.
20
24
  * 3. Otherwise, resolves installed paths via the adapter, verifies both file
21
25
  * checksums AND registered config-entry checksums (e.g. a hook's
@@ -25,6 +29,7 @@ import { removeSingleAsset, UninstallerError } from './uninstaller.js';
25
29
  export async function classifySyncEntries(options) {
26
30
  const { adapter, assets, force, onProgress, projectConfig, projectDir } = options;
27
31
  const toSync = [];
32
+ let excludedSkipped = 0;
28
33
  let frozenSkipped = 0;
29
34
  let skipped = 0;
30
35
  for (const asset of assets) {
@@ -33,6 +38,17 @@ export async function classifySyncEntries(options) {
33
38
  frozenSkipped++;
34
39
  continue;
35
40
  }
41
+ if (isExcludedForTool(asset, adapter.tool)) {
42
+ excludedSkipped++;
43
+ continue;
44
+ }
45
+ // This tool has no placement for the asset type (e.g. Codex CLI and rules): there is
46
+ // nothing to sync. Checked before `force`, which would otherwise hand the asset to the
47
+ // installer and report a spurious "does not support asset type" failure.
48
+ if (!supportsType(adapter, asset.type)) {
49
+ skipped++;
50
+ continue;
51
+ }
36
52
  if (force) {
37
53
  toSync.push({ asset, reason: 'forced' });
38
54
  continue;
@@ -45,22 +61,26 @@ export async function classifySyncEntries(options) {
45
61
  const checksumFailures = await verifyChecksums(filesToCheck);
46
62
  // Also verify registered config entries (e.g. a hook's `hooks.<Event>` group or an
47
63
  // mcp server block). Config-only drift leaves the asset's files intact, so it is
48
- // invisible to file checksums alone — check both before deciding to skip.
49
- const configFailures = asset.configEntries?.length
50
- ? await verifyConfigEntries(asset.configEntries, projectDir)
51
- : [];
52
- if (checksumFailures.length === 0 && configFailures.length === 0) {
64
+ // invisible to file checksums alone — check both before deciding to skip. The lockfile
65
+ // is shared across tools, so only this tool's entries are verified.
66
+ const ownConfigEntries = getConfigEntriesForTool(asset, adapter);
67
+ const configFailures = ownConfigEntries.length ? await verifyConfigEntries(ownConfigEntries, projectDir) : [];
68
+ // Another tool recorded config entries for this asset but this tool never did (e.g. it
69
+ // was installed or last synced under a different tool) — reinstall to register it here.
70
+ const needsRegistration = needsConfigRegistration(asset, adapter);
71
+ if (checksumFailures.length === 0 && configFailures.length === 0 && !needsRegistration) {
53
72
  skipped++;
54
73
  continue;
55
74
  }
56
- const hasMissing = checksumFailures.some((f) => f.actual.startsWith('FILE_NOT_FOUND')) ||
75
+ const hasMissing = needsRegistration ||
76
+ checksumFailures.some((f) => f.actual.startsWith('FILE_NOT_FOUND')) ||
57
77
  configFailures.some((f) => f.reason === 'CONFIG_FILE_NOT_FOUND' || f.reason === 'CONFIG_KEY_NOT_FOUND');
58
78
  toSync.push({
59
79
  asset,
60
80
  reason: hasMissing ? 'missing' : 'modified',
61
81
  });
62
82
  }
63
- return { frozenSkipped, skipped, toSync };
83
+ return { excludedSkipped, frozenSkipped, skipped, toSync };
64
84
  }
65
85
  /**
66
86
  * Perform a dry-run sync: read the lockfile (without locking), classify each
@@ -96,6 +116,7 @@ export async function dryRunSync(options) {
96
116
  projectDir,
97
117
  });
98
118
  toolResults.push({
119
+ ...(classified.excludedSkipped > 0 ? { excludedSkipped: classified.excludedSkipped } : {}),
99
120
  frozenSkipped: classified.frozenSkipped,
100
121
  skipped: classified.skipped,
101
122
  tool: toolName,
@@ -149,6 +170,7 @@ export async function syncAssets(options) {
149
170
  });
150
171
  if (classified.toSync.length === 0) {
151
172
  toolResults.push({
173
+ ...(classified.excludedSkipped > 0 ? { excludedSkipped: classified.excludedSkipped } : {}),
152
174
  failures: [],
153
175
  frozenSkipped: classified.frozenSkipped,
154
176
  skipped: classified.skipped,
@@ -209,6 +231,7 @@ export async function syncAssets(options) {
209
231
  }
210
232
  }
211
233
  toolResults.push({
234
+ ...(classified.excludedSkipped > 0 ? { excludedSkipped: classified.excludedSkipped } : {}),
212
235
  failures,
213
236
  frozenSkipped: classified.frozenSkipped,
214
237
  skipped: classified.skipped,
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}