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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/dist/boot/daemon-lifecycle.d.ts +9 -0
  2. package/dist/boot/process-hardening.d.ts +50 -0
  3. package/dist/build-info.d.ts +37 -0
  4. package/dist/chat/source-machine.d.ts +166 -0
  5. package/dist/chat/source-resolver.d.ts +104 -0
  6. package/dist/chat/subscription-updates.d.ts +1 -0
  7. package/dist/cli-adapter-types.d.ts +68 -2
  8. package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
  9. package/dist/cli-adapters/cli-state-engine.d.ts +220 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +137 -64
  11. package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
  12. package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
  13. package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
  14. package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
  15. package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
  16. package/dist/cli-adapters/resolve-executable.d.ts +69 -0
  17. package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
  18. package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
  19. package/dist/cli-adapters/terminal-screen.d.ts +4 -11
  20. package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
  21. package/dist/commands/chat-commands-read.d.ts +23 -0
  22. package/dist/commands/chat-commands-scope.d.ts +39 -0
  23. package/dist/commands/chat-commands-shared.d.ts +33 -0
  24. package/dist/commands/chat-commands-write.d.ts +14 -0
  25. package/dist/commands/chat-commands.d.ts +10 -23
  26. package/dist/commands/cli-manager.d.ts +71 -1
  27. package/dist/commands/handler.d.ts +125 -0
  28. package/dist/commands/high-family/index.d.ts +3 -0
  29. package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
  30. package/dist/commands/high-family/mesh-events.d.ts +2 -0
  31. package/dist/commands/high-family/mesh-status.d.ts +2 -0
  32. package/dist/commands/high-family/types.d.ts +64 -0
  33. package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
  34. package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
  35. package/dist/commands/low-family/diagnostics.d.ts +2 -0
  36. package/dist/commands/low-family/index.d.ts +3 -0
  37. package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
  38. package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
  39. package/dist/commands/low-family/notification.d.ts +2 -0
  40. package/dist/commands/low-family/refine-config.d.ts +2 -0
  41. package/dist/commands/low-family/session-host.d.ts +2 -0
  42. package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
  43. package/dist/commands/low-family/status-meta.d.ts +2 -0
  44. package/dist/commands/low-family/types.d.ts +33 -0
  45. package/dist/commands/med-family/cli-agent.d.ts +2 -0
  46. package/dist/commands/med-family/fast-forward.d.ts +2 -0
  47. package/dist/commands/med-family/ide.d.ts +10 -0
  48. package/dist/commands/med-family/index.d.ts +3 -0
  49. package/dist/commands/med-family/mesh-crud.d.ts +48 -0
  50. package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
  51. package/dist/commands/med-family/mesh-queue.d.ts +2 -0
  52. package/dist/commands/med-family/mesh-restart.d.ts +2 -0
  53. package/dist/commands/med-family/types.d.ts +152 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router-aggregate-status.d.ts +24 -0
  56. package/dist/commands/router-mesh-session-owner.d.ts +59 -0
  57. package/dist/commands/router-refine.d.ts +151 -0
  58. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  59. package/dist/commands/router.d.ts +203 -15
  60. package/dist/commands/upgrade-helper.d.ts +41 -1
  61. package/dist/config/chat-history.d.ts +11 -0
  62. package/dist/config/config.d.ts +19 -0
  63. package/dist/config/mesh-config.d.ts +65 -0
  64. package/dist/config/mesh-json-config.d.ts +199 -0
  65. package/dist/config/registry-resolver.d.ts +54 -0
  66. package/dist/config/repo-settings.d.ts +77 -0
  67. package/dist/config/state-store.d.ts +30 -0
  68. package/dist/daemon/dev-server.d.ts +0 -2
  69. package/dist/detection/cli-detector.d.ts +17 -0
  70. package/dist/detection/ide-detector.d.ts +13 -0
  71. package/dist/detection/win32-ide-version.d.ts +37 -0
  72. package/dist/git/change-impact-config.d.ts +159 -0
  73. package/dist/git/git-commands.d.ts +26 -2
  74. package/dist/git/git-diff.d.ts +6 -0
  75. package/dist/git/git-executor.d.ts +11 -0
  76. package/dist/git/git-status.d.ts +80 -0
  77. package/dist/git/git-types.d.ts +2 -50
  78. package/dist/git/git-worktree.d.ts +71 -1
  79. package/dist/git/index.d.ts +3 -1
  80. package/dist/index.d.ts +70 -17
  81. package/dist/index.js +53532 -19073
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +53283 -18989
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/installer.d.ts +1 -4
  86. package/dist/ipc/local-ipc-server.d.ts +91 -0
  87. package/dist/launch.d.ts +1 -1
  88. package/dist/logging/async-batch-writer.d.ts +10 -0
  89. package/dist/logging/debug-config.d.ts +16 -0
  90. package/dist/logging/log-redactor.d.ts +24 -0
  91. package/dist/logging/log-tail-reader.d.ts +81 -0
  92. package/dist/logging/logger.d.ts +1 -1
  93. package/dist/mesh/contracts.d.ts +256 -0
  94. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  95. package/dist/mesh/coordinator-registry.d.ts +59 -0
  96. package/dist/mesh/mesh-active-work.d.ts +203 -0
  97. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  98. package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
  99. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  100. package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
  101. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  102. package/dist/mesh/mesh-event-forwarding.d.ts +58 -0
  103. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  104. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  105. package/dist/mesh/mesh-events-pending.d.ts +258 -0
  106. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  107. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  108. package/dist/mesh/mesh-events.d.ts +6 -49
  109. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  110. package/dist/mesh/mesh-host-ownership.d.ts +21 -1
  111. package/dist/mesh/mesh-init.d.ts +128 -0
  112. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  113. package/dist/mesh/mesh-ledger.d.ts +139 -1
  114. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  115. package/dist/mesh/mesh-missions.d.ts +281 -0
  116. package/dist/mesh/mesh-node-identity.d.ts +310 -0
  117. package/dist/mesh/mesh-queue-assignment.d.ts +162 -0
  118. package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
  119. package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
  120. package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
  121. package/dist/mesh/mesh-reconcile-loop.d.ts +84 -0
  122. package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
  123. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  124. package/dist/mesh/mesh-refine-gates.d.ts +457 -0
  125. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  126. package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
  127. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  128. package/dist/mesh/mesh-routing.d.ts +70 -0
  129. package/dist/mesh/mesh-runtime-store.d.ts +567 -0
  130. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  131. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  132. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  133. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +34 -0
  134. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  135. package/dist/mesh/mesh-work-queue.d.ts +392 -1
  136. package/dist/mesh/preview-freshness.d.ts +28 -0
  137. package/dist/mesh/refine-config.d.ts +97 -0
  138. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  139. package/dist/providers/acp-provider-instance.d.ts +5 -0
  140. package/dist/providers/approval-utils.d.ts +46 -0
  141. package/dist/providers/chat-message-normalization.d.ts +58 -1
  142. package/dist/providers/cli-provider-effect-format.d.ts +30 -0
  143. package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
  144. package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
  145. package/dist/providers/cli-provider-instance-types.d.ts +45 -0
  146. package/dist/providers/cli-provider-instance.d.ts +426 -30
  147. package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
  148. package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
  149. package/dist/providers/contracts.d.ts +196 -6
  150. package/dist/providers/external-sources.d.ts +71 -0
  151. package/dist/providers/manual-attendance.d.ts +79 -0
  152. package/dist/providers/native-history/antigravity-claim-registry.d.ts +39 -0
  153. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  154. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  155. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  156. package/dist/providers/native-history/constants.d.ts +12 -0
  157. package/dist/providers/native-history/dispatcher.d.ts +44 -0
  158. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  159. package/dist/providers/native-history/index.d.ts +13 -0
  160. package/dist/providers/provider-instance-manager.d.ts +30 -0
  161. package/dist/providers/provider-instance.d.ts +31 -1
  162. package/dist/providers/provider-loader.d.ts +42 -5
  163. package/dist/providers/provider-trust.d.ts +31 -0
  164. package/dist/providers/read-chat-contract.d.ts +29 -0
  165. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  166. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  167. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  168. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  169. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  170. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  171. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  172. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  173. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  174. package/dist/providers/sdk/v1/index.d.ts +30 -0
  175. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  176. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  177. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  178. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  179. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  180. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  181. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  182. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  183. package/dist/providers/spec/adapter.d.ts +98 -0
  184. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  185. package/dist/providers/spec/evaluator.d.ts +45 -0
  186. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  187. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  188. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  189. package/dist/providers/spec/fsm-types.d.ts +202 -0
  190. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  191. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  192. package/dist/providers/spec/route.d.ts +4 -0
  193. package/dist/providers/spec/types.d.ts +244 -0
  194. package/dist/providers/status-monitor.d.ts +7 -7
  195. package/dist/providers/transcript-v2.d.ts +176 -0
  196. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  197. package/dist/providers/working-dir.d.ts +17 -0
  198. package/dist/repo-mesh-types.d.ts +616 -12
  199. package/dist/runtime-defaults.d.ts +2 -0
  200. package/dist/session-host/managed-host.d.ts +64 -0
  201. package/dist/session-host/runtime-surface.d.ts +10 -16
  202. package/dist/sessions/registry.d.ts +26 -0
  203. package/dist/shared-types-extra.d.ts +2 -4
  204. package/dist/shared-types.d.ts +110 -55
  205. package/dist/status/chat-tail-hot-sessions.d.ts +40 -0
  206. package/dist/status/normalize.d.ts +1 -1
  207. package/dist/status/normalize.js +1 -0
  208. package/dist/status/normalize.js.map +1 -1
  209. package/dist/status/normalize.mjs +1 -0
  210. package/dist/status/normalize.mjs.map +1 -1
  211. package/dist/status/reporter.d.ts +2 -0
  212. package/dist/status/snapshot.d.ts +27 -0
  213. package/dist/system/hash.d.ts +8 -0
  214. package/dist/system/load-better-sqlite3.d.ts +21 -0
  215. package/dist/types.d.ts +20 -6
  216. package/package.json +11 -4
  217. package/src/agent-stream/poller.ts +2 -3
  218. package/src/agent-stream/provider-adapter.ts +1 -1
  219. package/src/boot/daemon-lifecycle.ts +80 -14
  220. package/src/boot/process-hardening.ts +89 -0
  221. package/src/build-info.ts +73 -0
  222. package/src/chat/source-machine.ts +534 -0
  223. package/src/chat/source-resolver.ts +0 -0
  224. package/src/chat/subscription-updates.ts +20 -1
  225. package/src/cli-adapter-types.d.ts +3 -1
  226. package/src/cli-adapter-types.ts +68 -2
  227. package/src/cli-adapters/cli-script-runner.ts +421 -0
  228. package/src/cli-adapters/cli-state-engine.ts +1282 -0
  229. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  230. package/src/cli-adapters/provider-cli-adapter.ts +1048 -1143
  231. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  232. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  233. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  234. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  235. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  236. package/src/cli-adapters/pty-transport.ts +2 -1
  237. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  238. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  239. package/src/cli-adapters/resolve-executable.ts +204 -0
  240. package/src/cli-adapters/session-host-transport.ts +2 -1
  241. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  242. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  243. package/src/cli-adapters/terminal-screen.ts +16 -81
  244. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  245. package/src/commands/chat-commands-read.ts +2788 -0
  246. package/src/commands/chat-commands-scope.ts +54 -0
  247. package/src/commands/chat-commands-shared.ts +114 -0
  248. package/src/commands/chat-commands-write.ts +891 -0
  249. package/src/commands/chat-commands.ts +19 -1841
  250. package/src/commands/cli-manager.d.ts +2 -0
  251. package/src/commands/cli-manager.ts +724 -27
  252. package/src/commands/handler.ts +865 -2
  253. package/src/commands/high-family/index.ts +28 -0
  254. package/src/commands/high-family/mesh-coordinator-launch.ts +696 -0
  255. package/src/commands/high-family/mesh-events.ts +102 -0
  256. package/src/commands/high-family/mesh-status.ts +857 -0
  257. package/src/commands/high-family/types.ts +80 -0
  258. package/src/commands/low-family/coordinator-prompt.ts +125 -0
  259. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  260. package/src/commands/low-family/diagnostics.ts +57 -0
  261. package/src/commands/low-family/index.ts +37 -0
  262. package/src/commands/low-family/mesh-ledger.ts +62 -0
  263. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  264. package/src/commands/low-family/notification.ts +116 -0
  265. package/src/commands/low-family/refine-config.ts +106 -0
  266. package/src/commands/low-family/session-host.ts +282 -0
  267. package/src/commands/low-family/spec-providerdev.ts +217 -0
  268. package/src/commands/low-family/status-meta.ts +112 -0
  269. package/src/commands/low-family/types.ts +39 -0
  270. package/src/commands/med-family/cli-agent.ts +270 -0
  271. package/src/commands/med-family/fast-forward.ts +230 -0
  272. package/src/commands/med-family/ide.ts +163 -0
  273. package/src/commands/med-family/index.ts +37 -0
  274. package/src/commands/med-family/mesh-crud.ts +1268 -0
  275. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  276. package/src/commands/med-family/mesh-queue.ts +167 -0
  277. package/src/commands/med-family/mesh-restart.ts +92 -0
  278. package/src/commands/med-family/types.ts +153 -0
  279. package/src/commands/mesh-coordinator.ts +334 -124
  280. package/src/commands/router-aggregate-status.ts +209 -0
  281. package/src/commands/router-mesh-session-owner.ts +114 -0
  282. package/src/commands/router-refine.ts +1794 -0
  283. package/src/commands/router-worktree-cleanup.ts +870 -0
  284. package/src/commands/router.ts +567 -4149
  285. package/src/commands/stream-commands.ts +8 -0
  286. package/src/commands/upgrade-helper.ts +310 -45
  287. package/src/config/chat-history.ts +517 -24
  288. package/src/config/config.ts +30 -0
  289. package/src/config/mesh-config.ts +300 -24
  290. package/src/config/mesh-json-config.ts +376 -0
  291. package/src/config/recent-activity.ts +8 -2
  292. package/src/config/registry-resolver.ts +100 -0
  293. package/src/config/repo-settings.ts +111 -0
  294. package/src/config/state-store.ts +55 -0
  295. package/src/daemon/dev-auto-implement.ts +3 -2
  296. package/src/daemon/dev-cli-debug.ts +10 -1
  297. package/src/daemon/dev-server.ts +0 -541
  298. package/src/detection/cli-detector.ts +94 -9
  299. package/src/detection/ide-detector.ts +55 -16
  300. package/src/detection/win32-ide-version.ts +106 -0
  301. package/src/git/change-impact-config.ts +354 -0
  302. package/src/git/git-commands.ts +112 -16
  303. package/src/git/git-diff.ts +81 -11
  304. package/src/git/git-executor.ts +12 -0
  305. package/src/git/git-status.ts +822 -48
  306. package/src/git/git-types.ts +14 -62
  307. package/src/git/git-worktree.ts +261 -4
  308. package/src/git/index.ts +17 -0
  309. package/src/index.ts +190 -13
  310. package/src/installer.d.ts +1 -1
  311. package/src/installer.ts +8 -6
  312. package/src/ipc/local-ipc-server.ts +278 -0
  313. package/src/launch.d.ts +1 -1
  314. package/src/launch.ts +37 -28
  315. package/src/logging/async-batch-writer.ts +55 -0
  316. package/src/logging/command-log.ts +7 -5
  317. package/src/logging/debug-config.ts +25 -0
  318. package/src/logging/debug-trace.ts +7 -2
  319. package/src/logging/log-redactor.ts +100 -0
  320. package/src/logging/log-tail-reader.ts +341 -0
  321. package/src/logging/logger.ts +14 -7
  322. package/src/mesh/contracts.ts +510 -0
  323. package/src/mesh/coordinator-prompt.ts +627 -34
  324. package/src/mesh/coordinator-registry.ts +121 -0
  325. package/src/mesh/mesh-active-work.ts +706 -0
  326. package/src/mesh/mesh-clone-grace.ts +68 -0
  327. package/src/mesh/mesh-completion-synthesis.ts +416 -0
  328. package/src/mesh/mesh-coordinator-config.ts +97 -0
  329. package/src/mesh/mesh-delivery-policy.ts +284 -0
  330. package/src/mesh/mesh-event-classify.ts +78 -0
  331. package/src/mesh/mesh-event-forwarding.ts +2030 -0
  332. package/src/mesh/mesh-event-trace.ts +67 -0
  333. package/src/mesh/mesh-events-coordinator.ts +32 -0
  334. package/src/mesh/mesh-events-pending.ts +1548 -0
  335. package/src/mesh/mesh-events-stale.ts +452 -0
  336. package/src/mesh/mesh-events-utils.ts +443 -0
  337. package/src/mesh/mesh-events.ts +43 -1035
  338. package/src/mesh/mesh-fast-forward.ts +856 -0
  339. package/src/mesh/mesh-host-ownership.ts +41 -3
  340. package/src/mesh/mesh-init.ts +350 -0
  341. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  342. package/src/mesh/mesh-ledger.ts +897 -102
  343. package/src/mesh/mesh-magi-status.ts +223 -0
  344. package/src/mesh/mesh-missions.ts +695 -0
  345. package/src/mesh/mesh-node-identity.ts +2065 -0
  346. package/src/mesh/mesh-queue-assignment.ts +2498 -0
  347. package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
  348. package/src/mesh/mesh-reconcile-config.ts +66 -0
  349. package/src/mesh/mesh-reconcile-identity.ts +103 -0
  350. package/src/mesh/mesh-reconcile-loop.ts +1696 -0
  351. package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
  352. package/src/mesh/mesh-refine-batch.ts +205 -0
  353. package/src/mesh/mesh-refine-gates.ts +1792 -0
  354. package/src/mesh/mesh-refine-status.ts +231 -0
  355. package/src/mesh/mesh-remote-event-pull.ts +279 -0
  356. package/src/mesh/mesh-review-inbox.ts +308 -0
  357. package/src/mesh/mesh-routing.ts +291 -0
  358. package/src/mesh/mesh-runtime-store.ts +2292 -0
  359. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  360. package/src/mesh/mesh-task-inflight.ts +70 -0
  361. package/src/mesh/mesh-task-stats.ts +161 -0
  362. package/src/mesh/mesh-unresolved-forward-outbox.ts +215 -0
  363. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  364. package/src/mesh/mesh-work-queue.ts +1489 -145
  365. package/src/mesh/preview-freshness.ts +163 -0
  366. package/src/mesh/refine-config.ts +129 -12
  367. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  368. package/src/providers/acp-provider-instance.ts +43 -10
  369. package/src/providers/approval-utils.d.ts +5 -0
  370. package/src/providers/approval-utils.ts +100 -6
  371. package/src/providers/chat-message-normalization.ts +126 -4
  372. package/src/providers/cli-provider-effect-format.ts +53 -0
  373. package/src/providers/cli-provider-history-dedup.ts +75 -0
  374. package/src/providers/cli-provider-input-prompt.ts +133 -0
  375. package/src/providers/cli-provider-instance-types.ts +131 -0
  376. package/src/providers/cli-provider-instance.ts +2771 -499
  377. package/src/providers/cli-provider-status-helpers.ts +123 -0
  378. package/src/providers/cli-provider-transcript-merge.ts +114 -0
  379. package/src/providers/contracts.d.ts +55 -0
  380. package/src/providers/contracts.ts +207 -6
  381. package/src/providers/extension-provider-instance.ts +12 -7
  382. package/src/providers/external-sources.ts +218 -0
  383. package/src/providers/ide-provider-instance.ts +35 -12
  384. package/src/providers/manual-attendance.ts +105 -0
  385. package/src/providers/native-history/antigravity-claim-registry.ts +138 -0
  386. package/src/providers/native-history/antigravity-cli-transcript.ts +1275 -0
  387. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  388. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  389. package/src/providers/native-history/constants.ts +19 -0
  390. package/src/providers/native-history/dispatcher.ts +617 -0
  391. package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
  392. package/src/providers/native-history/index.ts +30 -0
  393. package/src/providers/provider-instance-manager.ts +71 -0
  394. package/src/providers/provider-instance.ts +24 -1
  395. package/src/providers/provider-loader.ts +700 -55
  396. package/src/providers/provider-schema.ts +93 -14
  397. package/src/providers/provider-trust.ts +114 -0
  398. package/src/providers/read-chat-contract.ts +76 -16
  399. package/src/providers/sdk/README.md +49 -0
  400. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  401. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  402. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  403. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  404. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  405. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  406. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  407. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  408. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  409. package/src/providers/sdk/v1/index.ts +152 -0
  410. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  411. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  412. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  413. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +538 -0
  414. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  415. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  416. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  417. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  418. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  419. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  420. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  421. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  422. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  423. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  424. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  425. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  426. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  427. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  428. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  429. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  430. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  431. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  432. package/src/providers/sdk/v1/validators/index.ts +19 -0
  433. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  434. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  435. package/src/providers/spec/adapter.ts +246 -0
  436. package/src/providers/spec/cli-adapter.ts +1064 -0
  437. package/src/providers/spec/evaluator.ts +407 -0
  438. package/src/providers/spec/fsm-driver.ts +1528 -0
  439. package/src/providers/spec/fsm-evaluator.ts +290 -0
  440. package/src/providers/spec/fsm-loader.ts +128 -0
  441. package/src/providers/spec/fsm-types.ts +301 -0
  442. package/src/providers/spec/native-history-executor.ts +1241 -0
  443. package/src/providers/spec/pre-launch-trust.ts +104 -0
  444. package/src/providers/spec/route.ts +51 -0
  445. package/src/providers/spec/types.ts +284 -0
  446. package/src/providers/status-monitor.d.ts +7 -7
  447. package/src/providers/status-monitor.ts +37 -22
  448. package/src/providers/transcript-v2.ts +567 -0
  449. package/src/providers/types/interactive-prompt.ts +536 -0
  450. package/src/providers/version-archive.ts +64 -24
  451. package/src/providers/working-dir.ts +23 -0
  452. package/src/repo-mesh-types.ts +861 -14
  453. package/src/runtime-defaults.ts +39 -0
  454. package/src/session-host/managed-host.ts +218 -0
  455. package/src/session-host/runtime-surface.ts +20 -80
  456. package/src/sessions/registry.ts +44 -0
  457. package/src/shared-types-extra.ts +2 -4
  458. package/src/shared-types.d.ts +8 -0
  459. package/src/shared-types.ts +148 -55
  460. package/src/status/builders.ts +69 -6
  461. package/src/status/chat-tail-hot-sessions.ts +117 -2
  462. package/src/status/normalize.ts +2 -0
  463. package/src/status/reporter.ts +19 -1
  464. package/src/status/snapshot.ts +100 -27
  465. package/src/system/hash.ts +23 -0
  466. package/src/system/host-memory.ts +29 -12
  467. package/src/system/load-better-sqlite3.ts +68 -0
  468. package/src/types.ts +26 -6
  469. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  470. package/dist/mesh/mesh-sync.d.ts +0 -53
  471. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  472. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  473. package/src/mesh/mesh-sync.ts +0 -111
@@ -1,6 +1,7 @@
1
1
  import type { ProviderResumeCapability } from '../providers/contracts.js';
2
2
  import type { ChatMessageKind } from '../providers/chat-message-normalization.js';
3
3
  import type { ChatBubbleState } from '../types.js';
4
+ import type { InteractivePrompt } from '../providers/types/interactive-prompt.js';
4
5
  import { sanitizeSpawnEnv } from './spawn-env.js';
5
6
  export interface CliChatMessage {
6
7
  role: string;
@@ -26,8 +27,63 @@ export interface CliSessionStatus {
26
27
  message: string;
27
28
  buttons: string[];
28
29
  } | null;
30
+ /**
31
+ * Monotonic counter identifying which approval *entry* the current modal
32
+ * belongs to. Bumped by the FSM on every fresh waiting_approval entry.
33
+ * Consumers (e.g. auto-approval) use it to distinguish a genuinely new
34
+ * approval from the same approval re-observed across TUI paint flaps —
35
+ * two distinct approvals can carry identical message/button text, so the
36
+ * seq is the only reliable discriminator.
37
+ */
38
+ approvalEntrySeq?: number;
39
+ /**
40
+ * The approval entry seq that the engine's last resolveModal() handled. When
41
+ * `lastResolvedEntrySeq >= approvalEntrySeq` (and approvalEntrySeq > 0) it is positive
42
+ * evidence that the current/latest approval entry was resolved through ADHDev (auto-approve
43
+ * fire, dashboard / mesh_approve, or dev-cli-debug — all route through resolveModal). The
44
+ * completion finalization gate uses this to avoid confirming a waiting_approval→idle
45
+ * transition for which no resolution actually occurred (a false idle: the spec's text-based
46
+ * approval→idle rule tripped while the modal is still on screen).
47
+ */
48
+ lastResolvedEntrySeq?: number;
49
+ activeInteractivePrompt?: InteractivePrompt | null;
50
+ pendingOutboundCount?: number;
51
+ pendingOutboundMessages?: Array<{
52
+ id: string;
53
+ role: 'user';
54
+ content: string;
55
+ queuedAt: number;
56
+ source: string;
57
+ }>;
29
58
  errorMessage?: string;
30
59
  errorReason?: string;
60
+ providerSessionId?: string;
61
+ /**
62
+ * Spec/FSM adapters only (SpecCliAdapter): true once the driver has observed
63
+ * its first non-initial idle state — the prompt is genuinely drawn. The
64
+ * legacy ProviderCliAdapter never sets it (undefined). CliProviderInstance
65
+ * uses it to re-arm the queue-claim agent:ready on the first genuine ready,
66
+ * independent of the boot-time starting→idle one-shot (which is consumed too
67
+ * early for specs whose initial state already reports status 'idle', e.g.
68
+ * antigravity-cli — without the re-arm the worker never claims its queued
69
+ * task and the coordinator relaunch-loops).
70
+ */
71
+ fsmReadySeen?: boolean;
72
+ /**
73
+ * Timestamp (ms) of the most recent raw PTY output chunk. Advances on every
74
+ * byte the process emits, including tool/build output that produces no
75
+ * parsed assistant text. Liveness watchdogs use this to distinguish a real
76
+ * stall (no output at all) from an active turn whose assistant buffer is
77
+ * momentarily static while a tool runs.
78
+ */
79
+ lastOutputAt?: number;
80
+ /**
81
+ * Timestamp (ms) of the most recent *visible* terminal screen change.
82
+ * Stricter than lastOutputAt — only advances when the rendered screen
83
+ * content actually differs, so repeated keepalive bytes do not register as
84
+ * progress. Preferred liveness signal for the no-progress watchdog.
85
+ */
86
+ lastScreenChangeAt?: number;
31
87
  bufferState?: {
32
88
  responseBuffer?: {
33
89
  truncated: boolean;
@@ -59,6 +115,9 @@ export interface ParsedSession {
59
115
  buttons: string[];
60
116
  } | null;
61
117
  parsedStatus: string | null;
118
+ errorMessage?: string;
119
+ errorReason?: string;
120
+ providerSessionId?: string;
62
121
  transcriptAuthority?: 'provider' | 'daemon';
63
122
  coverage?: 'full' | 'tail' | 'current-turn';
64
123
  }
@@ -112,6 +171,10 @@ export interface CliScriptInput {
112
171
  rawBuffer: string;
113
172
  recentBuffer: string;
114
173
  screenText: string;
174
+ workspace?: string;
175
+ workingDir?: string;
176
+ providerSessionId?: string;
177
+ historySessionId?: string;
115
178
  screen: CliScreenSnapshot;
116
179
  bufferScreen: CliScreenSnapshot;
117
180
  recentScreen: CliScreenSnapshot;
@@ -121,6 +184,7 @@ export interface CliScriptInput {
121
184
  promptText?: string;
122
185
  settings?: Record<string, any>;
123
186
  args?: Record<string, any>;
187
+ spawnAt?: number;
124
188
  }
125
189
  export interface CliStatusInput {
126
190
  tail: string;
@@ -158,16 +222,26 @@ export interface CliProviderModule {
158
222
  binary: string;
159
223
  approvalKeys?: Record<number, string>;
160
224
  sendDelayMs?: number;
225
+ /** Wall-clock budget (ms) for a single provider script invocation. Default 50. Range 1..5000.
226
+ * Exceeding the budget records `timedOut: true` on the invocation trace and emits a
227
+ * throttled WARN — it does NOT abort the script (Node CJS can't interrupt sync code). */
228
+ scriptCallBudgetMs?: number;
161
229
  sendKey?: string;
162
230
  submitStrategy?: 'wait_for_echo' | 'immediate';
163
231
  /** Require the typed prompt to be visible on the PTY screen before sending Enter. */
164
232
  requirePromptEchoBeforeSubmit?: boolean;
165
233
  /** Allow sending another prompt while the CLI is still generating so users can intervene mid-turn. */
166
234
  allowInputDuringGeneration?: boolean;
235
+ /** When true, only transition to idle after the parsed transcript includes a final standard assistant message. */
236
+ requiresFinalAssistantBeforeIdle?: boolean;
237
+ /** When true, allow providers to augment stale snapshot data before parse. Reserved for future use. */
238
+ augmentStaleSnapshot?: boolean;
167
239
  /** When provider-owned, daemon treats provider parser output as canonical transcript authority. */
168
240
  transcriptAuthority?: 'provider' | 'daemon';
169
241
  /** Full context lets provider-owned parsers canonicalize retained history instead of daemon prefix stitching. */
170
242
  transcriptContext?: 'full' | 'tail';
243
+ /** v1 declarative tui block — used by CliScriptRunner to synthesize SDK helpers (declarativeDetectStatus, declarativeParseApproval). */
244
+ tui?: Record<string, unknown>;
171
245
  scripts?: CliScripts;
172
246
  spawn: {
173
247
  command: string;
@@ -0,0 +1,34 @@
1
+ export declare const WIN32_PTY_WRITE_CHUNK_CHARS = 1024;
2
+ export declare const WIN32_PTY_WRITE_CHUNK_GAP_MS = 8;
3
+ /** Split `text` into chunks of at most `size` UTF-16 units without ever cutting
4
+ * between a high and low surrogate (which would corrupt an astral char — emoji,
5
+ * etc. — on the UTF-8 PTY write). */
6
+ export declare function chunkPreservingSurrogates(text: string, size: number): string[];
7
+ /** True when a body of `length` UTF-16 units should be paced into multiple
8
+ * chunks on win32 rather than written in a single PTY write. */
9
+ export declare function shouldChunkWin32Write(length: number): boolean;
10
+ /**
11
+ * Drive a paced, surrogate-safe chunked write of `text` over a `write(chunk)`
12
+ * sink, calling `onChunkWritten` after each chunk (e.g. to advance an input-
13
+ * activity timestamp) and `onDone` once the final chunk is out. The optional
14
+ * `setTimer` lets the caller own the timer handle (so it can be cleared on
15
+ * shutdown) and supply a custom scheduler in tests; it defaults to setTimeout.
16
+ *
17
+ * Bodies at or below the chunk threshold are written in a SINGLE write — the
18
+ * common case — so this is a no-op pacing wrapper for normal-sized prompts.
19
+ *
20
+ * Returns the chunks that will be written (useful for assertions/logging).
21
+ */
22
+ export interface PacedWin32WriteOptions {
23
+ write: (chunk: string) => void;
24
+ onChunkWritten?: () => void;
25
+ onDone?: () => void;
26
+ /** Schedule the next chunk; must return a handle the caller can clear.
27
+ * Defaults to setTimeout. */
28
+ setTimer?: (fn: () => void, delayMs: number) => ReturnType<typeof setTimeout>;
29
+ /** Store the pending timer handle so the caller can clear it on shutdown. */
30
+ onTimer?: (handle: ReturnType<typeof setTimeout> | null) => void;
31
+ chunkChars?: number;
32
+ gapMs?: number;
33
+ }
34
+ export declare function writeWin32Paced(text: string, opts: PacedWin32WriteOptions): string[];
@@ -0,0 +1,37 @@
1
+ import { type SessionHostEndpoint, type SessionHostRequest, type SessionHostResponse, type SessionTerminalSnapshot, type SessionTerminalState } from '@adhdev/session-host-core';
2
+ type LowercaseLetter = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
3
+ type FunctionKey = 'f1' | 'f2' | 'f3' | 'f4' | 'f5' | 'f6' | 'f7' | 'f8' | 'f9' | 'f10' | 'f11' | 'f12';
4
+ type BaseNamedKey = 'enter' | 'escape' | 'tab' | 'backspace' | 'up' | 'down' | 'left' | 'right' | 'home' | 'end' | 'pageup' | 'pagedown' | 'space' | FunctionKey;
5
+ type ShiftNamedKey = BaseNamedKey | LowercaseLetter | `ctrl+${LowercaseLetter}` | `alt+${LowercaseLetter}`;
6
+ export type NamedKey = BaseNamedKey | `ctrl+${LowercaseLetter}` | `alt+${LowercaseLetter}` | `shift+${ShiftNamedKey}`;
7
+ export declare function namedKeyToAnsi(key: NamedKey | string): string;
8
+ export declare function namedKeysToAnsi(keys: readonly (NamedKey | string)[]): string;
9
+ export interface RawTerminalSessionHostClient {
10
+ connect(): Promise<void>;
11
+ request<T = unknown>(request: SessionHostRequest): Promise<SessionHostResponse<T>>;
12
+ close(): Promise<void>;
13
+ }
14
+ export interface RawTerminalAttachmentOptions {
15
+ endpoint?: SessionHostEndpoint;
16
+ sessionId: string;
17
+ mode?: 'read' | 'write';
18
+ clientId?: string;
19
+ client?: RawTerminalSessionHostClient;
20
+ }
21
+ export declare class RawTerminalAttachment {
22
+ readonly sessionId: string;
23
+ private readonly clientId;
24
+ private readonly mode;
25
+ private readonly client;
26
+ private closed;
27
+ private constructor();
28
+ static attach(options: RawTerminalAttachmentOptions): Promise<RawTerminalAttachment>;
29
+ readSnapshot(): Promise<SessionTerminalSnapshot>;
30
+ readScreenText(): Promise<string>;
31
+ readState(): Promise<SessionTerminalState>;
32
+ writeInput(text: string): Promise<void>;
33
+ writeKeys(keys: readonly (NamedKey | string)[]): Promise<void>;
34
+ close(): Promise<void>;
35
+ }
36
+ export declare function withRawTerminalAttachment<T>(options: RawTerminalAttachmentOptions, operation: (attachment: RawTerminalAttachment) => Promise<T>): Promise<T>;
37
+ export {};
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Pick the best launch target from `where`'s match list on win32.
3
+ *
4
+ * `where npm` on a typical install returns BOTH the extensionless Unix wrapper
5
+ * (e.g. `C:\Program Files\nodejs\npm`, a bash shell script) AND the `npm.cmd`
6
+ * shim. The extensionless wrapper is NOT a win32 executable — handing it to a
7
+ * spawn boundary ENOENTs (errno -4058). So:
8
+ * 1. Prefer a directly-launchable `.exe`/`.com`.
9
+ * 2. Otherwise take a `.cmd`/`.bat` shim (absolute → works for ConPTY, and for
10
+ * execFile once wrapped via buildWin32ExecFileSpawn).
11
+ * 3. NEVER fall back to an extensionless match — return null so the caller can
12
+ * try other resolution strategies (global-bin scan) rather than emit a
13
+ * path that cannot be exec'd.
14
+ */
15
+ export declare function selectWin32ExecutableMatch(matches: string[]): string | null;
16
+ /**
17
+ * Resolve a launch command to an absolute executable path on Windows.
18
+ *
19
+ * node-pty's ConPTY backend resolves a bare/relative command against the
20
+ * *calling process's* `Path` env var and — critically — does NOT apply PATHEXT.
21
+ * So a provider command like `claude` never matches `claude.exe` and the native
22
+ * layer throws `File not found:` (empty), which crashes the daemon. We resolve
23
+ * it to an absolute `.exe` here (in the daemon process, which has the full PATH)
24
+ * before the command ever reaches node-pty.
25
+ *
26
+ * No-op on non-Windows and when the command is already an existing absolute path
27
+ * or cannot be resolved (caller keeps the original behaviour).
28
+ */
29
+ export declare function resolveWin32Executable(command: string): string;
30
+ /**
31
+ * Quote one argument for a cmd.exe command line using the standard
32
+ * CommandLineToArgvW rules (the same algorithm Node uses internally): wrap in
33
+ * double quotes only when needed, double up the backslashes that precede a
34
+ * quote, and escape embedded quotes. We do per-argument quoting ourselves
35
+ * (rather than `{ shell: true }`) because Node's shell mode joins argv with bare
36
+ * spaces and applies NO quoting — any argument containing a space (a path, a
37
+ * test name) would split. Inputs here are repo-mesh validation/bootstrap command
38
+ * tokens (trusted config, not network data), so argv-quoting for spaces/quotes
39
+ * is sufficient; we deliberately do not attempt full cmd.exe metacharacter
40
+ * (& | < > ^ %) escaping.
41
+ */
42
+ export declare function quoteWin32CmdArg(arg: string): string;
43
+ export interface Win32ExecFileSpawn {
44
+ file: string;
45
+ args: string[];
46
+ /** Set when the args are pre-quoted for cmd.exe and must not be re-quoted. */
47
+ windowsVerbatimArguments?: boolean;
48
+ }
49
+ /**
50
+ * Build child_process.execFile/spawn parameters for an already-resolved command.
51
+ *
52
+ * On win32 a `.cmd`/`.bat` shim (what `npm`/`npx`/`tsc`/`vitest` resolve to)
53
+ * cannot be launched by execFile directly — modern Node refuses it (CVE-2024-27980
54
+ * mitigation) and CreateProcess cannot exec a batch file. So wrap it in
55
+ * `cmd.exe /d /s /c "<quoted command line>"` with `windowsVerbatimArguments` so
56
+ * our own per-argument quoting is preserved. `.exe`/`.com` (and every non-win32
57
+ * platform, and any already-cmd.exe target) pass through unchanged — this is a
58
+ * strict no-op off win32, guarding against regressions on linux/macOS.
59
+ */
60
+ export declare function buildWin32ExecFileSpawn(resolvedCommand: string, args: string[]): Win32ExecFileSpawn;
61
+ /**
62
+ * Convenience: resolve a bare command to an absolute win32 path AND build the
63
+ * execFile spawn parameters (cmd.exe-wrapping a .cmd/.bat shim). Returns the
64
+ * resolved command alongside the spawn spec so callers can still surface the
65
+ * resolved path in diagnostics.
66
+ */
67
+ export declare function resolveWin32ExecFileSpawn(command: string, args: string[]): Win32ExecFileSpawn & {
68
+ resolvedCommand: string;
69
+ };
@@ -1,13 +1,16 @@
1
- import type { TerminalViewportBackend, TerminalViewportBackendOptions, TerminalViewportBackendPreference } from './types.js';
2
- export declare function resolveTerminalBackendPreference(): TerminalViewportBackendPreference;
3
- export declare function isGhosttyVtBackendAvailable(): boolean;
1
+ import type { TerminalViewportBackend, TerminalViewportBackendOptions } from './types.js';
4
2
  export declare class GhosttyVtTerminalBackend implements TerminalViewportBackend {
5
3
  readonly kind: "ghostty-vt";
6
4
  private terminal;
5
+ private rows;
6
+ private disposed;
7
7
  constructor(options: TerminalViewportBackendOptions);
8
8
  resize(rows: number, cols: number): void;
9
9
  write(data: string): void;
10
+ private formatLines;
11
+ private static trimBlankEnds;
10
12
  getText(): string;
13
+ getTextWithScrollback(): string;
11
14
  getCursorPosition(): {
12
15
  col: number;
13
16
  row: number;
@@ -1,5 +1,4 @@
1
- export type TerminalViewportBackendKind = 'xterm' | 'ghostty-vt';
2
- export type TerminalViewportBackendPreference = TerminalViewportBackendKind | 'auto';
1
+ export type TerminalViewportBackendKind = 'ghostty-vt';
3
2
  export type TerminalViewportBackendOptions = {
4
3
  rows: number;
5
4
  cols: number;
@@ -10,6 +9,15 @@ export interface TerminalViewportBackend {
10
9
  resize(rows: number, cols: number): void;
11
10
  write(data: string): void;
12
11
  getText(): string;
12
+ /**
13
+ * Like getText() but includes scrollback history (the lines that have
14
+ * scrolled above the visible viewport). Used by content-pattern matching
15
+ * (e.g. approval/modal button extraction) that must stay correct when a
16
+ * tall prompt — a big diff or long explanation — pushes part of the
17
+ * prompt box above the viewport. NOT for cursor-relative / stable_ms
18
+ * conditions, whose row indices are viewport-relative.
19
+ */
20
+ getTextWithScrollback(): string;
13
21
  getCursorPosition(): {
14
22
  col: number;
15
23
  row: number;
@@ -1,29 +1,22 @@
1
1
  /**
2
- * PTY screen snapshot abstraction.
3
- *
4
- * Terminal viewport backend selection.
5
- *
6
- * Runtime preference is backend-agnostic:
7
- * - prefer ghostty-vt when available (or when explicitly requested)
8
- * - fall back to xterm when ghostty-vt is unavailable
2
+ * PTY screen snapshot abstraction — ghostty-vt backend.
9
3
  */
10
- import type { TerminalViewportBackendKind, TerminalViewportBackendPreference } from './terminal-backends/types.js';
4
+ import type { TerminalViewportBackendKind } from './terminal-backends/types.js';
11
5
  export declare function getTerminalBackendRuntimeStatus(): {
12
6
  backend: TerminalViewportBackendKind;
13
- preference: TerminalViewportBackendPreference;
14
- ghosttyAvailable: boolean;
15
7
  };
16
8
  export declare class TerminalScreen {
17
9
  readonly backendKind: TerminalViewportBackendKind;
18
10
  private rows;
19
11
  private cols;
20
- private readonly preference;
21
12
  private terminal;
22
13
  constructor(rows?: number, cols?: number);
23
14
  reset(rows?: number, cols?: number): void;
24
15
  resize(rows: number, cols: number): void;
25
16
  write(data: string): void;
26
17
  getText(): string;
18
+ /** Full buffer including scrollback history (see backend doc). */
19
+ getTextWithScrollback(): string;
27
20
  getCursorPosition(): {
28
21
  col: number;
29
22
  row: number;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Chat Commands — get_chat_debug_bundle: sanitize, summarize and store a
3
+ * diagnostic snapshot of the current read_chat / provider / session state.
4
+ */
5
+ import type { CommandResult, CommandHelpers } from './handler.js';
6
+ interface DebugSanitizeOptions {
7
+ maxDepth?: number;
8
+ maxArrayLength?: number;
9
+ maxObjectKeys?: number;
10
+ maxStringLength?: number;
11
+ }
12
+ export declare function sanitizeDebugBundleValue(value: unknown, options?: DebugSanitizeOptions, depth?: number, keyHint?: string): unknown;
13
+ export declare function handleGetChatDebugBundle(h: CommandHelpers, args: any): Promise<CommandResult>;
14
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Chat Commands — read side: handleReadChat, handleChatHistory and the
3
+ * native-history / source-resolution / normalization helpers they use.
4
+ */
5
+ import type { CommandResult, CommandHelpers } from './handler.js';
6
+ /**
7
+ * Test-only: clear the in-memory read-pin map and re-arm cold-start hydration so
8
+ * each test starts from a clean pin state. The on-disk mirror is isolated per
9
+ * test process via ADHDEV_CONFIG_DIR (test/helpers/setup-env.ts); this resets the
10
+ * module-level cache that would otherwise leak a pin across tests sharing the
11
+ * worker. Not part of the runtime contract.
12
+ */
13
+ export declare function __resetProviderSessionPinsForTest(): void;
14
+ /**
15
+ * Test-only: read the in-memory read-pin (the mesh-session → conversation-uuid
16
+ * bind recorded by recordBoundProviderSessionId and mirrored to state.json
17
+ * sessionProviderSessionPins). Lets the antigravity-coordinator-pin tests assert
18
+ * that an owner-confirmed workspace-latest read recorded the pin — and that a
19
+ * non-owner-confirmed read did NOT. Not part of the runtime contract.
20
+ */
21
+ export declare function __getProviderSessionPinForTest(meshSessionId: string): string | undefined;
22
+ export declare function handleChatHistory(h: CommandHelpers, args: any): Promise<CommandResult>;
23
+ export declare function handleReadChat(h: CommandHelpers, args: any): Promise<CommandResult>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Chat Commands — read_chat node workspace scope guard.
3
+ */
4
+ import type { CommandHelpers } from './handler.js';
5
+ /**
6
+ * read_chat node scope verdict. One physical daemon hosts a base node plus several
7
+ * worktree nodes; mesh_read_chat always dispatches read_chat with the requested
8
+ * node's workspace (`args.workspace`). When the resolved target session actually
9
+ * lives in a DIFFERENT worktree, returning its transcript — or worse, letting the
10
+ * native-history-by-workspace fallback splice sibling worktree turns into the
11
+ * reply — makes the coordinator believe one session received every worktree's
12
+ * work. This guard refuses a CONFIRMED cross-workspace read instead of mixing.
13
+ *
14
+ * Conservative by design (mirrors the WTCLAIM fix-B "unknown → allow" rule): only
15
+ * a session id that resolves to a known workspace which is unequal to a known
16
+ * intended workspace blocks. When either side is unknown — no targetSessionId, no
17
+ * args.workspace, an unregistered session, the coordinator self-session, or a
18
+ * plain dashboard read that never passes a node workspace — the read proceeds
19
+ * untouched, so base-node and same-daemon coordinator reads never regress.
20
+ */
21
+ export declare function evaluateReadChatNodeWorkspaceScope(args: {
22
+ targetSessionId?: string;
23
+ intendedWorkspace?: string;
24
+ sessionWorkspace?: string;
25
+ }): {
26
+ scoped: false;
27
+ } | {
28
+ scoped: true;
29
+ intended: string;
30
+ actual: string;
31
+ };
32
+ /**
33
+ * Resolve the target session's ACTUAL workspace from the most authoritative source
34
+ * available on this daemon: the session registry record (stamped at register
35
+ * time), then the live CLI adapter's working directory, then the bound instance
36
+ * state. Returns '' when nothing knows the session's workspace — the caller treats
37
+ * that as "unknown" and does not block.
38
+ */
39
+ export declare function resolveTargetSessionActualWorkspace(h: CommandHelpers, targetSessionId: string): string;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Chat Commands — shared private helpers used by more than one handler group.
3
+ *
4
+ * These were module-local helpers/consts/interfaces in chat-commands.ts. They
5
+ * are exported here only so the split read/write/debug/scope sub-modules can
6
+ * import them; they are NOT part of the public chat-commands surface (except
7
+ * READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS and buildSendInputSignature, which the
8
+ * chat-commands barrel re-exports).
9
+ */
10
+ import type { CommandHelpers } from './handler.js';
11
+ import type { CliAdapter } from '../cli-adapter-types.js';
12
+ import { type InputEnvelope, type ProviderModule } from '../providers/contracts.js';
13
+ import type { ProviderInstance } from '../providers/provider-instance.js';
14
+ import type { ChatMessage } from '../types.js';
15
+ import type { SessionTransport } from '../shared-types.js';
16
+ export declare const READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS = 25000;
17
+ export interface ApprovalSelectableInstance extends ProviderInstance {
18
+ recordApprovalSelection?(buttonText: string): void;
19
+ }
20
+ export interface RuntimeChatMessageMerger extends ProviderInstance {
21
+ mergeRuntimeChatMessages?(messages: ChatMessage[]): ChatMessage[];
22
+ recordAcknowledgedUserInput?(input: InputEnvelope | string): void;
23
+ }
24
+ export declare function getCurrentProviderType(h: CommandHelpers, fallback?: string): string;
25
+ export declare function getCurrentManagerKey(h: CommandHelpers): string;
26
+ export declare function getTargetedCliAdapter(h: CommandHelpers, args: any, providerType?: string): CliAdapter | null;
27
+ export declare function getTargetInstance(h: CommandHelpers, args: any): ApprovalSelectableInstance | null;
28
+ export declare function getTargetTransport(h: CommandHelpers, provider?: ProviderModule): SessionTransport | null;
29
+ export declare function isCliLikeTransport(transport: SessionTransport | null): boolean;
30
+ export declare function isExtensionTransport(transport: SessionTransport | null): boolean;
31
+ export declare function buildSendInputSignature(input: InputEnvelope): string;
32
+ export declare function parseMaybeJson(value: any): any;
33
+ export declare function getChatMessageSignature(message: ChatMessage | null | undefined): string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Chat Commands — write side: handleSendChat, handleListChats, handleNewChat,
3
+ * handleSwitchChat, handleSetMode, handleChangeModel, handleSetThoughtLevel,
4
+ * handleResolveAction and the send/mode/model helpers they use.
5
+ */
6
+ import type { CommandResult, CommandHelpers } from './handler.js';
7
+ export declare function handleSendChat(h: CommandHelpers, args: any): Promise<CommandResult>;
8
+ export declare function handleListChats(h: CommandHelpers, args: any): Promise<CommandResult>;
9
+ export declare function handleNewChat(h: CommandHelpers, args: any): Promise<CommandResult>;
10
+ export declare function handleSwitchChat(h: CommandHelpers, args: any): Promise<CommandResult>;
11
+ export declare function handleSetMode(h: CommandHelpers, args: any): Promise<CommandResult>;
12
+ export declare function handleChangeModel(h: CommandHelpers, args: any): Promise<CommandResult>;
13
+ export declare function handleSetThoughtLevel(h: CommandHelpers, args: any): Promise<CommandResult>;
14
+ export declare function handleResolveAction(h: CommandHelpers, args: any): Promise<CommandResult>;
@@ -1,27 +1,14 @@
1
1
  /**
2
2
  * Chat Commands — readChat, sendChat, listChats, newChat, switchChat,
3
3
  * setMode, changeModel, setThoughtLevel, resolveAction, chatHistory
4
+ *
5
+ * This module is a re-export barrel. The implementation was split into focused
6
+ * sub-modules (chat-commands-shared / -scope / -debug-bundle / -read / -write)
7
+ * as a pure move; the public export surface here is unchanged. handler.ts does
8
+ * `import * as Chat from './chat-commands.js'` and keeps working unchanged.
4
9
  */
5
- import type { CommandResult, CommandHelpers } from './handler.js';
6
- import { type InputEnvelope } from '../providers/contracts.js';
7
- export declare const READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS = 25000;
8
- export declare function buildSendInputSignature(input: InputEnvelope): string;
9
- interface DebugSanitizeOptions {
10
- maxDepth?: number;
11
- maxArrayLength?: number;
12
- maxObjectKeys?: number;
13
- maxStringLength?: number;
14
- }
15
- export declare function sanitizeDebugBundleValue(value: unknown, options?: DebugSanitizeOptions, depth?: number, keyHint?: string): unknown;
16
- export declare function handleGetChatDebugBundle(h: CommandHelpers, args: any): Promise<CommandResult>;
17
- export declare function handleChatHistory(h: CommandHelpers, args: any): Promise<CommandResult>;
18
- export declare function handleReadChat(h: CommandHelpers, args: any): Promise<CommandResult>;
19
- export declare function handleSendChat(h: CommandHelpers, args: any): Promise<CommandResult>;
20
- export declare function handleListChats(h: CommandHelpers, args: any): Promise<CommandResult>;
21
- export declare function handleNewChat(h: CommandHelpers, args: any): Promise<CommandResult>;
22
- export declare function handleSwitchChat(h: CommandHelpers, args: any): Promise<CommandResult>;
23
- export declare function handleSetMode(h: CommandHelpers, args: any): Promise<CommandResult>;
24
- export declare function handleChangeModel(h: CommandHelpers, args: any): Promise<CommandResult>;
25
- export declare function handleSetThoughtLevel(h: CommandHelpers, args: any): Promise<CommandResult>;
26
- export declare function handleResolveAction(h: CommandHelpers, args: any): Promise<CommandResult>;
27
- export {};
10
+ export { READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS, buildSendInputSignature } from './chat-commands-shared.js';
11
+ export { evaluateReadChatNodeWorkspaceScope } from './chat-commands-scope.js';
12
+ export { sanitizeDebugBundleValue, handleGetChatDebugBundle } from './chat-commands-debug-bundle.js';
13
+ export { handleChatHistory, handleReadChat, __resetProviderSessionPinsForTest, __getProviderSessionPinForTest } from './chat-commands-read.js';
14
+ export { handleSendChat, handleListChats, handleNewChat, handleSwitchChat, handleSetMode, handleChangeModel, handleSetThoughtLevel, handleResolveAction, } from './chat-commands-write.js';
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { ProviderInstanceManager } from '../providers/provider-instance-manager.js';
8
8
  import { ProviderLoader } from '../providers/provider-loader.js';
9
- import { type ProviderModule, type ProviderResumeCapability } from '../providers/contracts.js';
9
+ import { type MeshCoordinatorDelegatedWorkerIsolation, type ProviderModule, type ProviderResumeCapability } from '../providers/contracts.js';
10
10
  import type { CliAdapter } from '../cli-adapter-types.js';
11
11
  import type { PtyTransportFactory } from '../cli-adapters/pty-transport.js';
12
12
  import type { SessionRegistry } from '../sessions/registry.js';
@@ -38,6 +38,16 @@ export interface CliTransportFactoryParams {
38
38
  cliArgs?: string[];
39
39
  providerSessionId?: string;
40
40
  attachExisting?: boolean;
41
+ /**
42
+ * Launch-time record meta (meshNodeId / meshNodeFor / launchedByCoordinator /
43
+ * autoLaunchedForQueueTaskId). Defense-in-depth for SESSION-ACCUMULATION-LEAK:
44
+ * a session-host factory impl SHOULD seed the create_session record with this
45
+ * so the node binding is present the instant the record exists, rather than
46
+ * relying solely on the post-spawn updateRuntimeMeta round-trip. Optional and
47
+ * additive — factory impls that ignore it keep the prior behavior; the
48
+ * post-spawn WTDISPATCH stamp in register() still runs as the primary path.
49
+ */
50
+ initialMeta?: Record<string, unknown>;
41
51
  }
42
52
  export interface HostedCliRuntimeDescriptor {
43
53
  runtimeId: string;
@@ -51,6 +61,14 @@ export interface HostedCliRuntimeDescriptor {
51
61
  cliArgs?: string[];
52
62
  providerSessionId?: string;
53
63
  managedBy?: string;
64
+ /**
65
+ * Real spawn time (ms epoch) of the underlying session-host runtime — a PAST
66
+ * timestamp recorded when the runtime first started. Threaded through so an
67
+ * attach can restore the native-history session-floor to the runtime's actual
68
+ * birth instead of collapsing spawnedAtMs to 0. Undefined when unrecoverable
69
+ * (genuine post-restart-unknown), in which case the caller keeps the 0 fallback.
70
+ */
71
+ startedAtMs?: number;
54
72
  }
55
73
  type CliLaunchMode = 'new' | 'resume' | 'manual';
56
74
  type CliSessionBinding = {
@@ -62,18 +80,57 @@ type CliStartOptions = {
62
80
  resumeSessionId?: string;
63
81
  settingsOverride?: Record<string, any>;
64
82
  extraEnv?: Record<string, string>;
83
+ /** BRAIN-ROUTING thinking axis: standard level ('low'|'medium'|'high') applied
84
+ * at launch via the provider's thinkingLaunchArgs (CLI) or setConfigOption
85
+ * ('thought_level', ACP). Best-effort — ignored by providers with no support. */
86
+ initialThinkingLevel?: string;
65
87
  };
66
88
  export interface CoordinatorDelegatedCliLaunchOptionsInput {
67
89
  cliType: string;
68
90
  workspace: string;
69
91
  cliArgs?: string[];
70
92
  env?: Record<string, string>;
93
+ isolation?: MeshCoordinatorDelegatedWorkerIsolation;
71
94
  }
72
95
  export interface CoordinatorDelegatedCliLaunchOptions {
73
96
  cliArgs: string[];
74
97
  env: Record<string, string>;
75
98
  }
99
+ /**
100
+ * Decide the session-registry spawnedAtMs (the native-history session-floor) for a
101
+ * newly registered CLI instance.
102
+ *
103
+ * - Fresh launch (attachExisting=false): now (nowMs). A real live spawn floor
104
+ * isolates a fresh session's own store and holds prior-session leak protection.
105
+ * - Attach WITH a recoverable record startedAt (a PAST timestamp): that startedAt.
106
+ * Restoring a hosted runtime (coordinator / MAGI replica / hermes / claude /
107
+ * codex) after a daemon restart, the real spawn time is in the past. Using it
108
+ * restores each session's per-session birth-floor so co-located antigravity
109
+ * runtimes resolve their OWN conversation (ownerConfirmed) instead of the
110
+ * floor-less newest-by-mtime path that let a replica claim the coordinator's conv.
111
+ * - Attach with NO recoverable startedAt: 0 — disables the floor for this session
112
+ * (recent_window_ms still bounds the look-back). NEVER use nowMs here: nowMs is in
113
+ * the FUTURE relative to existing transcripts and would push the floor past every
114
+ * transcript file, losing them (the ANTIGRAVITY-FINAL-MESSAGE-TAIL-GAP regression).
115
+ */
116
+ export declare function resolveHostedSpawnedAtMs(attachExisting: boolean, attachStartedAtMs: number | undefined, nowMs: number): number;
76
117
  export declare function buildCoordinatorDelegatedCliLaunchOptions(input: CoordinatorDelegatedCliLaunchOptionsInput): CoordinatorDelegatedCliLaunchOptions;
118
+ /**
119
+ * Expand a provider's `modelLaunchArgs` template with the requested model, mirroring
120
+ * expandResumeArgs. `{{model}}` → the trimmed model string. Returns undefined when
121
+ * there is no template or no model (a model request without a template is a no-op —
122
+ * see startSession, where the caller logs the skip). MAGI kind-panel model axis.
123
+ */
124
+ export declare function expandModelLaunchArgs(template: string[] | undefined, model: string | undefined): string[] | undefined;
125
+ /**
126
+ * Expand a provider's `thinkingLaunchArgs` template with the requested thinking
127
+ * level, parallel to expandModelLaunchArgs. The standard level ('low'|'medium'|
128
+ * 'high') is first mapped through the provider's `thinkingLevelMap` (a level absent
129
+ * from the map passes through unchanged), then substituted into every `{{level}}`
130
+ * token. Returns undefined when there is no template or no level (best-effort; a
131
+ * thinking request without a template is a no-op). BRAIN-ROUTING thinking axis.
132
+ */
133
+ export declare function expandThinkingLaunchArgs(template: string[] | undefined, level: string | undefined, levelMap: Partial<Record<string, string>> | undefined): string[] | undefined;
77
134
  export declare function supportsExplicitSessionResume(resume?: ProviderResumeCapability): boolean;
78
135
  export declare function resolveCliSessionBinding(provider: ProviderModule | undefined, normalizedType: string, cliArgs?: string[], requestedResumeSessionId?: string): CliSessionBinding;
79
136
  export declare class DaemonCliManager {
@@ -112,6 +169,19 @@ export declare class DaemonCliManager {
112
169
  key: string;
113
170
  } | null;
114
171
  private findAdapterBySessionId;
172
+ /**
173
+ * WTCLAIM (B): resolve the adapter for a mesh dispatch that named a node
174
+ * (meshContext.nodeId) but carried no explicit session. Matches by the
175
+ * instance's bound mesh node id (settings.meshNodeId, falling back to the
176
+ * sticky meshLastNodeId) first, then by the node workspace (workingDir).
177
+ *
178
+ * Unlike findAdapter's step-2 fuzzy fallback, this NEVER degrades to a
179
+ * provider-only first-match: on a daemon hosting BOTH a base node and a
180
+ * cloned worktree node (same daemonId), that fuzzy match could land a
181
+ * worktree-targeted task on the base session. Returns null when no session
182
+ * is bound to this node so the caller fails closed.
183
+ */
184
+ private findMeshNodeAdapter;
115
185
  handleCliCommand(cmd: string, args: any): Promise<CommandResult | null>;
116
186
  }
117
187
  export {};