@adhdev/daemon-core 0.9.82-rc.46 → 0.9.82-rc.460

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 (439) 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 +200 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +126 -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 +7 -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 +25 -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-refine.d.ts +137 -0
  56. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  57. package/dist/commands/router.d.ts +241 -12
  58. package/dist/commands/upgrade-helper.d.ts +41 -1
  59. package/dist/config/chat-history.d.ts +9 -0
  60. package/dist/config/config.d.ts +19 -0
  61. package/dist/config/mesh-config.d.ts +129 -1
  62. package/dist/config/mesh-json-config.d.ts +199 -0
  63. package/dist/config/registry-resolver.d.ts +54 -0
  64. package/dist/config/repo-settings.d.ts +77 -0
  65. package/dist/daemon/dev-server.d.ts +0 -2
  66. package/dist/detection/ide-detector.d.ts +13 -0
  67. package/dist/detection/win32-ide-version.d.ts +37 -0
  68. package/dist/git/change-impact-config.d.ts +159 -0
  69. package/dist/git/git-commands.d.ts +12 -1
  70. package/dist/git/git-diff.d.ts +6 -0
  71. package/dist/git/git-executor.d.ts +11 -0
  72. package/dist/git/git-status.d.ts +57 -0
  73. package/dist/git/git-types.d.ts +2 -50
  74. package/dist/git/git-worktree.d.ts +71 -1
  75. package/dist/git/index.d.ts +3 -1
  76. package/dist/index.d.ts +67 -15
  77. package/dist/index.js +57943 -25340
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +57611 -25174
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/installer.d.ts +1 -4
  82. package/dist/ipc/local-ipc-server.d.ts +91 -0
  83. package/dist/launch.d.ts +1 -1
  84. package/dist/logging/async-batch-writer.d.ts +10 -0
  85. package/dist/logging/debug-config.d.ts +16 -0
  86. package/dist/logging/log-redactor.d.ts +24 -0
  87. package/dist/logging/log-tail-reader.d.ts +81 -0
  88. package/dist/logging/logger.d.ts +1 -1
  89. package/dist/mesh/contracts.d.ts +230 -0
  90. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  91. package/dist/mesh/coordinator-registry.d.ts +59 -0
  92. package/dist/mesh/mesh-active-work.d.ts +174 -0
  93. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  94. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  95. package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
  96. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  97. package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
  98. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  99. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  100. package/dist/mesh/mesh-events-pending.d.ts +113 -0
  101. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  102. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  103. package/dist/mesh/mesh-events.d.ts +6 -49
  104. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  105. package/dist/mesh/mesh-host-ownership.d.ts +29 -0
  106. package/dist/mesh/mesh-init.d.ts +128 -0
  107. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  108. package/dist/mesh/mesh-ledger.d.ts +133 -1
  109. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  110. package/dist/mesh/mesh-missions.d.ts +189 -0
  111. package/dist/mesh/mesh-node-identity.d.ts +306 -0
  112. package/dist/mesh/mesh-queue-assignment.d.ts +158 -0
  113. package/dist/mesh/mesh-reconcile-loop.d.ts +80 -0
  114. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  115. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  116. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  117. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  118. package/dist/mesh/mesh-routing.d.ts +70 -0
  119. package/dist/mesh/mesh-runtime-store.d.ts +476 -0
  120. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  121. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  122. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  123. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  124. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  125. package/dist/mesh/mesh-work-queue.d.ts +318 -5
  126. package/dist/mesh/preview-freshness.d.ts +28 -0
  127. package/dist/mesh/refine-config.d.ts +216 -0
  128. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  129. package/dist/providers/acp-provider-instance.d.ts +5 -0
  130. package/dist/providers/approval-utils.d.ts +45 -0
  131. package/dist/providers/chat-message-normalization.d.ts +58 -1
  132. package/dist/providers/cli-provider-instance.d.ts +290 -3
  133. package/dist/providers/contracts.d.ts +149 -6
  134. package/dist/providers/external-sources.d.ts +71 -0
  135. package/dist/providers/manual-attendance.d.ts +79 -0
  136. package/dist/providers/native-history/antigravity-claim-registry.d.ts +28 -0
  137. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  138. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  139. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  140. package/dist/providers/native-history/constants.d.ts +12 -0
  141. package/dist/providers/native-history/dispatcher.d.ts +31 -0
  142. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  143. package/dist/providers/native-history/index.d.ts +13 -0
  144. package/dist/providers/provider-instance-manager.d.ts +29 -0
  145. package/dist/providers/provider-instance.d.ts +30 -1
  146. package/dist/providers/provider-loader.d.ts +42 -5
  147. package/dist/providers/provider-trust.d.ts +31 -0
  148. package/dist/providers/read-chat-contract.d.ts +29 -0
  149. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  150. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  151. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  152. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  153. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  154. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  155. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  156. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  157. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  158. package/dist/providers/sdk/v1/index.d.ts +30 -0
  159. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  160. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  161. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  162. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  163. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  164. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  165. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  166. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  167. package/dist/providers/spec/adapter.d.ts +98 -0
  168. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  169. package/dist/providers/spec/evaluator.d.ts +45 -0
  170. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  171. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  172. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  173. package/dist/providers/spec/fsm-types.d.ts +202 -0
  174. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  175. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  176. package/dist/providers/spec/route.d.ts +4 -0
  177. package/dist/providers/spec/types.d.ts +222 -0
  178. package/dist/providers/status-monitor.d.ts +7 -7
  179. package/dist/providers/transcript-v2.d.ts +176 -0
  180. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  181. package/dist/providers/working-dir.d.ts +17 -0
  182. package/dist/repo-mesh-types.d.ts +519 -13
  183. package/dist/runtime-defaults.d.ts +2 -0
  184. package/dist/session-host/managed-host.d.ts +64 -0
  185. package/dist/session-host/runtime-surface.d.ts +10 -16
  186. package/dist/sessions/registry.d.ts +6 -0
  187. package/dist/shared-types-extra.d.ts +2 -4
  188. package/dist/shared-types.d.ts +86 -55
  189. package/dist/status/normalize.d.ts +1 -1
  190. package/dist/status/normalize.js +1 -0
  191. package/dist/status/normalize.js.map +1 -1
  192. package/dist/status/normalize.mjs +1 -0
  193. package/dist/status/normalize.mjs.map +1 -1
  194. package/dist/status/reporter.d.ts +2 -0
  195. package/dist/status/snapshot.d.ts +26 -0
  196. package/dist/system/hash.d.ts +8 -0
  197. package/dist/system/load-better-sqlite3.d.ts +21 -0
  198. package/dist/types.d.ts +5 -0
  199. package/package.json +11 -4
  200. package/src/agent-stream/poller.ts +2 -3
  201. package/src/agent-stream/provider-adapter.ts +1 -1
  202. package/src/boot/daemon-lifecycle.ts +65 -12
  203. package/src/boot/process-hardening.ts +89 -0
  204. package/src/build-info.ts +73 -0
  205. package/src/chat/source-machine.ts +534 -0
  206. package/src/chat/source-resolver.ts +0 -0
  207. package/src/chat/subscription-updates.ts +20 -1
  208. package/src/cli-adapter-types.d.ts +3 -1
  209. package/src/cli-adapter-types.ts +68 -2
  210. package/src/cli-adapters/cli-script-runner.ts +421 -0
  211. package/src/cli-adapters/cli-state-engine.ts +1246 -0
  212. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  213. package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
  214. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  215. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  216. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  217. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  218. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  219. package/src/cli-adapters/pty-transport.ts +2 -1
  220. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  221. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  222. package/src/cli-adapters/resolve-executable.ts +204 -0
  223. package/src/cli-adapters/session-host-transport.ts +2 -1
  224. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  225. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  226. package/src/cli-adapters/terminal-screen.ts +16 -81
  227. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  228. package/src/commands/chat-commands-read.ts +2488 -0
  229. package/src/commands/chat-commands-scope.ts +54 -0
  230. package/src/commands/chat-commands-shared.ts +114 -0
  231. package/src/commands/chat-commands-write.ts +891 -0
  232. package/src/commands/chat-commands.ts +19 -1841
  233. package/src/commands/cli-manager.ts +596 -27
  234. package/src/commands/handler.ts +845 -2
  235. package/src/commands/high-family/index.ts +28 -0
  236. package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
  237. package/src/commands/high-family/mesh-events.ts +89 -0
  238. package/src/commands/high-family/mesh-status.ts +822 -0
  239. package/src/commands/high-family/types.ts +80 -0
  240. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  241. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  242. package/src/commands/low-family/diagnostics.ts +57 -0
  243. package/src/commands/low-family/index.ts +37 -0
  244. package/src/commands/low-family/mesh-ledger.ts +62 -0
  245. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  246. package/src/commands/low-family/notification.ts +116 -0
  247. package/src/commands/low-family/refine-config.ts +106 -0
  248. package/src/commands/low-family/session-host.ts +274 -0
  249. package/src/commands/low-family/spec-providerdev.ts +217 -0
  250. package/src/commands/low-family/status-meta.ts +112 -0
  251. package/src/commands/low-family/types.ts +39 -0
  252. package/src/commands/med-family/cli-agent.ts +241 -0
  253. package/src/commands/med-family/fast-forward.ts +230 -0
  254. package/src/commands/med-family/ide.ts +163 -0
  255. package/src/commands/med-family/index.ts +37 -0
  256. package/src/commands/med-family/mesh-crud.ts +1287 -0
  257. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  258. package/src/commands/med-family/mesh-queue.ts +167 -0
  259. package/src/commands/med-family/mesh-restart.ts +92 -0
  260. package/src/commands/med-family/types.ts +153 -0
  261. package/src/commands/mesh-coordinator.ts +334 -124
  262. package/src/commands/router-refine.ts +1711 -0
  263. package/src/commands/router-worktree-cleanup.ts +870 -0
  264. package/src/commands/router.ts +1025 -4070
  265. package/src/commands/stream-commands.ts +8 -0
  266. package/src/commands/upgrade-helper.ts +310 -45
  267. package/src/config/chat-history.ts +493 -24
  268. package/src/config/config.ts +30 -0
  269. package/src/config/mesh-config.ts +619 -23
  270. package/src/config/mesh-json-config.ts +376 -0
  271. package/src/config/recent-activity.ts +8 -2
  272. package/src/config/registry-resolver.ts +100 -0
  273. package/src/config/repo-settings.ts +111 -0
  274. package/src/daemon/dev-auto-implement.ts +3 -2
  275. package/src/daemon/dev-cli-debug.ts +10 -1
  276. package/src/daemon/dev-server.ts +0 -541
  277. package/src/detection/cli-detector.ts +28 -9
  278. package/src/detection/ide-detector.ts +55 -16
  279. package/src/detection/win32-ide-version.ts +106 -0
  280. package/src/git/change-impact-config.ts +354 -0
  281. package/src/git/git-commands.ts +78 -15
  282. package/src/git/git-diff.ts +81 -11
  283. package/src/git/git-executor.ts +12 -0
  284. package/src/git/git-status.ts +767 -48
  285. package/src/git/git-types.ts +14 -62
  286. package/src/git/git-worktree.ts +261 -4
  287. package/src/git/index.ts +17 -0
  288. package/src/index.ts +200 -12
  289. package/src/installer.d.ts +1 -1
  290. package/src/installer.ts +8 -6
  291. package/src/ipc/local-ipc-server.ts +278 -0
  292. package/src/launch.d.ts +1 -1
  293. package/src/launch.ts +37 -28
  294. package/src/logging/async-batch-writer.ts +55 -0
  295. package/src/logging/command-log.ts +7 -5
  296. package/src/logging/debug-config.ts +25 -0
  297. package/src/logging/debug-trace.ts +7 -2
  298. package/src/logging/log-redactor.ts +100 -0
  299. package/src/logging/log-tail-reader.ts +341 -0
  300. package/src/logging/logger.ts +14 -7
  301. package/src/mesh/contracts.ts +469 -0
  302. package/src/mesh/coordinator-prompt.ts +536 -34
  303. package/src/mesh/coordinator-registry.ts +121 -0
  304. package/src/mesh/mesh-active-work.ts +656 -0
  305. package/src/mesh/mesh-clone-grace.ts +68 -0
  306. package/src/mesh/mesh-coordinator-config.ts +97 -0
  307. package/src/mesh/mesh-delivery-policy.ts +315 -0
  308. package/src/mesh/mesh-event-classify.ts +73 -0
  309. package/src/mesh/mesh-event-forwarding.ts +1932 -0
  310. package/src/mesh/mesh-event-trace.ts +67 -0
  311. package/src/mesh/mesh-events-coordinator.ts +32 -0
  312. package/src/mesh/mesh-events-pending.ts +766 -0
  313. package/src/mesh/mesh-events-stale.ts +440 -0
  314. package/src/mesh/mesh-events-utils.ts +443 -0
  315. package/src/mesh/mesh-events.ts +33 -1035
  316. package/src/mesh/mesh-fast-forward.ts +856 -0
  317. package/src/mesh/mesh-host-ownership.ts +111 -0
  318. package/src/mesh/mesh-init.ts +350 -0
  319. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  320. package/src/mesh/mesh-ledger.ts +873 -102
  321. package/src/mesh/mesh-magi-status.ts +223 -0
  322. package/src/mesh/mesh-missions.ts +449 -0
  323. package/src/mesh/mesh-node-identity.ts +1994 -0
  324. package/src/mesh/mesh-queue-assignment.ts +2233 -0
  325. package/src/mesh/mesh-reconcile-loop.ts +2390 -0
  326. package/src/mesh/mesh-refine-batch.ts +205 -0
  327. package/src/mesh/mesh-refine-gates.ts +1686 -0
  328. package/src/mesh/mesh-refine-status.ts +231 -0
  329. package/src/mesh/mesh-review-inbox.ts +308 -0
  330. package/src/mesh/mesh-routing.ts +291 -0
  331. package/src/mesh/mesh-runtime-store.ts +2026 -0
  332. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  333. package/src/mesh/mesh-task-inflight.ts +70 -0
  334. package/src/mesh/mesh-task-stats.ts +161 -0
  335. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  336. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  337. package/src/mesh/mesh-work-queue.ts +1281 -141
  338. package/src/mesh/preview-freshness.ts +163 -0
  339. package/src/mesh/refine-config.ts +423 -0
  340. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  341. package/src/providers/acp-provider-instance.ts +43 -10
  342. package/src/providers/approval-utils.d.ts +5 -0
  343. package/src/providers/approval-utils.ts +99 -5
  344. package/src/providers/chat-message-normalization.ts +126 -4
  345. package/src/providers/cli-provider-instance.ts +2456 -107
  346. package/src/providers/contracts.d.ts +55 -0
  347. package/src/providers/contracts.ts +160 -6
  348. package/src/providers/extension-provider-instance.ts +12 -7
  349. package/src/providers/external-sources.ts +218 -0
  350. package/src/providers/ide-provider-instance.ts +35 -12
  351. package/src/providers/manual-attendance.ts +105 -0
  352. package/src/providers/native-history/antigravity-claim-registry.ts +131 -0
  353. package/src/providers/native-history/antigravity-cli-transcript.ts +1193 -0
  354. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  355. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  356. package/src/providers/native-history/constants.ts +19 -0
  357. package/src/providers/native-history/dispatcher.ts +503 -0
  358. package/src/providers/native-history/hermes-cli-transcript.ts +260 -0
  359. package/src/providers/native-history/index.ts +30 -0
  360. package/src/providers/provider-instance-manager.ts +71 -0
  361. package/src/providers/provider-instance.ts +24 -1
  362. package/src/providers/provider-loader.ts +700 -55
  363. package/src/providers/provider-schema.ts +87 -14
  364. package/src/providers/provider-trust.ts +114 -0
  365. package/src/providers/read-chat-contract.ts +76 -16
  366. package/src/providers/sdk/README.md +49 -0
  367. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  368. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  369. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  370. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  371. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  372. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  373. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  374. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  375. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  376. package/src/providers/sdk/v1/index.ts +152 -0
  377. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  378. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  379. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  380. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +509 -0
  381. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  382. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  383. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  384. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  385. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  386. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  387. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  388. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  389. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  390. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  391. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  392. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  393. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  394. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  395. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  396. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  397. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  398. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  399. package/src/providers/sdk/v1/validators/index.ts +19 -0
  400. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  401. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  402. package/src/providers/spec/adapter.ts +246 -0
  403. package/src/providers/spec/cli-adapter.ts +1064 -0
  404. package/src/providers/spec/evaluator.ts +407 -0
  405. package/src/providers/spec/fsm-driver.ts +1528 -0
  406. package/src/providers/spec/fsm-evaluator.ts +290 -0
  407. package/src/providers/spec/fsm-loader.ts +128 -0
  408. package/src/providers/spec/fsm-types.ts +301 -0
  409. package/src/providers/spec/native-history-executor.ts +1174 -0
  410. package/src/providers/spec/pre-launch-trust.ts +104 -0
  411. package/src/providers/spec/route.ts +51 -0
  412. package/src/providers/spec/types.ts +262 -0
  413. package/src/providers/status-monitor.d.ts +7 -7
  414. package/src/providers/status-monitor.ts +37 -22
  415. package/src/providers/transcript-v2.ts +567 -0
  416. package/src/providers/types/interactive-prompt.ts +536 -0
  417. package/src/providers/version-archive.ts +64 -24
  418. package/src/providers/working-dir.ts +23 -0
  419. package/src/repo-mesh-types.ts +758 -14
  420. package/src/runtime-defaults.ts +39 -0
  421. package/src/session-host/managed-host.ts +218 -0
  422. package/src/session-host/runtime-surface.ts +20 -80
  423. package/src/sessions/registry.ts +6 -0
  424. package/src/shared-types-extra.ts +2 -4
  425. package/src/shared-types.d.ts +8 -0
  426. package/src/shared-types.ts +124 -55
  427. package/src/status/builders.ts +26 -6
  428. package/src/status/normalize.ts +2 -0
  429. package/src/status/reporter.ts +19 -1
  430. package/src/status/snapshot.ts +95 -26
  431. package/src/system/hash.ts +23 -0
  432. package/src/system/host-memory.ts +29 -12
  433. package/src/system/load-better-sqlite3.ts +68 -0
  434. package/src/types.ts +5 -0
  435. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  436. package/dist/mesh/mesh-sync.d.ts +0 -53
  437. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  438. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  439. package/src/mesh/mesh-sync.ts +0 -111
@@ -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 };
@@ -1,4 +1,4 @@
1
- import type { ProviderModule, MeshCoordinatorMcpConfigFormat } from '../providers/contracts.js';
1
+ import type { MeshCoordinatorMcpConfigFormat, MeshCoordinatorSystemPromptInjection, ProviderModule } from '../providers/contracts.js';
2
2
  export interface MeshCoordinatorMcpServerLaunch {
3
3
  command: string;
4
4
  args: string[];
@@ -25,6 +25,7 @@ export type MeshCoordinatorSetup = {
25
25
  command: string;
26
26
  requiresRestart: boolean;
27
27
  instructions: string;
28
+ mcpServer: MeshCoordinatorMcpServerLaunch;
28
29
  } | {
29
30
  kind: 'unsupported';
30
31
  reason: string;
@@ -42,3 +43,86 @@ export interface ResolveMeshCoordinatorSetupOptions {
42
43
  }
43
44
  export declare function createHermesManualMeshCoordinatorSetup(meshId: string, workspace: string): MeshCoordinatorSetup;
44
45
  export declare function resolveMeshCoordinatorSetup(options: ResolveMeshCoordinatorSetupOptions): MeshCoordinatorSetup;
46
+ /**
47
+ * Apply a provider's declared system-prompt injection rule, mutating `cliArgs`
48
+ * and `launchEnv` in place and writing any required workspace context file.
49
+ *
50
+ * Replaces the previous hard-coded `if (cliType === 'claude-cli') ... else if
51
+ * (cliType === 'hermes-cli') ...` branches in router.ts. Adding a new CLI is
52
+ * now provider.v1.json data, not a router edit.
53
+ *
54
+ * Failures are non-fatal: log and continue with whatever was applied so the
55
+ * coordinator session still launches, just without the prompt for that
56
+ * provider. A missing/unknown rule means "skip injection" — safe by default
57
+ * (the previous fallback unconditionally pushed --append-system-prompt onto
58
+ * every non-Claude CLI, which crashed agy on launch).
59
+ */
60
+ export interface CoordinatorInjectionEffect {
61
+ /** Absolute path the daemon wrote a wrapper-blocked file to. Only set for
62
+ * context_file injection. R48 schedules a strip after launch so workers
63
+ * don't see the wrapper on disk; R47's unregister cleanup uses it as a
64
+ * fallback if the timer never fires (process crash, etc). */
65
+ contextFilePath?: string;
66
+ }
67
+ export declare function applyMeshCoordinatorSystemPromptInjection(systemPrompt: string, injection: MeshCoordinatorSystemPromptInjection | undefined, ctx: {
68
+ cliArgs: string[];
69
+ launchEnv: Record<string, string>;
70
+ workspace: string;
71
+ cliType: string;
72
+ }): CoordinatorInjectionEffect;
73
+ /**
74
+ * Strip the daemon's wrapper block from a context_file we previously wrote.
75
+ *
76
+ * Used in two places:
77
+ * 1. R48 inject-then-remove: ~5s after spawn, after agy/gemini have read
78
+ * the file into their in-memory system-prompt cache. Removing it from
79
+ * disk at that point doesn't affect the running coordinator but keeps
80
+ * worker sessions (or fresh non-coordinator launches) in the same
81
+ * workspace from picking up our wrapper.
82
+ * 2. R47 unregister fallback: if the timer never fires (process crash,
83
+ * kill -9), coordinator-registry.unregisterMeshCoordinator runs the
84
+ * same logic when its entry is dropped.
85
+ *
86
+ * Idempotent: missing file is fine, missing sentinels are fine, returns
87
+ * silently. Leaves user-authored content outside the sentinels intact.
88
+ * Deletes the file outright if our wrapper was the only content.
89
+ */
90
+ export declare function stripCoordinatorWrapperFile(filePath: string): void;
91
+ export interface PtyExecResult {
92
+ exitCode: number | null;
93
+ signal: number | null;
94
+ output: string;
95
+ timedOut: boolean;
96
+ }
97
+ export interface MeshCoordinatorRegistrationStep {
98
+ command: string;
99
+ args: string[];
100
+ required: boolean;
101
+ label: 'remove_existing' | 'register';
102
+ }
103
+ /**
104
+ * Codex rejects `mcp add` when a server with the same name already exists.
105
+ * Replace that entry before registering so transport/mesh changes do not leave
106
+ * a fresh coordinator attached to stale MCP launch arguments.
107
+ */
108
+ export declare function buildMeshCoordinatorRegistrationPlan(cliType: string, serverName: string, registrationCommand: string): MeshCoordinatorRegistrationStep[];
109
+ /**
110
+ * Run a one-shot CLI command under a real PTY and collect its output.
111
+ *
112
+ * Some provider mcp-registration commands (`agy mcp add`, future bubbletea
113
+ * TUIs) refuse to run without `/dev/tty`. Daemon-side `execFileSync` runs
114
+ * pipe-only, so those commands fail with errors like
115
+ * `bubbletea: error opening TTY: open /dev/tty: device not configured`
116
+ * and silently skip the registration, leaving the launched session
117
+ * without the adhdev-mesh MCP tools — which is exactly what we saw with
118
+ * agy coordinators.
119
+ *
120
+ * Wrapping the registration through node-pty gives the child a real PTY,
121
+ * so the bubbletea check passes. We close stdin immediately and just
122
+ * collect stdout until the process exits or the timeout fires.
123
+ */
124
+ export declare function execUnderPty(command: string, args: string[], options?: {
125
+ cwd?: string;
126
+ env?: Record<string, string>;
127
+ timeoutMs?: number;
128
+ }): Promise<PtyExecResult>;
@@ -0,0 +1,137 @@
1
+ import type { DaemonCommandRouter, CommandRouterResult } from './router.js';
2
+ import { MeshRefineAsyncJobStatus, MeshRefineBatchJobHandle, MeshRefineBatchJobStatus, MeshRefineJobHandle, RefineContext, RefineStageOutcome } from '../mesh/mesh-refine-gates.js';
3
+ export declare function buildRefineJobKey(self: DaemonCommandRouter, meshId: string, nodeId: string): string;
4
+ export declare function buildRefineJobHandle(self: DaemonCommandRouter, args: {
5
+ meshId: string;
6
+ nodeId: string;
7
+ node?: any;
8
+ status?: MeshRefineAsyncJobStatus;
9
+ startedAt?: string;
10
+ completedAt?: string;
11
+ jobId?: string;
12
+ interactionId?: string;
13
+ retryOfJobId?: string;
14
+ coordinatorDaemonId?: string;
15
+ }): MeshRefineJobHandle;
16
+ export declare function queueRefineJobEvent(self: DaemonCommandRouter, event: 'refine:accepted' | 'refine:completed' | 'refine:failed', handle: MeshRefineJobHandle, result?: Record<string, unknown>): void;
17
+ export declare function appendRefineJobLedger(self: DaemonCommandRouter, kind: 'task_dispatched' | 'task_completed' | 'task_failed', handle: MeshRefineJobHandle, result?: Record<string, unknown>): Promise<void>;
18
+ /**
19
+ * On daemon restart, scan all mesh ledgers for refine jobs that were dispatched
20
+ * but never completed/failed (i.e. the daemon died mid-job). Re-queue each one
21
+ * so the job runs to completion automatically without coordinator intervention.
22
+ */
23
+ export declare function resumePendingRefineJobsOnStartup(self: DaemonCommandRouter): Promise<void>;
24
+ /**
25
+ * Synchronous refinery for a single worktree node — the gate pipeline that
26
+ * validates, preflights (patch-equivalence / submodule-reachability /
27
+ * no-op), merges, aligns submodules, cleans up the worktree node and
28
+ * (optionally) pushes. The body is a flat sequence of stage methods; each
29
+ * stage either returns a terminal CommandRouterResult (gate failure or a
30
+ * successful already-merged short-circuit) or `continue` with the extended
31
+ * context. Behavior — stage order, every early-exit, and every result shape —
32
+ * is identical to the previous single inlined body.
33
+ */
34
+ export declare function executeMeshRefineNodeSynchronously(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any): Promise<CommandRouterResult>;
35
+ /**
36
+ * resolve_refs stage: resolve the mesh / worktree node / source node /
37
+ * repoRoot, then the worktree branch, base branch, fetched base head and
38
+ * branch head. Seeds the RefineContext consumed by every later stage.
39
+ */
40
+ export declare function refineResolveRefsStage(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any, refineStages: Array<Record<string, unknown>>): Promise<RefineStageOutcome>;
41
+ /**
42
+ * validation stage: run the refinery validation gate (typecheck / test /
43
+ * lint / build per node config) and block on failure or when no allowlisted
44
+ * command was available. On pass, stores the summary on the context.
45
+ */
46
+ export declare function refineValidationStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
47
+ /**
48
+ * patch_equivalence stage: preflight that the worktree branch's cumulative
49
+ * patch is equivalent to base+branch. On a "behind base" branch, auto-rebase
50
+ * once and re-check; on an empty merge-tree with real branch changes, treat as
51
+ * already-merged-via-another-path and short-circuit to cleanup. Mutates the
52
+ * context's branchHead (after rebase) and patchEquivalence (rebased gate).
53
+ */
54
+ export declare function refinePatchEquivalenceStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
55
+ /**
56
+ * submodule_reachability stage: verify every submodule gitlink commit that
57
+ * would land via the merge is reachable from its configured remote main
58
+ * branch (optionally auto-publishing when policy allows). Blocks the merge
59
+ * when any commit is unreachable. Stores the result on the context.
60
+ */
61
+ export declare function refineSubmoduleReachabilityStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
62
+ /**
63
+ * effective_diff stage (no-op guard): block a silent no-op merge where the
64
+ * branch produces no effective root-tree diff against base — typically a
65
+ * submodule that has commits but whose root-level gitlink (pointer) bump was
66
+ * never committed, so the merge would land nothing real on main.
67
+ */
68
+ export declare function refineEffectiveDiffStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
69
+ /**
70
+ * merge + finalize stage: perform the --no-ff merge, align submodule
71
+ * checkouts after merge, clean up (remove) the worktree node per policy,
72
+ * append the refinery ledger entry, and (unless approval is required) push the
73
+ * base branch. Always terminal — produces the final CommandRouterResult.
74
+ */
75
+ export declare function refineMergeAndFinalizeStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
76
+ /**
77
+ * Batch refinery: converge multiple sibling worktree nodes onto the base branch
78
+ * in one sequential pipeline, absorbing the rebase + patch-equivalence churn that
79
+ * arises when several siblings touch the same submodule.
80
+ *
81
+ * Reuses executeMeshRefineNodeSynchronously per node — every node goes through the
82
+ * exact same validation / patch-equivalence / submodule-reachability / merge / cleanup
83
+ * gates, including its built-in auto-rebase onto fresh origin/<base>. Because each
84
+ * node fetches origin/<base> at the start of its own refine, a node merged earlier in
85
+ * the batch advances the base, and the next node's refine auto-rebases onto it before
86
+ * re-running patch-equivalence. No force-push, no reset — conflicting nodes are
87
+ * isolated as blocked_review while the rest of the batch proceeds.
88
+ */
89
+ export declare function batchRefineMeshNodes(self: DaemonCommandRouter, meshId: string, requestedNodeIds: string[] | undefined, args: any): Promise<CommandRouterResult>;
90
+ /**
91
+ * Convergence core shared by the synchronous batch entry and the async batch job.
92
+ * Refines each node in order: the per-node refine pipeline fetches origin/<base>
93
+ * fresh, so each merged sibling advances the base before the next node's auto-rebase
94
+ * + patch-equivalence re-check. A blocked/failed node is isolated; the batch
95
+ * continues with the remaining nodes. Does NOT touch the per-node merge logic — it
96
+ * only sequences calls to executeMeshRefineNodeSynchronously and aggregates outcomes.
97
+ */
98
+ export declare function runMeshRefineBatchConvergence(self: DaemonCommandRouter, meshId: string, orderedNodes: any[], ordering: {
99
+ order: string[];
100
+ rationale?: unknown;
101
+ }, args: any): Promise<CommandRouterResult>;
102
+ export declare function buildRefineBatchJobKey(self: DaemonCommandRouter, meshId: string): string;
103
+ export declare function buildRefineBatchJobHandle(self: DaemonCommandRouter, args: {
104
+ meshId: string;
105
+ nodeIds: string[];
106
+ order: string[];
107
+ status?: MeshRefineBatchJobStatus;
108
+ startedAt?: string;
109
+ completedAt?: string;
110
+ jobId?: string;
111
+ interactionId?: string;
112
+ coordinatorDaemonId?: string;
113
+ }): MeshRefineBatchJobHandle;
114
+ /**
115
+ * Emit a batch Refinery terminal/accepted event through the SAME pending-event +
116
+ * forward mechanism single-node refine uses (queueRefineJobEvent), so the
117
+ * coordinator's existing refine:accepted/completed/failed handling and message
118
+ * renderer apply unchanged. The aggregate per-node results ride along in `result`.
119
+ */
120
+ export declare function queueRefineBatchJobEvent(self: DaemonCommandRouter, event: 'refine:accepted' | 'refine:completed' | 'refine:failed', handle: MeshRefineBatchJobHandle, result?: Record<string, unknown>): void;
121
+ export declare function appendRefineBatchJobLedger(self: DaemonCommandRouter, kind: 'task_dispatched' | 'task_completed' | 'task_failed', handle: MeshRefineBatchJobHandle, result?: Record<string, unknown>): Promise<void>;
122
+ export declare function finishMeshRefineBatchJob(self: DaemonCommandRouter, handle: MeshRefineBatchJobHandle, orderedNodes: any[], ordering: {
123
+ order: string[];
124
+ rationale?: unknown;
125
+ }, args: any): Promise<void>;
126
+ /**
127
+ * Async entry for the batch Refinery execute path. Mirrors startMeshRefineJob:
128
+ * resolves the plan synchronously (so target/ordering errors and the dry-run shape
129
+ * stay synchronous), then for execute=true registers an in-flight batch job, returns
130
+ * {async:true, status:'accepted', batch:true, ...plan} immediately, and runs the
131
+ * convergence loop in the background — emitting the same terminal refine event.
132
+ * Idempotent: a batch already in flight for this mesh returns the running handle
133
+ * with duplicate:true rather than spawning a second background job.
134
+ */
135
+ export declare function startMeshRefineBatchJob(self: DaemonCommandRouter, meshId: string, requestedNodeIds: string[] | undefined, args: any): Promise<CommandRouterResult>;
136
+ export declare function finishMeshRefineJob(self: DaemonCommandRouter, handle: MeshRefineJobHandle, args: any): Promise<void>;
137
+ export declare function startMeshRefineJob(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any): Promise<CommandRouterResult>;