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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/dist/boot/daemon-lifecycle.d.ts +9 -0
  2. package/dist/boot/process-hardening.d.ts +50 -0
  3. package/dist/build-info.d.ts +37 -0
  4. package/dist/chat/source-machine.d.ts +166 -0
  5. package/dist/chat/source-resolver.d.ts +104 -0
  6. package/dist/chat/subscription-updates.d.ts +1 -0
  7. package/dist/cli-adapter-types.d.ts +68 -2
  8. package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
  9. package/dist/cli-adapters/cli-state-engine.d.ts +220 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +137 -64
  11. package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
  12. package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
  13. package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
  14. package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
  15. package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
  16. package/dist/cli-adapters/resolve-executable.d.ts +69 -0
  17. package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
  18. package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
  19. package/dist/cli-adapters/terminal-screen.d.ts +4 -11
  20. package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
  21. package/dist/commands/chat-commands-read.d.ts +23 -0
  22. package/dist/commands/chat-commands-scope.d.ts +39 -0
  23. package/dist/commands/chat-commands-shared.d.ts +33 -0
  24. package/dist/commands/chat-commands-write.d.ts +14 -0
  25. package/dist/commands/chat-commands.d.ts +10 -23
  26. package/dist/commands/cli-manager.d.ts +71 -1
  27. package/dist/commands/handler.d.ts +125 -0
  28. package/dist/commands/high-family/index.d.ts +3 -0
  29. package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
  30. package/dist/commands/high-family/mesh-events.d.ts +2 -0
  31. package/dist/commands/high-family/mesh-status.d.ts +2 -0
  32. package/dist/commands/high-family/types.d.ts +64 -0
  33. package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
  34. package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
  35. package/dist/commands/low-family/diagnostics.d.ts +2 -0
  36. package/dist/commands/low-family/index.d.ts +3 -0
  37. package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
  38. package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
  39. package/dist/commands/low-family/notification.d.ts +2 -0
  40. package/dist/commands/low-family/refine-config.d.ts +2 -0
  41. package/dist/commands/low-family/session-host.d.ts +2 -0
  42. package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
  43. package/dist/commands/low-family/status-meta.d.ts +2 -0
  44. package/dist/commands/low-family/types.d.ts +33 -0
  45. package/dist/commands/med-family/cli-agent.d.ts +2 -0
  46. package/dist/commands/med-family/fast-forward.d.ts +2 -0
  47. package/dist/commands/med-family/ide.d.ts +10 -0
  48. package/dist/commands/med-family/index.d.ts +3 -0
  49. package/dist/commands/med-family/mesh-crud.d.ts +48 -0
  50. package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
  51. package/dist/commands/med-family/mesh-queue.d.ts +2 -0
  52. package/dist/commands/med-family/mesh-restart.d.ts +2 -0
  53. package/dist/commands/med-family/types.d.ts +152 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router-aggregate-status.d.ts +24 -0
  56. package/dist/commands/router-mesh-session-owner.d.ts +59 -0
  57. package/dist/commands/router-refine.d.ts +151 -0
  58. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  59. package/dist/commands/router.d.ts +203 -15
  60. package/dist/commands/upgrade-helper.d.ts +41 -1
  61. package/dist/config/chat-history.d.ts +11 -0
  62. package/dist/config/config.d.ts +19 -0
  63. package/dist/config/mesh-config.d.ts +66 -0
  64. package/dist/config/mesh-json-config.d.ts +199 -0
  65. package/dist/config/registry-resolver.d.ts +54 -0
  66. package/dist/config/repo-settings.d.ts +77 -0
  67. package/dist/config/state-store.d.ts +30 -0
  68. package/dist/daemon/dev-server.d.ts +0 -2
  69. package/dist/detection/cli-detector.d.ts +17 -0
  70. package/dist/detection/ide-detector.d.ts +13 -0
  71. package/dist/detection/win32-ide-version.d.ts +37 -0
  72. package/dist/git/change-impact-config.d.ts +159 -0
  73. package/dist/git/git-commands.d.ts +26 -2
  74. package/dist/git/git-diff.d.ts +6 -0
  75. package/dist/git/git-executor.d.ts +11 -0
  76. package/dist/git/git-status.d.ts +80 -0
  77. package/dist/git/git-types.d.ts +2 -50
  78. package/dist/git/git-worktree.d.ts +71 -1
  79. package/dist/git/index.d.ts +3 -1
  80. package/dist/index.d.ts +70 -17
  81. package/dist/index.js +53556 -19074
  82. package/dist/index.js.map +1 -1
  83. package/dist/index.mjs +53380 -19063
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/installer.d.ts +1 -4
  86. package/dist/ipc/local-ipc-server.d.ts +91 -0
  87. package/dist/launch.d.ts +1 -1
  88. package/dist/logging/async-batch-writer.d.ts +10 -0
  89. package/dist/logging/debug-config.d.ts +16 -0
  90. package/dist/logging/log-redactor.d.ts +24 -0
  91. package/dist/logging/log-tail-reader.d.ts +81 -0
  92. package/dist/logging/logger.d.ts +1 -1
  93. package/dist/mesh/contracts.d.ts +256 -0
  94. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  95. package/dist/mesh/coordinator-registry.d.ts +59 -0
  96. package/dist/mesh/mesh-active-work.d.ts +203 -0
  97. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  98. package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
  99. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  100. package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
  101. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  102. package/dist/mesh/mesh-event-forwarding.d.ts +58 -0
  103. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  104. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  105. package/dist/mesh/mesh-events-pending.d.ts +258 -0
  106. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  107. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  108. package/dist/mesh/mesh-events.d.ts +6 -49
  109. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  110. package/dist/mesh/mesh-host-ownership.d.ts +21 -1
  111. package/dist/mesh/mesh-init.d.ts +128 -0
  112. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  113. package/dist/mesh/mesh-ledger.d.ts +139 -1
  114. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  115. package/dist/mesh/mesh-missions.d.ts +281 -0
  116. package/dist/mesh/mesh-node-identity.d.ts +310 -0
  117. package/dist/mesh/mesh-queue-assignment.d.ts +162 -0
  118. package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
  119. package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
  120. package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
  121. package/dist/mesh/mesh-reconcile-loop.d.ts +84 -0
  122. package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
  123. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  124. package/dist/mesh/mesh-refine-gates.d.ts +457 -0
  125. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  126. package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
  127. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  128. package/dist/mesh/mesh-routing.d.ts +70 -0
  129. package/dist/mesh/mesh-runtime-store.d.ts +567 -0
  130. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  131. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  132. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  133. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +34 -0
  134. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  135. package/dist/mesh/mesh-work-queue.d.ts +392 -1
  136. package/dist/mesh/preview-freshness.d.ts +28 -0
  137. package/dist/mesh/refine-config.d.ts +97 -0
  138. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  139. package/dist/providers/acp-provider-instance.d.ts +5 -0
  140. package/dist/providers/approval-utils.d.ts +46 -0
  141. package/dist/providers/chat-message-normalization.d.ts +58 -1
  142. package/dist/providers/cli-provider-effect-format.d.ts +30 -0
  143. package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
  144. package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
  145. package/dist/providers/cli-provider-instance-types.d.ts +45 -0
  146. package/dist/providers/cli-provider-instance.d.ts +426 -30
  147. package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
  148. package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
  149. package/dist/providers/contracts.d.ts +196 -6
  150. package/dist/providers/external-sources.d.ts +71 -0
  151. package/dist/providers/manual-attendance.d.ts +79 -0
  152. package/dist/providers/native-history/antigravity-claim-registry.d.ts +39 -0
  153. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  154. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  155. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  156. package/dist/providers/native-history/constants.d.ts +12 -0
  157. package/dist/providers/native-history/dispatcher.d.ts +44 -0
  158. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  159. package/dist/providers/native-history/index.d.ts +13 -0
  160. package/dist/providers/provider-instance-manager.d.ts +30 -0
  161. package/dist/providers/provider-instance.d.ts +31 -1
  162. package/dist/providers/provider-loader.d.ts +42 -5
  163. package/dist/providers/provider-trust.d.ts +31 -0
  164. package/dist/providers/read-chat-contract.d.ts +29 -0
  165. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  166. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  167. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  168. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  169. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  170. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  171. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  172. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  173. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  174. package/dist/providers/sdk/v1/index.d.ts +30 -0
  175. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  176. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  177. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  178. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  179. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  180. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  181. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  182. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  183. package/dist/providers/spec/adapter.d.ts +98 -0
  184. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  185. package/dist/providers/spec/evaluator.d.ts +45 -0
  186. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  187. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  188. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  189. package/dist/providers/spec/fsm-types.d.ts +202 -0
  190. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  191. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  192. package/dist/providers/spec/route.d.ts +4 -0
  193. package/dist/providers/spec/types.d.ts +244 -0
  194. package/dist/providers/status-monitor.d.ts +7 -7
  195. package/dist/providers/transcript-v2.d.ts +176 -0
  196. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  197. package/dist/providers/working-dir.d.ts +17 -0
  198. package/dist/repo-mesh-types.d.ts +616 -12
  199. package/dist/runtime-defaults.d.ts +2 -0
  200. package/dist/session-host/managed-host.d.ts +64 -0
  201. package/dist/session-host/runtime-surface.d.ts +10 -16
  202. package/dist/sessions/registry.d.ts +26 -0
  203. package/dist/shared-types-extra.d.ts +2 -4
  204. package/dist/shared-types.d.ts +110 -55
  205. package/dist/status/chat-tail-hot-sessions.d.ts +40 -0
  206. package/dist/status/normalize.d.ts +1 -1
  207. package/dist/status/normalize.js +1 -0
  208. package/dist/status/normalize.js.map +1 -1
  209. package/dist/status/normalize.mjs +1 -0
  210. package/dist/status/normalize.mjs.map +1 -1
  211. package/dist/status/reporter.d.ts +2 -0
  212. package/dist/status/snapshot.d.ts +27 -0
  213. package/dist/system/hash.d.ts +8 -0
  214. package/dist/system/load-better-sqlite3.d.ts +21 -0
  215. package/dist/types.d.ts +20 -6
  216. package/package.json +11 -4
  217. package/src/agent-stream/poller.ts +2 -3
  218. package/src/agent-stream/provider-adapter.ts +1 -1
  219. package/src/boot/daemon-lifecycle.ts +80 -14
  220. package/src/boot/process-hardening.ts +89 -0
  221. package/src/build-info.ts +73 -0
  222. package/src/chat/source-machine.ts +534 -0
  223. package/src/chat/source-resolver.ts +0 -0
  224. package/src/chat/subscription-updates.ts +20 -1
  225. package/src/cli-adapter-types.d.ts +3 -1
  226. package/src/cli-adapter-types.ts +68 -2
  227. package/src/cli-adapters/cli-script-runner.ts +421 -0
  228. package/src/cli-adapters/cli-state-engine.ts +1282 -0
  229. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  230. package/src/cli-adapters/provider-cli-adapter.ts +1048 -1143
  231. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  232. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  233. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  234. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  235. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  236. package/src/cli-adapters/pty-transport.ts +2 -1
  237. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  238. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  239. package/src/cli-adapters/resolve-executable.ts +204 -0
  240. package/src/cli-adapters/session-host-transport.ts +2 -1
  241. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  242. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  243. package/src/cli-adapters/terminal-screen.ts +16 -81
  244. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  245. package/src/commands/chat-commands-read.ts +2788 -0
  246. package/src/commands/chat-commands-scope.ts +54 -0
  247. package/src/commands/chat-commands-shared.ts +114 -0
  248. package/src/commands/chat-commands-write.ts +891 -0
  249. package/src/commands/chat-commands.ts +19 -1841
  250. package/src/commands/cli-manager.d.ts +2 -0
  251. package/src/commands/cli-manager.ts +724 -27
  252. package/src/commands/handler.ts +865 -2
  253. package/src/commands/high-family/index.ts +28 -0
  254. package/src/commands/high-family/mesh-coordinator-launch.ts +696 -0
  255. package/src/commands/high-family/mesh-events.ts +102 -0
  256. package/src/commands/high-family/mesh-status.ts +857 -0
  257. package/src/commands/high-family/types.ts +80 -0
  258. package/src/commands/low-family/coordinator-prompt.ts +125 -0
  259. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  260. package/src/commands/low-family/diagnostics.ts +57 -0
  261. package/src/commands/low-family/index.ts +37 -0
  262. package/src/commands/low-family/mesh-ledger.ts +62 -0
  263. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  264. package/src/commands/low-family/notification.ts +116 -0
  265. package/src/commands/low-family/refine-config.ts +106 -0
  266. package/src/commands/low-family/session-host.ts +282 -0
  267. package/src/commands/low-family/spec-providerdev.ts +217 -0
  268. package/src/commands/low-family/status-meta.ts +112 -0
  269. package/src/commands/low-family/types.ts +39 -0
  270. package/src/commands/med-family/cli-agent.ts +270 -0
  271. package/src/commands/med-family/fast-forward.ts +230 -0
  272. package/src/commands/med-family/ide.ts +163 -0
  273. package/src/commands/med-family/index.ts +37 -0
  274. package/src/commands/med-family/mesh-crud.ts +1309 -0
  275. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  276. package/src/commands/med-family/mesh-queue.ts +167 -0
  277. package/src/commands/med-family/mesh-restart.ts +92 -0
  278. package/src/commands/med-family/types.ts +153 -0
  279. package/src/commands/mesh-coordinator.ts +334 -124
  280. package/src/commands/router-aggregate-status.ts +209 -0
  281. package/src/commands/router-mesh-session-owner.ts +114 -0
  282. package/src/commands/router-refine.ts +1794 -0
  283. package/src/commands/router-worktree-cleanup.ts +870 -0
  284. package/src/commands/router.ts +567 -4149
  285. package/src/commands/stream-commands.ts +8 -0
  286. package/src/commands/upgrade-helper.ts +310 -45
  287. package/src/config/chat-history.ts +517 -24
  288. package/src/config/config.ts +30 -0
  289. package/src/config/mesh-config.ts +300 -24
  290. package/src/config/mesh-json-config.ts +376 -0
  291. package/src/config/recent-activity.ts +8 -2
  292. package/src/config/registry-resolver.ts +100 -0
  293. package/src/config/repo-settings.ts +111 -0
  294. package/src/config/state-store.ts +55 -0
  295. package/src/daemon/dev-auto-implement.ts +3 -2
  296. package/src/daemon/dev-cli-debug.ts +10 -1
  297. package/src/daemon/dev-server.ts +0 -541
  298. package/src/detection/cli-detector.ts +94 -9
  299. package/src/detection/ide-detector.ts +55 -16
  300. package/src/detection/win32-ide-version.ts +106 -0
  301. package/src/git/change-impact-config.ts +354 -0
  302. package/src/git/git-commands.ts +112 -16
  303. package/src/git/git-diff.ts +81 -11
  304. package/src/git/git-executor.ts +12 -0
  305. package/src/git/git-status.ts +822 -48
  306. package/src/git/git-types.ts +14 -62
  307. package/src/git/git-worktree.ts +261 -4
  308. package/src/git/index.ts +17 -0
  309. package/src/index.ts +190 -13
  310. package/src/installer.d.ts +1 -1
  311. package/src/installer.ts +8 -6
  312. package/src/ipc/local-ipc-server.ts +278 -0
  313. package/src/launch.d.ts +1 -1
  314. package/src/launch.ts +37 -28
  315. package/src/logging/async-batch-writer.ts +55 -0
  316. package/src/logging/command-log.ts +7 -5
  317. package/src/logging/debug-config.ts +25 -0
  318. package/src/logging/debug-trace.ts +7 -2
  319. package/src/logging/log-redactor.ts +100 -0
  320. package/src/logging/log-tail-reader.ts +341 -0
  321. package/src/logging/logger.ts +14 -7
  322. package/src/mesh/contracts.ts +510 -0
  323. package/src/mesh/coordinator-prompt.ts +627 -34
  324. package/src/mesh/coordinator-registry.ts +121 -0
  325. package/src/mesh/mesh-active-work.ts +706 -0
  326. package/src/mesh/mesh-clone-grace.ts +68 -0
  327. package/src/mesh/mesh-completion-synthesis.ts +416 -0
  328. package/src/mesh/mesh-coordinator-config.ts +97 -0
  329. package/src/mesh/mesh-delivery-policy.ts +284 -0
  330. package/src/mesh/mesh-event-classify.ts +78 -0
  331. package/src/mesh/mesh-event-forwarding.ts +2030 -0
  332. package/src/mesh/mesh-event-trace.ts +67 -0
  333. package/src/mesh/mesh-events-coordinator.ts +32 -0
  334. package/src/mesh/mesh-events-pending.ts +1548 -0
  335. package/src/mesh/mesh-events-stale.ts +452 -0
  336. package/src/mesh/mesh-events-utils.ts +443 -0
  337. package/src/mesh/mesh-events.ts +43 -1035
  338. package/src/mesh/mesh-fast-forward.ts +856 -0
  339. package/src/mesh/mesh-host-ownership.ts +41 -3
  340. package/src/mesh/mesh-init.ts +350 -0
  341. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  342. package/src/mesh/mesh-ledger.ts +897 -102
  343. package/src/mesh/mesh-magi-status.ts +223 -0
  344. package/src/mesh/mesh-missions.ts +695 -0
  345. package/src/mesh/mesh-node-identity.ts +2065 -0
  346. package/src/mesh/mesh-queue-assignment.ts +2498 -0
  347. package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
  348. package/src/mesh/mesh-reconcile-config.ts +66 -0
  349. package/src/mesh/mesh-reconcile-identity.ts +103 -0
  350. package/src/mesh/mesh-reconcile-loop.ts +1696 -0
  351. package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
  352. package/src/mesh/mesh-refine-batch.ts +205 -0
  353. package/src/mesh/mesh-refine-gates.ts +1792 -0
  354. package/src/mesh/mesh-refine-status.ts +231 -0
  355. package/src/mesh/mesh-remote-event-pull.ts +279 -0
  356. package/src/mesh/mesh-review-inbox.ts +308 -0
  357. package/src/mesh/mesh-routing.ts +291 -0
  358. package/src/mesh/mesh-runtime-store.ts +2292 -0
  359. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  360. package/src/mesh/mesh-task-inflight.ts +70 -0
  361. package/src/mesh/mesh-task-stats.ts +161 -0
  362. package/src/mesh/mesh-unresolved-forward-outbox.ts +215 -0
  363. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  364. package/src/mesh/mesh-work-queue.ts +1489 -145
  365. package/src/mesh/preview-freshness.ts +163 -0
  366. package/src/mesh/refine-config.ts +129 -12
  367. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  368. package/src/providers/acp-provider-instance.ts +43 -10
  369. package/src/providers/approval-utils.d.ts +5 -0
  370. package/src/providers/approval-utils.ts +100 -6
  371. package/src/providers/chat-message-normalization.ts +126 -4
  372. package/src/providers/cli-provider-effect-format.ts +53 -0
  373. package/src/providers/cli-provider-history-dedup.ts +75 -0
  374. package/src/providers/cli-provider-input-prompt.ts +133 -0
  375. package/src/providers/cli-provider-instance-types.ts +131 -0
  376. package/src/providers/cli-provider-instance.ts +2771 -499
  377. package/src/providers/cli-provider-status-helpers.ts +123 -0
  378. package/src/providers/cli-provider-transcript-merge.ts +114 -0
  379. package/src/providers/contracts.d.ts +55 -0
  380. package/src/providers/contracts.ts +207 -6
  381. package/src/providers/extension-provider-instance.ts +12 -7
  382. package/src/providers/external-sources.ts +218 -0
  383. package/src/providers/ide-provider-instance.ts +35 -12
  384. package/src/providers/manual-attendance.ts +105 -0
  385. package/src/providers/native-history/antigravity-claim-registry.ts +138 -0
  386. package/src/providers/native-history/antigravity-cli-transcript.ts +1275 -0
  387. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  388. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  389. package/src/providers/native-history/constants.ts +19 -0
  390. package/src/providers/native-history/dispatcher.ts +617 -0
  391. package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
  392. package/src/providers/native-history/index.ts +30 -0
  393. package/src/providers/provider-instance-manager.ts +71 -0
  394. package/src/providers/provider-instance.ts +24 -1
  395. package/src/providers/provider-loader.ts +700 -55
  396. package/src/providers/provider-schema.ts +93 -14
  397. package/src/providers/provider-trust.ts +114 -0
  398. package/src/providers/read-chat-contract.ts +76 -16
  399. package/src/providers/sdk/README.md +49 -0
  400. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  401. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  402. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  403. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  404. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  405. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  406. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  407. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  408. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  409. package/src/providers/sdk/v1/index.ts +152 -0
  410. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  411. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  412. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  413. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +538 -0
  414. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  415. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  416. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  417. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  418. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  419. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  420. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  421. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  422. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  423. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  424. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  425. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  426. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  427. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  428. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  429. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  430. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  431. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  432. package/src/providers/sdk/v1/validators/index.ts +19 -0
  433. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  434. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  435. package/src/providers/spec/adapter.ts +246 -0
  436. package/src/providers/spec/cli-adapter.ts +1064 -0
  437. package/src/providers/spec/evaluator.ts +407 -0
  438. package/src/providers/spec/fsm-driver.ts +1528 -0
  439. package/src/providers/spec/fsm-evaluator.ts +290 -0
  440. package/src/providers/spec/fsm-loader.ts +128 -0
  441. package/src/providers/spec/fsm-types.ts +301 -0
  442. package/src/providers/spec/native-history-executor.ts +1241 -0
  443. package/src/providers/spec/pre-launch-trust.ts +104 -0
  444. package/src/providers/spec/route.ts +51 -0
  445. package/src/providers/spec/types.ts +284 -0
  446. package/src/providers/status-monitor.d.ts +7 -7
  447. package/src/providers/status-monitor.ts +37 -22
  448. package/src/providers/transcript-v2.ts +567 -0
  449. package/src/providers/types/interactive-prompt.ts +536 -0
  450. package/src/providers/version-archive.ts +64 -24
  451. package/src/providers/working-dir.ts +23 -0
  452. package/src/repo-mesh-types.ts +861 -14
  453. package/src/runtime-defaults.ts +39 -0
  454. package/src/session-host/managed-host.ts +218 -0
  455. package/src/session-host/runtime-surface.ts +20 -80
  456. package/src/sessions/registry.ts +44 -0
  457. package/src/shared-types-extra.ts +2 -4
  458. package/src/shared-types.d.ts +8 -0
  459. package/src/shared-types.ts +148 -55
  460. package/src/status/builders.ts +69 -6
  461. package/src/status/chat-tail-hot-sessions.ts +117 -2
  462. package/src/status/normalize.ts +2 -0
  463. package/src/status/reporter.ts +19 -1
  464. package/src/status/snapshot.ts +100 -27
  465. package/src/system/hash.ts +23 -0
  466. package/src/system/host-memory.ts +29 -12
  467. package/src/system/load-better-sqlite3.ts +68 -0
  468. package/src/types.ts +26 -6
  469. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  470. package/dist/mesh/mesh-sync.d.ts +0 -53
  471. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  472. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  473. package/src/mesh/mesh-sync.ts +0 -111
@@ -0,0 +1,202 @@
1
+ import type { RegexCondition, ChangedCondition, Control, NotificationRule, DelegateTrigger, NativeHistoryConfig, SectionDef, ExtractTitle, ExtractButtons } from './types.js';
2
+ /** True once `ms` have elapsed since the current state was entered. */
3
+ export interface ElapsedCondition {
4
+ elapsed_ms: number;
5
+ }
6
+ /** True once a region has been unchanged for `ms`. A stability gate — the
7
+ * inverse of a busy signal.
8
+ *
9
+ * Region selection (precedence order):
10
+ * - `section` : a named section from the spec's `sections{}` (e.g. "body").
11
+ * Only lines inside that section are watched for change.
12
+ * - `cursor_above`: the N lines directly above the cursor.
13
+ * - neither : the whole screen (default).
14
+ *
15
+ * `ignore_lines` is orthogonal to region choice: lines matching it are
16
+ * stripped from BOTH frames before the change comparison, so a per-frame
17
+ * animation on those lines cannot reset the stable clock. This is the
18
+ * content-aware escape hatch for the busy→idle wedge — a benign residual
19
+ * ticker (a bare token counter / elapsed timer that repaints every frame
20
+ * after generation has finished) is filtered out, so a genuinely settled
21
+ * transcript can reach `stable_ms`. It is deliberately CONTENT-based, not
22
+ * geometric: an ACTIVE spinner line (glyph + esc/token trailer) does NOT
23
+ * match the benign pattern, so a real below-prompt spinner tick still resets
24
+ * the clock and holds busy (the FALSEIDLE2 / FALSEBUSY-B invariant). */
25
+ export interface StableCondition {
26
+ stable_ms: number;
27
+ /** Named section (from `sections{}`) that must be stable. Takes precedence
28
+ * over `cursor_above`. */
29
+ section?: string;
30
+ /** Lines above the cursor that must be stable. Default: whole screen.
31
+ * Ignored when `section` is set. */
32
+ cursor_above?: number;
33
+ /** Regex (line-tested with `m` flag). Lines matching it are removed from
34
+ * both the current and previous frame before deciding whether the region
35
+ * changed — a per-frame repaint confined to these lines does NOT reset the
36
+ * stability clock. Use for benign residual animation (token counter /
37
+ * elapsed timer). Must NOT match an active-spinner line, or a real spinner
38
+ * tick would be masked. */
39
+ ignore_lines?: string;
40
+ }
41
+ export interface FsmAllCondition {
42
+ all: FsmCondition[];
43
+ }
44
+ export interface FsmAnyCondition {
45
+ any: FsmCondition[];
46
+ }
47
+ /** Negation — true when the inner condition is false. Lets a transition say
48
+ * "go busy unless the completion marker is present", etc. */
49
+ export interface FsmNotCondition {
50
+ not: FsmCondition;
51
+ }
52
+ export type FsmCondition = RegexCondition | ChangedCondition | ElapsedCondition | StableCondition | FsmAllCondition | FsmAnyCondition | FsmNotCondition;
53
+ export interface FsmState {
54
+ id: string;
55
+ label: string;
56
+ /** Exactly one state must be `initial: true` — the state at spawn. */
57
+ initial?: boolean;
58
+ /** Modal states (approval/picker) expose modal buttons in the UI and are
59
+ * treated as "interesting" — the dashboard surfaces them distinctly. */
60
+ modal?: boolean;
61
+ /**
62
+ * For a modal state, what KIND of modal it is — the semantic distinction the
63
+ * status field (always 'approval' for any modal, so the dashboard surfaces it)
64
+ * deliberately loses. The auto-approve worker uses this to decide whether it
65
+ * may answer the modal on the user's behalf:
66
+ *
67
+ * - 'approval' — a tool/command/trust consent prompt ("Allow Bash?",
68
+ * "Trust this folder?"). Auto-approve MAY fire (a background mesh worker
69
+ * should not stall on these).
70
+ * - 'picker' — a selection menu the user opened (/model, /mode, …). There
71
+ * is no "correct" answer to auto-pick; blindly selecting the first option
72
+ * silently changes the model/mode. Auto-approve must NOT fire — the user
73
+ * chooses.
74
+ * - 'confirm' — a non-consent yes/no the user must decide. Left to the user.
75
+ *
76
+ * Defaults to 'approval' for a modal state that omits it (preserves the
77
+ * pre-existing "auto-approve any modal" behaviour for un-migrated specs;
78
+ * picker/confirm states declare their kind explicitly). Non-modal states
79
+ * have no modal_kind.
80
+ */
81
+ modal_kind?: 'approval' | 'picker' | 'confirm';
82
+ /** Status this state maps to for the dashboard/cli-adapter status field.
83
+ * One of: idle | generating | approval. Defaults: modal→approval,
84
+ * initial→idle, id==='busy'→generating, else idle. Explicit wins. */
85
+ status?: 'idle' | 'generating' | 'approval';
86
+ /** Optional extraction run whenever this state is the committed state —
87
+ * used by modal states to surface a title + buttons. */
88
+ extract?: {
89
+ title?: ExtractTitle;
90
+ buttons?: ExtractButtons;
91
+ };
92
+ }
93
+ export interface FsmTransition {
94
+ /** Source state id, or list of source ids, or "*" for any state. */
95
+ from: string | string[];
96
+ /** Destination state id. */
97
+ to: string;
98
+ /** Guard condition. Omitted → always eligible (only gated by `from` +
99
+ * min_hold_ms). Evaluated against the current screen + clock. */
100
+ when?: FsmCondition;
101
+ /** Minimum time the machine must have been in `from` before this edge can
102
+ * fire. Replaces busy_hold_ms / idle_hold_ms (per-edge, not global). */
103
+ min_hold_ms?: number;
104
+ /** Higher priority transitions are evaluated first. Default 0. Ties broken
105
+ * by declaration order. */
106
+ priority?: number;
107
+ /** Human label for the debugger. */
108
+ label?: string;
109
+ }
110
+ /**
111
+ * Declarative "trust this folder before spawn" config. Some agent CLIs gate the
112
+ * first run in a new folder behind an interactive trust prompt and persist the
113
+ * answer as a string array in a JSON settings file. Declaring this lets the
114
+ * engine add the workspace path to that array before spawn so the prompt never
115
+ * appears — the robust alternative to detecting and auto-clicking the modal.
116
+ * CLIs without such a gate omit this field and the engine does nothing.
117
+ */
118
+ export interface PreLaunchTrust {
119
+ /** Path to the CLI's JSON settings file. A leading `~` expands to $HOME. */
120
+ settings_path: string;
121
+ /** Key of the string-array of trusted folder paths within that file. */
122
+ key: string;
123
+ }
124
+ export interface CliSpecV4 {
125
+ $schema: 'adhdev:cli/spec@4';
126
+ id: string;
127
+ name: string;
128
+ binary: string;
129
+ spawn_args?: string[];
130
+ env?: Record<string, string>;
131
+ cli_version_range?: string;
132
+ /**
133
+ * Optional raw byte sequences written to the PTY once, shortly after spawn,
134
+ * to prime a TUI that gates its input handling on a terminal event the
135
+ * daemon would otherwise never emit. The canonical case is a focus-event
136
+ * TUI (Ink `useStdin`/`useFocus`, e.g. antigravity's `agy`) that enables
137
+ * focus reporting (`CSI ?1004h`) and treats its input box as unfocused —
138
+ * silently dropping the first programmatic write — until it receives a
139
+ * focus-in event (`ESC [ I`). Declaring `[""]` here wakes the input
140
+ * stream on spawn so the first delegated message lands without a manual
141
+ * keystroke. CLIs that do not focus-gate input simply omit this field; the
142
+ * engine writes nothing extra for them, so it stays CLI-agnostic.
143
+ */
144
+ send_on_spawn?: string[];
145
+ /** Delay (ms) after spawn before writing `send_on_spawn`. Default 250. */
146
+ send_on_spawn_delay_ms?: number;
147
+ /**
148
+ * Opt-in stall recovery for focus-gated TUIs. The same CLIs that need
149
+ * `send_on_spawn` (focus-event TUIs like antigravity's `agy`) also stop
150
+ * rendering / flushing output the moment they believe they have lost focus
151
+ * MID-TURN — the screen freezes and only repaints once the user presses a
152
+ * key, which the daemon never does on its own. When this field is set and
153
+ * the machine is in a `generating`-status state whose screen has not changed
154
+ * for `refocus_when_stalled_ms`, the engine re-injects the `send_on_spawn`
155
+ * prime (the focus-in event) once to wake the render loop, then waits for the
156
+ * screen to change or for the stall window to lapse again before re-priming
157
+ * (a cooldown that prevents a tight re-prime loop). Requires `send_on_spawn`
158
+ * to carry the wake sequence; with no `send_on_spawn` there is nothing to
159
+ * re-inject and the engine does nothing. Omitted by every non-focus-gated
160
+ * CLI spec, so the engine stays CLI-agnostic.
161
+ */
162
+ refocus_when_stalled_ms?: number;
163
+ /**
164
+ * Optional pre-spawn folder-trust step. When present, the engine adds the
165
+ * launch workspace path to the declared trusted-folders array before
166
+ * spawning, so a CLI that gates first run on a "trust this folder?" prompt
167
+ * (e.g. antigravity's `agy`) starts trusted and never blocks. Omitted for
168
+ * CLIs without such a gate. See pre-launch-trust.ts.
169
+ */
170
+ pre_launch_trust?: PreLaunchTrust;
171
+ send_message: {
172
+ submit_key: string;
173
+ delay_ms_before_submit?: number;
174
+ delay_ms_per_char?: number;
175
+ };
176
+ sections: Record<string, SectionDef>;
177
+ states: FsmState[];
178
+ transitions: FsmTransition[];
179
+ control_bar?: Control[];
180
+ notifications?: NotificationRule[];
181
+ delegate?: DelegateTrigger[];
182
+ native_history?: NativeHistoryConfig;
183
+ requiresFinalAssistantBeforeIdle?: boolean;
184
+ }
185
+ export declare function isV4Spec(raw: unknown): raw is CliSpecV4;
186
+ export declare function initialState(spec: CliSpecV4): FsmState;
187
+ export declare function stateById(spec: CliSpecV4, id: string): FsmState | undefined;
188
+ /** Outgoing transitions from `stateId`, highest priority first, declaration
189
+ * order as tiebreak. Includes wildcard ("*") and list-membership sources. */
190
+ export declare function outgoingTransitions(spec: CliSpecV4, stateId: string): FsmTransition[];
191
+ /** Map a state to the dashboard status string, applying the documented
192
+ * defaults when `status` is not explicit. */
193
+ export declare function statusForState(state: FsmState): 'idle' | 'generating' | 'approval';
194
+ /**
195
+ * The modal kind for a state, or null when the state is not modal. A modal state
196
+ * that omits `modal_kind` defaults to 'approval' so the established
197
+ * auto-approve-any-modal behaviour is preserved for specs that have not yet
198
+ * declared a kind; picker/confirm states must opt out by declaring their kind.
199
+ * This is the value the cli-adapter carries on `activeModal.kind` and the
200
+ * auto-approve gate reads — see cli-provider-instance.maybeAutoApproveStatus.
201
+ */
202
+ export declare function modalKindForState(state: FsmState): 'approval' | 'picker' | 'confirm' | null;
@@ -0,0 +1,41 @@
1
+ import type { NativeHistoryConfig } from './types.js';
2
+ export interface NativeHistoryInput {
3
+ agentType?: string;
4
+ sessionId?: string;
5
+ providerSessionId?: string;
6
+ historySessionId?: string;
7
+ workspace?: string;
8
+ /** Daemon-side wall clock at the moment the session was registered.
9
+ * Native-history file lookups use this as the lower bound: any file
10
+ * whose mtime is before the current session started can't be from
11
+ * this session, so it's excluded from newest-recent matching. The
12
+ * caller (chat-history pipeline) populates this from the session
13
+ * registry; specs/executor never need to know how it's sourced. */
14
+ sessionStartedAtMs?: number;
15
+ /** Env overrides the daemon set on the spawned CLI. The mesh
16
+ * coordinator points hermes at a per-coordinator HERMES_HOME so
17
+ * the hermes process writes its state.db into a tmp directory
18
+ * instead of ~/.hermes. expandPath consults this map before
19
+ * process.env so the native-history reader follows the spawned
20
+ * child's view of HERMES_HOME / similar overrides; without it
21
+ * the reader would always look at ~/.hermes and miss every
22
+ * coordinator-session transcript. */
23
+ envOverrides?: Record<string, string>;
24
+ args?: Record<string, unknown>;
25
+ }
26
+ export interface NativeHistoryMessage {
27
+ role: 'user' | 'assistant' | 'system';
28
+ content: string;
29
+ receivedAt: number;
30
+ kind?: string;
31
+ workspace?: string;
32
+ }
33
+ export interface NativeHistoryResult {
34
+ messages: NativeHistoryMessage[];
35
+ providerSessionId?: string;
36
+ sourcePath: string;
37
+ sourceMtimeMs: number;
38
+ nativeHistoryCoverage?: 'full' | 'partial' | 'best-effort';
39
+ workspace?: string;
40
+ }
41
+ export declare function executeNativeHistory(cfg: NativeHistoryConfig, input: NativeHistoryInput): NativeHistoryResult | null;
@@ -0,0 +1,16 @@
1
+ import type { PreLaunchTrust } from './fsm-types.js';
2
+ /**
3
+ * Idempotently add `workingDir` (realpath) to the trusted-folders array named
4
+ * by `trust.key` inside the JSON settings file at `trust.settings_path`.
5
+ *
6
+ * - Creates the file (and parent dir) if missing.
7
+ * - Preserves all other settings; only the trust array is touched.
8
+ * - No-ops if the path is already present.
9
+ * - Best-effort: any failure is logged and swallowed. A failed pre-trust must
10
+ * not block the launch — the worst case is the old behavior (the FSM still
11
+ * detects the trust modal as an approval state), not a crash.
12
+ *
13
+ * Returns the path that was added (realpath), or null if nothing changed /
14
+ * an error occurred — purely so callers/tests can assert the effect.
15
+ */
16
+ export declare function applyPreLaunchTrust(trust: PreLaunchTrust, workingDir: string): string | null;
@@ -0,0 +1,4 @@
1
+ import type { CliProviderModule } from '../../cli-adapters/provider-cli-adapter.js';
2
+ import type { PtyTransportFactory } from '../../cli-adapters/pty-transport.js';
3
+ import type { CliAdapter } from '../../cli-adapter-types.js';
4
+ export declare function createCliAdapter(provider: CliProviderModule, workingDir: string, cliArgs: string[], extraEnv: Record<string, string>, transportFactory?: PtyTransportFactory): CliAdapter;
@@ -0,0 +1,244 @@
1
+ export type Size = number | string;
2
+ export interface SectionPattern {
3
+ section?: string;
4
+ pattern: string;
5
+ flags?: string;
6
+ }
7
+ /** Inline wait_for shape used by open_picker control actions. */
8
+ export interface WaitForCondition {
9
+ section?: string;
10
+ regex?: string;
11
+ flags?: string;
12
+ }
13
+ export type ControlAction = {
14
+ type: 'send_keys';
15
+ keys: string;
16
+ } | {
17
+ type: 'open_picker';
18
+ trigger_keys: string;
19
+ wait_for: WaitForCondition;
20
+ extract_choices: SectionPattern;
21
+ submit_key: string;
22
+ /**
23
+ * How a parsed choice is committed once the picker is open.
24
+ * 'index' (default) — type the on-screen number then `submit_key`
25
+ * (`{index}\r`). Correct for CLIs whose picker is number-selectable
26
+ * (codex-cli, hermes-cli).
27
+ * 'arrow_keys' — the picker is a cursor list that ignores number keys
28
+ * (claude-cli /model): move the cursor from its current row to the
29
+ * target row with up/down arrows, then confirm with the `submit_key`
30
+ * tail (the `\r` left after stripping `{index}`). Requires the
31
+ * extracted choices to flag the current cursor row.
32
+ */
33
+ select_mode?: 'index' | 'arrow_keys';
34
+ /** Arrow byte sequences for `select_mode: 'arrow_keys'`. Defaults to
35
+ * ANSI cursor up/down (`` / ``) when omitted. */
36
+ cursor_keys?: {
37
+ up: string;
38
+ down: string;
39
+ };
40
+ } | {
41
+ type: 'attach_image';
42
+ method: 'tempfile_then_keys';
43
+ keys_template: string;
44
+ };
45
+ export interface Control {
46
+ id: string;
47
+ label: string;
48
+ visible_when_state?: string[];
49
+ action: ControlAction;
50
+ }
51
+ export interface NotificationRule {
52
+ id: string;
53
+ when_state: string;
54
+ title: string;
55
+ body?: string;
56
+ }
57
+ export interface DelegateTrigger {
58
+ id: string;
59
+ when_state: string;
60
+ after_duration_ms?: number;
61
+ task_template: string;
62
+ }
63
+ export interface NativeHistoryConfig {
64
+ reader?: 'claude-cli' | 'codex-cli' | 'antigravity-cli' | 'hermes-cli';
65
+ source?: NativeHistorySource;
66
+ override_path?: string;
67
+ }
68
+ export type NativeHistorySource = NativeHistoryJsonlSource | NativeHistorySqliteSource;
69
+ export interface NativeHistoryJsonlSource {
70
+ kind: 'jsonl';
71
+ path: string;
72
+ file_pattern?: string;
73
+ recent_window_ms?: number;
74
+ session_id_from?: 'filename_uuid' | 'first_record';
75
+ session_id_path?: string;
76
+ message_filter?: {
77
+ where: string;
78
+ };
79
+ message_map: NativeHistoryMessageMap;
80
+ }
81
+ export interface NativeHistorySqliteSource {
82
+ kind: 'sqlite';
83
+ path: string;
84
+ session_query: string;
85
+ message_query: string;
86
+ /**
87
+ * Optional sub-session cluster expansion. Some agents (hermes ≥0.14) split
88
+ * a SINGLE logical turn across several `sessions` rows linked by a parent
89
+ * pointer, and the turn's final assistant message lands in a DIFFERENT row
90
+ * than the one `session_query` / the daemon's pin resolves. Reading only
91
+ * the anchor session then surfaces zero (or stale) assistant bubbles even
92
+ * though the answer is physically present in a sibling/descendant row —
93
+ * `read_chat` returns no final assistant and the completion gate false-fires
94
+ * `missing_final_assistant`.
95
+ *
96
+ * When present, the executor treats the resolved session id as an ANCHOR
97
+ * and runs this query (bound `?` = anchor id) to expand it to every session
98
+ * id in the same logical cluster (typically a `WITH RECURSIVE` walk over the
99
+ * parent pointer, up to the root and back down through all descendants).
100
+ * `message_query` is then run once per cluster id and the rows merged and
101
+ * re-sorted by their mapped timestamp, so the turn's final assistant — in
102
+ * whichever sub-session it was written — is always included. Each returned
103
+ * row's first column is a cluster session id.
104
+ *
105
+ * Absent → single-session behaviour is unchanged (anchor session only).
106
+ */
107
+ session_cluster_query?: string;
108
+ message_map: NativeHistoryMessageMap;
109
+ }
110
+ export interface NativeHistoryMessageMap {
111
+ role: string;
112
+ content: string;
113
+ content_strip?: string[];
114
+ content_unwrap?: string[];
115
+ timestamp_ms?: string;
116
+ kind?: string;
117
+ /**
118
+ * Declarative tool-bubble extraction. Without it the executor only emits
119
+ * the text-bearing parts of each record, so a turn that is purely a tool
120
+ * call or tool result (no prose) is dropped — the restored transcript
121
+ * loses every tool interaction. When present, the executor walks each
122
+ * record's content blocks and emits an extra `kind:'tool'` message for
123
+ * any block whose `$.type` matches a tool shape.
124
+ *
125
+ * Defaults target the Anthropic-style content-block shape that claude-cli
126
+ * and codex-cli persist (blocks of `{ type: 'tool_use' | 'tool_result',
127
+ * name, input, content }`); a provider with a different on-disk shape
128
+ * overrides the field paths. Set `tools: {}` to opt in with the defaults.
129
+ */
130
+ tools?: NativeHistoryToolMap;
131
+ }
132
+ /**
133
+ * How to surface tool-call / tool-result blocks as `kind:'tool'` bubbles.
134
+ * Every field is optional — the defaults read the Anthropic block shape.
135
+ * Paths are jsonpath-lite evaluated against a single content block (the
136
+ * element of `$.message.content[]`), not the whole record.
137
+ */
138
+ export interface NativeHistoryToolMap {
139
+ /** Path to a block's discriminator. Default `$.type`. */
140
+ block_type?: string;
141
+ /** Block-type values that mean "a tool was invoked". Default
142
+ * `['tool_use', 'function_call', 'custom_tool_call']`. */
143
+ call_types?: string[];
144
+ /** Block-type values that mean "a tool returned". Default
145
+ * `['tool_result', 'function_call_output', 'custom_tool_call_output']`. */
146
+ result_types?: string[];
147
+ /** Path to the tool name on a call block. Default `$.name`. */
148
+ call_name?: string;
149
+ /** Path to the tool arguments on a call block. Default `$.input`. */
150
+ call_args?: string;
151
+ /** Path to the result payload on a result block. Default `$.content`. */
152
+ result_content?: string;
153
+ }
154
+ export interface AnchorContext {
155
+ prev?: string;
156
+ next?: string;
157
+ prev_flags?: string;
158
+ next_flags?: string;
159
+ }
160
+ export interface SectionDef {
161
+ from_top?: Size;
162
+ from_bottom?: Size;
163
+ until?: string;
164
+ /**
165
+ * Anchor regex(es). A single string anchors on the first/last matching line
166
+ * (per `anchor_last`). An array is an OR-set of candidate shapes: each
167
+ * candidate resolves its OWN anchor line independently (anchor_last → that
168
+ * candidate's last matching line, else its first), then the TOPMOST resolved
169
+ * line across candidates wins — a section's anchor marks the top of its
170
+ * block, so the highest recognized landmark bounds the whole block. This
171
+ * lets one section capture two shapes — e.g. a box-divider modal AND a
172
+ * divider-less modal whose only stable landmark is the question line above
173
+ * its numbered choices — while preventing a stray LOWER landmark (e.g. an
174
+ * input-box `────` rule below the choices) from clipping the block.
175
+ */
176
+ anchor?: string | string[];
177
+ anchor_flags?: string;
178
+ anchor_last?: boolean;
179
+ /**
180
+ * Context guard(s) for the anchor. A single object applies to every anchor
181
+ * pattern. An array is matched positionally against an `anchor` array (entry
182
+ * i guards anchor i); a positional `undefined`/null entry means "no guard"
183
+ * for that anchor. A scalar `anchor` ignores array form beyond index 0.
184
+ */
185
+ anchor_context?: AnchorContext | (AnchorContext | null)[];
186
+ lines?: number;
187
+ until_regex?: string;
188
+ until_regex_flags?: string;
189
+ }
190
+ export interface RegexCondition {
191
+ section?: string;
192
+ matches: string;
193
+ flags?: string;
194
+ cursor_row_min?: number;
195
+ cursor_row_max?: number;
196
+ cursor_col_min?: number;
197
+ cursor_col_max?: number;
198
+ }
199
+ export interface ChangedCondition {
200
+ cursor_above: number;
201
+ changed: boolean;
202
+ stable_ms?: number;
203
+ }
204
+ export interface AllCondition {
205
+ all: Condition[];
206
+ }
207
+ export interface AnyCondition {
208
+ any: Condition[];
209
+ }
210
+ export type Condition = RegexCondition | ChangedCondition | AllCondition | AnyCondition;
211
+ export interface ExtractTitle {
212
+ section?: string;
213
+ regex?: string;
214
+ flags?: string;
215
+ first_line?: true;
216
+ }
217
+ export interface ExtractButtons {
218
+ section?: string;
219
+ pattern: string;
220
+ flags?: string;
221
+ key_for_index: string;
222
+ min_count?: number;
223
+ continuation_lines?: boolean;
224
+ /**
225
+ * How a button is committed when its modal is resolved (auto-approve or an
226
+ * explicit dashboard click).
227
+ * 'index' (default) — send `key_for_index` with `{index}` filled in
228
+ * (`{index}\r` → `1\r`). Correct for modals whose buttons are
229
+ * number-selectable (codex, hermes, antigravity number rows).
230
+ * 'arrow_keys' — the modal is a cursor list that IGNORES number keys
231
+ * (claude-cli's new TUI approval modal): a typed `1` leaks into the
232
+ * composer as literal text and `\r` submits it. Instead move the cursor
233
+ * from its current row to the target row with up/down arrows, then
234
+ * confirm with the `key_for_index` tail (the `\r` left after stripping
235
+ * `{index}`). Mirrors the `open_picker` `select_mode` of the same name.
236
+ */
237
+ select_mode?: 'index' | 'arrow_keys';
238
+ /** Arrow byte sequences for `select_mode: 'arrow_keys'`. Defaults to ANSI
239
+ * cursor up/down (`[A` / `[B`) when omitted. */
240
+ cursor_keys?: {
241
+ up: string;
242
+ down: string;
243
+ };
244
+ }
@@ -3,16 +3,16 @@
3
3
  *
4
4
  * Common across all Provider categories (IDE/Extension/CLI/ACP).
5
5
  * - Approval waiting (waiting_approval) notification
6
- * - Notification when generating persists for extended duration
6
+ * - No-progress watchdog: alert when an active turn makes no progress for a while
7
7
  * - All config toggleable via Provider Settings
8
8
  */
9
9
  export interface MonitorConfig {
10
10
  /** Enable awaiting-approval notification */
11
11
  approvalAlert: boolean;
12
- /** Prolonged generating notification enabled */
13
- longGeneratingAlert: boolean;
14
- /** Prolonged threshold (seconds) */
15
- longGeneratingThresholdSec: number;
12
+ /** No-progress watchdog notification enabled */
13
+ noProgressAlert: boolean;
14
+ /** No-progress threshold (seconds) */
15
+ noProgressThresholdSec: number;
16
16
  /** Repeat notification cooldown (seconds) */
17
17
  alertCooldownSec: number;
18
18
  }
@@ -28,7 +28,7 @@ export declare class StatusMonitor {
28
28
  private config;
29
29
  private lastAlertTime;
30
30
  private generatingStartTimes;
31
- private longGeneratingAlerted;
31
+ private noProgressAlerted;
32
32
  private lastProgressFingerprint;
33
33
  private lastProgressChangeAt;
34
34
  constructor(config?: Partial<MonitorConfig>);
@@ -40,7 +40,7 @@ export declare class StatusMonitor {
40
40
  * Check status transition → return notification event array.
41
41
  * Called from each onTick() or detectStatusTransition().
42
42
  */
43
- check(agentKey: string, status: string, now: number, progressFingerprint?: string): MonitorEvent[];
43
+ check(agentKey: string, status: string, now: number, progressFingerprint?: string, approvalPending?: boolean): MonitorEvent[];
44
44
  /** Cooldown check — prevent sending the same notification too frequently */
45
45
  private shouldAlert;
46
46
  /** Reset (on agent terminate/restart) */