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.
Files changed (212) hide show
  1. package/README.md +54 -0
  2. package/dist/agent-prompt-delivery.d.ts +31 -0
  3. package/dist/agent-prompt-delivery.js +119 -0
  4. package/dist/agent-prompt-delivery.js.map +1 -0
  5. package/dist/agent-tracker.js +4 -2
  6. package/dist/agent-tracker.js.map +1 -1
  7. package/dist/atomic-write.d.ts +1 -0
  8. package/dist/atomic-write.js +9 -0
  9. package/dist/atomic-write.js.map +1 -0
  10. package/dist/builtin-metadata-watchers.js +10 -6
  11. package/dist/builtin-metadata-watchers.js.map +1 -1
  12. package/dist/daemon.js +3 -6
  13. package/dist/daemon.js.map +1 -1
  14. package/dist/dashboard/index.d.ts +26 -15
  15. package/dist/dashboard/index.js +26 -56
  16. package/dist/dashboard/index.js.map +1 -1
  17. package/dist/dashboard/operation-failures.d.ts +30 -0
  18. package/dist/dashboard/operation-failures.js +86 -0
  19. package/dist/dashboard/operation-failures.js.map +1 -0
  20. package/dist/dashboard/pending-actions.d.ts +9 -2
  21. package/dist/dashboard/pending-actions.js +66 -7
  22. package/dist/dashboard/pending-actions.js.map +1 -1
  23. package/dist/dashboard/quick-jump.d.ts +3 -1
  24. package/dist/dashboard/quick-jump.js +27 -8
  25. package/dist/dashboard/quick-jump.js.map +1 -1
  26. package/dist/dashboard/runtime-evidence.d.ts +4 -0
  27. package/dist/dashboard/runtime-evidence.js +22 -0
  28. package/dist/dashboard/runtime-evidence.js.map +1 -0
  29. package/dist/dashboard/session-actions.d.ts +1 -1
  30. package/dist/dashboard/session-actions.js +3 -1
  31. package/dist/dashboard/session-actions.js.map +1 -1
  32. package/dist/dashboard/session-registry.d.ts +1 -0
  33. package/dist/dashboard/session-registry.js +47 -30
  34. package/dist/dashboard/session-registry.js.map +1 -1
  35. package/dist/dashboard/state.d.ts +9 -0
  36. package/dist/dashboard/state.js +33 -1
  37. package/dist/dashboard/state.js.map +1 -1
  38. package/dist/dashboard/targets.js +11 -3
  39. package/dist/dashboard/targets.js.map +1 -1
  40. package/dist/dashboard/ui-state-store.d.ts +3 -3
  41. package/dist/dashboard/ui-state-store.js +23 -14
  42. package/dist/dashboard/ui-state-store.js.map +1 -1
  43. package/dist/default-plugins/gh-pr-context.d.ts +8 -0
  44. package/dist/default-plugins/gh-pr-context.js +256 -0
  45. package/dist/default-plugins/gh-pr-context.js.map +1 -0
  46. package/dist/default-plugins/transcript-length.d.ts +1 -0
  47. package/dist/default-plugins/transcript-length.js +10 -0
  48. package/dist/default-plugins/transcript-length.js.map +1 -1
  49. package/dist/fast-control.d.ts +8 -3
  50. package/dist/fast-control.js +13 -14
  51. package/dist/fast-control.js.map +1 -1
  52. package/dist/main.js +22 -35
  53. package/dist/main.js.map +1 -1
  54. package/dist/managed-launch-env.d.ts +10 -0
  55. package/dist/managed-launch-env.js +51 -0
  56. package/dist/managed-launch-env.js.map +1 -0
  57. package/dist/metadata-server.d.ts +41 -0
  58. package/dist/metadata-server.js +272 -15
  59. package/dist/metadata-server.js.map +1 -1
  60. package/dist/metadata-store.d.ts +1 -0
  61. package/dist/metadata-store.js +3 -5
  62. package/dist/metadata-store.js.map +1 -1
  63. package/dist/multiplexer/agent-io-methods.d.ts +1 -1
  64. package/dist/multiplexer/agent-io-methods.js +36 -29
  65. package/dist/multiplexer/agent-io-methods.js.map +1 -1
  66. package/dist/multiplexer/archives.d.ts +1 -0
  67. package/dist/multiplexer/archives.js +143 -25
  68. package/dist/multiplexer/archives.js.map +1 -1
  69. package/dist/multiplexer/dashboard-actions-methods.d.ts +10 -1
  70. package/dist/multiplexer/dashboard-actions-methods.js +16 -4
  71. package/dist/multiplexer/dashboard-actions-methods.js.map +1 -1
  72. package/dist/multiplexer/dashboard-control.d.ts +13 -1
  73. package/dist/multiplexer/dashboard-control.js +150 -121
  74. package/dist/multiplexer/dashboard-control.js.map +1 -1
  75. package/dist/multiplexer/dashboard-interaction.d.ts +2 -1
  76. package/dist/multiplexer/dashboard-interaction.js +175 -113
  77. package/dist/multiplexer/dashboard-interaction.js.map +1 -1
  78. package/dist/multiplexer/dashboard-model.d.ts +5 -1
  79. package/dist/multiplexer/dashboard-model.js +83 -8
  80. package/dist/multiplexer/dashboard-model.js.map +1 -1
  81. package/dist/multiplexer/dashboard-ops.d.ts +32 -1
  82. package/dist/multiplexer/dashboard-ops.js +517 -15
  83. package/dist/multiplexer/dashboard-ops.js.map +1 -1
  84. package/dist/multiplexer/dashboard-state-methods.d.ts +7 -0
  85. package/dist/multiplexer/dashboard-state-methods.js +79 -4
  86. package/dist/multiplexer/dashboard-state-methods.js.map +1 -1
  87. package/dist/multiplexer/dashboard-tail-methods.d.ts +12 -2
  88. package/dist/multiplexer/dashboard-tail-methods.js +18 -6
  89. package/dist/multiplexer/dashboard-tail-methods.js.map +1 -1
  90. package/dist/multiplexer/dashboard-view-methods.d.ts +3 -1
  91. package/dist/multiplexer/dashboard-view-methods.js +53 -38
  92. package/dist/multiplexer/dashboard-view-methods.js.map +1 -1
  93. package/dist/multiplexer/graveyard-view-model.d.ts +68 -0
  94. package/dist/multiplexer/graveyard-view-model.js +185 -0
  95. package/dist/multiplexer/graveyard-view-model.js.map +1 -0
  96. package/dist/multiplexer/index.d.ts +18 -11
  97. package/dist/multiplexer/index.js +30 -18
  98. package/dist/multiplexer/index.js.map +1 -1
  99. package/dist/multiplexer/navigation.d.ts +1 -1
  100. package/dist/multiplexer/navigation.js +31 -11
  101. package/dist/multiplexer/navigation.js.map +1 -1
  102. package/dist/multiplexer/notifications.d.ts +1 -0
  103. package/dist/multiplexer/notifications.js +27 -19
  104. package/dist/multiplexer/notifications.js.map +1 -1
  105. package/dist/multiplexer/persistence-methods.d.ts +16 -0
  106. package/dist/multiplexer/persistence-methods.js +349 -28
  107. package/dist/multiplexer/persistence-methods.js.map +1 -1
  108. package/dist/multiplexer/runtime-lifecycle-methods.js +81 -12
  109. package/dist/multiplexer/runtime-lifecycle-methods.js.map +1 -1
  110. package/dist/multiplexer/runtime-state.d.ts +6 -2
  111. package/dist/multiplexer/runtime-state.js +144 -23
  112. package/dist/multiplexer/runtime-state.js.map +1 -1
  113. package/dist/multiplexer/service-state-snapshot.d.ts +14 -0
  114. package/dist/multiplexer/service-state-snapshot.js +121 -0
  115. package/dist/multiplexer/service-state-snapshot.js.map +1 -0
  116. package/dist/multiplexer/services.d.ts +19 -1
  117. package/dist/multiplexer/services.js +114 -16
  118. package/dist/multiplexer/services.js.map +1 -1
  119. package/dist/multiplexer/session-actions.d.ts +3 -0
  120. package/dist/multiplexer/session-actions.js +10 -8
  121. package/dist/multiplexer/session-actions.js.map +1 -1
  122. package/dist/multiplexer/session-launch.d.ts +1 -1
  123. package/dist/multiplexer/session-launch.js +63 -22
  124. package/dist/multiplexer/session-launch.js.map +1 -1
  125. package/dist/multiplexer/session-runtime-core.d.ts +2 -1
  126. package/dist/multiplexer/session-runtime-core.js +107 -69
  127. package/dist/multiplexer/session-runtime-core.js.map +1 -1
  128. package/dist/multiplexer/subscreens.d.ts +1 -0
  129. package/dist/multiplexer/subscreens.js +17 -12
  130. package/dist/multiplexer/subscreens.js.map +1 -1
  131. package/dist/multiplexer/tool-picker.d.ts +6 -2
  132. package/dist/multiplexer/tool-picker.js +231 -81
  133. package/dist/multiplexer/tool-picker.js.map +1 -1
  134. package/dist/multiplexer/worktree-graveyard.d.ts +13 -0
  135. package/dist/multiplexer/worktree-graveyard.js +21 -0
  136. package/dist/multiplexer/worktree-graveyard.js.map +1 -0
  137. package/dist/multiplexer/worktrees.d.ts +1 -0
  138. package/dist/multiplexer/worktrees.js +151 -69
  139. package/dist/multiplexer/worktrees.js.map +1 -1
  140. package/dist/notification-context.js +9 -15
  141. package/dist/notification-context.js.map +1 -1
  142. package/dist/notifications.d.ts +22 -0
  143. package/dist/notifications.js +66 -11
  144. package/dist/notifications.js.map +1 -1
  145. package/dist/orchestration-actions.js +3 -3
  146. package/dist/orchestration-actions.js.map +1 -1
  147. package/dist/orchestration-dispatcher.d.ts +4 -3
  148. package/dist/orchestration-dispatcher.js +9 -7
  149. package/dist/orchestration-dispatcher.js.map +1 -1
  150. package/dist/orchestration-routing.d.ts +2 -2
  151. package/dist/orchestration-routing.js +3 -7
  152. package/dist/orchestration-routing.js.map +1 -1
  153. package/dist/paths.d.ts +3 -0
  154. package/dist/paths.js +9 -0
  155. package/dist/paths.js.map +1 -1
  156. package/dist/plugin-runtime.d.ts +5 -0
  157. package/dist/plugin-runtime.js +98 -34
  158. package/dist/plugin-runtime.js.map +1 -1
  159. package/dist/project-events.js +4 -2
  160. package/dist/project-events.js.map +1 -1
  161. package/dist/session-bootstrap.d.ts +0 -3
  162. package/dist/session-bootstrap.js +12 -104
  163. package/dist/session-bootstrap.js.map +1 -1
  164. package/dist/session-semantics.d.ts +44 -7
  165. package/dist/session-semantics.js +164 -69
  166. package/dist/session-semantics.js.map +1 -1
  167. package/dist/shell-args.d.ts +1 -0
  168. package/dist/shell-args.js +57 -0
  169. package/dist/shell-args.js.map +1 -0
  170. package/dist/shell-hooks.d.ts +3 -0
  171. package/dist/shell-hooks.js +19 -2
  172. package/dist/shell-hooks.js.map +1 -1
  173. package/dist/statusline-model.d.ts +5 -1
  174. package/dist/statusline-model.js +18 -29
  175. package/dist/statusline-model.js.map +1 -1
  176. package/dist/task-dispatcher.d.ts +3 -3
  177. package/dist/task-dispatcher.js +6 -5
  178. package/dist/task-dispatcher.js.map +1 -1
  179. package/dist/task-workflow.d.ts +2 -0
  180. package/dist/task-workflow.js +15 -6
  181. package/dist/task-workflow.js.map +1 -1
  182. package/dist/tasks.d.ts +4 -1
  183. package/dist/tasks.js +19 -1
  184. package/dist/tasks.js.map +1 -1
  185. package/dist/tmux/doctor.d.ts +1 -0
  186. package/dist/tmux/doctor.js +4 -1
  187. package/dist/tmux/doctor.js.map +1 -1
  188. package/dist/tmux/runtime-manager.d.ts +6 -0
  189. package/dist/tmux/runtime-manager.js +56 -18
  190. package/dist/tmux/runtime-manager.js.map +1 -1
  191. package/dist/tmux/statusline.js +17 -16
  192. package/dist/tmux/statusline.js.map +1 -1
  193. package/dist/tmux/window-open.d.ts +1 -0
  194. package/dist/tmux/window-open.js +10 -10
  195. package/dist/tmux/window-open.js.map +1 -1
  196. package/dist/tool-output-watchers.d.ts +2 -0
  197. package/dist/tool-output-watchers.js +123 -12
  198. package/dist/tool-output-watchers.js.map +1 -1
  199. package/dist/tui/screens/dashboard-renderers.d.ts +2 -21
  200. package/dist/tui/screens/dashboard-renderers.js +126 -32
  201. package/dist/tui/screens/dashboard-renderers.js.map +1 -1
  202. package/dist/tui/screens/overlay-renderers.d.ts +11 -1
  203. package/dist/tui/screens/overlay-renderers.js +68 -28
  204. package/dist/tui/screens/overlay-renderers.js.map +1 -1
  205. package/dist/tui/screens/subscreen-renderers.js +156 -33
  206. package/dist/tui/screens/subscreen-renderers.js.map +1 -1
  207. package/dist/workflow.js +2 -2
  208. package/dist/workflow.js.map +1 -1
  209. package/dist/worktree.d.ts +3 -0
  210. package/dist/worktree.js +27 -2
  211. package/dist/worktree.js.map +1 -1
  212. package/package.json +5 -1
@@ -3,18 +3,58 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
3
3
  import { findMainRepo } from "../worktree.js";
4
4
  import { getStatePath } from "../paths.js";
5
5
  import { wrapCommandWithShellIntegration, wrapInteractiveShellWithIntegration } from "../shell-hooks.js";
6
- function getServiceLaunchCommandLine(metadata) {
6
+ import { markLastUsed } from "../last-used.js";
7
+ export function generateServiceId() {
8
+ return `service-${randomUUID().slice(0, 8)}`;
9
+ }
10
+ export function getServiceLaunchCommandLine(metadata) {
7
11
  return metadata.command === "shell" ? "" : metadata.args?.[0] === "-lc" ? (metadata.args[1] ?? "") : "";
8
12
  }
9
- function buildServiceStateFromMetadata(serviceId, metadata) {
13
+ function shellQuote(value) {
14
+ return `'${value.replace(/'/g, `'\\''`)}'`;
15
+ }
16
+ function buildServiceLaunchScript(commandLine, shellPath) {
17
+ const trimmed = commandLine.trim();
18
+ if (!trimmed)
19
+ return "";
20
+ const quotedShell = shellQuote(shellPath);
21
+ return [
22
+ `${trimmed}`,
23
+ "_aimux_service_status=$?",
24
+ 'if [ "$_aimux_service_status" -ne 0 ]; then',
25
+ ' printf "\\n[aimux] Service command exited with status %s. Dropping into an interactive shell for debugging.\\n" "$_aimux_service_status"',
26
+ ` exec ${quotedShell} -i`,
27
+ "fi",
28
+ 'exit "$_aimux_service_status"',
29
+ ].join("; ");
30
+ }
31
+ export function buildServiceStateFromMetadata(serviceId, metadata, opts = {}) {
10
32
  return {
11
33
  id: serviceId,
12
34
  createdAt: metadata.createdAt,
13
35
  worktreePath: metadata.worktreePath,
36
+ cwd: opts.cwd,
14
37
  label: metadata.label,
15
38
  launchCommandLine: getServiceLaunchCommandLine(metadata),
39
+ tmuxTarget: opts.tmuxTarget,
40
+ retained: opts.retained,
16
41
  };
17
42
  }
43
+ function markServiceUsed(host, serviceId) {
44
+ try {
45
+ if (typeof host.noteLastUsedItem === "function") {
46
+ host.noteLastUsedItem(serviceId);
47
+ return;
48
+ }
49
+ if (host.mode === "dashboard" || host.mode === "project-service") {
50
+ markLastUsed(process.cwd(), {
51
+ itemId: serviceId,
52
+ clientSession: host.tmuxRuntimeManager?.currentClientSession?.() ?? undefined,
53
+ });
54
+ }
55
+ }
56
+ catch { }
57
+ }
18
58
  export function serviceLabelForCommand(commandLine) {
19
59
  const trimmed = commandLine.trim();
20
60
  if (!trimmed)
@@ -22,11 +62,12 @@ export function serviceLabelForCommand(commandLine) {
22
62
  const first = trimmed.split(/\s+/)[0] ?? "service";
23
63
  return first.split("/").pop() ?? first;
24
64
  }
25
- export function createService(host, commandLine, worktreePath) {
26
- const serviceId = `service-${randomUUID().slice(0, 8)}`;
65
+ export function createService(host, commandLine, worktreePath, opts) {
66
+ const serviceId = opts?.serviceId ?? generateServiceId();
27
67
  const cwd = worktreePath ?? process.cwd();
28
68
  const shell = process.env.SHELL || "zsh";
29
69
  const trimmed = commandLine.trim();
70
+ const launchScript = buildServiceLaunchScript(trimmed, shell);
30
71
  let projectRoot = process.cwd();
31
72
  try {
32
73
  projectRoot = findMainRepo(cwd);
@@ -40,7 +81,7 @@ export function createService(host, commandLine, worktreePath) {
40
81
  sessionId: serviceId,
41
82
  tool: "service",
42
83
  command: shell,
43
- args: ["-lc", trimmed],
84
+ args: ["-lc", launchScript],
44
85
  shellPath: shell,
45
86
  })
46
87
  : wrapInteractiveShellWithIntegration({
@@ -55,7 +96,19 @@ export function createService(host, commandLine, worktreePath) {
55
96
  const tmuxSession = host.tmuxRuntimeManager.ensureProjectSession(process.cwd());
56
97
  const shouldRenderPending = host.startedInDashboard && host.mode === "dashboard";
57
98
  if (shouldRenderPending) {
58
- host.setPendingDashboardSessionAction(serviceId, "creating");
99
+ host.setPendingDashboardSessionAction(serviceId, "creating", {
100
+ serviceSeed: {
101
+ id: serviceId,
102
+ command: trimmed ? shell : "shell",
103
+ args: trimmed ? ["-lc", trimmed] : ["-l"],
104
+ createdAt: new Date().toISOString(),
105
+ worktreePath,
106
+ status: "running",
107
+ active: false,
108
+ label,
109
+ optimistic: true,
110
+ },
111
+ });
59
112
  }
60
113
  try {
61
114
  const target = host.tmuxRuntimeManager.createWindow(tmuxSession.sessionName, label, cwd, command, args, {
@@ -95,11 +148,23 @@ export function stopService(host, serviceId) {
95
148
  if (!match || match.metadata.kind !== "service") {
96
149
  throw new Error(`Service "${serviceId}" not found`);
97
150
  }
151
+ markServiceUsed(host, serviceId);
152
+ const cwd = host.tmuxRuntimeManager.displayMessage("#{pane_current_path}", match.target.windowId) ??
153
+ match.metadata.worktreePath;
98
154
  host.offlineServices = [
99
155
  ...host.offlineServices.filter((service) => service.id !== serviceId),
100
- buildServiceStateFromMetadata(serviceId, match.metadata),
156
+ buildServiceStateFromMetadata(serviceId, match.metadata, {
157
+ cwd,
158
+ tmuxTarget: match.target,
159
+ retained: true,
160
+ }),
101
161
  ];
102
- host.tmuxRuntimeManager.killWindow(match.target);
162
+ host.tmuxRuntimeManager.sendKey(match.target, "C-c");
163
+ host.tmuxRuntimeManager.setWindowMetadata(match.target, {
164
+ ...match.metadata,
165
+ worktreePath: match.metadata.worktreePath,
166
+ });
167
+ host.tmuxRuntimeManager.applyManagedAgentWindowPolicy(match.target, "service");
103
168
  host.saveState();
104
169
  host.invalidateDesktopStateSnapshot();
105
170
  host.refreshLocalDashboardModel();
@@ -107,6 +172,23 @@ export function stopService(host, serviceId) {
107
172
  return { serviceId, status: "stopped" };
108
173
  }
109
174
  export function removeOfflineService(host, serviceId) {
175
+ host.removedServiceIds?.add?.(serviceId);
176
+ const offlineService = host.offlineServices.find((service) => service.id === serviceId);
177
+ const existing = host.tmuxRuntimeManager.findManagedWindow(host.tmuxRuntimeManager.getProjectSession(process.cwd()).sessionName, {
178
+ sessionId: serviceId,
179
+ });
180
+ if (existing && existing.metadata.kind === "service") {
181
+ try {
182
+ host.tmuxRuntimeManager.killWindow(existing.target);
183
+ }
184
+ catch { }
185
+ }
186
+ else if (offlineService?.tmuxTarget && host.tmuxRuntimeManager.hasWindow?.(offlineService.tmuxTarget)) {
187
+ try {
188
+ host.tmuxRuntimeManager.killWindow(offlineService.tmuxTarget);
189
+ }
190
+ catch { }
191
+ }
110
192
  host.offlineServices = host.offlineServices.filter((service) => service.id !== serviceId);
111
193
  const statePath = getStatePath();
112
194
  if (existsSync(statePath)) {
@@ -128,21 +210,28 @@ export function resumeOfflineService(host, service) {
128
210
  sessionId: service.id,
129
211
  });
130
212
  if (existing && existing.metadata.kind === "service") {
131
- if (host.tmuxRuntimeManager.isWindowAlive(existing.target)) {
213
+ if (service.retained) {
214
+ service.tmuxTarget = existing.target;
215
+ }
216
+ else if (host.tmuxRuntimeManager.isWindowAlive(existing.target)) {
132
217
  host.offlineServices = host.offlineServices.filter((entry) => entry.id !== service.id);
133
218
  host.saveState();
134
219
  host.invalidateDesktopStateSnapshot();
135
220
  host.refreshLocalDashboardModel();
136
221
  return { serviceId: service.id, status: "running" };
137
222
  }
138
- try {
139
- host.tmuxRuntimeManager.killWindow(existing.target);
223
+ else {
224
+ try {
225
+ host.tmuxRuntimeManager.killWindow(existing.target);
226
+ }
227
+ catch { }
140
228
  }
141
- catch { }
142
229
  }
143
230
  const cwd = service.worktreePath ?? process.cwd();
231
+ const resumeCwd = service.cwd ?? cwd;
144
232
  const shell = process.env.SHELL || "zsh";
145
233
  const launchCommandLine = service.launchCommandLine?.trim() ?? "";
234
+ const launchScript = buildServiceLaunchScript(launchCommandLine, shell);
146
235
  let projectRoot = process.cwd();
147
236
  try {
148
237
  projectRoot = findMainRepo(cwd);
@@ -156,7 +245,7 @@ export function resumeOfflineService(host, service) {
156
245
  sessionId: service.id,
157
246
  tool: "service",
158
247
  command: shell,
159
- args: ["-lc", launchCommandLine],
248
+ args: ["-lc", launchScript],
160
249
  shellPath: shell,
161
250
  })
162
251
  : wrapInteractiveShellWithIntegration({
@@ -169,9 +258,17 @@ export function resumeOfflineService(host, service) {
169
258
  const args = wrapped.args;
170
259
  const label = service.label ?? serviceLabelForCommand(launchCommandLine);
171
260
  const tmuxSession = host.tmuxRuntimeManager.ensureProjectSession(process.cwd());
172
- const target = host.tmuxRuntimeManager.createWindow(tmuxSession.sessionName, label, cwd, command, args, {
173
- detached: true,
174
- });
261
+ const retainedTarget = service.tmuxTarget && host.tmuxRuntimeManager.hasWindow?.(service.tmuxTarget) ? service.tmuxTarget : undefined;
262
+ const target = retainedTarget ??
263
+ host.tmuxRuntimeManager.createWindow(tmuxSession.sessionName, label, resumeCwd, command, args, {
264
+ detached: true,
265
+ });
266
+ if (retainedTarget) {
267
+ if (launchCommandLine) {
268
+ host.tmuxRuntimeManager.sendText(retainedTarget, launchCommandLine);
269
+ host.tmuxRuntimeManager.sendEnter(retainedTarget);
270
+ }
271
+ }
175
272
  host.tmuxRuntimeManager.setWindowMetadata(target, {
176
273
  kind: "service",
177
274
  sessionId: service.id,
@@ -184,6 +281,7 @@ export function resumeOfflineService(host, service) {
184
281
  });
185
282
  host.tmuxRuntimeManager.applyManagedAgentWindowPolicy(target, "service");
186
283
  host.offlineServices = host.offlineServices.filter((entry) => entry.id !== service.id);
284
+ markServiceUsed(host, service.id);
187
285
  host.saveState();
188
286
  host.invalidateDesktopStateSnapshot();
189
287
  host.refreshLocalDashboardModel();
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/multiplexer/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,+BAA+B,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAIzG,SAAS,2BAA2B,CAAC,QAA+C;IAClF,OAAO,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1G,CAAC;AAED,SAAS,6BAA6B,CACpC,SAAiB,EACjB,QAMC;IAED,OAAO;QACL,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,iBAAiB,EAAE,2BAA2B,CAAC,QAAQ,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACnD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,WAAmB,EAAE,YAAqB;IACzF,MAAM,SAAS,GAAG,WAAW,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,+BAA+B,CAAC;YAC9B,WAAW;YACX,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YACtB,SAAS,EAAE,KAAK;SACjB,CAAC;QACJ,CAAC,CAAC,mCAAmC,CAAC;YAClC,WAAW;YACX,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChF,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;IACjF,IAAI,mBAAmB,EAAE,CAAC;QACxB,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;YACtG,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAChD,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;YAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,YAAY;YACZ,KAAK;SACN,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAiB,EAAE,SAAiB;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,WAAW,CAAC,WAAW,EAAE;QAC/E,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,eAAe,GAAG;QACrB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC;QACnF,6BAA6B,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;KACzD,CAAC;IACF,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAiB,EAAE,SAAiB;IACvE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,OAAqB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACxG,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAkC,CAAC;YAC5F,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YACtF,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAiB,EACjB,OAAqB;IAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CACxD,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EACpE;QACE,SAAS,EAAE,OAAO,CAAC,EAAE;KACtB,CACF,CAAC;IACF,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrD,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB;QAC/B,CAAC,CAAC,+BAA+B,CAAC;YAC9B,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC;YAChC,SAAS,EAAE,KAAK;SACjB,CAAC;QACJ,CAAC,CAAC,mCAAmC,CAAC;YAClC,WAAW;YACX,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACP,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QACtG,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAChD,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;QAC5C,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,aAAa,EAAE,SAAS;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACxD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK;KACN,CAAC,CAAC;IACH,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACtC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC9B,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAiB,EACjB,SAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAmB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAC3F,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CACxD,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EACpE;QACE,SAAS,EAAE,SAAS;KACrB,CACF,CAAC;IACF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,aAAa,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IACD,MAAM,QAAQ,GAAG,6BAA6B,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7E,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/multiplexer/services.ts"],"names":[],"mappings":"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"}
@@ -6,14 +6,17 @@ export declare function forkAgent(host: SessionActionsHost, opts: {
6
6
  instruction?: string;
7
7
  targetWorktreePath?: string;
8
8
  open?: boolean;
9
+ extraArgs?: string[];
9
10
  }): Promise<{
10
11
  sessionId: string;
11
12
  threadId: string;
12
13
  }>;
13
14
  export declare function spawnAgent(host: SessionActionsHost, opts: {
14
15
  toolConfigKey: string;
16
+ targetSessionId?: string;
15
17
  targetWorktreePath?: string;
16
18
  open?: boolean;
19
+ extraArgs?: string[];
17
20
  }): Promise<{
18
21
  sessionId: string;
19
22
  }>;
@@ -1,14 +1,16 @@
1
1
  import { waitForSessionExit } from "../dashboard/session-actions.js";
2
2
  import { loadConfig } from "../config.js";
3
- import { isToolAvailable } from "./tool-picker.js";
4
3
  export async function forkAgent(host, opts) {
5
4
  host.syncSessionsFromState();
6
- const result = await host.forkSessionFromSource(opts.sourceSessionId, opts.targetToolConfigKey, opts.targetSessionId, opts.instruction, opts.targetWorktreePath);
5
+ const result = await host.forkSessionFromSource(opts.sourceSessionId, opts.targetToolConfigKey, opts.targetSessionId, opts.instruction, opts.targetWorktreePath, opts.extraArgs ?? []);
7
6
  if (!result) {
8
7
  throw new Error(`Unable to fork session ${opts.sourceSessionId}`);
9
8
  }
10
9
  if (opts.open !== false && result.target) {
11
- if (host.openLiveTmuxWindowForEntry({ id: result.sessionId }) === "missing") {
10
+ const openResult = typeof host.waitAndOpenLiveTmuxWindowForEntry === "function"
11
+ ? await host.waitAndOpenLiveTmuxWindowForEntry({ id: result.sessionId })
12
+ : host.openLiveTmuxWindowForEntry({ id: result.sessionId });
13
+ if (openResult === "missing") {
12
14
  host.tmuxRuntimeManager.openTarget(result.target, { insideTmux: host.tmuxRuntimeManager.isInsideTmux() });
13
15
  }
14
16
  }
@@ -27,14 +29,14 @@ export async function spawnAgent(host, opts) {
27
29
  if (!toolCfg.enabled) {
28
30
  throw new Error(`Tool "${opts.toolConfigKey}" is disabled`);
29
31
  }
30
- if (!isToolAvailable(toolCfg.command)) {
31
- throw new Error(`Tool "${toolCfg.command}" is not installed or not on PATH`);
32
- }
33
32
  const targetWorktreePath = opts.targetWorktreePath === process.cwd() ? undefined : opts.targetWorktreePath;
34
- const transport = host.createSession(toolCfg.command, toolCfg.args, toolCfg.preambleFlag, opts.toolConfigKey, undefined, toolCfg.sessionIdFlag, targetWorktreePath);
33
+ const transport = host.createSession(toolCfg.command, [...toolCfg.args, ...(opts.extraArgs ?? [])], toolCfg.preambleFlag, opts.toolConfigKey, undefined, toolCfg.sessionIdFlag, targetWorktreePath, undefined, opts.targetSessionId);
35
34
  const target = host.sessionTmuxTargets.get(transport.id);
36
35
  if (opts.open !== false && target) {
37
- if (host.openLiveTmuxWindowForEntry({ id: transport.id }) === "missing") {
36
+ const openResult = typeof host.waitAndOpenLiveTmuxWindowForEntry === "function"
37
+ ? await host.waitAndOpenLiveTmuxWindowForEntry({ id: transport.id })
38
+ : host.openLiveTmuxWindowForEntry({ id: transport.id });
39
+ if (openResult === "missing") {
38
40
  host.tmuxRuntimeManager.openTarget(target, { insideTmux: host.tmuxRuntimeManager.isInsideTmux() });
39
41
  }
40
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-actions.js","sourceRoot":"","sources":["../../src/multiplexer/session-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-actions.js","sourceRoot":"","sources":["../../src/multiplexer/session-actions.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export declare function runDashboard(host: SessionLaunchHost): Promise<number>;
7
7
  export declare function runProjectService(host: SessionLaunchHost): Promise<number>;
8
8
  export declare function resumeSessions(host: SessionLaunchHost, toolFilter?: string): Promise<number>;
9
9
  export declare function restoreSessions(host: SessionLaunchHost, toolFilter?: string): Promise<number>;
10
- export declare function createSession(host: SessionLaunchHost, command: string, args: string[], preambleFlag?: string[], toolConfigKey?: string, extraPreamble?: string, sessionIdFlag?: string[], worktreePath?: string, backendSessionIdOverride?: string, sessionIdOverride?: string, detachedInTmux?: boolean): any;
10
+ export declare function createSession(host: SessionLaunchHost, command: string, args: string[], preambleFlag?: string[], toolConfigKey?: string, extraPreamble?: string, sessionIdFlag?: string[], worktreePath?: string, backendSessionIdOverride?: string, sessionIdOverride?: string, detachedInTmux?: boolean, suppressStartupPreamble?: boolean): any;
11
11
  export declare function migrateAgent(host: SessionLaunchHost, sessionId: string, targetWorktreePath: string): Promise<void>;
12
12
  export declare function getSessionWorktreePath(host: SessionLaunchHost, sessionId: string): string | undefined;
13
13
  export declare function getSessionsByWorktree(host: SessionLaunchHost): Map<string | undefined, any[]>;
@@ -4,7 +4,8 @@ import { buildContextPreamble } from "../context/context-bridge.js";
4
4
  import { readHistory } from "../context/history.js";
5
5
  import { findMainRepo } from "../worktree.js";
6
6
  import { TmuxSessionTransport } from "../tmux/session-transport.js";
7
- import { injectClaudeHookArgs } from "../claude-hooks.js";
7
+ import { injectClaudeHookArgs, shouldSkipClaudeSessionIdInjection } from "../claude-hooks.js";
8
+ import { wrapCommandWithManagedLaunchEnv } from "../managed-launch-env.js";
8
9
  import { wrapCommandWithShellIntegration } from "../shell-hooks.js";
9
10
  import { debug } from "../debug.js";
10
11
  import { updateNotificationContext } from "../notification-context.js";
@@ -102,6 +103,8 @@ export async function runDashboard(host) {
102
103
  }, 40);
103
104
  host.mode = "dashboard";
104
105
  host.loadDashboardUiState();
106
+ host.hydrateDashboardScreenState?.();
107
+ host.writeDashboardClientStatuslineFile?.();
105
108
  const primed = await host.refreshDashboardModelFromService(true);
106
109
  if (!primed) {
107
110
  host.refreshLocalDashboardModel();
@@ -110,14 +113,14 @@ export async function runDashboard(host) {
110
113
  .then(async () => {
111
114
  const refreshed = await host.refreshDashboardModelFromService(true);
112
115
  if (refreshed && host.mode === "dashboard") {
113
- host.renderDashboard();
116
+ host.renderCurrentDashboardView();
114
117
  }
115
118
  })
116
119
  .catch(() => { });
117
120
  }
118
121
  host.terminalHost.enterAlternateScreen(true);
119
122
  host.startStatusRefresh();
120
- host.renderDashboard();
123
+ host.renderCurrentDashboardView();
121
124
  const exitCode = await new Promise((resolve) => {
122
125
  host.resolveRun = resolve;
123
126
  });
@@ -132,6 +135,7 @@ export async function runProjectService(host) {
132
135
  host.orchestrationDispatcher = host.createOrchestrationDispatcher();
133
136
  host.writeInstructionFiles();
134
137
  await host.startProjectServices();
138
+ host.startStatusRefresh();
135
139
  host.refreshDesktopStateSnapshot();
136
140
  host.writeStatuslineFile();
137
141
  const exitCode = await new Promise((resolve) => {
@@ -176,7 +180,7 @@ export async function resumeSessions(host, toolFilter) {
176
180
  }
177
181
  const args = host.sessionBootstrap.composeToolArgs(toolCfg, resumeArgs, saved.args);
178
182
  debug(`resuming ${saved.command} with backendSessionId=${bsid ?? "none (fallback)"}`, "session");
179
- host.createSession(saved.command, args, toolCfg.preambleFlag, saved.toolConfigKey, undefined, undefined, saved.worktreePath, saved.backendSessionId);
183
+ host.createSession(saved.command, args, toolCfg.preambleFlag, saved.toolConfigKey, undefined, undefined, saved.worktreePath, saved.backendSessionId, undefined, false, true);
180
184
  }
181
185
  host.openTmuxDashboardTarget();
182
186
  return 0;
@@ -226,28 +230,37 @@ export async function restoreSessions(host, toolFilter) {
226
230
  host.openTmuxDashboardTarget();
227
231
  return 0;
228
232
  }
229
- export function createSession(host, command, args, preambleFlag, toolConfigKey, extraPreamble, sessionIdFlag, worktreePath, backendSessionIdOverride, sessionIdOverride, detachedInTmux = false) {
233
+ export function createSession(host, command, args, preambleFlag, toolConfigKey, extraPreamble, sessionIdFlag, worktreePath, backendSessionIdOverride, sessionIdOverride, detachedInTmux = false, suppressStartupPreamble = false) {
230
234
  const cols = process.stdout.columns ?? 80;
231
235
  const sessionId = sessionIdOverride ?? `${command}-${Math.random().toString(36).slice(2, 8)}`;
232
- const backendSessionId = backendSessionIdOverride ?? (sessionIdFlag ? randomUUID() : undefined);
236
+ if (host.sessions.some((session) => session.id === sessionId)) {
237
+ throw new Error(`Session "${sessionId}" already exists`);
238
+ }
233
239
  const config = loadConfig();
240
+ const toolCfg = toolConfigKey ? config.tools[toolConfigKey] : undefined;
241
+ const isClaudeResumeStyleLaunch = Boolean(toolCfg && toolConfigKey === "claude" && toolCfg.command === command) &&
242
+ shouldSkipClaudeSessionIdInjection(args);
243
+ const effectiveSuppressStartupPreamble = suppressStartupPreamble || isClaudeResumeStyleLaunch;
244
+ const effectiveSessionIdFlag = isClaudeResumeStyleLaunch ? undefined : sessionIdFlag;
245
+ const backendSessionId = backendSessionIdOverride ?? (effectiveSessionIdFlag ? randomUUID() : undefined);
234
246
  const automaticPreambleEnabled = config.runtime.agentPreambleEnabled !== false;
235
- const preamble = host.sessionBootstrap.buildSessionPreamble({
236
- sessionId,
237
- command,
238
- worktreePath,
239
- extraPreamble,
240
- includeAimuxPreamble: automaticPreambleEnabled,
241
- });
242
- const shouldInjectLaunchPreamble = Boolean(preambleFlag && preamble.trim());
247
+ const preamble = effectiveSuppressStartupPreamble
248
+ ? ""
249
+ : host.sessionBootstrap.buildSessionPreamble({
250
+ sessionId,
251
+ command,
252
+ worktreePath,
253
+ extraPreamble,
254
+ includeAimuxPreamble: automaticPreambleEnabled,
255
+ });
256
+ const shouldInjectLaunchPreamble = Boolean(!effectiveSuppressStartupPreamble && preambleFlag && preamble.trim());
243
257
  host.sessionBootstrap.ensurePlanFile(sessionId, command, worktreePath);
244
258
  let finalArgs = shouldInjectLaunchPreamble ? [...args, ...preambleFlag, preamble] : [...args];
245
259
  let launchCommand = command;
246
- if (sessionIdFlag && backendSessionId) {
247
- const expandedFlag = sessionIdFlag.map((a) => a.replace("{sessionId}", backendSessionId));
260
+ if (effectiveSessionIdFlag && backendSessionId) {
261
+ const expandedFlag = effectiveSessionIdFlag.map((a) => a.replace("{sessionId}", backendSessionId));
248
262
  finalArgs = [...finalArgs, ...expandedFlag];
249
263
  }
250
- const toolCfg = toolConfigKey ? loadConfig().tools[toolConfigKey] : undefined;
251
264
  let projectRoot = process.cwd();
252
265
  try {
253
266
  projectRoot = findMainRepo(worktreePath ?? process.cwd());
@@ -262,6 +275,16 @@ export function createSession(host, command, args, preambleFlag, toolConfigKey,
262
275
  backendSessionId,
263
276
  });
264
277
  launchCommand = toolCfg.command;
278
+ const wrapped = wrapCommandWithManagedLaunchEnv({
279
+ command: launchCommand,
280
+ args: finalArgs,
281
+ extraEnv: {
282
+ AIMUX_SESSION_ID: sessionId,
283
+ AIMUX_TOOL: toolConfigKey ?? command,
284
+ },
285
+ });
286
+ launchCommand = wrapped.command;
287
+ finalArgs = wrapped.args;
265
288
  }
266
289
  else if (toolCfg && toolCfg.command === command) {
267
290
  const wrapped = wrapCommandWithShellIntegration({
@@ -299,7 +322,11 @@ export function createSession(host, command, args, preambleFlag, toolConfigKey,
299
322
  host.renderDashboard();
300
323
  }
301
324
  host.saveState();
302
- if (!preambleFlag && !extraPreamble && automaticPreambleEnabled && preamble.trim()) {
325
+ if (!effectiveSuppressStartupPreamble &&
326
+ !preambleFlag &&
327
+ !extraPreamble &&
328
+ automaticPreambleEnabled &&
329
+ preamble.trim()) {
303
330
  const kickoff = host.sessionBootstrap.buildInitialKickoffPrompt(sessionId, preamble);
304
331
  void host.sessionBootstrap.deliverDetachedCodexKickoffPrompt(sessionId, kickoff, 1800);
305
332
  }
@@ -355,7 +382,7 @@ export async function migrateAgent(host, sessionId, targetWorktreePath) {
355
382
  session.kill();
356
383
  await waitForExit().catch(() => { });
357
384
  if (!toolCfg?.preambleFlag) {
358
- createSession(host, session.command, originalArgs, undefined, toolConfigKey, undefined, undefined, effectiveTarget, backendSessionId, sessionId, true);
385
+ createSession(host, session.command, originalArgs, undefined, toolConfigKey, undefined, undefined, effectiveTarget, backendSessionId, sessionId, true, true);
359
386
  const kickoff = host.sessionBootstrap.buildCodexMigrationKickoffPrompt(sessionId, sourceCwd, targetWorktreePath, sourceSnapshot);
360
387
  await host.sessionBootstrap.deliverDetachedCodexKickoffPrompt(sessionId, kickoff, 1800);
361
388
  return;
@@ -382,7 +409,8 @@ export function focusSession(host, index) {
382
409
  if (index < 0 || index >= host.sessions.length)
383
410
  return;
384
411
  host.activeIndex = index;
385
- const sid = host.sessions[index].id;
412
+ const session = host.sessions[index];
413
+ const sid = session.id;
386
414
  host.sessionMRU = [sid, ...host.sessionMRU.filter((id) => id !== sid)];
387
415
  host.agentTracker.markSeen(sid);
388
416
  updateNotificationContext("tui", {
@@ -395,8 +423,21 @@ export function focusSession(host, index) {
395
423
  host.syncTuiNotificationContext(false);
396
424
  const target = host.sessionTmuxTargets.get(sid);
397
425
  if (target) {
398
- host.saveState();
399
- host.selectLinkedOrOpenTarget(target);
426
+ try {
427
+ const resolved = host.tmuxRuntimeManager.getTargetByWindowId(target.sessionName, target.windowId);
428
+ if (resolved) {
429
+ host.saveState();
430
+ host.selectLinkedOrOpenTarget(resolved);
431
+ return;
432
+ }
433
+ }
434
+ catch { }
435
+ }
436
+ if (typeof host.openLiveTmuxWindowForEntry === "function") {
437
+ const result = host.openLiveTmuxWindowForEntry({ id: sid, backendSessionId: session.backendSessionId });
438
+ if (result === "opened") {
439
+ host.saveState();
440
+ }
400
441
  }
401
442
  }
402
443
  export function handleAction(host, action) {