@telora/daemon 0.20.2 → 0.20.9

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 (587) hide show
  1. package/build-info.json +7 -3
  2. package/dist/ai-inspection-context.d.ts.map +1 -1
  3. package/dist/ai-inspection-context.js +5 -3
  4. package/dist/ai-inspection-context.js.map +1 -1
  5. package/dist/assembly-engine.d.ts.map +1 -1
  6. package/dist/assembly-engine.js +4 -2
  7. package/dist/assembly-engine.js.map +1 -1
  8. package/dist/audit-hooks.d.ts.map +1 -1
  9. package/dist/audit-hooks.js +3 -1
  10. package/dist/audit-hooks.js.map +1 -1
  11. package/dist/auth-liveness.d.ts.map +1 -1
  12. package/dist/auth-liveness.js +4 -2
  13. package/dist/auth-liveness.js.map +1 -1
  14. package/dist/auto-update.d.ts.map +1 -1
  15. package/dist/auto-update.js +14 -12
  16. package/dist/auto-update.js.map +1 -1
  17. package/dist/backends/codex/codex-backend.d.ts.map +1 -1
  18. package/dist/backends/codex/codex-backend.js +4 -2
  19. package/dist/backends/codex/codex-backend.js.map +1 -1
  20. package/dist/backends/codex/codex-mcp-proxy.d.ts.map +1 -1
  21. package/dist/backends/codex/codex-mcp-proxy.js +3 -1
  22. package/dist/backends/codex/codex-mcp-proxy.js.map +1 -1
  23. package/dist/backends/lacuna/lifecycle.d.ts.map +1 -1
  24. package/dist/backends/lacuna/lifecycle.js +4 -2
  25. package/dist/backends/lacuna/lifecycle.js.map +1 -1
  26. package/dist/backends/resolve.d.ts.map +1 -1
  27. package/dist/backends/resolve.js +3 -1
  28. package/dist/backends/resolve.js.map +1 -1
  29. package/dist/cascade-restatement.d.ts.map +1 -1
  30. package/dist/cascade-restatement.js +15 -13
  31. package/dist/cascade-restatement.js.map +1 -1
  32. package/dist/ci-escalation.d.ts.map +1 -1
  33. package/dist/ci-escalation.js +4 -2
  34. package/dist/ci-escalation.js.map +1 -1
  35. package/dist/ci-sensor-loop.d.ts.map +1 -1
  36. package/dist/ci-sensor-loop.js +6 -4
  37. package/dist/ci-sensor-loop.js.map +1 -1
  38. package/dist/ci-status-git.d.ts +5 -6
  39. package/dist/ci-status-git.d.ts.map +1 -1
  40. package/dist/ci-status-git.js +7 -7
  41. package/dist/ci-status-git.js.map +1 -1
  42. package/dist/cli/connect.d.ts.map +1 -1
  43. package/dist/cli/connect.js +9 -2
  44. package/dist/cli/connect.js.map +1 -1
  45. package/dist/cli/open.d.ts.map +1 -1
  46. package/dist/cli/open.js +9 -2
  47. package/dist/cli/open.js.map +1 -1
  48. package/dist/cli/session-state.d.ts.map +1 -1
  49. package/dist/cli/session-state.js +2 -0
  50. package/dist/cli/session-state.js.map +1 -1
  51. package/dist/cli/verify-setup.d.ts.map +1 -1
  52. package/dist/cli/verify-setup.js +9 -4
  53. package/dist/cli/verify-setup.js.map +1 -1
  54. package/dist/close-loop-dispatcher.d.ts.map +1 -1
  55. package/dist/close-loop-dispatcher.js +6 -4
  56. package/dist/close-loop-dispatcher.js.map +1 -1
  57. package/dist/completion/advanceability.d.ts.map +1 -1
  58. package/dist/completion/advanceability.js +3 -1
  59. package/dist/completion/advanceability.js.map +1 -1
  60. package/dist/completion/agent-completion.d.ts.map +1 -1
  61. package/dist/completion/agent-completion.js +11 -9
  62. package/dist/completion/agent-completion.js.map +1 -1
  63. package/dist/completion/event-escalations.d.ts.map +1 -1
  64. package/dist/completion/event-escalations.js +10 -8
  65. package/dist/completion/event-escalations.js.map +1 -1
  66. package/dist/completion/event-phases.d.ts +104 -0
  67. package/dist/completion/event-phases.d.ts.map +1 -0
  68. package/dist/completion/event-phases.js +572 -0
  69. package/dist/completion/event-phases.js.map +1 -0
  70. package/dist/completion/event.d.ts +1 -1
  71. package/dist/completion/event.d.ts.map +1 -1
  72. package/dist/completion/event.js +36 -592
  73. package/dist/completion/event.js.map +1 -1
  74. package/dist/completion/merge-phase.d.ts.map +1 -1
  75. package/dist/completion/merge-phase.js +14 -12
  76. package/dist/completion/merge-phase.js.map +1 -1
  77. package/dist/completion/read-only-pristine.d.ts.map +1 -1
  78. package/dist/completion/read-only-pristine.js +6 -4
  79. package/dist/completion/read-only-pristine.js.map +1 -1
  80. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  81. package/dist/completion/review-exit-phase.js +28 -26
  82. package/dist/completion/review-exit-phase.js.map +1 -1
  83. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  84. package/dist/completion/status-advance-phase.js +16 -14
  85. package/dist/completion/status-advance-phase.js.map +1 -1
  86. package/dist/completion/team-completion.d.ts.map +1 -1
  87. package/dist/completion/team-completion.js +16 -14
  88. package/dist/completion/team-completion.js.map +1 -1
  89. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  90. package/dist/completion/team-lifecycle.js +32 -33
  91. package/dist/completion/team-lifecycle.js.map +1 -1
  92. package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
  93. package/dist/completion/terminated-work-reconcile.js +11 -9
  94. package/dist/completion/terminated-work-reconcile.js.map +1 -1
  95. package/dist/condition-evaluators.d.ts.map +1 -1
  96. package/dist/condition-evaluators.js +3 -1
  97. package/dist/condition-evaluators.js.map +1 -1
  98. package/dist/config-reconcile.d.ts.map +1 -1
  99. package/dist/config-reconcile.js +3 -1
  100. package/dist/config-reconcile.js.map +1 -1
  101. package/dist/config.d.ts +4 -4
  102. package/dist/config.d.ts.map +1 -1
  103. package/dist/config.js +56 -42
  104. package/dist/config.js.map +1 -1
  105. package/dist/control-state.d.ts.map +1 -1
  106. package/dist/control-state.js +26 -24
  107. package/dist/control-state.js.map +1 -1
  108. package/dist/crash-recovery.d.ts.map +1 -1
  109. package/dist/crash-recovery.js +43 -41
  110. package/dist/crash-recovery.js.map +1 -1
  111. package/dist/daemon-logs.d.ts.map +1 -1
  112. package/dist/daemon-logs.js +21 -3
  113. package/dist/daemon-logs.js.map +1 -1
  114. package/dist/daemon-process.d.ts +0 -1
  115. package/dist/daemon-process.d.ts.map +1 -1
  116. package/dist/daemon-process.js +15 -10
  117. package/dist/daemon-process.js.map +1 -1
  118. package/dist/delivery-advance-block.d.ts +4 -4
  119. package/dist/delivery-advance-block.d.ts.map +1 -1
  120. package/dist/delivery-advance-block.js +25 -18
  121. package/dist/delivery-advance-block.js.map +1 -1
  122. package/dist/delivery-guards.d.ts.map +1 -1
  123. package/dist/delivery-guards.js +11 -9
  124. package/dist/delivery-guards.js.map +1 -1
  125. package/dist/delivery-lifecycle.d.ts.map +1 -1
  126. package/dist/delivery-lifecycle.js +23 -21
  127. package/dist/delivery-lifecycle.js.map +1 -1
  128. package/dist/delivery-merge.d.ts.map +1 -1
  129. package/dist/delivery-merge.js +10 -8
  130. package/dist/delivery-merge.js.map +1 -1
  131. package/dist/delivery-reconciler-apply.d.ts.map +1 -1
  132. package/dist/delivery-reconciler-apply.js +5 -8
  133. package/dist/delivery-reconciler-apply.js.map +1 -1
  134. package/dist/delivery-reconciler-shadow.d.ts.map +1 -1
  135. package/dist/delivery-reconciler-shadow.js +5 -6
  136. package/dist/delivery-reconciler-shadow.js.map +1 -1
  137. package/dist/directive/close-loop-stage.d.ts.map +1 -1
  138. package/dist/directive/close-loop-stage.js +9 -7
  139. package/dist/directive/close-loop-stage.js.map +1 -1
  140. package/dist/directive/directive-assembly.d.ts.map +1 -1
  141. package/dist/directive/directive-assembly.js +3 -1
  142. package/dist/directive/directive-assembly.js.map +1 -1
  143. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  144. package/dist/directive/directive-dispatch.js +16 -14
  145. package/dist/directive/directive-dispatch.js.map +1 -1
  146. package/dist/directive/directive-queue.d.ts +27 -0
  147. package/dist/directive/directive-queue.d.ts.map +1 -1
  148. package/dist/directive/directive-queue.js +28 -0
  149. package/dist/directive/directive-queue.js.map +1 -1
  150. package/dist/directive/phase-sync.d.ts.map +1 -1
  151. package/dist/directive/phase-sync.js +8 -6
  152. package/dist/directive/phase-sync.js.map +1 -1
  153. package/dist/directive-executor.d.ts +1 -1
  154. package/dist/directive-executor.d.ts.map +1 -1
  155. package/dist/directive-executor.js +12 -10
  156. package/dist/directive-executor.js.map +1 -1
  157. package/dist/discovery-poll.d.ts.map +1 -1
  158. package/dist/discovery-poll.js +8 -6
  159. package/dist/discovery-poll.js.map +1 -1
  160. package/dist/drain-teardown.d.ts.map +1 -1
  161. package/dist/drain-teardown.js +6 -19
  162. package/dist/drain-teardown.js.map +1 -1
  163. package/dist/drift-eval-loop.d.ts.map +1 -1
  164. package/dist/drift-eval-loop.js +10 -8
  165. package/dist/drift-eval-loop.js.map +1 -1
  166. package/dist/escalation-provenance.d.ts.map +1 -1
  167. package/dist/escalation-provenance.js +8 -3
  168. package/dist/escalation-provenance.js.map +1 -1
  169. package/dist/focus-engine.d.ts.map +1 -1
  170. package/dist/focus-engine.js +36 -34
  171. package/dist/focus-engine.js.map +1 -1
  172. package/dist/focus-executor.d.ts +2 -1
  173. package/dist/focus-executor.d.ts.map +1 -1
  174. package/dist/focus-executor.js +17 -15
  175. package/dist/focus-executor.js.map +1 -1
  176. package/dist/focus-lifecycle.d.ts.map +1 -1
  177. package/dist/focus-lifecycle.js +56 -44
  178. package/dist/focus-lifecycle.js.map +1 -1
  179. package/dist/focus-loop-registry.d.ts.map +1 -1
  180. package/dist/focus-loop-registry.js +38 -36
  181. package/dist/focus-loop-registry.js.map +1 -1
  182. package/dist/focus-merge.d.ts.map +1 -1
  183. package/dist/focus-merge.js +40 -34
  184. package/dist/focus-merge.js.map +1 -1
  185. package/dist/focus-provisioning.d.ts.map +1 -1
  186. package/dist/focus-provisioning.js +15 -13
  187. package/dist/focus-provisioning.js.map +1 -1
  188. package/dist/focus-respawn-guard.d.ts.map +1 -1
  189. package/dist/focus-respawn-guard.js +4 -2
  190. package/dist/focus-respawn-guard.js.map +1 -1
  191. package/dist/focus-stage-lifecycle/planning-release.d.ts.map +1 -1
  192. package/dist/focus-stage-lifecycle/planning-release.js +10 -8
  193. package/dist/focus-stage-lifecycle/planning-release.js.map +1 -1
  194. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +1 -1
  195. package/dist/focus-stage-lifecycle/review-convergence.js +11 -9
  196. package/dist/focus-stage-lifecycle/review-convergence.js.map +1 -1
  197. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  198. package/dist/focus-stage-lifecycle/wedge-watchdog.js +7 -5
  199. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  200. package/dist/focus-stage-lifecycle.d.ts.map +1 -1
  201. package/dist/focus-stage-lifecycle.js +7 -5
  202. package/dist/focus-stage-lifecycle.js.map +1 -1
  203. package/dist/focus-team-state.d.ts +18 -9
  204. package/dist/focus-team-state.d.ts.map +1 -1
  205. package/dist/focus-team-state.js +37 -18
  206. package/dist/focus-team-state.js.map +1 -1
  207. package/dist/focus-worktree-state.d.ts.map +1 -1
  208. package/dist/focus-worktree-state.js +6 -4
  209. package/dist/focus-worktree-state.js.map +1 -1
  210. package/dist/git/branch.d.ts.map +1 -1
  211. package/dist/git/branch.js +7 -5
  212. package/dist/git/branch.js.map +1 -1
  213. package/dist/git/genesis.d.ts.map +1 -1
  214. package/dist/git/genesis.js +3 -1
  215. package/dist/git/genesis.js.map +1 -1
  216. package/dist/git/integration.d.ts.map +1 -1
  217. package/dist/git/integration.js +4 -2
  218. package/dist/git/integration.js.map +1 -1
  219. package/dist/git/merge-helpers.d.ts.map +1 -1
  220. package/dist/git/merge-helpers.js +6 -4
  221. package/dist/git/merge-helpers.js.map +1 -1
  222. package/dist/git/merge-lock.d.ts +0 -7
  223. package/dist/git/merge-lock.d.ts.map +1 -1
  224. package/dist/git/merge-lock.js +5 -3
  225. package/dist/git/merge-lock.js.map +1 -1
  226. package/dist/git/merge.d.ts.map +1 -1
  227. package/dist/git/merge.js +10 -8
  228. package/dist/git/merge.js.map +1 -1
  229. package/dist/git/state-detector.d.ts.map +1 -1
  230. package/dist/git/state-detector.js +9 -7
  231. package/dist/git/state-detector.js.map +1 -1
  232. package/dist/git/utils.d.ts.map +1 -1
  233. package/dist/git/utils.js +6 -4
  234. package/dist/git/utils.js.map +1 -1
  235. package/dist/git.d.ts.map +1 -1
  236. package/dist/git.js +16 -14
  237. package/dist/git.js.map +1 -1
  238. package/dist/guard-evaluator.d.ts.map +1 -1
  239. package/dist/guard-evaluator.js +3 -1
  240. package/dist/guard-evaluator.js.map +1 -1
  241. package/dist/heartbeat.d.ts.map +1 -1
  242. package/dist/heartbeat.js +14 -11
  243. package/dist/heartbeat.js.map +1 -1
  244. package/dist/host-control/catalog.d.ts.map +1 -1
  245. package/dist/host-control/catalog.js +4 -2
  246. package/dist/host-control/catalog.js.map +1 -1
  247. package/dist/host-control/client.d.ts.map +1 -1
  248. package/dist/host-control/client.js +3 -1
  249. package/dist/host-control/client.js.map +1 -1
  250. package/dist/host-control/sizing.d.ts.map +1 -1
  251. package/dist/host-control/sizing.js +4 -1
  252. package/dist/host-control/sizing.js.map +1 -1
  253. package/dist/index.js +110 -127
  254. package/dist/index.js.map +1 -1
  255. package/dist/install-probe-tick.d.ts.map +1 -1
  256. package/dist/install-probe-tick.js +6 -4
  257. package/dist/install-probe-tick.js.map +1 -1
  258. package/dist/intake-control.d.ts +0 -16
  259. package/dist/intake-control.d.ts.map +1 -1
  260. package/dist/intake-control.js +4 -2
  261. package/dist/intake-control.js.map +1 -1
  262. package/dist/listener-auto-advance.d.ts.map +1 -1
  263. package/dist/listener-auto-advance.js +26 -24
  264. package/dist/listener-auto-advance.js.map +1 -1
  265. package/dist/listener.d.ts.map +1 -1
  266. package/dist/listener.js +59 -39
  267. package/dist/listener.js.map +1 -1
  268. package/dist/log.d.ts +84 -0
  269. package/dist/log.d.ts.map +1 -0
  270. package/dist/log.js +182 -0
  271. package/dist/log.js.map +1 -0
  272. package/dist/loops/context-audit-pass.d.ts.map +1 -1
  273. package/dist/loops/context-audit-pass.js +8 -5
  274. package/dist/loops/context-audit-pass.js.map +1 -1
  275. package/dist/loops/engine.d.ts.map +1 -1
  276. package/dist/loops/engine.js +26 -24
  277. package/dist/loops/engine.js.map +1 -1
  278. package/dist/loops/llm-client.d.ts.map +1 -1
  279. package/dist/loops/llm-client.js +4 -2
  280. package/dist/loops/llm-client.js.map +1 -1
  281. package/dist/loops/llm-flag.d.ts +4 -28
  282. package/dist/loops/llm-flag.d.ts.map +1 -1
  283. package/dist/loops/llm-flag.js +11 -30
  284. package/dist/loops/llm-flag.js.map +1 -1
  285. package/dist/loops/prompt-builder.d.ts.map +1 -1
  286. package/dist/loops/prompt-builder.js +3 -1
  287. package/dist/loops/prompt-builder.js.map +1 -1
  288. package/dist/merge-back-loop.d.ts.map +1 -1
  289. package/dist/merge-back-loop.js +20 -18
  290. package/dist/merge-back-loop.js.map +1 -1
  291. package/dist/merge-detector.d.ts.map +1 -1
  292. package/dist/merge-detector.js +7 -5
  293. package/dist/merge-detector.js.map +1 -1
  294. package/dist/nexus/endpoint-clearance.d.ts.map +1 -1
  295. package/dist/nexus/endpoint-clearance.js +3 -1
  296. package/dist/nexus/endpoint-clearance.js.map +1 -1
  297. package/dist/nexus/escalation-bridge.d.ts.map +1 -1
  298. package/dist/nexus/escalation-bridge.js +3 -1
  299. package/dist/nexus/escalation-bridge.js.map +1 -1
  300. package/dist/nexus/incoming.d.ts.map +1 -1
  301. package/dist/nexus/incoming.js +3 -1
  302. package/dist/nexus/incoming.js.map +1 -1
  303. package/dist/nexus/intake-spawn.d.ts.map +1 -1
  304. package/dist/nexus/intake-spawn.js +6 -4
  305. package/dist/nexus/intake-spawn.js.map +1 -1
  306. package/dist/nexus/intake.d.ts.map +1 -1
  307. package/dist/nexus/intake.js +3 -1
  308. package/dist/nexus/intake.js.map +1 -1
  309. package/dist/nexus/return.d.ts.map +1 -1
  310. package/dist/nexus/return.js +3 -1
  311. package/dist/nexus/return.js.map +1 -1
  312. package/dist/non-interactive-init.d.ts.map +1 -1
  313. package/dist/non-interactive-init.js +0 -0
  314. package/dist/non-interactive-init.js.map +1 -1
  315. package/dist/otlp/port-manager.d.ts.map +1 -1
  316. package/dist/otlp/port-manager.js +7 -5
  317. package/dist/otlp/port-manager.js.map +1 -1
  318. package/dist/otlp/receiver.d.ts.map +1 -1
  319. package/dist/otlp/receiver.js +14 -12
  320. package/dist/otlp/receiver.js.map +1 -1
  321. package/dist/output-monitor.d.ts.map +1 -1
  322. package/dist/output-monitor.js +6 -4
  323. package/dist/output-monitor.js.map +1 -1
  324. package/dist/prd/controller.d.ts.map +1 -1
  325. package/dist/prd/controller.js +7 -5
  326. package/dist/prd/controller.js.map +1 -1
  327. package/dist/prd/focus-pushdown.d.ts.map +1 -1
  328. package/dist/prd/focus-pushdown.js +3 -1
  329. package/dist/prd/focus-pushdown.js.map +1 -1
  330. package/dist/product-scaffold.d.ts.map +1 -1
  331. package/dist/product-scaffold.js +8 -6
  332. package/dist/product-scaffold.js.map +1 -1
  333. package/dist/queries/context-assembly.d.ts.map +1 -1
  334. package/dist/queries/context-assembly.js +3 -1
  335. package/dist/queries/context-assembly.js.map +1 -1
  336. package/dist/queries/deliveries.d.ts.map +1 -1
  337. package/dist/queries/deliveries.js +7 -5
  338. package/dist/queries/deliveries.js.map +1 -1
  339. package/dist/queries/focuses.d.ts.map +1 -1
  340. package/dist/queries/focuses.js +3 -1
  341. package/dist/queries/focuses.js.map +1 -1
  342. package/dist/queries/guards.d.ts.map +1 -1
  343. package/dist/queries/guards.js +3 -1
  344. package/dist/queries/guards.js.map +1 -1
  345. package/dist/queries/issues.d.ts.map +1 -1
  346. package/dist/queries/issues.js +3 -1
  347. package/dist/queries/issues.js.map +1 -1
  348. package/dist/queries/system-session.d.ts.map +1 -1
  349. package/dist/queries/system-session.js +5 -3
  350. package/dist/queries/system-session.js.map +1 -1
  351. package/dist/queries/verification.d.ts.map +1 -1
  352. package/dist/queries/verification.js +6 -4
  353. package/dist/queries/verification.js.map +1 -1
  354. package/dist/reality-pole-capture.d.ts.map +1 -1
  355. package/dist/reality-pole-capture.js +7 -4
  356. package/dist/reality-pole-capture.js.map +1 -1
  357. package/dist/reality-pole.d.ts.map +1 -1
  358. package/dist/reality-pole.js +4 -2
  359. package/dist/reality-pole.js.map +1 -1
  360. package/dist/resolvers/agent-escalations.d.ts.map +1 -1
  361. package/dist/resolvers/agent-escalations.js +3 -1
  362. package/dist/resolvers/agent-escalations.js.map +1 -1
  363. package/dist/resolvers/agent-session-summaries.d.ts.map +1 -1
  364. package/dist/resolvers/agent-session-summaries.js +3 -1
  365. package/dist/resolvers/agent-session-summaries.js.map +1 -1
  366. package/dist/resolvers/deployment-profile.d.ts.map +1 -1
  367. package/dist/resolvers/deployment-profile.js +3 -1
  368. package/dist/resolvers/deployment-profile.js.map +1 -1
  369. package/dist/resolvers/escalation-answers.d.ts.map +1 -1
  370. package/dist/resolvers/escalation-answers.js +4 -2
  371. package/dist/resolvers/escalation-answers.js.map +1 -1
  372. package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
  373. package/dist/resolvers/focus-anchoring-injections.js +3 -1
  374. package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
  375. package/dist/resolvers/focus-injections.d.ts.map +1 -1
  376. package/dist/resolvers/focus-injections.js +3 -1
  377. package/dist/resolvers/focus-injections.js.map +1 -1
  378. package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
  379. package/dist/resolvers/focus-last-review-report.js +3 -1
  380. package/dist/resolvers/focus-last-review-report.js.map +1 -1
  381. package/dist/resolvers/focus-reality-tree.d.ts.map +1 -1
  382. package/dist/resolvers/focus-reality-tree.js +3 -1
  383. package/dist/resolvers/focus-reality-tree.js.map +1 -1
  384. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  385. package/dist/resolvers/git-diff-against-base.js +3 -1
  386. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  387. package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -1
  388. package/dist/resolvers/guards-evaluation-results.js +3 -1
  389. package/dist/resolvers/guards-evaluation-results.js.map +1 -1
  390. package/dist/resolvers/loop-context.d.ts.map +1 -1
  391. package/dist/resolvers/loop-context.js +6 -2
  392. package/dist/resolvers/loop-context.js.map +1 -1
  393. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
  394. package/dist/resolvers/loop-delivery-index.js +3 -1
  395. package/dist/resolvers/loop-delivery-index.js.map +1 -1
  396. package/dist/resolvers/loop-documents.d.ts.map +1 -1
  397. package/dist/resolvers/loop-documents.js +3 -1
  398. package/dist/resolvers/loop-documents.js.map +1 -1
  399. package/dist/resolvers/loop-expected-effects.d.ts.map +1 -1
  400. package/dist/resolvers/loop-expected-effects.js +3 -1
  401. package/dist/resolvers/loop-expected-effects.js.map +1 -1
  402. package/dist/resolvers/loop-frt-statement.d.ts.map +1 -1
  403. package/dist/resolvers/loop-frt-statement.js +3 -1
  404. package/dist/resolvers/loop-frt-statement.js.map +1 -1
  405. package/dist/resolvers/loop-injection.d.ts.map +1 -1
  406. package/dist/resolvers/loop-injection.js +3 -1
  407. package/dist/resolvers/loop-injection.js.map +1 -1
  408. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  409. package/dist/resolvers/loop-persona.js +3 -1
  410. package/dist/resolvers/loop-persona.js.map +1 -1
  411. package/dist/resolvers/loop-questions.d.ts.map +1 -1
  412. package/dist/resolvers/loop-questions.js +3 -1
  413. package/dist/resolvers/loop-questions.js.map +1 -1
  414. package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -1
  415. package/dist/resolvers/loop-upstream-udes.js +3 -1
  416. package/dist/resolvers/loop-upstream-udes.js.map +1 -1
  417. package/dist/resolvers/prd-context.d.ts.map +1 -1
  418. package/dist/resolvers/prd-context.js +3 -1
  419. package/dist/resolvers/prd-context.js.map +1 -1
  420. package/dist/resolvers/reality-metrics.d.ts.map +1 -1
  421. package/dist/resolvers/reality-metrics.js +3 -1
  422. package/dist/resolvers/reality-metrics.js.map +1 -1
  423. package/dist/resolvers/reality-projections.d.ts.map +1 -1
  424. package/dist/resolvers/reality-projections.js +3 -1
  425. package/dist/resolvers/reality-projections.js.map +1 -1
  426. package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -1
  427. package/dist/resolvers/reality-tree-snapshot.js +3 -1
  428. package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
  429. package/dist/resolvers/retired-injections.d.ts.map +1 -1
  430. package/dist/resolvers/retired-injections.js +3 -1
  431. package/dist/resolvers/retired-injections.js.map +1 -1
  432. package/dist/resolvers/review-outcomes.d.ts.map +1 -1
  433. package/dist/resolvers/review-outcomes.js +3 -1
  434. package/dist/resolvers/review-outcomes.js.map +1 -1
  435. package/dist/resolvers/security-advisory.d.ts.map +1 -1
  436. package/dist/resolvers/security-advisory.js +3 -1
  437. package/dist/resolvers/security-advisory.js.map +1 -1
  438. package/dist/resolvers/shared/wiki.d.ts.map +1 -1
  439. package/dist/resolvers/shared/wiki.js +5 -3
  440. package/dist/resolvers/shared/wiki.js.map +1 -1
  441. package/dist/resolvers/wiki-topic.d.ts.map +1 -1
  442. package/dist/resolvers/wiki-topic.js +3 -1
  443. package/dist/resolvers/wiki-topic.js.map +1 -1
  444. package/dist/resolvers/workflow-stages.d.ts.map +1 -1
  445. package/dist/resolvers/workflow-stages.js +3 -1
  446. package/dist/resolvers/workflow-stages.js.map +1 -1
  447. package/dist/schema-version-gate.d.ts.map +1 -1
  448. package/dist/schema-version-gate.js +16 -18
  449. package/dist/schema-version-gate.js.map +1 -1
  450. package/dist/security-finding-gate.d.ts.map +1 -1
  451. package/dist/security-finding-gate.js +3 -1
  452. package/dist/security-finding-gate.js.map +1 -1
  453. package/dist/security-rescan-resolution.d.ts.map +1 -1
  454. package/dist/security-rescan-resolution.js +4 -2
  455. package/dist/security-rescan-resolution.js.map +1 -1
  456. package/dist/security-scan-engine.d.ts.map +1 -1
  457. package/dist/security-scan-engine.js +9 -6
  458. package/dist/security-scan-engine.js.map +1 -1
  459. package/dist/self-update.d.ts.map +1 -1
  460. package/dist/self-update.js +48 -39
  461. package/dist/self-update.js.map +1 -1
  462. package/dist/sensor-sweep.d.ts.map +1 -1
  463. package/dist/sensor-sweep.js +5 -2
  464. package/dist/sensor-sweep.js.map +1 -1
  465. package/dist/session-stamp.d.ts.map +1 -1
  466. package/dist/session-stamp.js +4 -2
  467. package/dist/session-stamp.js.map +1 -1
  468. package/dist/spawn/model-routing.d.ts +18 -0
  469. package/dist/spawn/model-routing.d.ts.map +1 -1
  470. package/dist/spawn/model-routing.js +53 -18
  471. package/dist/spawn/model-routing.js.map +1 -1
  472. package/dist/spawn/process-spawn.d.ts.map +1 -1
  473. package/dist/spawn/process-spawn.js +29 -22
  474. package/dist/spawn/process-spawn.js.map +1 -1
  475. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  476. package/dist/spawn/prompt-assembly.js +6 -4
  477. package/dist/spawn/prompt-assembly.js.map +1 -1
  478. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  479. package/dist/spawn/spawn-decision.js +16 -14
  480. package/dist/spawn/spawn-decision.js.map +1 -1
  481. package/dist/spawn/worktree-session.d.ts.map +1 -1
  482. package/dist/spawn/worktree-session.js +13 -11
  483. package/dist/spawn/worktree-session.js.map +1 -1
  484. package/dist/spawn-cooldown.d.ts +0 -7
  485. package/dist/spawn-cooldown.d.ts.map +1 -1
  486. package/dist/spawn-cooldown.js +3 -1
  487. package/dist/spawn-cooldown.js.map +1 -1
  488. package/dist/spawn-environment.d.ts.map +1 -1
  489. package/dist/spawn-environment.js +4 -1
  490. package/dist/spawn-environment.js.map +1 -1
  491. package/dist/spawner/helpers.d.ts.map +1 -1
  492. package/dist/spawner/helpers.js +19 -17
  493. package/dist/spawner/helpers.js.map +1 -1
  494. package/dist/spawner/lifecycle.d.ts.map +1 -1
  495. package/dist/spawner/lifecycle.js +17 -13
  496. package/dist/spawner/lifecycle.js.map +1 -1
  497. package/dist/spawner/liveness.d.ts.map +1 -1
  498. package/dist/spawner/liveness.js +7 -5
  499. package/dist/spawner/liveness.js.map +1 -1
  500. package/dist/spawner/resolution.d.ts.map +1 -1
  501. package/dist/spawner/resolution.js +7 -5
  502. package/dist/spawner/resolution.js.map +1 -1
  503. package/dist/spawner/stream-handlers.d.ts +6 -55
  504. package/dist/spawner/stream-handlers.d.ts.map +1 -1
  505. package/dist/spawner/stream-handlers.js +10 -172
  506. package/dist/spawner/stream-handlers.js.map +1 -1
  507. package/dist/spawner/timeout.d.ts.map +1 -1
  508. package/dist/spawner/timeout.js +11 -9
  509. package/dist/spawner/timeout.js.map +1 -1
  510. package/dist/staleness.d.ts.map +1 -1
  511. package/dist/staleness.js +4 -1
  512. package/dist/staleness.js.map +1 -1
  513. package/dist/stall-detector-config.d.ts +6 -17
  514. package/dist/stall-detector-config.d.ts.map +1 -1
  515. package/dist/stall-detector-config.js +10 -36
  516. package/dist/stall-detector-config.js.map +1 -1
  517. package/dist/stall-detectors.d.ts.map +1 -1
  518. package/dist/stall-detectors.js +6 -4
  519. package/dist/stall-detectors.js.map +1 -1
  520. package/dist/state-cascade.d.ts.map +1 -1
  521. package/dist/state-cascade.js +9 -7
  522. package/dist/state-cascade.js.map +1 -1
  523. package/dist/stop-request.d.ts.map +1 -1
  524. package/dist/stop-request.js +6 -2
  525. package/dist/stop-request.js.map +1 -1
  526. package/dist/supabase.d.ts.map +1 -1
  527. package/dist/supabase.js +3 -1
  528. package/dist/supabase.js.map +1 -1
  529. package/dist/telemetry-writer.d.ts.map +1 -1
  530. package/dist/telemetry-writer.js +11 -9
  531. package/dist/telemetry-writer.js.map +1 -1
  532. package/dist/trigger-executor.d.ts.map +1 -1
  533. package/dist/trigger-executor.js +28 -26
  534. package/dist/trigger-executor.js.map +1 -1
  535. package/dist/unified-engine-lifecycle.d.ts +19 -11
  536. package/dist/unified-engine-lifecycle.d.ts.map +1 -1
  537. package/dist/unified-engine-lifecycle.js +71 -70
  538. package/dist/unified-engine-lifecycle.js.map +1 -1
  539. package/dist/unified-init.d.ts.map +1 -1
  540. package/dist/unified-init.js +41 -36
  541. package/dist/unified-init.js.map +1 -1
  542. package/dist/unified-shell-config.d.ts +8 -1
  543. package/dist/unified-shell-config.d.ts.map +1 -1
  544. package/dist/unified-shell-config.js +57 -34
  545. package/dist/unified-shell-config.js.map +1 -1
  546. package/dist/unified-shell-status.d.ts.map +1 -1
  547. package/dist/unified-shell-status.js +39 -37
  548. package/dist/unified-shell-status.js.map +1 -1
  549. package/dist/unified-shell.d.ts.map +1 -1
  550. package/dist/unified-shell.js +37 -41
  551. package/dist/unified-shell.js.map +1 -1
  552. package/dist/verification-baseline.d.ts.map +1 -1
  553. package/dist/verification-baseline.js +7 -4
  554. package/dist/verification-baseline.js.map +1 -1
  555. package/dist/verification-config.d.ts +3 -3
  556. package/dist/verification-config.d.ts.map +1 -1
  557. package/dist/verification-config.js +8 -19
  558. package/dist/verification-config.js.map +1 -1
  559. package/dist/verification-default-on.d.ts +6 -6
  560. package/dist/verification-default-on.d.ts.map +1 -1
  561. package/dist/verification-default-on.js +9 -7
  562. package/dist/verification-default-on.js.map +1 -1
  563. package/dist/verification-deterministic.d.ts.map +1 -1
  564. package/dist/verification-deterministic.js +6 -3
  565. package/dist/verification-deterministic.js.map +1 -1
  566. package/dist/verification-engine.d.ts.map +1 -1
  567. package/dist/verification-engine.js +20 -16
  568. package/dist/verification-engine.js.map +1 -1
  569. package/dist/verification-feedback.d.ts.map +1 -1
  570. package/dist/verification-feedback.js +4 -2
  571. package/dist/verification-feedback.js.map +1 -1
  572. package/dist/version-check.d.ts.map +1 -1
  573. package/dist/version-check.js +5 -3
  574. package/dist/version-check.js.map +1 -1
  575. package/dist/worker-pidfile.d.ts.map +1 -1
  576. package/dist/worker-pidfile.js +8 -3
  577. package/dist/worker-pidfile.js.map +1 -1
  578. package/dist/worktree/focus.d.ts.map +1 -1
  579. package/dist/worktree/focus.js +15 -13
  580. package/dist/worktree/focus.js.map +1 -1
  581. package/dist/worktree/safety.d.ts.map +1 -1
  582. package/dist/worktree/safety.js +13 -11
  583. package/dist/worktree/safety.js.map +1 -1
  584. package/dist/worktree.d.ts.map +1 -1
  585. package/dist/worktree.js +41 -39
  586. package/dist/worktree.js.map +1 -1
  587. package/package.json +3 -3
@@ -13,6 +13,8 @@ import { getActiveTeams, terminateTeam } from './focus-executor.js';
13
13
  import { getControlStateChanges, setControlStateRunning } from './queries/control-state.js';
14
14
  import { getActiveFocuses } from './queries/deliveries.js';
15
15
  import { sendMessage } from '@telora/daemon-core';
16
+ import { createLogger } from './log.js';
17
+ const log = createLogger({ module: 'control-state' });
16
18
  // Track focuses that have already been suspended to avoid repeated SIGSTOP.
17
19
  const suspendedFocuses = new Set();
18
20
  /**
@@ -33,7 +35,7 @@ export async function checkControlStateChanges(config) {
33
35
  changes = await getControlStateChanges(config.productId);
34
36
  }
35
37
  catch (err) {
36
- console.warn('[control-state] Failed to check control state changes:', err.message);
38
+ log.warn('Failed to check control state changes:', err.message);
37
39
  return;
38
40
  }
39
41
  if (changes.length === 0) {
@@ -64,11 +66,11 @@ export async function checkControlStateChanges(config) {
64
66
  handleStopped(change);
65
67
  break;
66
68
  default:
67
- console.warn(`[control-state] Unknown control state: ${change.controlState} for ${change.entityId}`);
69
+ log.warn(`Unknown control state: ${change.controlState} for ${change.entityId}`);
68
70
  }
69
71
  }
70
72
  catch (err) {
71
- console.error(`[control-state] Failed to handle ${change.controlState} for ${change.entityType} ${change.entityId}:`, err.message);
73
+ log.error(`[control-state] Failed to handle ${change.controlState} for ${change.entityType} ${change.entityId}:`, err.message);
72
74
  }
73
75
  }
74
76
  }
@@ -80,7 +82,7 @@ export function handleHumanControl(change) {
80
82
  const activeTeams = getActiveTeams();
81
83
  const team = activeTeams.get(entityId);
82
84
  if (!team) {
83
- console.log(`[control-state] No active team for focus ${entityId} -- acknowledging human_control`);
85
+ log.info(`No active team for focus ${entityId} -- acknowledging human_control`);
84
86
  return;
85
87
  }
86
88
  // Avoid repeated SIGSTOP
@@ -88,16 +90,16 @@ export function handleHumanControl(change) {
88
90
  return;
89
91
  }
90
92
  if (!team.leadPid) {
91
- console.warn(`[control-state] Team for "${team.focusName}" has no PID -- cannot suspend`);
93
+ log.warn(`Team for "${team.focusName}" has no PID -- cannot suspend`);
92
94
  return;
93
95
  }
94
96
  try {
95
97
  process.kill(team.leadPid, 'SIGSTOP');
96
98
  suspendedFocuses.add(entityId);
97
- console.log(`[control-state] Suspended team "${team.focusName}" (PID: ${team.leadPid}) -- human_control`);
99
+ log.info(`[control-state] Suspended team "${team.focusName}" (PID: ${team.leadPid}) -- human_control`);
98
100
  }
99
101
  catch (err) {
100
- console.error(`[control-state] Failed to SIGSTOP PID ${team.leadPid} for "${team.focusName}":`, err.message);
102
+ log.error(`[control-state] Failed to SIGSTOP PID ${team.leadPid} for "${team.focusName}":`, err.message);
101
103
  }
102
104
  }
103
105
  /**
@@ -108,23 +110,23 @@ export async function handleResuming(change) {
108
110
  const activeTeams = getActiveTeams();
109
111
  const team = activeTeams.get(entityId);
110
112
  if (!team) {
111
- console.log(`[control-state] No active team for focus ${entityId} -- setting to running`);
113
+ log.info(`No active team for focus ${entityId} -- setting to running`);
112
114
  try {
113
115
  await setControlStateRunning(entityType, entityId);
114
116
  }
115
117
  catch (err) {
116
- console.warn(`[control-state] Failed to set control state to running for focus ${entityId}:`, err.message);
118
+ log.warn(`Failed to set control state to running for focus ${entityId}:`, err.message);
117
119
  }
118
120
  suspendedFocuses.delete(entityId);
119
121
  return;
120
122
  }
121
123
  if (!team.leadPid) {
122
- console.warn(`[control-state] Team for "${team.focusName}" has no PID -- setting to running`);
124
+ log.warn(`Team for "${team.focusName}" has no PID -- setting to running`);
123
125
  try {
124
126
  await setControlStateRunning(entityType, entityId);
125
127
  }
126
128
  catch (err) {
127
- console.warn(`[control-state] Failed to set control state to running for "${team.focusName}":`, err.message);
129
+ log.warn(`Failed to set control state to running for "${team.focusName}":`, err.message);
128
130
  }
129
131
  suspendedFocuses.delete(entityId);
130
132
  return;
@@ -132,19 +134,19 @@ export async function handleResuming(change) {
132
134
  // Send SIGCONT to resume the suspended process
133
135
  try {
134
136
  process.kill(team.leadPid, 'SIGCONT');
135
- console.log(`[control-state] Resumed team "${team.focusName}" (PID: ${team.leadPid}) -- SIGCONT sent`);
137
+ log.info(`[control-state] Resumed team "${team.focusName}" (PID: ${team.leadPid}) -- SIGCONT sent`);
136
138
  }
137
139
  catch (err) {
138
- console.error(`[control-state] Failed to SIGCONT PID ${team.leadPid} for "${team.focusName}":`, err.message);
140
+ log.error(`[control-state] Failed to SIGCONT PID ${team.leadPid} for "${team.focusName}":`, err.message);
139
141
  }
140
142
  // Inject operator note if present
141
143
  if (controlNote && team.leadStdin) {
142
144
  try {
143
145
  sendMessage(team.leadStdin, `Human operator note: ${controlNote}`);
144
- console.log(`[control-state] Injected operator note for "${team.focusName}"`);
146
+ log.info(`Injected operator note for "${team.focusName}"`);
145
147
  }
146
148
  catch (err) {
147
- console.warn(`[control-state] Failed to inject operator note for "${team.focusName}":`, err.message);
149
+ log.warn(`[control-state] Failed to inject operator note for "${team.focusName}":`, err.message);
148
150
  }
149
151
  }
150
152
  // Update control state to running
@@ -152,7 +154,7 @@ export async function handleResuming(change) {
152
154
  await setControlStateRunning(entityType, entityId);
153
155
  }
154
156
  catch (err) {
155
- console.warn(`[control-state] Failed to set control state to running for "${team.focusName}":`, err.message);
157
+ log.warn(`[control-state] Failed to set control state to running for "${team.focusName}":`, err.message);
156
158
  }
157
159
  suspendedFocuses.delete(entityId);
158
160
  }
@@ -183,7 +185,7 @@ export function initiateCooperativeStop(focusId, options, deps = defaultCooperat
183
185
  const activeTeams = deps.getActiveTeams();
184
186
  const team = activeTeams.get(focusId);
185
187
  if (!team) {
186
- console.log(`[control-state] No active team for focus ${focusId} -- acknowledging stop`);
188
+ log.info(`No active team for focus ${focusId} -- acknowledging stop`);
187
189
  suspendedFocuses.delete(focusId);
188
190
  return;
189
191
  }
@@ -192,20 +194,20 @@ export function initiateCooperativeStop(focusId, options, deps = defaultCooperat
192
194
  if (suspendedFocuses.has(focusId) && team.leadPid) {
193
195
  try {
194
196
  process.kill(team.leadPid, 'SIGCONT');
195
- console.log(`[control-state] Sent SIGCONT before stop for "${team.focusName}" (was suspended)`);
197
+ log.info(`Sent SIGCONT before stop for "${team.focusName}" (was suspended)`);
196
198
  }
197
199
  catch (err) {
198
- console.debug(`[control-state] SIGCONT before stop failed (process may have exited):`, err.message);
200
+ log.debug(`SIGCONT before stop failed (process may have exited):`, err.message);
199
201
  }
200
202
  }
201
203
  // Send the cooperative shutdown message via stdin.
202
204
  if (team.leadStdin) {
203
205
  try {
204
206
  sendMessage(team.leadStdin, options.message);
205
- console.log(`[control-state] Sent stop message to "${team.focusName}"`);
207
+ log.info(`Sent stop message to "${team.focusName}"`);
206
208
  }
207
209
  catch (err) {
208
- console.warn(`[control-state] Failed to send stop message to "${team.focusName}":`, err.message);
210
+ log.warn(`[control-state] Failed to send stop message to "${team.focusName}":`, err.message);
209
211
  }
210
212
  }
211
213
  // Mark the shutdown reason so handleTeamCompletion classifies the exit as a
@@ -217,7 +219,7 @@ export function initiateCooperativeStop(focusId, options, deps = defaultCooperat
217
219
  const graceMs = options.graceMs ?? COOPERATIVE_STOP_GRACE_MS;
218
220
  const timer = setTimeout(() => {
219
221
  if (deps.getActiveTeams().has(focusId)) {
220
- console.log(`[control-state] Grace period expired for "${team.focusName}" -- terminating`);
222
+ log.info(`Grace period expired for "${team.focusName}" -- terminating`);
221
223
  deps.terminateTeam(focusId, options.shutdownReason);
222
224
  }
223
225
  }, graceMs);
@@ -279,7 +281,7 @@ export async function reapDisarmedTeams(config, deps = defaultReapDeps) {
279
281
  catch (err) {
280
282
  // If the active-focus read fails, leave teams running rather than reaping
281
283
  // on incomplete information.
282
- console.warn(`[disarm-reaper] Cannot determine armed focuses (skipping reap): ${err.message}`);
284
+ log.warn(`[disarm-reaper] Cannot determine armed focuses (skipping reap): ${err.message}`);
283
285
  return;
284
286
  }
285
287
  // focusId -> armed? (status active AND role non-null). Only status='active'
@@ -304,7 +306,7 @@ export async function reapDisarmedTeams(config, deps = defaultReapDeps) {
304
306
  // Still armed (idle-but-armed / in review / paused) -> not a disarm.
305
307
  if (armed.get(focusId))
306
308
  continue;
307
- console.log(`[disarm-reaper] Focus "${team.focusName}" disarmed (agent role cleared) -- ` +
309
+ log.info(`[disarm-reaper] Focus "${team.focusName}" disarmed (agent role cleared) -- ` +
308
310
  `cooperatively stopping the running team`);
309
311
  pendingDisarmStops.add(focusId);
310
312
  deps.initiateCooperativeStop(focusId, {
@@ -1 +1 @@
1
- {"version":3,"file":"control-state.js","sourceRoot":"","sources":["../src/control-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-state.js","sourceRoot":"","sources":["../src/control-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crash-recovery.d.ts","sourceRoot":"","sources":["../src/crash-recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crash-recovery.d.ts","sourceRoot":"","sources":["../src/crash-recovery.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ import { createEscalation } from './queries/issues.js';
16
16
  import { getActiveFocuses } from './queries/deliveries.js';
17
17
  import { scanAllFocuses } from './queries/focuses.js';
18
18
  import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, removeWorktreeBase } from '@telora/daemon-core';
19
+ import { createLogger } from './log.js';
20
+ const log = createLogger({ module: 'crash-recovery' });
19
21
  /**
20
22
  * Default focus-key resolver: scan the product's focuses and match the 8-char
21
23
  * prefix to a full focus id. Orphans are inactive by construction, so this
@@ -31,7 +33,7 @@ async function defaultResolveFocusByKeyPrefix(keyPrefix, productId) {
31
33
  return match?.id ? { focusId: match.id, productId } : null;
32
34
  }
33
35
  catch (err) {
34
- console.warn(`[crash-recovery] Failed to resolve focus from key ${keyPrefix}: ${err instanceof Error ? err.message : String(err)}`);
36
+ log.warn(`[crash-recovery] Failed to resolve focus from key ${keyPrefix}: ${err instanceof Error ? err.message : String(err)}`);
35
37
  return null;
36
38
  }
37
39
  }
@@ -104,7 +106,7 @@ export async function detectOrphanedWorktrees(config, deps = defaultDeps) {
104
106
  return statSync(fullPath).isDirectory();
105
107
  }
106
108
  catch (e) {
107
- console.debug(`[crash-recovery] Failed to stat ${fullPath} (may have been deleted):`, e.message);
109
+ log.debug(`Failed to stat ${fullPath} (may have been deleted):`, e.message);
108
110
  return false;
109
111
  }
110
112
  });
@@ -123,7 +125,7 @@ export async function detectOrphanedWorktrees(config, deps = defaultDeps) {
123
125
  activeSessions = await deps.getActiveSessions();
124
126
  }
125
127
  catch (err) {
126
- console.warn(`[crash-recovery] Failed to query active sessions from DB: ${err instanceof Error ? err.message : String(err)}. ` +
128
+ log.warn(`[crash-recovery] Failed to query active sessions from DB: ${err instanceof Error ? err.message : String(err)}. ` +
127
129
  `Treating all worktrees as orphaned.`);
128
130
  }
129
131
  // Build set of branch names with active sessions
@@ -142,7 +144,7 @@ export async function detectOrphanedWorktrees(config, deps = defaultDeps) {
142
144
  }
143
145
  }
144
146
  catch (err) {
145
- console.warn(`[crash-recovery] Failed to query active focuses: ${err instanceof Error ? err.message : String(err)}. ` +
147
+ log.warn(`[crash-recovery] Failed to query active focuses: ${err instanceof Error ? err.message : String(err)}. ` +
146
148
  `Persistent focus worktrees may be incorrectly classified as orphaned.`);
147
149
  }
148
150
  // 4. Classify each worktree subdirectory
@@ -155,11 +157,11 @@ export async function detectOrphanedWorktrees(config, deps = defaultDeps) {
155
157
  // Check if it belongs to an active focus before classifying as orphan.
156
158
  const idPrefix = extractFocusIdPrefix(subdir);
157
159
  if (idPrefix && activeFocusIdPrefixes.has(idPrefix)) {
158
- console.log(`[crash-recovery] Worktree belongs to active focus (persistent, no git entry): ${fullPath}`);
160
+ log.info(`Worktree belongs to active focus (persistent, no git entry): ${fullPath}`);
159
161
  continue;
160
162
  }
161
163
  // Try to infer branch from directory name (agent-role-delivery pattern).
162
- console.log(`[crash-recovery] Worktree directory has no git entry: ${fullPath}`);
164
+ log.info(`Worktree directory has no git entry: ${fullPath}`);
163
165
  orphans.push({
164
166
  worktreePath: fullPath,
165
167
  branchName: subdir.replace(/-/g, '/').replace(/^agent\//, 'agent/'),
@@ -169,13 +171,13 @@ export async function detectOrphanedWorktrees(config, deps = defaultDeps) {
169
171
  }
170
172
  if (activeBranches.has(branchName)) {
171
173
  // Active session exists — leave alone
172
- console.log(`[crash-recovery] Worktree is active (has DB session): ${fullPath} [${branchName}]`);
174
+ log.info(`Worktree is active (has DB session): ${fullPath} [${branchName}]`);
173
175
  continue;
174
176
  }
175
177
  // Check if this worktree belongs to an active focus (persistent worktree)
176
178
  const idPrefix = extractFocusIdPrefix(subdir);
177
179
  if (idPrefix && activeFocusIdPrefixes.has(idPrefix)) {
178
- console.log(`[crash-recovery] Worktree belongs to active focus (persistent): ${fullPath} [${branchName}]`);
180
+ log.info(`Worktree belongs to active focus (persistent): ${fullPath} [${branchName}]`);
179
181
  continue;
180
182
  }
181
183
  // No active session and no active focus — orphaned
@@ -216,11 +218,11 @@ function cleanupSingleOrphan(orphan, config, deps) {
216
218
  let safetyCommitFailed = false;
217
219
  if (existsSync(worktreePath) && worktreeHasUncommittedChanges(worktreePath)) {
218
220
  const deliveryName = branchName.split('/').slice(2).join('/') || 'unknown';
219
- console.log(`[crash-recovery] Safety-committing dirty worktree: ${worktreePath}`);
221
+ log.info(`Safety-committing dirty worktree: ${worktreePath}`);
220
222
  const hash = safetyCommitWorktree(worktreePath, deliveryName);
221
223
  if (hash) {
222
224
  commitHash = hash.trim();
223
- console.log(`[crash-recovery] Safety commit created: ${commitHash.slice(0, 8)} on ${branchName}`);
225
+ log.info(`Safety commit created: ${commitHash.slice(0, 8)} on ${branchName}`);
224
226
  }
225
227
  else {
226
228
  // The work is dirty AND uncommittable: it is not on any ref. Removing the
@@ -228,14 +230,14 @@ function cleanupSingleOrphan(orphan, config, deps) {
228
230
  // unrecoverable corner (handled by the caller -- escalate only if the
229
231
  // focus also cannot be anchored).
230
232
  safetyCommitFailed = true;
231
- console.warn(`[crash-recovery] Safety commit failed for ${worktreePath}, preserving worktree as-is`);
233
+ log.warn(`Safety commit failed for ${worktreePath}, preserving worktree as-is`);
232
234
  }
233
235
  }
234
236
  // Step 2: Check if branch is already merged to integration
235
237
  const hasUnmerged = branchHasUnmergedCommits(branchName, integrationBranch, repoPath);
236
238
  if (!hasUnmerged) {
237
239
  // Fully merged — safe to remove (UNCHANGED behavior: worktree + branch both go)
238
- console.log(`[crash-recovery] Removing merged orphan: ${worktreePath} [${branchName}]`);
240
+ log.info(`Removing merged orphan: ${worktreePath} [${branchName}]`);
239
241
  removeWorktree(repoPath, worktreePath, {
240
242
  branchName,
241
243
  integrationBranch,
@@ -244,7 +246,7 @@ function cleanupSingleOrphan(orphan, config, deps) {
244
246
  // Also delete the branch since it's merged
245
247
  const deleteResult = runGitSync(['branch', '-d', branchName], repoPath);
246
248
  if (deleteResult.success) {
247
- console.log(`[crash-recovery] Deleted merged branch: ${branchName}`);
249
+ log.info(`Deleted merged branch: ${branchName}`);
248
250
  }
249
251
  return {
250
252
  worktreePath,
@@ -262,7 +264,7 @@ function cleanupSingleOrphan(orphan, config, deps) {
262
264
  // would lose the work) and the branch; the caller decides whether to escalate
263
265
  // based on whether the focus can be anchored.
264
266
  if (safetyCommitFailed) {
265
- console.warn(`[crash-recovery] Preserving worktree + branch (uncommitted work could not be captured): ${worktreePath} [${branchName}]`);
267
+ log.warn(`[crash-recovery] Preserving worktree + branch (uncommitted work could not be captured): ${worktreePath} [${branchName}]`);
266
268
  return {
267
269
  worktreePath,
268
270
  branchName,
@@ -279,10 +281,10 @@ function cleanupSingleOrphan(orphan, config, deps) {
279
281
  // DROP THE WORKTREE DIRECTORY (no disk detritus). removeWorktreeDir does a
280
282
  // `git worktree remove --force` + prune, leaving the branch ref intact --
281
283
  // bypassing removeWorktree's unmerged-commit guard since we keep the branch.
282
- console.log(`[crash-recovery] Preserving branch + dropping worktree for orphan with ${unmergedCount} unmerged commit(s): ${worktreePath} [${branchName}]`);
284
+ log.info(`[crash-recovery] Preserving branch + dropping worktree for orphan with ${unmergedCount} unmerged commit(s): ${worktreePath} [${branchName}]`);
283
285
  const worktreeRemoved = deps.removeWorktreeDir(repoPath, worktreePath);
284
286
  if (!worktreeRemoved) {
285
- console.warn(`[crash-recovery] Failed to remove worktree dir (branch ${branchName} still preserved): ${worktreePath}`);
287
+ log.warn(`[crash-recovery] Failed to remove worktree dir (branch ${branchName} still preserved): ${worktreePath}`);
286
288
  }
287
289
  return {
288
290
  worktreePath,
@@ -311,10 +313,10 @@ export async function cleanupOrphanedWorktrees(orphans, config, deps = defaultDe
311
313
  exit_category: 'recovery_cleanup',
312
314
  ended_at: new Date().toISOString(),
313
315
  });
314
- console.log(`[crash-recovery] Marked session ${orphan.session.id} as failed (crash recovery)`);
316
+ log.info(`Marked session ${orphan.session.id} as failed (crash recovery)`);
315
317
  }
316
318
  catch (err) {
317
- console.warn(`[crash-recovery] Failed to update session ${orphan.session.id}: ${err instanceof Error ? err.message : String(err)}`);
319
+ log.warn(`[crash-recovery] Failed to update session ${orphan.session.id}: ${err instanceof Error ? err.message : String(err)}`);
318
320
  }
319
321
  }
320
322
  }
@@ -325,7 +327,7 @@ export async function cleanupOrphanedWorktrees(orphans, config, deps = defaultDe
325
327
  actions.push(action);
326
328
  }
327
329
  catch (err) {
328
- console.error(`[crash-recovery] Error cleaning up orphan ${orphan.worktreePath}: ${err instanceof Error ? err.message : String(err)}`);
330
+ log.error(`[crash-recovery] Error cleaning up orphan ${orphan.worktreePath}: ${err instanceof Error ? err.message : String(err)}`);
329
331
  }
330
332
  }
331
333
  // Resolve the owning focus from each preserved orphan's branch focus-key, so
@@ -353,7 +355,7 @@ export async function cleanupOrphanedWorktrees(orphans, config, deps = defaultDe
353
355
  ? `focus-key ${a.focusKey}`
354
356
  : 'focus unresolved';
355
357
  const worktreeNote = a.worktreeRemoved ? 'worktree dropped' : 'worktree kept';
356
- console.log(`[crash-recovery] Housekeeping: preserved branch ${a.branchName} ` +
358
+ log.info(`[crash-recovery] Housekeeping: preserved branch ${a.branchName} ` +
357
359
  `(${worktreeNote}; ${focusRef}` +
358
360
  (a.unmergedCommitCount ? `; ${a.unmergedCommitCount} unmerged commit(s)` : '') +
359
361
  (a.commitHash ? `; safety commit ${a.commitHash.slice(0, 8)}` : '') +
@@ -363,7 +365,7 @@ export async function cleanupOrphanedWorktrees(orphans, config, deps = defaultDe
363
365
  // clean "worktree dropped" outcome -- surface it distinctly at WARN so the
364
366
  // leftover dir is visible; recoverFromCrash also lifts it into the summary.
365
367
  if (!a.worktreeRemoved) {
366
- console.warn(`[crash-recovery] Worktree dir could NOT be removed for preserved branch ` +
368
+ log.warn(`[crash-recovery] Worktree dir could NOT be removed for preserved branch ` +
367
369
  `${a.branchName}; leftover dir remains on disk (manual prune may be needed): ${a.worktreePath}`);
368
370
  }
369
371
  }
@@ -405,10 +407,10 @@ export async function cleanupOrphanedWorktrees(orphans, config, deps = defaultDe
405
407
  whatWasTried: 'Daemon crash recovery preserved the worktree; the uncommitted work could not be captured on a branch and the focus could not be resolved from the branch name.',
406
408
  helpNeeded: 'Inspect the preserved worktree and recover or discard the uncommitted work.',
407
409
  });
408
- console.log(`[crash-recovery] Created escalation for ${unrecoverable.length} unrecoverable orphan(s)`);
410
+ log.info(`Created escalation for ${unrecoverable.length} unrecoverable orphan(s)`);
409
411
  }
410
412
  catch (err) {
411
- console.warn(`[crash-recovery] Failed to create escalation: ${err instanceof Error ? err.message : String(err)}`);
413
+ log.warn(`[crash-recovery] Failed to create escalation: ${err instanceof Error ? err.message : String(err)}`);
412
414
  }
413
415
  }
414
416
  return actions;
@@ -441,7 +443,7 @@ export function pruneStaleAgentBranches(config) {
441
443
  const pruned = [];
442
444
  const preserved = [];
443
445
  if (branches.length === 0) {
444
- console.log('[crash-recovery] No stale agent branches found');
446
+ log.info('No stale agent branches found');
445
447
  return { pruned, preserved };
446
448
  }
447
449
  // Get set of branches that have active worktrees
@@ -454,7 +456,7 @@ export function pruneStaleAgentBranches(config) {
454
456
  // Check for unmerged commits
455
457
  if (branchHasUnmergedCommits(branch, integrationBranch, repoPath)) {
456
458
  const focusKey = extractFocusKeyFromBranch(branch);
457
- console.log(`[crash-recovery] Housekeeping: preserving stale branch with unmerged commits: ${branch}` +
459
+ log.info(`[crash-recovery] Housekeeping: preserving stale branch with unmerged commits: ${branch}` +
458
460
  (focusKey ? ` (focus-key ${focusKey})` : ''));
459
461
  preserved.push(branch);
460
462
  continue;
@@ -462,14 +464,14 @@ export function pruneStaleAgentBranches(config) {
462
464
  // Safe to delete
463
465
  const deleteResult = runGitSync(['branch', '-D', branch], repoPath);
464
466
  if (deleteResult.success) {
465
- console.log(`[crash-recovery] Pruned stale branch: ${branch}`);
467
+ log.info(`Pruned stale branch: ${branch}`);
466
468
  pruned.push(branch);
467
469
  }
468
470
  else {
469
- console.warn(`[crash-recovery] Failed to prune branch ${branch}: ${deleteResult.error}`);
471
+ log.warn(`Failed to prune branch ${branch}: ${deleteResult.error}`);
470
472
  }
471
473
  }
472
- console.log(`[crash-recovery] Branch pruning: ${pruned.length} pruned, ${preserved.length} preserved with unmerged work`);
474
+ log.info(`[crash-recovery] Branch pruning: ${pruned.length} pruned, ${preserved.length} preserved with unmerged work`);
473
475
  return { pruned, preserved };
474
476
  }
475
477
  // ── Main recovery orchestrator ───────────────────────────────────
@@ -480,7 +482,7 @@ export function pruneStaleAgentBranches(config) {
480
482
  * with no new crashes finds nothing to clean.
481
483
  */
482
484
  export async function recoverFromCrash(config, deps = defaultDeps) {
483
- console.log('[crash-recovery] Starting crash recovery scan...');
485
+ log.info('Starting crash recovery scan...');
484
486
  const result = {
485
487
  orphansDetected: 0,
486
488
  orphansCleaned: 0,
@@ -498,15 +500,15 @@ export async function recoverFromCrash(config, deps = defaultDeps) {
498
500
  }
499
501
  catch (err) {
500
502
  const msg = `Failed to detect orphaned worktrees: ${err instanceof Error ? err.message : String(err)}`;
501
- console.error(`[crash-recovery] ${msg}`);
503
+ log.error(`${msg}`);
502
504
  result.errors.push(msg);
503
505
  orphans = [];
504
506
  }
505
507
  if (orphans.length === 0) {
506
- console.log('[crash-recovery] No orphaned worktrees found');
508
+ log.info('No orphaned worktrees found');
507
509
  }
508
510
  else {
509
- console.log(`[crash-recovery] Found ${orphans.length} orphaned worktree(s)`);
511
+ log.info(`Found ${orphans.length} orphaned worktree(s)`);
510
512
  }
511
513
  // Step 2: Clean up orphans
512
514
  if (orphans.length > 0) {
@@ -525,7 +527,7 @@ export async function recoverFromCrash(config, deps = defaultDeps) {
525
527
  }
526
528
  catch (err) {
527
529
  const msg = `Failed during orphan cleanup: ${err instanceof Error ? err.message : String(err)}`;
528
- console.error(`[crash-recovery] ${msg}`);
530
+ log.error(`${msg}`);
529
531
  result.errors.push(msg);
530
532
  }
531
533
  }
@@ -537,7 +539,7 @@ export async function recoverFromCrash(config, deps = defaultDeps) {
537
539
  }
538
540
  catch (err) {
539
541
  const msg = `Failed during branch pruning: ${err instanceof Error ? err.message : String(err)}`;
540
- console.error(`[crash-recovery] ${msg}`);
542
+ log.error(`${msg}`);
541
543
  result.errors.push(msg);
542
544
  }
543
545
  // Step 4: Mark any remaining active sessions as failed (DB-driven reconciliation)
@@ -551,7 +553,7 @@ export async function recoverFromCrash(config, deps = defaultDeps) {
551
553
  .map(o => o.session.id));
552
554
  const remainingSessions = activeSessions.filter(s => !alreadyHandledSessionIds.has(s.id));
553
555
  if (remainingSessions.length > 0) {
554
- console.log(`[crash-recovery] Found ${remainingSessions.length} orphaned session(s) without worktrees, marking as failed`);
556
+ log.info(`Found ${remainingSessions.length} orphaned session(s) without worktrees, marking as failed`);
555
557
  const sessionResults = await Promise.allSettled(remainingSessions.map(session => deps.updateSession(session.id, {
556
558
  status: 'failed',
557
559
  exit_reason: 'Daemon crash recovery: session was active when daemon restarted',
@@ -561,29 +563,29 @@ export async function recoverFromCrash(config, deps = defaultDeps) {
561
563
  const succeeded = sessionResults.filter(r => r.status === 'fulfilled').length;
562
564
  const failed = sessionResults.filter(r => r.status === 'rejected').length;
563
565
  if (failed > 0) {
564
- console.warn(`[crash-recovery] ${failed} session update(s) failed during DB reconciliation`);
566
+ log.warn(`${failed} session update(s) failed during DB reconciliation`);
565
567
  }
566
- console.log(`[crash-recovery] Marked ${succeeded} orphaned session(s) as failed (DB reconciliation)`);
568
+ log.info(`Marked ${succeeded} orphaned session(s) as failed (DB reconciliation)`);
567
569
  }
568
570
  else if (activeSessions.length > 0) {
569
- console.log(`[crash-recovery] All ${activeSessions.length} active session(s) were already handled during worktree cleanup`);
571
+ log.info(`All ${activeSessions.length} active session(s) were already handled during worktree cleanup`);
570
572
  }
571
573
  }
572
574
  catch (err) {
573
575
  const msg = `Failed during DB session reconciliation: ${err instanceof Error ? err.message : String(err)}`;
574
- console.error(`[crash-recovery] ${msg}`);
576
+ log.error(`${msg}`);
575
577
  result.errors.push(msg);
576
578
  }
577
579
  // Summary. Preserved counts are housekeeping (branch kept, worktree dropped),
578
580
  // not pending human work -- they are logged so the count stays visible.
579
- console.log(`[crash-recovery] Recovery complete: ` +
581
+ log.info(`[crash-recovery] Recovery complete: ` +
580
582
  `${result.orphansDetected} orphan(s) detected, ` +
581
583
  `${result.orphansCleaned} cleaned, ` +
582
584
  `${result.orphansPreserved} branch(es) preserved (housekeeping), ` +
583
585
  `${result.branchesPruned} branch(es) pruned, ` +
584
586
  `${result.branchesPreserved} stale branch(es) preserved (housekeeping)`);
585
587
  if (result.errors.length > 0) {
586
- console.warn(`[crash-recovery] ${result.errors.length} error(s) during recovery (non-fatal)`);
588
+ log.warn(`${result.errors.length} error(s) during recovery (non-fatal)`);
587
589
  }
588
590
  return result;
589
591
  }