erosolar-cli 1.7.203 → 1.7.204
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 +3 -4
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +13 -43
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/shellApp.d.ts.map +1 -1
- package/dist/shell/shellApp.js +9 -10
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +1 -0
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +10 -0
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/updateManager.d.ts +1 -0
- package/dist/shell/updateManager.d.ts.map +1 -1
- package/dist/shell/updateManager.js +50 -3
- package/dist/shell/updateManager.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +5 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +6 -0
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +6 -1
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +34 -9
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/unified/index.d.ts +39 -0
- package/dist/ui/unified/index.d.ts.map +1 -0
- package/dist/ui/unified/index.js +61 -0
- package/dist/ui/unified/index.js.map +1 -0
- package/dist/ui/writeLock.d.ts +65 -0
- package/dist/ui/writeLock.d.ts.map +1 -0
- package/dist/ui/writeLock.js +114 -0
- package/dist/ui/writeLock.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,8 +3,7 @@ import type { AgentProfileBlueprint } from '../core/agentProfiles.js';
|
|
|
3
3
|
import { AgentSession, type ModelSelection } from '../runtime/agentSession.js';
|
|
4
4
|
import { LiveStatusTracker } from './liveStatus.js';
|
|
5
5
|
import { type WorkspaceCaptureOptions } from '../workspace.js';
|
|
6
|
-
import {
|
|
7
|
-
import { UIUpdateCoordinator } from '../ui/orchestration/UIUpdateCoordinator.js';
|
|
6
|
+
import { UnifiedUiLayer } from '../ui/unified/index.js';
|
|
8
7
|
export interface ShellConfig {
|
|
9
8
|
profile: ProfileName;
|
|
10
9
|
profileLabel: string;
|
|
@@ -14,8 +13,7 @@ export interface ShellConfig {
|
|
|
14
13
|
initialModel: ModelSelection;
|
|
15
14
|
agentSelection?: AgentSelectionConfig;
|
|
16
15
|
statusTracker: LiveStatusTracker;
|
|
17
|
-
|
|
18
|
-
uiUpdates?: UIUpdateCoordinator;
|
|
16
|
+
ui: UnifiedUiLayer;
|
|
19
17
|
workspaceOptions: WorkspaceCaptureOptions;
|
|
20
18
|
sessionRestore?: SessionRestoreConfig;
|
|
21
19
|
enabledPlugins?: string[];
|
|
@@ -56,6 +54,7 @@ export declare class InteractiveShell {
|
|
|
56
54
|
private readonly slashCommands;
|
|
57
55
|
private bannerSessionState;
|
|
58
56
|
private readonly statusTracker;
|
|
57
|
+
private readonly ui;
|
|
59
58
|
private readonly uiAdapter;
|
|
60
59
|
private readonly uiUpdates;
|
|
61
60
|
private readonly _fileChangeTracker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"AAWA,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;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAyB,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,6 @@ import { formatShortcutsHelp } from '../ui/shortcutsHelp.js';
|
|
|
22
22
|
import { MetricsTracker } from '../alpha-zero/index.js';
|
|
23
23
|
import { listAvailablePlugins } from '../plugins/index.js';
|
|
24
24
|
import { TerminalInputAdapter } from './terminalInputAdapter.js';
|
|
25
|
-
import { UIUpdateCoordinator } from '../ui/orchestration/UIUpdateCoordinator.js';
|
|
26
25
|
const execAsync = promisify(exec);
|
|
27
26
|
const DROPDOWN_COLORS = [
|
|
28
27
|
theme.primary,
|
|
@@ -87,6 +86,7 @@ export class InteractiveShell {
|
|
|
87
86
|
slashCommands;
|
|
88
87
|
bannerSessionState = null;
|
|
89
88
|
statusTracker;
|
|
89
|
+
ui;
|
|
90
90
|
uiAdapter;
|
|
91
91
|
uiUpdates;
|
|
92
92
|
_fileChangeTracker = new FileChangeTracker(); // Reserved for future file tracking features
|
|
@@ -172,12 +172,9 @@ export class InteractiveShell {
|
|
|
172
172
|
description: 'Show available and loaded plugins',
|
|
173
173
|
});
|
|
174
174
|
this.statusTracker = config.statusTracker;
|
|
175
|
-
this.
|
|
176
|
-
this.
|
|
177
|
-
|
|
178
|
-
(typeof this.uiAdapter.getUpdateCoordinator === 'function'
|
|
179
|
-
? this.uiAdapter.getUpdateCoordinator()
|
|
180
|
-
: new UIUpdateCoordinator());
|
|
175
|
+
this.ui = config.ui;
|
|
176
|
+
this.uiAdapter = config.ui.adapter;
|
|
177
|
+
this.uiUpdates = config.ui.updates;
|
|
181
178
|
this.uiUpdates.setMode('idle');
|
|
182
179
|
// Set up file change tracking callback
|
|
183
180
|
this.uiAdapter.setFileChangeCallback((path, type, additions, removals) => {
|
|
@@ -482,18 +479,11 @@ export class InteractiveShell {
|
|
|
482
479
|
*/
|
|
483
480
|
updateStatusMessage(message) {
|
|
484
481
|
this.statusMessageOverride = message;
|
|
485
|
-
const heartbeatActive = this.uiUpdates.isHeartbeatActive('streaming');
|
|
486
|
-
if (heartbeatActive) {
|
|
487
|
-
// During streaming, use display.updateStreamingStatus() to avoid cursor races
|
|
488
|
-
if (message) {
|
|
489
|
-
display.updateStreamingStatus(message);
|
|
490
|
-
}
|
|
491
|
-
// If message is null, let the heartbeat resume control
|
|
492
|
-
return;
|
|
493
|
-
}
|
|
494
|
-
// When not streaming, use normal terminal input rendering
|
|
495
482
|
this.terminalInput.setStatusMessage(message);
|
|
496
|
-
|
|
483
|
+
// Only render if not actively streaming to avoid display corruption
|
|
484
|
+
if (!this.isProcessing) {
|
|
485
|
+
this.terminalInput.render();
|
|
486
|
+
}
|
|
497
487
|
}
|
|
498
488
|
async handleToolSettingsInput(input) {
|
|
499
489
|
const pending = this.pendingInteraction;
|
|
@@ -743,36 +733,16 @@ export class InteractiveShell {
|
|
|
743
733
|
this.uiUpdates.setMode('streaming');
|
|
744
734
|
this.streamingHeartbeatStart = Date.now();
|
|
745
735
|
this.streamingHeartbeatFrame = 0;
|
|
746
|
-
|
|
747
|
-
//
|
|
748
|
-
|
|
749
|
-
this.uiUpdates.startHeartbeat('streaming', {
|
|
750
|
-
lane: 'status',
|
|
751
|
-
mode: 'streaming',
|
|
752
|
-
coalesceKey: 'status:heartbeat',
|
|
753
|
-
description: 'streaming-heartbeat',
|
|
754
|
-
intervalMs: 500,
|
|
755
|
-
run: () => {
|
|
756
|
-
if (this.statusMessageOverride) {
|
|
757
|
-
return;
|
|
758
|
-
}
|
|
759
|
-
const frame = frames[this.streamingHeartbeatFrame % frames.length];
|
|
760
|
-
this.streamingHeartbeatFrame += 1;
|
|
761
|
-
const elapsed = this.streamingHeartbeatStart
|
|
762
|
-
? Math.floor((Date.now() - this.streamingHeartbeatStart) / 1000)
|
|
763
|
-
: 0;
|
|
764
|
-
const suffix = elapsed > 0 ? ` • ${elapsed}s` : '';
|
|
765
|
-
// Use display module's streaming status (avoids terminalInput.render() race)
|
|
766
|
-
display.updateStreamingStatus(`${frame} ${label}${suffix}`);
|
|
767
|
-
},
|
|
768
|
-
});
|
|
736
|
+
// Show static status - no animation during streaming to avoid display races
|
|
737
|
+
// The streaming content itself indicates progress
|
|
738
|
+
this.terminalInput.setStatusMessage(`● ${label}`);
|
|
769
739
|
}
|
|
770
740
|
stopStreamingHeartbeat() {
|
|
771
741
|
this.uiUpdates.stopHeartbeat('streaming');
|
|
772
742
|
this.streamingHeartbeatStart = null;
|
|
773
743
|
this.streamingHeartbeatFrame = 0;
|
|
774
|
-
// Clear
|
|
775
|
-
|
|
744
|
+
// Clear status message
|
|
745
|
+
this.terminalInput.setStatusMessage(null);
|
|
776
746
|
}
|
|
777
747
|
refreshQueueIndicators() {
|
|
778
748
|
if (this.isProcessing) {
|