@detergent-software/atk 3.0.0-dev.1 → 3.0.0-dev.11

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 (196) hide show
  1. package/README.md +361 -0
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +77 -37
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.d.ts.map +1 -1
  6. package/build/commands/browse.js +117 -152
  7. package/build/commands/browse.js.map +1 -1
  8. package/build/commands/diff.d.ts.map +1 -1
  9. package/build/commands/diff.js +2 -1
  10. package/build/commands/diff.js.map +1 -1
  11. package/build/commands/info.d.ts.map +1 -1
  12. package/build/commands/info.js +1 -1
  13. package/build/commands/info.js.map +1 -1
  14. package/build/commands/init.d.ts.map +1 -1
  15. package/build/commands/init.js +39 -405
  16. package/build/commands/init.js.map +1 -1
  17. package/build/commands/install.d.ts.map +1 -1
  18. package/build/commands/install.js +46 -31
  19. package/build/commands/install.js.map +1 -1
  20. package/build/commands/list.d.ts +2 -2
  21. package/build/commands/list.d.ts.map +1 -1
  22. package/build/commands/list.js +131 -27
  23. package/build/commands/list.js.map +1 -1
  24. package/build/commands/outdated.d.ts.map +1 -1
  25. package/build/commands/outdated.js +7 -6
  26. package/build/commands/outdated.js.map +1 -1
  27. package/build/commands/prune.d.ts.map +1 -1
  28. package/build/commands/prune.js +35 -47
  29. package/build/commands/prune.js.map +1 -1
  30. package/build/commands/publish.d.ts +3 -1
  31. package/build/commands/publish.d.ts.map +1 -1
  32. package/build/commands/publish.js +67 -390
  33. package/build/commands/publish.js.map +1 -1
  34. package/build/commands/setup.d.ts +1 -1
  35. package/build/commands/setup.d.ts.map +1 -1
  36. package/build/commands/setup.js +49 -242
  37. package/build/commands/setup.js.map +1 -1
  38. package/build/commands/sync.d.ts.map +1 -1
  39. package/build/commands/sync.js +111 -120
  40. package/build/commands/sync.js.map +1 -1
  41. package/build/commands/uninstall.d.ts.map +1 -1
  42. package/build/commands/uninstall.js +103 -218
  43. package/build/commands/uninstall.js.map +1 -1
  44. package/build/commands/update.d.ts.map +1 -1
  45. package/build/commands/update.js +30 -23
  46. package/build/commands/update.js.map +1 -1
  47. package/build/components/AssetTable.d.ts +3 -1
  48. package/build/components/AssetTable.d.ts.map +1 -1
  49. package/build/components/AssetTable.js +30 -37
  50. package/build/components/AssetTable.js.map +1 -1
  51. package/build/components/BrowseExpandedBundle.d.ts +7 -0
  52. package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
  53. package/build/components/BrowseExpandedBundle.js +19 -0
  54. package/build/components/BrowseExpandedBundle.js.map +1 -1
  55. package/build/components/BrowseExpandedRow.d.ts +4 -1
  56. package/build/components/BrowseExpandedRow.d.ts.map +1 -1
  57. package/build/components/BrowseExpandedRow.js +24 -3
  58. package/build/components/BrowseExpandedRow.js.map +1 -1
  59. package/build/components/BrowseList.d.ts +3 -1
  60. package/build/components/BrowseList.d.ts.map +1 -1
  61. package/build/components/BrowseList.js +52 -42
  62. package/build/components/BrowseList.js.map +1 -1
  63. package/build/components/DryRunBanner.d.ts +3 -3
  64. package/build/components/DryRunBanner.d.ts.map +1 -1
  65. package/build/components/DryRunBanner.js +2 -2
  66. package/build/components/DryRunBanner.js.map +1 -1
  67. package/build/components/FilterBar.d.ts +10 -3
  68. package/build/components/FilterBar.d.ts.map +1 -1
  69. package/build/components/FilterBar.js +4 -4
  70. package/build/components/FilterBar.js.map +1 -1
  71. package/build/components/HelpBar.d.ts.map +1 -1
  72. package/build/components/HelpBar.js +3 -3
  73. package/build/components/HelpBar.js.map +1 -1
  74. package/build/components/InitSuccess.d.ts +5 -0
  75. package/build/components/InitSuccess.d.ts.map +1 -0
  76. package/build/components/InitSuccess.js +20 -0
  77. package/build/components/InitSuccess.js.map +1 -0
  78. package/build/components/InstallSummary.d.ts +3 -3
  79. package/build/components/InstallSummary.d.ts.map +1 -1
  80. package/build/components/InstallSummary.js +2 -2
  81. package/build/components/InstallSummary.js.map +1 -1
  82. package/build/components/Link.d.ts +7 -0
  83. package/build/components/Link.d.ts.map +1 -0
  84. package/build/components/Link.js +6 -0
  85. package/build/components/Link.js.map +1 -0
  86. package/build/components/ListActionBar.d.ts +9 -0
  87. package/build/components/ListActionBar.d.ts.map +1 -0
  88. package/build/components/ListActionBar.js +30 -0
  89. package/build/components/ListActionBar.js.map +1 -0
  90. package/build/components/ListBrowseList.d.ts +25 -0
  91. package/build/components/ListBrowseList.d.ts.map +1 -0
  92. package/build/components/ListBrowseList.js +55 -0
  93. package/build/components/ListBrowseList.js.map +1 -0
  94. package/build/components/ListExpandedRow.d.ts +36 -0
  95. package/build/components/ListExpandedRow.d.ts.map +1 -0
  96. package/build/components/ListExpandedRow.js +46 -0
  97. package/build/components/ListExpandedRow.js.map +1 -0
  98. package/build/components/ListHelpBar.d.ts +19 -0
  99. package/build/components/ListHelpBar.d.ts.map +1 -0
  100. package/build/components/ListHelpBar.js +11 -0
  101. package/build/components/ListHelpBar.js.map +1 -0
  102. package/build/components/PromptField.d.ts +19 -0
  103. package/build/components/PromptField.d.ts.map +1 -0
  104. package/build/components/PromptField.js +7 -0
  105. package/build/components/PromptField.js.map +1 -0
  106. package/build/components/StatusBadge.d.ts +1 -1
  107. package/build/components/StatusBadge.d.ts.map +1 -1
  108. package/build/components/StatusBadge.js +4 -0
  109. package/build/components/StatusBadge.js.map +1 -1
  110. package/build/components/index.d.ts +9 -2
  111. package/build/components/index.d.ts.map +1 -1
  112. package/build/components/index.js +9 -2
  113. package/build/components/index.js.map +1 -1
  114. package/build/hooks/useBrowseState.d.ts +41 -1
  115. package/build/hooks/useBrowseState.d.ts.map +1 -1
  116. package/build/hooks/useBrowseState.js +142 -12
  117. package/build/hooks/useBrowseState.js.map +1 -1
  118. package/build/hooks/useConfirmation.d.ts +18 -0
  119. package/build/hooks/useConfirmation.d.ts.map +1 -0
  120. package/build/hooks/useConfirmation.js +56 -0
  121. package/build/hooks/useConfirmation.js.map +1 -0
  122. package/build/hooks/useInitState.d.ts +72 -0
  123. package/build/hooks/useInitState.d.ts.map +1 -0
  124. package/build/hooks/useInitState.js +372 -0
  125. package/build/hooks/useInitState.js.map +1 -0
  126. package/build/hooks/useListActions.d.ts +14 -0
  127. package/build/hooks/useListActions.d.ts.map +1 -0
  128. package/build/hooks/useListActions.js +151 -0
  129. package/build/hooks/useListActions.js.map +1 -0
  130. package/build/hooks/useListState.d.ts +147 -0
  131. package/build/hooks/useListState.d.ts.map +1 -0
  132. package/build/hooks/useListState.js +445 -0
  133. package/build/hooks/useListState.js.map +1 -0
  134. package/build/hooks/usePublishState.d.ts +115 -0
  135. package/build/hooks/usePublishState.d.ts.map +1 -0
  136. package/build/hooks/usePublishState.js +673 -0
  137. package/build/hooks/usePublishState.js.map +1 -0
  138. package/build/hooks/useSetupState.d.ts +59 -0
  139. package/build/hooks/useSetupState.d.ts.map +1 -0
  140. package/build/hooks/useSetupState.js +295 -0
  141. package/build/hooks/useSetupState.js.map +1 -0
  142. package/build/hooks/useUninstallState.d.ts +102 -0
  143. package/build/hooks/useUninstallState.d.ts.map +1 -0
  144. package/build/hooks/useUninstallState.js +342 -0
  145. package/build/hooks/useUninstallState.js.map +1 -0
  146. package/build/lib/checksum.d.ts +39 -0
  147. package/build/lib/checksum.d.ts.map +1 -1
  148. package/build/lib/checksum.js +101 -13
  149. package/build/lib/checksum.js.map +1 -1
  150. package/build/lib/config.d.ts +4 -1
  151. package/build/lib/config.d.ts.map +1 -1
  152. package/build/lib/config.js +9 -9
  153. package/build/lib/config.js.map +1 -1
  154. package/build/lib/diagnostics.js +1 -1
  155. package/build/lib/diagnostics.js.map +1 -1
  156. package/build/lib/format.d.ts +6 -0
  157. package/build/lib/format.d.ts.map +1 -0
  158. package/build/lib/format.js +18 -0
  159. package/build/lib/format.js.map +1 -0
  160. package/build/lib/github.d.ts +8 -0
  161. package/build/lib/github.d.ts.map +1 -1
  162. package/build/lib/github.js +9 -0
  163. package/build/lib/github.js.map +1 -1
  164. package/build/lib/installer.d.ts +1 -0
  165. package/build/lib/installer.d.ts.map +1 -1
  166. package/build/lib/installer.js +7 -7
  167. package/build/lib/installer.js.map +1 -1
  168. package/build/lib/lockfile.d.ts.map +1 -1
  169. package/build/lib/lockfile.js +1 -4
  170. package/build/lib/lockfile.js.map +1 -1
  171. package/build/lib/publisher.d.ts +35 -0
  172. package/build/lib/publisher.d.ts.map +1 -1
  173. package/build/lib/publisher.js +210 -16
  174. package/build/lib/publisher.js.map +1 -1
  175. package/build/lib/schemas/config.d.ts +7 -3
  176. package/build/lib/schemas/config.d.ts.map +1 -1
  177. package/build/lib/schemas/config.js +12 -2
  178. package/build/lib/schemas/config.js.map +1 -1
  179. package/build/lib/schemas/index.d.ts +1 -1
  180. package/build/lib/schemas/index.d.ts.map +1 -1
  181. package/build/lib/schemas/index.js +1 -1
  182. package/build/lib/schemas/index.js.map +1 -1
  183. package/build/lib/schemas/lockfile.d.ts +18 -0
  184. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  185. package/build/lib/schemas/lockfile.js +10 -0
  186. package/build/lib/schemas/lockfile.js.map +1 -1
  187. package/build/lib/tool-resolver.d.ts +17 -6
  188. package/build/lib/tool-resolver.d.ts.map +1 -1
  189. package/build/lib/tool-resolver.js +31 -15
  190. package/build/lib/tool-resolver.js.map +1 -1
  191. package/build/lib/updater.d.ts.map +1 -1
  192. package/build/lib/updater.js +2 -1
  193. package/build/lib/updater.js.map +1 -1
  194. package/package.json +78 -65
  195. package/tool-adapters/claude-code.json +1 -1
  196. package/tool-adapters/copilot-cli.json +1 -1
@@ -0,0 +1,55 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { getBreakpoint } from '../lib/breakpoints.js';
4
+ import { formatDate } from '../lib/format.js';
5
+ import ListExpandedRow, { computeExpandedLines } from './ListExpandedRow.js';
6
+ const COLUMN_WIDTHS = {
7
+ medium: { cursor: 3, installDate: 14, name: 30, org: 16, status: 8, type: 14, version: 18 },
8
+ narrow: { cursor: 3, installDate: 14, name: 30, status: 8, version: 18 },
9
+ wide: { cursor: 3, installDate: 14, name: 40, org: 20, status: 8, type: 18, version: 22 },
10
+ };
11
+ export default function ListBrowseList({ cursorIndex, expandedIndex, items, outdatedMap, readmeUrl, scrollOffset, terminalWidth, typeFilter, viewportHeight, }) {
12
+ if (items.length === 0) {
13
+ const label = typeFilter === 'all' ? 'installed assets' : `installed ${typeFilter} assets`;
14
+ 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."] }) }) }));
15
+ }
16
+ const bp = getBreakpoint(terminalWidth);
17
+ const showType = bp !== 'narrow';
18
+ const showOrg = bp !== 'narrow';
19
+ const cols = COLUMN_WIDTHS[bp];
20
+ const orgWidth = 'org' in cols ? cols.org : 0;
21
+ const typeWidth = 'type' in cols ? cols.type : 0;
22
+ const aboveCount = scrollOffset;
23
+ // Compute expanded row line height for the expanded item (if any)
24
+ const expandedAsset = expandedIndex !== null ? items[expandedIndex] : null;
25
+ const visibleItems = [];
26
+ // Start at 1 to account for the column header line
27
+ let usedLines = 1;
28
+ // Reserve a line for the "▲ more above" indicator when scrolled
29
+ if (scrollOffset > 0)
30
+ usedLines += 1;
31
+ for (let i = scrollOffset; i < items.length; i++) {
32
+ let expandedLines = 0;
33
+ if (i === expandedIndex && expandedAsset) {
34
+ expandedLines = computeExpandedLines(expandedAsset, readmeUrl);
35
+ }
36
+ const linesNeeded = 1 + expandedLines;
37
+ // Reserve a line for the "▼ more below" indicator when there are more items after this one
38
+ const limit = i < items.length - 1 ? viewportHeight - 1 : viewportHeight;
39
+ if (usedLines + linesNeeded > limit)
40
+ break;
41
+ visibleItems.push({ index: i, item: items[i] });
42
+ usedLines += linesNeeded;
43
+ }
44
+ const lastVisibleIndex = visibleItems.length > 0 ? visibleItems[visibleItems.length - 1].index : scrollOffset;
45
+ const belowCount = items.length - lastVisibleIndex - 1;
46
+ 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" }) }), _jsx(Box, { flexShrink: 0, width: cols.installDate, children: _jsx(Text, { bold: true, dimColor: true, children: "Installed" }) })] }), aboveCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25B2 ", aboveCount, " more above"] }), visibleItems.map(({ index, item }) => {
47
+ const isCursor = index === cursorIndex;
48
+ const isExpanded = index === expandedIndex;
49
+ const assetKey = `${item.type}/${item.name}`;
50
+ const latestVersion = outdatedMap.get(assetKey);
51
+ const isOutdated = latestVersion !== undefined;
52
+ 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: 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 ? '📌' : '', item.frozen ? '🧊' : ''] }) }), _jsx(Box, { flexShrink: 0, width: cols.installDate, children: _jsx(Text, { dimColor: true, wrap: 'truncate', children: formatDate(item.installedAt) }) })] }), isExpanded && (_jsx(ListExpandedRow, { asset: item, latestVersion: latestVersion, readmeUrl: readmeUrl, terminalWidth: terminalWidth }))] }, assetKey));
53
+ }), belowCount > 0 && _jsxs(Text, { dimColor: true, children: [" \u25BC ", belowCount, " more below"] })] }));
54
+ }
55
+ //# sourceMappingURL=ListBrowseList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBrowseList.js","sourceRoot":"","sources":["../../src/components/ListBrowseList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { InstalledAsset } from '../lib/schemas/lockfile.js';
2
+ /**
3
+ * Compute the number of lines the expanded row will consume for viewport calculations.
4
+ * This accounts for the base lines, variable file count, pinned/frozen indicators, and readme URL.
5
+ */
6
+ export declare function computeExpandedLines(asset: InstalledAsset, readmeUrl: null | string): number;
7
+ /**
8
+ * Number of fixed lines rendered by the expanded row, excluding
9
+ * variable-length sections (file list and readme URL).
10
+ *
11
+ * Breakdown:
12
+ * 1 - top separator
13
+ * 1 - description (or empty)
14
+ * 1 - installed files header
15
+ * 1 - version / latest line
16
+ * 1 - install date line
17
+ * 1 - bottom separator
18
+ * ---
19
+ * 6 base lines
20
+ *
21
+ * Pinned, frozen, and readme URL lines are added dynamically.
22
+ */
23
+ export declare const LIST_EXPANDED_BASE_LINES = 6;
24
+ interface ListExpandedRowProps {
25
+ /** The installed asset to show details for */
26
+ asset: InstalledAsset;
27
+ /** Latest available version from the registry, if known */
28
+ latestVersion: string | undefined;
29
+ /** GitHub URL to the asset's README, or null if unavailable */
30
+ readmeUrl: null | string;
31
+ /** Terminal width for responsive layout */
32
+ terminalWidth: number;
33
+ }
34
+ export default function ListExpandedRow({ asset, latestVersion, readmeUrl, terminalWidth }: ListExpandedRowProps): import("react/jsx-runtime").JSX.Element;
35
+ export {};
36
+ //# sourceMappingURL=ListExpandedRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListExpandedRow.d.ts","sourceRoot":"","sources":["../../src/components/ListExpandedRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAgB5F;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,UAAU,oBAAoB;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,cAAc,CAAC;IACtB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,+DAA+D;IAC/D,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,oBAAoB,2CA2E/G"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { formatDate } from '../lib/format.js';
4
+ import Link from './Link.js';
5
+ /**
6
+ * Compute the number of lines the expanded row will consume for viewport calculations.
7
+ * This accounts for the base lines, variable file count, pinned/frozen indicators, and readme URL.
8
+ */
9
+ export function computeExpandedLines(asset, readmeUrl) {
10
+ let lines = LIST_EXPANDED_BASE_LINES;
11
+ // Each installed file adds a line
12
+ lines += asset.files.length;
13
+ // Pinned indicator adds a line
14
+ if (asset.pinnedVersion)
15
+ lines += 1;
16
+ // Frozen indicator adds a line
17
+ if (asset.frozen)
18
+ lines += 1;
19
+ // Readme URL: 1 for marginTop + 1 for the URL line
20
+ if (readmeUrl)
21
+ lines += 2;
22
+ return lines;
23
+ }
24
+ /**
25
+ * Number of fixed lines rendered by the expanded row, excluding
26
+ * variable-length sections (file list and readme URL).
27
+ *
28
+ * Breakdown:
29
+ * 1 - top separator
30
+ * 1 - description (or empty)
31
+ * 1 - installed files header
32
+ * 1 - version / latest line
33
+ * 1 - install date line
34
+ * 1 - bottom separator
35
+ * ---
36
+ * 6 base lines
37
+ *
38
+ * Pinned, frozen, and readme URL lines are added dynamically.
39
+ */
40
+ export const LIST_EXPANDED_BASE_LINES = 6;
41
+ export default function ListExpandedRow({ asset, latestVersion, readmeUrl, terminalWidth }) {
42
+ const separatorWidth = Math.max(20, terminalWidth - 10);
43
+ const isOutdated = latestVersion !== undefined && latestVersion !== asset.version;
44
+ return (_jsxs(Box, { flexDirection: 'column', paddingLeft: 4, children: [_jsx(Text, { dimColor: true, children: '─'.repeat(separatorWidth) }), _jsx(Text, { wrap: 'truncate', children: asset.description ?? '' }), _jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { dimColor: true, children: ["Files (", asset.files.length, "):"] }), asset.files.map((f) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'cyan', children: f.sourcePath })] }, f.sourcePath)))] }), asset.pinnedVersion && (_jsxs(Text, { children: [_jsx(Text, { children: '📌 Pinned' }), _jsxs(Text, { dimColor: true, children: [" to ", asset.pinnedVersion] })] })), asset.frozen && (_jsxs(Text, { children: [_jsx(Text, { children: '🧊 Frozen' }), _jsx(Text, { dimColor: true, children: " \u2014 sync and update will not overwrite" })] })), _jsxs(Box, { gap: 2, children: [_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Installed: " }), _jsxs(Text, { children: ["v", asset.version] })] }), isOutdated && (_jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Latest: " }), _jsxs(Text, { color: 'yellow', children: ["v", latestVersion] })] })), latestVersion !== undefined && !isOutdated && _jsx(Text, { color: 'green', children: '✓ up to date' })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Installed: " }), _jsx(Text, { children: formatDate(asset.installedAt) }), asset.updatedAt && _jsxs(Text, { dimColor: true, children: [" (updated ", formatDate(asset.updatedAt), ")"] })] }), readmeUrl && (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "README: " }), _jsx(Text, { color: 'cyan', children: _jsx(Link, { url: readmeUrl, children: "view on GitHub" }) })] })), _jsx(Text, { dimColor: true, children: '─'.repeat(separatorWidth) })] }));
45
+ }
46
+ //# sourceMappingURL=ListExpandedRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListExpandedRow.js","sourceRoot":"","sources":["../../src/components/ListExpandedRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ interface ListHelpBarProps {
2
+ /** Whether the current asset supports actions (has a selected asset) */
3
+ canAct: boolean;
4
+ /** Whether the current row is expanded */
5
+ expanded: boolean;
6
+ /** Whether the project has an org configured */
7
+ hasOrg?: boolean;
8
+ /** Whether any installed assets have available updates */
9
+ hasOutdated: boolean;
10
+ /** Current input mode */
11
+ inputMode: 'filter' | 'navigate';
12
+ /** Whether the currently selected asset is frozen */
13
+ isFrozen: boolean;
14
+ /** Whether the currently selected asset is pinned */
15
+ isPinned: boolean;
16
+ }
17
+ export default function ListHelpBar({ canAct, expanded, hasOrg, hasOutdated, inputMode, isFrozen, isPinned, }: ListHelpBarProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=ListHelpBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListHelpBar.d.ts","sourceRoot":"","sources":["../../src/components/ListHelpBar.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,wEAAwE;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE,gBAAgB,2CAkDlB"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export default function ListHelpBar({ canAct, expanded, hasOrg, hasOutdated, inputMode, isFrozen, isPinned, }) {
4
+ if (inputMode === 'filter') {
5
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "Esc" }), ": stop filter", ' ', "Type to filter..."] }) }));
6
+ }
7
+ const pinLabel = isPinned ? 'unpin' : 'pin';
8
+ const freezeLabel = isFrozen ? 'thaw' : 'freeze';
9
+ return (_jsx(Box, { borderColor: 'gray', borderStyle: 'round', children: _jsxs(Text, { dimColor: true, children: [_jsx(Text, { children: "\u2191\u2193" }), " navigate", ' ', _jsx(Text, { children: "/" }), ": filter", ' ', _jsx(Text, { children: "Tab" }), ": type", ' ', _jsx(Text, { children: "s" }), ": sort", ' ', hasOrg && (_jsxs(_Fragment, { children: [_jsx(Text, { children: "o" }), ": org", ' '] })), expanded ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Esc" }), ": collapse", ' '] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Enter" }), ": expand", ' '] })), _jsx(Text, { dimColor: !canAct || !hasOutdated, children: "u: update" }), ' ', _jsx(Text, { dimColor: !canAct, children: "x: uninstall" }), ' ', _jsxs(Text, { dimColor: !canAct, children: ["p: ", pinLabel] }), ' ', _jsxs(Text, { dimColor: !canAct, children: ["f: ", freezeLabel] }), ' ', _jsx(Text, { children: "q" }), ": quit"] }) }));
10
+ }
11
+ //# sourceMappingURL=ListHelpBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListHelpBar.js","sourceRoot":"","sources":["../../src/components/ListHelpBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAmBhC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,GACS;IACjB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC3B,KAAC,IAAI,sBAAW,mBAAc,IAAI,yBAE7B,GACH,CACP,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEjD,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,YACzC,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAC,IAAI,+BAAU,eAAU,IAAI,EAC7B,KAAC,IAAI,oBAAS,cAAS,IAAI,EAC3B,KAAC,IAAI,sBAAW,YAAO,IAAI,EAC3B,KAAC,IAAI,oBAAS,YAAO,IAAI,EACxB,MAAM,IAAI,CACT,8BACE,KAAC,IAAI,oBAAS,WAAM,IAAI,IACvB,CACJ,EACA,QAAQ,CAAC,CAAC,CAAC,CACV,8BACE,KAAC,IAAI,sBAAW,gBAAW,IAAI,IAC9B,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,wBAAa,cAAS,IAAI,IAC9B,CACJ,EACD,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,WAAW,0BAAkB,EACxD,IAAI,EACL,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,MAAM,6BAAqB,EAC3C,IAAI,EACL,MAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,MAAM,oBAAM,QAAQ,IAAQ,EAC5C,IAAI,EACL,MAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,MAAM,oBAAM,WAAW,IAAQ,EAC/C,IAAI,EACL,KAAC,IAAI,oBAAS,cACT,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from 'react';
2
+ interface PromptFieldProps {
3
+ /** Extra content rendered above the input row (e.g., tool list, help text). */
4
+ children?: ReactNode;
5
+ /** Validation or inline error shown below the input. */
6
+ error?: string;
7
+ /** Prompt label (e.g., "Name (kebab-case)"). */
8
+ label: string;
9
+ onChange: (value: string) => void;
10
+ onSubmit: (value: string) => void;
11
+ /** Static prefix shown before the input (e.g., "@org/"). */
12
+ prefix?: string;
13
+ value: string;
14
+ /** Warning shown above the input row. */
15
+ warning?: string;
16
+ }
17
+ export default function PromptField({ children, error, label, onChange, onSubmit, prefix, value, warning, }: PromptFieldProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=PromptField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptField.d.ts","sourceRoot":"","sources":["../../src/components/PromptField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,UAAU,gBAAgB;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,GACR,EAAE,gBAAgB,2CAgBlB"}
@@ -0,0 +1,7 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import TextInput from 'ink-text-input';
4
+ export default function PromptField({ children, error, label, onChange, onSubmit, prefix, value, warning, }) {
5
+ return (_jsxs(Box, { flexDirection: 'column', children: [warning && _jsxs(Text, { color: 'yellow', children: ["Warning: ", warning] }), children, _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsxs(Text, { children: [label, prefix] }), _jsx(TextInput, { focus: true, onChange: onChange, onSubmit: onSubmit, value: value })] }), error && _jsxs(Text, { color: 'red', children: [" ", error] })] }));
6
+ }
7
+ //# sourceMappingURL=PromptField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptField.js","sourceRoot":"","sources":["../../src/components/PromptField.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAkBvC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,GACU;IACjB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,OAAO,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,0BAAW,OAAO,IAAQ,EACzD,QAAQ,EACT,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,GAAQ,EAChC,MAAC,IAAI,eACF,KAAK,EACL,MAAM,IACF,EACP,KAAC,SAAS,IAAC,KAAK,QAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI,IACrE,EACL,KAAK,IAAI,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,kBAAG,KAAK,IAAQ,IACvC,CACP,CAAC;AACJ,CAAC"}
@@ -8,6 +8,6 @@ export declare function CheckIcon({ status }: {
8
8
  * Status icon for audit/diff file states.
9
9
  */
10
10
  export declare function FileStatusIcon({ status, }: {
11
- status: 'added' | 'frozen' | 'misplaced' | 'missing' | 'missing-local' | 'modified' | 'ok' | 'removed' | 'unchanged';
11
+ status: 'added' | 'config-missing' | 'config-modified' | 'frozen' | 'misplaced' | 'missing' | 'missing-local' | 'modified' | 'ok' | 'removed' | 'unchanged';
12
12
  }): import("react/jsx-runtime").JSX.Element;
13
13
  //# sourceMappingURL=StatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,2CAIzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAAC;CACtH,2CAmBA"}
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,2CAIzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAAC;CAC7J,2CAuBA"}
@@ -17,6 +17,10 @@ export function FileStatusIcon({ status, }) {
17
17
  switch (status) {
18
18
  case 'added':
19
19
  return _jsx(Text, { color: 'cyan', children: "+" });
20
+ case 'config-missing':
21
+ return _jsx(Text, { color: 'red', children: "\u2715" });
22
+ case 'config-modified':
23
+ return _jsx(Text, { color: 'magenta', children: "\u26A0" });
20
24
  case 'frozen':
21
25
  return _jsx(Text, { color: 'cyan', children: "\u2744" });
22
26
  case 'misplaced':
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAwC;IACxE,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;IAC3D,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;IAC5D,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,GAGP;IACC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;QACvC,KAAK,SAAS,CAAC;QACf,KAAK,eAAe;YAClB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;QACvC,KAAK,IAAI,CAAC;QACV,KAAK,WAAW;YACd,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,kBAAS,CAAC;IACtC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,MAAM,EAAwC;IACxE,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;IAC3D,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;IAC5D,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,MAAM,GAGP;IACC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,CAAC;QACrC,KAAK,gBAAgB;YACnB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;QACpC,KAAK,iBAAiB;YACpB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,uBAAS,CAAC;QACxC,KAAK,QAAQ;YACX,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,CAAC;QACrC,KAAK,WAAW;YACd,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;QACvC,KAAK,SAAS,CAAC;QACf,KAAK,eAAe;YAClB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,uBAAS,CAAC;QACvC,KAAK,IAAI,CAAC;QACV,KAAK,WAAW;YACd,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,kBAAS,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export { default as AssetDetail } from './AssetDetail.js';
2
2
  export { default as AssetTable } from './AssetTable.js';
3
- export { default as BrowseExpandedBundle } from './BrowseExpandedBundle.js';
4
- export { default as BrowseExpandedRow } from './BrowseExpandedRow.js';
3
+ export { default as BrowseExpandedBundle, type BundleDeps, bundleExpandedLines, resolveBundleDependencies, } from './BrowseExpandedBundle.js';
4
+ export { default as BrowseExpandedRow, computeBrowseExpandedLines } from './BrowseExpandedRow.js';
5
5
  export { default as BrowseList } from './BrowseList.js';
6
6
  export { default as BundleDetail } from './BundleDetail.js';
7
7
  export { default as DependencyTree } from './DependencyTree.js';
@@ -12,8 +12,15 @@ export { default as Field } from './Field.js';
12
12
  export { default as FilterBar } from './FilterBar.js';
13
13
  export { ASCII_ART, GRADIENT, default as Header } from './Header.js';
14
14
  export { default as HelpBar } from './HelpBar.js';
15
+ export { default as InitSuccess } from './InitSuccess.js';
15
16
  export { default as InstallConfirmBar } from './InstallConfirmBar.js';
16
17
  export { type InstalledAssetResult, default as InstallSummary } from './InstallSummary.js';
18
+ export { default as Link } from './Link.js';
19
+ export { default as ListActionBar } from './ListActionBar.js';
20
+ export { default as ListBrowseList } from './ListBrowseList.js';
21
+ export { computeExpandedLines, LIST_EXPANDED_BASE_LINES, default as ListExpandedRow } from './ListExpandedRow.js';
22
+ export { default as ListHelpBar } from './ListHelpBar.js';
23
+ export { default as PromptField } from './PromptField.js';
17
24
  export { default as SectionDivider } from './SectionDivider.js';
18
25
  export { default as Spinner } from './Spinner.js';
19
26
  export { CheckIcon, FileStatusIcon } from './StatusBadge.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,OAAO,IAAI,oBAAoB,EAC/B,KAAK,UAAU,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export { default as AssetDetail } from './AssetDetail.js';
2
2
  export { default as AssetTable } from './AssetTable.js';
3
- export { default as BrowseExpandedBundle } from './BrowseExpandedBundle.js';
4
- export { default as BrowseExpandedRow } from './BrowseExpandedRow.js';
3
+ export { default as BrowseExpandedBundle, bundleExpandedLines, resolveBundleDependencies, } from './BrowseExpandedBundle.js';
4
+ export { default as BrowseExpandedRow, computeBrowseExpandedLines } from './BrowseExpandedRow.js';
5
5
  export { default as BrowseList } from './BrowseList.js';
6
6
  export { default as BundleDetail } from './BundleDetail.js';
7
7
  export { default as DependencyTree } from './DependencyTree.js';
@@ -12,8 +12,15 @@ export { default as Field } from './Field.js';
12
12
  export { default as FilterBar } from './FilterBar.js';
13
13
  export { ASCII_ART, GRADIENT, default as Header } from './Header.js';
14
14
  export { default as HelpBar } from './HelpBar.js';
15
+ export { default as InitSuccess } from './InitSuccess.js';
15
16
  export { default as InstallConfirmBar } from './InstallConfirmBar.js';
16
17
  export { default as InstallSummary } from './InstallSummary.js';
18
+ export { default as Link } from './Link.js';
19
+ export { default as ListActionBar } from './ListActionBar.js';
20
+ export { default as ListBrowseList } from './ListBrowseList.js';
21
+ export { computeExpandedLines, LIST_EXPANDED_BASE_LINES, default as ListExpandedRow } from './ListExpandedRow.js';
22
+ export { default as ListHelpBar } from './ListHelpBar.js';
23
+ export { default as PromptField } from './PromptField.js';
17
24
  export { default as SectionDivider } from './SectionDivider.js';
18
25
  export { default as Spinner } from './Spinner.js';
19
26
  export { CheckIcon, FileStatusIcon } from './StatusBadge.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAwB,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAA6B,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,OAAO,IAAI,oBAAoB,EAE/B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAwB,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAA6B,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,6 +4,8 @@ import type { Registry, RegistryAsset, RegistryBundle } from '../lib/schemas/reg
4
4
  export type AssetTypeFilter = 'all' | 'bundle' | AssetType;
5
5
  export declare const TYPE_TABS: AssetTypeFilter[];
6
6
  export declare const TYPE_TAB_LABELS: Record<AssetTypeFilter, string>;
7
+ export type BrowseSortDirection = 'asc' | 'desc';
8
+ export type BrowseSortField = 'name' | 'type' | 'version';
7
9
  export type BrowseAction = {
8
10
  char: string;
9
11
  type: 'APPEND_FILTER_CHAR';
@@ -16,6 +18,7 @@ export type BrowseAction = {
16
18
  lockfile: Lockfile;
17
19
  org?: string;
18
20
  registry: Registry;
21
+ toolWarning?: string;
19
22
  type: 'LOAD_SUCCESS';
20
23
  } | {
21
24
  message: string;
@@ -28,6 +31,9 @@ export type BrowseAction = {
28
31
  } | {
29
32
  message: string;
30
33
  type: 'LOAD_ERROR';
34
+ } | {
35
+ message: string;
36
+ type: 'SET_LOADING_MESSAGE';
31
37
  } | {
32
38
  type: 'BEGIN_INSTALL';
33
39
  } | {
@@ -40,6 +46,8 @@ export type BrowseAction = {
40
46
  type: 'CURSOR_DOWN';
41
47
  } | {
42
48
  type: 'CURSOR_UP';
49
+ } | {
50
+ type: 'CYCLE_SORT';
43
51
  } | {
44
52
  type: 'CYCLE_TYPE';
45
53
  } | {
@@ -55,6 +63,11 @@ export type BrowseAction = {
55
63
  } | {
56
64
  type: 'TOGGLE_ORG_FILTER';
57
65
  };
66
+ export type BrowseInputResult = null | {
67
+ action: BrowseAction;
68
+ } | {
69
+ quit: true;
70
+ };
58
71
  export type BrowseItem = {
59
72
  data: RegistryAsset;
60
73
  kind: 'asset';
@@ -117,11 +130,38 @@ export type ReadyState = {
117
130
  orgOnly: boolean;
118
131
  registry: Registry;
119
132
  scrollOffset: number;
133
+ sortDirection: BrowseSortDirection;
134
+ sortField: BrowseSortField;
120
135
  status: 'ready';
136
+ toolWarning?: string;
121
137
  typeFilter: AssetTypeFilter;
122
138
  viewportHeight: number;
123
139
  };
140
+ /**
141
+ * Mirrors Ink's internal key type from ink ^6.0.0.
142
+ * When upgrading the ink dependency, verify this type still matches
143
+ * the key object shape passed to useInput callbacks in the Ink source.
144
+ */
145
+ type InkKey = {
146
+ backspace: boolean;
147
+ ctrl: boolean;
148
+ delete: boolean;
149
+ downArrow: boolean;
150
+ escape: boolean;
151
+ meta: boolean;
152
+ return: boolean;
153
+ tab: boolean;
154
+ upArrow: boolean;
155
+ };
124
156
  export declare function browseReducer(state: BrowseState, action: BrowseAction): BrowseState;
125
157
  export declare function computeFilteredItems(allAssets: RegistryAsset[], allBundles: RegistryBundle[], typeFilter: AssetTypeFilter, filterText: string, orgOnly?: boolean, org?: string): BrowseItem[];
126
- export declare function useBrowseState(initialFilterText: string, initialTypeFilter: AssetTypeFilter): readonly [BrowseState, import("react").ActionDispatch<[action: BrowseAction]>, (registry: Registry, lockfile: Lockfile, org?: string) => void];
158
+ export declare function computeSortedItems(items: BrowseItem[], sortField: BrowseSortField, sortDirection: BrowseSortDirection): BrowseItem[];
159
+ /**
160
+ * Pure function mapping keyboard input to a browse action (or quit signal).
161
+ * Returns null when the input should be ignored.
162
+ */
163
+ export declare function mapBrowseInput(input: string, key: InkKey, state: ReadyState): BrowseInputResult;
164
+ export declare function useBrowseInput(state: BrowseState, dispatch: React.Dispatch<BrowseAction>, onQuit: () => void): void;
165
+ export declare function useBrowseState(initialFilterText: string, initialTypeFilter: AssetTypeFilter): readonly [BrowseState, import("react").ActionDispatch<[action: BrowseAction]>, (registry: Registry, lockfile: Lockfile, org?: string, toolWarning?: string) => void];
166
+ export {};
127
167
  //# sourceMappingURL=useBrowseState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBrowseState.d.ts","sourceRoot":"","sources":["../../src/hooks/useBrowseState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBrowseState.d.ts","sourceRoot":"","sources":["../../src/hooks/useBrowseState.ts"],"names":[],"mappings":"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"}