@telora/daemon 0.21.98 → 0.21.144

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 (416) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +120 -5
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +205 -45
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/ci/ci-escalation.js +1 -1
  7. package/dist/ci/ci-escalation.js.map +1 -1
  8. package/dist/ci/ci-sensor-loop.d.ts +30 -0
  9. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  10. package/dist/ci/ci-sensor-loop.js +85 -12
  11. package/dist/ci/ci-sensor-loop.js.map +1 -1
  12. package/dist/cli/connect/config-write.d.ts +87 -0
  13. package/dist/cli/connect/config-write.d.ts.map +1 -0
  14. package/dist/cli/connect/config-write.js +255 -0
  15. package/dist/cli/connect/config-write.js.map +1 -0
  16. package/dist/cli/connect/registration.d.ts +76 -0
  17. package/dist/cli/connect/registration.d.ts.map +1 -0
  18. package/dist/cli/connect/registration.js +207 -0
  19. package/dist/cli/connect/registration.js.map +1 -0
  20. package/dist/cli/connect.d.ts +3 -141
  21. package/dist/cli/connect.d.ts.map +1 -1
  22. package/dist/cli/connect.js +9 -441
  23. package/dist/cli/connect.js.map +1 -1
  24. package/dist/completion/coverage-drift-state.d.ts +29 -2
  25. package/dist/completion/coverage-drift-state.d.ts.map +1 -1
  26. package/dist/completion/coverage-drift-state.js +42 -2
  27. package/dist/completion/coverage-drift-state.js.map +1 -1
  28. package/dist/completion/coverage-stabilized.d.ts +58 -0
  29. package/dist/completion/coverage-stabilized.d.ts.map +1 -0
  30. package/dist/completion/coverage-stabilized.js +84 -0
  31. package/dist/completion/coverage-stabilized.js.map +1 -0
  32. package/dist/completion/delivery-advancement-guard.d.ts +21 -0
  33. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  34. package/dist/completion/delivery-advancement-guard.js +31 -3
  35. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  36. package/dist/completion/escalation-provenance.d.ts +2 -1
  37. package/dist/completion/escalation-provenance.d.ts.map +1 -1
  38. package/dist/completion/escalation-provenance.js +2 -1
  39. package/dist/completion/escalation-provenance.js.map +1 -1
  40. package/dist/completion/escalations.js +1 -1
  41. package/dist/completion/escalations.js.map +1 -1
  42. package/dist/completion/event-escalations.d.ts +16 -1
  43. package/dist/completion/event-escalations.d.ts.map +1 -1
  44. package/dist/completion/event-escalations.js +43 -5
  45. package/dist/completion/event-escalations.js.map +1 -1
  46. package/dist/completion/event-phases.d.ts.map +1 -1
  47. package/dist/completion/event-phases.js +5 -2
  48. package/dist/completion/event-phases.js.map +1 -1
  49. package/dist/completion/event.d.ts +1 -1
  50. package/dist/completion/event.d.ts.map +1 -1
  51. package/dist/completion/event.js +2 -2
  52. package/dist/completion/event.js.map +1 -1
  53. package/dist/completion/machine-remediable-demotion.d.ts +74 -0
  54. package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
  55. package/dist/completion/machine-remediable-demotion.js +148 -0
  56. package/dist/completion/machine-remediable-demotion.js.map +1 -0
  57. package/dist/completion/read-only-pristine.d.ts +1 -1
  58. package/dist/completion/read-only-pristine.d.ts.map +1 -1
  59. package/dist/completion/read-only-pristine.js +1 -1
  60. package/dist/completion/read-only-pristine.js.map +1 -1
  61. package/dist/completion/review-exit-escalations.d.ts +1 -1
  62. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  63. package/dist/completion/review-exit-phase.d.ts +5 -2
  64. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  65. package/dist/completion/review-exit-phase.js +15 -8
  66. package/dist/completion/review-exit-phase.js.map +1 -1
  67. package/dist/completion/settle-injection-sweep.d.ts +55 -0
  68. package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
  69. package/dist/completion/settle-injection-sweep.js +88 -0
  70. package/dist/completion/settle-injection-sweep.js.map +1 -0
  71. package/dist/completion/state-cascade.d.ts.map +1 -1
  72. package/dist/completion/state-cascade.js +42 -1
  73. package/dist/completion/state-cascade.js.map +1 -1
  74. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  75. package/dist/completion/status-advance-phase.js +18 -0
  76. package/dist/completion/status-advance-phase.js.map +1 -1
  77. package/dist/completion/team-lifecycle.d.ts +42 -0
  78. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  79. package/dist/completion/team-lifecycle.js +73 -1
  80. package/dist/completion/team-lifecycle.js.map +1 -1
  81. package/dist/delivery/delivery-advance-block.d.ts +1 -1
  82. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  83. package/dist/delivery/delivery-advance-block.js +1 -1
  84. package/dist/delivery/delivery-advance-block.js.map +1 -1
  85. package/dist/delivery/delivery-lifecycle.d.ts +19 -33
  86. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  87. package/dist/delivery/delivery-lifecycle.js +20 -148
  88. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  89. package/dist/delivery/delivery-merge-ops.d.ts +46 -0
  90. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
  91. package/dist/delivery/delivery-merge-ops.js +154 -0
  92. package/dist/delivery/delivery-merge-ops.js.map +1 -0
  93. package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
  94. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  95. package/dist/delivery/delivery-reconciler-apply.js +30 -0
  96. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  97. package/dist/delivery/delivery-reconciler-shadow.d.ts +1 -1
  98. package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -1
  99. package/dist/delivery/delivery-reconciler-shadow.js +1 -1
  100. package/dist/delivery/delivery-reconciler-shadow.js.map +1 -1
  101. package/dist/delivery/delivery-reconciler.d.ts +7 -2
  102. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  103. package/dist/delivery/delivery-reconciler.js +34 -5
  104. package/dist/delivery/delivery-reconciler.js.map +1 -1
  105. package/dist/delivery/external-hold-surface.d.ts +32 -0
  106. package/dist/delivery/external-hold-surface.d.ts.map +1 -0
  107. package/dist/delivery/external-hold-surface.js +67 -0
  108. package/dist/delivery/external-hold-surface.js.map +1 -0
  109. package/dist/delivery/external-hold.d.ts +21 -0
  110. package/dist/delivery/external-hold.d.ts.map +1 -1
  111. package/dist/delivery/external-hold.js +40 -5
  112. package/dist/delivery/external-hold.js.map +1 -1
  113. package/dist/delivery/operator-hold.d.ts +1 -1
  114. package/dist/delivery/operator-hold.d.ts.map +1 -1
  115. package/dist/delivery/paused-revival.d.ts +140 -0
  116. package/dist/delivery/paused-revival.d.ts.map +1 -0
  117. package/dist/delivery/paused-revival.js +230 -0
  118. package/dist/delivery/paused-revival.js.map +1 -0
  119. package/dist/delivery/wait-reachability.d.ts.map +1 -1
  120. package/dist/delivery/wait-reachability.js +11 -0
  121. package/dist/delivery/wait-reachability.js.map +1 -1
  122. package/dist/directive/close-loop-dispatcher.d.ts +16 -263
  123. package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
  124. package/dist/directive/close-loop-dispatcher.js +21 -259
  125. package/dist/directive/close-loop-dispatcher.js.map +1 -1
  126. package/dist/directive/directive-dispatch.d.ts +20 -1
  127. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  128. package/dist/directive/directive-dispatch.js +19 -1
  129. package/dist/directive/directive-dispatch.js.map +1 -1
  130. package/dist/directive/directive-executor.d.ts +1 -3
  131. package/dist/directive/directive-executor.d.ts.map +1 -1
  132. package/dist/directive/directive-executor.js +24 -22
  133. package/dist/directive/directive-executor.js.map +1 -1
  134. package/dist/directive/phase-sync.d.ts +28 -15
  135. package/dist/directive/phase-sync.d.ts.map +1 -1
  136. package/dist/directive/phase-sync.js +28 -36
  137. package/dist/directive/phase-sync.js.map +1 -1
  138. package/dist/directive/resolver-dispatch.d.ts +19 -92
  139. package/dist/directive/resolver-dispatch.d.ts.map +1 -1
  140. package/dist/directive/resolver-dispatch.js +19 -65
  141. package/dist/directive/resolver-dispatch.js.map +1 -1
  142. package/dist/drift/staleness-sensor.js +1 -1
  143. package/dist/drift/staleness-sensor.js.map +1 -1
  144. package/dist/focus/focus-engine.d.ts.map +1 -1
  145. package/dist/focus/focus-engine.js +29 -2
  146. package/dist/focus/focus-engine.js.map +1 -1
  147. package/dist/focus/focus-executor.d.ts.map +1 -1
  148. package/dist/focus/focus-executor.js +290 -256
  149. package/dist/focus/focus-executor.js.map +1 -1
  150. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  151. package/dist/focus/focus-lifecycle.js +2 -1
  152. package/dist/focus/focus-lifecycle.js.map +1 -1
  153. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  154. package/dist/focus/focus-loop-registry.js +43 -1
  155. package/dist/focus/focus-loop-registry.js.map +1 -1
  156. package/dist/focus/focus-respawn-guard.d.ts +1 -1
  157. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  158. package/dist/focus/focus-respawn-guard.js +12 -3
  159. package/dist/focus/focus-respawn-guard.js.map +1 -1
  160. package/dist/focus/focus-team-state.d.ts +11 -0
  161. package/dist/focus/focus-team-state.d.ts.map +1 -1
  162. package/dist/focus/focus-team-state.js +17 -0
  163. package/dist/focus/focus-team-state.js.map +1 -1
  164. package/dist/focus/listener-auto-advance.d.ts +17 -46
  165. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  166. package/dist/focus/listener-auto-advance.js +104 -256
  167. package/dist/focus/listener-auto-advance.js.map +1 -1
  168. package/dist/focus/listener-spawn.d.ts +62 -0
  169. package/dist/focus/listener-spawn.d.ts.map +1 -0
  170. package/dist/focus/listener-spawn.js +418 -0
  171. package/dist/focus/listener-spawn.js.map +1 -0
  172. package/dist/focus/listener-state.d.ts +57 -0
  173. package/dist/focus/listener-state.d.ts.map +1 -0
  174. package/dist/focus/listener-state.js +63 -0
  175. package/dist/focus/listener-state.js.map +1 -0
  176. package/dist/focus/listener.d.ts +0 -58
  177. package/dist/focus/listener.d.ts.map +1 -1
  178. package/dist/focus/listener.js +138 -516
  179. package/dist/focus/listener.js.map +1 -1
  180. package/dist/focus/tick-deadline.d.ts +55 -0
  181. package/dist/focus/tick-deadline.d.ts.map +1 -0
  182. package/dist/focus/tick-deadline.js +91 -0
  183. package/dist/focus/tick-deadline.js.map +1 -0
  184. package/dist/focus/verify-open-issues.d.ts +62 -0
  185. package/dist/focus/verify-open-issues.d.ts.map +1 -0
  186. package/dist/focus/verify-open-issues.js +265 -0
  187. package/dist/focus/verify-open-issues.js.map +1 -0
  188. package/dist/focus-stage-lifecycle/index.d.ts +19 -26
  189. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  190. package/dist/focus-stage-lifecycle/index.js +27 -39
  191. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  192. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
  193. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
  194. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
  195. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
  196. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
  197. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  198. package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
  199. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  200. package/dist/git/index.d.ts +2 -0
  201. package/dist/git/index.d.ts.map +1 -1
  202. package/dist/git/index.js +2 -0
  203. package/dist/git/index.js.map +1 -1
  204. package/dist/git/merge-strategies.d.ts +80 -0
  205. package/dist/git/merge-strategies.d.ts.map +1 -0
  206. package/dist/git/merge-strategies.js +218 -0
  207. package/dist/git/merge-strategies.js.map +1 -0
  208. package/dist/git/merge-to-main.d.ts +76 -0
  209. package/dist/git/merge-to-main.d.ts.map +1 -0
  210. package/dist/git/merge-to-main.js +256 -0
  211. package/dist/git/merge-to-main.js.map +1 -0
  212. package/dist/git/merge.d.ts +27 -81
  213. package/dist/git/merge.d.ts.map +1 -1
  214. package/dist/git/merge.js +4 -448
  215. package/dist/git/merge.js.map +1 -1
  216. package/dist/git/state-detector.js +1 -1
  217. package/dist/git/state-detector.js.map +1 -1
  218. package/dist/guard/condition-evaluators.d.ts +9 -0
  219. package/dist/guard/condition-evaluators.d.ts.map +1 -1
  220. package/dist/guard/condition-evaluators.js +15 -0
  221. package/dist/guard/condition-evaluators.js.map +1 -1
  222. package/dist/guard/guard-evaluator.d.ts +17 -1
  223. package/dist/guard/guard-evaluator.d.ts.map +1 -1
  224. package/dist/guard/guard-evaluator.js +61 -2
  225. package/dist/guard/guard-evaluator.js.map +1 -1
  226. package/dist/guard/trigger-executor.d.ts +30 -18
  227. package/dist/guard/trigger-executor.d.ts.map +1 -1
  228. package/dist/guard/trigger-executor.js +55 -31
  229. package/dist/guard/trigger-executor.js.map +1 -1
  230. package/dist/loops/engine.js +1 -1
  231. package/dist/loops/engine.js.map +1 -1
  232. package/dist/merge/focus-merge.d.ts +1 -1
  233. package/dist/merge/focus-merge.d.ts.map +1 -1
  234. package/dist/merge/focus-merge.js +1 -1
  235. package/dist/merge/focus-merge.js.map +1 -1
  236. package/dist/merge/merge-back-loop.d.ts +1 -1
  237. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  238. package/dist/merge/merge-back-loop.js +2 -2
  239. package/dist/merge/merge-back-loop.js.map +1 -1
  240. package/dist/merge/merge-detector.js +1 -1
  241. package/dist/merge/merge-detector.js.map +1 -1
  242. package/dist/nexus/return.js +1 -1
  243. package/dist/nexus/return.js.map +1 -1
  244. package/dist/prd/controller-shared.d.ts +223 -0
  245. package/dist/prd/controller-shared.d.ts.map +1 -0
  246. package/dist/prd/controller-shared.js +77 -0
  247. package/dist/prd/controller-shared.js.map +1 -0
  248. package/dist/prd/controller.d.ts +5 -256
  249. package/dist/prd/controller.d.ts.map +1 -1
  250. package/dist/prd/controller.js +9 -166
  251. package/dist/prd/controller.js.map +1 -1
  252. package/dist/prd/done-sweep.d.ts +55 -0
  253. package/dist/prd/done-sweep.d.ts.map +1 -0
  254. package/dist/prd/done-sweep.js +112 -0
  255. package/dist/prd/done-sweep.js.map +1 -0
  256. package/dist/prompt/team-prompt-base.d.ts +1 -1
  257. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  258. package/dist/prompt/team-prompt-base.js +1 -1
  259. package/dist/prompt/team-prompt-base.js.map +1 -1
  260. package/dist/prompt-sections/execution-sections.d.ts +1 -1
  261. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  262. package/dist/prompt-sections/execution-sections.js +12 -2
  263. package/dist/prompt-sections/execution-sections.js.map +1 -1
  264. package/dist/prompt-sections/persona-sections.d.ts +0 -32
  265. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  266. package/dist/prompt-sections/persona-sections.js +19 -88
  267. package/dist/prompt-sections/persona-sections.js.map +1 -1
  268. package/dist/prompt-sections/shared.d.ts +1 -1
  269. package/dist/prompt-sections/shared.d.ts.map +1 -1
  270. package/dist/queries/agent-resolvable-promotion.d.ts +1 -1
  271. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  272. package/dist/queries/agent-resolvable-promotion.js +2 -1
  273. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  274. package/dist/queries/deliveries.d.ts +0 -172
  275. package/dist/queries/deliveries.d.ts.map +1 -1
  276. package/dist/queries/deliveries.js +1 -77
  277. package/dist/queries/deliveries.js.map +1 -1
  278. package/dist/queries/escalation-consumption.d.ts +120 -0
  279. package/dist/queries/escalation-consumption.d.ts.map +1 -0
  280. package/dist/queries/escalation-consumption.js +143 -0
  281. package/dist/queries/escalation-consumption.js.map +1 -0
  282. package/dist/queries/escalation-dispositions.d.ts +19 -0
  283. package/dist/queries/escalation-dispositions.d.ts.map +1 -0
  284. package/dist/queries/escalation-dispositions.js +18 -0
  285. package/dist/queries/escalation-dispositions.js.map +1 -0
  286. package/dist/queries/escalation-suppression.d.ts +1 -1
  287. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  288. package/dist/queries/escalation-suppression.js +1 -1
  289. package/dist/queries/escalation-suppression.js.map +1 -1
  290. package/dist/queries/escalations.d.ts +343 -0
  291. package/dist/queries/escalations.d.ts.map +1 -0
  292. package/dist/queries/escalations.js +493 -0
  293. package/dist/queries/escalations.js.map +1 -0
  294. package/dist/queries/focus-discovery.d.ts +204 -0
  295. package/dist/queries/focus-discovery.d.ts.map +1 -0
  296. package/dist/queries/focus-discovery.js +92 -0
  297. package/dist/queries/focus-discovery.js.map +1 -0
  298. package/dist/queries/focuses.d.ts +36 -0
  299. package/dist/queries/focuses.d.ts.map +1 -1
  300. package/dist/queries/focuses.js +45 -0
  301. package/dist/queries/focuses.js.map +1 -1
  302. package/dist/queries/guards.d.ts +10 -0
  303. package/dist/queries/guards.d.ts.map +1 -1
  304. package/dist/queries/guards.js +14 -1
  305. package/dist/queries/guards.js.map +1 -1
  306. package/dist/queries/index.d.ts +4 -2
  307. package/dist/queries/index.d.ts.map +1 -1
  308. package/dist/queries/index.js +4 -2
  309. package/dist/queries/index.js.map +1 -1
  310. package/dist/queries/issues.d.ts +8 -372
  311. package/dist/queries/issues.d.ts.map +1 -1
  312. package/dist/queries/issues.js +7 -482
  313. package/dist/queries/issues.js.map +1 -1
  314. package/dist/queries/schemas.d.ts +51 -0
  315. package/dist/queries/schemas.d.ts.map +1 -1
  316. package/dist/queries/schemas.js +34 -0
  317. package/dist/queries/schemas.js.map +1 -1
  318. package/dist/queries/verification.d.ts +5 -6
  319. package/dist/queries/verification.d.ts.map +1 -1
  320. package/dist/queries/verification.js +5 -6
  321. package/dist/queries/verification.js.map +1 -1
  322. package/dist/resolvers/agent-escalations.d.ts +20 -0
  323. package/dist/resolvers/agent-escalations.d.ts.map +1 -1
  324. package/dist/resolvers/agent-escalations.js +40 -10
  325. package/dist/resolvers/agent-escalations.js.map +1 -1
  326. package/dist/resolvers/index.d.ts +2 -2
  327. package/dist/resolvers/index.d.ts.map +1 -1
  328. package/dist/resolvers/index.js +1 -1
  329. package/dist/resolvers/index.js.map +1 -1
  330. package/dist/resolvers/loop-persona.d.ts +1 -11
  331. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  332. package/dist/resolvers/loop-persona.js +2 -16
  333. package/dist/resolvers/loop-persona.js.map +1 -1
  334. package/dist/resolvers/shared/git-diff.d.ts +99 -18
  335. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  336. package/dist/resolvers/shared/git-diff.js +98 -27
  337. package/dist/resolvers/shared/git-diff.js.map +1 -1
  338. package/dist/shell/control-state.d.ts +1 -1
  339. package/dist/shell/control-state.d.ts.map +1 -1
  340. package/dist/shell/control-state.js +1 -1
  341. package/dist/shell/control-state.js.map +1 -1
  342. package/dist/shell/crash-recovery.d.ts +1 -1
  343. package/dist/shell/crash-recovery.d.ts.map +1 -1
  344. package/dist/shell/crash-recovery.js +2 -2
  345. package/dist/shell/crash-recovery.js.map +1 -1
  346. package/dist/shell/install-probe-tick.d.ts +1 -1
  347. package/dist/shell/install-probe-tick.d.ts.map +1 -1
  348. package/dist/shell/install-probe-tick.js +1 -1
  349. package/dist/shell/install-probe-tick.js.map +1 -1
  350. package/dist/shell/unified-shell-provisioning.d.ts +40 -0
  351. package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
  352. package/dist/shell/unified-shell-provisioning.js +72 -0
  353. package/dist/shell/unified-shell-provisioning.js.map +1 -1
  354. package/dist/shell/unified-shell.d.ts.map +1 -1
  355. package/dist/shell/unified-shell.js +19 -2
  356. package/dist/shell/unified-shell.js.map +1 -1
  357. package/dist/spawn/helpers.d.ts.map +1 -1
  358. package/dist/spawn/helpers.js +6 -1
  359. package/dist/spawn/helpers.js.map +1 -1
  360. package/dist/spawn/model-routing.d.ts +1 -1
  361. package/dist/spawn/model-routing.d.ts.map +1 -1
  362. package/dist/spawn/model-routing.js +1 -1
  363. package/dist/spawn/model-routing.js.map +1 -1
  364. package/dist/spawn/process-spawn.d.ts.map +1 -1
  365. package/dist/spawn/process-spawn.js +7 -0
  366. package/dist/spawn/process-spawn.js.map +1 -1
  367. package/dist/spawn/prompt-assembly.d.ts +1 -1
  368. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  369. package/dist/spawn/prompt-assembly.js +1 -1
  370. package/dist/spawn/prompt-assembly.js.map +1 -1
  371. package/dist/spawn/spawn-cooldown.d.ts +41 -7
  372. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  373. package/dist/spawn/spawn-cooldown.js +47 -0
  374. package/dist/spawn/spawn-cooldown.js.map +1 -1
  375. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  376. package/dist/spawn/spawn-decision.js +34 -2
  377. package/dist/spawn/spawn-decision.js.map +1 -1
  378. package/dist/spawn/worktree-session.d.ts +1 -1
  379. package/dist/spawn/worktree-session.d.ts.map +1 -1
  380. package/dist/spawn/worktree-session.js +1 -1
  381. package/dist/spawn/worktree-session.js.map +1 -1
  382. package/dist/templates/claude-md.d.ts +1 -1
  383. package/dist/templates/claude-md.d.ts.map +1 -1
  384. package/dist/templates/claude-md.js +12 -0
  385. package/dist/templates/claude-md.js.map +1 -1
  386. package/dist/verify/stall-detectors.d.ts +20 -8
  387. package/dist/verify/stall-detectors.d.ts.map +1 -1
  388. package/dist/verify/stall-detectors.js +27 -46
  389. package/dist/verify/stall-detectors.js.map +1 -1
  390. package/dist/verify/verification-default-on.d.ts +1 -1
  391. package/dist/verify/verification-default-on.d.ts.map +1 -1
  392. package/dist/verify/verification-deps.d.ts +1 -1
  393. package/dist/verify/verification-deps.d.ts.map +1 -1
  394. package/dist/verify/verification-engine.d.ts.map +1 -1
  395. package/dist/verify/verification-engine.js +20 -12
  396. package/dist/verify/verification-engine.js.map +1 -1
  397. package/dist/workflow/gate-failure-policy.d.ts +48 -0
  398. package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
  399. package/dist/workflow/gate-failure-policy.js +57 -0
  400. package/dist/workflow/gate-failure-policy.js.map +1 -0
  401. package/dist/workflow/pipeline-config.d.ts +2 -2
  402. package/dist/workflow/pipeline-config.js +2 -2
  403. package/dist/worktree/provision.js +1 -1
  404. package/dist/worktree/provision.js.map +1 -1
  405. package/dist/worktree/scratch-guard.d.ts.map +1 -1
  406. package/dist/worktree/scratch-guard.js +23 -2
  407. package/dist/worktree/scratch-guard.js.map +1 -1
  408. package/package.json +1 -1
  409. package/dist/directive/close-loop-stage.d.ts +0 -50
  410. package/dist/directive/close-loop-stage.d.ts.map +0 -1
  411. package/dist/directive/close-loop-stage.js +0 -210
  412. package/dist/directive/close-loop-stage.js.map +0 -1
  413. package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
  414. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
  415. package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
  416. package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-shared.js","sourceRoot":"","sources":["../../src/prd/controller-shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAQ;IAC9C,OAAO,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA+D;IAE/D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;IACnE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;QACjD,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -15,266 +15,15 @@
15
15
  * Foci -> Delivery -> Issue executor.
16
16
  */
17
17
  import type { DaemonConfig } from '../types/index.js';
18
- import { type Prd, type PrtNode, type PrtEdge, type Pathway } from '../queries/prd.js';
18
+ import { type Prd } from '../queries/prd.js';
19
19
  import { computePrtFrontier } from './frontier.js';
20
20
  import { isPathwayViable } from './viability.js';
21
- import { type FileEscalationInput } from '../completion/escalations.js';
22
- import { type StewardDecision, type StewardJudgmentInput } from './steward.js';
23
- /**
24
- * Steward cadence: the minimum interval between proactive steward monitoring
25
- * runs for a Played PRD -- the "runs on a cadence" path of the AC. 15 minutes
26
- * is substantially less frequent than the 60s controller tick (satisfies "not
27
- * every tick") without making the cortex unresponsive to gradual drift.
28
- * Exported so tests can inject a zero-ms cadence to force an immediate run.
29
- */
30
- export declare const STEWARD_CADENCE_MS: number;
31
- /**
32
- * Stable machine reason for the "done-PRD completion-limbo sweep keeps failing"
33
- * signal: the per-product one-shot sweep hit DONE_SWEEP_MAX_ATTEMPTS consecutive
34
- * incomplete passes and was abandoned (product marked swept) so a persistently
35
- * failing done PRD does not pin the product to a per-tick loadDonePrds re-list.
36
- */
37
- export declare const PRD_DONE_SWEEP_ABANDONED = "prd_done_sweep_abandoned";
38
- /**
39
- * Consecutive incomplete done-sweep passes tolerated for a product before the
40
- * sweep is abandoned and escalated. A merely-non-completable focus is skipped
41
- * (not a failure), so this trips only on a genuine persistent error (unreadable
42
- * PRT graph, finalize that keeps rejecting) -- bounding the retry instead of
43
- * re-listing the growing done set every tick forever.
44
- */
45
- export declare const DONE_SWEEP_MAX_ATTEMPTS = 3;
46
- /**
47
- * Resolve the arm role for a PRD from the PRD ROW -- the per-entity "Play"
48
- * signal (prds.assigned_agent_role_id), or null if the PRD is paused.
49
- *
50
- * This is the ONLY source: the global TELORA_PRD_ARM_ROLE_ID env var has been
51
- * removed outright (it was the out-of-band toggle behind the One Screen RTS
52
- * silent stall). Play/pause is data on the PRD row, set via telora_prd update.
53
- * Pure + exported so the row-reads-not-env contract is unit-testable.
54
- */
55
- export declare function resolveArmRoleIdFromPrd(prd: Prd): string | null;
21
+ import { type PrdControllerDeps, type PrdControllerTickResult, type PrdControllerTickAllResult } from './controller-shared.js';
22
+ export { STEWARD_CADENCE_MS, PRD_DONE_SWEEP_ABANDONED, DONE_SWEEP_MAX_ATTEMPTS, resolveArmRoleIdFromPrd, computeCompletedFocusIds, } from './controller-shared.js';
23
+ export type { PrdControllerDeps, PrdControllerTickResult, PrdControllerTickAllResult, } from './controller-shared.js';
24
+ export { selfHealDonePrdFoci, runDonePrdSweepForProduct } from './done-sweep.js';
56
25
  export { computePrtFrontier };
57
26
  export { isPathwayViable };
58
- /**
59
- * Compute the set of focus ids whose delivery work is COMPLETE -- at least one
60
- * delivery exists AND every delivery is in execution_status 'done'. PURE.
61
- *
62
- * This is the completion bridge's signal: a focus is "done" when all its
63
- * deliveries have passed the verify gate (each against its own worktree). The
64
- * controller uses it to clear the obstacle an overcome remedies, advancing the
65
- * frontier without shelling out to build/test a shared checkout. A focus with
66
- * zero deliveries (freshly materialized, never run) is NOT complete.
67
- */
68
- export declare function computeCompletedFocusIds(deliveries: Array<{
69
- focusId: string;
70
- executionStatus: string;
71
- }>): Set<string>;
72
- export interface PrdControllerDeps {
73
- loadPrtGraph: (prdId: string) => Promise<{
74
- nodes: PrtNode[];
75
- edges: PrtEdge[];
76
- }>;
77
- /**
78
- * Load a single focus's deliveries (focusId + executionStatus), feeding the
79
- * completion bridge. Called once per overcome focus on the tree. Injected so
80
- * tests need not hit the API.
81
- */
82
- loadFocusDeliveries: (focusId: string) => Promise<Array<{
83
- focusId: string;
84
- executionStatus: string;
85
- }>>;
86
- markNodeCleared: (nodeId: string) => Promise<void>;
87
- /**
88
- * Finalize a completed frontier focus to status=complete via the sanctioned
89
- * PRD-path crossing (prd_frontier_focus_finalize). Called by the completion
90
- * bridge when an overcome's focus has finished all its delivery work, so the
91
- * focus reaches a terminal state instead of sitting status=active/role=null.
92
- * Optional so existing callers/tests that do not exercise the completion
93
- * bridge need not supply it; defaulted in `defaultDeps`.
94
- */
95
- finalizeFrontierFocus?: (focusId: string) => Promise<void>;
96
- /**
97
- * Drop the in-memory pending-spawn directive for a finalized focus, ending the
98
- * listener's "no assigned_agent_role_id; skipping spawn" loop. Returns whether
99
- * a directive was present. Optional (mirrors finalizeFrontierFocus);
100
- * defaulted in `defaultDeps`.
101
- */
102
- clearPendingSpawnDirective?: (focusId: string) => boolean;
103
- /**
104
- * Process-lifetime set of focus ids the completion-limbo self-heal has already
105
- * finalized, so an already-cleared overcome whose focus is complete-by-
106
- * deliveries is converged exactly ONCE rather than re-finalized every tick.
107
- * Optional: when absent the self-heal branch is disabled and the controller
108
- * keeps its prior finalize-only-on-fresh-clear behavior (back-compat for
109
- * callers/tests that do not exercise limbo recovery). Defaulted in defaultDeps.
110
- */
111
- selfHealedFocusIds?: Set<string>;
112
- /**
113
- * Process-lifetime set of product ids whose one-shot done-PRD limbo sweep has
114
- * completed, so loadDonePrds runs at most once per product per process.
115
- * Optional: when absent the done-PRD sweep in runPrdControllerTickAll is
116
- * skipped entirely (back-compat). Defaulted in defaultDeps.
117
- */
118
- doneSweepDoneProducts?: Set<string>;
119
- /**
120
- * Per-product consecutive-incomplete-pass counter for the done-PRD sweep, so a
121
- * persistent failure is abandoned + escalated after DONE_SWEEP_MAX_ATTEMPTS
122
- * instead of re-listing every tick. Optional: when absent the sweep retries an
123
- * incomplete pass indefinitely (prior behavior). Defaulted in defaultDeps.
124
- */
125
- doneSweepAttempts?: Map<string, number>;
126
- /**
127
- * List a product's active PRDs (the controller's per-tick working set).
128
- * Injected so runPrdControllerTickAll is testable without the API; defaults to
129
- * the live loadActivePrds query in defaultDeps.
130
- */
131
- loadActivePrds?: (productId: string) => Promise<Prd[]>;
132
- /**
133
- * List a product's done PRDs (feeds the one-shot done-PRD limbo sweep).
134
- * Injected so the sweep is testable without the API; defaults to the live
135
- * loadDonePrds query in defaultDeps.
136
- */
137
- loadDonePrds?: (productId: string) => Promise<Prd[]>;
138
- materializeOvercome: (nodeId: string) => Promise<{
139
- focusId: string;
140
- }>;
141
- armFocus: (focusId: string, agentRoleId: string) => Promise<void>;
142
- markPrdDone: (prdId: string) => Promise<void>;
143
- resolveArmRoleId: (prd: Prd) => Promise<string | null>;
144
- loadPathways: (prdId: string) => Promise<Pathway[]>;
145
- commitPathway: (prdId: string, pathwayId: string) => Promise<void>;
146
- fileEscalation: (input: FileEscalationInput) => Promise<void>;
147
- /**
148
- * DB-backed dedup check: is there already an OPEN (pending/in_review) PRD
149
- * machine escalation of the given `kind` (machine_discriminator) for this PRD?
150
- * When it returns true, the cadence-reachable escalation paths skip filing a
151
- * duplicate so even a genuinely warranted, persistent condition yields exactly
152
- * ONE open row per (PRD, kind) instead of a per-cadence-tick flood. Keyed by
153
- * kind so BOTH the steward divergence path
154
- * ('prd_divergence_steward_escalation') and the reflex no-surviving-path
155
- * fallback ('prd_divergence_no_surviving_path') share the guard -- the latter
156
- * has the identical un-deduped storm structure. DB-backed so the dedup survives
157
- * a daemon restart (unlike the process-lifetime no-role Set). Optional so
158
- * existing callers/tests need not supply it; defaulted in defaultDeps. When
159
- * absent, no dedup is applied (prior behavior preserved for callers that opt
160
- * out).
161
- */
162
- hasOpenPrdEscalation?: (prdId: string, kind: string) => Promise<boolean>;
163
- /**
164
- * The CORTEX: on divergence of a Played PRD, the steward decides re-capture
165
- * vs escalate (overriding the deterministic selectSurvivingPath). Returns null
166
- * to fall back to the deterministic reflex. Optional so existing callers/tests
167
- * without a steward keep the deterministic behavior; defaulted in defaultDeps.
168
- */
169
- runStewardJudgment?: (input: StewardJudgmentInput) => Promise<StewardDecision | null>;
170
- /** Org scope used when filing a no-surviving-path escalation. */
171
- organizationId: string;
172
- worktreeDir: string;
173
- /**
174
- * Per-PRD last-steward-run map for cadence tracking. Defaults to the module
175
- * singleton. Tests inject a fresh Map to assert cadence behavior without
176
- * depending on real elapsed time.
177
- */
178
- stewardLastRun?: Map<string, number>;
179
- /**
180
- * Cadence period in ms. Defaults to STEWARD_CADENCE_MS. Tests inject 0 to
181
- * force an immediate cadence run, or a large value to suppress it.
182
- */
183
- stewardCadenceMs?: number;
184
- }
185
- export interface PrdControllerTickResult {
186
- obstaclesEvaluated: number;
187
- obstaclesCleared: number;
188
- materialized: number;
189
- armed: number;
190
- skippedNoRole: number;
191
- /**
192
- * Completed frontier foci finalized to status=complete this tick (with their
193
- * pending spawn directive cleared). The autonomous-completion counterpart to
194
- * `materialized` -- frontier foci that reached a terminal state.
195
- */
196
- focusesFinalized: number;
197
- prdDone: boolean;
198
- /**
199
- * True when this tick computed a live frontier for an active PRD that could
200
- * NOT be armed because prds.assigned_agent_role_id is null (PRD authored but
201
- * not yet Played). A VALID WAITING STATE -- not an error: the controller skips
202
- * arming silently and the daemon log warns; no escalation is filed. Mirrors
203
- * `skippedNoRole > 0` so the `prdsBlockedNoRole` aggregate stays meaningful.
204
- */
205
- frontierBlockedNoRole: boolean;
206
- /** True when this tick detected one or more divergence signals. */
207
- diverged: boolean;
208
- /** True when realign re-pointed the committed pathway (re-capture). */
209
- pathSwitched: boolean;
210
- /** True when divergence had no surviving path and a human was escalated. */
211
- escalated: boolean;
212
- }
213
27
  export declare function runPrdControllerTick(prd: Prd, deps: PrdControllerDeps): Promise<PrdControllerTickResult>;
214
- export interface PrdControllerTickAllResult {
215
- obstaclesEvaluated: number;
216
- obstaclesCleared: number;
217
- materialized: number;
218
- armed: number;
219
- skippedNoRole: number;
220
- /** Completed frontier foci finalized to status=complete this pass. */
221
- focusesFinalized: number;
222
- prdsDone: number;
223
- /**
224
- * PRDs in the authored-but-unplayed waiting state this pass: an active
225
- * frontier with no arm role (assigned_agent_role_id null). Surfaced via the
226
- * daemon log, never an escalation.
227
- */
228
- prdsBlockedNoRole: number;
229
- /** PRDs that detected divergence this pass. */
230
- prdsDiverged: number;
231
- /** PRDs whose committed pathway was re-pointed (re-capture). */
232
- prdsPathSwitched: number;
233
- /** PRDs escalated to a human for lack of a surviving path. */
234
- prdsEscalated: number;
235
- }
236
- /**
237
- * Done-PRD completion-limbo self-heal for a SINGLE done PRD.
238
- *
239
- * The per-tick self-heal in runPrdControllerTick only sees a PRD while it is
240
- * ACTIVE (loadActivePrds filters status='active'), so it converges stranded
241
- * foci on or before the done-transition. A PRD that ALREADY reached done under
242
- * an earlier daemon -- before that self-heal existed -- is never re-ticked, so
243
- * any focus it materialized that is complete-by-deliveries yet still
244
- * status=active stays stranded forever, needing a one-off operator data fix.
245
- *
246
- * This converges those without an operator: finalize ANY materialized
247
- * (overcome-anchored) focus of the done PRD that is complete-by-deliveries but
248
- * not yet terminal. Bounded to once per focus per process via selfHealedFocusIds
249
- * (shared with the active-tick self-heal so the two paths never double-finalize
250
- * the same focus). A focus that is NOT complete-by-deliveries (zero deliveries,
251
- * or only non-done terminal deliveries) is simply skipped -- it was never
252
- * finalizable. finalizeFrontierFocus is idempotent + overcome-anchor-scoped
253
- * server-side, so the human-owned focus.status invariant stays intact for
254
- * non-PRD foci. Disabled (no-op) when selfHealedFocusIds is absent, matching the
255
- * active-tick self-heal's back-compat gate.
256
- */
257
- export declare function selfHealDonePrdFoci(prd: Prd, deps: PrdControllerDeps): Promise<{
258
- focusesFinalized: number;
259
- }>;
260
- /**
261
- * One-shot done-PRD limbo sweep for a single product: list the product's done
262
- * PRDs and self-heal each one's stranded complete-by-deliveries foci.
263
- *
264
- * Returns `complete=true` only when the list succeeded AND every per-PRD
265
- * self-heal succeeded, so the caller records the product as swept and never
266
- * re-lists. A list failure or any per-PRD failure returns `complete=false` so
267
- * the next tick retries (the selfHealedFocusIds ledger keeps the retry from
268
- * re-finalizing foci already converged). A focus merely skipped for not being
269
- * complete-by-deliveries is NOT a failure -- it does not block completion, so a
270
- * done PRD whose focus can never complete does not pin the product to perpetual
271
- * re-reads.
272
- *
273
- * No-op (complete=true) when the sweep is disabled (no selfHealedFocusIds dep).
274
- */
275
- export declare function runDonePrdSweepForProduct(productId: string, deps: PrdControllerDeps): Promise<{
276
- focusesFinalized: number;
277
- complete: boolean;
278
- }>;
279
28
  export declare function runPrdControllerTickAll(config: DaemonConfig, deps?: Partial<PrdControllerDeps>): Promise<PrdControllerTickAllResult>;
280
29
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/prd/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/prd/controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAWL,KAAK,GAAG,EACT,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAcjD,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAChC,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAsDjF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,CAAC;AAK3B,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,uBAAuB,CAAC,CAuWlC;AAuDD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAChC,OAAO,CAAC,0BAA0B,CAAC,CAkIrC"}
@@ -14,18 +14,25 @@
14
14
  * frontier. The whole milestone then runs progressively over the existing
15
15
  * Foci -> Delivery -> Issue executor.
16
16
  */
17
- import { DELIVERY_STATUS } from '@telora/daemon-core';
18
17
  import { configForProduct } from '../shell/config.js';
19
18
  import { loadActivePrds, loadDonePrds, loadPrtGraph, materializeOvercome, armFocus, markNodeCleared, finalizeFrontierFocus, markPrdDone, loadPathways, commitPathway, } from '../queries/prd.js';
20
19
  import { clearPendingSpawnDirective } from '../directive/directive-queue.js';
21
20
  import { getFocusDeliveries } from '../queries/focuses.js';
22
- import { hasOpenPrdEscalation } from '../queries/issues.js';
21
+ import { hasOpenPrdEscalation } from '../queries/escalations.js';
23
22
  import { computePrtFrontier } from './frontier.js';
24
23
  import { isPathwayViable } from './viability.js';
25
24
  import { fileEscalation } from '../completion/escalations.js';
26
25
  import { detectDivergence, selectSurvivingPath, } from './divergence.js';
27
26
  import { runStewardJudgment, defaultStewardDeps, } from './steward.js';
28
27
  import { createLogger } from '../shell/log.js';
28
+ import { STEWARD_CADENCE_MS, PRD_DONE_SWEEP_ABANDONED, DONE_SWEEP_MAX_ATTEMPTS, resolveArmRoleIdFromPrd, computeCompletedFocusIds, } from './controller-shared.js';
29
+ import { runDonePrdSweepForProduct } from './done-sweep.js';
30
+ // The shared types + pure helpers moved to ./controller-shared.js and the
31
+ // done-PRD sweep to ./done-sweep.js (file-size limit); re-exported so existing
32
+ // importers keep resolving them from ./controller.js (matching the
33
+ // computePrtFrontier / isPathwayViable re-exports below). Neither imports back.
34
+ export { STEWARD_CADENCE_MS, PRD_DONE_SWEEP_ABANDONED, DONE_SWEEP_MAX_ATTEMPTS, resolveArmRoleIdFromPrd, computeCompletedFocusIds, } from './controller-shared.js';
35
+ export { selfHealDonePrdFoci, runDonePrdSweepForProduct } from './done-sweep.js';
29
36
  const log = createLogger({ module: 'prd-controller' });
30
37
  /**
31
38
  * Focus ids the completion-limbo self-heal has already finalized this process.
@@ -64,41 +71,6 @@ const doneSweepAttemptsDefault = new Map();
64
71
  * Injected in tests so cadence behavior is verifiable without real timers.
65
72
  */
66
73
  const stewardLastRunMs = new Map();
67
- /**
68
- * Steward cadence: the minimum interval between proactive steward monitoring
69
- * runs for a Played PRD -- the "runs on a cadence" path of the AC. 15 minutes
70
- * is substantially less frequent than the 60s controller tick (satisfies "not
71
- * every tick") without making the cortex unresponsive to gradual drift.
72
- * Exported so tests can inject a zero-ms cadence to force an immediate run.
73
- */
74
- export const STEWARD_CADENCE_MS = 15 * 60 * 1000;
75
- /**
76
- * Stable machine reason for the "done-PRD completion-limbo sweep keeps failing"
77
- * signal: the per-product one-shot sweep hit DONE_SWEEP_MAX_ATTEMPTS consecutive
78
- * incomplete passes and was abandoned (product marked swept) so a persistently
79
- * failing done PRD does not pin the product to a per-tick loadDonePrds re-list.
80
- */
81
- export const PRD_DONE_SWEEP_ABANDONED = 'prd_done_sweep_abandoned';
82
- /**
83
- * Consecutive incomplete done-sweep passes tolerated for a product before the
84
- * sweep is abandoned and escalated. A merely-non-completable focus is skipped
85
- * (not a failure), so this trips only on a genuine persistent error (unreadable
86
- * PRT graph, finalize that keeps rejecting) -- bounding the retry instead of
87
- * re-listing the growing done set every tick forever.
88
- */
89
- export const DONE_SWEEP_MAX_ATTEMPTS = 3;
90
- /**
91
- * Resolve the arm role for a PRD from the PRD ROW -- the per-entity "Play"
92
- * signal (prds.assigned_agent_role_id), or null if the PRD is paused.
93
- *
94
- * This is the ONLY source: the global TELORA_PRD_ARM_ROLE_ID env var has been
95
- * removed outright (it was the out-of-band toggle behind the One Screen RTS
96
- * silent stall). Play/pause is data on the PRD row, set via telora_prd update.
97
- * Pure + exported so the row-reads-not-env contract is unit-testable.
98
- */
99
- export function resolveArmRoleIdFromPrd(prd) {
100
- return prd.assignedAgentRoleId ?? null;
101
- }
102
74
  // computePrtFrontier moved to ./prd-frontier.js (dependency-light, so the
103
75
  // prd.context resolver can reuse it without dragging in this controller's heavy
104
76
  // module graph). Imported above for internal use; re-exported here for existing
@@ -109,37 +81,6 @@ export { computePrtFrontier };
109
81
  // re-exported here for existing importers/tests that reference it from
110
82
  // prd-controller.
111
83
  export { isPathwayViable };
112
- /**
113
- * Compute the set of focus ids whose delivery work is COMPLETE -- at least one
114
- * delivery exists AND every delivery is in execution_status 'done'. PURE.
115
- *
116
- * This is the completion bridge's signal: a focus is "done" when all its
117
- * deliveries have passed the verify gate (each against its own worktree). The
118
- * controller uses it to clear the obstacle an overcome remedies, advancing the
119
- * frontier without shelling out to build/test a shared checkout. A focus with
120
- * zero deliveries (freshly materialized, never run) is NOT complete.
121
- */
122
- export function computeCompletedFocusIds(deliveries) {
123
- const byFocus = new Map();
124
- for (const d of deliveries) {
125
- if (!d.focusId) {
126
- continue;
127
- }
128
- const acc = byFocus.get(d.focusId) ?? { total: 0, done: 0 };
129
- acc.total += 1;
130
- if (d.executionStatus === DELIVERY_STATUS.DONE) {
131
- acc.done += 1;
132
- }
133
- byFocus.set(d.focusId, acc);
134
- }
135
- const complete = new Set();
136
- for (const [focusId, { total, done }] of byFocus) {
137
- if (total > 0 && done === total) {
138
- complete.add(focusId);
139
- }
140
- }
141
- return complete;
142
- }
143
84
  export async function runPrdControllerTick(prd, deps) {
144
85
  const { nodes, edges } = await deps.loadPrtGraph(prd.id);
145
86
  const obstacles = nodes.filter((node) => node.nodeType === 'obstacle');
@@ -518,104 +459,6 @@ function defaultDeps(config) {
518
459
  stewardCadenceMs: STEWARD_CADENCE_MS,
519
460
  };
520
461
  }
521
- /**
522
- * Done-PRD completion-limbo self-heal for a SINGLE done PRD.
523
- *
524
- * The per-tick self-heal in runPrdControllerTick only sees a PRD while it is
525
- * ACTIVE (loadActivePrds filters status='active'), so it converges stranded
526
- * foci on or before the done-transition. A PRD that ALREADY reached done under
527
- * an earlier daemon -- before that self-heal existed -- is never re-ticked, so
528
- * any focus it materialized that is complete-by-deliveries yet still
529
- * status=active stays stranded forever, needing a one-off operator data fix.
530
- *
531
- * This converges those without an operator: finalize ANY materialized
532
- * (overcome-anchored) focus of the done PRD that is complete-by-deliveries but
533
- * not yet terminal. Bounded to once per focus per process via selfHealedFocusIds
534
- * (shared with the active-tick self-heal so the two paths never double-finalize
535
- * the same focus). A focus that is NOT complete-by-deliveries (zero deliveries,
536
- * or only non-done terminal deliveries) is simply skipped -- it was never
537
- * finalizable. finalizeFrontierFocus is idempotent + overcome-anchor-scoped
538
- * server-side, so the human-owned focus.status invariant stays intact for
539
- * non-PRD foci. Disabled (no-op) when selfHealedFocusIds is absent, matching the
540
- * active-tick self-heal's back-compat gate.
541
- */
542
- export async function selfHealDonePrdFoci(prd, deps) {
543
- if (!deps.selfHealedFocusIds) {
544
- return { focusesFinalized: 0 };
545
- }
546
- const { nodes } = await deps.loadPrtGraph(prd.id);
547
- const overcomeFocusIds = Array.from(new Set(nodes
548
- .filter((n) => n.nodeType === 'overcome' && n.focusId !== null)
549
- .map((n) => n.focusId)));
550
- if (overcomeFocusIds.length === 0) {
551
- return { focusesFinalized: 0 };
552
- }
553
- const focusDeliveries = [];
554
- for (const fid of overcomeFocusIds) {
555
- const ds = await deps.loadFocusDeliveries(fid);
556
- focusDeliveries.push(...ds);
557
- }
558
- const completedFocusIds = computeCompletedFocusIds(focusDeliveries);
559
- let focusesFinalized = 0;
560
- for (const focusId of overcomeFocusIds) {
561
- if (!completedFocusIds.has(focusId)) {
562
- continue;
563
- }
564
- if (deps.selfHealedFocusIds.has(focusId)) {
565
- continue;
566
- }
567
- await deps.finalizeFrontierFocus?.(focusId);
568
- deps.clearPendingSpawnDirective?.(focusId);
569
- deps.selfHealedFocusIds.add(focusId);
570
- focusesFinalized += 1;
571
- }
572
- return { focusesFinalized };
573
- }
574
- /**
575
- * One-shot done-PRD limbo sweep for a single product: list the product's done
576
- * PRDs and self-heal each one's stranded complete-by-deliveries foci.
577
- *
578
- * Returns `complete=true` only when the list succeeded AND every per-PRD
579
- * self-heal succeeded, so the caller records the product as swept and never
580
- * re-lists. A list failure or any per-PRD failure returns `complete=false` so
581
- * the next tick retries (the selfHealedFocusIds ledger keeps the retry from
582
- * re-finalizing foci already converged). A focus merely skipped for not being
583
- * complete-by-deliveries is NOT a failure -- it does not block completion, so a
584
- * done PRD whose focus can never complete does not pin the product to perpetual
585
- * re-reads.
586
- *
587
- * No-op (complete=true) when the sweep is disabled (no selfHealedFocusIds dep).
588
- */
589
- export async function runDonePrdSweepForProduct(productId, deps) {
590
- // Truly a no-op when the sweep is disabled: skip the list call entirely so the
591
- // caller marks the product swept without touching the API. (selfHealDonePrdFoci
592
- // would no-op per-PRD anyway, but listing first would be wasted work.)
593
- if (!deps.selfHealedFocusIds) {
594
- return { focusesFinalized: 0, complete: true };
595
- }
596
- const list = deps.loadDonePrds ?? loadDonePrds;
597
- let donePrds;
598
- try {
599
- donePrds = await list(productId);
600
- }
601
- catch (err) {
602
- log.warn(`[prd-controller] failed to load done PRDs for product ${productId}:`, err.message);
603
- return { focusesFinalized: 0, complete: false };
604
- }
605
- let focusesFinalized = 0;
606
- let complete = true;
607
- for (const prd of donePrds) {
608
- try {
609
- const result = await selfHealDonePrdFoci(prd, deps);
610
- focusesFinalized += result.focusesFinalized;
611
- }
612
- catch (err) {
613
- complete = false;
614
- log.warn(`[prd-controller] done-PRD self-heal failed for PRD ${prd.id}:`, err.message);
615
- }
616
- }
617
- return { focusesFinalized, complete };
618
- }
619
462
  export async function runPrdControllerTickAll(config, deps) {
620
463
  const totals = {
621
464
  obstaclesEvaluated: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/prd/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/prd/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Done-PRD completion-limbo self-heal sweep.
3
+ *
4
+ * Converges foci that a DONE PRD materialized but left stranded status=active
5
+ * (complete-by-deliveries but never finalized), which the active-tick self-heal
6
+ * in prd/controller.ts never sees. Split out of prd/controller.ts (file-size
7
+ * limit); depends only on the shared leaf (prd/controller-shared.ts) + queries,
8
+ * never on controller.ts -> no cycle.
9
+ */
10
+ import { type Prd } from '../queries/prd.js';
11
+ import { type PrdControllerDeps } from './controller-shared.js';
12
+ /**
13
+ * Done-PRD completion-limbo self-heal for a SINGLE done PRD.
14
+ *
15
+ * The per-tick self-heal in runPrdControllerTick only sees a PRD while it is
16
+ * ACTIVE (loadActivePrds filters status='active'), so it converges stranded
17
+ * foci on or before the done-transition. A PRD that ALREADY reached done under
18
+ * an earlier daemon -- before that self-heal existed -- is never re-ticked, so
19
+ * any focus it materialized that is complete-by-deliveries yet still
20
+ * status=active stays stranded forever, needing a one-off operator data fix.
21
+ *
22
+ * This converges those without an operator: finalize ANY materialized
23
+ * (overcome-anchored) focus of the done PRD that is complete-by-deliveries but
24
+ * not yet terminal. Bounded to once per focus per process via selfHealedFocusIds
25
+ * (shared with the active-tick self-heal so the two paths never double-finalize
26
+ * the same focus). A focus that is NOT complete-by-deliveries (zero deliveries,
27
+ * or only non-done terminal deliveries) is simply skipped -- it was never
28
+ * finalizable. finalizeFrontierFocus is idempotent + overcome-anchor-scoped
29
+ * server-side, so the human-owned focus.status invariant stays intact for
30
+ * non-PRD foci. Disabled (no-op) when selfHealedFocusIds is absent, matching the
31
+ * active-tick self-heal's back-compat gate.
32
+ */
33
+ export declare function selfHealDonePrdFoci(prd: Prd, deps: PrdControllerDeps): Promise<{
34
+ focusesFinalized: number;
35
+ }>;
36
+ /**
37
+ * One-shot done-PRD limbo sweep for a single product: list the product's done
38
+ * PRDs and self-heal each one's stranded complete-by-deliveries foci.
39
+ *
40
+ * Returns `complete=true` only when the list succeeded AND every per-PRD
41
+ * self-heal succeeded, so the caller records the product as swept and never
42
+ * re-lists. A list failure or any per-PRD failure returns `complete=false` so
43
+ * the next tick retries (the selfHealedFocusIds ledger keeps the retry from
44
+ * re-finalizing foci already converged). A focus merely skipped for not being
45
+ * complete-by-deliveries is NOT a failure -- it does not block completion, so a
46
+ * done PRD whose focus can never complete does not pin the product to perpetual
47
+ * re-reads.
48
+ *
49
+ * No-op (complete=true) when the sweep is disabled (no selfHealedFocusIds dep).
50
+ */
51
+ export declare function runDonePrdSweepForProduct(productId: string, deps: PrdControllerDeps): Promise<{
52
+ focusesFinalized: number;
53
+ complete: boolean;
54
+ }>;
55
+ //# sourceMappingURL=done-sweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"done-sweep.d.ts","sourceRoot":"","sources":["../../src/prd/done-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,wBAAwB,CAAC;AAI1F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCvC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAiC1D"}