@adhdev/daemon-core 0.9.82-rc.39 → 0.9.82-rc.391

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 (415) 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 +67 -2
  8. package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
  9. package/dist/cli-adapters/cli-state-engine.d.ts +198 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +121 -64
  11. package/dist/cli-adapters/provider-cli-parse.d.ts +4 -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 +14 -0
  17. package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
  18. package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
  19. package/dist/cli-adapters/terminal-screen.d.ts +4 -11
  20. package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
  21. package/dist/commands/chat-commands-read.d.ts +7 -0
  22. package/dist/commands/chat-commands-scope.d.ts +39 -0
  23. package/dist/commands/chat-commands-shared.d.ts +33 -0
  24. package/dist/commands/chat-commands-write.d.ts +14 -0
  25. package/dist/commands/chat-commands.d.ts +10 -23
  26. package/dist/commands/cli-manager.d.ts +15 -1
  27. package/dist/commands/handler.d.ts +125 -0
  28. package/dist/commands/high-family/index.d.ts +3 -0
  29. package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
  30. package/dist/commands/high-family/mesh-events.d.ts +2 -0
  31. package/dist/commands/high-family/mesh-status.d.ts +2 -0
  32. package/dist/commands/high-family/types.d.ts +60 -0
  33. package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
  34. package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
  35. package/dist/commands/low-family/diagnostics.d.ts +2 -0
  36. package/dist/commands/low-family/index.d.ts +3 -0
  37. package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
  38. package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
  39. package/dist/commands/low-family/notification.d.ts +2 -0
  40. package/dist/commands/low-family/refine-config.d.ts +2 -0
  41. package/dist/commands/low-family/session-host.d.ts +2 -0
  42. package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
  43. package/dist/commands/low-family/status-meta.d.ts +2 -0
  44. package/dist/commands/low-family/types.d.ts +33 -0
  45. package/dist/commands/med-family/cli-agent.d.ts +2 -0
  46. package/dist/commands/med-family/fast-forward.d.ts +2 -0
  47. package/dist/commands/med-family/ide.d.ts +10 -0
  48. package/dist/commands/med-family/index.d.ts +3 -0
  49. package/dist/commands/med-family/mesh-crud.d.ts +2 -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 +116 -0
  54. package/dist/commands/mesh-coordinator.d.ts +85 -1
  55. package/dist/commands/router.d.ts +237 -2
  56. package/dist/commands/upgrade-helper.d.ts +41 -1
  57. package/dist/config/chat-history.d.ts +9 -0
  58. package/dist/config/config.d.ts +5 -0
  59. package/dist/config/mesh-config.d.ts +77 -1
  60. package/dist/daemon/dev-server.d.ts +0 -2
  61. package/dist/detection/ide-detector.d.ts +13 -0
  62. package/dist/detection/win32-ide-version.d.ts +37 -0
  63. package/dist/git/change-impact-config.d.ts +159 -0
  64. package/dist/git/git-commands.d.ts +11 -1
  65. package/dist/git/git-diff.d.ts +6 -0
  66. package/dist/git/git-executor.d.ts +11 -0
  67. package/dist/git/git-status.d.ts +23 -0
  68. package/dist/git/git-types.d.ts +2 -50
  69. package/dist/git/git-worktree.d.ts +22 -0
  70. package/dist/git/index.d.ts +2 -0
  71. package/dist/index.d.ts +57 -13
  72. package/dist/index.js +46318 -18260
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.mjs +46450 -18533
  75. package/dist/index.mjs.map +1 -1
  76. package/dist/installer.d.ts +1 -4
  77. package/dist/ipc/local-ipc-server.d.ts +91 -0
  78. package/dist/launch.d.ts +1 -1
  79. package/dist/logging/async-batch-writer.d.ts +10 -0
  80. package/dist/logging/log-redactor.d.ts +24 -0
  81. package/dist/logging/log-tail-reader.d.ts +81 -0
  82. package/dist/logging/logger.d.ts +1 -1
  83. package/dist/mesh/contracts.d.ts +164 -0
  84. package/dist/mesh/coordinator-prompt.d.ts +89 -0
  85. package/dist/mesh/coordinator-registry.d.ts +59 -0
  86. package/dist/mesh/mesh-active-work.d.ts +174 -0
  87. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  88. package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
  89. package/dist/mesh/mesh-event-classify.d.ts +5 -0
  90. package/dist/mesh/mesh-event-forwarding.d.ts +19 -0
  91. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  92. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  93. package/dist/mesh/mesh-events-pending.d.ts +55 -0
  94. package/dist/mesh/mesh-events-stale.d.ts +52 -0
  95. package/dist/mesh/mesh-events-utils.d.ts +64 -0
  96. package/dist/mesh/mesh-events.d.ts +6 -49
  97. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  98. package/dist/mesh/mesh-host-ownership.d.ts +9 -0
  99. package/dist/mesh/mesh-init.d.ts +86 -0
  100. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  101. package/dist/mesh/mesh-ledger.d.ts +77 -1
  102. package/dist/mesh/mesh-missions.d.ts +164 -0
  103. package/dist/mesh/mesh-node-identity.d.ts +289 -0
  104. package/dist/mesh/mesh-queue-assignment.d.ts +86 -0
  105. package/dist/mesh/mesh-reconcile-loop.d.ts +65 -0
  106. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  107. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  108. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  109. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  110. package/dist/mesh/mesh-routing.d.ts +70 -0
  111. package/dist/mesh/mesh-runtime-store.d.ts +447 -0
  112. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  113. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  114. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  115. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  116. package/dist/mesh/mesh-work-queue.d.ts +247 -5
  117. package/dist/mesh/preview-freshness.d.ts +18 -0
  118. package/dist/mesh/refine-config.d.ts +216 -0
  119. package/dist/mesh/worktree-bootstrap-config.d.ts +135 -0
  120. package/dist/providers/acp-provider-instance.d.ts +5 -0
  121. package/dist/providers/approval-utils.d.ts +20 -0
  122. package/dist/providers/chat-message-normalization.d.ts +13 -1
  123. package/dist/providers/cli-provider-instance.d.ts +157 -3
  124. package/dist/providers/contracts.d.ts +139 -6
  125. package/dist/providers/external-sources.d.ts +71 -0
  126. package/dist/providers/manual-attendance.d.ts +63 -0
  127. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -0
  128. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  129. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  130. package/dist/providers/native-history/constants.d.ts +12 -0
  131. package/dist/providers/native-history/dispatcher.d.ts +27 -0
  132. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  133. package/dist/providers/native-history/index.d.ts +13 -0
  134. package/dist/providers/provider-instance-manager.d.ts +14 -0
  135. package/dist/providers/provider-instance.d.ts +23 -1
  136. package/dist/providers/provider-loader.d.ts +26 -4
  137. package/dist/providers/provider-trust.d.ts +31 -0
  138. package/dist/providers/read-chat-contract.d.ts +29 -0
  139. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  140. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  141. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  142. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  143. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  144. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  145. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  146. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  147. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  148. package/dist/providers/sdk/v1/index.d.ts +30 -0
  149. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  150. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  151. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  152. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  153. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  154. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  155. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  156. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  157. package/dist/providers/spec/adapter.d.ts +91 -0
  158. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  159. package/dist/providers/spec/evaluator.d.ts +45 -0
  160. package/dist/providers/spec/fsm-driver.d.ts +407 -0
  161. package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
  162. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  163. package/dist/providers/spec/fsm-types.d.ts +174 -0
  164. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  165. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  166. package/dist/providers/spec/route.d.ts +4 -0
  167. package/dist/providers/spec/types.d.ts +222 -0
  168. package/dist/providers/status-monitor.d.ts +7 -7
  169. package/dist/providers/transcript-v2.d.ts +176 -0
  170. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  171. package/dist/providers/working-dir.d.ts +17 -0
  172. package/dist/repo-mesh-types.d.ts +376 -13
  173. package/dist/runtime-defaults.d.ts +2 -0
  174. package/dist/sessions/registry.d.ts +6 -0
  175. package/dist/shared-types-extra.d.ts +2 -4
  176. package/dist/shared-types.d.ts +59 -2
  177. package/dist/status/normalize.d.ts +1 -1
  178. package/dist/status/normalize.js +1 -0
  179. package/dist/status/normalize.js.map +1 -1
  180. package/dist/status/normalize.mjs +1 -0
  181. package/dist/status/normalize.mjs.map +1 -1
  182. package/dist/status/reporter.d.ts +2 -0
  183. package/dist/status/snapshot.d.ts +26 -0
  184. package/dist/system/hash.d.ts +8 -0
  185. package/dist/system/load-better-sqlite3.d.ts +21 -0
  186. package/dist/types.d.ts +5 -0
  187. package/package.json +7 -3
  188. package/src/agent-stream/poller.ts +2 -3
  189. package/src/agent-stream/provider-adapter.ts +1 -1
  190. package/src/boot/daemon-lifecycle.ts +63 -12
  191. package/src/boot/process-hardening.ts +89 -0
  192. package/src/build-info.ts +73 -0
  193. package/src/chat/source-machine.ts +534 -0
  194. package/src/chat/source-resolver.ts +0 -0
  195. package/src/chat/subscription-updates.ts +20 -1
  196. package/src/cli-adapter-types.d.ts +1 -0
  197. package/src/cli-adapter-types.ts +68 -2
  198. package/src/cli-adapters/cli-script-runner.ts +421 -0
  199. package/src/cli-adapters/cli-state-engine.ts +1221 -0
  200. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  201. package/src/cli-adapters/provider-cli-adapter.ts +836 -1141
  202. package/src/cli-adapters/provider-cli-parse.d.ts +1 -0
  203. package/src/cli-adapters/provider-cli-parse.ts +13 -0
  204. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  205. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  206. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  207. package/src/cli-adapters/pty-transport.ts +2 -1
  208. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  209. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  210. package/src/cli-adapters/resolve-executable.ts +90 -0
  211. package/src/cli-adapters/session-host-transport.ts +2 -1
  212. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +53 -29
  213. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  214. package/src/cli-adapters/terminal-screen.ts +16 -81
  215. package/src/commands/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
  216. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  217. package/src/commands/chat-commands-read.ts +2327 -0
  218. package/src/commands/chat-commands-scope.ts +54 -0
  219. package/src/commands/chat-commands-shared.ts +114 -0
  220. package/src/commands/chat-commands-write.ts +880 -0
  221. package/src/commands/chat-commands.ts +19 -1841
  222. package/src/commands/cli-manager.ts +513 -26
  223. package/src/commands/handler.ts +841 -2
  224. package/src/commands/high-family/index.ts +28 -0
  225. package/src/commands/high-family/mesh-coordinator-launch.ts +657 -0
  226. package/src/commands/high-family/mesh-events.ts +80 -0
  227. package/src/commands/high-family/mesh-status.ts +678 -0
  228. package/src/commands/high-family/types.ts +76 -0
  229. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  230. package/src/commands/low-family/daemon-lifecycle.ts +107 -0
  231. package/src/commands/low-family/diagnostics.ts +57 -0
  232. package/src/commands/low-family/index.ts +37 -0
  233. package/src/commands/low-family/mesh-ledger.ts +62 -0
  234. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  235. package/src/commands/low-family/notification.ts +116 -0
  236. package/src/commands/low-family/refine-config.ts +106 -0
  237. package/src/commands/low-family/session-host.ts +274 -0
  238. package/src/commands/low-family/spec-providerdev.ts +217 -0
  239. package/src/commands/low-family/status-meta.ts +112 -0
  240. package/src/commands/low-family/types.ts +39 -0
  241. package/src/commands/med-family/cli-agent.ts +230 -0
  242. package/src/commands/med-family/fast-forward.ts +230 -0
  243. package/src/commands/med-family/ide.ts +163 -0
  244. package/src/commands/med-family/index.ts +37 -0
  245. package/src/commands/med-family/mesh-crud.ts +836 -0
  246. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  247. package/src/commands/med-family/mesh-queue.ts +131 -0
  248. package/src/commands/med-family/mesh-restart.ts +92 -0
  249. package/src/commands/med-family/types.ts +120 -0
  250. package/src/commands/mesh-coordinator.ts +334 -124
  251. package/src/commands/router.ts +2476 -3207
  252. package/src/commands/stream-commands.ts +8 -0
  253. package/src/commands/upgrade-helper.ts +310 -45
  254. package/src/config/chat-history.ts +483 -24
  255. package/src/config/config.ts +12 -0
  256. package/src/config/mesh-config.ts +353 -22
  257. package/src/config/recent-activity.ts +8 -2
  258. package/src/daemon/dev-auto-implement.ts +3 -2
  259. package/src/daemon/dev-cli-debug.ts +10 -1
  260. package/src/daemon/dev-server.ts +0 -541
  261. package/src/detection/cli-detector.ts +28 -9
  262. package/src/detection/ide-detector.ts +55 -16
  263. package/src/detection/win32-ide-version.ts +106 -0
  264. package/src/git/change-impact-config.ts +354 -0
  265. package/src/git/git-commands.ts +55 -14
  266. package/src/git/git-diff.ts +81 -11
  267. package/src/git/git-executor.ts +12 -0
  268. package/src/git/git-status.ts +574 -43
  269. package/src/git/git-types.ts +14 -62
  270. package/src/git/git-worktree.ts +76 -1
  271. package/src/git/index.ts +16 -0
  272. package/src/index.ts +171 -12
  273. package/src/installer.d.ts +1 -1
  274. package/src/installer.ts +8 -6
  275. package/src/ipc/local-ipc-server.ts +278 -0
  276. package/src/launch.d.ts +1 -1
  277. package/src/launch.ts +37 -28
  278. package/src/logging/async-batch-writer.ts +55 -0
  279. package/src/logging/command-log.ts +7 -5
  280. package/src/logging/log-redactor.ts +100 -0
  281. package/src/logging/log-tail-reader.ts +341 -0
  282. package/src/logging/logger.ts +14 -7
  283. package/src/mesh/contracts.ts +338 -0
  284. package/src/mesh/coordinator-prompt.ts +381 -33
  285. package/src/mesh/coordinator-registry.ts +121 -0
  286. package/src/mesh/mesh-active-work.ts +645 -0
  287. package/src/mesh/mesh-coordinator-config.ts +97 -0
  288. package/src/mesh/mesh-delivery-policy.ts +315 -0
  289. package/src/mesh/mesh-event-classify.ts +51 -0
  290. package/src/mesh/mesh-event-forwarding.ts +1693 -0
  291. package/src/mesh/mesh-event-trace.ts +67 -0
  292. package/src/mesh/mesh-events-coordinator.ts +30 -0
  293. package/src/mesh/mesh-events-pending.ts +590 -0
  294. package/src/mesh/mesh-events-stale.ts +363 -0
  295. package/src/mesh/mesh-events-utils.ts +425 -0
  296. package/src/mesh/mesh-events.ts +32 -1035
  297. package/src/mesh/mesh-fast-forward.ts +839 -0
  298. package/src/mesh/mesh-host-ownership.ts +73 -0
  299. package/src/mesh/mesh-init.ts +260 -0
  300. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  301. package/src/mesh/mesh-ledger.ts +596 -102
  302. package/src/mesh/mesh-missions.ts +322 -0
  303. package/src/mesh/mesh-node-identity.ts +1887 -0
  304. package/src/mesh/mesh-queue-assignment.ts +1491 -0
  305. package/src/mesh/mesh-reconcile-loop.ts +1527 -0
  306. package/src/mesh/mesh-refine-batch.ts +197 -0
  307. package/src/mesh/mesh-refine-gates.ts +1652 -0
  308. package/src/mesh/mesh-refine-status.ts +231 -0
  309. package/src/mesh/mesh-review-inbox.ts +307 -0
  310. package/src/mesh/mesh-routing.ts +291 -0
  311. package/src/mesh/mesh-runtime-store.ts +1795 -0
  312. package/src/mesh/mesh-scheduling-runtime.ts +199 -0
  313. package/src/mesh/mesh-task-stats.ts +161 -0
  314. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  315. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  316. package/src/mesh/mesh-work-queue.ts +1141 -141
  317. package/src/mesh/preview-freshness.ts +118 -0
  318. package/src/mesh/refine-config.ts +423 -0
  319. package/src/mesh/worktree-bootstrap-config.ts +331 -0
  320. package/src/providers/acp-provider-instance.ts +43 -10
  321. package/src/providers/approval-utils.d.ts +5 -0
  322. package/src/providers/approval-utils.ts +57 -5
  323. package/src/providers/chat-message-normalization.ts +46 -6
  324. package/src/providers/cli-provider-instance.ts +1552 -102
  325. package/src/providers/contracts.d.ts +55 -0
  326. package/src/providers/contracts.ts +150 -6
  327. package/src/providers/extension-provider-instance.ts +12 -7
  328. package/src/providers/external-sources.ts +218 -0
  329. package/src/providers/ide-provider-instance.ts +35 -12
  330. package/src/providers/manual-attendance.ts +85 -0
  331. package/src/providers/native-history/antigravity-cli-transcript.ts +643 -0
  332. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  333. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  334. package/src/providers/native-history/constants.ts +19 -0
  335. package/src/providers/native-history/dispatcher.ts +339 -0
  336. package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
  337. package/src/providers/native-history/index.ts +30 -0
  338. package/src/providers/provider-instance-manager.ts +30 -0
  339. package/src/providers/provider-instance.ts +19 -1
  340. package/src/providers/provider-loader.ts +668 -50
  341. package/src/providers/provider-schema.ts +87 -14
  342. package/src/providers/provider-trust.ts +114 -0
  343. package/src/providers/read-chat-contract.ts +76 -16
  344. package/src/providers/sdk/README.md +49 -0
  345. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  346. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  347. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  348. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +250 -0
  349. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  350. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  351. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  352. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  353. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  354. package/src/providers/sdk/v1/index.ts +152 -0
  355. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  356. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  357. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  358. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +504 -0
  359. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  360. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  361. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  362. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  363. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  364. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  365. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  366. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  367. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  368. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  369. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  370. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  371. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  372. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  373. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  374. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  375. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  376. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  377. package/src/providers/sdk/v1/validators/index.ts +19 -0
  378. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  379. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  380. package/src/providers/spec/adapter.ts +235 -0
  381. package/src/providers/spec/cli-adapter.ts +1056 -0
  382. package/src/providers/spec/evaluator.ts +407 -0
  383. package/src/providers/spec/fsm-driver.ts +1304 -0
  384. package/src/providers/spec/fsm-evaluator.ts +272 -0
  385. package/src/providers/spec/fsm-loader.ts +120 -0
  386. package/src/providers/spec/fsm-types.ts +273 -0
  387. package/src/providers/spec/native-history-executor.ts +1128 -0
  388. package/src/providers/spec/pre-launch-trust.ts +104 -0
  389. package/src/providers/spec/route.ts +51 -0
  390. package/src/providers/spec/types.ts +262 -0
  391. package/src/providers/status-monitor.d.ts +7 -7
  392. package/src/providers/status-monitor.ts +37 -22
  393. package/src/providers/transcript-v2.ts +567 -0
  394. package/src/providers/types/interactive-prompt.ts +536 -0
  395. package/src/providers/version-archive.ts +64 -24
  396. package/src/providers/working-dir.ts +23 -0
  397. package/src/repo-mesh-types.ts +542 -14
  398. package/src/runtime-defaults.ts +39 -0
  399. package/src/sessions/registry.ts +6 -0
  400. package/src/shared-types-extra.ts +2 -4
  401. package/src/shared-types.d.ts +8 -0
  402. package/src/shared-types.ts +64 -1
  403. package/src/status/builders.ts +26 -6
  404. package/src/status/normalize.ts +2 -0
  405. package/src/status/reporter.ts +19 -1
  406. package/src/status/snapshot.ts +95 -26
  407. package/src/system/hash.ts +23 -0
  408. package/src/system/host-memory.ts +29 -12
  409. package/src/system/load-better-sqlite3.ts +68 -0
  410. package/src/types.ts +5 -0
  411. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  412. package/dist/mesh/mesh-sync.d.ts +0 -53
  413. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  414. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  415. package/src/mesh/mesh-sync.ts +0 -111
@@ -86,6 +86,11 @@ export declare function isStableMachineId(machineId?: string | null): boolean;
86
86
  * Get the config directory path
87
87
  */
88
88
  export declare function getConfigDir(): string;
89
+ /**
90
+ * Get the daemon runtime data directory (~/.adhdev/daemon/).
91
+ * Distinct from the user-config dir so runtime state can be cleared independently.
92
+ */
93
+ export declare function getDaemonDataDir(): string;
89
94
  /**
90
95
  * Load configuration from disk
91
96
  */
@@ -5,7 +5,7 @@
5
5
  * Cloud mode syncs these to D1 via server routes; standalone mode
6
6
  * uses this file as the single source of truth.
7
7
  */
8
- import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig } from '../repo-mesh-types.js';
8
+ import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig, RepoMeshHostMetadata, RepoMeshDaemonRole } from '../repo-mesh-types.js';
9
9
  /**
10
10
  * Normalize a Git remote URL into a stable identity string.
11
11
  * e.g. "git@github.com:user/repo.git" → "github.com/user/repo"
@@ -22,6 +22,7 @@ export interface CreateMeshOptions {
22
22
  defaultBranch?: string;
23
23
  policy?: Partial<RepoMeshPolicy>;
24
24
  coordinator?: RepoMeshCoordinatorConfig;
25
+ meshHost?: RepoMeshHostMetadata;
25
26
  }
26
27
  export declare function createMesh(opts: CreateMeshOptions): LocalMeshEntry;
27
28
  export interface UpdateMeshOptions {
@@ -29,23 +30,98 @@ export interface UpdateMeshOptions {
29
30
  defaultBranch?: string;
30
31
  policy?: Partial<RepoMeshPolicy>;
31
32
  coordinator?: RepoMeshCoordinatorConfig;
33
+ meshHost?: RepoMeshHostMetadata;
32
34
  }
33
35
  export declare function updateMesh(meshId: string, opts: UpdateMeshOptions): LocalMeshEntry | undefined;
34
36
  export declare function deleteMesh(meshId: string): boolean;
37
+ export declare function tokenIdForManualPairing(token: string): string;
38
+ export interface ConfigureMeshHostPairingOptions {
39
+ hostAddress: string;
40
+ token: string;
41
+ now?: string;
42
+ }
43
+ export declare function configureMeshHostPairing(meshId: string, opts: ConfigureMeshHostPairingOptions): {
44
+ mesh: LocalMeshEntry;
45
+ meshHost: RepoMeshHostMetadata;
46
+ hostAddress: string;
47
+ } | undefined;
48
+ export interface CreateMeshHostPairingTokenOptions {
49
+ token?: string;
50
+ expiresAt?: string;
51
+ now?: string;
52
+ }
53
+ export declare function createMeshHostPairingToken(meshId: string, opts?: CreateMeshHostPairingTokenOptions): {
54
+ mesh: LocalMeshEntry;
55
+ meshHost: RepoMeshHostMetadata;
56
+ token: string;
57
+ tokenId: string;
58
+ expiresAt?: string;
59
+ } | undefined;
60
+ export interface MeshHostJoinMemberNodeInput {
61
+ id?: string;
62
+ workspace: string;
63
+ repoRoot?: string;
64
+ daemonId?: string;
65
+ machineId?: string;
66
+ userOverrides?: Partial<RepoMeshNodeCapabilities>;
67
+ policy?: RepoMeshNodePolicy;
68
+ role?: RepoMeshDaemonRole;
69
+ }
70
+ export interface ApplyMeshHostJoinOptions {
71
+ token: string;
72
+ memberNode: MeshHostJoinMemberNodeInput;
73
+ memberMeshId?: string;
74
+ now?: string;
75
+ }
76
+ export declare function applyMeshHostJoinRequest(meshId: string, opts: ApplyMeshHostJoinOptions): {
77
+ accepted: true;
78
+ mesh: LocalMeshEntry;
79
+ meshHost: RepoMeshHostMetadata;
80
+ node: LocalMeshNodeEntry;
81
+ tokenId: string;
82
+ } | {
83
+ accepted: false;
84
+ mesh?: LocalMeshEntry;
85
+ meshHost?: RepoMeshHostMetadata;
86
+ tokenId?: string;
87
+ reason: string;
88
+ } | undefined;
89
+ export declare function markMeshHostPairingJoined(meshId: string, opts: {
90
+ hostDaemonId?: string;
91
+ hostNodeId?: string;
92
+ joinedAt?: string;
93
+ token?: string;
94
+ tokenId?: string;
95
+ }): {
96
+ mesh: LocalMeshEntry;
97
+ meshHost: RepoMeshHostMetadata;
98
+ } | undefined;
35
99
  export interface AddNodeOptions {
36
100
  workspace: string;
37
101
  repoRoot?: string;
38
102
  daemonId?: string;
39
103
  machineId?: string;
104
+ capabilities?: string[];
40
105
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
41
106
  policy?: RepoMeshNodePolicy;
42
107
  isLocalWorktree?: boolean;
43
108
  worktreeBranch?: string;
44
109
  clonedFromNodeId?: string;
110
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
111
+ role?: RepoMeshDaemonRole;
45
112
  }
46
113
  export declare function addNode(meshId: string, opts: AddNodeOptions): LocalMeshNodeEntry | undefined;
47
114
  export declare function removeNode(meshId: string, nodeId: string): boolean;
48
115
  export declare function updateNode(meshId: string, nodeId: string, opts: {
49
116
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
50
117
  policy?: RepoMeshNodePolicy;
118
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
119
+ /** Per-node instruction surfaced in the coordinator prompt. Pass an
120
+ * empty string or undefined to clear it. */
121
+ systemPrompt?: string;
122
+ /** Live self-reported platform/arch from the owning daemon's git_status
123
+ * envelope. Persisted distinctly from userOverrides (auto-detected, not
124
+ * operator intent) so capability-tag os=/arch= self-heals across loads. */
125
+ reportedPlatform?: string;
126
+ reportedArch?: string;
51
127
  }): LocalMeshNodeEntry | undefined;
@@ -103,8 +103,6 @@ export declare class DevServer implements DevServerContext {
103
103
  getLatestScriptVersionDir(scriptsDir: string): string | null;
104
104
  private resolveAutoImplWritableProviderDir;
105
105
  private handleAutoImplement;
106
- private buildAutoImplPrompt;
107
- private buildCliAutoImplPrompt;
108
106
  private handleAutoImplSSE;
109
107
  private handleAutoImplCancel;
110
108
  sendAutoImplSSE(msg: {
@@ -32,4 +32,17 @@ export interface IDEDefinition {
32
32
  };
33
33
  }
34
34
  export declare function registerIDEDefinition(def: IDEDefinition): void;
35
+ /**
36
+ * Resolve an IDE version on demand (NOT at boot).
37
+ *
38
+ * Order of preference, all spawn-free where possible:
39
+ * 1. win32: read the bundled product.json/package.json next to the exe.
40
+ * 2. Otherwise spawn `<cli> --version` — but ONLY when the binary is not a
41
+ * known GUI executable (the #4 guard), so we never boot an IDE window.
42
+ *
43
+ * `win32ProcessNames` is provider.json `processNames.win32` (type → exe names),
44
+ * used to recognise GUI executables. Callers that have a ProviderLoader can
45
+ * pass `providerLoader.getWinProcessNames()`.
46
+ */
47
+ export declare function getIdeVersion(cliCommand: string, win32ProcessNames?: Record<string, string[]>): Promise<string | null>;
35
48
  export declare function detectIDEs(providerLoader?: ProviderLoader): Promise<IDEInfo[]>;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ADHDev — Windows IDE version detection (execution-free)
3
+ *
4
+ * On Windows the resolved "CLI" for a VS Code fork (Cursor, Antigravity, …)
5
+ * frequently resolves to the GUI Electron executable itself, because the
6
+ * case-insensitive filesystem matches `...\cursor\cursor.exe` against the
7
+ * real `Cursor.exe`. Running `<that exe> --version` boots the GUI instead of
8
+ * printing a version (Electron ignores the unknown flag and opens a window).
9
+ *
10
+ * To learn the version WITHOUT spawning anything, we read the bundled
11
+ * `product.json` / `package.json` that ship next to the executable. VS Code
12
+ * forks embed their version there. This is a pure filesystem read.
13
+ *
14
+ * It also exposes a guard so any remaining `--version` exec path can refuse to
15
+ * spawn a binary that is a known GUI executable for an IDE provider.
16
+ */
17
+ /**
18
+ * Read an IDE version from disk (no process spawn).
19
+ *
20
+ * @param exePath Absolute path to the GUI executable (or any path inside the
21
+ * IDE install dir — we read the manifest relative to its directory).
22
+ * @returns The version string, or null if it could not be determined.
23
+ */
24
+ export declare function readWin32IdeVersionFromDisk(exePath: string): string | null;
25
+ /**
26
+ * True when `binPath` resolves to a known GUI executable for some IDE.
27
+ *
28
+ * Used as a safety net: any code path about to run `<bin> --version` must skip
29
+ * the spawn when the binary is actually the GUI Electron exe, since that would
30
+ * launch the IDE window. Comparison is case-insensitive on the basename
31
+ * (Windows filesystem semantics) against every provider's `processNames.win32`.
32
+ *
33
+ * @param binPath Resolved binary path that would be exec'd.
34
+ * @param win32ProcessNames Map of provider type → list of GUI exe names
35
+ * (from provider.json `processNames.win32`, e.g. `["Cursor.exe"]`).
36
+ */
37
+ export declare function isKnownWin32GuiExe(binPath: string | null | undefined, win32ProcessNames: Record<string, string[]>): boolean;
@@ -0,0 +1,159 @@
1
+ /**
2
+ * "Change Impact" — config-driven classification of which git changes between the
3
+ * live daemon's build commit and the workspace HEAD actually require a daemon
4
+ * rebuild/restart (vs. a web-only redeploy, vs. nothing).
5
+ *
6
+ * The daemon-core git surface only knows the FACTS (which files / packages changed
7
+ * between buildCommit..HEAD). The POLICY — which packages are daemon-runtime, which
8
+ * are web-only, which root files are non-runtime, and what command to recommend —
9
+ * is declarative config injected from outside. This keeps git-status.ts repo-agnostic
10
+ * while preserving ADHDev's exact built-in behavior when no config is present.
11
+ *
12
+ * SECURITY: config is declarative only. JSON/YAML are parsed; arbitrary JS config
13
+ * (.js) is intentionally NOT supported, so loading a config can never execute code.
14
+ */
15
+ /** A change-impact classification bucket. */
16
+ export type ChangeImpactKind = 'daemon' | 'web' | 'none';
17
+ /**
18
+ * Recommended action for a given impact classification. `recommendedAction` is the
19
+ * stable classification key (always one of daemon|web|none, NOT config-overridable);
20
+ * config customizes only the human-facing `recommendedCommand` recipe.
21
+ */
22
+ export interface ChangeImpactTarget {
23
+ /** Human-facing command/recipe to act on the impact (e.g. deploy + restart). */
24
+ recommendedCommand: string;
25
+ }
26
+ export interface ChangeImpactConfig {
27
+ /**
28
+ * Package names (the `<name>` in `packages/<name>/`) whose change means the
29
+ * daemon runtime is stale and must be rebuilt/redeployed + restarted. When
30
+ * provided, this REPLACES the built-in daemon-runtime set.
31
+ */
32
+ daemonRuntimePackages?: string[];
33
+ /**
34
+ * Package names that are web-only — a change to one does not require a daemon
35
+ * restart, only a web redeploy. When provided, this REPLACES the built-in
36
+ * web-only set.
37
+ */
38
+ webOnlyPackages?: string[];
39
+ /**
40
+ * Glob patterns for root-level (non-package) files that demonstrably cannot
41
+ * change what the daemon runtime executes (markers, docs, license text). These
42
+ * are added on top of the built-in non-runtime root-file detection.
43
+ */
44
+ nonRuntimeRootFilePatterns?: string[];
45
+ /** Recommended action/command per impact classification. Missing keys fall back to built-in defaults. */
46
+ impactTargets?: Partial<Record<ChangeImpactKind, ChangeImpactTarget>>;
47
+ }
48
+ export interface ChangeImpactConfigLoadResult {
49
+ config?: ChangeImpactConfig;
50
+ source: string;
51
+ sourceType: 'repo_file' | 'unavailable' | 'invalid';
52
+ path?: string;
53
+ error?: string;
54
+ /**
55
+ * Stable identity of the config SOURCE, used as part of a cache key so a config
56
+ * edit invalidates any cached impact evaluation. Combines the resolved path and
57
+ * its mtime (or the path for the unavailable/invalid case).
58
+ */
59
+ sourceKey: string;
60
+ }
61
+ export declare const CHANGE_IMPACT_CONFIG_LOCATIONS: string[];
62
+ export declare const CHANGE_IMPACT_CONFIG_SCHEMA: {
63
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
64
+ readonly title: "ADHDev Change Impact Config";
65
+ readonly type: "object";
66
+ readonly additionalProperties: false;
67
+ readonly properties: {
68
+ readonly daemonRuntimePackages: {
69
+ readonly type: "array";
70
+ readonly items: {
71
+ readonly type: "string";
72
+ readonly minLength: 1;
73
+ };
74
+ };
75
+ readonly webOnlyPackages: {
76
+ readonly type: "array";
77
+ readonly items: {
78
+ readonly type: "string";
79
+ readonly minLength: 1;
80
+ };
81
+ };
82
+ readonly nonRuntimeRootFilePatterns: {
83
+ readonly type: "array";
84
+ readonly items: {
85
+ readonly type: "string";
86
+ readonly minLength: 1;
87
+ };
88
+ };
89
+ readonly impactTargets: {
90
+ readonly type: "object";
91
+ readonly additionalProperties: false;
92
+ readonly properties: {
93
+ readonly daemon: {
94
+ readonly $ref: "#/$defs/target";
95
+ };
96
+ readonly web: {
97
+ readonly $ref: "#/$defs/target";
98
+ };
99
+ readonly none: {
100
+ readonly $ref: "#/$defs/target";
101
+ };
102
+ };
103
+ };
104
+ };
105
+ readonly $defs: {
106
+ readonly target: {
107
+ readonly type: "object";
108
+ readonly additionalProperties: false;
109
+ readonly required: readonly ["recommendedCommand"];
110
+ readonly properties: {
111
+ readonly recommendedCommand: {
112
+ readonly type: "string";
113
+ readonly minLength: 1;
114
+ };
115
+ };
116
+ };
117
+ };
118
+ };
119
+ export declare function validateChangeImpactConfig(raw: unknown, source?: string): {
120
+ valid: boolean;
121
+ errors: string[];
122
+ config?: ChangeImpactConfig;
123
+ };
124
+ /**
125
+ * Locate and load the Change Impact config for a repo root. Declarative only —
126
+ * never executes config. Returns a sourceKey suitable for cache invalidation:
127
+ * config path + mtime, or the sentinel for the missing/invalid case.
128
+ */
129
+ export declare function loadChangeImpactConfig(repoRoot: string): ChangeImpactConfigLoadResult;
130
+ /**
131
+ * Translate a config glob pattern into a RegExp matched against a forward-slash
132
+ * file path. Supports `**` (any path segments), `*` (any chars except `/`), and
133
+ * `?` (single non-slash char). No brace/character-class expansion — declarative,
134
+ * minimal, predictable. All other characters are matched literally.
135
+ */
136
+ export declare function globToRegExp(pattern: string): RegExp;
137
+ export interface ChangeImpactConfigSuggestion {
138
+ /** A non-executable, declarative config draft a human can save verbatim. */
139
+ suggestedConfig: ChangeImpactConfig;
140
+ /** Per-field human-facing rationale for the proposed classification. */
141
+ notes: string[];
142
+ /** Package directories discovered under `packages/` (and `oss/packages/`). */
143
+ discoveredPackages: {
144
+ daemon: string[];
145
+ web: string[];
146
+ unclassified: string[];
147
+ };
148
+ }
149
+ /**
150
+ * Inspect a repo's package layout and propose a reasonable, declarative Change
151
+ * Impact config draft. This is heuristic scaffold ONLY — it never executes
152
+ * anything and the draft must be reviewed/saved by a human before it takes
153
+ * effect. The heuristic mirrors ADHDev's own conventions:
154
+ * - `web-*` / `*-web` packages → web-only (web redeploy, no daemon restart)
155
+ * - everything else under packages/ → daemon-runtime (rebuild + restart)
156
+ * - docs/license/marker root files → non-runtime
157
+ * Callers are expected to prune the draft to their actual runtime topology.
158
+ */
159
+ export declare function suggestChangeImpactConfig(repoRoot: string): ChangeImpactConfigSuggestion;
@@ -23,8 +23,12 @@ export interface GitLogResult extends GitRepoIdentity {
23
23
  lastCheckedAt: number;
24
24
  }
25
25
  export interface GitCheckpointResult extends GitRepoIdentity {
26
- commit: string;
26
+ commit?: string;
27
27
  message: string;
28
+ status?: 'created' | 'skipped';
29
+ skipped?: boolean;
30
+ noop?: boolean;
31
+ reason?: 'nothing_to_commit';
28
32
  lastCheckedAt: number;
29
33
  }
30
34
  export interface GitStashPushResult extends GitRepoIdentity {
@@ -43,15 +47,19 @@ export interface GitCommandServices {
43
47
  getStatus?: (params: {
44
48
  workspace: string;
45
49
  refreshUpstream?: boolean;
50
+ includeSubmodules?: boolean;
51
+ submoduleIgnorePaths?: string[];
46
52
  }) => Promise<GitRepoStatus> | GitRepoStatus;
47
53
  getDiffSummary?: (params: {
48
54
  workspace: string;
49
55
  staged?: boolean;
56
+ base?: string;
50
57
  }) => Promise<GitDiffSummary> | GitDiffSummary;
51
58
  getDiffFile?: (params: {
52
59
  workspace: string;
53
60
  path: string;
54
61
  staged?: boolean;
62
+ base?: string;
55
63
  }) => Promise<GitFileDiff> | GitFileDiff;
56
64
  createSnapshot?: (params: {
57
65
  workspace: string;
@@ -113,6 +121,8 @@ type GitCommandFailure = {
113
121
  type GitCommandSuccess = {
114
122
  success: true;
115
123
  status: GitRepoStatus;
124
+ reporterPlatform?: string;
125
+ reporterArch?: string;
116
126
  } | {
117
127
  success: true;
118
128
  diffSummary: GitDiffSummary;
@@ -3,6 +3,12 @@ export interface GitDiffOptions {
3
3
  timeoutMs?: number;
4
4
  maxFiles?: number;
5
5
  maxBytes?: number;
6
+ /**
7
+ * When set, diff `<baseRef>...HEAD` (merge-base range — "what this branch
8
+ * adds on top of base") instead of the working tree. Staged/untracked
9
+ * sections do not apply in this mode.
10
+ */
11
+ baseRef?: string;
6
12
  }
7
13
  export interface GitFileDiffResult {
8
14
  workspace: string;
@@ -1,4 +1,15 @@
1
1
  import type { GitFailureReason, GitRepoIdentity } from './git-types.js';
2
+ /**
3
+ * Timeout for status-collection git commands (status/log/submodule/stash/fetch).
4
+ * The default 5s is fine for porcelain status, but on Windows the `git` subprocess
5
+ * spawn itself is pathologically slow (measured: `submodule status` ~3.5s, cold
6
+ * `log -1` ~4.2s) and overlaps with refreshUpstream fetches — a single command
7
+ * routinely exceeds 5s, which previously collapsed the whole status to all-null and
8
+ * dropped the node from the mesh graph. Give the collection path a much larger
9
+ * budget so a slow-but-healthy repo never reads as "not a git repo". Windows gets a
10
+ * larger budget than POSIX because the spawn cost is OS-specific, not repo-specific.
11
+ */
12
+ export declare const GIT_STATUS_TIMEOUT_MS: number;
2
13
  export interface GitExecutorOptions {
3
14
  timeoutMs?: number;
4
15
  maxBuffer?: number;
@@ -1,4 +1,10 @@
1
1
  import type { GitRepoStatus } from './git-types.js';
2
+ import { type DaemonBuildInfo } from '../build-info.js';
3
+ import { type ChangeImpactConfig } from './change-impact-config.js';
4
+ /** Test seam: clear the last-known-good status cache between cases. */
5
+ export declare function __resetGitStatusCacheForTests(): void;
6
+ /** Test-only introspection: number of memoized Change Impact evaluations. */
7
+ export declare function __changeImpactEvalCacheSizeForTests(): number;
2
8
  export interface GitStatusOptions {
3
9
  timeoutMs?: number;
4
10
  /** When true, include submodule status in the result. Defaults to true. */
@@ -10,6 +16,23 @@ export interface GitStatusOptions {
10
16
  * Callers should opt into this only for convergence-critical surfaces.
11
17
  */
12
18
  refreshUpstream?: boolean;
19
+ /**
20
+ * Test/override seam for the daemon build stamp used by the stale-build
21
+ * detector. Production callers omit this so the real baked-in build commit
22
+ * (getDaemonBuildInfo) is used.
23
+ */
24
+ daemonBuildInfo?: DaemonBuildInfo;
25
+ /**
26
+ * Change Impact policy override. When provided, the daemonBuildBehind
27
+ * classifier uses this declarative config instead of auto-loading the repo's
28
+ * `.adhdev/change-impact.*` file. When omitted, getGitRepoStatus auto-loads the
29
+ * repo config (cached); when neither is present the built-in ADHDev default
30
+ * policy applies, preserving the legacy behavior exactly.
31
+ *
32
+ * Pass `null` to force the built-in default policy and skip auto-loading (used
33
+ * to assert legacy parity in tests).
34
+ */
35
+ changeImpactConfig?: ChangeImpactConfig | null;
13
36
  }
14
37
  export declare function getGitRepoStatus(workspace: string, options?: GitStatusOptions): Promise<GitRepoStatus>;
15
38
  interface ParsedPorcelainStatus {
@@ -5,56 +5,8 @@
5
5
  * transports, and web-core. Git state is daemon-owned product truth; do not
6
6
  * infer these values from agent transcripts in frontend code.
7
7
  */
8
- export type GitFailureReason = 'not_git_repo' | 'git_not_installed' | 'timeout' | 'path_outside_repo' | 'dirty_index_required' | 'conflict' | 'invalid_args' | 'nothing_to_commit' | 'git_command_failed';
9
- export interface GitRepoIdentity {
10
- workspace: string;
11
- repoRoot: string | null;
12
- isGitRepo: boolean;
13
- }
14
- export interface GitSubmoduleStatus {
15
- /** Submodule path relative to repo root */
16
- path: string;
17
- /** Current commit SHA the submodule is at */
18
- commit: string;
19
- /** Path to the submodule repo (absolute) */
20
- repoPath: string;
21
- /** Whether the submodule has uncommitted changes */
22
- dirty: boolean;
23
- /** Whether the submodule commit differs from what the parent repo expects */
24
- outOfSync: boolean;
25
- /** Last checked timestamp */
26
- lastCheckedAt: number;
27
- /** Error message if submodule status could not be read */
28
- error?: string;
29
- }
30
- export type GitUpstreamFreshness = 'fresh' | 'unchecked' | 'stale' | 'no_upstream' | 'unavailable';
31
- export interface GitRepoStatus extends GitRepoIdentity {
32
- branch: string | null;
33
- headCommit: string | null;
34
- headMessage: string | null;
35
- upstream: string | null;
36
- /** Whether ahead/behind was verified against a freshly fetched upstream ref. */
37
- upstreamStatus: GitUpstreamFreshness;
38
- /** Timestamp for the fetch that refreshed upstream refs when upstreamStatus === 'fresh'. */
39
- upstreamFetchedAt?: number;
40
- /** Error from the last refresh attempt when upstreamStatus === 'stale'. */
41
- upstreamFetchError?: string;
42
- ahead: number;
43
- behind: number;
44
- staged: number;
45
- modified: number;
46
- untracked: number;
47
- deleted: number;
48
- renamed: number;
49
- hasConflicts: boolean;
50
- conflictFiles: string[];
51
- stashCount: number;
52
- lastCheckedAt: number;
53
- /** Submodule statuses when auto-discover is enabled */
54
- submodules?: GitSubmoduleStatus[];
55
- error?: string;
56
- reason?: GitFailureReason;
57
- }
8
+ export type { GitFailureReason, GitRepoIdentity, GitSubmoduleStatus, GitUpstreamFreshness, GitRepoStatus, DaemonBuildBehind, } from '@adhdev/mesh-shared';
9
+ import type { GitRepoIdentity, GitRepoStatus, GitFailureReason, GitUpstreamFreshness } from '@adhdev/mesh-shared';
58
10
  export type GitFileChangeStatus = 'added' | 'modified' | 'deleted' | 'renamed' | 'copied' | 'untracked' | 'conflict';
59
11
  export interface GitFileChange {
60
12
  path: string;
@@ -75,3 +75,25 @@ export declare function listWorktrees(repoRoot: string): Promise<WorktreeEntry[]
75
75
  * Parse `git worktree list --porcelain` output into structured entries.
76
76
  */
77
77
  export declare function parseWorktreeListOutput(output: string): WorktreeEntry[];
78
+ export interface BranchRefDeleteResult {
79
+ /** True if the branch ref no longer exists after this call. */
80
+ deleted: boolean;
81
+ /** Why it was (not) deleted, for surfacing in the cleanup result. */
82
+ reason: string;
83
+ /** True when a forced delete (`-D`) was needed (e.g. squash/patch-equivalent merge). */
84
+ forced?: boolean;
85
+ }
86
+ /**
87
+ * Delete a local branch ref after its worktree was removed.
88
+ *
89
+ * SAFETY: this is only meant to be called once the caller has independently
90
+ * verified that the branch is fully merged / its content is contained in the
91
+ * default ref (no work loss). It first tries the safe `git branch -d`, which
92
+ * refuses to delete a branch git itself does not consider merged. If
93
+ * `safeDeleteOnly` is false (the caller proved containment by patch-equivalence,
94
+ * which `-d` cannot see), it falls back to `git branch -D`. When the branch is
95
+ * already gone, this reports `deleted: true` idempotently.
96
+ */
97
+ export declare function deleteBranchRef(repoRoot: string, branch: string, opts?: {
98
+ safeDeleteOnly?: boolean;
99
+ }): Promise<BranchRefDeleteResult>;
@@ -3,6 +3,8 @@ export { GitCommandError, isPathInside, normalizeGitOutput, resolveGitRepository
3
3
  export type { GitCommandResult as GitExecutorCommandResult, GitExecutorOptions, RunGitOptions } from './git-executor.js';
4
4
  export { getGitRepoStatus, parsePorcelainV2Status } from './git-status.js';
5
5
  export type { GitStatusOptions } from './git-status.js';
6
+ export { CHANGE_IMPACT_CONFIG_LOCATIONS, CHANGE_IMPACT_CONFIG_SCHEMA, globToRegExp, loadChangeImpactConfig, suggestChangeImpactConfig, validateChangeImpactConfig, } from './change-impact-config.js';
7
+ export type { ChangeImpactConfig, ChangeImpactConfigLoadResult, ChangeImpactConfigSuggestion, ChangeImpactKind, ChangeImpactTarget, } from './change-impact-config.js';
6
8
  export { getGitDiffSummary, getGitFileDiff } from './git-diff.js';
7
9
  export type { GitDiffOptions, GitFileDiffResult } from './git-diff.js';
8
10
  export { createGitCompactSummary, summarizeGitStatus } from './git-summary.js';