erosolar-cli 2.1.168 → 2.1.170

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 (133) hide show
  1. package/README.md +1 -1
  2. package/agents/erosolar-code.rules.json +2 -2
  3. package/agents/general.rules.json +21 -3
  4. package/dist/capabilities/statusCapability.js +2 -2
  5. package/dist/capabilities/statusCapability.js.map +1 -1
  6. package/dist/contracts/agent-schemas.json +5 -5
  7. package/dist/core/agent.d.ts +83 -24
  8. package/dist/core/agent.d.ts.map +1 -1
  9. package/dist/core/agent.js +499 -248
  10. package/dist/core/agent.js.map +1 -1
  11. package/dist/core/preferences.d.ts +1 -0
  12. package/dist/core/preferences.d.ts.map +1 -1
  13. package/dist/core/preferences.js +8 -1
  14. package/dist/core/preferences.js.map +1 -1
  15. package/dist/core/reliabilityPrompt.d.ts +9 -0
  16. package/dist/core/reliabilityPrompt.d.ts.map +1 -0
  17. package/dist/core/reliabilityPrompt.js +31 -0
  18. package/dist/core/reliabilityPrompt.js.map +1 -0
  19. package/dist/core/schemaValidator.js +3 -3
  20. package/dist/core/schemaValidator.js.map +1 -1
  21. package/dist/core/toolPreconditions.d.ts +0 -11
  22. package/dist/core/toolPreconditions.d.ts.map +1 -1
  23. package/dist/core/toolPreconditions.js +33 -164
  24. package/dist/core/toolPreconditions.js.map +1 -1
  25. package/dist/core/toolRuntime.d.ts.map +1 -1
  26. package/dist/core/toolRuntime.js +9 -114
  27. package/dist/core/toolRuntime.js.map +1 -1
  28. package/dist/core/updateChecker.d.ts +61 -1
  29. package/dist/core/updateChecker.d.ts.map +1 -1
  30. package/dist/core/updateChecker.js +147 -3
  31. package/dist/core/updateChecker.js.map +1 -1
  32. package/dist/headless/headlessApp.d.ts.map +1 -1
  33. package/dist/headless/headlessApp.js +0 -39
  34. package/dist/headless/headlessApp.js.map +1 -1
  35. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  36. package/dist/plugins/tools/nodeDefaults.js +0 -2
  37. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  38. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  39. package/dist/providers/openaiResponsesProvider.js +79 -74
  40. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  41. package/dist/runtime/agentController.d.ts.map +1 -1
  42. package/dist/runtime/agentController.js +6 -3
  43. package/dist/runtime/agentController.js.map +1 -1
  44. package/dist/runtime/agentSession.d.ts +0 -2
  45. package/dist/runtime/agentSession.d.ts.map +1 -1
  46. package/dist/runtime/agentSession.js +2 -2
  47. package/dist/runtime/agentSession.js.map +1 -1
  48. package/dist/shell/interactiveShell.d.ts +11 -12
  49. package/dist/shell/interactiveShell.d.ts.map +1 -1
  50. package/dist/shell/interactiveShell.js +269 -193
  51. package/dist/shell/interactiveShell.js.map +1 -1
  52. package/dist/shell/systemPrompt.d.ts.map +1 -1
  53. package/dist/shell/systemPrompt.js +4 -15
  54. package/dist/shell/systemPrompt.js.map +1 -1
  55. package/dist/subagents/taskRunner.js +2 -1
  56. package/dist/subagents/taskRunner.js.map +1 -1
  57. package/dist/tools/bashTools.d.ts.map +1 -1
  58. package/dist/tools/bashTools.js +101 -8
  59. package/dist/tools/bashTools.js.map +1 -1
  60. package/dist/tools/diffUtils.d.ts +8 -2
  61. package/dist/tools/diffUtils.d.ts.map +1 -1
  62. package/dist/tools/diffUtils.js +72 -13
  63. package/dist/tools/diffUtils.js.map +1 -1
  64. package/dist/tools/grepTools.d.ts.map +1 -1
  65. package/dist/tools/grepTools.js +10 -2
  66. package/dist/tools/grepTools.js.map +1 -1
  67. package/dist/tools/searchTools.d.ts.map +1 -1
  68. package/dist/tools/searchTools.js +4 -2
  69. package/dist/tools/searchTools.js.map +1 -1
  70. package/dist/ui/PromptController.d.ts +2 -3
  71. package/dist/ui/PromptController.d.ts.map +1 -1
  72. package/dist/ui/PromptController.js +2 -3
  73. package/dist/ui/PromptController.js.map +1 -1
  74. package/dist/ui/ShellUIAdapter.d.ts +71 -18
  75. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  76. package/dist/ui/ShellUIAdapter.js +237 -139
  77. package/dist/ui/ShellUIAdapter.js.map +1 -1
  78. package/dist/ui/UnifiedUIController.d.ts +0 -1
  79. package/dist/ui/UnifiedUIController.d.ts.map +1 -1
  80. package/dist/ui/UnifiedUIController.js +0 -1
  81. package/dist/ui/UnifiedUIController.js.map +1 -1
  82. package/dist/ui/UnifiedUIRenderer.d.ts +122 -7
  83. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  84. package/dist/ui/UnifiedUIRenderer.js +823 -130
  85. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  86. package/dist/ui/animatedStatus.d.ts +129 -0
  87. package/dist/ui/animatedStatus.d.ts.map +1 -0
  88. package/dist/ui/animatedStatus.js +384 -0
  89. package/dist/ui/animatedStatus.js.map +1 -0
  90. package/dist/ui/display.d.ts +13 -48
  91. package/dist/ui/display.d.ts.map +1 -1
  92. package/dist/ui/display.js +22 -105
  93. package/dist/ui/display.js.map +1 -1
  94. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  95. package/dist/ui/shortcutsHelp.js +0 -1
  96. package/dist/ui/shortcutsHelp.js.map +1 -1
  97. package/dist/ui/unified/index.d.ts +1 -1
  98. package/dist/ui/unified/index.d.ts.map +1 -1
  99. package/dist/ui/unified/index.js +0 -2
  100. package/dist/ui/unified/index.js.map +1 -1
  101. package/package.json +1 -2
  102. package/dist/StringUtils.d.ts +0 -8
  103. package/dist/StringUtils.d.ts.map +0 -1
  104. package/dist/StringUtils.js +0 -11
  105. package/dist/StringUtils.js.map +0 -1
  106. package/dist/core/aiFlowSupervisor.d.ts +0 -44
  107. package/dist/core/aiFlowSupervisor.d.ts.map +0 -1
  108. package/dist/core/aiFlowSupervisor.js +0 -299
  109. package/dist/core/aiFlowSupervisor.js.map +0 -1
  110. package/dist/core/cliTestHarness.d.ts +0 -200
  111. package/dist/core/cliTestHarness.d.ts.map +0 -1
  112. package/dist/core/cliTestHarness.js +0 -549
  113. package/dist/core/cliTestHarness.js.map +0 -1
  114. package/dist/core/testUtils.d.ts +0 -121
  115. package/dist/core/testUtils.d.ts.map +0 -1
  116. package/dist/core/testUtils.js +0 -235
  117. package/dist/core/testUtils.js.map +0 -1
  118. package/dist/core/toolValidation.d.ts +0 -116
  119. package/dist/core/toolValidation.d.ts.map +0 -1
  120. package/dist/core/toolValidation.js +0 -282
  121. package/dist/core/toolValidation.js.map +0 -1
  122. package/dist/ui/compactRenderer.d.ts +0 -139
  123. package/dist/ui/compactRenderer.d.ts.map +0 -1
  124. package/dist/ui/compactRenderer.js +0 -398
  125. package/dist/ui/compactRenderer.js.map +0 -1
  126. package/dist/ui/streamingFormatter.d.ts +0 -30
  127. package/dist/ui/streamingFormatter.d.ts.map +0 -1
  128. package/dist/ui/streamingFormatter.js +0 -91
  129. package/dist/ui/streamingFormatter.js.map +0 -1
  130. package/dist/utils/errorUtils.d.ts +0 -16
  131. package/dist/utils/errorUtils.d.ts.map +0 -1
  132. package/dist/utils/errorUtils.js +0 -66
  133. package/dist/utils/errorUtils.js.map +0 -1
@@ -0,0 +1,384 @@
1
+ /**
2
+ * AnimatedStatus - Provides smooth, dynamic status indicators with animations
3
+ * Integrates with the AnimationScheduler for real-time UI updates
4
+ */
5
+ import { theme, spinnerFrames, progressChars } from './theme.js';
6
+ import { AnimationScheduler } from './animation/AnimationScheduler.js';
7
+ // Singleton scheduler for global animation coordination
8
+ let globalScheduler = null;
9
+ function getScheduler() {
10
+ if (!globalScheduler) {
11
+ globalScheduler = new AnimationScheduler(30); // 30 FPS for smooth animations
12
+ }
13
+ return globalScheduler;
14
+ }
15
+ /**
16
+ * Animated spinner that cycles through frames
17
+ */
18
+ export class AnimatedSpinner {
19
+ frameIndex = 0;
20
+ frames;
21
+ intervalId = null;
22
+ message;
23
+ color;
24
+ currentFrame = '';
25
+ onUpdate;
26
+ constructor(message = '', style = 'dots', color = theme.info) {
27
+ this.frames = spinnerFrames[style];
28
+ this.message = message;
29
+ this.color = color;
30
+ this.currentFrame = this.frames[0] ?? '⠋';
31
+ }
32
+ start(onUpdate) {
33
+ this.onUpdate = onUpdate;
34
+ this.frameIndex = 0;
35
+ this.intervalId = setInterval(() => {
36
+ this.frameIndex = (this.frameIndex + 1) % this.frames.length;
37
+ this.currentFrame = this.frames[this.frameIndex] ?? '⠋';
38
+ if (this.onUpdate) {
39
+ this.onUpdate(this.render());
40
+ }
41
+ }, 80); // ~12 FPS for spinners
42
+ }
43
+ stop() {
44
+ if (this.intervalId) {
45
+ clearInterval(this.intervalId);
46
+ this.intervalId = null;
47
+ }
48
+ }
49
+ setMessage(message) {
50
+ this.message = message;
51
+ }
52
+ render() {
53
+ const spinnerChar = this.color(this.currentFrame);
54
+ return this.message ? `${spinnerChar} ${this.message}` : spinnerChar;
55
+ }
56
+ isRunning() {
57
+ return this.intervalId !== null;
58
+ }
59
+ }
60
+ /**
61
+ * Animated progress bar with smooth transitions
62
+ */
63
+ export class AnimatedProgressBar {
64
+ current = 0;
65
+ target = 0;
66
+ total;
67
+ width;
68
+ animationId = null;
69
+ constructor(total, width = 20) {
70
+ this.total = total;
71
+ this.width = width;
72
+ }
73
+ update(value) {
74
+ this.target = Math.min(value, this.total);
75
+ // Smooth transition to target
76
+ const scheduler = getScheduler();
77
+ if (this.animationId) {
78
+ scheduler.unregister(this.animationId);
79
+ }
80
+ this.animationId = `progress-${Date.now()}`;
81
+ scheduler.createTransition(this.animationId, this.current, this.target, 'progress', 300, AnimationScheduler.Easing.easeOutQuad);
82
+ scheduler.on('transition:update', (data) => {
83
+ if (data.id === this.animationId && typeof data.value === 'number') {
84
+ this.current = data.value;
85
+ }
86
+ });
87
+ }
88
+ render() {
89
+ const percentage = this.total > 0 ? this.current / this.total : 0;
90
+ const filled = Math.floor(percentage * this.width);
91
+ const partial = (percentage * this.width) % 1;
92
+ const empty = this.width - filled - (partial > 0 ? 1 : 0);
93
+ let bar = theme.progress.bar(progressChars.filled.repeat(filled));
94
+ if (partial > 0 && filled < this.width) {
95
+ const partialIndex = Math.floor(partial * progressChars.partial.length);
96
+ const partialChar = progressChars.partial[partialIndex] ?? progressChars.partial[0];
97
+ bar += theme.progress.bar(partialChar);
98
+ }
99
+ bar += theme.progress.empty(progressChars.empty.repeat(Math.max(0, empty)));
100
+ const percentText = theme.progress.percentage(`${Math.round(percentage * 100)}%`);
101
+ return `${bar} ${percentText}`;
102
+ }
103
+ dispose() {
104
+ if (this.animationId) {
105
+ getScheduler().unregister(this.animationId);
106
+ }
107
+ }
108
+ }
109
+ /**
110
+ * Animated elapsed time display
111
+ */
112
+ export class AnimatedElapsedTime {
113
+ startTime;
114
+ intervalId = null;
115
+ currentDisplay = '0s';
116
+ onUpdate;
117
+ constructor() {
118
+ this.startTime = Date.now();
119
+ }
120
+ start(onUpdate) {
121
+ this.startTime = Date.now();
122
+ this.onUpdate = onUpdate;
123
+ this.intervalId = setInterval(() => {
124
+ this.currentDisplay = this.format();
125
+ if (this.onUpdate) {
126
+ this.onUpdate(this.currentDisplay);
127
+ }
128
+ }, 1000); // Update every second
129
+ }
130
+ stop() {
131
+ if (this.intervalId) {
132
+ clearInterval(this.intervalId);
133
+ this.intervalId = null;
134
+ }
135
+ return this.format();
136
+ }
137
+ format() {
138
+ const elapsed = Date.now() - this.startTime;
139
+ const seconds = Math.floor(elapsed / 1000);
140
+ const minutes = Math.floor(seconds / 60);
141
+ const hours = Math.floor(minutes / 60);
142
+ if (hours > 0) {
143
+ return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
144
+ }
145
+ else if (minutes > 0) {
146
+ return `${minutes}:${(seconds % 60).toString().padStart(2, '0')}`;
147
+ }
148
+ else {
149
+ return `${seconds}s`;
150
+ }
151
+ }
152
+ render() {
153
+ return theme.ui.muted(this.currentDisplay);
154
+ }
155
+ }
156
+ /**
157
+ * Pulsing text effect for emphasis
158
+ */
159
+ export class PulsingText {
160
+ text;
161
+ intensity = 0;
162
+ increasing = true;
163
+ intervalId = null;
164
+ onUpdate;
165
+ constructor(text) {
166
+ this.text = text;
167
+ }
168
+ start(onUpdate) {
169
+ this.onUpdate = onUpdate;
170
+ this.intervalId = setInterval(() => {
171
+ if (this.increasing) {
172
+ this.intensity += 0.1;
173
+ if (this.intensity >= 1) {
174
+ this.intensity = 1;
175
+ this.increasing = false;
176
+ }
177
+ }
178
+ else {
179
+ this.intensity -= 0.1;
180
+ if (this.intensity <= 0.3) {
181
+ this.intensity = 0.3;
182
+ this.increasing = true;
183
+ }
184
+ }
185
+ if (this.onUpdate) {
186
+ this.onUpdate(this.render());
187
+ }
188
+ }, 50); // 20 FPS for pulse
189
+ }
190
+ stop() {
191
+ if (this.intervalId) {
192
+ clearInterval(this.intervalId);
193
+ this.intervalId = null;
194
+ }
195
+ }
196
+ setText(text) {
197
+ this.text = text;
198
+ }
199
+ render() {
200
+ // Use intensity to vary between dim and bright
201
+ if (this.intensity > 0.7) {
202
+ return theme.ui.highlight(this.text);
203
+ }
204
+ else if (this.intensity > 0.4) {
205
+ return theme.info(this.text);
206
+ }
207
+ else {
208
+ return theme.ui.muted(this.text);
209
+ }
210
+ }
211
+ }
212
+ /**
213
+ * Thinking indicator with animated dots
214
+ */
215
+ export class ThinkingIndicator {
216
+ dotCount = 0;
217
+ intervalId = null;
218
+ label;
219
+ onUpdate;
220
+ constructor(label = 'Thinking') {
221
+ this.label = label;
222
+ }
223
+ start(onUpdate) {
224
+ this.onUpdate = onUpdate;
225
+ this.dotCount = 0;
226
+ this.intervalId = setInterval(() => {
227
+ this.dotCount = (this.dotCount + 1) % 4;
228
+ if (this.onUpdate) {
229
+ this.onUpdate(this.render());
230
+ }
231
+ }, 400); // Slower animation for thinking
232
+ }
233
+ stop() {
234
+ if (this.intervalId) {
235
+ clearInterval(this.intervalId);
236
+ this.intervalId = null;
237
+ }
238
+ }
239
+ setLabel(label) {
240
+ this.label = label;
241
+ }
242
+ render() {
243
+ const dots = '.'.repeat(this.dotCount);
244
+ const padding = ' '.repeat(3 - this.dotCount);
245
+ return `${theme.thinking.icon('◐')} ${theme.thinking.label(this.label)}${theme.thinking.text(dots)}${padding}`;
246
+ }
247
+ }
248
+ /**
249
+ * Streaming status with spinner and message
250
+ */
251
+ export class StreamingStatus {
252
+ spinner;
253
+ elapsed;
254
+ isActive = false;
255
+ constructor() {
256
+ this.spinner = new AnimatedSpinner('', 'braille', theme.info);
257
+ this.elapsed = new AnimatedElapsedTime();
258
+ }
259
+ start(message, onUpdate) {
260
+ this.isActive = true;
261
+ this.spinner.setMessage(message);
262
+ const update = () => {
263
+ if (this.isActive && onUpdate) {
264
+ const spinnerPart = this.spinner.render();
265
+ const elapsedPart = this.elapsed.render();
266
+ onUpdate(`${spinnerPart} ${theme.ui.muted('·')} ${elapsedPart}`);
267
+ }
268
+ };
269
+ this.spinner.start(update);
270
+ this.elapsed.start(update);
271
+ }
272
+ updateMessage(message) {
273
+ this.spinner.setMessage(message);
274
+ }
275
+ stop() {
276
+ this.isActive = false;
277
+ this.spinner.stop();
278
+ const finalTime = this.elapsed.stop();
279
+ return `${theme.success('✓')} ${theme.ui.muted('Completed')} ${theme.ui.muted('·')} ${theme.ui.muted(finalTime)}`;
280
+ }
281
+ }
282
+ /**
283
+ * Context usage meter with color transitions
284
+ */
285
+ export class ContextMeter {
286
+ percentage = 0;
287
+ targetPercentage = 0;
288
+ animationFrame = null;
289
+ update(percentage) {
290
+ this.targetPercentage = Math.min(100, Math.max(0, percentage));
291
+ this.animate();
292
+ }
293
+ animate() {
294
+ if (this.animationFrame) {
295
+ clearTimeout(this.animationFrame);
296
+ }
297
+ const step = () => {
298
+ const diff = this.targetPercentage - this.percentage;
299
+ if (Math.abs(diff) < 0.5) {
300
+ this.percentage = this.targetPercentage;
301
+ return;
302
+ }
303
+ // Smooth easing
304
+ this.percentage += diff * 0.15;
305
+ this.animationFrame = setTimeout(step, 16); // ~60 FPS
306
+ };
307
+ step();
308
+ }
309
+ render() {
310
+ const pct = Math.round(this.percentage);
311
+ const color = pct > 90 ? theme.error
312
+ : pct > 70 ? theme.warning
313
+ : pct > 50 ? theme.info
314
+ : theme.success;
315
+ return `${theme.ui.muted('ctx')} ${color(`${pct}%`)}`;
316
+ }
317
+ dispose() {
318
+ if (this.animationFrame) {
319
+ clearTimeout(this.animationFrame);
320
+ }
321
+ }
322
+ }
323
+ /**
324
+ * Animated typing indicator (for showing AI is responding)
325
+ */
326
+ export class TypingIndicator {
327
+ frames = ['▌', '▐', '▌', ' '];
328
+ frameIndex = 0;
329
+ intervalId = null;
330
+ onUpdate;
331
+ start(onUpdate) {
332
+ this.onUpdate = onUpdate;
333
+ this.intervalId = setInterval(() => {
334
+ this.frameIndex = (this.frameIndex + 1) % this.frames.length;
335
+ if (this.onUpdate) {
336
+ this.onUpdate(this.render());
337
+ }
338
+ }, 530); // Blink at cursor rate
339
+ }
340
+ stop() {
341
+ if (this.intervalId) {
342
+ clearInterval(this.intervalId);
343
+ this.intervalId = null;
344
+ }
345
+ }
346
+ render() {
347
+ return theme.info(this.frames[this.frameIndex] ?? '▌');
348
+ }
349
+ }
350
+ /**
351
+ * Wave animation for processing states
352
+ */
353
+ export class WaveIndicator {
354
+ frames = ['∙∙∙∙∙', '●∙∙∙∙', '∙●∙∙∙', '∙∙●∙∙', '∙∙∙●∙', '∙∙∙∙●', '∙∙∙∙∙'];
355
+ frameIndex = 0;
356
+ intervalId = null;
357
+ onUpdate;
358
+ start(onUpdate) {
359
+ this.onUpdate = onUpdate;
360
+ this.intervalId = setInterval(() => {
361
+ this.frameIndex = (this.frameIndex + 1) % this.frames.length;
362
+ if (this.onUpdate) {
363
+ this.onUpdate(this.render());
364
+ }
365
+ }, 120);
366
+ }
367
+ stop() {
368
+ if (this.intervalId) {
369
+ clearInterval(this.intervalId);
370
+ this.intervalId = null;
371
+ }
372
+ }
373
+ render() {
374
+ return theme.info(this.frames[this.frameIndex] ?? '∙∙∙∙∙');
375
+ }
376
+ }
377
+ // Export singleton cleanup
378
+ export function disposeAnimations() {
379
+ if (globalScheduler) {
380
+ globalScheduler.dispose();
381
+ globalScheduler = null;
382
+ }
383
+ }
384
+ //# sourceMappingURL=animatedStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animatedStatus.js","sourceRoot":"","sources":["../../src/ui/animatedStatus.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface DisplayMessageMetadata {
17
17
  usage?: ProviderUsage | null;
18
18
  contextWindowTokens?: number | null;
19
19
  wasStreamed?: boolean;
20
+ suppressDisplay?: boolean;
20
21
  }
21
22
  interface StatusLineContextInfo {
22
23
  percentage?: number;
@@ -46,21 +47,15 @@ export declare class Display {
46
47
  private renderer;
47
48
  private readonly outputInterceptors;
48
49
  private inlinePanelHandler;
49
- private activeSpinner;
50
- private thinkingStartTime;
51
50
  constructor(stream?: OutputStream, errorStream?: OutputStream);
52
51
  setRenderer(renderer: UnifiedUIRenderer | null): void;
52
+ hasRenderer(): boolean;
53
53
  setInlinePanelHandler(handler: ((content: string) => boolean) | null): void;
54
54
  private maybeHandleInlinePanel;
55
55
  private enqueueEvent;
56
56
  registerOutputInterceptor(interceptor: OutputInterceptor): () => void;
57
57
  private notifyBeforeOutput;
58
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;
64
59
  /**
65
60
  * Write raw content directly
66
61
  */
@@ -79,40 +74,30 @@ export declare class Display {
79
74
  getOutputStream(): OutputStream;
80
75
  /**
81
76
  * Show thinking indicator
77
+ * NO-OP: Don't emit events during SSE streaming.
78
+ * The animated spinner in the status line shows thinking state.
82
79
  */
83
- showThinking(message?: string): void;
80
+ showThinking(_message?: string): void;
84
81
  /**
85
- * Update thinking message
82
+ * Update thinking indicator (status line only, not scrollback)
83
+ * This is called frequently during streaming to show progress snippets.
84
+ * The actual content will be rendered as a complete block later.
86
85
  */
87
- updateThinking(message: string): void;
86
+ updateThinking(_message: string): void;
88
87
  /**
89
- * Stop thinking
88
+ * Stop thinking (no-op - renderer handles state)
90
89
  */
91
90
  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;
108
91
  /**
109
92
  * Show assistant message
110
93
  */
111
94
  showAssistantMessage(content: string, metadata?: DisplayMessageMetadata): void;
112
95
  /**
113
96
  * Show narrative (thought)
97
+ * NO-OP: Don't emit events during SSE streaming.
98
+ * Narratives are buffered and rendered as part of the final response.
114
99
  */
115
- showNarrative(content: string): void;
100
+ showNarrative(_content: string): void;
116
101
  /**
117
102
  * Show action
118
103
  */
@@ -171,13 +156,6 @@ export declare class Display {
171
156
  * Show status line
172
157
  */
173
158
  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;
181
159
  /**
182
160
  * Show command palette
183
161
  */
@@ -185,10 +163,6 @@ export declare class Display {
185
163
  title?: string;
186
164
  intro?: string;
187
165
  }): void;
188
- /**
189
- * Show ready with hints (no-op)
190
- */
191
- showReadyWithHints(): void;
192
166
  /**
193
167
  * Show planning step
194
168
  */
@@ -213,14 +187,6 @@ export declare class Display {
213
187
  * Check if streaming status is visible
214
188
  */
215
189
  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;
224
190
  parallelAgentStatus(content: string): void;
225
191
  private getColumnWidth;
226
192
  private formatErrorDetails;
@@ -230,7 +196,6 @@ export declare class Display {
230
196
  private formatTelemetryLine;
231
197
  private buildClaudeStyleThought;
232
198
  private formatElapsedTime;
233
- private applySingleBulletBlock;
234
199
  private buildCommandPalette;
235
200
  private groupPaletteCommands;
236
201
  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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"}