@detergent-software/atk 8.7.0-dev.2 → 8.7.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/build/commands/browse.d.ts.map +1 -1
  3. package/build/commands/browse.js +21 -13
  4. package/build/commands/browse.js.map +1 -1
  5. package/build/commands/freeze.d.ts.map +1 -1
  6. package/build/commands/freeze.js +11 -6
  7. package/build/commands/freeze.js.map +1 -1
  8. package/build/commands/install.d.ts.map +1 -1
  9. package/build/commands/install.js +25 -17
  10. package/build/commands/install.js.map +1 -1
  11. package/build/commands/list.d.ts +2 -1
  12. package/build/commands/list.d.ts.map +1 -1
  13. package/build/commands/list.js +82 -66
  14. package/build/commands/list.js.map +1 -1
  15. package/build/commands/outdated.d.ts +2 -1
  16. package/build/commands/outdated.d.ts.map +1 -1
  17. package/build/commands/outdated.js +67 -24
  18. package/build/commands/outdated.js.map +1 -1
  19. package/build/commands/pin.d.ts.map +1 -1
  20. package/build/commands/pin.js +12 -7
  21. package/build/commands/pin.js.map +1 -1
  22. package/build/commands/prune.d.ts.map +1 -1
  23. package/build/commands/prune.js +17 -10
  24. package/build/commands/prune.js.map +1 -1
  25. package/build/commands/sync.d.ts.map +1 -1
  26. package/build/commands/sync.js +22 -13
  27. package/build/commands/sync.js.map +1 -1
  28. package/build/commands/thaw.d.ts.map +1 -1
  29. package/build/commands/thaw.js +11 -6
  30. package/build/commands/thaw.js.map +1 -1
  31. package/build/commands/uninstall.d.ts.map +1 -1
  32. package/build/commands/uninstall.js +18 -13
  33. package/build/commands/uninstall.js.map +1 -1
  34. package/build/commands/unpin.d.ts.map +1 -1
  35. package/build/commands/unpin.js +11 -6
  36. package/build/commands/unpin.js.map +1 -1
  37. package/build/commands/update.d.ts.map +1 -1
  38. package/build/commands/update.js +11 -11
  39. package/build/commands/update.js.map +1 -1
  40. package/build/components/DryRunBanner.d.ts +3 -1
  41. package/build/components/DryRunBanner.d.ts.map +1 -1
  42. package/build/components/DryRunBanner.js +2 -2
  43. package/build/components/DryRunBanner.js.map +1 -1
  44. package/build/components/InstallConfirmBar.d.ts.map +1 -1
  45. package/build/components/InstallConfirmBar.js +1 -3
  46. package/build/components/InstallConfirmBar.js.map +1 -1
  47. package/build/components/InstallSummary.d.ts +3 -1
  48. package/build/components/InstallSummary.d.ts.map +1 -1
  49. package/build/components/InstallSummary.js +2 -2
  50. package/build/components/InstallSummary.js.map +1 -1
  51. package/build/components/ListActionBar.d.ts +4 -2
  52. package/build/components/ListActionBar.d.ts.map +1 -1
  53. package/build/components/ListActionBar.js +5 -4
  54. package/build/components/ListActionBar.js.map +1 -1
  55. package/build/components/ListBrowseList.d.ts +7 -6
  56. package/build/components/ListBrowseList.d.ts.map +1 -1
  57. package/build/components/ListBrowseList.js +10 -6
  58. package/build/components/ListBrowseList.js.map +1 -1
  59. package/build/components/SyncAllInSync.d.ts +3 -1
  60. package/build/components/SyncAllInSync.d.ts.map +1 -1
  61. package/build/components/SyncAllInSync.js +2 -2
  62. package/build/components/SyncAllInSync.js.map +1 -1
  63. package/build/components/SyncDriftedList.d.ts +3 -1
  64. package/build/components/SyncDriftedList.d.ts.map +1 -1
  65. package/build/components/SyncDriftedList.js +3 -3
  66. package/build/components/SyncDriftedList.js.map +1 -1
  67. package/build/components/SyncNoAssets.d.ts +3 -1
  68. package/build/components/SyncNoAssets.d.ts.map +1 -1
  69. package/build/components/SyncNoAssets.js +2 -2
  70. package/build/components/SyncNoAssets.js.map +1 -1
  71. package/build/hooks/useListActions.d.ts +19 -6
  72. package/build/hooks/useListActions.d.ts.map +1 -1
  73. package/build/hooks/useListActions.js +36 -33
  74. package/build/hooks/useListActions.js.map +1 -1
  75. package/build/hooks/useListState.d.ts +29 -12
  76. package/build/hooks/useListState.d.ts.map +1 -1
  77. package/build/hooks/useListState.js +22 -6
  78. package/build/hooks/useListState.js.map +1 -1
  79. package/build/hooks/usePruneState.d.ts +6 -0
  80. package/build/hooks/usePruneState.d.ts.map +1 -1
  81. package/build/hooks/usePruneState.js +6 -1
  82. package/build/hooks/usePruneState.js.map +1 -1
  83. package/build/hooks/useResolvedScope.d.ts +21 -0
  84. package/build/hooks/useResolvedScope.d.ts.map +1 -0
  85. package/build/hooks/useResolvedScope.js +15 -0
  86. package/build/hooks/useResolvedScope.js.map +1 -0
  87. package/build/hooks/useUninstallState.d.ts +6 -0
  88. package/build/hooks/useUninstallState.d.ts.map +1 -1
  89. package/build/hooks/useUninstallState.js +6 -1
  90. package/build/hooks/useUninstallState.js.map +1 -1
  91. package/build/lib/adapter.d.ts +6 -1
  92. package/build/lib/adapter.d.ts.map +1 -1
  93. package/build/lib/adapter.js +57 -3
  94. package/build/lib/adapter.js.map +1 -1
  95. package/build/lib/config-lock.d.ts +3 -1
  96. package/build/lib/config-lock.d.ts.map +1 -1
  97. package/build/lib/config-lock.js +11 -5
  98. package/build/lib/config-lock.js.map +1 -1
  99. package/build/lib/diagnostics.d.ts +2 -2
  100. package/build/lib/diagnostics.d.ts.map +1 -1
  101. package/build/lib/diagnostics.js +112 -5
  102. package/build/lib/diagnostics.js.map +1 -1
  103. package/build/lib/installer.js +6 -5
  104. package/build/lib/installer.js.map +1 -1
  105. package/build/lib/lockfile.d.ts +1 -1
  106. package/build/lib/lockfile.d.ts.map +1 -1
  107. package/build/lib/lockfile.js +2 -2
  108. package/build/lib/lockfile.js.map +1 -1
  109. package/build/lib/read-scopes.d.ts +32 -0
  110. package/build/lib/read-scopes.d.ts.map +1 -0
  111. package/build/lib/read-scopes.js +55 -0
  112. package/build/lib/read-scopes.js.map +1 -0
  113. package/build/lib/schemas/adapter.d.ts +14 -0
  114. package/build/lib/schemas/adapter.d.ts.map +1 -1
  115. package/build/lib/schemas/adapter.js +17 -0
  116. package/build/lib/schemas/adapter.js.map +1 -1
  117. package/build/lib/scope.d.ts +11 -0
  118. package/build/lib/scope.d.ts.map +1 -1
  119. package/build/lib/scope.js +12 -0
  120. package/build/lib/scope.js.map +1 -1
  121. package/build/lib/tool-resolver.js +2 -2
  122. package/build/lib/tool-resolver.js.map +1 -1
  123. package/build/lib/uninstaller.d.ts.map +1 -1
  124. package/build/lib/uninstaller.js +24 -6
  125. package/build/lib/uninstaller.js.map +1 -1
  126. package/build/lib/updater.d.ts +3 -2
  127. package/build/lib/updater.d.ts.map +1 -1
  128. package/build/lib/updater.js +8 -6
  129. package/build/lib/updater.js.map +1 -1
  130. package/package.json +1 -1
  131. package/tool-adapters/claude-code.json +5 -0
  132. package/tool-adapters/codex-cli.json +19 -0
  133. package/tool-adapters/copilot-cli.json +28 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InstallSummary.d.ts","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,aAAa,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,kEAAkE;IAClE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAY,EACZ,KAAK,EACL,QAAa,GACd,EAAE,mBAAmB,2CAmErB"}
1
+ {"version":3,"file":"InstallSummary.d.ts","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,aAAa,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,kEAAkE;IAClE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,gDAAgD;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAY,EACZ,KAAK,EACL,QAAa,EACb,KAAK,GACN,EAAE,mBAAmB,2CAoErB"}
@@ -6,9 +6,9 @@ import { formatOrgName } from '../lib/org.js';
6
6
  * Post-install output showing what was placed where,
7
7
  * dependency tree, and file locations, then any warnings and skipped hooks.
8
8
  */
9
- export default function InstallSummary({ bundleName, bundleVersion, results, skipped = [], tools, warnings = [], }) {
9
+ export default function InstallSummary({ bundleName, bundleVersion, results, skipped = [], tools, warnings = [], where, }) {
10
10
  const directInstalls = results.filter((r) => r.installReason === 'direct');
11
11
  const deps = results.filter((r) => r.installReason === 'dependency');
12
- return (_jsxs(Box, { flexDirection: 'column', children: [bundleName && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'magenta', children: ["Bundle: ", bundleName, " v", bundleVersion] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: 'green', children: ["\u2713 Installed ", results.length, " asset", results.length !== 1 ? 's' : '', " for ", tools.join(', ')] }), _jsx(Text, { children: " " }), deps.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Dependencies:" }), deps.map((r) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: formatOrgName(r.org, r.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }, identityKey(r)))), _jsx(Text, { children: " " })] })), directInstalls.map((r) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(r.org, r.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }), r.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 ", f.destination] }, f.destination))), r.configEntriesCreated.map((c) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 config: ", c.key] }, c.key)))] }, identityKey(r)))), warnings.map((w) => (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", w.message] }, `warning:${identityKey(w)}`))), skipped.map((s) => (_jsxs(Text, { dimColor: true, children: ["\u2013 Skipped ", formatOrgName(s.org, s.name), " (", s.type, "): unsupported tool, it is for ", s.tools.join(', '), " only"] }, `skipped:${identityKey(s)}`)))] }));
12
+ return (_jsxs(Box, { flexDirection: 'column', children: [bundleName && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'magenta', children: ["Bundle: ", bundleName, " v", bundleVersion] }), _jsx(Text, { children: " " })] })), _jsxs(Text, { color: 'green', children: ["\u2713 Installed ", results.length, " asset", results.length !== 1 ? 's' : '', " for ", tools.join(', '), where ? ` in ${where}` : ''] }), _jsx(Text, { children: " " }), deps.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Dependencies:" }), deps.map((r) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: formatOrgName(r.org, r.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }, identityKey(r)))), _jsx(Text, { children: " " })] })), directInstalls.map((r) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { bold: true, children: formatOrgName(r.org, r.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", r.type, ") v", r.version] })] }), r.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 ", f.destination] }, f.destination))), r.configEntriesCreated.map((c) => (_jsxs(Text, { dimColor: true, children: [' ', "\u2192 config: ", c.key] }, c.key)))] }, identityKey(r)))), warnings.map((w) => (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ", w.message] }, `warning:${identityKey(w)}`))), skipped.map((s) => (_jsxs(Text, { dimColor: true, children: ["\u2013 Skipped ", formatOrgName(s.org, s.name), " (", s.type, "): unsupported tool, it is for ", s.tools.join(', '), " only"] }, `skipped:${identityKey(s)}`)))] }));
13
13
  }
14
14
  //# sourceMappingURL=InstallSummary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstallSummary.js","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstallSummary.js","sourceRoot":"","sources":["../../src/components/InstallSummary.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import type { ActionResultMode, ConfirmingActionMode, ExecutingActionMode } from '../hooks/useListState.js';
2
2
  type ListActionBarMode = ActionResultMode | ConfirmingActionMode | ExecutingActionMode;
3
3
  interface ListActionBarProps {
4
- /** Whether the current asset is frozen (from project config) */
4
+ /** Whether the current asset is frozen (from its scope's config) */
5
5
  isFrozen?: boolean;
6
6
  /** Current action-related mode */
7
7
  mode: ListActionBarMode;
8
+ /** Name the asset's scope in the confirmation: the list shows more than one scope */
9
+ showScope?: boolean;
8
10
  }
9
- export default function ListActionBar({ isFrozen, mode }: ListActionBarProps): import("react/jsx-runtime").JSX.Element;
11
+ export default function ListActionBar({ isFrozen, mode, showScope }: ListActionBarProps): import("react/jsx-runtime").JSX.Element;
10
12
  export {};
11
13
  //# sourceMappingURL=ListActionBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListActionBar.d.ts","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK5G,KAAK,iBAAiB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEvF,UAAU,kBAAkB;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,kBAAkB,2CA8B3E"}
1
+ {"version":3,"file":"ListActionBar.d.ts","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK5G,KAAK,iBAAiB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEvF,UAAU,kBAAkB;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAiB,EAAE,EAAE,kBAAkB,2CA8B9F"}
@@ -2,7 +2,7 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
3
  import { asSentence } from '../lib/errors.js';
4
4
  import Spinner from './Spinner.js';
5
- export default function ListActionBar({ isFrozen, mode }) {
5
+ export default function ListActionBar({ isFrozen, mode, showScope = false }) {
6
6
  switch (mode.kind) {
7
7
  case 'action-result':
8
8
  if (mode.success) {
@@ -10,13 +10,14 @@ export default function ListActionBar({ isFrozen, mode }) {
10
10
  }
11
11
  return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { color: 'red', children: ["\u2715 ", asSentence(mode.message), " Press any key to continue."] }) }));
12
12
  case 'confirming-action':
13
- return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsx(Text, { color: 'yellow', children: getConfirmationText(mode, isFrozen) }) }));
13
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsx(Text, { color: 'yellow', children: getConfirmationText(mode, isFrozen, showScope) }) }));
14
14
  case 'executing-action':
15
15
  return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsx(Spinner, { message: mode.message }) }));
16
16
  }
17
17
  }
18
- function getConfirmationText(mode, isFrozen) {
19
- const { name } = mode.asset;
18
+ function getConfirmationText(mode, isFrozen, showScope) {
19
+ // With both scopes shown, one asset can be two rows: say which copy the action changes
20
+ const name = showScope ? `${mode.asset.name} (${mode.asset.scope})` : mode.asset.name;
20
21
  switch (mode.actionKind) {
21
22
  case 'freeze-toggle':
22
23
  return isFrozen ? `Thaw ${name}? [Y/N]` : `Freeze ${name}? [Y/N]`;
@@ -1 +1 @@
1
- {"version":3,"file":"ListActionBar.js","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIhC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,cAAc,CAAC;AAWnC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAsB;IAC1E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,GAC9E,CACP,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,GAC5E,CACP,CAAC;QAEJ,KAAK,mBAAmB;YACtB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAQ,GAC7D,CACP,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,OAAO,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,GAC9B,CACP,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA0B,EAAE,QAAkB;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAE5B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;QAClF,KAAK,WAAW;YACd,OAAO,aAAa,IAAI,SAAS,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,UAAU,IAAI,SAAS,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ListActionBar.js","sourceRoot":"","sources":["../../src/components/ListActionBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIhC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,OAAO,MAAM,cAAc,CAAC;AAanC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,KAAK,EAAsB;IAC7F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe;YAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,wBAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,GAC9E,CACP,CAAC;YACJ,CAAC;YACD,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,GAC5E,CACP,CAAC;QAEJ,KAAK,mBAAmB;YACtB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAQ,GACxE,CACP,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,KAAC,OAAO,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAI,GAC9B,CACP,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA0B,EAAE,QAA6B,EAAE,SAAkB;IACxG,uFAAuF;IACvF,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAEtF,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC;QACpE,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;QAClF,KAAK,WAAW;YACd,OAAO,aAAa,IAAI,SAAS,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,UAAU,IAAI,SAAS,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1,18 +1,19 @@
1
- import type { ListTypeFilter } from '../hooks/useListState.js';
2
- import type { InstalledAsset } from '../lib/schemas/lockfile.js';
1
+ import { type ListRow, type ListTypeFilter } from '../hooks/useListState.js';
3
2
  interface ListBrowseListProps {
4
3
  /** Index of the cursor in the items array */
5
4
  cursorIndex: number;
6
5
  /** Index of expanded item, or null */
7
6
  expandedIndex: null | number;
8
- /** Set of composite keys (type:org:name) for frozen assets */
7
+ /** Row keys (`listRowKey`) of frozen assets */
9
8
  frozenSet?: Set<string>;
10
9
  /** Filtered and sorted items to display */
11
- items: InstalledAsset[];
12
- /** Map of asset key (type/name) to latest available version */
10
+ items: ListRow[];
11
+ /** Map of row key (`listRowKey`) to latest available version */
13
12
  outdatedMap: Map<string, string>;
14
13
  /** First visible item index */
15
14
  scrollOffset: number;
15
+ /** Show the Scope column: the list holds more than one scope's rows */
16
+ showScope?: boolean;
16
17
  /** Terminal width for responsive layout */
17
18
  terminalWidth: number;
18
19
  /** Active type filter tab */
@@ -22,6 +23,6 @@ interface ListBrowseListProps {
22
23
  /** ATK web app URL for the expanded asset's page, or null */
23
24
  webUrl: null | string;
24
25
  }
25
- export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, scrollOffset, terminalWidth, typeFilter, viewportHeight, webUrl, }: ListBrowseListProps): import("react/jsx-runtime").JSX.Element;
26
+ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, scrollOffset, showScope, terminalWidth, typeFilter, viewportHeight, webUrl, }: ListBrowseListProps): import("react/jsx-runtime").JSX.Element;
26
27
  export {};
27
28
  //# sourceMappingURL=ListBrowseList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListBrowseList.d.ts","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAajE,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2CAA2C;IAC3C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,GACP,EAAE,mBAAmB,2CAyJrB"}
1
+ {"version":3,"file":"ListBrowseList.d.ts","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAczF,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,aAAa,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,2CAA2C;IAC3C,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gEAAgE;IAChE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,iDAAiD;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAiB,EACjB,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,GACP,EAAE,mBAAmB,2CAwKrB"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
+ import { listRowKey } from '../hooks/useListState.js';
3
4
  import { getBreakpoint } from '../lib/breakpoints.js';
4
- import { identityKey } from '../lib/lockfile.js';
5
5
  import { formatOrgName } from '../lib/org.js';
6
6
  import ListExpandedRow, { computeExpandedLines } from './ListExpandedRow.js';
7
7
  const COLUMN_WIDTHS = {
@@ -9,7 +9,9 @@ const COLUMN_WIDTHS = {
9
9
  narrow: { cursor: 3, name: 30, status: 8, version: 18 },
10
10
  wide: { cursor: 3, name: 40, org: 20, status: 8, type: 18, version: 22 },
11
11
  };
12
- export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, scrollOffset, terminalWidth, typeFilter, viewportHeight, webUrl, }) {
12
+ /** Width of the Scope column, wide enough for "project". */
13
+ const SCOPE_WIDTH = 9;
14
+ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet, items, outdatedMap, scrollOffset, showScope = false, terminalWidth, typeFilter, viewportHeight, webUrl, }) {
13
15
  if (items.length === 0) {
14
16
  const label = typeFilter === 'all' ? 'installed assets' : `installed ${typeFilter} assets`;
15
17
  return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: _jsx(Box, { paddingY: 1, children: _jsxs(Text, { dimColor: true, children: ["No ", label, " match your filters."] }) }) }));
@@ -20,9 +22,11 @@ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet,
20
22
  const cols = COLUMN_WIDTHS[bp];
21
23
  const orgWidth = 'org' in cols ? cols.org : 0;
22
24
  const typeWidth = 'type' in cols ? cols.type : 0;
25
+ // The Scope column takes its width from Name, so a row is as wide as with one scope
26
+ const nameWidth = cols.name - (showScope ? SCOPE_WIDTH : 0);
23
27
  const aboveCount = scrollOffset;
24
28
  // Helper to check if an asset is frozen via the frozenSet
25
- const isItemFrozen = (item) => frozenSet?.has(`${item.type}:${item.org ?? ''}:${item.name}`) ?? false;
29
+ const isItemFrozen = (item) => frozenSet?.has(listRowKey(item)) ?? false;
26
30
  // Compute expanded row line height for the expanded item (if any)
27
31
  const expandedAsset = expandedIndex !== null ? items[expandedIndex] : null;
28
32
  const visibleItems = [];
@@ -46,13 +50,13 @@ export default function ListBrowseList({ cursorIndex, expandedIndex, frozenSet,
46
50
  }
47
51
  const lastVisibleIndex = visibleItems.length > 0 ? visibleItems[visibleItems.length - 1].index : scrollOffset;
48
52
  const belowCount = items.length - lastVisibleIndex - 1;
49
- return (_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { children: " " }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: cols.name, children: _jsx(Text, { bold: true, dimColor: true, children: "Name" }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Org" }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Type" }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: _jsx(Text, { bold: true, dimColor: true, children: "Version" }) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsx(Text, { bold: true, dimColor: true, children: "Status" }) })] }), aboveCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25B2 ", aboveCount, " more above"] }), visibleItems.map(({ index, item }) => {
53
+ return (_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { children: " " }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: nameWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Name" }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Org" }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { bold: true, dimColor: true, children: "Type" }) })), showScope && (_jsx(Box, { flexShrink: 0, width: SCOPE_WIDTH, children: _jsx(Text, { bold: true, dimColor: true, children: "Scope" }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: _jsx(Text, { bold: true, dimColor: true, children: "Version" }) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsx(Text, { bold: true, dimColor: true, children: "Status" }) })] }), aboveCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25B2 ", aboveCount, " more above"] }), visibleItems.map(({ index, item }) => {
50
54
  const isCursor = index === cursorIndex;
51
55
  const isExpanded = index === expandedIndex;
52
- const assetKey = identityKey(item);
56
+ const assetKey = listRowKey(item);
53
57
  const latestVersion = outdatedMap.get(assetKey);
54
58
  const isOutdated = latestVersion !== undefined;
55
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { color: 'cyan', children: isCursor ? ' ▸' : ' ' }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: cols.name, children: _jsx(Text, { bold: isCursor, color: 'cyan', wrap: 'truncate', children: showOrg ? item.name : formatOrgName(item.org, item.name) }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { dimColor: true, wrap: 'truncate', children: item.org ? `@${item.org}` : '' }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { wrap: 'truncate', children: item.type }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: isOutdated ? (_jsxs(Text, { wrap: 'truncate', children: [item.version, ' ', _jsxs(Text, { color: 'yellow', children: ['→', " ", latestVersion] })] })) : (_jsx(Text, { wrap: 'truncate', children: item.version })) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsxs(Text, { wrap: 'truncate', children: [item.pinnedVersion ? '📌' : '', isItemFrozen(item) ? '🧊' : ''] }) })] }), isExpanded && (_jsx(ListExpandedRow, { asset: item, frozen: isItemFrozen(item), latestVersion: latestVersion, terminalWidth: terminalWidth, webUrl: webUrl }))] }, assetKey));
59
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: cols.cursor, children: _jsx(Text, { color: 'cyan', children: isCursor ? ' ▸' : ' ' }) }), _jsx(Box, { flexShrink: 0, marginRight: 1, width: nameWidth, children: _jsx(Text, { bold: isCursor, color: 'cyan', wrap: 'truncate', children: showOrg ? item.name : formatOrgName(item.org, item.name) }) }), showOrg && (_jsx(Box, { flexShrink: 0, width: orgWidth, children: _jsx(Text, { dimColor: true, wrap: 'truncate', children: item.org ? `@${item.org}` : '' }) })), showType && (_jsx(Box, { flexShrink: 0, width: typeWidth, children: _jsx(Text, { wrap: 'truncate', children: item.type }) })), showScope && (_jsx(Box, { flexShrink: 0, width: SCOPE_WIDTH, children: _jsx(Text, { dimColor: item.scope === 'project', wrap: 'truncate', children: item.scope }) })), _jsx(Box, { flexShrink: 0, width: cols.version, children: isOutdated ? (_jsxs(Text, { wrap: 'truncate', children: [item.version, ' ', _jsxs(Text, { color: 'yellow', children: ['→', " ", latestVersion] })] })) : (_jsx(Text, { wrap: 'truncate', children: item.version })) }), _jsx(Box, { flexShrink: 0, width: cols.status, children: _jsxs(Text, { wrap: 'truncate', children: [item.pinnedVersion ? '📌' : '', isItemFrozen(item) ? '🧊' : ''] }) })] }), isExpanded && (_jsx(ListExpandedRow, { asset: item, frozen: isItemFrozen(item), latestVersion: latestVersion, terminalWidth: terminalWidth, webUrl: webUrl }))] }, assetKey));
56
60
  }), belowCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25BC ", belowCount, " more below"] })] }));
57
61
  }
58
62
  //# sourceMappingURL=ListBrowseList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListBrowseList.js","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListBrowseList.js","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"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"}
@@ -10,10 +10,12 @@ interface SyncAllInSyncProps {
10
10
  skipped: number;
11
11
  /** The tool name (e.g., "claude-code") */
12
12
  tool: string;
13
+ /** Where the run worked (`scopeLabel`), named after the tool when given */
14
+ where?: string;
13
15
  }
14
16
  /**
15
17
  * Message shown when all assets are already in sync for a tool.
16
18
  */
17
- export default function SyncAllInSync({ excludedSkipped, frozenSkipped, scope, skipped, tool, }: SyncAllInSyncProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function SyncAllInSync({ excludedSkipped, frozenSkipped, scope, skipped, tool, where, }: SyncAllInSyncProps): import("react/jsx-runtime").JSX.Element;
18
20
  export {};
19
21
  //# sourceMappingURL=SyncAllInSync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncAllInSync.d.ts","sourceRoot":"","sources":["../../src/components/SyncAllInSync.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,UAAU,kBAAkB;IAC1B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,eAAmB,EACnB,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,kBAAkB,2CAUpB"}
1
+ {"version":3,"file":"SyncAllInSync.d.ts","sourceRoot":"","sources":["../../src/components/SyncAllInSync.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,UAAU,kBAAkB;IAC1B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,eAAmB,EACnB,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,GACN,EAAE,kBAAkB,2CAWpB"}
@@ -5,7 +5,7 @@ import FrozenSkippedHint from './FrozenSkippedHint.js';
5
5
  /**
6
6
  * Message shown when all assets are already in sync for a tool.
7
7
  */
8
- export default function SyncAllInSync({ excludedSkipped = 0, frozenSkipped, scope, skipped, tool, }) {
9
- return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'green', children: ["\u2713 All ", skipped, " asset", skipped !== 1 ? 's' : '', " are in sync for ", tool, ". No changes needed."] }), _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope }), _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool })] }));
8
+ export default function SyncAllInSync({ excludedSkipped = 0, frozenSkipped, scope, skipped, tool, where, }) {
9
+ return (_jsxs(_Fragment, { children: [_jsxs(Text, { color: 'green', children: ["\u2713 All ", skipped, " asset", skipped !== 1 ? 's' : '', " are in sync for ", tool, where ? ` in ${where}` : '', ". No changes needed."] }), _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope }), _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool })] }));
10
10
  }
11
11
  //# sourceMappingURL=SyncAllInSync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncAllInSync.js","sourceRoot":"","sources":["../../src/components/SyncAllInSync.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAevD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,eAAe,GAAG,CAAC,EACnB,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,GACe;IACnB,OAAO,CACL,8BACE,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,4BACV,OAAO,YAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,uBAAmB,IAAI,4BAChE,EACP,KAAC,iBAAiB,IAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAI,EACzD,KAAC,mBAAmB,IAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,IACxE,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SyncAllInSync.js","sourceRoot":"","sources":["../../src/components/SyncAllInSync.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAI3B,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAiBvD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,eAAe,GAAG,CAAC,EACnB,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,GACc;IACnB,OAAO,CACL,8BACE,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,4BACV,OAAO,YAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,uBAAmB,IAAI,EACpE,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,4BACvB,EACP,KAAC,iBAAiB,IAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAI,EACzD,KAAC,mBAAmB,IAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,IACxE,CACJ,CAAC;AACJ,CAAC"}
@@ -17,6 +17,8 @@ interface SyncDriftedListProps {
17
17
  skipped: number;
18
18
  /** The tool name (e.g., "claude-code") */
19
19
  tool: string;
20
+ /** Where the run worked (`scopeLabel`), named after the tool when given */
21
+ where?: string;
20
22
  }
21
23
  /**
22
24
  * Renders the list of drifted/synced assets for a tool.
@@ -25,6 +27,6 @@ interface SyncDriftedListProps {
25
27
  * refuse, and skip counts.
26
28
  * In live mode: shows synced summary, entry list with placed files, failures, and skip counts.
27
29
  */
28
- export default function SyncDriftedList({ dryRun, entries, excludedSkipped, failures, frozenSkipped, scope, skipped, tool, }: SyncDriftedListProps): import("react/jsx-runtime").JSX.Element;
30
+ export default function SyncDriftedList({ dryRun, entries, excludedSkipped, failures, frozenSkipped, scope, skipped, tool, where, }: SyncDriftedListProps): import("react/jsx-runtime").JSX.Element;
29
31
  export {};
30
32
  //# sourceMappingURL=SyncDriftedList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncDriftedList.d.ts","sourceRoot":"","sources":["../../src/components/SyncDriftedList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,UAAU,oBAAoB;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,MAAM,EACN,OAAO,EACP,eAAmB,EACnB,QAAa,EACb,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,oBAAoB,2CAmFtB"}
1
+ {"version":3,"file":"SyncDriftedList.d.ts","sourceRoot":"","sources":["../../src/components/SyncDriftedList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,UAAU,oBAAoB;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,MAAM,EACN,OAAO,EACP,eAAmB,EACnB,QAAa,EACb,aAAa,EACb,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,GACN,EAAE,oBAAoB,2CAoFtB"}
@@ -12,11 +12,11 @@ import FrozenSkippedHint from './FrozenSkippedHint.js';
12
12
  * refuse, and skip counts.
13
13
  * In live mode: shows synced summary, entry list with placed files, failures, and skip counts.
14
14
  */
15
- export default function SyncDriftedList({ dryRun, entries, excludedSkipped = 0, failures = [], frozenSkipped, scope, skipped, tool, }) {
15
+ export default function SyncDriftedList({ dryRun, entries, excludedSkipped = 0, failures = [], frozenSkipped, scope, skipped, tool, where, }) {
16
16
  if (dryRun) {
17
- return (_jsxs(_Fragment, { children: [_jsx(DryRunBanner, { action: 'sync', count: entries.length, tools: [tool] }), _jsx(Text, { children: " " }), entries.map((entry) => (_jsxs(Text, { children: [' ', _jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.asset.version] }), ' — ', entry.reason === 'missing' && _jsx(Text, { color: 'yellow', children: "missing files" }), entry.reason === 'modified' && _jsx(Text, { color: 'yellow', children: "modified files" }), entry.reason === 'forced' && _jsx(Text, { dimColor: true, children: "forced" })] }, identityKey(entry.asset)))), _jsx(SyncFailureList, { dryRun: true, failures: failures }), skipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: [skipped, " asset", skipped !== 1 ? 's' : '', " already in sync \u2014 would be skipped."] })] })), frozenSkipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope })] })), excludedSkipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool })] }))] }));
17
+ return (_jsxs(_Fragment, { children: [_jsx(DryRunBanner, { action: 'sync', count: entries.length, tools: [tool], where: where }), _jsx(Text, { children: " " }), entries.map((entry) => (_jsxs(Text, { children: [' ', _jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.asset.version] }), ' — ', entry.reason === 'missing' && _jsx(Text, { color: 'yellow', children: "missing files" }), entry.reason === 'modified' && _jsx(Text, { color: 'yellow', children: "modified files" }), entry.reason === 'forced' && _jsx(Text, { dimColor: true, children: "forced" })] }, identityKey(entry.asset)))), _jsx(SyncFailureList, { dryRun: true, failures: failures }), skipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: [skipped, " asset", skipped !== 1 ? 's' : '', " already in sync \u2014 would be skipped."] })] })), frozenSkipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope })] })), excludedSkipped > 0 && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool })] }))] }));
18
18
  }
19
- return (_jsxs(_Fragment, { children: [entries.length > 0 && (_jsxs(Text, { color: 'green', children: ["\u2713 Synced ", entries.length, " asset", entries.length !== 1 ? 's' : '', " for ", tool] })), skipped > 0 && (_jsxs(Text, { dimColor: true, children: [skipped, " asset", skipped !== 1 ? 's' : '', " already in sync \u2014 skipped."] })), frozenSkipped > 0 && _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope }), excludedSkipped > 0 && _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool }), entries.length > 0 && _jsx(Text, { children: " " }), entries.map((entry) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'green', children: "\u2713" }), " ", _jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.asset.version] }), ' — ', entry.reason === 'missing' && _jsx(Text, { color: 'yellow', children: "restored missing files" }), entry.reason === 'modified' && _jsx(Text, { color: 'yellow', children: "restored modified files" }), entry.reason === 'forced' && _jsx(Text, { dimColor: true, children: "force re-synced" })] }), entry.result?.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, wrap: 'truncate', children: [' ', "\u2192 ", f.destination] }, f.destination)))] }, identityKey(entry.asset)))), _jsx(SyncFailureList, { dryRun: false, failures: failures })] }));
19
+ return (_jsxs(_Fragment, { children: [entries.length > 0 && (_jsxs(Text, { color: 'green', children: ["\u2713 Synced ", entries.length, " asset", entries.length !== 1 ? 's' : '', " for ", tool, where ? ` in ${where}` : ''] })), skipped > 0 && (_jsxs(Text, { dimColor: true, children: [skipped, " asset", skipped !== 1 ? 's' : '', " already in sync \u2014 skipped."] })), frozenSkipped > 0 && _jsx(FrozenSkippedHint, { count: frozenSkipped, scope: scope }), excludedSkipped > 0 && _jsx(ExcludedSkippedHint, { count: excludedSkipped, scope: scope, tool: tool }), entries.length > 0 && _jsx(Text, { children: " " }), entries.map((entry) => (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: [_jsx(Text, { color: 'green', children: "\u2713" }), " ", _jsx(Text, { bold: true, children: formatOrgName(entry.asset.org, entry.asset.name) }), _jsxs(Text, { dimColor: true, children: [' ', "(", entry.asset.type, ") v", entry.asset.version] }), ' — ', entry.reason === 'missing' && _jsx(Text, { color: 'yellow', children: "restored missing files" }), entry.reason === 'modified' && _jsx(Text, { color: 'yellow', children: "restored modified files" }), entry.reason === 'forced' && _jsx(Text, { dimColor: true, children: "force re-synced" })] }), entry.result?.filesPlaced.map((f) => (_jsxs(Text, { dimColor: true, wrap: 'truncate', children: [' ', "\u2192 ", f.destination] }, f.destination)))] }, identityKey(entry.asset)))), _jsx(SyncFailureList, { dryRun: false, failures: failures })] }));
20
20
  }
21
21
  /** The assets that failed to sync, or that a live sync would refuse (dry-run), with their guidance. */
22
22
  function SyncFailureList({ dryRun, failures }) {
@@ -1 +1 @@
1
- {"version":3,"file":"SyncDriftedList.js","sourceRoot":"","sources":["../../src/components/SyncDriftedList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncDriftedList.js","sourceRoot":"","sources":["../../src/components/SyncDriftedList.tsx"],"names":[],"mappings":"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"}
@@ -3,10 +3,12 @@ interface SyncNoAssetsProps {
3
3
  bootstrapHint?: string;
4
4
  /** The tool name (e.g., "claude-code") */
5
5
  tool: string;
6
+ /** Where the run looked (`scopeLabel`), named after the tool when given */
7
+ where?: string;
6
8
  }
7
9
  /**
8
10
  * Message shown when no assets are installed for a tool during sync.
9
11
  */
10
- export default function SyncNoAssets({ bootstrapHint, tool }: SyncNoAssetsProps): import("react/jsx-runtime").JSX.Element;
12
+ export default function SyncNoAssets({ bootstrapHint, tool, where }: SyncNoAssetsProps): import("react/jsx-runtime").JSX.Element;
11
13
  export {};
12
14
  //# sourceMappingURL=SyncNoAssets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncNoAssets.d.ts","sourceRoot":"","sources":["../../src/components/SyncNoAssets.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,iBAAiB,2CAO9E"}
1
+ {"version":3,"file":"SyncNoAssets.d.ts","sourceRoot":"","sources":["../../src/components/SyncNoAssets.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CAUrF"}
@@ -3,7 +3,7 @@ import { Text } from 'ink';
3
3
  /**
4
4
  * Message shown when no assets are installed for a tool during sync.
5
5
  */
6
- export default function SyncNoAssets({ bootstrapHint, tool }) {
7
- return (_jsxs(_Fragment, { children: [_jsxs(Text, { dimColor: true, children: ["No assets installed for ", tool, ". Nothing to sync."] }), bootstrapHint && _jsx(Text, { color: 'yellow', children: bootstrapHint })] }));
6
+ export default function SyncNoAssets({ bootstrapHint, tool, where }) {
7
+ return (_jsxs(_Fragment, { children: [_jsxs(Text, { dimColor: true, children: ["No assets installed for ", tool, where ? ` in ${where}` : '', ". Nothing to sync."] }), bootstrapHint && _jsx(Text, { color: 'yellow', children: bootstrapHint })] }));
8
8
  }
9
9
  //# sourceMappingURL=SyncNoAssets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncNoAssets.js","sourceRoot":"","sources":["../../src/components/SyncNoAssets.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAS3B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAqB;IAC7E,OAAO,CACL,8BACE,MAAC,IAAI,IAAC,QAAQ,+CAA0B,IAAI,0BAA0B,EACrE,aAAa,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,aAAa,GAAQ,IAC5D,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SyncNoAssets.js","sourceRoot":"","sources":["../../src/components/SyncNoAssets.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAW3B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAqB;IACpF,OAAO,CACL,8BACE,MAAC,IAAI,IAAC,QAAQ,+CACa,IAAI,EAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,0BACvB,EACN,aAAa,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,aAAa,GAAQ,IAC5D,CACJ,CAAC;AACJ,CAAC"}
@@ -1,16 +1,29 @@
1
1
  import { type RefObject } from 'react';
2
2
  import type { Adapter } from '../lib/schemas/adapter.js';
3
3
  import type { ProjectConfig } from '../lib/schemas/config.js';
4
+ import type { Scope } from '../lib/scope.js';
4
5
  import type { ListAction, ListState } from './useListState.js';
6
+ /** The tool a list action places with, and the scope's other configured tools. */
7
+ export interface ListActionTool {
8
+ adapter: Adapter;
9
+ additionalAdapters?: Adapter[];
10
+ tool: string;
11
+ }
12
+ /** What an action on a row needs from the row's scope. */
13
+ export interface ListScopeContext {
14
+ /** The scope's config (tools and frozen assets), refreshed after a freeze or thaw. */
15
+ config: null | ProjectConfig;
16
+ root: string;
17
+ /** Null when no tool resolves for the scope: update and uninstall then fail with the setup error. */
18
+ tool: ListActionTool | null;
19
+ }
20
+ /** The list's scopes, each with what its rows' actions need. */
21
+ export type ListScopes = Partial<Record<Scope, ListScopeContext>>;
5
22
  /**
6
23
  * Encapsulates the action execution side-effect for the list command.
7
24
  *
8
25
  * Handles freeze-toggle, pin-toggle, uninstall, and update actions,
9
- * each following a lock-read-act-write-dispatch pattern.
26
+ * each following a lock-read-act-write-dispatch pattern, at the scope of the row acted on.
10
27
  */
11
- export declare function useListActions(state: ListState, dispatch: React.Dispatch<ListAction>, projectDirRef: RefObject<string>, resolvedToolRef: RefObject<null | {
12
- adapter: Adapter;
13
- additionalAdapters?: Adapter[];
14
- tool: string;
15
- }>, projectConfigRef?: RefObject<null | ProjectConfig>): void;
28
+ export declare function useListActions(state: ListState, dispatch: React.Dispatch<ListAction>, scopesRef: RefObject<ListScopes>): void;
16
29
  //# sourceMappingURL=useListActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useListActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useListActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAyB/D;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EACpC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,EAChC,eAAe,EAAE,SAAS,CAAC,IAAI,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACrG,gBAAgB,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,GACjD,IAAI,CA+NN"}
1
+ {"version":3,"file":"useListActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useListActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAyB/D,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,MAAM,EAAE,IAAI,GAAG,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qGAAqG;IACrG,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7B;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EACpC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,GAC/B,IAAI,CAmON"}