erosolar-cli 1.7.253 → 1.7.254

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 (81) hide show
  1. package/README.md +148 -22
  2. package/dist/core/aiFlowOptimizer.d.ts +26 -0
  3. package/dist/core/aiFlowOptimizer.d.ts.map +1 -0
  4. package/dist/core/aiFlowOptimizer.js +31 -0
  5. package/dist/core/aiFlowOptimizer.js.map +1 -0
  6. package/dist/core/aiOptimizationEngine.d.ts +158 -0
  7. package/dist/core/aiOptimizationEngine.d.ts.map +1 -0
  8. package/dist/core/aiOptimizationEngine.js +428 -0
  9. package/dist/core/aiOptimizationEngine.js.map +1 -0
  10. package/dist/core/aiOptimizationIntegration.d.ts +93 -0
  11. package/dist/core/aiOptimizationIntegration.d.ts.map +1 -0
  12. package/dist/core/aiOptimizationIntegration.js +250 -0
  13. package/dist/core/aiOptimizationIntegration.js.map +1 -0
  14. package/dist/core/customCommands.d.ts +0 -1
  15. package/dist/core/customCommands.d.ts.map +1 -1
  16. package/dist/core/customCommands.js +0 -3
  17. package/dist/core/customCommands.js.map +1 -1
  18. package/dist/core/enhancedErrorRecovery.d.ts +100 -0
  19. package/dist/core/enhancedErrorRecovery.d.ts.map +1 -0
  20. package/dist/core/enhancedErrorRecovery.js +345 -0
  21. package/dist/core/enhancedErrorRecovery.js.map +1 -0
  22. package/dist/core/toolPreconditions.d.ts.map +1 -1
  23. package/dist/core/toolPreconditions.js +14 -0
  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 +5 -0
  27. package/dist/core/toolRuntime.js.map +1 -1
  28. package/dist/core/toolValidation.d.ts.map +1 -1
  29. package/dist/core/toolValidation.js +3 -14
  30. package/dist/core/toolValidation.js.map +1 -1
  31. package/dist/mcp/sseClient.d.ts.map +1 -1
  32. package/dist/mcp/sseClient.js +18 -9
  33. package/dist/mcp/sseClient.js.map +1 -1
  34. package/dist/plugins/tools/build/buildPlugin.d.ts +6 -0
  35. package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
  36. package/dist/plugins/tools/build/buildPlugin.js +10 -4
  37. package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
  38. package/dist/shell/claudeCodeStreamHandler.d.ts +145 -0
  39. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -0
  40. package/dist/shell/claudeCodeStreamHandler.js +322 -0
  41. package/dist/shell/claudeCodeStreamHandler.js.map +1 -0
  42. package/dist/shell/inputQueueManager.d.ts +144 -0
  43. package/dist/shell/inputQueueManager.d.ts.map +1 -0
  44. package/dist/shell/inputQueueManager.js +290 -0
  45. package/dist/shell/inputQueueManager.js.map +1 -0
  46. package/dist/shell/interactiveShell.d.ts +2 -10
  47. package/dist/shell/interactiveShell.d.ts.map +1 -1
  48. package/dist/shell/interactiveShell.js +31 -183
  49. package/dist/shell/interactiveShell.js.map +1 -1
  50. package/dist/shell/streamingOutputManager.d.ts +115 -0
  51. package/dist/shell/streamingOutputManager.d.ts.map +1 -0
  52. package/dist/shell/streamingOutputManager.js +225 -0
  53. package/dist/shell/streamingOutputManager.js.map +1 -0
  54. package/dist/shell/terminalInput.d.ts +131 -54
  55. package/dist/shell/terminalInput.d.ts.map +1 -1
  56. package/dist/shell/terminalInput.js +643 -353
  57. package/dist/shell/terminalInput.js.map +1 -1
  58. package/dist/shell/terminalInputAdapter.d.ts +15 -12
  59. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  60. package/dist/shell/terminalInputAdapter.js +22 -8
  61. package/dist/shell/terminalInputAdapter.js.map +1 -1
  62. package/dist/ui/display.d.ts +0 -19
  63. package/dist/ui/display.d.ts.map +1 -1
  64. package/dist/ui/display.js +2 -133
  65. package/dist/ui/display.js.map +1 -1
  66. package/dist/ui/persistentPrompt.d.ts +50 -0
  67. package/dist/ui/persistentPrompt.d.ts.map +1 -0
  68. package/dist/ui/persistentPrompt.js +92 -0
  69. package/dist/ui/persistentPrompt.js.map +1 -0
  70. package/dist/ui/terminalUISchema.d.ts +195 -0
  71. package/dist/ui/terminalUISchema.d.ts.map +1 -0
  72. package/dist/ui/terminalUISchema.js +113 -0
  73. package/dist/ui/terminalUISchema.js.map +1 -0
  74. package/dist/ui/theme.d.ts.map +1 -1
  75. package/dist/ui/theme.js +8 -6
  76. package/dist/ui/theme.js.map +1 -1
  77. package/dist/ui/unified/layout.d.ts +0 -1
  78. package/dist/ui/unified/layout.d.ts.map +1 -1
  79. package/dist/ui/unified/layout.js +25 -15
  80. package/dist/ui/unified/layout.js.map +1 -1
  81. package/package.json +1 -1
@@ -0,0 +1,115 @@
1
+ /**
2
+ * StreamingOutputManager - Buffered output for Claude Code style UI
3
+ *
4
+ * Key design principle:
5
+ * - Buffer streaming output instead of writing directly to stdout
6
+ * - This keeps the cursor at the prompt area (no cursor movement during streaming)
7
+ * - Render complete response when streaming ends
8
+ * - The UI (prompt) stays fixed at the bottom
9
+ *
10
+ * Two modes:
11
+ * 1. Direct mode (bufferedMode=false): Write chunks directly to stdout (original behavior)
12
+ * 2. Buffered mode (bufferedMode=true): Collect chunks, render when complete
13
+ */
14
+ import { EventEmitter } from 'node:events';
15
+ export interface StreamingOutputState {
16
+ isStreaming: boolean;
17
+ charsWritten: number;
18
+ linesWritten: number;
19
+ startTime: number | null;
20
+ }
21
+ export interface StreamingOutputEvents {
22
+ 'stream-start': () => void;
23
+ 'stream-chunk': (chunk: string) => void;
24
+ 'stream-end': (stats: {
25
+ duration: number;
26
+ chars: number;
27
+ lines: number;
28
+ }) => void;
29
+ }
30
+ /**
31
+ * Manages streaming output with optional buffering.
32
+ *
33
+ * Buffered mode:
34
+ * - Chunks are collected in a buffer
35
+ * - Output is rendered all at once when streaming ends
36
+ * - Cursor stays at prompt area (no jumping during streaming)
37
+ *
38
+ * Direct mode:
39
+ * - Chunks written directly to stdout (original behavior)
40
+ * - Cursor moves with output
41
+ */
42
+ export declare class StreamingOutputManager extends EventEmitter {
43
+ private state;
44
+ private readonly writeStream;
45
+ private lastChunk;
46
+ private bufferedMode;
47
+ private outputBuffer;
48
+ constructor(writeStream?: NodeJS.WriteStream);
49
+ /**
50
+ * Enable or disable buffered mode
51
+ * When buffered, chunks are collected and rendered at the end
52
+ */
53
+ setBufferedMode(enabled: boolean): void;
54
+ /**
55
+ * Check if buffered mode is enabled
56
+ */
57
+ isBufferedMode(): boolean;
58
+ /**
59
+ * Get the buffered content (for rendering)
60
+ */
61
+ getBuffer(): string;
62
+ /**
63
+ * Clear the buffer
64
+ */
65
+ clearBuffer(): void;
66
+ /**
67
+ * Check if currently streaming output
68
+ */
69
+ isStreaming(): boolean;
70
+ /**
71
+ * Begin a streaming session
72
+ * Resets counters and marks streaming as active
73
+ * In buffered mode, clears the buffer
74
+ */
75
+ startStream(): void;
76
+ /**
77
+ * Write a chunk of content
78
+ *
79
+ * In buffered mode: Collect in buffer (cursor stays at prompt)
80
+ * In direct mode: Write to stdout immediately
81
+ */
82
+ writeChunk(chunk: string): void;
83
+ /**
84
+ * Write a complete line (adds newline)
85
+ */
86
+ writeLine(line?: string): void;
87
+ /**
88
+ * End the streaming session
89
+ * In buffered mode: Renders the complete buffered output
90
+ * Returns statistics about what was streamed
91
+ */
92
+ endStream(): {
93
+ duration: number;
94
+ chars: number;
95
+ lines: number;
96
+ buffer?: string;
97
+ };
98
+ /**
99
+ * Get current streaming statistics
100
+ */
101
+ getStats(): {
102
+ chars: number;
103
+ lines: number;
104
+ elapsed: number;
105
+ };
106
+ /**
107
+ * Force a flush (for buffered output)
108
+ */
109
+ flush(): void;
110
+ private countNewlines;
111
+ private writeLocked;
112
+ }
113
+ export declare function getStreamingOutputManager(): StreamingOutputManager;
114
+ export declare function resetStreamingOutputManager(): void;
115
+ //# sourceMappingURL=streamingOutputManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamingOutputManager.d.ts","sourceRoot":"","sources":["../../src/shell/streamingOutputManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACnF;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,SAAS,CAAc;IAG/B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAgB;gBAExB,WAAW,GAAE,MAAM,CAAC,WAA4B;IAK5D;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAiBnB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAqB/B;;OAEG;IACH,SAAS,CAAC,IAAI,GAAE,MAAW,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA0ChF;;OAEG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAQ7D;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;CAWpB;AAOD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAKlE;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * StreamingOutputManager - Buffered output for Claude Code style UI
3
+ *
4
+ * Key design principle:
5
+ * - Buffer streaming output instead of writing directly to stdout
6
+ * - This keeps the cursor at the prompt area (no cursor movement during streaming)
7
+ * - Render complete response when streaming ends
8
+ * - The UI (prompt) stays fixed at the bottom
9
+ *
10
+ * Two modes:
11
+ * 1. Direct mode (bufferedMode=false): Write chunks directly to stdout (original behavior)
12
+ * 2. Buffered mode (bufferedMode=true): Collect chunks, render when complete
13
+ */
14
+ import { EventEmitter } from 'node:events';
15
+ import { writeLock } from '../ui/writeLock.js';
16
+ /**
17
+ * Manages streaming output with optional buffering.
18
+ *
19
+ * Buffered mode:
20
+ * - Chunks are collected in a buffer
21
+ * - Output is rendered all at once when streaming ends
22
+ * - Cursor stays at prompt area (no jumping during streaming)
23
+ *
24
+ * Direct mode:
25
+ * - Chunks written directly to stdout (original behavior)
26
+ * - Cursor moves with output
27
+ */
28
+ export class StreamingOutputManager extends EventEmitter {
29
+ state = {
30
+ isStreaming: false,
31
+ charsWritten: 0,
32
+ linesWritten: 0,
33
+ startTime: null,
34
+ };
35
+ writeStream;
36
+ lastChunk = '';
37
+ // Buffered mode support
38
+ bufferedMode = false;
39
+ outputBuffer = [];
40
+ constructor(writeStream = process.stdout) {
41
+ super();
42
+ this.writeStream = writeStream;
43
+ }
44
+ /**
45
+ * Enable or disable buffered mode
46
+ * When buffered, chunks are collected and rendered at the end
47
+ */
48
+ setBufferedMode(enabled) {
49
+ this.bufferedMode = enabled;
50
+ }
51
+ /**
52
+ * Check if buffered mode is enabled
53
+ */
54
+ isBufferedMode() {
55
+ return this.bufferedMode;
56
+ }
57
+ /**
58
+ * Get the buffered content (for rendering)
59
+ */
60
+ getBuffer() {
61
+ return this.outputBuffer.join('');
62
+ }
63
+ /**
64
+ * Clear the buffer
65
+ */
66
+ clearBuffer() {
67
+ this.outputBuffer = [];
68
+ }
69
+ /**
70
+ * Check if currently streaming output
71
+ */
72
+ isStreaming() {
73
+ return this.state.isStreaming;
74
+ }
75
+ /**
76
+ * Begin a streaming session
77
+ * Resets counters and marks streaming as active
78
+ * In buffered mode, clears the buffer
79
+ */
80
+ startStream() {
81
+ if (this.state.isStreaming) {
82
+ return; // Already streaming
83
+ }
84
+ this.state = {
85
+ isStreaming: true,
86
+ charsWritten: 0,
87
+ linesWritten: 0,
88
+ startTime: Date.now(),
89
+ };
90
+ this.lastChunk = '';
91
+ this.outputBuffer = [];
92
+ this.emit('stream-start');
93
+ }
94
+ /**
95
+ * Write a chunk of content
96
+ *
97
+ * In buffered mode: Collect in buffer (cursor stays at prompt)
98
+ * In direct mode: Write to stdout immediately
99
+ */
100
+ writeChunk(chunk) {
101
+ if (!chunk) {
102
+ return;
103
+ }
104
+ // Track statistics
105
+ this.state.charsWritten += chunk.length;
106
+ this.state.linesWritten += this.countNewlines(chunk);
107
+ this.lastChunk = chunk;
108
+ if (this.bufferedMode) {
109
+ // Buffered mode: collect chunks, don't write yet
110
+ this.outputBuffer.push(chunk);
111
+ }
112
+ else {
113
+ // Direct mode: write immediately
114
+ this.writeLocked(chunk);
115
+ }
116
+ this.emit('stream-chunk', chunk);
117
+ }
118
+ /**
119
+ * Write a complete line (adds newline)
120
+ */
121
+ writeLine(line = '') {
122
+ this.writeChunk(`${line}\n`);
123
+ }
124
+ /**
125
+ * End the streaming session
126
+ * In buffered mode: Renders the complete buffered output
127
+ * Returns statistics about what was streamed
128
+ */
129
+ endStream() {
130
+ const stats = {
131
+ duration: this.state.startTime ? Date.now() - this.state.startTime : 0,
132
+ chars: this.state.charsWritten,
133
+ lines: this.state.linesWritten,
134
+ buffer: undefined,
135
+ };
136
+ if (this.bufferedMode) {
137
+ // In buffered mode, render the collected output now
138
+ const bufferedContent = this.outputBuffer.join('');
139
+ stats.buffer = bufferedContent;
140
+ if (bufferedContent) {
141
+ this.writeLocked(bufferedContent);
142
+ // Ensure we end with a newline
143
+ if (!bufferedContent.endsWith('\n')) {
144
+ this.writeLocked('\n');
145
+ stats.lines += 1;
146
+ }
147
+ }
148
+ this.outputBuffer = [];
149
+ }
150
+ else {
151
+ // Direct mode: just ensure newline
152
+ if (this.lastChunk && !this.lastChunk.endsWith('\n')) {
153
+ this.writeLocked('\n');
154
+ stats.lines += 1;
155
+ }
156
+ }
157
+ this.state = {
158
+ isStreaming: false,
159
+ charsWritten: 0,
160
+ linesWritten: 0,
161
+ startTime: null,
162
+ };
163
+ this.lastChunk = '';
164
+ this.emit('stream-end', stats);
165
+ return stats;
166
+ }
167
+ /**
168
+ * Get current streaming statistics
169
+ */
170
+ getStats() {
171
+ return {
172
+ chars: this.state.charsWritten,
173
+ lines: this.state.linesWritten,
174
+ elapsed: this.state.startTime ? Date.now() - this.state.startTime : 0,
175
+ };
176
+ }
177
+ /**
178
+ * Force a flush (for buffered output)
179
+ */
180
+ flush() {
181
+ // Cork/uncork pattern for optimal buffering
182
+ if (typeof this.writeStream.cork === 'function') {
183
+ this.writeStream.cork();
184
+ process.nextTick(() => {
185
+ if (typeof this.writeStream.uncork === 'function') {
186
+ this.writeStream.uncork();
187
+ }
188
+ });
189
+ }
190
+ }
191
+ countNewlines(text) {
192
+ let count = 0;
193
+ for (const char of text) {
194
+ if (char === '\n') {
195
+ count += 1;
196
+ }
197
+ }
198
+ return count;
199
+ }
200
+ writeLocked(chunk) {
201
+ // If lock is already held, write directly - we're in a protected context
202
+ // This prevents queuing issues where content gets delayed during streaming
203
+ if (writeLock.isLocked()) {
204
+ this.writeStream.write(chunk);
205
+ return;
206
+ }
207
+ writeLock.withLock(() => {
208
+ this.writeStream.write(chunk);
209
+ }, 'streamingOutputManager.write');
210
+ }
211
+ }
212
+ /**
213
+ * Singleton instance for global use
214
+ */
215
+ let globalInstance = null;
216
+ export function getStreamingOutputManager() {
217
+ if (!globalInstance) {
218
+ globalInstance = new StreamingOutputManager();
219
+ }
220
+ return globalInstance;
221
+ }
222
+ export function resetStreamingOutputManager() {
223
+ globalInstance = null;
224
+ }
225
+ //# sourceMappingURL=streamingOutputManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamingOutputManager.js","sourceRoot":"","sources":["../../src/shell/streamingOutputManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAe/C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IAC9C,KAAK,GAAyB;QACpC,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,IAAI;KAChB,CAAC;IAEe,WAAW,CAAqB;IACzC,SAAS,GAAW,EAAE,CAAC;IAE/B,wBAAwB;IAChB,YAAY,GAAY,KAAK,CAAC;IAC9B,YAAY,GAAa,EAAE,CAAC;IAEpC,YAAY,cAAkC,OAAO,CAAC,MAAM;QAC1D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,OAAgB;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,oBAAoB;QAC9B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,iDAAiD;YACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAe,EAAE;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACtE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YAC9B,MAAM,EAAE,SAA+B;SACxC,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,oDAAoD;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC;YAE/B,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAClC,+BAA+B;gBAC/B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,4CAA4C;QAC5C,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,yEAAyE;QACzE,2EAA2E;QAC3E,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,IAAI,cAAc,GAAkC,IAAI,CAAC;AAEzD,MAAM,UAAU,yBAAyB;IACvC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -3,18 +3,14 @@
3
3
  *
4
4
  * Design principles:
5
5
  * - Single source of truth for input state
6
- * - One bottom-pinned chat box for the entire session (no inline anchors)
7
6
  * - Native bracketed paste support (no heuristics)
8
7
  * - Clean cursor model with render-time wrapping
9
8
  * - State machine for different input modes
10
9
  * - No readline dependency for display
11
10
  */
12
11
  import { EventEmitter } from 'node:events';
13
- /**
14
- * Input modes - determines how input is handled
15
- */
16
- export type InputMode = 'idle' | 'streaming' | 'paste';
17
- export type EditGuardMode = 'display-edits' | 'ask-permission';
12
+ import { type InputMode, type EditGuardMode } from '../ui/terminalUISchema.js';
13
+ export type { InputMode, EditGuardMode } from '../ui/terminalUISchema.js';
18
14
  /**
19
15
  * Events emitted by TerminalInput
20
16
  */
@@ -66,11 +62,6 @@ export declare class TerminalInput extends EventEmitter {
66
62
  private statusMessage;
67
63
  private overrideStatusMessage;
68
64
  private streamingLabel;
69
- private metaElapsedSeconds;
70
- private metaTokensUsed;
71
- private metaTokenLimit;
72
- private metaThinkingMs;
73
- private metaThinkingHasContent;
74
65
  private reservedLines;
75
66
  private scrollRegionActive;
76
67
  private lastRenderContent;
@@ -78,19 +69,28 @@ export declare class TerminalInput extends EventEmitter {
78
69
  private renderDirty;
79
70
  private isRendering;
80
71
  private pinnedTopRows;
72
+ private inlineAnchorRow;
73
+ private inlineLayout;
74
+ private anchorProvider;
75
+ private flowMode;
76
+ private flowModeRenderedLines;
77
+ private commandSuggestions;
78
+ private filteredSuggestions;
79
+ private selectedSuggestionIndex;
80
+ private showSuggestions;
81
+ private maxVisibleSuggestions;
81
82
  private disposed;
82
83
  private enabled;
83
84
  private contextUsage;
84
- private contextAutoCompactThreshold;
85
- private thinkingModeLabel;
86
85
  private editMode;
87
86
  private verificationEnabled;
88
87
  private autoContinueEnabled;
89
88
  private verificationHotkey;
90
89
  private autoContinueHotkey;
91
90
  private outputInterceptorCleanup?;
92
- private lastStreamingRender;
93
- private streamingRenderInterval;
91
+ private streamingStartTime;
92
+ private tokensUsed;
93
+ private thinkingEnabled;
94
94
  private streamingRenderTimer;
95
95
  constructor(writeStream?: NodeJS.WriteStream, config?: TerminalInputConfig);
96
96
  /**
@@ -116,14 +116,74 @@ export declare class TerminalInput extends EventEmitter {
116
116
  /**
117
117
  * Set the input mode
118
118
  *
119
- * Streaming keeps the scroll region active so the prompt/status stay pinned
120
- * below the streaming output. When streaming ends, we refresh the input area.
119
+ * Streaming mode disables scroll region and lets content flow naturally.
120
+ * The input area will be re-rendered after streaming ends at wherever
121
+ * the cursor is (below the streamed content).
121
122
  */
122
123
  setMode(mode: InputMode): void;
124
+ /**
125
+ * Enable or disable flow mode.
126
+ * In flow mode, the input renders immediately after content (wherever cursor is).
127
+ * When disabled, input renders at the absolute bottom of terminal.
128
+ */
129
+ setFlowMode(enabled: boolean): void;
130
+ /**
131
+ * Check if flow mode is enabled.
132
+ */
133
+ isFlowMode(): boolean;
134
+ /**
135
+ * Set available slash commands for auto-complete suggestions.
136
+ */
137
+ setCommands(commands: Array<{
138
+ command: string;
139
+ description: string;
140
+ }>): void;
141
+ /**
142
+ * Update filtered suggestions based on current input.
143
+ */
144
+ private updateSuggestions;
145
+ /**
146
+ * Select next suggestion (arrow down / tab).
147
+ */
148
+ selectNextSuggestion(): void;
149
+ /**
150
+ * Select previous suggestion (arrow up / shift+tab).
151
+ */
152
+ selectPrevSuggestion(): void;
153
+ /**
154
+ * Accept current suggestion and insert into buffer.
155
+ */
156
+ acceptSuggestion(): boolean;
157
+ /**
158
+ * Check if suggestions are visible.
159
+ */
160
+ areSuggestionsVisible(): boolean;
161
+ /**
162
+ * Update token count for metrics display
163
+ */
164
+ setTokensUsed(tokens: number): void;
165
+ /**
166
+ * Toggle thinking/reasoning mode
167
+ */
168
+ toggleThinking(): void;
169
+ /**
170
+ * Get thinking enabled state
171
+ */
172
+ isThinkingEnabled(): boolean;
123
173
  /**
124
174
  * Keep the top N rows pinned outside the scroll region (used for the launch banner).
125
175
  */
126
176
  setPinnedHeaderLines(count: number): void;
177
+ /**
178
+ * Anchor prompt rendering near a specific row (inline layout). Pass null to
179
+ * restore the default bottom-aligned layout.
180
+ */
181
+ setInlineAnchor(row: number | null): void;
182
+ /**
183
+ * Provide a dynamic anchor callback. When set, the prompt will follow the
184
+ * output by re-evaluating the anchor before each render.
185
+ */
186
+ setInlineAnchorProvider(provider: (() => number | null | undefined) | null): void;
127
187
  /**
128
188
  * Get current mode
129
189
  */
@@ -170,16 +230,6 @@ export declare class TerminalInput extends EventEmitter {
170
230
  * Can be shown alongside override status messages.
171
231
  */
172
232
  setStreamingLabel(label: string | null): void;
173
- /**
174
- * Surface meta status just above the divider (e.g., elapsed time or token usage).
175
- */
176
- setMetaStatus(meta: {
177
- elapsedSeconds?: number | null;
178
- tokensUsed?: number | null;
179
- tokenLimit?: number | null;
180
- thinkingMs?: number | null;
181
- thinkingHasContent?: boolean;
182
- }): void;
183
233
  /**
184
234
  * Keep mode toggles (verification/auto-continue) visible in the control bar.
185
235
  * Hotkey labels remain stable so the bar looks the same before/during streaming.
@@ -189,7 +239,6 @@ export declare class TerminalInput extends EventEmitter {
189
239
  autoContinueEnabled: boolean;
190
240
  verificationHotkey?: string;
191
241
  autoContinueHotkey?: string;
192
- thinkingModeLabel?: string | null;
193
242
  }): void;
194
243
  /**
195
244
  * Clear all status messages at once (convenience method).
@@ -198,37 +247,59 @@ export declare class TerminalInput extends EventEmitter {
198
247
  /**
199
248
  * Render the input area - Claude Code style with mode controls
200
249
  *
201
- * During streaming we keep the scroll region active and repaint only the
202
- * pinned status/input block (throttled) so streamed content can scroll
203
- * naturally above while elapsed time and status stay fresh.
250
+ * During streaming, uses specialized streaming render to avoid cursor conflicts.
204
251
  */
205
252
  render(): void;
206
253
  /**
207
- * Build one or more compact meta lines above the divider (thinking, status, usage).
254
+ * Render in flow mode - delegates to bottom-pinned for stability.
255
+ *
256
+ * Flow mode attempted inline rendering but caused duplicate renders
257
+ * due to unreliable cursor position tracking. Bottom-pinned is reliable.
258
+ */
259
+ private renderFlowMode;
260
+ /**
261
+ * Render in bottom-pinned mode - Claude Code style with suggestions
262
+ *
263
+ * Layout when suggestions visible:
264
+ * - Top divider
265
+ * - Input line(s)
266
+ * - Bottom divider
267
+ * - Suggestions (command list)
268
+ *
269
+ * Layout when suggestions hidden:
270
+ * - Status bar (Ready/Streaming)
271
+ * - Top divider
272
+ * - Input line(s)
273
+ * - Bottom divider
274
+ * - Mode controls
208
275
  */
209
- private buildMetaLines;
276
+ private renderBottomPinned;
210
277
  /**
211
- * Clear the reserved bottom block (meta + divider + input + controls) before repainting.
278
+ * Render full input area during streaming at absolute bottom.
279
+ * Same layout as normal but shows streaming status instead of "Type a message".
280
+ * User can type to queue messages.
212
281
  */
213
- private clearReservedArea;
282
+ private renderInputAreaDuringStreaming;
214
283
  /**
215
- * Build Claude Code style mode controls line.
216
- * Combines streaming label + override status + main status for simultaneous display.
284
+ * Update only the status bar during streaming (with elapsed time).
285
+ */
286
+ private updateStreamingStatusBar;
287
+ /**
288
+ * Build status bar for streaming mode (shows elapsed time, queue count).
289
+ */
290
+ private buildStreamingStatusBar;
291
+ /**
292
+ * Build status bar showing streaming/ready status and key info.
293
+ * This is the TOP line above the input area - minimal Claude Code style.
294
+ */
295
+ private buildStatusBar;
296
+ /**
297
+ * Build mode controls line showing toggles and context info.
298
+ * This is the BOTTOM line below the input area - Claude Code style layout with erosolar features.
299
+ *
300
+ * Layout: [toggles on left] ... [context info on right]
217
301
  */
218
302
  private buildModeControls;
219
- private computeContextRemaining;
220
- private computeTokensRemaining;
221
- private formatElapsedLabel;
222
- private formatTokenCount;
223
- private visibleLength;
224
- /**
225
- * Debug-only snapshot used by tests to assert rendered strings without
226
- * needing a TTY. Not used by production code.
227
- */
228
- getDebugUiSnapshot(width?: number): {
229
- meta: string[];
230
- controls: string;
231
- };
232
303
  /**
233
304
  * Force a re-render
234
305
  */
@@ -245,6 +316,9 @@ export declare class TerminalInput extends EventEmitter {
245
316
  * Register with display's output interceptor to position cursor correctly.
246
317
  * When scroll region is active, output needs to go to the scroll region,
247
318
  * not the protected bottom area where the input is rendered.
319
+ *
320
+ * NOTE: With scroll region properly set, content naturally stays within
321
+ * the region boundaries - no cursor manipulation needed per-write.
248
322
  */
249
323
  registerOutputInterceptor(display: {
250
324
  registerOutputInterceptor: (i: {
@@ -289,18 +363,21 @@ export declare class TerminalInput extends EventEmitter {
289
363
  private shiftPlaceholders;
290
364
  private removeRange;
291
365
  private insertPlainText;
292
- private shouldInlineMultiline;
293
366
  private findPlaceholderAt;
294
367
  private buildPlaceholder;
295
368
  private insertPastePlaceholder;
369
+ /**
370
+ * Toggle expansion of a paste placeholder at the current cursor position.
371
+ * When expanded, shows first 3 and last 2 lines of the content.
372
+ */
373
+ togglePasteExpansion(): boolean;
374
+ private buildExpandedPlaceholder;
296
375
  private deletePlaceholder;
297
- updateContextUsage(value: number | null, autoCompactThreshold?: number): void;
376
+ updateContextUsage(value: number | null): void;
298
377
  getEditMode(): EditGuardMode;
299
378
  applyEditMode(mode: EditGuardMode): void;
300
379
  private setEditMode;
301
380
  toggleEditMode(): void;
302
- private scheduleStreamingRender;
303
- private resetStreamingRenderThrottle;
304
381
  private scheduleRender;
305
382
  private canRender;
306
383
  private isTTY;
@@ -1 +1 @@
1
- {"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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"}