aimux-cli 0.1.4 → 0.1.6

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 (166) hide show
  1. package/dist/builtin-metadata-watchers.js +1 -1
  2. package/dist/context/context-bridge.d.ts +1 -1
  3. package/dist/context/context-bridge.js +1 -1
  4. package/dist/dashboard/command-spec.d.ts +7 -0
  5. package/dist/dashboard/command-spec.js +127 -0
  6. package/dist/dashboard/command-spec.js.map +1 -0
  7. package/dist/{dashboard-feedback.js → dashboard/feedback.js} +1 -1
  8. package/dist/dashboard/feedback.js.map +1 -0
  9. package/dist/{dashboard.d.ts → dashboard/index.d.ts} +16 -5
  10. package/dist/{dashboard.js → dashboard/index.js} +7 -4
  11. package/dist/dashboard/index.js.map +1 -0
  12. package/dist/{dashboard-pending-actions.d.ts → dashboard/pending-actions.d.ts} +8 -3
  13. package/dist/dashboard/pending-actions.js +90 -0
  14. package/dist/dashboard/pending-actions.js.map +1 -0
  15. package/dist/{dashboard-session-actions.d.ts → dashboard/session-actions.d.ts} +2 -2
  16. package/dist/{dashboard-session-actions.js → dashboard/session-actions.js} +1 -1
  17. package/dist/dashboard/session-actions.js.map +1 -0
  18. package/dist/{dashboard-session-registry.d.ts → dashboard/session-registry.d.ts} +7 -7
  19. package/dist/{dashboard-session-registry.js → dashboard/session-registry.js} +2 -2
  20. package/dist/dashboard/session-registry.js.map +1 -0
  21. package/dist/{dashboard-state.d.ts → dashboard/state.d.ts} +1 -1
  22. package/dist/{dashboard-state.js → dashboard/state.js} +1 -1
  23. package/dist/dashboard/state.js.map +1 -0
  24. package/dist/{dashboard-targets.d.ts → dashboard/targets.d.ts} +1 -6
  25. package/dist/{dashboard-targets.js → dashboard/targets.js} +5 -123
  26. package/dist/dashboard/targets.js.map +1 -0
  27. package/dist/{dashboard-ui-state-store.d.ts → dashboard/ui-state-store.d.ts} +2 -2
  28. package/dist/{dashboard-ui-state-store.js → dashboard/ui-state-store.js} +2 -2
  29. package/dist/dashboard/ui-state-store.js.map +1 -0
  30. package/dist/fast-control.d.ts +1 -1
  31. package/dist/fast-control.js +1 -1
  32. package/dist/instance-directory.js +1 -1
  33. package/dist/main.js +27 -13
  34. package/dist/main.js.map +1 -1
  35. package/dist/metadata-server.js +4 -17
  36. package/dist/metadata-server.js.map +1 -1
  37. package/dist/multiplexer/agent-io-methods.d.ts +40 -0
  38. package/dist/multiplexer/agent-io-methods.js +177 -0
  39. package/dist/multiplexer/agent-io-methods.js.map +1 -0
  40. package/dist/multiplexer/archives.d.ts +15 -0
  41. package/dist/multiplexer/archives.js +270 -0
  42. package/dist/multiplexer/archives.js.map +1 -0
  43. package/dist/multiplexer/dashboard-actions-methods.d.ts +57 -0
  44. package/dist/multiplexer/dashboard-actions-methods.js +159 -0
  45. package/dist/multiplexer/dashboard-actions-methods.js.map +1 -0
  46. package/dist/multiplexer/dashboard-control.d.ts +36 -0
  47. package/dist/multiplexer/dashboard-control.js +571 -0
  48. package/dist/multiplexer/dashboard-control.js.map +1 -0
  49. package/dist/multiplexer/dashboard-interaction.d.ts +12 -0
  50. package/dist/multiplexer/dashboard-interaction.js +552 -0
  51. package/dist/multiplexer/dashboard-interaction.js.map +1 -0
  52. package/dist/multiplexer/dashboard-model.d.ts +40 -0
  53. package/dist/multiplexer/dashboard-model.js +420 -0
  54. package/dist/multiplexer/dashboard-model.js.map +1 -0
  55. package/dist/multiplexer/dashboard-ops.d.ts +35 -0
  56. package/dist/multiplexer/dashboard-ops.js +158 -0
  57. package/dist/multiplexer/dashboard-ops.js.map +1 -0
  58. package/dist/multiplexer/dashboard-state-methods.d.ts +56 -0
  59. package/dist/multiplexer/dashboard-state-methods.js +123 -0
  60. package/dist/multiplexer/dashboard-state-methods.js.map +1 -0
  61. package/dist/multiplexer/dashboard-tail-methods.d.ts +104 -0
  62. package/dist/multiplexer/dashboard-tail-methods.js +252 -0
  63. package/dist/multiplexer/dashboard-tail-methods.js.map +1 -0
  64. package/dist/multiplexer/dashboard-view-methods.d.ts +51 -0
  65. package/dist/multiplexer/dashboard-view-methods.js +159 -0
  66. package/dist/multiplexer/dashboard-view-methods.js.map +1 -0
  67. package/dist/multiplexer/index.d.ts +205 -0
  68. package/dist/multiplexer/index.js +444 -0
  69. package/dist/multiplexer/index.js.map +1 -0
  70. package/dist/multiplexer/navigation.d.ts +17 -0
  71. package/dist/multiplexer/navigation.js +203 -0
  72. package/dist/multiplexer/navigation.js.map +1 -0
  73. package/dist/multiplexer/notifications.d.ts +6 -0
  74. package/dist/multiplexer/notifications.js +75 -0
  75. package/dist/multiplexer/notifications.js.map +1 -0
  76. package/dist/multiplexer/persistence-methods.d.ts +77 -0
  77. package/dist/multiplexer/persistence-methods.js +347 -0
  78. package/dist/multiplexer/persistence-methods.js.map +1 -0
  79. package/dist/multiplexer/runtime-lifecycle-methods.d.ts +36 -0
  80. package/dist/multiplexer/runtime-lifecycle-methods.js +235 -0
  81. package/dist/multiplexer/runtime-lifecycle-methods.js.map +1 -0
  82. package/dist/multiplexer/runtime-state.d.ts +32 -0
  83. package/dist/multiplexer/runtime-state.js +439 -0
  84. package/dist/multiplexer/runtime-state.js.map +1 -0
  85. package/dist/{multiplexer-runtime-sync.d.ts → multiplexer/runtime-sync.d.ts} +2 -2
  86. package/dist/{multiplexer-runtime-sync.js → multiplexer/runtime-sync.js} +1 -1
  87. package/dist/multiplexer/runtime-sync.js.map +1 -0
  88. package/dist/multiplexer/services.d.ts +23 -0
  89. package/dist/multiplexer/services.js +187 -0
  90. package/dist/multiplexer/services.js.map +1 -0
  91. package/dist/multiplexer/session-actions.d.ts +36 -0
  92. package/dist/multiplexer/session-actions.js +108 -0
  93. package/dist/multiplexer/session-actions.js.map +1 -0
  94. package/dist/multiplexer/session-launch.d.ts +20 -0
  95. package/dist/multiplexer/session-launch.js +407 -0
  96. package/dist/multiplexer/session-launch.js.map +1 -0
  97. package/dist/multiplexer/session-runtime-core.d.ts +37 -0
  98. package/dist/multiplexer/session-runtime-core.js +400 -0
  99. package/dist/multiplexer/session-runtime-core.js.map +1 -0
  100. package/dist/multiplexer/subscreens.d.ts +30 -0
  101. package/dist/multiplexer/subscreens.js +685 -0
  102. package/dist/multiplexer/subscreens.js.map +1 -0
  103. package/dist/multiplexer/tool-picker.d.ts +8 -0
  104. package/dist/multiplexer/tool-picker.js +142 -0
  105. package/dist/multiplexer/tool-picker.js.map +1 -0
  106. package/dist/multiplexer/worktrees.d.ts +12 -0
  107. package/dist/multiplexer/worktrees.js +181 -0
  108. package/dist/multiplexer/worktrees.js.map +1 -0
  109. package/dist/notification-context.js +6 -1
  110. package/dist/notification-context.js.map +1 -1
  111. package/dist/notify.js +19 -1
  112. package/dist/notify.js.map +1 -1
  113. package/dist/project-events.d.ts +2 -0
  114. package/dist/project-events.js +1 -0
  115. package/dist/project-events.js.map +1 -1
  116. package/dist/project-scanner.d.ts +1 -1
  117. package/dist/project-scanner.js +1 -1
  118. package/dist/session-bootstrap.d.ts +1 -1
  119. package/dist/session-semantics.d.ts +1 -1
  120. package/dist/{tmux-doctor.d.ts → tmux/doctor.d.ts} +1 -1
  121. package/dist/{tmux-doctor.js → tmux/doctor.js} +4 -3
  122. package/dist/tmux/doctor.js.map +1 -0
  123. package/dist/{tmux-runtime-manager.d.ts → tmux/runtime-manager.d.ts} +3 -0
  124. package/dist/{tmux-runtime-manager.js → tmux/runtime-manager.js} +81 -17
  125. package/dist/tmux/runtime-manager.js.map +1 -0
  126. package/dist/{tmux-session-transport.d.ts → tmux/session-transport.d.ts} +2 -2
  127. package/dist/{tmux-session-transport.js → tmux/session-transport.js} +2 -2
  128. package/dist/tmux/session-transport.js.map +1 -0
  129. package/dist/{tmux-statusline.d.ts → tmux/statusline.d.ts} +1 -1
  130. package/dist/{tmux-statusline.js → tmux/statusline.js} +4 -4
  131. package/dist/tmux/statusline.js.map +1 -0
  132. package/dist/{tmux-switcher.js → tmux/switcher.js} +7 -7
  133. package/dist/tmux/switcher.js.map +1 -0
  134. package/dist/{tmux-window-open.d.ts → tmux/window-open.d.ts} +1 -1
  135. package/dist/{tmux-window-open.js → tmux/window-open.js} +1 -1
  136. package/dist/tmux/window-open.js.map +1 -0
  137. package/dist/tool-output-watchers.js +1 -1
  138. package/dist/tui/render/box.js +25 -6
  139. package/dist/tui/render/box.js.map +1 -1
  140. package/dist/tui/screens/dashboard-renderers.d.ts +3 -2
  141. package/dist/tui/screens/dashboard-renderers.js +17 -2
  142. package/dist/tui/screens/dashboard-renderers.js.map +1 -1
  143. package/dist/tui/screens/overlay-renderers.js +2 -2
  144. package/dist/tui/screens/overlay-renderers.js.map +1 -1
  145. package/package.json +1 -1
  146. package/dist/dashboard-feedback.js.map +0 -1
  147. package/dist/dashboard-pending-actions.js +0 -52
  148. package/dist/dashboard-pending-actions.js.map +0 -1
  149. package/dist/dashboard-session-actions.js.map +0 -1
  150. package/dist/dashboard-session-registry.js.map +0 -1
  151. package/dist/dashboard-state.js.map +0 -1
  152. package/dist/dashboard-targets.js.map +0 -1
  153. package/dist/dashboard-ui-state-store.js.map +0 -1
  154. package/dist/dashboard.js.map +0 -1
  155. package/dist/multiplexer-runtime-sync.js.map +0 -1
  156. package/dist/multiplexer.d.ts +0 -500
  157. package/dist/multiplexer.js +0 -6081
  158. package/dist/multiplexer.js.map +0 -1
  159. package/dist/tmux-doctor.js.map +0 -1
  160. package/dist/tmux-runtime-manager.js.map +0 -1
  161. package/dist/tmux-session-transport.js.map +0 -1
  162. package/dist/tmux-statusline.js.map +0 -1
  163. package/dist/tmux-switcher.js.map +0 -1
  164. package/dist/tmux-window-open.js.map +0 -1
  165. /package/dist/{dashboard-feedback.d.ts → dashboard/feedback.d.ts} +0 -0
  166. /package/dist/{tmux-switcher.d.ts → tmux/switcher.d.ts} +0 -0
@@ -0,0 +1,159 @@
1
+ import { closeNotificationPanel as closeNotificationPanelImpl, handleNotificationPanelKey as handleNotificationPanelKeyImpl, showNotificationPanel as showNotificationPanelImpl, } from "./notifications.js";
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
+ import { createService as createServiceImpl, removeOfflineService as removeOfflineServiceImpl, resumeOfflineService as resumeOfflineServiceImpl, resumeOfflineServiceById as resumeOfflineServiceByIdImpl, serviceLabelForCommand as serviceLabelForCommandImpl, stopService as stopServiceImpl, } from "./services.js";
4
+ import { renderDashboardBusyOverlay, renderDashboardErrorOverlay, renderLabelInputOverlay, renderNotificationPanel, renderServiceInputOverlay, } from "../tui/screens/overlay-renderers.js";
5
+ export const dashboardViewMethods = {
6
+ serviceLabelForCommand(commandLine) {
7
+ return serviceLabelForCommandImpl(commandLine);
8
+ },
9
+ generateDashboardSessionId(command) {
10
+ return `${command}-${Math.random().toString(36).slice(2, 8)}`;
11
+ },
12
+ settleDashboardCreatePending(itemId) {
13
+ if (!(this.startedInDashboard && this.mode === "dashboard"))
14
+ return;
15
+ this.dashboardPendingActions.settleCreatePending(itemId, () => {
16
+ this.refreshLocalDashboardModel();
17
+ this.renderDashboard();
18
+ });
19
+ },
20
+ preferDashboardEntrySelection(kind, id, worktreePath) {
21
+ if (!(this.startedInDashboard && this.mode === "dashboard"))
22
+ return;
23
+ this.dashboardUiStateStore.preferEntrySelection(this.dashboardState, kind, id, worktreePath);
24
+ },
25
+ createService(commandLine, worktreePath) {
26
+ return createServiceImpl(this, commandLine, worktreePath);
27
+ },
28
+ stopService(serviceId) {
29
+ return stopServiceImpl(this, serviceId);
30
+ },
31
+ removeOfflineService(serviceId) {
32
+ return removeOfflineServiceImpl(this, serviceId);
33
+ },
34
+ resumeOfflineService(service) {
35
+ return resumeOfflineServiceImpl(this, service);
36
+ },
37
+ resumeOfflineServiceById(serviceId) {
38
+ return resumeOfflineServiceByIdImpl(this, serviceId);
39
+ },
40
+ renderDashboard() {
41
+ this.writeStatuslineFile();
42
+ const { cols, rows } = this.getViewportSize();
43
+ const dashSessions = this.dashboardSessionsCache;
44
+ const dashServices = this.dashboardServicesCache;
45
+ const worktreeGroups = this.dashboardWorktreeGroupsCache;
46
+ const mainCheckoutInfo = this.dashboardMainCheckoutInfoCache;
47
+ const hasWorktrees = worktreeGroups.length > 0;
48
+ this.dashboardState.worktreeNavOrder = [undefined, ...worktreeGroups.map((wt) => wt.path)];
49
+ if (!this.dashboardState.worktreeNavOrder.includes(this.dashboardState.focusedWorktreePath)) {
50
+ this.dashboardState.focusedWorktreePath = undefined;
51
+ this.dashboardUiStateStore.markSelectionDirty();
52
+ }
53
+ this.restoreDashboardSelectionFromPreference(dashSessions, hasWorktrees);
54
+ let selectedSession;
55
+ let selectedService;
56
+ if (hasWorktrees && this.dashboardState.level === "sessions" && this.dashboardState.worktreeEntries.length > 0) {
57
+ const selectedEntry = this.dashboardState.worktreeEntries[this.dashboardState.sessionIndex];
58
+ if (selectedEntry?.kind === "session")
59
+ selectedSession = selectedEntry.id;
60
+ if (selectedEntry?.kind === "service")
61
+ selectedService = selectedEntry.id;
62
+ }
63
+ else if (!hasWorktrees && dashSessions.length > 0) {
64
+ selectedSession = dashSessions[this.activeIndex]?.id;
65
+ }
66
+ this.dashboard.update(dashSessions, dashServices, worktreeGroups, this.dashboardState.focusedWorktreePath, hasWorktrees ? this.dashboardState.level : "sessions", selectedSession, selectedService, "tmux", mainCheckoutInfo, this.worktreeRemovalJob
67
+ ? {
68
+ path: this.worktreeRemovalJob.path,
69
+ name: this.worktreeRemovalJob.name,
70
+ startedAt: this.worktreeRemovalJob.startedAt,
71
+ stderr: this.worktreeRemovalJob.stderr,
72
+ }
73
+ : undefined);
74
+ this.syncTuiNotificationContext(Boolean(this.notificationPanelState));
75
+ this.writeFrame(this.dashboard.render(cols, rows));
76
+ this.persistDashboardUiState();
77
+ if (this.dashboardBusyState) {
78
+ this.renderDashboardBusyOverlay();
79
+ }
80
+ else if (this.dashboardErrorState) {
81
+ this.renderDashboardErrorOverlay();
82
+ }
83
+ },
84
+ showWorktreeCreatePrompt() {
85
+ showWorktreeCreatePromptImpl(this);
86
+ },
87
+ showServiceCreatePrompt() {
88
+ this.serviceInputActive = true;
89
+ this.serviceInputBuffer = "";
90
+ this.renderServiceInput();
91
+ },
92
+ renderWorktreeInput() {
93
+ renderWorktreeInputImpl(this);
94
+ },
95
+ renderServiceInput() {
96
+ renderServiceInputOverlay(this);
97
+ },
98
+ handleWorktreeInputKey(data) {
99
+ handleWorktreeInputKeyImpl(this, data);
100
+ },
101
+ renderLabelInput() {
102
+ renderLabelInputOverlay(this);
103
+ },
104
+ showWorktreeList() {
105
+ showWorktreeListImpl(this);
106
+ },
107
+ renderWorktreeList() {
108
+ renderWorktreeListImpl(this);
109
+ },
110
+ renderWorktreeRemoveConfirm() {
111
+ renderWorktreeRemoveConfirmImpl(this);
112
+ },
113
+ renderDashboardBusyOverlay() {
114
+ renderDashboardBusyOverlay(this);
115
+ },
116
+ renderDashboardErrorOverlay() {
117
+ renderDashboardErrorOverlay(this);
118
+ },
119
+ showNotificationPanel() {
120
+ showNotificationPanelImpl(this);
121
+ },
122
+ closeNotificationPanel() {
123
+ closeNotificationPanelImpl(this);
124
+ },
125
+ renderNotificationPanel() {
126
+ renderNotificationPanel(this);
127
+ },
128
+ handleNotificationPanelKey(data) {
129
+ handleNotificationPanelKeyImpl(this, data);
130
+ },
131
+ startDashboardBusy(title, lines) {
132
+ this.dashboardFeedback.startBusy(title, lines);
133
+ },
134
+ updateDashboardBusy(lines) {
135
+ this.dashboardFeedback.updateBusy(lines);
136
+ },
137
+ clearDashboardBusy() {
138
+ this.dashboardFeedback.clearBusy();
139
+ },
140
+ showDashboardError(title, lines) {
141
+ this.dashboardFeedback.showError(title, lines);
142
+ },
143
+ dismissDashboardError() {
144
+ this.dashboardFeedback.dismissError();
145
+ },
146
+ beginWorktreeRemoval(path, name, oldIdx) {
147
+ beginWorktreeRemovalImpl(this, path, name, oldIdx);
148
+ },
149
+ finishWorktreeRemoval(code) {
150
+ finishWorktreeRemovalImpl(this, code);
151
+ },
152
+ handleWorktreeRemoveConfirmKey(data) {
153
+ handleWorktreeRemoveConfirmKeyImpl(this, data);
154
+ },
155
+ handleWorktreeListKey(data) {
156
+ handleWorktreeListKeyImpl(this, data);
157
+ },
158
+ };
159
+ //# sourceMappingURL=dashboard-view-methods.js.map
@@ -0,0 +1 @@
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,205 @@
1
+ import { SessionRuntime, type SessionTransport } from "../session-runtime.js";
2
+ import { type TmuxTarget } from "../tmux/runtime-manager.js";
3
+ import { type DashboardActionMethods } from "./dashboard-actions-methods.js";
4
+ import { type AgentIoMethods } from "./agent-io-methods.js";
5
+ import { type DashboardInteractionMethods } from "./dashboard-interaction.js";
6
+ import { type DashboardStateMethods } from "./dashboard-state-methods.js";
7
+ import { type PersistenceMethods } from "./persistence-methods.js";
8
+ import { type DashboardTailMethods } from "./dashboard-tail-methods.js";
9
+ import { type RuntimeLifecycleMethods } from "./runtime-lifecycle-methods.js";
10
+ import { type DashboardViewMethods } from "./dashboard-view-methods.js";
11
+ export type MuxMode = "dashboard" | "project-service";
12
+ export interface SessionState {
13
+ id: string;
14
+ tool: string;
15
+ toolConfigKey: string;
16
+ command: string;
17
+ args: string[];
18
+ backendSessionId?: string;
19
+ worktreePath?: string;
20
+ label?: string;
21
+ headline?: string;
22
+ tmuxTarget?: TmuxTarget;
23
+ }
24
+ export interface ServiceState {
25
+ id: string;
26
+ worktreePath?: string;
27
+ label?: string;
28
+ launchCommandLine?: string;
29
+ }
30
+ export interface SavedState {
31
+ savedAt: string;
32
+ cwd: string;
33
+ sessions: SessionState[];
34
+ services?: ServiceState[];
35
+ }
36
+ type ManagedSession = SessionRuntime;
37
+ export declare class Multiplexer {
38
+ private readonly projectRoot;
39
+ private sessions;
40
+ private offlineServices;
41
+ private activeIndex;
42
+ private mode;
43
+ private hotkeys;
44
+ private dashboard;
45
+ private terminalHost;
46
+ private onStdinData;
47
+ private onResize;
48
+ private resolveRun;
49
+ private defaultCommand;
50
+ private defaultArgs;
51
+ private startedInDashboard;
52
+ private pickerActive;
53
+ private pickerMode;
54
+ private forkSourceSessionId;
55
+ private worktreeInputActive;
56
+ private worktreeInputBuffer;
57
+ private serviceInputActive;
58
+ private serviceInputBuffer;
59
+ private labelInputActive;
60
+ private labelInputBuffer;
61
+ private labelInputTarget;
62
+ private orchestrationInputActive;
63
+ private orchestrationInputBuffer;
64
+ private orchestrationInputTarget;
65
+ private orchestrationInputMode;
66
+ private orchestrationRoutePickerActive;
67
+ private orchestrationRouteMode;
68
+ private orchestrationRouteOptions;
69
+ private worktreeListActive;
70
+ private worktreeRemoveConfirm;
71
+ private worktreeRemovalJob;
72
+ private pendingWorktreeRemovals;
73
+ private readonly dashboardFeedback;
74
+ private migratePickerActive;
75
+ private migratePickerWorktrees;
76
+ private graveyardEntries;
77
+ private graveyardIndex;
78
+ private activityEntries;
79
+ private activityIndex;
80
+ private workflowEntries;
81
+ private workflowIndex;
82
+ private workflowFilter;
83
+ private threadEntries;
84
+ private threadIndex;
85
+ private threadReplyActive;
86
+ private threadReplyBuffer;
87
+ private planEntries;
88
+ private planIndex;
89
+ private notificationPanelState;
90
+ private dashboardPendingActions;
91
+ private stoppingSessionIds;
92
+ private graveyardAfterStopSessionIds;
93
+ /** Quick switcher overlay state */
94
+ private switcherActive;
95
+ private switcherIndex;
96
+ private switcherTimeout;
97
+ /** MRU order of session IDs (most recent first) */
98
+ private sessionMRU;
99
+ /** Sessions confirmed registered in the instance registry (for claim detection) */
100
+ private confirmedRegistered;
101
+ /** The focused worktree path on the dashboard (undefined = main repo) */
102
+ private dashboardState;
103
+ private dashboardUiStateStore;
104
+ private statusInterval;
105
+ private agentTracker;
106
+ private instanceId;
107
+ private contextWatcher;
108
+ private taskDispatcher;
109
+ private orchestrationDispatcher;
110
+ /** Maps session ID → toolConfigKey for state saving */
111
+ private sessionToolKeys;
112
+ /** Maps session ID → original args (before preamble injection) */
113
+ private sessionOriginalArgs;
114
+ /** Maps session ID → worktree path (if session runs in a worktree) */
115
+ private sessionWorktreePaths;
116
+ /** Maps session ID → team role (e.g. "coder", "reviewer") */
117
+ private sessionRoles;
118
+ /** Maps session ID → user-provided stable label */
119
+ private sessionLabels;
120
+ /** Offline sessions from previous runs (loaded from state.json) */
121
+ private offlineSessions;
122
+ /** Cross-instance discovery and claim/heartbeat ownership */
123
+ private instanceDirectory;
124
+ private tmuxRuntimeManager;
125
+ private sessionBootstrap;
126
+ private sessionTmuxTargets;
127
+ private metadataServer;
128
+ private eventBus;
129
+ private pluginRuntime;
130
+ private lastRenderedFrame;
131
+ private lastStatuslineSnapshotKey;
132
+ private desktopStateSnapshot;
133
+ private dashboardSessionsCache;
134
+ private dashboardServicesCache;
135
+ private dashboardWorktreeGroupsCache;
136
+ private dashboardMainCheckoutInfoCache;
137
+ private dashboardModelSnapshotKey;
138
+ private dashboardModelRefreshedAt;
139
+ private dashboardServiceSnapshotRefreshing;
140
+ private dashboardServiceRecovery;
141
+ private dashboardNextBackgroundRefreshAt;
142
+ private runtimeSync;
143
+ constructor();
144
+ get sessionCount(): number;
145
+ get activeSession(): ManagedSession | null;
146
+ private publishAlert;
147
+ private deriveSessionSemanticState;
148
+ private registerManagedSession;
149
+ private handleSessionRuntimeEvent;
150
+ private buildTmuxWindowMetadata;
151
+ private syncTmuxWindowMetadata;
152
+ private updateContextWatcherSessions;
153
+ private createTaskDispatcher;
154
+ private createOrchestrationDispatcher;
155
+ private selectLinkedOrOpenTarget;
156
+ run(opts: {
157
+ command: string;
158
+ args: string[];
159
+ }): Promise<number>;
160
+ runDashboard(): Promise<number>;
161
+ runProjectService(): Promise<number>;
162
+ /**
163
+ * Resume previous sessions using each tool's native resume mechanism.
164
+ * Reads state.json and spawns sessions with resumeArgs instead of normal args.
165
+ */
166
+ resumeSessions(toolFilter?: string): Promise<number>;
167
+ /**
168
+ * Restore previous sessions by injecting prior history into the preamble.
169
+ * Starts fresh sessions but with context from the previous conversation.
170
+ */
171
+ restoreSessions(toolFilter?: string): Promise<number>;
172
+ createSession(command: string, args: string[], preambleFlag?: string[], toolConfigKey?: string, extraPreamble?: string, sessionIdFlag?: string[], worktreePath?: string, backendSessionIdOverride?: string, sessionIdOverride?: string, detachedInTmux?: boolean): SessionTransport;
173
+ /**
174
+ * Migrate an agent from its current worktree to a target worktree.
175
+ * Copies history and context, kills the old session, starts a new one
176
+ * with injected prior history.
177
+ */
178
+ migrateAgent(sessionId: string, targetWorktreePath: string): Promise<void>;
179
+ /** Get worktree path for a session */
180
+ getSessionWorktreePath(sessionId: string): string | undefined;
181
+ /** Get all sessions grouped by worktree path */
182
+ getSessionsByWorktree(): Map<string | undefined, ManagedSession[]>;
183
+ private getScopedSessionEntries;
184
+ private focusSession;
185
+ private handleAction;
186
+ private forkSessionFromSource;
187
+ /** Instruction files we've written (to clean up on exit) */
188
+ private writtenInstructionFiles;
189
+ /** Track previous statuses for notification on transition */
190
+ private prevStatuses;
191
+ /** Flash message shown temporarily in footer, cleared after a few renders */
192
+ private get dashboardBusyState();
193
+ private set dashboardBusyState(value);
194
+ private get dashboardErrorState();
195
+ private set dashboardErrorState(value);
196
+ private get footerFlash();
197
+ private set footerFlash(value);
198
+ private get footerFlashTicks();
199
+ private set footerFlashTicks(value);
200
+ /** Load saved state from global project state dir */
201
+ static loadState(): SavedState | null;
202
+ }
203
+ export interface Multiplexer extends DashboardInteractionMethods, DashboardViewMethods, DashboardActionMethods, DashboardTailMethods, PersistenceMethods, DashboardStateMethods, AgentIoMethods, RuntimeLifecycleMethods {
204
+ }
205
+ export {};