@motivation-labs/crosscheck 0.9.0-beta.32 → 0.9.0-beta.35

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=repo-picker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-picker.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/repo-picker.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,115 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { filterIndices, adjustWindowStart, resolveViewport, truncate, advancePageStart } from '../lib/repo-picker.js';
3
+ describe('filterIndices', () => {
4
+ it('returns every index when query is empty', () => {
5
+ expect(filterIndices(['a', 'b', 'c'], '')).toEqual([0, 1, 2]);
6
+ });
7
+ it('is case-insensitive', () => {
8
+ expect(filterIndices(['Alpha', 'Beto', 'GAMMA'], 'A')).toEqual([0, 2]);
9
+ expect(filterIndices(['Alpha', 'Beto', 'GAMMA'], 'a')).toEqual([0, 2]);
10
+ });
11
+ it('matches substrings anywhere in the label', () => {
12
+ expect(filterIndices(['codatta/symphony', 'codatta/xny', 'org/other'], 'xny')).toEqual([1]);
13
+ });
14
+ it('returns [] when nothing matches', () => {
15
+ expect(filterIndices(['one', 'two'], 'zzz')).toEqual([]);
16
+ });
17
+ it('preserves original order', () => {
18
+ expect(filterIndices(['ab', 'ba', 'ab2', 'cb'], 'b')).toEqual([0, 1, 2, 3]);
19
+ });
20
+ });
21
+ describe('adjustWindowStart', () => {
22
+ // viewport = 5, total = 20 — common case
23
+ it('keeps window unchanged when cursor is already visible', () => {
24
+ expect(adjustWindowStart(3, 5, 5, 20)).toBe(3);
25
+ });
26
+ it('shifts up when cursor is above the window', () => {
27
+ expect(adjustWindowStart(10, 5, 5, 20)).toBe(5);
28
+ });
29
+ it('shifts down when cursor is past the window bottom', () => {
30
+ expect(adjustWindowStart(0, 7, 5, 20)).toBe(3); // cursor 7 → window [3, 8)
31
+ });
32
+ it('clamps so window never extends past the list', () => {
33
+ expect(adjustWindowStart(18, 19, 5, 20)).toBe(15); // total - viewport = 15
34
+ });
35
+ it('returns 0 when total < viewport', () => {
36
+ expect(adjustWindowStart(2, 1, 10, 3)).toBe(0);
37
+ });
38
+ it('returns 0 when total is 0', () => {
39
+ expect(adjustWindowStart(5, 0, 5, 0)).toBe(0);
40
+ });
41
+ it('never returns negative', () => {
42
+ expect(adjustWindowStart(-3, 0, 5, 10)).toBe(0);
43
+ });
44
+ });
45
+ describe('resolveViewport', () => {
46
+ it('uses the hint when terminal is tall enough', () => {
47
+ expect(resolveViewport(12, 40)).toBe(12);
48
+ });
49
+ it('caps the hint by terminal height minus chrome', () => {
50
+ // termRows=20 → ceiling = 20 - 6 = 14
51
+ expect(resolveViewport(50, 20)).toBe(14);
52
+ });
53
+ it('falls back to default page size when hint is missing', () => {
54
+ expect(resolveViewport(undefined, 40)).toBe(12); // DEFAULT_PAGE_SIZE
55
+ });
56
+ it('falls back to 24 rows when termRows is missing', () => {
57
+ // 24 - 6 = 18 ceiling, default hint 12 wins
58
+ expect(resolveViewport(undefined, undefined)).toBe(12);
59
+ });
60
+ it('floors at 3 even on tiny terminals', () => {
61
+ expect(resolveViewport(20, 5)).toBe(3);
62
+ });
63
+ it('treats zero or negative termRows as missing', () => {
64
+ expect(resolveViewport(12, 0)).toBe(12);
65
+ });
66
+ it('treats zero or negative hint as missing', () => {
67
+ expect(resolveViewport(0, 40)).toBe(12);
68
+ });
69
+ });
70
+ describe('truncate', () => {
71
+ it('returns the input unchanged when it fits', () => {
72
+ expect(truncate('hello', 10)).toBe('hello');
73
+ expect(truncate('hello', 5)).toBe('hello');
74
+ });
75
+ it('appends an ellipsis when truncation is needed', () => {
76
+ expect(truncate('hello world', 5)).toBe('hell…');
77
+ expect(truncate('hello', 4)).toBe('hel…');
78
+ });
79
+ it('returns just the ellipsis when only 1 column is available', () => {
80
+ expect(truncate('hello', 1)).toBe('…');
81
+ });
82
+ it('returns the empty string for zero or negative width', () => {
83
+ expect(truncate('hello', 0)).toBe('');
84
+ expect(truncate('hello', -3)).toBe('');
85
+ });
86
+ it('handles empty input safely', () => {
87
+ expect(truncate('', 10)).toBe('');
88
+ expect(truncate('', 0)).toBe('');
89
+ });
90
+ });
91
+ describe('advancePageStart', () => {
92
+ // viewport = 5, total = 20 — typical PgDn / PgUp scenarios
93
+ it('advances by one full viewport on PageDown', () => {
94
+ expect(advancePageStart(0, 5, 20, 1)).toBe(5);
95
+ expect(advancePageStart(5, 5, 20, 1)).toBe(10);
96
+ });
97
+ it('retreats by one full viewport on PageUp', () => {
98
+ expect(advancePageStart(10, 5, 20, -1)).toBe(5);
99
+ expect(advancePageStart(5, 5, 20, -1)).toBe(0);
100
+ });
101
+ it('clamps at zero on PageUp', () => {
102
+ expect(advancePageStart(2, 5, 20, -1)).toBe(0);
103
+ expect(advancePageStart(0, 5, 20, -1)).toBe(0);
104
+ });
105
+ it('clamps at total - viewport on PageDown', () => {
106
+ // From windowStart=15, PgDn would land at 20 — clamped to 15 (the last valid start).
107
+ expect(advancePageStart(15, 5, 20, 1)).toBe(15);
108
+ expect(advancePageStart(18, 5, 20, 1)).toBe(15);
109
+ });
110
+ it('returns 0 when total is smaller than the viewport', () => {
111
+ expect(advancePageStart(0, 10, 4, 1)).toBe(0);
112
+ expect(advancePageStart(0, 10, 4, -1)).toBe(0);
113
+ });
114
+ });
115
+ //# sourceMappingURL=repo-picker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-picker.test.js","sourceRoot":"","sources":["../../src/__tests__/repo-picker.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ export declare function filterIndices(items: string[], query: string): number[];
2
+ export declare function adjustWindowStart(windowStart: number, cursorPos: number, viewport: number, total: number): number;
3
+ export declare function resolveViewport(hint: number | undefined, termRows: number | undefined): number;
4
+ export declare function truncate(s: string, maxWidth: number): string;
5
+ export declare function advancePageStart(windowStart: number, viewport: number, total: number, direction: 1 | -1): number;
1
6
  export interface PickerItem {
2
7
  label: string;
3
8
  description?: string;
@@ -6,6 +11,7 @@ export interface PickerItem {
6
11
  export declare function promptSinglePicker(items: PickerItem[], opts?: {
7
12
  title?: string;
8
13
  defaultIndex?: number;
14
+ pageSize?: number;
9
15
  }): Promise<number>;
10
16
  export interface PickerOptions {
11
17
  title?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"repo-picker.d.ts","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,OAAO,CAAC,MAAM,CAAC,CA8EjB;AAID,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAC1C;AAID,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgJnB"}
1
+ {"version":3,"file":"repo-picker.d.ts","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"AAuBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtE;AAID,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAOR;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK9F;AAKD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5D;AAOD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAChB,MAAM,CAIR;AAID,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAID,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACtE,OAAO,CAAC,MAAM,CAAC,CA2GjB;AAID,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAC1C;AASD,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsOnB"}
@@ -3,11 +3,74 @@
3
3
  const HIDE_CURSOR = '\x1b[?25l';
4
4
  const SHOW_CURSOR = '\x1b[?25h';
5
5
  const ERASE_LINE = '\x1b[2K\r';
6
+ // Clears from the cursor to the bottom of the screen. Used before re-rendering
7
+ // so leftover content from a taller previous render doesn't linger when the new
8
+ // render is shorter (e.g. after a filter narrows the list).
9
+ const ERASE_DOWN = '\x1b[0J';
6
10
  const BOLD = '\x1b[1m';
7
11
  const DIM = '\x1b[2m';
8
12
  const CYAN = '\x1b[36m';
9
13
  const RESET = '\x1b[0m';
10
- const DEFAULT_PAGE_SIZE = 5;
14
+ const DEFAULT_PAGE_SIZE = 12;
15
+ // Chrome rows beyond the item viewport: title (≤1) + filter (1) + status (1) + footer (1) + safety (1).
16
+ const VIEWPORT_OVERHEAD = 6;
17
+ // ── Pure helpers (unit-tested) ───────────────────────────────────────────────
18
+ // Indices into `items` whose lowercase label includes the lowercased query.
19
+ // Empty query returns every index in order.
20
+ export function filterIndices(items, query) {
21
+ if (!query)
22
+ return items.map((_, i) => i);
23
+ const q = query.toLowerCase();
24
+ const out = [];
25
+ for (let i = 0; i < items.length; i++) {
26
+ if (items[i].toLowerCase().includes(q))
27
+ out.push(i);
28
+ }
29
+ return out;
30
+ }
31
+ // Shift the viewport so the cursor is inside [windowStart, windowStart + viewport).
32
+ // Pure: returns the new windowStart. Clamps so the viewport never extends past the list.
33
+ export function adjustWindowStart(windowStart, cursorPos, viewport, total) {
34
+ let ws = windowStart;
35
+ if (cursorPos < ws)
36
+ ws = cursorPos;
37
+ else if (cursorPos >= ws + viewport)
38
+ ws = cursorPos - viewport + 1;
39
+ if (ws + viewport > total)
40
+ ws = Math.max(0, total - viewport);
41
+ if (ws < 0)
42
+ ws = 0;
43
+ return ws;
44
+ }
45
+ // Resolve the actual viewport row count given a caller hint and the live terminal height.
46
+ export function resolveViewport(hint, termRows) {
47
+ const rows = termRows && termRows > 0 ? termRows : 24;
48
+ const ceiling = Math.max(3, rows - VIEWPORT_OVERHEAD);
49
+ const requested = hint && hint > 0 ? hint : DEFAULT_PAGE_SIZE;
50
+ return Math.max(3, Math.min(requested, ceiling));
51
+ }
52
+ // Truncate a string so its visible width fits within `maxWidth` columns. Appends
53
+ // `…` when truncation happens. ANSI-aware callers must pass plain text — this
54
+ // helper does not parse escape sequences.
55
+ export function truncate(s, maxWidth) {
56
+ if (maxWidth <= 0)
57
+ return '';
58
+ if (s.length <= maxWidth)
59
+ return s;
60
+ if (maxWidth === 1)
61
+ return '…';
62
+ return s.slice(0, maxWidth - 1) + '…';
63
+ }
64
+ // New windowStart after a PageDown / PageUp jump. The viewport advances by
65
+ // exactly one page so the visible window changes, not just the cursor — without
66
+ // this, PgDn would set cursorPos one viewport ahead but `adjustWindowStart`
67
+ // would only scroll far enough to make it visible (one row), so the picker
68
+ // behaves like a slow ↓ instead of a real page jump.
69
+ export function advancePageStart(windowStart, viewport, total, direction) {
70
+ const next = windowStart + direction * viewport;
71
+ const maxStart = Math.max(0, total - viewport);
72
+ return Math.max(0, Math.min(maxStart, next));
73
+ }
11
74
  // Arrow-key single-select. Returns the index of the chosen item.
12
75
  // Returns defaultIndex when stdin is not a TTY.
13
76
  export async function promptSinglePicker(items, opts = {}) {
@@ -15,28 +78,41 @@ export async function promptSinglePicker(items, opts = {}) {
15
78
  return opts.defaultIndex ?? 0;
16
79
  return new Promise((resolve, reject) => {
17
80
  let cursor = opts.defaultIndex ?? 0;
81
+ let windowStart = 0;
18
82
  let lastLineCount = 0;
83
+ const viewport = () => Math.min(resolveViewport(opts.pageSize, process.stdout.rows), items.length);
19
84
  function render(firstRender = false) {
85
+ const vp = viewport();
86
+ windowStart = adjustWindowStart(windowStart, cursor, vp, items.length);
20
87
  if (!firstRender) {
21
88
  process.stdout.write(`\x1b[${lastLineCount}A`);
22
89
  }
23
90
  const hint = items[cursor]?.hint ?? '';
24
- // title + items + hint line (always reserved) + footer
25
- lastLineCount = (opts.title ? 1 : 0) + items.length + 1 + 1;
91
+ const showStatus = items.length > vp;
92
+ // title + items + hint + status (only when overflow) + footer
93
+ lastLineCount = (opts.title ? 1 : 0) + vp + 1 + (showStatus ? 1 : 0) + 1;
26
94
  if (opts.title) {
27
95
  process.stdout.write(`${ERASE_LINE}${BOLD}${opts.title}${RESET}\n`);
28
96
  }
29
- for (let i = 0; i < items.length; i++) {
30
- const item = items[i];
31
- const isFocused = cursor === i;
97
+ for (let i = 0; i < vp; i++) {
98
+ const idx = windowStart + i;
99
+ if (idx >= items.length) {
100
+ process.stdout.write(`${ERASE_LINE}\n`);
101
+ continue;
102
+ }
103
+ const item = items[idx];
104
+ const isFocused = cursor === idx;
32
105
  const arrow = isFocused ? `${CYAN}❯${RESET}` : ' ';
33
106
  const descStr = item.description ? ` ${DIM}${item.description}${RESET}` : '';
34
107
  const labelStr = isFocused ? `${BOLD}${item.label}${RESET}` : `${DIM}${item.label}${RESET}`;
35
108
  process.stdout.write(`${ERASE_LINE} ${arrow} ${labelStr}${descStr}\n`);
36
109
  }
37
- // Hint line: always one line so the line count stays constant between renders
38
110
  process.stdout.write(`${ERASE_LINE}${hint ? `${DIM} 💡 ${hint}${RESET}` : ''}\n`);
39
- process.stdout.write(`${ERASE_LINE}${DIM} ↑↓ move · enter confirm${RESET}\n`);
111
+ if (showStatus) {
112
+ process.stdout.write(`${ERASE_LINE}${DIM} ${cursor + 1}/${items.length}${RESET}\n`);
113
+ }
114
+ const navHint = showStatus ? '↑↓ PgUp/PgDn move' : '↑↓ move';
115
+ process.stdout.write(`${ERASE_LINE}${DIM} ${navHint} · enter confirm${RESET}\n`);
40
116
  }
41
117
  function cleanup(index) {
42
118
  try {
@@ -71,6 +147,22 @@ export async function promptSinglePicker(items, opts = {}) {
71
147
  cursor = cursor < items.length - 1 ? cursor + 1 : 0;
72
148
  render();
73
149
  }
150
+ else if (key === '\x1b[5~') {
151
+ // PageUp — advance window AND cursor by one viewport so the page
152
+ // actually flips. Without the windowStart bump, adjustWindowStart would
153
+ // only scroll far enough to keep the cursor visible (one row).
154
+ const vp = viewport();
155
+ cursor = Math.max(0, cursor - vp);
156
+ windowStart = advancePageStart(windowStart, vp, items.length, -1);
157
+ render();
158
+ }
159
+ else if (key === '\x1b[6~') {
160
+ // PageDown — see PageUp comment.
161
+ const vp = viewport();
162
+ cursor = Math.min(items.length - 1, cursor + vp);
163
+ windowStart = advancePageStart(windowStart, vp, items.length, 1);
164
+ render();
165
+ }
74
166
  else if (key === '\r' || key === '\n') {
75
167
  process.removeListener('SIGINT', handleSigint);
76
168
  cleanup(cursor);
@@ -83,57 +175,106 @@ export async function promptSinglePicker(items, opts = {}) {
83
175
  });
84
176
  });
85
177
  }
86
- // Arrow-key + space multi-select. Returns selected items.
87
- // Returns [] when stdin is not a TTY.
178
+ // Arrow-key + space multi-select with a fixed-height viewport and `/` filter.
179
+ // Returns selected items. Returns [] when stdin is not a TTY.
180
+ //
181
+ // The viewport is capped by `pageSize` *and* the terminal height — we never emit
182
+ // more rows than fit on screen, so cursor-up offsets stay accurate. Press `/` to
183
+ // enter filter mode; typing narrows the visible list, Esc clears the filter,
184
+ // Enter exits filter mode and returns to selection.
88
185
  export async function promptRepoPicker(items, opts = {}) {
89
186
  if (!process.stdin.isTTY)
90
187
  return [];
91
188
  if (items.length === 0)
92
189
  return [];
93
- const effectivePageSize = opts.pageSize ?? DEFAULT_PAGE_SIZE;
94
190
  return new Promise((resolve, reject) => {
95
- let cursor = 0;
96
191
  const selected = new Set(opts.initialSelected
97
192
  ? opts.initialSelected.map(s => items.indexOf(s)).filter(i => i !== -1)
98
193
  : []);
99
- let showAll = false;
100
- // Track how many lines the last render printed so the next re-render moves
101
- // the cursor by the right amount even when showAll changes between renders.
194
+ let filterText = '';
195
+ let filterMode = false;
196
+ let filtered = filterIndices(items, '');
197
+ let cursorPos = 0; // index into `filtered`
198
+ let windowStart = 0; // index into `filtered`
102
199
  let lastLineCount = 0;
103
- function visibleItems() {
104
- if (showAll || items.length <= effectivePageSize) {
105
- return items.map((item, index) => ({ item, index }));
106
- }
107
- return items.slice(0, effectivePageSize).map((item, index) => ({ item, index }));
200
+ const viewport = () => resolveViewport(opts.pageSize, process.stdout.rows);
201
+ function recomputeFiltered() {
202
+ filtered = filterIndices(items, filterText);
203
+ if (cursorPos >= filtered.length)
204
+ cursorPos = Math.max(0, filtered.length - 1);
205
+ windowStart = adjustWindowStart(windowStart, cursorPos, viewport(), filtered.length);
108
206
  }
109
- const visible = () => visibleItems();
110
- const hasMore = () => !showAll && items.length > effectivePageSize;
111
207
  function render(firstRender = false) {
112
- const vis = visible();
208
+ const vp = viewport();
209
+ windowStart = adjustWindowStart(windowStart, cursorPos, vp, filtered.length);
113
210
  if (!firstRender) {
114
211
  process.stdout.write(`\x1b[${lastLineCount}A`);
212
+ // Erase leftover content from the previous (possibly taller) render so a
213
+ // shrinking filter doesn't leave stale rows hanging below the new output.
214
+ process.stdout.write(ERASE_DOWN);
115
215
  }
116
- lastLineCount = (opts.title ? 1 : 0) + vis.length + (hasMore() ? 1 : 0) + 1;
216
+ // Render exactly as many item rows as we have items, capped at the
217
+ // viewport. Empty filter result → one "(no matches)" hint row instead.
218
+ const visibleRows = Math.min(vp, filtered.length);
219
+ const emptyHint = filtered.length === 0;
220
+ const itemRows = emptyHint ? 1 : visibleRows;
221
+ lastLineCount = (opts.title ? 1 : 0) + 1 + itemRows + 1 + 1;
117
222
  if (opts.title) {
118
223
  process.stdout.write(`${ERASE_LINE}${BOLD}${opts.title}${RESET}\n`);
119
224
  }
120
- for (const { item, index } of vis) {
121
- const isSelected = selected.has(index);
122
- const isFocused = cursor === index;
123
- const checkStr = isSelected ? `${CYAN}[x]${RESET}` : '[ ]';
124
- const desc = opts.getDescription ? opts.getDescription(item) : '';
125
- const descStr = desc ? ` ${DIM}${desc}${RESET}` : '';
126
- if (isFocused) {
127
- process.stdout.write(`${ERASE_LINE} ${checkStr} ${BOLD}${item}${RESET}${descStr}\n`);
128
- }
129
- else {
130
- process.stdout.write(`${ERASE_LINE} ${checkStr} ${DIM}${item}${RESET}${descStr}\n`);
131
- }
225
+ // All user-controlled / variable-width text is clipped to the live
226
+ // terminal width before rendering. If a line wrapped, the terminal would
227
+ // consume an extra row that lastLineCount doesn't know about, and the
228
+ // next cursor-up would land on the wrong line (re-introducing the
229
+ // overflow bug this PR set out to fix, just triggered by a wide filter
230
+ // string instead of a tall list).
231
+ const cols = process.stdout.columns && process.stdout.columns > 0 ? process.stdout.columns : 80;
232
+ const innerWidth = Math.max(1, cols - 2); // leading " "
233
+ if (filterMode || filterText) {
234
+ const caret = filterMode ? '█' : '';
235
+ // Visible prefix on this line: " / " (4 cols). Caret is 1 col when present.
236
+ const filterMax = Math.max(0, cols - 4 - (caret ? 1 : 0));
237
+ const filterDisplay = truncate(filterText, filterMax);
238
+ process.stdout.write(`${ERASE_LINE} ${CYAN}/${RESET} ${filterDisplay}${caret}\n`);
132
239
  }
133
- if (hasMore()) {
134
- process.stdout.write(`${ERASE_LINE}${DIM} ... ${items.length - effectivePageSize} more — press m to show all${RESET}\n`);
240
+ else {
241
+ process.stdout.write(`${ERASE_LINE}\n`);
135
242
  }
136
- process.stdout.write(`${ERASE_LINE}${DIM} ↑↓ move · space select · a all · enter confirm${hasMore() ? ' · m more' : ''}${RESET}\n`);
243
+ if (emptyHint) {
244
+ process.stdout.write(`${ERASE_LINE} ${DIM}(no matches)${RESET}\n`);
245
+ }
246
+ else {
247
+ for (let row = 0; row < visibleRows; row++) {
248
+ const fi = windowStart + row;
249
+ const origIdx = filtered[fi];
250
+ const item = items[origIdx];
251
+ const isSelected = selected.has(origIdx);
252
+ const isFocused = cursorPos === fi;
253
+ const checkStr = isSelected ? `${CYAN}[x]${RESET}` : '[ ]';
254
+ const desc = opts.getDescription ? opts.getDescription(item) : '';
255
+ // Budget: cols - 2 (indent) - 4 ("[x] ") - (desc.length + 2 spaces if desc).
256
+ const descBudget = desc ? desc.length + 2 : 0;
257
+ const labelMax = Math.max(1, cols - 6 - descBudget);
258
+ const itemDisplay = truncate(item, labelMax);
259
+ const descStr = desc ? ` ${DIM}${desc}${RESET}` : '';
260
+ const labelStr = isFocused ? `${BOLD}${itemDisplay}${RESET}` : `${DIM}${itemDisplay}${RESET}`;
261
+ process.stdout.write(`${ERASE_LINE} ${checkStr} ${labelStr}${descStr}\n`);
262
+ }
263
+ }
264
+ const total = filtered.length;
265
+ const pos = total === 0 ? 0 : cursorPos + 1;
266
+ const selCount = selected.size;
267
+ const filterNote = filterText ? ` · filter: "${filterText}"` : '';
268
+ const selNote = selCount > 0 ? ` · ${selCount} selected` : '';
269
+ const statusLine = truncate(`${pos}/${total}${filterNote}${selNote}`, innerWidth);
270
+ process.stdout.write(`${ERASE_LINE}${DIM} ${statusLine}${RESET}\n`);
271
+ // PgUp/PgDn only when the *current* visible list overflows the viewport.
272
+ // After a filter narrows the list, the hint shrinks accordingly.
273
+ const navHint = filtered.length > vp ? '↑↓ PgUp/PgDn move' : '↑↓ move';
274
+ const footerLine = filterMode
275
+ ? `${navHint} · type to filter · backspace · esc clear · enter done`
276
+ : `${navHint} · space select · a all · / filter · enter confirm`;
277
+ process.stdout.write(`${ERASE_LINE}${DIM} ${truncate(footerLine, innerWidth)}${RESET}\n`);
137
278
  }
138
279
  function cleanup(result) {
139
280
  try {
@@ -156,60 +297,103 @@ export async function promptRepoPicker(items, opts = {}) {
156
297
  process.once('SIGINT', handleSigint);
157
298
  process.stdin.on('data', (key) => {
158
299
  if (key === '\x03') {
159
- // Ctrl+C
160
300
  process.removeListener('SIGINT', handleSigint);
161
301
  cleanup([]);
162
302
  process.exit(130);
163
303
  }
164
- const vis = visible();
165
- const visIndices = vis.map(v => v.index);
166
- const posInVis = visIndices.indexOf(cursor);
304
+ // Navigation keys work in both modes — let the user scroll while filtering.
167
305
  if (key === '\x1b[A') {
168
- // up arrow
169
- if (posInVis > 0) {
170
- cursor = visIndices[posInVis - 1];
171
- }
172
- else {
173
- cursor = visIndices[visIndices.length - 1];
174
- }
306
+ if (filtered.length === 0)
307
+ return;
308
+ cursorPos = cursorPos > 0 ? cursorPos - 1 : filtered.length - 1;
175
309
  render();
310
+ return;
176
311
  }
177
- else if (key === '\x1b[B') {
178
- // down arrow
179
- if (posInVis < vis.length - 1) {
180
- cursor = visIndices[posInVis + 1];
312
+ if (key === '\x1b[B') {
313
+ if (filtered.length === 0)
314
+ return;
315
+ cursorPos = cursorPos < filtered.length - 1 ? cursorPos + 1 : 0;
316
+ render();
317
+ return;
318
+ }
319
+ if (key === '\x1b[5~') {
320
+ // PageUp — advance window AND cursor by one viewport so the page
321
+ // actually flips. Without the windowStart bump, adjustWindowStart would
322
+ // only scroll far enough to keep the cursor visible (one row).
323
+ if (filtered.length === 0)
324
+ return;
325
+ const vp = viewport();
326
+ cursorPos = Math.max(0, cursorPos - vp);
327
+ windowStart = advancePageStart(windowStart, vp, filtered.length, -1);
328
+ render();
329
+ return;
330
+ }
331
+ if (key === '\x1b[6~') {
332
+ // PageDown — see PageUp comment.
333
+ if (filtered.length === 0)
334
+ return;
335
+ const vp = viewport();
336
+ cursorPos = Math.min(filtered.length - 1, cursorPos + vp);
337
+ windowStart = advancePageStart(windowStart, vp, filtered.length, 1);
338
+ render();
339
+ return;
340
+ }
341
+ if (filterMode) {
342
+ if (key === '\x1b') {
343
+ // Esc — clear filter and exit filter mode
344
+ filterMode = false;
345
+ filterText = '';
346
+ recomputeFiltered();
347
+ render();
348
+ return;
349
+ }
350
+ if (key === '\r' || key === '\n') {
351
+ // Enter — exit filter mode, keep filter applied
352
+ filterMode = false;
353
+ render();
354
+ return;
181
355
  }
182
- else {
183
- cursor = visIndices[0];
356
+ if (key === '\x7f' || key === '\b') {
357
+ // Backspace
358
+ filterText = filterText.slice(0, -1);
359
+ recomputeFiltered();
360
+ render();
361
+ return;
184
362
  }
363
+ // Printable characters extend the filter. Reject control sequences and
364
+ // anything multi-byte we don't recognize.
365
+ if (key.length === 1 && key >= ' ' && key <= '~') {
366
+ filterText += key;
367
+ recomputeFiltered();
368
+ render();
369
+ return;
370
+ }
371
+ return;
372
+ }
373
+ // Non-filter mode
374
+ if (key === '/') {
375
+ filterMode = true;
185
376
  render();
186
377
  }
187
378
  else if (key === ' ') {
188
- if (selected.has(cursor)) {
189
- selected.delete(cursor);
190
- }
191
- else {
192
- selected.add(cursor);
193
- }
379
+ if (filtered.length === 0)
380
+ return;
381
+ const origIdx = filtered[cursorPos];
382
+ if (selected.has(origIdx))
383
+ selected.delete(origIdx);
384
+ else
385
+ selected.add(origIdx);
194
386
  render();
195
387
  }
196
388
  else if (key === 'a') {
197
- // Toggle only the currently visible set hidden overflow items are never
198
- // touched until the user expands with `m`.
199
- const visIndicesAll = visible().map(v => v.index);
200
- const allVisSelected = visIndicesAll.every(i => selected.has(i));
201
- if (allVisSelected) {
202
- for (const i of visIndicesAll)
389
+ // Toggle every item in the current filtered view.
390
+ const allOn = filtered.every(i => selected.has(i));
391
+ if (allOn)
392
+ for (const i of filtered)
203
393
  selected.delete(i);
204
- }
205
- else {
206
- for (const i of visIndicesAll)
394
+ else
395
+ for (const i of filtered)
207
396
  selected.add(i);
208
- }
209
- render();
210
- }
211
- else if (key === 'm' && hasMore()) {
212
- showAll = true;
213
397
  render();
214
398
  }
215
399
  else if (key === '\r' || key === '\n') {
@@ -1 +1 @@
1
- {"version":3,"file":"repo-picker.js","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-picker.js","sourceRoot":"","sources":["../../src/lib/repo-picker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motivation-labs/crosscheck",
3
- "version": "0.9.0-beta.32",
3
+ "version": "0.9.0-beta.35",
4
4
  "description": "Cross-vendor AI code review orchestrator — Claude Code ↔ Codex",
5
5
  "bin": {
6
6
  "crosscheck": "dist/cli.js",