geeto 0.1.1 → 0.3.3

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 (118) hide show
  1. package/README.md +138 -43
  2. package/lib/api/github.d.ts +91 -0
  3. package/lib/api/github.d.ts.map +1 -0
  4. package/lib/api/github.js +163 -0
  5. package/lib/api/github.js.map +1 -0
  6. package/lib/api/trello.js +1 -1
  7. package/lib/api/trello.js.map +1 -1
  8. package/lib/cli/input.d.ts +1 -0
  9. package/lib/cli/input.d.ts.map +1 -1
  10. package/lib/cli/input.js +349 -0
  11. package/lib/cli/input.js.map +1 -1
  12. package/lib/cli/menu.d.ts +4 -0
  13. package/lib/cli/menu.d.ts.map +1 -1
  14. package/lib/cli/menu.js +452 -31
  15. package/lib/cli/menu.js.map +1 -1
  16. package/lib/core/github-setup.d.ts +8 -0
  17. package/lib/core/github-setup.d.ts.map +1 -0
  18. package/lib/core/github-setup.js +114 -0
  19. package/lib/core/github-setup.js.map +1 -0
  20. package/lib/index.js +291 -29
  21. package/lib/index.js.map +1 -1
  22. package/lib/types/index.d.ts +15 -0
  23. package/lib/types/index.d.ts.map +1 -1
  24. package/lib/utils/branch-naming.js +1 -1
  25. package/lib/utils/branch-naming.js.map +1 -1
  26. package/lib/utils/config.d.ts +17 -1
  27. package/lib/utils/config.d.ts.map +1 -1
  28. package/lib/utils/config.js +53 -1
  29. package/lib/utils/config.js.map +1 -1
  30. package/lib/utils/display.d.ts +20 -0
  31. package/lib/utils/display.d.ts.map +1 -1
  32. package/lib/utils/display.js +84 -21
  33. package/lib/utils/display.js.map +1 -1
  34. package/lib/utils/exec.d.ts +1 -1
  35. package/lib/utils/exec.d.ts.map +1 -1
  36. package/lib/utils/exec.js +2 -2
  37. package/lib/utils/exec.js.map +1 -1
  38. package/lib/utils/git-errors.js +3 -3
  39. package/lib/utils/git-errors.js.map +1 -1
  40. package/lib/utils/git.d.ts +9 -0
  41. package/lib/utils/git.d.ts.map +1 -1
  42. package/lib/utils/git.js +15 -0
  43. package/lib/utils/git.js.map +1 -1
  44. package/lib/utils/logging.d.ts +2 -0
  45. package/lib/utils/logging.d.ts.map +1 -1
  46. package/lib/utils/logging.js +7 -1
  47. package/lib/utils/logging.js.map +1 -1
  48. package/lib/workflows/amend.d.ts +9 -0
  49. package/lib/workflows/amend.d.ts.map +1 -0
  50. package/lib/workflows/amend.js +241 -0
  51. package/lib/workflows/amend.js.map +1 -0
  52. package/lib/workflows/branch.d.ts.map +1 -1
  53. package/lib/workflows/branch.js +2 -1
  54. package/lib/workflows/branch.js.map +1 -1
  55. package/lib/workflows/cherry-pick.d.ts +9 -0
  56. package/lib/workflows/cherry-pick.d.ts.map +1 -0
  57. package/lib/workflows/cherry-pick.js +237 -0
  58. package/lib/workflows/cherry-pick.js.map +1 -0
  59. package/lib/workflows/cleanup.d.ts +1 -1
  60. package/lib/workflows/cleanup.d.ts.map +1 -1
  61. package/lib/workflows/cleanup.js +93 -69
  62. package/lib/workflows/cleanup.js.map +1 -1
  63. package/lib/workflows/commit.d.ts.map +1 -1
  64. package/lib/workflows/commit.js +38 -19
  65. package/lib/workflows/commit.js.map +1 -1
  66. package/lib/workflows/compare.d.ts +9 -0
  67. package/lib/workflows/compare.d.ts.map +1 -0
  68. package/lib/workflows/compare.js +231 -0
  69. package/lib/workflows/compare.js.map +1 -0
  70. package/lib/workflows/history.d.ts +9 -0
  71. package/lib/workflows/history.d.ts.map +1 -0
  72. package/lib/workflows/history.js +194 -0
  73. package/lib/workflows/history.js.map +1 -0
  74. package/lib/workflows/issue.d.ts +9 -0
  75. package/lib/workflows/issue.d.ts.map +1 -0
  76. package/lib/workflows/issue.js +211 -0
  77. package/lib/workflows/issue.js.map +1 -0
  78. package/lib/workflows/main-steps.d.ts.map +1 -1
  79. package/lib/workflows/main-steps.js +12 -10
  80. package/lib/workflows/main-steps.js.map +1 -1
  81. package/lib/workflows/main.d.ts.map +1 -1
  82. package/lib/workflows/main.js +29 -38
  83. package/lib/workflows/main.js.map +1 -1
  84. package/lib/workflows/pr.d.ts +9 -0
  85. package/lib/workflows/pr.d.ts.map +1 -0
  86. package/lib/workflows/pr.js +280 -0
  87. package/lib/workflows/pr.js.map +1 -0
  88. package/lib/workflows/release.d.ts +7 -0
  89. package/lib/workflows/release.d.ts.map +1 -0
  90. package/lib/workflows/release.js +445 -0
  91. package/lib/workflows/release.js.map +1 -0
  92. package/lib/workflows/security-gate.d.ts.map +1 -1
  93. package/lib/workflows/security-gate.js +91 -7
  94. package/lib/workflows/security-gate.js.map +1 -1
  95. package/lib/workflows/settings.d.ts +5 -1
  96. package/lib/workflows/settings.d.ts.map +1 -1
  97. package/lib/workflows/settings.js +62 -3
  98. package/lib/workflows/settings.js.map +1 -1
  99. package/lib/workflows/stash.d.ts +9 -0
  100. package/lib/workflows/stash.d.ts.map +1 -0
  101. package/lib/workflows/stash.js +341 -0
  102. package/lib/workflows/stash.js.map +1 -0
  103. package/lib/workflows/stats.d.ts +9 -0
  104. package/lib/workflows/stats.d.ts.map +1 -0
  105. package/lib/workflows/stats.js +288 -0
  106. package/lib/workflows/stats.js.map +1 -0
  107. package/lib/workflows/switch.d.ts +9 -0
  108. package/lib/workflows/switch.d.ts.map +1 -0
  109. package/lib/workflows/switch.js +154 -0
  110. package/lib/workflows/switch.js.map +1 -0
  111. package/lib/workflows/trello-menu.d.ts.map +1 -1
  112. package/lib/workflows/trello-menu.js +59 -19
  113. package/lib/workflows/trello-menu.js.map +1 -1
  114. package/lib/workflows/undo.d.ts +9 -0
  115. package/lib/workflows/undo.d.ts.map +1 -0
  116. package/lib/workflows/undo.js +464 -0
  117. package/lib/workflows/undo.js.map +1 -0
  118. package/package.json +2 -2
package/lib/cli/menu.js CHANGED
@@ -32,47 +32,88 @@ export const select = async (question, options) => {
32
32
  const end = Math.min(scrollOffset + maxVisibleItems, filteredOptions.length);
33
33
  return { start, end };
34
34
  };
35
+ /**
36
+ * Strip ANSI escape codes to get visible text length
37
+ */
38
+ const stripAnsi = (str) => str.replaceAll(/\u001B\[\d*;?\d*m|\u001B\]8;;[^\u0007]*\u0007/g, '');
39
+ const renderItem = (opt, idx) => {
40
+ const prefix = idx === selectedIndex ? `${colors.cyan}❯${colors.reset}` : ' ';
41
+ // Truncate label to terminal width
42
+ const cols = process.stdout.columns || 80;
43
+ const prefixLen = 2; // "❯ "
44
+ const maxLabelLen = cols - prefixLen - 1;
45
+ const visibleLabel = stripAnsi(opt.label);
46
+ let displayLabel;
47
+ if (visibleLabel.length > maxLabelLen && maxLabelLen > 3) {
48
+ const truncated = visibleLabel.slice(0, maxLabelLen - 1) + '…';
49
+ displayLabel =
50
+ idx === selectedIndex
51
+ ? `${colors.cyan}${colors.bright}${truncated}${colors.reset}`
52
+ : `${colors.gray}${truncated}${colors.reset}`;
53
+ }
54
+ else {
55
+ displayLabel =
56
+ idx === selectedIndex
57
+ ? `${colors.cyan}${colors.bright}${opt.label}${colors.reset}`
58
+ : `${colors.gray}${opt.label}${colors.reset}`;
59
+ }
60
+ return `${prefix} ${displayLabel}`;
61
+ };
62
+ // Track rendered line count for accurate clearing
63
+ let lastRenderedLines = 0;
35
64
  const renderMenu = () => {
36
65
  const { start, end } = getVisibleRange();
37
- const visibleCount = end - start;
38
- // Clear only the rendered lines (visible items + hint + search input + blank line)
39
- const linesToClear = visibleCount + (searchMode ? 3 : 2);
40
- for (let i = 0; i < linesToClear; i++) {
66
+ // If search mode, cursor is on the search input line (no newline)
67
+ if (searchMode) {
68
+ process.stdout.write('\u001B[2K\r'); // Clear current search input line
69
+ }
70
+ // Clear previous render
71
+ for (let i = 0; i < lastRenderedLines; i++) {
41
72
  process.stdout.write('\u001B[1A\u001B[2K');
42
73
  }
43
- // Re-render hint and items (question stays at top)
74
+ let linesRendered = 0;
75
+ console.log(''); // Blank line
76
+ linesRendered++;
77
+ for (let idx = start; idx < end; idx++) {
78
+ const opt = filteredOptions[idx];
79
+ if (!opt)
80
+ continue;
81
+ console.log(renderItem(opt, idx));
82
+ linesRendered++;
83
+ }
84
+ // Hint + search at bottom
85
+ console.log(''); // Separator
86
+ linesRendered++;
44
87
  const hintText = searchMode
45
88
  ? ` (Esc cancel search, Enter select)`
46
89
  : ` (↑↓/jk arrows, / search, Enter select, 'c' clear, 'q' quit)`;
47
90
  console.log(`${colors.gray}${hintText}${colors.reset}`);
91
+ linesRendered++;
48
92
  if (searchMode) {
49
- console.log(`${colors.cyan}/ search:${colors.reset} ${searchQuery}`);
93
+ process.stdout.write(`${colors.cyan}/ search:${colors.reset} ${searchQuery}`);
50
94
  }
95
+ lastRenderedLines = linesRendered;
96
+ };
97
+ // Initial render (question + items + hint)
98
+ console.log(`${colors.cyan}?${colors.reset} ${question}`);
99
+ {
100
+ let initLines = 0;
51
101
  console.log(''); // Blank line
102
+ initLines++;
103
+ const { start, end } = getVisibleRange();
52
104
  for (let idx = start; idx < end; idx++) {
53
105
  const opt = filteredOptions[idx];
54
106
  if (!opt)
55
107
  continue;
56
- const prefix = idx === selectedIndex ? `${colors.cyan}❯${colors.reset}` : ' ';
57
- const label = idx === selectedIndex
58
- ? `${colors.cyan}${colors.bright}${opt.label}${colors.reset}`
59
- : `${colors.gray}${opt.label}${colors.reset}`;
60
- console.log(`${prefix} ${label}`);
108
+ console.log(renderItem(opt, idx));
109
+ initLines++;
61
110
  }
62
- };
63
- // Initial render (question + hint + items)
64
- console.log(`${colors.cyan}?${colors.reset} ${question}`);
65
- console.log(`${colors.gray} (↑↓/jk arrows, / search, Enter select, 'c' clear, 'q' quit)${colors.reset}\n`);
66
- const { start, end } = getVisibleRange();
67
- for (let idx = start; idx < end; idx++) {
68
- const opt = filteredOptions[idx];
69
- if (!opt)
70
- continue;
71
- const prefix = idx === selectedIndex ? `${colors.cyan}❯${colors.reset}` : ' ';
72
- const label = idx === selectedIndex
73
- ? `${colors.cyan}${colors.bright}${opt.label}${colors.reset}`
74
- : `${colors.gray}${opt.label}${colors.reset}`;
75
- console.log(`${prefix} ${label}`);
111
+ // Hint at bottom
112
+ console.log('');
113
+ initLines++;
114
+ console.log(`${colors.gray} (↑↓/jk arrows, / search, Enter select, 'c' clear, 'q' quit)${colors.reset}`);
115
+ initLines++;
116
+ lastRenderedLines = initLines;
76
117
  }
77
118
  if (process.stdin.isTTY) {
78
119
  process.stdin.setRawMode(true);
@@ -178,18 +219,398 @@ export const select = async (question, options) => {
178
219
  case 'C': {
179
220
  console.clear();
180
221
  console.log(`${colors.cyan}?${colors.reset} ${question}`);
181
- console.log(`${colors.gray} (↑↓/jk arrows, / search, Enter select, 'c' clear, 'q' quit)${colors.reset}\n`);
222
+ let clearLines = 0;
223
+ console.log('');
224
+ clearLines++;
225
+ const { start, end } = getVisibleRange();
226
+ for (let idx = start; idx < end; idx++) {
227
+ const opt = filteredOptions[idx];
228
+ if (!opt)
229
+ continue;
230
+ console.log(renderItem(opt, idx));
231
+ clearLines++;
232
+ }
233
+ console.log('');
234
+ clearLines++;
235
+ console.log(`${colors.gray} (↑↓/jk arrows, / search, Enter select, 'c' clear, 'q' quit)${colors.reset}`);
236
+ clearLines++;
237
+ lastRenderedLines = clearLines;
238
+ break;
239
+ }
240
+ }
241
+ };
242
+ currentDataListener = onKeypress;
243
+ process.stdin.on('data', onKeypress);
244
+ });
245
+ };
246
+ /**
247
+ * Interactive multi-select menu with checkboxes (Space to toggle, Enter to confirm)
248
+ */
249
+ export const multiSelect = async (question, options) => {
250
+ return new Promise((resolve) => {
251
+ let selectedIndex = 0;
252
+ const maxVisibleItems = 15;
253
+ let scrollOffset = 0;
254
+ let searchMode = false;
255
+ let rangeMode = false;
256
+ let searchQuery = '';
257
+ let rangeQuery = '';
258
+ let filteredOptions = options;
259
+ const checked = new Set();
260
+ const filterOptions = (query) => {
261
+ if (!query)
262
+ return options;
263
+ return options.filter((opt) => opt.label.toLowerCase().includes(query.toLowerCase()));
264
+ };
265
+ const getVisibleRange = () => {
266
+ if (selectedIndex < scrollOffset) {
267
+ scrollOffset = selectedIndex;
268
+ }
269
+ else if (selectedIndex >= scrollOffset + maxVisibleItems) {
270
+ scrollOffset = selectedIndex - maxVisibleItems + 1;
271
+ }
272
+ const start = scrollOffset;
273
+ const end = Math.min(scrollOffset + maxVisibleItems, filteredOptions.length);
274
+ return { start, end };
275
+ };
276
+ /**
277
+ * Strip ANSI escape codes to get visible text length
278
+ */
279
+ const stripAnsi = (str) => str.replaceAll(/\u001B\[\d*;?\d*m|\u001B\]8;;[^\u0007]*\u0007/g, '');
280
+ const renderItem = (opt, idx) => {
281
+ const cursor = idx === selectedIndex ? `${colors.cyan}❯${colors.reset}` : ' ';
282
+ const box = checked.has(opt.value)
283
+ ? `${colors.green}◉${colors.reset}`
284
+ : `${colors.gray}○${colors.reset}`;
285
+ // Show 1-based number for quick range selection
286
+ const num = `${colors.gray}${String(idx + 1).padStart(2, ' ')}${colors.reset}`;
287
+ // Truncate label to fit terminal width
288
+ const cols = process.stdout.columns || 80;
289
+ const prefixLen = 5 + Math.max(2, String(idx + 1).length); // "❯ ◉ XX "
290
+ const maxLabelLen = cols - prefixLen - 1;
291
+ const visibleLabel = stripAnsi(opt.label);
292
+ let displayLabel = opt.label;
293
+ if (visibleLabel.length > maxLabelLen && maxLabelLen > 3) {
294
+ // Truncate the visible text and re-apply color
295
+ const truncated = visibleLabel.slice(0, maxLabelLen - 1) + '…';
296
+ displayLabel =
297
+ idx === selectedIndex
298
+ ? `${colors.cyan}${colors.bright}${truncated}${colors.reset}`
299
+ : `${colors.gray}${truncated}${colors.reset}`;
300
+ }
301
+ else {
302
+ displayLabel =
303
+ idx === selectedIndex
304
+ ? `${colors.cyan}${colors.bright}${opt.label}${colors.reset}`
305
+ : `${colors.gray}${opt.label}${colors.reset}`;
306
+ }
307
+ return `${cursor} ${box} ${num} ${displayLabel}`;
308
+ };
309
+ // Track how many lines the previous render produced (for accurate clearing)
310
+ let lastRenderedLines = 0;
311
+ const renderMenu = () => {
312
+ const { start, end } = getVisibleRange();
313
+ // If range mode, cursor is on the range input line (no newline was written)
314
+ // First clear current line, then go up for the rest
315
+ if (rangeMode) {
316
+ process.stdout.write('\u001B[2K\r'); // Clear current range input line
317
+ }
318
+ // Clear exactly the number of lines the PREVIOUS render produced
319
+ for (let i = 0; i < lastRenderedLines; i++) {
320
+ process.stdout.write('\u001B[1A\u001B[2K');
321
+ }
322
+ let linesRendered = 0;
323
+ if (searchMode) {
324
+ console.log(`${colors.cyan}/ search:${colors.reset} ${searchQuery}`);
325
+ linesRendered++;
326
+ }
327
+ // Count line
328
+ console.log(`${colors.gray} Selected: ${colors.cyan}${checked.size}${colors.gray}/${options.length}${colors.reset}`);
329
+ linesRendered++;
330
+ console.log(''); // Blank line
331
+ linesRendered++;
332
+ for (let idx = start; idx < end; idx++) {
333
+ const opt = filteredOptions[idx];
334
+ if (!opt)
335
+ continue;
336
+ console.log(renderItem(opt, idx));
337
+ linesRendered++;
338
+ }
339
+ console.log(''); // Separator before hint
340
+ linesRendered++;
341
+ // Hint line at bottom
342
+ const hintText = rangeMode
343
+ ? ` (Type numbers: "1 3 5" or "1-10", Enter apply, Esc cancel)`
344
+ : searchMode
345
+ ? ` (Esc cancel search, Space toggle, Enter confirm)`
346
+ : ` (↑↓/jk Space toggle, 'a' all, 'n' none, '#' range, / search, Enter confirm, 'q' quit)`;
347
+ console.log(`${colors.gray}${hintText}${colors.reset}`);
348
+ linesRendered++;
349
+ // Range input at the very bottom (no newline so cursor stays at end)
350
+ if (rangeMode) {
351
+ process.stdout.write(`${colors.cyan}# range:${colors.reset} ${rangeQuery}`);
352
+ }
353
+ lastRenderedLines = linesRendered;
354
+ };
355
+ // Initial render
356
+ console.log(`${colors.cyan}?${colors.reset} ${question}`);
357
+ {
358
+ let initLines = 0;
359
+ console.log(`${colors.gray} Selected: ${colors.cyan}${checked.size}${colors.gray}/${options.length}${colors.reset}`);
360
+ initLines++;
361
+ console.log('');
362
+ initLines++;
363
+ const { start, end } = getVisibleRange();
364
+ for (let idx = start; idx < end; idx++) {
365
+ const opt = filteredOptions[idx];
366
+ if (!opt)
367
+ continue;
368
+ console.log(renderItem(opt, idx));
369
+ initLines++;
370
+ }
371
+ // Hint at bottom
372
+ console.log('');
373
+ initLines++;
374
+ console.log(`${colors.gray} (↑↓/jk Space toggle, 'a' all, 'n' none, '#' range, / search, Enter confirm, 'q' quit)${colors.reset}`);
375
+ initLines++;
376
+ lastRenderedLines = initLines;
377
+ }
378
+ if (process.stdin.isTTY) {
379
+ process.stdin.setRawMode(true);
380
+ }
381
+ process.stdin.resume();
382
+ const cleanup = () => {
383
+ if (currentDataListener) {
384
+ process.stdin.removeListener('data', currentDataListener);
385
+ currentDataListener = null;
386
+ }
387
+ if (process.stdin.isTTY) {
388
+ process.stdin.setRawMode(false);
389
+ }
390
+ process.stdin.pause();
391
+ };
392
+ /**
393
+ * Parse range input like "1 3 5" or "1-10" or "1-5 8 10-12"
394
+ * Returns 0-based indices
395
+ */
396
+ const parseRangeInput = (input) => {
397
+ const indices = [];
398
+ const parts = input.trim().split(/[\s,]+/);
399
+ for (const part of parts) {
400
+ if (part.includes('-')) {
401
+ const rangeParts = part.split('-').map((s) => Number.parseInt(s.trim(), 10));
402
+ const rangeStart = rangeParts[0];
403
+ const rangeEnd = rangeParts[1];
404
+ if (rangeStart !== undefined &&
405
+ rangeEnd !== undefined &&
406
+ !Number.isNaN(rangeStart) &&
407
+ !Number.isNaN(rangeEnd) &&
408
+ rangeStart > 0 &&
409
+ rangeEnd <= options.length) {
410
+ for (let i = rangeStart - 1; i < rangeEnd; i++) {
411
+ if (!indices.includes(i))
412
+ indices.push(i);
413
+ }
414
+ }
415
+ }
416
+ else {
417
+ const num = Number.parseInt(part, 10);
418
+ if (!Number.isNaN(num) && num > 0 && num <= options.length) {
419
+ const idx = num - 1;
420
+ if (!indices.includes(idx))
421
+ indices.push(idx);
422
+ }
423
+ }
424
+ }
425
+ return indices;
426
+ };
427
+ const onKeypress = (key) => {
428
+ const keyStr = key.toString();
429
+ // Handle range mode
430
+ if (rangeMode) {
431
+ if (keyStr === '\u001B') {
432
+ // Escape - cancel range mode
433
+ rangeMode = false;
434
+ rangeQuery = '';
435
+ renderMenu();
436
+ return;
437
+ }
438
+ if (keyStr === '\r' || keyStr === '\n') {
439
+ // Apply range selection
440
+ const indices = parseRangeInput(rangeQuery);
441
+ for (const idx of indices) {
442
+ const opt = options[idx];
443
+ if (opt)
444
+ checked.add(opt.value);
445
+ }
446
+ rangeMode = false;
447
+ rangeQuery = '';
448
+ renderMenu();
449
+ return;
450
+ }
451
+ if (keyStr === '\u007F' || keyStr === '\b') {
452
+ rangeQuery = rangeQuery.slice(0, -1);
453
+ renderMenu();
454
+ return;
455
+ }
456
+ // Allow digits, spaces, dashes, commas
457
+ if (keyStr.length === 1 && /[\d\s\-,]/.test(keyStr)) {
458
+ rangeQuery += keyStr;
459
+ renderMenu();
460
+ return;
461
+ }
462
+ return;
463
+ }
464
+ // Handle search mode
465
+ if (searchMode) {
466
+ if (keyStr === '\u001B') {
467
+ searchMode = false;
468
+ searchQuery = '';
469
+ filteredOptions = options;
470
+ selectedIndex = 0;
471
+ scrollOffset = 0;
472
+ renderMenu();
473
+ return;
474
+ }
475
+ if (keyStr === ' ') {
476
+ const opt = filteredOptions[selectedIndex];
477
+ if (opt) {
478
+ if (checked.has(opt.value)) {
479
+ checked.delete(opt.value);
480
+ }
481
+ else {
482
+ checked.add(opt.value);
483
+ }
484
+ }
485
+ renderMenu();
486
+ return;
487
+ }
488
+ if (keyStr === '\r' || keyStr === '\n') {
489
+ cleanup();
490
+ resolve([...checked]);
491
+ return;
492
+ }
493
+ if (keyStr === '\u007F' || keyStr === '\b') {
494
+ searchQuery = searchQuery.slice(0, -1);
495
+ filteredOptions = filterOptions(searchQuery);
496
+ selectedIndex = 0;
497
+ scrollOffset = 0;
498
+ renderMenu();
499
+ return;
500
+ }
501
+ if (keyStr === '\u001B[A' || keyStr === 'k') {
502
+ selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : filteredOptions.length - 1;
503
+ renderMenu();
504
+ return;
505
+ }
506
+ if (keyStr === '\u001B[B' || keyStr === 'j') {
507
+ selectedIndex = selectedIndex < filteredOptions.length - 1 ? selectedIndex + 1 : 0;
508
+ renderMenu();
509
+ return;
510
+ }
511
+ // Printable characters
512
+ if (keyStr.length === 1) {
513
+ const code = keyStr.codePointAt(0) ?? 0;
514
+ if (code >= 32 && code <= 126) {
515
+ searchQuery += keyStr;
516
+ filteredOptions = filterOptions(searchQuery);
517
+ selectedIndex = 0;
518
+ scrollOffset = 0;
519
+ renderMenu();
520
+ return;
521
+ }
522
+ }
523
+ return;
524
+ }
525
+ // Normal navigation mode
526
+ switch (keyStr) {
527
+ case '#': {
528
+ rangeMode = true;
529
+ renderMenu();
530
+ break;
531
+ }
532
+ case '/': {
533
+ searchMode = true;
534
+ renderMenu();
535
+ break;
536
+ }
537
+ case '\u001B[A':
538
+ case 'k': {
539
+ selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : filteredOptions.length - 1;
540
+ renderMenu();
541
+ break;
542
+ }
543
+ case '\u001B[B':
544
+ case 'j': {
545
+ selectedIndex = selectedIndex < filteredOptions.length - 1 ? selectedIndex + 1 : 0;
546
+ renderMenu();
547
+ break;
548
+ }
549
+ case ' ': {
550
+ // Toggle current item
551
+ const opt = filteredOptions[selectedIndex];
552
+ if (opt) {
553
+ if (checked.has(opt.value)) {
554
+ checked.delete(opt.value);
555
+ }
556
+ else {
557
+ checked.add(opt.value);
558
+ }
559
+ }
560
+ renderMenu();
561
+ break;
562
+ }
563
+ case 'a':
564
+ case 'A': {
565
+ // Select all
566
+ for (const opt of options) {
567
+ checked.add(opt.value);
568
+ }
569
+ renderMenu();
570
+ break;
571
+ }
572
+ case 'n':
573
+ case 'N': {
574
+ // Deselect all
575
+ checked.clear();
576
+ renderMenu();
577
+ break;
578
+ }
579
+ case '\r':
580
+ case '\n': {
581
+ cleanup();
582
+ resolve([...checked]);
583
+ break;
584
+ }
585
+ case 'q':
586
+ case 'Q':
587
+ case '\u0003': {
588
+ cleanup();
589
+ console.log('\n\nCancelled by user');
590
+ process.exit(0);
591
+ }
592
+ case 'c':
593
+ case 'C': {
594
+ console.clear();
595
+ console.log(`${colors.cyan}?${colors.reset} ${question}`);
596
+ let clearLines = 0;
597
+ console.log(`${colors.gray} Selected: ${colors.cyan}${checked.size}${colors.gray}/${options.length}${colors.reset}`);
598
+ clearLines++;
599
+ console.log('');
600
+ clearLines++;
182
601
  const { start, end } = getVisibleRange();
183
602
  for (let idx = start; idx < end; idx++) {
184
603
  const opt = filteredOptions[idx];
185
604
  if (!opt)
186
605
  continue;
187
- const prefix = idx === selectedIndex ? `${colors.cyan}❯${colors.reset}` : ' ';
188
- const label = idx === selectedIndex
189
- ? `${colors.cyan}${colors.bright}${opt.label}${colors.reset}`
190
- : `${colors.gray}${opt.label}${colors.reset}`;
191
- console.log(`${prefix} ${label}`);
606
+ console.log(renderItem(opt, idx));
607
+ clearLines++;
192
608
  }
609
+ console.log('');
610
+ clearLines++;
611
+ console.log(`${colors.gray} (↑↓/jk Space toggle, 'a' all, 'n' none, '#' range, / search, Enter confirm, 'q' quit)${colors.reset}`);
612
+ clearLines++;
613
+ lastRenderedLines = clearLines;
193
614
  break;
194
615
  }
195
616
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/cli/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/cli/menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * GitHub integration setup
3
+ */
4
+ /**
5
+ * Setup GitHub config interactively
6
+ */
7
+ export declare const setupGithubConfigInteractive: () => boolean;
8
+ //# sourceMappingURL=github-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-setup.d.ts","sourceRoot":"","sources":["../../src/core/github-setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAO,OA0F/C,CAAA"}