@adhdev/daemon-core 0.9.82-rc.43 → 0.9.82-rc.430

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 (425) 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 +15 -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 +60 -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 +29 -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 +142 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router.d.ts +276 -2
  56. package/dist/commands/upgrade-helper.d.ts +41 -1
  57. package/dist/config/chat-history.d.ts +9 -0
  58. package/dist/config/config.d.ts +5 -0
  59. package/dist/config/mesh-config.d.ts +100 -1
  60. package/dist/config/mesh-json-config.d.ts +199 -0
  61. package/dist/config/repo-settings.d.ts +77 -0
  62. package/dist/daemon/dev-server.d.ts +0 -2
  63. package/dist/detection/ide-detector.d.ts +13 -0
  64. package/dist/detection/win32-ide-version.d.ts +37 -0
  65. package/dist/git/change-impact-config.d.ts +159 -0
  66. package/dist/git/git-commands.d.ts +11 -1
  67. package/dist/git/git-diff.d.ts +6 -0
  68. package/dist/git/git-executor.d.ts +11 -0
  69. package/dist/git/git-status.d.ts +57 -0
  70. package/dist/git/git-types.d.ts +2 -50
  71. package/dist/git/git-worktree.d.ts +71 -1
  72. package/dist/git/index.d.ts +3 -1
  73. package/dist/index.d.ts +64 -14
  74. package/dist/index.js +49391 -19228
  75. package/dist/index.js.map +1 -1
  76. package/dist/index.mjs +48574 -18570
  77. package/dist/index.mjs.map +1 -1
  78. package/dist/installer.d.ts +1 -4
  79. package/dist/ipc/local-ipc-server.d.ts +91 -0
  80. package/dist/launch.d.ts +1 -1
  81. package/dist/logging/async-batch-writer.d.ts +10 -0
  82. package/dist/logging/log-redactor.d.ts +24 -0
  83. package/dist/logging/log-tail-reader.d.ts +81 -0
  84. package/dist/logging/logger.d.ts +1 -1
  85. package/dist/mesh/contracts.d.ts +164 -0
  86. package/dist/mesh/coordinator-prompt.d.ts +89 -0
  87. package/dist/mesh/coordinator-registry.d.ts +59 -0
  88. package/dist/mesh/mesh-active-work.d.ts +174 -0
  89. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  90. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  91. package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
  92. package/dist/mesh/mesh-event-classify.d.ts +5 -0
  93. package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
  94. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  95. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  96. package/dist/mesh/mesh-events-pending.d.ts +69 -0
  97. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  98. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  99. package/dist/mesh/mesh-events.d.ts +6 -49
  100. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  101. package/dist/mesh/mesh-host-ownership.d.ts +9 -0
  102. package/dist/mesh/mesh-init.d.ts +86 -0
  103. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  104. package/dist/mesh/mesh-ledger.d.ts +77 -1
  105. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  106. package/dist/mesh/mesh-missions.d.ts +189 -0
  107. package/dist/mesh/mesh-node-identity.d.ts +289 -0
  108. package/dist/mesh/mesh-queue-assignment.d.ts +113 -0
  109. package/dist/mesh/mesh-reconcile-loop.d.ts +65 -0
  110. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  111. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  112. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  113. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  114. package/dist/mesh/mesh-routing.d.ts +70 -0
  115. package/dist/mesh/mesh-runtime-store.d.ts +450 -0
  116. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  117. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  118. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  119. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  120. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  121. package/dist/mesh/mesh-work-queue.d.ts +290 -5
  122. package/dist/mesh/preview-freshness.d.ts +18 -0
  123. package/dist/mesh/refine-config.d.ts +216 -0
  124. package/dist/mesh/worktree-bootstrap-config.d.ts +145 -0
  125. package/dist/providers/acp-provider-instance.d.ts +5 -0
  126. package/dist/providers/approval-utils.d.ts +20 -0
  127. package/dist/providers/chat-message-normalization.d.ts +31 -1
  128. package/dist/providers/cli-provider-instance.d.ts +221 -3
  129. package/dist/providers/contracts.d.ts +139 -6
  130. package/dist/providers/external-sources.d.ts +71 -0
  131. package/dist/providers/manual-attendance.d.ts +63 -0
  132. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -0
  133. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  134. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  135. package/dist/providers/native-history/constants.d.ts +12 -0
  136. package/dist/providers/native-history/dispatcher.d.ts +27 -0
  137. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  138. package/dist/providers/native-history/index.d.ts +13 -0
  139. package/dist/providers/provider-instance-manager.d.ts +29 -0
  140. package/dist/providers/provider-instance.d.ts +23 -1
  141. package/dist/providers/provider-loader.d.ts +26 -4
  142. package/dist/providers/provider-trust.d.ts +31 -0
  143. package/dist/providers/read-chat-contract.d.ts +29 -0
  144. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  145. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  146. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  147. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  148. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  149. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  150. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  151. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  152. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  153. package/dist/providers/sdk/v1/index.d.ts +30 -0
  154. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  155. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  156. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  157. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  158. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  159. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  160. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  161. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  162. package/dist/providers/spec/adapter.d.ts +91 -0
  163. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  164. package/dist/providers/spec/evaluator.d.ts +45 -0
  165. package/dist/providers/spec/fsm-driver.d.ts +422 -0
  166. package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
  167. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  168. package/dist/providers/spec/fsm-types.d.ts +174 -0
  169. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  170. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  171. package/dist/providers/spec/route.d.ts +4 -0
  172. package/dist/providers/spec/types.d.ts +222 -0
  173. package/dist/providers/status-monitor.d.ts +7 -7
  174. package/dist/providers/transcript-v2.d.ts +176 -0
  175. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  176. package/dist/providers/working-dir.d.ts +17 -0
  177. package/dist/repo-mesh-types.d.ts +501 -13
  178. package/dist/runtime-defaults.d.ts +2 -0
  179. package/dist/sessions/registry.d.ts +6 -0
  180. package/dist/shared-types-extra.d.ts +2 -4
  181. package/dist/shared-types.d.ts +59 -2
  182. package/dist/status/normalize.d.ts +1 -1
  183. package/dist/status/normalize.js +1 -0
  184. package/dist/status/normalize.js.map +1 -1
  185. package/dist/status/normalize.mjs +1 -0
  186. package/dist/status/normalize.mjs.map +1 -1
  187. package/dist/status/reporter.d.ts +2 -0
  188. package/dist/status/snapshot.d.ts +26 -0
  189. package/dist/system/hash.d.ts +8 -0
  190. package/dist/system/load-better-sqlite3.d.ts +21 -0
  191. package/dist/types.d.ts +5 -0
  192. package/package.json +7 -3
  193. package/src/agent-stream/poller.ts +2 -3
  194. package/src/agent-stream/provider-adapter.ts +1 -1
  195. package/src/boot/daemon-lifecycle.ts +63 -12
  196. package/src/boot/process-hardening.ts +89 -0
  197. package/src/build-info.ts +73 -0
  198. package/src/chat/source-machine.ts +534 -0
  199. package/src/chat/source-resolver.ts +0 -0
  200. package/src/chat/subscription-updates.ts +20 -1
  201. package/src/cli-adapter-types.d.ts +3 -1
  202. package/src/cli-adapter-types.ts +68 -2
  203. package/src/cli-adapters/cli-script-runner.ts +421 -0
  204. package/src/cli-adapters/cli-state-engine.ts +1246 -0
  205. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  206. package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
  207. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  208. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  209. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  210. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  211. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  212. package/src/cli-adapters/pty-transport.ts +2 -1
  213. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  214. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  215. package/src/cli-adapters/resolve-executable.ts +204 -0
  216. package/src/cli-adapters/session-host-transport.ts +2 -1
  217. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  218. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  219. package/src/cli-adapters/terminal-screen.ts +16 -81
  220. package/src/commands/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
  221. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  222. package/src/commands/chat-commands-read.ts +2327 -0
  223. package/src/commands/chat-commands-scope.ts +54 -0
  224. package/src/commands/chat-commands-shared.ts +114 -0
  225. package/src/commands/chat-commands-write.ts +891 -0
  226. package/src/commands/chat-commands.ts +19 -1841
  227. package/src/commands/cli-manager.ts +544 -26
  228. package/src/commands/handler.ts +841 -2
  229. package/src/commands/high-family/index.ts +28 -0
  230. package/src/commands/high-family/mesh-coordinator-launch.ts +678 -0
  231. package/src/commands/high-family/mesh-events.ts +80 -0
  232. package/src/commands/high-family/mesh-status.ts +710 -0
  233. package/src/commands/high-family/types.ts +76 -0
  234. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  235. package/src/commands/low-family/daemon-lifecycle.ts +107 -0
  236. package/src/commands/low-family/diagnostics.ts +57 -0
  237. package/src/commands/low-family/index.ts +37 -0
  238. package/src/commands/low-family/mesh-ledger.ts +62 -0
  239. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  240. package/src/commands/low-family/notification.ts +116 -0
  241. package/src/commands/low-family/refine-config.ts +106 -0
  242. package/src/commands/low-family/session-host.ts +274 -0
  243. package/src/commands/low-family/spec-providerdev.ts +217 -0
  244. package/src/commands/low-family/status-meta.ts +112 -0
  245. package/src/commands/low-family/types.ts +39 -0
  246. package/src/commands/med-family/cli-agent.ts +238 -0
  247. package/src/commands/med-family/fast-forward.ts +230 -0
  248. package/src/commands/med-family/ide.ts +163 -0
  249. package/src/commands/med-family/index.ts +37 -0
  250. package/src/commands/med-family/mesh-crud.ts +1066 -0
  251. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  252. package/src/commands/med-family/mesh-queue.ts +167 -0
  253. package/src/commands/med-family/mesh-restart.ts +92 -0
  254. package/src/commands/med-family/types.ts +143 -0
  255. package/src/commands/mesh-coordinator.ts +334 -124
  256. package/src/commands/router.ts +2711 -3254
  257. package/src/commands/stream-commands.ts +8 -0
  258. package/src/commands/upgrade-helper.ts +310 -45
  259. package/src/config/chat-history.ts +483 -24
  260. package/src/config/config.ts +12 -0
  261. package/src/config/mesh-config.ts +495 -22
  262. package/src/config/mesh-json-config.ts +376 -0
  263. package/src/config/recent-activity.ts +8 -2
  264. package/src/config/repo-settings.ts +111 -0
  265. package/src/daemon/dev-auto-implement.ts +3 -2
  266. package/src/daemon/dev-cli-debug.ts +10 -1
  267. package/src/daemon/dev-server.ts +0 -541
  268. package/src/detection/cli-detector.ts +28 -9
  269. package/src/detection/ide-detector.ts +55 -16
  270. package/src/detection/win32-ide-version.ts +106 -0
  271. package/src/git/change-impact-config.ts +354 -0
  272. package/src/git/git-commands.ts +59 -15
  273. package/src/git/git-diff.ts +81 -11
  274. package/src/git/git-executor.ts +12 -0
  275. package/src/git/git-status.ts +767 -48
  276. package/src/git/git-types.ts +14 -62
  277. package/src/git/git-worktree.ts +261 -4
  278. package/src/git/index.ts +17 -0
  279. package/src/index.ts +194 -12
  280. package/src/installer.d.ts +1 -1
  281. package/src/installer.ts +8 -6
  282. package/src/ipc/local-ipc-server.ts +278 -0
  283. package/src/launch.d.ts +1 -1
  284. package/src/launch.ts +37 -28
  285. package/src/logging/async-batch-writer.ts +55 -0
  286. package/src/logging/command-log.ts +7 -5
  287. package/src/logging/log-redactor.ts +100 -0
  288. package/src/logging/log-tail-reader.ts +341 -0
  289. package/src/logging/logger.ts +14 -7
  290. package/src/mesh/contracts.ts +338 -0
  291. package/src/mesh/coordinator-prompt.ts +381 -33
  292. package/src/mesh/coordinator-registry.ts +121 -0
  293. package/src/mesh/mesh-active-work.ts +645 -0
  294. package/src/mesh/mesh-clone-grace.ts +68 -0
  295. package/src/mesh/mesh-coordinator-config.ts +97 -0
  296. package/src/mesh/mesh-delivery-policy.ts +315 -0
  297. package/src/mesh/mesh-event-classify.ts +51 -0
  298. package/src/mesh/mesh-event-forwarding.ts +1888 -0
  299. package/src/mesh/mesh-event-trace.ts +67 -0
  300. package/src/mesh/mesh-events-coordinator.ts +32 -0
  301. package/src/mesh/mesh-events-pending.ts +656 -0
  302. package/src/mesh/mesh-events-stale.ts +389 -0
  303. package/src/mesh/mesh-events-utils.ts +443 -0
  304. package/src/mesh/mesh-events.ts +33 -1035
  305. package/src/mesh/mesh-fast-forward.ts +843 -0
  306. package/src/mesh/mesh-host-ownership.ts +73 -0
  307. package/src/mesh/mesh-init.ts +260 -0
  308. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  309. package/src/mesh/mesh-ledger.ts +656 -102
  310. package/src/mesh/mesh-magi-status.ts +223 -0
  311. package/src/mesh/mesh-missions.ts +449 -0
  312. package/src/mesh/mesh-node-identity.ts +1887 -0
  313. package/src/mesh/mesh-queue-assignment.ts +1918 -0
  314. package/src/mesh/mesh-reconcile-loop.ts +1780 -0
  315. package/src/mesh/mesh-refine-batch.ts +205 -0
  316. package/src/mesh/mesh-refine-gates.ts +1673 -0
  317. package/src/mesh/mesh-refine-status.ts +231 -0
  318. package/src/mesh/mesh-review-inbox.ts +307 -0
  319. package/src/mesh/mesh-routing.ts +291 -0
  320. package/src/mesh/mesh-runtime-store.ts +1853 -0
  321. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  322. package/src/mesh/mesh-task-inflight.ts +70 -0
  323. package/src/mesh/mesh-task-stats.ts +161 -0
  324. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  325. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  326. package/src/mesh/mesh-work-queue.ts +1243 -141
  327. package/src/mesh/preview-freshness.ts +118 -0
  328. package/src/mesh/refine-config.ts +423 -0
  329. package/src/mesh/worktree-bootstrap-config.ts +450 -0
  330. package/src/providers/acp-provider-instance.ts +43 -10
  331. package/src/providers/approval-utils.d.ts +5 -0
  332. package/src/providers/approval-utils.ts +57 -5
  333. package/src/providers/chat-message-normalization.ts +92 -4
  334. package/src/providers/cli-provider-instance.ts +1933 -104
  335. package/src/providers/contracts.d.ts +55 -0
  336. package/src/providers/contracts.ts +150 -6
  337. package/src/providers/extension-provider-instance.ts +12 -7
  338. package/src/providers/external-sources.ts +218 -0
  339. package/src/providers/ide-provider-instance.ts +35 -12
  340. package/src/providers/manual-attendance.ts +85 -0
  341. package/src/providers/native-history/antigravity-cli-transcript.ts +643 -0
  342. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  343. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  344. package/src/providers/native-history/constants.ts +19 -0
  345. package/src/providers/native-history/dispatcher.ts +339 -0
  346. package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
  347. package/src/providers/native-history/index.ts +30 -0
  348. package/src/providers/provider-instance-manager.ts +71 -0
  349. package/src/providers/provider-instance.ts +19 -1
  350. package/src/providers/provider-loader.ts +668 -50
  351. package/src/providers/provider-schema.ts +87 -14
  352. package/src/providers/provider-trust.ts +114 -0
  353. package/src/providers/read-chat-contract.ts +76 -16
  354. package/src/providers/sdk/README.md +49 -0
  355. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  356. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  357. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  358. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +250 -0
  359. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  360. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  361. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  362. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  363. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  364. package/src/providers/sdk/v1/index.ts +152 -0
  365. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  366. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  367. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  368. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +504 -0
  369. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  370. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  371. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  372. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  373. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  374. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  375. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  376. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  377. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  378. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  379. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  380. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  381. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  382. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  383. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  384. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  385. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  386. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  387. package/src/providers/sdk/v1/validators/index.ts +19 -0
  388. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  389. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  390. package/src/providers/spec/adapter.ts +235 -0
  391. package/src/providers/spec/cli-adapter.ts +1056 -0
  392. package/src/providers/spec/evaluator.ts +407 -0
  393. package/src/providers/spec/fsm-driver.ts +1410 -0
  394. package/src/providers/spec/fsm-evaluator.ts +272 -0
  395. package/src/providers/spec/fsm-loader.ts +120 -0
  396. package/src/providers/spec/fsm-types.ts +273 -0
  397. package/src/providers/spec/native-history-executor.ts +1128 -0
  398. package/src/providers/spec/pre-launch-trust.ts +104 -0
  399. package/src/providers/spec/route.ts +51 -0
  400. package/src/providers/spec/types.ts +262 -0
  401. package/src/providers/status-monitor.d.ts +7 -7
  402. package/src/providers/status-monitor.ts +37 -22
  403. package/src/providers/transcript-v2.ts +567 -0
  404. package/src/providers/types/interactive-prompt.ts +536 -0
  405. package/src/providers/version-archive.ts +64 -24
  406. package/src/providers/working-dir.ts +23 -0
  407. package/src/repo-mesh-types.ts +740 -14
  408. package/src/runtime-defaults.ts +39 -0
  409. package/src/sessions/registry.ts +6 -0
  410. package/src/shared-types-extra.ts +2 -4
  411. package/src/shared-types.d.ts +8 -0
  412. package/src/shared-types.ts +64 -1
  413. package/src/status/builders.ts +26 -6
  414. package/src/status/normalize.ts +2 -0
  415. package/src/status/reporter.ts +19 -1
  416. package/src/status/snapshot.ts +95 -26
  417. package/src/system/hash.ts +23 -0
  418. package/src/system/host-memory.ts +29 -12
  419. package/src/system/load-better-sqlite3.ts +68 -0
  420. package/src/types.ts +5 -0
  421. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  422. package/dist/mesh/mesh-sync.d.ts +0 -53
  423. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  424. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  425. package/src/mesh/mesh-sync.ts +0 -111
@@ -1,49 +1,6 @@
1
- import type { DaemonComponents } from '../boot/daemon-lifecycle.js';
2
- export interface PendingMeshCoordinatorEvent {
3
- event: string;
4
- meshId: string;
5
- nodeLabel: string;
6
- nodeId?: string;
7
- workspace?: string;
8
- metadataEvent: Record<string, unknown>;
9
- queuedAt: number;
10
- }
11
- export declare function queuePendingMeshCoordinatorEvent(event: PendingMeshCoordinatorEvent): boolean;
12
- /** Drain and return all pending coordinator events for meshId, removing them from disk. */
13
- export declare function drainPendingMeshCoordinatorEvents(meshId?: string): PendingMeshCoordinatorEvent[];
14
- /** Peek at pending coordinator events without draining (non-destructive). */
15
- export declare function getPendingMeshCoordinatorEvents(meshId?: string): readonly PendingMeshCoordinatorEvent[];
16
- /** Explicitly clear all pending coordinator events for a mesh. */
17
- export declare function clearPendingMeshCoordinatorEvents(meshId?: string): void;
18
- export declare function tryAssignQueueTask(components: DaemonComponents, meshId: string, nodeId: string, sessionId: string, providerType: string): boolean;
19
- /**
20
- * Triggers a queue check for all nodes in the mesh.
21
- * Called when a new task is enqueued, in case nodes are already idle.
22
- */
23
- export declare function triggerMeshQueue(components: DaemonComponents, meshId: string): Promise<void>;
24
- export declare function handleMeshForwardEvent(components: DaemonComponents, payload: Record<string, unknown>): {
25
- success: boolean;
26
- forwarded: number;
27
- suppressed: boolean;
28
- intentionalCleanupStop: boolean;
29
- duplicateCompletion?: undefined;
30
- error?: undefined;
31
- } | {
32
- success: boolean;
33
- forwarded: number;
34
- suppressed: boolean;
35
- duplicateCompletion: boolean;
36
- intentionalCleanupStop?: undefined;
37
- error?: undefined;
38
- } | {
39
- success: boolean;
40
- forwarded: number;
41
- suppressed?: undefined;
42
- intentionalCleanupStop?: undefined;
43
- duplicateCompletion?: undefined;
44
- error?: undefined;
45
- } | {
46
- success: boolean;
47
- error: string;
48
- };
49
- export declare function setupMeshEventForwarding(components: DaemonComponents): void;
1
+ export type { PendingMeshCoordinatorEvent } from './mesh-events-pending.js';
2
+ export { queuePendingMeshCoordinatorEvent, drainPendingMeshCoordinatorEvents, getPendingMeshCoordinatorEvents, clearPendingMeshCoordinatorEvents, } from './mesh-events-pending.js';
3
+ export { reconcileDirectDispatchCompletionFromTranscript, } from './mesh-events-stale.js';
4
+ export { setupMeshReconcileLoop, runMeshReconcileTick, resolveCoordinatorDrainDeliverability, shouldHoldPendingDrainForBusyLocalCoordinator, } from './mesh-reconcile-loop.js';
5
+ export type { MeshQueueTriggerResult } from './mesh-events-coordinator.js';
6
+ export { tryAssignQueueTask, isSessionActivelyGenerating, triggerMeshQueue, handleMeshForwardEvent, setupMeshEventForwarding, isMeshCoordinatorEvent, __resetIdleAutoFastForwardForTests, __resetMeshWorkspaceCacheForTests, } from './mesh-events-coordinator.js';
@@ -0,0 +1,81 @@
1
+ import type { GitRepoStatus } from '../git/git-types.js';
2
+ export interface MeshFastForwardNodeArgs {
3
+ nodeId?: string;
4
+ meshId?: string;
5
+ workspace: string;
6
+ branch?: string;
7
+ execute?: boolean;
8
+ dryRun?: boolean;
9
+ updateSubmodules?: boolean;
10
+ submoduleIgnorePaths?: string[];
11
+ timeoutMs?: number;
12
+ trigger?: 'manual' | 'idle_auto' | string;
13
+ /**
14
+ * Operation mode. 'merge' (default) absorbs upstream commits into the local
15
+ * branch via git merge --ff-only (requires ahead=0, behind>0). 'push' publishes
16
+ * local commits to origin via a strict ff-only push (requires HEAD to be a
17
+ * descendant of origin/<branch>); it never force-pushes, resets, or rebases.
18
+ */
19
+ mode?: 'merge' | 'push';
20
+ /**
21
+ * When mode='push', also fast-forward push submodule (e.g. oss) HEADs to their
22
+ * origin main branch. Gated by allowAutoPublishSubmoduleMainCommits — skipped
23
+ * unless that policy is true. Each submodule must still pass the descendant gate.
24
+ * Defaults false (root push only).
25
+ */
26
+ pushSubmodules?: boolean;
27
+ /**
28
+ * Mesh policy flag mirrored from RepoMeshPolicy.allowAutoPublishSubmoduleMainCommits.
29
+ * Submodule pushes are refused unless this is true.
30
+ */
31
+ allowAutoPublishSubmoduleMainCommits?: boolean;
32
+ }
33
+ export interface MeshFastForwardPlannedStep {
34
+ operation: 'refresh_upstream' | 'verify_clean_worktree' | 'verify_fast_forward' | 'merge_ff_only' | 'submodule_update' | 'verify_post_status' | 'verify_push_descendant' | 'push_ff_only' | 'push_submodules_ff_only';
35
+ description: string;
36
+ safe: true;
37
+ willMutateWorktree: boolean;
38
+ }
39
+ export interface MeshFastForwardSubmodulePushResult {
40
+ path: string;
41
+ commit?: string;
42
+ remote: string;
43
+ remoteBranch: string;
44
+ pushed: boolean;
45
+ skipped: boolean;
46
+ code: string;
47
+ refspec?: string;
48
+ error?: string;
49
+ }
50
+ export interface MeshFastForwardResult {
51
+ success: boolean;
52
+ code: string;
53
+ nodeId?: string;
54
+ meshId?: string;
55
+ workspace: string;
56
+ mode: 'merge' | 'push';
57
+ allowed: boolean;
58
+ dryRun: boolean;
59
+ willRun: boolean;
60
+ executed: boolean;
61
+ updateSubmodules: boolean;
62
+ blockingReasons: string[];
63
+ plannedSteps: MeshFastForwardPlannedStep[];
64
+ current?: GitRepoStatus;
65
+ preStatus?: GitRepoStatus;
66
+ postStatus?: GitRepoStatus;
67
+ /** Push target derived from the tracked upstream (mode='push'). */
68
+ pushTarget?: {
69
+ remote: string;
70
+ remoteBranch: string;
71
+ refspec: string;
72
+ };
73
+ /** Submodule ff-only push outcomes (mode='push' with pushSubmodules). */
74
+ submodulePushes?: MeshFastForwardSubmodulePushResult[];
75
+ finalBranchConvergenceState?: Record<string, unknown>;
76
+ operationError?: string;
77
+ ledgerError?: string;
78
+ nextStep?: string;
79
+ trigger?: string;
80
+ }
81
+ export declare function fastForwardMeshNode(args: MeshFastForwardNodeArgs): Promise<MeshFastForwardResult>;
@@ -0,0 +1,9 @@
1
+ import type { RepoMeshDaemonRole, RepoMeshHostMetadata, RepoMeshHostStatus } from '../repo-mesh-types.js';
2
+ export declare function normalizeMeshDaemonRole(value: unknown): RepoMeshDaemonRole | undefined;
3
+ export declare function resolveMeshHostStatus(mesh: unknown): RepoMeshHostStatus;
4
+ export declare function isMeshHostOwner(mesh: unknown): boolean;
5
+ export declare function buildMeshHostRequiredFailure(mesh: unknown, operation: string): Record<string, unknown>;
6
+ export declare function requireMeshHostQueueOwner(opts?: {
7
+ ownerRole?: RepoMeshDaemonRole;
8
+ }): void;
9
+ export declare function createDefaultMeshHostMetadata(): RepoMeshHostMetadata;
@@ -0,0 +1,86 @@
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. recommend a node providerPriority from the installed CLI providers
8
+ *
9
+ * Design contract (matches the rest of the mesh tooling):
10
+ * - Heuristics are suggestion/scaffold only. The written files are the
11
+ * execution source of truth; Refinery/bootstrap only ever read the saved
12
+ * config. The suggestion functions never become the execution path.
13
+ * - Writing is opt-in (`write: true`) and never clobbers an existing config
14
+ * unless `overwrite: true` is set, so re-running init on an already-onboarded
15
+ * repo is safe.
16
+ * - The providerPriority recommendation is returned, not auto-applied to the
17
+ * node policy — applying it mutates mesh policy, which is the coordinator's
18
+ * decision.
19
+ */
20
+ import { type RepoMeshRefineConfig, type RepoMeshRefineValidationCommandConfig } from './refine-config.js';
21
+ import { type RepoMeshWorktreeBootstrapConfig } from './worktree-bootstrap-config.js';
22
+ import type { CLIInfo } from '../detection/cli-detector.js';
23
+ /** Canonical write targets — the first/preferred location for each config family. */
24
+ export declare const MESH_INIT_REFINE_CONFIG_PATH: string;
25
+ export declare const MESH_INIT_WORKTREE_BOOTSTRAP_CONFIG_PATH: string;
26
+ export interface MeshInitConfigFileResult {
27
+ path: string;
28
+ relativePath: string;
29
+ written: boolean;
30
+ /** Why it was not written (already_exists / not_suggested / no change). */
31
+ skippedReason?: 'already_exists' | 'no_suggestion';
32
+ config?: RepoMeshRefineConfig | RepoMeshWorktreeBootstrapConfig;
33
+ }
34
+ /**
35
+ * Build a worktree_bootstrap scaffold from package scripts. Mirrors
36
+ * suggestMeshRefineConfig's "scaffold only" posture: prefers an `install`/`ci`
37
+ * style script, else falls back to `npm install`, and records existing
38
+ * lockfiles as staleInputs so a base merge that changes them re-runs bootstrap.
39
+ *
40
+ * Returns undefined when there is nothing meaningful to scaffold.
41
+ */
42
+ export declare function suggestMeshWorktreeBootstrapConfig(workspace: string): {
43
+ commands: RepoMeshRefineValidationCommandConfig[];
44
+ staleInputs: string[];
45
+ suggestedConfig?: RepoMeshWorktreeBootstrapConfig;
46
+ };
47
+ export declare function suggestNodeProviderPriority(detected: CLIInfo[]): {
48
+ providerPriority: string[];
49
+ installedProviders: Array<{
50
+ id: string;
51
+ displayName: string;
52
+ version?: string;
53
+ }>;
54
+ };
55
+ export interface RunMeshInitOptions {
56
+ /** When true, persist suggested configs to disk. Defaults to dry-run (false). */
57
+ write?: boolean;
58
+ /** When true, overwrite an existing config file. Defaults to false (never clobber). */
59
+ overwrite?: boolean;
60
+ }
61
+ export interface RunMeshInitResult {
62
+ success: true;
63
+ workspace: string;
64
+ dryRun: boolean;
65
+ refine: MeshInitConfigFileResult;
66
+ worktreeBootstrap: MeshInitConfigFileResult;
67
+ providers: {
68
+ providerPriority: string[];
69
+ installedProviders: Array<{
70
+ id: string;
71
+ displayName: string;
72
+ version?: string;
73
+ }>;
74
+ };
75
+ note: string;
76
+ }
77
+ /**
78
+ * Orchestrate the full onboarding flow for one workspace:
79
+ * detect installed CLIs → suggest refine + bootstrap configs → (optionally)
80
+ * write them → recommend a node providerPriority.
81
+ *
82
+ * `detected` is injected (the caller resolves it via detectCLIs with its
83
+ * ProviderLoader) so this module stays free of provider-loader wiring and is
84
+ * trivially unit-testable.
85
+ */
86
+ 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,8 @@
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
+ 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' | 'task_reclaimed' | 'coordinator_operating_note' | 'mission_created' | 'mission_status_changed' | 'mission_goal_updated' | 'magi_dispatched' | 'magi_synthesis';
17
18
  export interface MeshLedgerEntry {
18
19
  id: string;
19
20
  meshId: string;
@@ -25,6 +26,40 @@ export interface MeshLedgerEntry {
25
26
  payload: Record<string, unknown>;
26
27
  }
27
28
  export declare function isIntentionalCleanupStopEntry(entry: Pick<MeshLedgerEntry, 'kind' | 'payload'>): boolean;
29
+ export type MeshWorkerResultStatus = 'completed' | 'failed' | 'blocked' | 'partial' | 'unknown';
30
+ export type MeshProcessArtifactKind = 'process' | 'log' | 'port' | 'window' | 'session' | 'file' | 'url' | 'other';
31
+ export interface MeshValidationResultArtifact {
32
+ command?: string;
33
+ status: 'passed' | 'failed' | 'skipped' | 'unknown';
34
+ durationMs?: number;
35
+ outputPath?: string;
36
+ summary?: string;
37
+ }
38
+ export interface MeshProcessArtifact {
39
+ kind: MeshProcessArtifactKind;
40
+ id?: string;
41
+ label?: string;
42
+ locator?: string;
43
+ pid?: number;
44
+ port?: number;
45
+ url?: string;
46
+ path?: string;
47
+ sessionId?: string;
48
+ keepRunning?: boolean;
49
+ metadata?: Record<string, unknown>;
50
+ }
51
+ export interface MeshWorkerResultArtifact {
52
+ status: MeshWorkerResultStatus;
53
+ classification?: string;
54
+ changedFiles: string[];
55
+ validationResults: MeshValidationResultArtifact[];
56
+ gitStatus?: Record<string, unknown>;
57
+ processArtifacts: MeshProcessArtifact[];
58
+ errors: string[];
59
+ nextAction?: string;
60
+ requiresUserAction: boolean;
61
+ source: 'explicit_metadata' | 'final_summary_json' | 'parseable_answer' | 'default';
62
+ }
28
63
  export interface MeshTaskCompletionEvidence {
29
64
  source: 'agent_status_event';
30
65
  event: 'agent:generating_completed' | 'agent:ready';
@@ -38,6 +73,7 @@ export interface MeshTaskCompletionEvidence {
38
73
  providerSessionId?: string;
39
74
  finalSummaryAvailable: boolean;
40
75
  };
76
+ workerResult: MeshWorkerResultArtifact;
41
77
  git: {
42
78
  status: 'deferred';
43
79
  reason: string;
@@ -59,6 +95,7 @@ export interface BuildTaskCompletionEvidenceOptions {
59
95
  providerType?: string;
60
96
  providerSessionId?: string;
61
97
  finalSummary?: string;
98
+ workerResult?: Record<string, unknown>;
62
99
  completedAt?: string;
63
100
  }
64
101
  export interface MeshLedgerSummary {
@@ -115,6 +152,27 @@ export interface AppendRemoteLedgerResult {
115
152
  }
116
153
  export declare const MAX_LEDGER_SLICE_LIMIT = 500;
117
154
  export declare function getLedgerDir(): string;
155
+ /**
156
+ * Footer to append to worker task messages so workers output structured results
157
+ * that the daemon parses via extractJsonObjectFromSummary / normalizeMeshWorkerResult.
158
+ *
159
+ * Usage: append buildWorkerTaskFooter() to the task message in mesh_send_task /
160
+ * mesh_enqueue_task. The coordinator prompt rules instruct coordinators to do this.
161
+ */
162
+ export declare function buildWorkerTaskFooter(): string;
163
+ /**
164
+ * Compact the active ledger file for a mesh by moving old terminal entries
165
+ * (task_completed, task_failed, task_stalled, recovery_attempted older than 7 days)
166
+ * to <meshId>.archive.jsonl, keeping the active file lean.
167
+ *
168
+ * Non-terminal entries (dispatch, sessions, node lifecycle) are always retained.
169
+ * Called automatically from appendLedgerEntry when the file exceeds COMPACT_THRESHOLD_BYTES.
170
+ */
171
+ export declare function compactLedger(meshId: string): {
172
+ archivedCount: number;
173
+ retainedCount: number;
174
+ };
175
+ export declare function normalizeMeshWorkerResult(input?: Record<string, unknown>, source?: MeshWorkerResultArtifact['source']): MeshWorkerResultArtifact;
118
176
  export declare function buildTaskCompletionEvidence(opts: BuildTaskCompletionEvidenceOptions): MeshTaskCompletionEvidence;
119
177
  /**
120
178
  * Append a new entry to the mesh ledger.
@@ -127,8 +185,16 @@ export declare function appendLedgerEntry(meshId: string, partial: Omit<MeshLedg
127
185
  * This skips deduplicated entries and rejects malformed/cross-mesh entries.
128
186
  */
129
187
  export declare function appendRemoteLedgerEntries(meshId: string, entries: MeshLedgerEntry[]): AppendRemoteLedgerResult;
188
+ /**
189
+ * Test helper: clear all runtime ledger state for a mesh — SQLite rows, read
190
+ * cache, and the one-time import flag. JSONL files are the caller's concern.
191
+ */
192
+ export declare function __clearMeshLedgerForTests(meshId: string): void;
130
193
  /**
131
194
  * Read ledger entries with optional filtering.
195
+ * G2: SQLite (mesh_event_ledger) is the primary read path; legacy JSONL is
196
+ * imported once per store instance and otherwise retained as an
197
+ * export/import/debug artifact only.
132
198
  */
133
199
  export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptions): MeshLedgerEntry[];
134
200
  /**
@@ -137,6 +203,16 @@ export declare function readLedgerEntries(meshId: string, opts?: ReadLedgerOptio
137
203
  * remote daemons on demand without Cloud/D1 becoming a ledger data-plane.
138
204
  */
139
205
  export declare function readLedgerSlice(meshId: string, opts?: ReadLedgerSliceOptions): MeshLedgerSlice;
206
+ /**
207
+ * G4: Read a bounded ledger slice from the SQLite mesh_event_ledger table.
208
+ * This is the preferred P2P reconcile read path; JSONL files are retained as
209
+ * export/import/debug/legacy artifacts only.
210
+ *
211
+ * Returns a shape structurally compatible with MeshLedgerSlice (minus the
212
+ * JSONL-specific `summary` and `sourceOfTruth.path` fields) so callers can
213
+ * pass it to buildMeshLedgerReplicaEvidence without modification.
214
+ */
215
+ export declare function readLedgerSliceFromStore(meshId: string, opts?: ReadLedgerSliceOptions): ReturnType<typeof MeshRuntimeStore.prototype.readLedgerSlice>;
140
216
  /**
141
217
  * Get a summary of mesh activity from the ledger.
142
218
  */
@@ -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,189 @@
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
+ createdAt: string;
39
+ updatedAt: string;
40
+ }
41
+ export interface MeshMissionTaskAggregate {
42
+ total: number;
43
+ pending: number;
44
+ assigned: number;
45
+ completed: number;
46
+ failed: number;
47
+ cancelled: number;
48
+ /** Pending tasks held back by a dependency failure (blockedReason set). */
49
+ blocked: number;
50
+ /** Latest updatedAt across the mission's tasks, or null with no tasks. */
51
+ lastActivityAt: string | null;
52
+ }
53
+ export interface MeshMissionSummary extends MeshMissionRecord {
54
+ tasks: MeshMissionTaskAggregate;
55
+ /**
56
+ * Operational rollup (durations / attempts) derived from the ledger via
57
+ * computeMeshMissionStats. Optional: only populated by surfaces that opt in
58
+ * (e.g. mesh_status), since the rollup scans a bounded ledger tail per
59
+ * mission. Absent on the lightweight task-aggregate-only summaries.
60
+ */
61
+ stats?: MeshMissionStats;
62
+ }
63
+ /**
64
+ * Slim mission summary for the mesh_status compact (default) surface. Drops the
65
+ * full `goal` text — which can be hundreds of chars per mission and is repeated
66
+ * for every mission on every status call — keeping only a short preview plus a
67
+ * `goalTruncated` flag when the original was longer. The stored goal is never
68
+ * mutated; this is an output-only projection. Coordinators that need the full
69
+ * goal call mesh_status with verbose=true, or read the mission directly via
70
+ * mesh_mission_upsert / getMeshMission.
71
+ */
72
+ export interface MeshMissionSlimSummary extends Omit<MeshMissionSummary, 'goal'> {
73
+ /** Short preview of the goal (≤ GOAL_PREVIEW_MAX chars), '' when goal empty. */
74
+ goalPreview: string;
75
+ /** True when the stored goal was longer than the preview (full text elided). */
76
+ goalTruncated: boolean;
77
+ }
78
+ /** Max chars of goal text retained in the slim (compact) mission summary. */
79
+ export declare const GOAL_PREVIEW_MAX = 120;
80
+ /**
81
+ * Shorter goal preview used by the mesh_status compact (LLM coordinator) surface.
82
+ * The coordinator only needs to recognize a mission, not read its full goal, and
83
+ * mesh_status repeats every live mission on every poll — so the status preview is
84
+ * tighter than the dashboard / mesh_mission_list preview (GOAL_PREVIEW_MAX).
85
+ */
86
+ export declare const COMPACT_STATUS_GOAL_PREVIEW_MAX = 80;
87
+ export declare function upsertMeshMission(meshId: string, input: {
88
+ id?: string;
89
+ title: string;
90
+ goal?: string;
91
+ status?: string;
92
+ source?: MeshMissionSource;
93
+ }): MeshMissionRecord;
94
+ export declare function getMeshMissions(meshId: string, statuses?: MeshMissionStatus[]): MeshMissionRecord[];
95
+ export declare function getMeshMission(meshId: string, missionId: string): MeshMissionRecord | null;
96
+ /** Aggregate task statuses for a mission at query time (no stored progress). */
97
+ export declare function summarizeMissionTasks(meshId: string, missionId: string): MeshMissionTaskAggregate;
98
+ export declare function summarizeMeshMission(meshId: string, mission: MeshMissionRecord): MeshMissionSummary;
99
+ /** Active mission summaries for mesh_status / coordinator prompt injection. */
100
+ export declare function getActiveMeshMissionSummaries(meshId: string): MeshMissionSummary[];
101
+ /**
102
+ * Mission summaries for the mesh_status dashboard surface: every active/paused
103
+ * mission plus a capped, newest-first slice of completed/abandoned history so
104
+ * the dashboard can render a collapsible "history" section without unbounded
105
+ * payload growth. Returned newest-first within each group (active/paused first,
106
+ * then history), so the frontend can split on `status` directly.
107
+ *
108
+ * Compact mode (the default) elides each mission's full `goal` text — which is
109
+ * repeated verbatim on every status poll and dominates the payload when a mesh
110
+ * has many missions — returning only a short `goalPreview` + `goalTruncated`
111
+ * flag. Pass `verbose: true` to get the full `goal` text per mission. The stored
112
+ * goal is untouched in both modes; this is an output-only projection.
113
+ */
114
+ export declare function getMeshStatusMissionSummaries(meshId: string, options?: {
115
+ historyLimit?: number;
116
+ verbose?: boolean;
117
+ withStats?: boolean;
118
+ }): MeshMissionSummary[] | MeshMissionSlimSummary[];
119
+ /** Folded completed/abandoned history for the mesh_status compact surface. */
120
+ export interface MeshStatusMissionsHistoryFold {
121
+ /** Total completed + abandoned missions. */
122
+ count: number;
123
+ /** Count by lifecycle status (e.g. { completed, abandoned }). */
124
+ byStatus: Record<string, number>;
125
+ /** Newest-first id list (capped) so each folded mission stays addressable. */
126
+ missionIds: string[];
127
+ note: string;
128
+ }
129
+ /** Compact mesh_status mission projection: live detail + folded history. */
130
+ export interface MeshStatusMissionsCompact {
131
+ /**
132
+ * Active + paused missions, goal-elided to COMPACT_STATUS_GOAL_PREVIEW_MAX and
133
+ * WITHOUT the operational `stats` rollup — the `tasks` aggregate already carries
134
+ * progress, and stats (durations/retries) is a verbose/dashboard concern.
135
+ */
136
+ live: MeshMissionSlimSummary[];
137
+ /** Completed + abandoned missions folded to counts + ids; null when none. */
138
+ historyFold: MeshStatusMissionsHistoryFold | null;
139
+ }
140
+ /**
141
+ * Mission projection for the mesh_status COMPACT (LLM coordinator) surface.
142
+ *
143
+ * Unlike getMeshStatusMissionSummaries (which emits every live mission plus a
144
+ * capped slice of full-detail history, each carrying a stats rollup), this keeps
145
+ * per-mission detail ONLY for live (active/paused) missions and folds the whole
146
+ * completed/abandoned history into a counts + id-list summary. Combined with the
147
+ * tighter goal preview and dropped stats, this is what keeps the compact
148
+ * mesh_status payload bounded as a mesh accumulates missions — the missions
149
+ * section previously dominated the payload (full goalPreview + tasks + stats per
150
+ * mission, for every live mission and up to 10 history missions, on every poll).
151
+ *
152
+ * The stored missions are untouched; this is an output-only projection. Full
153
+ * mission detail (goal text + stats + history) stays available via
154
+ * mesh_status verbose=true or mesh_mission_list.
155
+ */
156
+ export declare function getMeshStatusMissionsCompact(meshId: string, options?: {
157
+ previewMax?: number;
158
+ historyIdLimit?: number;
159
+ }): MeshStatusMissionsCompact;
160
+ /**
161
+ * Read-only mission listing for the mesh_mission_list tool. Returns summaries
162
+ * (record + live task aggregate) for missions matching `statuses` — or every
163
+ * mission when `statuses` is omitted/empty — newest-first by updatedAt. Unlike
164
+ * getMeshStatusMissionSummaries this does NOT cap or group by lifecycle, so a
165
+ * coordinator can deliberately surface paused/abandoned/completed missions that
166
+ * the live status view would hide or truncate.
167
+ *
168
+ * MAGI bounding: by default this EXCLUDES completed MAGI missions (source==='magi'
169
+ * && status==='completed') — a mesh_magi_review fan-out auto-creates one inline
170
+ * mission per run and auto-closes it on collection, so without this they accumulate
171
+ * unbounded and drown out coordinator missions in the list. In-progress MAGI missions
172
+ * (active/paused) are still shown so a running cross-verification stays visible. Pass
173
+ * `includeMagi: true` to return every mission including completed MAGI ones. A mission
174
+ * with no `source` (legacy / coordinator) is never affected.
175
+ *
176
+ * Compact (the default) elides each goal to a capped preview + goalTruncated
177
+ * flag; verbose returns the full goal text. The stored goal is never mutated.
178
+ */
179
+ export declare function listMeshMissionSummaries(meshId: string, options?: {
180
+ statuses?: MeshMissionStatus[];
181
+ verbose?: boolean;
182
+ includeMagi?: boolean;
183
+ }): MeshMissionSummary[] | MeshMissionSlimSummary[];
184
+ /**
185
+ * M3-3: render active missions as a prompt section for {{mission}}.
186
+ * Empty string when no active mission — the prompt stays byte-identical to
187
+ * the pre-M3 output in that case (regression guarantee).
188
+ */
189
+ export declare function buildMissionPromptSection(meshId: string): string;