deepseek-coder-agent-cli 1.0.67 → 1.0.68

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.
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ So Cursor and Antigravity both have potential fundamental correctness in existing as a coding agent due to the existence of an editor however Codex CLI and Gemini CLI have no reasons to exist at all.
2
+
1
3
  Bo's report to Congress - https://media.defense.gov/2026/Jan/12/2003855671/-1/-1/0/ARTIFICIAL-INTELLIGENCE-STRATEGY-FOR-THE-DEPARTMENT-OF-WAR.PDF
2
4
 
3
5
  https://media.defense.gov/2025/Dec/23/2003849070/-1/-1/1/ANNUAL-REPORT-TO-CONGRESS-MILITARY-AND-SECURITY-DEVELOPMENTS-INVOLVING-THE-PEOPLES-REPUBLIC-OF-CHINA-2025.PDF
@@ -708,6 +708,11 @@ export declare class UnifiedUIRenderer extends EventEmitter {
708
708
  private renderPromptImmediate;
709
709
  private renderPromptImmediateInternal;
710
710
  private buildOverlayLines;
711
+ /**
712
+ * Build input lines with viewport constraint to fit within maxLines.
713
+ * Ensures cursor is always visible and shows scroll indicators when content is clipped.
714
+ */
715
+ private buildInputLinesWithViewport;
711
716
  /**
712
717
  * Build a single compact status line with all essential info
713
718
  * Format: deepseek-reasoner · ░░░░░░ 5% · agi-code · ~/GitHub
@@ -738,7 +743,6 @@ export declare class UnifiedUIRenderer extends EventEmitter {
738
743
  private buildControlLines;
739
744
  private buildToggleLine;
740
745
  private buildShortcutLine;
741
- private buildInputLine;
742
746
  private buildInputWindow;
743
747
  /**
744
748
  * Expand collapsed paste into the buffer without submitting (Ctrl+L).
@@ -1 +1 @@
1
- {"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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"}
@@ -4493,10 +4493,15 @@ export class UnifiedUIRenderer extends EventEmitter {
4493
4493
  this.promptHeight = height;
4494
4494
  }
4495
4495
  buildOverlayLines() {
4496
- const lines = [];
4497
4496
  const maxWidth = this.safeWidth();
4497
+ const terminalHeight = this.rows || 24;
4498
4498
  // Simple horizontal divider - clean and reliable
4499
4499
  const divider = theme.ui.muted('─'.repeat(maxWidth));
4500
+ // ============ PHASE 1: Build all fixed chrome elements first ============
4501
+ // These elements have fixed height and must always be visible
4502
+ const chromeAbove = []; // Lines above input
4503
+ const chromeBelow = []; // Lines below input (status, toggles, shortcuts)
4504
+ // Activity line (only when streaming)
4500
4505
  const fallbackActivity = (() => {
4501
4506
  const raw = this.statusStreaming || this.statusOverride || this.statusMessage;
4502
4507
  if (!raw)
@@ -4504,9 +4509,7 @@ export class UnifiedUIRenderer extends EventEmitter {
4504
4509
  const cleaned = this.stripAnsi(raw).replace(/^[⏺•]\s*/, '').trim();
4505
4510
  return cleaned || null;
4506
4511
  })();
4507
- // Activity line (only when streaming) - shows: ◐ Working… (esc to interrupt · 34s)
4508
4512
  if (this.mode === 'streaming' && (this.activityMessage || fallbackActivity)) {
4509
- // Clean spinner animation using braille dots + shimmer accent for a richer feel
4510
4513
  const spinnerChars = spinnerFrames.braille;
4511
4514
  const spinnerChar = spinnerChars[this.spinnerFrame % spinnerChars.length] ?? '⠋';
4512
4515
  const starChar = this.activityStarFrames[this.activityStarFrame % this.activityStarFrames.length] ?? '✶';
@@ -4521,8 +4524,6 @@ export class UnifiedUIRenderer extends EventEmitter {
4521
4524
  displayActivity = fallbackActivity || 'Working';
4522
4525
  }
4523
4526
  const needsEllipsis = !displayActivity.trimEnd().endsWith('…') && !displayActivity.trimEnd().endsWith('...');
4524
- // Format: ⠋ Working… (esc to interrupt · 1m 19s · ↑1.2k tokens)
4525
- // Build parts with animated elapsed time color
4526
4527
  const elapsedColor = chalk.hex(this.elapsedColorFrames[this.elapsedColorFrame % this.elapsedColorFrames.length] ?? '#F59E0B');
4527
4528
  const parts = ['esc to interrupt'];
4528
4529
  if (elapsed)
@@ -4533,47 +4534,21 @@ export class UnifiedUIRenderer extends EventEmitter {
4533
4534
  const prefix = `${spinnerDecorated} `;
4534
4535
  const activityText = `${displayActivity.trim()}${needsEllipsis ? '…' : ''}`;
4535
4536
  const suffix = ` ${theme.ui.muted('(')}${parts.join(theme.ui.muted(' · '))}${theme.ui.muted(')')}`;
4536
- // Build the full activity line with animated color for elapsed time
4537
4537
  const activityLine = `${prefix}${activityText}${suffix}`;
4538
- // Always show full text - wrap to multiple lines if needed
4539
4538
  const indent = ' '.repeat(this.visibleLength(prefix));
4540
4539
  const wrapped = this.wrapOverlayLine(activityLine, maxWidth, indent);
4541
- lines.push(...wrapped);
4542
- }
4543
- // Top divider
4544
- lines.push(divider);
4545
- // Input prompt line
4546
- const promptIndex = lines.length;
4547
- const inputLine = this.buildInputLine();
4548
- // Handle multi-line input by splitting on newlines
4549
- // Filter out empty lines to prevent duplicate divider appearance from leading/trailing newlines
4550
- let inputLines = inputLine.split('\n').filter((line, idx, arr) => {
4551
- // Keep non-empty lines, but preserve single empty line if it's intentional (e.g., between content)
4552
- // Only filter leading/trailing empty lines
4553
- if (line.trim() === '') {
4554
- // Filter if it's the first line (leading empty) or last line (trailing empty)
4555
- if (idx === 0 || idx === arr.length - 1)
4556
- return false;
4557
- }
4558
- return true;
4559
- });
4560
- // Ensure at least one line for the prompt
4561
- if (inputLines.length === 0) {
4562
- inputLines.push(theme.primary('> '));
4563
- }
4564
- // Viewporting is now handled inside buildInputLine() - just add the lines
4565
- for (const line of inputLines) {
4566
- lines.push(this.truncateLine(line, maxWidth));
4540
+ chromeAbove.push(...wrapped);
4567
4541
  }
4568
- // Bottom divider
4569
- lines.push(divider);
4570
- // Inline panel (pinned scroll box for live output/menus)
4542
+ // Top divider (always present)
4543
+ chromeAbove.push(divider);
4544
+ // Bottom divider (always present)
4545
+ chromeBelow.push(divider);
4546
+ // Inline panel
4571
4547
  if (this.inlinePanel.length > 0) {
4572
4548
  for (const panelLine of this.inlinePanel) {
4573
- lines.push(this.truncateLine(` ${panelLine}`, maxWidth));
4549
+ chromeBelow.push(this.truncateLine(` ${panelLine}`, maxWidth));
4574
4550
  }
4575
- // Separate inline content from suggestions/toggles
4576
- lines.push(divider);
4551
+ chromeBelow.push(divider);
4577
4552
  }
4578
4553
  // Slash command suggestions
4579
4554
  if (this.suggestions.length > 0) {
@@ -4583,26 +4558,170 @@ export class UnifiedUIRenderer extends EventEmitter {
4583
4558
  const marker = isActive ? theme.primary('▸') : theme.ui.muted(' ');
4584
4559
  const cmdText = isActive ? theme.primary(suggestion.command) : theme.ui.muted(suggestion.command);
4585
4560
  const descText = isActive ? suggestion.description : theme.ui.muted(suggestion.description);
4586
- lines.push(this.truncateLine(` ${marker} ${cmdText} — ${descText}`, maxWidth));
4561
+ chromeBelow.push(this.truncateLine(` ${marker} ${cmdText} — ${descText}`, maxWidth));
4587
4562
  }
4588
4563
  }
4589
- // Compact status line: model · context% · profile · dir
4564
+ // Compact status line
4590
4565
  const compactStatus = this.buildCompactStatusLine();
4591
4566
  if (compactStatus) {
4592
- lines.push(this.truncateLine(` ${compactStatus}`, maxWidth));
4567
+ chromeBelow.push(this.truncateLine(` ${compactStatus}`, maxWidth));
4593
4568
  }
4594
- // Mode toggles (compact single line when possible)
4569
+ // Mode toggles
4595
4570
  const toggleLine = this.buildToggleLine();
4596
4571
  if (toggleLine) {
4597
- lines.push(this.truncateLine(` ${toggleLine}`, maxWidth));
4572
+ chromeBelow.push(this.truncateLine(` ${toggleLine}`, maxWidth));
4598
4573
  }
4599
- // Keyboard shortcuts line (shows shortcuts not already visible in toggle line)
4574
+ // Keyboard shortcuts
4600
4575
  const shortcutLine = this.buildShortcutLine();
4601
4576
  if (shortcutLine) {
4602
- lines.push(this.truncateLine(` ${shortcutLine}`, maxWidth));
4577
+ chromeBelow.push(this.truncateLine(` ${shortcutLine}`, maxWidth));
4578
+ }
4579
+ // ============ PHASE 2: Calculate available space for input ============
4580
+ const chromeHeight = chromeAbove.length + chromeBelow.length;
4581
+ const minInputLines = 1; // At least show the prompt line
4582
+ const maxInputLines = Math.max(minInputLines, terminalHeight - chromeHeight - 1); // -1 for safety margin
4583
+ // ============ PHASE 3: Build input with calculated height constraint ============
4584
+ const allInputLines = this.buildInputLinesWithViewport(maxInputLines);
4585
+ // ============ PHASE 4: Assemble final overlay ============
4586
+ const lines = [];
4587
+ lines.push(...chromeAbove);
4588
+ const promptIndex = lines.length; // Track where prompt starts for cursor positioning
4589
+ for (const line of allInputLines) {
4590
+ lines.push(this.truncateLine(line, maxWidth));
4603
4591
  }
4592
+ lines.push(...chromeBelow);
4604
4593
  return { lines, promptIndex };
4605
4594
  }
4595
+ /**
4596
+ * Build input lines with viewport constraint to fit within maxLines.
4597
+ * Ensures cursor is always visible and shows scroll indicators when content is clipped.
4598
+ */
4599
+ buildInputLinesWithViewport(maxLines) {
4600
+ const now = Date.now();
4601
+ const burstActive = this.pasteBurstWindowStart > 0 && now - this.pasteBurstWindowStart <= this.plainPasteWindowMs;
4602
+ // During paste detection, show compact indicator
4603
+ if (this.inPlainPaste || this.inBracketedPaste || burstActive) {
4604
+ const chars = this.plainPasteBuffer.length || this.pasteBuffer.length || this.pendingInsertBuffer.length || 0;
4605
+ if (chars > 0) {
4606
+ const indicator = theme.ui.muted(`[📋 pasting... ${chars} chars]`);
4607
+ return [this.truncateLine(`${theme.primary('> ')}${indicator}`, this.safeWidth())];
4608
+ }
4609
+ if (burstActive) {
4610
+ return [this.truncateLine(`${theme.primary('> ')}`, this.safeWidth())];
4611
+ }
4612
+ }
4613
+ const prompt = theme.primary('> ');
4614
+ const promptWidth = this.visibleLength(prompt);
4615
+ const maxWidth = this.safeWidth();
4616
+ const continuationIndent = ' ';
4617
+ const continuationWidth = continuationIndent.length;
4618
+ // Build all display lines from buffer
4619
+ const rawBuffer = this.buffer.replace(/\r/g, '\n');
4620
+ const normalized = this.secretMode ? '•'.repeat(rawBuffer.length) : rawBuffer;
4621
+ const bufferLines = normalized.split('\n');
4622
+ const allLines = [];
4623
+ let totalChars = 0;
4624
+ let cursorLine = 0;
4625
+ let cursorCol = 0;
4626
+ let foundCursor = false;
4627
+ for (let lineIndex = 0; lineIndex < bufferLines.length; lineIndex++) {
4628
+ const line = bufferLines[lineIndex] ?? '';
4629
+ const isFirstLogicalLine = lineIndex === 0;
4630
+ const lineStartChar = totalChars;
4631
+ const firstLineWidth = maxWidth - promptWidth;
4632
+ const contLineWidth = maxWidth - continuationWidth;
4633
+ let remaining = line;
4634
+ let isFirstDisplayLine = true;
4635
+ while (remaining.length > 0 || isFirstDisplayLine) {
4636
+ const availableWidth = (isFirstLogicalLine && isFirstDisplayLine) ? firstLineWidth : contLineWidth;
4637
+ const chunk = remaining.slice(0, availableWidth);
4638
+ remaining = remaining.slice(availableWidth);
4639
+ let displayLine;
4640
+ if (isFirstLogicalLine && isFirstDisplayLine) {
4641
+ displayLine = `${prompt}${chunk}`;
4642
+ }
4643
+ else {
4644
+ displayLine = `${continuationIndent}${chunk}`;
4645
+ }
4646
+ if (!foundCursor) {
4647
+ const chunkStart = lineStartChar + (line.length - remaining.length - chunk.length);
4648
+ const chunkEnd = chunkStart + chunk.length;
4649
+ if (this.cursor >= chunkStart && this.cursor <= chunkEnd) {
4650
+ cursorLine = allLines.length;
4651
+ const offsetInChunk = this.cursor - chunkStart;
4652
+ cursorCol = ((isFirstLogicalLine && isFirstDisplayLine) ? promptWidth : continuationWidth) + offsetInChunk;
4653
+ foundCursor = true;
4654
+ }
4655
+ }
4656
+ allLines.push(displayLine);
4657
+ isFirstDisplayLine = false;
4658
+ if (remaining.length === 0 && chunk.length === 0)
4659
+ break;
4660
+ }
4661
+ totalChars += line.length + 1;
4662
+ }
4663
+ // Handle cursor at end
4664
+ if (!foundCursor) {
4665
+ cursorLine = Math.max(0, allLines.length - 1);
4666
+ const lastLine = allLines[cursorLine] ?? '';
4667
+ cursorCol = this.visibleLength(lastLine);
4668
+ }
4669
+ // Add cursor highlight
4670
+ if (allLines.length > 0 && cursorLine < allLines.length) {
4671
+ const targetLine = allLines[cursorLine] ?? '';
4672
+ const visiblePart = this.stripAnsi(targetLine);
4673
+ const cursorPos = Math.min(cursorCol, visiblePart.length);
4674
+ const before = visiblePart.slice(0, cursorPos);
4675
+ const at = visiblePart.charAt(cursorPos) || ' ';
4676
+ const after = visiblePart.slice(cursorPos + 1);
4677
+ const prefix = cursorLine === 0 ? prompt : continuationIndent;
4678
+ const textPart = cursorLine === 0 ? before.slice(promptWidth) : before.slice(continuationWidth);
4679
+ allLines[cursorLine] = `${prefix}${textPart}${ESC.REVERSE}${at}${ESC.RESET}${after}`;
4680
+ }
4681
+ this.cursorVisibleColumn = cursorCol + 1;
4682
+ // ============ VIEWPORT LOGIC ============
4683
+ // If all lines fit, return them all
4684
+ if (allLines.length <= maxLines) {
4685
+ return allLines;
4686
+ }
4687
+ // Need viewport - reserve 1 line for scroll indicator if needed
4688
+ const viewportSize = maxLines - 1; // Reserve 1 for indicator
4689
+ if (viewportSize < 1) {
4690
+ return [allLines[cursorLine] ?? theme.primary('> ')];
4691
+ }
4692
+ // Calculate viewport to keep cursor visible, preferring to show content after cursor
4693
+ let viewportStart = this.inputLineViewportOffset;
4694
+ // Ensure cursor is in viewport
4695
+ if (cursorLine < viewportStart) {
4696
+ viewportStart = cursorLine;
4697
+ }
4698
+ else if (cursorLine >= viewportStart + viewportSize) {
4699
+ viewportStart = cursorLine - viewportSize + 1;
4700
+ }
4701
+ // Clamp to valid range
4702
+ const maxStart = Math.max(0, allLines.length - viewportSize);
4703
+ viewportStart = Math.max(0, Math.min(viewportStart, maxStart));
4704
+ this.inputLineViewportOffset = viewportStart;
4705
+ // Extract viewport
4706
+ const viewportEnd = Math.min(viewportStart + viewportSize, allLines.length);
4707
+ const visibleLines = allLines.slice(viewportStart, viewportEnd);
4708
+ // Build result with scroll indicator
4709
+ const result = [];
4710
+ const hiddenAbove = viewportStart;
4711
+ const hiddenBelow = allLines.length - viewportEnd;
4712
+ if (hiddenAbove > 0 && hiddenBelow > 0) {
4713
+ // Content hidden both above and below
4714
+ result.push(theme.ui.muted(` ↕ ${hiddenAbove} above · ${hiddenBelow} below — use arrows to scroll`));
4715
+ }
4716
+ else if (hiddenAbove > 0) {
4717
+ result.push(theme.ui.muted(` ↑ ${hiddenAbove} line${hiddenAbove === 1 ? '' : 's'} above`));
4718
+ }
4719
+ else if (hiddenBelow > 0) {
4720
+ result.push(theme.ui.muted(` ↓ ${hiddenBelow} line${hiddenBelow === 1 ? '' : 's'} below`));
4721
+ }
4722
+ result.push(...visibleLines);
4723
+ return result;
4724
+ }
4606
4725
  /**
4607
4726
  * Build a single compact status line with all essential info
4608
4727
  * Format: deepseek-reasoner · ░░░░░░ 5% · agi-code · ~/GitHub
@@ -5009,148 +5128,6 @@ export class UnifiedUIRenderer extends EventEmitter {
5009
5128
  }
5010
5129
  return parts.join(theme.ui.muted(' '));
5011
5130
  }
5012
- buildInputLine() {
5013
- // While detecting paste (or in burst detection phase), suppress buffer display
5014
- const now = Date.now();
5015
- const burstActive = this.pasteBurstWindowStart > 0 && now - this.pasteBurstWindowStart <= this.plainPasteWindowMs;
5016
- if (this.inPlainPaste || this.inBracketedPaste || burstActive) {
5017
- const chars = this.plainPasteBuffer.length || this.pasteBuffer.length || this.pendingInsertBuffer.length || 0;
5018
- if (chars > 0) {
5019
- const indicator = theme.ui.muted(`[📋 pasting... ${chars} chars]`);
5020
- return this.truncateLine(`${theme.primary('> ')}${indicator}`, this.safeWidth());
5021
- }
5022
- // Even if no chars yet, show empty prompt during burst to prevent flicker
5023
- if (burstActive) {
5024
- return this.truncateLine(`${theme.primary('> ')}`, this.safeWidth());
5025
- }
5026
- }
5027
- // Claude Code uses simple '>' prompt
5028
- const prompt = theme.primary('> ');
5029
- const promptWidth = this.visibleLength(prompt);
5030
- const maxWidth = this.safeWidth();
5031
- const continuationIndent = ' '; // 2 spaces for continuation lines
5032
- const continuationWidth = continuationIndent.length;
5033
- // Handle multi-line input - split buffer on newlines first
5034
- // In secret mode, mask all characters with bullets
5035
- const rawBuffer = this.buffer.replace(/\r/g, '\n');
5036
- const normalized = this.secretMode ? '•'.repeat(rawBuffer.length) : rawBuffer;
5037
- const bufferLines = normalized.split('\n');
5038
- // Wrap each logical line to fit terminal width, expanding vertically
5039
- const allLines = [];
5040
- let totalChars = 0;
5041
- let cursorLine = 0;
5042
- let cursorCol = 0;
5043
- let foundCursor = false;
5044
- for (let lineIndex = 0; lineIndex < bufferLines.length; lineIndex++) {
5045
- const line = bufferLines[lineIndex] ?? '';
5046
- const isFirstLogicalLine = lineIndex === 0;
5047
- const lineStartChar = totalChars;
5048
- // Determine available width for this line
5049
- const firstLineWidth = maxWidth - promptWidth;
5050
- const contLineWidth = maxWidth - continuationWidth;
5051
- // Wrap this logical line into display lines
5052
- let remaining = line;
5053
- let isFirstDisplayLine = true;
5054
- while (remaining.length > 0 || isFirstDisplayLine) {
5055
- const availableWidth = (isFirstLogicalLine && isFirstDisplayLine) ? firstLineWidth : contLineWidth;
5056
- const chunk = remaining.slice(0, availableWidth);
5057
- remaining = remaining.slice(availableWidth);
5058
- // Build the display line
5059
- let displayLine;
5060
- if (isFirstLogicalLine && isFirstDisplayLine) {
5061
- displayLine = `${prompt}${chunk}`;
5062
- }
5063
- else {
5064
- displayLine = `${continuationIndent}${chunk}`;
5065
- }
5066
- // Track cursor position
5067
- if (!foundCursor) {
5068
- const chunkStart = lineStartChar + (line.length - remaining.length - chunk.length);
5069
- const chunkEnd = chunkStart + chunk.length;
5070
- if (this.cursor >= chunkStart && this.cursor <= chunkEnd) {
5071
- cursorLine = allLines.length;
5072
- const offsetInChunk = this.cursor - chunkStart;
5073
- cursorCol = ((isFirstLogicalLine && isFirstDisplayLine) ? promptWidth : continuationWidth) + offsetInChunk;
5074
- foundCursor = true;
5075
- }
5076
- }
5077
- allLines.push(displayLine);
5078
- isFirstDisplayLine = false;
5079
- // If nothing left and this was an empty line, we already added it
5080
- if (remaining.length === 0 && chunk.length === 0)
5081
- break;
5082
- }
5083
- totalChars += line.length + 1; // +1 for the newline separator
5084
- }
5085
- // Handle cursor at very end
5086
- if (!foundCursor) {
5087
- cursorLine = Math.max(0, allLines.length - 1);
5088
- const lastLine = allLines[cursorLine] ?? '';
5089
- cursorCol = this.visibleLength(lastLine);
5090
- }
5091
- // Add cursor highlight to the appropriate position
5092
- if (allLines.length > 0 && cursorLine < allLines.length) {
5093
- const targetLine = allLines[cursorLine] ?? '';
5094
- const visiblePart = this.stripAnsi(targetLine);
5095
- const cursorPos = Math.min(cursorCol, visiblePart.length);
5096
- // Rebuild the line with cursor highlight
5097
- const before = visiblePart.slice(0, cursorPos);
5098
- const at = visiblePart.charAt(cursorPos) || ' ';
5099
- const after = visiblePart.slice(cursorPos + 1);
5100
- // Preserve the prompt/indent styling
5101
- const prefix = cursorLine === 0 ? prompt : continuationIndent;
5102
- const textPart = cursorLine === 0 ? before.slice(promptWidth) : before.slice(continuationWidth);
5103
- allLines[cursorLine] = `${prefix}${textPart}${ESC.REVERSE}${at}${ESC.RESET}${after}`;
5104
- }
5105
- // Store cursor column for terminal positioning
5106
- this.cursorVisibleColumn = cursorCol + 1;
5107
- // ============ VIEWPORT LOGIC ============
5108
- // Limit displayed lines to keep the UI from overflowing the terminal
5109
- // Calculate available height: terminal rows minus space for status/toggles/chrome
5110
- const reservedLines = 8; // dividers, status line, toggles, shortcuts, activity line buffer
5111
- const availableHeight = Math.max(3, Math.min(this.maxInputDisplayLines, (this.rows || 24) - reservedLines));
5112
- if (allLines.length <= availableHeight) {
5113
- // All lines fit, no viewport needed
5114
- return allLines.join('\n');
5115
- }
5116
- // Need to viewport - ensure cursor line is visible
5117
- // Calculate viewport window centered on cursor, but prefer showing more content after cursor
5118
- const cursorPadding = Math.floor(availableHeight / 3); // Keep cursor 1/3 from top when scrolling down
5119
- // Calculate ideal viewport start
5120
- let viewportStart = this.inputLineViewportOffset;
5121
- // Ensure cursor is visible in viewport
5122
- if (cursorLine < viewportStart) {
5123
- // Cursor above viewport - scroll up
5124
- viewportStart = cursorLine;
5125
- }
5126
- else if (cursorLine >= viewportStart + availableHeight) {
5127
- // Cursor below viewport - scroll down, keep cursor near bottom
5128
- viewportStart = cursorLine - availableHeight + 1 + cursorPadding;
5129
- }
5130
- // Clamp viewport to valid range
5131
- const maxStart = Math.max(0, allLines.length - availableHeight);
5132
- viewportStart = Math.max(0, Math.min(viewportStart, maxStart));
5133
- // Save viewport offset for next render
5134
- this.inputLineViewportOffset = viewportStart;
5135
- // Extract visible lines
5136
- const viewportEnd = Math.min(viewportStart + availableHeight, allLines.length);
5137
- const visibleLines = allLines.slice(viewportStart, viewportEnd);
5138
- // Build result with scroll indicators
5139
- const result = [];
5140
- // Add "more above" indicator if content is hidden above
5141
- const hiddenAbove = viewportStart;
5142
- if (hiddenAbove > 0) {
5143
- result.push(theme.ui.muted(` ↑ ${hiddenAbove} line${hiddenAbove === 1 ? '' : 's'} above (scroll up to see)`));
5144
- }
5145
- // Add visible content
5146
- result.push(...visibleLines);
5147
- // Add "more below" indicator if content is hidden below
5148
- const hiddenBelow = allLines.length - viewportEnd;
5149
- if (hiddenBelow > 0) {
5150
- result.push(theme.ui.muted(` ↓ ${hiddenBelow} line${hiddenBelow === 1 ? '' : 's'} below (scroll down to see)`));
5151
- }
5152
- return result.join('\n');
5153
- }
5154
5131
  buildInputWindow(available) {
5155
5132
  if (available <= 0) {
5156
5133
  return { text: '', cursor: 0 };