@detergent-software/atk 9.1.0-dev.9 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,64 @@
1
+ ## [9.1.0](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.0.0&targetVersion=GTv9.1.0) (2026-10-22)
2
+
3
+ ### Features
4
+
5
+ * **cli:** add --json and --yes to atk init ([d556c0c](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d556c0c5c754b8a1c90c243ba924d3cb4af447e3))
6
+ * **cli:** add --json to atk unpublish and atk promote ([5aef22a](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5aef22a21a828c83d84556ba3a586281766de4c3))
7
+ * **cli:** add atk validate to check assets and bundles before publishing ([48ff3ba](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/48ff3ba5b27569c8322f84b3aa4168219bfc6e53))
8
+ * **cli:** one search matcher with all-word, fuzzy and deprecated ranking ([0865972](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0865972707a47f613496c46ca5ae62c2dff40c7b))
9
+
10
+ ### Bug Fixes
11
+
12
+ * **cli:** compare an asset folder's files on disk and skip runtime files (ATK-370) ([bc05b40](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/bc05b40c9ef0afa7e8315ef3b86757040f5da999))
13
+ * **cli:** don't retry the npm update check on a connection failure (ATK-671) ([c716b9d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/c716b9d706751b43b51adecffee1d4a91791c36e))
14
+ * **cli:** fail a hook or keyed config merge that can't read its file (ATK-708) ([5bcfc07](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5bcfc07a8f7263c00ed5ce35aa96df2cbb2ba2e4))
15
+ * **cli:** fail an mcp-config install with nothing to register (ATK-472) ([2c1bc84](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/2c1bc84e71eec9df88231ece82c197af8c946378))
16
+ * **cli:** indent and remove JSONC config entries like the user's (ATK-472) ([0479787](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0479787d493b86fd64aec4177fc823381df0e07f))
17
+ * **cli:** keep a comment on the user's last config entry when ATK adds one (ATK-472) ([02b7adb](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/02b7adb7b530cd761d3cba1a691a9d266c8fc8e5))
18
+ * **cli:** keep a search result's deprecation to its own kind ([6749524](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/6749524472880f12af3f73b3ead88fb784a43305))
19
+ * **cli:** keep init's --name over a --from path, and share error JSON ([e0c9385](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/e0c9385af0150176b0b9224ef43eaabb038fff38))
20
+ * **cli:** keep the list in view when a failure shows its guidance ([b7578c7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/b7578c71c10d036fdd6f0d2a1053fe40960bd10d))
21
+ * **cli:** look up a kept entry's dependencies in its scope (ATK-242) ([a427537](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a427537aa14debf738ffd25bb6d26e8d7ff5d288))
22
+ * **cli:** merge mcp-config into a JSONC .vscode/mcp.json, or fail the install (ATK-472) ([065d56f](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/065d56f40ad0cd7f94ba2a552db7adde83c9e1ce))
23
+ * **cli:** name same-named assets on a bundle's missing version (ATK-729) ([89d22a4](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/89d22a43e1e25a425ed365be438942a56f30cf33))
24
+ * **cli:** rank literal search hits above fuzzy ones ([0c7c700](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0c7c700322f92280e264dfcb0c14f68575464715))
25
+ * **cli:** refuse a hook install before placing files when its config doesn't parse (ATK-708) ([a1cdc95](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a1cdc9502c030155384397b6804ef58342248810))
26
+ * **cli:** remove the files a newer asset version no longer ships (ATK-370) ([1c2c826](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/1c2c826bfc0243c1f8dcda1aaccb58b9cac5b3af))
27
+ * **cli:** restore a sync's files before a lockfile failure aborts it (ATK-713) ([d74f703](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d74f703c62ea6f8f8c71d7692304c013815b57cd))
28
+ * **cli:** restore an asset's files when its sync reinstall fails (ATK-713) ([c91f813](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/c91f81389f6b34bb3a1b61782d03dd3a746cd97a))
29
+ * **cli:** show the bundle in atk info when an asset shares its name (ATK-729) ([cb23ac2](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/cb23ac216d3ad261039ff2d34523a98bd723cd81))
30
+ * **cli:** show the tool resolver's own error in list and browse ([1f53f37](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/1f53f37a75e8b87d6805608555c42638c619374a))
31
+ * **cli:** take --tool ids in any case on install, audit and diff ([9d18ec8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/9d18ec8bb2ec008710643a619ac8fbddd0d24c50))
32
+ * **cli:** take --tools and --tool ids in any case ([7286c15](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/7286c15dbd826d2ce5bd18c205955457d4f04749))
33
+ * **cli:** trim kept-dependency plans by org and leave out their stale needs (ATK-242) ([72b39a9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/72b39a9b343f2850f19da50da151fb5b5a7f301c))
34
+
35
+ ## [9.1.0-dev.13](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.1.0-dev.12&targetVersion=GTv9.1.0-dev.13) (2026-10-22)
36
+
37
+ ### Bug Fixes
38
+
39
+ * **cli:** name same-named assets on a bundle's missing version (ATK-729) ([89d22a4](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/89d22a43e1e25a425ed365be438942a56f30cf33))
40
+ * **cli:** show the bundle in atk info when an asset shares its name (ATK-729) ([cb23ac2](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/cb23ac216d3ad261039ff2d34523a98bd723cd81))
41
+
42
+ ## [9.1.0-dev.12](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.1.0-dev.11&targetVersion=GTv9.1.0-dev.12) (2026-10-22)
43
+
44
+ ### Bug Fixes
45
+
46
+ * **cli:** don't retry the npm update check on a connection failure (ATK-671) ([c716b9d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/c716b9d706751b43b51adecffee1d4a91791c36e))
47
+
48
+ ## [9.1.0-dev.11](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.1.0-dev.10&targetVersion=GTv9.1.0-dev.11) (2026-10-22)
49
+
50
+ ### Bug Fixes
51
+
52
+ * **cli:** look up a kept entry's dependencies in its scope (ATK-242) ([a427537](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a427537aa14debf738ffd25bb6d26e8d7ff5d288))
53
+ * **cli:** trim kept-dependency plans by org and leave out their stale needs (ATK-242) ([72b39a9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/72b39a9b343f2850f19da50da151fb5b5a7f301c))
54
+
55
+ ## [9.1.0-dev.10](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.1.0-dev.9&targetVersion=GTv9.1.0-dev.10) (2026-10-21)
56
+
57
+ ### Bug Fixes
58
+
59
+ * **cli:** restore a sync's files before a lockfile failure aborts it (ATK-713) ([d74f703](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/d74f703c62ea6f8f8c71d7692304c013815b57cd))
60
+ * **cli:** restore an asset's files when its sync reinstall fails (ATK-713) ([c91f813](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/c91f81389f6b34bb3a1b61782d03dd3a746cd97a))
61
+
1
62
  ## [9.1.0-dev.9](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.1.0-dev.8&targetVersion=GTv9.1.0-dev.9) (2026-10-21)
2
63
 
3
64
  ### Bug Fixes
@@ -5,8 +5,8 @@ export declare const options: z.ZodObject<{
5
5
  }, z.core.$strip>;
6
6
  export declare const args: z.ZodTuple<[z.ZodOptional<z.ZodEnum<{
7
7
  clear: "clear";
8
- clean: "clean";
9
8
  status: "status";
9
+ clean: "clean";
10
10
  }>>], null>;
11
11
  type Props = {
12
12
  args: z.infer<typeof args>;
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,WAAW,0CAA0C,CAAC;AAEnE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;iBA2DlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAMf,CAAC;AAmCH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GACtE,EAAE,KAAK,2CA+QP"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,WAAW,0CAA0C,CAAC;AAEnE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;iBA2DlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAMf,CAAC;AA4CH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GACtE,EAAE,KAAK,2CA2RP"}
@@ -99,6 +99,48 @@ export default function Info({ args: [rawName], options: { full, json, org: cliO
99
99
  // The active org, as search, browse, diff and install resolve it: a bare name tries the
100
100
  // project's org first, then the global asset.
101
101
  const org = resolveActiveOrg(explicitOrg, lockfile?.org, config.org);
102
+ // A bare name resolves as install resolves it: the bundle first, then the asset (ATK-729).
103
+ // Bundle identity is (name, org) with exact matching — @org/name never falls back to a
104
+ // same-named global bundle, and vice versa.
105
+ const bundle = type ? undefined : findBundle(registry, name, explicitOrg);
106
+ if (bundle) {
107
+ const alsoAssets = sharedNameAssets(registry, name, org);
108
+ // Bundle deprecations are keyed on (name, org) with no type.
109
+ const bundleDeprecation = isDeprecated(registry, bundle.name, undefined, bundle.org);
110
+ const ref = { name: bundle.name, org: bundle.org, type: 'bundle' };
111
+ const requested = effectiveVersion && isLatestAlias(effectiveVersion) ? undefined : effectiveVersion;
112
+ let version = bundle.version;
113
+ // The registry index lists only the latest bundle version; any other one is looked up.
114
+ if (requested && requested !== bundle.version) {
115
+ progress('Fetching bundle versions...');
116
+ const versions = await fetchBundleVersions(ref);
117
+ const resolved = resolveVersion(versions, bundle.version, requested);
118
+ if (!resolved) {
119
+ return {
120
+ ...(alsoAssets.length > 0 ? { alsoAssets } : {}),
121
+ availableVersions: versions,
122
+ name,
123
+ outcome: 'version-not-found',
124
+ version: requested,
125
+ };
126
+ }
127
+ version = resolved;
128
+ }
129
+ const older = version !== bundle.version;
130
+ progress(older ? `Fetching ${name}@${version}...` : 'Fetching README...');
131
+ const [manifest, readme] = await Promise.all([
132
+ older ? fetchBundleManifest(ref, version) : undefined,
133
+ fetchReadmeNonFatal(ref, version),
134
+ ]);
135
+ return {
136
+ alsoAssets,
137
+ bundle: manifest ? bundleAtVersion(bundle, manifest, version) : bundle,
138
+ deprecation: bundleDeprecation,
139
+ linkVersion: requested ? version : undefined,
140
+ outcome: 'bundle-found',
141
+ readme,
142
+ };
143
+ }
102
144
  let resolved = findAsset(registry, name, type, effectiveVersion, org);
103
145
  let installCommand;
104
146
  if (!resolved) {
@@ -114,41 +156,6 @@ export default function Info({ args: [rawName], options: { full, json, org: cliO
114
156
  };
115
157
  }
116
158
  }
117
- if (!type) {
118
- // Bundle identity is (name, org) with exact matching — @org/name never
119
- // falls back to a same-named global bundle, and vice versa.
120
- const bundle = findBundle(registry, name, explicitOrg);
121
- if (bundle) {
122
- // Bundle deprecations are keyed on (name, org) with no type.
123
- const bundleDeprecation = isDeprecated(registry, bundle.name, undefined, bundle.org);
124
- const ref = { name: bundle.name, org: bundle.org, type: 'bundle' };
125
- const requested = effectiveVersion && isLatestAlias(effectiveVersion) ? undefined : effectiveVersion;
126
- let version = bundle.version;
127
- // The registry index lists only the latest bundle version; any other one is looked up.
128
- if (requested && requested !== bundle.version) {
129
- progress('Fetching bundle versions...');
130
- const versions = await fetchBundleVersions(ref);
131
- const resolved = resolveVersion(versions, bundle.version, requested);
132
- if (!resolved) {
133
- return { availableVersions: versions, name, outcome: 'version-not-found', version: requested };
134
- }
135
- version = resolved;
136
- }
137
- const older = version !== bundle.version;
138
- progress(older ? `Fetching ${name}@${version}...` : 'Fetching README...');
139
- const [manifest, readme] = await Promise.all([
140
- older ? fetchBundleManifest(ref, version) : undefined,
141
- fetchReadmeNonFatal(ref, version),
142
- ]);
143
- return {
144
- bundle: manifest ? bundleAtVersion(bundle, manifest, version) : bundle,
145
- deprecation: bundleDeprecation,
146
- linkVersion: requested ? version : undefined,
147
- outcome: 'bundle-found',
148
- readme,
149
- };
150
- }
151
- }
152
159
  // Without an explicit org, other orgs' assets of that name are candidates. With no active org
153
160
  // a single one is the asset meant; an active org that missed shows them as suggestions, since
154
161
  // search doesn't list other orgs' assets either. An explicit org never resolves to another.
@@ -227,14 +234,14 @@ export default function Info({ args: [rawName], options: { full, json, org: cliO
227
234
  return renderJson(buildJsonOutput(data));
228
235
  }
229
236
  if (data.outcome === 'bundle-found') {
230
- return (_jsx(BundleDetail, { bundle: data.bundle, deprecation: data.deprecation, full: full, readme: data.readme, webUrl: buildBundleWebUrl(data.bundle.name, data.bundle.org, data.linkVersion) }));
237
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(BundleDetail, { bundle: data.bundle, deprecation: data.deprecation, full: full, readme: data.readme, webUrl: buildBundleWebUrl(data.bundle.name, data.bundle.org, data.linkVersion) }), _jsx(SharedNameHints, { alsoAssets: data.alsoAssets })] }));
231
238
  }
232
239
  // Echo the scope the user actually typed (or passed via --org) — a bare
233
240
  // "qa-bundle not found" after the user asked for "@ghost/qa-bundle" hides
234
241
  // the part of the spec that caused the miss.
235
242
  const displayName = formatOrgName(explicitOrg, name);
236
243
  if (data.outcome === 'version-not-found') {
237
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'red', children: ["Version ", _jsxs(Text, { bold: true, children: ["\"", data.version, "\""] }), " of ", _jsxs(Text, { bold: true, children: ["\"", displayName, "\""] }), " not found."] }), data.availableVersions.length > 0 && (_jsxs(Text, { dimColor: true, children: ["Available versions: ", data.availableVersions.join(', ')] }))] }));
244
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'red', children: ["Version ", _jsxs(Text, { bold: true, children: ["\"", data.version, "\""] }), " of ", _jsxs(Text, { bold: true, children: ["\"", displayName, "\""] }), " not found."] }), data.availableVersions.length > 0 && (_jsxs(Text, { dimColor: true, children: ["Available versions: ", data.availableVersions.join(', ')] })), _jsx(SharedNameHints, { alsoAssets: data.alsoAssets ?? [] })] }));
238
245
  }
239
246
  if (data.outcome === 'not-found-with-suggestions') {
240
247
  return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'red', children: ["Asset ", _jsxs(Text, { bold: true, children: ["\"", displayName, "\""] }), " not found in ", data.activeOrg ? `@${data.activeOrg} or ` : '', "the global registry."] }), _jsx(Text, { children: "Did you mean one of these org-scoped assets?" }), data.orgMatches.map((match) => (_jsxs(Text, { children: [' ', "@", match.org, "/", match.name, " (", match.type, ")"] }, identityKey(match)))), _jsxs(Text, { dimColor: true, children: ["Run ", _jsx(Text, { bold: true, children: "atk info @org/name" }), " to view an org-scoped asset."] })] }));
@@ -248,6 +255,7 @@ function buildJsonOutput(data) {
248
255
  switch (data.outcome) {
249
256
  case 'bundle-found': {
250
257
  return {
258
+ alsoAssets: data.alsoAssets,
251
259
  assetCount: data.bundle.assetCount,
252
260
  assets: data.bundle.assets,
253
261
  author: data.bundle.author,
@@ -304,6 +312,7 @@ function buildJsonOutput(data) {
304
312
  }
305
313
  case 'version-not-found': {
306
314
  return {
315
+ alsoAssets: data.alsoAssets,
307
316
  availableVersions: data.availableVersions,
308
317
  name: data.name,
309
318
  outcome: data.outcome,
@@ -324,4 +333,24 @@ async function fetchReadmeNonFatal(ref, version) {
324
333
  return undefined;
325
334
  }
326
335
  }
336
+ /**
337
+ * The assets named like a bundle: for each type, the one `atk info <spec> --type <type>` opens,
338
+ * with that command, so a bundle that hides a same-named asset from a bare `info` points at it.
339
+ */
340
+ function sharedNameAssets(registry, name, org) {
341
+ return AssetType.options.flatMap((type) => {
342
+ const match = findAsset(registry, name, type, undefined, org);
343
+ if (!match)
344
+ return [];
345
+ // The asset's own scope, so the command opens it from any project, and an @org spec that
346
+ // fell back to the global asset doesn't name it as the org's.
347
+ const { org: assetOrg } = match.asset;
348
+ const command = `atk info ${formatOrgName(assetOrg, name)} --type ${type}`;
349
+ return [{ command, name, ...(assetOrg ? { org: assetOrg } : {}), type }];
350
+ });
351
+ }
352
+ /** One line for each asset named like the bundle, with the command that shows it. */
353
+ function SharedNameHints({ alsoAssets }) {
354
+ return alsoAssets.map((also) => (_jsxs(Text, { dimColor: true, children: ["Also ", also.type === 'agent' || also.type === 'mcp-config' ? 'an' : 'a', " ", also.type, ":", ' ', _jsx(Text, { bold: true, children: also.command })] }, also.type)));
355
+ }
327
356
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAEL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAC;AAEnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,MAAM,CAAC;QACL,WAAW,EAAE,qDAAqD;KACnE,CAAC,CACH;IACH,IAAI,EAAE,CAAC;SACJ,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,wCAAwC;KACtD,CAAC,CACH;IACH,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,qCAAqC;KACnD,CAAC,CACH;IACH,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,gDAAgD;KAC9D,CAAC,CACH;IACH,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACjC,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,8EAA8E;KAC5F,CAAC,CACH;IACD,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,MAAM,CAAC;QACL,WAAW,EAAE,uCAAuC;KACrD,CAAC,CACH;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,0DAA0D;KACxE,CAAC,CACH;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1B,CAAC;SACE,MAAM,EAAE;SACR,QAAQ,CACP,QAAQ,CAAC,EAAE,WAAW,EAAE,mEAAmE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAC7G;CACJ,CAAC,CAAC;AAwCH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAC/D;IACN,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE/E,+CAA+C;IAC/C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,MAAM,WAAW,GAAG,SAAS,IAAI,MAAM,CAAC;IAExC,MAAM,gBAAgB,GAAG,OAAO,IAAI,aAAa,CAAC;IAClD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,UAAU,CACtB,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,uDAAuD;QACvD,IAAI,UAA8B,CAAC;QACnC,IAAI,CAAC;YACH,UAAU,GAAG,eAAe,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;QAED,oDAAoD;QACpD,IAAI,QAA8B,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,wFAAwF;QACxF,8CAA8C;QAC9C,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;QACtE,IAAI,cAAkC,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBACpE,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBAC7E,OAAO;wBACL,iBAAiB;wBACjB,IAAI;wBACJ,OAAO,EAAE,mBAAmB;wBAC5B,OAAO,EAAE,gBAAgB;qBAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,uEAAuE;gBACvE,4DAA4D;gBAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE,CAAC;oBACX,6DAA6D;oBAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;oBACrF,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACnE,MAAM,SAAS,GAAG,gBAAgB,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBACrG,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC7B,uFAAuF;oBACvF,IAAI,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC9C,QAAQ,CAAC,6BAA6B,CAAC,CAAC;wBACxC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;wBAChD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;wBACjG,CAAC;wBACD,OAAO,GAAG,QAAQ,CAAC;oBACrB,CAAC;oBACD,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC;oBACzC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;oBAC1E,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBAC3C,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;wBACrD,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC;qBAClC,CAAC,CAAC;oBACH,OAAO;wBACL,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;wBACtE,WAAW,EAAE,iBAAiB;wBAC9B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;wBAC5C,OAAO,EAAE,cAAc;wBACvB,MAAM;qBACP,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,8FAA8F;YAC9F,8FAA8F;YAC9F,4FAA4F;YAC5F,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBAC/F,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;gBAC1B,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC5C,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5E,IAAI,CAAC,QAAQ,IAAI,gBAAgB,EAAE,CAAC;wBAClC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9E,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,WAAW;4BACjD,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC;4BACtC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;wBACrB,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;oBAC9F,CAAC;oBACD,cAAc,GAAG,eAAe,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACnH,CAAC;qBAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;gBACrF,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1F,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1E,wDAAwD;QACxD,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QACvC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,gBAAoC,CAAC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9F,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;gBACnB,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC;YACvC,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EACjF,QAAQ,CAAC,OAAO,CACjB,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,iBAAiB;YACjB,WAAW;YACX,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,OAAO,EAAE,OAAO;YAChB,MAAM;YACN,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;IACJ,CAAC,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAC1D,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,IAAI,IAAI,gBAAgB,KAAK,CAAC,CAAC,CAAC,wBAAwB,CACjG,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAC,OAAO,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,UAAU,CAAC;gBAChB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAC,SAAS,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,CAAC;IACzF,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,IACE,IAAI,CAAC,OAAO,KAAK,WAAW;QAC5B,IAAI,CAAC,OAAO,KAAK,4BAA4B;QAC7C,IAAI,CAAC,OAAO,KAAK,mBAAmB,EACpC,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QACpC,OAAO,CACL,KAAC,YAAY,IACX,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAC9E,CACH,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,0EAA0E;IAC1E,6CAA6C;IAC7C,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;QACzC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,yBACP,MAAC,IAAI,IAAC,IAAI,yBAAG,IAAI,CAAC,OAAO,UAAS,UAAI,MAAC,IAAI,IAAC,IAAI,yBAAG,WAAW,UAAS,mBAC1E,EACN,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,MAAC,IAAI,IAAC,QAAQ,2CAAsB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAQ,CAC9E,IACG,CACP,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,4BAA4B,EAAE,CAAC;QAClD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBACT,MAAC,IAAI,IAAC,IAAI,yBAAG,WAAW,UAAS,oBAAe,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,4BAE/F,EACP,KAAC,IAAI,+DAAoD,EACxD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,MAAC,IAAI,eACF,IAAI,OAAG,KAAK,CAAC,GAAG,OAAG,KAAK,CAAC,IAAI,QAAI,KAAK,CAAC,IAAI,UADnC,WAAW,CAAC,KAAK,CAAC,CAEtB,CACR,CAAC,EACF,MAAC,IAAI,IAAC,QAAQ,2BACR,KAAC,IAAI,IAAC,IAAI,yCAA0B,qCACnC,IACH,CACP,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,iCACC,MAAC,IAAI,IAAC,IAAI,yBAAG,WAAW,UAAS,mCAC5C,EACP,MAAC,IAAI,IAAC,QAAQ,2BACR,MAAC,IAAI,IAAC,IAAI,kCAAa,IAAI,CAAC,IAAI,IAAQ,gCACvC,IACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,WAAW,IACV,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,WAAW,EAAE,IAAI,CAAC,WAAW,GAC7B,EACD,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAC3C,MAAC,IAAI,IAAC,QAAQ,oDACiB,KAAC,IAAI,IAAC,IAAI,kBAAE,IAAI,CAAC,cAAc,GAAQ,IAC/D,CACR,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO;gBACL,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;gBACzC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE;oBACX,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;oBAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;oBACnC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;oBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;oBACzC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;oBAC7B,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;oBACnC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;iBAC9B;gBACD,MAAM,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;aAC9G,CAAC;QACJ,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;QACJ,CAAC;QACD,KAAK,4BAA4B,CAAC,CAAC,CAAC;YAClC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;QACJ,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,OAAO;gBACL,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,GAAa,EAAE,OAAe;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.tsx"],"names":[],"mappings":"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"}
@@ -10,11 +10,11 @@ export declare const args: z.ZodTuple<[z.ZodEnum<{
10
10
  hook: "hook";
11
11
  "memory-template": "memory-template";
12
12
  "mcp-config": "mcp-config";
13
- config: "config";
14
13
  bundle: "bundle";
14
+ registry: "registry";
15
+ config: "config";
15
16
  adapter: "adapter";
16
17
  lockfile: "lockfile";
17
- registry: "registry";
18
18
  }>], null>;
19
19
  type Props = {
20
20
  args: z.infer<typeof args>;
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * Retries on network errors and retryable HTTP status codes (429, 500, 502, 503, 504)
5
5
  * using exponential backoff with randomized jitter. Respects Retry-After headers
6
- * from 429 responses when present.
6
+ * from 429 responses when present. A connection failure (refused, DNS, unreachable)
7
+ * is thrown at once, as the ATK API client does (ATK-651): offline, the backoff
8
+ * timers would only keep the process alive after the command's output (ATK-671).
7
9
  */
8
10
  /** Configurable options for retry behavior. */
9
11
  export interface RetryOptions {
@@ -20,7 +22,7 @@ export interface RetryOptions {
20
22
  * Fetch with automatic retry for transient failures.
21
23
  *
22
24
  * Wraps the standard `fetch` API and retries on:
23
- * - Network errors (fetch throws)
25
+ * - Network errors (fetch throws), except a connection failure, which is thrown at once
24
26
  * - Retryable HTTP status codes: 429, 500, 502, 503, 504
25
27
  *
26
28
  * Non-retryable responses (e.g. 400, 401, 403, 404) are returned immediately
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-retry.d.ts","sourceRoot":"","sources":["../../src/lib/fetch-retry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG,EAC7B,IAAI,CAAC,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,CAAC,CA+CnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD"}
1
+ {"version":3,"file":"fetch-retry.d.ts","sourceRoot":"","sources":["../../src/lib/fetch-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG,EAC7B,IAAI,CAAC,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,CAAC,CAsDnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * Retries on network errors and retryable HTTP status codes (429, 500, 502, 503, 504)
5
5
  * using exponential backoff with randomized jitter. Respects Retry-After headers
6
- * from 429 responses when present.
6
+ * from 429 responses when present. A connection failure (refused, DNS, unreachable)
7
+ * is thrown at once, as the ATK API client does (ATK-651): offline, the backoff
8
+ * timers would only keep the process alive after the command's output (ATK-671).
7
9
  */
8
10
  const DEFAULT_OPTIONS = {
9
11
  baseDelayMs: 1_000,
@@ -17,7 +19,7 @@ const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503, 504]);
17
19
  * Fetch with automatic retry for transient failures.
18
20
  *
19
21
  * Wraps the standard `fetch` API and retries on:
20
- * - Network errors (fetch throws)
22
+ * - Network errors (fetch throws), except a connection failure, which is thrown at once
21
23
  * - Retryable HTTP status codes: 429, 500, 502, 503, 504
22
24
  *
23
25
  * Non-retryable responses (e.g. 400, 401, 403, 404) are returned immediately
@@ -60,6 +62,12 @@ export async function fetchWithRetry(input, init, retryOptions) {
60
62
  if (signal?.aborted) {
61
63
  throw error;
62
64
  }
65
+ // Imported here, not at the top: the client's barrel would add ~30 ms to every run
66
+ // that loads the update check, `--version` included, for a check only a failure needs.
67
+ const { isConnectionFailure } = await import('./atk-api/index.js');
68
+ if (isConnectionFailure(error)) {
69
+ throw error;
70
+ }
63
71
  // Network error — retry if attempts remain
64
72
  if (attempt < options.maxRetries) {
65
73
  const delay = computeDelay(attempt, options);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-retry.js","sourceRoot":"","sources":["../../src/lib/fetch-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-retry.js","sourceRoot":"","sources":["../../src/lib/fetch-retry.ts"],"names":[],"mappings":"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"}
@@ -52,9 +52,11 @@ export declare function executeInstallPlanForTools(requestedPlan: InstallPlan, t
52
52
  * `plan` without the dependencies the install leaves as they are: each one `installed` has in place
53
53
  * for every tool that can place it, at a version every dependent accepts. The dependents are the
54
54
  * entries of the plan that depend on it, at the version the plan installs, or, for one it leaves
55
- * as it is, at its installed version. The plan's direct entries, the assets asked for, are always
56
- * installed. A pinned dependency the plan would move to another version refuses the install,
57
- * before anything is written. Dry runs and updates trim their plans the same way.
55
+ * as it is, at its installed version. A dependency that only the planned versions of entries it
56
+ * leaves out need, versions that won't be installed, is left out too. The plan's direct entries,
57
+ * the assets asked for, are always installed. A pinned dependency the plan would move to another
58
+ * version refuses the install, before anything is written, unless the tools that lack it are ones
59
+ * it was uninstalled for. Dry runs and updates trim their plans the same way.
58
60
  */
59
61
  export declare function withoutKeptDependencies(plan: InstallPlan, installed: Lockfile, tools: Array<{
60
62
  adapter: Adapter;
@@ -1 +1 @@
1
- {"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtE,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAMxB,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,WAAW,EAC1B,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3G,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE9B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAClC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC,GACnE,WAAW,CA2Cb"}
1
+ {"version":3,"file":"multi-tool-install.d.ts","sourceRoot":"","sources":["../../src/lib/multi-tool-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAYtE,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,aAAa,EAGnB,MAAM,gBAAgB,CAAC;AAaxB,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,uGAAuG;IACvG,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,WAAW,EAC1B,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3G,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,EAClC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC,GACnE,WAAW,CA2Fb"}
@@ -1,9 +1,9 @@
1
1
  import { satisfies } from 'semver';
2
- import { declaresTool, isExcludedForTool, placesAsset, supportsType, withToolExcluded } from './asset-tools.js';
2
+ import { declaresTool, isExcludedForTool, isUndeclaredForTool, placesAsset, supportsType, withToolExcluded, } from './asset-tools.js';
3
3
  import { errorMessage } from './errors.js';
4
4
  import { isInstalledForTool } from './installed-for-tool.js';
5
5
  import { assertInstalledByAnyTool, executeInstallPlan, fetchPlanFiles, InstallerError, InstallPlanError, placeableEntries, rollBackInstalledAssets, } from './installer.js';
6
- import { addAssetToLockfile, findInstalledAsset, readLockfile, writeLockfile } from './lockfile.js';
6
+ import { addAssetToLockfile, findDependencyAsset, findInstalledAsset, identityKey, readLockfile, writeLockfile, } from './lockfile.js';
7
7
  import { formatOrgName } from './org.js';
8
8
  import { isLatestAlias } from './registry.js';
9
9
  import { scopedCommand } from './scope.js';
@@ -100,49 +100,92 @@ export async function executeInstallPlanForTools(requestedPlan, tools, options)
100
100
  * `plan` without the dependencies the install leaves as they are: each one `installed` has in place
101
101
  * for every tool that can place it, at a version every dependent accepts. The dependents are the
102
102
  * entries of the plan that depend on it, at the version the plan installs, or, for one it leaves
103
- * as it is, at its installed version. The plan's direct entries, the assets asked for, are always
104
- * installed. A pinned dependency the plan would move to another version refuses the install,
105
- * before anything is written. Dry runs and updates trim their plans the same way.
103
+ * as it is, at its installed version. A dependency that only the planned versions of entries it
104
+ * leaves out need, versions that won't be installed, is left out too. The plan's direct entries,
105
+ * the assets asked for, are always installed. A pinned dependency the plan would move to another
106
+ * version refuses the install, before anything is written, unless the tools that lack it are ones
107
+ * it was uninstalled for. Dry runs and updates trim their plans the same way.
106
108
  */
107
109
  export function withoutKeptDependencies(plan, installed, tools, options) {
108
- // The version ranges the dependents decided so far require, by `type:name`. A dependent comes
109
- // after its dependencies in the plan, so walking it backwards decides each one before them.
110
- // `latest`, like no version, is no range: any installed version serves it.
111
- const ranges = new Map();
112
- const addRanges = (dependencies = []) => {
113
- for (const { name, type, version } of dependencies) {
110
+ // A dependency names no org, so it resolves the way the resolver found it: in the dependent's
111
+ // scope first (the planned entry of that org, if any), then globally.
112
+ const planned = new Set(plan.entries.map(({ asset }) => identityKey(asset)));
113
+ const resolve = (dependency, scope) => {
114
+ const scoped = identityKey({ ...dependency, org: dependency.org ?? scope });
115
+ return planned.has(scoped) ? scoped : identityKey({ ...dependency, org: dependency.org });
116
+ };
117
+ const plannedDependencies = ({ asset, scope, versionData }) => (versionData.dependencies ?? []).map((d) => ({ key: resolve(d, scope ?? asset.org), version: d.version }));
118
+ // The version ranges the dependents decided so far require, by identity. A dependent comes after
119
+ // its dependencies in the plan, so walking it backwards decides each one before them. `latest`,
120
+ // like no version, is no range: any installed version serves it.
121
+ const required = new Map();
122
+ const requireAll = (dependencies) => {
123
+ for (const { key, version } of dependencies) {
124
+ const ranges = required.get(key) ?? [];
114
125
  if (version && !isLatestAlias(version))
115
- ranges.set(`${type}:${name}`, [...(ranges.get(`${type}:${name}`) ?? []), version]);
126
+ ranges.push(version);
127
+ required.set(key, ranges);
116
128
  }
117
129
  };
130
+ // A kept entry's installed dependencies are the ones its lockfile records, looked up in the same
131
+ // scope: the installed asset of that org, else the global one.
132
+ const requireInstalled = ({ asset, scope }, current) => requireAll((current.dependencies ?? []).map((d) => {
133
+ const dependency = findDependencyAsset(installed, d, scope ?? asset.org);
134
+ return { key: dependency ? identityKey(dependency) : resolve(d, scope ?? asset.org), version: d.version };
135
+ }));
136
+ // What the planned versions of the entries left out need: a dependency only they required is left out too.
137
+ const neededByLeftOut = new Set();
138
+ const leaveOut = (entry) => {
139
+ for (const { key } of plannedDependencies(entry))
140
+ neededByLeftOut.add(key);
141
+ };
118
142
  const kept = new Map();
143
+ const unneeded = new Set();
119
144
  for (const entry of plan.entries.toReversed()) {
120
145
  const { name, org, type } = entry.asset;
146
+ const key = identityKey(entry.asset);
147
+ const ranges = required.get(key);
148
+ if (entry.reason === 'dependency' && !ranges && neededByLeftOut.has(key)) {
149
+ unneeded.add(entry);
150
+ leaveOut(entry);
151
+ continue;
152
+ }
121
153
  const current = entry.reason === 'dependency' ? findInstalledAsset(installed, name, type, org) : undefined;
122
154
  if (!current) {
123
- addRanges(entry.versionData.dependencies);
155
+ requireAll(plannedDependencies(entry));
124
156
  continue;
125
157
  }
126
- const accepted = (ranges.get(`${type}:${name}`) ?? []).every((range) => satisfies(current.version, range));
127
- const inPlace = tools
158
+ const accepted = (ranges ?? []).every((range) => satisfies(current.version, range));
159
+ const missingFor = tools
128
160
  .filter(({ adapter }) => placesAsset(adapter, type, entry.versionData.tools))
129
- .every(({ adapter }) => isInstalledForTool(current, adapter, options.projectDir));
130
- if (accepted && inPlace) {
161
+ .filter(({ adapter }) => !isInstalledForTool(current, adapter, options.projectDir));
162
+ // A pinned dependency the plan would move stays as it is when the tools that lack it are ones
163
+ // it was uninstalled for: sync would not place it there either.
164
+ const keep = accepted &&
165
+ (missingFor.length === 0 ||
166
+ (current.pinnedVersion !== undefined &&
167
+ entry.version !== current.version &&
168
+ missingFor.every(({ adapter }) => isUninstalledForTool(current, adapter.tool))));
169
+ if (keep) {
131
170
  kept.set(entry, current);
132
- addRanges(current.dependencies);
171
+ requireInstalled(entry, current);
172
+ leaveOut(entry);
133
173
  continue;
134
174
  }
135
175
  if (current.pinnedVersion && entry.version !== current.version) {
136
176
  throw pinnedDependencyError(entry, current, accepted, options.scope);
137
177
  }
138
- addRanges(entry.versionData.dependencies);
178
+ requireAll(plannedDependencies(entry));
139
179
  }
140
- if (kept.size === 0)
180
+ if (kept.size === 0 && unneeded.size === 0)
141
181
  return plan;
142
182
  for (const [{ asset }, current] of [...kept].toReversed()) {
143
183
  options.onProgress?.(`Keeping ${formatOrgName(asset.org, asset.name)}@${current.version}: already installed`);
144
184
  }
145
- const entries = plan.entries.filter((entry) => !kept.has(entry));
185
+ for (const { asset } of [...unneeded].toReversed()) {
186
+ options.onProgress?.(`Skipping ${formatOrgName(asset.org, asset.name)}: only another version of an asset kept as installed needs it`);
187
+ }
188
+ const entries = plan.entries.filter((entry) => !kept.has(entry) && !unneeded.has(entry));
146
189
  return { entries, totalCount: entries.length };
147
190
  }
148
191
  /**
@@ -169,6 +212,10 @@ async function excludeSkippedTools(toolResults, tools, before, projectDir) {
169
212
  if (changed)
170
213
  await writeLockfile(projectDir, lockfile);
171
214
  }
215
+ /** Whether the asset was uninstalled for the tool, not only skipped as a hook that doesn't declare it. */
216
+ function isUninstalledForTool(asset, tool) {
217
+ return isExcludedForTool(asset, tool) && !isUndeclaredForTool(asset, tool);
218
+ }
172
219
  /**
173
220
  * The refusal of a plan that would move `current`, a pinned dependency, to `entry`'s version:
174
221
  * because a dependent does not accept its version (`accepted` false), or because a tool does not