@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.
- package/README.md +9 -6
- package/build/commands/audit.d.ts.map +1 -1
- package/build/commands/audit.js +36 -5
- package/build/commands/audit.js.map +1 -1
- package/build/commands/browse.js +7 -2
- package/build/commands/browse.js.map +1 -1
- package/build/commands/install.d.ts.map +1 -1
- package/build/commands/install.js +34 -10
- package/build/commands/install.js.map +1 -1
- package/build/commands/list.js +13 -1
- package/build/commands/list.js.map +1 -1
- package/build/commands/promote.d.ts +10 -1
- package/build/commands/promote.d.ts.map +1 -1
- package/build/commands/promote.js +30 -31
- package/build/commands/promote.js.map +1 -1
- package/build/commands/release-notes.js +1 -1
- package/build/commands/release-notes.js.map +1 -1
- package/build/commands/setup.d.ts +2 -2
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +7 -4
- package/build/commands/setup.js.map +1 -1
- package/build/commands/sync.js +12 -8
- package/build/commands/sync.js.map +1 -1
- package/build/commands/uninstall.d.ts.map +1 -1
- package/build/commands/uninstall.js +25 -11
- package/build/commands/uninstall.js.map +1 -1
- package/build/commands/unpublish.d.ts +10 -1
- package/build/commands/unpublish.d.ts.map +1 -1
- package/build/commands/unpublish.js +30 -19
- package/build/commands/unpublish.js.map +1 -1
- package/build/commands/update.d.ts.map +1 -1
- package/build/commands/update.js +19 -5
- package/build/commands/update.js.map +1 -1
- package/build/components/ExcludedSkippedHint.d.ts +13 -0
- package/build/components/ExcludedSkippedHint.d.ts.map +1 -0
- package/build/components/ExcludedSkippedHint.js +12 -0
- package/build/components/ExcludedSkippedHint.js.map +1 -0
- package/build/components/RegistryChangeSummary.d.ts +21 -0
- package/build/components/RegistryChangeSummary.d.ts.map +1 -0
- package/build/components/RegistryChangeSummary.js +24 -0
- package/build/components/RegistryChangeSummary.js.map +1 -0
- package/build/components/StatusBadge.d.ts +1 -1
- package/build/components/StatusBadge.d.ts.map +1 -1
- package/build/components/StatusBadge.js +2 -0
- package/build/components/StatusBadge.js.map +1 -1
- package/build/components/SyncAllInSync.d.ts +3 -1
- package/build/components/SyncAllInSync.d.ts.map +1 -1
- package/build/components/SyncAllInSync.js +3 -2
- package/build/components/SyncAllInSync.js.map +1 -1
- package/build/components/SyncDriftedList.d.ts +3 -1
- package/build/components/SyncDriftedList.d.ts.map +1 -1
- package/build/components/SyncDriftedList.js +4 -3
- package/build/components/SyncDriftedList.js.map +1 -1
- package/build/components/index.d.ts +2 -0
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +2 -0
- package/build/components/index.js.map +1 -1
- package/build/hooks/useListActions.d.ts +1 -0
- package/build/hooks/useListActions.d.ts.map +1 -1
- package/build/hooks/useListActions.js +1 -0
- package/build/hooks/useListActions.js.map +1 -1
- package/build/hooks/usePruneState.d.ts +1 -1
- package/build/hooks/usePruneState.d.ts.map +1 -1
- package/build/hooks/usePruneState.js +11 -5
- package/build/hooks/usePruneState.js.map +1 -1
- package/build/hooks/useRegistryChangeState.d.ts +57 -0
- package/build/hooks/useRegistryChangeState.d.ts.map +1 -0
- package/build/hooks/useRegistryChangeState.js +112 -0
- package/build/hooks/useRegistryChangeState.js.map +1 -0
- package/build/hooks/useSetupState.d.ts +2 -1
- package/build/hooks/useSetupState.d.ts.map +1 -1
- package/build/hooks/useSetupState.js +17 -6
- package/build/hooks/useSetupState.js.map +1 -1
- package/build/hooks/useUninstallState.d.ts +21 -9
- package/build/hooks/useUninstallState.d.ts.map +1 -1
- package/build/hooks/useUninstallState.js +76 -15
- package/build/hooks/useUninstallState.js.map +1 -1
- package/build/lib/api/index.d.ts +2 -2
- package/build/lib/api/index.d.ts.map +1 -1
- package/build/lib/api/index.js +1 -1
- package/build/lib/api/index.js.map +1 -1
- package/build/lib/api/sdk.gen.d.ts +21 -1
- package/build/lib/api/sdk.gen.d.ts.map +1 -1
- package/build/lib/api/sdk.gen.js +56 -0
- package/build/lib/api/sdk.gen.js.map +1 -1
- package/build/lib/api/types.gen.d.ts +387 -0
- package/build/lib/api/types.gen.d.ts.map +1 -1
- package/build/lib/api-client.d.ts +5 -0
- package/build/lib/api-client.d.ts.map +1 -1
- package/build/lib/api-client.js +31 -0
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/asset-tools.d.ts +55 -0
- package/build/lib/asset-tools.d.ts.map +1 -0
- package/build/lib/asset-tools.js +71 -0
- package/build/lib/asset-tools.js.map +1 -0
- package/build/lib/auth.d.ts +1 -14
- package/build/lib/auth.d.ts.map +1 -1
- package/build/lib/auth.js +1 -30
- package/build/lib/auth.js.map +1 -1
- package/build/lib/checksum.d.ts.map +1 -1
- package/build/lib/checksum.js +4 -2
- package/build/lib/checksum.js.map +1 -1
- package/build/lib/config-entries.d.ts +52 -0
- package/build/lib/config-entries.d.ts.map +1 -0
- package/build/lib/config-entries.js +71 -0
- package/build/lib/config-entries.js.map +1 -0
- package/build/lib/config-file.d.ts +49 -0
- package/build/lib/config-file.d.ts.map +1 -0
- package/build/lib/config-file.js +84 -0
- package/build/lib/config-file.js.map +1 -0
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +1 -19
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/diff-command.d.ts.map +1 -1
- package/build/lib/diff-command.js +15 -3
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/init.d.ts.map +1 -1
- package/build/lib/init.js +6 -4
- package/build/lib/init.js.map +1 -1
- package/build/lib/installer.d.ts +17 -0
- package/build/lib/installer.d.ts.map +1 -1
- package/build/lib/installer.js +102 -38
- package/build/lib/installer.js.map +1 -1
- package/build/lib/lockfile.d.ts +11 -0
- package/build/lib/lockfile.d.ts.map +1 -1
- package/build/lib/lockfile.js +14 -0
- package/build/lib/lockfile.js.map +1 -1
- package/build/lib/publisher.d.ts.map +1 -1
- package/build/lib/publisher.js +1 -7
- package/build/lib/publisher.js.map +1 -1
- package/build/lib/registry-mutate.d.ts +23 -64
- package/build/lib/registry-mutate.d.ts.map +1 -1
- package/build/lib/registry-mutate.js +50 -409
- package/build/lib/registry-mutate.js.map +1 -1
- package/build/lib/registry-repo.d.ts +2 -3
- package/build/lib/registry-repo.d.ts.map +1 -1
- package/build/lib/registry-repo.js +2 -3
- package/build/lib/registry-repo.js.map +1 -1
- package/build/lib/release-notes.d.ts +18 -14
- package/build/lib/release-notes.d.ts.map +1 -1
- package/build/lib/release-notes.js +10 -42
- package/build/lib/release-notes.js.map +1 -1
- package/build/lib/schemas/adapter.d.ts +10 -0
- package/build/lib/schemas/adapter.d.ts.map +1 -1
- package/build/lib/schemas/adapter.js +8 -0
- package/build/lib/schemas/adapter.js.map +1 -1
- package/build/lib/schemas/lockfile.d.ts +5 -0
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +8 -0
- package/build/lib/schemas/lockfile.js.map +1 -1
- package/build/lib/setup.d.ts +6 -0
- package/build/lib/setup.d.ts.map +1 -1
- package/build/lib/setup.js +49 -4
- package/build/lib/setup.js.map +1 -1
- package/build/lib/sync.d.ts +9 -1
- package/build/lib/sync.d.ts.map +1 -1
- package/build/lib/sync.js +31 -8
- package/build/lib/sync.js.map +1 -1
- package/build/lib/uninstaller.d.ts +35 -0
- package/build/lib/uninstaller.d.ts.map +1 -1
- package/build/lib/uninstaller.js +96 -29
- package/build/lib/uninstaller.js.map +1 -1
- package/build/lib/updater.d.ts +6 -0
- package/build/lib/updater.d.ts.map +1 -1
- package/build/lib/updater.js +35 -3
- package/build/lib/updater.js.map +1 -1
- package/build/lib/write-file.d.ts +13 -0
- package/build/lib/write-file.d.ts.map +1 -1
- package/build/lib/write-file.js +22 -0
- package/build/lib/write-file.js.map +1 -1
- package/package.json +2 -1
- package/tool-adapters/codex-cli.json +31 -0
- package/build/hooks/usePromoteState.d.ts +0 -51
- package/build/hooks/usePromoteState.d.ts.map +0 -1
- package/build/hooks/usePromoteState.js +0 -139
- package/build/hooks/usePromoteState.js.map +0 -1
- package/build/hooks/useUnpublishState.d.ts +0 -52
- package/build/hooks/useUnpublishState.d.ts.map +0 -1
- package/build/hooks/useUnpublishState.js +0 -140
- 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 {
|
|
3
|
-
import {
|
|
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
|
-
*
|
|
9
|
-
*
|
|
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
|
|
33
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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,
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACtE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uGAAuG,CAAC;IACpH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CAC5E,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC7E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yIAAyI,CAC1I;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../../src/lib/schemas/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACtE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uGAAuG,CAAC;IACpH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;CAC5E,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC7E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,yIAAyI,CAC1I;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACjF,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sKAAsK,CACvK;CACJ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC;SACZ,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QACnG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC/D,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAC5D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACvG,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAClD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC3E,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACzF,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7E,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,4HAA4H,CAC7H;IACH,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,uOAAuO,CACxO;IACH,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACpE,aAAa,EAAE,CAAC;SACb,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SAC9B,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACxE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC1G,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAClD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACjF,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC3E,YAAY,EAAE,CAAC;SACZ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAC7F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CACrE,CAAC,CAAC"}
|
package/build/lib/setup.d.ts
CHANGED
|
@@ -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.
|
package/build/lib/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"
|
|
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"}
|
package/build/lib/setup.js
CHANGED
|
@@ -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
|
-
|
|
37
|
-
|
|
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
|
package/build/lib/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/lib/setup.ts"],"names":[],"mappings":"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"}
|
package/build/lib/sync.d.ts
CHANGED
|
@@ -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
|
package/build/lib/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
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
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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 =
|
|
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,
|
package/build/lib/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/lib/sync.ts"],"names":[],"mappings":"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"}
|