@adhdev/daemon-core 0.9.82-rc.48 → 0.9.82-rc.481

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 +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 +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 +51 -1
  27. package/dist/commands/handler.d.ts +125 -0
  28. package/dist/commands/high-family/index.d.ts +3 -0
  29. package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
  30. package/dist/commands/high-family/mesh-events.d.ts +2 -0
  31. package/dist/commands/high-family/mesh-status.d.ts +2 -0
  32. package/dist/commands/high-family/types.d.ts +64 -0
  33. package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
  34. package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
  35. package/dist/commands/low-family/diagnostics.d.ts +2 -0
  36. package/dist/commands/low-family/index.d.ts +3 -0
  37. package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
  38. package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
  39. package/dist/commands/low-family/notification.d.ts +2 -0
  40. package/dist/commands/low-family/refine-config.d.ts +2 -0
  41. package/dist/commands/low-family/session-host.d.ts +2 -0
  42. package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
  43. package/dist/commands/low-family/status-meta.d.ts +2 -0
  44. package/dist/commands/low-family/types.d.ts +33 -0
  45. package/dist/commands/med-family/cli-agent.d.ts +2 -0
  46. package/dist/commands/med-family/fast-forward.d.ts +2 -0
  47. package/dist/commands/med-family/ide.d.ts +10 -0
  48. package/dist/commands/med-family/index.d.ts +3 -0
  49. package/dist/commands/med-family/mesh-crud.d.ts +48 -0
  50. package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
  51. package/dist/commands/med-family/mesh-queue.d.ts +2 -0
  52. package/dist/commands/med-family/mesh-restart.d.ts +2 -0
  53. package/dist/commands/med-family/types.d.ts +152 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router-aggregate-status.d.ts +24 -0
  56. package/dist/commands/router-mesh-session-owner.d.ts +59 -0
  57. package/dist/commands/router-refine.d.ts +137 -0
  58. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  59. package/dist/commands/router.d.ts +204 -15
  60. package/dist/commands/upgrade-helper.d.ts +41 -1
  61. package/dist/config/chat-history.d.ts +11 -0
  62. package/dist/config/config.d.ts +19 -0
  63. package/dist/config/mesh-config.d.ts +136 -1
  64. package/dist/config/mesh-json-config.d.ts +199 -0
  65. package/dist/config/registry-resolver.d.ts +54 -0
  66. package/dist/config/repo-settings.d.ts +77 -0
  67. package/dist/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 +57 -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 +73 -17
  81. package/dist/index.js +52979 -18657
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +59496 -25355
  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 +230 -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 +49 -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 +246 -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 +29 -0
  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 +158 -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 +80 -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 +428 -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 +508 -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 +30 -0
  134. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  135. package/dist/mesh/mesh-work-queue.d.ts +363 -5
  136. package/dist/mesh/preview-freshness.d.ts +28 -0
  137. package/dist/mesh/refine-config.d.ts +216 -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 +406 -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 +149 -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 +29 -0
  161. package/dist/providers/provider-instance.d.ts +30 -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 +629 -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 +98 -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 +26 -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 +5 -0
  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 +954 -1144
  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 +2767 -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 +659 -27
  252. package/src/commands/handler.ts +845 -2
  253. package/src/commands/high-family/index.ts +28 -0
  254. package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
  255. package/src/commands/high-family/mesh-events.ts +102 -0
  256. package/src/commands/high-family/mesh-status.ts +849 -0
  257. package/src/commands/high-family/types.ts +80 -0
  258. package/src/commands/low-family/coordinator-prompt.ts +72 -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 +241 -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 +1287 -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 +1711 -0
  283. package/src/commands/router-worktree-cleanup.ts +870 -0
  284. package/src/commands/router.ts +795 -4143
  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 +632 -23
  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 +767 -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 +213 -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 +469 -0
  323. package/src/mesh/coordinator-prompt.ts +572 -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 +2002 -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 +1494 -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 +111 -0
  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 +898 -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 +2263 -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 +1473 -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 +1686 -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 +2150 -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 +185 -0
  363. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  364. package/src/mesh/mesh-work-queue.ts +1437 -147
  365. package/src/mesh/preview-freshness.ts +163 -0
  366. package/src/mesh/refine-config.ts +423 -0
  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 +2709 -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 +160 -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 +87 -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 +509 -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 +868 -13
  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 +136 -55
  460. package/src/status/builders.ts +26 -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 +95 -26
  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 +5 -0
  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,73 @@
1
+ /**
2
+ * codex-cli-transcript — Daemon-side built-in native history adapter for codex-cli.
3
+ *
4
+ * Reads Codex CLI rollout JSONL session files directly without shelling out to a JS override.
5
+ * Files are stored at ~/.codex/sessions/<uuid>[-<slug>].jsonl.
6
+ *
7
+ * Format — each line is a JSON object of one of these types:
8
+ * { type: 'session_meta', timestamp: number, payload: { id: string, cwd: string, ... } }
9
+ * { type: 'response_item', timestamp: number, payload: { type: 'message', role: 'user'|'assistant', content: ... } }
10
+ * { type: 'response_item', timestamp: number, payload: { type: 'function_call' | 'custom_tool_call', name?: string, arguments?: string, input?: unknown } }
11
+ * { type: 'response_item', timestamp: number, payload: { type: 'function_call_output' | 'custom_tool_call_output', output?: string, result?: string } }
12
+ *
13
+ * watchPath (from provider.v1.json): ~/.codex/sessions
14
+ *
15
+ * OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
16
+ */
17
+ export type NativeHistoryRole = 'user' | 'assistant' | 'system';
18
+ export type NativeHistoryKind = 'standard' | 'tool' | 'session_start';
19
+ export interface NativeHistoryMessage {
20
+ ts: string;
21
+ receivedAt: number;
22
+ role: NativeHistoryRole;
23
+ content: string;
24
+ kind: NativeHistoryKind;
25
+ senderName?: string;
26
+ agent: 'codex-cli';
27
+ historySessionId: string;
28
+ workspace?: string;
29
+ /** Stable per-message identity (v2 contract). */
30
+ providerUnitKey?: string;
31
+ }
32
+ export interface NativeHistorySession {
33
+ messages: NativeHistoryMessage[];
34
+ providerSessionId: string;
35
+ source: 'provider-native';
36
+ sourcePath: string;
37
+ sourceMtimeMs: number;
38
+ nativeHistoryCoverage: 'full';
39
+ workspace?: string;
40
+ }
41
+ export interface NativeHistorySessionMeta {
42
+ historySessionId: string;
43
+ sessionId: string;
44
+ sourcePath: string;
45
+ sourceMtimeMs: number;
46
+ messageCount: number;
47
+ firstMessageAt: number;
48
+ lastMessageAt: number;
49
+ sessionTitle?: string;
50
+ preview?: string;
51
+ workspace?: string;
52
+ agent: 'codex-cli';
53
+ source: 'provider-native';
54
+ nativeHistoryCoverage: 'full';
55
+ }
56
+ /**
57
+ * Read a single Codex CLI session by its JSONL file path.
58
+ *
59
+ * `sessionPath` is the absolute path to a `<uuid>[-<slug>].jsonl` file
60
+ * under ~/.codex/sessions/.
61
+ * Returns `null` when the file is missing, empty, or yields no parseable messages.
62
+ */
63
+ export declare function readSession(sessionPath: string): NativeHistorySession | null;
64
+ /**
65
+ * List all Codex CLI sessions under the given watchPath base dir.
66
+ *
67
+ * `watchPath` is the value from provider.v1.json (`~/.codex/sessions`).
68
+ * Expands the home directory and scans the directory recursively,
69
+ * collecting all `.jsonl` files.
70
+ *
71
+ * Returns summary metadata for each session, sorted by most recently updated first.
72
+ */
73
+ export declare function listSessions(watchPath: string): Promise<NativeHistorySessionMeta[]>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Spawn-bind grace window: an on-disk rollout whose session_meta.timestamp
3
+ * lands within ±SPAWN_BIND_GRACE_MS of the daemon's spawnedAtMs is treated
4
+ * as belonging to that daemon session. 10s is long enough to absorb codex
5
+ * binary startup latency on cold caches and short enough that two
6
+ * back-to-back launches don't both fall inside the same window.
7
+ *
8
+ * Shared by the declarative executor (providers/spec/native-history-executor.ts)
9
+ * and the codex runtime disambiguator (providers/native-history/dispatcher.ts) —
10
+ * both apply the identical ±10s session-binding window.
11
+ */
12
+ export declare const SPAWN_BIND_GRACE_MS = 10000;
@@ -0,0 +1,44 @@
1
+ export type ReaderId = 'claude-cli' | 'codex-cli' | 'antigravity-cli' | 'hermes-cli';
2
+ export interface NativeHistoryInput {
3
+ agentType?: string;
4
+ sessionId?: string;
5
+ providerSessionId?: string;
6
+ historySessionId?: string;
7
+ /** Daemon instance id of the reading session. Used (with workspace +
8
+ * sessionStartedAtMs) to derive the antigravity conversation-claim owner
9
+ * token so two concurrent sessions never bind to the same .db. */
10
+ instanceId?: string;
11
+ workspace?: string;
12
+ sessionStartedAtMs?: number;
13
+ format?: string;
14
+ watchPath?: string;
15
+ forceRefresh?: boolean;
16
+ args?: Record<string, unknown>;
17
+ }
18
+ export interface NativeHistoryResult {
19
+ messages: Array<{
20
+ role: string;
21
+ content: string;
22
+ receivedAt?: number;
23
+ kind?: string;
24
+ workspace?: string;
25
+ }>;
26
+ providerSessionId?: string;
27
+ sourcePath: string;
28
+ sourceMtimeMs: number;
29
+ nativeHistoryCoverage?: 'full' | 'partial' | 'best-effort';
30
+ /**
31
+ * True only when the resolved conversation is confirmed to belong to THIS
32
+ * reading session by the owner-token identity (an exact uuid bind, or a
33
+ * spawn-floor/birth-time pick born after this session started). False for a
34
+ * bare recency/newest-by-mtime pick made with no spawn floor — that pick may
35
+ * alias a co-located concurrent session (the antigravity coordinator↔replica
36
+ * crosswire), so its uuid must NEVER be recorded as a pin nor trusted to
37
+ * satisfy the same-pass safe-mapping identity check. Read-path callers gate
38
+ * the workspace-latest pin + first-read trust on this flag. Non-antigravity
39
+ * readers leave it undefined (their existing exact-file resolution is
40
+ * unaffected by this signal).
41
+ */
42
+ ownerConfirmed?: boolean;
43
+ }
44
+ export declare function createNativeHistoryDispatcher(reader: ReaderId): (input: NativeHistoryInput) => NativeHistoryResult | null;
@@ -0,0 +1,30 @@
1
+ export interface NativeHistoryMessage {
2
+ id: string;
3
+ role: 'user' | 'assistant' | 'system';
4
+ content: string;
5
+ receivedAt: number;
6
+ kind?: string;
7
+ }
8
+ export interface NativeHistorySession {
9
+ messages: NativeHistoryMessage[];
10
+ providerSessionId: string;
11
+ source: 'provider-native';
12
+ sourcePath: string;
13
+ sourceMtimeMs: number;
14
+ nativeHistoryCoverage: 'full';
15
+ workspace?: string;
16
+ }
17
+ export interface NativeHistorySessionMeta {
18
+ historySessionId: string;
19
+ sessionId: string;
20
+ sourcePath: string;
21
+ sourceMtimeMs: number;
22
+ messageCount: number;
23
+ firstMessageAt: number;
24
+ lastMessageAt: number;
25
+ sessionTitle?: string;
26
+ preview?: string;
27
+ workspace?: string;
28
+ }
29
+ export declare function readSession(sessionPath: string, requestedSessionId?: string): NativeHistorySession | null;
30
+ export declare function listSessions(_watchPath: string): Promise<NativeHistorySessionMeta[]>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * native-history — Daemon-side built-in adapters for CLI provider native history.
3
+ *
4
+ * Each adapter reads conversation history directly from the CLI tool's on-disk
5
+ * storage without shelling out to a provider JS override script.
6
+ *
7
+ * OSS code (AGPL-3.0). Must not import from packages/ (proprietary).
8
+ */
9
+ export { readSession as readClaudeCliSession, listSessions as listClaudeCliSessions, } from './claude-cli-transcript.js';
10
+ export { readSession as readCodexCliSession, listSessions as listCodexCliSessions, } from './codex-cli-transcript.js';
11
+ export { readSession as readAntigravityCliSession, listSessions as listAntigravityCliSessions, } from './antigravity-cli-transcript.js';
12
+ export { readSession as readHermesCliSession, listSessions as listHermesCliSessions, } from './hermes-cli-transcript.js';
13
+ export { createNativeHistoryDispatcher, type ReaderId } from './dispatcher.js';
@@ -82,6 +82,35 @@ export declare class ProviderInstanceManager {
82
82
  * Called when user changes settings from dashboard.
83
83
  */
84
84
  updateInstanceSettings(providerType: string, settings: Record<string, any>): number;
85
+ /** Stamp a mesh assignment on a single instance (used by mesh_send_task
86
+ * --direct so the worker's completion event has a coordinator routing
87
+ * marker in state.settings). Returns `{ stamped: true }` when the stamp was
88
+ * applied, or `{ stamped: false, reason }` when it was refused — the instance
89
+ * was missing / has no attach method, or the DOUBLE-DISPATCH idempotence guard
90
+ * fired (the same task is already running on another live session here). */
91
+ attachMeshAssignmentToInstance(instanceId: string, assignment: {
92
+ meshId: string;
93
+ nodeId?: string;
94
+ taskId?: string;
95
+ coordinatorDaemonId?: string;
96
+ coordinatorSessionId?: string;
97
+ }): {
98
+ stamped: boolean;
99
+ reason?: string;
100
+ };
101
+ /**
102
+ * DOUBLE-DISPATCH support: the id of another LIVE, actively-working instance that already
103
+ * holds (meshId, taskId), or null. "Live working" = stamped with this exact mesh+task AND
104
+ * currently mid-turn / booting toward it (generating / waiting on approval-or-choice /
105
+ * starting) — NOT idle, stopped, or errored. A stale/dead/idle holder is deliberately
106
+ * ignored so a legitimate re-dispatch (e.g. after a dispatch failure) is never blocked.
107
+ * The instance being stamped (excludeInstanceId) is skipped so re-stamping the same
108
+ * session stays idempotent. O(n) over instances — the count is small.
109
+ */
110
+ private findLiveWorkingTaskHolder;
111
+ /** Clear a mesh assignment after the dispatched task reaches a terminal
112
+ * state (generating_completed / stopped / failed). */
113
+ detachMeshAssignmentFromInstance(instanceId: string): boolean;
85
114
  refreshProviderDefinitions(resolveProvider: (providerType: string) => unknown): number;
86
115
  /**
87
116
  * All terminate
@@ -11,7 +11,8 @@ import type { ProviderModule, ProviderResumeCapability } from './contracts.js';
11
11
  import type { AcpConfigOption, AcpMode, ProviderControlSchema, ProviderSummaryMetadata, SessionCapability } from '../shared-types.js';
12
12
  import type { MessageInputSupport } from './provider-input-support.js';
13
13
  import type { ChatMessage } from '../types.js';
14
- export type ProviderStatus = 'idle' | 'generating' | 'waiting_approval' | 'error' | 'stopped' | 'starting';
14
+ import type { InteractivePrompt } from './types/interactive-prompt.js';
15
+ export type ProviderStatus = 'idle' | 'generating' | 'waiting_approval' | 'waiting_choice' | 'error' | 'stopped' | 'starting';
15
16
  export interface ProviderRuntimeWriteOwner {
16
17
  clientId: string;
17
18
  ownerType: 'agent' | 'user';
@@ -42,6 +43,7 @@ export interface ActiveChatData {
42
43
  message: string;
43
44
  buttons: string[];
44
45
  } | null;
46
+ activeInteractivePrompt?: InteractivePrompt | null;
45
47
  inputContent?: string;
46
48
  }
47
49
  /** Standardized error reasons across all provider categories */
@@ -56,6 +58,7 @@ interface ProviderStateBase {
56
58
  status: ProviderStatus;
57
59
  /** chat data */
58
60
  activeChat: ActiveChatData | null;
61
+ activeInteractivePrompt?: InteractivePrompt | null;
59
62
  /** Workspace — project path or name (all categories) */
60
63
  workspace?: string | null;
61
64
  /** Runtime info (real-time detection) */
@@ -178,8 +181,34 @@ export interface ProviderInstance {
178
181
  onEvent(event: string, data?: any): void;
179
182
  /** Update settings at runtime (called when user changes settings from dashboard) */
180
183
  updateSettings?(newSettings: Record<string, any>): void;
184
+ /** Stamp a direct-dispatch mesh task assignment so generating_completed
185
+ * events route back to the originating coordinator. Cleared by
186
+ * detachMeshAssignment when the task reaches a terminal state. */
187
+ attachMeshAssignment?(assignment: {
188
+ meshId: string;
189
+ nodeId?: string;
190
+ taskId?: string;
191
+ coordinatorDaemonId?: string;
192
+ coordinatorSessionId?: string;
193
+ }): void;
194
+ detachMeshAssignment?(): void;
181
195
  /** Refresh static provider definition/scripts without restarting the live runtime. */
182
196
  refreshProviderDefinition?(provider: ProviderModule): void;
197
+ /**
198
+ * Record that a human is actively attending this session by hand right now
199
+ * (foreground tab selection, controlbar use, manual approval, terminal
200
+ * input). Provider-common signal that suppresses auto-approve for a short
201
+ * window so the user can drive the session manually; background mesh worker
202
+ * sessions never receive it, so their delegated auto-approve is unaffected.
203
+ *
204
+ * `opts.passive` marks a view-only action (select_session / open_panel). A
205
+ * delegated worker session ignores passive stamps so a coordinator merely
206
+ * watching its panel does not suppress its delegated auto-approve; explicit
207
+ * input still attends. Foreground sessions attend on passive views too.
208
+ */
209
+ noteManualInteraction?(now?: number, opts?: {
210
+ passive?: boolean;
211
+ }): void;
183
212
  /** cleanup */
184
213
  dispose(): void;
185
214
  }
@@ -55,10 +55,17 @@ export declare class ProviderLoader {
55
55
  private logFn;
56
56
  private versionArchive;
57
57
  private scriptsCache;
58
+ /**
59
+ * Resolved registry base URL and provider tarball URL. Resolution order:
60
+ * explicit config field (constructor option) → env var → vendor default.
61
+ * See `config/registry-resolver.ts`.
62
+ */
63
+ private readonly registryBaseUrl;
64
+ private readonly providerTarballUrl;
58
65
  /** Inject VersionArchive so resolve() can auto-detect installed versions */
59
66
  setVersionArchive(archive: VersionArchive): void;
60
- private static readonly GITHUB_TARBALL_URL;
61
67
  private static readonly META_FILE;
68
+ private static readonly REGISTRY_META_FILE;
62
69
  private static readonly REPO_PROVIDER_DIRNAME;
63
70
  private static readonly SIBLING_MARKER_FILE;
64
71
  private static readonly SIBLING_ENV_VAR;
@@ -83,7 +90,18 @@ export declare class ProviderLoader {
83
90
  * probing; production code should leave this unset.
84
91
  */
85
92
  probeStarts?: string[];
93
+ /**
94
+ * Explicit provider registry base URL override (config.registryUrl).
95
+ * Highest-priority resolver source, ahead of ADHDEV_REGISTRY_URL + default.
96
+ */
97
+ registryUrl?: string;
98
+ /**
99
+ * Explicit provider tarball URL override (config.providerTarballUrl).
100
+ * Highest-priority resolver source, ahead of ADHDEV_PROVIDER_TARBALL_URL + default.
101
+ */
102
+ providerTarballUrl?: string;
86
103
  });
104
+ private migrateMarketplaceDirToExternal;
87
105
  private log;
88
106
  private debugLog;
89
107
  /**
@@ -128,9 +146,12 @@ export declare class ProviderLoader {
128
146
  resolveProviderFile(type: string, ...segments: string[]): string | null;
129
147
  /**
130
148
  * Load all providers (3-tier priority)
131
- * 1. .upstream/ (GitHub auto-download — primary source)
132
- * 2. User custom (~/.adhdev/providers/ excluding .upstream)
133
- * User custom always wins (highest priority).
149
+ * 1. ~/.adhdev/providers/.upstream/ official git, auto-synced
150
+ * 2. ~/.adhdev/external/ 3rd-party git sources, user-added,
151
+ * bundled providers may include arbitrary JS (untrusted by default)
152
+ * 3. ~/.adhdev/providers/ (excluding .upstream) — user-authored customs,
153
+ * always wins
154
+ * Highest priority listed last (overwrites earlier loads).
134
155
  * If .upstream/ is empty, call fetchLatest() before loadAll().
135
156
  */
136
157
  loadAll(): void;
@@ -295,6 +316,22 @@ export declare class ProviderLoader {
295
316
  *
296
317
  * @returns Whether an update occurred
297
318
  */
319
+ /**
320
+ * Sync providers from the ADHDev registry (registry.adhf.dev).
321
+ *
322
+ * Downloads only providers whose server checksum differs from the locally
323
+ * cached checksum. Falls back gracefully to the GitHub tarball path if the
324
+ * registry is unreachable or returns an unexpected response.
325
+ *
326
+ * Returns `{ updated: true }` when at least one provider file changed on disk,
327
+ * `{ updated: false }` when everything is already current, or
328
+ * `{ updated: false, error }` when the registry couldn't be reached and we
329
+ * should proceed to the GitHub tarball fallback.
330
+ */
331
+ fetchFromRegistry(): Promise<{
332
+ updated: boolean;
333
+ error?: string;
334
+ }>;
298
335
  fetchLatest(): Promise<{
299
336
  updated: boolean;
300
337
  error?: string;
@@ -305,7 +342,7 @@ export declare class ProviderLoader {
305
342
  private copyDirRecursive;
306
343
  /** .meta.json save */
307
344
  private writeMeta;
308
- /** Count provider files (provider.js or provider.json) */
345
+ /** Count provider files (provider.v1.json or provider.json — at most one per dir). */
309
346
  private countProviders;
310
347
  /**
311
348
  * Get public settings schema for a provider (for dashboard UI rendering)
@@ -0,0 +1,31 @@
1
+ export type ProviderTrust = 'user-custom' | 'trusted' | 'trusted-with-scripts' | 'external-safe' | 'external-untrusted';
2
+ export type ProviderLayer = 'user' | 'upstream' | 'external';
3
+ export interface ProviderManifestShape {
4
+ /** Has a `tui` block — SDK builders consume it as code paths. */
5
+ hasTui: boolean;
6
+ /** Has a non-empty `overrides` object — JS override paths. */
7
+ hasOverrides: boolean;
8
+ /** compatibility[].scriptDir or defaultScriptDir is set — JS scripts dir. */
9
+ hasScriptDir: boolean;
10
+ }
11
+ /**
12
+ * Inspect a manifest to decide whether it ships JavaScript hooks.
13
+ * Cheap; pure; safe to call on every provider load.
14
+ */
15
+ export declare function inspectManifestShape(manifest: Record<string, unknown>): ProviderManifestShape;
16
+ /**
17
+ * Classify trust given the layer the provider was loaded from + the
18
+ * manifest's JS-hook footprint.
19
+ */
20
+ export declare function classifyTrust(layer: ProviderLayer, shape: ProviderManifestShape): ProviderTrust;
21
+ /**
22
+ * Returns true when activation should require an explicit user confirm.
23
+ * Today only `external-untrusted` qualifies; future trust levels may
24
+ * fold in here.
25
+ */
26
+ export declare function requiresConfirmation(trust: ProviderTrust): boolean;
27
+ /**
28
+ * Render a short human-readable rationale for the trust tag. Used by
29
+ * the dashboard's confirmation modal and the provider catalog tooltip.
30
+ */
31
+ export declare function describeTrust(trust: ProviderTrust): string;
@@ -1,2 +1,31 @@
1
1
  import type { ReadChatResult } from './contracts.js';
2
+ import { CHAT_CONTRACT_VERSION_V1, CHAT_CONTRACT_VERSION_V2, type ChatContractVersion, type ReadChatResultV2 } from './transcript-v2.js';
3
+ /**
4
+ * Read the producer-declared contract version from a raw read_chat payload.
5
+ * Returns v1 when absent or unrecognised, so legacy producers keep working
6
+ * through A1. A2 will tighten this to throw when an unsupported version is
7
+ * declared.
8
+ */
9
+ export declare function readPayloadContractVersion(raw: unknown): ChatContractVersion;
10
+ /**
11
+ * Validate a v2 payload. Thin wrapper around assertReadChatResultV2Payload
12
+ * that prefixes the contract violation with the caller's source label.
13
+ */
14
+ export declare function validateReadChatResultV2Payload(raw: unknown, source?: string): ReadChatResultV2;
15
+ /**
16
+ * Versioned entry point. Routes on the producer-declared contractVersion:
17
+ * - v2 → strict v2 validation (transcript-v2.ts invariants)
18
+ * - v1 (or absent) → legacy permissive validation
19
+ *
20
+ * Callers that have not yet been audited to handle v2 outputs should use
21
+ * validateReadChatResultPayload directly; that path stays bound to v1 shape
22
+ * during the A1 transition.
23
+ */
24
+ export declare function validateReadChatResultPayloadVersioned(raw: unknown, source?: string): {
25
+ version: typeof CHAT_CONTRACT_VERSION_V1;
26
+ payload: ReadChatResult & Record<string, unknown>;
27
+ } | {
28
+ version: typeof CHAT_CONTRACT_VERSION_V2;
29
+ payload: ReadChatResultV2;
30
+ };
2
31
  export declare function validateReadChatResultPayload(raw: unknown, source?: string): ReadChatResult & Record<string, unknown>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * buildDetectStatusFromAcp
3
+ *
4
+ * Turns a declarative `acp/session-protocol@1` block into a runtime
5
+ * `(input: AcpStatusInput) => 'idle' | 'generating' | 'waiting_approval' | null`
6
+ * function.
7
+ *
8
+ * Dispatch order:
9
+ * 1. Not connected → null (no information available).
10
+ * 2. Error patterns — checked first; first match returns the declared verdict.
11
+ * 3. Generating pattern — `generating`.
12
+ * 4. Idle pattern — `idle`.
13
+ * 5. Default: `null` (no change — caller preserves last known status).
14
+ *
15
+ * All regex patterns are compiled once at builder time so the returned
16
+ * detector function is allocation-free on the hot path.
17
+ */
18
+ interface AcpRegexPatternSpec {
19
+ regex: string;
20
+ flags?: string;
21
+ description?: string;
22
+ }
23
+ interface AcpErrorPatternSpec extends AcpRegexPatternSpec {
24
+ verdict: 'idle' | 'generating' | 'waiting_approval';
25
+ }
26
+ export interface AcpSessionSpec {
27
+ $schema?: 'adhdev:acp/session-protocol@1';
28
+ /** Pattern that matches a line emitted when the agent is idle/ready. */
29
+ idlePattern?: AcpRegexPatternSpec;
30
+ /** Pattern that matches a line emitted while the agent is actively working. */
31
+ generatingPattern?: AcpRegexPatternSpec;
32
+ /**
33
+ * Error/edge-case patterns. Checked in order; first match returns the
34
+ * declared verdict. Useful for approval prompts, fatal errors, etc.
35
+ */
36
+ errorPatterns?: AcpErrorPatternSpec[];
37
+ /** Wire format; informational only at the builder level — regex matching
38
+ * is identical regardless of promptStyle. */
39
+ promptStyle?: 'json-rpc' | 'plain-text' | 'mcp';
40
+ /** Message delimiter used to split incoming bytes (default: newline). */
41
+ messageDelimiter?: string;
42
+ }
43
+ export interface AcpStatusInput {
44
+ /** The most recently received line from the stdio stream. */
45
+ lastLine: string;
46
+ /**
47
+ * A sliding window of recent output lines (newest last).
48
+ * Builders may check these when a single line is not enough for context.
49
+ */
50
+ recentLines: string[];
51
+ /** Whether the ACP process is currently connected and running. */
52
+ isConnected: boolean;
53
+ }
54
+ export type AcpDetectedStatus = 'idle' | 'generating' | 'waiting_approval' | null;
55
+ interface CompiledAcpSpec {
56
+ idle: RegExp | null;
57
+ generating: RegExp | null;
58
+ errors: Array<{
59
+ re: RegExp;
60
+ verdict: AcpDetectedStatus;
61
+ }>;
62
+ }
63
+ declare function compileSpec(spec: AcpSessionSpec): CompiledAcpSpec;
64
+ export declare function buildDetectStatusFromAcp(spec: AcpSessionSpec): (input: AcpStatusInput) => AcpDetectedStatus;
65
+ export declare const __internal: {
66
+ compileSpec: typeof compileSpec;
67
+ };
68
+ export {};
@@ -0,0 +1,86 @@
1
+ /**
2
+ * buildDetectStatusFromTui
3
+ *
4
+ * Turns a manifest's declarative TUI block into a runtime
5
+ * `(input: CliStatusInput) => CliStatus | null` function.
6
+ *
7
+ * Inputs handled (all optional except spinner):
8
+ * - tui/spinner@1 → contributes `generating`
9
+ * - tui/settled-prompt@1 → contributes `idle`
10
+ * - tui/modal@1 → contributes `waiting_approval`
11
+ *
12
+ * Dispatch order (sprint-2026-06 contract):
13
+ * 1. Active generation cues win over idle prompt — checked first.
14
+ * Reason: codex/claude keep model footer visible during `Working` and
15
+ * `hasReadyPrompt` falsely fired idle. Audit §4.2 introduces
16
+ * `tui/cue-ordering` as the named primitive for this rule.
17
+ * 2. Modal cue (if present) is checked next — `waiting_approval`.
18
+ * 3. Settled-prompt cue — `idle`.
19
+ * 4. Default: `null` (no change).
20
+ */
21
+ import type { CliStatusInput, CliDetectStatusFn } from '../../types/cli/index.js';
22
+ import { type VisibleRegionSpec } from './visible-region.js';
23
+ interface RegexLikeSpec {
24
+ regex: string;
25
+ flags?: string;
26
+ }
27
+ interface SpinnerPatternSpec extends RegexLikeSpec {
28
+ description?: string;
29
+ }
30
+ interface SpinnerSpec {
31
+ $schema: 'adhdev:tui/spinner@1';
32
+ patterns: SpinnerPatternSpec[];
33
+ scope?: 'live-frame-tail' | 'whole-screen' | 'recent-buffer';
34
+ scopeWindowLines?: number;
35
+ }
36
+ interface SettledPromptFooterSpec {
37
+ pattern: string;
38
+ kind?: 'substring' | 'regex';
39
+ flags?: string;
40
+ }
41
+ interface SettledPromptSpec {
42
+ $schema: 'adhdev:tui/settled-prompt@1';
43
+ regex: string;
44
+ flags?: string;
45
+ withFooter?: SettledPromptFooterSpec[];
46
+ scope?: 'last-n-lines' | 'whole-screen';
47
+ scopeWindowLines?: number;
48
+ }
49
+ interface ModalSpec {
50
+ $schema: 'adhdev:tui/modal@1';
51
+ questionPattern: string;
52
+ questionFlags?: string;
53
+ questionVariants?: Array<{
54
+ regex: string;
55
+ flags?: string;
56
+ label?: string;
57
+ }>;
58
+ buttonPattern: string;
59
+ buttonFlags?: string;
60
+ buttonLabelGroup?: number;
61
+ }
62
+ export type DispatchGroup = 'spinner' | 'modal' | 'settled-prompt' | 'cue-ordering' | 'error-detection' | 'approval-stitching';
63
+ export interface DispatchOrderSpec {
64
+ $schema: 'adhdev:tui/dispatch-order@1';
65
+ order: DispatchGroup[];
66
+ onNoMatch?: 'idle' | 'unknown' | 'preserve-last';
67
+ }
68
+ export interface DetectStatusTuiSpec {
69
+ spinner?: SpinnerSpec;
70
+ settledPrompt?: SettledPromptSpec;
71
+ modal?: ModalSpec;
72
+ dispatchOrder?: DispatchOrderSpec;
73
+ visibleRegion?: VisibleRegionSpec;
74
+ }
75
+ declare function scopeText(input: CliStatusInput, scope: SpinnerSpec['scope'] | SettledPromptSpec['scope'], windowLines: number | undefined): string;
76
+ declare function spinnerMatches(spec: SpinnerSpec, input: CliStatusInput): boolean;
77
+ declare function settledPromptMatches(spec: SettledPromptSpec, input: CliStatusInput): boolean;
78
+ declare function modalMatches(spec: ModalSpec, input: CliStatusInput): boolean;
79
+ export declare function buildDetectStatusFromTui(spec: DetectStatusTuiSpec): CliDetectStatusFn;
80
+ export declare const __internal: {
81
+ scopeText: typeof scopeText;
82
+ spinnerMatches: typeof spinnerMatches;
83
+ settledPromptMatches: typeof settledPromptMatches;
84
+ modalMatches: typeof modalMatches;
85
+ };
86
+ export {};
@@ -0,0 +1,59 @@
1
+ /**
2
+ * buildParseApprovalFromSquash
3
+ *
4
+ * Companion to buildParseApprovalFromTui. Handles the squashed-modal case:
5
+ * the terminal has re-flowed the approval frame so the rendered text is a
6
+ * single run of lowercase-alnum bytes (e.g. `doyoutrustthecontentsofthisdirectory…1yescontinue2noquit`).
7
+ *
8
+ * Author declares:
9
+ * - `cues` — compact substrings/regexes that identify the modal
10
+ * - `footers` — optional compact substrings that must also be present
11
+ * - `buttonRules` — compact→labels mappings used to recover button labels
12
+ *
13
+ * Returns the same shape as buildParseApprovalFromTui — a CliApprovalModal
14
+ * (message + buttons) or null when no rule matches. Caller composes the two
15
+ * builders: try the regular modal first, then fall back to squash. Codex
16
+ * needs both because at narrow widths the terminal renders the squash form,
17
+ * and at wider widths it renders the regular framed form.
18
+ */
19
+ import type { CliApprovalInput, CliParseApprovalFn } from '../../types/cli/index.js';
20
+ interface SquashCueSpec {
21
+ compact: string;
22
+ kind?: 'substring' | 'regex';
23
+ label?: string;
24
+ messageWhenMatched?: string;
25
+ }
26
+ interface SquashFooterSpec {
27
+ compact: string;
28
+ kind?: 'substring' | 'regex';
29
+ }
30
+ interface SquashButtonRuleSpec {
31
+ compact: string;
32
+ kind?: 'substring' | 'regex';
33
+ labels: string[];
34
+ }
35
+ export interface ApprovalSquashSpec {
36
+ $schema: 'adhdev:tui/approval-squash@1';
37
+ cues: SquashCueSpec[];
38
+ footers?: SquashFooterSpec[];
39
+ buttonRules: SquashButtonRuleSpec[];
40
+ scope?: 'tail-window' | 'whole-screen';
41
+ tailWindowLines?: number;
42
+ }
43
+ /**
44
+ * The canonical normalisation. Identical to codex-cli's `compactText`:
45
+ * lowercase, then strip everything that is not a-z or 0-9.
46
+ *
47
+ * Exported for tests and for the (rare) provider that wants to compose this
48
+ * with extra normalisation steps.
49
+ */
50
+ export declare function compactText(value: string): string;
51
+ declare function matchSubstringOrRegex(needle: string, kind: 'substring' | 'regex' | undefined, haystack: string): boolean;
52
+ declare function scopeText(spec: ApprovalSquashSpec, input: CliApprovalInput): string;
53
+ export declare function buildParseApprovalFromSquash(spec: ApprovalSquashSpec): CliParseApprovalFn;
54
+ export declare const __internal: {
55
+ compactText: typeof compactText;
56
+ matchSubstringOrRegex: typeof matchSubstringOrRegex;
57
+ scopeText: typeof scopeText;
58
+ };
59
+ export {};