erosolar-cli 1.7.166 → 1.7.167
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 +9 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +116 -1
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/editTools.d.ts.map +1 -1
- package/dist/tools/editTools.js +73 -13
- package/dist/tools/editTools.js.map +1 -1
- package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +1 -1
- package/dist/tools/enhancedCodeIntelligenceTools.js +160 -0
- package/dist/tools/enhancedCodeIntelligenceTools.js.map +1 -1
- package/dist/ui/display.d.ts +11 -0
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +22 -0
- package/dist/ui/display.js.map +1 -1
- package/package.json +1 -1
|
@@ -160,6 +160,15 @@ export declare class InteractiveShell {
|
|
|
160
160
|
* Update the status bar to reflect any pending composed message parts
|
|
161
161
|
*/
|
|
162
162
|
private updateComposeStatusSummary;
|
|
163
|
+
/**
|
|
164
|
+
* Show paste block editor (Ctrl+G)
|
|
165
|
+
* Allows viewing and editing captured paste blocks before sending
|
|
166
|
+
*/
|
|
167
|
+
private showPasteBlockEditor;
|
|
168
|
+
/**
|
|
169
|
+
* Handle paste block editor input
|
|
170
|
+
*/
|
|
171
|
+
private handlePasteEditInput;
|
|
163
172
|
private flushBufferedInput;
|
|
164
173
|
private refreshQueueIndicators;
|
|
165
174
|
private enqueueFollowUpAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAiCtE,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAQtF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA0BzD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,cAAc,CAAC;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,aAAa,EAAE,iBAAiB,CAAC;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,cAAc,EAAE,WAAW,CAAC;IAC5B,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
|
|
@@ -638,6 +638,11 @@ export class InteractiveShell {
|
|
|
638
638
|
}
|
|
639
639
|
// If no text in buffer, let default Ctrl+C behavior exit
|
|
640
640
|
}
|
|
641
|
+
// Ctrl+G: Edit pasted content blocks
|
|
642
|
+
if (key.ctrl && key.name === 'g') {
|
|
643
|
+
this.showPasteBlockEditor();
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
641
646
|
}
|
|
642
647
|
// Readline handles all keyboard input natively (history, shortcuts, etc.)
|
|
643
648
|
// We just sync the current state to our display components
|
|
@@ -1043,6 +1048,109 @@ export class InteractiveShell {
|
|
|
1043
1048
|
this.persistentPrompt.updateStatusBar({ message: undefined });
|
|
1044
1049
|
}
|
|
1045
1050
|
}
|
|
1051
|
+
/**
|
|
1052
|
+
* Show paste block editor (Ctrl+G)
|
|
1053
|
+
* Allows viewing and editing captured paste blocks before sending
|
|
1054
|
+
*/
|
|
1055
|
+
showPasteBlockEditor() {
|
|
1056
|
+
const state = this.composableMessage.getState();
|
|
1057
|
+
const pasteBlocks = state.parts.filter((p) => p.type === 'paste');
|
|
1058
|
+
if (pasteBlocks.length === 0) {
|
|
1059
|
+
display.showInfo('No pasted content blocks to edit. Paste some content first.');
|
|
1060
|
+
this.rl.prompt();
|
|
1061
|
+
return;
|
|
1062
|
+
}
|
|
1063
|
+
output.write('\n');
|
|
1064
|
+
display.showSystemMessage('Pasted Content Blocks:');
|
|
1065
|
+
output.write('\n');
|
|
1066
|
+
// Display each paste block with preview
|
|
1067
|
+
pasteBlocks.forEach((block, index) => {
|
|
1068
|
+
const lines = block.content.split('\n');
|
|
1069
|
+
const preview = lines.slice(0, 3).map((l) => ` ${l.slice(0, 60)}${l.length > 60 ? '...' : ''}`).join('\n');
|
|
1070
|
+
const moreLines = lines.length > 3 ? `\n ... +${lines.length - 3} more lines` : '';
|
|
1071
|
+
output.write(theme.ui.muted(`[${index + 1}] `) + theme.info(`${block.lineCount} lines, ${block.content.length} chars`) + '\n');
|
|
1072
|
+
output.write(theme.secondary(preview + moreLines) + '\n\n');
|
|
1073
|
+
});
|
|
1074
|
+
output.write(theme.ui.muted('Commands: ') + '\n');
|
|
1075
|
+
output.write(theme.ui.muted(' • Enter number to view full block') + '\n');
|
|
1076
|
+
output.write(theme.ui.muted(' • "remove N" to remove block N') + '\n');
|
|
1077
|
+
output.write(theme.ui.muted(' • "clear" to remove all blocks') + '\n');
|
|
1078
|
+
output.write(theme.ui.muted(' • Enter to return to prompt') + '\n');
|
|
1079
|
+
output.write('\n');
|
|
1080
|
+
// Set up interaction mode for paste editing
|
|
1081
|
+
this.pendingInteraction = { type: 'paste-edit' };
|
|
1082
|
+
this.rl.prompt();
|
|
1083
|
+
}
|
|
1084
|
+
/**
|
|
1085
|
+
* Handle paste block editor input
|
|
1086
|
+
*/
|
|
1087
|
+
async handlePasteEditInput(trimmedInput) {
|
|
1088
|
+
const trimmed = trimmedInput.toLowerCase();
|
|
1089
|
+
const state = this.composableMessage.getState();
|
|
1090
|
+
const pasteBlocks = state.parts.filter((p) => p.type === 'paste');
|
|
1091
|
+
if (!trimmed) {
|
|
1092
|
+
// Exit paste edit mode
|
|
1093
|
+
this.pendingInteraction = null;
|
|
1094
|
+
display.showInfo('Returned to prompt.');
|
|
1095
|
+
this.rl.prompt();
|
|
1096
|
+
return;
|
|
1097
|
+
}
|
|
1098
|
+
if (trimmed === 'clear') {
|
|
1099
|
+
this.composableMessage.clear();
|
|
1100
|
+
this.updateComposeStatusSummary();
|
|
1101
|
+
this.persistentPrompt.updateInput('', 0);
|
|
1102
|
+
this.rl.line = '';
|
|
1103
|
+
this.rl.cursor = 0;
|
|
1104
|
+
this.pendingInteraction = null;
|
|
1105
|
+
display.showInfo('Cleared all paste blocks.');
|
|
1106
|
+
this.rl.prompt();
|
|
1107
|
+
return;
|
|
1108
|
+
}
|
|
1109
|
+
// Handle "remove N" command
|
|
1110
|
+
const removeMatch = trimmed.match(/^remove\s+(\d+)$/);
|
|
1111
|
+
if (removeMatch) {
|
|
1112
|
+
const blockNum = parseInt(removeMatch[1], 10);
|
|
1113
|
+
if (blockNum >= 1 && blockNum <= pasteBlocks.length) {
|
|
1114
|
+
const block = pasteBlocks[blockNum - 1];
|
|
1115
|
+
if (block) {
|
|
1116
|
+
this.composableMessage.removePart(block.id);
|
|
1117
|
+
this.updateComposeStatusSummary();
|
|
1118
|
+
// Rebuild paste chips display
|
|
1119
|
+
const chips = this.composableMessage.formatPasteChips();
|
|
1120
|
+
this.persistentPrompt.updateInput(chips ? chips + ' ' : '', chips ? chips.length + 1 : 0);
|
|
1121
|
+
this.rl.line = chips ? chips + ' ' : '';
|
|
1122
|
+
this.rl.cursor = chips ? chips.length + 1 : 0;
|
|
1123
|
+
display.showInfo(`Removed block ${blockNum}.`);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
else {
|
|
1127
|
+
display.showWarning(`Invalid block number. Use 1-${pasteBlocks.length}.`);
|
|
1128
|
+
}
|
|
1129
|
+
this.rl.prompt();
|
|
1130
|
+
return;
|
|
1131
|
+
}
|
|
1132
|
+
// Handle viewing a block by number
|
|
1133
|
+
const blockNum = parseInt(trimmed, 10);
|
|
1134
|
+
if (!Number.isNaN(blockNum) && blockNum >= 1 && blockNum <= pasteBlocks.length) {
|
|
1135
|
+
const block = pasteBlocks[blockNum - 1];
|
|
1136
|
+
if (block) {
|
|
1137
|
+
output.write('\n');
|
|
1138
|
+
display.showSystemMessage(`Block ${blockNum} Content:`);
|
|
1139
|
+
output.write('\n');
|
|
1140
|
+
// Show full content with line numbers
|
|
1141
|
+
const lines = block.content.split('\n');
|
|
1142
|
+
lines.forEach((line, i) => {
|
|
1143
|
+
const lineNum = theme.ui.muted(`${String(i + 1).padStart(4)} │ `);
|
|
1144
|
+
output.write(lineNum + line + '\n');
|
|
1145
|
+
});
|
|
1146
|
+
output.write('\n');
|
|
1147
|
+
}
|
|
1148
|
+
this.rl.prompt();
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1151
|
+
display.showWarning('Enter a block number, "remove N", "clear", or press Enter to return.');
|
|
1152
|
+
this.rl.prompt();
|
|
1153
|
+
}
|
|
1046
1154
|
async flushBufferedInput() {
|
|
1047
1155
|
if (!this.bufferedInputLines.length) {
|
|
1048
1156
|
this.bufferedInputTimer = null;
|
|
@@ -1359,6 +1467,9 @@ export class InteractiveShell {
|
|
|
1359
1467
|
case 'agent-selection':
|
|
1360
1468
|
await this.handleAgentSelectionInput(input);
|
|
1361
1469
|
return true;
|
|
1470
|
+
case 'paste-edit':
|
|
1471
|
+
await this.handlePasteEditInput(input);
|
|
1472
|
+
return true;
|
|
1362
1473
|
default:
|
|
1363
1474
|
return false;
|
|
1364
1475
|
}
|
|
@@ -2523,7 +2634,9 @@ export class InteractiveShell {
|
|
|
2523
2634
|
try {
|
|
2524
2635
|
// Add visual separator between user prompt and AI response
|
|
2525
2636
|
display.newLine();
|
|
2526
|
-
|
|
2637
|
+
// Claude Code style: Show unified streaming header before response
|
|
2638
|
+
// This provides visual consistency with the startup Ready bar
|
|
2639
|
+
display.showStreamingHeader();
|
|
2527
2640
|
// Claude Code style: Start streaming mode using UnifiedChatBox
|
|
2528
2641
|
// - Output flows naturally to stdout (NO cursor manipulation)
|
|
2529
2642
|
// - User input is captured invisibly and queued
|
|
@@ -2611,6 +2724,8 @@ export class InteractiveShell {
|
|
|
2611
2724
|
display.showSystemMessage(`📊 Using intelligent task completion detection with AI verification.`);
|
|
2612
2725
|
this.uiAdapter.startProcessing('Continuous execution mode');
|
|
2613
2726
|
this.setProcessingStatus();
|
|
2727
|
+
// Claude Code style: Show unified streaming header before response
|
|
2728
|
+
display.showStreamingHeader();
|
|
2614
2729
|
// Claude Code style: Start streaming mode using UnifiedChatBox
|
|
2615
2730
|
// - Output flows naturally to stdout (NO cursor manipulation)
|
|
2616
2731
|
// - User input is captured invisibly and queued
|