@adhdev/daemon-core 0.9.82-rc.46 → 0.9.82-rc.460

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 (439) 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 +200 -0
  10. package/dist/cli-adapters/provider-cli-adapter.d.ts +126 -64
  11. package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
  12. package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
  13. package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
  14. package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
  15. package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
  16. package/dist/cli-adapters/resolve-executable.d.ts +69 -0
  17. package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
  18. package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
  19. package/dist/cli-adapters/terminal-screen.d.ts +4 -11
  20. package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
  21. package/dist/commands/chat-commands-read.d.ts +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 +25 -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-refine.d.ts +137 -0
  56. package/dist/commands/router-worktree-cleanup.d.ts +133 -0
  57. package/dist/commands/router.d.ts +241 -12
  58. package/dist/commands/upgrade-helper.d.ts +41 -1
  59. package/dist/config/chat-history.d.ts +9 -0
  60. package/dist/config/config.d.ts +19 -0
  61. package/dist/config/mesh-config.d.ts +129 -1
  62. package/dist/config/mesh-json-config.d.ts +199 -0
  63. package/dist/config/registry-resolver.d.ts +54 -0
  64. package/dist/config/repo-settings.d.ts +77 -0
  65. package/dist/daemon/dev-server.d.ts +0 -2
  66. package/dist/detection/ide-detector.d.ts +13 -0
  67. package/dist/detection/win32-ide-version.d.ts +37 -0
  68. package/dist/git/change-impact-config.d.ts +159 -0
  69. package/dist/git/git-commands.d.ts +12 -1
  70. package/dist/git/git-diff.d.ts +6 -0
  71. package/dist/git/git-executor.d.ts +11 -0
  72. package/dist/git/git-status.d.ts +57 -0
  73. package/dist/git/git-types.d.ts +2 -50
  74. package/dist/git/git-worktree.d.ts +71 -1
  75. package/dist/git/index.d.ts +3 -1
  76. package/dist/index.d.ts +67 -15
  77. package/dist/index.js +57943 -25340
  78. package/dist/index.js.map +1 -1
  79. package/dist/index.mjs +57611 -25174
  80. package/dist/index.mjs.map +1 -1
  81. package/dist/installer.d.ts +1 -4
  82. package/dist/ipc/local-ipc-server.d.ts +91 -0
  83. package/dist/launch.d.ts +1 -1
  84. package/dist/logging/async-batch-writer.d.ts +10 -0
  85. package/dist/logging/debug-config.d.ts +16 -0
  86. package/dist/logging/log-redactor.d.ts +24 -0
  87. package/dist/logging/log-tail-reader.d.ts +81 -0
  88. package/dist/logging/logger.d.ts +1 -1
  89. package/dist/mesh/contracts.d.ts +230 -0
  90. package/dist/mesh/coordinator-prompt.d.ts +76 -0
  91. package/dist/mesh/coordinator-registry.d.ts +59 -0
  92. package/dist/mesh/mesh-active-work.d.ts +174 -0
  93. package/dist/mesh/mesh-clone-grace.d.ts +8 -0
  94. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  95. package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
  96. package/dist/mesh/mesh-event-classify.d.ts +7 -0
  97. package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
  98. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  99. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  100. package/dist/mesh/mesh-events-pending.d.ts +113 -0
  101. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  102. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  103. package/dist/mesh/mesh-events.d.ts +6 -49
  104. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  105. package/dist/mesh/mesh-host-ownership.d.ts +29 -0
  106. package/dist/mesh/mesh-init.d.ts +128 -0
  107. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  108. package/dist/mesh/mesh-ledger.d.ts +133 -1
  109. package/dist/mesh/mesh-magi-status.d.ts +63 -0
  110. package/dist/mesh/mesh-missions.d.ts +189 -0
  111. package/dist/mesh/mesh-node-identity.d.ts +306 -0
  112. package/dist/mesh/mesh-queue-assignment.d.ts +158 -0
  113. package/dist/mesh/mesh-reconcile-loop.d.ts +80 -0
  114. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  115. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  116. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  117. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  118. package/dist/mesh/mesh-routing.d.ts +70 -0
  119. package/dist/mesh/mesh-runtime-store.d.ts +476 -0
  120. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  121. package/dist/mesh/mesh-task-inflight.d.ts +46 -0
  122. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  123. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  124. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  125. package/dist/mesh/mesh-work-queue.d.ts +318 -5
  126. package/dist/mesh/preview-freshness.d.ts +28 -0
  127. package/dist/mesh/refine-config.d.ts +216 -0
  128. package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
  129. package/dist/providers/acp-provider-instance.d.ts +5 -0
  130. package/dist/providers/approval-utils.d.ts +45 -0
  131. package/dist/providers/chat-message-normalization.d.ts +58 -1
  132. package/dist/providers/cli-provider-instance.d.ts +290 -3
  133. package/dist/providers/contracts.d.ts +149 -6
  134. package/dist/providers/external-sources.d.ts +71 -0
  135. package/dist/providers/manual-attendance.d.ts +79 -0
  136. package/dist/providers/native-history/antigravity-claim-registry.d.ts +28 -0
  137. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
  138. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  139. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  140. package/dist/providers/native-history/constants.d.ts +12 -0
  141. package/dist/providers/native-history/dispatcher.d.ts +31 -0
  142. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  143. package/dist/providers/native-history/index.d.ts +13 -0
  144. package/dist/providers/provider-instance-manager.d.ts +29 -0
  145. package/dist/providers/provider-instance.d.ts +30 -1
  146. package/dist/providers/provider-loader.d.ts +42 -5
  147. package/dist/providers/provider-trust.d.ts +31 -0
  148. package/dist/providers/read-chat-contract.d.ts +29 -0
  149. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  150. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  151. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  152. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  153. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  154. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  155. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  156. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  157. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  158. package/dist/providers/sdk/v1/index.d.ts +30 -0
  159. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  160. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  161. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  162. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  163. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  164. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  165. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  166. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  167. package/dist/providers/spec/adapter.d.ts +98 -0
  168. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  169. package/dist/providers/spec/evaluator.d.ts +45 -0
  170. package/dist/providers/spec/fsm-driver.d.ts +449 -0
  171. package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
  172. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  173. package/dist/providers/spec/fsm-types.d.ts +202 -0
  174. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  175. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  176. package/dist/providers/spec/route.d.ts +4 -0
  177. package/dist/providers/spec/types.d.ts +222 -0
  178. package/dist/providers/status-monitor.d.ts +7 -7
  179. package/dist/providers/transcript-v2.d.ts +176 -0
  180. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  181. package/dist/providers/working-dir.d.ts +17 -0
  182. package/dist/repo-mesh-types.d.ts +519 -13
  183. package/dist/runtime-defaults.d.ts +2 -0
  184. package/dist/session-host/managed-host.d.ts +64 -0
  185. package/dist/session-host/runtime-surface.d.ts +10 -16
  186. package/dist/sessions/registry.d.ts +6 -0
  187. package/dist/shared-types-extra.d.ts +2 -4
  188. package/dist/shared-types.d.ts +86 -55
  189. package/dist/status/normalize.d.ts +1 -1
  190. package/dist/status/normalize.js +1 -0
  191. package/dist/status/normalize.js.map +1 -1
  192. package/dist/status/normalize.mjs +1 -0
  193. package/dist/status/normalize.mjs.map +1 -1
  194. package/dist/status/reporter.d.ts +2 -0
  195. package/dist/status/snapshot.d.ts +26 -0
  196. package/dist/system/hash.d.ts +8 -0
  197. package/dist/system/load-better-sqlite3.d.ts +21 -0
  198. package/dist/types.d.ts +5 -0
  199. package/package.json +11 -4
  200. package/src/agent-stream/poller.ts +2 -3
  201. package/src/agent-stream/provider-adapter.ts +1 -1
  202. package/src/boot/daemon-lifecycle.ts +65 -12
  203. package/src/boot/process-hardening.ts +89 -0
  204. package/src/build-info.ts +73 -0
  205. package/src/chat/source-machine.ts +534 -0
  206. package/src/chat/source-resolver.ts +0 -0
  207. package/src/chat/subscription-updates.ts +20 -1
  208. package/src/cli-adapter-types.d.ts +3 -1
  209. package/src/cli-adapter-types.ts +68 -2
  210. package/src/cli-adapters/cli-script-runner.ts +421 -0
  211. package/src/cli-adapters/cli-state-engine.ts +1246 -0
  212. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  213. package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
  214. package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
  215. package/src/cli-adapters/provider-cli-parse.ts +19 -0
  216. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  217. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  218. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  219. package/src/cli-adapters/pty-transport.ts +2 -1
  220. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  221. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  222. package/src/cli-adapters/resolve-executable.ts +204 -0
  223. package/src/cli-adapters/session-host-transport.ts +2 -1
  224. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
  225. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  226. package/src/cli-adapters/terminal-screen.ts +16 -81
  227. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  228. package/src/commands/chat-commands-read.ts +2488 -0
  229. package/src/commands/chat-commands-scope.ts +54 -0
  230. package/src/commands/chat-commands-shared.ts +114 -0
  231. package/src/commands/chat-commands-write.ts +891 -0
  232. package/src/commands/chat-commands.ts +19 -1841
  233. package/src/commands/cli-manager.ts +596 -27
  234. package/src/commands/handler.ts +845 -2
  235. package/src/commands/high-family/index.ts +28 -0
  236. package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
  237. package/src/commands/high-family/mesh-events.ts +89 -0
  238. package/src/commands/high-family/mesh-status.ts +822 -0
  239. package/src/commands/high-family/types.ts +80 -0
  240. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  241. package/src/commands/low-family/daemon-lifecycle.ts +120 -0
  242. package/src/commands/low-family/diagnostics.ts +57 -0
  243. package/src/commands/low-family/index.ts +37 -0
  244. package/src/commands/low-family/mesh-ledger.ts +62 -0
  245. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  246. package/src/commands/low-family/notification.ts +116 -0
  247. package/src/commands/low-family/refine-config.ts +106 -0
  248. package/src/commands/low-family/session-host.ts +274 -0
  249. package/src/commands/low-family/spec-providerdev.ts +217 -0
  250. package/src/commands/low-family/status-meta.ts +112 -0
  251. package/src/commands/low-family/types.ts +39 -0
  252. package/src/commands/med-family/cli-agent.ts +241 -0
  253. package/src/commands/med-family/fast-forward.ts +230 -0
  254. package/src/commands/med-family/ide.ts +163 -0
  255. package/src/commands/med-family/index.ts +37 -0
  256. package/src/commands/med-family/mesh-crud.ts +1287 -0
  257. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  258. package/src/commands/med-family/mesh-queue.ts +167 -0
  259. package/src/commands/med-family/mesh-restart.ts +92 -0
  260. package/src/commands/med-family/types.ts +153 -0
  261. package/src/commands/mesh-coordinator.ts +334 -124
  262. package/src/commands/router-refine.ts +1711 -0
  263. package/src/commands/router-worktree-cleanup.ts +870 -0
  264. package/src/commands/router.ts +1025 -4070
  265. package/src/commands/stream-commands.ts +8 -0
  266. package/src/commands/upgrade-helper.ts +310 -45
  267. package/src/config/chat-history.ts +493 -24
  268. package/src/config/config.ts +30 -0
  269. package/src/config/mesh-config.ts +619 -23
  270. package/src/config/mesh-json-config.ts +376 -0
  271. package/src/config/recent-activity.ts +8 -2
  272. package/src/config/registry-resolver.ts +100 -0
  273. package/src/config/repo-settings.ts +111 -0
  274. package/src/daemon/dev-auto-implement.ts +3 -2
  275. package/src/daemon/dev-cli-debug.ts +10 -1
  276. package/src/daemon/dev-server.ts +0 -541
  277. package/src/detection/cli-detector.ts +28 -9
  278. package/src/detection/ide-detector.ts +55 -16
  279. package/src/detection/win32-ide-version.ts +106 -0
  280. package/src/git/change-impact-config.ts +354 -0
  281. package/src/git/git-commands.ts +78 -15
  282. package/src/git/git-diff.ts +81 -11
  283. package/src/git/git-executor.ts +12 -0
  284. package/src/git/git-status.ts +767 -48
  285. package/src/git/git-types.ts +14 -62
  286. package/src/git/git-worktree.ts +261 -4
  287. package/src/git/index.ts +17 -0
  288. package/src/index.ts +200 -12
  289. package/src/installer.d.ts +1 -1
  290. package/src/installer.ts +8 -6
  291. package/src/ipc/local-ipc-server.ts +278 -0
  292. package/src/launch.d.ts +1 -1
  293. package/src/launch.ts +37 -28
  294. package/src/logging/async-batch-writer.ts +55 -0
  295. package/src/logging/command-log.ts +7 -5
  296. package/src/logging/debug-config.ts +25 -0
  297. package/src/logging/debug-trace.ts +7 -2
  298. package/src/logging/log-redactor.ts +100 -0
  299. package/src/logging/log-tail-reader.ts +341 -0
  300. package/src/logging/logger.ts +14 -7
  301. package/src/mesh/contracts.ts +469 -0
  302. package/src/mesh/coordinator-prompt.ts +536 -34
  303. package/src/mesh/coordinator-registry.ts +121 -0
  304. package/src/mesh/mesh-active-work.ts +656 -0
  305. package/src/mesh/mesh-clone-grace.ts +68 -0
  306. package/src/mesh/mesh-coordinator-config.ts +97 -0
  307. package/src/mesh/mesh-delivery-policy.ts +315 -0
  308. package/src/mesh/mesh-event-classify.ts +73 -0
  309. package/src/mesh/mesh-event-forwarding.ts +1932 -0
  310. package/src/mesh/mesh-event-trace.ts +67 -0
  311. package/src/mesh/mesh-events-coordinator.ts +32 -0
  312. package/src/mesh/mesh-events-pending.ts +766 -0
  313. package/src/mesh/mesh-events-stale.ts +440 -0
  314. package/src/mesh/mesh-events-utils.ts +443 -0
  315. package/src/mesh/mesh-events.ts +33 -1035
  316. package/src/mesh/mesh-fast-forward.ts +856 -0
  317. package/src/mesh/mesh-host-ownership.ts +111 -0
  318. package/src/mesh/mesh-init.ts +350 -0
  319. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  320. package/src/mesh/mesh-ledger.ts +873 -102
  321. package/src/mesh/mesh-magi-status.ts +223 -0
  322. package/src/mesh/mesh-missions.ts +449 -0
  323. package/src/mesh/mesh-node-identity.ts +1994 -0
  324. package/src/mesh/mesh-queue-assignment.ts +2233 -0
  325. package/src/mesh/mesh-reconcile-loop.ts +2390 -0
  326. package/src/mesh/mesh-refine-batch.ts +205 -0
  327. package/src/mesh/mesh-refine-gates.ts +1686 -0
  328. package/src/mesh/mesh-refine-status.ts +231 -0
  329. package/src/mesh/mesh-review-inbox.ts +308 -0
  330. package/src/mesh/mesh-routing.ts +291 -0
  331. package/src/mesh/mesh-runtime-store.ts +2026 -0
  332. package/src/mesh/mesh-scheduling-runtime.ts +198 -0
  333. package/src/mesh/mesh-task-inflight.ts +70 -0
  334. package/src/mesh/mesh-task-stats.ts +161 -0
  335. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  336. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  337. package/src/mesh/mesh-work-queue.ts +1281 -141
  338. package/src/mesh/preview-freshness.ts +163 -0
  339. package/src/mesh/refine-config.ts +423 -0
  340. package/src/mesh/worktree-bootstrap-config.ts +599 -0
  341. package/src/providers/acp-provider-instance.ts +43 -10
  342. package/src/providers/approval-utils.d.ts +5 -0
  343. package/src/providers/approval-utils.ts +99 -5
  344. package/src/providers/chat-message-normalization.ts +126 -4
  345. package/src/providers/cli-provider-instance.ts +2456 -107
  346. package/src/providers/contracts.d.ts +55 -0
  347. package/src/providers/contracts.ts +160 -6
  348. package/src/providers/extension-provider-instance.ts +12 -7
  349. package/src/providers/external-sources.ts +218 -0
  350. package/src/providers/ide-provider-instance.ts +35 -12
  351. package/src/providers/manual-attendance.ts +105 -0
  352. package/src/providers/native-history/antigravity-claim-registry.ts +131 -0
  353. package/src/providers/native-history/antigravity-cli-transcript.ts +1193 -0
  354. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  355. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  356. package/src/providers/native-history/constants.ts +19 -0
  357. package/src/providers/native-history/dispatcher.ts +503 -0
  358. package/src/providers/native-history/hermes-cli-transcript.ts +260 -0
  359. package/src/providers/native-history/index.ts +30 -0
  360. package/src/providers/provider-instance-manager.ts +71 -0
  361. package/src/providers/provider-instance.ts +24 -1
  362. package/src/providers/provider-loader.ts +700 -55
  363. package/src/providers/provider-schema.ts +87 -14
  364. package/src/providers/provider-trust.ts +114 -0
  365. package/src/providers/read-chat-contract.ts +76 -16
  366. package/src/providers/sdk/README.md +49 -0
  367. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  368. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  369. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  370. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
  371. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  372. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  373. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  374. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  375. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  376. package/src/providers/sdk/v1/index.ts +152 -0
  377. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  378. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  379. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  380. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +509 -0
  381. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  382. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  383. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  384. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  385. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  386. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  387. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  388. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  389. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  390. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  391. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  392. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  393. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  394. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  395. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  396. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  397. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  398. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  399. package/src/providers/sdk/v1/validators/index.ts +19 -0
  400. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  401. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  402. package/src/providers/spec/adapter.ts +246 -0
  403. package/src/providers/spec/cli-adapter.ts +1064 -0
  404. package/src/providers/spec/evaluator.ts +407 -0
  405. package/src/providers/spec/fsm-driver.ts +1528 -0
  406. package/src/providers/spec/fsm-evaluator.ts +290 -0
  407. package/src/providers/spec/fsm-loader.ts +128 -0
  408. package/src/providers/spec/fsm-types.ts +301 -0
  409. package/src/providers/spec/native-history-executor.ts +1174 -0
  410. package/src/providers/spec/pre-launch-trust.ts +104 -0
  411. package/src/providers/spec/route.ts +51 -0
  412. package/src/providers/spec/types.ts +262 -0
  413. package/src/providers/status-monitor.d.ts +7 -7
  414. package/src/providers/status-monitor.ts +37 -22
  415. package/src/providers/transcript-v2.ts +567 -0
  416. package/src/providers/types/interactive-prompt.ts +536 -0
  417. package/src/providers/version-archive.ts +64 -24
  418. package/src/providers/working-dir.ts +23 -0
  419. package/src/repo-mesh-types.ts +758 -14
  420. package/src/runtime-defaults.ts +39 -0
  421. package/src/session-host/managed-host.ts +218 -0
  422. package/src/session-host/runtime-surface.ts +20 -80
  423. package/src/sessions/registry.ts +6 -0
  424. package/src/shared-types-extra.ts +2 -4
  425. package/src/shared-types.d.ts +8 -0
  426. package/src/shared-types.ts +124 -55
  427. package/src/status/builders.ts +26 -6
  428. package/src/status/normalize.ts +2 -0
  429. package/src/status/reporter.ts +19 -1
  430. package/src/status/snapshot.ts +95 -26
  431. package/src/system/hash.ts +23 -0
  432. package/src/system/host-memory.ts +29 -12
  433. package/src/system/load-better-sqlite3.ts +68 -0
  434. package/src/types.ts +5 -0
  435. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  436. package/dist/mesh/mesh-sync.d.ts +0 -53
  437. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  438. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  439. package/src/mesh/mesh-sync.ts +0 -111
@@ -5,7 +5,8 @@
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
+ import type { MagiPanel, MagiKindPanelMap, MagiSlot } from '@adhdev/mesh-shared';
9
10
  /**
10
11
  * Normalize a Git remote URL into a stable identity string.
11
12
  * e.g. "git@github.com:user/repo.git" → "github.com/user/repo"
@@ -22,6 +23,7 @@ export interface CreateMeshOptions {
22
23
  defaultBranch?: string;
23
24
  policy?: Partial<RepoMeshPolicy>;
24
25
  coordinator?: RepoMeshCoordinatorConfig;
26
+ meshHost?: RepoMeshHostMetadata;
25
27
  }
26
28
  export declare function createMesh(opts: CreateMeshOptions): LocalMeshEntry;
27
29
  export interface UpdateMeshOptions {
@@ -29,23 +31,149 @@ export interface UpdateMeshOptions {
29
31
  defaultBranch?: string;
30
32
  policy?: Partial<RepoMeshPolicy>;
31
33
  coordinator?: RepoMeshCoordinatorConfig;
34
+ meshHost?: RepoMeshHostMetadata;
32
35
  }
33
36
  export declare function updateMesh(meshId: string, opts: UpdateMeshOptions): LocalMeshEntry | undefined;
34
37
  export declare function deleteMesh(meshId: string): boolean;
38
+ export declare function tokenIdForManualPairing(token: string): string;
39
+ export interface ConfigureMeshHostPairingOptions {
40
+ hostAddress: string;
41
+ token: string;
42
+ now?: string;
43
+ }
44
+ export declare function configureMeshHostPairing(meshId: string, opts: ConfigureMeshHostPairingOptions): {
45
+ mesh: LocalMeshEntry;
46
+ meshHost: RepoMeshHostMetadata;
47
+ hostAddress: string;
48
+ } | undefined;
49
+ export interface CreateMeshHostPairingTokenOptions {
50
+ token?: string;
51
+ expiresAt?: string;
52
+ now?: string;
53
+ }
54
+ export declare function createMeshHostPairingToken(meshId: string, opts?: CreateMeshHostPairingTokenOptions): {
55
+ mesh: LocalMeshEntry;
56
+ meshHost: RepoMeshHostMetadata;
57
+ token: string;
58
+ tokenId: string;
59
+ expiresAt?: string;
60
+ } | undefined;
61
+ export interface MeshHostJoinMemberNodeInput {
62
+ id?: string;
63
+ workspace: string;
64
+ repoRoot?: string;
65
+ daemonId?: string;
66
+ machineId?: string;
67
+ userOverrides?: Partial<RepoMeshNodeCapabilities>;
68
+ policy?: RepoMeshNodePolicy;
69
+ role?: RepoMeshDaemonRole;
70
+ }
71
+ export interface ApplyMeshHostJoinOptions {
72
+ token: string;
73
+ memberNode: MeshHostJoinMemberNodeInput;
74
+ memberMeshId?: string;
75
+ now?: string;
76
+ }
77
+ export declare function applyMeshHostJoinRequest(meshId: string, opts: ApplyMeshHostJoinOptions): {
78
+ accepted: true;
79
+ mesh: LocalMeshEntry;
80
+ meshHost: RepoMeshHostMetadata;
81
+ node: LocalMeshNodeEntry;
82
+ tokenId: string;
83
+ } | {
84
+ accepted: false;
85
+ mesh?: LocalMeshEntry;
86
+ meshHost?: RepoMeshHostMetadata;
87
+ tokenId?: string;
88
+ reason: string;
89
+ } | undefined;
90
+ export declare function markMeshHostPairingJoined(meshId: string, opts: {
91
+ hostDaemonId?: string;
92
+ hostNodeId?: string;
93
+ joinedAt?: string;
94
+ token?: string;
95
+ tokenId?: string;
96
+ }): {
97
+ mesh: LocalMeshEntry;
98
+ meshHost: RepoMeshHostMetadata;
99
+ } | undefined;
35
100
  export interface AddNodeOptions {
36
101
  workspace: string;
37
102
  repoRoot?: string;
38
103
  daemonId?: string;
39
104
  machineId?: string;
105
+ capabilities?: string[];
40
106
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
41
107
  policy?: RepoMeshNodePolicy;
42
108
  isLocalWorktree?: boolean;
43
109
  worktreeBranch?: string;
44
110
  clonedFromNodeId?: string;
111
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
112
+ role?: RepoMeshDaemonRole;
113
+ /** Owning daemon's machine nickname. Defaults to this daemon's local
114
+ * config.machineNickname when omitted — a node is always added by (and on)
115
+ * the daemon that owns its workspace (self/base node or a local worktree
116
+ * clone), so the local config is the correct source. */
117
+ machineNickname?: string;
45
118
  }
46
119
  export declare function addNode(meshId: string, opts: AddNodeOptions): LocalMeshNodeEntry | undefined;
47
120
  export declare function removeNode(meshId: string, nodeId: string): boolean;
48
121
  export declare function updateNode(meshId: string, nodeId: string, opts: {
49
122
  userOverrides?: Partial<RepoMeshNodeCapabilities>;
50
123
  policy?: RepoMeshNodePolicy;
124
+ worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
125
+ /** Per-node instruction surfaced in the coordinator prompt. Pass an
126
+ * empty string or undefined to clear it. */
127
+ systemPrompt?: string;
128
+ /** Live self-reported platform/arch from the owning daemon's git_status
129
+ * envelope. Persisted distinctly from userOverrides (auto-detected, not
130
+ * operator intent) so capability-tag os=/arch= self-heals across loads. */
131
+ reportedPlatform?: string;
132
+ reportedArch?: string;
133
+ /** Owning daemon's self-reported machine nickname, carried on the
134
+ * git_status envelope. Persisted so the friendly label survives across
135
+ * coordinator restarts (mirrors reportedPlatform/reportedArch). */
136
+ reportedMachineNickname?: string;
51
137
  }): LocalMeshNodeEntry | undefined;
138
+ /**
139
+ * Validate + normalize a panel config before persisting. Mirrors the node-config
140
+ * normalization style (mesh-config addNode/updateNode): trims strings, drops
141
+ * empties, requires a provider per member, clamps replica counts. Throws on
142
+ * structurally invalid input so the calling tool returns a clear error rather than
143
+ * writing a malformed panel.
144
+ */
145
+ export declare function normalizeMagiPanel(config: unknown): MagiPanel;
146
+ /** All configured MAGI panels (machine-local), keyed by name. Empty when none. */
147
+ export declare function listMagiPanels(): Record<string, MagiPanel>;
148
+ /** A single panel by name, or undefined when not configured. */
149
+ export declare function getMagiPanel(name: string): MagiPanel | undefined;
150
+ /**
151
+ * Upsert a named panel into meshes.json. Defaults to refusing to clobber an
152
+ * existing panel (overwrite=false) — mirrors the mesh_init write/overwrite
153
+ * precedent. Returns the normalized, persisted panel.
154
+ */
155
+ export declare function upsertMagiPanel(name: string, config: unknown, opts?: {
156
+ overwrite?: boolean;
157
+ }): MagiPanel;
158
+ /** Remove a named panel. Returns true when a panel was removed. */
159
+ export declare function removeMagiPanel(name: string): boolean;
160
+ /**
161
+ * Validate + normalize a kind-panel's slots. Mirrors normalizeMagiPanel's member
162
+ * normalization: provider required per slot, trims strings, drops empties, clamps
163
+ * replica counts, and additionally carries an optional per-slot `model`. Throws on
164
+ * structurally invalid input (empty list / no provider) so the write returns a clear
165
+ * error. Returns the normalized slot array.
166
+ */
167
+ export declare function normalizeMagiSlots(slots: unknown): MagiSlot[];
168
+ /** All configured kind-panels (machine-local), keyed by task_kind. Empty when none. */
169
+ export declare function listMagiKindPanels(): MagiKindPanelMap;
170
+ /** The slot list for one task_kind, or undefined when the kind is not configured. */
171
+ export declare function getMagiKindPanel(kind: string): MagiSlot[] | undefined;
172
+ /**
173
+ * Upsert the slot list for one task_kind. Unlike named panels this ALWAYS overwrites
174
+ * (a kind has exactly one binding) — the editor pushes the full desired slot set.
175
+ * Returns the normalized, persisted slots.
176
+ */
177
+ export declare function setMagiKindPanel(kind: string, slots: unknown): MagiSlot[];
178
+ /** Remove the binding for one task_kind. Returns true when a binding was removed. */
179
+ export declare function removeMagiKindPanel(kind: string): boolean;
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Repo-shared declarative mesh config — `.adhdev/mesh.json`
3
+ *
4
+ * A repo-committed, machine-independent file carrying ONLY the repo-shared
5
+ * coordinator-prompt config and operating notes:
6
+ *
7
+ * - coordinator — systemPromptOverride (local wins, else repo) and
8
+ * systemPromptAppend (repo append + local append BOTH
9
+ * stack, repo first).
10
+ * - operatingNotes — repo-declared baseline notes merged with the runtime
11
+ * ledger notes; on duplicate text the ledger note wins.
12
+ * - limits — advisory-only (`maxNoteChars`, `maxNotes`,
13
+ * `coordinator.maxPromptChars`); recorded, never enforced in v1.
14
+ *
15
+ * POLICY IS NOT HERE. RepoMeshPolicy (the 15 scheduling/approval fields) is
16
+ * MACHINE-LOCAL only — it lives in meshes.json and is never sourced from, merged
17
+ * with, or overlaid by a repo file. There is no `policy` zone and no
18
+ * `policy.scheduling` overlay in mesh.json; the scheduler reads the stored
19
+ * machine-local policy directly. The repo file shapes the coordinator prompt and
20
+ * operating notes, nothing else.
21
+ *
22
+ * The coordinator/operatingNotes merge is **in-memory only**: the on-disk
23
+ * machine-local `meshes.json` is never mutated by this module.
24
+ *
25
+ * FILE SEPARATION: refine / worktree-bootstrap / change-impact configs live in
26
+ * their OWN `.adhdev/*` files with their own loaders — they are NOT inlined into
27
+ * mesh.json. `loadRepoSettings` (config/repo-settings.ts) assembles all of them
28
+ * into one object for consumers.
29
+ *
30
+ * SECURITY: declarative only. JSON/YAML is parsed; arbitrary JS (.js) is NOT
31
+ * supported, so loading a config can never execute code.
32
+ */
33
+ import type { RepoMeshCoordinatorConfig, LocalMeshEntry } from '../repo-mesh-types.js';
34
+ import type { CoordinatorOperatingNote } from '../mesh/coordinator-prompt.js';
35
+ export interface RepoMeshDeclarativeCoordinatorConfig {
36
+ /** Full mesh-level system prompt override. Same semantics as
37
+ * RepoMeshCoordinatorConfig.systemPromptOverride; LOCAL-WINS. */
38
+ systemPromptOverride?: string;
39
+ /** Mesh-level append stacked after the base prompt. Both the repo append
40
+ * and the machine-local append apply; the repo append comes first. */
41
+ systemPromptAppend?: string;
42
+ /** Advisory only in v1 — recorded but never enforced. */
43
+ maxPromptChars?: number;
44
+ }
45
+ export interface RepoMeshDeclarativeLimits {
46
+ /** Advisory only in v1 — recorded but never enforced. */
47
+ maxNoteChars?: number;
48
+ /** Advisory only in v1 — recorded but never enforced. */
49
+ maxNotes?: number;
50
+ }
51
+ /**
52
+ * Parsed + normalized `.adhdev/mesh.json` shape. Every field is optional except
53
+ * version so a repo can declare only the zone(s) it cares about. Policy is NOT a
54
+ * zone here — it is machine-local (meshes.json) only.
55
+ */
56
+ export interface RepoMeshDeclarativeConfig {
57
+ version: 1;
58
+ coordinator?: RepoMeshDeclarativeCoordinatorConfig;
59
+ operatingNotes?: CoordinatorOperatingNote[];
60
+ limits?: RepoMeshDeclarativeLimits;
61
+ }
62
+ export interface RepoMeshJsonConfigLoadResult {
63
+ config?: RepoMeshDeclarativeConfig;
64
+ /** Relative location matched, or 'unavailable'/'invalid' marker. */
65
+ source: string;
66
+ sourceType: 'repo_file' | 'unavailable' | 'invalid';
67
+ /** Absolute path of the matched file, when one was read. */
68
+ path?: string;
69
+ error?: string;
70
+ }
71
+ export declare const MESH_JSON_CONFIG_LOCATIONS: string[];
72
+ export declare const MESH_JSON_CONFIG_SCHEMA: {
73
+ readonly $schema: "https://json-schema.org/draft/2020-12/schema";
74
+ readonly title: "ADHDev Repo Mesh Declarative Config";
75
+ readonly type: "object";
76
+ readonly additionalProperties: false;
77
+ readonly required: readonly ["version"];
78
+ readonly properties: {
79
+ readonly version: {
80
+ readonly const: 1;
81
+ };
82
+ readonly coordinator: {
83
+ readonly type: "object";
84
+ readonly additionalProperties: false;
85
+ readonly properties: {
86
+ readonly systemPromptOverride: {
87
+ readonly type: "string";
88
+ };
89
+ readonly systemPromptAppend: {
90
+ readonly type: "string";
91
+ };
92
+ readonly maxPromptChars: {
93
+ readonly type: "number";
94
+ readonly minimum: 1;
95
+ };
96
+ };
97
+ };
98
+ readonly operatingNotes: {
99
+ readonly type: "array";
100
+ readonly maxItems: 200;
101
+ readonly items: {
102
+ readonly type: "object";
103
+ readonly additionalProperties: false;
104
+ readonly required: readonly ["text"];
105
+ readonly properties: {
106
+ readonly text: {
107
+ readonly type: "string";
108
+ readonly minLength: 1;
109
+ };
110
+ readonly category: {
111
+ readonly enum: readonly ["provider_quirk", "pattern_to_avoid", "recovery_lesson"];
112
+ };
113
+ readonly createdAt: {
114
+ readonly type: "string";
115
+ };
116
+ readonly sourceCoordinator: {
117
+ readonly type: "string";
118
+ };
119
+ };
120
+ };
121
+ };
122
+ readonly limits: {
123
+ readonly type: "object";
124
+ readonly additionalProperties: false;
125
+ readonly properties: {
126
+ readonly maxNoteChars: {
127
+ readonly type: "number";
128
+ readonly minimum: 1;
129
+ };
130
+ readonly maxNotes: {
131
+ readonly type: "number";
132
+ readonly minimum: 1;
133
+ };
134
+ };
135
+ };
136
+ };
137
+ };
138
+ /**
139
+ * Validate + normalize a parsed `.adhdev/mesh.json` object into a typed
140
+ * RepoMeshDeclarativeConfig. Returns the config plus any non-fatal warnings;
141
+ * `valid` is false only when the document is structurally unusable (not an
142
+ * object / wrong version). Unknown top-level keys are tolerated (dropped) so a
143
+ * newer repo file authored against a future schema still loads its known zones.
144
+ */
145
+ export declare function normalizeRepoMeshDeclarativeConfig(parsed: unknown): {
146
+ valid: boolean;
147
+ config?: RepoMeshDeclarativeConfig;
148
+ errors: string[];
149
+ };
150
+ /**
151
+ * Load the repo-shared declarative mesh config for a coordinator workspace.
152
+ *
153
+ * Resolution: the coordinator node workspace is checked first; if it carries no
154
+ * `.adhdev/mesh.json`, the calling process cwd is tried as a fallback (per the
155
+ * design: "workspace path = coordinator node workspace's .adhdev/mesh.json,
156
+ * else calling cwd"). The first existing file across both bases (and the
157
+ * json/yaml/yml variants) wins.
158
+ *
159
+ * Read/parse errors never throw — they resolve to a sourceType:'invalid'
160
+ * result so a broken repo file degrades to "no repo base" instead of blocking
161
+ * coordinator launch.
162
+ */
163
+ export declare function loadRepoMeshJsonConfig(workspace?: string): RepoMeshJsonConfigLoadResult;
164
+ /**
165
+ * Effective coordinator config. systemPromptOverride: local wins, else repo.
166
+ * systemPromptAppend: repo append + local append BOTH stack (repo first). Other
167
+ * coordinator fields (providerType, preferredNodeId, …) are carried from the
168
+ * machine-local config unchanged.
169
+ */
170
+ export declare function mergeEffectiveCoordinatorConfig(repoCoord: RepoMeshDeclarativeCoordinatorConfig | undefined, localCoord: RepoMeshCoordinatorConfig | undefined): RepoMeshCoordinatorConfig;
171
+ /**
172
+ * Effective operating notes = repo-declared baseline ⊕ runtime ledger notes.
173
+ * Dedup by trimmed text with the LEDGER note winning (repo duplicates dropped),
174
+ * so a runtime note's freshest wording/category survives. Order: repo baseline
175
+ * first, then ledger notes. Returns undefined when nothing usable remains so the
176
+ * prompt's "## Operating Notes" section is omitted exactly as before.
177
+ */
178
+ export declare function mergeEffectiveOperatingNotes(repoNotes: CoordinatorOperatingNote[] | undefined, ledgerNotes: CoordinatorOperatingNote[] | undefined): CoordinatorOperatingNote[] | undefined;
179
+ /**
180
+ * Produce an in-memory effective mesh by layering the repo declarative config
181
+ * UNDER the machine-local mesh entry — coordinator zone ONLY. Policy is
182
+ * machine-local and is left exactly as the stored mesh carries it (never sourced
183
+ * from the repo file). Returns a new object; the input mesh and on-disk
184
+ * meshes.json are never mutated. operatingNotes are merged separately at launch
185
+ * (they ride the prompt context, not the mesh).
186
+ */
187
+ export declare function applyRepoMeshConfig<T extends Pick<LocalMeshEntry, 'coordinator'>>(mesh: T, repoConfig: RepoMeshDeclarativeConfig | null | undefined): T;
188
+ /**
189
+ * Build a `.adhdev/mesh.json` DRAFT from a machine-local mesh entry. This is a
190
+ * scaffold for the operator to review and commit — NOT an automatic migration.
191
+ * It captures the coordinator prompt override/append so a repo can adopt the
192
+ * current machine's prompt customization as the shared base. Policy is NOT
193
+ * exported — it is machine-local only and has no place in mesh.json. Operating
194
+ * notes are intentionally NOT exported either: those are runtime ledger lessons,
195
+ * and a repo should declare baseline notes deliberately.
196
+ */
197
+ export declare function buildMeshJsonConfigScaffold(mesh: Pick<LocalMeshEntry, 'coordinator'>): RepoMeshDeclarativeConfig;
198
+ /** Serialize a scaffold to the canonical 2-space JSON draft text. */
199
+ export declare function serializeMeshJsonConfigScaffold(config: RepoMeshDeclarativeConfig): string;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Registry / provider-distribution URL resolver.
3
+ *
4
+ * Single source of truth for the ADHDev provider *registry* base URL and the
5
+ * provider *tarball* (GitHub) URL. Self-hosters can repoint both away from the
6
+ * vendor defaults so the daemon never phones home to `api.adhf.dev` /
7
+ * `github.com/vilmire/adhdev-providers`.
8
+ *
9
+ * Resolution priority (highest first):
10
+ * 1. Explicit config field — `config.registryUrl` / `config.providerTarballUrl`
11
+ * 2. Environment variable — `ADHDEV_REGISTRY_URL` / `ADHDEV_PROVIDER_TARBALL_URL`
12
+ * 3. Vendor default — existing URLs (unchanged for default users)
13
+ *
14
+ * Default users get byte-identical behavior: the vendor defaults equal the
15
+ * literals these functions replaced.
16
+ */
17
+ /** Vendor default registry base URL (no trailing slash). */
18
+ export declare const DEFAULT_REGISTRY_BASE_URL = "https://api.adhf.dev/api/v1/registry";
19
+ /** Vendor default provider tarball URL (GitHub main branch archive). */
20
+ export declare const DEFAULT_PROVIDER_TARBALL_URL = "https://github.com/vilmire/adhdev-providers/archive/refs/heads/main.tar.gz";
21
+ /** Env var that overrides the registry base URL. */
22
+ export declare const REGISTRY_URL_ENV_VAR = "ADHDEV_REGISTRY_URL";
23
+ /** Env var that overrides the provider tarball URL. */
24
+ export declare const PROVIDER_TARBALL_URL_ENV_VAR = "ADHDEV_PROVIDER_TARBALL_URL";
25
+ /**
26
+ * Resolve the provider registry base URL.
27
+ *
28
+ * @param configuredUrl explicit config value (config.registryUrl); highest priority.
29
+ * @param env process env source (defaults to process.env; injectable for tests).
30
+ * @returns the resolved base URL with any trailing slash stripped, so callers
31
+ * can safely append `/providers`, `/providers/<type>`, etc.
32
+ */
33
+ export declare function resolveRegistryBaseUrl(configuredUrl?: string | null, env?: NodeJS.ProcessEnv): string;
34
+ /**
35
+ * Resolve the provider tarball (archive) URL.
36
+ *
37
+ * @param configuredUrl explicit config value (config.providerTarballUrl); highest priority.
38
+ * @param env process env source (defaults to process.env; injectable for tests).
39
+ */
40
+ export declare function resolveProviderTarballUrl(configuredUrl?: string | null, env?: NodeJS.ProcessEnv): string;
41
+ /** Parsed tarball request target for callers that issue raw hostname/path requests. */
42
+ export interface TarballRequestTarget {
43
+ /** Full resolved tarball URL. */
44
+ url: string;
45
+ /** Hostname component (e.g. `github.com`). */
46
+ hostname: string;
47
+ /** Path component including any query string (e.g. `/vilmire/...tar.gz`). */
48
+ path: string;
49
+ }
50
+ /**
51
+ * Resolve the provider tarball URL and split it into `{ url, hostname, path }`
52
+ * for callers that build raw `https.request` options (e.g. HEAD ETag probes).
53
+ */
54
+ export declare function resolveProviderTarballTarget(configuredUrl?: string | null, env?: NodeJS.ProcessEnv): TarballRequestTarget;
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Repo Settings — one unified loader over the repo-committed `.adhdev/*` config
3
+ * files (the "single source" assembly point).
4
+ *
5
+ * DESIGN (option B — file separation preserved): the repo keeps its declarative
6
+ * config in SEPARATE files, each with its own dedicated loader:
7
+ *
8
+ * .adhdev/mesh.json → loadRepoMeshJsonConfig (coordinator + operatingNotes)
9
+ * .adhdev/refine.json → loadMeshRefineConfig (Refinery validation)
10
+ * .adhdev/worktree_bootstrap.json → loadMeshWorktreeBootstrapConfig
11
+ * .adhdev/change-impact.json → loadChangeImpactConfig
12
+ *
13
+ * Nothing is inlined into mesh.json. `loadRepoSettings` simply CALLS each
14
+ * dedicated loader and assembles the results into one `RepoSettings` object so a
15
+ * consumer can read every repo-shared setting through a single call instead of
16
+ * threading four loaders. The per-file loaders remain the source of truth (and
17
+ * stay independently usable); this is a convenience aggregator, not a new schema.
18
+ *
19
+ * IMPORTANT — policy is NOT here. RepoMeshPolicy (the 15 scheduling/approval
20
+ * fields) is MACHINE-LOCAL only: it lives in meshes.json and is never sourced
21
+ * from or merged with a repo file. mesh.json carries only coordinator prompt
22
+ * config + operating notes (+ advisory limits).
23
+ *
24
+ * The refine/worktree-bootstrap loaders also honor a machine-local INLINE seam
25
+ * (mesh.refineConfig / mesh.policy.worktreeBootstrap, etc.) — that seam is for
26
+ * machine-local config and is unchanged here; mesh.json gains no such zone.
27
+ */
28
+ import { type RepoMeshDeclarativeCoordinatorConfig, type RepoMeshDeclarativeLimits, type RepoMeshJsonConfigLoadResult } from './mesh-json-config.js';
29
+ import { type MeshRefineConfigLoadResult } from '../mesh/refine-config.js';
30
+ import { type WorktreeBootstrapConfigLoadResult } from '../mesh/worktree-bootstrap-config.js';
31
+ import { type ChangeImpactConfigLoadResult } from '../git/change-impact-config.js';
32
+ import type { CoordinatorOperatingNote } from '../mesh/coordinator-prompt.js';
33
+ export interface LoadRepoSettingsOptions {
34
+ /** Workspace path whose `.adhdev/*` files are resolved (mesh.json / refine / bootstrap). */
35
+ workspace: string;
36
+ /**
37
+ * Machine-local mesh entry, consulted ONLY for the INLINE seam of the
38
+ * refine / worktree-bootstrap loaders (mesh.refineConfig etc.). Optional —
39
+ * omit it and only the repo files are considered. NEVER used to source policy.
40
+ */
41
+ mesh?: any;
42
+ /**
43
+ * Repo root for change-impact resolution. Defaults to `workspace` when omitted
44
+ * (change-impact compares the daemon build commit against the workspace HEAD).
45
+ */
46
+ repoRoot?: string;
47
+ }
48
+ /**
49
+ * The assembled repo-shared settings. Each sub-config carries its own load
50
+ * result (source / sourceType / error) so a consumer can tell "absent" from
51
+ * "invalid" per file. `coordinator` / `operatingNotes` / `limits` are lifted out
52
+ * of the mesh.json load result for convenience; `meshJson` keeps the full result
53
+ * (e.g. for the `sourceType === 'invalid'` warning on coordinator launch).
54
+ */
55
+ export interface RepoSettings {
56
+ /** Repo-shared coordinator prompt config (override/append) from `.adhdev/mesh.json`. */
57
+ coordinator?: RepoMeshDeclarativeCoordinatorConfig;
58
+ /** Repo-declared baseline operating notes from `.adhdev/mesh.json`. */
59
+ operatingNotes?: CoordinatorOperatingNote[];
60
+ /** Advisory-only limits from `.adhdev/mesh.json` (recorded, not enforced in v1). */
61
+ limits?: RepoMeshDeclarativeLimits;
62
+ /** Full `.adhdev/mesh.json` declarative load result (coordinator/operatingNotes source). */
63
+ meshJson: RepoMeshJsonConfigLoadResult;
64
+ /** `.adhdev/refine.json` Refinery validation config load result. */
65
+ refine: MeshRefineConfigLoadResult;
66
+ /** `.adhdev/worktree_bootstrap.json` bootstrap config load result. */
67
+ worktreeBootstrap: WorktreeBootstrapConfigLoadResult;
68
+ /** `.adhdev/change-impact.json` change-impact config load result. */
69
+ changeImpact: ChangeImpactConfigLoadResult;
70
+ }
71
+ /**
72
+ * Load every repo-committed `.adhdev/*` setting for a workspace and assemble them
73
+ * into one object. Each dedicated loader degrades to an `unavailable`/`invalid`
74
+ * load result rather than throwing, so this never throws on a missing or broken
75
+ * file — a consumer inspects the per-sub-config `sourceType`.
76
+ */
77
+ export declare function loadRepoSettings(opts: LoadRepoSettingsOptions): RepoSettings;
@@ -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;