erosolar-cli 2.1.166 → 2.1.168

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 (128) hide show
  1. package/agents/erosolar-code.rules.json +2 -2
  2. package/agents/general.rules.json +3 -21
  3. package/dist/StringUtils.d.ts +8 -0
  4. package/dist/StringUtils.d.ts.map +1 -0
  5. package/dist/StringUtils.js +11 -0
  6. package/dist/StringUtils.js.map +1 -0
  7. package/dist/capabilities/statusCapability.js +2 -2
  8. package/dist/capabilities/statusCapability.js.map +1 -1
  9. package/dist/contracts/agent-schemas.json +0 -5
  10. package/dist/core/agent.d.ts +11 -70
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +180 -854
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/core/aiFlowSupervisor.d.ts +44 -0
  15. package/dist/core/aiFlowSupervisor.d.ts.map +1 -0
  16. package/dist/core/aiFlowSupervisor.js +299 -0
  17. package/dist/core/aiFlowSupervisor.js.map +1 -0
  18. package/dist/core/cliTestHarness.d.ts +200 -0
  19. package/dist/core/cliTestHarness.d.ts.map +1 -0
  20. package/dist/core/cliTestHarness.js +549 -0
  21. package/dist/core/cliTestHarness.js.map +1 -0
  22. package/dist/core/preferences.d.ts +0 -1
  23. package/dist/core/preferences.d.ts.map +1 -1
  24. package/dist/core/preferences.js +2 -9
  25. package/dist/core/preferences.js.map +1 -1
  26. package/dist/core/schemaValidator.js +3 -3
  27. package/dist/core/schemaValidator.js.map +1 -1
  28. package/dist/core/testUtils.d.ts +121 -0
  29. package/dist/core/testUtils.d.ts.map +1 -0
  30. package/dist/core/testUtils.js +235 -0
  31. package/dist/core/testUtils.js.map +1 -0
  32. package/dist/core/toolPreconditions.d.ts +11 -0
  33. package/dist/core/toolPreconditions.d.ts.map +1 -1
  34. package/dist/core/toolPreconditions.js +164 -33
  35. package/dist/core/toolPreconditions.js.map +1 -1
  36. package/dist/core/toolRuntime.d.ts.map +1 -1
  37. package/dist/core/toolRuntime.js +114 -9
  38. package/dist/core/toolRuntime.js.map +1 -1
  39. package/dist/core/toolValidation.d.ts +116 -0
  40. package/dist/core/toolValidation.d.ts.map +1 -0
  41. package/dist/core/toolValidation.js +282 -0
  42. package/dist/core/toolValidation.js.map +1 -0
  43. package/dist/core/updateChecker.d.ts +1 -61
  44. package/dist/core/updateChecker.d.ts.map +1 -1
  45. package/dist/core/updateChecker.js +3 -147
  46. package/dist/core/updateChecker.js.map +1 -1
  47. package/dist/headless/headlessApp.d.ts.map +1 -1
  48. package/dist/headless/headlessApp.js +39 -0
  49. package/dist/headless/headlessApp.js.map +1 -1
  50. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  51. package/dist/plugins/tools/nodeDefaults.js +2 -0
  52. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  53. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  54. package/dist/providers/openaiResponsesProvider.js +74 -79
  55. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  56. package/dist/runtime/agentController.d.ts.map +1 -1
  57. package/dist/runtime/agentController.js +0 -2
  58. package/dist/runtime/agentController.js.map +1 -1
  59. package/dist/runtime/agentSession.d.ts.map +1 -1
  60. package/dist/runtime/agentSession.js +2 -3
  61. package/dist/runtime/agentSession.js.map +1 -1
  62. package/dist/shell/interactiveShell.d.ts +8 -16
  63. package/dist/shell/interactiveShell.d.ts.map +1 -1
  64. package/dist/shell/interactiveShell.js +151 -378
  65. package/dist/shell/interactiveShell.js.map +1 -1
  66. package/dist/shell/systemPrompt.d.ts.map +1 -1
  67. package/dist/shell/systemPrompt.js +15 -4
  68. package/dist/shell/systemPrompt.js.map +1 -1
  69. package/dist/subagents/taskRunner.js +1 -2
  70. package/dist/subagents/taskRunner.js.map +1 -1
  71. package/dist/tools/bashTools.d.ts.map +1 -1
  72. package/dist/tools/bashTools.js +8 -101
  73. package/dist/tools/bashTools.js.map +1 -1
  74. package/dist/tools/diffUtils.d.ts +2 -8
  75. package/dist/tools/diffUtils.d.ts.map +1 -1
  76. package/dist/tools/diffUtils.js +13 -72
  77. package/dist/tools/diffUtils.js.map +1 -1
  78. package/dist/tools/grepTools.d.ts.map +1 -1
  79. package/dist/tools/grepTools.js +2 -10
  80. package/dist/tools/grepTools.js.map +1 -1
  81. package/dist/tools/searchTools.d.ts.map +1 -1
  82. package/dist/tools/searchTools.js +2 -4
  83. package/dist/tools/searchTools.js.map +1 -1
  84. package/dist/ui/PromptController.d.ts +0 -2
  85. package/dist/ui/PromptController.d.ts.map +1 -1
  86. package/dist/ui/PromptController.js +0 -2
  87. package/dist/ui/PromptController.js.map +1 -1
  88. package/dist/ui/ShellUIAdapter.d.ts +18 -71
  89. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  90. package/dist/ui/ShellUIAdapter.js +139 -237
  91. package/dist/ui/ShellUIAdapter.js.map +1 -1
  92. package/dist/ui/UnifiedUIController.d.ts +1 -0
  93. package/dist/ui/UnifiedUIController.d.ts.map +1 -1
  94. package/dist/ui/UnifiedUIController.js +1 -0
  95. package/dist/ui/UnifiedUIController.js.map +1 -1
  96. package/dist/ui/UnifiedUIRenderer.d.ts +5 -122
  97. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  98. package/dist/ui/UnifiedUIRenderer.js +125 -830
  99. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  100. package/dist/ui/compactRenderer.d.ts +139 -0
  101. package/dist/ui/compactRenderer.d.ts.map +1 -0
  102. package/dist/ui/compactRenderer.js +398 -0
  103. package/dist/ui/compactRenderer.js.map +1 -0
  104. package/dist/ui/display.d.ts +48 -12
  105. package/dist/ui/display.d.ts.map +1 -1
  106. package/dist/ui/display.js +105 -22
  107. package/dist/ui/display.js.map +1 -1
  108. package/dist/ui/streamingFormatter.d.ts +30 -0
  109. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  110. package/dist/ui/streamingFormatter.js +91 -0
  111. package/dist/ui/streamingFormatter.js.map +1 -0
  112. package/dist/ui/unified/index.d.ts +1 -1
  113. package/dist/ui/unified/index.d.ts.map +1 -1
  114. package/dist/ui/unified/index.js +2 -0
  115. package/dist/ui/unified/index.js.map +1 -1
  116. package/dist/utils/errorUtils.d.ts +16 -0
  117. package/dist/utils/errorUtils.d.ts.map +1 -0
  118. package/dist/utils/errorUtils.js +66 -0
  119. package/dist/utils/errorUtils.js.map +1 -0
  120. package/package.json +2 -1
  121. package/dist/core/reliabilityPrompt.d.ts +0 -9
  122. package/dist/core/reliabilityPrompt.d.ts.map +0 -1
  123. package/dist/core/reliabilityPrompt.js +0 -30
  124. package/dist/core/reliabilityPrompt.js.map +0 -1
  125. package/dist/ui/animatedStatus.d.ts +0 -129
  126. package/dist/ui/animatedStatus.d.ts.map +0 -1
  127. package/dist/ui/animatedStatus.js +0 -384
  128. package/dist/ui/animatedStatus.js.map +0 -1
@@ -0,0 +1,398 @@
1
+ /**
2
+ * CompactRenderer - Advanced tool display with same-line grouping and dynamic updates
3
+ *
4
+ * Features:
5
+ * - Same-line display for related tools (e.g., "✓ Read file.ts · Grep pattern")
6
+ * - In-place updates for running tools
7
+ * - Visual badges and status indicators
8
+ * - Context-aware width adaptation
9
+ * - Grouped operation summaries
10
+ */
11
+ import { theme } from './theme.js';
12
+ import { getTerminalColumns, measure, stripAnsi } from './layout.js';
13
+ // ============================================================================
14
+ // STATUS ICONS AND BADGES
15
+ // ============================================================================
16
+ const STATUS_ICONS = {
17
+ pending: '○',
18
+ running: '◐',
19
+ success: '✓',
20
+ error: '✗',
21
+ cached: '⚡',
22
+ };
23
+ const STATUS_COLORS = {
24
+ pending: theme.ui.muted,
25
+ running: theme.info,
26
+ success: theme.success,
27
+ error: theme.error,
28
+ cached: theme.accent,
29
+ };
30
+ const BADGE_STYLES = {
31
+ success: theme.success,
32
+ error: theme.error,
33
+ warning: theme.warning,
34
+ info: theme.info,
35
+ muted: theme.ui.muted,
36
+ primary: theme.primary,
37
+ accent: theme.accent,
38
+ };
39
+ // Animated spinner frames for running operations
40
+ const SPINNER_FRAMES = ['◐', '◓', '◑', '◒'];
41
+ // ============================================================================
42
+ // COMPACT TOOL RENDERER
43
+ // ============================================================================
44
+ export class CompactRenderer {
45
+ currentFrame = 0;
46
+ frameInterval = null;
47
+ operationGroups = new Map();
48
+ recentOperations = [];
49
+ maxRecentOps = 5;
50
+ constructor() { }
51
+ // --------------------------------------------------------------------------
52
+ // PUBLIC API
53
+ // --------------------------------------------------------------------------
54
+ /**
55
+ * Format a single tool operation as a compact badge
56
+ */
57
+ formatToolBadge(op, options = {}) {
58
+ const showIcons = options.showIcons ?? true;
59
+ const icon = showIcons ? STATUS_ICONS[op.status] : '';
60
+ const colorize = STATUS_COLORS[op.status];
61
+ const iconPart = icon ? `${colorize(icon)} ` : '';
62
+ const namePart = theme.tool(op.name);
63
+ const summaryPart = op.summary ? ` ${theme.ui.muted(op.summary)}` : '';
64
+ return `${iconPart}${namePart}${summaryPart}`;
65
+ }
66
+ /**
67
+ * Format multiple tools on a single line with smart truncation
68
+ */
69
+ formatCompactLine(operations, options = {}) {
70
+ const maxWidth = options.maxWidth ?? getTerminalColumns() - 4;
71
+ const separator = options.separator ?? theme.ui.muted(' · ');
72
+ const showTimings = options.showTimings ?? false;
73
+ if (operations.length === 0)
74
+ return '';
75
+ // Build badges for each operation
76
+ const badges = [];
77
+ let currentLength = 0;
78
+ let truncated = false;
79
+ for (const op of operations) {
80
+ const badge = this.formatToolBadge(op, options);
81
+ const badgeLength = measure(badge);
82
+ // Check if adding this badge would exceed max width
83
+ const sepLength = badges.length > 0 ? measure(stripAnsi(separator)) : 0;
84
+ if (currentLength + sepLength + badgeLength > maxWidth - 10) {
85
+ truncated = true;
86
+ break;
87
+ }
88
+ badges.push(badge);
89
+ currentLength += sepLength + badgeLength;
90
+ }
91
+ let line = badges.join(separator);
92
+ // Add truncation indicator
93
+ if (truncated) {
94
+ const remaining = operations.length - badges.length;
95
+ line += ` ${theme.ui.muted(`+${remaining} more`)}`;
96
+ }
97
+ // Add timing info
98
+ if (showTimings && operations.length > 0) {
99
+ const totalTime = this.calculateTotalTime(operations);
100
+ if (totalTime > 0) {
101
+ line += ` ${theme.ui.muted(`(${this.formatDuration(totalTime)})`)}`;
102
+ }
103
+ }
104
+ return line;
105
+ }
106
+ /**
107
+ * Format a tool result with inline details (same-line when possible)
108
+ */
109
+ formatInlineResult(name, status, summary, detail, options = {}) {
110
+ const maxWidth = options.maxWidth ?? getTerminalColumns() - 4;
111
+ const icon = STATUS_ICONS[status];
112
+ const colorize = STATUS_COLORS[status];
113
+ // Build the main line
114
+ const iconPart = `${colorize(icon)} `;
115
+ const namePart = theme.tool(name);
116
+ const summaryPart = summary ? ` ${summary}` : '';
117
+ let mainLine = `${iconPart}${namePart}${summaryPart}`;
118
+ // Check if detail fits on the same line
119
+ if (detail) {
120
+ const detailPart = ` ${theme.ui.muted(detail)}`;
121
+ const combinedLength = measure(mainLine) + measure(detailPart);
122
+ if (combinedLength <= maxWidth) {
123
+ mainLine += detailPart;
124
+ }
125
+ else {
126
+ // Detail goes on next line with indentation
127
+ return `${mainLine}\n ${theme.ui.muted(detail)}`;
128
+ }
129
+ }
130
+ return mainLine;
131
+ }
132
+ /**
133
+ * Format a progress indicator with optional details
134
+ */
135
+ formatProgress(name, current, total, message) {
136
+ const percentage = Math.round((current / total) * 100);
137
+ const icon = this.getSpinnerFrame();
138
+ const colorize = theme.info;
139
+ // Progress bar (compact)
140
+ const barWidth = 10;
141
+ const filled = Math.round((current / total) * barWidth);
142
+ const empty = barWidth - filled;
143
+ const bar = `${'█'.repeat(filled)}${'░'.repeat(empty)}`;
144
+ const parts = [
145
+ `${colorize(icon)} ${theme.tool(name)}`,
146
+ theme.ui.muted(bar),
147
+ theme.info(`${percentage}%`),
148
+ ];
149
+ if (message) {
150
+ parts.push(theme.ui.muted(message));
151
+ }
152
+ return parts.join(' ');
153
+ }
154
+ /**
155
+ * Format a styled badge
156
+ */
157
+ formatBadge(badge) {
158
+ const colorize = BADGE_STYLES[badge.style];
159
+ const iconPart = badge.icon ? `${badge.icon} ` : '';
160
+ return colorize(`${iconPart}${badge.text}`);
161
+ }
162
+ /**
163
+ * Format multiple badges inline
164
+ */
165
+ formatBadges(badges, separator = ' ') {
166
+ return badges.map(b => this.formatBadge(b)).join(separator);
167
+ }
168
+ /**
169
+ * Format a file operation summary (Read + Edit + Write on same line)
170
+ */
171
+ formatFileOperationSummary(filePath, operations) {
172
+ const shortPath = this.truncatePath(filePath, 40);
173
+ const badges = [];
174
+ for (const op of operations) {
175
+ switch (op.type) {
176
+ case 'read':
177
+ badges.push({ text: 'Read', style: 'info', icon: '📖' });
178
+ break;
179
+ case 'edit':
180
+ const editText = op.additions || op.removals
181
+ ? `Edit +${op.additions || 0}/-${op.removals || 0}`
182
+ : 'Edit';
183
+ badges.push({ text: editText, style: 'warning', icon: '✏️' });
184
+ break;
185
+ case 'write':
186
+ badges.push({ text: 'Write', style: 'success', icon: '💾' });
187
+ break;
188
+ }
189
+ }
190
+ return `${theme.success('✓')} ${theme.info(shortPath)} ${this.formatBadges(badges, theme.ui.muted(' · '))}`;
191
+ }
192
+ /**
193
+ * Format search results summary
194
+ */
195
+ formatSearchSummary(pattern, matchCount, fileCount, duration) {
196
+ const parts = [];
197
+ if (matchCount > 0) {
198
+ parts.push(`${theme.success('✓')} Found`);
199
+ parts.push(theme.info(`${matchCount}`));
200
+ parts.push(matchCount === 1 ? 'match' : 'matches');
201
+ if (fileCount > 0) {
202
+ parts.push(theme.ui.muted('in'));
203
+ parts.push(theme.info(`${fileCount}`));
204
+ parts.push(fileCount === 1 ? 'file' : 'files');
205
+ }
206
+ const truncPattern = pattern.length > 25 ? `${pattern.slice(0, 22)}...` : pattern;
207
+ parts.push(theme.ui.muted(`for "${truncPattern}"`));
208
+ }
209
+ else {
210
+ parts.push(`${theme.warning('○')} No matches for`);
211
+ parts.push(`"${pattern.slice(0, 30)}"`);
212
+ }
213
+ if (duration) {
214
+ parts.push(theme.ui.muted(`(${this.formatDuration(duration)})`));
215
+ }
216
+ return parts.join(' ');
217
+ }
218
+ /**
219
+ * Format a grouped operation summary
220
+ */
221
+ formatGroupSummary(group) {
222
+ const successCount = group.operations.filter(op => op.status === 'success').length;
223
+ const errorCount = group.operations.filter(op => op.status === 'error').length;
224
+ const total = group.operations.length;
225
+ const label = group.label || 'Operations';
226
+ const icon = errorCount > 0 ? '✗' : '✓';
227
+ const colorize = errorCount > 0 ? theme.error : theme.success;
228
+ const parts = [
229
+ `${colorize(icon)} ${label}:`,
230
+ theme.success(`${successCount} done`),
231
+ ];
232
+ if (errorCount > 0) {
233
+ parts.push(theme.error(`${errorCount} failed`));
234
+ }
235
+ const pendingCount = total - successCount - errorCount;
236
+ if (pendingCount > 0) {
237
+ parts.push(theme.ui.muted(`${pendingCount} pending`));
238
+ }
239
+ return parts.join(' ');
240
+ }
241
+ // --------------------------------------------------------------------------
242
+ // OPERATION TRACKING
243
+ // --------------------------------------------------------------------------
244
+ /**
245
+ * Start tracking an operation
246
+ */
247
+ startOperation(op) {
248
+ const operation = {
249
+ ...op,
250
+ status: 'running',
251
+ startedAt: Date.now(),
252
+ };
253
+ this.recentOperations.push(operation);
254
+ if (this.recentOperations.length > this.maxRecentOps) {
255
+ this.recentOperations.shift();
256
+ }
257
+ return operation;
258
+ }
259
+ /**
260
+ * Complete an operation
261
+ */
262
+ completeOperation(id, status, summary) {
263
+ const op = this.recentOperations.find(o => o.id === id);
264
+ if (op) {
265
+ op.status = status;
266
+ op.completedAt = Date.now();
267
+ if (summary)
268
+ op.summary = summary;
269
+ }
270
+ }
271
+ /**
272
+ * Get recent operations for compact display
273
+ */
274
+ getRecentCompactLine(options) {
275
+ const completed = this.recentOperations.filter(op => op.status === 'success' || op.status === 'error');
276
+ return this.formatCompactLine(completed, options);
277
+ }
278
+ /**
279
+ * Clear recent operations
280
+ */
281
+ clearRecentOperations() {
282
+ this.recentOperations = [];
283
+ }
284
+ // --------------------------------------------------------------------------
285
+ // ANIMATION SUPPORT
286
+ // --------------------------------------------------------------------------
287
+ /**
288
+ * Start spinner animation
289
+ */
290
+ startAnimation() {
291
+ if (this.frameInterval)
292
+ return;
293
+ this.frameInterval = setInterval(() => {
294
+ this.currentFrame = (this.currentFrame + 1) % SPINNER_FRAMES.length;
295
+ }, 80);
296
+ }
297
+ /**
298
+ * Stop spinner animation
299
+ */
300
+ stopAnimation() {
301
+ if (this.frameInterval) {
302
+ clearInterval(this.frameInterval);
303
+ this.frameInterval = null;
304
+ }
305
+ }
306
+ /**
307
+ * Get current spinner frame
308
+ */
309
+ getSpinnerFrame() {
310
+ return SPINNER_FRAMES[this.currentFrame] ?? '◐';
311
+ }
312
+ // --------------------------------------------------------------------------
313
+ // UTILITY METHODS
314
+ // --------------------------------------------------------------------------
315
+ calculateTotalTime(operations) {
316
+ let total = 0;
317
+ for (const op of operations) {
318
+ if (op.completedAt && op.startedAt) {
319
+ total += op.completedAt - op.startedAt;
320
+ }
321
+ }
322
+ return total;
323
+ }
324
+ formatDuration(ms) {
325
+ if (ms < 1000)
326
+ return `${Math.round(ms)}ms`;
327
+ const seconds = Math.floor(ms / 1000);
328
+ if (seconds < 60)
329
+ return `${seconds}s`;
330
+ const minutes = Math.floor(seconds / 60);
331
+ const remainingSecs = seconds % 60;
332
+ return remainingSecs > 0 ? `${minutes}m ${remainingSecs}s` : `${minutes}m`;
333
+ }
334
+ truncatePath(path, maxLen) {
335
+ if (path.length <= maxLen)
336
+ return path;
337
+ const parts = path.split('/').filter(Boolean);
338
+ if (parts.length <= 2) {
339
+ return `${path.slice(0, maxLen - 3)}...`;
340
+ }
341
+ const filename = parts[parts.length - 1] || '';
342
+ const firstPart = parts.slice(0, 2).join('/');
343
+ if (firstPart.length + filename.length + 4 <= maxLen) {
344
+ return `${firstPart}/.../${filename}`;
345
+ }
346
+ return filename.length <= maxLen - 3 ? `.../${filename}` : `${filename.slice(0, maxLen - 3)}...`;
347
+ }
348
+ dispose() {
349
+ this.stopAnimation();
350
+ this.operationGroups.clear();
351
+ this.recentOperations = [];
352
+ }
353
+ }
354
+ // ============================================================================
355
+ // SINGLETON INSTANCE
356
+ // ============================================================================
357
+ export const compactRenderer = new CompactRenderer();
358
+ // ============================================================================
359
+ // HELPER FUNCTIONS
360
+ // ============================================================================
361
+ /**
362
+ * Format a quick tool result inline
363
+ */
364
+ export function formatQuickResult(name, success, message, detail) {
365
+ return compactRenderer.formatInlineResult(name, success ? 'success' : 'error', message, detail);
366
+ }
367
+ /**
368
+ * Format a batch of operations on one line
369
+ */
370
+ export function formatBatchSummary(operations) {
371
+ const ops = operations.map((op, i) => ({
372
+ id: `batch-${i}`,
373
+ name: op.name,
374
+ status: op.success ? 'success' : 'error',
375
+ summary: op.message || '',
376
+ startedAt: Date.now(),
377
+ }));
378
+ return compactRenderer.formatCompactLine(ops);
379
+ }
380
+ /**
381
+ * Format a context/status badge line
382
+ */
383
+ export function formatStatusBadges(context, timing, mode) {
384
+ const badges = [];
385
+ if (context) {
386
+ const pct = Math.round((context.used / context.total) * 100);
387
+ const style = pct > 80 ? 'error' : pct > 60 ? 'warning' : 'success';
388
+ badges.push({ text: `${pct}% ctx`, style, icon: '⊛' });
389
+ }
390
+ if (timing) {
391
+ badges.push({ text: compactRenderer['formatDuration'](timing), style: 'muted', icon: '⏱' });
392
+ }
393
+ if (mode) {
394
+ badges.push({ text: mode, style: 'info', icon: '◐' });
395
+ }
396
+ return compactRenderer.formatBadges(badges, theme.ui.muted(' · '));
397
+ }
398
+ //# sourceMappingURL=compactRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compactRenderer.js","sourceRoot":"","sources":["../../src/ui/compactRenderer.ts"],"names":[],"mappings":"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"}
@@ -46,15 +46,21 @@ export declare class Display {
46
46
  private renderer;
47
47
  private readonly outputInterceptors;
48
48
  private inlinePanelHandler;
49
+ private activeSpinner;
50
+ private thinkingStartTime;
49
51
  constructor(stream?: OutputStream, errorStream?: OutputStream);
50
52
  setRenderer(renderer: UnifiedUIRenderer | null): void;
51
- hasRenderer(): boolean;
52
53
  setInlinePanelHandler(handler: ((content: string) => boolean) | null): void;
53
54
  private maybeHandleInlinePanel;
54
55
  private enqueueEvent;
55
56
  registerOutputInterceptor(interceptor: OutputInterceptor): () => void;
56
57
  private notifyBeforeOutput;
57
58
  private notifyAfterOutput;
59
+ /**
60
+ * Clear any active spinner for backward compatibility with legacy rendering.
61
+ * Optionally emits a newline to separate subsequent output.
62
+ */
63
+ private clearActiveSpinner;
58
64
  /**
59
65
  * Write raw content directly
60
66
  */
@@ -73,30 +79,40 @@ export declare class Display {
73
79
  getOutputStream(): OutputStream;
74
80
  /**
75
81
  * Show thinking indicator
76
- * NO-OP: Don't emit events during SSE streaming.
77
- * The animated spinner in the status line shows thinking state.
78
82
  */
79
- showThinking(_message?: string): void;
83
+ showThinking(message?: string): void;
80
84
  /**
81
- * Update thinking indicator (status line only, not scrollback)
82
- * This is called frequently during streaming to show progress snippets.
83
- * The actual content will be rendered as a complete block later.
85
+ * Update thinking message
84
86
  */
85
- updateThinking(_message: string): void;
87
+ updateThinking(message: string): void;
86
88
  /**
87
- * Stop thinking (no-op - renderer handles state)
89
+ * Stop thinking
88
90
  */
89
91
  stopThinking(_addNewLine?: boolean): void;
92
+ /**
93
+ * Get thinking elapsed time
94
+ */
95
+ getThinkingElapsedMs(): number | null;
96
+ /**
97
+ * Check if spinner is active (always false with new renderer)
98
+ */
99
+ isSpinnerActive(): boolean;
100
+ /**
101
+ * Check if output is locked (always false with event queue)
102
+ */
103
+ isOutputLocked(): boolean;
104
+ /**
105
+ * Safe write (just calls callback immediately with event queue)
106
+ */
107
+ safeWrite(callback: () => void): void;
90
108
  /**
91
109
  * Show assistant message
92
110
  */
93
111
  showAssistantMessage(content: string, metadata?: DisplayMessageMetadata): void;
94
112
  /**
95
113
  * Show narrative (thought)
96
- * NO-OP: Don't emit events during SSE streaming.
97
- * Narratives are buffered and rendered as part of the final response.
98
114
  */
99
- showNarrative(_content: string): void;
115
+ showNarrative(content: string): void;
100
116
  /**
101
117
  * Show action
102
118
  */
@@ -155,6 +171,13 @@ export declare class Display {
155
171
  * Show status line
156
172
  */
157
173
  showStatusLine(status: string, elapsedMs?: number, _context?: StatusLineContextInfo): void;
174
+ /**
175
+ * Show available tools (no-op)
176
+ */
177
+ showAvailableTools(_tools: Array<{
178
+ name: string;
179
+ description: string;
180
+ }>): void;
158
181
  /**
159
182
  * Show command palette
160
183
  */
@@ -162,6 +185,10 @@ export declare class Display {
162
185
  title?: string;
163
186
  intro?: string;
164
187
  }): void;
188
+ /**
189
+ * Show ready with hints (no-op)
190
+ */
191
+ showReadyWithHints(): void;
165
192
  /**
166
193
  * Show planning step
167
194
  */
@@ -186,6 +213,14 @@ export declare class Display {
186
213
  * Check if streaming status is visible
187
214
  */
188
215
  isStreamingStatusVisible(): boolean;
216
+ /**
217
+ * Legacy compatibility methods (no-ops)
218
+ */
219
+ getTotalWrittenLines(): number;
220
+ getPinnedHeaderLines(): number;
221
+ setupScrollRegion(): void;
222
+ teardownScrollRegion(): void;
223
+ isScrollRegionActive(): boolean;
189
224
  parallelAgentStatus(content: string): void;
190
225
  private getColumnWidth;
191
226
  private formatErrorDetails;
@@ -195,6 +230,7 @@ export declare class Display {
195
230
  private formatTelemetryLine;
196
231
  private buildClaudeStyleThought;
197
232
  private formatElapsedTime;
233
+ private applySingleBulletBlock;
198
234
  private buildCommandPalette;
199
235
  private groupPaletteCommands;
200
236
  private computeCommandColumnWidth;
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"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"}