erosolar-cli 2.1.265 → 2.1.266
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/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +51 -0
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/core/completeAttackOrchestrator.d.ts.map +1 -1
- package/dist/core/completeAttackOrchestrator.js +2 -1
- package/dist/core/completeAttackOrchestrator.js.map +1 -1
- package/dist/core/realExecutionOrchestrator.d.ts +93 -0
- package/dist/core/realExecutionOrchestrator.d.ts.map +1 -0
- package/dist/core/realExecutionOrchestrator.js +306 -0
- package/dist/core/realExecutionOrchestrator.js.map +1 -0
- package/dist/core/unifiedRealOrchestrator.d.ts +126 -0
- package/dist/core/unifiedRealOrchestrator.d.ts.map +1 -0
- package/dist/core/unifiedRealOrchestrator.js +381 -0
- package/dist/core/unifiedRealOrchestrator.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +5 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +25 -8
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +10 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +62 -22
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +1 -1
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +5 -26
- package/dist/ui/toolDisplay.js.map +1 -1
- package/package.json +1 -1
|
@@ -134,6 +134,16 @@ export declare class UnifiedUIRenderer extends EventEmitter {
|
|
|
134
134
|
private setupInputHandlers;
|
|
135
135
|
private emitInputChange;
|
|
136
136
|
private handleKeypress;
|
|
137
|
+
/**
|
|
138
|
+
* Ensure horizontal cursor position stays within the visible input window.
|
|
139
|
+
* Prevents jumps when using left/right arrows on long lines.
|
|
140
|
+
*/
|
|
141
|
+
private ensureCursorVisible;
|
|
142
|
+
/**
|
|
143
|
+
* Parse raw escape sequences when readline doesn't populate key metadata.
|
|
144
|
+
* Prevents control codes (e.g., ^[[200~) from leaking into the buffer.
|
|
145
|
+
*/
|
|
146
|
+
private parseEscapeSequence;
|
|
137
147
|
/**
|
|
138
148
|
* Queue characters for deferred insertion. This prevents visual "leak" of
|
|
139
149
|
* pasted content by holding characters until we're confident it's not a paste.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"UnifiedUIRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -316,36 +316,40 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
316
316
|
this.emit('change', payload);
|
|
317
317
|
}
|
|
318
318
|
handleKeypress(str, key) {
|
|
319
|
-
|
|
319
|
+
// Normalize missing key metadata (common for some terminals emitting raw escape codes)
|
|
320
|
+
const normalizedKey = key ?? this.parseEscapeSequence(str);
|
|
321
|
+
const keyForPaste = normalizedKey ?? (str ? { sequence: str } : key);
|
|
322
|
+
if (this.handleBracketedPaste(str, keyForPaste)) {
|
|
320
323
|
return;
|
|
321
|
-
|
|
324
|
+
}
|
|
325
|
+
if (this.handlePlainPaste(str, keyForPaste)) {
|
|
322
326
|
return;
|
|
323
327
|
}
|
|
324
|
-
if (
|
|
328
|
+
if (!normalizedKey) {
|
|
325
329
|
return;
|
|
326
330
|
}
|
|
327
|
-
if (this.inputCapture &&
|
|
331
|
+
if (this.inputCapture && normalizedKey.ctrl && (normalizedKey.name === 'c' || normalizedKey.name === 'd')) {
|
|
328
332
|
this.cancelInputCapture(new Error('Input capture cancelled'));
|
|
329
333
|
this.clearBuffer();
|
|
330
334
|
return;
|
|
331
335
|
}
|
|
332
|
-
if (
|
|
336
|
+
if (normalizedKey.ctrl && normalizedKey.shift && normalizedKey.name?.toLowerCase() === 'a') {
|
|
333
337
|
this.emit('toggle-critical-approval');
|
|
334
338
|
return;
|
|
335
339
|
}
|
|
336
|
-
if (
|
|
340
|
+
if (normalizedKey.ctrl && normalizedKey.shift && normalizedKey.name?.toLowerCase() === 'g') {
|
|
337
341
|
this.emit('toggle-auto-continue');
|
|
338
342
|
return;
|
|
339
343
|
}
|
|
340
|
-
if (
|
|
344
|
+
if (normalizedKey.ctrl && normalizedKey.shift && normalizedKey.name?.toLowerCase() === 'd') {
|
|
341
345
|
this.emit('toggle-dual-rl');
|
|
342
346
|
return;
|
|
343
347
|
}
|
|
344
|
-
if (
|
|
348
|
+
if (normalizedKey.ctrl && normalizedKey.name?.toLowerCase() === 'r') {
|
|
345
349
|
this.emit('resume');
|
|
346
350
|
return;
|
|
347
351
|
}
|
|
348
|
-
if (
|
|
352
|
+
if (normalizedKey.ctrl && normalizedKey.name === 'c') {
|
|
349
353
|
// Ctrl+C behavior:
|
|
350
354
|
// 1. If buffer has text: clear it first, then notify shell
|
|
351
355
|
// 2. If buffer is empty: let shell decide to pause AI or quit
|
|
@@ -404,7 +408,7 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
404
408
|
this.submitText(this.buffer);
|
|
405
409
|
return;
|
|
406
410
|
}
|
|
407
|
-
if (
|
|
411
|
+
if (normalizedKey.name === 'backspace') {
|
|
408
412
|
if (this.collapsedPaste) {
|
|
409
413
|
this.collapsedPaste = null;
|
|
410
414
|
this.renderPrompt();
|
|
@@ -420,7 +424,7 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
420
424
|
}
|
|
421
425
|
return;
|
|
422
426
|
}
|
|
423
|
-
if (
|
|
427
|
+
if (normalizedKey.name === 'delete') {
|
|
424
428
|
if (this.cursor < this.buffer.length) {
|
|
425
429
|
this.buffer = this.buffer.slice(0, this.cursor) + this.buffer.slice(this.cursor + 1);
|
|
426
430
|
this.updateSuggestions();
|
|
@@ -429,23 +433,25 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
429
433
|
}
|
|
430
434
|
return;
|
|
431
435
|
}
|
|
432
|
-
if (
|
|
436
|
+
if (normalizedKey.name === 'left') {
|
|
433
437
|
if (this.cursor > 0) {
|
|
434
438
|
this.cursor--;
|
|
439
|
+
this.ensureCursorVisible();
|
|
435
440
|
this.renderPrompt();
|
|
436
441
|
this.emitInputChange();
|
|
437
442
|
}
|
|
438
443
|
return;
|
|
439
444
|
}
|
|
440
|
-
if (
|
|
445
|
+
if (normalizedKey.name === 'right') {
|
|
441
446
|
if (this.cursor < this.buffer.length) {
|
|
442
447
|
this.cursor++;
|
|
448
|
+
this.ensureCursorVisible();
|
|
443
449
|
this.renderPrompt();
|
|
444
450
|
this.emitInputChange();
|
|
445
451
|
}
|
|
446
452
|
return;
|
|
447
453
|
}
|
|
448
|
-
if (
|
|
454
|
+
if (normalizedKey.name === 'up') {
|
|
449
455
|
if (this.navigateSuggestions(-1)) {
|
|
450
456
|
return;
|
|
451
457
|
}
|
|
@@ -472,7 +478,7 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
472
478
|
}
|
|
473
479
|
return;
|
|
474
480
|
}
|
|
475
|
-
if (
|
|
481
|
+
if (normalizedKey.name === 'down') {
|
|
476
482
|
if (this.navigateSuggestions(1)) {
|
|
477
483
|
return;
|
|
478
484
|
}
|
|
@@ -498,16 +504,51 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
498
504
|
}
|
|
499
505
|
return;
|
|
500
506
|
}
|
|
501
|
-
if (
|
|
507
|
+
if (normalizedKey.name === 'tab') {
|
|
502
508
|
if (this.applySuggestion(false))
|
|
503
509
|
return;
|
|
504
510
|
return;
|
|
505
511
|
}
|
|
506
|
-
if (str && !
|
|
512
|
+
if (str && !normalizedKey.ctrl && !normalizedKey.meta) {
|
|
507
513
|
// Defer insertion to allow paste detection window to catch rapid input
|
|
508
514
|
this.queuePendingInsert(str);
|
|
509
515
|
}
|
|
510
516
|
}
|
|
517
|
+
/**
|
|
518
|
+
* Ensure horizontal cursor position stays within the visible input window.
|
|
519
|
+
* Prevents jumps when using left/right arrows on long lines.
|
|
520
|
+
*/
|
|
521
|
+
ensureCursorVisible() {
|
|
522
|
+
const maxWidth = Math.max(10, this.safeWidth() - 12); // margin for prompt/toggles and padding
|
|
523
|
+
// If cursor is left of current window, shift window left
|
|
524
|
+
if (this.cursor < this.inputRenderOffset) {
|
|
525
|
+
this.inputRenderOffset = this.cursor;
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
// If cursor is beyond visible window, shift window right
|
|
529
|
+
if (this.cursor - this.inputRenderOffset >= maxWidth) {
|
|
530
|
+
this.inputRenderOffset = this.cursor - maxWidth + 1;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* Parse raw escape sequences when readline doesn't populate key metadata.
|
|
535
|
+
* Prevents control codes (e.g., ^[[200~) from leaking into the buffer.
|
|
536
|
+
*/
|
|
537
|
+
parseEscapeSequence(sequence) {
|
|
538
|
+
if (!sequence)
|
|
539
|
+
return null;
|
|
540
|
+
const map = {
|
|
541
|
+
'\x1b[A': { name: 'up', sequence },
|
|
542
|
+
'\x1b[B': { name: 'down', sequence },
|
|
543
|
+
'\x1b[C': { name: 'right', sequence },
|
|
544
|
+
'\x1b[D': { name: 'left', sequence },
|
|
545
|
+
'\x1b[H': { name: 'home', sequence },
|
|
546
|
+
'\x1b[F': { name: 'end', sequence },
|
|
547
|
+
'\x1b[200~': { name: 'paste-start', sequence },
|
|
548
|
+
'\x1b[201~': { name: 'paste-end', sequence },
|
|
549
|
+
};
|
|
550
|
+
return map[sequence] ?? null;
|
|
551
|
+
}
|
|
511
552
|
/**
|
|
512
553
|
* Queue characters for deferred insertion. This prevents visual "leak" of
|
|
513
554
|
* pasted content by holding characters until we're confident it's not a paste.
|
|
@@ -2162,7 +2203,7 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
2162
2203
|
// RL mode: 🤖 on [CTRL+SHIFT+D] — multi-agent loop
|
|
2163
2204
|
const rlOn = this.toggleState.dualRlEnabled;
|
|
2164
2205
|
const rlIcon = rlOn ? '🤖' : '⚡';
|
|
2165
|
-
const rlStatus = rlOn ? theme.success('on') : theme.ui.muted('off');
|
|
2206
|
+
const rlStatus = rlOn ? theme.success('RL on') : theme.ui.muted('RL off');
|
|
2166
2207
|
const rlExplain = rlOn ? 'multi-agent loop' : 'one-pass agent';
|
|
2167
2208
|
toggles.push(`${rlIcon} ${rlStatus} ${theme.ui.muted('[CTRL+SHIFT+D]')} ${theme.ui.muted('—')} ${theme.ui.muted(rlExplain)}`);
|
|
2168
2209
|
// Edit mode: ⏵⏵ accept/verify [SHIFT+TAB] — explanation
|
|
@@ -2182,10 +2223,9 @@ export class UnifiedUIRenderer extends EventEmitter {
|
|
|
2182
2223
|
const approvalsExplain = approvalMode === 'approval' ? 'prompt for all' : 'low-risk auto';
|
|
2183
2224
|
toggles.push(`${theme.ui.muted('approvals')} ${approvalsStatus} ${theme.ui.muted(`[${(this.toggleState.criticalApprovalHotkey || 'CTRL+SHIFT+A').toUpperCase()}]`)} ${theme.ui.muted('—')} ${theme.ui.muted(approvalsExplain)}`);
|
|
2184
2225
|
// Thinking: balanced/deep [TAB]
|
|
2185
|
-
const
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
const thinkingExplain = thinkingStatus.includes('deep') ? 'richer reasoning' : 'concise';
|
|
2226
|
+
const thinkingIsDeep = thinkingLabel === 'extended' || thinkingLabel === 'deep';
|
|
2227
|
+
const thinkingStatus = thinkingIsDeep ? theme.info('deep') : theme.ui.muted('balanced');
|
|
2228
|
+
const thinkingExplain = thinkingIsDeep ? 'richer reasoning' : 'concise';
|
|
2189
2229
|
toggles.push(`${theme.ui.muted('thinking')} ${thinkingStatus} ${theme.ui.muted(`[${(this.toggleState.thinkingHotkey || 'TAB').toUpperCase()}]`)} ${theme.ui.muted('—')} ${theme.ui.muted(thinkingExplain)}`);
|
|
2190
2230
|
const maxWidth = Math.max(10, this.safeWidth() - 2);
|
|
2191
2231
|
return this.wrapSegments(toggles, maxWidth);
|