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 @@
1
+ {"version":3,"file":"dashboard-ops.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { DashboardService, DashboardSession, WorktreeGroup } from "../dashboard/index.js";
2
+ import type { TmuxTarget } from "../tmux/runtime-manager.js";
3
+ export declare const dashboardStateMethods: {
4
+ isTmuxBackend(this: any): boolean;
5
+ openTmuxDashboardTarget(this: any): void;
6
+ invalidateDashboardFrame(this: any): void;
7
+ isFocusInReport(this: any, data: Buffer): boolean;
8
+ handleDashboardFocusIn(this: any): void;
9
+ loadDashboardUiState(this: any): void;
10
+ persistDashboardUiState(this: any): void;
11
+ restoreDashboardSelectionFromPreference(this: any, dashSessions: DashboardSession[], hasWorktrees: boolean): void;
12
+ writeFrame(this: any, output: string, force?: boolean): void;
13
+ getViewportSize(this: any): {
14
+ cols: number;
15
+ rows: number;
16
+ };
17
+ restoreDashboardAfterOverlayDismiss(this: any): void;
18
+ buildDashboardWorktreeGroups(this: any, dashSessions: DashboardSession[], dashServices: DashboardService[], worktrees: Array<{
19
+ name: string;
20
+ path: string;
21
+ branch: string;
22
+ isBare: boolean;
23
+ }>, mainRepoPath?: string): WorktreeGroup[];
24
+ applyDashboardModel(this: any, dashSessions: DashboardSession[], dashServices: DashboardService[], worktreeGroups: WorktreeGroup[], mainCheckoutInfo: {
25
+ name: string;
26
+ branch: string;
27
+ }): boolean;
28
+ invalidateDesktopStateSnapshot(this: any): void;
29
+ refreshDesktopStateSnapshot(this: any): void;
30
+ computeDashboardSessions(this: any): DashboardSession[];
31
+ computeDashboardServices(this: any, worktrees?: any): DashboardService[];
32
+ readTmuxProcessInfo(this: any, target: TmuxTarget): {
33
+ command?: string;
34
+ pid?: number;
35
+ previewLine?: string;
36
+ };
37
+ buildDesktopStateSnapshot(this: any): {
38
+ sessions: DashboardSession[];
39
+ services: DashboardService[];
40
+ worktrees: Array<{
41
+ name: string;
42
+ path: string;
43
+ branch: string;
44
+ isBare: boolean;
45
+ }>;
46
+ mainCheckoutInfo: {
47
+ name: string;
48
+ branch: string;
49
+ };
50
+ mainCheckoutPath?: string;
51
+ };
52
+ refreshDashboardModelFromService(this: any, force?: boolean): Promise<boolean>;
53
+ refreshLocalDashboardModel(this: any): void;
54
+ startProjectServices(this: any): Promise<void>;
55
+ };
56
+ export type DashboardStateMethods = typeof dashboardStateMethods;
@@ -0,0 +1,123 @@
1
+ import { openDashboardTarget } from "../dashboard/targets.js";
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
+ export const dashboardStateMethods = {
4
+ isTmuxBackend() {
5
+ return true;
6
+ },
7
+ openTmuxDashboardTarget() {
8
+ openDashboardTarget(this.projectRoot, this.tmuxRuntimeManager);
9
+ },
10
+ invalidateDashboardFrame() {
11
+ this.lastRenderedFrame = null;
12
+ },
13
+ isFocusInReport(data) {
14
+ return data.includes(Buffer.from("\x1b[I"));
15
+ },
16
+ handleDashboardFocusIn() {
17
+ this.terminalHost.enterAlternateScreen();
18
+ if (this.lastRenderedFrame) {
19
+ process.stdout.write(this.lastRenderedFrame);
20
+ }
21
+ this.tmuxRuntimeManager.refreshStatus();
22
+ },
23
+ loadDashboardUiState() {
24
+ this.dashboardUiStateStore.loadInto(this.dashboardState);
25
+ },
26
+ persistDashboardUiState() {
27
+ this.dashboardUiStateStore.persist(this.mode, this.dashboardState, this.activeIndex, this.getDashboardSessions());
28
+ },
29
+ restoreDashboardSelectionFromPreference(dashSessions, hasWorktrees) {
30
+ this.dashboardUiStateStore.consumeSelectionRestore(this.dashboardState, dashSessions, hasWorktrees, () => this.updateWorktreeSessions(), this.activeIndex, (value) => {
31
+ this.activeIndex = value;
32
+ });
33
+ },
34
+ writeFrame(output, force = false) {
35
+ if (!force && this.lastRenderedFrame === output)
36
+ return;
37
+ process.stdout.write(output);
38
+ this.lastRenderedFrame = output;
39
+ },
40
+ getViewportSize() {
41
+ let cols = process.stdout.columns ?? 80;
42
+ let rows = process.stdout.rows ?? 24;
43
+ try {
44
+ const paneRaw = this.tmuxRuntimeManager.displayMessage("#{pane_width}\t#{pane_height}");
45
+ if (paneRaw) {
46
+ const [tmuxColsRaw, tmuxRowsRaw] = paneRaw.split("\t");
47
+ const tmuxCols = Number(tmuxColsRaw);
48
+ const tmuxRows = Number(tmuxRowsRaw);
49
+ if (Number.isFinite(tmuxCols) && tmuxCols > 0)
50
+ cols = tmuxCols;
51
+ if (Number.isFinite(tmuxRows) && tmuxRows > 0)
52
+ rows = tmuxRows;
53
+ }
54
+ else {
55
+ const clientRaw = this.tmuxRuntimeManager.displayMessage("#{client_width}\t#{client_height}");
56
+ if (clientRaw) {
57
+ const [tmuxColsRaw, tmuxRowsRaw] = clientRaw.split("\t");
58
+ const tmuxCols = Number(tmuxColsRaw);
59
+ const tmuxRows = Number(tmuxRowsRaw);
60
+ if (Number.isFinite(tmuxCols) && tmuxCols > 0)
61
+ cols = tmuxCols;
62
+ if (Number.isFinite(tmuxRows) && tmuxRows > 0)
63
+ rows = tmuxRows;
64
+ }
65
+ }
66
+ }
67
+ catch { }
68
+ if (typeof process.stdout.getWindowSize === "function") {
69
+ try {
70
+ const [ttyCols, ttyRows] = process.stdout.getWindowSize();
71
+ if (Number.isFinite(ttyCols) && ttyCols > cols)
72
+ cols = ttyCols;
73
+ if (Number.isFinite(ttyRows) && ttyRows > rows)
74
+ rows = ttyRows;
75
+ }
76
+ catch { }
77
+ }
78
+ return { cols, rows };
79
+ },
80
+ restoreDashboardAfterOverlayDismiss() {
81
+ this.invalidateDashboardFrame();
82
+ if (this.mode === "dashboard") {
83
+ this.renderDashboard();
84
+ }
85
+ else {
86
+ this.focusSession(this.activeIndex);
87
+ }
88
+ },
89
+ buildDashboardWorktreeGroups(dashSessions, dashServices, worktrees, mainRepoPath) {
90
+ return buildDashboardWorktreeGroupsImpl(this, dashSessions, dashServices, worktrees, mainRepoPath);
91
+ },
92
+ applyDashboardModel(dashSessions, dashServices, worktreeGroups, mainCheckoutInfo) {
93
+ return applyDashboardModelImpl(this, dashSessions, dashServices, worktreeGroups, mainCheckoutInfo);
94
+ },
95
+ invalidateDesktopStateSnapshot() {
96
+ invalidateDesktopStateSnapshotImpl(this);
97
+ },
98
+ refreshDesktopStateSnapshot() {
99
+ refreshDesktopStateSnapshotImpl(this);
100
+ },
101
+ computeDashboardSessions() {
102
+ return computeDashboardSessionsImpl(this);
103
+ },
104
+ computeDashboardServices(worktrees = this.listDesktopWorktrees()) {
105
+ return computeDashboardServicesImpl(this, worktrees);
106
+ },
107
+ readTmuxProcessInfo(target) {
108
+ return readTmuxProcessInfoImpl(this, target);
109
+ },
110
+ buildDesktopStateSnapshot() {
111
+ return buildDesktopStateSnapshotImpl(this);
112
+ },
113
+ async refreshDashboardModelFromService(force = false) {
114
+ return refreshDashboardModelFromServiceImpl(this, force);
115
+ },
116
+ refreshLocalDashboardModel() {
117
+ refreshLocalDashboardModelImpl(this);
118
+ },
119
+ async startProjectServices() {
120
+ await startProjectServicesImpl(this);
121
+ },
122
+ };
123
+ //# sourceMappingURL=dashboard-state-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-state-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-state-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import type { DashboardService, DashboardSession } from "../dashboard/index.js";
2
+ import type { Multiplexer, SessionState } from "./index.js";
3
+ import { dashboardSessionActionDeps as dashboardSessionActionDepsImpl } from "./dashboard-ops.js";
4
+ import type { PendingDashboardActionKind } from "../dashboard/pending-actions.js";
5
+ import type { SessionRuntime } from "../session-runtime.js";
6
+ export type DashboardTailMethods = {
7
+ forkAgent(this: Multiplexer, opts: {
8
+ sourceSessionId: string;
9
+ targetToolConfigKey: string;
10
+ instruction?: string;
11
+ targetWorktreePath?: string;
12
+ open?: boolean;
13
+ }): Promise<{
14
+ sessionId: string;
15
+ threadId: string;
16
+ }>;
17
+ spawnAgent(this: Multiplexer, opts: {
18
+ toolConfigKey: string;
19
+ targetWorktreePath?: string;
20
+ open?: boolean;
21
+ }): Promise<{
22
+ sessionId: string;
23
+ }>;
24
+ renameAgent(this: Multiplexer, sessionId: string, label?: string): Promise<{
25
+ sessionId: string;
26
+ label?: string;
27
+ }>;
28
+ stopAgent(this: Multiplexer, sessionId: string): Promise<{
29
+ sessionId: string;
30
+ status: "offline";
31
+ }>;
32
+ sendAgentToGraveyard(this: Multiplexer, sessionId: string): Promise<{
33
+ sessionId: string;
34
+ status: "graveyard";
35
+ previousStatus: "running" | "offline";
36
+ }>;
37
+ migrateAgentSession(this: Multiplexer, sessionId: string, targetWorktreePath: string): Promise<{
38
+ sessionId: string;
39
+ worktreePath?: string;
40
+ }>;
41
+ showGraveyard(this: Multiplexer): void;
42
+ renderGraveyard(this: Multiplexer): void;
43
+ handleGraveyardKey(this: Multiplexer, data: Buffer): void;
44
+ resurrectGraveyardEntry(this: Multiplexer, idx: number): void;
45
+ showPlans(this: Multiplexer): void;
46
+ loadPlanEntries(this: Multiplexer): void;
47
+ parsePlanFrontmatter(this: Multiplexer, content: string): Record<string, string>;
48
+ renderPlans(this: Multiplexer): void;
49
+ buildPlanPreview(this: Multiplexer, content: string, width: number, maxLines: number): string[];
50
+ renderPlanDetails(this: Multiplexer, width: number, height: number): string[];
51
+ renderGraveyardDetails(this: Multiplexer, width: number, height: number): string[];
52
+ handlePlansKey(this: Multiplexer, data: Buffer): void;
53
+ openPlanInEditor(this: Multiplexer, path: string): void;
54
+ getSwitcherList(this: Multiplexer): SessionRuntime[];
55
+ showSwitcher(this: Multiplexer): void;
56
+ resetSwitcherTimeout(this: Multiplexer): void;
57
+ confirmSwitcher(this: Multiplexer): void;
58
+ dismissSwitcher(this: Multiplexer): void;
59
+ redrawCurrentView(this: Multiplexer): void;
60
+ showHelp(this: Multiplexer): void;
61
+ dismissHelp(this: Multiplexer): void;
62
+ renderHelp(this: Multiplexer): void;
63
+ handleHelpKey(this: Multiplexer, data: Buffer): void;
64
+ renderSwitcher(this: Multiplexer): void;
65
+ handleSwitcherKey(this: Multiplexer, data: Buffer): void;
66
+ showMigratePicker(this: Multiplexer): void;
67
+ renderMigratePicker(this: Multiplexer): void;
68
+ 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): void;
70
+ stopSessionToOfflineWithFeedback(this: Multiplexer, session: SessionRuntime): Promise<void>;
71
+ clearDashboardSubscreens(this: Multiplexer): void;
72
+ renderSessionDetails(this: Multiplexer, session: DashboardSession | undefined, width: number, height: number): string[];
73
+ composeSplitScreen(this: Multiplexer, leftLines: string[], rightLines: string[], cols: number, viewportHeight: number, focusLine: number, twoPane: boolean): string[];
74
+ composeTwoPaneLines(this: Multiplexer, left: string[], right: string[], cols: number): string[];
75
+ wrapKeyValue(this: Multiplexer, key: string, value: string, width: number): string[];
76
+ wrapText(this: Multiplexer, text: string, width: number): string[];
77
+ truncatePlain(this: Multiplexer, text: string, max: number): string;
78
+ truncateAnsi(this: Multiplexer, text: string, max: number): string;
79
+ basename(this: Multiplexer, value: string): string;
80
+ listAllWorktrees(this: Multiplexer): Array<{
81
+ name: string;
82
+ branch: string;
83
+ path: string;
84
+ isBare: boolean;
85
+ }>;
86
+ graveyardSessionWithFeedback(this: Multiplexer, sessionId: string, hasWorktrees: boolean): Promise<void>;
87
+ resumeOfflineSessionWithFeedback(this: Multiplexer, session: SessionState): Promise<void>;
88
+ waitForSessionStart(this: Multiplexer, sessionId: string, timeoutMs?: number): Promise<boolean>;
89
+ dashboardSessionActionDeps(this: Multiplexer): ReturnType<typeof dashboardSessionActionDepsImpl>;
90
+ takeoverFromDashEntryWithFeedback(this: Multiplexer, entry: DashboardSession): Promise<void>;
91
+ migrateSessionWithFeedback(this: Multiplexer, session: SessionRuntime, targetPath: string, targetName: string): Promise<void>;
92
+ handleMigratePickerKey(this: Multiplexer, data: Buffer): void;
93
+ getDashboardSessions(this: Multiplexer): DashboardSession[];
94
+ getDashboardServices(this: Multiplexer): DashboardService[];
95
+ getDashboardSessionsInVisualOrder(this: Multiplexer): DashboardSession[];
96
+ takeoverSessionFromDashEntry(this: Multiplexer, entry: DashboardSession): Promise<void>;
97
+ takeoverSession(this: Multiplexer, target: {
98
+ id: string;
99
+ tool: string;
100
+ backendSessionId: string;
101
+ fromInstanceId: string;
102
+ }): Promise<void>;
103
+ };
104
+ export declare const dashboardTailMethods: DashboardTailMethods;
@@ -0,0 +1,252 @@
1
+ import { debug } from "../debug.js";
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
+ 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
+ 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";
6
+ import { findMainRepo, listWorktrees as listAllWorktrees } from "../worktree.js";
7
+ import { orderDashboardSessionsByVisualWorktree } from "../dashboard/session-registry.js";
8
+ import { loadConfig } from "../config.js";
9
+ export const dashboardTailMethods = {
10
+ async forkAgent(opts) {
11
+ return forkAgentImpl(this, opts);
12
+ },
13
+ async spawnAgent(opts) {
14
+ return spawnAgentImpl(this, opts);
15
+ },
16
+ async renameAgent(sessionId, label) {
17
+ return renameAgentImpl(this, sessionId, label);
18
+ },
19
+ async stopAgent(sessionId) {
20
+ return stopAgentImpl(this, sessionId);
21
+ },
22
+ async sendAgentToGraveyard(sessionId) {
23
+ return sendAgentToGraveyardImpl(this, sessionId);
24
+ },
25
+ async migrateAgentSession(sessionId, targetWorktreePath) {
26
+ return migrateAgentSessionImpl(this, sessionId, targetWorktreePath);
27
+ },
28
+ showGraveyard() {
29
+ showGraveyardImpl(this);
30
+ },
31
+ renderGraveyard() {
32
+ renderGraveyardImpl(this);
33
+ },
34
+ handleGraveyardKey(data) {
35
+ handleGraveyardKeyImpl(this, data);
36
+ },
37
+ resurrectGraveyardEntry(idx) {
38
+ resurrectGraveyardEntryImpl(this, idx);
39
+ },
40
+ showPlans() {
41
+ showPlansImpl(this);
42
+ },
43
+ loadPlanEntries() {
44
+ loadPlanEntriesImpl(this);
45
+ },
46
+ parsePlanFrontmatter(content) {
47
+ return parsePlanFrontmatterImpl(content);
48
+ },
49
+ renderPlans() {
50
+ renderPlansImpl(this);
51
+ },
52
+ buildPlanPreview(content, width, maxLines) {
53
+ return buildPlanPreviewImpl(content, width, maxLines);
54
+ },
55
+ renderPlanDetails(width, height) {
56
+ return renderPlanDetailsForHostImpl(this, width, height);
57
+ },
58
+ renderGraveyardDetails(width, height) {
59
+ return renderGraveyardDetailsForHostImpl(this, width, height);
60
+ },
61
+ handlePlansKey(data) {
62
+ handlePlansKeyImpl(this, data);
63
+ },
64
+ openPlanInEditor(path) {
65
+ openPlanInEditorImpl(this, path);
66
+ },
67
+ getSwitcherList() {
68
+ return getSwitcherListImpl(this);
69
+ },
70
+ showSwitcher() {
71
+ showSwitcherImpl(this);
72
+ },
73
+ resetSwitcherTimeout() {
74
+ resetSwitcherTimeoutImpl(this);
75
+ },
76
+ confirmSwitcher() {
77
+ confirmSwitcherImpl(this);
78
+ },
79
+ dismissSwitcher() {
80
+ dismissSwitcherImpl(this);
81
+ },
82
+ redrawCurrentView() {
83
+ redrawCurrentViewImpl(this);
84
+ },
85
+ showHelp() {
86
+ showHelpImpl(this);
87
+ },
88
+ dismissHelp() {
89
+ dismissHelpImpl(this);
90
+ },
91
+ renderHelp() {
92
+ renderHelpImpl(this);
93
+ },
94
+ handleHelpKey(data) {
95
+ handleHelpKeyImpl(this, data);
96
+ },
97
+ renderSwitcher() {
98
+ renderSwitcherImpl(this);
99
+ },
100
+ handleSwitcherKey(data) {
101
+ handleSwitcherKeyImpl(this, data);
102
+ },
103
+ showMigratePicker() {
104
+ showMigratePickerImpl(this);
105
+ },
106
+ renderMigratePicker() {
107
+ renderMigratePickerImpl(this);
108
+ },
109
+ async runDashboardOperation(title, lines, work, errorTitle = title) {
110
+ return runDashboardOperationImpl(this, title, lines, work, errorTitle);
111
+ },
112
+ setPendingDashboardSessionAction(sessionId, kind) {
113
+ setPendingDashboardSessionActionImpl(this, sessionId, kind);
114
+ },
115
+ async stopSessionToOfflineWithFeedback(session) {
116
+ await stopSessionToOfflineWithFeedbackImpl(this, session);
117
+ },
118
+ clearDashboardSubscreens() {
119
+ clearDashboardSubscreensImpl(this);
120
+ },
121
+ renderSessionDetails(session, width, height) {
122
+ return renderSessionDetailsImpl(this, session, width, height);
123
+ },
124
+ composeSplitScreen(leftLines, rightLines, cols, viewportHeight, focusLine, twoPane) {
125
+ return composeSplitScreenImpl(this, leftLines, rightLines, cols, viewportHeight, focusLine, twoPane);
126
+ },
127
+ composeTwoPaneLines(left, right, cols) {
128
+ return composeTwoPaneLinesImpl(left, right, cols);
129
+ },
130
+ wrapKeyValue(key, value, width) {
131
+ return wrapKeyValueForHost(key, value, width);
132
+ },
133
+ wrapText(text, width) {
134
+ return wrapTextForHost(text, width);
135
+ },
136
+ truncatePlain(text, max) {
137
+ return truncatePlainForHost(text, max);
138
+ },
139
+ truncateAnsi(text, max) {
140
+ return truncateAnsiForHost(text, max);
141
+ },
142
+ basename(value) {
143
+ return basenameForHost(value);
144
+ },
145
+ listAllWorktrees() {
146
+ return listAllWorktrees();
147
+ },
148
+ async graveyardSessionWithFeedback(sessionId, hasWorktrees) {
149
+ await graveyardSessionWithFeedbackImpl(this, sessionId, hasWorktrees);
150
+ },
151
+ async resumeOfflineSessionWithFeedback(session) {
152
+ await resumeOfflineSessionWithFeedbackImpl(this, session);
153
+ },
154
+ async waitForSessionStart(sessionId, timeoutMs = 8000) {
155
+ return waitForSessionStartForHost(this, sessionId, timeoutMs);
156
+ },
157
+ dashboardSessionActionDeps() {
158
+ return dashboardSessionActionDepsImpl(this);
159
+ },
160
+ async takeoverFromDashEntryWithFeedback(entry) {
161
+ await takeoverFromDashEntryWithFeedbackImpl(this, entry);
162
+ },
163
+ async migrateSessionWithFeedback(session, targetPath, targetName) {
164
+ await migrateSessionWithFeedbackImpl(this, session, targetPath, targetName);
165
+ },
166
+ handleMigratePickerKey(data) {
167
+ handleMigratePickerKeyImpl(this, data);
168
+ },
169
+ getDashboardSessions() {
170
+ const mux = this;
171
+ return mux.mode === "dashboard" ? mux.dashboardSessionsCache : this.computeDashboardSessions();
172
+ },
173
+ getDashboardServices() {
174
+ const mux = this;
175
+ return mux.mode === "dashboard" ? mux.dashboardServicesCache : this.computeDashboardServices();
176
+ },
177
+ getDashboardSessionsInVisualOrder() {
178
+ const mux = this;
179
+ const allDash = this.getDashboardSessions();
180
+ if (mux.mode === "dashboard") {
181
+ const mainSessions = allDash.filter((session) => !session.worktreePath);
182
+ const ordered = [...mainSessions];
183
+ const seen = new Set(mainSessions.map((session) => session.id));
184
+ for (const group of mux.dashboardWorktreeGroupsCache) {
185
+ for (const session of group.sessions) {
186
+ if (seen.has(session.id))
187
+ continue;
188
+ ordered.push(session);
189
+ seen.add(session.id);
190
+ }
191
+ }
192
+ for (const session of allDash) {
193
+ if (!seen.has(session.id))
194
+ ordered.push(session);
195
+ }
196
+ return ordered;
197
+ }
198
+ let mainRepoPath;
199
+ try {
200
+ mainRepoPath = findMainRepo();
201
+ }
202
+ catch { }
203
+ let worktreePaths = [];
204
+ try {
205
+ const worktrees = listAllWorktrees();
206
+ worktreePaths = [
207
+ undefined,
208
+ ...worktrees.filter((wt) => !wt.isBare && wt.path !== mainRepoPath).map((wt) => wt.path),
209
+ ];
210
+ }
211
+ catch {
212
+ return allDash;
213
+ }
214
+ return orderDashboardSessionsByVisualWorktree(allDash, worktreePaths, mainRepoPath);
215
+ },
216
+ async takeoverSessionFromDashEntry(entry) {
217
+ if (!entry.remoteInstanceId || !entry.remoteBackendSessionId)
218
+ return;
219
+ await this.takeoverSession({
220
+ id: entry.id,
221
+ tool: entry.command,
222
+ backendSessionId: entry.remoteBackendSessionId,
223
+ fromInstanceId: entry.remoteInstanceId,
224
+ });
225
+ },
226
+ async takeoverSession(target) {
227
+ const mux = this;
228
+ const claimed = await mux.instanceDirectory.claimSession(target.id, target.fromInstanceId, process.cwd());
229
+ if (!claimed) {
230
+ debug(`takeover: session ${target.id} not found in instance ${target.fromInstanceId}`, "instance");
231
+ return;
232
+ }
233
+ const config = loadConfig();
234
+ const toolEntry = Object.entries(config.tools).find(([, t]) => t.command === target.tool);
235
+ const toolCfg = toolEntry?.[1];
236
+ const toolConfigKey = toolEntry?.[0];
237
+ if (!toolCfg?.resumeArgs) {
238
+ debug(`takeover: no resumeArgs configured for tool ${target.tool}`, "instance");
239
+ return;
240
+ }
241
+ if (!mux.sessionBootstrap.canResumeWithBackendSessionId(toolCfg, target.backendSessionId)) {
242
+ debug(`takeover: tool ${target.tool} does not support backendSessionId resume`, "instance");
243
+ return;
244
+ }
245
+ const resumeArgs = toolCfg.resumeArgs.map((a) => a.replace("{sessionId}", target.backendSessionId));
246
+ const args = mux.sessionBootstrap.composeToolArgs(toolCfg, resumeArgs);
247
+ 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);
249
+ this.renderDashboard();
250
+ },
251
+ };
252
+ //# sourceMappingURL=dashboard-tail-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-tail-methods.js","sourceRoot":"","sources":["../../src/multiplexer/dashboard-tail-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export declare const dashboardViewMethods: {
2
+ serviceLabelForCommand(this: any, commandLine: string): string;
3
+ generateDashboardSessionId(this: any, command: string): string;
4
+ settleDashboardCreatePending(this: any, itemId: string): void;
5
+ preferDashboardEntrySelection(this: any, kind: "session" | "service", id: string, worktreePath?: string): void;
6
+ createService(this: any, commandLine: string, worktreePath?: string): {
7
+ serviceId: string;
8
+ };
9
+ stopService(this: any, serviceId: string): {
10
+ serviceId: string;
11
+ status: "stopped";
12
+ };
13
+ removeOfflineService(this: any, serviceId: string): {
14
+ serviceId: string;
15
+ status: "removed";
16
+ };
17
+ resumeOfflineService(this: any, service: any): {
18
+ serviceId: string;
19
+ status: "running";
20
+ };
21
+ resumeOfflineServiceById(this: any, serviceId: string): {
22
+ serviceId: string;
23
+ status: "running";
24
+ };
25
+ renderDashboard(this: any): void;
26
+ showWorktreeCreatePrompt(this: any): void;
27
+ showServiceCreatePrompt(this: any): void;
28
+ renderWorktreeInput(this: any): void;
29
+ renderServiceInput(this: any): void;
30
+ handleWorktreeInputKey(this: any, data: Buffer): void;
31
+ renderLabelInput(this: any): void;
32
+ showWorktreeList(this: any): void;
33
+ renderWorktreeList(this: any): void;
34
+ renderWorktreeRemoveConfirm(this: any): void;
35
+ renderDashboardBusyOverlay(this: any): void;
36
+ renderDashboardErrorOverlay(this: any): void;
37
+ showNotificationPanel(this: any): void;
38
+ closeNotificationPanel(this: any): void;
39
+ renderNotificationPanel(this: any): void;
40
+ handleNotificationPanelKey(this: any, data: Buffer): void;
41
+ startDashboardBusy(this: any, title: string, lines: string[]): void;
42
+ updateDashboardBusy(this: any, lines: string[]): void;
43
+ clearDashboardBusy(this: any): void;
44
+ showDashboardError(this: any, title: string, lines: string[]): void;
45
+ dismissDashboardError(this: any): void;
46
+ beginWorktreeRemoval(this: any, path: string, name: string, oldIdx: number): void;
47
+ finishWorktreeRemoval(this: any, code: number): void;
48
+ handleWorktreeRemoveConfirmKey(this: any, data: Buffer): void;
49
+ handleWorktreeListKey(this: any, data: Buffer): void;
50
+ };
51
+ export type DashboardViewMethods = typeof dashboardViewMethods;