erosolar-cli 1.7.189 → 1.7.191

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.
@@ -0,0 +1,186 @@
1
+ /**
2
+ * TerminalInput - Clean, unified terminal input handling
3
+ *
4
+ * Design principles:
5
+ * - Single source of truth for input state
6
+ * - Native bracketed paste support (no heuristics)
7
+ * - Clean cursor model with render-time wrapping
8
+ * - State machine for different input modes
9
+ * - No readline dependency for display
10
+ */
11
+ import { EventEmitter } from 'node:events';
12
+ /**
13
+ * Input modes - determines how input is handled
14
+ */
15
+ export type InputMode = 'idle' | 'streaming' | 'paste';
16
+ /**
17
+ * Events emitted by TerminalInput
18
+ */
19
+ export interface TerminalInputEvents {
20
+ submit: (text: string) => void;
21
+ change: (text: string) => void;
22
+ interrupt: () => void;
23
+ queue: (text: string) => void;
24
+ }
25
+ /**
26
+ * Queued command during streaming
27
+ */
28
+ export interface QueuedInput {
29
+ id: number;
30
+ text: string;
31
+ timestamp: number;
32
+ }
33
+ /**
34
+ * Configuration options
35
+ */
36
+ export interface TerminalInputConfig {
37
+ maxLines?: number;
38
+ maxLength?: number;
39
+ maxQueueSize?: number;
40
+ promptChar?: string;
41
+ continuationChar?: string;
42
+ }
43
+ /**
44
+ * Unified terminal input handler
45
+ */
46
+ export declare class TerminalInput extends EventEmitter {
47
+ private readonly out;
48
+ private readonly config;
49
+ private buffer;
50
+ private cursor;
51
+ private mode;
52
+ private pasteBuffer;
53
+ private isPasting;
54
+ private history;
55
+ private historyIndex;
56
+ private tempInput;
57
+ private readonly maxHistory;
58
+ private queue;
59
+ private queueIdCounter;
60
+ private reservedLines;
61
+ private scrollRegionActive;
62
+ private lastRenderContent;
63
+ private lastRenderCursor;
64
+ private isRendering;
65
+ private disposed;
66
+ private enabled;
67
+ constructor(writeStream?: NodeJS.WriteStream, config?: TerminalInputConfig);
68
+ /**
69
+ * Enable bracketed paste mode in terminal
70
+ */
71
+ enableBracketedPaste(): void;
72
+ /**
73
+ * Disable bracketed paste mode
74
+ */
75
+ disableBracketedPaste(): void;
76
+ /**
77
+ * Process raw terminal data (handles bracketed paste sequences)
78
+ * Returns true if the data was consumed (paste sequence)
79
+ */
80
+ processRawData(data: string): {
81
+ consumed: boolean;
82
+ passthrough: string;
83
+ };
84
+ /**
85
+ * Handle a keypress event
86
+ */
87
+ handleKeypress(str: string | undefined, key: KeyInfo): void;
88
+ /**
89
+ * Set the input mode
90
+ */
91
+ setMode(mode: InputMode): void;
92
+ /**
93
+ * Get current mode
94
+ */
95
+ getMode(): InputMode;
96
+ /**
97
+ * Get the current buffer content
98
+ */
99
+ getBuffer(): string;
100
+ /**
101
+ * Set buffer content
102
+ */
103
+ setBuffer(text: string, cursorPos?: number): void;
104
+ /**
105
+ * Clear the buffer
106
+ */
107
+ clear(): void;
108
+ /**
109
+ * Get queued inputs
110
+ */
111
+ getQueue(): QueuedInput[];
112
+ /**
113
+ * Dequeue next input
114
+ */
115
+ dequeue(): QueuedInput | undefined;
116
+ /**
117
+ * Clear the queue
118
+ */
119
+ clearQueue(): void;
120
+ /**
121
+ * Render the input area
122
+ */
123
+ render(): void;
124
+ /**
125
+ * Force a re-render
126
+ */
127
+ forceRender(): void;
128
+ /**
129
+ * Enable/disable input
130
+ */
131
+ setEnabled(enabled: boolean): void;
132
+ /**
133
+ * Handle terminal resize
134
+ */
135
+ handleResize(): void;
136
+ /**
137
+ * Dispose and clean up
138
+ */
139
+ dispose(): void;
140
+ private handleCtrlKey;
141
+ private handleMetaKey;
142
+ private handleSpecialKey;
143
+ private insertText;
144
+ private insertNewline;
145
+ private deleteBackward;
146
+ private deleteForward;
147
+ private deleteToStart;
148
+ private deleteToEnd;
149
+ private deleteWord;
150
+ private moveCursorLeft;
151
+ private moveCursorRight;
152
+ private moveCursorWordLeft;
153
+ private moveCursorWordRight;
154
+ private moveCursorToLineStart;
155
+ private moveCursorToLineEnd;
156
+ private handleUp;
157
+ private handleDown;
158
+ private moveCursorUp;
159
+ private moveCursorDown;
160
+ private getCursorPosition;
161
+ private submit;
162
+ private finishPaste;
163
+ private enableScrollRegion;
164
+ private disableScrollRegion;
165
+ private updateReservedLines;
166
+ private wrapBuffer;
167
+ private scheduleRender;
168
+ private canRender;
169
+ private isTTY;
170
+ private getSize;
171
+ private write;
172
+ private sanitize;
173
+ private isWhitespace;
174
+ private clampCursor;
175
+ }
176
+ /**
177
+ * Key info type (subset of readline.Key)
178
+ */
179
+ export interface KeyInfo {
180
+ name?: string;
181
+ ctrl?: boolean;
182
+ meta?: boolean;
183
+ shift?: boolean;
184
+ sequence?: string;
185
+ }
186
+ //# sourceMappingURL=terminalInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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"}