erosolar-cli 1.7.31 → 1.7.33
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/composableMessage.d.ts +1 -1
- package/dist/shell/composableMessage.js +2 -2
- package/dist/shell/composableMessage.js.map +1 -1
- package/dist/shell/enhancedInteractiveShell.d.ts +90 -0
- package/dist/shell/enhancedInteractiveShell.d.ts.map +1 -0
- package/dist/shell/enhancedInteractiveShell.js +248 -0
- package/dist/shell/enhancedInteractiveShell.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +6 -3
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +33 -47
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/multiLinePasteManager.d.ts +106 -0
- package/dist/shell/multiLinePasteManager.d.ts.map +1 -0
- package/dist/shell/multiLinePasteManager.js +308 -0
- package/dist/shell/multiLinePasteManager.js.map +1 -0
- package/dist/ui/keyboardShortcuts.d.ts.map +1 -1
- package/dist/ui/keyboardShortcuts.js +12 -2
- package/dist/ui/keyboardShortcuts.js.map +1 -1
- package/package.json +1 -1
|
@@ -103,7 +103,7 @@ export declare class ComposableMessageBuilder {
|
|
|
103
103
|
formatSummary(): string;
|
|
104
104
|
/**
|
|
105
105
|
* Format paste blocks as inline chips for prompt display.
|
|
106
|
-
* Returns a string like: "[Pasted
|
|
106
|
+
* Returns a string like: "[📋 Pasted: 15 lines] [📋 Pasted: 50 lines]"
|
|
107
107
|
* Returns empty string if no paste blocks exist.
|
|
108
108
|
*/
|
|
109
109
|
formatPasteChips(): string;
|
|
@@ -200,7 +200,7 @@ export class ComposableMessageBuilder {
|
|
|
200
200
|
}
|
|
201
201
|
/**
|
|
202
202
|
* Format paste blocks as inline chips for prompt display.
|
|
203
|
-
* Returns a string like: "[Pasted
|
|
203
|
+
* Returns a string like: "[📋 Pasted: 15 lines] [📋 Pasted: 50 lines]"
|
|
204
204
|
* Returns empty string if no paste blocks exist.
|
|
205
205
|
*/
|
|
206
206
|
formatPasteChips() {
|
|
@@ -209,7 +209,7 @@ export class ComposableMessageBuilder {
|
|
|
209
209
|
return '';
|
|
210
210
|
}
|
|
211
211
|
return pasteBlocks
|
|
212
|
-
.map((block
|
|
212
|
+
.map((block) => `[📋 Pasted: ${block.lineCount} lines]`)
|
|
213
213
|
.join(' ');
|
|
214
214
|
}
|
|
215
215
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composableMessage.js","sourceRoot":"","sources":["../../src/shell/composableMessage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"composableMessage.js","sourceRoot":"","sources":["../../src/shell/composableMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EnhancedInteractiveShell - Improved shell with better multi-line paste UX
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Short block descriptions for pastes: "[Pasted: 15 lines]"
|
|
6
|
+
* - Full content sent to AI on Enter
|
|
7
|
+
* - Visual feedback during paste operations
|
|
8
|
+
* - Graceful handling of large pastes
|
|
9
|
+
*/
|
|
10
|
+
import { MultiLinePasteManager } from './multiLinePasteManager.js';
|
|
11
|
+
import { ComposableMessageBuilder } from './composableMessage.js';
|
|
12
|
+
export declare class EnhancedInteractiveShell {
|
|
13
|
+
private rl;
|
|
14
|
+
private pasteManager;
|
|
15
|
+
private messageBuilder;
|
|
16
|
+
private bracketedPasteEnabled;
|
|
17
|
+
private currentPrompt;
|
|
18
|
+
private onInputCallback;
|
|
19
|
+
private onExitCallback;
|
|
20
|
+
constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Set up event handlers for the readline interface
|
|
23
|
+
*/
|
|
24
|
+
private setupEventHandlers;
|
|
25
|
+
/**
|
|
26
|
+
* Handle raw input for paste detection
|
|
27
|
+
*/
|
|
28
|
+
private handleRawInput;
|
|
29
|
+
/**
|
|
30
|
+
* Handle line input (Enter key)
|
|
31
|
+
*/
|
|
32
|
+
private handleLineInput;
|
|
33
|
+
/**
|
|
34
|
+
* Show preview of current paste operation
|
|
35
|
+
*/
|
|
36
|
+
private showPastePreview;
|
|
37
|
+
/**
|
|
38
|
+
* Clear paste preview
|
|
39
|
+
*/
|
|
40
|
+
private clearPastePreview;
|
|
41
|
+
/**
|
|
42
|
+
* Show current message state (text + paste blocks)
|
|
43
|
+
*/
|
|
44
|
+
private showCurrentMessageState;
|
|
45
|
+
/**
|
|
46
|
+
* Show message being sent to AI
|
|
47
|
+
*/
|
|
48
|
+
private showSendingMessage;
|
|
49
|
+
/**
|
|
50
|
+
* Show the prompt
|
|
51
|
+
*/
|
|
52
|
+
private showPrompt;
|
|
53
|
+
/**
|
|
54
|
+
* Handle shell close
|
|
55
|
+
*/
|
|
56
|
+
private handleClose;
|
|
57
|
+
/**
|
|
58
|
+
* Enable bracketed paste mode
|
|
59
|
+
*/
|
|
60
|
+
private enableBracketedPasteMode;
|
|
61
|
+
/**
|
|
62
|
+
* Disable bracketed paste mode
|
|
63
|
+
*/
|
|
64
|
+
private disableBracketedPasteMode;
|
|
65
|
+
/**
|
|
66
|
+
* Start the enhanced shell
|
|
67
|
+
*/
|
|
68
|
+
start(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Stop the shell
|
|
71
|
+
*/
|
|
72
|
+
stop(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Set callback for user input
|
|
75
|
+
*/
|
|
76
|
+
onInput(callback: (input: string) => void): void;
|
|
77
|
+
/**
|
|
78
|
+
* Set callback for shell exit
|
|
79
|
+
*/
|
|
80
|
+
onExit(callback: () => void): void;
|
|
81
|
+
/**
|
|
82
|
+
* Get current paste manager for debugging
|
|
83
|
+
*/
|
|
84
|
+
getPasteManager(): MultiLinePasteManager;
|
|
85
|
+
/**
|
|
86
|
+
* Get current message builder for debugging
|
|
87
|
+
*/
|
|
88
|
+
getMessageBuilder(): ComposableMessageBuilder;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=enhancedInteractiveShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhancedInteractiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/enhancedInteractiveShell.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAOlE,qBAAa,wBAAwB;IACnC,OAAO,CAAC,EAAE,CAAqB;IAC/B,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,cAAc,CAA6B;;IAyBnD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIhD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC;;OAEG;IACH,eAAe,IAAI,qBAAqB;IAIxC;;OAEG;IACH,iBAAiB,IAAI,wBAAwB;CAG9C"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EnhancedInteractiveShell - Improved shell with better multi-line paste UX
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Short block descriptions for pastes: "[Pasted: 15 lines]"
|
|
6
|
+
* - Full content sent to AI on Enter
|
|
7
|
+
* - Visual feedback during paste operations
|
|
8
|
+
* - Graceful handling of large pastes
|
|
9
|
+
*/
|
|
10
|
+
import readline from 'node:readline';
|
|
11
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
12
|
+
import { MultiLinePasteManager } from './multiLinePasteManager.js';
|
|
13
|
+
import { ComposableMessageBuilder } from './composableMessage.js';
|
|
14
|
+
import { display } from '../ui/display.js';
|
|
15
|
+
import { theme } from '../ui/theme.js';
|
|
16
|
+
const BRACKETED_PASTE_ENABLE = '\u001b[?2004h';
|
|
17
|
+
const BRACKETED_PASTE_DISABLE = '\u001b[?2004l';
|
|
18
|
+
export class EnhancedInteractiveShell {
|
|
19
|
+
rl;
|
|
20
|
+
pasteManager;
|
|
21
|
+
messageBuilder;
|
|
22
|
+
bracketedPasteEnabled = false;
|
|
23
|
+
currentPrompt = '';
|
|
24
|
+
onInputCallback = null;
|
|
25
|
+
onExitCallback = null;
|
|
26
|
+
constructor() {
|
|
27
|
+
this.pasteManager = new MultiLinePasteManager({
|
|
28
|
+
enabled: true,
|
|
29
|
+
maxPreviewLength: 60,
|
|
30
|
+
pasteThresholdMs: 50,
|
|
31
|
+
debug: false,
|
|
32
|
+
showVisualIndicators: true
|
|
33
|
+
});
|
|
34
|
+
this.messageBuilder = new ComposableMessageBuilder();
|
|
35
|
+
this.rl = readline.createInterface({
|
|
36
|
+
input,
|
|
37
|
+
output,
|
|
38
|
+
prompt: '',
|
|
39
|
+
terminal: true,
|
|
40
|
+
historySize: 1000
|
|
41
|
+
});
|
|
42
|
+
this.setupEventHandlers();
|
|
43
|
+
this.enableBracketedPasteMode();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Set up event handlers for the readline interface
|
|
47
|
+
*/
|
|
48
|
+
setupEventHandlers() {
|
|
49
|
+
this.rl.on('line', (line) => {
|
|
50
|
+
this.handleLineInput(line);
|
|
51
|
+
});
|
|
52
|
+
this.rl.on('close', () => {
|
|
53
|
+
this.handleClose();
|
|
54
|
+
});
|
|
55
|
+
// Handle raw input for paste detection
|
|
56
|
+
input.on('data', (data) => {
|
|
57
|
+
this.handleRawInput(data.toString());
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Handle raw input for paste detection
|
|
62
|
+
*/
|
|
63
|
+
handleRawInput(data) {
|
|
64
|
+
const result = this.pasteManager.process(data);
|
|
65
|
+
if (result.handled) {
|
|
66
|
+
if (result.isPending) {
|
|
67
|
+
// Show preview while paste is in progress
|
|
68
|
+
this.showPastePreview(result.preview || '');
|
|
69
|
+
}
|
|
70
|
+
else if (result.result) {
|
|
71
|
+
// Paste completed, add to message builder
|
|
72
|
+
this.messageBuilder.addPasteBlock(result.result);
|
|
73
|
+
this.showCurrentMessageState();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Handle line input (Enter key)
|
|
79
|
+
*/
|
|
80
|
+
handleLineInput(line) {
|
|
81
|
+
// Finalize any pending paste
|
|
82
|
+
const finalResult = this.pasteManager.finalize();
|
|
83
|
+
if (finalResult?.result) {
|
|
84
|
+
this.messageBuilder.addPasteBlock(finalResult.result);
|
|
85
|
+
}
|
|
86
|
+
// Add any typed text
|
|
87
|
+
if (line.trim()) {
|
|
88
|
+
this.messageBuilder.addTextBlock(line);
|
|
89
|
+
}
|
|
90
|
+
// If we have any content, send it
|
|
91
|
+
if (this.messageBuilder.hasContent()) {
|
|
92
|
+
const fullMessage = this.messageBuilder.assembleFullMessage();
|
|
93
|
+
// Show what's being sent
|
|
94
|
+
this.showSendingMessage(fullMessage);
|
|
95
|
+
// Send to AI
|
|
96
|
+
if (this.onInputCallback) {
|
|
97
|
+
this.onInputCallback(fullMessage);
|
|
98
|
+
}
|
|
99
|
+
// Reset for next input
|
|
100
|
+
this.messageBuilder.reset();
|
|
101
|
+
this.clearPastePreview();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// No content, just show prompt again
|
|
105
|
+
this.showPrompt();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Show preview of current paste operation
|
|
110
|
+
*/
|
|
111
|
+
showPastePreview(preview) {
|
|
112
|
+
// Clear current line and show preview
|
|
113
|
+
readline.clearLine(output, 0);
|
|
114
|
+
readline.cursorTo(output, 0);
|
|
115
|
+
const previewText = theme.pastePreview(preview);
|
|
116
|
+
output.write(previewText);
|
|
117
|
+
// Move cursor to next line for continued input
|
|
118
|
+
output.write('\n');
|
|
119
|
+
this.showPrompt();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Clear paste preview
|
|
123
|
+
*/
|
|
124
|
+
clearPastePreview() {
|
|
125
|
+
readline.clearLine(output, 0);
|
|
126
|
+
readline.cursorTo(output, 0);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Show current message state (text + paste blocks)
|
|
130
|
+
*/
|
|
131
|
+
showCurrentMessageState() {
|
|
132
|
+
const pasteChips = this.messageBuilder.formatPasteChips();
|
|
133
|
+
const currentDraft = this.messageBuilder.getCurrentDraft();
|
|
134
|
+
this.clearPastePreview();
|
|
135
|
+
if (pasteChips) {
|
|
136
|
+
const chipsText = theme.pasteChips(pasteChips);
|
|
137
|
+
output.write(chipsText + ' ');
|
|
138
|
+
}
|
|
139
|
+
if (currentDraft) {
|
|
140
|
+
output.write(currentDraft);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Show message being sent to AI
|
|
145
|
+
*/
|
|
146
|
+
showSendingMessage(message) {
|
|
147
|
+
const lines = message.split('\n');
|
|
148
|
+
const lineCount = lines.length;
|
|
149
|
+
this.clearPastePreview();
|
|
150
|
+
if (lineCount > 1) {
|
|
151
|
+
const firstLine = lines[0] ?? '';
|
|
152
|
+
const preview = firstLine.slice(0, 50) + (firstLine.length > 50 ? '...' : '');
|
|
153
|
+
display.showSystemMessage(`📤 Sending ${lineCount} lines to AI: "${preview}"`);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
display.showSystemMessage(`📤 Sending message to AI`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Show the prompt
|
|
161
|
+
*/
|
|
162
|
+
showPrompt() {
|
|
163
|
+
this.currentPrompt = theme.prompt('> ');
|
|
164
|
+
this.rl.setPrompt(this.currentPrompt);
|
|
165
|
+
this.rl.prompt();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Handle shell close
|
|
169
|
+
*/
|
|
170
|
+
handleClose() {
|
|
171
|
+
this.disableBracketedPasteMode();
|
|
172
|
+
if (this.onExitCallback) {
|
|
173
|
+
this.onExitCallback();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Enable bracketed paste mode
|
|
178
|
+
*/
|
|
179
|
+
enableBracketedPasteMode() {
|
|
180
|
+
if (!input.isTTY || !output.isTTY) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
output.write(BRACKETED_PASTE_ENABLE);
|
|
185
|
+
this.bracketedPasteEnabled = true;
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
190
|
+
display.showWarning(`Unable to enable bracketed paste: ${message}`);
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Disable bracketed paste mode
|
|
196
|
+
*/
|
|
197
|
+
disableBracketedPasteMode() {
|
|
198
|
+
if (!this.bracketedPasteEnabled || !output.isTTY) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
output.write(BRACKETED_PASTE_DISABLE);
|
|
203
|
+
}
|
|
204
|
+
finally {
|
|
205
|
+
this.bracketedPasteEnabled = false;
|
|
206
|
+
this.pasteManager.reset();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Start the enhanced shell
|
|
211
|
+
*/
|
|
212
|
+
start() {
|
|
213
|
+
display.showSystemMessage('Enhanced interactive shell started with improved multi-line paste support');
|
|
214
|
+
this.showPrompt();
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Stop the shell
|
|
218
|
+
*/
|
|
219
|
+
stop() {
|
|
220
|
+
this.disableBracketedPasteMode();
|
|
221
|
+
this.rl.close();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Set callback for user input
|
|
225
|
+
*/
|
|
226
|
+
onInput(callback) {
|
|
227
|
+
this.onInputCallback = callback;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Set callback for shell exit
|
|
231
|
+
*/
|
|
232
|
+
onExit(callback) {
|
|
233
|
+
this.onExitCallback = callback;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Get current paste manager for debugging
|
|
237
|
+
*/
|
|
238
|
+
getPasteManager() {
|
|
239
|
+
return this.pasteManager;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Get current message builder for debugging
|
|
243
|
+
*/
|
|
244
|
+
getMessageBuilder() {
|
|
245
|
+
return this.messageBuilder;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=enhancedInteractiveShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhancedInteractiveShell.js","sourceRoot":"","sources":["../../src/shell/enhancedInteractiveShell.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,9 +136,12 @@ export declare class InteractiveShell {
|
|
|
136
136
|
private clearMultiLinePastePreview;
|
|
137
137
|
/**
|
|
138
138
|
* Capture any paste (single or multi-line) without immediately submitting it.
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
139
|
+
* All pastes are stored as composable blocks and shown as short descriptions.
|
|
140
|
+
* The full content is sent to the AI when the user presses Enter.
|
|
141
|
+
*
|
|
142
|
+
* Display format:
|
|
143
|
+
* - Single paste: "[📋 Pasted: 15 lines] "
|
|
144
|
+
* - Multiple pastes: "[📋 Pasted: 15 lines] [📋 Pasted: 50 lines] "
|
|
142
145
|
*/
|
|
143
146
|
private capturePaste;
|
|
144
147
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
|
|
@@ -707,7 +707,13 @@ export class InteractiveShell {
|
|
|
707
707
|
if (inputStream.isTTY && typeof inputStream.isRaw === 'boolean') {
|
|
708
708
|
const ttyStream = inputStream;
|
|
709
709
|
if (!ttyStream.isRaw) {
|
|
710
|
-
|
|
710
|
+
try {
|
|
711
|
+
ttyStream.setRawMode(true);
|
|
712
|
+
}
|
|
713
|
+
catch (err) {
|
|
714
|
+
// EIO errors can occur when terminal is in unusual state
|
|
715
|
+
// Safe to ignore - readline will still work in cooked mode
|
|
716
|
+
}
|
|
711
717
|
}
|
|
712
718
|
}
|
|
713
719
|
// Reattach keypress handler if it was removed
|
|
@@ -794,11 +800,14 @@ export class InteractiveShell {
|
|
|
794
800
|
}
|
|
795
801
|
/**
|
|
796
802
|
* Capture any paste (single or multi-line) without immediately submitting it.
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
*
|
|
803
|
+
* All pastes are stored as composable blocks and shown as short descriptions.
|
|
804
|
+
* The full content is sent to the AI when the user presses Enter.
|
|
805
|
+
*
|
|
806
|
+
* Display format:
|
|
807
|
+
* - Single paste: "[📋 Pasted: 15 lines] "
|
|
808
|
+
* - Multiple pastes: "[📋 Pasted: 15 lines] [📋 Pasted: 50 lines] "
|
|
800
809
|
*/
|
|
801
|
-
capturePaste(content,
|
|
810
|
+
capturePaste(content, _lineCount) {
|
|
802
811
|
this.resetBufferedInputLines();
|
|
803
812
|
// If we're in secret-input mode, directly process the paste as input
|
|
804
813
|
// This prevents issues where pasting an API key would get duplicated
|
|
@@ -816,50 +825,31 @@ export class InteractiveShell {
|
|
|
816
825
|
}
|
|
817
826
|
return;
|
|
818
827
|
}
|
|
819
|
-
//
|
|
820
|
-
|
|
821
|
-
if (isShortPaste) {
|
|
822
|
-
// For short pastes, display inline like normal typed text
|
|
823
|
-
// No composableMessage storage - just treat as typed input
|
|
824
|
-
// For 2-line pastes, join with a visual newline indicator
|
|
825
|
-
const displayContent = lineCount === 1
|
|
826
|
-
? content
|
|
827
|
-
: content.replace(/\n/g, ' ↵ '); // Visual newline indicator for 2-line pastes
|
|
828
|
-
// Clear any echoed content first
|
|
829
|
-
output.write('\r\x1b[K');
|
|
830
|
-
// IMPORTANT: When paste is captured via raw data handler, readline may have
|
|
831
|
-
// already processed the paste content. We need to REPLACE the buffer entirely,
|
|
832
|
-
// not append. Clear readline completely and set it fresh.
|
|
833
|
-
this.rl.write(null, { ctrl: true, name: 'u' }); // Clear line completely
|
|
834
|
-
// Set the display content directly - this replaces whatever readline had
|
|
835
|
-
this.rl.write(displayContent);
|
|
836
|
-
// Update persistent prompt display
|
|
837
|
-
this.persistentPrompt.updateInput(displayContent, displayContent.length);
|
|
838
|
-
// Re-prompt to show the inline content
|
|
839
|
-
this.rl.prompt(true);
|
|
840
|
-
return;
|
|
841
|
-
}
|
|
842
|
-
// For longer pastes (3+ lines), store as a composable block
|
|
828
|
+
// Store ALL pastes (including short ones) as composable blocks
|
|
829
|
+
// This ensures consistent behavior and avoids readline buffer issues
|
|
843
830
|
this.composableMessage.addPaste(content);
|
|
844
|
-
// Clear
|
|
831
|
+
// Clear any echoed content from terminal
|
|
845
832
|
output.write('\r\x1b[K');
|
|
846
|
-
// Build the paste
|
|
847
|
-
// Format: [Pasted
|
|
833
|
+
// Build the paste description to show inline with prompt
|
|
834
|
+
// Format: "[📋 Pasted: 15 lines] [📋 Pasted: 50 lines] "
|
|
848
835
|
const pasteChips = this.composableMessage.formatPasteChips();
|
|
849
836
|
// Update status bar with instructions
|
|
850
837
|
this.persistentPrompt.updateStatusBar({
|
|
851
838
|
message: 'Paste more, type text, or press Enter to send (/cancel to discard)',
|
|
852
839
|
});
|
|
853
|
-
//
|
|
854
|
-
//
|
|
840
|
+
// Clear readline buffer completely to avoid duplication issues
|
|
841
|
+
// Then show the paste chips in the prompt area without putting them in the buffer
|
|
842
|
+
this.rl.write(null, { ctrl: true, name: 'u' }); // Clear line completely
|
|
843
|
+
// Update persistent prompt display with paste chips
|
|
855
844
|
this.persistentPrompt.updateInput(`${pasteChips} `, pasteChips.length + 1);
|
|
856
|
-
//
|
|
857
|
-
//
|
|
845
|
+
// Reset readline's internal state to empty
|
|
846
|
+
// The paste chips are visual-only; actual content is in composableMessage
|
|
858
847
|
if (this.rl.line !== undefined) {
|
|
859
|
-
this.rl.line =
|
|
860
|
-
this.rl.cursor =
|
|
848
|
+
this.rl.line = '';
|
|
849
|
+
this.rl.cursor = 0;
|
|
861
850
|
}
|
|
862
|
-
|
|
851
|
+
// Re-prompt without preserving cursor (fresh start)
|
|
852
|
+
this.rl.prompt(false);
|
|
863
853
|
}
|
|
864
854
|
/**
|
|
865
855
|
* Update the status bar to reflect any pending composed message parts
|
|
@@ -979,15 +969,11 @@ export class InteractiveShell {
|
|
|
979
969
|
if (await this.handlePendingInteraction(trimmed)) {
|
|
980
970
|
return;
|
|
981
971
|
}
|
|
982
|
-
// If we have captured
|
|
972
|
+
// If we have captured paste blocks, respect control commands before assembling
|
|
983
973
|
if (this.composableMessage.hasContent()) {
|
|
984
|
-
//
|
|
985
|
-
//
|
|
986
|
-
const
|
|
987
|
-
let userText = trimmed;
|
|
988
|
-
if (chipsPrefix && trimmed.startsWith(chipsPrefix)) {
|
|
989
|
-
userText = trimmed.slice(chipsPrefix.length).trim();
|
|
990
|
-
}
|
|
974
|
+
// With the new paste handling, chips are visual-only and NOT in the readline buffer
|
|
975
|
+
// So userText is just the trimmed input directly (any text the user typed after pasting)
|
|
976
|
+
const userText = trimmed;
|
|
991
977
|
const lower = userText.toLowerCase();
|
|
992
978
|
// Control commands that should NOT consume the captured paste
|
|
993
979
|
if (lower === '/cancel' || lower === 'cancel') {
|