@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
package/dist/index.js CHANGED
@@ -31,7 +31,12 @@
31
31
  */
32
32
  import { createRequire } from 'node:module';
33
33
  import { Command } from 'commander';
34
+ import { cliLog } from './log.js';
34
35
  const require = createRequire(import.meta.url);
36
+ // Interactive command feedback: plain console text for the operator
37
+ // terminal, never JSON envelopes (review TEL-5). The daemon process's own
38
+ // modules keep the structured createLogger.
39
+ const log = cliLog;
35
40
  const pkg = require('../package.json');
36
41
  const program = new Command();
37
42
  // Load git commit SHA stamped at publish time (optional, missing in dev)
@@ -40,8 +45,9 @@ try {
40
45
  const buildInfo = require('../build-info.json');
41
46
  commitSha = buildInfo.commitSha || 'unknown';
42
47
  }
43
- catch {
48
+ catch (err) {
44
49
  // build-info.json not present in dev -- only stamped at publish time
50
+ log.debug('build-info.json not present in dev -- only stamped at publish time', { error: String(err?.message ?? err) });
45
51
  }
46
52
  const fullVersion = commitSha !== 'unknown' ? `${pkg.version} (${commitSha})` : pkg.version;
47
53
  import { runUnifiedDaemon } from './unified-shell.js';
@@ -67,7 +73,7 @@ try {
67
73
  process.loadEnvFile?.('.env');
68
74
  }
69
75
  catch (e) {
70
- console.debug('[daemon] .env file not loaded (optional):', e.message);
76
+ log.debug('.env file not loaded (optional):', e.message);
71
77
  }
72
78
  // ---------------------------------------------------------------------------
73
79
  // Main
@@ -85,23 +91,13 @@ async function main() {
85
91
  .option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
86
92
  .option('--dry-run', 'Print configuration and exit')
87
93
  .option('--skip-recovery', 'Skip crash recovery on startup')
88
- .option('--engine <name>', 'Only enable this engine: focus')
89
94
  .option('--no-auto-update', 'Disable automatic self-updating')
90
95
  .action(async (opts) => {
91
- let engineFilter;
92
- if (opts.engine) {
93
- if (opts.engine !== 'focus') {
94
- console.error(`Invalid --engine value: "${opts.engine}". Must be "focus".`);
95
- process.exit(1);
96
- }
97
- engineFilter = opts.engine;
98
- }
99
96
  await runUnifiedDaemon({
100
97
  verbose: opts.verbose,
101
98
  config: opts.config,
102
99
  dryRun: opts.dryRun,
103
100
  skipRecovery: opts.skipRecovery,
104
- engineFilter,
105
101
  noAutoUpdate: opts.autoUpdate === false,
106
102
  });
107
103
  });
@@ -111,7 +107,6 @@ async function main() {
111
107
  .description('Start the daemon (background by default)')
112
108
  .option('-v, --verbose', 'Enable verbose logging')
113
109
  .option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
114
- .option('--engine <name>', 'Only enable this engine: focus')
115
110
  .option('--skip-recovery', 'Skip crash recovery on startup')
116
111
  .option('--no-auto-update', 'Disable automatic self-updating')
117
112
  .option('--foreground', 'Run in foreground instead of background')
@@ -122,12 +117,7 @@ async function main() {
122
117
  // self-update, so the long-running daemon must never start that way.
123
118
  // Overridable via TELORA_ALLOW_NPX_RUN.
124
119
  if (isNpxRunMode()) {
125
- console.error(npxRunRefusalMessage());
126
- process.exit(1);
127
- }
128
- // Validate engine flag
129
- if (opts.engine && opts.engine !== 'focus') {
130
- console.error(`Invalid --engine value: "${opts.engine}". Must be "focus".`);
120
+ log.error(npxRunRefusalMessage());
131
121
  process.exit(1);
132
122
  }
133
123
  // Clean up stale PID file if the process isn't running
@@ -135,8 +125,8 @@ async function main() {
135
125
  // Check if already running
136
126
  const status = getDaemonStatus();
137
127
  if (status.running) {
138
- console.error(`Daemon is already running (PID ${status.pid}).`);
139
- console.error('Use "telora-daemon restart" to restart it.');
128
+ log.error(`Daemon is already running (PID ${status.pid}).`);
129
+ log.error('Use "telora-daemon restart" to restart it.');
140
130
  process.exit(1);
141
131
  }
142
132
  // Auto-rebuild: explicit --rebuild flag or automatic stale detection
@@ -152,7 +142,6 @@ async function main() {
152
142
  verbose: opts.verbose,
153
143
  config: opts.config,
154
144
  skipRecovery: opts.skipRecovery,
155
- engineFilter: opts.engine,
156
145
  noAutoUpdate: opts.autoUpdate === false,
157
146
  });
158
147
  }
@@ -161,21 +150,20 @@ async function main() {
161
150
  const childPid = startDaemonBackground({
162
151
  config: opts.config,
163
152
  verbose: opts.verbose,
164
- engine: opts.engine,
165
153
  skipRecovery: opts.skipRecovery,
166
154
  noAutoUpdate: opts.autoUpdate === false,
167
155
  });
168
156
  const logPath = resolveDaemonLogPath();
169
- console.log(`Daemon started (PID ${childPid})`);
170
- console.log(`Log file: ${logPath}`);
157
+ log.info(`Daemon started (PID ${childPid})`);
158
+ log.info(`Log file: ${logPath}`);
171
159
  // Wait for the daemon to confirm healthy
172
160
  const healthy = await waitForHealthy(5_000);
173
161
  if (healthy) {
174
- console.log('Daemon is healthy.');
162
+ log.info('Daemon is healthy.');
175
163
  }
176
164
  else {
177
- console.warn('Warning: daemon may not have started successfully.');
178
- console.warn('Check logs: telora-daemon logs');
165
+ log.warn('Warning: daemon may not have started successfully.');
166
+ log.warn('Check logs: telora-daemon logs');
179
167
  }
180
168
  }
181
169
  });
@@ -189,7 +177,7 @@ async function main() {
189
177
  .action(async (opts) => {
190
178
  const status = getDaemonStatus();
191
179
  if (!status.running || status.pid === null) {
192
- console.log('Daemon is not running.');
180
+ log.info('Daemon is not running.');
193
181
  process.exit(0);
194
182
  }
195
183
  // Default: drain-to-idle. Leave a `drain` stop-request, signal the daemon,
@@ -203,37 +191,37 @@ async function main() {
203
191
  process.kill(status.pid, 'SIGTERM');
204
192
  }
205
193
  catch {
206
- console.log('Daemon is not running.');
194
+ log.info('Daemon is not running.');
207
195
  process.exit(0);
208
196
  }
209
- console.log(`Drain-to-idle stop requested (PID ${status.pid}).`);
210
- console.log('The daemon stops at the next zero-team boundary; no new teams spawn meanwhile.');
211
- console.log('Watch: telora-daemon logs --follow');
212
- console.log('Force now: telora-daemon stop --now (or telora-daemon stop --force to hard-kill)');
197
+ log.info(`Drain-to-idle stop requested (PID ${status.pid}).`);
198
+ log.info('The daemon stops at the next zero-team boundary; no new teams spawn meanwhile.');
199
+ log.info('Watch: telora-daemon logs --follow');
200
+ log.info('Force now: telora-daemon stop --now (or telora-daemon stop --force to hard-kill)');
213
201
  process.exit(0);
214
202
  }
215
203
  // --now: immediate teardown (today's behavior).
216
204
  writeStopRequest('now');
217
205
  const timeoutMs = parseInt(opts.timeout, 10);
218
- console.log(`Stopping daemon now (PID ${status.pid})...`);
206
+ log.info(`Stopping daemon now (PID ${status.pid})...`);
219
207
  try {
220
208
  const stopped = await stopDaemon(timeoutMs);
221
209
  if (stopped) {
222
- console.log('Daemon stopped.');
210
+ log.info('Daemon stopped.');
223
211
  }
224
212
  else {
225
- console.log('Daemon is not running.');
213
+ log.info('Daemon is not running.');
226
214
  }
227
215
  }
228
216
  catch (err) {
229
217
  if (opts.force && status.pid !== null) {
230
- console.warn(`Graceful shutdown timed out. Sending SIGKILL to PID ${status.pid}...`);
218
+ log.warn(`Graceful shutdown timed out. Sending SIGKILL to PID ${status.pid}...`);
231
219
  try {
232
220
  process.kill(status.pid, 'SIGKILL');
233
- console.log('Daemon killed.');
221
+ log.info('Daemon killed.');
234
222
  }
235
223
  catch {
236
- console.error('Failed to kill daemon process.');
224
+ log.error('Failed to kill daemon process.');
237
225
  process.exit(1);
238
226
  }
239
227
  // The daemon was SIGKILLed without running its graceful reap, so its
@@ -242,15 +230,15 @@ async function main() {
242
230
  try {
243
231
  const reaped = reapAndClearWorkerPidfile();
244
232
  if (reaped.reaped.length > 0) {
245
- console.log(`Reaped ${reaped.reaped.length} orphaned team lead(s): ${reaped.reaped.join(', ')}`);
233
+ log.info(`Reaped ${reaped.reaped.length} orphaned team lead(s): ${reaped.reaped.join(', ')}`);
246
234
  }
247
235
  }
248
236
  catch (reapErr) {
249
- console.warn(`Team-lead reap failed: ${reapErr instanceof Error ? reapErr.message : String(reapErr)}`);
237
+ log.warn(`Team-lead reap failed: ${reapErr instanceof Error ? reapErr.message : String(reapErr)}`);
250
238
  }
251
239
  }
252
240
  else {
253
- console.error(err instanceof Error ? err.message : String(err));
241
+ log.error(err instanceof Error ? err.message : String(err));
254
242
  process.exit(1);
255
243
  }
256
244
  }
@@ -261,7 +249,6 @@ async function main() {
261
249
  .description('Restart the daemon (stop then start)')
262
250
  .option('-v, --verbose', 'Enable verbose logging')
263
251
  .option('-c, --config <path>', 'Path to config file (default: .telora/daemon.json)')
264
- .option('--engine <name>', 'Only enable this engine: focus')
265
252
  .option('--skip-recovery', 'Skip crash recovery on startup')
266
253
  .option('--no-auto-update', 'Disable automatic self-updating')
267
254
  .option('--foreground', 'Run in foreground instead of background')
@@ -269,11 +256,6 @@ async function main() {
269
256
  .option('--timeout <ms>', 'Stop timeout in milliseconds', '30000')
270
257
  .option('--now', 'Stop immediately instead of draining to a zero-team boundary before restart')
271
258
  .action(async (opts) => {
272
- // Validate engine flag
273
- if (opts.engine && opts.engine !== 'focus') {
274
- console.error(`Invalid --engine value: "${opts.engine}". Must be "focus".`);
275
- process.exit(1);
276
- }
277
259
  const status = getDaemonStatus();
278
260
  const timeoutMs = parseInt(opts.timeout, 10);
279
261
  if (status.running && status.pid !== null) {
@@ -283,20 +265,20 @@ async function main() {
283
265
  // kill it -- we tell the operator it is draining in the background and
284
266
  // to re-run start once it is down (or restart --now to force).
285
267
  writeStopRequest(opts.now ? 'now' : 'drain');
286
- console.log(opts.now
268
+ log.info(opts.now
287
269
  ? `Stopping daemon now (PID ${status.pid})...`
288
270
  : `Draining daemon to a zero-team boundary before restart (PID ${status.pid}); waiting up to ${Math.round(timeoutMs / 1000)}s...`);
289
271
  try {
290
272
  await stopDaemon(timeoutMs);
291
- console.log('Daemon stopped.');
273
+ log.info('Daemon stopped.');
292
274
  }
293
275
  catch (err) {
294
276
  if (!opts.now) {
295
- console.log('Daemon is still draining the current batch; it will stop at the next zero-team boundary.');
296
- console.log('The new version starts once it is down -- re-run `telora-daemon start`, or `telora-daemon restart --now` to force.');
277
+ log.info('Daemon is still draining the current batch; it will stop at the next zero-team boundary.');
278
+ log.info('The new version starts once it is down -- re-run `telora-daemon start`, or `telora-daemon restart --now` to force.');
297
279
  process.exit(0);
298
280
  }
299
- console.error(err instanceof Error ? err.message : String(err));
281
+ log.error(err instanceof Error ? err.message : String(err));
300
282
  process.exit(1);
301
283
  }
302
284
  }
@@ -309,7 +291,6 @@ async function main() {
309
291
  verbose: opts.verbose,
310
292
  config: opts.config,
311
293
  skipRecovery: opts.skipRecovery,
312
- engineFilter: opts.engine,
313
294
  noAutoUpdate: opts.autoUpdate === false,
314
295
  });
315
296
  }
@@ -317,21 +298,20 @@ async function main() {
317
298
  const childPid = startDaemonBackground({
318
299
  config: opts.config,
319
300
  verbose: opts.verbose,
320
- engine: opts.engine,
321
301
  skipRecovery: opts.skipRecovery,
322
302
  noAutoUpdate: opts.autoUpdate === false,
323
303
  });
324
304
  const logPath = resolveDaemonLogPath();
325
- console.log(`Daemon started (PID ${childPid})`);
326
- console.log(`Log file: ${logPath}`);
305
+ log.info(`Daemon started (PID ${childPid})`);
306
+ log.info(`Log file: ${logPath}`);
327
307
  // Wait for the daemon to confirm healthy
328
308
  const healthy = await waitForHealthy(5_000);
329
309
  if (healthy) {
330
- console.log('Daemon is healthy.');
310
+ log.info('Daemon is healthy.');
331
311
  }
332
312
  else {
333
- console.warn('Warning: daemon may not have started successfully.');
334
- console.warn('Check logs: telora-daemon logs');
313
+ log.warn('Warning: daemon may not have started successfully.');
314
+ log.warn('Check logs: telora-daemon logs');
335
315
  }
336
316
  }
337
317
  });
@@ -344,19 +324,19 @@ async function main() {
344
324
  if (!status.running || status.pid === null) {
345
325
  // Check for stale PID file
346
326
  cleanStalePidFile();
347
- console.log('Status: stopped');
327
+ log.info('Status: stopped');
348
328
  process.exit(1);
349
329
  }
350
330
  // Report basic info directly
351
- console.log('Status: running');
352
- console.log(`PID: ${status.pid}`);
331
+ log.info('Status: running');
332
+ log.info(`PID: ${status.pid}`);
353
333
  // Compute uptime from daemon metadata (portable) or /proc fallback (Linux)
354
334
  if (status.startedAt) {
355
335
  const uptimeSec = Math.floor((Date.now() - new Date(status.startedAt).getTime()) / 1000);
356
336
  const hours = Math.floor(uptimeSec / 3600);
357
337
  const mins = Math.floor((uptimeSec % 3600) / 60);
358
- console.log(`Uptime: ${hours}h ${mins}m`);
359
- console.log(`Started: ${status.startedAt}`);
338
+ log.info(`Uptime: ${hours}h ${mins}m`);
339
+ log.info(`Started: ${status.startedAt}`);
360
340
  }
361
341
  else {
362
342
  // Fallback: read from /proc if available (Linux)
@@ -375,16 +355,17 @@ async function main() {
375
355
  const uptimeSec = Math.floor(Date.now() / 1000 - startSec);
376
356
  const hours = Math.floor(uptimeSec / 3600);
377
357
  const mins = Math.floor((uptimeSec % 3600) / 60);
378
- console.log(`Uptime: ${hours}h ${mins}m`);
358
+ log.info(`Uptime: ${hours}h ${mins}m`);
379
359
  }
380
360
  }
381
- catch {
361
+ catch (err) {
382
362
  // Not on Linux or can't read /proc
363
+ log.debug('Not on Linux or can\'t read /proc', { error: String(err?.message ?? err) });
383
364
  }
384
365
  }
385
366
  const logPath = status.logPath ?? resolveDaemonLogPath();
386
- console.log(`Log file: ${logPath}`);
387
- console.log(`Version: v${pkg.version}`);
367
+ log.info(`Log file: ${logPath}`);
368
+ log.info(`Version: v${pkg.version}`);
388
369
  // Per-product verification posture (configured / declined / unconfigured)
389
370
  // so an operator sees how deliveries are gated straight from `status`.
390
371
  // Derived from config; best-effort so a config-load hiccup never breaks
@@ -393,13 +374,14 @@ async function main() {
393
374
  const cfg = loadUnifiedConfig();
394
375
  const postureLines = formatVerificationPostureLines(cfg);
395
376
  if (postureLines.length > 0) {
396
- console.log('');
377
+ log.info('');
397
378
  for (const line of postureLines)
398
- console.log(line);
379
+ log.info(line);
399
380
  }
400
381
  }
401
- catch {
382
+ catch (err) {
402
383
  // Non-fatal: skip posture when config cannot be loaded.
384
+ log.debug('Non-fatal: skip posture when config cannot be loaded', { error: String(err?.message ?? err) });
403
385
  }
404
386
  // Staleness signal: warn when the RUNNING daemon (version stamped into
405
387
  // daemon.meta.json at its startup -- possibly a different install than
@@ -407,14 +389,15 @@ async function main() {
407
389
  // date or when the check cannot be established.
408
390
  const stalenessWarning = formatStalenessWarning(await getStalenessInfo());
409
391
  if (stalenessWarning)
410
- console.log(stalenessWarning);
392
+ log.info(stalenessWarning);
411
393
  // Also send SIGUSR1 for detailed engine status
412
394
  try {
413
395
  process.kill(status.pid, 'SIGUSR1');
414
- console.log('\nDetailed status written to daemon log.');
396
+ log.info('\nDetailed status written to daemon log.');
415
397
  }
416
- catch {
398
+ catch (err) {
417
399
  // Best effort
400
+ log.debug('Best effort', { error: String(err?.message ?? err) });
418
401
  }
419
402
  });
420
403
  // ── verify-live: earned-green readiness gate (liveness + claim) ───────
@@ -430,20 +413,20 @@ async function main() {
430
413
  .action(async (opts) => {
431
414
  const readiness = gatherDaemonReadiness();
432
415
  if (readiness.ready) {
433
- console.log('Daemon is live and has claimed at least one product.');
416
+ log.info('Daemon is live and has claimed at least one product.');
434
417
  process.exit(0);
435
418
  }
436
419
  if (readiness.cause === 'not-running') {
437
- console.error('Daemon readiness: FAILED -- the daemon is not running.');
420
+ log.error('Daemon readiness: FAILED -- the daemon is not running.');
438
421
  }
439
422
  else {
440
- console.error('Daemon readiness: FAILED -- the daemon is running but has not claimed any product ' +
423
+ log.error('Daemon readiness: FAILED -- the daemon is running but has not claimed any product ' +
441
424
  '(no "[claim] Product <id> claimed by <host>" line in the log).');
442
425
  }
443
426
  // Print a tail of the canonical log so the cause is visible in-line.
444
427
  const logPath = resolveDaemonLogPath();
445
428
  const lineCount = parseInt(opts.lines, 10);
446
- console.error(`--- last ${lineCount} line(s) of ${logPath} ---`);
429
+ log.error(`--- last ${lineCount} line(s) of ${logPath} ---`);
447
430
  await tailFile(logPath, lineCount);
448
431
  process.exit(1);
449
432
  });
@@ -502,7 +485,7 @@ async function main() {
502
485
  let harness;
503
486
  if (opts.harness !== undefined) {
504
487
  if (!isOperatorHarness(opts.harness)) {
505
- console.error(`Invalid --harness '${opts.harness}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
488
+ log.error(`Invalid --harness '${opts.harness}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
506
489
  process.exit(1);
507
490
  }
508
491
  harness = opts.harness;
@@ -517,7 +500,7 @@ async function main() {
517
500
  });
518
501
  }
519
502
  catch (err) {
520
- console.error(`init --non-interactive: ${err instanceof Error ? err.message : String(err)}`);
503
+ log.error(`init --non-interactive: ${err instanceof Error ? err.message : String(err)}`);
521
504
  process.exit(1);
522
505
  }
523
506
  });
@@ -547,7 +530,7 @@ async function main() {
547
530
  await runBackfillFrtProse({ productId: opts.product, dryRun: opts.dryRun === true });
548
531
  }
549
532
  catch (err) {
550
- console.error(err instanceof Error ? err.message : String(err));
533
+ log.error(err instanceof Error ? err.message : String(err));
551
534
  process.exit(1);
552
535
  }
553
536
  });
@@ -561,7 +544,7 @@ async function main() {
561
544
  await runVerifySetupCommand({ config: opts.config });
562
545
  }
563
546
  catch (err) {
564
- console.error(err instanceof Error ? err.message : String(err));
547
+ log.error(err instanceof Error ? err.message : String(err));
565
548
  process.exit(1);
566
549
  }
567
550
  });
@@ -576,7 +559,7 @@ async function main() {
576
559
  .action(async (token, opts) => {
577
560
  try {
578
561
  if (opts.harness !== undefined && !isOperatorHarness(opts.harness)) {
579
- console.error(`Invalid --harness '${opts.harness}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
562
+ log.error(`Invalid --harness '${opts.harness}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
580
563
  process.exit(1);
581
564
  }
582
565
  await runConnect({
@@ -588,7 +571,7 @@ async function main() {
588
571
  });
589
572
  }
590
573
  catch (err) {
591
- console.error(err instanceof Error ? err.message : String(err));
574
+ log.error(err instanceof Error ? err.message : String(err));
592
575
  process.exit(1);
593
576
  }
594
577
  });
@@ -610,7 +593,7 @@ async function main() {
610
593
  process.exit(code);
611
594
  }
612
595
  catch (err) {
613
- console.error(err instanceof Error ? err.message : String(err));
596
+ log.error(err instanceof Error ? err.message : String(err));
614
597
  process.exit(1);
615
598
  }
616
599
  });
@@ -627,15 +610,15 @@ async function main() {
627
610
  .option('-C, --repo <path>', 'Repo path to scaffold (default: cwd)')
628
611
  .action((target, opts) => {
629
612
  if (!isOperatorHarness(target)) {
630
- console.error(`Invalid harness target '${target}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
613
+ log.error(`Invalid harness target '${target}'. Expected one of: ${OPERATOR_HARNESSES.join(', ')}.`);
631
614
  process.exit(1);
632
615
  }
633
616
  const result = runHarnessAdd({ target, repoPath: opts.repo });
634
617
  if (result.ok) {
635
- console.log(result.message);
618
+ log.info(result.message);
636
619
  }
637
620
  else {
638
- console.error(result.message);
621
+ log.error(result.message);
639
622
  process.exit(1);
640
623
  }
641
624
  });
@@ -651,18 +634,18 @@ async function main() {
651
634
  // Show current install mode and version
652
635
  const mode = detectInstallMode();
653
636
  const info = await getVersionInfo();
654
- console.log(`Install mode: ${mode}`);
655
- console.log(`Current version: v${info.current}`);
637
+ log.info(`Install mode: ${mode}`);
638
+ log.info(`Current version: v${info.current}`);
656
639
  if (!info.updateAvailable || !info.latest) {
657
640
  if (info.latest === null) {
658
- console.log('Could not check for updates.');
641
+ log.info('Could not check for updates.');
659
642
  }
660
643
  else {
661
- console.log('Already up to date.');
644
+ log.info('Already up to date.');
662
645
  }
663
646
  process.exit(0);
664
647
  }
665
- console.log(`Update available: v${info.latest}`);
648
+ log.info(`Update available: v${info.latest}`);
666
649
  if (opts.checkOnly) {
667
650
  process.exit(0);
668
651
  }
@@ -673,20 +656,20 @@ async function main() {
673
656
  // Default: drain-to-idle before replacing files (the update must not
674
657
  // proceed while the daemon is live). --now forces immediate teardown.
675
658
  writeStopRequest(opts.now ? 'now' : 'drain');
676
- console.log(opts.now
659
+ log.info(opts.now
677
660
  ? `Stopping daemon now (PID ${status.pid})...`
678
661
  : `Draining daemon to a zero-team boundary before update (PID ${status.pid})...`);
679
662
  try {
680
663
  await stopDaemon();
681
- console.log('Daemon stopped.');
664
+ log.info('Daemon stopped.');
682
665
  }
683
666
  catch (err) {
684
667
  if (!opts.now) {
685
- console.log('Daemon is still draining the current batch; the update will not proceed until it is down.');
686
- console.log('Re-run `telora-daemon update` once it has stopped, or `telora-daemon update --now` to force.');
668
+ log.info('Daemon is still draining the current batch; the update will not proceed until it is down.');
669
+ log.info('Re-run `telora-daemon update` once it has stopped, or `telora-daemon update --now` to force.');
687
670
  process.exit(0);
688
671
  }
689
- console.error(`Failed to stop daemon: ${err instanceof Error ? err.message : String(err)}`);
672
+ log.error(`Failed to stop daemon: ${err instanceof Error ? err.message : String(err)}`);
690
673
  process.exit(1);
691
674
  }
692
675
  }
@@ -695,48 +678,48 @@ async function main() {
695
678
  skipMigrations: opts.migrations === false,
696
679
  });
697
680
  if (!result.success) {
698
- console.error(`Update failed: ${result.error ?? 'unknown error'}`);
681
+ log.error(`Update failed: ${result.error ?? 'unknown error'}`);
699
682
  if (result.snapshotPath) {
700
- console.log('Attempting automatic rollback...');
683
+ log.info('Attempting automatic rollback...');
701
684
  const rolled = await rollback(result.snapshotPath);
702
685
  if (rolled) {
703
- console.log('Rollback successful.');
686
+ log.info('Rollback successful.');
704
687
  }
705
688
  else {
706
- console.error('Automatic rollback failed.');
707
- console.error(`Manual rollback: telora-daemon rollback ${result.snapshotPath}`);
689
+ log.error('Automatic rollback failed.');
690
+ log.error(`Manual rollback: telora-daemon rollback ${result.snapshotPath}`);
708
691
  }
709
692
  }
710
693
  process.exit(1);
711
694
  }
712
- console.log(`Updated: v${result.previousVersion} -> v${result.newVersion}`);
695
+ log.info(`Updated: v${result.previousVersion} -> v${result.newVersion}`);
713
696
  if (result.migrationsApplied) {
714
- console.log('Migrations applied successfully.');
697
+ log.info('Migrations applied successfully.');
715
698
  }
716
699
  // npx mode: the running binary lives in a cache we just cleared, so we
717
700
  // can't auto-restart. The daemon refuses to run from an npx cache (it
718
701
  // can't self-update), so the path forward is a stable global install --
719
702
  // not another npx re-launch.
720
703
  if (result.requiresManualRestart) {
721
- console.log('');
722
- console.log('npx-cache cleared. Install the daemon globally, then start it:');
723
- console.log(' npm install -g @telora/daemon');
724
- console.log(' telora-daemon run');
704
+ log.info('');
705
+ log.info('npx-cache cleared. Install the daemon globally, then start it:');
706
+ log.info(' npm install -g @telora/daemon');
707
+ log.info(' telora-daemon run');
725
708
  return;
726
709
  }
727
710
  // Restart if requested and was running
728
711
  if (opts.restart !== false && wasRunning) {
729
712
  const childPid = startDaemonBackground({});
730
713
  const logPath = resolveDaemonLogPath();
731
- console.log(`Daemon restarted (PID ${childPid})`);
732
- console.log(`Log file: ${logPath}`);
714
+ log.info(`Daemon restarted (PID ${childPid})`);
715
+ log.info(`Log file: ${logPath}`);
733
716
  const healthy = await waitForHealthy(5_000);
734
717
  if (healthy) {
735
- console.log('Daemon is healthy.');
718
+ log.info('Daemon is healthy.');
736
719
  }
737
720
  else {
738
- console.warn('Warning: daemon may not have started successfully.');
739
- console.warn('Check logs: telora-daemon logs');
721
+ log.warn('Warning: daemon may not have started successfully.');
722
+ log.warn('Check logs: telora-daemon logs');
740
723
  }
741
724
  }
742
725
  });
@@ -745,13 +728,13 @@ async function main() {
745
728
  .command('rollback <snapshot>')
746
729
  .description('Rollback to a previous version from a snapshot file')
747
730
  .action(async (snapshotPath) => {
748
- console.log(`Rolling back from snapshot: ${snapshotPath}`);
731
+ log.info(`Rolling back from snapshot: ${snapshotPath}`);
749
732
  const success = await rollback(snapshotPath);
750
733
  if (success) {
751
- console.log('Rollback complete.');
734
+ log.info('Rollback complete.');
752
735
  }
753
736
  else {
754
- console.error('Rollback failed.');
737
+ log.error('Rollback failed.');
755
738
  process.exit(1);
756
739
  }
757
740
  });
@@ -762,23 +745,23 @@ async function main() {
762
745
  .action(async () => {
763
746
  const mode = detectInstallMode();
764
747
  const info = await getVersionInfo();
765
- console.log(`Install mode: ${mode}`);
766
- console.log(`Current version: v${info.current}`);
748
+ log.info(`Install mode: ${mode}`);
749
+ log.info(`Current version: v${info.current}`);
767
750
  if (info.latest === null) {
768
- console.log('Could not check for updates.');
751
+ log.info('Could not check for updates.');
769
752
  process.exit(0);
770
753
  }
771
754
  if (info.updateAvailable) {
772
- console.log(`Update available: v${info.latest}`);
755
+ log.info(`Update available: v${info.latest}`);
773
756
  if (mode === 'npm') {
774
- console.log('Run: telora-daemon update');
757
+ log.info('Run: telora-daemon update');
775
758
  }
776
759
  else {
777
- console.log('Run: telora-daemon update (will git pull + rebuild)');
760
+ log.info('Run: telora-daemon update (will git pull + rebuild)');
778
761
  }
779
762
  process.exit(1);
780
763
  }
781
- console.log('Already up to date.');
764
+ log.info('Already up to date.');
782
765
  process.exit(0);
783
766
  });
784
767
  // ── Default action: if no subcommand given, show help ─────────────────
@@ -792,7 +775,7 @@ async function main() {
792
775
  }
793
776
  // Run
794
777
  main().catch((err) => {
795
- console.error('Fatal error:', err instanceof Error ? err.message : String(err));
778
+ log.error('Fatal error:', err instanceof Error ? err.message : String(err));
796
779
  process.exit(1);
797
780
  });
798
781
  //# sourceMappingURL=index.js.map