@adhdev/daemon-core 0.9.82-rc.5 → 0.9.82-rc.500

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 (479) hide show
  1. package/dist/boot/daemon-lifecycle.d.ts +11 -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 +85 -2
  8. package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
  9. package/dist/cli-adapters/cli-state-engine.d.ts +246 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +139 -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 +212 -11
  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 +132 -1
  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 +27 -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 +85 -0
  77. package/dist/git/git-types.d.ts +5 -43
  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 +74 -17
  81. package/dist/index.js +61082 -24164
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +57034 -20299
  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 -37
  109. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  110. package/dist/mesh/mesh-host-ownership.d.ts +29 -0
  111. package/dist/mesh/mesh-idle-reminder.d.ts +68 -0
  112. package/dist/mesh/mesh-init.d.ts +128 -0
  113. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  114. package/dist/mesh/mesh-ledger.d.ts +139 -1
  115. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  116. package/dist/mesh/mesh-missions.d.ts +281 -0
  117. package/dist/mesh/mesh-node-identity.d.ts +310 -0
  118. package/dist/mesh/mesh-queue-assignment.d.ts +162 -0
  119. package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
  120. package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
  121. package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
  122. package/dist/mesh/mesh-reconcile-loop.d.ts +84 -0
  123. package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
  124. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  125. package/dist/mesh/mesh-refine-gates.d.ts +457 -0
  126. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  127. package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
  128. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  129. package/dist/mesh/mesh-routing.d.ts +70 -0
  130. package/dist/mesh/mesh-runtime-store.d.ts +584 -0
  131. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  132. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  133. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  134. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +34 -0
  135. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  136. package/dist/mesh/mesh-work-queue.d.ts +403 -6
  137. package/dist/mesh/preview-freshness.d.ts +28 -0
  138. package/dist/mesh/refine-config.d.ts +216 -0
  139. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  140. package/dist/providers/acp-provider-instance.d.ts +5 -0
  141. package/dist/providers/approval-utils.d.ts +46 -0
  142. package/dist/providers/chat-message-normalization.d.ts +58 -0
  143. package/dist/providers/cli-provider-effect-format.d.ts +30 -0
  144. package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
  145. package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
  146. package/dist/providers/cli-provider-instance-types.d.ts +47 -0
  147. package/dist/providers/cli-provider-instance.d.ts +461 -30
  148. package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
  149. package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
  150. package/dist/providers/contracts.d.ts +196 -6
  151. package/dist/providers/external-sources.d.ts +71 -0
  152. package/dist/providers/manual-attendance.d.ts +79 -0
  153. package/dist/providers/native-history/antigravity-claim-registry.d.ts +39 -0
  154. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  155. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  156. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  157. package/dist/providers/native-history/constants.d.ts +12 -0
  158. package/dist/providers/native-history/dispatcher.d.ts +44 -0
  159. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  160. package/dist/providers/native-history/index.d.ts +13 -0
  161. package/dist/providers/provider-instance-manager.d.ts +30 -0
  162. package/dist/providers/provider-instance.d.ts +31 -1
  163. package/dist/providers/provider-loader.d.ts +42 -5
  164. package/dist/providers/provider-trust.d.ts +31 -0
  165. package/dist/providers/read-chat-contract.d.ts +29 -0
  166. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  167. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  168. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  169. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  170. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  171. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  172. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  173. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  174. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  175. package/dist/providers/sdk/v1/index.d.ts +30 -0
  176. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  177. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  178. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  179. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  180. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  181. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  182. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  183. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  184. package/dist/providers/spec/adapter.d.ts +98 -0
  185. package/dist/providers/spec/background-task-detector.d.ts +29 -0
  186. package/dist/providers/spec/cli-adapter.d.ts +224 -0
  187. package/dist/providers/spec/evaluator.d.ts +45 -0
  188. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  189. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  190. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  191. package/dist/providers/spec/fsm-types.d.ts +202 -0
  192. package/dist/providers/spec/native-history-executor.d.ts +50 -0
  193. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  194. package/dist/providers/spec/route.d.ts +4 -0
  195. package/dist/providers/spec/types.d.ts +244 -0
  196. package/dist/providers/status-monitor.d.ts +7 -7
  197. package/dist/providers/transcript-v2.d.ts +176 -0
  198. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  199. package/dist/providers/working-dir.d.ts +17 -0
  200. package/dist/repo-mesh-types.d.ts +778 -3
  201. package/dist/runtime-defaults.d.ts +2 -0
  202. package/dist/session-host/managed-host.d.ts +64 -0
  203. package/dist/session-host/runtime-surface.d.ts +10 -16
  204. package/dist/sessions/registry.d.ts +26 -0
  205. package/dist/shared-types-extra.d.ts +2 -4
  206. package/dist/shared-types.d.ts +110 -55
  207. package/dist/status/chat-tail-hot-sessions.d.ts +40 -0
  208. package/dist/status/normalize.d.ts +1 -1
  209. package/dist/status/normalize.js +1 -0
  210. package/dist/status/normalize.js.map +1 -1
  211. package/dist/status/normalize.mjs +1 -0
  212. package/dist/status/normalize.mjs.map +1 -1
  213. package/dist/status/reporter.d.ts +2 -0
  214. package/dist/status/snapshot.d.ts +27 -0
  215. package/dist/system/hash.d.ts +8 -0
  216. package/dist/system/load-better-sqlite3.d.ts +21 -0
  217. package/dist/types.d.ts +20 -6
  218. package/package.json +11 -4
  219. package/src/agent-stream/poller.ts +2 -3
  220. package/src/agent-stream/provider-adapter.ts +1 -1
  221. package/src/boot/daemon-lifecycle.ts +83 -14
  222. package/src/boot/process-hardening.ts +89 -0
  223. package/src/build-info.ts +73 -0
  224. package/src/chat/source-machine.ts +534 -0
  225. package/src/chat/source-resolver.ts +0 -0
  226. package/src/chat/subscription-updates.ts +20 -1
  227. package/src/cli-adapter-types.d.ts +3 -1
  228. package/src/cli-adapter-types.ts +85 -2
  229. package/src/cli-adapters/cli-script-runner.ts +421 -0
  230. package/src/cli-adapters/cli-state-engine.ts +1379 -0
  231. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  232. package/src/cli-adapters/provider-cli-adapter.ts +1059 -1143
  233. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  234. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  235. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  236. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  237. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  238. package/src/cli-adapters/pty-transport.ts +2 -1
  239. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  240. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  241. package/src/cli-adapters/resolve-executable.ts +204 -0
  242. package/src/cli-adapters/session-host-transport.ts +2 -1
  243. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  244. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  245. package/src/cli-adapters/terminal-screen.ts +16 -81
  246. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  247. package/src/commands/chat-commands-read.ts +2788 -0
  248. package/src/commands/chat-commands-scope.ts +54 -0
  249. package/src/commands/chat-commands-shared.ts +114 -0
  250. package/src/commands/chat-commands-write.ts +891 -0
  251. package/src/commands/chat-commands.ts +19 -1841
  252. package/src/commands/cli-manager.d.ts +2 -0
  253. package/src/commands/cli-manager.ts +724 -27
  254. package/src/commands/handler.ts +865 -2
  255. package/src/commands/high-family/index.ts +28 -0
  256. package/src/commands/high-family/mesh-coordinator-launch.ts +696 -0
  257. package/src/commands/high-family/mesh-events.ts +102 -0
  258. package/src/commands/high-family/mesh-status.ts +857 -0
  259. package/src/commands/high-family/types.ts +80 -0
  260. package/src/commands/low-family/coordinator-prompt.ts +125 -0
  261. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  262. package/src/commands/low-family/diagnostics.ts +57 -0
  263. package/src/commands/low-family/index.ts +37 -0
  264. package/src/commands/low-family/mesh-ledger.ts +62 -0
  265. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  266. package/src/commands/low-family/notification.ts +116 -0
  267. package/src/commands/low-family/refine-config.ts +106 -0
  268. package/src/commands/low-family/session-host.ts +282 -0
  269. package/src/commands/low-family/spec-providerdev.ts +217 -0
  270. package/src/commands/low-family/status-meta.ts +112 -0
  271. package/src/commands/low-family/types.ts +39 -0
  272. package/src/commands/med-family/cli-agent.ts +270 -0
  273. package/src/commands/med-family/fast-forward.ts +230 -0
  274. package/src/commands/med-family/ide.ts +163 -0
  275. package/src/commands/med-family/index.ts +37 -0
  276. package/src/commands/med-family/mesh-crud.ts +1309 -0
  277. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  278. package/src/commands/med-family/mesh-queue.ts +167 -0
  279. package/src/commands/med-family/mesh-restart.ts +92 -0
  280. package/src/commands/med-family/types.ts +153 -0
  281. package/src/commands/mesh-coordinator.ts +334 -124
  282. package/src/commands/router-aggregate-status.ts +209 -0
  283. package/src/commands/router-mesh-session-owner.ts +114 -0
  284. package/src/commands/router-refine.ts +1794 -0
  285. package/src/commands/router-worktree-cleanup.ts +870 -0
  286. package/src/commands/router.ts +657 -2704
  287. package/src/commands/stream-commands.ts +8 -0
  288. package/src/commands/upgrade-helper.ts +310 -45
  289. package/src/config/chat-history.ts +517 -24
  290. package/src/config/config.ts +30 -0
  291. package/src/config/mesh-config.ts +542 -23
  292. package/src/config/mesh-json-config.ts +376 -0
  293. package/src/config/recent-activity.ts +8 -2
  294. package/src/config/registry-resolver.ts +100 -0
  295. package/src/config/repo-settings.ts +111 -0
  296. package/src/config/state-store.ts +55 -0
  297. package/src/daemon/dev-auto-implement.ts +3 -2
  298. package/src/daemon/dev-cli-debug.ts +10 -1
  299. package/src/daemon/dev-server.ts +0 -541
  300. package/src/detection/cli-detector.ts +94 -9
  301. package/src/detection/ide-detector.ts +55 -16
  302. package/src/detection/win32-ide-version.ts +106 -0
  303. package/src/git/change-impact-config.ts +354 -0
  304. package/src/git/git-commands.ts +113 -17
  305. package/src/git/git-diff.ts +81 -11
  306. package/src/git/git-executor.ts +12 -0
  307. package/src/git/git-status.ts +916 -51
  308. package/src/git/git-summary.ts +3 -0
  309. package/src/git/git-types.ts +17 -54
  310. package/src/git/git-worktree.ts +261 -4
  311. package/src/git/index.ts +17 -0
  312. package/src/index.ts +221 -13
  313. package/src/installer.d.ts +1 -1
  314. package/src/installer.ts +8 -6
  315. package/src/ipc/local-ipc-server.ts +278 -0
  316. package/src/launch.d.ts +1 -1
  317. package/src/launch.ts +37 -28
  318. package/src/logging/async-batch-writer.ts +55 -0
  319. package/src/logging/command-log.ts +7 -5
  320. package/src/logging/debug-config.ts +25 -0
  321. package/src/logging/debug-trace.ts +7 -2
  322. package/src/logging/log-redactor.ts +100 -0
  323. package/src/logging/log-tail-reader.ts +341 -0
  324. package/src/logging/logger.ts +14 -7
  325. package/src/mesh/contracts.ts +510 -0
  326. package/src/mesh/coordinator-prompt.ts +626 -34
  327. package/src/mesh/coordinator-registry.ts +121 -0
  328. package/src/mesh/mesh-active-work.ts +706 -0
  329. package/src/mesh/mesh-clone-grace.ts +68 -0
  330. package/src/mesh/mesh-completion-synthesis.ts +416 -0
  331. package/src/mesh/mesh-coordinator-config.ts +97 -0
  332. package/src/mesh/mesh-delivery-policy.ts +284 -0
  333. package/src/mesh/mesh-event-classify.ts +78 -0
  334. package/src/mesh/mesh-event-forwarding.ts +2042 -0
  335. package/src/mesh/mesh-event-trace.ts +67 -0
  336. package/src/mesh/mesh-events-coordinator.ts +32 -0
  337. package/src/mesh/mesh-events-pending.ts +1548 -0
  338. package/src/mesh/mesh-events-stale.ts +452 -0
  339. package/src/mesh/mesh-events-utils.ts +443 -0
  340. package/src/mesh/mesh-events.ts +43 -897
  341. package/src/mesh/mesh-fast-forward.ts +856 -0
  342. package/src/mesh/mesh-host-ownership.ts +111 -0
  343. package/src/mesh/mesh-idle-reminder.ts +153 -0
  344. package/src/mesh/mesh-init.ts +350 -0
  345. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  346. package/src/mesh/mesh-ledger.ts +898 -102
  347. package/src/mesh/mesh-magi-status.ts +223 -0
  348. package/src/mesh/mesh-missions.ts +695 -0
  349. package/src/mesh/mesh-node-identity.ts +2065 -0
  350. package/src/mesh/mesh-queue-assignment.ts +2498 -0
  351. package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
  352. package/src/mesh/mesh-reconcile-config.ts +66 -0
  353. package/src/mesh/mesh-reconcile-identity.ts +103 -0
  354. package/src/mesh/mesh-reconcile-loop.ts +1709 -0
  355. package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
  356. package/src/mesh/mesh-refine-batch.ts +205 -0
  357. package/src/mesh/mesh-refine-gates.ts +1792 -0
  358. package/src/mesh/mesh-refine-status.ts +231 -0
  359. package/src/mesh/mesh-remote-event-pull.ts +286 -0
  360. package/src/mesh/mesh-review-inbox.ts +308 -0
  361. package/src/mesh/mesh-routing.ts +291 -0
  362. package/src/mesh/mesh-runtime-store.ts +2318 -0
  363. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  364. package/src/mesh/mesh-task-inflight.ts +70 -0
  365. package/src/mesh/mesh-task-stats.ts +161 -0
  366. package/src/mesh/mesh-unresolved-forward-outbox.ts +215 -0
  367. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  368. package/src/mesh/mesh-work-queue.ts +1532 -161
  369. package/src/mesh/p2p-relay-failure.ts +2 -2
  370. package/src/mesh/preview-freshness.ts +163 -0
  371. package/src/mesh/refine-config.ts +423 -0
  372. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  373. package/src/providers/acp-provider-instance.ts +43 -10
  374. package/src/providers/approval-utils.d.ts +5 -0
  375. package/src/providers/approval-utils.ts +100 -6
  376. package/src/providers/chat-message-normalization.ts +128 -4
  377. package/src/providers/cli-provider-effect-format.ts +53 -0
  378. package/src/providers/cli-provider-history-dedup.ts +75 -0
  379. package/src/providers/cli-provider-input-prompt.ts +133 -0
  380. package/src/providers/cli-provider-instance-types.ts +150 -0
  381. package/src/providers/cli-provider-instance.ts +2914 -498
  382. package/src/providers/cli-provider-status-helpers.ts +123 -0
  383. package/src/providers/cli-provider-transcript-merge.ts +114 -0
  384. package/src/providers/contracts.d.ts +55 -0
  385. package/src/providers/contracts.ts +207 -6
  386. package/src/providers/extension-provider-instance.ts +12 -7
  387. package/src/providers/external-sources.ts +218 -0
  388. package/src/providers/ide-provider-instance.ts +35 -12
  389. package/src/providers/manual-attendance.ts +105 -0
  390. package/src/providers/native-history/antigravity-claim-registry.ts +138 -0
  391. package/src/providers/native-history/antigravity-cli-transcript.ts +1275 -0
  392. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  393. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  394. package/src/providers/native-history/constants.ts +19 -0
  395. package/src/providers/native-history/dispatcher.ts +617 -0
  396. package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
  397. package/src/providers/native-history/index.ts +30 -0
  398. package/src/providers/provider-instance-manager.ts +71 -0
  399. package/src/providers/provider-instance.ts +24 -1
  400. package/src/providers/provider-loader.ts +700 -55
  401. package/src/providers/provider-schema.ts +93 -14
  402. package/src/providers/provider-trust.ts +114 -0
  403. package/src/providers/read-chat-contract.ts +76 -16
  404. package/src/providers/sdk/README.md +49 -0
  405. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  406. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  407. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  408. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  409. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  410. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  411. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  412. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  413. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  414. package/src/providers/sdk/v1/index.ts +152 -0
  415. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  416. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  417. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  418. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +538 -0
  419. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  420. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  421. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  422. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  423. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  424. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  425. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  426. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  427. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  428. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  429. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  430. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  431. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  432. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  433. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  434. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  435. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  436. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  437. package/src/providers/sdk/v1/validators/index.ts +19 -0
  438. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  439. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  440. package/src/providers/spec/adapter.ts +246 -0
  441. package/src/providers/spec/background-task-detector.ts +178 -0
  442. package/src/providers/spec/cli-adapter.ts +1090 -0
  443. package/src/providers/spec/evaluator.ts +407 -0
  444. package/src/providers/spec/fsm-driver.ts +1528 -0
  445. package/src/providers/spec/fsm-evaluator.ts +290 -0
  446. package/src/providers/spec/fsm-loader.ts +128 -0
  447. package/src/providers/spec/fsm-types.ts +301 -0
  448. package/src/providers/spec/native-history-executor.ts +1256 -0
  449. package/src/providers/spec/pre-launch-trust.ts +104 -0
  450. package/src/providers/spec/route.ts +51 -0
  451. package/src/providers/spec/types.ts +284 -0
  452. package/src/providers/status-monitor.d.ts +7 -7
  453. package/src/providers/status-monitor.ts +37 -22
  454. package/src/providers/transcript-v2.ts +567 -0
  455. package/src/providers/types/interactive-prompt.ts +536 -0
  456. package/src/providers/version-archive.ts +64 -24
  457. package/src/providers/working-dir.ts +23 -0
  458. package/src/repo-mesh-types.ts +1040 -5
  459. package/src/runtime-defaults.ts +39 -0
  460. package/src/session-host/managed-host.ts +218 -0
  461. package/src/session-host/runtime-surface.ts +20 -80
  462. package/src/sessions/registry.ts +44 -0
  463. package/src/shared-types-extra.ts +2 -4
  464. package/src/shared-types.d.ts +8 -0
  465. package/src/shared-types.ts +148 -55
  466. package/src/status/builders.ts +69 -6
  467. package/src/status/chat-tail-hot-sessions.ts +117 -2
  468. package/src/status/normalize.ts +2 -0
  469. package/src/status/reporter.ts +19 -1
  470. package/src/status/snapshot.ts +100 -27
  471. package/src/system/hash.ts +23 -0
  472. package/src/system/host-memory.ts +29 -12
  473. package/src/system/load-better-sqlite3.ts +68 -0
  474. package/src/types.ts +26 -6
  475. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  476. package/dist/mesh/mesh-sync.d.ts +0 -53
  477. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  478. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  479. package/src/mesh/mesh-sync.ts +0 -111
@@ -14,6 +14,11 @@ import { DaemonCliManager } from './cli-manager.js';
14
14
  import type { ProviderLoader } from '../providers/provider-loader.js';
15
15
  import type { ProviderInstanceManager } from '../providers/provider-instance-manager.js';
16
16
  import { SessionRegistry } from '../sessions/registry.js';
17
+ import type { RepoMeshSessionCleanupMode } from '../repo-mesh-types.js';
18
+ import { MeshRefineBatchJobHandle, MeshRefineBatchTerminalJob, MeshRefineJobHandle, MeshRefineTerminalJob } from '../mesh/mesh-refine-gates.js';
19
+ export * from '../mesh/mesh-node-identity.js';
20
+ export * from '../mesh/mesh-refine-gates.js';
21
+ export * from '../mesh/mesh-coordinator-config.js';
17
22
  export interface SessionHostControlPlane {
18
23
  getDiagnostics(payload?: {
19
24
  includeSessions?: boolean;
@@ -55,12 +60,14 @@ export interface CommandRouterDeps {
55
60
  value: any[];
56
61
  };
57
62
  sessionRegistry: SessionRegistry;
58
- /** Callback for CDP manager creation after launch_ide */
63
+ /** Callback after CDP manager created (transport-specific extras) */
59
64
  onCdpManagerCreated?: (ideType: string, manager: DaemonCdpManager) => void;
60
65
  /** Callback after IDE connected (e.g., startAgentStreamPolling) */
61
66
  onIdeConnected?: () => void;
62
67
  /** Callback after status change (stop_ide, restart) */
63
68
  onStatusChange?: () => void;
69
+ /** Callback when a mesh state is invalidated */
70
+ onMeshStateChange?: (meshId: string) => void;
64
71
  /** Callback after chat-related commands */
65
72
  onPostChatCommand?: () => void;
66
73
  /** Get a connected CDP manager (for agent stream reset check) */
@@ -72,30 +79,220 @@ export interface CommandRouterDeps {
72
79
  statusVersion?: string;
73
80
  /** Session host control plane */
74
81
  sessionHostControl?: SessionHostControlPlane | null;
82
+ /** Selected-coordinator mesh peer telemetry surface for target daemons, when supported by the runtime. */
83
+ getMeshPeerConnectionStatus?: (daemonId: string) => Record<string, unknown> | null;
84
+ /** Dispatch a command to a remote mesh node via P2P/relay. Injected by cloud runtime; absent in standalone. */
85
+ dispatchMeshCommand?: (daemonId: string, cmd: string, args: Record<string, unknown>) => Promise<unknown>;
75
86
  }
76
87
  export interface CommandRouterResult {
77
88
  success: boolean;
78
89
  [key: string]: unknown;
79
90
  }
91
+ /**
92
+ * Confine a spec path to ~/.adhdev/providers, defeating both prefix-bypass
93
+ * (e.g. ".../providers-evil") and symlink escape. Resolves the real path of
94
+ * the *parent* directory (the file may not exist yet for writes), requires the
95
+ * basename to be a literal `*.json`, and re-joins under the verified parent so
96
+ * the returned path can't point outside the tree. Used by get/write_spec_source.
97
+ */
98
+ export declare function normalizeStandaloneHostCommandUrl(hostAddress: string): string;
99
+ export declare function buildMemberJoinNode(mesh: any, args: any, fallbackDaemonId?: string): Record<string, unknown> | null;
80
100
  export declare class DaemonCommandRouter {
81
- private deps;
101
+ /** Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
102
+ deps: CommandRouterDeps;
82
103
  /** In-memory cache for cloud-originating meshes passed via inlineMesh.
83
104
  * Allows the MCP server to query mesh data via get_mesh even when
84
105
  * the mesh doesn't exist in the local meshes.json file. */
85
106
  private inlineMeshCache;
107
+ /** Tombstones for inline mesh nodes removed via remove_mesh_node, keyed by
108
+ * meshId → set of removed nodeIds. The dashboard keeps echoing the removed
109
+ * node in the inlineMesh it attaches to every command; without a tombstone,
110
+ * reconcileInlineMeshCache MERGEs it straight back (resurrection). A
111
+ * tombstoned node is skipped during reconcile only while its workspace is
112
+ * absent from disk — a genuine re-registration (same nodeId, workspace back
113
+ * on disk) clears the tombstone and merges normally, preserving clone
114
+ * worktree visibility and legitimate node re-creation. */
115
+ private removedInlineMeshNodeIds;
116
+ /** Coordinator-owned whole-mesh aggregate status snapshots. Browser callers read this by default.
117
+ * Public (not private) so the extracted ./router-aggregate-status.ts orchestration can reach it via `self`. */
118
+ aggregateMeshStatusCache: Map<string, {
119
+ builtAt: number;
120
+ snapshot: any;
121
+ queueRevision: string;
122
+ }>;
123
+ /** Shared per-peer git_status probe dedup + recently-probed reuse gate.
124
+ * Spans separate mesh_status/get_mesh calls so the dashboard auto-retry
125
+ * loop cannot storm a slow peer with back-to-back refreshUpstream probes. */
126
+ private meshGitProbeCache;
127
+ /** Meshes with a background SWR freshen (async mesh_status refresh) already in
128
+ * flight — so a burst of interactive detail-opens serves the cached snapshot
129
+ * and coalesces onto ONE background refresh instead of storming the peers. */
130
+ private swrRefreshInFlight;
131
+ /** In-memory async Refinery jobs keyed by meshId:nodeId to reject/return duplicate in-flight requests.
132
+ * Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
133
+ runningRefineJobs: Map<string, MeshRefineJobHandle>;
134
+ /** Terminal async Refinery jobs preserve a clear answer after the worktree node has been removed. */
135
+ terminalRefineJobs: Map<string, MeshRefineTerminalJob>;
136
+ /** In-memory async batch Refinery jobs keyed by meshId (one batch convergence per mesh at a time). */
137
+ runningRefineBatchJobs: Map<string, MeshRefineBatchJobHandle>;
138
+ /** Terminal async batch Refinery jobs preserve the last batch outcome for late readers. */
139
+ terminalRefineBatchJobs: Map<string, MeshRefineBatchTerminalJob>;
86
140
  constructor(deps: CommandRouterDeps);
141
+ private hydrateCachedAggregateMeshStatusFromInline;
142
+ private getCachedAggregateMeshStatus;
143
+ private rememberAggregateMeshStatus;
144
+ getCachedInlineMeshNodes(): any[];
145
+ resolveRemoteMeshSessionOwnerDaemonId(sessionId: string, ownerNodeIdHint?: string): string | undefined;
87
146
  getCachedInlineMesh(meshId: string, inlineMesh?: unknown): any | undefined;
88
- private getMeshForCommand;
147
+ private warmInlineMeshCache;
148
+ getMeshForCommand(meshId: string, inlineMesh?: unknown, options?: {
149
+ preferInline?: boolean;
150
+ }): Promise<{
151
+ mesh: any;
152
+ inline: boolean;
153
+ source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
154
+ } | null>;
155
+ invalidateAggregateMeshStatus(meshId: string): void;
156
+ /**
157
+ * Build the MedFamilyContext handed to RF-ROUTER MED family handlers. Binds the
158
+ * router-private collaborators those handlers need (mesh resolution, owner
159
+ * gating, inline-cache mutation, worktree / session cleanup, refine job
160
+ * starters, IDE stop/launch) plus the inline-mesh and git-probe caches. The
161
+ * `launchIde` field closes over the freshly-built context so restart_session /
162
+ * restart_ide invoke the IDE launch directly instead of recursing through
163
+ * executeDaemonCommand('launch_ide').
164
+ */
165
+ private buildMedFamilyContext;
166
+ /**
167
+ * Build the HighFamilyContext handed to RF-ROUTER HIGH family handlers. Binds
168
+ * the router-private collaborators those handlers need (mesh resolution, the
169
+ * aggregate-status memory cache + its bound read/write helpers, the
170
+ * running-refine-job table, inline-mesh + git-probe caches, and the router's
171
+ * own `execute` for the get_mesh_review_inbox mesh_status re-entry). HIGH
172
+ * handlers reach more router-owned state than MED, but the binding shape is
173
+ * the same: bound methods + direct field references, none reachable from
174
+ * `deps`.
175
+ */
176
+ private buildHighFamilyContext;
177
+ private requireMeshHostMutationOwner;
89
178
  private updateInlineMeshNode;
90
179
  private removeInlineMeshNode;
91
- private normalizeMeshSessionCleanupMode;
92
- private sessionMatchesMeshNode;
93
- private cleanupLocalWorktreeNode;
94
- private getWorktreeForceCleanupConvergence;
95
- private isCompletedHostedSession;
96
- private recordIntentionalMeshSessionStop;
97
- private cleanupMeshSessions;
98
- private traceSessionHostAction;
180
+ /**
181
+ * WORKTREE-BOOTSTRAP-COORD-STATE: mark a worktree node's bootstrap as reaching a
182
+ * terminal state (complete / failed) in THIS daemon's mesh view.
183
+ *
184
+ * Root cause this fixes: clone_mesh_node forwards the clone+bootstrap to the
185
+ * source node's daemon (the worktree's machine). persistWorktreeSetupState
186
+ * therefore flips worktreeBootstrap.status to 'complete' on the WORKER daemon's
187
+ * mesh object — never on the coordinator's. The coordinator only ever holds the
188
+ * 'running' state it stamped from the forwarded clone reply. The claim path's
189
+ * bootstrap gate (mesh-event-forwarding agent:ready / mesh-queue-assignment)
190
+ * reads the coordinator's mesh via getMeshWithCache, sees status==='running'
191
+ * forever, and DEFERS every claim — so the worktree_bootstrap_complete re-fire
192
+ * (triggerMeshQueue) loops against a gate that never opens: claim never lands,
193
+ * the idle session is re-registered each tick, and auto-launch keeps spawning
194
+ * fresh sessions (runaway worktree-session multiplication).
195
+ *
196
+ * Called from the worktree_bootstrap_complete/_failed event handler BEFORE the
197
+ * queue re-fire so the gate sees the terminal state and the deferred claim can
198
+ * finally land. Updates the inline cache (clone worktree nodes are inline-only)
199
+ * and, when the node also exists in local config, persists there too; both paths
200
+ * invalidate the aggregate status cache. Best-effort and idempotent.
201
+ */
202
+ markWorktreeBootstrapTerminalState(meshId: string, nodeId: string, status: 'complete' | 'failed', opts?: {
203
+ workspace?: string;
204
+ }): void;
205
+ private tombstoneRemovedInlineMeshNode;
206
+ /** Filter an incoming inline mesh against this mesh's tombstones before it is
207
+ * reconciled into the cache. A tombstoned node is dropped only while its
208
+ * workspace is still absent from disk; if the workspace is back (genuine
209
+ * re-registration), the tombstone is cleared and the node merges normally. */
210
+ private applyInlineMeshNodeTombstones;
211
+ normalizeMeshSessionCleanupMode(value: unknown): RepoMeshSessionCleanupMode;
212
+ sessionMatchesMeshNode(record: any, node: any, nodeId: string, sessionIds?: Set<string>): boolean;
213
+ bestEffortRemoveWorktreeDir(dir: string): Promise<{
214
+ removed: boolean;
215
+ residue: boolean;
216
+ error?: string;
217
+ }>;
218
+ precheckLocalWorktreeRemovable(args: {
219
+ mesh: any;
220
+ node: any;
221
+ nodeId: string;
222
+ force?: boolean;
223
+ }): Promise<{
224
+ ok: true;
225
+ } | {
226
+ ok: false;
227
+ code: string;
228
+ error: string;
229
+ recoveryHint: string;
230
+ }>;
231
+ cleanupLocalWorktreeNode(args: {
232
+ mesh: any;
233
+ node: any;
234
+ nodeId: string;
235
+ force?: boolean;
236
+ }): Promise<{
237
+ success: true;
238
+ skipped?: boolean;
239
+ removedPath?: string;
240
+ repoRoot?: string;
241
+ reason?: string;
242
+ fallback?: string;
243
+ forced?: boolean;
244
+ convergence?: Record<string, unknown>;
245
+ recovered?: boolean;
246
+ residue?: boolean;
247
+ residueWarning?: string;
248
+ residueError?: string;
249
+ branchRefDeleted?: boolean;
250
+ branchRefReason?: string;
251
+ branchRefForced?: boolean;
252
+ branchRefWarning?: string;
253
+ } | {
254
+ success: false;
255
+ code: string;
256
+ error: string;
257
+ recoveryHint: string;
258
+ convergence?: Record<string, unknown>;
259
+ }>;
260
+ getWorktreeForceCleanupConvergence(args: {
261
+ repoRoot: string;
262
+ workspace: string;
263
+ node: any;
264
+ }): Promise<{
265
+ allow: boolean;
266
+ status?: string;
267
+ source?: string;
268
+ ref?: string;
269
+ error?: string;
270
+ }>;
271
+ isCompletedHostedSession(record: any): boolean;
272
+ recordIntentionalMeshSessionStop(args: {
273
+ meshId: string;
274
+ nodeId: string;
275
+ node: any;
276
+ sessionId: string;
277
+ mode: RepoMeshSessionCleanupMode;
278
+ source: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
279
+ action: 'stop_session' | 'delete_session_force';
280
+ }): Promise<void>;
281
+ cleanupMeshSessions(args: {
282
+ meshId: string;
283
+ nodeId: string;
284
+ node: any;
285
+ mode: RepoMeshSessionCleanupMode;
286
+ sessionIds?: string[];
287
+ dryRun?: boolean;
288
+ source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
289
+ requireAutoLaunchedForTaskIds?: Record<string, string>;
290
+ reclaimOrphans?: boolean;
291
+ liveMeshNodeIds?: string[];
292
+ }): Promise<{
293
+ success: boolean;
294
+ [key: string]: unknown;
295
+ }>;
99
296
  /**
100
297
  * Unified command routing.
101
298
  * Returns result for all commands:
@@ -108,6 +305,10 @@ export declare class DaemonCommandRouter {
108
305
  * @param source Log source ('ws' | 'p2p' | 'standalone' | etc.)
109
306
  */
110
307
  execute(cmd: string, args: any, source?: string): Promise<CommandRouterResult>;
308
+ resumePendingRefineJobsOnStartup(): Promise<void>;
309
+ private batchRefineMeshNodes;
310
+ private startMeshRefineBatchJob;
311
+ private startMeshRefineJob;
111
312
  /**
112
313
  * Daemon-level command execution (IDE start/stop/restart, CLI, detect, logs).
113
314
  * Returns null if not handled at this level → caller delegates to CommandHandler.
@@ -39,6 +39,46 @@ export declare function buildPinnedGlobalInstallCommand(options: {
39
39
  }): PinnedGlobalInstallCommand;
40
40
  export declare function getNpmExecOptions(platform?: NodeJS.Platform): NpmExecOptions;
41
41
  export declare function execNpmCommandSync(args: string[], options?: ExecFileSyncOptions, surface?: Pick<CurrentGlobalInstallSurface, 'npmExecutable' | 'npmArgsPrefix' | 'execOptions'>): Buffer | string;
42
- export declare function stopSessionHostProcesses(appName: string): void;
42
+ export declare function stopSessionHostProcesses(appName: string): Promise<void>;
43
+ /**
44
+ * Enumerate processes that have a locked native addon (conpty.node /
45
+ * ghostty-vt.dll) of *this* install memory-mapped.
46
+ *
47
+ * `stopSessionHostProcesses()` only knows the single managed session-host pid, so
48
+ * any *foreign* holder — e.g. an orphaned `pty_*probe*.cjs` left in `%TEMP%` — is
49
+ * invisible to it and keeps the addon locked through every install retry, dooming
50
+ * the upgrade with EBUSY. This scans by the module's full path so we only ever
51
+ * target a holder of the exact `packageRoot` being replaced (never an unrelated
52
+ * install's copy). Windows-only — these locks don't exist on POSIX.
53
+ */
54
+ export declare function listForeignNativeAddonHolders(packageRoot: string | null | undefined): Array<{
55
+ pid: number;
56
+ commandLine: string | null;
57
+ }>;
58
+ /**
59
+ * Terminate every foreign process holding this install's native addon mapped,
60
+ * then wait for each to actually exit so the mapping is released before npm
61
+ * copies the file into its staging dir. Returns what it found/killed so the
62
+ * caller can surface an actionable recovery message on failure.
63
+ */
64
+ export declare function stopForeignNativeAddonHolders(packageRoot: string | null | undefined, options?: {
65
+ parentPid?: number;
66
+ }): Promise<Array<{
67
+ pid: number;
68
+ commandLine: string | null;
69
+ killed: boolean;
70
+ }>>;
71
+ /**
72
+ * Best-effort removal of a leftover npm staging entry.
73
+ *
74
+ * A stale staging dir can hold a locked native binary — e.g. `ghostty-vt.dll`
75
+ * from `@adhdev/ghostty-vt-node` still mapped by a lingering session-host
76
+ * process — which makes `rmSync` throw `EPERM` on Windows. Staging cleanup is
77
+ * only housekeeping: the leftover is inert and npm creates its own fresh
78
+ * staging dir for the real install, so a lock on an old leftover must NOT abort
79
+ * the upgrade. Log and continue instead of letting the error propagate.
80
+ */
81
+ export declare function safeRemoveStaleEntry(target: string, label: string): void;
82
+ export declare function cleanupStaleGlobalInstallDirs(pkgName: string, surface: CurrentGlobalInstallSurface): void;
43
83
  export declare function spawnDetachedDaemonUpgradeHelper(payload: DaemonUpgradeHelperPayload): void;
44
84
  export declare function maybeRunDaemonUpgradeHelperFromEnv(): Promise<boolean>;
@@ -110,12 +110,23 @@ export declare function readProviderChatHistory(agentType: string, options?: {
110
110
  excludeRecentCount?: number;
111
111
  historyBehavior?: ProviderHistoryBehavior;
112
112
  scripts?: ProviderNativeHistoryScripts;
113
+ excludeInProgressTurn?: boolean;
114
+ sessionStartedAtMs?: number;
115
+ envOverrides?: Record<string, string>;
116
+ forceRefresh?: boolean;
117
+ instanceId?: string;
113
118
  }): {
114
119
  messages: HistoryMessage[];
115
120
  hasMore: boolean;
116
121
  source: 'provider-native' | 'adhdev-mirror' | 'native-unavailable';
117
122
  sourcePath?: string;
118
123
  sourceMtimeMs?: number;
124
+ providerSessionId?: string;
125
+ workspace?: string;
126
+ nativeHistoryCoverage?: string;
127
+ partialReason?: string;
128
+ unavailableReason?: string;
129
+ ownerConfirmed?: boolean;
119
130
  };
120
131
  export declare function listProviderHistorySessions(agentType: string, options?: {
121
132
  canonicalHistory?: ProviderCanonicalHistoryConfig;
@@ -71,6 +71,20 @@ export interface ADHDevConfig {
71
71
  disableUpstream?: boolean;
72
72
  providerSourceMode?: ProviderSourceMode;
73
73
  providerDir?: string;
74
+ /**
75
+ * Optional provider registry base URL override (for example a self-hosted
76
+ * registry). Highest-priority source in the registry resolver, ahead of the
77
+ * `ADHDEV_REGISTRY_URL` env var and the vendor default. See
78
+ * `config/registry-resolver.ts`.
79
+ */
80
+ registryUrl?: string;
81
+ /**
82
+ * Optional provider tarball (archive) URL override so self-hosters can point
83
+ * the daemon at their own provider mirror instead of the vendor GitHub repo.
84
+ * Highest-priority source, ahead of `ADHDEV_PROVIDER_TARBALL_URL` and the
85
+ * vendor default. See `config/registry-resolver.ts`.
86
+ */
87
+ providerTarballUrl?: string;
74
88
  /** Preferred daemon update channel. Defaults to stable/latest. */
75
89
  updateChannel?: ReleaseChannel;
76
90
  /**
@@ -86,6 +100,11 @@ export declare function isStableMachineId(machineId?: string | null): boolean;
86
100
  * Get the config directory path
87
101
  */
88
102
  export declare function getConfigDir(): string;
103
+ /**
104
+ * Get the daemon runtime data directory (~/.adhdev/daemon/).
105
+ * Distinct from the user-config dir so runtime state can be cleared independently.
106
+ */
107
+ export declare function getDaemonDataDir(): string;
89
108
  /**
90
109
  * Load configuration from disk
91
110
  */
@@ -5,7 +5,9 @@
5
5
  * Cloud mode syncs these to D1 via server routes; standalone mode
6
6
  * uses this file as the single source of truth.
7
7
  */
8
- import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig } from '../repo-mesh-types.js';
8
+ import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig, RepoMeshHostMetadata, RepoMeshDaemonRole } from '../repo-mesh-types.js';
9
+ import type { MagiKindPanelMap, MagiSlot, DifficultyBrainMap } from '@adhdev/mesh-shared';
10
+ export declare function normalizeCapabilityTags(value: unknown): string[] | undefined;
9
11
  /**
10
12
  * Normalize a Git remote URL into a stable identity string.
11
13
  * e.g. "git@github.com:user/repo.git" → "github.com/user/repo"
@@ -22,6 +24,7 @@ export interface CreateMeshOptions {
22
24
  defaultBranch?: string;
23
25
  policy?: Partial<RepoMeshPolicy>;
24
26
  coordinator?: RepoMeshCoordinatorConfig;
27
+ meshHost?: RepoMeshHostMetadata;
25
28
  }
26
29
  export declare function createMesh(opts: CreateMeshOptions): LocalMeshEntry;
27
30
  export interface UpdateMeshOptions {
@@ -29,23 +32,151 @@ export interface UpdateMeshOptions {
29
32
  defaultBranch?: string;
30
33
  policy?: Partial<RepoMeshPolicy>;
31
34
  coordinator?: RepoMeshCoordinatorConfig;
35
+ meshHost?: RepoMeshHostMetadata;
32
36
  }
33
37
  export declare function updateMesh(meshId: string, opts: UpdateMeshOptions): LocalMeshEntry | undefined;
34
38
  export declare function deleteMesh(meshId: string): boolean;
39
+ export declare function tokenIdForManualPairing(token: string): string;
40
+ export interface ConfigureMeshHostPairingOptions {
41
+ hostAddress: string;
42
+ token: string;
43
+ now?: string;
44
+ }
45
+ export declare function configureMeshHostPairing(meshId: string, opts: ConfigureMeshHostPairingOptions): {
46
+ mesh: LocalMeshEntry;
47
+ meshHost: RepoMeshHostMetadata;
48
+ hostAddress: string;
49
+ } | undefined;
50
+ export interface CreateMeshHostPairingTokenOptions {
51
+ token?: string;
52
+ expiresAt?: string;
53
+ now?: string;
54
+ }
55
+ export declare function createMeshHostPairingToken(meshId: string, opts?: CreateMeshHostPairingTokenOptions): {
56
+ mesh: LocalMeshEntry;
57
+ meshHost: RepoMeshHostMetadata;
58
+ token: string;
59
+ tokenId: string;
60
+ expiresAt?: string;
61
+ } | undefined;
62
+ export interface MeshHostJoinMemberNodeInput {
63
+ id?: string;
64
+ workspace: string;
65
+ repoRoot?: string;
66
+ daemonId?: string;
67
+ machineId?: string;
68
+ userOverrides?: Partial<RepoMeshNodeCapabilities>;
69
+ policy?: RepoMeshNodePolicy;
70
+ role?: RepoMeshDaemonRole;
71
+ }
72
+ export interface ApplyMeshHostJoinOptions {
73
+ token: string;
74
+ memberNode: MeshHostJoinMemberNodeInput;
75
+ memberMeshId?: string;
76
+ now?: string;
77
+ }
78
+ export declare function applyMeshHostJoinRequest(meshId: string, opts: ApplyMeshHostJoinOptions): {
79
+ accepted: true;
80
+ mesh: LocalMeshEntry;
81
+ meshHost: RepoMeshHostMetadata;
82
+ node: LocalMeshNodeEntry;
83
+ tokenId: string;
84
+ } | {
85
+ accepted: false;
86
+ mesh?: LocalMeshEntry;
87
+ meshHost?: RepoMeshHostMetadata;
88
+ tokenId?: string;
89
+ reason: string;
90
+ } | undefined;
91
+ export declare function markMeshHostPairingJoined(meshId: string, opts: {
92
+ hostDaemonId?: string;
93
+ hostNodeId?: string;
94
+ joinedAt?: string;
95
+ token?: string;
96
+ tokenId?: string;
97
+ }): {
98
+ mesh: LocalMeshEntry;
99
+ meshHost: RepoMeshHostMetadata;
100
+ } | undefined;
35
101
  export interface AddNodeOptions {
36
102
  workspace: string;
37
103
  repoRoot?: string;
38
104
  daemonId?: string;
39
105
  machineId?: string;
106
+ capabilities?: string[];
40
107
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
41
108
  policy?: RepoMeshNodePolicy;
42
109
  isLocalWorktree?: boolean;
43
110
  worktreeBranch?: string;
44
111
  clonedFromNodeId?: string;
112
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
113
+ role?: RepoMeshDaemonRole;
114
+ /** Owning daemon's machine nickname. Defaults to this daemon's local
115
+ * config.machineNickname when omitted — a node is always added by (and on)
116
+ * the daemon that owns its workspace (self/base node or a local worktree
117
+ * clone), so the local config is the correct source. */
118
+ machineNickname?: string;
45
119
  }
46
120
  export declare function addNode(meshId: string, opts: AddNodeOptions): LocalMeshNodeEntry | undefined;
47
121
  export declare function removeNode(meshId: string, nodeId: string): boolean;
48
122
  export declare function updateNode(meshId: string, nodeId: string, opts: {
49
123
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
50
124
  policy?: RepoMeshNodePolicy;
125
+ /** Operator-defined custom capability tags used by mesh queue matching.
126
+ * Passing an array replaces the node's custom tags (empty/whitespace
127
+ * entries dropped, deduped); an empty result clears them. Omit to leave
128
+ * the existing tags untouched. */
129
+ capabilities?: string[];
130
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
131
+ /** Per-node instruction surfaced in the coordinator prompt. Pass an
132
+ * empty string or undefined to clear it. */
133
+ systemPrompt?: string;
134
+ /** Live self-reported platform/arch from the owning daemon's git_status
135
+ * envelope. Persisted distinctly from userOverrides (auto-detected, not
136
+ * operator intent) so capability-tag os=/arch= self-heals across loads. */
137
+ reportedPlatform?: string;
138
+ reportedArch?: string;
139
+ /** Owning daemon's self-reported machine nickname, carried on the
140
+ * git_status envelope. Persisted so the friendly label survives across
141
+ * coordinator restarts (mirrors reportedPlatform/reportedArch). */
142
+ reportedMachineNickname?: string;
143
+ /** Owning daemon's self-reported provider CLI/ACP versions + build version,
144
+ * carried on the git_status envelope. Persisted distinctly from userOverrides
145
+ * (auto-detected observability, not operator intent), mirroring the
146
+ * reportedPlatform/reportedArch self-heal so the value survives restarts and
147
+ * is overwritten by the next report. */
148
+ reportedProviderVersions?: Record<string, string>;
149
+ reportedDaemonBuildVersion?: string;
51
150
  }): LocalMeshNodeEntry | undefined;
151
+ /**
152
+ * Validate + normalize a kind-panel's slots (the SOLE MAGI slot normalizer): provider
153
+ * required per slot, trims strings, drops empties, clamps replica counts, and carries
154
+ * an optional per-slot `model`. Throws on structurally invalid input (empty list / no
155
+ * provider) so the write returns a clear error. Returns the normalized slot array.
156
+ */
157
+ export declare function normalizeMagiSlots(slots: unknown): MagiSlot[];
158
+ /** All configured kind-panels (machine-local), keyed by task_kind. Empty when none. */
159
+ export declare function listMagiKindPanels(): MagiKindPanelMap;
160
+ /** The slot list for one task_kind, or undefined when the kind is not configured. */
161
+ export declare function getMagiKindPanel(kind: string): MagiSlot[] | undefined;
162
+ /**
163
+ * Upsert the slot list for one task_kind. Unlike named panels this ALWAYS overwrites
164
+ * (a kind has exactly one binding) — the editor pushes the full desired slot set.
165
+ * Returns the normalized, persisted slots.
166
+ */
167
+ export declare function setMagiKindPanel(kind: string, slots: unknown): MagiSlot[];
168
+ /** Remove the binding for one task_kind. Returns true when a binding was removed. */
169
+ export declare function removeMagiKindPanel(kind: string): boolean;
170
+ /**
171
+ * The difficulty→brain presets, machine-local. When nothing is configured yet,
172
+ * returns the sensible DEFAULT_DIFFICULTY_BRAINS so the coordinator always has a
173
+ * usable mapping (the operator can override via setDifficultyBrains). Returns a
174
+ * normalized copy — never the stored reference.
175
+ */
176
+ export declare function getDifficultyBrains(): DifficultyBrainMap;
177
+ /**
178
+ * Replace the difficulty→brain presets wholesale (the editor pushes the full map).
179
+ * Passing an empty/normalized-empty map clears the override, so getDifficultyBrains
180
+ * falls back to the defaults again. Returns the normalized, persisted map.
181
+ */
182
+ export declare function setDifficultyBrains(map: unknown): DifficultyBrainMap;