@adhdev/daemon-core 0.9.82-rc.47 → 0.9.82-rc.470

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 (468) 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-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 +137 -0
  58. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  59. package/dist/commands/router.d.ts +204 -15
  60. package/dist/commands/upgrade-helper.d.ts +41 -1
  61. package/dist/config/chat-history.d.ts +9 -0
  62. package/dist/config/config.d.ts +19 -0
  63. package/dist/config/mesh-config.d.ts +136 -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/daemon/dev-server.d.ts +0 -2
  68. package/dist/detection/cli-detector.d.ts +17 -0
  69. package/dist/detection/ide-detector.d.ts +13 -0
  70. package/dist/detection/win32-ide-version.d.ts +37 -0
  71. package/dist/git/change-impact-config.d.ts +159 -0
  72. package/dist/git/git-commands.d.ts +26 -2
  73. package/dist/git/git-diff.d.ts +6 -0
  74. package/dist/git/git-executor.d.ts +11 -0
  75. package/dist/git/git-status.d.ts +57 -0
  76. package/dist/git/git-types.d.ts +2 -50
  77. package/dist/git/git-worktree.d.ts +71 -1
  78. package/dist/git/index.d.ts +3 -1
  79. package/dist/index.d.ts +70 -16
  80. package/dist/index.js +58255 -24541
  81. package/dist/index.js.map +1 -1
  82. package/dist/index.mjs +59189 -25650
  83. package/dist/index.mjs.map +1 -1
  84. package/dist/installer.d.ts +1 -4
  85. package/dist/ipc/local-ipc-server.d.ts +91 -0
  86. package/dist/launch.d.ts +1 -1
  87. package/dist/logging/async-batch-writer.d.ts +10 -0
  88. package/dist/logging/debug-config.d.ts +16 -0
  89. package/dist/logging/log-redactor.d.ts +24 -0
  90. package/dist/logging/log-tail-reader.d.ts +81 -0
  91. package/dist/logging/logger.d.ts +1 -1
  92. package/dist/mesh/contracts.d.ts +230 -0
  93. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  94. package/dist/mesh/coordinator-registry.d.ts +59 -0
  95. package/dist/mesh/mesh-active-work.d.ts +203 -0
  96. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  97. package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
  98. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  99. package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
  100. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  101. package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
  102. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  103. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  104. package/dist/mesh/mesh-events-pending.d.ts +246 -0
  105. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  106. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  107. package/dist/mesh/mesh-events.d.ts +6 -49
  108. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  109. package/dist/mesh/mesh-host-ownership.d.ts +29 -0
  110. package/dist/mesh/mesh-init.d.ts +128 -0
  111. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  112. package/dist/mesh/mesh-ledger.d.ts +139 -1
  113. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  114. package/dist/mesh/mesh-missions.d.ts +226 -0
  115. package/dist/mesh/mesh-node-identity.d.ts +310 -0
  116. package/dist/mesh/mesh-queue-assignment.d.ts +158 -0
  117. package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
  118. package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
  119. package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
  120. package/dist/mesh/mesh-reconcile-loop.d.ts +80 -0
  121. package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
  122. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  123. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  124. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  125. package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
  126. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  127. package/dist/mesh/mesh-routing.d.ts +70 -0
  128. package/dist/mesh/mesh-runtime-store.d.ts +508 -0
  129. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  130. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  131. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  132. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  133. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  134. package/dist/mesh/mesh-work-queue.d.ts +363 -5
  135. package/dist/mesh/preview-freshness.d.ts +28 -0
  136. package/dist/mesh/refine-config.d.ts +216 -0
  137. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  138. package/dist/providers/acp-provider-instance.d.ts +5 -0
  139. package/dist/providers/approval-utils.d.ts +46 -0
  140. package/dist/providers/chat-message-normalization.d.ts +58 -1
  141. package/dist/providers/cli-provider-effect-format.d.ts +30 -0
  142. package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
  143. package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
  144. package/dist/providers/cli-provider-instance-types.d.ts +45 -0
  145. package/dist/providers/cli-provider-instance.d.ts +340 -30
  146. package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
  147. package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
  148. package/dist/providers/contracts.d.ts +149 -6
  149. package/dist/providers/external-sources.d.ts +71 -0
  150. package/dist/providers/manual-attendance.d.ts +79 -0
  151. package/dist/providers/native-history/antigravity-claim-registry.d.ts +28 -0
  152. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  153. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  154. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  155. package/dist/providers/native-history/constants.d.ts +12 -0
  156. package/dist/providers/native-history/dispatcher.d.ts +31 -0
  157. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  158. package/dist/providers/native-history/index.d.ts +13 -0
  159. package/dist/providers/provider-instance-manager.d.ts +29 -0
  160. package/dist/providers/provider-instance.d.ts +30 -1
  161. package/dist/providers/provider-loader.d.ts +42 -5
  162. package/dist/providers/provider-trust.d.ts +31 -0
  163. package/dist/providers/read-chat-contract.d.ts +29 -0
  164. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  165. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  166. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  167. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  168. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  169. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  170. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  171. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  172. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  173. package/dist/providers/sdk/v1/index.d.ts +30 -0
  174. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  175. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  176. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  177. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  178. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  179. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  180. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  181. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  182. package/dist/providers/spec/adapter.d.ts +98 -0
  183. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  184. package/dist/providers/spec/evaluator.d.ts +45 -0
  185. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  186. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  187. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  188. package/dist/providers/spec/fsm-types.d.ts +202 -0
  189. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  190. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  191. package/dist/providers/spec/route.d.ts +4 -0
  192. package/dist/providers/spec/types.d.ts +244 -0
  193. package/dist/providers/status-monitor.d.ts +7 -7
  194. package/dist/providers/transcript-v2.d.ts +176 -0
  195. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  196. package/dist/providers/working-dir.d.ts +17 -0
  197. package/dist/repo-mesh-types.d.ts +629 -12
  198. package/dist/runtime-defaults.d.ts +2 -0
  199. package/dist/session-host/managed-host.d.ts +64 -0
  200. package/dist/session-host/runtime-surface.d.ts +10 -16
  201. package/dist/sessions/registry.d.ts +6 -0
  202. package/dist/shared-types-extra.d.ts +2 -4
  203. package/dist/shared-types.d.ts +86 -55
  204. package/dist/status/normalize.d.ts +1 -1
  205. package/dist/status/normalize.js +1 -0
  206. package/dist/status/normalize.js.map +1 -1
  207. package/dist/status/normalize.mjs +1 -0
  208. package/dist/status/normalize.mjs.map +1 -1
  209. package/dist/status/reporter.d.ts +2 -0
  210. package/dist/status/snapshot.d.ts +26 -0
  211. package/dist/system/hash.d.ts +8 -0
  212. package/dist/system/load-better-sqlite3.d.ts +21 -0
  213. package/dist/types.d.ts +5 -0
  214. package/package.json +11 -4
  215. package/src/agent-stream/poller.ts +2 -3
  216. package/src/agent-stream/provider-adapter.ts +1 -1
  217. package/src/boot/daemon-lifecycle.ts +80 -14
  218. package/src/boot/process-hardening.ts +89 -0
  219. package/src/build-info.ts +73 -0
  220. package/src/chat/source-machine.ts +534 -0
  221. package/src/chat/source-resolver.ts +0 -0
  222. package/src/chat/subscription-updates.ts +20 -1
  223. package/src/cli-adapter-types.d.ts +3 -1
  224. package/src/cli-adapter-types.ts +68 -2
  225. package/src/cli-adapters/cli-script-runner.ts +421 -0
  226. package/src/cli-adapters/cli-state-engine.ts +1246 -0
  227. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  228. package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
  229. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  230. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  231. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  232. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  233. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  234. package/src/cli-adapters/pty-transport.ts +2 -1
  235. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  236. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  237. package/src/cli-adapters/resolve-executable.ts +204 -0
  238. package/src/cli-adapters/session-host-transport.ts +2 -1
  239. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  240. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  241. package/src/cli-adapters/terminal-screen.ts +16 -81
  242. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  243. package/src/commands/chat-commands-read.ts +2488 -0
  244. package/src/commands/chat-commands-scope.ts +54 -0
  245. package/src/commands/chat-commands-shared.ts +114 -0
  246. package/src/commands/chat-commands-write.ts +891 -0
  247. package/src/commands/chat-commands.ts +19 -1841
  248. package/src/commands/cli-manager.ts +596 -27
  249. package/src/commands/handler.ts +845 -2
  250. package/src/commands/high-family/index.ts +28 -0
  251. package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
  252. package/src/commands/high-family/mesh-events.ts +102 -0
  253. package/src/commands/high-family/mesh-status.ts +849 -0
  254. package/src/commands/high-family/types.ts +80 -0
  255. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  256. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  257. package/src/commands/low-family/diagnostics.ts +57 -0
  258. package/src/commands/low-family/index.ts +37 -0
  259. package/src/commands/low-family/mesh-ledger.ts +62 -0
  260. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  261. package/src/commands/low-family/notification.ts +116 -0
  262. package/src/commands/low-family/refine-config.ts +106 -0
  263. package/src/commands/low-family/session-host.ts +274 -0
  264. package/src/commands/low-family/spec-providerdev.ts +217 -0
  265. package/src/commands/low-family/status-meta.ts +112 -0
  266. package/src/commands/low-family/types.ts +39 -0
  267. package/src/commands/med-family/cli-agent.ts +241 -0
  268. package/src/commands/med-family/fast-forward.ts +230 -0
  269. package/src/commands/med-family/ide.ts +163 -0
  270. package/src/commands/med-family/index.ts +37 -0
  271. package/src/commands/med-family/mesh-crud.ts +1287 -0
  272. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  273. package/src/commands/med-family/mesh-queue.ts +167 -0
  274. package/src/commands/med-family/mesh-restart.ts +92 -0
  275. package/src/commands/med-family/types.ts +153 -0
  276. package/src/commands/mesh-coordinator.ts +334 -124
  277. package/src/commands/router-aggregate-status.ts +209 -0
  278. package/src/commands/router-mesh-session-owner.ts +114 -0
  279. package/src/commands/router-refine.ts +1711 -0
  280. package/src/commands/router-worktree-cleanup.ts +870 -0
  281. package/src/commands/router.ts +795 -4143
  282. package/src/commands/stream-commands.ts +8 -0
  283. package/src/commands/upgrade-helper.ts +310 -45
  284. package/src/config/chat-history.ts +493 -24
  285. package/src/config/config.ts +30 -0
  286. package/src/config/mesh-config.ts +632 -23
  287. package/src/config/mesh-json-config.ts +376 -0
  288. package/src/config/recent-activity.ts +8 -2
  289. package/src/config/registry-resolver.ts +100 -0
  290. package/src/config/repo-settings.ts +111 -0
  291. package/src/daemon/dev-auto-implement.ts +3 -2
  292. package/src/daemon/dev-cli-debug.ts +10 -1
  293. package/src/daemon/dev-server.ts +0 -541
  294. package/src/detection/cli-detector.ts +94 -9
  295. package/src/detection/ide-detector.ts +55 -16
  296. package/src/detection/win32-ide-version.ts +106 -0
  297. package/src/git/change-impact-config.ts +354 -0
  298. package/src/git/git-commands.ts +112 -16
  299. package/src/git/git-diff.ts +81 -11
  300. package/src/git/git-executor.ts +12 -0
  301. package/src/git/git-status.ts +767 -48
  302. package/src/git/git-types.ts +14 -62
  303. package/src/git/git-worktree.ts +261 -4
  304. package/src/git/index.ts +17 -0
  305. package/src/index.ts +207 -13
  306. package/src/installer.d.ts +1 -1
  307. package/src/installer.ts +8 -6
  308. package/src/ipc/local-ipc-server.ts +278 -0
  309. package/src/launch.d.ts +1 -1
  310. package/src/launch.ts +37 -28
  311. package/src/logging/async-batch-writer.ts +55 -0
  312. package/src/logging/command-log.ts +7 -5
  313. package/src/logging/debug-config.ts +25 -0
  314. package/src/logging/debug-trace.ts +7 -2
  315. package/src/logging/log-redactor.ts +100 -0
  316. package/src/logging/log-tail-reader.ts +341 -0
  317. package/src/logging/logger.ts +14 -7
  318. package/src/mesh/contracts.ts +469 -0
  319. package/src/mesh/coordinator-prompt.ts +572 -34
  320. package/src/mesh/coordinator-registry.ts +121 -0
  321. package/src/mesh/mesh-active-work.ts +706 -0
  322. package/src/mesh/mesh-clone-grace.ts +68 -0
  323. package/src/mesh/mesh-completion-synthesis.ts +398 -0
  324. package/src/mesh/mesh-coordinator-config.ts +97 -0
  325. package/src/mesh/mesh-delivery-policy.ts +284 -0
  326. package/src/mesh/mesh-event-classify.ts +78 -0
  327. package/src/mesh/mesh-event-forwarding.ts +1964 -0
  328. package/src/mesh/mesh-event-trace.ts +67 -0
  329. package/src/mesh/mesh-events-coordinator.ts +32 -0
  330. package/src/mesh/mesh-events-pending.ts +1494 -0
  331. package/src/mesh/mesh-events-stale.ts +440 -0
  332. package/src/mesh/mesh-events-utils.ts +443 -0
  333. package/src/mesh/mesh-events.ts +43 -1035
  334. package/src/mesh/mesh-fast-forward.ts +856 -0
  335. package/src/mesh/mesh-host-ownership.ts +111 -0
  336. package/src/mesh/mesh-init.ts +350 -0
  337. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  338. package/src/mesh/mesh-ledger.ts +898 -102
  339. package/src/mesh/mesh-magi-status.ts +223 -0
  340. package/src/mesh/mesh-missions.ts +568 -0
  341. package/src/mesh/mesh-node-identity.ts +2065 -0
  342. package/src/mesh/mesh-queue-assignment.ts +2247 -0
  343. package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
  344. package/src/mesh/mesh-reconcile-config.ts +66 -0
  345. package/src/mesh/mesh-reconcile-identity.ts +103 -0
  346. package/src/mesh/mesh-reconcile-loop.ts +1473 -0
  347. package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
  348. package/src/mesh/mesh-refine-batch.ts +205 -0
  349. package/src/mesh/mesh-refine-gates.ts +1686 -0
  350. package/src/mesh/mesh-refine-status.ts +231 -0
  351. package/src/mesh/mesh-remote-event-pull.ts +279 -0
  352. package/src/mesh/mesh-review-inbox.ts +308 -0
  353. package/src/mesh/mesh-routing.ts +291 -0
  354. package/src/mesh/mesh-runtime-store.ts +2150 -0
  355. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  356. package/src/mesh/mesh-task-inflight.ts +70 -0
  357. package/src/mesh/mesh-task-stats.ts +161 -0
  358. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  359. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  360. package/src/mesh/mesh-work-queue.ts +1437 -147
  361. package/src/mesh/preview-freshness.ts +163 -0
  362. package/src/mesh/refine-config.ts +423 -0
  363. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  364. package/src/providers/acp-provider-instance.ts +43 -10
  365. package/src/providers/approval-utils.d.ts +5 -0
  366. package/src/providers/approval-utils.ts +100 -6
  367. package/src/providers/chat-message-normalization.ts +126 -4
  368. package/src/providers/cli-provider-effect-format.ts +53 -0
  369. package/src/providers/cli-provider-history-dedup.ts +75 -0
  370. package/src/providers/cli-provider-input-prompt.ts +133 -0
  371. package/src/providers/cli-provider-instance-types.ts +131 -0
  372. package/src/providers/cli-provider-instance.ts +2500 -497
  373. package/src/providers/cli-provider-status-helpers.ts +123 -0
  374. package/src/providers/cli-provider-transcript-merge.ts +114 -0
  375. package/src/providers/contracts.d.ts +55 -0
  376. package/src/providers/contracts.ts +160 -6
  377. package/src/providers/extension-provider-instance.ts +12 -7
  378. package/src/providers/external-sources.ts +218 -0
  379. package/src/providers/ide-provider-instance.ts +35 -12
  380. package/src/providers/manual-attendance.ts +105 -0
  381. package/src/providers/native-history/antigravity-claim-registry.ts +131 -0
  382. package/src/providers/native-history/antigravity-cli-transcript.ts +1193 -0
  383. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  384. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  385. package/src/providers/native-history/constants.ts +19 -0
  386. package/src/providers/native-history/dispatcher.ts +503 -0
  387. package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
  388. package/src/providers/native-history/index.ts +30 -0
  389. package/src/providers/provider-instance-manager.ts +71 -0
  390. package/src/providers/provider-instance.ts +24 -1
  391. package/src/providers/provider-loader.ts +700 -55
  392. package/src/providers/provider-schema.ts +87 -14
  393. package/src/providers/provider-trust.ts +114 -0
  394. package/src/providers/read-chat-contract.ts +76 -16
  395. package/src/providers/sdk/README.md +49 -0
  396. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  397. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  398. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  399. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  400. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  401. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  402. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  403. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  404. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  405. package/src/providers/sdk/v1/index.ts +152 -0
  406. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  407. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  408. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  409. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +509 -0
  410. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  411. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  412. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  413. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  414. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  415. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  416. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  417. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  418. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  419. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  420. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  421. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  422. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  423. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  424. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  425. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  426. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  427. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  428. package/src/providers/sdk/v1/validators/index.ts +19 -0
  429. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  430. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  431. package/src/providers/spec/adapter.ts +246 -0
  432. package/src/providers/spec/cli-adapter.ts +1064 -0
  433. package/src/providers/spec/evaluator.ts +407 -0
  434. package/src/providers/spec/fsm-driver.ts +1528 -0
  435. package/src/providers/spec/fsm-evaluator.ts +290 -0
  436. package/src/providers/spec/fsm-loader.ts +128 -0
  437. package/src/providers/spec/fsm-types.ts +301 -0
  438. package/src/providers/spec/native-history-executor.ts +1241 -0
  439. package/src/providers/spec/pre-launch-trust.ts +104 -0
  440. package/src/providers/spec/route.ts +51 -0
  441. package/src/providers/spec/types.ts +284 -0
  442. package/src/providers/status-monitor.d.ts +7 -7
  443. package/src/providers/status-monitor.ts +37 -22
  444. package/src/providers/transcript-v2.ts +567 -0
  445. package/src/providers/types/interactive-prompt.ts +536 -0
  446. package/src/providers/version-archive.ts +64 -24
  447. package/src/providers/working-dir.ts +23 -0
  448. package/src/repo-mesh-types.ts +868 -13
  449. package/src/runtime-defaults.ts +39 -0
  450. package/src/session-host/managed-host.ts +218 -0
  451. package/src/session-host/runtime-surface.ts +20 -80
  452. package/src/sessions/registry.ts +6 -0
  453. package/src/shared-types-extra.ts +2 -4
  454. package/src/shared-types.d.ts +8 -0
  455. package/src/shared-types.ts +124 -55
  456. package/src/status/builders.ts +26 -6
  457. package/src/status/normalize.ts +2 -0
  458. package/src/status/reporter.ts +19 -1
  459. package/src/status/snapshot.ts +95 -26
  460. package/src/system/hash.ts +23 -0
  461. package/src/system/host-memory.ts +29 -12
  462. package/src/system/load-better-sqlite3.ts +68 -0
  463. package/src/types.ts +5 -0
  464. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  465. package/dist/mesh/mesh-sync.d.ts +0 -53
  466. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  467. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  468. package/src/mesh/mesh-sync.ts +0 -111
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Mesh init / onboarding helper.
3
+ *
4
+ * One-shot helper that onboards an existing git project into Repo Mesh:
5
+ * 1. suggest + write `.adhdev/refine.json` (Refinery validation config)
6
+ * 2. suggest + write `.adhdev/worktree_bootstrap.json` (worktree bootstrap config)
7
+ * 3. suggest + write `.adhdev/change-impact.json` (change-impact classification)
8
+ * 4. recommend a node providerPriority from the installed CLI providers
9
+ *
10
+ * mesh_init now covers all THREE repo-committed `.adhdev/*` config families that
11
+ * carry a suggest→validate→write engine (refine + worktree_bootstrap +
12
+ * change-impact). `.adhdev/mesh.json` (coordinator prompt + operating notes) has
13
+ * its own dedicated export/write path (export_mesh_json_config / write_mesh_json_config).
14
+ *
15
+ * Design contract (matches the rest of the mesh tooling):
16
+ * - Heuristics are suggestion/scaffold only. The written files are the
17
+ * execution source of truth; Refinery/bootstrap only ever read the saved
18
+ * config. The suggestion functions never become the execution path.
19
+ * - Writing is opt-in (`write: true`) and never clobbers an existing config
20
+ * unless `overwrite: true` is set, so re-running init on an already-onboarded
21
+ * repo is safe.
22
+ * - The providerPriority recommendation is returned, not auto-applied to the
23
+ * node policy — applying it mutates mesh policy, which is the coordinator's
24
+ * decision.
25
+ */
26
+ import { type RepoMeshRefineConfig, type RepoMeshRefineValidationCommandConfig } from './refine-config.js';
27
+ import { type RepoMeshWorktreeBootstrapConfig } from './worktree-bootstrap-config.js';
28
+ import { type ChangeImpactConfig } from '../git/change-impact-config.js';
29
+ import type { MagiKindPanelMap } from '@adhdev/mesh-shared';
30
+ import type { CLIInfo } from '../detection/cli-detector.js';
31
+ /** Canonical write targets — the first/preferred location for each config family. */
32
+ export declare const MESH_INIT_REFINE_CONFIG_PATH: string;
33
+ export declare const MESH_INIT_WORKTREE_BOOTSTRAP_CONFIG_PATH: string;
34
+ export declare const MESH_INIT_CHANGE_IMPACT_CONFIG_PATH: string;
35
+ export interface MeshInitConfigFileResult {
36
+ path: string;
37
+ relativePath: string;
38
+ written: boolean;
39
+ /** Why it was not written (already_exists / not_suggested / no change). */
40
+ skippedReason?: 'already_exists' | 'no_suggestion';
41
+ config?: RepoMeshRefineConfig | RepoMeshWorktreeBootstrapConfig | ChangeImpactConfig;
42
+ }
43
+ /**
44
+ * Build a worktree_bootstrap scaffold from package scripts. Mirrors
45
+ * suggestMeshRefineConfig's "scaffold only" posture: prefers an `install`/`ci`
46
+ * style script, else falls back to `npm install`, and records existing
47
+ * lockfiles as staleInputs so a base merge that changes them re-runs bootstrap.
48
+ *
49
+ * Returns undefined when there is nothing meaningful to scaffold.
50
+ */
51
+ export declare function suggestMeshWorktreeBootstrapConfig(workspace: string): {
52
+ commands: RepoMeshRefineValidationCommandConfig[];
53
+ staleInputs: string[];
54
+ suggestedConfig?: RepoMeshWorktreeBootstrapConfig;
55
+ };
56
+ export declare function suggestNodeProviderPriority(detected: CLIInfo[]): {
57
+ providerPriority: string[];
58
+ installedProviders: Array<{
59
+ id: string;
60
+ displayName: string;
61
+ version?: string;
62
+ }>;
63
+ };
64
+ export interface RunMeshInitOptions {
65
+ /** When true, persist suggested configs to disk. Defaults to dry-run (false). */
66
+ write?: boolean;
67
+ /** When true, overwrite an existing config file. Defaults to false (never clobber). */
68
+ overwrite?: boolean;
69
+ }
70
+ /**
71
+ * A snapshot of the currently-saved config for each domain, so the coordinator can
72
+ * render a current-vs-suggested diff to the user before an init/reinit overwrite.
73
+ * This is READ-ONLY echo — every field is what is on disk / machine-local right now,
74
+ * never a suggestion. Absent domains are reported as `undefined` config.
75
+ */
76
+ export interface MeshInitCurrentConfigEcho {
77
+ /** Currently-saved `.adhdev/refine.json` (repo-committed) — undefined when absent/invalid. */
78
+ refine?: RepoMeshRefineConfig;
79
+ /** Currently-saved `.adhdev/worktree_bootstrap.json` (repo-committed). */
80
+ worktreeBootstrap?: RepoMeshWorktreeBootstrapConfig;
81
+ /** Currently-saved `.adhdev/change-impact.json` (repo-committed). */
82
+ changeImpact?: ChangeImpactConfig;
83
+ /** Per-domain source type so the coordinator can tell "absent" from "invalid". */
84
+ sourceTypes: {
85
+ refine: string;
86
+ worktreeBootstrap: string;
87
+ changeImpact: string;
88
+ };
89
+ /**
90
+ * Currently-configured MAGI kind→panel slot bindings (machine-local
91
+ * ~/.adhdev/meshes.json). Empty object when none configured. This is a
92
+ * machine-local echo — the coordinator labels it as such vs. the repo files.
93
+ */
94
+ magiKindPanels: MagiKindPanelMap;
95
+ }
96
+ export interface RunMeshInitResult {
97
+ success: true;
98
+ workspace: string;
99
+ dryRun: boolean;
100
+ refine: MeshInitConfigFileResult;
101
+ worktreeBootstrap: MeshInitConfigFileResult;
102
+ changeImpact: MeshInitConfigFileResult;
103
+ providers: {
104
+ providerPriority: string[];
105
+ installedProviders: Array<{
106
+ id: string;
107
+ displayName: string;
108
+ version?: string;
109
+ }>;
110
+ };
111
+ /**
112
+ * Read-only snapshot of the currently-saved config per domain (repo files +
113
+ * machine-local kind panels). Lets the coordinator present a current-vs-suggested
114
+ * diff to the user before any overwrite. Always populated (dry-run and write).
115
+ */
116
+ currentConfig: MeshInitCurrentConfigEcho;
117
+ note: string;
118
+ }
119
+ /**
120
+ * Orchestrate the full onboarding flow for one workspace:
121
+ * detect installed CLIs → suggest refine + bootstrap configs → (optionally)
122
+ * write them → recommend a node providerPriority.
123
+ *
124
+ * `detected` is injected (the caller resolves it via detectCLIs with its
125
+ * ProviderLoader) so this module stays free of provider-loader wiring and is
126
+ * trivially unit-testable.
127
+ */
128
+ export declare function runMeshInit(mesh: any, workspace: string, detected: CLIInfo[], options?: RunMeshInitOptions): RunMeshInitResult;
@@ -1,4 +1,24 @@
1
- import type { AppendRemoteLedgerResult, MeshLedgerSlice, MeshLedgerSummary } from './mesh-ledger.js';
1
+ import type { AppendRemoteLedgerResult, MeshLedgerSummary } from './mesh-ledger.js';
2
+ /** Minimal ledger slice shape accepted by buildMeshLedgerReplicaEvidence. Covers both JSONL and SQLite slices. */
3
+ export interface AnyLedgerSlice {
4
+ entries: Array<{
5
+ id: string;
6
+ meshId: string;
7
+ timestamp: string;
8
+ kind: string;
9
+ nodeId?: string | null;
10
+ sessionId?: string | null;
11
+ providerType?: string | null;
12
+ payload: unknown;
13
+ }>;
14
+ cursor: {
15
+ afterId: string | null;
16
+ nextAfterId: string | null;
17
+ limit: number;
18
+ hasMore: boolean;
19
+ };
20
+ summary?: MeshLedgerSummary;
21
+ }
2
22
  export type MeshLedgerReplicaStatus = 'local' | 'queried' | 'imported' | 'failed';
3
23
  export interface MeshLedgerReplicaEvidence {
4
24
  nodeId: string;
@@ -22,9 +42,8 @@ export interface MeshLedgerReconciliationEvidence {
22
42
  meshId: string;
23
43
  generatedAt: string;
24
44
  sourceOfTruth: {
25
- kind: 'coordinator_local_jsonl';
45
+ kind: 'coordinator_local_sqlite';
26
46
  p2pOnly: true;
27
- cloudD1LedgerSync: false;
28
47
  notes: string;
29
48
  };
30
49
  replicas: MeshLedgerReplicaEvidence[];
@@ -47,7 +66,7 @@ export declare function buildMeshLedgerReplicaEvidence(args: {
47
66
  nodeId: string;
48
67
  daemonId?: string;
49
68
  transport: 'local' | 'p2p_datachannel';
50
- slice?: MeshLedgerSlice;
69
+ slice?: AnyLedgerSlice;
51
70
  importResult?: AppendRemoteLedgerResult;
52
71
  status?: MeshLedgerReplicaStatus;
53
72
  error?: string;
@@ -13,7 +13,9 @@
13
13
  * Safety: mode 0o600, atomic append via appendFileSync
14
14
  */
15
15
  import { EventEmitter } from 'events';
16
- export type MeshLedgerKind = 'task_dispatched' | 'task_completed' | 'task_failed' | 'task_stalled' | 'task_approval_needed' | 'session_launched' | 'session_auto_launch' | 'session_stopped' | 'checkpoint_created' | 'node_cloned' | 'node_removed' | 'coordinator_started' | 'recovery_attempted' | 'ledger_replicated' | 'ledger_reconciled';
16
+ import { MeshRuntimeStore } from './mesh-runtime-store.js';
17
+ import { type MeshLedgerOriginatingCoordinatorV2 } from './contracts.js';
18
+ export type MeshLedgerKind = 'task_dispatched' | 'task_completed' | 'task_failed' | 'task_stalled' | 'task_approval_needed' | 'p2p_dispatch_failed' | 'session_launched' | 'session_auto_launch' | 'session_stopped' | 'checkpoint_created' | 'node_cloned' | 'node_joined' | 'node_removed' | 'coordinator_started' | 'recovery_attempted' | 'ledger_replicated' | 'ledger_reconciled' | 'direct_fast_forward' | 'delivery_unroutable' | 'direct_dispatch_pruned' | 'event_held' | 'event_held_requeued' | 'task_reclaimed' | 'coordinator_operating_note' | 'coordinator_operating_note_tombstone' | 'mission_created' | 'mission_status_changed' | 'mission_goal_updated' | 'magi_dispatched' | 'magi_synthesis';
17
19
  export interface MeshLedgerEntry {
18
20
  id: string;
19
21
  meshId: string;
@@ -25,6 +27,40 @@ export interface MeshLedgerEntry {
25
27
  payload: Record<string, unknown>;
26
28
  }
27
29
  export declare function isIntentionalCleanupStopEntry(entry: Pick<MeshLedgerEntry, 'kind' | 'payload'>): boolean;
30
+ export type MeshWorkerResultStatus = 'completed' | 'failed' | 'blocked' | 'partial' | 'unknown';
31
+ export type MeshProcessArtifactKind = 'process' | 'log' | 'port' | 'window' | 'session' | 'file' | 'url' | 'other';
32
+ export interface MeshValidationResultArtifact {
33
+ command?: string;
34
+ status: 'passed' | 'failed' | 'skipped' | 'unknown';
35
+ durationMs?: number;
36
+ outputPath?: string;
37
+ summary?: string;
38
+ }
39
+ export interface MeshProcessArtifact {
40
+ kind: MeshProcessArtifactKind;
41
+ id?: string;
42
+ label?: string;
43
+ locator?: string;
44
+ pid?: number;
45
+ port?: number;
46
+ url?: string;
47
+ path?: string;
48
+ sessionId?: string;
49
+ keepRunning?: boolean;
50
+ metadata?: Record<string, unknown>;
51
+ }
52
+ export interface MeshWorkerResultArtifact {
53
+ status: MeshWorkerResultStatus;
54
+ classification?: string;
55
+ changedFiles: string[];
56
+ validationResults: MeshValidationResultArtifact[];
57
+ gitStatus?: Record<string, unknown>;
58
+ processArtifacts: MeshProcessArtifact[];
59
+ errors: string[];
60
+ nextAction?: string;
61
+ requiresUserAction: boolean;
62
+ source: 'explicit_metadata' | 'final_summary_json' | 'parseable_answer' | 'default';
63
+ }
28
64
  export interface MeshTaskCompletionEvidence {
29
65
  source: 'agent_status_event';
30
66
  event: 'agent:generating_completed' | 'agent:ready';
@@ -38,6 +74,7 @@ export interface MeshTaskCompletionEvidence {
38
74
  providerSessionId?: string;
39
75
  finalSummaryAvailable: boolean;
40
76
  };
77
+ workerResult: MeshWorkerResultArtifact;
41
78
  git: {
42
79
  status: 'deferred';
43
80
  reason: string;
@@ -59,6 +96,7 @@ export interface BuildTaskCompletionEvidenceOptions {
59
96
  providerType?: string;
60
97
  providerSessionId?: string;
61
98
  finalSummary?: string;
99
+ workerResult?: Record<string, unknown>;
62
100
  completedAt?: string;
63
101
  }
64
102
  export interface MeshLedgerSummary {
@@ -77,6 +115,12 @@ export interface ReadLedgerOptions {
77
115
  tail?: number;
78
116
  since?: string;
79
117
  kind?: MeshLedgerKind[];
118
+ /**
119
+ * Filter to entries whose nodeId is equivalent to this daemon id. Matched via
120
+ * daemonIdsEquivalent (not raw ===) so caller-supplied identifiers in any form
121
+ * (mach_X vs daemon_mach_X) resolve correctly — see the canon-identity defect class.
122
+ */
123
+ node?: string;
80
124
  }
81
125
  export interface ReadLedgerSliceOptions {
82
126
  /** Return entries strictly after this entry id. If not found, starts from the beginning of the filtered set. */
@@ -114,21 +158,105 @@ export interface AppendRemoteLedgerResult {
114
158
  entries: MeshLedgerEntry[];
115
159
  }
116
160
  export declare const MAX_LEDGER_SLICE_LIMIT = 500;
161
+ export declare const OPERATING_NOTE_KIND: MeshLedgerKind;
162
+ export declare const OPERATING_NOTE_TOMBSTONE_KIND: MeshLedgerKind;
163
+ export declare const OPERATING_NOTE_DEDUPE_WINDOW = 40;
164
+ export declare const OPERATING_NOTE_KEEP_LATEST = 100;
117
165
  export declare function getLedgerDir(): string;
166
+ /**
167
+ * Footer to append to worker task messages so workers output structured results
168
+ * that the daemon parses via extractJsonObjectFromSummary / normalizeMeshWorkerResult.
169
+ *
170
+ * Usage: append buildWorkerTaskFooter() to the task message in mesh_send_task /
171
+ * mesh_enqueue_task. The coordinator prompt rules instruct coordinators to do this.
172
+ */
173
+ export declare function buildWorkerTaskFooter(): string;
174
+ /**
175
+ * Compact the active ledger file for a mesh by moving old terminal entries
176
+ * (task_completed, task_failed, task_stalled, recovery_attempted older than 7 days)
177
+ * to <meshId>.archive.jsonl, keeping the active file lean.
178
+ *
179
+ * Non-terminal entries (dispatch, sessions, node lifecycle) are always retained.
180
+ * Called automatically from appendLedgerEntry when the file exceeds COMPACT_THRESHOLD_BYTES.
181
+ */
182
+ export declare function compactLedger(meshId: string): {
183
+ archivedCount: number;
184
+ retainedCount: number;
185
+ };
186
+ export declare function normalizeMeshWorkerResult(input?: Record<string, unknown>, source?: MeshWorkerResultArtifact['source']): MeshWorkerResultArtifact;
118
187
  export declare function buildTaskCompletionEvidence(opts: BuildTaskCompletionEvidenceOptions): MeshTaskCompletionEvidence;
188
+ /**
189
+ * Build the v2 originating-coordinator stamp for a task_dispatched ledger entry
190
+ * (B2a / design decision §2). This is the source of truth from which a worker's
191
+ * completion emit later restores `dispatchedBy` — it records which coordinator
192
+ * dispatched the task, so the terminal event can be routed (unicast) back to it.
193
+ *
194
+ * Nested under `payload.originatingCoordinator`; additive, so existing readers
195
+ * of the task_dispatched payload are unaffected. Returns undefined when no
196
+ * coordinator daemon id is known (the pre-v2 path) so the caller omits the stamp
197
+ * entirely rather than writing a malformed identity — those entries stay v1 and
198
+ * are broadcast-treated during rollout.
199
+ */
200
+ export declare function buildLedgerOriginatingCoordinatorStamp(fields: {
201
+ coordinatorDaemonId?: string | null;
202
+ coordinatorRunId?: string | null;
203
+ coordinatorSessionId?: string | null;
204
+ }): MeshLedgerOriginatingCoordinatorV2 | undefined;
119
205
  /**
120
206
  * Append a new entry to the mesh ledger.
121
207
  * Handles file creation, rotation on size overflow, and atomic writes.
122
208
  */
123
209
  export declare const meshLedgerEvents: EventEmitter<[never]>;
124
210
  export declare function appendLedgerEntry(meshId: string, partial: Omit<MeshLedgerEntry, 'id' | 'meshId' | 'timestamp'>): MeshLedgerEntry;
211
+ /** True if the operating note is retracted by any tombstone in `tombstones`. */
212
+ export declare function isOperatingNoteTombstoned(entry: Pick<MeshLedgerEntry, 'id' | 'payload'>, tombstones: {
213
+ ids: Set<string>;
214
+ fingerprints: Set<string>;
215
+ }): boolean;
216
+ /**
217
+ * Fix (2) supersede/remove: append a tombstone that retracts a coordinator
218
+ * operating note. Targets by note id and/or by exact trimmed text (a text target
219
+ * retracts every note with that text). History is preserved — the notes stay in
220
+ * the ledger but readers filter them out. Returns how many currently-live notes
221
+ * the tombstone will hide.
222
+ */
223
+ export declare function tombstoneOperatingNote(meshId: string, target: {
224
+ noteId?: string;
225
+ text?: string;
226
+ reason?: string;
227
+ }): {
228
+ tombstone: MeshLedgerEntry;
229
+ matched: number;
230
+ };
231
+ /**
232
+ * Read live operating notes (tombstoned notes filtered out), oldest→newest.
233
+ * `tail` bounds the number of live notes returned (the freshest N).
234
+ */
235
+ export declare function readOperatingNotes(meshId: string, opts?: {
236
+ tail?: number;
237
+ }): MeshLedgerEntry[];
238
+ /**
239
+ * Fix (3) keep-latest-N prune for coordinator_operating_note. Removes, from the
240
+ * store, (a) every note retracted by a tombstone, and (b) the oldest live notes
241
+ * beyond `keepLatest`. Tombstone entries themselves are retained as an audit trail
242
+ * of what was forgotten. Returns the number of note entries removed.
243
+ */
244
+ export declare function pruneOperatingNotes(meshId: string, keepLatest?: number): number;
125
245
  /**
126
246
  * Append entries received over local-first/P2P ledger replication to the local ledger.
127
247
  * This skips deduplicated entries and rejects malformed/cross-mesh entries.
128
248
  */
129
249
  export declare function appendRemoteLedgerEntries(meshId: string, entries: MeshLedgerEntry[]): AppendRemoteLedgerResult;
250
+ /**
251
+ * Test helper: clear all runtime ledger state for a mesh — SQLite rows, read
252
+ * cache, and the one-time import flag. JSONL files are the caller's concern.
253
+ */
254
+ export declare function __clearMeshLedgerForTests(meshId: string): void;
130
255
  /**
131
256
  * Read ledger entries with optional filtering.
257
+ * G2: SQLite (mesh_event_ledger) is the primary read path; legacy JSONL is
258
+ * imported once per store instance and otherwise retained as an
259
+ * export/import/debug artifact only.
132
260
  */
133
261
  export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptions): MeshLedgerEntry[];
134
262
  /**
@@ -137,6 +265,16 @@ export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptio
137
265
  * remote daemons on demand without Cloud/D1 becoming a ledger data-plane.
138
266
  */
139
267
  export declare function readLedgerSlice(meshId: string, opts?: ReadLedgerSliceOptions): MeshLedgerSlice;
268
+ /**
269
+ * G4: Read a bounded ledger slice from the SQLite mesh_event_ledger table.
270
+ * This is the preferred P2P reconcile read path; JSONL files are retained as
271
+ * export/import/debug/legacy artifacts only.
272
+ *
273
+ * Returns a shape structurally compatible with MeshLedgerSlice (minus the
274
+ * JSONL-specific `summary` and `sourceOfTruth.path` fields) so callers can
275
+ * pass it to buildMeshLedgerReplicaEvidence without modification.
276
+ */
277
+ export declare function readLedgerSliceFromStore(meshId: string, opts?: ReadLedgerSliceOptions): ReturnType<typeof MeshRuntimeStore.prototype.readLedgerSlice>;
140
278
  /**
141
279
  * Get a summary of mesh activity from the ledger.
142
280
  */
@@ -0,0 +1,63 @@
1
+ import type { MeshLedgerEntry } from './mesh-ledger.js';
2
+ import type { MagiGitSkew } from '@adhdev/mesh-shared';
3
+ export type MeshMagiActivityStatus = 'running' | 'synthesized';
4
+ /** A bounded needs_verification preview item (claim text + category only). */
5
+ export interface MeshMagiNeedsVerificationItem {
6
+ claim: string;
7
+ category: string;
8
+ }
9
+ export interface MeshMagiActivitySummary {
10
+ consensusGroupId: string;
11
+ status: MeshMagiActivityStatus;
12
+ missionId?: string;
13
+ panel?: string;
14
+ question?: string;
15
+ replicaCount?: number;
16
+ answered?: number;
17
+ missing?: number;
18
+ staleReplicas?: number;
19
+ needsVerificationCount?: number;
20
+ agreedCount?: number;
21
+ independenceBanner?: string | null;
22
+ gitSkew?: MagiGitSkew;
23
+ /** Bounded sample of the needs_verification clusters (claim + category). */
24
+ needsVerification?: MeshMagiNeedsVerificationItem[];
25
+ openQuestions?: string[];
26
+ lastLedgerKind?: string;
27
+ lastUpdatedAt?: string;
28
+ }
29
+ /** Cap on inlined needs_verification preview items per group (keeps the payload bounded). */
30
+ export declare const MAGI_NEEDS_VERIFICATION_PREVIEW_CAP = 8;
31
+ /**
32
+ * Reconstruct per-consensusGroup MAGI activity from a ledger window. The newest
33
+ * `magi_synthesis` for a group supplies the synthesis fields; a `magi_dispatched`
34
+ * with no later synthesis stays `running`. Deduped by consensusGroupId, newest first.
35
+ */
36
+ export declare function buildMeshMagiActivity(args: {
37
+ meshId?: string;
38
+ ledgerEntries?: MeshLedgerEntry[];
39
+ }): MeshMagiActivitySummary[];
40
+ /** Synthesized groups older than this (relative to the newest activity in the set) are
41
+ * folded out of the active list — already-resolved historical runs that should not keep
42
+ * inflating mesh_status. 6h covers a long working session. */
43
+ export declare const STALE_MAGI_WINDOW_MS: number;
44
+ /** Cap on recent synthesized groups kept in the active list even if all are fresh. */
45
+ export declare const RECENT_MAGI_CAP = 6;
46
+ export interface MeshMagiActivitySummaryFold {
47
+ total: number;
48
+ byStatus: Record<string, number>;
49
+ /** Synthesized groups dropped from the active list as stale historical residue. */
50
+ staleSynthesized: number;
51
+ /** Bounded set of recent/active groups (running first, then recent synthesized). */
52
+ groups: MeshMagiActivitySummary[];
53
+ }
54
+ /**
55
+ * Bound the MAGI activity list for mesh_status: running groups are always kept; synthesized
56
+ * groups are kept only when recent (within STALE_MAGI_WINDOW_MS of the newest activity AND
57
+ * among the RECENT_MAGI_CAP most-recent). Freshness is measured relative to the newest group
58
+ * (not wall-clock) so the result is deterministic for a given input. Mirrors
59
+ * summarizeMeshAsyncRefineJobs.
60
+ */
61
+ export declare function summarizeMeshMagiActivity(activity: MeshMagiActivitySummary[]): MeshMagiActivitySummaryFold;
62
+ /** Latest persisted synthesis activity for one consensusGroupId, or undefined. */
63
+ export declare function getMeshMagiActivityByGroup(ledgerEntries: MeshLedgerEntry[], consensusGroupId: string): MeshMagiActivitySummary | undefined;
@@ -0,0 +1,226 @@
1
+ /**
2
+ * M3: Mission persistence (minimal form).
3
+ *
4
+ * A mission is a persistent record of a multi-task goal so the plan lives in
5
+ * the system rather than in the coordinator LLM's context. Coordinator
6
+ * sessions can die or compact; a new coordinator reads the mission back at
7
+ * launch and continues.
8
+ *
9
+ * Explicit non-goals (see docs/mesh-product-plan-v2.md Phase M3): this is not
10
+ * a workflow engine and there is no automatic takeover daemon. Progress is
11
+ * never stored — it is derived from queue task statuses (mission_id) at
12
+ * query time.
13
+ */
14
+ import { type MeshMissionStats } from './mesh-task-stats.js';
15
+ export type MeshMissionStatus = 'active' | 'paused' | 'completed' | 'abandoned';
16
+ export declare const MESH_MISSION_STATUSES: MeshMissionStatus[];
17
+ /**
18
+ * Provenance of a mission. `magi` marks an inline mission auto-created by a
19
+ * mesh_magi_review fan-out (one per cross-verification run). `coordinator` (the
20
+ * default semantic for an unstamped/legacy mission) marks a coordinator- or
21
+ * user-authored mission. Used to bound the accumulation of completed MAGI missions
22
+ * out of the default mesh_mission_list surface — see listMeshMissionSummaries.
23
+ */
24
+ export type MeshMissionSource = 'magi' | 'coordinator';
25
+ export interface MeshMissionRecord {
26
+ id: string;
27
+ meshId: string;
28
+ title: string;
29
+ goal: string;
30
+ status: MeshMissionStatus;
31
+ /**
32
+ * Optional provenance tag. Absent on missions created before this field existed
33
+ * and on coordinator/user missions that don't bother stamping it — both are
34
+ * treated as coordinator missions (never auto-hidden). Only explicit `magi`
35
+ * missions are bounded out of the default list once completed.
36
+ */
37
+ source?: MeshMissionSource;
38
+ /**
39
+ * G3: idempotency marker for the mission_close_candidate nudge. ISO timestamp of
40
+ * the last emit; absent/undefined when the mission has not (or no longer) been in a
41
+ * fully-terminal state. Owned by maybeEmitMissionCloseCandidate — never set by a
42
+ * regular upsert. See summarizeMissionTasks / maybeEmitMissionCloseCandidate.
43
+ */
44
+ closeCandidateEmittedAt?: string;
45
+ createdAt: string;
46
+ updatedAt: string;
47
+ }
48
+ export interface MeshMissionTaskAggregate {
49
+ total: number;
50
+ pending: number;
51
+ assigned: number;
52
+ completed: number;
53
+ failed: number;
54
+ cancelled: number;
55
+ /** Pending tasks held back by a dependency failure (blockedReason set). */
56
+ blocked: number;
57
+ /** Latest updatedAt across the mission's tasks, or null with no tasks. */
58
+ lastActivityAt: string | null;
59
+ }
60
+ export interface MeshMissionSummary extends MeshMissionRecord {
61
+ tasks: MeshMissionTaskAggregate;
62
+ /**
63
+ * Operational rollup (durations / attempts) derived from the ledger via
64
+ * computeMeshMissionStats. Optional: only populated by surfaces that opt in
65
+ * (e.g. mesh_status), since the rollup scans a bounded ledger tail per
66
+ * mission. Absent on the lightweight task-aggregate-only summaries.
67
+ */
68
+ stats?: MeshMissionStats;
69
+ }
70
+ /**
71
+ * Slim mission summary for the mesh_status compact (default) surface. Drops the
72
+ * full `goal` text — which can be hundreds of chars per mission and is repeated
73
+ * for every mission on every status call — keeping only a short preview plus a
74
+ * `goalTruncated` flag when the original was longer. The stored goal is never
75
+ * mutated; this is an output-only projection. Coordinators that need the full
76
+ * goal call mesh_status with verbose=true, or read the mission directly via
77
+ * mesh_mission_upsert / getMeshMission.
78
+ */
79
+ export interface MeshMissionSlimSummary extends Omit<MeshMissionSummary, 'goal'> {
80
+ /** Short preview of the goal (≤ GOAL_PREVIEW_MAX chars), '' when goal empty. */
81
+ goalPreview: string;
82
+ /** True when the stored goal was longer than the preview (full text elided). */
83
+ goalTruncated: boolean;
84
+ }
85
+ /** Max chars of goal text retained in the slim (compact) mission summary. */
86
+ export declare const GOAL_PREVIEW_MAX = 120;
87
+ /**
88
+ * Shorter goal preview used by the mesh_status compact (LLM coordinator) surface.
89
+ * The coordinator only needs to recognize a mission, not read its full goal, and
90
+ * mesh_status repeats every live mission on every poll — so the status preview is
91
+ * tighter than the dashboard / mesh_mission_list preview (GOAL_PREVIEW_MAX).
92
+ */
93
+ export declare const COMPACT_STATUS_GOAL_PREVIEW_MAX = 80;
94
+ export declare function upsertMeshMission(meshId: string, input: {
95
+ id?: string;
96
+ title: string;
97
+ goal?: string;
98
+ status?: string;
99
+ source?: MeshMissionSource;
100
+ }): MeshMissionRecord;
101
+ export declare function getMeshMissions(meshId: string, statuses?: MeshMissionStatus[]): MeshMissionRecord[];
102
+ export declare function getMeshMission(meshId: string, missionId: string): MeshMissionRecord | null;
103
+ /** Aggregate task statuses for a mission at query time (no stored progress). */
104
+ export declare function summarizeMissionTasks(meshId: string, missionId: string): MeshMissionTaskAggregate;
105
+ export declare function summarizeMeshMission(meshId: string, mission: MeshMissionRecord): MeshMissionSummary;
106
+ /**
107
+ * G3 — all-tasks-terminal detection: true when a mission has at least one task and
108
+ * every task has reached a terminal status (no pending, no assigned). This is the
109
+ * derived signal (never a stored flag) that a mission has no more work in flight and
110
+ * is a candidate for the coordinator to close. A mission with zero tasks is NOT a
111
+ * candidate — an empty mission is a freshly-created plan, not a finished one.
112
+ */
113
+ export declare function isMissionAllTasksTerminal(aggregate: MeshMissionTaskAggregate): boolean;
114
+ /**
115
+ * G3 (step ①) — emit a `mission_close_candidate` coordinator nudge the first time an
116
+ * ACTIVE mission's tasks all become terminal, and reset the idempotency marker when a
117
+ * mission leaves the terminal state. Call this after any task-status mutation that can
118
+ * change a mission's aggregate (completion / failure / cancel / dependency-failure /
119
+ * new task). Fire-and-forget and fully best-effort — a throw here must never break the
120
+ * task mutation that triggered it.
121
+ *
122
+ * Design invariants (docs/MESH_PROMPT_ARCH_REVIEW_2026-07.md §9-1 G3):
123
+ * - NEVER transitions the mission status. This only publishes a "consider closing"
124
+ * hint; the coordinator/human decides via mesh_mission_upsert.
125
+ * - Idempotent per all-terminal EDGE. The mission's close_candidate_emitted_at marker
126
+ * guarantees exactly one emit per terminal transition; while the mission stays
127
+ * all-terminal, subsequent calls no-op (no per-tick spam). When the mission returns
128
+ * to non-terminal (a new/re-opened task), the marker is cleared so a later
129
+ * re-completion nudges again.
130
+ * - Only ACTIVE missions nudge. A paused/completed/abandoned mission is never a
131
+ * close candidate (already decided, or intentionally on hold).
132
+ *
133
+ * Returns true iff an event was emitted on this call.
134
+ */
135
+ export declare function maybeEmitMissionCloseCandidate(meshId: string, missionId: string): boolean;
136
+ /** Active mission summaries for mesh_status / coordinator prompt injection. */
137
+ export declare function getActiveMeshMissionSummaries(meshId: string): MeshMissionSummary[];
138
+ /**
139
+ * Mission summaries for the mesh_status dashboard surface: every active/paused
140
+ * mission plus a capped, newest-first slice of completed/abandoned history so
141
+ * the dashboard can render a collapsible "history" section without unbounded
142
+ * payload growth. Returned newest-first within each group (active/paused first,
143
+ * then history), so the frontend can split on `status` directly.
144
+ *
145
+ * Compact mode (the default) elides each mission's full `goal` text — which is
146
+ * repeated verbatim on every status poll and dominates the payload when a mesh
147
+ * has many missions — returning only a short `goalPreview` + `goalTruncated`
148
+ * flag. Pass `verbose: true` to get the full `goal` text per mission. The stored
149
+ * goal is untouched in both modes; this is an output-only projection.
150
+ */
151
+ export declare function getMeshStatusMissionSummaries(meshId: string, options?: {
152
+ historyLimit?: number;
153
+ verbose?: boolean;
154
+ withStats?: boolean;
155
+ }): MeshMissionSummary[] | MeshMissionSlimSummary[];
156
+ /** Folded completed/abandoned history for the mesh_status compact surface. */
157
+ export interface MeshStatusMissionsHistoryFold {
158
+ /** Total completed + abandoned missions. */
159
+ count: number;
160
+ /** Count by lifecycle status (e.g. { completed, abandoned }). */
161
+ byStatus: Record<string, number>;
162
+ /** Newest-first id list (capped) so each folded mission stays addressable. */
163
+ missionIds: string[];
164
+ note: string;
165
+ }
166
+ /** Compact mesh_status mission projection: live detail + folded history. */
167
+ export interface MeshStatusMissionsCompact {
168
+ /**
169
+ * Active + paused missions, goal-elided to COMPACT_STATUS_GOAL_PREVIEW_MAX and
170
+ * WITHOUT the operational `stats` rollup — the `tasks` aggregate already carries
171
+ * progress, and stats (durations/retries) is a verbose/dashboard concern.
172
+ */
173
+ live: MeshMissionSlimSummary[];
174
+ /** Completed + abandoned missions folded to counts + ids; null when none. */
175
+ historyFold: MeshStatusMissionsHistoryFold | null;
176
+ }
177
+ /**
178
+ * Mission projection for the mesh_status COMPACT (LLM coordinator) surface.
179
+ *
180
+ * Unlike getMeshStatusMissionSummaries (which emits every live mission plus a
181
+ * capped slice of full-detail history, each carrying a stats rollup), this keeps
182
+ * per-mission detail ONLY for live (active/paused) missions and folds the whole
183
+ * completed/abandoned history into a counts + id-list summary. Combined with the
184
+ * tighter goal preview and dropped stats, this is what keeps the compact
185
+ * mesh_status payload bounded as a mesh accumulates missions — the missions
186
+ * section previously dominated the payload (full goalPreview + tasks + stats per
187
+ * mission, for every live mission and up to 10 history missions, on every poll).
188
+ *
189
+ * The stored missions are untouched; this is an output-only projection. Full
190
+ * mission detail (goal text + stats + history) stays available via
191
+ * mesh_status verbose=true or mesh_mission_list.
192
+ */
193
+ export declare function getMeshStatusMissionsCompact(meshId: string, options?: {
194
+ previewMax?: number;
195
+ historyIdLimit?: number;
196
+ }): MeshStatusMissionsCompact;
197
+ /**
198
+ * Read-only mission listing for the mesh_mission_list tool. Returns summaries
199
+ * (record + live task aggregate) for missions matching `statuses` — or every
200
+ * mission when `statuses` is omitted/empty — newest-first by updatedAt. Unlike
201
+ * getMeshStatusMissionSummaries this does NOT cap or group by lifecycle, so a
202
+ * coordinator can deliberately surface paused/abandoned/completed missions that
203
+ * the live status view would hide or truncate.
204
+ *
205
+ * MAGI bounding: by default this EXCLUDES completed MAGI missions (source==='magi'
206
+ * && status==='completed') — a mesh_magi_review fan-out auto-creates one inline
207
+ * mission per run and auto-closes it on collection, so without this they accumulate
208
+ * unbounded and drown out coordinator missions in the list. In-progress MAGI missions
209
+ * (active/paused) are still shown so a running cross-verification stays visible. Pass
210
+ * `includeMagi: true` to return every mission including completed MAGI ones. A mission
211
+ * with no `source` (legacy / coordinator) is never affected.
212
+ *
213
+ * Compact (the default) elides each goal to a capped preview + goalTruncated
214
+ * flag; verbose returns the full goal text. The stored goal is never mutated.
215
+ */
216
+ export declare function listMeshMissionSummaries(meshId: string, options?: {
217
+ statuses?: MeshMissionStatus[];
218
+ verbose?: boolean;
219
+ includeMagi?: boolean;
220
+ }): MeshMissionSummary[] | MeshMissionSlimSummary[];
221
+ /**
222
+ * M3-3: render active missions as a prompt section for {{mission}}.
223
+ * Empty string when no active mission — the prompt stays byte-identical to
224
+ * the pre-M3 output in that case (regression guarantee).
225
+ */
226
+ export declare function buildMissionPromptSection(meshId: string): string;