@zhijiewang/openharness 0.9.2 → 0.10.1

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.
@@ -3,8 +3,15 @@
3
3
  * Replaces Ink for the REPL. Only writes changed characters to stdout.
4
4
  */
5
5
  import { CellGrid } from './cells.js';
6
- import { diff, syncWrite, enterAltScreen, leaveAltScreen, hideCursor, showCursor, moveCursor } from './differ.js';
7
- import { rasterize } from './layout.js';
6
+ import { diff, syncWrite, hideCursor, showCursor, moveCursor } from './differ.js';
7
+ import { rasterizeLive } from './layout.js';
8
+ import { getTheme } from '../utils/theme-data.js';
9
+ const FG_MAP = {
10
+ black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, cyan: 36, white: 37,
11
+ gray: 90, brightRed: 91, brightGreen: 92, brightYellow: 93, brightBlue: 94,
12
+ brightMagenta: 95, brightCyan: 96, brightWhite: 97,
13
+ };
14
+ function FG(color) { return FG_MAP[color] ?? 37; }
8
15
  import { createSessionBrowser, browserUp, browserDown, browserSelectedId, browserLoadPreview, browserSearch } from './session-browser.js';
9
16
  import { summarizeToolArgs } from '../utils/tool-summary.js';
10
17
  import { extractDiffInfo } from './diff.js';
@@ -17,6 +24,8 @@ export class TerminalRenderer {
17
24
  animationTimer = null;
18
25
  renderPending = false;
19
26
  started = false;
27
+ flushedMessageCount = 0;
28
+ flushedToolCallIds = new Set();
20
29
  // Callbacks
21
30
  keypressHandler = null;
22
31
  resizeHandler = null;
@@ -64,16 +73,11 @@ export class TerminalRenderer {
64
73
  bannerLines: null,
65
74
  thinkingExpanded: false,
66
75
  lastThinkingSummary: null,
67
- searchMode: false,
68
- searchQuery: '',
69
- searchMatchCount: 0,
70
- searchCurrentMatch: -1,
71
76
  };
72
77
  }
73
78
  // ── Lifecycle ──
74
79
  start() {
75
80
  this.started = true;
76
- enterAltScreen();
77
81
  // Enable SGR mouse tracking (scroll wheel support)
78
82
  process.stdout.write('\x1b[?1000h\x1b[?1006h');
79
83
  hideCursor();
@@ -175,13 +179,20 @@ export class TerminalRenderer {
175
179
  this.stopInput();
176
180
  this.stopInput = null;
177
181
  }
178
- // Restore terminal: disable mouse, leave alt screen, show cursor, reset attributes
182
+ // Restore terminal: disable mouse, show cursor, reset attributes
179
183
  process.stdout.write('\x1b[?1006l\x1b[?1000l\x1b[0m');
180
184
  showCursor();
181
- leaveAltScreen();
185
+ // Position cursor at bottom for clean shell prompt
186
+ process.stdout.write(`\x1b[${process.stdout.rows ?? 24};1H\n`);
182
187
  }
183
188
  // ── State updates ──
184
- setMessages(msgs) { this.state.messages = msgs; this.scheduleRender(); }
189
+ setMessages(msgs) {
190
+ // Reset flush counter if messages array was replaced (e.g., session resume)
191
+ if (msgs.length < this.flushedMessageCount)
192
+ this.flushedMessageCount = 0;
193
+ this.state.messages = msgs;
194
+ this.scheduleRender();
195
+ }
185
196
  setStreamingText(text) { this.state.streamingText = text; this.scheduleRender(); }
186
197
  setThinkingText(text) { this.state.thinkingText = text; this.scheduleRender(); }
187
198
  setError(text) { this.state.errorText = text; this.scheduleRender(); }
@@ -193,7 +204,6 @@ export class TerminalRenderer {
193
204
  this.state.companionColor = color;
194
205
  this.scheduleRender();
195
206
  }
196
- setBanner(lines) { this.state.bannerLines = lines; this.scheduleRender(); }
197
207
  setStatusHints(text) { this.state.statusHints = text; this.scheduleRender(); }
198
208
  setAutocomplete(suggestions, index, descriptions) {
199
209
  this.state.autocomplete = suggestions;
@@ -208,120 +218,7 @@ export class TerminalRenderer {
208
218
  getThinkingStartedAt() { return this.state.thinkingStartedAt; }
209
219
  setLastThinkingSummary(summary) { this.state.lastThinkingSummary = summary; this.scheduleRender(); }
210
220
  toggleThinkingExpanded() { this.state.thinkingExpanded = !this.state.thinkingExpanded; this.scheduleRender(); }
211
- // Search mode
212
- enterSearchMode() {
213
- this.state.searchMode = true;
214
- this.state.searchQuery = '';
215
- this.state.searchMatchCount = 0;
216
- this.state.searchCurrentMatch = -1;
217
- this.scheduleRender();
218
- }
219
- exitSearchMode() {
220
- this.state.searchMode = false;
221
- this.state.searchQuery = '';
222
- this.state.searchMatchCount = 0;
223
- this.state.searchCurrentMatch = -1;
224
- this.scheduleRender();
225
- }
226
- setSearchQuery(query) {
227
- this.state.searchQuery = query;
228
- // Count matches across all messages
229
- if (query) {
230
- const lq = query.toLowerCase();
231
- let count = 0;
232
- for (const msg of this.state.messages) {
233
- const content = msg.content.toLowerCase();
234
- let idx = 0;
235
- while ((idx = content.indexOf(lq, idx)) !== -1) {
236
- count++;
237
- idx += lq.length;
238
- }
239
- }
240
- this.state.searchMatchCount = count;
241
- this.state.searchCurrentMatch = count > 0 ? 0 : -1;
242
- }
243
- else {
244
- this.state.searchMatchCount = 0;
245
- this.state.searchCurrentMatch = -1;
246
- }
247
- this.scheduleRender();
248
- }
249
- searchNext() {
250
- if (this.state.searchMatchCount > 0) {
251
- this.state.searchCurrentMatch = (this.state.searchCurrentMatch + 1) % this.state.searchMatchCount;
252
- this.scrollToSearchMatch();
253
- this.scheduleRender();
254
- }
255
- }
256
- searchPrev() {
257
- if (this.state.searchMatchCount > 0) {
258
- this.state.searchCurrentMatch = (this.state.searchCurrentMatch - 1 + this.state.searchMatchCount) % this.state.searchMatchCount;
259
- this.scrollToSearchMatch();
260
- this.scheduleRender();
261
- }
262
- }
263
- scrollToSearchMatch() {
264
- // Estimate which row the current match is on and scroll to it
265
- const lq = this.state.searchQuery.toLowerCase();
266
- const w = process.stdout.columns ?? 80;
267
- let matchIdx = 0;
268
- let rowEstimate = 0;
269
- for (const msg of this.state.messages) {
270
- const content = msg.content;
271
- const lines = content.split('\n');
272
- for (const line of lines) {
273
- const lineRows = Math.max(1, Math.ceil((line.length || 1) / (w - 2)));
274
- // Count matches in this line
275
- const ll = line.toLowerCase();
276
- let idx = 0;
277
- while ((idx = ll.indexOf(lq, idx)) !== -1) {
278
- if (matchIdx === this.state.searchCurrentMatch) {
279
- // Found it — scroll so this row is visible
280
- const h = process.stdout.rows ?? 24;
281
- const targetScroll = Math.max(0, rowEstimate - Math.floor(h / 3));
282
- // manualScroll is offset from bottom: convert
283
- const totalRows = this.estimateTotalRows();
284
- this.state.manualScroll = Math.max(0, totalRows - targetScroll - h + 15);
285
- return;
286
- }
287
- matchIdx++;
288
- idx += lq.length;
289
- }
290
- rowEstimate += lineRows;
291
- }
292
- rowEstimate++; // gap between messages
293
- }
294
- }
295
- estimateTotalRows() {
296
- const w = process.stdout.columns ?? 80;
297
- let total = 0;
298
- for (const msg of this.state.messages) {
299
- const lines = msg.content.split('\n');
300
- for (const line of lines) {
301
- total += Math.max(1, Math.ceil((line.length || 1) / (w - 2)));
302
- }
303
- total++;
304
- }
305
- return total;
306
- }
307
- isSearchMode() { return this.state.searchMode; }
308
- getSearchQuery() { return this.state.searchQuery; }
309
221
  setTokenCount(count) { this.state.tokenCount = count; this.scheduleRender(); }
310
- scrollUp(rows) {
311
- // Cap manualScroll to prevent scrolling past the top
312
- const h = process.stdout.rows ?? 24;
313
- const maxScroll = Math.max(0, this.estimateTotalRows() - Math.floor(h / 3));
314
- this.state.manualScroll = Math.min(this.state.manualScroll + rows, maxScroll);
315
- this.scheduleRender();
316
- }
317
- scrollDown(rows) {
318
- this.state.manualScroll = Math.max(0, this.state.manualScroll - rows);
319
- this.scheduleRender();
320
- }
321
- scrollToBottom() {
322
- this.state.manualScroll = 0;
323
- this.scheduleRender();
324
- }
325
222
  toggleCodeBlockExpansion() {
326
223
  this.state.codeBlocksExpanded = !this.state.codeBlocksExpanded;
327
224
  this.scheduleRender();
@@ -375,7 +272,7 @@ export class TerminalRenderer {
375
272
  this.scheduleRender();
376
273
  }
377
274
  getToolCall(callId) { return this.state.toolCalls.get(callId); }
378
- clearToolCalls() { this.state.toolCalls.clear(); this.scheduleRender(); }
275
+ clearToolCalls() { this.state.toolCalls.clear(); this.flushedToolCallIds.clear(); this.scheduleRender(); }
379
276
  collapseAllToolCalls() { this.state.expandedToolCalls.clear(); this.scheduleRender(); }
380
277
  /** Show a question prompt and wait for text answer */
381
278
  askQuestion(question, options) {
@@ -447,26 +344,121 @@ export class TerminalRenderer {
447
344
  this.render();
448
345
  });
449
346
  }
347
+ /** Apply lightweight markdown styling to a line for scrollback output */
348
+ styleMarkdownLine(line) {
349
+ return line
350
+ .replace(/\*\*(.+?)\*\*/g, '\x1b[1m$1\x1b[0m') // bold → full reset after
351
+ .replace(/`([^`]+)`/g, '\x1b[2m$1\x1b[0m') // inline code → dim, full reset after
352
+ .replace(/^(#{1,3})\s+(.+)$/, '\x1b[1m\x1b[36m$1 $2\x1b[0m'); // headings → bold cyan
353
+ }
354
+ /** Flush completed messages to terminal scrollback (native scrollbar) */
355
+ flushMessages() {
356
+ const messages = this.state.messages;
357
+ let didFlush = false;
358
+ while (this.flushedMessageCount < messages.length) {
359
+ const msg = messages[this.flushedMessageCount];
360
+ // Don't flush the message currently being streamed
361
+ if (this.state.loading && this.flushedMessageCount === messages.length - 1 && msg.meta?.isStreaming)
362
+ break;
363
+ const t = getTheme();
364
+ const colorCode = msg.role === 'user' ? `\x1b[${FG(t.user)}m\x1b[1m` : msg.role === 'assistant' ? `\x1b[${FG(t.assistant)}m` : '\x1b[2m';
365
+ const prefixChar = msg.role === 'user' ? '❯ ' : msg.role === 'assistant' ? '◆ ' : ' ';
366
+ const lines = msg.content.split('\n');
367
+ for (let i = 0; i < lines.length; i++) {
368
+ const styledLine = msg.role === 'assistant' ? this.styleMarkdownLine(lines[i]) : lines[i];
369
+ const linePrefix = i === 0 ? prefixChar : ' ';
370
+ process.stdout.write(colorCode + linePrefix + styledLine + '\x1b[0m\n');
371
+ }
372
+ // Divider after each message
373
+ process.stdout.write('\x1b[2m' + '─'.repeat(Math.min(60, process.stdout.columns ?? 80)) + '\x1b[0m\n');
374
+ this.flushedMessageCount++;
375
+ didFlush = true;
376
+ }
377
+ // Flush completed tool calls as single-line summaries (once each)
378
+ if (didFlush) {
379
+ for (const [callId, tc] of this.state.toolCalls) {
380
+ if (tc.status === 'running')
381
+ continue;
382
+ if (this.flushedToolCallIds.has(callId))
383
+ continue;
384
+ this.flushedToolCallIds.add(callId);
385
+ const t = getTheme();
386
+ const icon = tc.status === 'done' ? `\x1b[${FG(t.success)}m✓` : `\x1b[${FG(t.error)}m✗`;
387
+ const summary = tc.resultSummary ? ` ${tc.resultSummary}` : '';
388
+ const elapsed = tc.startedAt ? ` · ${Math.floor((Date.now() - tc.startedAt) / 1000)}s` : '';
389
+ process.stdout.write(`${icon} ${tc.toolName}\x1b[0m \x1b[2m${tc.args ?? ''}${summary}${elapsed}\x1b[0m\n`);
390
+ }
391
+ // Force full repaint of live area after flush to avoid stale artifacts
392
+ this.previous = new CellGrid(1, 1);
393
+ }
394
+ }
450
395
  render() {
451
396
  const w = process.stdout.columns ?? 80;
452
397
  const h = process.stdout.rows ?? 24;
398
+ // Flush completed messages to terminal scrollback
399
+ this.flushMessages();
400
+ // Calculate live area height
401
+ const liveHeight = Math.min(h, this.calculateLiveHeight());
453
402
  // Resize if needed
454
- if (w !== this.current.width || h !== this.current.height) {
455
- this.current = new CellGrid(w, h);
456
- this.previous = new CellGrid(w, h); // force full repaint
403
+ if (w !== this.current.width || liveHeight !== this.current.height) {
404
+ this.current = new CellGrid(w, liveHeight);
405
+ this.previous = new CellGrid(w, liveHeight); // force full repaint
457
406
  }
458
407
  this.current.clear();
459
- const cursor = rasterize(this.state, this.current);
460
- const output = diff(this.previous, this.current);
461
- if (output) {
462
- syncWrite(output);
408
+ const cursor = rasterizeLive(this.state, this.current);
409
+ // Position live area at bottom of terminal
410
+ const liveStartRow = h - liveHeight;
411
+ const cellDiff = diff(this.previous, this.current, liveStartRow);
412
+ // Only erase+redraw when grid size changed or cells differ
413
+ const needsErase = this.previous.width !== this.current.width || this.previous.height !== this.current.height;
414
+ if (cellDiff || needsErase) {
415
+ const output = (needsErase ? `\x1b[${liveStartRow + 1};1H\x1b[J` : '') + cellDiff;
416
+ if (output)
417
+ syncWrite(output);
463
418
  }
464
- // Show cursor at input position
465
- moveCursor(cursor.cursorRow, cursor.cursorCol);
419
+ // Show cursor at input position (offset by live area start)
420
+ moveCursor(liveStartRow + cursor.cursorRow, cursor.cursorCol);
466
421
  showCursor();
467
422
  // Swap buffers
468
423
  this.previous = this.current.clone();
469
424
  }
425
+ /** Estimate the height needed for the live area */
426
+ calculateLiveHeight() {
427
+ let rows = 3; // border + input + hints (minimum)
428
+ if (this.state.loading && this.state.streamingText)
429
+ rows += Math.min(this.state.streamingText.split('\n').length, 10);
430
+ if (this.state.thinkingText)
431
+ rows += this.state.thinkingExpanded ? 10 : 1;
432
+ if (!this.state.loading && this.state.lastThinkingSummary)
433
+ rows += 1;
434
+ if (this.state.loading && !this.state.streamingText && !this.state.thinkingText)
435
+ rows += 1; // spinner
436
+ if (this.state.errorText)
437
+ rows += 1;
438
+ for (const [, tc] of this.state.toolCalls) {
439
+ rows += 2; // header + possible description/agent line
440
+ if (tc.status === 'running' && tc.liveOutput)
441
+ rows += Math.min(tc.liveOutput.length, 3);
442
+ }
443
+ if (this.state.contextWarning)
444
+ rows += 1;
445
+ if (this.state.statusLine)
446
+ rows += 1;
447
+ rows += this.state.autocomplete.length;
448
+ if (this.state.permissionBox) {
449
+ rows += 3;
450
+ if (this.state.permissionDiffVisible && this.state.permissionDiffInfo)
451
+ rows += 15;
452
+ }
453
+ if (this.state.questionPrompt)
454
+ rows += 3 + (this.state.questionPrompt.options?.length ?? 0);
455
+ if (this.state.companionLines)
456
+ rows = Math.max(rows, this.state.companionLines.length + 2);
457
+ const inputLineCount = Math.min(5, (this.state.inputText.match(/\n/g)?.length ?? 0) + 1);
458
+ rows += inputLineCount - 1;
459
+ const h = process.stdout.rows ?? 24;
460
+ return Math.min(rows, Math.floor(h * 0.7)); // never exceed 70% of terminal
461
+ }
470
462
  handleResize() {
471
463
  // Force full repaint on resize
472
464
  this.previous = new CellGrid(1, 1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
@@ -60,10 +60,6 @@ export type LayoutState = {
60
60
  bannerLines: string[] | null;
61
61
  thinkingExpanded: boolean;
62
62
  lastThinkingSummary: string | null;
63
- searchMode: boolean;
64
- searchQuery: string;
65
- searchMatchCount: number;
66
- searchCurrentMatch: number;
67
63
  };
68
64
  /** Reset style cache — call after theme change */
69
65
  export declare function resetStyleCache(): void;
@@ -75,4 +71,13 @@ export declare function rasterize(state: LayoutState, grid: CellGrid): {
75
71
  cursorRow: number;
76
72
  cursorCol: number;
77
73
  };
74
+ /**
75
+ * Rasterize only the "live area" — streaming text, thinking, tool calls, and footer.
76
+ * Used in hybrid mode where completed messages are flushed to terminal scrollback.
77
+ * The grid should be sized to fit just the live content.
78
+ */
79
+ export declare function rasterizeLive(state: LayoutState, grid: CellGrid): {
80
+ cursorRow: number;
81
+ cursorCol: number;
82
+ };
78
83
  //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/renderer/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/renderer/layout.ts"],"names":[],"mappings":"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"}