@detergent-software/atk 9.2.0-dev.6 → 9.2.0-dev.7

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,18 @@
1
+ ## [9.2.0-dev.7](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.2.0-dev.6&targetVersion=GTv9.2.0-dev.7) (2026-10-24)
2
+
3
+ ### Features
4
+
5
+ * **cli:** mark rows in atk browse and install them as one plan ([1b871cb](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/1b871cb9cd368de426f8d3afaa518c67109ea6c8))
6
+
7
+ ### Bug Fixes
8
+
9
+ * **cli:** give browse's list the rows a wrapped bar takes ([0d8f1b2](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/0d8f1b2bb1854ee531408327e7f3bcd1648f9889))
10
+ * **cli:** review fixes for marking rows in atk browse ([e42131d](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/e42131d10a0130507a7eefe122f03277a33b865a))
11
+
12
+ ### Refactoring
13
+
14
+ * **cli:** share the several-targets install path in lib ([c5866c8](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/c5866c8667e5aa5c7ad258f12735003c519e3e1e))
15
+
1
16
  ## [9.2.0-dev.6](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv9.2.0-dev.5&targetVersion=GTv9.2.0-dev.6) (2026-10-23)
2
17
 
3
18
  ### Features
@@ -1 +1 @@
1
- {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgDxB,eAAO,MAAM,WAAW,4CAA4C,CAAC;AASrE,eAAO,MAAM,OAAO;;;;;;;iBAsDlB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAKf,CAAC;AAiBH,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,MAAM,CAAC,EAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAC1E,EAAE,KAAK,+BA0BP"}
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmDxB,eAAO,MAAM,WAAW,4CAA4C,CAAC;AASrE,eAAO,MAAM,OAAO;;;;;;;iBAsDlB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAKf,CAAC;AAiBH,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,MAAM,CAAC,EAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAC1E,EAAE,KAAK,+BA0BP"}
@@ -4,14 +4,16 @@ import { useEffect, useRef } from 'react';
4
4
  import { z } from 'zod';
5
5
  import BrowseList from '../components/BrowseList.js';
6
6
  import FilterBar from '../components/FilterBar.js';
7
- import HelpBar from '../components/HelpBar.js';
7
+ import HelpBar, { helpBarText } from '../components/HelpBar.js';
8
8
  import { errorGuidanceRows, ErrorView, Spinner } from '../components/index.js';
9
- import InstallConfirmBar from '../components/InstallConfirmBar.js';
9
+ import InstallConfirmBar, { resultLine } from '../components/InstallConfirmBar.js';
10
10
  import { TYPE_TAB_LABELS, TYPE_TABS, useBrowseInput, useBrowseState, } from '../hooks/useBrowseState.js';
11
11
  import { useCommand } from '../hooks/useCommand.js';
12
12
  import { useResolvedScope } from '../hooks/useResolvedScope.js';
13
13
  import { loadConfig } from '../lib/config.js';
14
14
  import { errorGuidance, errorMessage } from '../lib/errors.js';
15
+ import { wrappedExtraRows } from '../lib/format.js';
16
+ import { installPlannedTargets, planTargetsInstall } from '../lib/install-targets.js';
15
17
  import { LOCKFILE_LOCKED_MESSAGE, LockfileLockedError, readLockfile, withLockfileLock } from '../lib/lockfile.js';
16
18
  import { executeInstallPlanForTools } from '../lib/multi-tool-install.js';
17
19
  import { formatOrgName, resolveActiveOrg } from '../lib/org.js';
@@ -98,17 +100,20 @@ function BrowseInteractive({ cliOrg, filterArg, projectRoot, refresh, typeOpt, u
98
100
  const [state, dispatch, dispatchLoad] = useBrowseState(initialFilter, initialType);
99
101
  const { exit } = useApp();
100
102
  const { stdout } = useStdout();
101
- const isInstalling = state.status === 'ready' && state.mode.kind === 'installing';
103
+ const isInstalling = state.status === 'ready' && (state.mode.kind === 'installing' || state.mode.kind === 'installing-set');
102
104
  const stateRef = useRef(state);
103
105
  stateRef.current = state;
104
106
  const resolvedToolsRef = useRef(UNRESOLVED_TOOLS);
105
107
  const scopeRef = useRef(undefined);
106
108
  const terminalWidth = stdout?.columns ?? 120;
109
+ // The rows the help bar wraps to past its first. The cursor moves only while it shows, so the
110
+ // reducer scrolls by the list it leaves.
111
+ const helpRows = state.status === 'ready' ? wrappedExtraRows(helpBarText(helpBarPropsOf(state)), terminalWidth) : 0;
107
112
  // Track viewport height
108
113
  useEffect(() => {
109
114
  const height = stdout?.rows ?? 24;
110
- dispatch({ height: Math.max(5, height - CHROME_LINES), type: 'SET_VIEWPORT_HEIGHT' });
111
- }, [stdout?.rows, dispatch]);
115
+ dispatch({ height: Math.max(5, height - CHROME_LINES - helpRows), type: 'SET_VIEWPORT_HEIGHT' });
116
+ }, [stdout?.rows, helpRows, dispatch]);
112
117
  // Load data
113
118
  useEffect(() => {
114
119
  let cancelled = false;
@@ -170,25 +175,30 @@ function BrowseInteractive({ cliOrg, filterArg, projectRoot, refresh, typeOpt, u
170
175
  if (stateRef.current.status !== 'ready')
171
176
  return;
172
177
  const currentState = stateRef.current;
173
- if (currentState.mode.kind !== 'installing')
174
- return;
175
178
  const installingMode = currentState.mode;
179
+ if (installingMode.kind !== 'installing' && installingMode.kind !== 'installing-set')
180
+ return;
176
181
  let cancelled = false;
177
182
  (async () => {
178
183
  try {
179
184
  const resolved = scopeRef.current;
180
185
  if (!resolved)
181
186
  throw new Error('The install scope has not resolved yet.');
182
- await executeInstallFromBrowse({
183
- assetName: installingMode.assetName,
184
- assetOrg: installingMode.assetOrg,
187
+ const shared = {
185
188
  dispatch,
186
189
  isCancelled: () => cancelled,
187
- itemKind: installingMode.itemKind,
188
190
  registry: currentState.registry,
189
191
  resolved,
190
192
  tools: resolvedToolsRef.current,
191
- });
193
+ };
194
+ await (installingMode.kind === 'installing-set'
195
+ ? executeSetInstallFromBrowse({ ...shared, items: installingMode.items })
196
+ : executeInstallFromBrowse({
197
+ ...shared,
198
+ assetName: installingMode.assetName,
199
+ assetOrg: installingMode.assetOrg,
200
+ itemKind: installingMode.itemKind,
201
+ }));
192
202
  }
193
203
  catch (err) {
194
204
  if (!cancelled) {
@@ -229,7 +239,6 @@ function BrowseInteractive({ cliOrg, filterArg, projectRoot, refresh, typeOpt, u
229
239
  : state.typeFilter === 'all'
230
240
  ? state.allAssets.length + state.allBundles.length
231
241
  : state.allAssets.filter((a) => a.type === state.typeFilter).length;
232
- const canInstall = state.filteredItems.length > 0;
233
242
  const sortArrow = state.sortDirection === 'asc' ? '\u2191' : '\u2193';
234
243
  const sortIndicator = `Sort: ${BROWSE_SORT_FIELD_LABELS[state.sortField]} ${sortArrow}`;
235
244
  const expandedItem = state.expandedIndex !== null ? state.filteredItems[state.expandedIndex] : null;
@@ -238,9 +247,15 @@ function BrowseInteractive({ cliOrg, filterArg, projectRoot, refresh, typeOpt, u
238
247
  : expandedItem?.kind === 'bundle'
239
248
  ? buildBundleWebUrl(expandedItem.data.name, expandedItem.data.org)
240
249
  : null;
241
- // A failed install's hint and command make the install bar taller: the list gives up those rows
242
- const guidanceRows = mode.kind === 'install-result' && !mode.success ? errorGuidanceRows(mode) : 0;
243
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(FilterBar, { filterText: state.filterText, inputMode: inputMode, org: state.org, orgOnly: state.orgOnly, resultCount: state.filteredItems.length, sortIndicator: sortIndicator, terminalWidth: terminalWidth, totalCount: totalCount, typeFilter: state.typeFilter, typeTabLabels: TYPE_TAB_LABELS, typeTabs: TYPE_TABS }), state.toolWarning && (_jsxs(Text, { color: 'yellow', children: ['\u26A0', " Tool resolution failed: ", state.toolWarning, ". Install will not be available."] })), _jsx(BrowseList, { cursorIndex: state.cursorIndex, expandedIndex: state.expandedIndex, hasOrg: !!state.org, items: state.filteredItems, lockfile: state.lockfile, registryAssets: state.allAssets, scrollOffset: state.scrollOffset, terminalWidth: terminalWidth, typeFilter: state.typeFilter, viewportHeight: Math.max(1, state.viewportHeight - guidanceRows), webUrl: webUrl }), browsing ? (_jsx(HelpBar, { canInstall: canInstall, expanded: state.expandedIndex !== null, hasOrg: !!state.org, inputMode: inputMode })) : (_jsx(InstallConfirmBar, { mode: mode }))] }));
250
+ // The viewport already leaves the help bar's extra rows. Another bar taller than one row (a failed
251
+ // install's hint and command, a long set result) takes its extra rows from the list instead.
252
+ const finished = mode.kind === 'install-result' || mode.kind === 'install-set-result' ? mode : null;
253
+ const barRows = finished
254
+ ? (finished.success ? 0 : errorGuidanceRows(finished)) + wrappedExtraRows(resultLine(finished), terminalWidth)
255
+ : browsing
256
+ ? helpRows
257
+ : 0;
258
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(FilterBar, { filterText: state.filterText, inputMode: inputMode, org: state.org, orgOnly: state.orgOnly, resultCount: state.filteredItems.length, sortIndicator: sortIndicator, terminalWidth: terminalWidth, totalCount: totalCount, typeFilter: state.typeFilter, typeTabLabels: TYPE_TAB_LABELS, typeTabs: TYPE_TABS }), state.toolWarning && (_jsxs(Text, { color: 'yellow', children: ['\u26A0', " Tool resolution failed: ", state.toolWarning, ". Install will not be available."] })), _jsx(BrowseList, { cursorIndex: state.cursorIndex, expandedIndex: state.expandedIndex, hasOrg: !!state.org, items: state.filteredItems, lockfile: state.lockfile, marked: state.marked, registryAssets: state.allAssets, scrollOffset: state.scrollOffset, terminalWidth: terminalWidth, typeFilter: state.typeFilter, viewportHeight: Math.max(1, state.viewportHeight + helpRows - barRows), webUrl: webUrl }), browsing ? _jsx(HelpBar, { ...helpBarPropsOf(state) }) : _jsx(InstallConfirmBar, { mode: mode })] }));
244
259
  }
245
260
  /**
246
261
  * JSON / non-TTY render branch.
@@ -381,4 +396,92 @@ async function executeInstallFromBrowse({ assetName, assetOrg, dispatch, isCance
381
396
  }
382
397
  });
383
398
  }
399
+ /**
400
+ * Install the marked rows through `atk install a b my-bundle`'s plan and install steps: resolved
401
+ * together into one plan, one install across tools with its rollback, a marked asset already in
402
+ * place left out (one in place only as a dependency made direct), and a bundle in place whole left
403
+ * out. As for one row, browse has no deprecation refusal, cross-scope notice or bundle report.
404
+ */
405
+ async function executeSetInstallFromBrowse({ dispatch, isCancelled, items, registry, resolved, tools, }) {
406
+ const { root: projectDir, scope } = resolved;
407
+ if ('error' in tools) {
408
+ throw tools.error;
409
+ }
410
+ await withLockfileLock(projectDir, async () => {
411
+ if (!isCancelled()) {
412
+ dispatch({ message: `Resolving dependencies for ${items.length} marked...`, type: 'INSTALL_PROGRESS' });
413
+ }
414
+ // Read under the lock: the lockfile may have moved on since browse loaded it.
415
+ const lockfile = await readLockfile(projectDir);
416
+ const targets = items.map((item) => item.kind === 'bundle'
417
+ ? { bundle: item.data, kind: 'bundle' }
418
+ : {
419
+ kind: 'asset',
420
+ name: item.data.name,
421
+ ...(item.data.org ? { org: item.data.org } : {}),
422
+ type: item.data.type,
423
+ });
424
+ const planned = planTargetsInstall(registry, targets, lockfile, tools, { force: false, projectDir });
425
+ await installPlannedTargets(planned, tools, {
426
+ onProgress: (message) => {
427
+ if (!isCancelled())
428
+ dispatch({ message, type: 'INSTALL_PROGRESS' });
429
+ },
430
+ onTool: (toolName) => {
431
+ if (!isCancelled())
432
+ dispatch({ message: `Installing for ${toolName}...`, type: 'INSTALL_PROGRESS' });
433
+ },
434
+ projectDir,
435
+ scope,
436
+ });
437
+ const newLockfile = await readLockfile(projectDir);
438
+ if (!isCancelled()) {
439
+ dispatch({
440
+ message: setInstallMessage(planned, {
441
+ tools: tools.map((t) => t.tool).join(', '),
442
+ where: scopeLabel(resolved),
443
+ }),
444
+ newLockfile,
445
+ success: true,
446
+ type: 'INSTALL_COMPLETE',
447
+ });
448
+ }
449
+ });
450
+ }
451
+ /** The help bar for the browsing view: what it can do now, and how many rows are marked. */
452
+ function helpBarPropsOf(state) {
453
+ return {
454
+ canInstall: state.filteredItems.length > 0 || state.marked.size > 0,
455
+ expanded: state.expandedIndex !== null,
456
+ hasOrg: !!state.org,
457
+ inputMode: state.mode.kind === 'browsing' ? state.mode.inputMode : 'navigate',
458
+ markedCount: state.marked.size,
459
+ };
460
+ }
461
+ /**
462
+ * What a set install did with each marked row, in one line: what it installed and for which tools,
463
+ * what was already in place, and what became a direct install; the scope once, after the first part.
464
+ */
465
+ function setInstallMessage({ assets, bundlesInPlace, toInstall }, { tools, where }) {
466
+ const assetsWith = (outcome) => assets.filter((a) => a.outcome === outcome).map((a) => formatOrgName(a.org, a.name));
467
+ const bundleLabel = ({ bundle }) => `bundle ${formatOrgName(bundle.org, bundle.name)} (${bundle.assetCount} assets)`;
468
+ const installed = [
469
+ ...assetsWith('installed'),
470
+ ...toInstall.flatMap((target) => (target.kind === 'bundle' ? [bundleLabel(target)] : [])),
471
+ ];
472
+ const inPlace = [...assetsWith('already-installed'), ...bundlesInPlace.map(bundleLabel)];
473
+ const direct = assetsWith('upgraded-to-direct');
474
+ const are = (names) => (names.length === 1 ? 'is' : 'are');
475
+ const parts = [
476
+ ...(installed.length > 0 ? [`Installed ${installed.join(', ')} for ${tools}`] : []),
477
+ ...(inPlace.length > 0 ? [`${inPlace.join(', ')} ${are(inPlace)} already installed`] : []),
478
+ ...(direct.length > 0
479
+ ? [`${direct.join(', ')} ${are(direct)} now ${direct.length === 1 ? 'a direct install' : 'direct installs'}`]
480
+ : []),
481
+ ];
482
+ const [first, ...rest] = parts;
483
+ if (!first)
484
+ return `Nothing to install in ${where}`;
485
+ return [`${first} in ${where}`, ...rest].join('; ');
486
+ }
384
487
  //# sourceMappingURL=browse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAML,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAsB,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKxE,kFAAkF;AAClF,MAAM,gBAAgB,GAAgB,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC;AAE/F,MAAM,wBAAwB,GAAoC;IAChE,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AAErE;;;;GAIG;AACH,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,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,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,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,iCAAiC;KAC/C,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,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,yDAAyD;KACvE,CAAC,CACH;IACH,IAAI,EAAE,CAAC;SACJ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,MAAM,CAAC;QACL,WAAW,EAAE,yEAAyE;KACvF,CAAC,CACH;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC1B,CAAC;SACE,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;CACnF,CAAC,CAAC;AAsBH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GACnE;IACN,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,GACV,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,GACV,CACH,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAqB;IACtG,MAAM,WAAW,GACf,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,OAA0B,CAAC,CAAC,CAAC,CAAE,OAA2B,CAAC,CAAC,CAAC,KAAK,CAAC;IACnG,MAAM,aAAa,GAAG,SAAS,IAAI,EAAE,CAAC;IAEtC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACnF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,MAAM,gBAAgB,GAAG,MAAM,CAAc,gBAAgB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAgB,SAAS,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC;IAE7C,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACxF,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,YAAY;IACZ,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,QAAQ,CAAC;oBACP,OAAO,EAAE,kEAAkE;oBAC3E,IAAI,EAAE,qBAAqB;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EAAE,MAAM,CAAC,CAAC;QAEX,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;gBAClC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAE5B,IAAI,WAA+B,CAAC;gBACpC,IAAI,CAAC;oBACH,gBAAgB,CAAC,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACvE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,gFAAgF;oBAChF,gBAAgB,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;oBACrC,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,QAAQ,CAAC;wBACP,GAAG,aAAa,CAAC,GAAG,CAAC;wBACrB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC;wBAC1B,IAAI,EAAE,YAAY;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjE,6BAA6B;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO;QAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAqB,CAAC;QACpD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACpD,MAAM,cAAc,GAAG,YAAY,CAAC,IAAsB,CAAC;QAE3D,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC1E,MAAM,wBAAwB,CAAC;oBAC7B,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,QAAQ;oBACR,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;oBAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ;oBAC/B,QAAQ;oBACR,KAAK,EAAE,gBAAgB,CAAC,OAAO;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC;wBACP,GAAG,CAAC,GAAG,YAAY,mBAAmB;4BACpC,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE;4BACtC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1D,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,kBAAkB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;QACF,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,wEAAwE;QACxE,iFAAiF;IACnF,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,iBAAiB;IACjB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9C,SAAS;IACT,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,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;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAEzD,sCAAsC;IACtC,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,QAAQ;QAC3B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;QACzB,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK;YAC1B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM;YAClD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAE1E,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtE,MAAM,aAAa,GAAG,SAAS,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;IAExF,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpG,MAAM,MAAM,GACV,YAAY,EAAE,IAAI,KAAK,OAAO;QAC5B,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/D,CAAC,CAAC,YAAY,EAAE,IAAI,KAAK,QAAQ;YAC/B,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;YAClE,CAAC,CAAC,IAAI,CAAC;IAEb,gGAAgG;IAChG,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnG,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,SAAS,IACR,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,EACvC,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,aAAa,EAAE,eAAe,EAC9B,QAAQ,EAAE,SAAS,GACnB,EACD,KAAK,CAAC,WAAW,IAAI,CACpB,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,aACjB,QAAQ,+BAA2B,KAAK,CAAC,WAAW,wCAChD,CACR,EACD,KAAC,UAAU,IACT,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EACnB,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,cAAc,EAAE,KAAK,CAAC,SAAS,EAC/B,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAChE,MAAM,EAAE,MAAM,GACd,EACD,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,OAAO,IACN,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,EACtC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EACnB,SAAS,EAAE,SAAS,GACpB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,CAClC,IACG,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAqB;IAC/F,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CACtB,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;QAE7C,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC9B,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,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE/D,kFAAkF;QAClF,MAAM,aAAa,GAAG,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEvD,2EAA2E;QAC3E,sEAAsE;QACtE,IAAI,MAAuB,CAAC;QAC5B,IAAI,OAAyB,CAAC;QAC9B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACxC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACzD,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,aAAa,CAAC;YACvB,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;QAED,8EAA8E;QAC9E,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;gBAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3F,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAClC,CAAC,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CACzD,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,OAAO,UAAU,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,OAAO;YAChB,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACzB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;QAC3B,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;QACnB,OAAO,EAAE,QAAQ;QACjB,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,EACtC,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,GAUN;IACC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAC7C,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,gBAAgB,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC5C,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,MAAqC,CAAC;QAC1C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACnB,QAAQ,CAAC;gBACP,OAAO,EACL,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,SAAS,KAAK,CAAC,CAAC,CAAC,8BAA8B,SAAS,KAAK;gBAC3G,IAAI,EAAE,kBAAkB;aACzB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GACR,QAAQ,KAAK,QAAQ;YACnB,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAO,CAAC;YAC7C,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE9E,MAAM,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE;YAC5C,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM;gBACjC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC9G,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;gBACtB,IAAI,CAAC,WAAW,EAAE;oBAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnB,QAAQ,CAAC;wBACP,OAAO,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,QAAQ,KAAK,CAAC,CAAC,CAAC,kBAAkB,QAAQ,KAAK;wBACzG,IAAI,EAAE,kBAAkB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,UAAU;YACV,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnC,QAAQ,CAAC;gBACP,OAAO,EACL,QAAQ,KAAK,QAAQ,IAAI,MAAM;oBAC7B,CAAC,CAAC,oBAAoB,IAAI,KAAK,MAAM,CAAC,UAAU,gBAAgB,SAAS,OAAO,KAAK,EAAE;oBACvF,CAAC,CAAC,aAAa,IAAI,QAAQ,SAAS,OAAO,KAAK,EAAE;gBACtD,WAAW;gBACX,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,kBAAkB;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqExB,eAAO,MAAM,WAAW,6DAA6D,CAAC;AAEtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;iBA8GlB,CAAC;AAEH,eAAO,MAAM,IAAI,uDAoBd,CAAC;AAqIJ,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;AAQF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EACxB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAC9F,EAAE,KAAK,+BAwDP"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8DxB,eAAO,MAAM,WAAW,6DAA6D,CAAC;AAEtF,eAAO,MAAM,OAAO;;;;;;;;;;;;;iBA8GlB,CAAC;AAEH,eAAO,MAAM,IAAI,uDAoBd,CAAC;AA6GJ,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;AAQF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EACxB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAC9F,EAAE,KAAK,+BAwDP"}
@@ -10,6 +10,7 @@ import { resolveBundleVersion } from '../lib/bundle-version.js';
10
10
  import { loadConfig } from '../lib/config.js';
11
11
  import { crossScopeNotice, findCrossScopeInstalls } from '../lib/cross-scope.js';
12
12
  import { errorGuidance, errorMessage } from '../lib/errors.js';
13
+ import { bundleMembers, installPlannedTargets, isBundleInPlace, planTargetsInstall } from '../lib/install-targets.js';
13
14
  import { isInstalledForTool } from '../lib/installed-for-tool.js';
14
15
  import { InstallerError } from '../lib/installer.js';
15
16
  import { addAssetToLockfile, findInstalledAsset, identityKey, readLockfile, upgradeToDirectInstall, withLockfileErrorHandling, writeLockfile, } from '../lib/lockfile.js';
@@ -18,8 +19,8 @@ import { addNotice } from '../lib/notices.js';
18
19
  import { formatOrgName, isBareOrgScope, parseBundleSpec, resolveActiveOrg } from '../lib/org.js';
19
20
  import { renderJson, useNonInteractive } from '../lib/output.js';
20
21
  import { argument, option } from '../lib/pastel/index.js';
21
- import { fetchRegistry, findAsset, findAssetsByName, findBundle, findBundleMember, getAssetsByOrg, isDeprecated, isLatestAlias, } from '../lib/registry.js';
22
- import { resolveBundleInstallPlan, resolveInstallPlan, resolveMultipleInstallPlans, ResolverError, resolveTargetsInstallPlan, } from '../lib/resolver.js';
22
+ import { fetchRegistry, findAsset, findAssetsByName, findBundle, getAssetsByOrg, isDeprecated, isLatestAlias, } from '../lib/registry.js';
23
+ import { resolveBundleInstallPlan, resolveInstallPlan, resolveMultipleInstallPlans, ResolverError, } from '../lib/resolver.js';
23
24
  import { scopeLabel } from '../lib/scope.js';
24
25
  import { resolvePlacingTools } from '../lib/tool-resolver.js';
25
26
  import { parseNameVersion } from '../lib/version.js';
@@ -150,20 +151,6 @@ async function bundleAtRequestedVersion(entry, requested, progress) {
150
151
  }
151
152
  return resolution.bundle;
152
153
  }
153
- /**
154
- * The bundle's members that one of `tools` places, as the registry has them. A member none of them
155
- * places is left out, since this run can't adopt it, and so is a ref the registry can't find, which
156
- * the install reports.
157
- */
158
- function bundleMembers(registry, bundle, tools) {
159
- return (bundle.assets ?? []).flatMap((ref) => {
160
- const found = findBundleMember(registry, bundle, ref);
161
- if (!found || !tools.some((t) => placesAsset(t.adapter, found.asset.type, found.versionData.tools)))
162
- return [];
163
- const { name, org, type } = found.asset;
164
- return [{ name, ...(org ? { org } : {}), type }];
165
- });
166
- }
167
154
  /**
168
155
  * What a bundle install says about its members outside the bundle (`kept`) and the members it
169
156
  * `adopted`. A member with no origin can be adopted; another bundle's member stays with that bundle.
@@ -593,10 +580,6 @@ function InstallAssets({ adopt, all, dryRun, force, json, org: cliOrg, pin, proj
593
580
  });
594
581
  }
595
582
  // A name every targeted tool already has in place is left out of the plan, as it is for one name.
596
- const assets = [];
597
- const bundles = [];
598
- const upgrades = [];
599
- const toInstall = [];
600
583
  const adoptCommandFor = ({ bundle, version }) => installCommandFor(formatOrgName(bundle.org, bundle.name) + (version ? `@${version}` : ''), {
601
584
  adopt: true,
602
585
  force: false,
@@ -605,83 +588,22 @@ function InstallAssets({ adopt, all, dryRun, force, json, org: cliOrg, pin, proj
605
588
  tool,
606
589
  user,
607
590
  });
608
- for (const request of targets) {
609
- if (request.kind === 'bundle') {
610
- const { bundle, version } = request;
611
- const members = bundleMembers(registry, bundle, tools);
612
- const requiredBundleVersion = version && !isLatestAlias(version) ? bundle.version : undefined;
613
- if (force ||
614
- !isBundleInPlace(registry, bundle, currentLockfile, { members, projectDir, requiredBundleVersion, tools })) {
615
- toInstall.push(request);
616
- continue;
617
- }
618
- bundles.push({
619
- name: bundle.name,
620
- ...(bundle.org ? { org: bundle.org } : {}),
621
- outcome: 'already-installed',
622
- version: bundle.version,
623
- ...bundleReport(membersOutsideBundle(currentLockfile, members, bundle), [], {
624
- adoptCommand: adoptCommandFor(request),
625
- bundle,
626
- }),
627
- });
628
- continue;
629
- }
630
- const match = findAsset(registry, request.name, request.type, request.version, request.org);
631
- const existing = match
632
- ? findInstalledAsset(currentLockfile, request.name, match.asset.type, match.asset.org)
633
- : undefined;
634
- const supportingTools = existing && match ? tools.filter((t) => placesAsset(t.adapter, existing.type, match.versionData.tools)) : [];
635
- const inPlace = !force &&
636
- existing !== undefined &&
637
- supportingTools.length > 0 &&
638
- supportingTools.every((t) => isInstalledForTool(existing, t.adapter, projectDir)) &&
639
- (!request.version || request.version === existing.version);
640
- if (!inPlace) {
641
- toInstall.push(request);
642
- continue;
643
- }
644
- if (assets.some((a) => identityKey(a) === identityKey(existing)))
645
- continue;
646
- const dependency = (existing.installReason ?? 'direct') === 'dependency';
647
- if (dependency)
648
- upgrades.push(existing);
649
- assets.push({
650
- name: existing.name,
651
- ...(existing.org ? { org: existing.org } : {}),
652
- outcome: dependency ? 'upgraded-to-direct' : 'already-installed',
653
- type: existing.type,
654
- version: existing.version,
655
- });
656
- }
657
591
  progress('Resolving dependencies...');
658
- const plan = resolveTargetsInstallPlan(registry, toInstall.map((request) => request.kind === 'bundle'
659
- ? { bundle: request.bundle, kind: 'bundle' }
660
- : {
661
- ...(request.fromOrg ? { fromOrg: true } : {}),
662
- kind: 'asset',
663
- name: request.name,
664
- ...(request.org ? { org: request.org } : {}),
665
- ...(request.type ? { type: request.type } : {}),
666
- ...(request.version ? { version: request.version } : {}),
667
- }));
668
- // The named and the org's assets the plan installs, in plan order.
669
- const requested = new Set(toInstall.flatMap((request) => {
670
- if (request.kind === 'bundle')
671
- return [];
672
- const match = findAsset(registry, request.name, request.type, request.version, request.org);
673
- return match ? [identityKey(match.asset)] : [];
674
- }));
675
- const installed = plan.entries
676
- .filter((entry) => entry.reason === 'direct' && requested.has(identityKey(entry.asset)))
677
- .map((entry) => ({
678
- name: entry.asset.name,
679
- ...(entry.asset.org ? { org: entry.asset.org } : {}),
680
- outcome: 'installed',
681
- type: entry.asset.type,
682
- version: entry.version,
683
- }));
684
- const report = [...installed, ...assets];
592
+ const targetsPlan = planTargetsInstall(registry, targets, currentLockfile, tools, { force, projectDir });
593
+ const { assets: report, plan, toInstall } = targetsPlan;
594
+ const bundles = targetsPlan.bundlesInPlace.map((request) => {
595
+ const { bundle } = request;
596
+ return {
597
+ name: bundle.name,
598
+ ...(bundle.org ? { org: bundle.org } : {}),
599
+ outcome: 'already-installed',
600
+ version: bundle.version,
601
+ ...bundleReport(membersOutsideBundle(currentLockfile, bundleMembers(registry, bundle, tools), bundle), [], {
602
+ adoptCommand: adoptCommandFor(request),
603
+ bundle,
604
+ }),
605
+ };
606
+ });
685
607
  const crossScope = (resolvedPlan, installedAt) => crossScopeOf(resolvedPlan, { installedAt, json: effectiveJson, scope: installScope, tools: toolNames });
686
608
  // Each bundle in the plan, in the order named, then the ones left out; and the orgs.
687
609
  const targetsField = (lockfile, planned) => {
@@ -724,23 +646,14 @@ function InstallAssets({ adopt, all, dryRun, force, json, org: cliOrg, pin, proj
724
646
  };
725
647
  }
726
648
  return await withLockfileErrorHandling(projectDir, async () => {
727
- const toolResults = plan.entries.length > 0
728
- ? await executeInstallPlanForTools(plan, tools, {
729
- force,
730
- onProgress: progress,
731
- onTool: (toolName) => progress(`Installing for ${toolName}...`),
732
- pin,
733
- projectDir,
734
- scope: installScope,
735
- })
736
- : [];
737
- // After the install, so a failed one leaves even the install reasons as they were.
738
- if (upgrades.length > 0) {
739
- let lockfile = await readLockfile(projectDir);
740
- for (const { name, org, type } of upgrades)
741
- lockfile = upgradeToDirectInstall(lockfile, name, type, org);
742
- await writeLockfile(projectDir, lockfile);
743
- }
649
+ const toolResults = await installPlannedTargets(targetsPlan, tools, {
650
+ force,
651
+ onProgress: progress,
652
+ onTool: (toolName) => progress(`Installing for ${toolName}...`),
653
+ pin,
654
+ projectDir,
655
+ scope: installScope,
656
+ });
744
657
  if (plan.entries.length === 0) {
745
658
  return { assets: report, ...targetsField(currentLockfile, false), outcome: 'already-installed' };
746
659
  }
@@ -1042,36 +955,6 @@ function InstallOrg({ cliOrg, dryRun, force, json, orgName, pin, projectRoot, sk
1042
955
  }
1043
956
  return null;
1044
957
  }
1045
- /**
1046
- * Whether every member of the bundle is in place for every tool that takes it (with
1047
- * `requiredBundleVersion`, recorded as this bundle at that version). False when no tool takes any
1048
- * member, so the installer says why.
1049
- */
1050
- function isBundleInPlace(registry, bundle, lockfile, { members, projectDir, requiredBundleVersion, tools, }) {
1051
- const bundleAssets = bundle.assets ?? [];
1052
- return tools.every(({ adapter: toolAdapter }) => members.length > 0 &&
1053
- bundleAssets.every((ref) => {
1054
- const found = findBundleMember(registry, bundle, ref);
1055
- if (!found)
1056
- return false;
1057
- // A tool that doesn't take this member (its type, or a hook for other tools) has
1058
- // nothing to check.
1059
- if (!placesAsset(toolAdapter, found.asset.type, found.versionData.tools))
1060
- return true;
1061
- const installed = findInstalledAsset(lockfile, ref.name, ref.type, found.asset.org);
1062
- if (!installed)
1063
- return false;
1064
- if (requiredBundleVersion && !isFromBundleVersion(installed, bundle, requiredBundleVersion)) {
1065
- return false;
1066
- }
1067
- return isInstalledForTool(installed, toolAdapter, projectDir);
1068
- }));
1069
- }
1070
- /** Whether a lockfile asset was installed as part of this bundle (name, org) at this version. */
1071
- function isFromBundleVersion(installed, bundle, version) {
1072
- const origin = installed.bundleOrigin;
1073
- return origin?.name === bundle.name && origin.org === bundle.org && origin.version === version;
1074
- }
1075
958
  /** A member as a report names it: its spec and type. */
1076
959
  function memberLabel({ name, org, type }) {
1077
960
  return `${formatOrgName(org, name)} (${type})`;