@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,65 @@
1
+ /**
2
+ * buildParseApprovalFromTui
3
+ *
4
+ * Turns a `tui/modal@1` block into a runtime
5
+ * `(input: CliApprovalInput) => CliApprovalModal | null` function.
6
+ *
7
+ * Contract rules enforced (sprint-2026-06):
8
+ * - Returns null when the question pattern is not visible.
9
+ * - Returns null when the button list is empty or shorter than minButtons.
10
+ * - Button labels are raw text; never rewritten (e.g. "Yes, and don't ask
11
+ * again for X" stays verbatim).
12
+ * - Modal scope respects between-last-two-separators / window-around-question
13
+ * / whole-screen to avoid false-positives from numbered lists in
14
+ * assistant prose.
15
+ */
16
+ import type { CliParseApprovalFn } from '../../types/cli/index.js';
17
+ import { type VisibleRegionSpec } from './visible-region.js';
18
+ interface ModalQuestionVariant {
19
+ regex: string;
20
+ flags?: string;
21
+ label?: string;
22
+ }
23
+ interface ModalContextHeader {
24
+ regex: string;
25
+ flags?: string;
26
+ }
27
+ export interface ModalTuiSpec {
28
+ $schema: 'adhdev:tui/modal@1';
29
+ questionPattern: string;
30
+ questionFlags?: string;
31
+ questionVariants?: ModalQuestionVariant[];
32
+ buttonPattern: string;
33
+ buttonFlags?: string;
34
+ buttonLabelGroup?: number;
35
+ /**
36
+ * Optional fallback for terminals that render all options on a single line
37
+ * (e.g. Antigravity feedback survey: `[0] skip [1] yes [2] no [3] still using`).
38
+ * When per-line button extraction collects fewer than `minButtons`, the
39
+ * builder makes a second pass with this regex (global match, capture group 1
40
+ * is the label).
41
+ */
42
+ inlineButtonPattern?: string;
43
+ inlineButtonFlags?: string;
44
+ scope?: 'between-last-two-separators' | 'window-around-question' | 'whole-screen';
45
+ scopeWindowLines?: number;
46
+ contextHeader?: ModalContextHeader;
47
+ continuationLines?: boolean;
48
+ minButtons?: number;
49
+ }
50
+ declare function findQuestionLineIndex(spec: ModalTuiSpec, lines: string[]): {
51
+ index: number;
52
+ matchedSource: 'primary' | string;
53
+ } | null;
54
+ declare function scopeLines(spec: ModalTuiSpec, lines: string[], questionIndex: number): {
55
+ start: number;
56
+ end: number;
57
+ };
58
+ declare function extractButtons(spec: ModalTuiSpec, lines: string[], windowStart: number, windowEnd: number): string[];
59
+ export declare function buildParseApprovalFromTui(spec: ModalTuiSpec, visibleRegion?: VisibleRegionSpec): CliParseApprovalFn;
60
+ export declare const __internal: {
61
+ findQuestionLineIndex: typeof findQuestionLineIndex;
62
+ scopeLines: typeof scopeLines;
63
+ extractButtons: typeof extractButtons;
64
+ };
65
+ export {};
@@ -0,0 +1,91 @@
1
+ /**
2
+ * buildParseSessionFromTui — synthesize a parseSession function from the
3
+ * manifest tui block alone.
4
+ *
5
+ * Composition:
6
+ * 1. detectStatus from tui.spinner/modal/settledPrompt/dispatchOrder
7
+ * (delegated to buildDetectStatusFromTui)
8
+ * 2. parseApproval from tui.modal (delegated to buildParseApprovalFromTui)
9
+ * 3. message extraction from tui.transcriptPty (this file)
10
+ *
11
+ * The result has the same shape as the legacy parse_output:
12
+ * { status, messages, activeModal, transcriptAuthority?, coverage?, providerSessionId? }
13
+ *
14
+ * Identity stamping (providerUnitKey, bubbleId, sequence, bubbleState) is
15
+ * applied by the caller, mirroring _shared/parse_session.js. We export the
16
+ * stamper as `normalizeMessageIdentity` for reuse.
17
+ */
18
+ import { type ModalTuiSpec } from './parse-approval.js';
19
+ export interface PrefixSpec {
20
+ regex: string;
21
+ flags?: string;
22
+ }
23
+ export interface ToolPrefixSpec extends PrefixSpec {
24
+ skip?: boolean;
25
+ }
26
+ export interface ChromePatternSpec {
27
+ regex: string;
28
+ flags?: string;
29
+ label?: string;
30
+ }
31
+ export interface TranscriptPtySpec {
32
+ $schema?: 'adhdev:tui/transcript-pty@1';
33
+ assistantPrefix: PrefixSpec;
34
+ userPrefix?: PrefixSpec;
35
+ toolPrefix?: ToolPrefixSpec;
36
+ continuationLine?: {
37
+ indented?: boolean;
38
+ };
39
+ chromePatterns?: ChromePatternSpec[];
40
+ stripLeadingChrome?: boolean;
41
+ scope?: 'screen' | 'buffer' | 'tail';
42
+ }
43
+ export interface SessionIdExtractionSpec {
44
+ $schema?: 'adhdev:tui/session-id-extraction@1';
45
+ regex: string;
46
+ flags?: string;
47
+ scope?: 'screen' | 'tail' | 'buffer';
48
+ label?: string;
49
+ }
50
+ export interface ParseSessionTuiSpec {
51
+ spinner?: any;
52
+ settledPrompt?: any;
53
+ modal?: ModalTuiSpec;
54
+ dispatchOrder?: any;
55
+ transcriptPty: TranscriptPtySpec;
56
+ sessionIdExtraction?: SessionIdExtractionSpec;
57
+ }
58
+ export interface SynthesizedMessage {
59
+ role: 'user' | 'assistant';
60
+ kind?: 'standard' | 'tool';
61
+ content: string;
62
+ receivedAt?: number;
63
+ }
64
+ export interface SynthesizedSession {
65
+ status: string | null;
66
+ messages: SynthesizedMessage[];
67
+ activeModal: {
68
+ message: string;
69
+ buttons: string[];
70
+ } | null;
71
+ modal: {
72
+ message: string;
73
+ buttons: string[];
74
+ } | null;
75
+ parsedStatus: string | null;
76
+ transcriptAuthority?: 'provider' | 'daemon';
77
+ coverage?: 'full' | 'tail' | 'current-turn';
78
+ providerSessionId?: string;
79
+ }
80
+ export declare function normalizeMessageIdentity<T extends {
81
+ role?: string;
82
+ kind?: string;
83
+ content?: string;
84
+ }>(messages: T[], status: string): Array<T & {
85
+ providerUnitKey: string;
86
+ bubbleId: string;
87
+ sequence: number;
88
+ _turnKey: string;
89
+ bubbleState: 'streaming' | 'final';
90
+ }>;
91
+ export declare function buildParseSessionFromTui(spec: ParseSessionTuiSpec): (input: any) => SynthesizedSession;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * applyVisibleRegion
3
+ *
4
+ * Scopes the raw terminal text to the "visible region" declared by a
5
+ * `tui/visible-region@1` spec before handing it to detect-status and
6
+ * parse-approval matchers.
7
+ *
8
+ * Scope semantics:
9
+ * screen → full text unchanged (daemon already passes rendered screen)
10
+ * buffer → full text unchanged
11
+ * tail → last `tailChars` characters (default 4000)
12
+ * between-anchors → text between most recent (or first) top/bottom anchor
13
+ * regex matches; falls back to full text if anchors not found
14
+ *
15
+ * selectAnchor:
16
+ * "last" → use the LAST occurrence of the top anchor — useful for providers
17
+ * like Antigravity that redraw a separator + prompt on every turn;
18
+ * this excludes all scrollback above the current session frame.
19
+ * "first" → use the FIRST occurrence (default per schema).
20
+ */
21
+ interface AnchorPatternSpec {
22
+ pattern: string;
23
+ flags?: string;
24
+ }
25
+ interface AnchorsSpec {
26
+ top?: AnchorPatternSpec;
27
+ bottom?: AnchorPatternSpec;
28
+ }
29
+ export interface VisibleRegionSpec {
30
+ $schema?: 'adhdev:tui/visible-region@1';
31
+ scope: 'screen' | 'tail' | 'buffer' | 'between-anchors';
32
+ tailChars?: number;
33
+ anchors?: AnchorsSpec;
34
+ selectAnchor?: 'first' | 'last';
35
+ stripCues?: string[];
36
+ }
37
+ /**
38
+ * Apply the visible-region spec to `text` and return the scoped substring.
39
+ * Never throws on missing anchors — falls back to the full text instead.
40
+ */
41
+ export declare function applyVisibleRegion(spec: VisibleRegionSpec, text: string): string;
42
+ export {};
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Provider fixture format — v1.
3
+ *
4
+ * A fixture is two files committed alongside a provider:
5
+ *
6
+ * fixtures/<scenario>.pty — raw PTY byte capture (binary or text)
7
+ * fixtures/<scenario>.expected.json — expected handler outputs at one
8
+ * or more anchor frames
9
+ *
10
+ * Scenarios cover one concrete agent behaviour: cold start, prompt sent,
11
+ * generating with tool call, approval modal, idle after assistant complete,
12
+ * etc.
13
+ *
14
+ * The replay runner feeds the .pty bytes through the daemon's terminal
15
+ * emulator (TerminalTranscriptAccumulator) building up snapshots at each
16
+ * declared anchor, invokes the provider handlers, and compares results
17
+ * to the .expected.json shape.
18
+ *
19
+ * This file is the source of truth for the format. Schema mirror at
20
+ * sdk/v1/schemas/fixture-expected.schema.json.
21
+ */
22
+ import type { CliApprovalModal, CliChatMessage, CliStatus } from '../types/cli/index.js';
23
+ /**
24
+ * The top-level shape of <scenario>.expected.json.
25
+ *
26
+ * `anchors` is an ordered list; each anchor declares a point in the
27
+ * PTY stream (by byte offset or by sentinel string) and the expected
28
+ * handler outputs at that point.
29
+ */
30
+ export interface FixtureExpected {
31
+ /** Schema version. Currently always 1. */
32
+ version: 1;
33
+ /** Free-form human description of the scenario. */
34
+ description?: string;
35
+ /** Provider type this fixture is for. */
36
+ providerType: string;
37
+ /** Path (relative to the .expected.json file) of the corresponding .pty file. */
38
+ ptyFile: string;
39
+ /** Optional cols/rows the recording was captured under. Defaults to 80x24. */
40
+ terminal?: {
41
+ cols: number;
42
+ rows: number;
43
+ };
44
+ /** Anchor points. Order matters; bytes are replayed up to each anchor. */
45
+ anchors: FixtureAnchor[];
46
+ }
47
+ export interface FixtureAnchor {
48
+ /** Human-readable identifier. Used in test reporter output. */
49
+ name: string;
50
+ /** Optional description. */
51
+ description?: string;
52
+ /**
53
+ * Where to stop replaying bytes. Exactly one of:
54
+ * - `untilByte` — stop after the Nth raw byte
55
+ * - `untilSentinel` — stop the first time `sentinel` appears in the
56
+ * accumulated rendered screen text
57
+ */
58
+ untilByte?: number;
59
+ untilSentinel?: string;
60
+ /**
61
+ * Expected handler outputs. All keys optional; the replay runner only
62
+ * checks the keys you provide.
63
+ */
64
+ expect: {
65
+ detectStatus?: CliStatus | null;
66
+ parseApproval?: CliApprovalModal | null;
67
+ parseSession?: {
68
+ status?: CliStatus;
69
+ modal?: CliApprovalModal | null;
70
+ providerSessionId?: string;
71
+ /**
72
+ * Either an exact array (deep-equal) or a shape declaration that lets
73
+ * you match only the role/kind/content shape without pinning specific
74
+ * fields. Pin specific message-by-message when you care about content.
75
+ */
76
+ messages?: CliChatMessage[] | MessageShape[];
77
+ };
78
+ };
79
+ /**
80
+ * Optional notes about why this anchor exists. Encouraged for
81
+ * regression-style fixtures so future maintainers know what bug the
82
+ * fixture catches.
83
+ */
84
+ notes?: string;
85
+ }
86
+ /**
87
+ * A shape declaration that matches a message by role/kind plus optional
88
+ * content substring or regex. Use this instead of an exact CliChatMessage
89
+ * when you do not want to pin exact text.
90
+ */
91
+ export interface MessageShape {
92
+ role: CliChatMessage['role'];
93
+ kind?: CliChatMessage['kind'];
94
+ /** Substring the content must contain. Plain string only. */
95
+ contentIncludes?: string;
96
+ /** Regex the content must match. */
97
+ contentMatches?: {
98
+ source: string;
99
+ flags?: string;
100
+ };
101
+ }
102
+ /**
103
+ * Result of replaying one anchor — what the handlers actually emitted.
104
+ * Used by the test runner to produce diff output.
105
+ */
106
+ export interface AnchorReplayResult {
107
+ anchor: FixtureAnchor;
108
+ passes: boolean;
109
+ diffs: string[];
110
+ actual: {
111
+ detectStatus?: CliStatus | null;
112
+ parseApproval?: CliApprovalModal | null;
113
+ parseSession?: {
114
+ status: CliStatus;
115
+ modal: CliApprovalModal | null;
116
+ providerSessionId?: string;
117
+ messages: CliChatMessage[];
118
+ };
119
+ };
120
+ }
121
+ export interface FixtureReplayResult {
122
+ fixturePath: string;
123
+ expected: FixtureExpected;
124
+ perAnchor: AnchorReplayResult[];
125
+ overallPasses: boolean;
126
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Fixture tooling — public surface.
3
+ *
4
+ * Imported by `adhdev provider test` and by daemon-core's CI regression
5
+ * suite. Format types and the replay runner are stable v1.
6
+ */
7
+ export type { FixtureExpected, FixtureAnchor, MessageShape, AnchorReplayResult, FixtureReplayResult, } from './format.js';
8
+ export { loadFixtureExpected, replayFixture, formatReplayReport, type CliProviderHandlers, type ReplayOptions, } from './replay.js';
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Fixture replay runner.
3
+ *
4
+ * Given a `.pty` byte capture and `.expected.json` declaration, replay the
5
+ * bytes through the daemon's TerminalTranscriptAccumulator, invoke the
6
+ * provider handlers at each anchor, and diff against expectations.
7
+ *
8
+ * Used by:
9
+ * - `adhdev provider test` (daemon-cloud CLI)
10
+ * - daemon-core CI suite for production-provider regression tests
11
+ * - external authors as `adhdev provider test ./`
12
+ */
13
+ import { type CliScriptInput as InternalCliScriptInput, type CliStatusInput as InternalCliStatusInput, type CliApprovalInput as InternalCliApprovalInput, type ParsedSession as InternalParsedSession } from '../../../../cli-adapters/provider-cli-shared.js';
14
+ import type { FixtureExpected, FixtureReplayResult } from './format.js';
15
+ export interface CliProviderHandlers {
16
+ createState?: () => Record<string, unknown>;
17
+ parseSession: (state: unknown, input: InternalCliScriptInput) => InternalParsedSession;
18
+ detectStatus: (input: InternalCliStatusInput) => string | null;
19
+ parseApproval: (input: InternalCliApprovalInput) => {
20
+ message: string;
21
+ buttons: string[];
22
+ } | null;
23
+ parseOutput?: (state: unknown, input: InternalCliScriptInput) => unknown;
24
+ }
25
+ export interface ReplayOptions {
26
+ /** Override accumulator dimensions. Defaults to the fixture's terminal block or 80x24. */
27
+ cols?: number;
28
+ rows?: number;
29
+ /** Provided manually (e.g. by tests). Defaults to wall-clock at replay start. */
30
+ spawnAt?: number;
31
+ }
32
+ export declare function loadFixtureExpected(expectedPath: string): FixtureExpected;
33
+ export declare function replayFixture(expectedPath: string, handlers: CliProviderHandlers, options?: ReplayOptions): FixtureReplayResult;
34
+ /**
35
+ * Format a result as a human-readable report. Returns the multi-line string;
36
+ * caller decides whether to print or assert.
37
+ */
38
+ export declare function formatReplayReport(result: FixtureReplayResult): string;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Provider SDK — v1 surface.
3
+ *
4
+ * Internal consumers (daemon-core) import directly from here.
5
+ * External consumers (provider authors) import from the npm package
6
+ * `@adhdev/provider-types` (Apache 2.0), which is extracted from this
7
+ * source at build time.
8
+ */
9
+ export * from './types/cli/index.js';
10
+ export * from './types/common/index.js';
11
+ export { buildDetectStatusFromTui, type DetectStatusTuiSpec, } from './builders/cli/detect-status.js';
12
+ export { buildParseApprovalFromTui, type ModalTuiSpec, } from './builders/cli/parse-approval.js';
13
+ export { applyVisibleRegion, type VisibleRegionSpec, } from './builders/cli/visible-region.js';
14
+ export { buildParseApprovalFromSquash, compactText, type ApprovalSquashSpec, } from './builders/cli/parse-approval-squash.js';
15
+ export { buildParseSessionFromTui, normalizeMessageIdentity, type ParseSessionTuiSpec, type TranscriptPtySpec, type SessionIdExtractionSpec, type SynthesizedMessage, type SynthesizedSession, } from './builders/cli/parse-session.js';
16
+ export { buildDetectStatusFromAcp, type AcpSessionSpec, type AcpStatusInput, type AcpDetectedStatus, } from './builders/acp/detect-status.js';
17
+ export { loadFixtureExpected, replayFixture, formatReplayReport, type FixtureExpected, type FixtureAnchor, type MessageShape, type AnchorReplayResult, type FixtureReplayResult, type CliProviderHandlers, type ReplayOptions, } from './fixture-tooling/index.js';
18
+ export { analyzeOverrideTaint, formatTaintResult, type TaintLevel, type TaintCategory, type TaintFinding, type TaintResult, validateCliProviderManifest, formatManifestValidationIssues, type ManifestValidationIssue, type ManifestValidationResult, } from './validators/index.js';
19
+ export declare const V1_PRIMITIVE_CATALOG: Readonly<{
20
+ readonly acp: readonly ["adhdev:acp/session-protocol@1"];
21
+ readonly tui: readonly ["adhdev:tui/prompt-marker@1", "adhdev:tui/spinner@1", "adhdev:tui/settled-prompt@1", "adhdev:tui/assistant-block@1", "adhdev:tui/tool-block@1", "adhdev:tui/thinking-block@1", "adhdev:tui/user-echo@1", "adhdev:tui/modal@1", "adhdev:tui/modal-as-message@1", "adhdev:tui/footer-chrome@1", "adhdev:tui/welcome-screen@1", "adhdev:tui/visible-region@1", "adhdev:tui/cue-ordering@1", "adhdev:tui/dispatch-order@1", "adhdev:tui/index-finder@1", "adhdev:tui/status-downgrade@1", "adhdev:tui/approval-stitching@1", "adhdev:tui/approval-squash@1", "adhdev:tui/media-input@1", "adhdev:tui/session-id-extraction@1", "adhdev:tui/error-detection@1"];
22
+ readonly nativeHistory: readonly ["adhdev:native-history/codex-rollout@1", "adhdev:native-history/claude-jsonl@1", "adhdev:native-history/anthropic-cli-transcript@1", "adhdev:native-history/hermes-session@1"];
23
+ readonly cliCapability: readonly ["adhdev:cli/capability-list@1", "adhdev:cli/control-state@1", "adhdev:cli/capability-action@1", "adhdev:cli/control-toggle@1", "adhdev:cli/picker-open@1", "adhdev:cli/picker-set@1"];
24
+ readonly common: readonly ["adhdev:common/setting-boolean@1", "adhdev:common/setting-number@1", "adhdev:common/setting-string@1", "adhdev:common/setting-select@1", "adhdev:common/capability-input@1", "adhdev:common/capability-output@1", "adhdev:common/capability-controls@1", "adhdev:common/auth-env-var@1", "adhdev:common/auth-cli-command@1", "adhdev:common/spawn@1", "adhdev:common/timeouts@1", "adhdev:common/resume@1", "adhdev:common/mesh-coordinator@1"];
25
+ readonly override: readonly ["adhdev:override/cli-parse-session@1", "adhdev:override/cli-detect-status@1", "adhdev:override/cli-parse-approval@1", "adhdev:override/cli-parse-output@1", "adhdev:override/cli-read-native-history@1", "adhdev:override/cli-list-native-history@1", "adhdev:override/cli-capability-handler@1"];
26
+ }>;
27
+ /** Aggregate flat list — for provider catalog endpoints. */
28
+ export declare const V1_ALL_PRIMITIVES: ReadonlyArray<string>;
29
+ /** Catalog version label exposed at `registry.adhf.dev/primitives`. */
30
+ export declare const V1_CONTRACT_VERSION: "1.0.0";
@@ -0,0 +1,193 @@
1
+ /**
2
+ * @file README-design.ts
3
+ * @description Phase 5 Sandbox Design Document
4
+ *
5
+ * This file is a design document written as TypeScript JSDoc/comments.
6
+ * It is NOT executable — it exists to communicate the sandboxing architecture
7
+ * to future implementors, reviewers, and delegated agents.
8
+ *
9
+ * =============================================================================
10
+ * CONTEXT: EXTENDED-LEGACY PROVIDER SCRIPT EXECUTION (PRE-PHASE-5)
11
+ * =============================================================================
12
+ *
13
+ * "Extended-legacy" providers (e.g. hermes-cli, and any provider using the
14
+ * `compatibility` script format) supply JavaScript override scripts that the
15
+ * daemon loads and calls directly via Node.js `require()`:
16
+ *
17
+ * provider-loader.ts → require(scriptsPath) // load
18
+ * cli-script-runner.ts → this.invoke(fn, input) // call at runtime
19
+ *
20
+ * The loaded module exports plain JS functions (detectStatus, parseApproval,
21
+ * parseSession, etc.). These functions run **in the daemon process with full
22
+ * Node.js access** — no memory cap, no CPU limit, full `require`, `fs`, `net`.
23
+ *
24
+ * The `extended-legacy` label refers to providers that still use the JS-function
25
+ * override layer rather than the pure-declarative `tui` manifest block. The
26
+ * claude-cli provider (scripts/v1/detect_status.js) is the canonical example of
27
+ * this pattern: it delegates to `sdk.declarativeDetectStatus` for the raw verdict
28
+ * but adds a stateful generating-hold on top that cannot be expressed declaratively.
29
+ *
30
+ * =============================================================================
31
+ * PHASE 5 GOAL: isolated-vm SANDBOXING
32
+ * =============================================================================
33
+ *
34
+ * Phase 5 wraps each script call in an isolated-vm context so that:
35
+ *
36
+ * 1. CPU time is capped per call (default 50 ms hard limit).
37
+ * 2. Memory is capped per Isolate (default 32 MB heap limit).
38
+ * 3. The script cannot reach back into the daemon process — no `require`,
39
+ * no `import`, no Node.js built-ins (fs, net, child_process, etc.).
40
+ * 4. Execution errors and timeouts are caught and surfaced cleanly instead
41
+ * of propagating exceptions that could crash the daemon parse loop.
42
+ *
43
+ * =============================================================================
44
+ * SANDBOX EXECUTION MODEL
45
+ * =============================================================================
46
+ *
47
+ * Each call to SandboxedScriptRunner.run() creates a **fresh evaluation context**
48
+ * inside the Isolate. Persistent state across calls (e.g. the `state` object in
49
+ * detectStatus) is cloned in/out of the sandbox via structured serialization.
50
+ *
51
+ * Flow per call:
52
+ *
53
+ * 1. Serialize `context` (input + state) into a plain JSON-safe value.
54
+ * 2. Create a new isolated-vm Context from the shared Isolate.
55
+ * 3. Inject allowed globals (see below) into the context.
56
+ * 4. Compile + run the script string with `cpuTimeLimitMs` enforced.
57
+ * 5. Deserialize and return the result.
58
+ * 6. Discard the Context (short-lived).
59
+ *
60
+ * The Isolate itself is reused across calls so that the V8 JIT and snapshot
61
+ * warm-up cost is paid once per runner instance, not per call.
62
+ *
63
+ * Memory limit (32 MB) applies to the Isolate heap. If a script allocates
64
+ * beyond the limit, isolated-vm throws RangeError: Array buffer allocation
65
+ * failed (or similar). The runner catches this and returns an error signal.
66
+ *
67
+ * CPU time limit (50 ms) is a wall-clock limit on the script execution tick
68
+ * measured by isolated-vm's internal timer. Async operations inside the script
69
+ * are not permitted (the context is synchronous-only).
70
+ *
71
+ * =============================================================================
72
+ * ALLOWED API SURFACE (what scripts CAN use)
73
+ * =============================================================================
74
+ *
75
+ * The following globals are explicitly injected into the sandbox context:
76
+ *
77
+ * - `input` — the calling frame's input object (CliStatusInput, etc.)
78
+ * - `sdk` — a controlled facade object; see sdk shape below
79
+ * - `console.log` — redirected to daemon LOG.debug; console.error/warn also
80
+ * allowed but routed to LOG.warn
81
+ * - `JSON` — standard JSON object (parse + stringify)
82
+ * - `Math` — standard Math object
83
+ * - `Date` — Date constructor (read-only; no timers)
84
+ * - `String`, `Number`, `Boolean`, `Array`, `Object`, `RegExp`
85
+ * — standard constructors
86
+ * - `undefined`, `null`, `NaN`, `Infinity`, `parseInt`, `parseFloat`,
87
+ * `isNaN`, `isFinite`, `encodeURIComponent`, `decodeURIComponent`
88
+ *
89
+ * sdk shape injected into the sandbox:
90
+ *
91
+ * sdk.declarativeDetectStatus(input) → string
92
+ * Calls the daemon-built declarative verdict function. The implementation
93
+ * serializes the call, executes the declarative function in daemon-land,
94
+ * and returns the result string into the sandbox.
95
+ *
96
+ * sdk.tailHasPrimitive(input, primitive) → boolean
97
+ * Returns true if the screen tail contains the named TUI primitive token.
98
+ *
99
+ * sdk.state (object | null)
100
+ * The per-session state object returned by createState(). Mutable inside
101
+ * the script; mutations are copied back after the call completes.
102
+ *
103
+ * =============================================================================
104
+ * FORBIDDEN API SURFACE (what scripts CANNOT use)
105
+ * =============================================================================
106
+ *
107
+ * The sandbox provides NO access to:
108
+ *
109
+ * - `require` / `import` / `module` / `exports` / `__dirname` / `__filename`
110
+ * - `process` (no env, no exit, no stdio)
111
+ * - `fs`, `path`, `os`, `net`, `http`, `https`, `child_process`, `worker_threads`
112
+ * - `setTimeout`, `setInterval`, `setImmediate`, `clearTimeout`, `clearInterval`
113
+ * (async scheduling is blocked; scripts must be synchronous)
114
+ * - `Promise`, `async/await` (not injected; async resolution is disallowed)
115
+ * - `WebAssembly` (not injected)
116
+ * - `Buffer`, `TextEncoder`, `TextDecoder` (not injected by default; can be
117
+ * added to allowedGlobals if a specific script family requires them)
118
+ * - Any daemon-internal module, class, or singleton
119
+ *
120
+ * =============================================================================
121
+ * MIGRATION PATH FOR HERMES-CLI (when Phase 5 lands)
122
+ * =============================================================================
123
+ *
124
+ * hermes-cli (adhdev-providers/cli/hermes-cli) uses the `compatibility` script
125
+ * format with `defaultScriptDir: "scripts/1.0"`. Its scripts are loaded via
126
+ * require() in provider-loader.ts → loadScriptsFromDir() and called via
127
+ * CliScriptRunner.invoke().
128
+ *
129
+ * Phase 5 migration steps:
130
+ *
131
+ * 1. The ProviderLoader detects at load time whether a provider's scriptDir
132
+ * uses the extended-legacy JS override layer (i.e. scripts.js exports
133
+ * function(s) rather than a pure-declarative object).
134
+ *
135
+ * 2. For extended-legacy providers, instead of storing the raw Function
136
+ * references in `normalizedProvider.scripts`, the loader stores the
137
+ * **script source strings** alongside a flag `sandboxed: true`.
138
+ *
139
+ * 3. CliScriptRunner is extended with an optional SandboxedScriptRunner
140
+ * member. When present, invoke() routes script calls through the sandbox
141
+ * instead of calling the function directly.
142
+ *
143
+ * 4. hermes-cli's scripts/1.0/scripts.js is updated (or a scripts/2.0/ dir
144
+ * created) with source strings compatible with the allowed API surface.
145
+ * In particular:
146
+ * - `require` calls must be removed.
147
+ * - Any direct Node.js module access must be replaced with sdk equivalents.
148
+ *
149
+ * 5. The daemon's dev server (port 19280) exposes a /sandbox/test endpoint
150
+ * that accepts a script source string + input and returns the sandboxed
151
+ * result — useful for provider authors to iterate without restarting.
152
+ *
153
+ * 6. Fallback: providers that have not been migrated to the sandbox API still
154
+ * run via DirectEvalRunner (see script-runner.ts) — unsafe but compatible,
155
+ * with a visible deprecation warning in the daemon log.
156
+ *
157
+ * =============================================================================
158
+ * SandboxedScriptRunner INTERFACE (to be satisfied by the Phase 5 implementation)
159
+ * =============================================================================
160
+ *
161
+ * The interface defined in script-runner.ts must be satisfied by two
162
+ * implementations:
163
+ *
164
+ * DirectEvalRunner — no-op stub; runs script via eval() in a try/catch.
165
+ * Used when isolated-vm is not installed or when
166
+ * sandboxing is explicitly disabled for development.
167
+ * Logs a warning on first use.
168
+ * Safe to use in tests (no native dependency).
169
+ *
170
+ * IsolatedVmRunner — full implementation using the `isolated-vm` npm package.
171
+ * Created by createScriptRunner() when isolated-vm is
172
+ * importable. Not committed to the OSS package — loaded
173
+ * dynamically at runtime.
174
+ *
175
+ * Factory function createScriptRunner(options?) returns:
176
+ * - IsolatedVmRunner if `require('isolated-vm')` succeeds
177
+ * - DirectEvalRunner otherwise, with a LOG.warn() deprecation notice
178
+ *
179
+ * =============================================================================
180
+ * FILE LAYOUT (Phase 5 deliverables under this directory)
181
+ * =============================================================================
182
+ *
183
+ * sandbox/
184
+ * README-design.ts ← this file (design document)
185
+ * script-runner.ts ← SandboxedScriptRunner interface + DirectEvalRunner stub
186
+ * isolated-vm-runner.ts ← IsolatedVmRunner (Phase 5 full impl, not yet committed)
187
+ *
188
+ * Related files that will be touched in Phase 5:
189
+ * cli-adapters/cli-script-runner.ts ← add optional SandboxedScriptRunner member
190
+ * providers/provider-loader.ts ← detect extended-legacy, store source strings
191
+ * providers/cli-provider-instance.ts ← TODO comment (already added in Phase 4 scaffold)
192
+ */
193
+ export {};