aimux-cli 0.1.16 → 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 +821 -151
  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 +28 -12
  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
@@ -0,0 +1,541 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { resolve } from "node:path";
4
+ import { getReadOnlyProjectPathsFor } from "./paths.js";
5
+ import { TmuxRuntimeManager } from "./tmux/runtime-manager.js";
6
+ import { listWorktrees } from "./worktree.js";
7
+ import { RuntimeTopologyStore } from "./runtime-core/topology-store.js";
8
+ import { RuntimeExchangeStore } from "./runtime-core/exchange-store.js";
9
+ function asObject(value) {
10
+ if (!value || typeof value !== "object" || Array.isArray(value))
11
+ return undefined;
12
+ return value;
13
+ }
14
+ function asArray(value) {
15
+ return Array.isArray(value) ? value : [];
16
+ }
17
+ function getString(record, key) {
18
+ const value = record?.[key];
19
+ return typeof value === "string" ? value : undefined;
20
+ }
21
+ function readJson(path) {
22
+ if (!existsSync(path))
23
+ return { status: "missing", path };
24
+ try {
25
+ return { status: "found", path, value: JSON.parse(readFileSync(path, "utf8")) };
26
+ }
27
+ catch (err) {
28
+ return {
29
+ status: "error",
30
+ path,
31
+ error: err instanceof Error ? err.message : String(err),
32
+ };
33
+ }
34
+ }
35
+ function readRuntimeTopology(path) {
36
+ if (!existsSync(path))
37
+ return { status: "missing", path };
38
+ try {
39
+ return { status: "found", path, value: new RuntimeTopologyStore(path).read() };
40
+ }
41
+ catch (err) {
42
+ return {
43
+ status: "error",
44
+ path,
45
+ error: err instanceof Error ? err.message : String(err),
46
+ };
47
+ }
48
+ }
49
+ function readRuntimeExchange(path) {
50
+ if (!existsSync(path))
51
+ return { status: "missing", path };
52
+ try {
53
+ return { status: "found", path, value: new RuntimeExchangeStore(path).read() };
54
+ }
55
+ catch (err) {
56
+ return {
57
+ status: "error",
58
+ path,
59
+ error: err instanceof Error ? err.message : String(err),
60
+ };
61
+ }
62
+ }
63
+ function normalizePathLike(value) {
64
+ if (value === "~")
65
+ return homedir();
66
+ if (value.startsWith("~/"))
67
+ return resolve(homedir(), value.slice(2));
68
+ return resolve(value);
69
+ }
70
+ function looksPathLike(value) {
71
+ return value.includes("/") || value.startsWith("~");
72
+ }
73
+ function matchesString(candidate, target) {
74
+ if (!candidate)
75
+ return false;
76
+ if (candidate === target)
77
+ return true;
78
+ if (looksPathLike(candidate) || looksPathLike(target)) {
79
+ return normalizePathLike(candidate) === normalizePathLike(target);
80
+ }
81
+ return false;
82
+ }
83
+ function serviceCanonical(id, worktreePath) {
84
+ return id ? `service:${id}` : `service:${worktreePath ?? "unknown"}`;
85
+ }
86
+ function sessionCanonical(id, backendSessionId) {
87
+ if (id)
88
+ return `session:${id}`;
89
+ if (backendSessionId)
90
+ return `backend-session:${backendSessionId}`;
91
+ return "session:unknown";
92
+ }
93
+ function worktreeCanonical(path, name) {
94
+ return `worktree:${path ?? name ?? "unknown"}`;
95
+ }
96
+ function addMatch(matches, seen, match) {
97
+ const key = `${match.canonicalKey}:${match.source}:${match.kind}:${match.id ?? ""}:${match.backendSessionId ?? ""}`;
98
+ if (seen.has(key))
99
+ return;
100
+ seen.add(key);
101
+ matches.push(match);
102
+ }
103
+ function sourceUnavailable(reason) {
104
+ return { status: "unavailable", reason };
105
+ }
106
+ function filterSavedState(source, target, matches, seen) {
107
+ if (source.status !== "found")
108
+ return { ...source, value: undefined };
109
+ const root = asObject(source.value);
110
+ const services = asArray(root?.services).filter((entry) => {
111
+ const record = asObject(entry);
112
+ const id = getString(record, "id");
113
+ const worktreePath = getString(record, "worktreePath");
114
+ const cwd = getString(record, "cwd");
115
+ const label = getString(record, "label");
116
+ const matched = matchesString(id, target) ||
117
+ matchesString(worktreePath, target) ||
118
+ matchesString(cwd, target) ||
119
+ matchesString(label, target);
120
+ if (matched) {
121
+ addMatch(matches, seen, {
122
+ canonicalKey: serviceCanonical(id, worktreePath),
123
+ kind: "service",
124
+ source: "savedState",
125
+ id,
126
+ worktreePath,
127
+ label,
128
+ raw: entry,
129
+ });
130
+ }
131
+ return matched;
132
+ });
133
+ return { status: "found", path: source.path, value: { services } };
134
+ }
135
+ function filterMetadata(source, target, matches, seen) {
136
+ if (source.status !== "found")
137
+ return { ...source, value: undefined };
138
+ const sessionsRecord = asObject(asObject(source.value)?.sessions);
139
+ const sessions = Object.entries(sessionsRecord ?? {})
140
+ .filter(([sessionId, entry]) => {
141
+ const record = asObject(entry);
142
+ const context = asObject(record?.context);
143
+ const worktreePath = getString(context, "worktreePath");
144
+ const worktreeName = getString(context, "worktreeName");
145
+ const branch = getString(context, "branch");
146
+ const cwd = getString(context, "cwd");
147
+ const matched = matchesString(sessionId, target) ||
148
+ matchesString(worktreePath, target) ||
149
+ matchesString(worktreeName, target) ||
150
+ matchesString(branch, target) ||
151
+ matchesString(cwd, target);
152
+ if (matched) {
153
+ addMatch(matches, seen, {
154
+ canonicalKey: sessionCanonical(sessionId),
155
+ kind: "session",
156
+ source: "metadata",
157
+ id: sessionId,
158
+ worktreePath,
159
+ worktreeName,
160
+ raw: entry,
161
+ });
162
+ }
163
+ return matched;
164
+ })
165
+ .map(([sessionId, entry]) => ({ sessionId, ...(asObject(entry) ?? {}) }));
166
+ return { status: "found", path: source.path, value: { sessions } };
167
+ }
168
+ const DEBUG_STATE_SOURCE_ROLES = {
169
+ savedState: {
170
+ role: "legacy",
171
+ authority: "runtime-topology.yaml for services",
172
+ note: "legacy service snapshot evidence; it must not create lifecycle truth",
173
+ },
174
+ runtimeTopology: {
175
+ role: "authority",
176
+ authority: "runtime-topology.yaml",
177
+ note: "authoritative agents, services, worktrees, lifecycle, graveyard, and bindings",
178
+ },
179
+ metadata: {
180
+ role: "projection",
181
+ authority: "runtime-topology.yaml and runtime-exchange.yaml",
182
+ note: "decorates known sessions only; hidden lifecycle and backend identity fields are ignored",
183
+ },
184
+ tmux: {
185
+ role: "substrate",
186
+ authority: "runtime-topology.yaml",
187
+ note: "live tmux window evidence and repair input, not durable lifecycle authority",
188
+ },
189
+ gitWorktrees: {
190
+ role: "substrate",
191
+ authority: "runtime-topology.yaml for aimux worktree lifecycle",
192
+ note: "git worktree substrate evidence; aimux lifecycle state lives in topology",
193
+ },
194
+ graveyard: {
195
+ role: "authority",
196
+ authority: "runtime-topology.yaml",
197
+ note: "filtered topology sessions with graveyard status",
198
+ },
199
+ worktreeGraveyard: {
200
+ role: "authority",
201
+ authority: "runtime-topology.yaml",
202
+ note: "topology-owned worktree graveyard entries; git path existence gates resurrection",
203
+ },
204
+ notifications: {
205
+ role: "projection",
206
+ authority: "runtime-exchange.yaml",
207
+ note: "notification rows are exchange threads/messages/inbox entries tagged as notifications",
208
+ },
209
+ operationFailures: {
210
+ role: "projection",
211
+ authority: "runtime-topology.yaml plus operation execution results",
212
+ note: "dashboard-facing failure projection, not lifecycle authority",
213
+ },
214
+ runtimeRows: {
215
+ role: "unavailable",
216
+ note: "live runtime-only view unavailable to standalone debug-state",
217
+ },
218
+ pendingActions: {
219
+ role: "unavailable",
220
+ note: "in-memory dashboard optimism unavailable to standalone debug-state",
221
+ },
222
+ dashboardSnapshot: {
223
+ role: "unavailable",
224
+ note: "project-service/dashboard projection unavailable to standalone debug-state",
225
+ },
226
+ };
227
+ function filterTmux(tmuxWindows, paths, target, matches, seen) {
228
+ let windows = tmuxWindows;
229
+ if (!windows) {
230
+ try {
231
+ windows = new TmuxRuntimeManager().listProjectManagedWindows(paths.repoRoot);
232
+ }
233
+ catch (err) {
234
+ return {
235
+ status: "error",
236
+ error: err instanceof Error ? err.message : String(err),
237
+ };
238
+ }
239
+ }
240
+ if (windows instanceof Error)
241
+ return { status: "error", error: windows.message };
242
+ const filtered = windows.filter((entry) => {
243
+ const metadata = entry.metadata;
244
+ const matched = matchesString(metadata.sessionId, target) ||
245
+ matchesString(metadata.backendSessionId, target) ||
246
+ matchesString(metadata.worktreePath, target) ||
247
+ matchesString(metadata.label, target) ||
248
+ matchesString(metadata.launchCommandLine, target) ||
249
+ matchesString(entry.target.windowName, target);
250
+ if (matched) {
251
+ addMatch(matches, seen, {
252
+ canonicalKey: metadata.kind === "service"
253
+ ? serviceCanonical(metadata.sessionId, metadata.worktreePath)
254
+ : sessionCanonical(metadata.sessionId, metadata.backendSessionId),
255
+ kind: "tmux-window",
256
+ source: "tmux",
257
+ id: metadata.sessionId,
258
+ backendSessionId: metadata.backendSessionId,
259
+ worktreePath: metadata.worktreePath,
260
+ label: metadata.label,
261
+ raw: entry,
262
+ });
263
+ }
264
+ return matched;
265
+ });
266
+ return { status: "found", value: { windows: filtered } };
267
+ }
268
+ function filterGitWorktrees(worktreesInput, paths, target, matches, seen) {
269
+ let worktrees = worktreesInput;
270
+ if (!worktrees) {
271
+ try {
272
+ worktrees = listWorktrees(paths.repoRoot);
273
+ }
274
+ catch (err) {
275
+ return {
276
+ status: "error",
277
+ error: err instanceof Error ? err.message : String(err),
278
+ };
279
+ }
280
+ }
281
+ if (worktrees instanceof Error)
282
+ return { status: "error", error: worktrees.message };
283
+ const filtered = worktrees.filter((entry) => {
284
+ const matched = matchesString(entry.name, target) || matchesString(entry.path, target) || matchesString(entry.branch, target);
285
+ if (matched) {
286
+ addMatch(matches, seen, {
287
+ canonicalKey: worktreeCanonical(entry.path, entry.name),
288
+ kind: "worktree",
289
+ source: "gitWorktrees",
290
+ worktreePath: entry.path,
291
+ worktreeName: entry.name,
292
+ raw: entry,
293
+ });
294
+ }
295
+ return matched;
296
+ });
297
+ return { status: "found", value: { worktrees: filtered } };
298
+ }
299
+ function filterGraveyard(source, target, matches, seen) {
300
+ if (source.status !== "found")
301
+ return { ...source, value: undefined };
302
+ const root = source.value;
303
+ const entries = asArray(Array.isArray(root) ? root : asObject(root)?.sessions).filter((entry) => {
304
+ const record = asObject(entry);
305
+ const status = getString(record, "status");
306
+ if (status && status !== "graveyard")
307
+ return false;
308
+ const id = getString(record, "id");
309
+ const backendSessionId = getString(record, "backendSessionId");
310
+ const worktreePath = getString(record, "worktreePath");
311
+ const label = getString(record, "label");
312
+ const matched = matchesString(id, target) ||
313
+ matchesString(backendSessionId, target) ||
314
+ matchesString(worktreePath, target) ||
315
+ matchesString(label, target);
316
+ if (matched) {
317
+ addMatch(matches, seen, {
318
+ canonicalKey: sessionCanonical(id, backendSessionId),
319
+ kind: "session",
320
+ source: "graveyard",
321
+ id,
322
+ backendSessionId,
323
+ worktreePath,
324
+ label,
325
+ raw: entry,
326
+ });
327
+ }
328
+ return matched;
329
+ });
330
+ return { status: "found", path: source.path, value: { entries } };
331
+ }
332
+ function filterRuntimeTopology(source, target, matches, seen) {
333
+ if (source.status !== "found")
334
+ return { ...source, value: undefined };
335
+ const topology = source.value;
336
+ const sessions = topology.sessions.filter((entry) => {
337
+ const id = entry.id;
338
+ const backendSessionId = entry.backendSessionId;
339
+ const worktreePath = entry.worktreePath;
340
+ const label = entry.label;
341
+ const matched = matchesString(id, target) ||
342
+ matchesString(backendSessionId, target) ||
343
+ matchesString(worktreePath, target) ||
344
+ matchesString(label, target);
345
+ if (matched) {
346
+ addMatch(matches, seen, {
347
+ canonicalKey: sessionCanonical(id, backendSessionId),
348
+ kind: backendSessionId === target && id !== target ? "backend-session" : "session",
349
+ source: "runtimeTopology",
350
+ id,
351
+ backendSessionId,
352
+ worktreePath,
353
+ label,
354
+ raw: entry,
355
+ });
356
+ }
357
+ return matched;
358
+ });
359
+ const services = topology.services.filter((entry) => {
360
+ const matched = matchesString(entry.id, target) ||
361
+ matchesString(entry.worktreePath, target) ||
362
+ matchesString(entry.cwd, target) ||
363
+ matchesString(entry.label, target) ||
364
+ matchesString(entry.launchCommandLine, target);
365
+ if (matched) {
366
+ addMatch(matches, seen, {
367
+ canonicalKey: serviceCanonical(entry.id, entry.worktreePath),
368
+ kind: "service",
369
+ source: "runtimeTopology",
370
+ id: entry.id,
371
+ worktreePath: entry.worktreePath,
372
+ label: entry.label,
373
+ raw: entry,
374
+ });
375
+ }
376
+ return matched;
377
+ });
378
+ const worktrees = topology.worktrees.filter((entry) => {
379
+ const matched = matchesString(entry.name, target) || matchesString(entry.path, target) || matchesString(entry.branch, target);
380
+ if (matched) {
381
+ addMatch(matches, seen, {
382
+ canonicalKey: worktreeCanonical(entry.path, entry.name),
383
+ kind: "worktree",
384
+ source: "runtimeTopology",
385
+ worktreePath: entry.path,
386
+ worktreeName: entry.name,
387
+ raw: entry,
388
+ });
389
+ }
390
+ return matched;
391
+ });
392
+ return { status: "found", path: source.path, value: { sessions, services, worktrees } };
393
+ }
394
+ function filterWorktreeGraveyard(source, target, matches, seen) {
395
+ if (source.status !== "found")
396
+ return { ...source, value: undefined };
397
+ const entries = asArray(source.value).filter((entry) => {
398
+ const record = asObject(entry);
399
+ const name = getString(record, "name");
400
+ const path = getString(record, "path");
401
+ const branch = getString(record, "branch");
402
+ const agents = asArray(record?.agents);
403
+ const services = asArray(record?.services);
404
+ const childMatched = [...agents, ...services].some((child) => {
405
+ const childRecord = asObject(child);
406
+ return (matchesString(getString(childRecord, "id"), target) ||
407
+ matchesString(getString(childRecord, "backendSessionId"), target));
408
+ });
409
+ const matched = childMatched || matchesString(name, target) || matchesString(path, target) || matchesString(branch, target);
410
+ if (matched) {
411
+ addMatch(matches, seen, {
412
+ canonicalKey: worktreeCanonical(path, name),
413
+ kind: "worktree",
414
+ source: "worktreeGraveyard",
415
+ worktreePath: path,
416
+ worktreeName: name,
417
+ raw: entry,
418
+ });
419
+ }
420
+ return matched;
421
+ });
422
+ return { status: "found", path: source.path, value: { entries } };
423
+ }
424
+ function filterNotifications(source, target, matches, seen) {
425
+ if (source.status !== "found")
426
+ return { ...source, value: undefined };
427
+ const exchange = source.value;
428
+ if (!exchange)
429
+ return { ...source, value: { notifications: [] } };
430
+ const messagesByThread = new Map(exchange.messages.map((message) => [message.threadId, message]));
431
+ const notifications = exchange.threads.filter((entry) => {
432
+ if (!entry.tags?.includes("notification"))
433
+ return false;
434
+ const message = messagesByThread.get(entry.id);
435
+ const sessionId = typeof message?.metadata?.notificationSessionId === "string" ? message.metadata.notificationSessionId : undefined;
436
+ const targetKey = typeof message?.metadata?.notificationTargetKey === "string" ? message.metadata.notificationTargetKey : undefined;
437
+ const id = typeof message?.metadata?.notificationRecordId === "string" ? message.metadata.notificationRecordId : entry.id;
438
+ const matched = matchesString(sessionId, target) || matchesString(targetKey, target) || matchesString(id, target);
439
+ if (matched) {
440
+ addMatch(matches, seen, {
441
+ canonicalKey: `notification:${id ?? targetKey ?? sessionId ?? "unknown"}`,
442
+ kind: "notification",
443
+ source: "runtimeExchange",
444
+ id,
445
+ raw: entry,
446
+ });
447
+ }
448
+ return matched;
449
+ });
450
+ return { status: "found", path: source.path, value: { notifications } };
451
+ }
452
+ function filterOperationFailures(source, target, matches, seen) {
453
+ if (source.status !== "found")
454
+ return { ...source, value: undefined };
455
+ const failures = asArray(asObject(source.value)?.failures).filter((entry) => {
456
+ const record = asObject(entry);
457
+ const id = getString(record, "id");
458
+ const targetId = getString(record, "targetId");
459
+ const worktreePath = getString(record, "worktreePath");
460
+ const worktreeName = getString(record, "worktreeName");
461
+ const matched = matchesString(id, target) ||
462
+ matchesString(targetId, target) ||
463
+ matchesString(worktreePath, target) ||
464
+ matchesString(worktreeName, target);
465
+ if (matched) {
466
+ addMatch(matches, seen, {
467
+ canonicalKey: `operation-failure:${id ?? targetId ?? worktreePath ?? "unknown"}`,
468
+ kind: "operation-failure",
469
+ source: "operationFailures",
470
+ id,
471
+ worktreePath,
472
+ worktreeName,
473
+ raw: entry,
474
+ });
475
+ }
476
+ return matched;
477
+ });
478
+ return { status: "found", path: source.path, value: { failures } };
479
+ }
480
+ function resolveStatus(matches) {
481
+ const canonicalKeys = new Set(matches.map((match) => match.canonicalKey));
482
+ if (canonicalKeys.size === 0)
483
+ return { status: "missing", entityCount: 0 };
484
+ if (canonicalKeys.size === 1)
485
+ return { status: "matched", entityCount: 1 };
486
+ return { status: "ambiguous", entityCount: canonicalKeys.size };
487
+ }
488
+ export function buildDebugStateReport(options) {
489
+ const cwd = options.cwd ?? process.cwd();
490
+ const paths = options.paths ?? getReadOnlyProjectPathsFor(cwd);
491
+ const matches = [];
492
+ const seen = new Set();
493
+ const target = options.target;
494
+ const savedState = filterSavedState(readJson(paths.statePath), target, matches, seen);
495
+ const rawRuntimeTopology = readRuntimeTopology(paths.runtimeTopologyPath);
496
+ const rawRuntimeExchange = readRuntimeExchange(paths.runtimeExchangePath);
497
+ const runtimeTopology = filterRuntimeTopology(rawRuntimeTopology, target, matches, seen);
498
+ const metadata = filterMetadata(readJson(paths.metadataPath), target, matches, seen);
499
+ const tmux = filterTmux(options.tmuxWindows, paths, target, matches, seen);
500
+ const gitWorktrees = filterGitWorktrees(options.worktrees, paths, target, matches, seen);
501
+ const graveyard = filterGraveyard(runtimeTopology, target, matches, seen);
502
+ const worktreeGraveyard = filterWorktreeGraveyard(rawRuntimeTopology.status === "found"
503
+ ? { status: "found", path: rawRuntimeTopology.path, value: rawRuntimeTopology.value?.worktreeGraveyard ?? [] }
504
+ : rawRuntimeTopology, target, matches, seen);
505
+ const notifications = filterNotifications(rawRuntimeExchange, target, matches, seen);
506
+ const operationFailures = filterOperationFailures(readJson(paths.dashboardOperationFailuresPath), target, matches, seen);
507
+ const resolution = resolveStatus(matches);
508
+ return {
509
+ version: 1,
510
+ target,
511
+ project: {
512
+ repoRoot: paths.repoRoot,
513
+ projectId: paths.projectId,
514
+ projectStateDir: paths.projectStateDir,
515
+ localAimuxDir: paths.localAimuxDir,
516
+ },
517
+ targetResolution: {
518
+ ...resolution,
519
+ matches,
520
+ },
521
+ sourceRoles: DEBUG_STATE_SOURCE_ROLES,
522
+ sources: {
523
+ savedState,
524
+ runtimeTopology,
525
+ metadata,
526
+ tmux,
527
+ gitWorktrees,
528
+ graveyard,
529
+ worktreeGraveyard,
530
+ notifications,
531
+ operationFailures,
532
+ runtimeRows: sourceUnavailable("standalone debug-state does not attach to the live project runtime"),
533
+ pendingActions: sourceUnavailable("pending actions are in-memory dashboard state"),
534
+ dashboardSnapshot: sourceUnavailable("dashboard snapshot requires project-service/dashboard runtime"),
535
+ },
536
+ };
537
+ }
538
+ export function renderDebugStateReport(report) {
539
+ return JSON.stringify(report, null, 2);
540
+ }
541
+ //# sourceMappingURL=debug-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-state.js","sourceRoot":"","sources":["../src/debug-state.ts"],"names":[],"mappings":"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"}
package/dist/debug.d.ts CHANGED
@@ -1,3 +1,41 @@
1
+ import type { LoggingConfig, LogLevel } from "./config.js";
2
+ export interface LoggingRuntimeConfig extends LoggingConfig {
3
+ path: string;
4
+ processKind: "cli" | "daemon" | "project-service" | "test" | string;
5
+ projectId?: string;
6
+ projectRoot?: string;
7
+ }
8
+ export interface LoggingCliOptions {
9
+ debug?: boolean;
10
+ trace?: boolean;
11
+ logLevel?: string;
12
+ logCategory?: string;
13
+ }
14
+ export interface ResolveLoggingOptions {
15
+ config: LoggingConfig;
16
+ env?: Record<string, string | undefined>;
17
+ cli?: LoggingCliOptions;
18
+ path: string;
19
+ processKind: LoggingRuntimeConfig["processKind"];
20
+ projectId?: string;
21
+ projectRoot?: string;
22
+ }
23
+ export interface LogFields {
24
+ [key: string]: unknown;
25
+ }
26
+ export declare function parseLogCategories(value: string | undefined): string[] | undefined;
27
+ export declare function resolveLoggingRuntimeConfig(options: ResolveLoggingOptions): LoggingRuntimeConfig;
28
+ export declare function configureLogging(config: Partial<LoggingRuntimeConfig>): LoggingRuntimeConfig;
29
+ export declare function getLoggingConfig(): LoggingRuntimeConfig;
30
+ export declare function resetLoggingForTests(): void;
31
+ export declare function logAt(level: LogLevel, message: string, category?: string, fields?: LogFields): void;
32
+ export declare const log: {
33
+ error: (message: string, category?: string, fields?: LogFields) => void;
34
+ warn: (message: string, category?: string, fields?: LogFields) => void;
35
+ info: (message: string, category?: string, fields?: LogFields) => void;
36
+ debug: (message: string, category?: string, fields?: LogFields) => void;
37
+ trace: (message: string, category?: string, fields?: LogFields) => void;
38
+ };
1
39
  export declare function debug(msg: string, category?: string): void;
2
40
  export declare function debugContext(action: string, file: string, sizeBytes: number): void;
3
41
  export declare function debugCompact(sessionCount: number, totalTurns: number): void;