aimux-cli 0.1.15 → 0.1.18

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 (299) hide show
  1. package/README.md +184 -67
  2. package/bin/aimux-dev +10 -0
  3. package/dist/alert-display.d.ts +21 -0
  4. package/dist/alert-display.js +86 -0
  5. package/dist/alert-display.js.map +1 -0
  6. package/dist/attachment-store.d.ts +0 -7
  7. package/dist/attachment-store.js +2 -86
  8. package/dist/attachment-store.js.map +1 -1
  9. package/dist/builtin-metadata-watchers.js +4 -4
  10. package/dist/builtin-metadata-watchers.js.map +1 -1
  11. package/dist/claude-hooks.d.ts +1 -0
  12. package/dist/claude-hooks.js +25 -0
  13. package/dist/claude-hooks.js.map +1 -1
  14. package/dist/config.d.ts +19 -13
  15. package/dist/config.js +28 -14
  16. package/dist/config.js.map +1 -1
  17. package/dist/connection-targets.d.ts +8 -0
  18. package/dist/connection-targets.js +28 -0
  19. package/dist/connection-targets.js.map +1 -0
  20. package/dist/credentials.d.ts +12 -0
  21. package/dist/credentials.js +49 -0
  22. package/dist/credentials.js.map +1 -0
  23. package/dist/daemon.d.ts +23 -0
  24. package/dist/daemon.js +391 -66
  25. package/dist/daemon.js.map +1 -1
  26. package/dist/dashboard/index.d.ts +13 -10
  27. package/dist/dashboard/index.js +3 -26
  28. package/dist/dashboard/index.js.map +1 -1
  29. package/dist/dashboard/order.d.ts +22 -0
  30. package/dist/dashboard/order.js +55 -0
  31. package/dist/dashboard/order.js.map +1 -0
  32. package/dist/dashboard/pending-actions.d.ts +39 -10
  33. package/dist/dashboard/pending-actions.js +166 -36
  34. package/dist/dashboard/pending-actions.js.map +1 -1
  35. package/dist/dashboard/quick-jump.d.ts +2 -1
  36. package/dist/dashboard/quick-jump.js +7 -4
  37. package/dist/dashboard/quick-jump.js.map +1 -1
  38. package/dist/dashboard/session-actions.d.ts +4 -4
  39. package/dist/dashboard/session-actions.js +1 -1
  40. package/dist/dashboard/session-actions.js.map +1 -1
  41. package/dist/dashboard/session-registry.d.ts +4 -3
  42. package/dist/dashboard/session-registry.js +16 -50
  43. package/dist/dashboard/session-registry.js.map +1 -1
  44. package/dist/dashboard/state.d.ts +1 -1
  45. package/dist/dashboard/state.js.map +1 -1
  46. package/dist/dashboard/ui-state-store.d.ts +16 -1
  47. package/dist/dashboard/ui-state-store.js +73 -2
  48. package/dist/dashboard/ui-state-store.js.map +1 -1
  49. package/dist/debug-state.d.ts +97 -0
  50. package/dist/debug-state.js +541 -0
  51. package/dist/debug-state.js.map +1 -0
  52. package/dist/debug.d.ts +38 -0
  53. package/dist/debug.js +219 -15
  54. package/dist/debug.js.map +1 -1
  55. package/dist/default-plugins/gh-pr-context.d.ts +2 -1
  56. package/dist/default-plugins/gh-pr-context.js +17 -11
  57. package/dist/default-plugins/gh-pr-context.js.map +1 -1
  58. package/dist/default-plugins/transcript-length.js +15 -2
  59. package/dist/default-plugins/transcript-length.js.map +1 -1
  60. package/dist/fast-control.js +37 -19
  61. package/dist/fast-control.js.map +1 -1
  62. package/dist/http-client.js +31 -2
  63. package/dist/http-client.js.map +1 -1
  64. package/dist/local-ui-server.d.ts +22 -0
  65. package/dist/local-ui-server.js +186 -0
  66. package/dist/local-ui-server.js.map +1 -0
  67. package/dist/login-flow.d.ts +7 -0
  68. package/dist/login-flow.js +120 -0
  69. package/dist/login-flow.js.map +1 -0
  70. package/dist/main.js +824 -152
  71. package/dist/main.js.map +1 -1
  72. package/dist/managed-launch-env.js +14 -0
  73. package/dist/managed-launch-env.js.map +1 -1
  74. package/dist/metadata-server.d.ts +36 -36
  75. package/dist/metadata-server.js +638 -137
  76. package/dist/metadata-server.js.map +1 -1
  77. package/dist/metadata-store.d.ts +4 -1
  78. package/dist/metadata-store.js +30 -2
  79. package/dist/metadata-store.js.map +1 -1
  80. package/dist/multiplexer/agent-io-methods.d.ts +2 -10
  81. package/dist/multiplexer/agent-io-methods.js +12 -43
  82. package/dist/multiplexer/agent-io-methods.js.map +1 -1
  83. package/dist/multiplexer/archives.js +8 -9
  84. package/dist/multiplexer/archives.js.map +1 -1
  85. package/dist/multiplexer/dashboard-control.js +45 -13
  86. package/dist/multiplexer/dashboard-control.js.map +1 -1
  87. package/dist/multiplexer/dashboard-interaction.d.ts +8 -2
  88. package/dist/multiplexer/dashboard-interaction.js +187 -28
  89. package/dist/multiplexer/dashboard-interaction.js.map +1 -1
  90. package/dist/multiplexer/dashboard-model.d.ts +10 -3
  91. package/dist/multiplexer/dashboard-model.js +417 -35
  92. package/dist/multiplexer/dashboard-model.js.map +1 -1
  93. package/dist/multiplexer/dashboard-ops.d.ts +9 -7
  94. package/dist/multiplexer/dashboard-ops.js +178 -68
  95. package/dist/multiplexer/dashboard-ops.js.map +1 -1
  96. package/dist/multiplexer/dashboard-state-methods.d.ts +2 -1
  97. package/dist/multiplexer/dashboard-state-methods.js +3 -2
  98. package/dist/multiplexer/dashboard-state-methods.js.map +1 -1
  99. package/dist/multiplexer/dashboard-tail-methods.d.ts +22 -10
  100. package/dist/multiplexer/dashboard-tail-methods.js +164 -47
  101. package/dist/multiplexer/dashboard-tail-methods.js.map +1 -1
  102. package/dist/multiplexer/dashboard-view-methods.d.ts +1 -1
  103. package/dist/multiplexer/dashboard-view-methods.js +23 -8
  104. package/dist/multiplexer/dashboard-view-methods.js.map +1 -1
  105. package/dist/multiplexer/graveyard-view-model.d.ts +9 -1
  106. package/dist/multiplexer/graveyard-view-model.js +39 -0
  107. package/dist/multiplexer/graveyard-view-model.js.map +1 -1
  108. package/dist/multiplexer/index.d.ts +15 -12
  109. package/dist/multiplexer/index.js +64 -43
  110. package/dist/multiplexer/index.js.map +1 -1
  111. package/dist/multiplexer/notifications.js +107 -24
  112. package/dist/multiplexer/notifications.js.map +1 -1
  113. package/dist/multiplexer/persistence-methods.d.ts +31 -4
  114. package/dist/multiplexer/persistence-methods.js +304 -308
  115. package/dist/multiplexer/persistence-methods.js.map +1 -1
  116. package/dist/multiplexer/runtime-lifecycle-methods.d.ts +8 -10
  117. package/dist/multiplexer/runtime-lifecycle-methods.js +104 -86
  118. package/dist/multiplexer/runtime-lifecycle-methods.js.map +1 -1
  119. package/dist/multiplexer/runtime-state.d.ts +8 -10
  120. package/dist/multiplexer/runtime-state.js +82 -145
  121. package/dist/multiplexer/runtime-state.js.map +1 -1
  122. package/dist/multiplexer/runtime-sync.d.ts +2 -10
  123. package/dist/multiplexer/runtime-sync.js +3 -18
  124. package/dist/multiplexer/runtime-sync.js.map +1 -1
  125. package/dist/multiplexer/service-state-snapshot.d.ts +2 -4
  126. package/dist/multiplexer/service-state-snapshot.js +4 -51
  127. package/dist/multiplexer/service-state-snapshot.js.map +1 -1
  128. package/dist/multiplexer/services.d.ts +1 -0
  129. package/dist/multiplexer/services.js +55 -5
  130. package/dist/multiplexer/services.js.map +1 -1
  131. package/dist/multiplexer/session-capture.d.ts +1 -0
  132. package/dist/multiplexer/session-capture.js +24 -0
  133. package/dist/multiplexer/session-capture.js.map +1 -0
  134. package/dist/multiplexer/session-launch.d.ts +4 -1
  135. package/dist/multiplexer/session-launch.js +152 -63
  136. package/dist/multiplexer/session-launch.js.map +1 -1
  137. package/dist/multiplexer/session-runtime-core.d.ts +8 -20
  138. package/dist/multiplexer/session-runtime-core.js +40 -135
  139. package/dist/multiplexer/session-runtime-core.js.map +1 -1
  140. package/dist/multiplexer/subscreens.js +10 -3
  141. package/dist/multiplexer/subscreens.js.map +1 -1
  142. package/dist/multiplexer/worktree-graveyard.d.ts +0 -1
  143. package/dist/multiplexer/worktree-graveyard.js +15 -16
  144. package/dist/multiplexer/worktree-graveyard.js.map +1 -1
  145. package/dist/multiplexer/worktrees.js +96 -40
  146. package/dist/multiplexer/worktrees.js.map +1 -1
  147. package/dist/notification-context.js +8 -4
  148. package/dist/notification-context.js.map +1 -1
  149. package/dist/notifications.js +163 -101
  150. package/dist/notifications.js.map +1 -1
  151. package/dist/notify.d.ts +4 -0
  152. package/dist/notify.js +14 -0
  153. package/dist/notify.js.map +1 -1
  154. package/dist/paths.d.ts +32 -7
  155. package/dist/paths.js +82 -58
  156. package/dist/paths.js.map +1 -1
  157. package/dist/pending-actions.d.ts +5 -0
  158. package/dist/pending-actions.js +14 -0
  159. package/dist/pending-actions.js.map +1 -0
  160. package/dist/plugin-runtime.js +9 -2
  161. package/dist/plugin-runtime.js.map +1 -1
  162. package/dist/project-events.d.ts +1 -10
  163. package/dist/project-events.js +0 -10
  164. package/dist/project-events.js.map +1 -1
  165. package/dist/project-scanner.d.ts +2 -3
  166. package/dist/project-scanner.js +58 -129
  167. package/dist/project-scanner.js.map +1 -1
  168. package/dist/project-service-manifest.d.ts +1 -3
  169. package/dist/project-service-manifest.js +1 -3
  170. package/dist/project-service-manifest.js.map +1 -1
  171. package/dist/relay-client.d.ts +30 -0
  172. package/dist/relay-client.js +191 -0
  173. package/dist/relay-client.js.map +1 -0
  174. package/dist/remote-access.d.ts +16 -0
  175. package/dist/remote-access.js +91 -0
  176. package/dist/remote-access.js.map +1 -0
  177. package/dist/runtime-core/exchange-derived.d.ts +2 -0
  178. package/dist/runtime-core/exchange-derived.js +154 -0
  179. package/dist/runtime-core/exchange-derived.js.map +1 -0
  180. package/dist/runtime-core/exchange-import.d.ts +24 -0
  181. package/dist/runtime-core/exchange-import.js +318 -0
  182. package/dist/runtime-core/exchange-import.js.map +1 -0
  183. package/dist/runtime-core/exchange-store.d.ts +157 -0
  184. package/dist/runtime-core/exchange-store.js +453 -0
  185. package/dist/runtime-core/exchange-store.js.map +1 -0
  186. package/dist/runtime-core/topology-services.d.ts +38 -0
  187. package/dist/runtime-core/topology-services.js +171 -0
  188. package/dist/runtime-core/topology-services.js.map +1 -0
  189. package/dist/runtime-core/topology-sessions.d.ts +52 -0
  190. package/dist/runtime-core/topology-sessions.js +239 -0
  191. package/dist/runtime-core/topology-sessions.js.map +1 -0
  192. package/dist/runtime-core/topology-store.d.ts +171 -0
  193. package/dist/runtime-core/topology-store.js +420 -0
  194. package/dist/runtime-core/topology-store.js.map +1 -0
  195. package/dist/runtime-core/topology-worktrees.d.ts +60 -0
  196. package/dist/runtime-core/topology-worktrees.js +200 -0
  197. package/dist/runtime-core/topology-worktrees.js.map +1 -0
  198. package/dist/runtime-migration.d.ts +69 -0
  199. package/dist/runtime-migration.js +399 -0
  200. package/dist/runtime-migration.js.map +1 -0
  201. package/dist/session-bootstrap.d.ts +8 -6
  202. package/dist/session-bootstrap.js +51 -158
  203. package/dist/session-bootstrap.js.map +1 -1
  204. package/dist/session-runtime.d.ts +2 -0
  205. package/dist/session-runtime.js +1 -0
  206. package/dist/session-runtime.js.map +1 -1
  207. package/dist/session-semantics.d.ts +12 -4
  208. package/dist/session-semantics.js +14 -0
  209. package/dist/session-semantics.js.map +1 -1
  210. package/dist/shell-hooks.js +32 -10
  211. package/dist/shell-hooks.js.map +1 -1
  212. package/dist/shell-state.d.ts +2 -0
  213. package/dist/shell-state.js +26 -1
  214. package/dist/shell-state.js.map +1 -1
  215. package/dist/statusline-model.d.ts +10 -2
  216. package/dist/statusline-model.js +106 -30
  217. package/dist/statusline-model.js.map +1 -1
  218. package/dist/task-workflow.d.ts +6 -9
  219. package/dist/task-workflow.js +37 -84
  220. package/dist/task-workflow.js.map +1 -1
  221. package/dist/tasks.d.ts +6 -33
  222. package/dist/tasks.js +46 -88
  223. package/dist/tasks.js.map +1 -1
  224. package/dist/team.d.ts +29 -0
  225. package/dist/team.js +40 -0
  226. package/dist/team.js.map +1 -1
  227. package/dist/threads.d.ts +6 -35
  228. package/dist/threads.js +89 -98
  229. package/dist/threads.js.map +1 -1
  230. package/dist/tmux/inbox-popup.js +37 -15
  231. package/dist/tmux/inbox-popup.js.map +1 -1
  232. package/dist/tmux/runtime-manager.d.ts +3 -0
  233. package/dist/tmux/runtime-manager.js +21 -4
  234. package/dist/tmux/runtime-manager.js.map +1 -1
  235. package/dist/tmux/statusline.js +49 -9
  236. package/dist/tmux/statusline.js.map +1 -1
  237. package/dist/tmux/window-open.js +1 -2
  238. package/dist/tmux/window-open.js.map +1 -1
  239. package/dist/tool-output-watchers.d.ts +0 -18
  240. package/dist/tool-output-watchers.js +0 -322
  241. package/dist/tool-output-watchers.js.map +1 -1
  242. package/dist/tui/screens/dashboard-renderers.js +37 -25
  243. package/dist/tui/screens/dashboard-renderers.js.map +1 -1
  244. package/dist/tui/screens/overlay-renderers.d.ts +2 -0
  245. package/dist/tui/screens/overlay-renderers.js +37 -1
  246. package/dist/tui/screens/overlay-renderers.js.map +1 -1
  247. package/dist/tui/screens/subscreen-renderers.js +7 -0
  248. package/dist/tui/screens/subscreen-renderers.js.map +1 -1
  249. package/dist/worktree.js +17 -0
  250. package/dist/worktree.js.map +1 -1
  251. package/dist-ui/_expo/static/css/web-30453ede1678c16acb08b97e83e8646d.css +1 -0
  252. package/dist-ui/_expo/static/js/web/entry-477c745b2adc79367a4380ecf07d9ff6.js +14620 -0
  253. package/dist-ui/assets/assets/images/icon.a5413dcd2e811c9f2317d01a28118d8a.png +0 -0
  254. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.0a328cd9c1afd0afe8e3b1ec5165b1b4.png +0 -0
  255. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/back-icon.35ba0eaec5a4f5ed12ca16fabeae451d.png +0 -0
  256. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55.png +0 -0
  257. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@2x.png +0 -0
  258. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@3x.png +0 -0
  259. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@4x.png +0 -0
  260. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7.png +0 -0
  261. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@2x.png +0 -0
  262. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@3x.png +0 -0
  263. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@4x.png +0 -0
  264. package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/search-icon.286d67d3f74808a60a78d3ebf1a5fb57.png +0 -0
  265. package/dist-ui/assets/node_modules/expo-router/assets/arrow_down.017bc6ba3fc25503e5eb5e53826d48a8.png +0 -0
  266. package/dist-ui/assets/node_modules/expo-router/assets/error.d1ea1496f9057eb392d5bbf3732a61b7.png +0 -0
  267. package/dist-ui/assets/node_modules/expo-router/assets/file.19eeb73b9593a38f8e9f418337fc7d10.png +0 -0
  268. package/dist-ui/assets/node_modules/expo-router/assets/forward.d8b800c443b8972542883e0b9de2bdc6.png +0 -0
  269. package/dist-ui/assets/node_modules/expo-router/assets/pkg.ab19f4cbc543357183a20571f68380a3.png +0 -0
  270. package/dist-ui/assets/node_modules/expo-router/assets/sitemap.412dd9275b6b48ad28f5e3d81bb1f626.png +0 -0
  271. package/dist-ui/assets/node_modules/expo-router/assets/unmatched.20e71bdf79e3a97bf55fd9e164041578.png +0 -0
  272. package/dist-ui/favicon.ico +0 -0
  273. package/dist-ui/index.html +38 -0
  274. package/dist-ui/metadata.json +1 -0
  275. package/package.json +31 -15
  276. package/dist/agent-message-parts.d.ts +0 -17
  277. package/dist/agent-message-parts.js +0 -31
  278. package/dist/agent-message-parts.js.map +0 -1
  279. package/dist/instance-directory.d.ts +0 -32
  280. package/dist/instance-directory.js +0 -82
  281. package/dist/instance-directory.js.map +0 -1
  282. package/dist/instance-registry.d.ts +0 -39
  283. package/dist/instance-registry.js +0 -208
  284. package/dist/instance-registry.js.map +0 -1
  285. package/dist/multiplexer/session-actions.d.ts +0 -40
  286. package/dist/multiplexer/session-actions.js +0 -110
  287. package/dist/multiplexer/session-actions.js.map +0 -1
  288. package/dist/orchestration-dispatcher.d.ts +0 -25
  289. package/dist/orchestration-dispatcher.js +0 -59
  290. package/dist/orchestration-dispatcher.js.map +0 -1
  291. package/dist/session-input-operations.d.ts +0 -19
  292. package/dist/session-input-operations.js +0 -46
  293. package/dist/session-input-operations.js.map +0 -1
  294. package/dist/session-message-history.d.ts +0 -27
  295. package/dist/session-message-history.js +0 -105
  296. package/dist/session-message-history.js.map +0 -1
  297. package/dist/task-dispatcher.d.ts +0 -64
  298. package/dist/task-dispatcher.js +0 -213
  299. package/dist/task-dispatcher.js.map +0 -1
@@ -1,12 +1,15 @@
1
- import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
1
+ import { existsSync } from "node:fs";
2
2
  import { loadConfig } from "../config.js";
3
3
  import { loadMetadataState, updateSessionMetadata } from "../metadata-store.js";
4
- import { getGraveyardPath, getLocalAimuxDir, getStatePath } from "../paths.js";
5
4
  import { isToolInternalWorktree, listWorktrees as listAllWorktrees } from "../worktree.js";
6
5
  import { isDashboardWindowName } from "../tmux/runtime-manager.js";
7
6
  import { TmuxSessionTransport } from "../tmux/session-transport.js";
8
7
  import { markLastUsed } from "../last-used.js";
9
8
  import { listWorktreeGraveyardPaths } from "./worktree-graveyard.js";
9
+ import { getServiceLaunchCommandLine } from "./services.js";
10
+ import { listTopologySessionStates, moveTopologySessionToGraveyard, upsertTopologySession, } from "../runtime-core/topology-sessions.js";
11
+ import { listTopologyServiceStates } from "../runtime-core/topology-services.js";
12
+ const DASHBOARD_BACKGROUND_REFRESH_MS = 2000;
10
13
  function isAvailableWorktreePath(worktreePath, graveyardPaths = listWorktreeGraveyardPaths()) {
11
14
  if (!worktreePath)
12
15
  return true;
@@ -110,41 +113,6 @@ export function startStatusRefresh(host) {
110
113
  return;
111
114
  host.statusInterval = setInterval(() => {
112
115
  let dashboardNeedsRender = false;
113
- if (host.mode === "project-service") {
114
- host.taskDispatcher?.tick(host.sessions.map((s) => s.id));
115
- host.orchestrationDispatcher?.tick(host.sessions.map((s) => s.id));
116
- }
117
- const events = host.taskDispatcher?.drainEvents() ?? [];
118
- for (const ev of events) {
119
- if (ev.type === "assigned") {
120
- host.footerFlash = `⧫ Task assigned → ${ev.sessionId}`;
121
- }
122
- else if (ev.type === "completed") {
123
- host.footerFlash = `✓ Task done by ${ev.sessionId}`;
124
- }
125
- else if (ev.type === "failed") {
126
- host.footerFlash = `✗ Task failed: ${ev.sessionId}`;
127
- }
128
- else if (ev.type === "review_created") {
129
- host.footerFlash = `⧫ Review created: ${ev.description}`;
130
- }
131
- else if (ev.type === "review_approved") {
132
- host.footerFlash = `✓ Review approved: ${ev.description}`;
133
- }
134
- else if (ev.type === "changes_requested") {
135
- host.footerFlash = `↻ Changes requested: ${ev.description}`;
136
- }
137
- host.footerFlashTicks = 3;
138
- dashboardNeedsRender = true;
139
- }
140
- const orchestrationEvents = host.orchestrationDispatcher?.drainEvents() ?? [];
141
- for (const event of orchestrationEvents) {
142
- if (event.type === "message_delivered") {
143
- host.footerFlash = `✉ Message delivered → ${event.sessionId}`;
144
- host.footerFlashTicks = 3;
145
- dashboardNeedsRender = true;
146
- }
147
- }
148
116
  if (host.dashboardFeedback.tickFlashVisibilityChanged()) {
149
117
  dashboardNeedsRender = true;
150
118
  }
@@ -166,7 +134,7 @@ export function startStatusRefresh(host) {
166
134
  if (host.mode === "dashboard") {
167
135
  const now = Date.now();
168
136
  if (now >= host.dashboardNextBackgroundRefreshAt) {
169
- host.dashboardNextBackgroundRefreshAt = now + 5000;
137
+ host.dashboardNextBackgroundRefreshAt = now + DASHBOARD_BACKGROUND_REFRESH_MS;
170
138
  void host.refreshDashboardModelFromService().then((refreshed) => {
171
139
  if (refreshed || dashboardNeedsRender) {
172
140
  host.renderCurrentDashboardView();
@@ -185,45 +153,38 @@ export function stopStatusRefresh(host) {
185
153
  host.statusInterval = null;
186
154
  }
187
155
  }
188
- export function syncSessionsFromState(host, state = host.constructor.loadState()) {
189
- const liveAgentWindows = restoreTmuxSessionsFromState(host, state);
190
- loadOfflineSessions(host, state, liveAgentWindows);
156
+ export function syncSessionsFromTopology(host) {
157
+ const state = host.constructor.loadState();
158
+ const liveAgentWindows = restoreTmuxSessionsFromTopology(host);
159
+ loadOfflineTopologySessions(host, liveAgentWindows);
191
160
  loadOfflineServices(host, state);
192
161
  host.invalidateDesktopStateSnapshot();
193
162
  }
194
- export function loadOfflineSessions(host, state = host.constructor.loadState(), liveAgentWindows = listLiveAgentWindows(host)) {
195
- if (!state || state.sessions.length === 0) {
163
+ export function loadOfflineTopologySessions(host, liveAgentWindows = listLiveAgentWindows(host)) {
164
+ const savedSessions = listTopologySessionStates({ statuses: ["offline"] });
165
+ if (savedSessions.length === 0) {
196
166
  const changed = host.offlineSessions.length > 0;
197
167
  host.offlineSessions = [];
198
168
  return changed;
199
169
  }
200
170
  const liveIds = new Set(liveAgentWindows.map(({ metadata }) => metadata.sessionId));
201
- const liveBackendIds = new Set(liveAgentWindows
202
- .map(({ metadata }) => metadata.backendSessionId)
203
- .filter((value) => Boolean(value)));
204
171
  const ownedIds = new Set();
205
172
  for (const s of host.sessions)
206
173
  ownedIds.add(s.id);
207
- for (const inst of host.getRemoteInstancesSafe()) {
208
- for (const rs of inst.sessions)
209
- ownedIds.add(rs.id);
210
- }
211
174
  const ownedBackendIds = new Set(host.sessions
212
175
  .map((session) => session.backendSessionId)
213
176
  .filter((value) => Boolean(value)));
214
- const nextOfflineSessions = state.sessions
177
+ const nextOfflineSessions = savedSessions
215
178
  .filter((s) => {
216
179
  if (!isIntentionalOfflineSession(s))
217
180
  return false;
218
181
  if (liveIds.has(s.id))
219
182
  return false;
220
- if (s.backendSessionId && liveBackendIds.has(s.backendSessionId))
221
- return false;
222
183
  if (ownedIds.has(s.id))
223
184
  return false;
224
185
  if (s.backendSessionId && ownedBackendIds.has(s.backendSessionId))
225
186
  return false;
226
- if (host.dashboardPendingActions?.get?.(s.id) === "starting")
187
+ if (host.dashboardPendingActions?.getSessionAction?.(s.id) === "starting")
227
188
  return false;
228
189
  if (!isAvailableWorktreePath(s.worktreePath))
229
190
  return false;
@@ -231,19 +192,20 @@ export function loadOfflineSessions(host, state = host.constructor.loadState(),
231
192
  })
232
193
  .map(offlineSessionState);
233
194
  const previousKey = host.offlineSessions
234
- .map((session) => `${session.id}:${session.label ?? ""}:${session.worktreePath ?? ""}`)
195
+ .map((session) => `${session.id}:${session.label ?? ""}:${session.worktreePath ?? ""}:${session.backendSessionId ?? ""}:${JSON.stringify(session.team ?? null)}`)
235
196
  .join("|");
236
197
  const nextKey = nextOfflineSessions
237
- .map((session) => `${session.id}:${session.label ?? ""}:${session.worktreePath ?? ""}`)
198
+ .map((session) => `${session.id}:${session.label ?? ""}:${session.worktreePath ?? ""}:${session.backendSessionId ?? ""}:${JSON.stringify(session.team ?? null)}`)
238
199
  .join("|");
239
200
  host.offlineSessions = nextOfflineSessions;
240
201
  if (host.offlineSessions.length > 0) {
241
- host.debug?.(`loaded ${host.offlineSessions.length} offline session(s) from state.json`, "session");
202
+ host.debug?.(`loaded ${host.offlineSessions.length} offline session(s) from runtime topology`, "session");
242
203
  }
243
204
  return previousKey !== nextKey;
244
205
  }
245
206
  export function loadOfflineServices(host, state = host.constructor.loadState()) {
246
- const savedServices = state?.services ?? [];
207
+ const topologyServices = listTopologyServiceStates({ statuses: ["stopped", "offline"] });
208
+ const savedServices = topologyServices.length > 0 ? topologyServices : (state?.services ?? []);
247
209
  if (savedServices.length === 0) {
248
210
  const changed = host.offlineServices.length > 0;
249
211
  host.offlineServices = [];
@@ -259,7 +221,7 @@ export function loadOfflineServices(host, state = host.constructor.loadState())
259
221
  const nextOfflineServices = savedServices.filter((service) => {
260
222
  if (liveServiceIds.has(service.id))
261
223
  return false;
262
- if (host.dashboardPendingActions?.get?.(service.id) === "starting")
224
+ if (host.dashboardPendingActions?.getServiceAction?.(service.id) === "starting")
263
225
  return false;
264
226
  if (!isAvailableWorktreePath(service.worktreePath))
265
227
  return false;
@@ -288,7 +250,7 @@ export function buildLiveServiceStates(host) {
288
250
  if (seen.has(metadata.sessionId))
289
251
  continue;
290
252
  seen.add(metadata.sessionId);
291
- const launchCommandLine = metadata.command === "shell" ? "" : metadata.args?.[0] === "-lc" ? (metadata.args[1] ?? "") : "";
253
+ const launchCommandLine = metadata.launchCommandLine?.trim() || getServiceLaunchCommandLine(metadata);
292
254
  liveServices.push({
293
255
  id: metadata.sessionId,
294
256
  createdAt: metadata.createdAt,
@@ -301,8 +263,9 @@ export function buildLiveServiceStates(host) {
301
263
  }
302
264
  return liveServices;
303
265
  }
304
- export function restoreTmuxSessionsFromState(host, state = host.constructor.loadState()) {
305
- const savedById = new Map((state?.sessions ?? []).map((session) => [session.id, session]));
266
+ export function restoreTmuxSessionsFromTopology(host) {
267
+ const savedSessions = listTopologySessionStates({ statuses: ["running", "idle", "offline"] });
268
+ const savedById = new Map(savedSessions.map((session) => [session.id, session]));
306
269
  const cols = process.stdout.columns ?? 80;
307
270
  const rows = process.stdout.rows ?? 24;
308
271
  const liveAgentWindows = listLiveAgentWindows(host);
@@ -330,9 +293,8 @@ export function restoreTmuxSessionsFromState(host, state = host.constructor.load
330
293
  if (existing)
331
294
  continue;
332
295
  const transport = new TmuxSessionTransport(metadata.sessionId, metadata.command, target, host.tmuxRuntimeManager, cols, rows);
333
- transport.backendSessionId = metadata.backendSessionId;
334
296
  host.sessionTmuxTargets.set(metadata.sessionId, target);
335
- host.registerManagedSession(transport, metadata.args, metadata.toolConfigKey, metadata.worktreePath, metadata.role, metadata.createdAt ? Date.parse(metadata.createdAt) : undefined);
297
+ host.registerManagedSession(transport, metadata.args, metadata.toolConfigKey, metadata.worktreePath, metadata.role, metadata.createdAt ? Date.parse(metadata.createdAt) : undefined, metadata.team);
336
298
  const saved = savedById.get(metadata.sessionId);
337
299
  const label = metadata.label ?? saved?.label;
338
300
  if (label) {
@@ -343,7 +305,6 @@ export function restoreTmuxSessionsFromState(host, state = host.constructor.load
343
305
  }
344
306
  host.syncTmuxWindowMetadata(metadata.sessionId);
345
307
  }
346
- host.writeSessionsFile?.();
347
308
  host.updateContextWatcherSessions?.();
348
309
  return liveAgentWindows;
349
310
  }
@@ -351,6 +312,7 @@ export function stopSessionToOffline(host, session) {
351
312
  if (host.stoppingSessionIds.has(session.id))
352
313
  return;
353
314
  markLifecycleUsed(host, session.id);
315
+ const backendSessionId = session.backendSessionId;
354
316
  const offlineEntry = {
355
317
  id: session.id,
356
318
  tool: session.command,
@@ -359,16 +321,22 @@ export function stopSessionToOffline(host, session) {
359
321
  args: host.sessionOriginalArgs.get(session.id) ?? [],
360
322
  lifecycle: "offline",
361
323
  createdAt: session.startTime ? new Date(session.startTime).toISOString() : undefined,
362
- backendSessionId: session.backendSessionId,
324
+ backendSessionId,
325
+ team: session.team,
363
326
  worktreePath: host.sessionWorktreePaths.get(session.id),
364
327
  label: host.getSessionLabel(session.id),
365
328
  headline: host.deriveHeadline(session.id),
366
329
  };
367
- if (!host.offlineSessions.some((entry) => entry.id === session.id)) {
330
+ const existingIndex = host.offlineSessions.findIndex((entry) => entry.id === session.id);
331
+ if (existingIndex >= 0) {
332
+ host.offlineSessions[existingIndex] = { ...host.offlineSessions[existingIndex], ...offlineEntry };
333
+ }
334
+ else {
368
335
  host.offlineSessions.push(offlineEntry);
369
336
  }
370
337
  host.stoppingSessionIds.add(session.id);
371
338
  host.startedInDashboard = true;
339
+ upsertTopologySession(offlineEntry, "offline");
372
340
  host.saveState();
373
341
  session.kill();
374
342
  host.debug?.(`stopped session ${session.id} → offline`, "session");
@@ -390,30 +358,18 @@ export function adjustAfterRemove(host, hasWorktrees) {
390
358
  }
391
359
  }
392
360
  }
393
- export function graveyardSession(host, sessionId) {
394
- const session = host.offlineSessions.find((s) => s.id === sessionId);
361
+ export function graveyardSession(host, sessionId, _sessionSeed) {
362
+ const session = host.offlineSessions.find((s) => s.id === sessionId) ??
363
+ listTopologySessionStates({ statuses: ["running", "idle", "offline"] }).find((s) => s.id === sessionId);
395
364
  if (!session)
396
365
  return;
397
366
  markLifecycleUsed(host, sessionId);
398
367
  host.offlineSessions = host.offlineSessions.filter((s) => s.id !== sessionId);
399
- const graveyardPath = getGraveyardPath();
400
- let graveyard = [];
401
- if (existsSync(graveyardPath)) {
402
- try {
403
- graveyard = JSON.parse(readFileSync(graveyardPath, "utf-8"));
404
- }
405
- catch { }
406
- }
407
- graveyard.push({ ...session, id: session.id });
408
- writeFileSync(graveyardPath, JSON.stringify(graveyard, null, 2) + "\n");
409
- const statePath = getStatePath();
410
- if (existsSync(statePath)) {
411
- try {
412
- const state = JSON.parse(readFileSync(statePath, "utf-8"));
413
- state.sessions = state.sessions.filter((s) => s.id !== sessionId);
414
- writeFileSync(statePath, JSON.stringify(state, null, 2) + "\n");
415
- }
416
- catch { }
368
+ moveTopologySessionToGraveyard(sessionId);
369
+ host.invalidateDesktopStateSnapshot?.();
370
+ host.writeStatuslineFile?.();
371
+ if (host.mode === "dashboard") {
372
+ host.renderCurrentDashboardView?.();
417
373
  }
418
374
  host.debug?.(`graveyarded session ${sessionId}`, "session");
419
375
  }
@@ -443,7 +399,6 @@ export function evictZombieSession(host, runtime) {
443
399
  }
444
400
  host.stoppingSessionIds.delete(runtime.id);
445
401
  host.sessionTmuxTargets.delete(runtime.id);
446
- host.writeSessionsFile();
447
402
  host.updateContextWatcherSessions();
448
403
  host.saveState();
449
404
  }
@@ -464,16 +419,20 @@ export function resumeOfflineSession(host, session) {
464
419
  return;
465
420
  const derived = loadMetadataState().sessions[session.id]?.derived;
466
421
  const relaunchFresh = derived?.activity === "error" || derived?.attention === "error";
467
- const useBackendResume = !relaunchFresh && host.sessionBootstrap.canResumeWithBackendSessionId(toolCfg, session.backendSessionId);
422
+ const backendSessionId = session.backendSessionId;
423
+ const useBackendResume = !relaunchFresh && host.sessionBootstrap.canResumeWithBackendSessionId(toolCfg, backendSessionId);
468
424
  let actionArgs;
469
425
  if (useBackendResume) {
470
- actionArgs = toolCfg.resumeArgs.map((a) => a.replace("{sessionId}", session.backendSessionId));
426
+ actionArgs = toolCfg.resumeArgs.map((a) => a.replace("{sessionId}", backendSessionId));
471
427
  }
472
428
  else if (relaunchFresh) {
473
429
  actionArgs = [];
474
430
  }
475
431
  else {
476
- actionArgs = [...(toolCfg.resumeFallback ?? [])];
432
+ // Targeted dashboard restore must never use "latest session" style fallbacks
433
+ // such as Claude --continue or Codex resume --last; those can resurrect the
434
+ // wrong agent after a crash or stale-state mismatch.
435
+ throw new Error(`Cannot restore session "${session.id}" without an exact resumable backend session id for "${session.toolConfigKey}"`);
477
436
  }
478
437
  const args = [...(toolCfg.args ?? []), ...actionArgs];
479
438
  if (relaunchFresh) {
@@ -492,31 +451,42 @@ export function resumeOfflineSession(host, session) {
492
451
  if (preservedLabel) {
493
452
  host.sessionLabels.set(session.id, preservedLabel);
494
453
  }
495
- host.debug?.(`resuming offline session ${session.id} (${relaunchFresh ? "fresh" : useBackendResume ? `backend=${session.backendSessionId ?? "none"}` : "fallback"})`, "session");
496
- host.createSession(session.command, args, toolCfg.preambleFlag, session.toolConfigKey, undefined, undefined, session.worktreePath, useBackendResume ? session.backendSessionId : undefined, session.id, true, !relaunchFresh);
454
+ host.debug?.(`resuming offline session ${session.id} (${relaunchFresh ? "fresh" : useBackendResume ? `backend=${backendSessionId ?? "none"}` : "fallback"})`, "session");
455
+ host.createSession(session.command, args, toolCfg.preambleFlag, session.toolConfigKey, undefined, undefined, session.worktreePath, useBackendResume ? backendSessionId : undefined, session.id, true, useBackendResume, session.team);
456
+ }
457
+ export function recordSessionBackendSessionId(host, sessionId, backendSessionId) {
458
+ const normalizedBackendSessionId = backendSessionId.trim();
459
+ if (!sessionId.trim()) {
460
+ throw new Error("sessionId is required");
461
+ }
462
+ if (!normalizedBackendSessionId) {
463
+ throw new Error("backendSessionId is required");
464
+ }
465
+ const runtime = host.sessions.find((session) => session.id === sessionId);
466
+ const offline = host.offlineSessions.find((session) => session.id === sessionId);
467
+ if (!runtime && !offline) {
468
+ throw new Error(`Agent "${sessionId}" is not managed by this runtime`);
469
+ }
470
+ const existing = runtime?.backendSessionId ?? offline?.backendSessionId;
471
+ if (existing && existing !== normalizedBackendSessionId) {
472
+ throw new Error(`Agent "${sessionId}" already has backend session "${existing}", cannot replace with "${normalizedBackendSessionId}"`);
473
+ }
474
+ const selectedBackendSessionId = existing ?? normalizedBackendSessionId;
475
+ if (runtime) {
476
+ runtime.backendSessionId = selectedBackendSessionId;
477
+ host.syncTmuxWindowMetadata?.(sessionId);
478
+ }
479
+ if (offline) {
480
+ offline.backendSessionId = selectedBackendSessionId;
481
+ }
482
+ host.saveState?.();
483
+ host.invalidateDesktopStateSnapshot?.();
484
+ host.writeStatuslineFile?.();
485
+ return { sessionId, backendSessionId: selectedBackendSessionId };
497
486
  }
498
487
  export function startHeartbeat(host) {
499
488
  host.runtimeSync.startHeartbeat();
500
489
  }
501
- export function handleSessionClaimed(host, sessionId) {
502
- const session = host.sessions.find((s) => s.id === sessionId);
503
- if (!session)
504
- return;
505
- host.debug?.(`session ${sessionId} was claimed by another instance, killing local PTY`, "instance");
506
- session.kill();
507
- const idx = host.sessions.indexOf(session);
508
- if (idx >= 0) {
509
- host.sessions.splice(idx, 1);
510
- host.sessionToolKeys.delete(sessionId);
511
- host.sessionOriginalArgs.delete(sessionId);
512
- host.sessionWorktreePaths.delete(sessionId);
513
- host.sessionTmuxTargets.delete(sessionId);
514
- }
515
- if (host.activeIndex >= host.sessions.length) {
516
- host.activeIndex = Math.max(0, host.sessions.length - 1);
517
- }
518
- host.renderDashboard();
519
- }
520
490
  export function stopHeartbeat(host) {
521
491
  host.runtimeSync.stopHeartbeat();
522
492
  }
@@ -526,39 +496,6 @@ export function startProjectServiceRefresh(host) {
526
496
  export function stopProjectServiceRefresh(host) {
527
497
  host.runtimeSync.stopProjectServiceRefresh();
528
498
  }
529
- export function getRemoteInstancesSafe(host) {
530
- return host.instanceDirectory.getRemoteInstancesSafe(host.instanceId, process.cwd());
531
- }
532
- export function getRemoteOwnedSessionKeys(host) {
533
- return host.instanceDirectory.getRemoteOwnedSessionKeys(host.instanceId, process.cwd());
534
- }
535
- export function getInstanceSessionRefs(host) {
536
- return host.sessions.map((s) => ({
537
- id: s.id,
538
- tool: s.command,
539
- backendSessionId: s.backendSessionId,
540
- worktreePath: host.sessionWorktreePaths.get(s.id),
541
- }));
542
- }
543
- export function writeSessionsFile(host) {
544
- const dir = getLocalAimuxDir();
545
- if (!existsSync(dir))
546
- mkdirSync(dir, { recursive: true });
547
- const localSessions = host.sessions.map((s) => ({
548
- id: s.id,
549
- tool: s.command,
550
- backendSessionId: s.backendSessionId,
551
- worktreePath: host.sessionWorktreePaths.get(s.id),
552
- }));
553
- const data = host.instanceDirectory.buildSessionsFileEntries(localSessions, host.instanceDirectory.getRemoteInstancesSafe(host.instanceId, process.cwd()));
554
- writeFileSync(`${dir}/sessions.json`, JSON.stringify(data, null, 2) + "\n");
555
- }
556
- export function removeSessionsFile() {
557
- try {
558
- unlinkSync(`${getLocalAimuxDir()}/sessions.json`);
559
- }
560
- catch { }
561
- }
562
499
  export function listDesktopWorktrees(_host) {
563
500
  return listAllWorktrees().filter((wt) => !wt.isBare && !isToolInternalWorktree(wt));
564
501
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../../src/multiplexer/runtime-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../../src/multiplexer/runtime-state.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,14 @@
1
- import type { InstanceDirectory } from "../instance-directory.js";
2
- import type { InstanceSessionRef } from "../instance-registry.js";
3
1
  export declare class MultiplexerRuntimeSync {
4
2
  private readonly deps;
5
3
  private heartbeatInterval;
6
4
  private projectServiceInterval;
7
5
  constructor(deps: {
8
- instanceDirectory: InstanceDirectory;
9
- instanceId: string;
10
6
  cwd: string;
11
7
  getMode: () => "dashboard" | "project-service";
12
- getConfirmedRegistered: () => Set<string>;
13
- setConfirmedRegistered: (value: Set<string>) => void;
14
- getInstanceSessionRefs: () => InstanceSessionRef[];
15
- syncSessionsFromState: () => void;
16
- loadOfflineSessions: () => boolean;
8
+ syncSessionsFromTopology: () => void;
9
+ loadOfflineTopologySessions: () => boolean;
17
10
  renderCurrentDashboardView: () => void;
18
11
  renderDashboard: () => void;
19
- handleSessionClaimed: (sessionId: string) => void;
20
12
  writeStatuslineFile: () => void;
21
13
  });
22
14
  startHeartbeat(): void;
@@ -10,25 +10,10 @@ export class MultiplexerRuntimeSync {
10
10
  return;
11
11
  this.heartbeatInterval = setInterval(() => {
12
12
  if (this.deps.getMode() === "project-service") {
13
- this.deps.syncSessionsFromState();
13
+ this.deps.syncSessionsFromTopology();
14
14
  return;
15
15
  }
16
- let dashboardNeedsRender = false;
17
- const sessions = this.deps.getInstanceSessionRefs();
18
- this.deps.instanceDirectory
19
- .reconcileHeartbeat(this.deps.instanceId, sessions, this.deps.cwd, this.deps.getConfirmedRegistered())
20
- .then((result) => {
21
- for (const id of result.claimedIds) {
22
- this.deps.handleSessionClaimed(id);
23
- dashboardNeedsRender = true;
24
- }
25
- this.deps.setConfirmedRegistered(result.confirmedIds);
26
- if (dashboardNeedsRender && this.deps.getMode() === "dashboard") {
27
- this.deps.renderCurrentDashboardView();
28
- }
29
- })
30
- .catch(() => { });
31
- const offlineChanged = this.deps.loadOfflineSessions();
16
+ const offlineChanged = this.deps.loadOfflineTopologySessions();
32
17
  if (offlineChanged && this.deps.getMode() === "dashboard") {
33
18
  this.deps.renderCurrentDashboardView();
34
19
  }
@@ -44,7 +29,7 @@ export class MultiplexerRuntimeSync {
44
29
  if (this.projectServiceInterval)
45
30
  return;
46
31
  this.projectServiceInterval = setInterval(() => {
47
- this.deps.syncSessionsFromState();
32
+ this.deps.syncSessionsFromTopology();
48
33
  }, 2000);
49
34
  }
50
35
  stopProjectServiceRefresh() {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-sync.js","sourceRoot":"","sources":["../../src/multiplexer/runtime-sync.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,sBAAsB;IAKd;IAJX,iBAAiB,GAA0C,IAAI,CAAC;IAChE,sBAAsB,GAA0C,IAAI,CAAC;IAE7E,YACmB,IAchB;QAdgB,SAAI,GAAJ,IAAI,CAcpB;IACA,CAAC;IAEJ,cAAc;QACZ,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,iBAAiB,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,oBAAoB,GAAG,KAAK,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,iBAAiB;iBACxB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;iBACrG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBACnC,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtD,IAAI,oBAAoB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;oBAChE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvD,IAAI,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACzC,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACxC,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,yBAAyB;QACvB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"runtime-sync.js","sourceRoot":"","sources":["../../src/multiplexer/runtime-sync.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAsB;IAKd;IAJX,iBAAiB,GAA0C,IAAI,CAAC;IAChE,sBAAsB,GAA0C,IAAI,CAAC;IAE7E,YACmB,IAQhB;QARgB,SAAI,GAAJ,IAAI,CAQpB;IACA,CAAC;IAEJ,cAAc;QACZ,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,iBAAiB,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAC/D,IAAI,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACzC,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACxC,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACvC,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,yBAAyB;QACvB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;CACF"}
@@ -1,14 +1,12 @@
1
1
  import type { TmuxRuntimeManager } from "../tmux/runtime-manager.js";
2
- import type { SavedState, ServiceState, SessionState } from "./index.js";
2
+ import type { SavedState, ServiceState } from "./index.js";
3
3
  export declare function mergeRuntimeSnapshots(state: SavedState | null, snapshots: {
4
- sessions?: SessionState[];
5
4
  services?: ServiceState[];
6
5
  }, cwd: string, savedAt?: string): SavedState;
7
6
  export declare function mergeServiceSnapshots(state: SavedState | null, snapshots: ServiceState[], cwd: string, savedAt?: string): SavedState;
8
- export declare function snapshotProjectAgentWindows(projectRoot: string, tmux: TmuxRuntimeManager): SessionState[];
9
7
  export declare function snapshotProjectServiceWindows(projectRoot: string, tmux: TmuxRuntimeManager): ServiceState[];
10
8
  export declare function persistProjectRuntimeSnapshotsBeforeTmuxStop(projectRoot: string, tmux: TmuxRuntimeManager): {
11
- sessions: SessionState[];
9
+ sessions: [];
12
10
  services: ServiceState[];
13
11
  };
14
12
  export declare function persistProjectServiceSnapshotsBeforeRuntimeStop(projectRoot: string, tmux: TmuxRuntimeManager): ServiceState[];