@adhdev/daemon-core 0.9.82-rc.40 → 0.9.82-rc.400

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 (417) 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 +123 -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 +256 -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/config/mesh-json-config.d.ts +299 -0
  61. package/dist/daemon/dev-server.d.ts +0 -2
  62. package/dist/detection/ide-detector.d.ts +13 -0
  63. package/dist/detection/win32-ide-version.d.ts +37 -0
  64. package/dist/git/change-impact-config.d.ts +159 -0
  65. package/dist/git/git-commands.d.ts +11 -1
  66. package/dist/git/git-diff.d.ts +6 -0
  67. package/dist/git/git-executor.d.ts +11 -0
  68. package/dist/git/git-status.d.ts +23 -0
  69. package/dist/git/git-types.d.ts +2 -50
  70. package/dist/git/git-worktree.d.ts +22 -0
  71. package/dist/git/index.d.ts +2 -0
  72. package/dist/index.d.ts +57 -13
  73. package/dist/index.js +45829 -17086
  74. package/dist/index.js.map +1 -1
  75. package/dist/index.mjs +45623 -17021
  76. package/dist/index.mjs.map +1 -1
  77. package/dist/installer.d.ts +1 -4
  78. package/dist/ipc/local-ipc-server.d.ts +91 -0
  79. package/dist/launch.d.ts +1 -1
  80. package/dist/logging/async-batch-writer.d.ts +10 -0
  81. package/dist/logging/log-redactor.d.ts +24 -0
  82. package/dist/logging/log-tail-reader.d.ts +81 -0
  83. package/dist/logging/logger.d.ts +1 -1
  84. package/dist/mesh/contracts.d.ts +164 -0
  85. package/dist/mesh/coordinator-prompt.d.ts +89 -0
  86. package/dist/mesh/coordinator-registry.d.ts +59 -0
  87. package/dist/mesh/mesh-active-work.d.ts +174 -0
  88. package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
  89. package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
  90. package/dist/mesh/mesh-event-classify.d.ts +5 -0
  91. package/dist/mesh/mesh-event-forwarding.d.ts +19 -0
  92. package/dist/mesh/mesh-event-trace.d.ts +21 -0
  93. package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
  94. package/dist/mesh/mesh-events-pending.d.ts +55 -0
  95. package/dist/mesh/mesh-events-stale.d.ts +61 -0
  96. package/dist/mesh/mesh-events-utils.d.ts +75 -0
  97. package/dist/mesh/mesh-events.d.ts +6 -49
  98. package/dist/mesh/mesh-fast-forward.d.ts +81 -0
  99. package/dist/mesh/mesh-host-ownership.d.ts +9 -0
  100. package/dist/mesh/mesh-init.d.ts +86 -0
  101. package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
  102. package/dist/mesh/mesh-ledger.d.ts +77 -1
  103. package/dist/mesh/mesh-missions.d.ts +164 -0
  104. package/dist/mesh/mesh-node-identity.d.ts +289 -0
  105. package/dist/mesh/mesh-queue-assignment.d.ts +95 -0
  106. package/dist/mesh/mesh-reconcile-loop.d.ts +65 -0
  107. package/dist/mesh/mesh-refine-batch.d.ts +68 -0
  108. package/dist/mesh/mesh-refine-gates.d.ts +428 -0
  109. package/dist/mesh/mesh-refine-status.d.ts +62 -0
  110. package/dist/mesh/mesh-review-inbox.d.ts +90 -0
  111. package/dist/mesh/mesh-routing.d.ts +70 -0
  112. package/dist/mesh/mesh-runtime-store.d.ts +447 -0
  113. package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
  114. package/dist/mesh/mesh-task-stats.d.ts +49 -0
  115. package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
  116. package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
  117. package/dist/mesh/mesh-work-queue.d.ts +247 -5
  118. package/dist/mesh/preview-freshness.d.ts +18 -0
  119. package/dist/mesh/refine-config.d.ts +216 -0
  120. package/dist/mesh/worktree-bootstrap-config.d.ts +145 -0
  121. package/dist/providers/acp-provider-instance.d.ts +5 -0
  122. package/dist/providers/approval-utils.d.ts +20 -0
  123. package/dist/providers/chat-message-normalization.d.ts +13 -1
  124. package/dist/providers/cli-provider-instance.d.ts +157 -3
  125. package/dist/providers/contracts.d.ts +139 -6
  126. package/dist/providers/external-sources.d.ts +71 -0
  127. package/dist/providers/manual-attendance.d.ts +63 -0
  128. package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -0
  129. package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
  130. package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
  131. package/dist/providers/native-history/constants.d.ts +12 -0
  132. package/dist/providers/native-history/dispatcher.d.ts +27 -0
  133. package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
  134. package/dist/providers/native-history/index.d.ts +13 -0
  135. package/dist/providers/provider-instance-manager.d.ts +14 -0
  136. package/dist/providers/provider-instance.d.ts +23 -1
  137. package/dist/providers/provider-loader.d.ts +26 -4
  138. package/dist/providers/provider-trust.d.ts +31 -0
  139. package/dist/providers/read-chat-contract.d.ts +29 -0
  140. package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
  141. package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
  142. package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
  143. package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
  144. package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
  145. package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
  146. package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
  147. package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
  148. package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
  149. package/dist/providers/sdk/v1/index.d.ts +30 -0
  150. package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
  151. package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
  152. package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
  153. package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
  154. package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
  155. package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
  156. package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
  157. package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
  158. package/dist/providers/spec/adapter.d.ts +91 -0
  159. package/dist/providers/spec/cli-adapter.d.ts +223 -0
  160. package/dist/providers/spec/evaluator.d.ts +45 -0
  161. package/dist/providers/spec/fsm-driver.d.ts +407 -0
  162. package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
  163. package/dist/providers/spec/fsm-loader.d.ts +14 -0
  164. package/dist/providers/spec/fsm-types.d.ts +174 -0
  165. package/dist/providers/spec/native-history-executor.d.ts +41 -0
  166. package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
  167. package/dist/providers/spec/route.d.ts +4 -0
  168. package/dist/providers/spec/types.d.ts +222 -0
  169. package/dist/providers/status-monitor.d.ts +7 -7
  170. package/dist/providers/transcript-v2.d.ts +176 -0
  171. package/dist/providers/types/interactive-prompt.d.ts +84 -0
  172. package/dist/providers/working-dir.d.ts +17 -0
  173. package/dist/repo-mesh-types.d.ts +420 -13
  174. package/dist/runtime-defaults.d.ts +2 -0
  175. package/dist/sessions/registry.d.ts +6 -0
  176. package/dist/shared-types-extra.d.ts +2 -4
  177. package/dist/shared-types.d.ts +59 -2
  178. package/dist/status/normalize.d.ts +1 -1
  179. package/dist/status/normalize.js +1 -0
  180. package/dist/status/normalize.js.map +1 -1
  181. package/dist/status/normalize.mjs +1 -0
  182. package/dist/status/normalize.mjs.map +1 -1
  183. package/dist/status/reporter.d.ts +2 -0
  184. package/dist/status/snapshot.d.ts +26 -0
  185. package/dist/system/hash.d.ts +8 -0
  186. package/dist/system/load-better-sqlite3.d.ts +21 -0
  187. package/dist/types.d.ts +5 -0
  188. package/package.json +7 -3
  189. package/src/agent-stream/poller.ts +2 -3
  190. package/src/agent-stream/provider-adapter.ts +1 -1
  191. package/src/boot/daemon-lifecycle.ts +63 -12
  192. package/src/boot/process-hardening.ts +89 -0
  193. package/src/build-info.ts +73 -0
  194. package/src/chat/source-machine.ts +534 -0
  195. package/src/chat/source-resolver.ts +0 -0
  196. package/src/chat/subscription-updates.ts +20 -1
  197. package/src/cli-adapter-types.d.ts +1 -0
  198. package/src/cli-adapter-types.ts +68 -2
  199. package/src/cli-adapters/cli-script-runner.ts +421 -0
  200. package/src/cli-adapters/cli-state-engine.ts +1221 -0
  201. package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
  202. package/src/cli-adapters/provider-cli-adapter.ts +888 -1144
  203. package/src/cli-adapters/provider-cli-parse.d.ts +1 -0
  204. package/src/cli-adapters/provider-cli-parse.ts +13 -0
  205. package/src/cli-adapters/provider-cli-runtime.ts +56 -7
  206. package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
  207. package/src/cli-adapters/provider-cli-shared.ts +121 -11
  208. package/src/cli-adapters/pty-transport.ts +2 -1
  209. package/src/cli-adapters/pty-write-chunking.ts +106 -0
  210. package/src/cli-adapters/raw-terminal-io.ts +252 -0
  211. package/src/cli-adapters/resolve-executable.ts +90 -0
  212. package/src/cli-adapters/session-host-transport.ts +2 -1
  213. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +53 -29
  214. package/src/cli-adapters/terminal-backends/types.ts +10 -3
  215. package/src/cli-adapters/terminal-screen.ts +16 -81
  216. package/src/commands/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
  217. package/src/commands/chat-commands-debug-bundle.ts +398 -0
  218. package/src/commands/chat-commands-read.ts +2327 -0
  219. package/src/commands/chat-commands-scope.ts +54 -0
  220. package/src/commands/chat-commands-shared.ts +114 -0
  221. package/src/commands/chat-commands-write.ts +880 -0
  222. package/src/commands/chat-commands.ts +19 -1841
  223. package/src/commands/cli-manager.ts +513 -26
  224. package/src/commands/handler.ts +841 -2
  225. package/src/commands/high-family/index.ts +28 -0
  226. package/src/commands/high-family/mesh-coordinator-launch.ts +673 -0
  227. package/src/commands/high-family/mesh-events.ts +80 -0
  228. package/src/commands/high-family/mesh-status.ts +678 -0
  229. package/src/commands/high-family/types.ts +76 -0
  230. package/src/commands/low-family/coordinator-prompt.ts +72 -0
  231. package/src/commands/low-family/daemon-lifecycle.ts +107 -0
  232. package/src/commands/low-family/diagnostics.ts +57 -0
  233. package/src/commands/low-family/index.ts +37 -0
  234. package/src/commands/low-family/mesh-ledger.ts +62 -0
  235. package/src/commands/low-family/mesh-node-logs.ts +87 -0
  236. package/src/commands/low-family/notification.ts +116 -0
  237. package/src/commands/low-family/refine-config.ts +106 -0
  238. package/src/commands/low-family/session-host.ts +274 -0
  239. package/src/commands/low-family/spec-providerdev.ts +217 -0
  240. package/src/commands/low-family/status-meta.ts +112 -0
  241. package/src/commands/low-family/types.ts +39 -0
  242. package/src/commands/med-family/cli-agent.ts +238 -0
  243. package/src/commands/med-family/fast-forward.ts +230 -0
  244. package/src/commands/med-family/ide.ts +163 -0
  245. package/src/commands/med-family/index.ts +37 -0
  246. package/src/commands/med-family/mesh-crud.ts +865 -0
  247. package/src/commands/med-family/mesh-host-pairing.ts +234 -0
  248. package/src/commands/med-family/mesh-queue.ts +131 -0
  249. package/src/commands/med-family/mesh-restart.ts +92 -0
  250. package/src/commands/med-family/types.ts +120 -0
  251. package/src/commands/mesh-coordinator.ts +334 -124
  252. package/src/commands/router.ts +2516 -3221
  253. package/src/commands/stream-commands.ts +8 -0
  254. package/src/commands/upgrade-helper.ts +310 -45
  255. package/src/config/chat-history.ts +483 -24
  256. package/src/config/config.ts +12 -0
  257. package/src/config/mesh-config.ts +353 -22
  258. package/src/config/mesh-json-config.ts +617 -0
  259. package/src/config/recent-activity.ts +8 -2
  260. package/src/daemon/dev-auto-implement.ts +3 -2
  261. package/src/daemon/dev-cli-debug.ts +10 -1
  262. package/src/daemon/dev-server.ts +0 -541
  263. package/src/detection/cli-detector.ts +28 -9
  264. package/src/detection/ide-detector.ts +55 -16
  265. package/src/detection/win32-ide-version.ts +106 -0
  266. package/src/git/change-impact-config.ts +354 -0
  267. package/src/git/git-commands.ts +55 -14
  268. package/src/git/git-diff.ts +81 -11
  269. package/src/git/git-executor.ts +12 -0
  270. package/src/git/git-status.ts +574 -43
  271. package/src/git/git-types.ts +14 -62
  272. package/src/git/git-worktree.ts +76 -1
  273. package/src/git/index.ts +16 -0
  274. package/src/index.ts +171 -12
  275. package/src/installer.d.ts +1 -1
  276. package/src/installer.ts +8 -6
  277. package/src/ipc/local-ipc-server.ts +278 -0
  278. package/src/launch.d.ts +1 -1
  279. package/src/launch.ts +37 -28
  280. package/src/logging/async-batch-writer.ts +55 -0
  281. package/src/logging/command-log.ts +7 -5
  282. package/src/logging/log-redactor.ts +100 -0
  283. package/src/logging/log-tail-reader.ts +341 -0
  284. package/src/logging/logger.ts +14 -7
  285. package/src/mesh/contracts.ts +338 -0
  286. package/src/mesh/coordinator-prompt.ts +381 -33
  287. package/src/mesh/coordinator-registry.ts +121 -0
  288. package/src/mesh/mesh-active-work.ts +645 -0
  289. package/src/mesh/mesh-coordinator-config.ts +97 -0
  290. package/src/mesh/mesh-delivery-policy.ts +315 -0
  291. package/src/mesh/mesh-event-classify.ts +51 -0
  292. package/src/mesh/mesh-event-forwarding.ts +1762 -0
  293. package/src/mesh/mesh-event-trace.ts +67 -0
  294. package/src/mesh/mesh-events-coordinator.ts +31 -0
  295. package/src/mesh/mesh-events-pending.ts +590 -0
  296. package/src/mesh/mesh-events-stale.ts +389 -0
  297. package/src/mesh/mesh-events-utils.ts +443 -0
  298. package/src/mesh/mesh-events.ts +32 -1035
  299. package/src/mesh/mesh-fast-forward.ts +839 -0
  300. package/src/mesh/mesh-host-ownership.ts +73 -0
  301. package/src/mesh/mesh-init.ts +260 -0
  302. package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
  303. package/src/mesh/mesh-ledger.ts +596 -102
  304. package/src/mesh/mesh-missions.ts +322 -0
  305. package/src/mesh/mesh-node-identity.ts +1887 -0
  306. package/src/mesh/mesh-queue-assignment.ts +1726 -0
  307. package/src/mesh/mesh-reconcile-loop.ts +1550 -0
  308. package/src/mesh/mesh-refine-batch.ts +205 -0
  309. package/src/mesh/mesh-refine-gates.ts +1660 -0
  310. package/src/mesh/mesh-refine-status.ts +231 -0
  311. package/src/mesh/mesh-review-inbox.ts +307 -0
  312. package/src/mesh/mesh-routing.ts +291 -0
  313. package/src/mesh/mesh-runtime-store.ts +1817 -0
  314. package/src/mesh/mesh-scheduling-runtime.ts +201 -0
  315. package/src/mesh/mesh-task-stats.ts +161 -0
  316. package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
  317. package/src/mesh/mesh-warmup-deadline.ts +152 -0
  318. package/src/mesh/mesh-work-queue.ts +1141 -141
  319. package/src/mesh/preview-freshness.ts +118 -0
  320. package/src/mesh/refine-config.ts +423 -0
  321. package/src/mesh/worktree-bootstrap-config.ts +369 -0
  322. package/src/providers/acp-provider-instance.ts +43 -10
  323. package/src/providers/approval-utils.d.ts +5 -0
  324. package/src/providers/approval-utils.ts +57 -5
  325. package/src/providers/chat-message-normalization.ts +46 -6
  326. package/src/providers/cli-provider-instance.ts +1580 -103
  327. package/src/providers/contracts.d.ts +55 -0
  328. package/src/providers/contracts.ts +150 -6
  329. package/src/providers/extension-provider-instance.ts +12 -7
  330. package/src/providers/external-sources.ts +218 -0
  331. package/src/providers/ide-provider-instance.ts +35 -12
  332. package/src/providers/manual-attendance.ts +85 -0
  333. package/src/providers/native-history/antigravity-cli-transcript.ts +643 -0
  334. package/src/providers/native-history/claude-cli-transcript.ts +396 -0
  335. package/src/providers/native-history/codex-cli-transcript.ts +479 -0
  336. package/src/providers/native-history/constants.ts +19 -0
  337. package/src/providers/native-history/dispatcher.ts +339 -0
  338. package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
  339. package/src/providers/native-history/index.ts +30 -0
  340. package/src/providers/provider-instance-manager.ts +30 -0
  341. package/src/providers/provider-instance.ts +19 -1
  342. package/src/providers/provider-loader.ts +668 -50
  343. package/src/providers/provider-schema.ts +87 -14
  344. package/src/providers/provider-trust.ts +114 -0
  345. package/src/providers/read-chat-contract.ts +76 -16
  346. package/src/providers/sdk/README.md +49 -0
  347. package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
  348. package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
  349. package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
  350. package/src/providers/sdk/v1/builders/cli/parse-approval.ts +250 -0
  351. package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
  352. package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
  353. package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
  354. package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
  355. package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
  356. package/src/providers/sdk/v1/index.ts +152 -0
  357. package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
  358. package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
  359. package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
  360. package/src/providers/sdk/v1/schemas/cli/provider.schema.json +504 -0
  361. package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
  362. package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
  363. package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
  364. package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
  365. package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
  366. package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
  367. package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
  368. package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
  369. package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
  370. package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
  371. package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
  372. package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
  373. package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
  374. package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
  375. package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
  376. package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
  377. package/src/providers/sdk/v1/types/cli/index.ts +365 -0
  378. package/src/providers/sdk/v1/types/common/index.ts +229 -0
  379. package/src/providers/sdk/v1/validators/index.ts +19 -0
  380. package/src/providers/sdk/v1/validators/manifest.ts +110 -0
  381. package/src/providers/sdk/v1/validators/taint.ts +309 -0
  382. package/src/providers/spec/adapter.ts +235 -0
  383. package/src/providers/spec/cli-adapter.ts +1056 -0
  384. package/src/providers/spec/evaluator.ts +407 -0
  385. package/src/providers/spec/fsm-driver.ts +1304 -0
  386. package/src/providers/spec/fsm-evaluator.ts +272 -0
  387. package/src/providers/spec/fsm-loader.ts +120 -0
  388. package/src/providers/spec/fsm-types.ts +273 -0
  389. package/src/providers/spec/native-history-executor.ts +1128 -0
  390. package/src/providers/spec/pre-launch-trust.ts +104 -0
  391. package/src/providers/spec/route.ts +51 -0
  392. package/src/providers/spec/types.ts +262 -0
  393. package/src/providers/status-monitor.d.ts +7 -7
  394. package/src/providers/status-monitor.ts +37 -22
  395. package/src/providers/transcript-v2.ts +567 -0
  396. package/src/providers/types/interactive-prompt.ts +536 -0
  397. package/src/providers/version-archive.ts +64 -24
  398. package/src/providers/working-dir.ts +23 -0
  399. package/src/repo-mesh-types.ts +629 -14
  400. package/src/runtime-defaults.ts +39 -0
  401. package/src/sessions/registry.ts +6 -0
  402. package/src/shared-types-extra.ts +2 -4
  403. package/src/shared-types.d.ts +8 -0
  404. package/src/shared-types.ts +64 -1
  405. package/src/status/builders.ts +26 -6
  406. package/src/status/normalize.ts +2 -0
  407. package/src/status/reporter.ts +19 -1
  408. package/src/status/snapshot.ts +95 -26
  409. package/src/system/hash.ts +23 -0
  410. package/src/system/host-memory.ts +29 -12
  411. package/src/system/load-better-sqlite3.ts +68 -0
  412. package/src/types.ts +5 -0
  413. package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
  414. package/dist/mesh/mesh-sync.d.ts +0 -53
  415. package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
  416. package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
  417. package/src/mesh/mesh-sync.ts +0 -111
@@ -0,0 +1,322 @@
1
+ /**
2
+ * M3: Mission persistence (minimal form).
3
+ *
4
+ * A mission is a persistent record of a multi-task goal so the plan lives in
5
+ * the system rather than in the coordinator LLM's context. Coordinator
6
+ * sessions can die or compact; a new coordinator reads the mission back at
7
+ * launch and continues.
8
+ *
9
+ * Explicit non-goals (see docs/mesh-product-plan-v2.md Phase M3): this is not
10
+ * a workflow engine and there is no automatic takeover daemon. Progress is
11
+ * never stored — it is derived from queue task statuses (mission_id) at
12
+ * query time.
13
+ */
14
+
15
+ import { randomUUID } from 'crypto';
16
+ import { MeshRuntimeStore } from './mesh-runtime-store.js';
17
+ import { getQueue } from './mesh-work-queue.js';
18
+ import { computeMeshMissionStats, type MeshMissionStats } from './mesh-task-stats.js';
19
+
20
+ export type MeshMissionStatus = 'active' | 'paused' | 'completed' | 'abandoned';
21
+
22
+ export const MESH_MISSION_STATUSES: MeshMissionStatus[] = ['active', 'paused', 'completed', 'abandoned'];
23
+
24
+ export interface MeshMissionRecord {
25
+ id: string;
26
+ meshId: string;
27
+ title: string;
28
+ goal: string;
29
+ status: MeshMissionStatus;
30
+ createdAt: string;
31
+ updatedAt: string;
32
+ }
33
+
34
+ export interface MeshMissionTaskAggregate {
35
+ total: number;
36
+ pending: number;
37
+ assigned: number;
38
+ completed: number;
39
+ failed: number;
40
+ cancelled: number;
41
+ /** Pending tasks held back by a dependency failure (blockedReason set). */
42
+ blocked: number;
43
+ /** Latest updatedAt across the mission's tasks, or null with no tasks. */
44
+ lastActivityAt: string | null;
45
+ }
46
+
47
+ export interface MeshMissionSummary extends MeshMissionRecord {
48
+ tasks: MeshMissionTaskAggregate;
49
+ /**
50
+ * Operational rollup (durations / attempts) derived from the ledger via
51
+ * computeMeshMissionStats. Optional: only populated by surfaces that opt in
52
+ * (e.g. mesh_status), since the rollup scans a bounded ledger tail per
53
+ * mission. Absent on the lightweight task-aggregate-only summaries.
54
+ */
55
+ stats?: MeshMissionStats;
56
+ }
57
+
58
+ /**
59
+ * Slim mission summary for the mesh_status compact (default) surface. Drops the
60
+ * full `goal` text — which can be hundreds of chars per mission and is repeated
61
+ * for every mission on every status call — keeping only a short preview plus a
62
+ * `goalTruncated` flag when the original was longer. The stored goal is never
63
+ * mutated; this is an output-only projection. Coordinators that need the full
64
+ * goal call mesh_status with verbose=true, or read the mission directly via
65
+ * mesh_mission_upsert / getMeshMission.
66
+ */
67
+ export interface MeshMissionSlimSummary extends Omit<MeshMissionSummary, 'goal'> {
68
+ /** Short preview of the goal (≤ GOAL_PREVIEW_MAX chars), '' when goal empty. */
69
+ goalPreview: string;
70
+ /** True when the stored goal was longer than the preview (full text elided). */
71
+ goalTruncated: boolean;
72
+ }
73
+
74
+ /** Max chars of goal text retained in the slim (compact) mission summary. */
75
+ export const GOAL_PREVIEW_MAX = 120;
76
+
77
+ /**
78
+ * Shorter goal preview used by the mesh_status compact (LLM coordinator) surface.
79
+ * The coordinator only needs to recognize a mission, not read its full goal, and
80
+ * mesh_status repeats every live mission on every poll — so the status preview is
81
+ * tighter than the dashboard / mesh_mission_list preview (GOAL_PREVIEW_MAX).
82
+ */
83
+ export const COMPACT_STATUS_GOAL_PREVIEW_MAX = 80;
84
+
85
+ function normalizeMissionStatus(value: unknown): MeshMissionStatus {
86
+ return MESH_MISSION_STATUSES.includes(value as MeshMissionStatus)
87
+ ? value as MeshMissionStatus
88
+ : 'active';
89
+ }
90
+
91
+ export function upsertMeshMission(meshId: string, input: {
92
+ id?: string;
93
+ title: string;
94
+ goal?: string;
95
+ status?: string;
96
+ }): MeshMissionRecord {
97
+ const title = typeof input.title === 'string' ? input.title.trim() : '';
98
+ if (!title) throw new Error('mission_title_required: a mission needs a non-empty title');
99
+ if (input.status !== undefined && !MESH_MISSION_STATUSES.includes(input.status as MeshMissionStatus)) {
100
+ throw new Error(`invalid_mission_status: '${input.status}' (valid: ${MESH_MISSION_STATUSES.join(', ')})`);
101
+ }
102
+ const id = typeof input.id === 'string' && input.id.trim() ? input.id.trim() : randomUUID();
103
+ const store = MeshRuntimeStore.getInstance();
104
+ const existing = store.getMission(meshId, id);
105
+ const record = {
106
+ id,
107
+ meshId,
108
+ title,
109
+ goal: typeof input.goal === 'string' ? input.goal : existing?.goal ?? '',
110
+ status: normalizeMissionStatus(input.status ?? existing?.status),
111
+ };
112
+ store.upsertMission(record);
113
+ const saved = store.getMission(meshId, id)!;
114
+ return { ...saved, status: normalizeMissionStatus(saved.status) };
115
+ }
116
+
117
+ export function getMeshMissions(meshId: string, statuses?: MeshMissionStatus[]): MeshMissionRecord[] {
118
+ return MeshRuntimeStore.getInstance().getMissions(meshId, statuses)
119
+ .map(m => ({ ...m, status: normalizeMissionStatus(m.status) }));
120
+ }
121
+
122
+ export function getMeshMission(meshId: string, missionId: string): MeshMissionRecord | null {
123
+ const record = MeshRuntimeStore.getInstance().getMission(meshId, missionId);
124
+ return record ? { ...record, status: normalizeMissionStatus(record.status) } : null;
125
+ }
126
+
127
+ /** Aggregate task statuses for a mission at query time (no stored progress). */
128
+ export function summarizeMissionTasks(meshId: string, missionId: string): MeshMissionTaskAggregate {
129
+ const tasks = getQueue(meshId).filter(task => task.missionId === missionId);
130
+ const aggregate: MeshMissionTaskAggregate = {
131
+ total: tasks.length,
132
+ pending: 0,
133
+ assigned: 0,
134
+ completed: 0,
135
+ failed: 0,
136
+ cancelled: 0,
137
+ blocked: 0,
138
+ lastActivityAt: null,
139
+ };
140
+ for (const task of tasks) {
141
+ if (task.status === 'pending') aggregate.pending += 1;
142
+ else if (task.status === 'assigned') aggregate.assigned += 1;
143
+ else if (task.status === 'completed') aggregate.completed += 1;
144
+ else if (task.status === 'failed') aggregate.failed += 1;
145
+ else if (task.status === 'cancelled') aggregate.cancelled += 1;
146
+ if (task.status === 'pending' && task.blockedReason) aggregate.blocked += 1;
147
+ if (task.updatedAt && (!aggregate.lastActivityAt || task.updatedAt > aggregate.lastActivityAt)) {
148
+ aggregate.lastActivityAt = task.updatedAt;
149
+ }
150
+ }
151
+ return aggregate;
152
+ }
153
+
154
+ export function summarizeMeshMission(meshId: string, mission: MeshMissionRecord): MeshMissionSummary {
155
+ return { ...mission, tasks: summarizeMissionTasks(meshId, mission.id) };
156
+ }
157
+
158
+ /** Active mission summaries for mesh_status / coordinator prompt injection. */
159
+ export function getActiveMeshMissionSummaries(meshId: string): MeshMissionSummary[] {
160
+ return getMeshMissions(meshId, ['active']).map(mission => summarizeMeshMission(meshId, mission));
161
+ }
162
+
163
+ /** Project a full mission summary down to the slim (goal-elided) shape. */
164
+ function slimMissionSummary(summary: MeshMissionSummary, previewMax: number = GOAL_PREVIEW_MAX): MeshMissionSlimSummary {
165
+ const goal = typeof summary.goal === 'string' ? summary.goal : '';
166
+ const goalTruncated = goal.length > previewMax;
167
+ const { goal: _omitGoal, ...rest } = summary;
168
+ return {
169
+ ...rest,
170
+ goalPreview: goalTruncated ? goal.slice(0, previewMax) : goal,
171
+ goalTruncated,
172
+ };
173
+ }
174
+
175
+ /**
176
+ * Mission summaries for the mesh_status dashboard surface: every active/paused
177
+ * mission plus a capped, newest-first slice of completed/abandoned history so
178
+ * the dashboard can render a collapsible "history" section without unbounded
179
+ * payload growth. Returned newest-first within each group (active/paused first,
180
+ * then history), so the frontend can split on `status` directly.
181
+ *
182
+ * Compact mode (the default) elides each mission's full `goal` text — which is
183
+ * repeated verbatim on every status poll and dominates the payload when a mesh
184
+ * has many missions — returning only a short `goalPreview` + `goalTruncated`
185
+ * flag. Pass `verbose: true` to get the full `goal` text per mission. The stored
186
+ * goal is untouched in both modes; this is an output-only projection.
187
+ */
188
+ export function getMeshStatusMissionSummaries(
189
+ meshId: string,
190
+ options?: { historyLimit?: number; verbose?: boolean; withStats?: boolean },
191
+ ): MeshMissionSummary[] | MeshMissionSlimSummary[] {
192
+ const historyLimit = Math.max(0, options?.historyLimit ?? 10);
193
+ const all = getMeshMissions(meshId);
194
+ const live = all.filter(m => m.status === 'active' || m.status === 'paused');
195
+ const history = all
196
+ .filter(m => m.status === 'completed' || m.status === 'abandoned')
197
+ .sort((a, b) => (b.updatedAt || '').localeCompare(a.updatedAt || ''))
198
+ .slice(0, historyLimit);
199
+ let full = [...live, ...history].map(mission => summarizeMeshMission(meshId, mission));
200
+ // Operational stats (durations / attempts) are an opt-in projection: each
201
+ // mission's rollup scans a bounded ledger tail, so we only compute it for
202
+ // the bounded set we are about to return (live + capped history), not for
203
+ // every mission in the mesh. The dashboard graph opts in so mission detail
204
+ // can show wall-clock / retries without a second round trip.
205
+ if (options?.withStats) {
206
+ full = full.map(summary => ({ ...summary, stats: computeMeshMissionStats(meshId, summary.id) }));
207
+ }
208
+ return options?.verbose ? full : full.map(summary => slimMissionSummary(summary));
209
+ }
210
+
211
+ /** Folded completed/abandoned history for the mesh_status compact surface. */
212
+ export interface MeshStatusMissionsHistoryFold {
213
+ /** Total completed + abandoned missions. */
214
+ count: number;
215
+ /** Count by lifecycle status (e.g. { completed, abandoned }). */
216
+ byStatus: Record<string, number>;
217
+ /** Newest-first id list (capped) so each folded mission stays addressable. */
218
+ missionIds: string[];
219
+ note: string;
220
+ }
221
+
222
+ /** Compact mesh_status mission projection: live detail + folded history. */
223
+ export interface MeshStatusMissionsCompact {
224
+ /**
225
+ * Active + paused missions, goal-elided to COMPACT_STATUS_GOAL_PREVIEW_MAX and
226
+ * WITHOUT the operational `stats` rollup — the `tasks` aggregate already carries
227
+ * progress, and stats (durations/retries) is a verbose/dashboard concern.
228
+ */
229
+ live: MeshMissionSlimSummary[];
230
+ /** Completed + abandoned missions folded to counts + ids; null when none. */
231
+ historyFold: MeshStatusMissionsHistoryFold | null;
232
+ }
233
+
234
+ /**
235
+ * Mission projection for the mesh_status COMPACT (LLM coordinator) surface.
236
+ *
237
+ * Unlike getMeshStatusMissionSummaries (which emits every live mission plus a
238
+ * capped slice of full-detail history, each carrying a stats rollup), this keeps
239
+ * per-mission detail ONLY for live (active/paused) missions and folds the whole
240
+ * completed/abandoned history into a counts + id-list summary. Combined with the
241
+ * tighter goal preview and dropped stats, this is what keeps the compact
242
+ * mesh_status payload bounded as a mesh accumulates missions — the missions
243
+ * section previously dominated the payload (full goalPreview + tasks + stats per
244
+ * mission, for every live mission and up to 10 history missions, on every poll).
245
+ *
246
+ * The stored missions are untouched; this is an output-only projection. Full
247
+ * mission detail (goal text + stats + history) stays available via
248
+ * mesh_status verbose=true or mesh_mission_list.
249
+ */
250
+ export function getMeshStatusMissionsCompact(
251
+ meshId: string,
252
+ options?: { previewMax?: number; historyIdLimit?: number },
253
+ ): MeshStatusMissionsCompact {
254
+ const previewMax = Math.max(0, options?.previewMax ?? COMPACT_STATUS_GOAL_PREVIEW_MAX);
255
+ const historyIdLimit = Math.max(0, options?.historyIdLimit ?? 20);
256
+ const all = getMeshMissions(meshId);
257
+ const live = all
258
+ .filter(m => m.status === 'active' || m.status === 'paused')
259
+ .map(mission => slimMissionSummary(summarizeMeshMission(meshId, mission), previewMax));
260
+ const history = all
261
+ .filter(m => m.status === 'completed' || m.status === 'abandoned')
262
+ .sort((a, b) => (b.updatedAt || '').localeCompare(a.updatedAt || ''));
263
+ let historyFold: MeshStatusMissionsHistoryFold | null = null;
264
+ if (history.length > 0) {
265
+ const byStatus: Record<string, number> = {};
266
+ for (const m of history) byStatus[m.status] = (byStatus[m.status] ?? 0) + 1;
267
+ historyFold = {
268
+ count: history.length,
269
+ byStatus,
270
+ missionIds: history.slice(0, historyIdLimit).map(m => m.id),
271
+ note: 'Completed/abandoned missions are folded to counts + ids in compact mesh_status. Use mesh_mission_list or mesh_status verbose=true for their goal/task detail.',
272
+ };
273
+ }
274
+ return { live, historyFold };
275
+ }
276
+
277
+ /**
278
+ * Read-only mission listing for the mesh_mission_list tool. Returns summaries
279
+ * (record + live task aggregate) for missions matching `statuses` — or every
280
+ * mission when `statuses` is omitted/empty — newest-first by updatedAt. Unlike
281
+ * getMeshStatusMissionSummaries this does NOT cap or group by lifecycle, so a
282
+ * coordinator can deliberately surface paused/abandoned/completed missions that
283
+ * the live status view would hide or truncate.
284
+ *
285
+ * Compact (the default) elides each goal to a capped preview + goalTruncated
286
+ * flag; verbose returns the full goal text. The stored goal is never mutated.
287
+ */
288
+ export function listMeshMissionSummaries(
289
+ meshId: string,
290
+ options?: { statuses?: MeshMissionStatus[]; verbose?: boolean },
291
+ ): MeshMissionSummary[] | MeshMissionSlimSummary[] {
292
+ const statuses = options?.statuses && options.statuses.length > 0 ? options.statuses : undefined;
293
+ const missions = getMeshMissions(meshId, statuses)
294
+ .sort((a, b) => (b.updatedAt || '').localeCompare(a.updatedAt || ''));
295
+ const full = missions.map(mission => summarizeMeshMission(meshId, mission));
296
+ return options?.verbose ? full : full.map(summary => slimMissionSummary(summary));
297
+ }
298
+
299
+ /**
300
+ * M3-3: render active missions as a prompt section for {{mission}}.
301
+ * Empty string when no active mission — the prompt stays byte-identical to
302
+ * the pre-M3 output in that case (regression guarantee).
303
+ */
304
+ export function buildMissionPromptSection(meshId: string): string {
305
+ const summaries = getActiveMeshMissionSummaries(meshId);
306
+ if (summaries.length === 0) return '';
307
+ const lines: string[] = ['## Active Mission' + (summaries.length > 1 ? 's' : '')];
308
+ for (const mission of summaries) {
309
+ const t = mission.tasks;
310
+ lines.push(
311
+ `- **${mission.title}** (id: \`${mission.id}\`)`
312
+ + (mission.goal ? `\n Goal: ${mission.goal}` : '')
313
+ + `\n Tasks: ${t.total} total — ${t.pending} pending (${t.blocked} blocked), ${t.assigned} assigned, ${t.completed} completed, ${t.failed} failed, ${t.cancelled} cancelled`
314
+ + (t.lastActivityAt ? `\n Last activity: ${t.lastActivityAt}` : ''),
315
+ );
316
+ }
317
+ lines.push(
318
+ 'Continue this mission from its current task state. Do not re-enqueue tasks that already exist — check mesh_view_queue first. '
319
+ + 'Update the mission with mesh_mission_upsert when its goal changes or it reaches a terminal state (completed/abandoned).',
320
+ );
321
+ return lines.join('\n');
322
+ }