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

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
@@ -0,0 +1,291 @@
1
+ import type { DaemonComponents } from '../boot/daemon-lifecycle.js';
2
+ import { getActiveDirectDispatches } from './mesh-work-queue.js';
3
+ import { hasUnterminalDirectDispatchLedgerEntry } from './mesh-events-stale.js';
4
+ import { appendLedgerEntry, readLedgerEntries } from './mesh-ledger.js';
5
+ import { LOG } from '../logging/logger.js';
6
+ import { readNonEmptyString } from './mesh-events-utils.js';
7
+ import { meshNodeIdMatches } from '@adhdev/mesh-shared';
8
+
9
+ // ---------------------------------------------------------------------------
10
+ // R1: single-source coordinator routing resolution
11
+ //
12
+ // Worker→node→mesh→coordinator routing used to be reconstructed inline inside
13
+ // setupMeshEventForwarding by reading six settings "stamp" fields
14
+ // (meshNodeFor / meshNodeId / meshCoordinatorFor / meshCoordinatorDaemonId /
15
+ // meshCoordinatorNodeId / launchedByCoordinator) plus two ledger queries plus a
16
+ // workspace fallback, scattered across ~50 lines. Any missing stamp silently
17
+ // changed the routing decision (delegate dropped, mesh unresolved) — design
18
+ // vulnerability #2.
19
+ //
20
+ // resolveWorkerDelegateRouting() is the ONE place that interprets those inputs.
21
+ // The stamps are inputs *internal to this function*; no external branch reads
22
+ // them to make a routing decision. The forwarder consumes the typed result only.
23
+ // ---------------------------------------------------------------------------
24
+
25
+ export type WorkerDelegateRejectionReason =
26
+ | 'not_cli'
27
+ | 'no_workspace'
28
+ | 'no_worker_envelope'
29
+ | 'coordinator_not_dispatch_target'
30
+ | 'mesh_unresolved';
31
+
32
+ export interface WorkerDelegateRouting {
33
+ /** True when the source session is a mesh worker whose events must route to a coordinator. */
34
+ isDelegate: boolean;
35
+ /** Resolved mesh id (runtime stamp, direct-dispatch recovery, or workspace lookup). */
36
+ meshId: string;
37
+ /** Resolved node id within the mesh, or '' when it cannot be determined. */
38
+ nodeId: string;
39
+ /** Human-readable node label for the coordinator system message. */
40
+ nodeLabel: string;
41
+ /** Coordinator daemon anchor (prefixed id) when the worker carries one; '' otherwise. */
42
+ coordinatorDaemonId: string;
43
+ /** Source session workspace (best-effort; '' when the session/workspace is missing). */
44
+ workspace: string;
45
+ /** Source session id echoed back, so diagnostics can name the dropped event's origin. */
46
+ sessionId: string;
47
+ /** Why routing was rejected (isDelegate=false), for fail-loud diagnostics (R4). */
48
+ rejectionReason?: WorkerDelegateRejectionReason;
49
+ }
50
+
51
+ interface ResolveDeps {
52
+ /** Resolve a mesh by id (local config + inline cache). */
53
+ getMeshById: (meshId: string) => any | undefined;
54
+ /** Resolve a mesh by workspace path (cached repo lookup). */
55
+ getMeshByWorkspace: (workspace: string) => any | undefined;
56
+ }
57
+
58
+ function readSettings(state: any): Record<string, unknown> {
59
+ return state?.settings && typeof state.settings === 'object'
60
+ ? state.settings as Record<string, unknown>
61
+ : {};
62
+ }
63
+
64
+ /**
65
+ * Resolve how a source CLI session's mesh events should route to a coordinator.
66
+ *
67
+ * This is the single authoritative interpretation of the worker envelope. It folds
68
+ * together every signal that previously lived in inline branches:
69
+ * - runtime stamps (meshNodeFor / meshNodeId)
70
+ * - the coordinator anchor (meshCoordinatorDaemonId) and launch marker (launchedByCoordinator,
71
+ * meshCoordinatorNodeId) — any one proves delegation even if the node/mesh stamp was dropped
72
+ * - direct-dispatch recovery: a coordinator session that is itself a dispatch target
73
+ * - workspace→mesh fallback when no runtime mesh id survived
74
+ *
75
+ * Returns isDelegate=false (with a rejectionReason) instead of throwing, so the caller
76
+ * can either ignore non-delegate events or surface a diagnostic.
77
+ */
78
+ export function resolveWorkerDelegateRouting(
79
+ components: DaemonComponents,
80
+ instanceId: string,
81
+ deps: ResolveDeps,
82
+ ): WorkerDelegateRouting {
83
+ const sessionId = readNonEmptyString(instanceId);
84
+ let workspace = '';
85
+ let coordinatorDaemonId = '';
86
+ // Runtime node-id stamp, surfaced even on rejection so the unresolved-mesh fallback
87
+ // forward can name the worker node for the coordinator.
88
+ let runtimeNodeId = '';
89
+ const reject = (rejectionReason: WorkerDelegateRejectionReason): WorkerDelegateRouting => ({
90
+ isDelegate: false,
91
+ meshId: '',
92
+ nodeId: runtimeNodeId,
93
+ nodeLabel: '',
94
+ coordinatorDaemonId,
95
+ workspace,
96
+ sessionId,
97
+ rejectionReason,
98
+ });
99
+
100
+ const sourceInstance = components.instanceManager.getInstance(instanceId);
101
+ if (!sourceInstance || sourceInstance.category !== 'cli') return reject('not_cli');
102
+
103
+ const state = sourceInstance.getState();
104
+ workspace = readNonEmptyString(state.workspace);
105
+ if (!workspace) return reject('no_workspace');
106
+
107
+ const settings = readSettings(state);
108
+ coordinatorDaemonId = readNonEmptyString(settings.meshCoordinatorDaemonId);
109
+ runtimeNodeId = readNonEmptyString(settings.meshNodeId);
110
+
111
+ // A coordinator session (meshCoordinatorFor set) is only treated as a worker delegate
112
+ // when it is itself the target of an active direct dispatch — otherwise its own events
113
+ // must not be routed back to a coordinator (it IS the coordinator).
114
+ const coordinatorMeshId = readNonEmptyString(settings.meshCoordinatorFor);
115
+ let meshIdFromDirectDispatch = '';
116
+ if (coordinatorMeshId) {
117
+ let hasActiveDispatch = false;
118
+ try {
119
+ hasActiveDispatch =
120
+ getActiveDirectDispatches(coordinatorMeshId).some(d => d.sessionId === instanceId)
121
+ || hasUnterminalDirectDispatchLedgerEntry(coordinatorMeshId, instanceId);
122
+ } catch { /* best-effort */ }
123
+ if (!hasActiveDispatch) return reject('coordinator_not_dispatch_target');
124
+ meshIdFromDirectDispatch = coordinatorMeshId;
125
+ }
126
+
127
+ const meshIdFromRuntime = readNonEmptyString(settings.meshNodeFor) || meshIdFromDirectDispatch;
128
+
129
+ // Worker-envelope proof of delegation. A worker can arrive carrying only the routing
130
+ // anchor (meshCoordinatorDaemonId) without meshNodeFor — e.g. when the node/mesh stamp
131
+ // was dropped on a direct dispatch or relaunch. Treat any envelope marker as proof and
132
+ // recover the mesh id by workspace when the runtime id is absent.
133
+ const hasWorkerEnvelope = Boolean(
134
+ meshIdFromRuntime
135
+ || settings.launchedByCoordinator
136
+ || coordinatorDaemonId
137
+ || readNonEmptyString(settings.meshCoordinatorNodeId),
138
+ );
139
+ if (!hasWorkerEnvelope) return reject('no_worker_envelope');
140
+
141
+ const mesh = meshIdFromRuntime ? deps.getMeshById(meshIdFromRuntime) : deps.getMeshByWorkspace(workspace);
142
+ const meshId = meshIdFromRuntime || readNonEmptyString(mesh?.id);
143
+ if (!meshId) return reject('mesh_unresolved');
144
+
145
+ // Node resolution authority: the runtime stamp (meshNodeId) is the worker's
146
+ // own identity, set when the coordinator dispatched/launched it. Trust it FIRST,
147
+ // matched against mesh.nodes with the 3-form normalizer (id / nodeId / node_id).
148
+ // Workspace lookup is only a fallback for workers that never carried a node stamp.
149
+ //
150
+ // This is the P1 fix: a worktree clone and its base node can share the same
151
+ // `workspace`, or a freshly-cloned node may not yet be in mesh.nodes — in either
152
+ // case `.find(n => n.workspace === workspace)` would match the BASE node (or
153
+ // undefined) and stamp the completion event with the wrong/absent nodeId, so the
154
+ // event fails post-hoc node matching and the coordinator never sees the completion.
155
+ // The stamped meshNodeId splits base vs worktree correctly even on shared workspace.
156
+ const stampedNode = runtimeNodeId
157
+ ? mesh?.nodes?.find((n: any) => meshNodeIdMatches(n, runtimeNodeId))
158
+ : undefined;
159
+ const targetNode = stampedNode || mesh?.nodes?.find((n: any) => n.workspace === workspace);
160
+ const nodeId = runtimeNodeId || readNonEmptyString(targetNode?.id);
161
+ // Label off the resolved nodeId (which now prefers the stamp) so a node matched
162
+ // by its `nodeId`/`node_id` form — where `targetNode.id` may be absent — never
163
+ // renders as `Node 'undefined'`.
164
+ const nodeLabel = nodeId
165
+ ? `Node '${nodeId}'`
166
+ : `Agent at ${workspace}`;
167
+
168
+ return {
169
+ isDelegate: true,
170
+ meshId,
171
+ nodeId,
172
+ nodeLabel,
173
+ coordinatorDaemonId,
174
+ workspace,
175
+ sessionId,
176
+ };
177
+ }
178
+
179
+ // ---------------------------------------------------------------------------
180
+ // R4: fail-loud routing diagnostics
181
+ //
182
+ // A rejection is only worth surfacing when the session DID present a worker
183
+ // envelope but routing still couldn't complete (`mesh_unresolved`). Before R4
184
+ // that event was dropped silently — setupMeshEventForwarding returned, the
185
+ // completion never reached a coordinator and never landed in the pending queue,
186
+ // and there was no trace of why. The benign rejections (not_cli / no_workspace /
187
+ // no_worker_envelope / coordinator_not_dispatch_target) are ordinary non-delegate
188
+ // traffic and must NOT spam the ledger.
189
+ //
190
+ // The diagnostic is keyed under a single shared stream id so all unroutable drops
191
+ // across meshes are discoverable in one place (the dropped event has no resolvable
192
+ // mesh by definition). A short per-(session+event) dedup window keeps a chatty
193
+ // session from flooding the ledger.
194
+ // ---------------------------------------------------------------------------
195
+
196
+ /** Ledger stream that collects delivery_unroutable diagnostics (no real mesh id exists for them). */
197
+ export const UNROUTABLE_DIAGNOSTIC_STREAM = '__unroutable__';
198
+
199
+ const UNROUTABLE_DIAGNOSTIC_DEDUP_MS = 60 * 1000;
200
+ const recentUnroutableDiagnostics = new Map<string, number>();
201
+
202
+ export function __resetUnroutableDiagnosticsForTests(): void {
203
+ recentUnroutableDiagnostics.clear();
204
+ }
205
+
206
+ /** True only for rejections that represent a silently-dropped delegate event worth a diagnostic. */
207
+ export function isUnroutableDelegateRejection(routing: WorkerDelegateRouting): boolean {
208
+ return !routing.isDelegate && routing.rejectionReason === 'mesh_unresolved';
209
+ }
210
+
211
+ /**
212
+ * R4: record that a worker event with a valid envelope could not be routed to a coordinator.
213
+ * Writes a `delivery_unroutable` ledger entry (deduped within a short window) so operators see
214
+ * WHY a completion never arrived instead of it vanishing. No-op for non-diagnostic rejections.
215
+ */
216
+ export function recordUnroutableDelegateEvent(routing: WorkerDelegateRouting, eventName: string): boolean {
217
+ if (!isUnroutableDelegateRejection(routing)) return false;
218
+
219
+ const dedupKey = `${routing.sessionId}::${eventName}::${routing.workspace}`;
220
+ const now = Date.now();
221
+ const last = recentUnroutableDiagnostics.get(dedupKey);
222
+ if (last !== undefined && now - last < UNROUTABLE_DIAGNOSTIC_DEDUP_MS) return false;
223
+ recentUnroutableDiagnostics.set(dedupKey, now);
224
+ // Opportunistic sweep so the map can't grow unbounded.
225
+ if (recentUnroutableDiagnostics.size > 256) {
226
+ for (const [key, ts] of recentUnroutableDiagnostics) {
227
+ if (now - ts >= UNROUTABLE_DIAGNOSTIC_DEDUP_MS) recentUnroutableDiagnostics.delete(key);
228
+ }
229
+ }
230
+
231
+ try {
232
+ appendLedgerEntry(UNROUTABLE_DIAGNOSTIC_STREAM, {
233
+ kind: 'delivery_unroutable',
234
+ sessionId: routing.sessionId || undefined,
235
+ payload: {
236
+ event: eventName,
237
+ reason: routing.rejectionReason,
238
+ workspace: routing.workspace || undefined,
239
+ coordinatorDaemonId: routing.coordinatorDaemonId || undefined,
240
+ detail: 'Worker envelope was present but no mesh could be resolved; the event could not be routed to a coordinator.',
241
+ },
242
+ });
243
+ LOG.warn('MeshEvents', `delivery_unroutable: ${eventName} from session ${routing.sessionId || '(unknown)'} at ${routing.workspace || '(no workspace)'} — envelope present but mesh unresolved`);
244
+ return true;
245
+ } catch (e: any) {
246
+ LOG.warn('MeshEvents', `Failed to record delivery_unroutable diagnostic: ${e?.message || e}`);
247
+ return false;
248
+ }
249
+ }
250
+
251
+ export interface UnroutableDeliveryDiagnostic {
252
+ timestamp: string;
253
+ event: string;
254
+ sessionId?: string;
255
+ workspace?: string;
256
+ coordinatorDaemonId?: string;
257
+ }
258
+
259
+ /**
260
+ * R4 visibility: recent delivery_unroutable diagnostics, newest first. Surfaced in mesh_status
261
+ * so an operator/coordinator can see that completions were dropped (envelope present, mesh
262
+ * unresolved) rather than the drops being invisible in a ledger nobody reads. The diagnostics
263
+ * live in a single shared stream because an unroutable event has no resolvable mesh.
264
+ */
265
+ export function getRecentUnroutableDeliveries(opts?: { sinceMs?: number; limit?: number }): UnroutableDeliveryDiagnostic[] {
266
+ const sinceMs = opts?.sinceMs ?? 60 * 60 * 1000; // last hour by default
267
+ const limit = opts?.limit ?? 20;
268
+ let entries: ReturnType<typeof readLedgerEntries>;
269
+ try {
270
+ entries = readLedgerEntries(UNROUTABLE_DIAGNOSTIC_STREAM, { kind: ['delivery_unroutable'], tail: 200 });
271
+ } catch {
272
+ return [];
273
+ }
274
+ const cutoff = Date.now() - sinceMs;
275
+ const out: UnroutableDeliveryDiagnostic[] = [];
276
+ for (let i = entries.length - 1; i >= 0; i--) {
277
+ const entry = entries[i];
278
+ const ts = new Date(entry.timestamp).getTime();
279
+ if (!Number.isNaN(ts) && ts < cutoff) continue;
280
+ const payload = entry.payload && typeof entry.payload === 'object' ? entry.payload as Record<string, unknown> : {};
281
+ out.push({
282
+ timestamp: entry.timestamp,
283
+ event: readNonEmptyString(payload.event),
284
+ sessionId: readNonEmptyString(entry.sessionId) || readNonEmptyString(payload.sessionId) || undefined,
285
+ workspace: readNonEmptyString(payload.workspace) || undefined,
286
+ coordinatorDaemonId: readNonEmptyString(payload.coordinatorDaemonId) || undefined,
287
+ });
288
+ if (out.length >= limit) break;
289
+ }
290
+ return out;
291
+ }