@telora/daemon 0.22.146 → 0.22.169

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 (408) hide show
  1. package/build-info.json +15 -3
  2. package/dist/audit/audit-phase.d.ts +11 -1
  3. package/dist/audit/audit-phase.d.ts.map +1 -1
  4. package/dist/audit/audit-phase.js +2 -14
  5. package/dist/audit/audit-phase.js.map +1 -1
  6. package/dist/audit/audit-prompt.d.ts +7 -4
  7. package/dist/audit/audit-prompt.d.ts.map +1 -1
  8. package/dist/audit/audit-prompt.js +34 -23
  9. package/dist/audit/audit-prompt.js.map +1 -1
  10. package/dist/backends/codex/codex-mcp-proxy.d.ts +4 -6
  11. package/dist/backends/codex/codex-mcp-proxy.d.ts.map +1 -1
  12. package/dist/backends/codex/codex-mcp-proxy.js.map +1 -1
  13. package/dist/backends/codex/mcp-preflight.d.ts +2 -2
  14. package/dist/backends/codex/mcp-preflight.d.ts.map +1 -1
  15. package/dist/backends/codex/mcp-preflight.js.map +1 -1
  16. package/dist/completion/advancement-stall-watchdog.d.ts +12 -0
  17. package/dist/completion/advancement-stall-watchdog.d.ts.map +1 -0
  18. package/dist/completion/advancement-stall-watchdog.js +79 -0
  19. package/dist/completion/advancement-stall-watchdog.js.map +1 -0
  20. package/dist/completion/arm-visible-progress-inputs.d.ts +51 -0
  21. package/dist/completion/arm-visible-progress-inputs.d.ts.map +1 -0
  22. package/dist/completion/arm-visible-progress-inputs.js +19 -0
  23. package/dist/completion/arm-visible-progress-inputs.js.map +1 -0
  24. package/dist/completion/completion-phase-registry.d.ts +1 -0
  25. package/dist/completion/completion-phase-registry.d.ts.map +1 -1
  26. package/dist/completion/completion-phase-registry.js +7 -5
  27. package/dist/completion/completion-phase-registry.js.map +1 -1
  28. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  29. package/dist/completion/delivery-advancement-guard.js +1 -0
  30. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  31. package/dist/completion/escalation-provenance.d.ts.map +1 -1
  32. package/dist/completion/escalation-provenance.js +5 -2
  33. package/dist/completion/escalation-provenance.js.map +1 -1
  34. package/dist/completion/event-entry-phases.d.ts.map +1 -1
  35. package/dist/completion/event-entry-phases.js +9 -2
  36. package/dist/completion/event-entry-phases.js.map +1 -1
  37. package/dist/completion/event-phases.d.ts +15 -8
  38. package/dist/completion/event-phases.d.ts.map +1 -1
  39. package/dist/completion/event-phases.js +26 -64
  40. package/dist/completion/event-phases.js.map +1 -1
  41. package/dist/completion/event.d.ts.map +1 -1
  42. package/dist/completion/event.js +7 -1
  43. package/dist/completion/event.js.map +1 -1
  44. package/dist/completion/exit-classification.d.ts +1 -1
  45. package/dist/completion/exit-classification.d.ts.map +1 -1
  46. package/dist/completion/exit-classification.js +7 -1
  47. package/dist/completion/exit-classification.js.map +1 -1
  48. package/dist/completion/review-cycle-cap.d.ts +81 -35
  49. package/dist/completion/review-cycle-cap.d.ts.map +1 -1
  50. package/dist/completion/review-cycle-cap.js +60 -132
  51. package/dist/completion/review-cycle-cap.js.map +1 -1
  52. package/dist/completion/review-exit-deps.d.ts +3 -1
  53. package/dist/completion/review-exit-deps.d.ts.map +1 -1
  54. package/dist/completion/review-exit-deps.js +3 -1
  55. package/dist/completion/review-exit-deps.js.map +1 -1
  56. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  57. package/dist/completion/review-exit-phase.js +5 -4
  58. package/dist/completion/review-exit-phase.js.map +1 -1
  59. package/dist/completion/shutdown-attribution.d.ts +107 -0
  60. package/dist/completion/shutdown-attribution.d.ts.map +1 -0
  61. package/dist/completion/shutdown-attribution.js +106 -0
  62. package/dist/completion/shutdown-attribution.js.map +1 -0
  63. package/dist/completion/state-cascade.d.ts.map +1 -1
  64. package/dist/completion/state-cascade.js +3 -7
  65. package/dist/completion/state-cascade.js.map +1 -1
  66. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  67. package/dist/completion/team-lifecycle.js +16 -0
  68. package/dist/completion/team-lifecycle.js.map +1 -1
  69. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  70. package/dist/delivery/delivery-lifecycle.js +1 -0
  71. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  72. package/dist/directive/directive-assembly.d.ts +19 -1
  73. package/dist/directive/directive-assembly.d.ts.map +1 -1
  74. package/dist/directive/directive-assembly.js +15 -3
  75. package/dist/directive/directive-assembly.js.map +1 -1
  76. package/dist/directive/directive-dispatch.d.ts +67 -2
  77. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  78. package/dist/directive/directive-dispatch.js +188 -45
  79. package/dist/directive/directive-dispatch.js.map +1 -1
  80. package/dist/directive/directive-executor.d.ts +2 -2
  81. package/dist/directive/directive-executor.d.ts.map +1 -1
  82. package/dist/directive/directive-executor.js +49 -12
  83. package/dist/directive/directive-executor.js.map +1 -1
  84. package/dist/directive/directive-queue.d.ts.map +1 -1
  85. package/dist/directive/directive-queue.js +1 -0
  86. package/dist/directive/directive-queue.js.map +1 -1
  87. package/dist/directive/stage-tracker.d.ts +20 -0
  88. package/dist/directive/stage-tracker.d.ts.map +1 -1
  89. package/dist/directive/stage-tracker.js +29 -1
  90. package/dist/directive/stage-tracker.js.map +1 -1
  91. package/dist/focus/focus-engine.d.ts +16 -0
  92. package/dist/focus/focus-engine.d.ts.map +1 -1
  93. package/dist/focus/focus-engine.js +42 -18
  94. package/dist/focus/focus-engine.js.map +1 -1
  95. package/dist/focus/focus-executor.d.ts.map +1 -1
  96. package/dist/focus/focus-executor.js +21 -3
  97. package/dist/focus/focus-executor.js.map +1 -1
  98. package/dist/focus/focus-phase.d.ts +11 -1
  99. package/dist/focus/focus-phase.d.ts.map +1 -1
  100. package/dist/focus/focus-phase.js +12 -2
  101. package/dist/focus/focus-phase.js.map +1 -1
  102. package/dist/focus/focus-spawn-decision.d.ts +5 -3
  103. package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
  104. package/dist/focus/focus-spawn-decision.js.map +1 -1
  105. package/dist/focus/focus-team-state.js +1 -1
  106. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  107. package/dist/focus/listener-auto-advance.js +1 -0
  108. package/dist/focus/listener-auto-advance.js.map +1 -1
  109. package/dist/focus/listener-spawn.d.ts.map +1 -1
  110. package/dist/focus/listener-spawn.js +37 -13
  111. package/dist/focus/listener-spawn.js.map +1 -1
  112. package/dist/focus/listener.d.ts +15 -0
  113. package/dist/focus/listener.d.ts.map +1 -1
  114. package/dist/focus/listener.js +79 -17
  115. package/dist/focus/listener.js.map +1 -1
  116. package/dist/focus/live-arm-facts.d.ts +10 -0
  117. package/dist/focus/live-arm-facts.d.ts.map +1 -0
  118. package/dist/focus/live-arm-facts.js +47 -0
  119. package/dist/focus/live-arm-facts.js.map +1 -0
  120. package/dist/focus/recorded-new-intent.d.ts +81 -0
  121. package/dist/focus/recorded-new-intent.d.ts.map +1 -0
  122. package/dist/focus/recorded-new-intent.js +147 -0
  123. package/dist/focus/recorded-new-intent.js.map +1 -0
  124. package/dist/focus/review-cycle-cap-hold.d.ts +15 -94
  125. package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -1
  126. package/dist/focus/review-cycle-cap-hold.js +54 -112
  127. package/dist/focus/review-cycle-cap-hold.js.map +1 -1
  128. package/dist/focus/session-health.d.ts +22 -1
  129. package/dist/focus/session-health.d.ts.map +1 -1
  130. package/dist/focus/session-health.js +28 -3
  131. package/dist/focus/session-health.js.map +1 -1
  132. package/dist/focus/session-process-reap.d.ts +3 -1
  133. package/dist/focus/session-process-reap.d.ts.map +1 -1
  134. package/dist/focus/session-process-reap.js +20 -0
  135. package/dist/focus/session-process-reap.js.map +1 -1
  136. package/dist/focus/stage-watermark-seeding.d.ts +39 -0
  137. package/dist/focus/stage-watermark-seeding.d.ts.map +1 -0
  138. package/dist/focus/stage-watermark-seeding.js +60 -0
  139. package/dist/focus/stage-watermark-seeding.js.map +1 -0
  140. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  141. package/dist/focus-stage-lifecycle/index.js +1 -0
  142. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  143. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +29 -1
  144. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  145. package/dist/focus-stage-lifecycle/wedge-watchdog.js +46 -6
  146. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  147. package/dist/git/focus-integration-sync.d.ts +42 -3
  148. package/dist/git/focus-integration-sync.d.ts.map +1 -1
  149. package/dist/git/focus-integration-sync.js +38 -2
  150. package/dist/git/focus-integration-sync.js.map +1 -1
  151. package/dist/merge/abandoned-merge-recovery.d.ts.map +1 -1
  152. package/dist/merge/abandoned-merge-recovery.js +10 -0
  153. package/dist/merge/abandoned-merge-recovery.js.map +1 -1
  154. package/dist/merge/merge-back-loop.d.ts +1 -0
  155. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  156. package/dist/merge/merge-back-loop.js +3 -3
  157. package/dist/merge/merge-back-loop.js.map +1 -1
  158. package/dist/prompt/focus-prompt-builder.d.ts +2 -1
  159. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  160. package/dist/prompt/focus-prompt-builder.js +10 -1
  161. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  162. package/dist/prompt/team-prompt-base.d.ts +2 -1
  163. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  164. package/dist/prompt/team-prompt-base.js +8 -20
  165. package/dist/prompt/team-prompt-base.js.map +1 -1
  166. package/dist/prompt-sections/execution-sections.d.ts +22 -1
  167. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  168. package/dist/prompt-sections/execution-sections.js +23 -2
  169. package/dist/prompt-sections/execution-sections.js.map +1 -1
  170. package/dist/prompt-sections/integration-reconcile-section.d.ts +45 -0
  171. package/dist/prompt-sections/integration-reconcile-section.d.ts.map +1 -0
  172. package/dist/prompt-sections/integration-reconcile-section.js +69 -0
  173. package/dist/prompt-sections/integration-reconcile-section.js.map +1 -0
  174. package/dist/prompt-sections/persona-sections.d.ts +0 -20
  175. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  176. package/dist/prompt-sections/persona-sections.js +4 -49
  177. package/dist/prompt-sections/persona-sections.js.map +1 -1
  178. package/dist/prompt-sections/shared.d.ts +9 -0
  179. package/dist/prompt-sections/shared.d.ts.map +1 -1
  180. package/dist/prompt-sections/shared.js +2 -1
  181. package/dist/prompt-sections/shared.js.map +1 -1
  182. package/dist/prompt-sections/testing-standard.d.ts +51 -0
  183. package/dist/prompt-sections/testing-standard.d.ts.map +1 -0
  184. package/dist/prompt-sections/testing-standard.js +132 -0
  185. package/dist/prompt-sections/testing-standard.js.map +1 -0
  186. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  187. package/dist/queries/agent-resolvable-promotion.js +7 -5
  188. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  189. package/dist/queries/arm-covered-targets.d.ts +84 -0
  190. package/dist/queries/arm-covered-targets.d.ts.map +1 -0
  191. package/dist/queries/arm-covered-targets.js +129 -0
  192. package/dist/queries/arm-covered-targets.js.map +1 -0
  193. package/dist/queries/deliveries.d.ts +3 -0
  194. package/dist/queries/deliveries.d.ts.map +1 -1
  195. package/dist/queries/deliveries.js +10 -3
  196. package/dist/queries/deliveries.js.map +1 -1
  197. package/dist/queries/delivery-gate-state.d.ts +10 -0
  198. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  199. package/dist/queries/delivery-gate-state.js +1 -1
  200. package/dist/queries/delivery-gate-state.js.map +1 -1
  201. package/dist/queries/delivery-write-discipline.d.ts.map +1 -1
  202. package/dist/queries/delivery-write-discipline.js +2 -1
  203. package/dist/queries/delivery-write-discipline.js.map +1 -1
  204. package/dist/queries/directive-undelivered.d.ts +104 -0
  205. package/dist/queries/directive-undelivered.d.ts.map +1 -0
  206. package/dist/queries/directive-undelivered.js +162 -0
  207. package/dist/queries/directive-undelivered.js.map +1 -0
  208. package/dist/queries/ended-arm.d.ts +47 -0
  209. package/dist/queries/ended-arm.d.ts.map +1 -0
  210. package/dist/queries/ended-arm.js +35 -0
  211. package/dist/queries/ended-arm.js.map +1 -0
  212. package/dist/queries/escalation-consumption.d.ts.map +1 -1
  213. package/dist/queries/escalation-consumption.js +0 -1
  214. package/dist/queries/escalation-consumption.js.map +1 -1
  215. package/dist/queries/focus-discovery.d.ts +30 -0
  216. package/dist/queries/focus-discovery.d.ts.map +1 -1
  217. package/dist/queries/focus-discovery.js +4 -0
  218. package/dist/queries/focus-discovery.js.map +1 -1
  219. package/dist/queries/focus-integration-conflict.d.ts +78 -0
  220. package/dist/queries/focus-integration-conflict.d.ts.map +1 -0
  221. package/dist/queries/focus-integration-conflict.js +136 -0
  222. package/dist/queries/focus-integration-conflict.js.map +1 -0
  223. package/dist/queries/focuses.d.ts +6 -3
  224. package/dist/queries/focuses.d.ts.map +1 -1
  225. package/dist/queries/focuses.js +14 -5
  226. package/dist/queries/focuses.js.map +1 -1
  227. package/dist/queries/incident-correlation.d.ts +1 -2
  228. package/dist/queries/incident-correlation.d.ts.map +1 -1
  229. package/dist/queries/incident-correlation.js +1 -3
  230. package/dist/queries/incident-correlation.js.map +1 -1
  231. package/dist/queries/issues.d.ts.map +1 -1
  232. package/dist/queries/issues.js +1 -0
  233. package/dist/queries/issues.js.map +1 -1
  234. package/dist/queries/local-models.js +1 -1
  235. package/dist/queries/local-models.js.map +1 -1
  236. package/dist/queries/recorded-targets-record.d.ts +46 -0
  237. package/dist/queries/recorded-targets-record.d.ts.map +1 -0
  238. package/dist/queries/recorded-targets-record.js +29 -0
  239. package/dist/queries/recorded-targets-record.js.map +1 -0
  240. package/dist/queries/schemas-local-model.d.ts +47 -0
  241. package/dist/queries/schemas-local-model.d.ts.map +1 -0
  242. package/dist/queries/schemas-local-model.js +57 -0
  243. package/dist/queries/schemas-local-model.js.map +1 -0
  244. package/dist/queries/schemas.d.ts +14 -32
  245. package/dist/queries/schemas.d.ts.map +1 -1
  246. package/dist/queries/schemas.js +24 -41
  247. package/dist/queries/schemas.js.map +1 -1
  248. package/dist/queries/sessions.d.ts +120 -12
  249. package/dist/queries/sessions.d.ts.map +1 -1
  250. package/dist/queries/sessions.js +104 -11
  251. package/dist/queries/sessions.js.map +1 -1
  252. package/dist/queries/shared.d.ts +1 -0
  253. package/dist/queries/shared.d.ts.map +1 -1
  254. package/dist/queries/shared.js +1 -1
  255. package/dist/queries/shared.js.map +1 -1
  256. package/dist/queries/system-session.d.ts.map +1 -1
  257. package/dist/queries/system-session.js +3 -1
  258. package/dist/queries/system-session.js.map +1 -1
  259. package/dist/queries/verification.js +1 -1
  260. package/dist/queries/workflows.d.ts.map +1 -1
  261. package/dist/queries/workflows.js +1 -0
  262. package/dist/queries/workflows.js.map +1 -1
  263. package/dist/resolvers/assembly-engine.d.ts +33 -1
  264. package/dist/resolvers/assembly-engine.d.ts.map +1 -1
  265. package/dist/resolvers/assembly-engine.js +74 -23
  266. package/dist/resolvers/assembly-engine.js.map +1 -1
  267. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +23 -3
  268. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -1
  269. package/dist/resolvers/compose/loop-delivery-index-compose.js +90 -43
  270. package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -1
  271. package/dist/resolvers/delivery-listing.d.ts +27 -0
  272. package/dist/resolvers/delivery-listing.d.ts.map +1 -1
  273. package/dist/resolvers/delivery-listing.js +52 -36
  274. package/dist/resolvers/delivery-listing.js.map +1 -1
  275. package/dist/resolvers/loop-delivery-index.d.ts +8 -0
  276. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
  277. package/dist/resolvers/loop-delivery-index.js +68 -7
  278. package/dist/resolvers/loop-delivery-index.js.map +1 -1
  279. package/dist/resolvers/shared/loop.d.ts +7 -0
  280. package/dist/resolvers/shared/loop.d.ts.map +1 -1
  281. package/dist/resolvers/shared/loop.js.map +1 -1
  282. package/dist/resolvers/wiki-topic.d.ts +6 -5
  283. package/dist/resolvers/wiki-topic.d.ts.map +1 -1
  284. package/dist/resolvers/wiki-topic.js +43 -27
  285. package/dist/resolvers/wiki-topic.js.map +1 -1
  286. package/dist/session/session-lineage.d.ts.map +1 -1
  287. package/dist/session/session-lineage.js +1 -0
  288. package/dist/session/session-lineage.js.map +1 -1
  289. package/dist/shell/crash-recovery.d.ts +4 -2
  290. package/dist/shell/crash-recovery.d.ts.map +1 -1
  291. package/dist/shell/crash-recovery.js +15 -14
  292. package/dist/shell/crash-recovery.js.map +1 -1
  293. package/dist/shell/daemon-instance.d.ts +176 -0
  294. package/dist/shell/daemon-instance.d.ts.map +1 -0
  295. package/dist/shell/daemon-instance.js +281 -0
  296. package/dist/shell/daemon-instance.js.map +1 -0
  297. package/dist/shell/graceful-shutdown.d.ts +12 -1
  298. package/dist/shell/graceful-shutdown.d.ts.map +1 -1
  299. package/dist/shell/graceful-shutdown.js +7 -4
  300. package/dist/shell/graceful-shutdown.js.map +1 -1
  301. package/dist/shell/shutdown-ownership.d.ts +34 -0
  302. package/dist/shell/shutdown-ownership.d.ts.map +1 -0
  303. package/dist/shell/shutdown-ownership.js +51 -0
  304. package/dist/shell/shutdown-ownership.js.map +1 -0
  305. package/dist/shell/unified-shell.d.ts.map +1 -1
  306. package/dist/shell/unified-shell.js +12 -5
  307. package/dist/shell/unified-shell.js.map +1 -1
  308. package/dist/shell/worker-pidfile.d.ts +127 -11
  309. package/dist/shell/worker-pidfile.d.ts.map +1 -1
  310. package/dist/shell/worker-pidfile.js +349 -58
  311. package/dist/shell/worker-pidfile.js.map +1 -1
  312. package/dist/spawn/helpers.d.ts.map +1 -1
  313. package/dist/spawn/helpers.js +4 -2
  314. package/dist/spawn/helpers.js.map +1 -1
  315. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  316. package/dist/spawn/lead-continuation.js +8 -2
  317. package/dist/spawn/lead-continuation.js.map +1 -1
  318. package/dist/spawn/lead-launch.d.ts +17 -1
  319. package/dist/spawn/lead-launch.d.ts.map +1 -1
  320. package/dist/spawn/lead-launch.js +56 -7
  321. package/dist/spawn/lead-launch.js.map +1 -1
  322. package/dist/spawn/lead-process-ownership.d.ts +5 -4
  323. package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
  324. package/dist/spawn/lead-process-ownership.js +7 -4
  325. package/dist/spawn/lead-process-ownership.js.map +1 -1
  326. package/dist/spawn/lead-send.d.ts +97 -0
  327. package/dist/spawn/lead-send.d.ts.map +1 -0
  328. package/dist/spawn/lead-send.js +80 -0
  329. package/dist/spawn/lead-send.js.map +1 -0
  330. package/dist/spawn/lifecycle.d.ts +0 -12
  331. package/dist/spawn/lifecycle.d.ts.map +1 -1
  332. package/dist/spawn/lifecycle.js +76 -19
  333. package/dist/spawn/lifecycle.js.map +1 -1
  334. package/dist/spawn/liveness.d.ts.map +1 -1
  335. package/dist/spawn/liveness.js +3 -1
  336. package/dist/spawn/liveness.js.map +1 -1
  337. package/dist/spawn/one-shot-process-ownership.d.ts +46 -2
  338. package/dist/spawn/one-shot-process-ownership.d.ts.map +1 -1
  339. package/dist/spawn/one-shot-process-ownership.js +78 -3
  340. package/dist/spawn/one-shot-process-ownership.js.map +1 -1
  341. package/dist/spawn/process-group-kill.d.ts.map +1 -1
  342. package/dist/spawn/process-group-kill.js +15 -2
  343. package/dist/spawn/process-group-kill.js.map +1 -1
  344. package/dist/spawn/process-spawn.d.ts +5 -15
  345. package/dist/spawn/process-spawn.d.ts.map +1 -1
  346. package/dist/spawn/process-spawn.js +8 -1
  347. package/dist/spawn/process-spawn.js.map +1 -1
  348. package/dist/spawn/prompt-assembly.d.ts +35 -2
  349. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  350. package/dist/spawn/prompt-assembly.js +67 -44
  351. package/dist/spawn/prompt-assembly.js.map +1 -1
  352. package/dist/spawn/spawn-decision.d.ts +25 -1
  353. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  354. package/dist/spawn/spawn-decision.js +19 -3
  355. package/dist/spawn/spawn-decision.js.map +1 -1
  356. package/dist/spawn/worktree-session.d.ts +49 -2
  357. package/dist/spawn/worktree-session.d.ts.map +1 -1
  358. package/dist/spawn/worktree-session.js +59 -5
  359. package/dist/spawn/worktree-session.js.map +1 -1
  360. package/dist/testing/fixtures/conflicting-repo.d.ts +30 -0
  361. package/dist/testing/fixtures/conflicting-repo.d.ts.map +1 -0
  362. package/dist/testing/fixtures/conflicting-repo.js +89 -0
  363. package/dist/testing/fixtures/conflicting-repo.js.map +1 -0
  364. package/dist/testing/fixtures/index.d.ts.map +1 -1
  365. package/dist/testing/fixtures/index.js +2 -1
  366. package/dist/testing/fixtures/index.js.map +1 -1
  367. package/dist/testing/fixtures/pending-spawn-world.js +2 -2
  368. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  369. package/dist/types/exit-category.d.ts +59 -0
  370. package/dist/types/exit-category.d.ts.map +1 -0
  371. package/dist/types/exit-category.js +133 -0
  372. package/dist/types/exit-category.js.map +1 -0
  373. package/dist/types/focus.d.ts +19 -0
  374. package/dist/types/focus.d.ts.map +1 -1
  375. package/dist/types/index.js +1 -1
  376. package/dist/types/session.d.ts +5 -1
  377. package/dist/types/session.d.ts.map +1 -1
  378. package/dist/types/session.js +1 -1
  379. package/dist/types/session.js.map +1 -1
  380. package/dist/verify/injection-stamp.d.ts +30 -0
  381. package/dist/verify/injection-stamp.d.ts.map +1 -1
  382. package/dist/verify/injection-stamp.js +37 -1
  383. package/dist/verify/injection-stamp.js.map +1 -1
  384. package/dist/verify/recorded-targets.d.ts +103 -0
  385. package/dist/verify/recorded-targets.d.ts.map +1 -0
  386. package/dist/verify/recorded-targets.js +159 -0
  387. package/dist/verify/recorded-targets.js.map +1 -0
  388. package/dist/verify/stall-detector-config.d.ts +5 -1
  389. package/dist/verify/stall-detector-config.d.ts.map +1 -1
  390. package/dist/verify/stall-detector-config.js +5 -1
  391. package/dist/verify/stall-detector-config.js.map +1 -1
  392. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  393. package/dist/verify/verification-deps-default.js +15 -2
  394. package/dist/verify/verification-deps-default.js.map +1 -1
  395. package/dist/verify/verification-deps.d.ts +17 -1
  396. package/dist/verify/verification-deps.d.ts.map +1 -1
  397. package/dist/verify/verification-engine.d.ts.map +1 -1
  398. package/dist/verify/verification-engine.js +51 -47
  399. package/dist/verify/verification-engine.js.map +1 -1
  400. package/dist/verify/verify-restatement.d.ts +27 -33
  401. package/dist/verify/verify-restatement.d.ts.map +1 -1
  402. package/dist/verify/verify-restatement.js +74 -1
  403. package/dist/verify/verify-restatement.js.map +1 -1
  404. package/dist/worktree/state.d.ts +75 -1
  405. package/dist/worktree/state.d.ts.map +1 -1
  406. package/dist/worktree/state.js +89 -17
  407. package/dist/worktree/state.js.map +1 -1
  408. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/spawn/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/spawn/helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lead-continuation.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-continuation.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgB3F;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,oFAAoF;IACpF,qBAAqB,EAAE,MAAM,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAYD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,MAAM,CAAC;AA8BX;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EACzF,IAAI,GAAE,gBAA8B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CA+E9B"}
1
+ {"version":3,"file":"lead-continuation.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-continuation.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiB3F;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,oFAAoF;IACpF,qBAAqB,EAAE,MAAM,MAAM,CAAC;IACpC,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAYD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,MAAM,CAAC;AA8BX;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EACzF,IAAI,GAAE,gBAA8B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAoF9B"}
@@ -4,6 +4,7 @@
4
4
  import { getFocusDeliveries as defaultGetFocusDeliveries, getFocusIssues as defaultGetFocusIssues, } from '../queries/focuses.js';
5
5
  import { isStatusCascadable } from '../workflow/stage-classifier.js';
6
6
  import { buildReEngagementMessage } from '../prompt/focus-prompt-builder.js';
7
+ import { armFactsFromTeamState, deliveriesVisibleToArm } from '../focus/recorded-new-intent.js';
7
8
  import { sendMessage as defaultSendMessage } from '@telora/daemon-core';
8
9
  import { recordStdinMessageSent as defaultRecordStdinMessageSent } from '../completion/stdin-turn-tracker.js';
9
10
  import { isProcessAlive as defaultIsProcessAlive } from './liveness.js';
@@ -87,7 +88,12 @@ export async function reengageOnIdleResult(args, deps = defaultDeps) {
87
88
  deps.getFocusDeliveries(focusId),
88
89
  deps.getFocusIssues(focusId),
89
90
  ]);
90
- const nonTerminal = deliveries.filter((d) => !isStatusCascadable(d.executionStatus ?? ''));
91
+ // A delivery recorded as new intent under the live arm is not outstanding
92
+ // work for this lead: continuing it into the nudge would spend continuation
93
+ // budget on something the team is structurally unable to close.
94
+ const armFacts = armFactsFromTeamState(teamState);
95
+ const nonTerminal = deliveriesVisibleToArm(deliveries, armFacts)
96
+ .filter((d) => !isStatusCascadable(d.executionStatus ?? ''));
91
97
  if (nonTerminal.length === 0)
92
98
  return 'no_live_lead';
93
99
  // Budget the path so it cannot replace a 30-min park with an unbounded one.
@@ -109,7 +115,7 @@ export async function reengageOnIdleResult(args, deps = defaultDeps) {
109
115
  `for the stalled-team backstop to reap and file team_failure.`);
110
116
  return 'budget_exhausted';
111
117
  }
112
- const message = continuationPreamble(outstanding.length) + buildReEngagementMessage(nonTerminal, issues);
118
+ const message = continuationPreamble(outstanding.length) + buildReEngagementMessage(nonTerminal, issues, armFacts);
113
119
  const ok = deps.sendMessage(teamState.leadStdin, message);
114
120
  if (ok) {
115
121
  // Only record the stdin turn + advance the budget on a successful write -- a
@@ -1 +1 @@
1
- {"version":3,"file":"lead-continuation.js","sourceRoot":"","sources":["../../src/spawn/lead-continuation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lead-continuation.js","sourceRoot":"","sources":["../../src/spawn/lead-continuation.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,gBAAgB;AAyBhB,OAAO,EACL,kBAAkB,IAAI,yBAAyB,EAC/C,cAAc,IAAI,qBAAqB,GACxC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,sBAAsB,IAAI,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAmBvD,MAAM,WAAW,GAAqB;IACpC,kBAAkB,EAAE,yBAAyB;IAC7C,cAAc,EAAE,qBAAqB;IACrC,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,kBAAkB;IAC/B,sBAAsB,EAAE,6BAA6B;IACrD,qBAAqB,EAAE,yBAAyB;IAChD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;CACtB,CAAC;AAaF;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,UAA+B;IAC9D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,gBAAwB;IACpD,OAAO;QACL,sCAAsC;QACtC,EAAE;QACF,+BAA+B,gBAAgB,kCAAkC;QACjF,mFAAmF;QACnF,mFAAmF;QACnF,mFAAmF;QACnF,qEAAqE;QACrE,EAAE;QACF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAyF,EACzF,OAAyB,WAAW;IAEpC,iFAAiF;IACjF,gFAAgF;IAChF,kFAAkF;IAClF,gFAAgF;IAChF,gFAAgF;IAChF,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,8DAA8D;IAC9D,IAAI,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACjD,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjE,uEAAuE;IACvE,gFAAgF;IAChF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAEhD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAE/C,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,iCAAiC;IACjC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,IAAI,CACN,2BAA2B,SAAS,iBAAiB,WAAW,CAAC,MAAM,oBAAoB;YAC3F,oFAAoF,CACrF,CAAC;QACF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;KAC7B,CAAC,CAAC;IACH,0EAA0E;IAC1E,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC;SAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAEpD,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,+EAA+E;IAC/E,4EAA4E;IAC5E,sEAAsE;IACtE,sEAAsE;IACtE,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC,yBAAyB,IAAI,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,yBAAyB,EAAE,CAAC;QACrG,SAAS,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,oBAAoB,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC5C,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,yCAAyC,MAAM,oBAAoB,SAAS,MAAM,QAAQ,GAAG;YAC7F,iGAAiG;YACjG,8DAA8D,CAC/D,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnH,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,EAAE,EAAE,CAAC;QACP,6EAA6E;QAC7E,8EAA8E;QAC9E,4CAA4C;QAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrC,SAAS,CAAC,oBAAoB,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC9C,SAAS,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAClD,CAAC;IACD,GAAG,CAAC,IAAI,CACN,kDAAkD,SAAS,6BAA6B;QACxF,UAAU,WAAW,CAAC,MAAM,wCAAwC,EAAE,YAAY;QAClF,GAAG,CAAC,SAAS,CAAC,oBAAoB,IAAI,CAAC,CAAC,IAAI,MAAM,yCAAyC,CAC5F,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;AACtC,CAAC"}
@@ -25,10 +25,26 @@ export interface LaunchLeadProcessArgs {
25
25
  /** Starts the lead. Called only once every previous lead of the focus is confirmed ended. */
26
26
  spawn: () => ChildProcessWithoutNullStreams;
27
27
  }
28
+ /** The record seams of the launch, injectable so the refusals are testable. */
29
+ export interface LeadRecordDeps {
30
+ /** Write the pre-spawn reservation. False when the bytes did not land. */
31
+ reserve?: (r: {
32
+ label: string;
33
+ sessionId: string;
34
+ focusId?: string;
35
+ reservedBy: string;
36
+ }) => boolean;
37
+ /** Drop a reservation whose spawn produced nothing. */
38
+ release?: (sessionId: string) => void;
39
+ /** End a lead we spawned but could not record. */
40
+ terminate?: (pgid: number) => Promise<{
41
+ outcome: string;
42
+ }>;
43
+ }
28
44
  /**
29
45
  * End the focus's untracked previous leads, then spawn and record the new lead.
30
46
  * Returns the lead, or null when the spawn was refused because a previous lead
31
47
  * could not be ended (the caller fails the session and releases the team).
32
48
  */
33
- export declare function launchLeadProcess(args: LaunchLeadProcessArgs, ownership?: LeadOwnershipDeps): Promise<ChildProcessWithoutNullStreams | null>;
49
+ export declare function launchLeadProcess(args: LaunchLeadProcessArgs, ownership?: LeadOwnershipDeps, records?: LeadRecordDeps): Promise<ChildProcessWithoutNullStreams | null>;
34
50
  //# sourceMappingURL=lead-launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lead-launch.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-launch.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOxF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,8BAA8B,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,EAC3B,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAsBhD"}
1
+ {"version":3,"file":"lead-launch.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-launch.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAcxF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,8BAA8B,CAAC;CAC7C;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACrG,uDAAuD;IACvD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,kDAAkD;IAClD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,qBAAqB,EAC3B,SAAS,GAAE,iBAAsB,EACjC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CA8EhD"}
@@ -3,7 +3,9 @@
3
3
  // PINNED-BY-END
4
4
  import { recordLeadProcess } from './lead-process-ownership.js';
5
5
  import { endSupersededLeadProcesses } from './untracked-lead-sweep.js';
6
- import { processGroupEnded } from './process-group-kill.js';
6
+ import { processGroupEnded, terminateProcessGroup, PROCESS_GROUP_GRACE_MS, } from './process-group-kill.js';
7
+ import { reserveLeadRecord, releaseLeadReservation } from '../shell/worker-pidfile.js';
8
+ import { daemonInstanceId } from '../shell/daemon-instance.js';
7
9
  import { createLogger } from '../shell/log.js';
8
10
  const log = createLogger({ module: 'lead-launch' });
9
11
  /**
@@ -11,7 +13,7 @@ const log = createLogger({ module: 'lead-launch' });
11
13
  * Returns the lead, or null when the spawn was refused because a previous lead
12
14
  * could not be ended (the caller fails the session and releases the team).
13
15
  */
14
- export async function launchLeadProcess(args, ownership = {}) {
16
+ export async function launchLeadProcess(args, ownership = {}, records = {}) {
15
17
  const { focusId, focusName, teamState, sessionId } = args;
16
18
  const superseded = await endSupersededLeadProcesses(focusId, focusName, ownership);
17
19
  const unended = superseded.filter((r) => !processGroupEnded(r));
@@ -21,14 +23,61 @@ export async function launchLeadProcess(args, ownership = {}) {
21
23
  'a new lead must not supersede a live one; their ownership records are kept for the untracked-process sweep', { focusId });
22
24
  return null;
23
25
  }
24
- const proc = args.spawn();
26
+ // RESERVE the record before the process can exist. The old order spawned
27
+ // first and recorded after, leaving a window in which a live detached lead had
28
+ // no record anywhere -- and a reader that takes "no record" for "nothing
29
+ // spawned" closes that team's session row while it writes. A reservation that
30
+ // does not land is a refusal, not a warning: a lead this host cannot name is
31
+ // one no later pass can prove stopped.
32
+ const reserve = records.reserve ?? ((r) => reserveLeadRecord(r));
33
+ const release = records.release ?? ((id) => { releaseLeadReservation(id); });
34
+ const reservation = { label: focusName, sessionId, focusId, reservedBy: daemonInstanceId() };
35
+ if (!reserve(reservation)) {
36
+ log.error(`Refusing spawn for "${focusName}": the lead ownership record could not be reserved, ` +
37
+ 'so a live lead would exist that this host cannot name or later prove stopped', { focusId });
38
+ return null;
39
+ }
40
+ let proc;
41
+ try {
42
+ proc = args.spawn();
43
+ }
44
+ catch (err) {
45
+ release(sessionId);
46
+ throw err;
47
+ }
25
48
  teamState.leadPid = proc.pid ?? null;
26
49
  teamState.leadStdin = proc.stdin;
27
50
  teamState.phase = 'executing';
28
- // Record the detached lead (pid, start identity, focus, session) on the team
29
- // state and in the pidfile: a hard daemon kill group-reaps it from there, and
30
- // the running daemon's ownership passes read it.
31
- recordLeadProcess(proc, teamState, sessionId, ownership);
51
+ // Resolve the reservation into the real record (pid, start identity, focus,
52
+ // session): a hard daemon kill group-reaps it from there, and the running
53
+ // daemon's ownership passes read it.
54
+ if (!recordLeadProcess(proc, teamState, sessionId, ownership)) {
55
+ // The reservation still stands, so the session reads as unprovable rather
56
+ // than processless -- but we will not LEAVE a lead we cannot name. End it,
57
+ // and only then drop the reservation.
58
+ const pgid = proc.pid;
59
+ log.error(`Ending the lead just spawned for "${focusName}": its ownership record could not be written`, { focusId, pid: pgid ?? null });
60
+ if (typeof pgid === 'number' && pgid > 1) {
61
+ const terminate = records.terminate
62
+ ?? ((id) => terminateProcessGroup(id, {
63
+ label: `unrecorded lead for "${focusName}"`,
64
+ context: `focus=${focusId} session=${sessionId}`,
65
+ graceMs: PROCESS_GROUP_GRACE_MS,
66
+ }));
67
+ const result = await terminate(pgid);
68
+ if (!processGroupEnded(result)) {
69
+ // Still running and unrecorded: keep the reservation so recovery stays
70
+ // unprovable on this session rather than closing a live team's row.
71
+ log.error(`Unrecorded lead ${pgid} for "${focusName}" could not be ended (${result.outcome}); ` +
72
+ 'its reservation is kept so no reader reads this session as processless', { focusId });
73
+ teamState.phase = 'terminated';
74
+ return null;
75
+ }
76
+ }
77
+ release(sessionId);
78
+ teamState.phase = 'terminated';
79
+ return null;
80
+ }
32
81
  return proc;
33
82
  }
34
83
  //# sourceMappingURL=lead-launch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lead-launch.js","sourceRoot":"","sources":["../../src/spawn/lead-launch.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,2DAA2D;AAC3D,gBAAgB;AAqBhB,OAAO,EAAE,iBAAiB,EAA0B,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAWpD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA2B,EAC3B,YAA+B,EAAE;IAEjC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,CACP,uBAAuB,SAAS,oCAAoC;YACpE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB;YACvH,4GAA4G,EAC5G,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1B,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IACrC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IACjC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,8EAA8E;IAC9E,iDAAiD;IACjD,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"lead-launch.js","sourceRoot":"","sources":["../../src/spawn/lead-launch.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ import { type ProcessGroupKillOptions, type ProcessGroupKillResult } from './pro
27
27
  export interface LeadOwnershipDeps {
28
28
  readEntries?: () => WorkerPidEntry[];
29
29
  /** Persist one ownership record. Defaults to the worker pidfile. */
30
- recordEntry?: (entry: WorkerPidEntry) => void;
30
+ recordEntry?: (entry: WorkerPidEntry) => boolean;
31
31
  removeEntry?: (pid: number) => void;
32
32
  /** Pids a live team or one-shot worker currently owns. */
33
33
  trackedPids?: () => Set<number>;
@@ -53,12 +53,13 @@ export declare function currentlyTrackedPids(): Set<number>;
53
53
  export declare function resolveLeadOwnershipDeps(deps: LeadOwnershipDeps): ResolvedLeadOwnershipDeps;
54
54
  /**
55
55
  * Record a freshly spawned lead: its start identity on the team state, and its
56
- * ownership record in the pidfile. The record is NOT dropped when the lead
57
- * closes -- the lead's children can outlive it -- only once its whole process
56
+ * ownership record in the pidfile. Returns whether the record landed -- the
57
+ * launch REFUSES to leave a lead running that it could not record. The record
58
+ * is NOT dropped when the lead closes -- the lead's children can outlive it -- only once its whole process
58
59
  * group is confirmed gone (`ensureTeamProcessGroupGone`, or the untracked-process
59
60
  * sweep, which prunes a record whose group is already gone).
60
61
  */
61
- export declare function recordLeadProcess(proc: ChildProcess, teamState: FocusTeamState, sessionId: string, deps?: Pick<LeadOwnershipDeps, 'recordEntry' | 'readStartIdentity'>): void;
62
+ export declare function recordLeadProcess(proc: ChildProcess, teamState: FocusTeamState, sessionId: string, deps?: Pick<LeadOwnershipDeps, 'recordEntry' | 'readStartIdentity'>): boolean;
62
63
  /**
63
64
  * True when the team's lead pid now names a DIFFERENT live process (pid reuse):
64
65
  * a start identity was recorded at spawn and the live one differs. A gone lead
@@ -1 +1 @@
1
- {"version":3,"file":"lead-process-ownership.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-process-ownership.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAML,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AAKjC,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC;IACrC,oEAAoE;IACpE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,8DAA8D;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,cAAc,EAAE,CAAC;IACpC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5F,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC,CAOlD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,yBAAyB,CAU3F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,mBAAmB,CAAM,GACtE,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,EAC3D,iBAAiB,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAA+B,GAC3E,OAAO,CAIT;AAED,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACvC;AA4BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAcjC"}
1
+ {"version":3,"file":"lead-process-ownership.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-process-ownership.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAML,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,yBAAyB,CAAC;AAKjC,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC;IACrC,oEAAoE;IACpE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;IACjD,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,8DAA8D;IAC9D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,cAAc,EAAE,CAAC;IACpC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5F,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC,CAOlD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,yBAAyB,CAU3F;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,mBAAmB,CAAM,GACtE,OAAO,CAYT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,EAC3D,iBAAiB,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAA+B,GAC3E,OAAO,CAIT;AAED,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACvC;AA4BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAcjC"}
@@ -35,14 +35,15 @@ export function resolveLeadOwnershipDeps(deps) {
35
35
  }
36
36
  /**
37
37
  * Record a freshly spawned lead: its start identity on the team state, and its
38
- * ownership record in the pidfile. The record is NOT dropped when the lead
39
- * closes -- the lead's children can outlive it -- only once its whole process
38
+ * ownership record in the pidfile. Returns whether the record landed -- the
39
+ * launch REFUSES to leave a lead running that it could not record. The record
40
+ * is NOT dropped when the lead closes -- the lead's children can outlive it -- only once its whole process
40
41
  * group is confirmed gone (`ensureTeamProcessGroupGone`, or the untracked-process
41
42
  * sweep, which prunes a record whose group is already gone).
42
43
  */
43
44
  export function recordLeadProcess(proc, teamState, sessionId, deps = {}) {
44
45
  if (typeof proc.pid !== 'number')
45
- return;
46
+ return false;
46
47
  const leadPid = proc.pid;
47
48
  const startIdentity = (deps.readStartIdentity ?? readProcessStartIdentity)(leadPid);
48
49
  teamState.leadStartIdentity = startIdentity;
@@ -51,7 +52,9 @@ export function recordLeadProcess(proc, teamState, sessionId, deps = {}) {
51
52
  };
52
53
  if (startIdentity !== null)
53
54
  entry.startIdentity = startIdentity;
54
- (deps.recordEntry ?? ((e) => recordWorkerProcess(e)))(entry);
55
+ // Whether the record LANDED is the caller's business: a live lead this host
56
+ // cannot name is one no later pass can prove stopped.
57
+ return (deps.recordEntry ?? ((e) => recordWorkerProcess(e)))(entry);
55
58
  }
56
59
  /**
57
60
  * True when the team's lead pid now names a DIFFERENT live process (pid reuse):
@@ -1 +1 @@
1
- {"version":3,"file":"lead-process-ownership.js","sourceRoot":"","sources":["../../src/spawn/lead-process-ownership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lead-process-ownership.js","sourceRoot":"","sources":["../../src/spawn/lead-process-ownership.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * The one guarded way to write to a team lead's stdin.
3
+ *
4
+ * WHY THIS EXISTS. `FocusTeamState.leadStdin` is a `Writable` that OUTLIVES its
5
+ * process: the close handler nulls it (spawn/helpers.ts `handleTeamProcessClose`),
6
+ * but a caller that read it a moment earlier still holds the old reference, and
7
+ * `sendMessage` (daemon-core) does a bare `stdin.write(line)`. So a caller that
8
+ * checks liveness ONCE and then awaits anything before writing is writing to a
9
+ * session it has not confirmed is still there. On 2026-09-20 18:56 that gap was
10
+ * 433ms of directive assembly: the lead exited inside it, the body write raised
11
+ * `Cannot read properties of null (reading 'write')`, and the generic directive
12
+ * retry attempted it three more times into a process the daemon had already
13
+ * logged exiting.
14
+ *
15
+ * The fix is not another `if (team.leadStdin)` at each of the ~10 write sites --
16
+ * that is the same check in ten places, each free to drift and each still
17
+ * trusting a reference across an await. It is ONE entry point that
18
+ *
19
+ * - takes a focusId, never a caller-held `Writable`, so the stdin is
20
+ * re-resolved from the live team registry at the moment of the write;
21
+ * - applies the liveness test this codebase already settled on (an open stdin
22
+ * AND a live pid -- see spawn/lead-continuation.ts and the comment at
23
+ * completion/event-phases.ts, which carries the same hard-won note);
24
+ * - returns a NAMED outcome instead of throwing, so a session that has gone
25
+ * away is an ordinary, loggable result rather than an exception that a
26
+ * retry loop mistakes for a transient failure.
27
+ *
28
+ * A liveness probe is inherently time-of-check-to-time-of-use: the lead can exit
29
+ * between the probe and the write. The write is therefore also wrapped, so the
30
+ * narrowed race degrades to the same named outcome rather than to a throw.
31
+ *
32
+ * This module deliberately does NOT decide what a caller does with an
33
+ * undelivered message -- retain it, record it, drop it. It reports; disposal
34
+ * belongs to the caller that knows what was being sent.
35
+ */
36
+ import type { FocusTeamState } from '../types/index.js';
37
+ /**
38
+ * Why a write to a lead did not happen. Each value is a DIFFERENT situation a
39
+ * caller may want to dispose of differently -- a team that was never registered
40
+ * is not the same event as a session that exited mid-delivery.
41
+ */
42
+ export type LeadUnreachableReason =
43
+ /** No team is registered for this focus (it never spawned, or it is fully torn down). */
44
+ 'no_team'
45
+ /** A team is registered but its stdin is closed -- the process exited. */
46
+ | 'no_stdin'
47
+ /** The lead process is gone (dead pid, zombie, or the pid now belongs to something else). */
48
+ | 'lead_gone'
49
+ /** The team is being torn down; writing would retask a session on its way out. */
50
+ | 'shutting_down'
51
+ /** Liveness passed, but the write itself failed (the exit raced the probe). */
52
+ | 'write_failed';
53
+ /** What a guarded write to a lead did. */
54
+ export interface LeadSendResult {
55
+ /** True only when the content actually reached the lead's stdin. */
56
+ sent: boolean;
57
+ /** Why it did not. `null` when sent. */
58
+ reason: LeadUnreachableReason | null;
59
+ /** One log-ready clause naming the outcome, suitable for appending to a message. */
60
+ detail: string;
61
+ }
62
+ /** Seams for tests; the defaults touch the live team registry and the OS. */
63
+ export interface LeadSendDeps {
64
+ getActiveTeams?: () => Map<string, FocusTeamState>;
65
+ isProcessAlive?: (pid: number) => boolean;
66
+ leadPidReused?: (team: Pick<FocusTeamState, 'leadPid' | 'leadStartIdentity'>) => boolean;
67
+ sendMessage?: (stdin: NonNullable<FocusTeamState['leadStdin']>, content: string) => boolean;
68
+ }
69
+ /** A team whose lead is confirmed reachable right now. */
70
+ export interface LiveLead {
71
+ team: FocusTeamState;
72
+ stdin: NonNullable<FocusTeamState['leadStdin']>;
73
+ }
74
+ /** Either a reachable lead, or the named reason there is none. */
75
+ export type LiveLeadResolution = {
76
+ live: true;
77
+ lead: LiveLead;
78
+ } | {
79
+ live: false;
80
+ reason: LeadUnreachableReason;
81
+ detail: string;
82
+ };
83
+ /**
84
+ * Resolve a focus's lead ONLY if it is reachable right now.
85
+ *
86
+ * Call this immediately before each write -- never once for a sequence of them.
87
+ * A resolution is a statement about this instant, and any await invalidates it.
88
+ */
89
+ export declare function resolveLiveLead(focusId: string, deps?: LeadSendDeps): LiveLeadResolution;
90
+ /**
91
+ * Write to a focus's team lead, but only if the session is live at this instant.
92
+ *
93
+ * Never throws for an absent or departed session: the caller gets a named
94
+ * outcome and decides the disposal.
95
+ */
96
+ export declare function sendToLead(focusId: string, content: string, deps?: LeadSendDeps): LeadSendResult;
97
+ //# sourceMappingURL=lead-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-send.d.ts","sourceRoot":"","sources":["../../src/spawn/lead-send.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB;AAC/B,yFAAyF;AACvF,SAAS;AACX,0EAA0E;GACxE,UAAU;AACZ,6FAA6F;GAC3F,WAAW;AACb,kFAAkF;GAChF,eAAe;AACjB,+EAA+E;GAC7E,cAAc,CAAC;AAEnB,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrC,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,KAAK,OAAO,CAAC;IACzF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7F;AAED,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACjD;AAED,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAkBnE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,kBAAkB,CAoB5F;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,cAAc,CAoBpG"}
@@ -0,0 +1,80 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/spawn/lead-send.test.ts
3
+ // PINNED-BY-END
4
+ import { sendMessage as defaultSendMessage } from '@telora/daemon-core';
5
+ import { getActiveTeams as defaultGetActiveTeams } from '../focus/focus-team-state.js';
6
+ import { isProcessAlive as defaultIsProcessAlive } from './liveness.js';
7
+ import { leadPidReused as defaultLeadPidReused } from './lead-process-ownership.js';
8
+ import { createLogger } from '../shell/log.js';
9
+ const log = createLogger({ module: 'lead-send' });
10
+ function describe(focusId, reason) {
11
+ const focus = focusId.slice(0, 8);
12
+ switch (reason) {
13
+ case 'no_team':
14
+ return `no team is registered for focus ${focus}`;
15
+ case 'no_stdin':
16
+ return `the lead session for focus ${focus} has closed its stdin (the process exited)`;
17
+ case 'lead_gone':
18
+ return `the lead process for focus ${focus} is gone`;
19
+ case 'shutting_down':
20
+ return `the team for focus ${focus} is shutting down`;
21
+ case 'write_failed':
22
+ return `the write to the lead for focus ${focus} failed (the session exited during the write)`;
23
+ }
24
+ }
25
+ /**
26
+ * Resolve a focus's lead ONLY if it is reachable right now.
27
+ *
28
+ * Call this immediately before each write -- never once for a sequence of them.
29
+ * A resolution is a statement about this instant, and any await invalidates it.
30
+ */
31
+ export function resolveLiveLead(focusId, deps = {}) {
32
+ const getTeams = deps.getActiveTeams ?? defaultGetActiveTeams;
33
+ const isAlive = deps.isProcessAlive ?? defaultIsProcessAlive;
34
+ const pidReused = deps.leadPidReused ?? defaultLeadPidReused;
35
+ const unreachable = (reason) => ({ live: false, reason, detail: describe(focusId, reason) });
36
+ const team = getTeams().get(focusId);
37
+ if (!team)
38
+ return unreachable('no_team');
39
+ if (team.phase === 'shutting_down' || team.phase === 'terminated')
40
+ return unreachable('shutting_down');
41
+ if (!team.leadStdin)
42
+ return unreachable('no_stdin');
43
+ // An open Writable is not proof of a live process, which is the whole trap
44
+ // this module exists for: the pid probe is what makes "live" honest.
45
+ if (team.leadPid == null || !isAlive(team.leadPid))
46
+ return unreachable('lead_gone');
47
+ // And a live pid is not proof it is still OUR lead -- terminateTeam applies the
48
+ // same identity test before it signals.
49
+ if (pidReused(team))
50
+ return unreachable('lead_gone');
51
+ return { live: true, lead: { team, stdin: team.leadStdin } };
52
+ }
53
+ /**
54
+ * Write to a focus's team lead, but only if the session is live at this instant.
55
+ *
56
+ * Never throws for an absent or departed session: the caller gets a named
57
+ * outcome and decides the disposal.
58
+ */
59
+ export function sendToLead(focusId, content, deps = {}) {
60
+ const resolution = resolveLiveLead(focusId, deps);
61
+ if (!resolution.live) {
62
+ return { sent: false, reason: resolution.reason, detail: resolution.detail };
63
+ }
64
+ const write = deps.sendMessage ?? defaultSendMessage;
65
+ try {
66
+ // The boolean `sendMessage` returns is stream BACKPRESSURE, not failure: a
67
+ // `false` means the content was accepted into a full buffer, so it is not a
68
+ // reason to report the message as undelivered.
69
+ write(resolution.lead.stdin, content);
70
+ return { sent: true, reason: null, detail: `delivered to the lead for focus ${focusId.slice(0, 8)}` };
71
+ }
72
+ catch (err) {
73
+ // The probe-to-write race, narrowed but never closed. Report it as the same
74
+ // undelivered outcome rather than letting it escape as an exception.
75
+ const detail = `${describe(focusId, 'write_failed')}: ${err.message}`;
76
+ log.warn(`[lead-send] ${detail}`);
77
+ return { sent: false, reason: 'write_failed', detail };
78
+ }
79
+ }
80
+ //# sourceMappingURL=lead-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lead-send.js","sourceRoot":"","sources":["../../src/spawn/lead-send.ts"],"names":[],"mappings":"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"}
@@ -178,17 +178,5 @@ export declare function buildAuditMetricRow(params: {
178
178
  periodStart: string;
179
179
  periodEnd: string;
180
180
  }): TelemetryMetricRow;
181
- /**
182
- * Spawn the Claude Code CLI as the audit assessor (INJ-E: resumable).
183
- *
184
- * Short-lived, single-purpose process: no agent_sessions DB row, no worktree
185
- * creation. It runs in --print mode with stream-json output so it emits a
186
- * session_id (captured for the focus's 'audit' lineage) and so its assistant
187
- * text can be reconstructed for the audit-summary parser. When `resumeSessionId`
188
- * is supplied it reconnects to the prior cycle's session via --resume, giving
189
- * the differential receiver cross-cycle memory. It is allowed only the
190
- * reality_tree_* MCP tools so it can mutate the graph but not touch workflow
191
- * state.
192
- */
193
181
  export declare function spawnAuditAgent(opts: AuditSpawnOptions, ownership?: OneShotOwnershipDeps): Promise<AuditSpawnResult>;
194
182
  //# sourceMappingURL=lifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/spawn/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/spawn/lifecycle.ts"],"names":[],"mappings":"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"}