erosolar-cli 1.7.117 → 1.7.119

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 (36) hide show
  1. package/dist/core/agent.js +4 -4
  2. package/dist/core/agent.js.map +1 -1
  3. package/dist/shell/systemPrompt.d.ts.map +1 -1
  4. package/dist/shell/systemPrompt.js +3 -4
  5. package/dist/shell/systemPrompt.js.map +1 -1
  6. package/dist/tools/editTools.d.ts.map +1 -1
  7. package/dist/tools/editTools.js +29 -6
  8. package/dist/tools/editTools.js.map +1 -1
  9. package/dist/tools/fileTools.d.ts.map +1 -1
  10. package/dist/tools/fileTools.js +2 -126
  11. package/dist/tools/fileTools.js.map +1 -1
  12. package/dist/ui/EnhancedPinnedChatBox.d.ts +2 -0
  13. package/dist/ui/EnhancedPinnedChatBox.d.ts.map +1 -0
  14. package/dist/ui/EnhancedPinnedChatBox.js +3 -0
  15. package/dist/ui/EnhancedPinnedChatBox.js.map +1 -0
  16. package/dist/ui/persistentPrompt.d.ts +32 -2
  17. package/dist/ui/persistentPrompt.d.ts.map +1 -1
  18. package/dist/ui/persistentPrompt.js +231 -79
  19. package/dist/ui/persistentPrompt.js.map +1 -1
  20. package/package.json +1 -1
  21. package/dist/shell/enhancedInteractiveShell.d.ts +0 -42
  22. package/dist/shell/enhancedInteractiveShell.d.ts.map +0 -1
  23. package/dist/shell/enhancedInteractiveShell.js +0 -139
  24. package/dist/shell/enhancedInteractiveShell.js.map +0 -1
  25. package/dist/shell/enhancedShellApp.d.ts +0 -22
  26. package/dist/shell/enhancedShellApp.d.ts.map +0 -1
  27. package/dist/shell/enhancedShellApp.js +0 -148
  28. package/dist/shell/enhancedShellApp.js.map +0 -1
  29. package/dist/ui/enhancedPinnedChatBox.d.ts +0 -93
  30. package/dist/ui/enhancedPinnedChatBox.d.ts.map +0 -1
  31. package/dist/ui/enhancedPinnedChatBox.js +0 -372
  32. package/dist/ui/enhancedPinnedChatBox.js.map +0 -1
  33. package/dist/ui/persistentChatBox.d.ts +0 -137
  34. package/dist/ui/persistentChatBox.d.ts.map +0 -1
  35. package/dist/ui/persistentChatBox.js +0 -298
  36. package/dist/ui/persistentChatBox.js.map +0 -1
@@ -1,298 +0,0 @@
1
- /**
2
- * Persistent Chat Box - Stays at bottom during AI streaming
3
- *
4
- * Features:
5
- * - Always visible at bottom of terminal
6
- * - Supports typing while AI is streaming
7
- * - Gracefully handles long pastes without errors
8
- * - Only submits to AI when user hits enter key
9
- * - Integrates with existing multiline paste handler
10
- */
11
- import readline from 'node:readline';
12
- import { stdin as input, stdout as output } from 'node:process';
13
- import { theme } from './theme.js';
14
- import { processPaste, isMultilinePaste } from '../core/multilinePasteHandler.js';
15
- import { display } from './display.js';
16
- export class PersistentChatBox {
17
- rl;
18
- config;
19
- state;
20
- onSubmit;
21
- onCancel;
22
- isActive = false;
23
- originalPrompt = '';
24
- pasteBuffer = '';
25
- pasteMode = false;
26
- constructor(onSubmit, onCancel, config = {}) {
27
- this.onSubmit = onSubmit;
28
- this.onCancel = onCancel;
29
- this.config = {
30
- enabled: true,
31
- position: 1,
32
- maxLines: 3,
33
- showPasteSummaries: true,
34
- autoScroll: true,
35
- ...config,
36
- };
37
- this.state = {
38
- input: '',
39
- isStreaming: false,
40
- isTyping: false,
41
- isPasteMode: false,
42
- cursorPosition: 0,
43
- history: [],
44
- historyIndex: -1,
45
- };
46
- // Create readline interface with custom prompt handling
47
- this.rl = readline.createInterface({
48
- input,
49
- output,
50
- prompt: '',
51
- terminal: true,
52
- historySize: 100,
53
- });
54
- this.setupEventHandlers();
55
- }
56
- /**
57
- * Setup readline event handlers
58
- */
59
- setupEventHandlers() {
60
- this.rl.on('line', (line) => {
61
- this.handleLineInput(line);
62
- });
63
- this.rl.on('close', () => {
64
- this.handleClose();
65
- });
66
- // Handle paste detection
67
- this.rl.input.on('data', (data) => {
68
- this.handleDataInput(data.toString());
69
- });
70
- // Handle keyboard shortcuts
71
- this.rl.input.on('keypress', (str, key) => {
72
- if (key.ctrl && key.name === 'c') {
73
- this.handleCancel();
74
- }
75
- else if (key.name === 'up') {
76
- this.handleHistoryUp();
77
- }
78
- else if (key.name === 'down') {
79
- this.handleHistoryDown();
80
- }
81
- });
82
- }
83
- /**
84
- * Handle line input (when user presses enter)
85
- */
86
- handleLineInput(line) {
87
- if (!this.isActive)
88
- return;
89
- const trimmed = line.trim();
90
- if (this.pasteMode) {
91
- // Handle paste completion
92
- this.handlePasteComplete(trimmed);
93
- }
94
- else if (trimmed.length > 0) {
95
- // Handle normal input
96
- this.handleNormalInput(trimmed);
97
- }
98
- else {
99
- // Empty input - just clear and reset
100
- this.clearInput();
101
- }
102
- }
103
- /**
104
- * Handle normal text input
105
- */
106
- handleNormalInput(text) {
107
- // Add to history
108
- if (this.state.history[0] !== text) {
109
- this.state.history.unshift(text);
110
- if (this.state.history.length > 100) {
111
- this.state.history.pop();
112
- }
113
- }
114
- // Submit to AI
115
- this.onSubmit(text);
116
- // Clear input
117
- this.clearInput();
118
- this.state.historyIndex = -1;
119
- }
120
- /**
121
- * Handle paste completion
122
- */
123
- handlePasteComplete(text) {
124
- const fullPaste = this.pasteBuffer + text;
125
- if (this.config.showPasteSummaries && isMultilinePaste(fullPaste)) {
126
- const processed = processPaste(fullPaste);
127
- display.showSystemMessage(processed.displaySummary);
128
- }
129
- // Submit the full paste content
130
- this.onSubmit(fullPaste);
131
- // Reset paste state
132
- this.pasteMode = false;
133
- this.pasteBuffer = '';
134
- this.clearInput();
135
- }
136
- /**
137
- * Handle raw data input for paste detection
138
- */
139
- handleDataInput(data) {
140
- if (!this.isActive)
141
- return;
142
- // Detect paste by checking for multiple lines or large content
143
- if (data.includes('\n') && data.length > 100) {
144
- this.pasteMode = true;
145
- this.pasteBuffer = data;
146
- // Show paste indicator
147
- this.updatePrompt('📋 Paste mode - Press Enter to submit or Ctrl+C to cancel');
148
- }
149
- }
150
- /**
151
- * Handle cancel (Ctrl+C)
152
- */
153
- handleCancel() {
154
- if (this.pasteMode) {
155
- // Cancel paste mode
156
- this.pasteMode = false;
157
- this.pasteBuffer = '';
158
- this.clearInput();
159
- display.showSystemMessage('Paste cancelled');
160
- }
161
- else {
162
- // Call cancel callback
163
- this.onCancel();
164
- }
165
- }
166
- /**
167
- * Handle close
168
- */
169
- handleClose() {
170
- this.isActive = false;
171
- }
172
- /**
173
- * Handle history navigation - up
174
- */
175
- handleHistoryUp() {
176
- if (this.state.history.length === 0)
177
- return;
178
- if (this.state.historyIndex < this.state.history.length - 1) {
179
- this.state.historyIndex++;
180
- const historyItem = this.state.history[this.state.historyIndex];
181
- this.setInput(historyItem);
182
- }
183
- }
184
- /**
185
- * Handle history navigation - down
186
- */
187
- handleHistoryDown() {
188
- if (this.state.historyIndex > 0) {
189
- this.state.historyIndex--;
190
- const historyItem = this.state.history[this.state.historyIndex];
191
- this.setInput(historyItem);
192
- }
193
- else if (this.state.historyIndex === 0) {
194
- this.state.historyIndex = -1;
195
- this.clearInput();
196
- }
197
- }
198
- /**
199
- * Update the readline prompt
200
- */
201
- updatePrompt(prompt) {
202
- this.rl.setPrompt(prompt);
203
- this.rl.prompt();
204
- }
205
- /**
206
- * Set input text
207
- */
208
- setInput(text) {
209
- this.state.input = text;
210
- this.state.cursorPosition = text.length;
211
- // Update the readline line
212
- this.rl.write('\x1B[2K\r'); // Clear line
213
- this.rl.write(text);
214
- }
215
- /**
216
- * Clear input
217
- */
218
- clearInput() {
219
- this.state.input = '';
220
- this.state.cursorPosition = 0;
221
- this.updatePrompt(this.getDefaultPrompt());
222
- }
223
- /**
224
- * Get default prompt based on streaming state
225
- */
226
- getDefaultPrompt() {
227
- if (this.state.isStreaming) {
228
- return `${theme.info('◉')} ${theme.ui.muted('Type while AI streams (Enter to send)')}: `;
229
- }
230
- else {
231
- return `${theme.success('>')} `;
232
- }
233
- }
234
- /**
235
- * Activate the chat box
236
- */
237
- activate() {
238
- if (this.isActive)
239
- return;
240
- this.isActive = true;
241
- this.clearInput();
242
- // Show initial prompt
243
- display.showSystemMessage('Persistent chat box activated - Type while AI streams, press Enter to send');
244
- }
245
- /**
246
- * Deactivate the chat box
247
- */
248
- deactivate() {
249
- this.isActive = false;
250
- this.rl.pause();
251
- }
252
- /**
253
- * Set streaming state
254
- */
255
- setStreaming(isStreaming) {
256
- this.state.isStreaming = isStreaming;
257
- if (this.isActive) {
258
- this.updatePrompt(this.getDefaultPrompt());
259
- }
260
- }
261
- /**
262
- * Add message to history
263
- */
264
- addToHistory(message) {
265
- if (message.trim() && this.state.history[0] !== message.trim()) {
266
- this.state.history.unshift(message.trim());
267
- if (this.state.history.length > 100) {
268
- this.state.history.pop();
269
- }
270
- }
271
- }
272
- /**
273
- * Get current state
274
- */
275
- getState() {
276
- return { ...this.state };
277
- }
278
- /**
279
- * Get config
280
- */
281
- getConfig() {
282
- return { ...this.config };
283
- }
284
- /**
285
- * Update config
286
- */
287
- updateConfig(config) {
288
- this.config = { ...this.config, ...config };
289
- }
290
- /**
291
- * Dispose of resources
292
- */
293
- dispose() {
294
- this.deactivate();
295
- this.rl.close();
296
- }
297
- }
298
- //# sourceMappingURL=PersistentChatBox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PersistentChatBox.js","sourceRoot":"","sources":["../../src/ui/PersistentChatBox.ts"],"names":[],"mappings":"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"}