erosolar-cli 1.7.202 → 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 +14 -55
- 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,21 +479,11 @@ export class InteractiveShell {
|
|
|
482
479
|
*/
|
|
483
480
|
updateStatusMessage(message) {
|
|
484
481
|
this.statusMessageOverride = message;
|
|
485
|
-
|
|
486
|
-
if
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
}
|
|
490
|
-
this.uiUpdates.enqueue({
|
|
491
|
-
lane: 'status',
|
|
492
|
-
description: message ? 'status-message' : 'clear-status-message',
|
|
493
|
-
coalesceKey: 'status:heartbeat',
|
|
494
|
-
priority: message ? 'high' : 'normal',
|
|
495
|
-
run: () => {
|
|
496
|
-
this.terminalInput.setStatusMessage(message);
|
|
497
|
-
this.terminalInput.render();
|
|
498
|
-
},
|
|
499
|
-
});
|
|
482
|
+
this.terminalInput.setStatusMessage(message);
|
|
483
|
+
// Only render if not actively streaming to avoid display corruption
|
|
484
|
+
if (!this.isProcessing) {
|
|
485
|
+
this.terminalInput.render();
|
|
486
|
+
}
|
|
500
487
|
}
|
|
501
488
|
async handleToolSettingsInput(input) {
|
|
502
489
|
const pending = this.pendingInteraction;
|
|
@@ -746,44 +733,16 @@ export class InteractiveShell {
|
|
|
746
733
|
this.uiUpdates.setMode('streaming');
|
|
747
734
|
this.streamingHeartbeatStart = Date.now();
|
|
748
735
|
this.streamingHeartbeatFrame = 0;
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
mode: 'streaming',
|
|
753
|
-
coalesceKey: 'status:heartbeat',
|
|
754
|
-
description: 'streaming-heartbeat',
|
|
755
|
-
intervalMs: 500,
|
|
756
|
-
run: () => {
|
|
757
|
-
if (this.statusMessageOverride) {
|
|
758
|
-
return;
|
|
759
|
-
}
|
|
760
|
-
const frame = frames[this.streamingHeartbeatFrame % frames.length];
|
|
761
|
-
this.streamingHeartbeatFrame += 1;
|
|
762
|
-
const elapsed = this.streamingHeartbeatStart
|
|
763
|
-
? Math.floor((Date.now() - this.streamingHeartbeatStart) / 1000)
|
|
764
|
-
: 0;
|
|
765
|
-
const suffix = elapsed > 0 ? ` • ${elapsed}s` : '';
|
|
766
|
-
this.terminalInput.setStatusMessage(`${frame} ${label}${suffix}`);
|
|
767
|
-
this.terminalInput.render();
|
|
768
|
-
},
|
|
769
|
-
});
|
|
736
|
+
// Show static status - no animation during streaming to avoid display races
|
|
737
|
+
// The streaming content itself indicates progress
|
|
738
|
+
this.terminalInput.setStatusMessage(`● ${label}`);
|
|
770
739
|
}
|
|
771
740
|
stopStreamingHeartbeat() {
|
|
772
741
|
this.uiUpdates.stopHeartbeat('streaming');
|
|
773
742
|
this.streamingHeartbeatStart = null;
|
|
774
743
|
this.streamingHeartbeatFrame = 0;
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
lane: 'status',
|
|
778
|
-
description: 'clear-streaming-heartbeat',
|
|
779
|
-
coalesceKey: 'status:heartbeat',
|
|
780
|
-
priority: 'low',
|
|
781
|
-
run: () => {
|
|
782
|
-
this.terminalInput.setStatusMessage(null);
|
|
783
|
-
this.terminalInput.render();
|
|
784
|
-
},
|
|
785
|
-
});
|
|
786
|
-
}
|
|
744
|
+
// Clear status message
|
|
745
|
+
this.terminalInput.setStatusMessage(null);
|
|
787
746
|
}
|
|
788
747
|
refreshQueueIndicators() {
|
|
789
748
|
if (this.isProcessing) {
|