@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
@@ -0,0 +1,538 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "adhdev:cli/provider@1",
4
+ "title": "CLI provider.json — v1",
5
+ "description": "Schema for CLI provider manifests. Validates the contract documented in docs/provider-contract/cli/v1.md. All 4 production CLI providers (codex, claude, hermes, antigravity) pass this schema without modification.",
6
+ "type": "object",
7
+ "required": ["type", "name", "category", "binary", "spawn"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "description": "Schema URL. Hint for editor tooling; not consumed by the daemon."
13
+ },
14
+ "links": {
15
+ "type": "object",
16
+ "additionalProperties": { "type": "string" },
17
+ "description": "Documentation URLs. Surfaced in marketplace UI."
18
+ },
19
+ "install": {
20
+ "type": "object",
21
+ "additionalProperties": { "type": "string" },
22
+ "description": "Install instructions by channel (npm/pip/manual/brew). UI-only."
23
+ },
24
+ "source": {
25
+ "type": "object",
26
+ "description": "GitHub source descriptor. Daemon uses this to fetch script files on install.",
27
+ "additionalProperties": false,
28
+ "properties": {
29
+ "type": { "const": "github" },
30
+ "repo": { "type": "string", "pattern": "^[\\w.-]+/[\\w.-]+$" },
31
+ "ref": { "type": "string" },
32
+ "subdir": { "type": "string" }
33
+ },
34
+ "required": ["type", "repo", "ref"]
35
+ },
36
+ "type": {
37
+ "type": "string",
38
+ "pattern": "^[a-z][a-z0-9-]*$",
39
+ "description": "Stable identifier. Lowercase kebab-case."
40
+ },
41
+ "name": {
42
+ "type": "string",
43
+ "minLength": 1,
44
+ "description": "Short canonical name."
45
+ },
46
+ "displayName": {
47
+ "type": "string",
48
+ "description": "Optional UI label. Defaults to name."
49
+ },
50
+ "category": {
51
+ "const": "cli",
52
+ "description": "Must be \"cli\" for this schema."
53
+ },
54
+ "icon": {
55
+ "type": "string",
56
+ "maxLength": 4,
57
+ "description": "Single emoji or short glyph."
58
+ },
59
+ "aliases": {
60
+ "type": "array",
61
+ "items": { "type": "string" },
62
+ "description": "Alternative identifiers accepted at launch."
63
+ },
64
+ "engines": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "properties": {
68
+ "adhdev": {
69
+ "type": "string",
70
+ "description": "SemVer range against the ADHDev contract version. Required for marketplace-published providers."
71
+ }
72
+ },
73
+ "description": "Optional today; required by marketplace publish flow once registry is live."
74
+ },
75
+ "providerVersion": {
76
+ "type": "string",
77
+ "description": "Provider package SemVer."
78
+ },
79
+ "contractVersion": {
80
+ "type": ["number", "string"],
81
+ "description": "Legacy contract version. Reserved."
82
+ },
83
+ "status": {
84
+ "enum": ["Stable", "Beta", "Experimental", "Deprecated"]
85
+ },
86
+ "details": {
87
+ "type": "string",
88
+ "description": "Short blurb shown in marketplace."
89
+ },
90
+ "disableUpstream": {
91
+ "type": "boolean",
92
+ "description": "When true, daemon does not auto-sync this provider from registry. claude-cli uses this for explicit-version pinning."
93
+ },
94
+ "binary": {
95
+ "type": "string",
96
+ "minLength": 1,
97
+ "description": "Binary basename used for which-style detection."
98
+ },
99
+ "versionCommand": {
100
+ "type": "string",
101
+ "description": "Command the daemon runs to probe installed version. Example: \"my-cli --version\"."
102
+ },
103
+ "spawn": {
104
+ "type": "object",
105
+ "required": ["command"],
106
+ "additionalProperties": false,
107
+ "properties": {
108
+ "command": { "type": "string", "minLength": 1 },
109
+ "args": {
110
+ "type": "array",
111
+ "items": { "type": "string" },
112
+ "default": []
113
+ },
114
+ "shell": { "type": "boolean", "default": false },
115
+ "env": {
116
+ "type": "object",
117
+ "additionalProperties": { "type": "string" },
118
+ "default": {}
119
+ }
120
+ }
121
+ },
122
+ "sendDelayMs": {
123
+ "type": "number",
124
+ "minimum": 0,
125
+ "description": "Delay between pasting prompt text and pressing Enter."
126
+ },
127
+ "modelLaunchArgs": {
128
+ "type": "array",
129
+ "items": { "type": "string" },
130
+ "description": "Template for expanding an initialModel selection into launch args. '{{model}}' is substituted with the model string (e.g. ['--model', '{{model}}'] → --model opus). Applied at launch when a model is requested for this CLI provider (MAGI kind-panel model axis). Absent → no launch-time model selection."
131
+ },
132
+ "modelOptions": {
133
+ "type": "array",
134
+ "items": { "type": "string" },
135
+ "description": "Suggested model values shown as dropdown options in the new-session dialog (brain-routing model axis), e.g. ['opus','sonnet','haiku']. Advisory — the UI still accepts free text, so a stale list never blocks an accepted model."
136
+ },
137
+ "thinkingLaunchArgs": {
138
+ "type": "array",
139
+ "items": { "type": "string" },
140
+ "description": "Template for expanding an initialThinkingLevel selection into launch args (brain-routing thinking axis, parallel to modelLaunchArgs). '{{level}}' is substituted with the provider-mapped reasoning-effort value (e.g. ['--effort', '{{level}}'] → --effort high; ['-c', 'model_reasoning_effort={{level}}']). Applied at launch when a thinking level is requested. Absent → no launch-time thinking selection."
141
+ },
142
+ "thinkingLevelMap": {
143
+ "type": "object",
144
+ "properties": {
145
+ "low": { "type": "string" },
146
+ "medium": { "type": "string" },
147
+ "high": { "type": "string" }
148
+ },
149
+ "additionalProperties": false,
150
+ "description": "Optional map from the standard thinking levels (low/medium/high) to this provider's own reasoning-effort vocabulary, used to fill {{level}} in thinkingLaunchArgs. A level absent from the map passes through unchanged."
151
+ },
152
+ "thinkingLevelOptions": {
153
+ "type": "array",
154
+ "items": { "type": "string" },
155
+ "description": "Reasoning-effort values this provider accepts, shown as the thinking-level dropdown in the new-session dialog (e.g. ['low','medium','high','max']). Absent → the UI falls back to standard low/medium/high. Provider's own vocabulary, passed through verbatim."
156
+ },
157
+ "thinkingControlId": {
158
+ "type": "string",
159
+ "description": "For a provider with no thinkingLaunchArgs but a runtime reasoning-effort control (e.g. hermes 'reasoning'), the controls[].id to drive at launch for the thinking level. The control's setScript is invoked with { value: <mapped level> }."
160
+ },
161
+ "scriptCallBudgetMs": {
162
+ "type": "integer",
163
+ "minimum": 1,
164
+ "maximum": 5000,
165
+ "default": 50,
166
+ "description": "Per-invocation wall-clock budget (ms) for provider scripts (detectStatus, parseSession, parseApproval). Default 50. Scripts that exceed the budget are flagged in the runner's invocation trace and surfaced via the debug bundle so operators can identify a hanging settle loop. The budget is NOT a hard kill — Node CJS cannot interrupt synchronous code without a worker thread."
167
+ },
168
+ "sendKey": {
169
+ "type": "string",
170
+ "default": "\r",
171
+ "description": "Character sent to submit a prompt. Default carriage return."
172
+ },
173
+ "submitStrategy": {
174
+ "enum": ["wait_for_echo", "immediate"],
175
+ "default": "immediate"
176
+ },
177
+ "requirePromptEchoBeforeSubmit": {
178
+ "type": "boolean",
179
+ "default": false,
180
+ "description": "When true, daemon waits for the typed prompt to be visible in the PTY screen before sending sendKey."
181
+ },
182
+ "allowInputDuringGeneration": {
183
+ "type": "boolean",
184
+ "default": false,
185
+ "description": "When true, daemon permits sending a new prompt mid-generation."
186
+ },
187
+ "requiresFinalAssistantBeforeIdle": {
188
+ "type": "boolean",
189
+ "default": false,
190
+ "description": "When true, daemon defers generating→idle until parseSession includes a final standard assistant message."
191
+ },
192
+ "augmentStaleSnapshot": {
193
+ "type": "boolean",
194
+ "description": "Reserved for future use."
195
+ },
196
+ "transcriptAuthority": {
197
+ "enum": ["provider", "daemon"],
198
+ "description": "When 'provider', daemon treats parsed output as canonical and suppresses fallback parsing."
199
+ },
200
+ "transcriptContext": {
201
+ "enum": ["full", "tail"],
202
+ "description": "When 'full', provider-owned parser receives the entire accumulated transcript context."
203
+ },
204
+ "patterns": {
205
+ "type": "object",
206
+ "additionalProperties": false,
207
+ "description": "Optional regex hints for the legacy fallback detector. Modern providers express these via primitives.",
208
+ "properties": {
209
+ "prompt": { "$ref": "#/$defs/patternList" },
210
+ "generating": { "$ref": "#/$defs/patternList" },
211
+ "approval": { "$ref": "#/$defs/patternList" },
212
+ "ready": { "$ref": "#/$defs/patternList" },
213
+ "dialog": { "$ref": "#/$defs/patternList" }
214
+ }
215
+ },
216
+ "approvalKeys": {
217
+ "type": "object",
218
+ "patternProperties": {
219
+ "^[0-9]+$": { "type": "string" }
220
+ },
221
+ "additionalProperties": false,
222
+ "description": "Map of button index → key sequence to send."
223
+ },
224
+ "approvalPositiveHints": {
225
+ "type": "array",
226
+ "items": { "type": "string" },
227
+ "description": "Lowercase substrings considered \"positive\" (accept). Auto-approve picks the matching button."
228
+ },
229
+ "timeouts": {
230
+ "type": "object",
231
+ "additionalProperties": false,
232
+ "properties": {
233
+ "ptyFlush": { "type": "number", "minimum": 0 },
234
+ "dialogAccept": { "type": "number", "minimum": 0 },
235
+ "approvalCooldown": { "type": "number", "minimum": 0 },
236
+ "generatingIdle": { "type": "number", "minimum": 0 },
237
+ "idleFinish": { "type": "number", "minimum": 0 },
238
+ "idleFinishConfirm": { "type": "number", "minimum": 0 },
239
+ "statusActivityHold": { "type": "number", "minimum": 0 },
240
+ "maxResponse": { "type": "number", "minimum": 0 },
241
+ "shutdownGrace": { "type": "number", "minimum": 0 },
242
+ "outputSettle": { "type": "number", "minimum": 0 }
243
+ }
244
+ },
245
+ "resume": {
246
+ "type": "object",
247
+ "additionalProperties": false,
248
+ "required": ["supported"],
249
+ "properties": {
250
+ "supported": { "type": "boolean" },
251
+ "stopStrategy": { "enum": ["command", "ctrl_c", "signal"] },
252
+ "stopCommand": { "type": "string" },
253
+ "shutdownGraceMs": { "type": "number", "minimum": 0 },
254
+ "sessionIdFormat": { "enum": ["uuid", "free", "string"] },
255
+ "newSessionArgs": {
256
+ "type": "array",
257
+ "items": { "type": "string" }
258
+ },
259
+ "resumeSessionArgs": {
260
+ "type": "array",
261
+ "items": { "type": "string" }
262
+ },
263
+ "resumeArgs": {
264
+ "type": "array",
265
+ "items": { "type": "string" }
266
+ }
267
+ }
268
+ },
269
+ "compatibility": {
270
+ "type": "array",
271
+ "minItems": 1,
272
+ "items": {
273
+ "type": "object",
274
+ "required": ["ideVersion"],
275
+ "additionalProperties": false,
276
+ "properties": {
277
+ "ideVersion": { "type": "string", "description": "SemVer range." },
278
+ "scriptDir": { "type": "string", "pattern": "^scripts/[^/]+$" },
279
+ "spec": { "type": "string", "pattern": "^specs/[^/]+\\.json$", "description": "Path to declarative spec.json driving SpecCliAdapter for this version range." }
280
+ }
281
+ },
282
+ "description": "Maps installed agent versions to script subdirectories and/or declarative specs."
283
+ },
284
+ "defaultScriptDir": {
285
+ "type": "string",
286
+ "pattern": "^scripts/[^/]+$",
287
+ "description": "Fallback when no compatibility[] entry matches."
288
+ },
289
+ "capabilities": {
290
+ "type": "object",
291
+ "additionalProperties": false,
292
+ "properties": {
293
+ "input": {
294
+ "type": "object",
295
+ "additionalProperties": true,
296
+ "properties": {
297
+ "multipart": { "type": "boolean" },
298
+ "mediaTypes": {
299
+ "type": "array",
300
+ "items": { "type": "string" }
301
+ },
302
+ "strategies": { "type": "array" }
303
+ }
304
+ },
305
+ "output": {
306
+ "type": "object",
307
+ "additionalProperties": true,
308
+ "properties": {
309
+ "richContent": { "type": "boolean" },
310
+ "mediaTypes": {
311
+ "type": "array",
312
+ "items": { "type": "string" }
313
+ }
314
+ }
315
+ },
316
+ "controls": {
317
+ "type": "object",
318
+ "additionalProperties": true,
319
+ "properties": {
320
+ "typedResults": { "type": "boolean" }
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "meshCoordinator": {
326
+ "type": "object",
327
+ "additionalProperties": false,
328
+ "required": ["supported"],
329
+ "properties": {
330
+ "supported": { "type": "boolean" },
331
+ "mcpConfig": {
332
+ "type": "object",
333
+ "additionalProperties": false,
334
+ "properties": {
335
+ "mode": { "enum": ["manual", "auto_import"] },
336
+ "format": { "type": "string" },
337
+ "path": { "type": "string" },
338
+ "configPathCommand": { "type": "string" },
339
+ "serverName": { "type": "string" },
340
+ "requiresRestart": { "type": "boolean" },
341
+ "instructions": { "type": "string" },
342
+ "template": { "type": "string" }
343
+ }
344
+ },
345
+ "systemPromptInjection": {
346
+ "description": "How the coordinator system prompt reaches the launched CLI. Replaces hard-coded router branches per CLI type; users may override the prompt body or the injection mechanism here.",
347
+ "oneOf": [
348
+ { "type": "object", "additionalProperties": false, "required": ["mode", "flag"],
349
+ "properties": { "mode": { "const": "cli_arg" }, "flag": { "type": "string" } } },
350
+ { "type": "object", "additionalProperties": false, "required": ["mode", "flag", "template"],
351
+ "properties": { "mode": { "const": "config_override" }, "flag": { "type": "string" }, "template": { "type": "string" } } },
352
+ { "type": "object", "additionalProperties": false, "required": ["mode", "path"],
353
+ "properties": { "mode": { "const": "context_file" }, "path": { "type": "string" }, "wrapper": { "type": "string" } } },
354
+ { "type": "object", "additionalProperties": false, "required": ["mode", "name"],
355
+ "properties": { "mode": { "const": "env_var" }, "name": { "type": "string" } } }
356
+ ]
357
+ },
358
+ "delegatedWorkerIsolation": {
359
+ "description": "Provider-declared launch isolation for coordinator-spawned worker sessions. Keeps worker-only sessions from inheriting coordinator MCP/tools/config.",
360
+ "type": "object",
361
+ "additionalProperties": false,
362
+ "properties": {
363
+ "env": {
364
+ "type": "object",
365
+ "additionalProperties": false,
366
+ "properties": {
367
+ "unset": {
368
+ "type": "array",
369
+ "items": { "type": "string", "minLength": 1 }
370
+ }
371
+ }
372
+ },
373
+ "args": {
374
+ "type": "array",
375
+ "items": {
376
+ "oneOf": [
377
+ {
378
+ "type": "object",
379
+ "additionalProperties": false,
380
+ "required": ["mode", "flag"],
381
+ "properties": {
382
+ "mode": { "const": "empty_mcp_config" },
383
+ "flag": { "type": "string", "minLength": 1 },
384
+ "strictFlag": { "type": "string", "minLength": 1 }
385
+ }
386
+ },
387
+ {
388
+ "type": "object",
389
+ "additionalProperties": false,
390
+ "required": ["mode", "flag", "key", "value"],
391
+ "properties": {
392
+ "mode": { "const": "config_override" },
393
+ "flag": { "type": "string", "minLength": 1 },
394
+ "key": { "type": "string", "minLength": 1 },
395
+ "value": { "type": "string", "minLength": 1 },
396
+ "dedupeKey": { "type": "string", "minLength": 1 }
397
+ }
398
+ }
399
+ ]
400
+ }
401
+ }
402
+ }
403
+ }
404
+ }
405
+ },
406
+ "nativeHistory": {
407
+ "type": "object",
408
+ "description": "Native transcript adapter declaration. v1 canonical field name. Daemon reads/lists provider-native history files via the named scripts (or the built-in adapter identified by $schema).",
409
+ "additionalProperties": true,
410
+ "properties": {
411
+ "$schema": { "type": "string" },
412
+ "format": { "type": "string" },
413
+ "watchPath": { "type": "string" },
414
+ "mode": { "enum": ["native-source", "materialized-mirror", "disabled", "daemon-mirror"] },
415
+ "contractVersion": { "type": "string" },
416
+ "scripts": {
417
+ "type": "object",
418
+ "additionalProperties": false,
419
+ "properties": {
420
+ "readSession": { "type": "string" },
421
+ "listSessions": { "type": "string" }
422
+ }
423
+ }
424
+ }
425
+ },
426
+ "canonicalHistory": {
427
+ "type": "object",
428
+ "description": "Deprecated v0 alias for `nativeHistory`. The loader copies this block into `nativeHistory` at load time. New manifests should use `nativeHistory` directly.",
429
+ "additionalProperties": true,
430
+ "properties": {
431
+ "format": { "type": "string" },
432
+ "watchPath": { "type": "string" },
433
+ "mode": { "enum": ["native-source", "materialized-mirror", "disabled", "daemon-mirror"] },
434
+ "contractVersion": { "type": "string" },
435
+ "scripts": {
436
+ "type": "object",
437
+ "additionalProperties": false,
438
+ "properties": {
439
+ "readSession": { "type": "string" },
440
+ "listSessions": { "type": "string" }
441
+ }
442
+ }
443
+ }
444
+ },
445
+ "settings": {
446
+ "type": "object",
447
+ "additionalProperties": { "$ref": "#/$defs/settingDef" }
448
+ },
449
+ "controls": {
450
+ "type": "array",
451
+ "items": { "$ref": "#/$defs/controlDef" }
452
+ },
453
+ "tui": {
454
+ "type": "object",
455
+ "description": "Declarative TUI parsing primitives. When present, daemon's builder synthesises detectStatus / parseApproval / parseSession from these blocks. Each block is identified by its $schema.",
456
+ "additionalProperties": true
457
+ },
458
+ "overrides": {
459
+ "type": "object",
460
+ "description": "Optional JS override pointers. Presence promotes the provider tier to `extended`. Each value identifies the handler being overridden and the relative path to the JS file implementing it.",
461
+ "additionalProperties": {
462
+ "oneOf": [
463
+ { "type": "string", "description": "Relative path to the override JS file." },
464
+ {
465
+ "type": "object",
466
+ "required": ["path"],
467
+ "additionalProperties": false,
468
+ "properties": {
469
+ "$schema": { "type": "string" },
470
+ "path": { "type": "string" },
471
+ "reason": { "type": "string" }
472
+ }
473
+ }
474
+ ]
475
+ }
476
+ }
477
+ },
478
+ "$defs": {
479
+ "patternList": {
480
+ "type": "array",
481
+ "items": {
482
+ "type": "object",
483
+ "required": ["source"],
484
+ "additionalProperties": false,
485
+ "properties": {
486
+ "source": { "type": "string", "description": "Regex source." },
487
+ "flags": { "type": "string", "pattern": "^[gimsuy]*$" }
488
+ }
489
+ }
490
+ },
491
+ "settingDef": {
492
+ "type": "object",
493
+ "required": ["type"],
494
+ "additionalProperties": false,
495
+ "properties": {
496
+ "type": { "enum": ["boolean", "number", "string", "select"] },
497
+ "default": {},
498
+ "public": { "type": "boolean" },
499
+ "label": { "type": "string" },
500
+ "description": { "type": "string" },
501
+ "options": { "type": "array" },
502
+ "min": { "type": "number" },
503
+ "max": { "type": "number" }
504
+ },
505
+ "allOf": [
506
+ {
507
+ "if": { "properties": { "type": { "const": "select" } } },
508
+ "then": { "required": ["options"] }
509
+ }
510
+ ]
511
+ },
512
+ "controlDef": {
513
+ "type": "object",
514
+ "required": ["id", "type", "label"],
515
+ "additionalProperties": false,
516
+ "properties": {
517
+ "id": { "type": "string" },
518
+ "type": { "enum": ["select", "action", "toggle"] },
519
+ "label": { "type": "string" },
520
+ "icon": { "type": "string" },
521
+ "placement": { "type": "string" },
522
+ "order": { "type": "number" },
523
+ "dynamic": { "type": "boolean" },
524
+ "hidden": { "type": "boolean", "description": "When true, dashboard does not render the control directly. Used for commands triggered by other UI (slash menu, etc.)." },
525
+ "options": { "type": "array" },
526
+ "listScript": { "type": "string" },
527
+ "setScript": { "type": "string" },
528
+ "invokeScript": { "type": "string" },
529
+ "readFrom": { "type": "string" },
530
+ "resultDisplay": { "type": "string" },
531
+ "defaultValue": {},
532
+ "confirmTitle": { "type": "string" },
533
+ "confirmMessage": { "type": "string" },
534
+ "confirmLabel": { "type": "string" }
535
+ }
536
+ }
537
+ }
538
+ }
@@ -0,0 +1,131 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "adhdev:acp/session-protocol@1",
4
+ "title": "acp/session-protocol — v1",
5
+ "description": "Describes how to detect ACP stdio session status from line-oriented process output. Supports json-rpc, plain-text, and mcp prompt styles. The daemon compiles the regex patterns at builder time and uses them at runtime to classify each incoming line as idle, generating, or an error verdict.",
6
+ "type": "object",
7
+ "required": ["$schema"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "$schema": {
11
+ "const": "adhdev:acp/session-protocol@1"
12
+ },
13
+ "idlePattern": {
14
+ "type": "object",
15
+ "description": "Regex pattern that matches a line emitted when the agent finishes a turn and is waiting for the next user message.",
16
+ "required": ["regex"],
17
+ "additionalProperties": false,
18
+ "properties": {
19
+ "regex": {
20
+ "type": "string",
21
+ "description": "ECMAScript regex source. Daemon compiles with the flags below."
22
+ },
23
+ "flags": {
24
+ "type": "string",
25
+ "pattern": "^[gimsuy]*$",
26
+ "default": "i",
27
+ "description": "Optional ECMAScript regex flags (default: 'i')."
28
+ },
29
+ "description": {
30
+ "type": "string",
31
+ "description": "Author-facing note explaining when this pattern fires."
32
+ }
33
+ }
34
+ },
35
+ "generatingPattern": {
36
+ "type": "object",
37
+ "description": "Regex pattern that matches a line emitted while the agent is actively working (streaming tokens, calling tools, etc.).",
38
+ "required": ["regex"],
39
+ "additionalProperties": false,
40
+ "properties": {
41
+ "regex": {
42
+ "type": "string",
43
+ "description": "ECMAScript regex source."
44
+ },
45
+ "flags": {
46
+ "type": "string",
47
+ "pattern": "^[gimsuy]*$",
48
+ "default": "i"
49
+ },
50
+ "description": {
51
+ "type": "string"
52
+ }
53
+ }
54
+ },
55
+ "errorPatterns": {
56
+ "type": "array",
57
+ "description": "List of error-signal patterns. Each entry provides a regex and the status verdict to return on match. Checked in order; first match wins.",
58
+ "items": {
59
+ "type": "object",
60
+ "required": ["regex", "verdict"],
61
+ "additionalProperties": false,
62
+ "properties": {
63
+ "regex": {
64
+ "type": "string",
65
+ "description": "ECMAScript regex source."
66
+ },
67
+ "flags": {
68
+ "type": "string",
69
+ "pattern": "^[gimsuy]*$",
70
+ "default": "i"
71
+ },
72
+ "verdict": {
73
+ "type": "string",
74
+ "enum": ["idle", "generating", "waiting_approval"],
75
+ "description": "Status verdict to return when this error pattern fires."
76
+ },
77
+ "description": {
78
+ "type": "string",
79
+ "description": "Author-facing note explaining what condition this pattern represents."
80
+ }
81
+ }
82
+ }
83
+ },
84
+ "promptStyle": {
85
+ "description": "Wire format used by the agent on stdio. Affects how lines are parsed (e.g. json-rpc messages are newline-delimited JSON objects; plain-text is freeform; mcp is the Model Context Protocol framing).",
86
+ "default": "plain-text",
87
+ "oneOf": [
88
+ {
89
+ "const": "json-rpc",
90
+ "title": "JSON-RPC",
91
+ "description": "Each line is a newline-delimited JSON-RPC 2.0 object."
92
+ },
93
+ {
94
+ "const": "plain-text",
95
+ "title": "Plain text",
96
+ "description": "Freeform text output — patterns are matched against each line directly."
97
+ },
98
+ {
99
+ "const": "mcp",
100
+ "title": "MCP",
101
+ "description": "Model Context Protocol stdio framing (Content-Length + JSON body)."
102
+ }
103
+ ]
104
+ },
105
+ "messageDelimiter": {
106
+ "type": "string",
107
+ "default": "\n",
108
+ "description": "String used to delimit messages in the stdio stream. Defaults to newline ('\\n'). For MCP framing this is effectively the Content-Length header separator, but the builder uses this field to split incoming bytes into logical lines for regex matching."
109
+ }
110
+ },
111
+ "examples": [
112
+ {
113
+ "$schema": "adhdev:acp/session-protocol@1",
114
+ "promptStyle": "plain-text",
115
+ "idlePattern": { "regex": "^\\$\\s*$", "flags": "m", "description": "Shell prompt — agent returned to idle" },
116
+ "generatingPattern": { "regex": "thinking|processing|calling tool", "flags": "i" },
117
+ "errorPatterns": [
118
+ { "regex": "error:|exception:", "flags": "i", "verdict": "idle", "description": "Unrecoverable error — treat as idle so user can retry" }
119
+ ]
120
+ },
121
+ {
122
+ "$schema": "adhdev:acp/session-protocol@1",
123
+ "promptStyle": "json-rpc",
124
+ "idlePattern": { "regex": "\"method\"\\s*:\\s*\"agent/ready\"" },
125
+ "generatingPattern": { "regex": "\"method\"\\s*:\\s*\"agent/(?:thinking|toolCall)\"" },
126
+ "errorPatterns": [
127
+ { "regex": "\"method\"\\s*:\\s*\"agent/approvalRequired\"", "verdict": "waiting_approval" }
128
+ ]
129
+ }
130
+ ]
131
+ }