@google/gemini-cli 0.13.0-nightly.20251103.9187f6f6 → 0.13.0-preview.0

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 (164) hide show
  1. package/dist/google-gemini-cli-0.13.0-nightly.20251031.c89bc30d.tgz +0 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/commands/mcp/list.test.js +25 -21
  4. package/dist/src/commands/mcp/list.test.js.map +1 -1
  5. package/dist/src/config/config.js +8 -84
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/config/config.test.js +13 -30
  8. package/dist/src/config/config.test.js.map +1 -1
  9. package/dist/src/config/extension-manager.d.ts +18 -6
  10. package/dist/src/config/extension-manager.js +25 -19
  11. package/dist/src/config/extension-manager.js.map +1 -1
  12. package/dist/src/config/extension.test.js +9 -9
  13. package/dist/src/config/extension.test.js.map +1 -1
  14. package/dist/src/config/extensions/extensionSettings.test.js +39 -43
  15. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  16. package/dist/src/config/extensions/github.test.js +133 -165
  17. package/dist/src/config/extensions/github.test.js.map +1 -1
  18. package/dist/src/config/keyBindings.d.ts +3 -0
  19. package/dist/src/config/keyBindings.js +29 -7
  20. package/dist/src/config/keyBindings.js.map +1 -1
  21. package/dist/src/config/keyBindings.test.js +17 -0
  22. package/dist/src/config/keyBindings.test.js.map +1 -1
  23. package/dist/src/config/policy.d.ts +0 -7
  24. package/dist/src/config/policy.js +10 -177
  25. package/dist/src/config/policy.js.map +1 -1
  26. package/dist/src/config/settingsSchema.d.ts +103 -21
  27. package/dist/src/config/settingsSchema.js +352 -21
  28. package/dist/src/config/settingsSchema.js.map +1 -1
  29. package/dist/src/config/settingsSchema.test.js +40 -1
  30. package/dist/src/config/settingsSchema.test.js.map +1 -1
  31. package/dist/src/gemini.js +15 -5
  32. package/dist/src/gemini.js.map +1 -1
  33. package/dist/src/gemini.test.js +2 -0
  34. package/dist/src/gemini.test.js.map +1 -1
  35. package/dist/src/generated/git-commit.d.ts +2 -2
  36. package/dist/src/generated/git-commit.js +2 -2
  37. package/dist/src/generated/git-commit.js.map +1 -1
  38. package/dist/src/nonInteractiveCli.js +68 -1
  39. package/dist/src/nonInteractiveCli.js.map +1 -1
  40. package/dist/src/services/BuiltinCommandLoader.js +4 -0
  41. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  42. package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
  43. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  44. package/dist/src/services/McpPromptLoader.js +2 -2
  45. package/dist/src/services/McpPromptLoader.js.map +1 -1
  46. package/dist/src/services/McpPromptLoader.test.js +4 -2
  47. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  48. package/dist/src/test-utils/render.d.ts +2 -1
  49. package/dist/src/test-utils/render.js +3 -2
  50. package/dist/src/test-utils/render.js.map +1 -1
  51. package/dist/src/ui/AppContainer.js +32 -15
  52. package/dist/src/ui/AppContainer.js.map +1 -1
  53. package/dist/src/ui/AppContainer.test.js +160 -0
  54. package/dist/src/ui/AppContainer.test.js.map +1 -1
  55. package/dist/src/ui/commands/mcpCommand.js +14 -14
  56. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  57. package/dist/src/ui/commands/mcpCommand.test.js +4 -0
  58. package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
  59. package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
  60. package/dist/src/ui/commands/policiesCommand.js +59 -0
  61. package/dist/src/ui/commands/policiesCommand.js.map +1 -0
  62. package/dist/src/ui/commands/policiesCommand.test.js +83 -0
  63. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
  64. package/dist/src/ui/components/Composer.js +1 -1
  65. package/dist/src/ui/components/Composer.js.map +1 -1
  66. package/dist/src/ui/components/Composer.test.js +4 -1
  67. package/dist/src/ui/components/Composer.test.js.map +1 -1
  68. package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
  69. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  70. package/dist/src/ui/components/InputPrompt.js +22 -2
  71. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  72. package/dist/src/ui/components/InputPrompt.test.js +70 -5
  73. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  74. package/dist/src/ui/components/MainContent.js +15 -4
  75. package/dist/src/ui/components/MainContent.js.map +1 -1
  76. package/dist/src/ui/components/Notifications.js +38 -5
  77. package/dist/src/ui/components/Notifications.js.map +1 -1
  78. package/dist/src/ui/components/SettingsDialog.js +32 -25
  79. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  80. package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
  81. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  82. package/dist/src/ui/components/messages/InfoMessage.js +1 -1
  83. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  84. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
  85. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  86. package/dist/src/ui/components/messages/WarningMessage.js +2 -2
  87. package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
  88. package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
  89. package/dist/src/ui/components/shared/text-buffer.js +23 -0
  90. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  91. package/dist/src/ui/components/shared/text-buffer.test.js +246 -201
  92. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  93. package/dist/src/ui/contexts/KeypressContext.js +182 -132
  94. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  95. package/dist/src/ui/contexts/KeypressContext.test.js +144 -8
  96. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  97. package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
  98. package/dist/src/ui/contexts/MouseContext.js +89 -0
  99. package/dist/src/ui/contexts/MouseContext.js.map +1 -0
  100. package/dist/src/ui/contexts/MouseContext.test.js +164 -0
  101. package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
  102. package/dist/src/ui/hooks/slashCommandProcessor.test.js +70 -73
  103. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  104. package/dist/src/ui/hooks/useGeminiStream.test.js +135 -368
  105. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  106. package/dist/src/ui/hooks/useKeypress.test.js +17 -9
  107. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  108. package/dist/src/ui/hooks/useMouse.d.ts +17 -0
  109. package/dist/src/ui/hooks/useMouse.js +27 -0
  110. package/dist/src/ui/hooks/useMouse.js.map +1 -0
  111. package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
  112. package/dist/src/ui/hooks/useMouse.test.js +57 -0
  113. package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
  114. package/dist/src/ui/hooks/useSelectionList.js +5 -4
  115. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  116. package/dist/src/ui/hooks/useSelectionList.test.js +24 -3
  117. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  118. package/dist/src/ui/hooks/useToolScheduler.test.js +109 -200
  119. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  120. package/dist/src/ui/keyMatchers.test.js +27 -0
  121. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  122. package/dist/src/ui/themes/no-color.js +1 -0
  123. package/dist/src/ui/themes/no-color.js.map +1 -1
  124. package/dist/src/ui/themes/semantic-tokens.d.ts +1 -0
  125. package/dist/src/ui/themes/semantic-tokens.js +3 -0
  126. package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
  127. package/dist/src/ui/themes/theme.d.ts +1 -0
  128. package/dist/src/ui/themes/theme.js +4 -0
  129. package/dist/src/ui/themes/theme.js.map +1 -1
  130. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
  131. package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
  132. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  133. package/dist/src/ui/utils/MarkdownDisplay.js +11 -9
  134. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  135. package/dist/src/ui/utils/input.d.ts +17 -0
  136. package/dist/src/ui/utils/input.js +51 -0
  137. package/dist/src/ui/utils/input.js.map +1 -0
  138. package/dist/src/ui/utils/input.test.d.ts +6 -0
  139. package/dist/src/ui/utils/input.test.js +44 -0
  140. package/dist/src/ui/utils/input.test.js.map +1 -0
  141. package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
  142. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
  143. package/dist/src/ui/utils/mouse.d.ts +31 -0
  144. package/dist/src/ui/utils/mouse.js +164 -0
  145. package/dist/src/ui/utils/mouse.js.map +1 -0
  146. package/dist/src/ui/utils/mouse.test.d.ts +6 -0
  147. package/dist/src/ui/utils/mouse.test.js +131 -0
  148. package/dist/src/ui/utils/mouse.test.js.map +1 -0
  149. package/dist/src/utils/events.d.ts +11 -2
  150. package/dist/src/utils/events.js +1 -0
  151. package/dist/src/utils/events.js.map +1 -1
  152. package/dist/src/utils/sandbox.js +16 -18
  153. package/dist/src/utils/sandbox.js.map +1 -1
  154. package/dist/tsconfig.tsbuildinfo +1 -1
  155. package/package.json +4 -4
  156. package/dist/src/config/policy-toml-loader.d.ts +0 -46
  157. package/dist/src/config/policy-toml-loader.js +0 -314
  158. package/dist/src/config/policy-toml-loader.js.map +0 -1
  159. package/dist/src/config/policy-toml-loader.test.js +0 -626
  160. package/dist/src/config/policy-toml-loader.test.js.map +0 -1
  161. package/dist/src/config/policy.test.js +0 -1058
  162. package/dist/src/config/policy.test.js.map +0 -1
  163. /package/dist/src/{config/policy-toml-loader.test.d.ts → ui/commands/policiesCommand.test.d.ts} +0 -0
  164. /package/dist/src/{config/policy.test.d.ts → ui/contexts/MouseContext.test.d.ts} +0 -0
@@ -5,8 +5,9 @@ import { createContext, useCallback, useContext, useEffect, useRef, } from 'reac
5
5
  import readline from 'node:readline';
6
6
  import { PassThrough } from 'node:stream';
7
7
  import { BACKSLASH_ENTER_DETECTION_WINDOW_MS, CHAR_CODE_ESC, KITTY_CTRL_C, KITTY_KEYCODE_BACKSPACE, KITTY_KEYCODE_ENTER, KITTY_KEYCODE_NUMPAD_ENTER, KITTY_KEYCODE_TAB, MAX_KITTY_SEQUENCE_LENGTH, KITTY_MODIFIER_BASE, KITTY_MODIFIER_EVENT_TYPES_OFFSET, MODIFIER_SHIFT_BIT, MODIFIER_ALT_BIT, MODIFIER_CTRL_BIT, } from '../utils/platformConstants.js';
8
+ import { ESC, couldBeMouseSequence } from '../utils/input.js';
8
9
  import { FOCUS_IN, FOCUS_OUT } from '../hooks/useFocus.js';
9
- const ESC = '\u001B';
10
+ import { isIncompleteMouseSequence, parseMouseEvent } from '../utils/mouse.js';
10
11
  export const PASTE_MODE_START = `${ESC}[200~`;
11
12
  export const PASTE_MODE_END = `${ESC}[201~`;
12
13
  export const DRAG_COMPLETION_TIMEOUT_MS = 100; // Broadcast full path after 100ms if no more input
@@ -72,6 +73,8 @@ function couldBeKittySequence(buffer) {
72
73
  return true;
73
74
  if (!buffer.startsWith(`${ESC}[`))
74
75
  return false;
76
+ if (couldBeMouseSequence(buffer))
77
+ return true;
75
78
  // Check for known kitty sequence patterns:
76
79
  // 1. ESC[<digit> - could be CSI-u or tilde-coded
77
80
  // 2. ESC[1;<digit> - parameterized functional
@@ -125,7 +128,7 @@ function parseKittyPrefix(buffer) {
125
128
  shift: true,
126
129
  paste: false,
127
130
  sequence: buffer.slice(0, m[0].length),
128
- kittyProtocol: true,
131
+ kittyProtocol: false,
129
132
  },
130
133
  length: m[0].length,
131
134
  };
@@ -215,7 +218,7 @@ function parseKittyPrefix(buffer) {
215
218
  shift,
216
219
  paste: false,
217
220
  sequence: buffer.slice(0, m[0].length),
218
- kittyProtocol: true,
221
+ kittyProtocol: false,
219
222
  },
220
223
  length: m[0].length,
221
224
  };
@@ -277,7 +280,7 @@ function parseKittyPrefix(buffer) {
277
280
  shift: false,
278
281
  paste: false,
279
282
  sequence: buffer.slice(0, m[0].length),
280
- kittyProtocol: true,
283
+ kittyProtocol: false,
281
284
  },
282
285
  length: m[0].length,
283
286
  };
@@ -403,9 +406,9 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
403
406
  let pasteBuffer = null;
404
407
  // Used to turn "\" quickly followed by a "enter" into a shift enter
405
408
  let backslashTimeout = null;
406
- // Buffers incomplete Kitty sequences and timer to flush it
407
- let kittySequenceBuffer = '';
408
- let kittySequenceTimeout = null;
409
+ // Buffers incomplete sequences (Kitty or Mouse) and timer to flush it
410
+ let inputBuffer = '';
411
+ let inputTimeout = null;
409
412
  // Used to detect filename drag-and-drops.
410
413
  let dragBuffer = '';
411
414
  let draggingTimer = null;
@@ -415,10 +418,10 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
415
418
  draggingTimer = null;
416
419
  }
417
420
  };
418
- const flushKittyBufferOnInterrupt = (reason) => {
419
- if (kittySequenceBuffer) {
421
+ const flushInputBufferOnInterrupt = (reason) => {
422
+ if (inputBuffer) {
420
423
  if (debugKeystrokeLogging) {
421
- debugLogger.log(`[DEBUG] Kitty sequence flushed due to ${reason}:`, JSON.stringify(kittySequenceBuffer));
424
+ debugLogger.log(`[DEBUG] Input sequence flushed due to ${reason}:`, JSON.stringify(inputBuffer));
422
425
  }
423
426
  broadcast({
424
427
  name: '',
@@ -426,22 +429,22 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
426
429
  meta: false,
427
430
  shift: false,
428
431
  paste: false,
429
- sequence: kittySequenceBuffer,
432
+ sequence: inputBuffer,
430
433
  });
431
- kittySequenceBuffer = '';
434
+ inputBuffer = '';
432
435
  }
433
- if (kittySequenceTimeout) {
434
- clearTimeout(kittySequenceTimeout);
435
- kittySequenceTimeout = null;
436
+ if (inputTimeout) {
437
+ clearTimeout(inputTimeout);
438
+ inputTimeout = null;
436
439
  }
437
440
  };
438
441
  const handleKeypress = (_, key) => {
439
442
  if (key.sequence === FOCUS_IN || key.sequence === FOCUS_OUT) {
440
- flushKittyBufferOnInterrupt('focus event');
443
+ flushInputBufferOnInterrupt('focus event');
441
444
  return;
442
445
  }
443
446
  if (key.name === 'paste-start') {
444
- flushKittyBufferOnInterrupt('paste start');
447
+ flushInputBufferOnInterrupt('paste start');
445
448
  pasteBuffer = Buffer.alloc(0);
446
449
  return;
447
450
  }
@@ -526,13 +529,13 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
526
529
  }
527
530
  if ((key.ctrl && key.name === 'c') ||
528
531
  key.sequence === `${ESC}${KITTY_CTRL_C}`) {
529
- if (kittySequenceBuffer && debugKeystrokeLogging) {
530
- debugLogger.log('[DEBUG] Kitty buffer cleared on Ctrl+C:', kittySequenceBuffer);
532
+ if (inputBuffer && debugKeystrokeLogging) {
533
+ debugLogger.log('[DEBUG] Input buffer cleared on Ctrl+C:', inputBuffer);
531
534
  }
532
- kittySequenceBuffer = '';
533
- if (kittySequenceTimeout) {
534
- clearTimeout(kittySequenceTimeout);
535
- kittySequenceTimeout = null;
535
+ inputBuffer = '';
536
+ if (inputTimeout) {
537
+ clearTimeout(inputTimeout);
538
+ inputTimeout = null;
536
539
  }
537
540
  if (key.sequence === `${ESC}${KITTY_CTRL_C}`) {
538
541
  broadcast({
@@ -550,124 +553,171 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
550
553
  }
551
554
  return;
552
555
  }
553
- if (kittyProtocolEnabled) {
554
- // Clear any pending timeout when new input arrives
555
- if (kittySequenceTimeout) {
556
- clearTimeout(kittySequenceTimeout);
557
- kittySequenceTimeout = null;
556
+ // Clear any pending timeout when new input arrives
557
+ if (inputTimeout) {
558
+ clearTimeout(inputTimeout);
559
+ inputTimeout = null;
560
+ }
561
+ // Always check if this could start a sequence we need to buffer (Kitty or Mouse)
562
+ // Other ESC sequences (like Alt+Key which is ESC+Key) should be let through if readline parsed them.
563
+ const shouldBuffer = couldBeKittySequence(key.sequence);
564
+ const isExcluded = [
565
+ PASTE_MODE_START,
566
+ PASTE_MODE_END,
567
+ FOCUS_IN,
568
+ FOCUS_OUT,
569
+ ].some((prefix) => key.sequence.startsWith(prefix));
570
+ if (inputBuffer || (shouldBuffer && !isExcluded)) {
571
+ inputBuffer += key.sequence;
572
+ if (debugKeystrokeLogging && !couldBeMouseSequence(inputBuffer)) {
573
+ debugLogger.log('[DEBUG] Input buffer accumulating:', JSON.stringify(inputBuffer));
558
574
  }
559
- // Check if this could start a kitty sequence
560
- const startsWithEsc = key.sequence.startsWith(ESC);
561
- const isExcluded = [
562
- PASTE_MODE_START,
563
- PASTE_MODE_END,
564
- FOCUS_IN,
565
- FOCUS_OUT,
566
- ].some((prefix) => key.sequence.startsWith(prefix));
567
- if (kittySequenceBuffer || (startsWithEsc && !isExcluded)) {
568
- kittySequenceBuffer += key.sequence;
569
- if (debugKeystrokeLogging) {
570
- debugLogger.log('[DEBUG] Kitty buffer accumulating:', JSON.stringify(kittySequenceBuffer));
571
- }
572
- // Try immediate parsing
573
- let remainingBuffer = kittySequenceBuffer;
574
- let parsedAny = false;
575
- while (remainingBuffer) {
576
- const parsed = parseKittyPrefix(remainingBuffer);
577
- if (parsed) {
575
+ // Try immediate parsing
576
+ let remainingBuffer = inputBuffer;
577
+ let parsedAny = false;
578
+ while (remainingBuffer) {
579
+ const parsed = parseKittyPrefix(remainingBuffer);
580
+ if (parsed) {
581
+ // If kitty protocol is disabled, only allow legacy/standard sequences.
582
+ // parseKittyPrefix returns true for kittyProtocol if it's a modern kitty sequence.
583
+ if (kittyProtocolEnabled || !parsed.key.kittyProtocol) {
578
584
  if (debugKeystrokeLogging) {
579
585
  const parsedSequence = remainingBuffer.slice(0, parsed.length);
580
- debugLogger.log('[DEBUG] Kitty sequence parsed successfully:', JSON.stringify(parsedSequence));
586
+ debugLogger.log('[DEBUG] Sequence parsed successfully:', JSON.stringify(parsedSequence));
581
587
  }
582
588
  broadcast(parsed.key);
583
589
  remainingBuffer = remainingBuffer.slice(parsed.length);
584
590
  parsedAny = true;
591
+ continue;
585
592
  }
586
- else {
587
- // If we can't parse a sequence at the start, check if there's
588
- // another ESC later in the buffer. If so, the data before it
589
- // is garbage/incomplete and should be dropped so we can
590
- // process the next sequence.
591
- const nextEscIndex = remainingBuffer.indexOf(ESC, 1);
592
- if (nextEscIndex !== -1) {
593
- const garbage = remainingBuffer.slice(0, nextEscIndex);
594
- if (debugKeystrokeLogging) {
595
- debugLogger.log('[DEBUG] Dropping incomplete sequence before next ESC:', JSON.stringify(garbage));
596
- }
597
- // Drop garbage and continue parsing from next ESC
598
- remainingBuffer = remainingBuffer.slice(nextEscIndex);
599
- // We made progress, so we can continue the loop to parse the next sequence
600
- continue;
601
- }
602
- // Check if buffer could become a valid kitty sequence
603
- const couldBeValid = couldBeKittySequence(remainingBuffer);
604
- if (!couldBeValid) {
605
- // Not a kitty sequence - flush as regular input immediately
606
- if (debugKeystrokeLogging) {
607
- debugLogger.log('[DEBUG] Not a kitty sequence, flushing:', JSON.stringify(remainingBuffer));
608
- }
609
- broadcast({
610
- name: '',
611
- ctrl: false,
612
- meta: false,
613
- shift: false,
614
- paste: false,
615
- sequence: remainingBuffer,
616
- });
617
- remainingBuffer = '';
618
- parsedAny = true;
593
+ }
594
+ const mouseParsed = parseMouseEvent(remainingBuffer);
595
+ if (mouseParsed) {
596
+ // These are handled by the separate mouse sequence parser.
597
+ // All we need to do is make sure we don't get confused by these
598
+ // sequences.
599
+ remainingBuffer = remainingBuffer.slice(mouseParsed.length);
600
+ parsedAny = true;
601
+ continue;
602
+ }
603
+ // If we can't parse a sequence at the start, check if there's
604
+ // another ESC later in the buffer. If so, the data before it
605
+ // is garbage/incomplete and should be dropped so we can
606
+ // process the next sequence.
607
+ const nextEscIndex = remainingBuffer.indexOf(ESC, 1);
608
+ if (nextEscIndex !== -1) {
609
+ const garbage = remainingBuffer.slice(0, nextEscIndex);
610
+ // Special case: if garbage is exactly ESC, it's likely a rapid ESC press.
611
+ if (garbage === ESC) {
612
+ if (debugKeystrokeLogging) {
613
+ debugLogger.log('[DEBUG] Flushing rapid ESC before next ESC:', JSON.stringify(garbage));
619
614
  }
620
- else if (remainingBuffer.length > MAX_KITTY_SEQUENCE_LENGTH) {
621
- // Buffer overflow - log and clear
622
- if (debugKeystrokeLogging) {
623
- debugLogger.log('[DEBUG] Kitty buffer overflow, clearing:', JSON.stringify(remainingBuffer));
624
- }
625
- if (config) {
626
- const event = new KittySequenceOverflowEvent(remainingBuffer.length, remainingBuffer);
627
- logKittySequenceOverflow(config, event);
628
- }
629
- // Flush as regular input
630
- broadcast({
631
- name: '',
632
- ctrl: false,
633
- meta: false,
634
- shift: false,
635
- paste: false,
636
- sequence: remainingBuffer,
637
- });
638
- remainingBuffer = '';
639
- parsedAny = true;
615
+ broadcast({
616
+ name: 'escape',
617
+ ctrl: false,
618
+ meta: true,
619
+ shift: false,
620
+ paste: false,
621
+ sequence: garbage,
622
+ });
623
+ }
624
+ else {
625
+ if (debugKeystrokeLogging) {
626
+ debugLogger.log('[DEBUG] Dropping incomplete sequence before next ESC:', JSON.stringify(garbage));
640
627
  }
641
- else {
642
- if (config?.getDebugMode() || debugKeystrokeLogging) {
643
- debugLogger.warn('Kitty sequence buffer has content:', JSON.stringify(kittySequenceBuffer));
644
- }
645
- // Could be valid but incomplete - set timeout
646
- kittySequenceTimeout = setTimeout(() => {
647
- if (kittySequenceBuffer) {
648
- if (debugKeystrokeLogging) {
649
- debugLogger.log('[DEBUG] Kitty sequence timeout, flushing:', JSON.stringify(kittySequenceBuffer));
650
- }
651
- broadcast({
652
- name: '',
653
- ctrl: false,
654
- meta: false,
655
- shift: false,
656
- paste: false,
657
- sequence: kittySequenceBuffer,
658
- });
659
- kittySequenceBuffer = '';
628
+ }
629
+ // Continue parsing from next ESC
630
+ remainingBuffer = remainingBuffer.slice(nextEscIndex);
631
+ // We made progress, so we can continue the loop to parse the next sequence
632
+ continue;
633
+ }
634
+ // Check if buffer could become a valid sequence
635
+ const couldBeValidKitty = kittyProtocolEnabled && couldBeKittySequence(remainingBuffer);
636
+ const isMouse = isIncompleteMouseSequence(remainingBuffer);
637
+ const couldBeValid = couldBeValidKitty || isMouse;
638
+ if (!couldBeValid) {
639
+ // Not a valid sequence - flush as regular input immediately
640
+ if (debugKeystrokeLogging) {
641
+ debugLogger.log('[DEBUG] Not a valid sequence, flushing:', JSON.stringify(remainingBuffer));
642
+ }
643
+ broadcast({
644
+ name: '',
645
+ ctrl: false,
646
+ meta: false,
647
+ shift: false,
648
+ paste: false,
649
+ sequence: remainingBuffer,
650
+ });
651
+ remainingBuffer = '';
652
+ parsedAny = true;
653
+ }
654
+ else if (remainingBuffer.length > MAX_KITTY_SEQUENCE_LENGTH) {
655
+ // Buffer overflow - log and clear
656
+ if (debugKeystrokeLogging) {
657
+ debugLogger.log('[DEBUG] Input buffer overflow, clearing:', JSON.stringify(remainingBuffer));
658
+ }
659
+ if (config && kittyProtocolEnabled) {
660
+ const event = new KittySequenceOverflowEvent(remainingBuffer.length, remainingBuffer);
661
+ logKittySequenceOverflow(config, event);
662
+ }
663
+ // Flush as regular input
664
+ broadcast({
665
+ name: '',
666
+ ctrl: false,
667
+ meta: false,
668
+ shift: false,
669
+ paste: false,
670
+ sequence: remainingBuffer,
671
+ });
672
+ remainingBuffer = '';
673
+ parsedAny = true;
674
+ }
675
+ else {
676
+ if ((config?.getDebugMode() || debugKeystrokeLogging) &&
677
+ !couldBeMouseSequence(inputBuffer)) {
678
+ debugLogger.warn('Input sequence buffer has content:', JSON.stringify(inputBuffer));
679
+ }
680
+ // Could be valid but incomplete - set timeout
681
+ // Only set timeout if it's NOT a mouse sequence.
682
+ // Mouse sequences might be slow (e.g. over network) and we don't want to
683
+ // flush them as garbage keypresses.
684
+ // However, if it's just ESC or ESC[, it might be a user typing slowly,
685
+ // so we should still timeout in that case.
686
+ const isAmbiguousPrefix = remainingBuffer === ESC || remainingBuffer === `${ESC}[`;
687
+ if (!isMouse || isAmbiguousPrefix) {
688
+ inputTimeout = setTimeout(() => {
689
+ if (inputBuffer) {
690
+ if (debugKeystrokeLogging) {
691
+ debugLogger.log('[DEBUG] Input sequence timeout, flushing:', JSON.stringify(inputBuffer));
660
692
  }
661
- kittySequenceTimeout = null;
662
- }, KITTY_SEQUENCE_TIMEOUT_MS);
663
- break;
693
+ const isEscape = inputBuffer === ESC;
694
+ broadcast({
695
+ name: isEscape ? 'escape' : '',
696
+ ctrl: false,
697
+ meta: isEscape,
698
+ shift: false,
699
+ paste: false,
700
+ sequence: inputBuffer,
701
+ });
702
+ inputBuffer = '';
703
+ }
704
+ inputTimeout = null;
705
+ }, KITTY_SEQUENCE_TIMEOUT_MS);
706
+ }
707
+ else {
708
+ // It IS a mouse sequence and it's long enough to be unambiguously NOT just a user hitting ESC slowly.
709
+ // We just wait for more data.
710
+ if (inputTimeout) {
711
+ clearTimeout(inputTimeout);
712
+ inputTimeout = null;
664
713
  }
665
714
  }
715
+ break;
666
716
  }
667
- kittySequenceBuffer = remainingBuffer;
668
- if (parsedAny || kittySequenceBuffer)
669
- return;
670
717
  }
718
+ inputBuffer = remainingBuffer;
719
+ if (parsedAny || inputBuffer)
720
+ return;
671
721
  }
672
722
  if (key.name === 'return' && key.sequence === `${ESC}\r`) {
673
723
  key.meta = true;
@@ -715,21 +765,21 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, debug
715
765
  clearTimeout(backslashTimeout);
716
766
  backslashTimeout = null;
717
767
  }
718
- if (kittySequenceTimeout) {
719
- clearTimeout(kittySequenceTimeout);
720
- kittySequenceTimeout = null;
768
+ if (inputTimeout) {
769
+ clearTimeout(inputTimeout);
770
+ inputTimeout = null;
721
771
  }
722
772
  // Flush any pending kitty sequence data to avoid data loss on exit.
723
- if (kittySequenceBuffer) {
773
+ if (inputBuffer) {
724
774
  broadcast({
725
775
  name: '',
726
776
  ctrl: false,
727
777
  meta: false,
728
778
  shift: false,
729
779
  paste: false,
730
- sequence: kittySequenceBuffer,
780
+ sequence: inputBuffer,
731
781
  });
732
- kittySequenceBuffer = '';
782
+ inputBuffer = '';
733
783
  }
734
784
  // Flush any pending paste data to avoid data loss on exit.
735
785
  if (pasteBuffer !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"KeypressContext.js","sourceRoot":"","sources":["../../../../src/ui/contexts/KeypressContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeypressContext.js","sourceRoot":"","sources":["../../../../src/ui/contexts/KeypressContext.tsx"],"names":[],"mappings":"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"}