erosolar-cli 1.7.398 → 1.7.400

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.
@@ -19,7 +19,6 @@ export interface ShellConfig {
19
19
  enabledPlugins?: string[];
20
20
  version?: string;
21
21
  alternateScreen?: boolean;
22
- assistantBlocksEnabled?: boolean;
23
22
  }
24
23
  export interface SessionRestoreConfig {
25
24
  mode: 'none' | 'autosave' | 'session-id';
@@ -61,7 +60,6 @@ export declare class InteractiveShell {
61
60
  private readonly ui;
62
61
  private readonly uiAdapter;
63
62
  private readonly uiUpdates;
64
- private readonly assistantBlocksEnabled;
65
63
  private readonly assistantBlockRenderer;
66
64
  private readonly _fileChangeTracker;
67
65
  private readonly alphaZeroMetrics;
@@ -123,7 +121,13 @@ export declare class InteractiveShell {
123
121
  private readonly version;
124
122
  private readonly alternateScreenEnabled;
125
123
  private inputInitialized;
124
+ private assistantStreamActive;
125
+ private assistantStreamPhase;
126
+ private assistantStreamHeaderShown;
126
127
  private assistantStreamBuffer;
128
+ private assistantStreamMetadata;
129
+ private lastRequestStartedAt;
130
+ private lastToolSummaryRenderedAt;
127
131
  constructor(config: ShellConfig);
128
132
  private parallelAgentDisplayLines;
129
133
  private setupParallelAgentTracking;
@@ -241,10 +245,20 @@ export declare class InteractiveShell {
241
245
  private refreshControlBar;
242
246
  private refreshFeatureStatusDisplay;
243
247
  private writeLocked;
244
- private resetAssistantStreamBuffer;
245
- private appendAssistantStreamChunk;
246
- private consumeAssistantStreamBuffer;
248
+ private startAssistantStream;
249
+ private streamAssistantChunk;
250
+ private finalizeAssistantStream;
251
+ private processAssistantStreamChunk;
252
+ private writeAssistantStream;
253
+ private setAssistantStreamPhase;
254
+ private renderAssistantStreamHeader;
255
+ private splitAssistantStreamRemainder;
256
+ private enqueueAssistantStream;
257
+ private writeAssistantBlock;
247
258
  private renderAssistantBlock;
259
+ private renderAssistantContent;
260
+ private renderAssistantFallback;
261
+ private formatAssistantHeader;
248
262
  private isStreamingUiActive;
249
263
  /**
250
264
  * Render the prompt/control bar. During streaming, rely on the streaming frame
@@ -494,6 +508,7 @@ export declare class InteractiveShell {
494
508
  /**
495
509
  * Build the session banner with comprehensive feature status.
496
510
  */
511
+ private getSessionFrameProps;
497
512
  private buildBanner;
498
513
  /**
499
514
  * Collect tool categories for banner display.
@@ -1 +1 @@
1
- {"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ import { generateTestFlows, detectBugs, detectUIUpdates, saveTestFlows, saveBugR
37
37
  import { TerminalInputAdapter } from './terminalInputAdapter.js';
38
38
  import { renderSessionFrame } from '../ui/unified/layout.js';
39
39
  import { isUpdateInProgress, maybeOfferCliUpdate } from './updateManager.js';
40
+ import { writeLock } from '../ui/writeLock.js';
40
41
  import { enterStreamingMode, exitStreamingMode } from '../ui/globalWriteLock.js';
41
42
  import { setGlobalAIEnhancer } from '../tools/localExplore.js';
42
43
  import { createProvider } from '../providers/providerFactory.js';
@@ -115,8 +116,7 @@ export class InteractiveShell {
115
116
  ui;
116
117
  uiAdapter;
117
118
  uiUpdates;
118
- assistantBlocksEnabled;
119
- assistantBlockRenderer = null;
119
+ assistantBlockRenderer;
120
120
  _fileChangeTracker = new FileChangeTracker(); // Reserved for future file tracking features
121
121
  alphaZeroMetrics; // Alpha Zero 2 performance tracking
122
122
  statusSubscription = null;
@@ -183,7 +183,13 @@ export class InteractiveShell {
183
183
  version;
184
184
  alternateScreenEnabled;
185
185
  inputInitialized = false;
186
+ assistantStreamActive = false;
187
+ assistantStreamPhase = null;
188
+ assistantStreamHeaderShown = false;
186
189
  assistantStreamBuffer = '';
190
+ assistantStreamMetadata;
191
+ lastRequestStartedAt = null;
192
+ lastToolSummaryRenderedAt = null;
187
193
  constructor(config) {
188
194
  this.profile = config.profile;
189
195
  this.profileLabel = config.profileLabel;
@@ -199,7 +205,6 @@ export class InteractiveShell {
199
205
  this.sessionRestoreConfig = config.sessionRestore ?? { mode: 'none' };
200
206
  this._enabledPlugins = config.enabledPlugins ?? [];
201
207
  this.version = config.version ?? '0.0.0';
202
- this.assistantBlocksEnabled = Boolean(config.assistantBlocksEnabled);
203
208
  // Alternate screen disabled - use terminal-native mode for proper scrollback and text selection
204
209
  this.alternateScreenEnabled = false;
205
210
  this.initializeSessionHistory();
@@ -295,12 +300,10 @@ export class InteractiveShell {
295
300
  onToggleAlphaZero: () => this.toggleAlphaZeroMode('shortcut'),
296
301
  onClearContext: () => this.handleClearContext(),
297
302
  });
298
- if (this.assistantBlocksEnabled) {
299
- this.assistantBlockRenderer = new AssistantBlockRenderer({
300
- write: (text) => this.terminalInput.streamContent(text),
301
- updates: this.uiUpdates,
302
- });
303
- }
303
+ this.assistantBlockRenderer = new AssistantBlockRenderer({
304
+ write: (text) => this.writeAssistantBlock(text),
305
+ updates: this.uiUpdates,
306
+ });
304
307
  // Initialize Alpha Zero 2 metrics tracking
305
308
  this.alphaZeroMetrics = new MetricsTracker(`${this.profile}-${Date.now()}`);
306
309
  this.setupStatusTracking();
@@ -321,6 +324,7 @@ export class InteractiveShell {
321
324
  }
322
325
  // Stream banner first - this sets up scroll region dynamically
323
326
  const banner = this.buildBanner();
327
+ this.terminalInput.setSessionFrame(this.getSessionFrameProps());
324
328
  this.terminalInput.streamContent(banner + '\n\n');
325
329
  this.rebuildAgent();
326
330
  this.setupHandlers();
@@ -454,15 +458,15 @@ export class InteractiveShell {
454
458
  `${theme.ui.muted('Current')}: ${theme.info(context.currentVersion)}`,
455
459
  `${theme.ui.muted('Latest')}: ${theme.success(context.latestVersion)}`,
456
460
  '',
457
- `${theme.primary('>')} Update now (recommended)`,
458
- `${theme.ui.muted(' Skip for now')}`,
461
+ `${theme.primary('▶ Yes (recommended)')} ${theme.ui.muted('install now')}`,
462
+ `${theme.ui.muted(' No')} ${theme.ui.muted('skip for now')}`,
459
463
  '',
460
- 'Press Enter to accept the highlighted option, or type Y/n (1/2).',
464
+ theme.ui.muted('Press Enter for Yes, or type n/2 to skip.'),
461
465
  ];
462
466
  display.showSystemMessage(lines.join('\n'));
463
467
  const prompt = createInterface({ input, output });
464
468
  try {
465
- const raw = (await prompt.question('> ')).trim().toLowerCase();
469
+ const raw = (await prompt.question('Update now? [Y/n]: ')).trim().toLowerCase();
466
470
  if (!raw || raw === 'y' || raw === 'yes' || raw === '1' || raw === 'update') {
467
471
  return true;
468
472
  }
@@ -762,17 +766,27 @@ export class InteractiveShell {
762
766
  */
763
767
  async performContextCompaction() {
764
768
  try {
765
- // For now, just clear the history and show a message
766
- // A full implementation would summarize the conversation
767
- const oldLength = this.cachedHistory.length;
769
+ const sourceHistory = this.agent ? this.agent.getHistory() : this.cachedHistory;
770
+ const oldLength = sourceHistory.length;
768
771
  if (oldLength === 0) {
769
772
  display.showInfo('Context is already empty.');
770
773
  return;
771
774
  }
772
- // Keep the last few messages for continuity
773
- const keepCount = Math.min(4, oldLength);
774
- this.cachedHistory = this.cachedHistory.slice(-keepCount);
775
- display.showSuccess(`Context compacted: ${oldLength} messages reduced to ${keepCount}. ` +
775
+ // Preserve the first system message (base prompt) and the last few user/assistant turns.
776
+ const systemMessage = sourceHistory.find((message) => message.role === 'system') ?? null;
777
+ const conversationalMessages = sourceHistory.filter((message) => message.role !== 'system');
778
+ const keepCount = Math.min(4, conversationalMessages.length);
779
+ const tail = keepCount > 0 ? conversationalMessages.slice(-keepCount) : [];
780
+ const compacted = systemMessage ? [systemMessage, ...tail] : tail;
781
+ this.cachedHistory = compacted;
782
+ if (this.agent) {
783
+ this.agent.loadHistory(compacted);
784
+ }
785
+ // Reset tracked context usage so tools and status bars stay in sync post-compaction.
786
+ this.latestTokenUsage = { used: null, limit: this.activeContextWindowTokens ?? null };
787
+ this.updateContextUsage(0, CONTEXT_AUTOCOMPACT_PERCENT);
788
+ this.lastContextWarningLevel = null;
789
+ display.showSuccess(`Context compacted: ${oldLength} messages reduced to ${compacted.length}. ` +
776
790
  `Context usage reset. Continue your conversation.`);
777
791
  this.refreshControlBar();
778
792
  }
@@ -1342,28 +1356,198 @@ export class InteractiveShell {
1342
1356
  // Route through display stream so scroll regions and streaming locks stay in sync
1343
1357
  display.stream(content);
1344
1358
  }
1345
- resetAssistantStreamBuffer() {
1359
+ startAssistantStream(metadata) {
1360
+ if (this.assistantStreamActive) {
1361
+ this.assistantStreamMetadata = metadata ?? this.assistantStreamMetadata;
1362
+ return;
1363
+ }
1364
+ this.assistantStreamActive = true;
1365
+ this.assistantStreamPhase = null;
1366
+ this.assistantStreamHeaderShown = false;
1346
1367
  this.assistantStreamBuffer = '';
1368
+ this.assistantStreamMetadata = metadata;
1369
+ }
1370
+ streamAssistantChunk(chunk) {
1371
+ if (!chunk) {
1372
+ return;
1373
+ }
1374
+ if (!this.assistantStreamActive) {
1375
+ this.startAssistantStream({
1376
+ contextWindowTokens: this.activeContextWindowTokens,
1377
+ });
1378
+ }
1379
+ this.processAssistantStreamChunk(chunk);
1347
1380
  }
1348
- appendAssistantStreamChunk(chunk) {
1349
- if (!this.assistantBlocksEnabled || !chunk) {
1381
+ finalizeAssistantStream() {
1382
+ if (!this.assistantStreamActive) {
1350
1383
  return;
1351
1384
  }
1385
+ if (this.assistantStreamBuffer) {
1386
+ this.writeAssistantStream(this.assistantStreamBuffer);
1387
+ this.assistantStreamBuffer = '';
1388
+ }
1389
+ this.assistantStreamActive = false;
1390
+ this.assistantStreamPhase = null;
1391
+ this.assistantStreamHeaderShown = false;
1392
+ this.assistantStreamMetadata = undefined;
1393
+ this.enqueueAssistantStream('\n\n');
1394
+ }
1395
+ processAssistantStreamChunk(chunk) {
1352
1396
  this.assistantStreamBuffer += chunk;
1397
+ const tagRegex = /<(\/?)(thinking|response)>/i;
1398
+ while (this.assistantStreamBuffer.length > 0) {
1399
+ const match = tagRegex.exec(this.assistantStreamBuffer);
1400
+ if (!match || match.index === undefined) {
1401
+ // No more full tags - flush what we can but keep any partial tag prefix buffered
1402
+ const { flushable, remainder } = this.splitAssistantStreamRemainder(this.assistantStreamBuffer);
1403
+ if (flushable) {
1404
+ this.writeAssistantStream(flushable);
1405
+ }
1406
+ this.assistantStreamBuffer = remainder;
1407
+ return;
1408
+ }
1409
+ const tagIndex = match.index;
1410
+ const beforeTag = this.assistantStreamBuffer.slice(0, tagIndex);
1411
+ if (beforeTag) {
1412
+ this.writeAssistantStream(beforeTag);
1413
+ }
1414
+ // Advance buffer past the tag
1415
+ this.assistantStreamBuffer = this.assistantStreamBuffer.slice(tagIndex + match[0].length);
1416
+ const isClosing = match[1] === '/';
1417
+ const tagType = (match[2] ?? '').toLowerCase();
1418
+ if (isClosing) {
1419
+ if (this.assistantStreamPhase === tagType) {
1420
+ this.assistantStreamPhase = null;
1421
+ this.assistantStreamHeaderShown = false;
1422
+ }
1423
+ }
1424
+ else {
1425
+ this.setAssistantStreamPhase(tagType);
1426
+ }
1427
+ }
1353
1428
  }
1354
- consumeAssistantStreamBuffer(fallback) {
1355
- const buffered = this.assistantStreamBuffer;
1356
- this.assistantStreamBuffer = '';
1357
- if (buffered.trim()) {
1358
- return buffered;
1429
+ writeAssistantStream(content) {
1430
+ if (!content) {
1431
+ return;
1432
+ }
1433
+ if (!this.assistantStreamPhase) {
1434
+ this.setAssistantStreamPhase('response');
1435
+ }
1436
+ if (this.assistantStreamPhase) {
1437
+ this.renderAssistantStreamHeader(this.assistantStreamPhase);
1438
+ }
1439
+ this.enqueueAssistantStream(content);
1440
+ }
1441
+ setAssistantStreamPhase(phase) {
1442
+ if (this.assistantStreamPhase === phase) {
1443
+ return;
1444
+ }
1445
+ this.assistantStreamPhase = phase;
1446
+ this.assistantStreamHeaderShown = false;
1447
+ if (phase) {
1448
+ this.renderAssistantStreamHeader(phase);
1449
+ }
1450
+ }
1451
+ renderAssistantStreamHeader(type) {
1452
+ if (this.assistantStreamHeaderShown) {
1453
+ return;
1454
+ }
1455
+ const header = this.formatAssistantHeader(type, this.assistantStreamMetadata);
1456
+ if (header.trim()) {
1457
+ this.enqueueAssistantStream(`\n${header}\n`);
1458
+ }
1459
+ this.assistantStreamHeaderShown = true;
1460
+ }
1461
+ splitAssistantStreamRemainder(buffer) {
1462
+ if (!buffer) {
1463
+ return { flushable: '', remainder: '' };
1464
+ }
1465
+ const tags = ['<thinking>', '</thinking>', '<response>', '</response>'];
1466
+ let longest = '';
1467
+ for (const tag of tags) {
1468
+ for (let i = 1; i < tag.length; i += 1) {
1469
+ const prefix = tag.slice(0, i);
1470
+ if (buffer.endsWith(prefix) && prefix.length > longest.length) {
1471
+ longest = prefix;
1472
+ }
1473
+ }
1474
+ }
1475
+ if (!longest) {
1476
+ return { flushable: buffer, remainder: '' };
1477
+ }
1478
+ return {
1479
+ flushable: buffer.slice(0, -longest.length),
1480
+ remainder: longest,
1481
+ };
1482
+ }
1483
+ enqueueAssistantStream(content) {
1484
+ if (!content) {
1485
+ return;
1486
+ }
1487
+ const run = () => this.writeAssistantBlock(content);
1488
+ this.uiUpdates.enqueue({
1489
+ lane: 'stream',
1490
+ mode: ['streaming', 'processing', 'idle'],
1491
+ priority: 'high',
1492
+ description: 'assistant stream flush',
1493
+ run,
1494
+ });
1495
+ }
1496
+ writeAssistantBlock(content) {
1497
+ if (!content) {
1498
+ return;
1359
1499
  }
1360
- return fallback ?? '';
1500
+ // Ensure assistant block writes are serialized with terminal input renders
1501
+ writeLock.safeWrite(() => {
1502
+ this.terminalInput.streamContent(content);
1503
+ });
1361
1504
  }
1362
1505
  renderAssistantBlock(type, content, metadata) {
1363
1506
  if (!this.assistantBlockRenderer) {
1364
1507
  return;
1365
1508
  }
1366
1509
  this.assistantBlockRenderer.renderBlock(type, content, metadata);
1510
+ // Ensure the prompt stays pinned below freshly written blocks
1511
+ this.renderPromptArea();
1512
+ }
1513
+ renderAssistantContent(type, content, metadata) {
1514
+ const normalized = content.replace(/\r\n/g, '\n').trim();
1515
+ if (!normalized) {
1516
+ return;
1517
+ }
1518
+ if (this.assistantBlockRenderer) {
1519
+ this.renderAssistantBlock(type, normalized, metadata);
1520
+ return;
1521
+ }
1522
+ this.renderAssistantFallback(type, normalized, metadata);
1523
+ }
1524
+ renderAssistantFallback(type, content, metadata) {
1525
+ const header = this.formatAssistantHeader(type, metadata);
1526
+ const block = `\n${header}\n${content.trimEnd()}\n\n`;
1527
+ this.enqueueAssistantStream(block);
1528
+ }
1529
+ formatAssistantHeader(type, metadata) {
1530
+ if (this.assistantBlockRenderer) {
1531
+ return this.assistantBlockRenderer.formatHeader(type, metadata);
1532
+ }
1533
+ const label = type === 'thought' ? 'Thought' : 'Response';
1534
+ const timestamp = new Date().toLocaleTimeString('en-US', {
1535
+ hour12: false,
1536
+ hour: '2-digit',
1537
+ minute: '2-digit',
1538
+ second: '2-digit',
1539
+ });
1540
+ const parts = [`${label} · ${timestamp}`];
1541
+ const total = metadata?.usage ? this.totalTokens(metadata.usage) : null;
1542
+ if (total) {
1543
+ parts.push(`${total} tok`);
1544
+ }
1545
+ const windowTokens = metadata?.contextWindowTokens;
1546
+ if (total && windowTokens) {
1547
+ const percentage = Math.round((total / windowTokens) * 100);
1548
+ parts.push(`${percentage}% ctx`);
1549
+ }
1550
+ return parts.join(' • ');
1367
1551
  }
1368
1552
  isStreamingUiActive() {
1369
1553
  return this.streamingHeartbeatStart !== null;
@@ -1544,7 +1728,6 @@ export class InteractiveShell {
1544
1728
  this.stopStreamingHeartbeat();
1545
1729
  // Enter global streaming mode - blocks all non-streaming UI output
1546
1730
  enterStreamingMode();
1547
- this.resetAssistantStreamBuffer();
1548
1731
  this.streamingStatusBase = label;
1549
1732
  this.streamingStatusDetail = null;
1550
1733
  this.latestThoughtSummary = null;
@@ -1561,6 +1744,7 @@ export class InteractiveShell {
1561
1744
  this.uiUpdates.startHeartbeat('streaming', {
1562
1745
  intervalMs: 1000,
1563
1746
  lane: 'heartbeat',
1747
+ priority: 'high',
1564
1748
  mode: ['streaming', 'processing'],
1565
1749
  coalesceKey: 'streaming:heartbeat',
1566
1750
  run: () => {
@@ -2130,14 +2314,25 @@ export class InteractiveShell {
2130
2314
  break;
2131
2315
  }
2132
2316
  };
2317
+ const streamingUiActive = this.isStreamingUiActive();
2318
+ const captureOptions = streamingUiActive
2319
+ ? { includeStreaming: false, suppressTypes: ['normal'] }
2320
+ : undefined;
2133
2321
  let capturedOutput = '';
2134
2322
  try {
2135
- const { output: outputBuffer } = await display.captureOutput(runCommand);
2323
+ const { output: outputBuffer } = await display.captureOutput(runCommand, captureOptions);
2136
2324
  capturedOutput = outputBuffer;
2137
2325
  }
2138
2326
  catch (error) {
2139
2327
  capturedOutput = error?.capturedOutput ?? capturedOutput;
2140
- display.showError(error instanceof Error ? error.message : String(error), error);
2328
+ if (streamingUiActive) {
2329
+ const message = error instanceof Error ? error.message : String(error);
2330
+ const { output: errorOutput } = await display.captureOutput(() => display.showError(message, error), { includeStreaming: false, suppressTypes: ['normal'] });
2331
+ capturedOutput = capturedOutput || errorOutput || message;
2332
+ }
2333
+ else {
2334
+ display.showError(error instanceof Error ? error.message : String(error), error);
2335
+ }
2141
2336
  }
2142
2337
  const panelContent = this.buildInlineCommandPanel(command, capturedOutput);
2143
2338
  this.terminalInput.setInlineCommandPanel(panelContent);
@@ -5048,6 +5243,8 @@ export class InteractiveShell {
5048
5243
  // Keep the persistent input/control bar active as we transition into streaming.
5049
5244
  this.renderPromptArea(true);
5050
5245
  const requestStartTime = Date.now(); // Alpha Zero 2 timing
5246
+ this.lastRequestStartedAt = requestStartTime;
5247
+ this.lastToolSummaryRenderedAt = null;
5051
5248
  // Clear previous parallel agents and start fresh for new request
5052
5249
  const parallelManager = getParallelAgentManager();
5053
5250
  parallelManager.clear();
@@ -5748,12 +5945,9 @@ What's the next action?`;
5748
5945
  display.showThinking('Analyzing build errors');
5749
5946
  this.refreshStatusLine(true);
5750
5947
  this.hasShownThoughtProcess = false;
5751
- const response = await this.withStreamingUi('Fixing build errors', () => this.agent.send(prompt, true));
5948
+ await this.withStreamingUi('Fixing build errors', () => this.agent.send(prompt, true));
5752
5949
  display.stopThinking();
5753
5950
  this.refreshStatusLine(true);
5754
- if (response) {
5755
- display.showAssistantMessage(response, { isFinal: true });
5756
- }
5757
5951
  // Recursively verify the fix worked
5758
5952
  await this.enforceAutoBuild('verification');
5759
5953
  }
@@ -5777,39 +5971,30 @@ What's the next action?`;
5777
5971
  };
5778
5972
  this.agent = this.runtimeSession.createAgent(selection, {
5779
5973
  onStreamChunk: (chunk) => {
5780
- if (this.assistantBlocksEnabled) {
5781
- this.appendAssistantStreamChunk(chunk);
5782
- return;
5783
- }
5784
- // Stream output using clean streamContent() - chat box floats below
5785
- this.terminalInput.streamContent(chunk);
5974
+ this.streamAssistantChunk(chunk);
5786
5975
  },
5787
5976
  onStreamFallback: (info) => this.handleStreamingFallback(info),
5788
5977
  onAssistantMessage: (content, metadata) => {
5789
5978
  const enriched = this.buildDisplayMetadata(metadata);
5790
- const usingBlocks = this.assistantBlocksEnabled && this.assistantBlockRenderer !== null;
5791
- const sourceContent = usingBlocks && metadata.wasStreamed ? this.consumeAssistantStreamBuffer(content) : content;
5792
- const parsed = this.splitThinkingResponse(sourceContent);
5979
+ const parsed = this.splitThinkingResponse(content);
5793
5980
  const thinking = parsed?.thinking ?? null;
5794
- const shouldRenderThoughtBlock = Boolean(thinking) && !this.hasShownThoughtProcess;
5795
- const responseContent = parsed ? parsed.response?.trim() ?? '' : sourceContent.trim();
5796
- const narrativeContent = parsed?.response ?? sourceContent;
5981
+ const responseContent = parsed ? parsed.response?.trim() ?? '' : content.trim();
5982
+ const narrativeContent = (parsed?.response ?? content).trim();
5983
+ if (thinking) {
5984
+ this.presentThoughtProcess(thinking, enriched, { wasStreamed: metadata.wasStreamed });
5985
+ }
5797
5986
  if (metadata.isFinal) {
5798
- if (thinking) {
5799
- // Update status + summary, but skip the legacy UI output when blocks are enabled
5800
- this.presentThoughtProcess(thinking, enriched, {
5801
- wasStreamed: usingBlocks || metadata.wasStreamed,
5802
- });
5803
- if (usingBlocks && shouldRenderThoughtBlock) {
5804
- this.renderAssistantBlock('thought', thinking, enriched);
5805
- }
5806
- }
5807
- if (usingBlocks) {
5808
- const body = responseContent || sourceContent;
5809
- this.renderAssistantBlock('response', body, enriched);
5987
+ if (metadata.wasStreamed) {
5988
+ this.finalizeAssistantStream();
5810
5989
  }
5811
- else if (!metadata.wasStreamed && responseContent) {
5812
- display.showAssistantMessage(responseContent, enriched);
5990
+ else {
5991
+ if (thinking) {
5992
+ this.renderAssistantContent('thought', thinking, enriched);
5993
+ }
5994
+ if (responseContent) {
5995
+ const body = responseContent || content;
5996
+ this.renderAssistantContent('response', body, enriched);
5997
+ }
5813
5998
  }
5814
5999
  // Status shown in mode controls bar - no separate status line needed
5815
6000
  display.stopThinking();
@@ -5826,21 +6011,17 @@ What's the next action?`;
5826
6011
  void this.enforceAutoTests('final-response');
5827
6012
  }
5828
6013
  else {
5829
- if (thinking) {
5830
- this.presentThoughtProcess(thinking, enriched, {
5831
- wasStreamed: usingBlocks || metadata.wasStreamed,
5832
- });
5833
- }
5834
6014
  // Non-final message = narrative text before tool calls (Claude Code style)
5835
6015
  // Stop spinner and show the narrative text directly
5836
6016
  display.stopThinking();
5837
- if (usingBlocks) {
5838
- const body = metadata.wasStreamed ? responseContent || sourceContent : narrativeContent;
5839
- this.renderAssistantBlock('thought', body, enriched);
6017
+ if (metadata.wasStreamed) {
6018
+ this.finalizeAssistantStream();
5840
6019
  }
5841
- else if (!metadata.wasStreamed) {
5842
- const narrative = parsed?.response ?? content;
5843
- display.showNarrative(narrative.trim());
6020
+ else if (narrativeContent) {
6021
+ this.renderAssistantContent('thought', narrativeContent, {
6022
+ ...enriched,
6023
+ isFinal: false,
6024
+ });
5844
6025
  }
5845
6026
  // The isProcessing flag already shows "⏳ Processing..." - no need for duplicate status
5846
6027
  this.requestPromptRefresh();
@@ -6023,7 +6204,7 @@ What's the next action?`;
6023
6204
  contextWindowTokens: this.activeContextWindowTokens,
6024
6205
  };
6025
6206
  }
6026
- presentThoughtProcess(thinking, metadata, options) {
6207
+ presentThoughtProcess(thinking, metadata, _options) {
6027
6208
  if (!thinking || this.hasShownThoughtProcess) {
6028
6209
  return;
6029
6210
  }
@@ -6036,9 +6217,6 @@ What's the next action?`;
6036
6217
  this.rebuildStreamingStatusLabel();
6037
6218
  this.refreshStatusLine(true);
6038
6219
  }
6039
- if (!options?.wasStreamed) {
6040
- display.showAssistantMessage(thinking, { ...metadata, isFinal: false });
6041
- }
6042
6220
  this.hasShownThoughtProcess = true;
6043
6221
  }
6044
6222
  handleContextTelemetry(metadata, displayMetadata) {
@@ -6416,7 +6594,7 @@ What's the next action?`;
6416
6594
  const detail = detailText ? ` Error: ${detailText}` : '';
6417
6595
  const reason = info.reason ? ` (${info.reason.replace(/-/g, ' ')})` : '';
6418
6596
  const partialNote = info.partialResponse ? ' Received partial stream before failure.' : '';
6419
- this.resetAssistantStreamBuffer();
6597
+ this.finalizeAssistantStream();
6420
6598
  display.showWarning(`Streaming failed${reason}, retrying without streaming.${detail}${partialNote}`);
6421
6599
  this.startStreamingHeartbeat('Fallback in progress');
6422
6600
  this.requestPromptRefresh(true);
@@ -6493,16 +6671,21 @@ What's the next action?`;
6493
6671
  /**
6494
6672
  * Build the session banner with comprehensive feature status.
6495
6673
  */
6496
- buildBanner() {
6497
- const terminalWidth = output.columns ?? 100;
6498
- const width = Math.min(terminalWidth - 4, 110);
6499
- return renderSessionFrame({
6674
+ getSessionFrameProps() {
6675
+ return {
6500
6676
  profileLabel: this.profileLabel,
6501
6677
  profileName: this.profile,
6502
6678
  model: this.sessionState.model,
6503
6679
  provider: this.sessionState.provider,
6504
6680
  workspace: this.workingDir,
6505
6681
  version: this.version,
6682
+ };
6683
+ }
6684
+ buildBanner() {
6685
+ const terminalWidth = output.columns ?? 100;
6686
+ const width = Math.min(terminalWidth - 4, 110);
6687
+ return renderSessionFrame({
6688
+ ...this.getSessionFrameProps(),
6506
6689
  width,
6507
6690
  });
6508
6691
  }
@@ -6612,6 +6795,7 @@ What's the next action?`;
6612
6795
  return;
6613
6796
  }
6614
6797
  this.refreshContextGauge();
6798
+ this.terminalInput.setSessionFrame(this.getSessionFrameProps());
6615
6799
  // Banner is no longer stored in display - it was streamed as content
6616
6800
  // Model/provider changes are visible in the control bar
6617
6801
  if (!this.isProcessing) {