@adhdev/daemon-core 0.9.82-rc.49 → 0.9.82-rc.490

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 (473) hide show
  1. package/dist/boot/daemon-lifecycle.d.ts +9 -0
  2. package/dist/boot/process-hardening.d.ts +50 -0
  3. package/dist/build-info.d.ts +37 -0
  4. package/dist/chat/source-machine.d.ts +166 -0
  5. package/dist/chat/source-resolver.d.ts +104 -0
  6. package/dist/chat/subscription-updates.d.ts +1 -0
  7. package/dist/cli-adapter-types.d.ts +68 -2
  8. package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
  9. package/dist/cli-adapters/cli-state-engine.d.ts +220 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +137 -64
  11. package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
  12. package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
  13. package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
  14. package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
  15. package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
  16. package/dist/cli-adapters/resolve-executable.d.ts +69 -0
  17. package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
  18. package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
  19. package/dist/cli-adapters/terminal-screen.d.ts +4 -11
  20. package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
  21. package/dist/commands/chat-commands-read.d.ts +23 -0
  22. package/dist/commands/chat-commands-scope.d.ts +39 -0
  23. package/dist/commands/chat-commands-shared.d.ts +33 -0
  24. package/dist/commands/chat-commands-write.d.ts +14 -0
  25. package/dist/commands/chat-commands.d.ts +10 -23
  26. package/dist/commands/cli-manager.d.ts +71 -1
  27. package/dist/commands/handler.d.ts +125 -0
  28. package/dist/commands/high-family/index.d.ts +3 -0
  29. package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
  30. package/dist/commands/high-family/mesh-events.d.ts +2 -0
  31. package/dist/commands/high-family/mesh-status.d.ts +2 -0
  32. package/dist/commands/high-family/types.d.ts +64 -0
  33. package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
  34. package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
  35. package/dist/commands/low-family/diagnostics.d.ts +2 -0
  36. package/dist/commands/low-family/index.d.ts +3 -0
  37. package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
  38. package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
  39. package/dist/commands/low-family/notification.d.ts +2 -0
  40. package/dist/commands/low-family/refine-config.d.ts +2 -0
  41. package/dist/commands/low-family/session-host.d.ts +2 -0
  42. package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
  43. package/dist/commands/low-family/status-meta.d.ts +2 -0
  44. package/dist/commands/low-family/types.d.ts +33 -0
  45. package/dist/commands/med-family/cli-agent.d.ts +2 -0
  46. package/dist/commands/med-family/fast-forward.d.ts +2 -0
  47. package/dist/commands/med-family/ide.d.ts +10 -0
  48. package/dist/commands/med-family/index.d.ts +3 -0
  49. package/dist/commands/med-family/mesh-crud.d.ts +48 -0
  50. package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
  51. package/dist/commands/med-family/mesh-queue.d.ts +2 -0
  52. package/dist/commands/med-family/mesh-restart.d.ts +2 -0
  53. package/dist/commands/med-family/types.d.ts +152 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router-aggregate-status.d.ts +24 -0
  56. package/dist/commands/router-mesh-session-owner.d.ts +59 -0
  57. package/dist/commands/router-refine.d.ts +151 -0
  58. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  59. package/dist/commands/router.d.ts +203 -15
  60. package/dist/commands/upgrade-helper.d.ts +41 -1
  61. package/dist/config/chat-history.d.ts +11 -0
  62. package/dist/config/config.d.ts +19 -0
  63. package/dist/config/mesh-config.d.ts +65 -0
  64. package/dist/config/mesh-json-config.d.ts +199 -0
  65. package/dist/config/registry-resolver.d.ts +54 -0
  66. package/dist/config/repo-settings.d.ts +77 -0
  67. package/dist/config/state-store.d.ts +30 -0
  68. package/dist/daemon/dev-server.d.ts +0 -2
  69. package/dist/detection/cli-detector.d.ts +17 -0
  70. package/dist/detection/ide-detector.d.ts +13 -0
  71. package/dist/detection/win32-ide-version.d.ts +37 -0
  72. package/dist/git/change-impact-config.d.ts +159 -0
  73. package/dist/git/git-commands.d.ts +26 -2
  74. package/dist/git/git-diff.d.ts +6 -0
  75. package/dist/git/git-executor.d.ts +11 -0
  76. package/dist/git/git-status.d.ts +80 -0
  77. package/dist/git/git-types.d.ts +2 -50
  78. package/dist/git/git-worktree.d.ts +71 -1
  79. package/dist/git/index.d.ts +3 -1
  80. package/dist/index.d.ts +70 -17
  81. package/dist/index.js +53532 -19073
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +53283 -18989
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/installer.d.ts +1 -4
  86. package/dist/ipc/local-ipc-server.d.ts +91 -0
  87. package/dist/launch.d.ts +1 -1
  88. package/dist/logging/async-batch-writer.d.ts +10 -0
  89. package/dist/logging/debug-config.d.ts +16 -0
  90. package/dist/logging/log-redactor.d.ts +24 -0
  91. package/dist/logging/log-tail-reader.d.ts +81 -0
  92. package/dist/logging/logger.d.ts +1 -1
  93. package/dist/mesh/contracts.d.ts +256 -0
  94. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  95. package/dist/mesh/coordinator-registry.d.ts +59 -0
  96. package/dist/mesh/mesh-active-work.d.ts +203 -0
  97. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  98. package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
  99. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  100. package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
  101. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  102. package/dist/mesh/mesh-event-forwarding.d.ts +58 -0
  103. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  104. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  105. package/dist/mesh/mesh-events-pending.d.ts +258 -0
  106. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  107. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  108. package/dist/mesh/mesh-events.d.ts +6 -49
  109. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  110. package/dist/mesh/mesh-host-ownership.d.ts +21 -1
  111. package/dist/mesh/mesh-init.d.ts +128 -0
  112. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  113. package/dist/mesh/mesh-ledger.d.ts +139 -1
  114. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  115. package/dist/mesh/mesh-missions.d.ts +281 -0
  116. package/dist/mesh/mesh-node-identity.d.ts +310 -0
  117. package/dist/mesh/mesh-queue-assignment.d.ts +162 -0
  118. package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
  119. package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
  120. package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
  121. package/dist/mesh/mesh-reconcile-loop.d.ts +84 -0
  122. package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
  123. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  124. package/dist/mesh/mesh-refine-gates.d.ts +457 -0
  125. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  126. package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
  127. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  128. package/dist/mesh/mesh-routing.d.ts +70 -0
  129. package/dist/mesh/mesh-runtime-store.d.ts +567 -0
  130. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  131. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  132. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  133. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +34 -0
  134. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  135. package/dist/mesh/mesh-work-queue.d.ts +392 -1
  136. package/dist/mesh/preview-freshness.d.ts +28 -0
  137. package/dist/mesh/refine-config.d.ts +97 -0
  138. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  139. package/dist/providers/acp-provider-instance.d.ts +5 -0
  140. package/dist/providers/approval-utils.d.ts +46 -0
  141. package/dist/providers/chat-message-normalization.d.ts +58 -1
  142. package/dist/providers/cli-provider-effect-format.d.ts +30 -0
  143. package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
  144. package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
  145. package/dist/providers/cli-provider-instance-types.d.ts +45 -0
  146. package/dist/providers/cli-provider-instance.d.ts +426 -30
  147. package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
  148. package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
  149. package/dist/providers/contracts.d.ts +196 -6
  150. package/dist/providers/external-sources.d.ts +71 -0
  151. package/dist/providers/manual-attendance.d.ts +79 -0
  152. package/dist/providers/native-history/antigravity-claim-registry.d.ts +39 -0
  153. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  154. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  155. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  156. package/dist/providers/native-history/constants.d.ts +12 -0
  157. package/dist/providers/native-history/dispatcher.d.ts +44 -0
  158. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  159. package/dist/providers/native-history/index.d.ts +13 -0
  160. package/dist/providers/provider-instance-manager.d.ts +30 -0
  161. package/dist/providers/provider-instance.d.ts +31 -1
  162. package/dist/providers/provider-loader.d.ts +42 -5
  163. package/dist/providers/provider-trust.d.ts +31 -0
  164. package/dist/providers/read-chat-contract.d.ts +29 -0
  165. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  166. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  167. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  168. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  169. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  170. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  171. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  172. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  173. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  174. package/dist/providers/sdk/v1/index.d.ts +30 -0
  175. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  176. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  177. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  178. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  179. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  180. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  181. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  182. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  183. package/dist/providers/spec/adapter.d.ts +98 -0
  184. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  185. package/dist/providers/spec/evaluator.d.ts +45 -0
  186. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  187. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  188. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  189. package/dist/providers/spec/fsm-types.d.ts +202 -0
  190. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  191. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  192. package/dist/providers/spec/route.d.ts +4 -0
  193. package/dist/providers/spec/types.d.ts +244 -0
  194. package/dist/providers/status-monitor.d.ts +7 -7
  195. package/dist/providers/transcript-v2.d.ts +176 -0
  196. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  197. package/dist/providers/working-dir.d.ts +17 -0
  198. package/dist/repo-mesh-types.d.ts +616 -12
  199. package/dist/runtime-defaults.d.ts +2 -0
  200. package/dist/session-host/managed-host.d.ts +64 -0
  201. package/dist/session-host/runtime-surface.d.ts +10 -16
  202. package/dist/sessions/registry.d.ts +26 -0
  203. package/dist/shared-types-extra.d.ts +2 -4
  204. package/dist/shared-types.d.ts +110 -55
  205. package/dist/status/chat-tail-hot-sessions.d.ts +40 -0
  206. package/dist/status/normalize.d.ts +1 -1
  207. package/dist/status/normalize.js +1 -0
  208. package/dist/status/normalize.js.map +1 -1
  209. package/dist/status/normalize.mjs +1 -0
  210. package/dist/status/normalize.mjs.map +1 -1
  211. package/dist/status/reporter.d.ts +2 -0
  212. package/dist/status/snapshot.d.ts +27 -0
  213. package/dist/system/hash.d.ts +8 -0
  214. package/dist/system/load-better-sqlite3.d.ts +21 -0
  215. package/dist/types.d.ts +20 -6
  216. package/package.json +11 -4
  217. package/src/agent-stream/poller.ts +2 -3
  218. package/src/agent-stream/provider-adapter.ts +1 -1
  219. package/src/boot/daemon-lifecycle.ts +80 -14
  220. package/src/boot/process-hardening.ts +89 -0
  221. package/src/build-info.ts +73 -0
  222. package/src/chat/source-machine.ts +534 -0
  223. package/src/chat/source-resolver.ts +0 -0
  224. package/src/chat/subscription-updates.ts +20 -1
  225. package/src/cli-adapter-types.d.ts +3 -1
  226. package/src/cli-adapter-types.ts +68 -2
  227. package/src/cli-adapters/cli-script-runner.ts +421 -0
  228. package/src/cli-adapters/cli-state-engine.ts +1282 -0
  229. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  230. package/src/cli-adapters/provider-cli-adapter.ts +1048 -1143
  231. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  232. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  233. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  234. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  235. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  236. package/src/cli-adapters/pty-transport.ts +2 -1
  237. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  238. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  239. package/src/cli-adapters/resolve-executable.ts +204 -0
  240. package/src/cli-adapters/session-host-transport.ts +2 -1
  241. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  242. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  243. package/src/cli-adapters/terminal-screen.ts +16 -81
  244. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  245. package/src/commands/chat-commands-read.ts +2788 -0
  246. package/src/commands/chat-commands-scope.ts +54 -0
  247. package/src/commands/chat-commands-shared.ts +114 -0
  248. package/src/commands/chat-commands-write.ts +891 -0
  249. package/src/commands/chat-commands.ts +19 -1841
  250. package/src/commands/cli-manager.d.ts +2 -0
  251. package/src/commands/cli-manager.ts +724 -27
  252. package/src/commands/handler.ts +865 -2
  253. package/src/commands/high-family/index.ts +28 -0
  254. package/src/commands/high-family/mesh-coordinator-launch.ts +696 -0
  255. package/src/commands/high-family/mesh-events.ts +102 -0
  256. package/src/commands/high-family/mesh-status.ts +857 -0
  257. package/src/commands/high-family/types.ts +80 -0
  258. package/src/commands/low-family/coordinator-prompt.ts +125 -0
  259. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  260. package/src/commands/low-family/diagnostics.ts +57 -0
  261. package/src/commands/low-family/index.ts +37 -0
  262. package/src/commands/low-family/mesh-ledger.ts +62 -0
  263. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  264. package/src/commands/low-family/notification.ts +116 -0
  265. package/src/commands/low-family/refine-config.ts +106 -0
  266. package/src/commands/low-family/session-host.ts +282 -0
  267. package/src/commands/low-family/spec-providerdev.ts +217 -0
  268. package/src/commands/low-family/status-meta.ts +112 -0
  269. package/src/commands/low-family/types.ts +39 -0
  270. package/src/commands/med-family/cli-agent.ts +270 -0
  271. package/src/commands/med-family/fast-forward.ts +230 -0
  272. package/src/commands/med-family/ide.ts +163 -0
  273. package/src/commands/med-family/index.ts +37 -0
  274. package/src/commands/med-family/mesh-crud.ts +1268 -0
  275. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  276. package/src/commands/med-family/mesh-queue.ts +167 -0
  277. package/src/commands/med-family/mesh-restart.ts +92 -0
  278. package/src/commands/med-family/types.ts +153 -0
  279. package/src/commands/mesh-coordinator.ts +334 -124
  280. package/src/commands/router-aggregate-status.ts +209 -0
  281. package/src/commands/router-mesh-session-owner.ts +114 -0
  282. package/src/commands/router-refine.ts +1794 -0
  283. package/src/commands/router-worktree-cleanup.ts +870 -0
  284. package/src/commands/router.ts +567 -4149
  285. package/src/commands/stream-commands.ts +8 -0
  286. package/src/commands/upgrade-helper.ts +310 -45
  287. package/src/config/chat-history.ts +517 -24
  288. package/src/config/config.ts +30 -0
  289. package/src/config/mesh-config.ts +300 -24
  290. package/src/config/mesh-json-config.ts +376 -0
  291. package/src/config/recent-activity.ts +8 -2
  292. package/src/config/registry-resolver.ts +100 -0
  293. package/src/config/repo-settings.ts +111 -0
  294. package/src/config/state-store.ts +55 -0
  295. package/src/daemon/dev-auto-implement.ts +3 -2
  296. package/src/daemon/dev-cli-debug.ts +10 -1
  297. package/src/daemon/dev-server.ts +0 -541
  298. package/src/detection/cli-detector.ts +94 -9
  299. package/src/detection/ide-detector.ts +55 -16
  300. package/src/detection/win32-ide-version.ts +106 -0
  301. package/src/git/change-impact-config.ts +354 -0
  302. package/src/git/git-commands.ts +112 -16
  303. package/src/git/git-diff.ts +81 -11
  304. package/src/git/git-executor.ts +12 -0
  305. package/src/git/git-status.ts +822 -48
  306. package/src/git/git-types.ts +14 -62
  307. package/src/git/git-worktree.ts +261 -4
  308. package/src/git/index.ts +17 -0
  309. package/src/index.ts +190 -13
  310. package/src/installer.d.ts +1 -1
  311. package/src/installer.ts +8 -6
  312. package/src/ipc/local-ipc-server.ts +278 -0
  313. package/src/launch.d.ts +1 -1
  314. package/src/launch.ts +37 -28
  315. package/src/logging/async-batch-writer.ts +55 -0
  316. package/src/logging/command-log.ts +7 -5
  317. package/src/logging/debug-config.ts +25 -0
  318. package/src/logging/debug-trace.ts +7 -2
  319. package/src/logging/log-redactor.ts +100 -0
  320. package/src/logging/log-tail-reader.ts +341 -0
  321. package/src/logging/logger.ts +14 -7
  322. package/src/mesh/contracts.ts +510 -0
  323. package/src/mesh/coordinator-prompt.ts +627 -34
  324. package/src/mesh/coordinator-registry.ts +121 -0
  325. package/src/mesh/mesh-active-work.ts +706 -0
  326. package/src/mesh/mesh-clone-grace.ts +68 -0
  327. package/src/mesh/mesh-completion-synthesis.ts +416 -0
  328. package/src/mesh/mesh-coordinator-config.ts +97 -0
  329. package/src/mesh/mesh-delivery-policy.ts +284 -0
  330. package/src/mesh/mesh-event-classify.ts +78 -0
  331. package/src/mesh/mesh-event-forwarding.ts +2030 -0
  332. package/src/mesh/mesh-event-trace.ts +67 -0
  333. package/src/mesh/mesh-events-coordinator.ts +32 -0
  334. package/src/mesh/mesh-events-pending.ts +1548 -0
  335. package/src/mesh/mesh-events-stale.ts +452 -0
  336. package/src/mesh/mesh-events-utils.ts +443 -0
  337. package/src/mesh/mesh-events.ts +43 -1035
  338. package/src/mesh/mesh-fast-forward.ts +856 -0
  339. package/src/mesh/mesh-host-ownership.ts +41 -3
  340. package/src/mesh/mesh-init.ts +350 -0
  341. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  342. package/src/mesh/mesh-ledger.ts +897 -102
  343. package/src/mesh/mesh-magi-status.ts +223 -0
  344. package/src/mesh/mesh-missions.ts +695 -0
  345. package/src/mesh/mesh-node-identity.ts +2065 -0
  346. package/src/mesh/mesh-queue-assignment.ts +2498 -0
  347. package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
  348. package/src/mesh/mesh-reconcile-config.ts +66 -0
  349. package/src/mesh/mesh-reconcile-identity.ts +103 -0
  350. package/src/mesh/mesh-reconcile-loop.ts +1696 -0
  351. package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
  352. package/src/mesh/mesh-refine-batch.ts +205 -0
  353. package/src/mesh/mesh-refine-gates.ts +1792 -0
  354. package/src/mesh/mesh-refine-status.ts +231 -0
  355. package/src/mesh/mesh-remote-event-pull.ts +279 -0
  356. package/src/mesh/mesh-review-inbox.ts +308 -0
  357. package/src/mesh/mesh-routing.ts +291 -0
  358. package/src/mesh/mesh-runtime-store.ts +2292 -0
  359. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  360. package/src/mesh/mesh-task-inflight.ts +70 -0
  361. package/src/mesh/mesh-task-stats.ts +161 -0
  362. package/src/mesh/mesh-unresolved-forward-outbox.ts +215 -0
  363. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  364. package/src/mesh/mesh-work-queue.ts +1489 -145
  365. package/src/mesh/preview-freshness.ts +163 -0
  366. package/src/mesh/refine-config.ts +129 -12
  367. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  368. package/src/providers/acp-provider-instance.ts +43 -10
  369. package/src/providers/approval-utils.d.ts +5 -0
  370. package/src/providers/approval-utils.ts +100 -6
  371. package/src/providers/chat-message-normalization.ts +126 -4
  372. package/src/providers/cli-provider-effect-format.ts +53 -0
  373. package/src/providers/cli-provider-history-dedup.ts +75 -0
  374. package/src/providers/cli-provider-input-prompt.ts +133 -0
  375. package/src/providers/cli-provider-instance-types.ts +131 -0
  376. package/src/providers/cli-provider-instance.ts +2771 -499
  377. package/src/providers/cli-provider-status-helpers.ts +123 -0
  378. package/src/providers/cli-provider-transcript-merge.ts +114 -0
  379. package/src/providers/contracts.d.ts +55 -0
  380. package/src/providers/contracts.ts +207 -6
  381. package/src/providers/extension-provider-instance.ts +12 -7
  382. package/src/providers/external-sources.ts +218 -0
  383. package/src/providers/ide-provider-instance.ts +35 -12
  384. package/src/providers/manual-attendance.ts +105 -0
  385. package/src/providers/native-history/antigravity-claim-registry.ts +138 -0
  386. package/src/providers/native-history/antigravity-cli-transcript.ts +1275 -0
  387. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  388. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  389. package/src/providers/native-history/constants.ts +19 -0
  390. package/src/providers/native-history/dispatcher.ts +617 -0
  391. package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
  392. package/src/providers/native-history/index.ts +30 -0
  393. package/src/providers/provider-instance-manager.ts +71 -0
  394. package/src/providers/provider-instance.ts +24 -1
  395. package/src/providers/provider-loader.ts +700 -55
  396. package/src/providers/provider-schema.ts +93 -14
  397. package/src/providers/provider-trust.ts +114 -0
  398. package/src/providers/read-chat-contract.ts +76 -16
  399. package/src/providers/sdk/README.md +49 -0
  400. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  401. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  402. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  403. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  404. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  405. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  406. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  407. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  408. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  409. package/src/providers/sdk/v1/index.ts +152 -0
  410. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  411. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  412. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  413. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +538 -0
  414. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  415. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  416. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  417. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  418. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  419. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  420. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  421. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  422. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  423. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  424. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  425. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  426. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  427. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  428. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  429. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  430. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  431. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  432. package/src/providers/sdk/v1/validators/index.ts +19 -0
  433. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  434. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  435. package/src/providers/spec/adapter.ts +246 -0
  436. package/src/providers/spec/cli-adapter.ts +1064 -0
  437. package/src/providers/spec/evaluator.ts +407 -0
  438. package/src/providers/spec/fsm-driver.ts +1528 -0
  439. package/src/providers/spec/fsm-evaluator.ts +290 -0
  440. package/src/providers/spec/fsm-loader.ts +128 -0
  441. package/src/providers/spec/fsm-types.ts +301 -0
  442. package/src/providers/spec/native-history-executor.ts +1241 -0
  443. package/src/providers/spec/pre-launch-trust.ts +104 -0
  444. package/src/providers/spec/route.ts +51 -0
  445. package/src/providers/spec/types.ts +284 -0
  446. package/src/providers/status-monitor.d.ts +7 -7
  447. package/src/providers/status-monitor.ts +37 -22
  448. package/src/providers/transcript-v2.ts +567 -0
  449. package/src/providers/types/interactive-prompt.ts +536 -0
  450. package/src/providers/version-archive.ts +64 -24
  451. package/src/providers/working-dir.ts +23 -0
  452. package/src/repo-mesh-types.ts +861 -14
  453. package/src/runtime-defaults.ts +39 -0
  454. package/src/session-host/managed-host.ts +218 -0
  455. package/src/session-host/runtime-surface.ts +20 -80
  456. package/src/sessions/registry.ts +44 -0
  457. package/src/shared-types-extra.ts +2 -4
  458. package/src/shared-types.d.ts +8 -0
  459. package/src/shared-types.ts +148 -55
  460. package/src/status/builders.ts +69 -6
  461. package/src/status/chat-tail-hot-sessions.ts +117 -2
  462. package/src/status/normalize.ts +2 -0
  463. package/src/status/reporter.ts +19 -1
  464. package/src/status/snapshot.ts +100 -27
  465. package/src/system/hash.ts +23 -0
  466. package/src/system/host-memory.ts +29 -12
  467. package/src/system/load-better-sqlite3.ts +68 -0
  468. package/src/types.ts +26 -6
  469. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  470. package/dist/mesh/mesh-sync.d.ts +0 -53
  471. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  472. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  473. package/src/mesh/mesh-sync.ts +0 -111
@@ -102,9 +102,134 @@ export declare class DaemonCommandHandler implements CommandHelpers {
102
102
  private logCommandStart;
103
103
  private logCommandEnd;
104
104
  setAgentStreamManager(manager: DaemonAgentStreamManager): void;
105
+ /**
106
+ * When a command in the manual-attendance set arrives for a session this
107
+ * daemon hosts, stamp the live instance so auto-approve holds while the user
108
+ * drives the session by hand. Provider-common: the signal is the command
109
+ * (foreground select_session / open_panel, controlbar invoke_provider_script
110
+ * / set_mode / change_model / set_thought_level, manual resolve_action,
111
+ * pty_input), never any CLI-specific modal text — so it works identically for
112
+ * every CLI/ACP provider. send_chat is deliberately excluded because a
113
+ * coordinator delegating a task to a worker also uses send_chat; counting it
114
+ * would wrongly suppress the worker's delegated auto-approve. For a remote
115
+ * mesh worker session the controlbar commands are forwarded to the owning
116
+ * worker daemon, which runs this same hook there, so attendance is recorded
117
+ * on the daemon that actually hosts the instance.
118
+ */
119
+ private noteManualAttendanceIfApplicable;
105
120
  handle(cmd: string, args: any): Promise<CommandResult>;
106
121
  private dispatch;
122
+ /**
123
+ * Reload providers from disk. Does NOT pull from the registry — the user
124
+ * controls installs explicitly via install_provider_manifest. To upgrade
125
+ * an installed provider, call install_provider_manifest again with the
126
+ * desired version (or with no version to pick up the latest from
127
+ * registry), or use check_provider_updates to see what is out of date.
128
+ */
107
129
  private handleRefreshScripts;
130
+ /**
131
+ * Return per-provider availability so the dashboard's provider catalog
132
+ * can show "Installed" badges. Reuses the existing detection state from
133
+ * ProviderLoader.getMachineProviderStatus() — no probing is triggered.
134
+ */
135
+ private handleListProviderAvailability;
136
+ /**
137
+ * Compute the *upstream cache root*. install_provider_manifest writes
138
+ * official-registry manifests here so the daemon's standard upstream
139
+ * layer picks them up — no special handling needed at load time, and
140
+ * the manifests inherit the official-trust badge instead of the
141
+ * untrusted-external one.
142
+ *
143
+ * Path matches ProviderLoader.upstreamDir but we recompute it from
144
+ * homedir() so this method stays usable in dev where userDir can
145
+ * point at a sibling git checkout.
146
+ */
147
+ private getUpstreamInstallRoot;
148
+ /**
149
+ * Download a single provider manifest from the registry and write it to
150
+ * ~/.adhdev/providers/.upstream/{category}/{type}/provider.json.
151
+ *
152
+ * Used by standalone onboarding to seed the upstream cache with the
153
+ * default provider set on first launch. Verifies SHA-256 checksum
154
+ * against the registry meta before persisting. Refuses to write
155
+ * outside the upstream root.
156
+ *
157
+ * Args: { type: string, category?: string, version?: string }
158
+ * If category/version are omitted, looks up the latest from the registry.
159
+ */
160
+ private handleInstallProviderManifest;
161
+ /**
162
+ * If `manifest.source = { type:'github', repo, ref, subdir? }` is set,
163
+ * walk each script directory the manifest references and download every
164
+ * file from the public GitHub raw endpoint. Returns a small summary so
165
+ * the caller can report what was fetched.
166
+ *
167
+ * Best-effort: failures don't reject the install — the manifest itself is
168
+ * usable for declarative-only providers, and the user still gets a clear
169
+ * error string back if a needed script is missing.
170
+ */
171
+ private fetchProviderSources;
172
+ /**
173
+ * Remove a provider manifest from the upstream cache root
174
+ * (~/.adhdev/providers/.upstream/{category}/{type}/). Refuses to touch
175
+ * anything outside that root. Used by onboarding to opt out of a
176
+ * provider the user doesn't want; the dashboard no longer exposes a
177
+ * per-provider uninstall button (external sources are removed as a
178
+ * whole via remove_provider_source).
179
+ */
180
+ private handleUninstallProviderManifest;
181
+ /**
182
+ * Return everything currently installed in the upstream cache with its
183
+ * version. This is the "what does this daemon have" answer used both by
184
+ * the UI and by the update checker.
185
+ */
186
+ private handleListInstalledProviders;
187
+ /**
188
+ * For each installed provider, ask the registry for its current latest
189
+ * version and report whether an update is available. The user can then
190
+ * call install_provider_manifest to upgrade (it overwrites the file).
191
+ *
192
+ * Returns { providers: [{ type, category, installedVersion, latestVersion,
193
+ * updateAvailable, error? }] }
194
+ */
195
+ private handleCheckProviderUpdates;
196
+ /**
197
+ * Register a new external provider source. The daemon clones the repo
198
+ * to ~/.adhdev/external/<name>/, walks it once to detect provided
199
+ * types, and surfaces any conflicts with already-installed types so
200
+ * the dashboard can ask the user how to resolve them.
201
+ *
202
+ * Args: { url: string, ref?: string, name?: string }
203
+ * - url: https://, git@, or any git-cloneable URL
204
+ * - ref: branch/tag/commit (default "main")
205
+ * - name: short identifier (default derived from URL)
206
+ *
207
+ * Returns: { source, providers, conflicts }
208
+ * - conflicts: list of types this new source provides that another
209
+ * source already exposes. UI uses this to prompt for active-source
210
+ * selection before the load takes effect.
211
+ */
212
+ private handleAddProviderSource;
213
+ /**
214
+ * Remove a registered external source. Deletes the clone directory and
215
+ * any active-source entry pointing to it.
216
+ *
217
+ * Args: { name: string }
218
+ */
219
+ private handleRemoveProviderSource;
220
+ /**
221
+ * List registered external sources + each source's currently installed
222
+ * providers + the active selection for any conflicting types. Used by
223
+ * the dashboard's "Sources" tab.
224
+ */
225
+ private handleListProviderSources;
226
+ /**
227
+ * Pick which source's copy of a conflicting provider type is active.
228
+ * Other sources' copies stay on disk but the loader ignores them.
229
+ *
230
+ * Args: { type: string, sourceName: string }
231
+ */
232
+ private handleSetActiveProviderSource;
108
233
  private proxyDevServerPost;
109
234
  private proxyDevServerGet;
110
235
  private proxyDevServerScaffold;
@@ -0,0 +1,3 @@
1
+ import type { HighFamilyRegistry } from './types.js';
2
+ export type { HighFamilyContext, HighFamilyHandler, HighFamilyRegistry } from './types.js';
3
+ export declare const highFamilyRegistry: HighFamilyRegistry;
@@ -0,0 +1,2 @@
1
+ import type { HighFamilyHandler } from './types.js';
2
+ export declare const meshCoordinatorLaunchHandlers: Record<string, HighFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { HighFamilyHandler } from './types.js';
2
+ export declare const meshEventsHandlers: Record<string, HighFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { HighFamilyHandler } from './types.js';
2
+ export declare const meshStatusHandlers: Record<string, HighFamilyHandler>;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * RF-ROUTER HIGH family — shared types for the extracted high-coupling command
3
+ * handlers. Like the LOW and MED families, each handler is a function of
4
+ * (context, args) that returns the exact CommandRouterResult the original
5
+ * `executeDaemonCommand` switch case returned, so the router facade is unchanged.
6
+ *
7
+ * HIGH handlers are the most router-coupled of the three families: in addition to
8
+ * the MED collaborators (mesh resolution, owner gating, inline-cache), they reach
9
+ * the router's aggregate-status memory cache and running-refine-job table — state
10
+ * the router owns and the `mesh_status` aggregate render and `get_mesh_review_inbox`
11
+ * re-entry both depend on. The router binds those onto HighFamilyContext at
12
+ * dispatch; they are NOT reachable from `deps`.
13
+ *
14
+ * Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
15
+ * highFamilyRegistry AFTER the LOW and MED registries and BEFORE its remaining
16
+ * switch; a hit returns the handler result, a miss falls through to the switch
17
+ * (and ultimately CommandHandler delegation).
18
+ */
19
+ import type { CommandRouterDeps, CommandRouterResult, MeshGitProbeCache, MeshRefineJobHandle } from '../router.js';
20
+ import type { ResolvedMeshForCommand } from '../med-family/types.js';
21
+ /**
22
+ * Router-private collaborators injected at dispatch. Each is a bound method or
23
+ * field of DaemonCommandRouter; handlers that don't need a given collaborator
24
+ * simply ignore it. The router owns this instance state (inline-mesh cache,
25
+ * aggregate-status memory cache, running-refine-job table, git-probe cache), so
26
+ * it cannot be read from `deps` — the registry receives bound references instead.
27
+ */
28
+ export interface HighFamilyContext {
29
+ deps: CommandRouterDeps;
30
+ /** Bound `DaemonCommandRouter.getMeshForCommand`. */
31
+ getMeshForCommand: (meshId: string, inlineMesh?: unknown, options?: {
32
+ preferInline?: boolean;
33
+ }) => Promise<ResolvedMeshForCommand>;
34
+ /** Bound `DaemonCommandRouter.getCachedAggregateMeshStatus`. */
35
+ getCachedAggregateMeshStatus: (meshId: string, mesh?: any, options?: {
36
+ requireDirectPeerTruth?: boolean;
37
+ allowStalePending?: boolean;
38
+ }) => any | null;
39
+ /** Bound `DaemonCommandRouter.rememberAggregateMeshStatus`. */
40
+ rememberAggregateMeshStatus: (meshId: string, snapshot: any, refreshReason: string) => any;
41
+ /**
42
+ * Bound `DaemonCommandRouter.execute`. `get_mesh_review_inbox` re-enters the
43
+ * router with a `mesh_status` refresh to obtain computed node fields; this is
44
+ * the same self-call the inlined case made.
45
+ */
46
+ execute: (cmd: string, args: any, source?: string) => Promise<CommandRouterResult>;
47
+ /** Router's aggregate-status memory cache (`.has()` probe in mesh_status). */
48
+ aggregateMeshStatusCache: Map<string, {
49
+ builtAt: number;
50
+ snapshot: any;
51
+ queueRevision: string;
52
+ }>;
53
+ /** Meshes with a background SWR freshen already in flight — coalesces the
54
+ * async refresh a stale-serve interactive open kicks off. */
55
+ swrRefreshInFlight: Set<string>;
56
+ /** Router's running-refine-job table (surfaced as activeRefineJobs in mesh_status). */
57
+ runningRefineJobs: Map<string, MeshRefineJobHandle>;
58
+ /** Router's inline-mesh cache (launch_mesh_coordinator caches cloud inline mesh). */
59
+ inlineMeshCache: Map<string, any>;
60
+ /** Router's mesh git-probe cache (shared probe dedup for mesh_status). */
61
+ meshGitProbeCache: MeshGitProbeCache;
62
+ }
63
+ export type HighFamilyHandler = (ctx: HighFamilyContext, args: any) => Promise<CommandRouterResult | null>;
64
+ export type HighFamilyRegistry = Map<string, HighFamilyHandler>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * RF-ROUTER LOW family — coordinator-prompt override/append file commands.
3
+ *
4
+ * Extracted verbatim from DaemonCommandRouter.executeDaemonCommand. Both handlers
5
+ * read/write only the on-disk ~/.adhdev/coordinator-prompts directory (no router
6
+ * instance state) and return the same CommandRouterResult the inlined cases did.
7
+ */
8
+ import type { LowFamilyHandler } from './types.js';
9
+ export declare const coordinatorPromptHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const daemonLifecycleHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const diagnosticsHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,3 @@
1
+ import type { LowFamilyRegistry } from './types.js';
2
+ export type { LowFamilyContext, LowFamilyHandler, LowFamilyRegistry } from './types.js';
3
+ export declare const lowFamilyRegistry: LowFamilyRegistry;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * RF-ROUTER LOW family — mesh ledger read / slice / import commands.
3
+ *
4
+ * Extracted verbatim from DaemonCommandRouter.executeDaemonCommand. Each handler
5
+ * touches only the on-disk mesh ledger (dynamically imported mesh-ledger module)
6
+ * keyed by meshId — no router instance state — and returns the same
7
+ * CommandRouterResult the inlined cases did.
8
+ */
9
+ import type { LowFamilyHandler } from './types.js';
10
+ export declare const meshLedgerHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const meshNodeLogsHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const notificationHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const refineConfigHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const sessionHostHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * RF-ROUTER LOW family — provider-dev / spec debug commands.
3
+ *
4
+ * Powers the dev console's spec editor: read/write a session's spec.json, validate
5
+ * an in-progress spec, and preview condition/section resolution against a live
6
+ * session's screen. Extracted verbatim from executeDaemonCommand; reads only
7
+ * ctx.deps.sessionRegistry + ctx.deps.cliManager. resolveSpecPathInProviders (a
8
+ * `this`-free module helper) is relocated here unchanged.
9
+ */
10
+ import type { LowFamilyHandler } from './types.js';
11
+ export declare const specProviderDevHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { LowFamilyHandler } from './types.js';
2
+ export declare const statusMetaHandlers: Record<string, LowFamilyHandler>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * RF-ROUTER LOW family — shared types for the extracted low-coupling command
3
+ * handlers. Each handler is a pure function of (context, args): it reads only the
4
+ * router deps it needs and returns the exact CommandRouterResult the original
5
+ * `executeDaemonCommand` switch case returned, so the router facade is unchanged.
6
+ *
7
+ * Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
8
+ * lowFamilyRegistry BEFORE its switch; a hit returns the handler result, a miss
9
+ * falls through to the remaining switch (and ultimately CommandHandler delegation).
10
+ */
11
+ import type { CommandRouterDeps, CommandRouterResult } from '../router.js';
12
+ /** Mesh record resolved from the router's inline-mesh cache + local config. */
13
+ export type ResolvedMeshForCommand = {
14
+ mesh: any;
15
+ inline: boolean;
16
+ source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
17
+ } | null;
18
+ export interface LowFamilyContext {
19
+ deps: CommandRouterDeps;
20
+ /**
21
+ * Bound `DaemonCommandRouter.getMeshForCommand`. A handful of LOW handlers
22
+ * (mesh-node-logs) must resolve a mesh node's owning daemonId from the
23
+ * router's inline-mesh cache, which is router instance state not present in
24
+ * `deps`. The router injects it at dispatch; handlers that don't need it
25
+ * ignore it. Optional so unit tests can omit it (and assert the guarded
26
+ * fallback) without constructing a full router.
27
+ */
28
+ getMeshForCommand?: (meshId: string, inlineMesh?: unknown, options?: {
29
+ preferInline?: boolean;
30
+ }) => Promise<ResolvedMeshForCommand>;
31
+ }
32
+ export type LowFamilyHandler = (ctx: LowFamilyContext, args: any) => Promise<CommandRouterResult>;
33
+ export type LowFamilyRegistry = Map<string, LowFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { MedFamilyHandler } from './types.js';
2
+ export declare const cliAgentHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { MedFamilyHandler } from './types.js';
2
+ export declare const fastForwardHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,10 @@
1
+ import type { CommandRouterResult } from '../router.js';
2
+ import type { MedFamilyContext, MedFamilyHandler } from './types.js';
3
+ /**
4
+ * IDE launch + CDP connect. Lifted verbatim from the original `launch_ide` switch
5
+ * case so restart_session / restart_ide can call it directly instead of recursing
6
+ * through executeDaemonCommand. Reads the router's CDP managers and detection
7
+ * caches via ctx.deps.
8
+ */
9
+ export declare function launchIde(ctx: MedFamilyContext, args: any): Promise<CommandRouterResult>;
10
+ export declare const ideHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,3 @@
1
+ import type { MedFamilyRegistry } from './types.js';
2
+ export type { MedFamilyContext, MedFamilyHandler, MedFamilyRegistry } from './types.js';
3
+ export declare const medFamilyRegistry: MedFamilyRegistry;
@@ -0,0 +1,48 @@
1
+ import type { GitRepoIdentity } from '../../git/git-types.js';
2
+ import type { MedFamilyHandler } from './types.js';
3
+ /**
4
+ * Decision for syncing a freshly-cloned worktree's `oss` submodule to its clone
5
+ * source node, applying resolveWorktreeBaseStartPoint's origin-tip-priority
6
+ * policy to the submodule.
7
+ *
8
+ * On clone, `submodule update --init` checks the worktree's `oss` out at the
9
+ * gitlink recorded in the FRESH root base — which the root base-stale fix
10
+ * branches from origin/main, so it is the up-to-date origin tip. The clone
11
+ * source node's *working* `oss` SHA can lag that tip. The original sync blindly
12
+ * checked out the source SHA whenever it merely differed, which REWINDS the
13
+ * submodule back onto the stale source and re-introduces staleness.
14
+ *
15
+ * Guard policy (never rewind, mirror the base-start-point resolver):
16
+ * - source SHA == worktree SHA → `noop`
17
+ * - source SHA is an ancestor of worktree → `skip_rewind` (source is behind; keep fresh tip)
18
+ * - worktree SHA is an ancestor of source → `advance` (source strictly newer; safe fast-forward)
19
+ * - neither is an ancestor (diverged) → `skip_diverged` (keep fresh tip; coordinator reconciles)
20
+ *
21
+ * Both SHAs must already be resolvable in `ossCtx` (the caller fetches the
22
+ * source SHA first). A non-1 git exit (unresolvable SHA / real failure) is
23
+ * rethrown so the caller can fall back to keeping the fresh worktree HEAD.
24
+ */
25
+ export type OssCloneSyncAction = 'noop' | 'advance' | 'skip_rewind' | 'skip_diverged';
26
+ export declare function decideOssCloneSync(ossCtx: GitRepoIdentity, worktreeOssSha: string, sourceSha: string, rg: (ctx: GitRepoIdentity, argv: string[], opts?: {
27
+ timeoutMs?: number;
28
+ }) => Promise<unknown>): Promise<OssCloneSyncAction>;
29
+ /**
30
+ * Sync every registered submodule of a freshly-cloned worktree to its clone source
31
+ * node's working submodule HEAD, applying decideOssCloneSync's origin-tip-priority
32
+ * rewind guard per submodule.
33
+ *
34
+ * Generic over the submodule set: the paths come from `.gitmodules` via
35
+ * getRegisteredSubmodulePaths, so this operates identically over EVERY registered
36
+ * submodule (oss, adhdev-providers, …) instead of a hardcoded 'oss' literal. In a
37
+ * repo whose only synced submodule is `oss` the emitted git commands are byte-identical
38
+ * to the original oss-only path.
39
+ *
40
+ * Best-effort by design: a failure on one submodule is logged and skipped; it never
41
+ * blocks the other submodules or the clone. A submodule is only ever advanced to a
42
+ * STRICTLY-NEWER source SHA — the fresh (origin/main-derived) worktree tip is never
43
+ * rewound onto a behind/diverged source.
44
+ */
45
+ export declare function syncClonedWorktreeSubmodules(worktreePath: string, sourceWorkspace: string, rg: (ctx: GitRepoIdentity, argv: string[], opts?: {
46
+ timeoutMs?: number;
47
+ }) => Promise<unknown>): Promise<void>;
48
+ export declare const meshCrudHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { MedFamilyHandler } from './types.js';
2
+ export declare const meshHostPairingHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { MedFamilyHandler } from './types.js';
2
+ export declare const meshQueueHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,2 @@
1
+ import type { MedFamilyHandler } from './types.js';
2
+ export declare const meshRestartHandlers: Record<string, MedFamilyHandler>;
@@ -0,0 +1,152 @@
1
+ /**
2
+ * RF-ROUTER MED family — shared types for the extracted medium-coupling command
3
+ * handlers. Like the LOW family, each handler is a function of (context, args)
4
+ * that returns the exact CommandRouterResult the original `executeDaemonCommand`
5
+ * switch case returned, so the router facade is unchanged.
6
+ *
7
+ * Unlike the LOW family, MED handlers need a handful of router-private
8
+ * collaborators (mesh resolution, owner gating, inline-cache mutation, worktree /
9
+ * session cleanup, refine job starters, IDE launch). The router binds these onto
10
+ * MedFamilyContext at dispatch; they are NOT reachable from `deps`. The IDE family
11
+ * also needs `launchIde` to break the original `launch_ide`/`restart_*`
12
+ * self-recursion through executeDaemonCommand.
13
+ *
14
+ * Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
15
+ * medFamilyRegistry BEFORE its switch; a hit returns the handler result, a miss
16
+ * falls through to the remaining switch (and ultimately CommandHandler delegation).
17
+ */
18
+ import type { CommandRouterDeps, CommandRouterResult, MeshGitProbeCache } from '../router.js';
19
+ import type { RepoMeshSessionCleanupMode } from '../../repo-mesh-types.js';
20
+ import type { WorktreeBootstrapState } from '../../mesh/worktree-bootstrap-config.js';
21
+ /** Mesh record resolved from the router's inline-mesh cache + local config. */
22
+ export type ResolvedMeshForCommand = {
23
+ mesh: any;
24
+ inline: boolean;
25
+ source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
26
+ } | null;
27
+ /** Result of the router's local worktree-node cleanup. */
28
+ export type CleanupLocalWorktreeNodeResult = {
29
+ success: true;
30
+ skipped?: boolean;
31
+ removedPath?: string;
32
+ repoRoot?: string;
33
+ reason?: string;
34
+ fallback?: string;
35
+ forced?: boolean;
36
+ convergence?: Record<string, unknown>;
37
+ recovered?: boolean;
38
+ residue?: boolean;
39
+ residueWarning?: string;
40
+ residueError?: string;
41
+ } | {
42
+ success: false;
43
+ code: string;
44
+ error: string;
45
+ recoveryHint: string;
46
+ convergence?: Record<string, unknown>;
47
+ };
48
+ /**
49
+ * Result of the non-destructive local-worktree removability precheck. `ok:false`
50
+ * carries the same refusal `code`/`error`/`recoveryHint` that the destructive
51
+ * cleanup would have returned, so callers can refuse a removal BEFORE performing
52
+ * any irreversible step (e.g. stopping/deleting delegated sessions).
53
+ */
54
+ export type WorktreeRemovalPrecheckResult = {
55
+ ok: true;
56
+ } | {
57
+ ok: false;
58
+ code: string;
59
+ error: string;
60
+ recoveryHint: string;
61
+ };
62
+ /**
63
+ * Router-private collaborators injected at dispatch. Each is a bound method or
64
+ * field of DaemonCommandRouter; handlers that don't need a given collaborator
65
+ * simply ignore it. The router owns this instance state (inline-mesh cache,
66
+ * aggregate-status cache, session/worktree cleanup, refine jobs), so it cannot be
67
+ * read from `deps` — the registry receives bound references instead.
68
+ */
69
+ export interface MedFamilyContext {
70
+ deps: CommandRouterDeps;
71
+ /** Bound `DaemonCommandRouter.getMeshForCommand`. */
72
+ getMeshForCommand: (meshId: string, inlineMesh?: unknown, options?: {
73
+ preferInline?: boolean;
74
+ }) => Promise<ResolvedMeshForCommand>;
75
+ /** Bound `DaemonCommandRouter.getCachedInlineMesh`. */
76
+ getCachedInlineMesh: (meshId: string, inlineMesh?: unknown) => any | undefined;
77
+ /** Bound `DaemonCommandRouter.requireMeshHostMutationOwner` (owner gate). */
78
+ requireMeshHostMutationOwner: (meshId: string, inlineMesh: unknown, operation: string) => Promise<CommandRouterResult | null>;
79
+ /** Bound `DaemonCommandRouter.invalidateAggregateMeshStatus`. */
80
+ invalidateAggregateMeshStatus: (meshId: string) => void;
81
+ /** Bound `DaemonCommandRouter.updateInlineMeshNode`. */
82
+ updateInlineMeshNode: (meshId: string, mesh: any, node: any) => void;
83
+ /** Bound `DaemonCommandRouter.removeInlineMeshNode`. */
84
+ removeInlineMeshNode: (meshId: string, mesh: any, nodeId: string) => boolean;
85
+ /** Bound `DaemonCommandRouter.normalizeMeshSessionCleanupMode`. */
86
+ normalizeMeshSessionCleanupMode: (value: unknown) => RepoMeshSessionCleanupMode;
87
+ /** Bound `DaemonCommandRouter.cleanupMeshSessions`. */
88
+ cleanupMeshSessions: (args: {
89
+ meshId: string;
90
+ nodeId: string;
91
+ node: any;
92
+ mode: RepoMeshSessionCleanupMode;
93
+ sessionIds?: string[];
94
+ dryRun?: boolean;
95
+ source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
96
+ requireAutoLaunchedForTaskIds?: Record<string, string>;
97
+ /**
98
+ * Opt-in orphan reclaim (default false). When true, a workspace-only live
99
+ * session (no node binding) OR a session bound to a node that no longer
100
+ * exists in `liveMeshNodeIds` is stopped instead of skipped — reclaims the
101
+ * SESSION-ACCUMULATION-LEAK orphans. `liveMeshNodeIds` is the current mesh's
102
+ * node id set; a session whose meshNodeId is still present is treated as an
103
+ * active sibling and left alone.
104
+ */
105
+ reclaimOrphans?: boolean;
106
+ liveMeshNodeIds?: string[];
107
+ }) => Promise<{
108
+ success: boolean;
109
+ [key: string]: unknown;
110
+ }>;
111
+ /** Bound `DaemonCommandRouter.cleanupLocalWorktreeNode`. */
112
+ cleanupLocalWorktreeNode: (args: {
113
+ mesh: any;
114
+ node: any;
115
+ nodeId: string;
116
+ force?: boolean;
117
+ }) => Promise<CleanupLocalWorktreeNodeResult>;
118
+ /**
119
+ * Bound `DaemonCommandRouter.precheckLocalWorktreeRemovable` — purely
120
+ * non-destructive validation of whether a local worktree node can be removed.
121
+ * Called BEFORE session cleanup so a refusal does not orphan the session.
122
+ */
123
+ precheckLocalWorktreeRemovable: (args: {
124
+ mesh: any;
125
+ node: any;
126
+ nodeId: string;
127
+ force?: boolean;
128
+ }) => Promise<WorktreeRemovalPrecheckResult>;
129
+ /** Bound `DaemonCommandRouter.startMeshRefineJob` (async execute path). */
130
+ startMeshRefineJob: (meshId: string, nodeId: string, args: any) => Promise<CommandRouterResult>;
131
+ /** Bound `DaemonCommandRouter.batchRefineMeshNodes` (dry-run batch plan). */
132
+ batchRefineMeshNodes: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
133
+ /** Bound `DaemonCommandRouter.startMeshRefineBatchJob` (async batch execute). */
134
+ startMeshRefineBatchJob: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
135
+ /** Bound `DaemonCommandRouter.stopIde` (CDP disconnect + cleanup + optional kill). */
136
+ stopIde: (ideType: string, killProcess?: boolean) => Promise<void>;
137
+ /**
138
+ * Module-level `launchIde` helper bound to this context. The original
139
+ * `launch_ide` case body, lifted into a free function so `restart_session` /
140
+ * `restart_ide` can invoke the IDE launch directly instead of recursing
141
+ * through `executeDaemonCommand('launch_ide')` (which would re-enter the
142
+ * registry). Byte-identical to the original case body.
143
+ */
144
+ launchIde: (args: any) => Promise<CommandRouterResult>;
145
+ /** Router's inline-mesh cache (read/write of resolved mesh records). */
146
+ inlineMeshCache: Map<string, any>;
147
+ /** Router's mesh git-probe cache (reused direct-truth probes for get_mesh). */
148
+ meshGitProbeCache: MeshGitProbeCache;
149
+ }
150
+ export type MedFamilyHandler = (ctx: MedFamilyContext, args: any) => Promise<CommandRouterResult | null>;
151
+ export type MedFamilyRegistry = Map<string, MedFamilyHandler>;
152
+ export type { WorktreeBootstrapState };