aimux-cli 0.1.13 → 0.1.14
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/README.md +54 -0
- package/dist/agent-prompt-delivery.d.ts +31 -0
- package/dist/agent-prompt-delivery.js +119 -0
- package/dist/agent-prompt-delivery.js.map +1 -0
- package/dist/agent-tracker.js +4 -2
- package/dist/agent-tracker.js.map +1 -1
- package/dist/atomic-write.d.ts +1 -0
- package/dist/atomic-write.js +9 -0
- package/dist/atomic-write.js.map +1 -0
- package/dist/builtin-metadata-watchers.js +10 -6
- package/dist/builtin-metadata-watchers.js.map +1 -1
- package/dist/daemon.js +3 -6
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/index.d.ts +26 -15
- package/dist/dashboard/index.js +26 -56
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/operation-failures.d.ts +30 -0
- package/dist/dashboard/operation-failures.js +86 -0
- package/dist/dashboard/operation-failures.js.map +1 -0
- package/dist/dashboard/pending-actions.d.ts +9 -2
- package/dist/dashboard/pending-actions.js +66 -7
- package/dist/dashboard/pending-actions.js.map +1 -1
- package/dist/dashboard/quick-jump.d.ts +3 -1
- package/dist/dashboard/quick-jump.js +27 -8
- package/dist/dashboard/quick-jump.js.map +1 -1
- package/dist/dashboard/runtime-evidence.d.ts +4 -0
- package/dist/dashboard/runtime-evidence.js +22 -0
- package/dist/dashboard/runtime-evidence.js.map +1 -0
- package/dist/dashboard/session-actions.d.ts +1 -1
- package/dist/dashboard/session-actions.js +3 -1
- package/dist/dashboard/session-actions.js.map +1 -1
- package/dist/dashboard/session-registry.d.ts +1 -0
- package/dist/dashboard/session-registry.js +47 -30
- package/dist/dashboard/session-registry.js.map +1 -1
- package/dist/dashboard/state.d.ts +9 -0
- package/dist/dashboard/state.js +33 -1
- package/dist/dashboard/state.js.map +1 -1
- package/dist/dashboard/targets.js +11 -3
- package/dist/dashboard/targets.js.map +1 -1
- package/dist/dashboard/ui-state-store.d.ts +3 -3
- package/dist/dashboard/ui-state-store.js +23 -14
- package/dist/dashboard/ui-state-store.js.map +1 -1
- package/dist/default-plugins/gh-pr-context.d.ts +8 -0
- package/dist/default-plugins/gh-pr-context.js +256 -0
- package/dist/default-plugins/gh-pr-context.js.map +1 -0
- package/dist/default-plugins/transcript-length.d.ts +1 -0
- package/dist/default-plugins/transcript-length.js +10 -0
- package/dist/default-plugins/transcript-length.js.map +1 -1
- package/dist/fast-control.d.ts +8 -3
- package/dist/fast-control.js +13 -14
- package/dist/fast-control.js.map +1 -1
- package/dist/main.js +22 -35
- package/dist/main.js.map +1 -1
- package/dist/managed-launch-env.d.ts +10 -0
- package/dist/managed-launch-env.js +51 -0
- package/dist/managed-launch-env.js.map +1 -0
- package/dist/metadata-server.d.ts +41 -0
- package/dist/metadata-server.js +272 -15
- package/dist/metadata-server.js.map +1 -1
- package/dist/metadata-store.d.ts +1 -0
- package/dist/metadata-store.js +3 -5
- package/dist/metadata-store.js.map +1 -1
- package/dist/multiplexer/agent-io-methods.d.ts +1 -1
- package/dist/multiplexer/agent-io-methods.js +36 -29
- package/dist/multiplexer/agent-io-methods.js.map +1 -1
- package/dist/multiplexer/archives.d.ts +1 -0
- package/dist/multiplexer/archives.js +143 -25
- package/dist/multiplexer/archives.js.map +1 -1
- package/dist/multiplexer/dashboard-actions-methods.d.ts +10 -1
- package/dist/multiplexer/dashboard-actions-methods.js +16 -4
- package/dist/multiplexer/dashboard-actions-methods.js.map +1 -1
- package/dist/multiplexer/dashboard-control.d.ts +13 -1
- package/dist/multiplexer/dashboard-control.js +150 -121
- package/dist/multiplexer/dashboard-control.js.map +1 -1
- package/dist/multiplexer/dashboard-interaction.d.ts +2 -1
- package/dist/multiplexer/dashboard-interaction.js +175 -113
- package/dist/multiplexer/dashboard-interaction.js.map +1 -1
- package/dist/multiplexer/dashboard-model.d.ts +5 -1
- package/dist/multiplexer/dashboard-model.js +83 -8
- package/dist/multiplexer/dashboard-model.js.map +1 -1
- package/dist/multiplexer/dashboard-ops.d.ts +32 -1
- package/dist/multiplexer/dashboard-ops.js +517 -15
- package/dist/multiplexer/dashboard-ops.js.map +1 -1
- package/dist/multiplexer/dashboard-state-methods.d.ts +7 -0
- package/dist/multiplexer/dashboard-state-methods.js +79 -4
- package/dist/multiplexer/dashboard-state-methods.js.map +1 -1
- package/dist/multiplexer/dashboard-tail-methods.d.ts +12 -2
- package/dist/multiplexer/dashboard-tail-methods.js +18 -6
- package/dist/multiplexer/dashboard-tail-methods.js.map +1 -1
- package/dist/multiplexer/dashboard-view-methods.d.ts +3 -1
- package/dist/multiplexer/dashboard-view-methods.js +53 -38
- package/dist/multiplexer/dashboard-view-methods.js.map +1 -1
- package/dist/multiplexer/graveyard-view-model.d.ts +68 -0
- package/dist/multiplexer/graveyard-view-model.js +185 -0
- package/dist/multiplexer/graveyard-view-model.js.map +1 -0
- package/dist/multiplexer/index.d.ts +18 -11
- package/dist/multiplexer/index.js +30 -18
- package/dist/multiplexer/index.js.map +1 -1
- package/dist/multiplexer/navigation.d.ts +1 -1
- package/dist/multiplexer/navigation.js +31 -11
- package/dist/multiplexer/navigation.js.map +1 -1
- package/dist/multiplexer/notifications.d.ts +1 -0
- package/dist/multiplexer/notifications.js +27 -19
- package/dist/multiplexer/notifications.js.map +1 -1
- package/dist/multiplexer/persistence-methods.d.ts +16 -0
- package/dist/multiplexer/persistence-methods.js +349 -28
- package/dist/multiplexer/persistence-methods.js.map +1 -1
- package/dist/multiplexer/runtime-lifecycle-methods.js +81 -12
- package/dist/multiplexer/runtime-lifecycle-methods.js.map +1 -1
- package/dist/multiplexer/runtime-state.d.ts +6 -2
- package/dist/multiplexer/runtime-state.js +144 -23
- package/dist/multiplexer/runtime-state.js.map +1 -1
- package/dist/multiplexer/service-state-snapshot.d.ts +14 -0
- package/dist/multiplexer/service-state-snapshot.js +121 -0
- package/dist/multiplexer/service-state-snapshot.js.map +1 -0
- package/dist/multiplexer/services.d.ts +19 -1
- package/dist/multiplexer/services.js +114 -16
- package/dist/multiplexer/services.js.map +1 -1
- package/dist/multiplexer/session-actions.d.ts +3 -0
- package/dist/multiplexer/session-actions.js +10 -8
- package/dist/multiplexer/session-actions.js.map +1 -1
- package/dist/multiplexer/session-launch.d.ts +1 -1
- package/dist/multiplexer/session-launch.js +63 -22
- package/dist/multiplexer/session-launch.js.map +1 -1
- package/dist/multiplexer/session-runtime-core.d.ts +2 -1
- package/dist/multiplexer/session-runtime-core.js +107 -69
- package/dist/multiplexer/session-runtime-core.js.map +1 -1
- package/dist/multiplexer/subscreens.d.ts +1 -0
- package/dist/multiplexer/subscreens.js +17 -12
- package/dist/multiplexer/subscreens.js.map +1 -1
- package/dist/multiplexer/tool-picker.d.ts +6 -2
- package/dist/multiplexer/tool-picker.js +231 -81
- package/dist/multiplexer/tool-picker.js.map +1 -1
- package/dist/multiplexer/worktree-graveyard.d.ts +13 -0
- package/dist/multiplexer/worktree-graveyard.js +21 -0
- package/dist/multiplexer/worktree-graveyard.js.map +1 -0
- package/dist/multiplexer/worktrees.d.ts +1 -0
- package/dist/multiplexer/worktrees.js +151 -69
- package/dist/multiplexer/worktrees.js.map +1 -1
- package/dist/notification-context.js +9 -15
- package/dist/notification-context.js.map +1 -1
- package/dist/notifications.d.ts +22 -0
- package/dist/notifications.js +66 -11
- package/dist/notifications.js.map +1 -1
- package/dist/orchestration-actions.js +3 -3
- package/dist/orchestration-actions.js.map +1 -1
- package/dist/orchestration-dispatcher.d.ts +4 -3
- package/dist/orchestration-dispatcher.js +9 -7
- package/dist/orchestration-dispatcher.js.map +1 -1
- package/dist/orchestration-routing.d.ts +2 -2
- package/dist/orchestration-routing.js +3 -7
- package/dist/orchestration-routing.js.map +1 -1
- package/dist/paths.d.ts +3 -0
- package/dist/paths.js +9 -0
- package/dist/paths.js.map +1 -1
- package/dist/plugin-runtime.d.ts +5 -0
- package/dist/plugin-runtime.js +98 -34
- package/dist/plugin-runtime.js.map +1 -1
- package/dist/project-events.js +4 -2
- package/dist/project-events.js.map +1 -1
- package/dist/session-bootstrap.d.ts +0 -3
- package/dist/session-bootstrap.js +12 -104
- package/dist/session-bootstrap.js.map +1 -1
- package/dist/session-semantics.d.ts +44 -7
- package/dist/session-semantics.js +164 -69
- package/dist/session-semantics.js.map +1 -1
- package/dist/shell-args.d.ts +1 -0
- package/dist/shell-args.js +57 -0
- package/dist/shell-args.js.map +1 -0
- package/dist/shell-hooks.d.ts +3 -0
- package/dist/shell-hooks.js +19 -2
- package/dist/shell-hooks.js.map +1 -1
- package/dist/statusline-model.d.ts +5 -1
- package/dist/statusline-model.js +18 -29
- package/dist/statusline-model.js.map +1 -1
- package/dist/task-dispatcher.d.ts +3 -3
- package/dist/task-dispatcher.js +6 -5
- package/dist/task-dispatcher.js.map +1 -1
- package/dist/task-workflow.d.ts +2 -0
- package/dist/task-workflow.js +15 -6
- package/dist/task-workflow.js.map +1 -1
- package/dist/tasks.d.ts +4 -1
- package/dist/tasks.js +19 -1
- package/dist/tasks.js.map +1 -1
- package/dist/tmux/doctor.d.ts +1 -0
- package/dist/tmux/doctor.js +4 -1
- package/dist/tmux/doctor.js.map +1 -1
- package/dist/tmux/runtime-manager.d.ts +6 -0
- package/dist/tmux/runtime-manager.js +56 -18
- package/dist/tmux/runtime-manager.js.map +1 -1
- package/dist/tmux/statusline.js +17 -16
- package/dist/tmux/statusline.js.map +1 -1
- package/dist/tmux/window-open.d.ts +1 -0
- package/dist/tmux/window-open.js +10 -10
- package/dist/tmux/window-open.js.map +1 -1
- package/dist/tool-output-watchers.d.ts +2 -0
- package/dist/tool-output-watchers.js +123 -12
- package/dist/tool-output-watchers.js.map +1 -1
- package/dist/tui/screens/dashboard-renderers.d.ts +2 -21
- package/dist/tui/screens/dashboard-renderers.js +126 -32
- package/dist/tui/screens/dashboard-renderers.js.map +1 -1
- package/dist/tui/screens/overlay-renderers.d.ts +11 -1
- package/dist/tui/screens/overlay-renderers.js +68 -28
- package/dist/tui/screens/overlay-renderers.js.map +1 -1
- package/dist/tui/screens/subscreen-renderers.js +156 -33
- package/dist/tui/screens/subscreen-renderers.js.map +1 -1
- package/dist/workflow.js +2 -2
- package/dist/workflow.js.map +1 -1
- package/dist/worktree.d.ts +3 -0
- package/dist/worktree.js +27 -2
- package/dist/worktree.js.map +1 -1
- package/package.json +5 -1
|
@@ -9,9 +9,16 @@ export declare const dashboardStateMethods: {
|
|
|
9
9
|
isFocusInReport(this: any, data: Buffer): boolean;
|
|
10
10
|
handleDashboardFocusIn(this: any): void;
|
|
11
11
|
loadDashboardUiState(this: any): void;
|
|
12
|
+
hydrateDashboardScreenState(this: any): void;
|
|
12
13
|
persistDashboardUiState(this: any): void;
|
|
14
|
+
getDashboardUiClientKey(this: any): string;
|
|
15
|
+
isDashboardOverlay(this: any, kind: string): boolean;
|
|
16
|
+
openDashboardOverlay(this: any, kind: string): void;
|
|
17
|
+
clearDashboardOverlay(this: any): void;
|
|
18
|
+
reconcileDashboardRenderState(this: any): void;
|
|
13
19
|
restoreDashboardSelectionFromPreference(this: any, dashSessions: DashboardSession[], hasWorktrees: boolean): void;
|
|
14
20
|
writeFrame(this: any, output: string, force?: boolean): void;
|
|
21
|
+
redrawDashboardWithOverlay(this: any, force?: boolean): void;
|
|
15
22
|
getViewportSize(this: any): {
|
|
16
23
|
cols: number;
|
|
17
24
|
rows: number;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { openDashboardTarget } from "../dashboard/targets.js";
|
|
2
2
|
import { applyDashboardModel as applyDashboardModelImpl, buildDashboardWorktreeGroups as buildDashboardWorktreeGroupsImpl, buildDesktopStateSnapshot as buildDesktopStateSnapshotImpl, computeDashboardServices as computeDashboardServicesImpl, computeDashboardSessions as computeDashboardSessionsImpl, invalidateDesktopStateSnapshot as invalidateDesktopStateSnapshotImpl, readTmuxProcessInfo as readTmuxProcessInfoImpl, refreshDashboardModelFromService as refreshDashboardModelFromServiceImpl, refreshDesktopStateSnapshot as refreshDesktopStateSnapshotImpl, refreshLocalDashboardModel as refreshLocalDashboardModelImpl, startProjectServices as startProjectServicesImpl, } from "./dashboard-model.js";
|
|
3
|
+
import { hydrateDashboardArchiveScreenState } from "./archives.js";
|
|
4
|
+
import { hydrateDashboardNotificationScreenState } from "./notifications.js";
|
|
3
5
|
export const dashboardStateMethods = {
|
|
4
6
|
isTmuxBackend() {
|
|
5
7
|
return true;
|
|
@@ -9,6 +11,8 @@ export const dashboardStateMethods = {
|
|
|
9
11
|
},
|
|
10
12
|
invalidateDashboardFrame() {
|
|
11
13
|
this.lastRenderedFrame = null;
|
|
14
|
+
this.lastRenderedBaseFrame = null;
|
|
15
|
+
this.lastRenderedFrameKey = null;
|
|
12
16
|
},
|
|
13
17
|
getDashboardViewportTarget() {
|
|
14
18
|
const paneId = process.env.TMUX_PANE?.trim();
|
|
@@ -23,28 +27,99 @@ export const dashboardStateMethods = {
|
|
|
23
27
|
},
|
|
24
28
|
handleDashboardFocusIn() {
|
|
25
29
|
this.loadDashboardUiState();
|
|
30
|
+
this.hydrateDashboardScreenState?.();
|
|
31
|
+
this.writeDashboardClientStatuslineFile();
|
|
26
32
|
this.terminalHost.enterAlternateScreen();
|
|
27
33
|
this.invalidateDashboardFrame();
|
|
28
34
|
this.renderCurrentDashboardView();
|
|
29
35
|
this.tmuxRuntimeManager.refreshStatus();
|
|
30
36
|
},
|
|
31
37
|
loadDashboardUiState() {
|
|
32
|
-
this.dashboardUiStateStore.loadInto(this.dashboardState);
|
|
38
|
+
this.dashboardUiStateStore.loadInto(this.dashboardState, this.getDashboardUiClientKey());
|
|
39
|
+
},
|
|
40
|
+
hydrateDashboardScreenState() {
|
|
41
|
+
hydrateDashboardArchiveScreenState(this);
|
|
42
|
+
hydrateDashboardNotificationScreenState(this);
|
|
33
43
|
},
|
|
34
44
|
persistDashboardUiState() {
|
|
35
|
-
this.dashboardUiStateStore.persist(this.mode, this.dashboardState, this.activeIndex, this.getDashboardSessions());
|
|
45
|
+
this.dashboardUiStateStore.persist(this.mode, this.getDashboardUiClientKey(), this.dashboardState, this.activeIndex, this.getDashboardSessions());
|
|
46
|
+
},
|
|
47
|
+
getDashboardUiClientKey() {
|
|
48
|
+
try {
|
|
49
|
+
const sessionName = this.tmuxRuntimeManager?.currentClientSession?.()?.trim();
|
|
50
|
+
if (sessionName)
|
|
51
|
+
return sessionName.replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
52
|
+
}
|
|
53
|
+
catch { }
|
|
54
|
+
const paneId = process.env.TMUX_PANE?.trim();
|
|
55
|
+
if (paneId)
|
|
56
|
+
return `pane-${paneId.replace(/[^a-zA-Z0-9._-]/g, "_")}`;
|
|
57
|
+
return "standalone";
|
|
58
|
+
},
|
|
59
|
+
isDashboardOverlay(kind) {
|
|
60
|
+
return this.dashboardOverlayState.is(kind);
|
|
61
|
+
},
|
|
62
|
+
openDashboardOverlay(kind) {
|
|
63
|
+
this.dashboardOverlayState.open(kind);
|
|
64
|
+
},
|
|
65
|
+
clearDashboardOverlay() {
|
|
66
|
+
this.dashboardOverlayState.clear();
|
|
67
|
+
},
|
|
68
|
+
reconcileDashboardRenderState() {
|
|
69
|
+
const dashSessions = this.dashboardSessionsCache;
|
|
70
|
+
const worktreeGroups = this.dashboardWorktreeGroupsCache;
|
|
71
|
+
const hasWorktrees = worktreeGroups.length > 0;
|
|
72
|
+
this.dashboardState.worktreeNavOrder = worktreeGroups.map((wt) => wt.path);
|
|
73
|
+
if (!this.dashboardState.worktreeNavOrder.includes(this.dashboardState.focusedWorktreePath)) {
|
|
74
|
+
this.dashboardState.focusedWorktreePath = undefined;
|
|
75
|
+
this.dashboardUiStateStore.markSelectionDirty();
|
|
76
|
+
}
|
|
77
|
+
if (hasWorktrees) {
|
|
78
|
+
this.updateWorktreeSessions();
|
|
79
|
+
}
|
|
80
|
+
this.restoreDashboardSelectionFromPreference(dashSessions, hasWorktrees);
|
|
36
81
|
},
|
|
37
82
|
restoreDashboardSelectionFromPreference(dashSessions, hasWorktrees) {
|
|
38
|
-
this.dashboardUiStateStore.consumeSelectionRestore(this.dashboardState, dashSessions, hasWorktrees,
|
|
83
|
+
this.dashboardUiStateStore.consumeSelectionRestore(this.dashboardState, dashSessions, hasWorktrees, this.activeIndex, (value) => {
|
|
39
84
|
this.activeIndex = value;
|
|
40
85
|
});
|
|
41
86
|
},
|
|
42
87
|
writeFrame(output, force = false) {
|
|
88
|
+
if (this.mode === "dashboard") {
|
|
89
|
+
this.lastRenderedBaseFrame = output;
|
|
90
|
+
const overlayOutput = this.buildActiveDashboardOverlayOutput?.() ?? null;
|
|
91
|
+
const finalOutput = overlayOutput ? `${output}${overlayOutput}` : output;
|
|
92
|
+
const renderKey = [
|
|
93
|
+
this.getViewportKey(),
|
|
94
|
+
`model:${this.dashboardModelVersion ?? 0}`,
|
|
95
|
+
`pending:${this.dashboardPendingActions.getVersion?.() ?? 0}`,
|
|
96
|
+
`overlay:${this.dashboardOverlayState.version ?? 0}`,
|
|
97
|
+
`ui:${this.dashboardState.renderStateKey?.() ?? ""}`,
|
|
98
|
+
].join("|");
|
|
99
|
+
if (!force && this.lastRenderedFrameKey === renderKey && this.lastRenderedFrame === finalOutput)
|
|
100
|
+
return;
|
|
101
|
+
process.stdout.write(`\x1b[H\x1b[J${finalOutput}`);
|
|
102
|
+
this.lastRenderedFrame = finalOutput;
|
|
103
|
+
this.lastRenderedFrameKey = renderKey;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
43
106
|
if (!force && this.lastRenderedFrame === output)
|
|
44
107
|
return;
|
|
45
108
|
process.stdout.write(output);
|
|
46
109
|
this.lastRenderedFrame = output;
|
|
47
110
|
},
|
|
111
|
+
redrawDashboardWithOverlay(force = true) {
|
|
112
|
+
if (this.mode !== "dashboard") {
|
|
113
|
+
this.renderCurrentDashboardView();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const base = this.lastRenderedBaseFrame ?? this.lastRenderedFrame;
|
|
117
|
+
if (!base) {
|
|
118
|
+
this.renderCurrentDashboardView();
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this.writeFrame(base, force);
|
|
122
|
+
},
|
|
48
123
|
getViewportSize() {
|
|
49
124
|
const target = this.getDashboardViewportTarget();
|
|
50
125
|
try {
|
|
@@ -109,7 +184,7 @@ export const dashboardStateMethods = {
|
|
|
109
184
|
restoreDashboardAfterOverlayDismiss() {
|
|
110
185
|
this.invalidateDashboardFrame();
|
|
111
186
|
if (this.mode === "dashboard") {
|
|
112
|
-
this.
|
|
187
|
+
this.renderCurrentDashboardView();
|
|
113
188
|
}
|
|
114
189
|
else {
|
|
115
190
|
this.focusSession(this.activeIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-state-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-state-methods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,mBAAmB,IAAI,uBAAuB,EAC9C,4BAA4B,IAAI,gCAAgC,EAChE,yBAAyB,IAAI,6BAA6B,EAC1D,wBAAwB,IAAI,4BAA4B,EACxD,wBAAwB,IAAI,4BAA4B,EACxD,8BAA8B,IAAI,kCAAkC,EACpE,mBAAmB,IAAI,uBAAuB,EAC9C,gCAAgC,IAAI,oCAAoC,EACxE,2BAA2B,IAAI,+BAA+B,EAC9D,0BAA0B,IAAI,8BAA8B,EAC5D,oBAAoB,IAAI,wBAAwB,GACjD,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-state-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-state-methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,17 +7,21 @@ export type DashboardTailMethods = {
|
|
|
7
7
|
forkAgent(this: Multiplexer, opts: {
|
|
8
8
|
sourceSessionId: string;
|
|
9
9
|
targetToolConfigKey: string;
|
|
10
|
+
targetSessionId?: string;
|
|
10
11
|
instruction?: string;
|
|
11
12
|
targetWorktreePath?: string;
|
|
12
13
|
open?: boolean;
|
|
14
|
+
extraArgs?: string[];
|
|
13
15
|
}): Promise<{
|
|
14
16
|
sessionId: string;
|
|
15
17
|
threadId: string;
|
|
16
18
|
}>;
|
|
17
19
|
spawnAgent(this: Multiplexer, opts: {
|
|
18
20
|
toolConfigKey: string;
|
|
21
|
+
targetSessionId?: string;
|
|
19
22
|
targetWorktreePath?: string;
|
|
20
23
|
open?: boolean;
|
|
24
|
+
extraArgs?: string[];
|
|
21
25
|
}): Promise<{
|
|
22
26
|
sessionId: string;
|
|
23
27
|
}>;
|
|
@@ -63,10 +67,12 @@ export type DashboardTailMethods = {
|
|
|
63
67
|
handleHelpKey(this: Multiplexer, data: Buffer): void;
|
|
64
68
|
renderSwitcher(this: Multiplexer): void;
|
|
65
69
|
handleSwitcherKey(this: Multiplexer, data: Buffer): void;
|
|
66
|
-
showMigratePicker(this: Multiplexer): void;
|
|
70
|
+
showMigratePicker(this: Multiplexer, sessionId?: string): void;
|
|
67
71
|
renderMigratePicker(this: Multiplexer): void;
|
|
68
72
|
runDashboardOperation<T>(this: Multiplexer, title: string, lines: string[], work: () => Promise<T> | T, errorTitle?: string): Promise<T | undefined>;
|
|
69
|
-
setPendingDashboardSessionAction(this: Multiplexer, sessionId: string, kind: PendingDashboardActionKind | null
|
|
73
|
+
setPendingDashboardSessionAction(this: Multiplexer, sessionId: string, kind: PendingDashboardActionKind | null, opts?: {
|
|
74
|
+
sessionSeed?: DashboardSession;
|
|
75
|
+
}): void;
|
|
70
76
|
stopSessionToOfflineWithFeedback(this: Multiplexer, session: SessionRuntime): Promise<void>;
|
|
71
77
|
clearDashboardSubscreens(this: Multiplexer): void;
|
|
72
78
|
renderSessionDetails(this: Multiplexer, session: DashboardSession | undefined, width: number, height: number): string[];
|
|
@@ -84,6 +90,10 @@ export type DashboardTailMethods = {
|
|
|
84
90
|
isBare: boolean;
|
|
85
91
|
}>;
|
|
86
92
|
graveyardSessionWithFeedback(this: Multiplexer, sessionId: string, hasWorktrees: boolean): Promise<void>;
|
|
93
|
+
resumeOfflineServiceWithFeedback(this: Multiplexer, service: Pick<DashboardService, "id" | "label">): Promise<void>;
|
|
94
|
+
createDashboardServiceWithFeedback(this: Multiplexer, commandLine: string, worktreePath?: string): Promise<void>;
|
|
95
|
+
stopDashboardServiceWithFeedback(this: Multiplexer, service: Pick<DashboardService, "id" | "label">): Promise<void>;
|
|
96
|
+
removeDashboardServiceWithFeedback(this: Multiplexer, service: Pick<DashboardService, "id" | "label">): Promise<void>;
|
|
87
97
|
resumeOfflineSessionWithFeedback(this: Multiplexer, session: SessionState): Promise<void>;
|
|
88
98
|
waitForSessionStart(this: Multiplexer, sessionId: string, timeoutMs?: number): Promise<boolean>;
|
|
89
99
|
dashboardSessionActionDeps(this: Multiplexer): ReturnType<typeof dashboardSessionActionDepsImpl>;
|
|
@@ -2,7 +2,7 @@ import { debug } from "../debug.js";
|
|
|
2
2
|
import { forkAgent as forkAgentImpl, migrateAgentSession as migrateAgentSessionImpl, renameAgent as renameAgentImpl, sendAgentToGraveyard as sendAgentToGraveyardImpl, spawnAgent as spawnAgentImpl, stopAgent as stopAgentImpl, } from "./session-actions.js";
|
|
3
3
|
import { buildPlanPreview as buildPlanPreviewImpl, handleGraveyardKey as handleGraveyardKeyImpl, handlePlansKey as handlePlansKeyImpl, loadPlanEntries as loadPlanEntriesImpl, openPlanInEditor as openPlanInEditorImpl, parsePlanFrontmatter as parsePlanFrontmatterImpl, renderGraveyard as renderGraveyardImpl, renderGraveyardDetailsForHost as renderGraveyardDetailsForHostImpl, renderPlanDetailsForHost as renderPlanDetailsForHostImpl, renderPlans as renderPlansImpl, resurrectGraveyardEntry as resurrectGraveyardEntryImpl, showGraveyard as showGraveyardImpl, showPlans as showPlansImpl, } from "./archives.js";
|
|
4
4
|
import { confirmSwitcher as confirmSwitcherImpl, dismissHelp as dismissHelpImpl, dismissSwitcher as dismissSwitcherImpl, getSwitcherList as getSwitcherListImpl, handleHelpKey as handleHelpKeyImpl, handleMigratePickerKey as handleMigratePickerKeyImpl, handleSwitcherKey as handleSwitcherKeyImpl, redrawCurrentView as redrawCurrentViewImpl, renderHelp as renderHelpImpl, renderMigratePicker as renderMigratePickerImpl, renderSwitcher as renderSwitcherImpl, resetSwitcherTimeout as resetSwitcherTimeoutImpl, showHelp as showHelpImpl, showMigratePicker as showMigratePickerImpl, showSwitcher as showSwitcherImpl, } from "./navigation.js";
|
|
5
|
-
import { basenameForHost, clearDashboardSubscreens as clearDashboardSubscreensImpl, composeSplitScreen as composeSplitScreenImpl, composeTwoPaneLines as composeTwoPaneLinesImpl, dashboardSessionActionDeps as dashboardSessionActionDepsImpl, graveyardSessionWithFeedback as graveyardSessionWithFeedbackImpl, migrateSessionWithFeedback as migrateSessionWithFeedbackImpl, renderSessionDetails as renderSessionDetailsImpl, resumeOfflineSessionWithFeedback as resumeOfflineSessionWithFeedbackImpl, runDashboardOperation as runDashboardOperationImpl, setPendingDashboardSessionAction as setPendingDashboardSessionActionImpl, stopSessionToOfflineWithFeedback as stopSessionToOfflineWithFeedbackImpl, takeoverFromDashEntryWithFeedback as takeoverFromDashEntryWithFeedbackImpl, truncateAnsiForHost, truncatePlainForHost, waitForSessionStartForHost, wrapKeyValueForHost, wrapTextForHost, } from "./dashboard-ops.js";
|
|
5
|
+
import { basenameForHost, clearDashboardSubscreens as clearDashboardSubscreensImpl, composeSplitScreen as composeSplitScreenImpl, composeTwoPaneLines as composeTwoPaneLinesImpl, createDashboardServiceWithFeedback as createDashboardServiceWithFeedbackImpl, dashboardSessionActionDeps as dashboardSessionActionDepsImpl, graveyardSessionWithFeedback as graveyardSessionWithFeedbackImpl, migrateSessionWithFeedback as migrateSessionWithFeedbackImpl, removeDashboardServiceWithFeedback as removeDashboardServiceWithFeedbackImpl, renderSessionDetails as renderSessionDetailsImpl, resumeOfflineServiceWithFeedback as resumeOfflineServiceWithFeedbackImpl, resumeOfflineSessionWithFeedback as resumeOfflineSessionWithFeedbackImpl, runDashboardOperation as runDashboardOperationImpl, setPendingDashboardSessionAction as setPendingDashboardSessionActionImpl, stopDashboardServiceWithFeedback as stopDashboardServiceWithFeedbackImpl, stopSessionToOfflineWithFeedback as stopSessionToOfflineWithFeedbackImpl, takeoverFromDashEntryWithFeedback as takeoverFromDashEntryWithFeedbackImpl, truncateAnsiForHost, truncatePlainForHost, waitForSessionStartForHost, wrapKeyValueForHost, wrapTextForHost, } from "./dashboard-ops.js";
|
|
6
6
|
import { findMainRepo, listWorktrees as listAllWorktrees } from "../worktree.js";
|
|
7
7
|
import { orderDashboardSessionsByVisualWorktree } from "../dashboard/session-registry.js";
|
|
8
8
|
import { loadConfig } from "../config.js";
|
|
@@ -100,8 +100,8 @@ export const dashboardTailMethods = {
|
|
|
100
100
|
handleSwitcherKey(data) {
|
|
101
101
|
handleSwitcherKeyImpl(this, data);
|
|
102
102
|
},
|
|
103
|
-
showMigratePicker() {
|
|
104
|
-
showMigratePickerImpl(this);
|
|
103
|
+
showMigratePicker(sessionId) {
|
|
104
|
+
showMigratePickerImpl(this, sessionId);
|
|
105
105
|
},
|
|
106
106
|
renderMigratePicker() {
|
|
107
107
|
renderMigratePickerImpl(this);
|
|
@@ -109,8 +109,8 @@ export const dashboardTailMethods = {
|
|
|
109
109
|
async runDashboardOperation(title, lines, work, errorTitle = title) {
|
|
110
110
|
return runDashboardOperationImpl(this, title, lines, work, errorTitle);
|
|
111
111
|
},
|
|
112
|
-
setPendingDashboardSessionAction(sessionId, kind) {
|
|
113
|
-
setPendingDashboardSessionActionImpl(this, sessionId, kind);
|
|
112
|
+
setPendingDashboardSessionAction(sessionId, kind, opts) {
|
|
113
|
+
setPendingDashboardSessionActionImpl(this, sessionId, kind, opts);
|
|
114
114
|
},
|
|
115
115
|
async stopSessionToOfflineWithFeedback(session) {
|
|
116
116
|
await stopSessionToOfflineWithFeedbackImpl(this, session);
|
|
@@ -148,6 +148,18 @@ export const dashboardTailMethods = {
|
|
|
148
148
|
async graveyardSessionWithFeedback(sessionId, hasWorktrees) {
|
|
149
149
|
await graveyardSessionWithFeedbackImpl(this, sessionId, hasWorktrees);
|
|
150
150
|
},
|
|
151
|
+
async resumeOfflineServiceWithFeedback(service) {
|
|
152
|
+
await resumeOfflineServiceWithFeedbackImpl(this, service);
|
|
153
|
+
},
|
|
154
|
+
async createDashboardServiceWithFeedback(commandLine, worktreePath) {
|
|
155
|
+
await createDashboardServiceWithFeedbackImpl(this, commandLine, worktreePath);
|
|
156
|
+
},
|
|
157
|
+
async stopDashboardServiceWithFeedback(service) {
|
|
158
|
+
await stopDashboardServiceWithFeedbackImpl(this, service);
|
|
159
|
+
},
|
|
160
|
+
async removeDashboardServiceWithFeedback(service) {
|
|
161
|
+
await removeDashboardServiceWithFeedbackImpl(this, service);
|
|
162
|
+
},
|
|
151
163
|
async resumeOfflineSessionWithFeedback(session) {
|
|
152
164
|
await resumeOfflineSessionWithFeedbackImpl(this, session);
|
|
153
165
|
},
|
|
@@ -245,7 +257,7 @@ export const dashboardTailMethods = {
|
|
|
245
257
|
const resumeArgs = toolCfg.resumeArgs.map((a) => a.replace("{sessionId}", target.backendSessionId));
|
|
246
258
|
const args = mux.sessionBootstrap.composeToolArgs(toolCfg, resumeArgs);
|
|
247
259
|
debug(`taking over session ${target.id} (backend=${target.backendSessionId}) from instance ${target.fromInstanceId}`, "instance");
|
|
248
|
-
this.createSession(target.tool, args, toolCfg.preambleFlag, toolConfigKey, undefined, undefined, claimed.worktreePath, target.backendSessionId);
|
|
260
|
+
this.createSession(target.tool, args, toolCfg.preambleFlag, toolConfigKey, undefined, undefined, claimed.worktreePath, target.backendSessionId, undefined, false, true);
|
|
249
261
|
this.renderDashboard();
|
|
250
262
|
},
|
|
251
263
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-tail-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-tail-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EACL,SAAS,IAAI,aAAa,EAC1B,mBAAmB,IAAI,uBAAuB,EAC9C,WAAW,IAAI,eAAe,EAC9B,oBAAoB,IAAI,wBAAwB,EAChD,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,IAAI,oBAAoB,EACxC,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,EACpC,eAAe,IAAI,mBAAmB,EACtC,gBAAgB,IAAI,oBAAoB,EACxC,oBAAoB,IAAI,wBAAwB,EAChD,eAAe,IAAI,mBAAmB,EACtC,6BAA6B,IAAI,iCAAiC,EAClE,wBAAwB,IAAI,4BAA4B,EACxD,WAAW,IAAI,eAAe,EAC9B,uBAAuB,IAAI,2BAA2B,EACtD,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,WAAW,IAAI,eAAe,EAC9B,eAAe,IAAI,mBAAmB,EACtC,eAAe,IAAI,mBAAmB,EACtC,aAAa,IAAI,iBAAiB,EAClC,sBAAsB,IAAI,0BAA0B,EACpD,iBAAiB,IAAI,qBAAqB,EAC1C,iBAAiB,IAAI,qBAAqB,EAC1C,UAAU,IAAI,cAAc,EAC5B,mBAAmB,IAAI,uBAAuB,EAC9C,cAAc,IAAI,kBAAkB,EACpC,oBAAoB,IAAI,wBAAwB,EAChD,QAAQ,IAAI,YAAY,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,wBAAwB,IAAI,4BAA4B,EACxD,kBAAkB,IAAI,sBAAsB,EAC5C,mBAAmB,IAAI,uBAAuB,EAC9C,0BAA0B,IAAI,8BAA8B,EAC5D,4BAA4B,IAAI,gCAAgC,EAChE,0BAA0B,IAAI,8BAA8B,EAC5D,oBAAoB,IAAI,wBAAwB,EAChD,gCAAgC,IAAI,oCAAoC,EACxE,qBAAqB,IAAI,yBAAyB,EAClD,gCAAgC,IAAI,oCAAoC,EACxE,gCAAgC,IAAI,oCAAoC,EACxE,iCAAiC,IAAI,qCAAqC,EAC1E,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard-tail-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-tail-methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ export declare const dashboardViewMethods: {
|
|
|
3
3
|
generateDashboardSessionId(this: any, command: string): string;
|
|
4
4
|
settleDashboardCreatePending(this: any, itemId: string): void;
|
|
5
5
|
preferDashboardEntrySelection(this: any, kind: "session" | "service", id: string, worktreePath?: string): void;
|
|
6
|
-
createService(this: any, commandLine: string, worktreePath?: string
|
|
6
|
+
createService(this: any, commandLine: string, worktreePath?: string, opts?: {
|
|
7
|
+
serviceId?: string;
|
|
8
|
+
}): {
|
|
7
9
|
serviceId: string;
|
|
8
10
|
};
|
|
9
11
|
stopService(this: any, serviceId: string): {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { closeNotificationPanel as closeNotificationPanelImpl, handleNotificationPanelKey as handleNotificationPanelKeyImpl, showNotificationPanel as showNotificationPanelImpl, } from "./notifications.js";
|
|
2
2
|
import { beginWorktreeRemoval as beginWorktreeRemovalImpl, finishWorktreeRemoval as finishWorktreeRemovalImpl, handleWorktreeInputKey as handleWorktreeInputKeyImpl, handleWorktreeRemoveConfirmKey as handleWorktreeRemoveConfirmKeyImpl, handleWorktreeListKey as handleWorktreeListKeyImpl, renderWorktreeInput as renderWorktreeInputImpl, renderWorktreeList as renderWorktreeListImpl, renderWorktreeRemoveConfirm as renderWorktreeRemoveConfirmImpl, showWorktreeCreatePrompt as showWorktreeCreatePromptImpl, showWorktreeList as showWorktreeListImpl, } from "./worktrees.js";
|
|
3
3
|
import { createService as createServiceImpl, removeOfflineService as removeOfflineServiceImpl, resumeOfflineService as resumeOfflineServiceImpl, resumeOfflineServiceById as resumeOfflineServiceByIdImpl, serviceLabelForCommand as serviceLabelForCommandImpl, stopService as stopServiceImpl, } from "./services.js";
|
|
4
|
-
import {
|
|
4
|
+
import { derivedStatusLabel } from "../dashboard/index.js";
|
|
5
|
+
import { hasRuntimeEvidence, isAttachableDashboardSessionEntry } from "../dashboard/runtime-evidence.js";
|
|
5
6
|
export const dashboardViewMethods = {
|
|
6
7
|
serviceLabelForCommand(commandLine) {
|
|
7
8
|
return serviceLabelForCommandImpl(commandLine);
|
|
@@ -15,6 +16,26 @@ export const dashboardViewMethods = {
|
|
|
15
16
|
this.dashboardPendingActions.settleCreatePending(itemId, () => {
|
|
16
17
|
this.refreshLocalDashboardModel();
|
|
17
18
|
this.renderDashboard();
|
|
19
|
+
}, {
|
|
20
|
+
timeoutMs: itemId.startsWith("worktree:") ? 180_000 : undefined,
|
|
21
|
+
isSettled: async () => {
|
|
22
|
+
if (typeof this.refreshDashboardModelFromService === "function") {
|
|
23
|
+
await this.refreshDashboardModelFromService(true);
|
|
24
|
+
}
|
|
25
|
+
if (itemId.startsWith("worktree:")) {
|
|
26
|
+
const path = itemId.slice("worktree:".length);
|
|
27
|
+
const rawWorktree = this.listDesktopWorktrees?.().find((entry) => entry.path === path);
|
|
28
|
+
if (rawWorktree && rawWorktree.pending !== true && rawWorktree.pendingAction !== "creating")
|
|
29
|
+
return true;
|
|
30
|
+
const group = this.dashboardWorktreeGroupsCache?.find((entry) => entry.path === path);
|
|
31
|
+
return Boolean(group) && group.pendingAction !== "creating" && group.pending !== true;
|
|
32
|
+
}
|
|
33
|
+
const service = this.getDashboardServices?.().find((entry) => entry.id === itemId);
|
|
34
|
+
if (service)
|
|
35
|
+
return service.pendingAction !== "creating" || hasRuntimeEvidence(service);
|
|
36
|
+
const session = this.getDashboardSessions?.().find((entry) => entry.id === itemId);
|
|
37
|
+
return isAttachableDashboardSessionEntry(session);
|
|
38
|
+
},
|
|
18
39
|
});
|
|
19
40
|
},
|
|
20
41
|
preferDashboardEntrySelection(kind, id, worktreePath) {
|
|
@@ -22,8 +43,8 @@ export const dashboardViewMethods = {
|
|
|
22
43
|
return;
|
|
23
44
|
this.dashboardUiStateStore.preferEntrySelection(this.dashboardState, kind, id, worktreePath);
|
|
24
45
|
},
|
|
25
|
-
createService(commandLine, worktreePath) {
|
|
26
|
-
return createServiceImpl(this, commandLine, worktreePath);
|
|
46
|
+
createService(commandLine, worktreePath, opts) {
|
|
47
|
+
return createServiceImpl(this, commandLine, worktreePath, opts);
|
|
27
48
|
},
|
|
28
49
|
stopService(serviceId) {
|
|
29
50
|
return stopServiceImpl(this, serviceId);
|
|
@@ -55,12 +76,6 @@ export const dashboardViewMethods = {
|
|
|
55
76
|
const worktreeGroups = this.dashboardWorktreeGroupsCache;
|
|
56
77
|
const mainCheckoutInfo = this.dashboardMainCheckoutInfoCache;
|
|
57
78
|
const hasWorktrees = worktreeGroups.length > 0;
|
|
58
|
-
this.dashboardState.worktreeNavOrder = [undefined, ...worktreeGroups.map((wt) => wt.path)];
|
|
59
|
-
if (!this.dashboardState.worktreeNavOrder.includes(this.dashboardState.focusedWorktreePath)) {
|
|
60
|
-
this.dashboardState.focusedWorktreePath = undefined;
|
|
61
|
-
this.dashboardUiStateStore.markSelectionDirty();
|
|
62
|
-
}
|
|
63
|
-
this.restoreDashboardSelectionFromPreference(dashSessions, hasWorktrees);
|
|
64
79
|
let selectedSession;
|
|
65
80
|
let selectedService;
|
|
66
81
|
if (hasWorktrees && this.dashboardState.level === "sessions" && this.dashboardState.worktreeEntries.length > 0) {
|
|
@@ -73,25 +88,30 @@ export const dashboardViewMethods = {
|
|
|
73
88
|
else if (!hasWorktrees && dashSessions.length > 0) {
|
|
74
89
|
selectedSession = dashSessions[this.activeIndex]?.id;
|
|
75
90
|
}
|
|
76
|
-
this.dashboard.update(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
:
|
|
91
|
+
this.dashboard.update({
|
|
92
|
+
sessions: dashSessions,
|
|
93
|
+
services: dashServices,
|
|
94
|
+
worktreeGroups,
|
|
95
|
+
hasWorktrees,
|
|
96
|
+
focusedWorktreePath: this.dashboardState.focusedWorktreePath,
|
|
97
|
+
navLevel: hasWorktrees ? this.dashboardState.level : "sessions",
|
|
98
|
+
selectedSessionId: selectedSession,
|
|
99
|
+
selectedServiceId: selectedService,
|
|
100
|
+
runtimeLabel: "tmux",
|
|
101
|
+
mainCheckout: mainCheckoutInfo,
|
|
102
|
+
operationFailures: this.dashboardOperationFailuresCache ?? [],
|
|
103
|
+
worktreeRemoval: this.worktreeRemovalJob
|
|
104
|
+
? {
|
|
105
|
+
path: this.worktreeRemovalJob.path,
|
|
106
|
+
name: this.worktreeRemovalJob.name,
|
|
107
|
+
startedAt: this.worktreeRemovalJob.startedAt,
|
|
108
|
+
stderr: this.worktreeRemovalJob.stderr,
|
|
109
|
+
}
|
|
110
|
+
: undefined,
|
|
111
|
+
derivedStatusLabel,
|
|
112
|
+
});
|
|
84
113
|
this.syncTuiNotificationContext(Boolean(this.notificationPanelState));
|
|
85
114
|
this.writeFrame(this.dashboard.render(cols, rows));
|
|
86
|
-
if (!renderOptions?.skipPersist) {
|
|
87
|
-
this.persistDashboardUiState();
|
|
88
|
-
}
|
|
89
|
-
if (this.dashboardBusyState) {
|
|
90
|
-
this.renderDashboardBusyOverlay();
|
|
91
|
-
}
|
|
92
|
-
else if (this.dashboardErrorState) {
|
|
93
|
-
this.renderDashboardErrorOverlay();
|
|
94
|
-
}
|
|
95
115
|
}
|
|
96
116
|
catch (error) {
|
|
97
117
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -100,19 +120,14 @@ export const dashboardViewMethods = {
|
|
|
100
120
|
title: "Dashboard render failed",
|
|
101
121
|
lines: [message],
|
|
102
122
|
};
|
|
103
|
-
this.
|
|
104
|
-
process.stdout.write(this.lastRenderedFrame);
|
|
105
|
-
try {
|
|
106
|
-
this.renderDashboardErrorOverlay();
|
|
107
|
-
}
|
|
108
|
-
catch { }
|
|
123
|
+
this.writeFrame("\x1b[2J\x1b[H", true);
|
|
109
124
|
}
|
|
110
125
|
},
|
|
111
126
|
showWorktreeCreatePrompt() {
|
|
112
127
|
showWorktreeCreatePromptImpl(this);
|
|
113
128
|
},
|
|
114
129
|
showServiceCreatePrompt() {
|
|
115
|
-
this.
|
|
130
|
+
this.openDashboardOverlay("service-input");
|
|
116
131
|
this.serviceInputBuffer = "";
|
|
117
132
|
this.renderServiceInput();
|
|
118
133
|
},
|
|
@@ -120,13 +135,13 @@ export const dashboardViewMethods = {
|
|
|
120
135
|
renderWorktreeInputImpl(this);
|
|
121
136
|
},
|
|
122
137
|
renderServiceInput() {
|
|
123
|
-
|
|
138
|
+
this.redrawDashboardWithOverlay();
|
|
124
139
|
},
|
|
125
140
|
handleWorktreeInputKey(data) {
|
|
126
141
|
handleWorktreeInputKeyImpl(this, data);
|
|
127
142
|
},
|
|
128
143
|
renderLabelInput() {
|
|
129
|
-
|
|
144
|
+
this.redrawDashboardWithOverlay();
|
|
130
145
|
},
|
|
131
146
|
showWorktreeList() {
|
|
132
147
|
showWorktreeListImpl(this);
|
|
@@ -138,10 +153,10 @@ export const dashboardViewMethods = {
|
|
|
138
153
|
renderWorktreeRemoveConfirmImpl(this);
|
|
139
154
|
},
|
|
140
155
|
renderDashboardBusyOverlay() {
|
|
141
|
-
|
|
156
|
+
this.redrawDashboardWithOverlay();
|
|
142
157
|
},
|
|
143
158
|
renderDashboardErrorOverlay() {
|
|
144
|
-
|
|
159
|
+
this.redrawDashboardWithOverlay();
|
|
145
160
|
},
|
|
146
161
|
showNotificationPanel() {
|
|
147
162
|
showNotificationPanelImpl(this);
|
|
@@ -150,7 +165,7 @@ export const dashboardViewMethods = {
|
|
|
150
165
|
closeNotificationPanelImpl(this);
|
|
151
166
|
},
|
|
152
167
|
renderNotificationPanel() {
|
|
153
|
-
|
|
168
|
+
this.redrawDashboardWithOverlay();
|
|
154
169
|
},
|
|
155
170
|
handleNotificationPanelKey(data) {
|
|
156
171
|
handleNotificationPanelKeyImpl(this, data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-view-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-view-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,0BAA0B,IAAI,8BAA8B,EAC5D,qBAAqB,IAAI,yBAAyB,GACnD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,IAAI,wBAAwB,EAChD,qBAAqB,IAAI,yBAAyB,EAClD,sBAAsB,IAAI,0BAA0B,EACpD,8BAA8B,IAAI,kCAAkC,EACpE,qBAAqB,IAAI,yBAAyB,EAClD,mBAAmB,IAAI,uBAAuB,EAC9C,kBAAkB,IAAI,sBAAsB,EAC5C,2BAA2B,IAAI,+BAA+B,EAC9D,wBAAwB,IAAI,4BAA4B,EACxD,gBAAgB,IAAI,oBAAoB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,IAAI,iBAAiB,EAClC,oBAAoB,IAAI,wBAAwB,EAChD,oBAAoB,IAAI,wBAAwB,EAChD,wBAAwB,IAAI,4BAA4B,EACxD,sBAAsB,IAAI,0BAA0B,EACpD,WAAW,IAAI,eAAe,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"dashboard-view-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-view-methods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { LastUsedEntry } from "../last-used.js";
|
|
2
|
+
import type { ServiceState, SessionState } from "./index.js";
|
|
3
|
+
import type { WorktreeGraveyardEntry } from "./worktree-graveyard.js";
|
|
4
|
+
export declare const MAX_VISIBLE_ATTACHED_AGENTS_PER_WORKTREE = 5;
|
|
5
|
+
export type GraveyardAgentView = {
|
|
6
|
+
entry: SessionState;
|
|
7
|
+
lastUsedAt?: string;
|
|
8
|
+
source: "worktree" | "standalone";
|
|
9
|
+
};
|
|
10
|
+
export type GraveyardServiceView = {
|
|
11
|
+
entry: ServiceState;
|
|
12
|
+
lastUsedAt?: string;
|
|
13
|
+
};
|
|
14
|
+
export type GraveyardSectionRow = {
|
|
15
|
+
kind: "section";
|
|
16
|
+
label: string;
|
|
17
|
+
};
|
|
18
|
+
export type GraveyardAgentWorktreeRow = {
|
|
19
|
+
kind: "agent-worktree";
|
|
20
|
+
path: string;
|
|
21
|
+
name: string;
|
|
22
|
+
};
|
|
23
|
+
export type GraveyardWorktreeRow = {
|
|
24
|
+
kind: "worktree";
|
|
25
|
+
entry: WorktreeGraveyardEntry;
|
|
26
|
+
actionIndex: number;
|
|
27
|
+
actionNumber: number;
|
|
28
|
+
attachedAgents: GraveyardAgentView[];
|
|
29
|
+
visibleAttachedAgents: GraveyardAgentView[];
|
|
30
|
+
hiddenAttachedAgentCount: number;
|
|
31
|
+
attachedServices: GraveyardServiceView[];
|
|
32
|
+
lastUsedAt?: string;
|
|
33
|
+
sortAt?: string;
|
|
34
|
+
};
|
|
35
|
+
export type GraveyardAttachedAgentRow = {
|
|
36
|
+
kind: "attached-agent-display";
|
|
37
|
+
parentPath: string;
|
|
38
|
+
agent: GraveyardAgentView;
|
|
39
|
+
};
|
|
40
|
+
export type GraveyardAttachedServiceRow = {
|
|
41
|
+
kind: "attached-service-display";
|
|
42
|
+
parentPath: string;
|
|
43
|
+
service: GraveyardServiceView;
|
|
44
|
+
};
|
|
45
|
+
export type GraveyardAttachedMoreRow = {
|
|
46
|
+
kind: "attached-more-display";
|
|
47
|
+
parentPath: string;
|
|
48
|
+
hiddenAgentCount: number;
|
|
49
|
+
};
|
|
50
|
+
export type GraveyardStandaloneAgentRow = {
|
|
51
|
+
kind: "standalone-agent" | "orphan-agent";
|
|
52
|
+
entry: SessionState;
|
|
53
|
+
actionIndex: number;
|
|
54
|
+
actionNumber: number;
|
|
55
|
+
lastUsedAt?: string;
|
|
56
|
+
};
|
|
57
|
+
export type GraveyardViewRow = GraveyardSectionRow | GraveyardAgentWorktreeRow | GraveyardWorktreeRow | GraveyardAttachedAgentRow | GraveyardAttachedServiceRow | GraveyardAttachedMoreRow | GraveyardStandaloneAgentRow;
|
|
58
|
+
export type GraveyardSelectableRow = GraveyardWorktreeRow | GraveyardStandaloneAgentRow;
|
|
59
|
+
export interface GraveyardViewModel {
|
|
60
|
+
rows: GraveyardViewRow[];
|
|
61
|
+
selectableRows: GraveyardSelectableRow[];
|
|
62
|
+
}
|
|
63
|
+
export interface BuildGraveyardViewModelInput {
|
|
64
|
+
worktrees: WorktreeGraveyardEntry[];
|
|
65
|
+
agents: SessionState[];
|
|
66
|
+
lastUsedById?: Record<string, LastUsedEntry | undefined>;
|
|
67
|
+
}
|
|
68
|
+
export declare function buildGraveyardViewModel(input: BuildGraveyardViewModelInput): GraveyardViewModel;
|