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.
- package/dist/shell/interactiveShell.d.ts +29 -126
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +163 -1438
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +186 -0
- package/dist/shell/terminalInput.d.ts.map +1 -0
- package/dist/shell/terminalInput.js +855 -0
- package/dist/shell/terminalInput.js.map +1 -0
- package/dist/shell/terminalInputAdapter.d.ts +94 -0
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -0
- package/dist/shell/terminalInputAdapter.js +187 -0
- package/dist/shell/terminalInputAdapter.js.map +1 -0
- package/dist/ui/keyboardShortcuts.js +1 -1
- package/dist/ui/keyboardShortcuts.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +11 -13
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +22 -57
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/dist/ui/shortcutsHelp.js +1 -1
- package/dist/ui/shortcutsHelp.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|