@telora/daemon 0.16.33 → 0.16.44

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 (345) hide show
  1. package/build-info.json +2 -2
  2. package/dist/assembly-resolvers.d.ts +13 -65
  3. package/dist/assembly-resolvers.d.ts.map +1 -1
  4. package/dist/assembly-resolvers.js +15 -1915
  5. package/dist/assembly-resolvers.js.map +1 -1
  6. package/dist/audit-phase.d.ts +2 -2
  7. package/dist/audit-phase.d.ts.map +1 -1
  8. package/dist/audit-phase.js +1 -1
  9. package/dist/audit-phase.js.map +1 -1
  10. package/dist/{completion-handler.d.ts → completion/agent-completion.d.ts} +3 -3
  11. package/dist/completion/agent-completion.d.ts.map +1 -0
  12. package/dist/{completion-handler.js → completion/agent-completion.js} +7 -7
  13. package/dist/completion/agent-completion.js.map +1 -0
  14. package/dist/{completion-detector.d.ts → completion/detector.d.ts} +1 -1
  15. package/dist/completion/detector.d.ts.map +1 -0
  16. package/dist/{completion-detector.js → completion/detector.js} +1 -1
  17. package/dist/completion/detector.js.map +1 -0
  18. package/dist/{focus-completion-event.d.ts → completion/event.d.ts} +21 -3
  19. package/dist/completion/event.d.ts.map +1 -0
  20. package/dist/{focus-completion-event.js → completion/event.js} +55 -9
  21. package/dist/completion/event.js.map +1 -0
  22. package/dist/completion/index.d.ts +24 -0
  23. package/dist/completion/index.d.ts.map +1 -0
  24. package/dist/completion/index.js +25 -0
  25. package/dist/completion/index.js.map +1 -0
  26. package/dist/{focus-completion.d.ts → completion/team-completion.d.ts} +11 -11
  27. package/dist/completion/team-completion.d.ts.map +1 -0
  28. package/dist/{focus-completion.js → completion/team-completion.js} +37 -26
  29. package/dist/completion/team-completion.js.map +1 -0
  30. package/dist/{focus-team-lifecycle.d.ts → completion/team-lifecycle.d.ts} +2 -2
  31. package/dist/completion/team-lifecycle.d.ts.map +1 -0
  32. package/dist/{focus-team-lifecycle.js → completion/team-lifecycle.js} +12 -12
  33. package/dist/completion/team-lifecycle.js.map +1 -0
  34. package/dist/directive/directive-queue.d.ts +117 -0
  35. package/dist/directive/directive-queue.d.ts.map +1 -0
  36. package/dist/directive/directive-queue.js +114 -0
  37. package/dist/directive/directive-queue.js.map +1 -0
  38. package/dist/directive/stage-tracker.d.ts +23 -0
  39. package/dist/directive/stage-tracker.d.ts.map +1 -0
  40. package/dist/directive/stage-tracker.js +27 -0
  41. package/dist/directive/stage-tracker.js.map +1 -0
  42. package/dist/directive-executor.d.ts +3 -72
  43. package/dist/directive-executor.d.ts.map +1 -1
  44. package/dist/directive-executor.js +31 -83
  45. package/dist/directive-executor.js.map +1 -1
  46. package/dist/focus-engine.d.ts.map +1 -1
  47. package/dist/focus-engine.js +1 -2
  48. package/dist/focus-engine.js.map +1 -1
  49. package/dist/focus-executor.d.ts +4 -4
  50. package/dist/focus-executor.d.ts.map +1 -1
  51. package/dist/focus-executor.js +6 -5
  52. package/dist/focus-executor.js.map +1 -1
  53. package/dist/focus-merge.js +1 -1
  54. package/dist/focus-merge.js.map +1 -1
  55. package/dist/focus-prompt-builder.d.ts.map +1 -1
  56. package/dist/focus-prompt-builder.js +5 -39
  57. package/dist/focus-prompt-builder.js.map +1 -1
  58. package/dist/listener.js +1 -1
  59. package/dist/listener.js.map +1 -1
  60. package/dist/output-monitor.d.ts +1 -1
  61. package/dist/output-monitor.d.ts.map +1 -1
  62. package/dist/output-monitor.js +1 -1
  63. package/dist/output-monitor.js.map +1 -1
  64. package/dist/prompt-listing.d.ts +26 -0
  65. package/dist/prompt-listing.d.ts.map +1 -0
  66. package/dist/prompt-listing.js +55 -0
  67. package/dist/prompt-listing.js.map +1 -0
  68. package/dist/prompt-sections/context-sections.d.ts +32 -0
  69. package/dist/prompt-sections/context-sections.d.ts.map +1 -0
  70. package/dist/prompt-sections/context-sections.js +86 -0
  71. package/dist/prompt-sections/context-sections.js.map +1 -0
  72. package/dist/prompt-sections/execution-sections.d.ts +82 -0
  73. package/dist/prompt-sections/execution-sections.d.ts.map +1 -0
  74. package/dist/prompt-sections/execution-sections.js +601 -0
  75. package/dist/prompt-sections/execution-sections.js.map +1 -0
  76. package/dist/prompt-sections/persona-sections.d.ts +133 -0
  77. package/dist/prompt-sections/persona-sections.d.ts.map +1 -0
  78. package/dist/prompt-sections/persona-sections.js +317 -0
  79. package/dist/prompt-sections/persona-sections.js.map +1 -0
  80. package/dist/prompt-sections/role-sections.d.ts +24 -0
  81. package/dist/prompt-sections/role-sections.d.ts.map +1 -0
  82. package/dist/prompt-sections/role-sections.js +78 -0
  83. package/dist/prompt-sections/role-sections.js.map +1 -0
  84. package/dist/prompt-sections/shared.d.ts +66 -0
  85. package/dist/prompt-sections/shared.d.ts.map +1 -0
  86. package/dist/prompt-sections/shared.js +33 -0
  87. package/dist/prompt-sections/shared.js.map +1 -0
  88. package/dist/queries/index.d.ts +13 -0
  89. package/dist/queries/index.d.ts.map +1 -1
  90. package/dist/queries/index.js +9 -0
  91. package/dist/queries/index.js.map +1 -1
  92. package/dist/resolvers/agent-escalations.d.ts +2 -0
  93. package/dist/resolvers/agent-escalations.d.ts.map +1 -0
  94. package/dist/resolvers/agent-escalations.js +33 -0
  95. package/dist/resolvers/agent-escalations.js.map +1 -0
  96. package/dist/resolvers/agent-session-summaries.d.ts +2 -0
  97. package/dist/resolvers/agent-session-summaries.d.ts.map +1 -0
  98. package/dist/resolvers/agent-session-summaries.js +28 -0
  99. package/dist/resolvers/agent-session-summaries.js.map +1 -0
  100. package/dist/resolvers/delivery-acceptance-criteria.d.ts +2 -0
  101. package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -0
  102. package/dist/resolvers/delivery-acceptance-criteria.js +19 -0
  103. package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -0
  104. package/dist/resolvers/delivery-description.d.ts +2 -0
  105. package/dist/resolvers/delivery-description.d.ts.map +1 -0
  106. package/dist/resolvers/delivery-description.js +19 -0
  107. package/dist/resolvers/delivery-description.js.map +1 -0
  108. package/dist/resolvers/delivery-issues.d.ts +2 -0
  109. package/dist/resolvers/delivery-issues.d.ts.map +1 -0
  110. package/dist/resolvers/delivery-issues.js +58 -0
  111. package/dist/resolvers/delivery-issues.js.map +1 -0
  112. package/dist/resolvers/delivery-listing.d.ts +2 -0
  113. package/dist/resolvers/delivery-listing.d.ts.map +1 -0
  114. package/dist/resolvers/delivery-listing.js +54 -0
  115. package/dist/resolvers/delivery-listing.js.map +1 -0
  116. package/dist/resolvers/delivery-tech-context.d.ts +2 -0
  117. package/dist/resolvers/delivery-tech-context.d.ts.map +1 -0
  118. package/dist/resolvers/delivery-tech-context.js +19 -0
  119. package/dist/resolvers/delivery-tech-context.js.map +1 -0
  120. package/dist/resolvers/deployment-profile.d.ts +2 -0
  121. package/dist/resolvers/deployment-profile.d.ts.map +1 -0
  122. package/dist/resolvers/deployment-profile.js +28 -0
  123. package/dist/resolvers/deployment-profile.js.map +1 -0
  124. package/dist/resolvers/focus-anchoring-injections.d.ts +2 -0
  125. package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -0
  126. package/dist/resolvers/focus-anchoring-injections.js +123 -0
  127. package/dist/resolvers/focus-anchoring-injections.js.map +1 -0
  128. package/dist/resolvers/focus-context.d.ts +2 -0
  129. package/dist/resolvers/focus-context.d.ts.map +1 -0
  130. package/dist/resolvers/focus-context.js +47 -0
  131. package/dist/resolvers/focus-context.js.map +1 -0
  132. package/dist/resolvers/focus-injections.d.ts +2 -0
  133. package/dist/resolvers/focus-injections.d.ts.map +1 -0
  134. package/dist/resolvers/focus-injections.js +75 -0
  135. package/dist/resolvers/focus-injections.js.map +1 -0
  136. package/dist/resolvers/focus-last-review-report.d.ts +2 -0
  137. package/dist/resolvers/focus-last-review-report.d.ts.map +1 -0
  138. package/dist/resolvers/focus-last-review-report.js +46 -0
  139. package/dist/resolvers/focus-last-review-report.js.map +1 -0
  140. package/dist/resolvers/focus-reality-tree.d.ts +2 -0
  141. package/dist/resolvers/focus-reality-tree.d.ts.map +1 -0
  142. package/dist/resolvers/focus-reality-tree.js +50 -0
  143. package/dist/resolvers/focus-reality-tree.js.map +1 -0
  144. package/dist/resolvers/git-diff-against-base.d.ts +2 -0
  145. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -0
  146. package/dist/resolvers/git-diff-against-base.js +39 -0
  147. package/dist/resolvers/git-diff-against-base.js.map +1 -0
  148. package/dist/resolvers/guards-evaluation-results.d.ts +2 -0
  149. package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -0
  150. package/dist/resolvers/guards-evaluation-results.js +31 -0
  151. package/dist/resolvers/guards-evaluation-results.js.map +1 -0
  152. package/dist/resolvers/index.d.ts +50 -0
  153. package/dist/resolvers/index.d.ts.map +1 -0
  154. package/dist/resolvers/index.js +51 -0
  155. package/dist/resolvers/index.js.map +1 -0
  156. package/dist/resolvers/loop-context.d.ts +2 -0
  157. package/dist/resolvers/loop-context.d.ts.map +1 -0
  158. package/dist/resolvers/loop-context.js +113 -0
  159. package/dist/resolvers/loop-context.js.map +1 -0
  160. package/dist/resolvers/loop-delivery-index.d.ts +2 -0
  161. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -0
  162. package/dist/resolvers/loop-delivery-index.js +69 -0
  163. package/dist/resolvers/loop-delivery-index.js.map +1 -0
  164. package/dist/resolvers/loop-documents.d.ts +2 -0
  165. package/dist/resolvers/loop-documents.d.ts.map +1 -0
  166. package/dist/resolvers/loop-documents.js +30 -0
  167. package/dist/resolvers/loop-documents.js.map +1 -0
  168. package/dist/resolvers/loop-expected-effects.d.ts +2 -0
  169. package/dist/resolvers/loop-expected-effects.d.ts.map +1 -0
  170. package/dist/resolvers/loop-expected-effects.js +68 -0
  171. package/dist/resolvers/loop-expected-effects.js.map +1 -0
  172. package/dist/resolvers/loop-frt-statement.d.ts +2 -0
  173. package/dist/resolvers/loop-frt-statement.d.ts.map +1 -0
  174. package/dist/resolvers/loop-frt-statement.js +39 -0
  175. package/dist/resolvers/loop-frt-statement.js.map +1 -0
  176. package/dist/resolvers/loop-injection.d.ts +2 -0
  177. package/dist/resolvers/loop-injection.d.ts.map +1 -0
  178. package/dist/resolvers/loop-injection.js +48 -0
  179. package/dist/resolvers/loop-injection.js.map +1 -0
  180. package/dist/resolvers/loop-persona.d.ts +2 -0
  181. package/dist/resolvers/loop-persona.d.ts.map +1 -0
  182. package/dist/resolvers/loop-persona.js +40 -0
  183. package/dist/resolvers/loop-persona.js.map +1 -0
  184. package/dist/resolvers/loop-questions.d.ts +2 -0
  185. package/dist/resolvers/loop-questions.d.ts.map +1 -0
  186. package/dist/resolvers/loop-questions.js +49 -0
  187. package/dist/resolvers/loop-questions.js.map +1 -0
  188. package/dist/resolvers/loop-upstream-udes.d.ts +2 -0
  189. package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -0
  190. package/dist/resolvers/loop-upstream-udes.js +88 -0
  191. package/dist/resolvers/loop-upstream-udes.js.map +1 -0
  192. package/dist/resolvers/reality-metrics.d.ts +2 -0
  193. package/dist/resolvers/reality-metrics.d.ts.map +1 -0
  194. package/dist/resolvers/reality-metrics.js +86 -0
  195. package/dist/resolvers/reality-metrics.js.map +1 -0
  196. package/dist/resolvers/reality-projections.d.ts +2 -0
  197. package/dist/resolvers/reality-projections.d.ts.map +1 -0
  198. package/dist/resolvers/reality-projections.js +44 -0
  199. package/dist/resolvers/reality-projections.js.map +1 -0
  200. package/dist/resolvers/reality-tree-snapshot.d.ts +2 -0
  201. package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -0
  202. package/dist/resolvers/reality-tree-snapshot.js +45 -0
  203. package/dist/resolvers/reality-tree-snapshot.js.map +1 -0
  204. package/dist/resolvers/retired-injections.d.ts +2 -0
  205. package/dist/resolvers/retired-injections.d.ts.map +1 -0
  206. package/dist/resolvers/retired-injections.js +83 -0
  207. package/dist/resolvers/retired-injections.js.map +1 -0
  208. package/dist/resolvers/review-outcomes.d.ts +2 -0
  209. package/dist/resolvers/review-outcomes.d.ts.map +1 -0
  210. package/dist/resolvers/review-outcomes.js +38 -0
  211. package/dist/resolvers/review-outcomes.js.map +1 -0
  212. package/dist/resolvers/security-advisory.d.ts +2 -0
  213. package/dist/resolvers/security-advisory.d.ts.map +1 -0
  214. package/dist/resolvers/security-advisory.js +97 -0
  215. package/dist/resolvers/security-advisory.js.map +1 -0
  216. package/dist/resolvers/shared/audit.d.ts +19 -0
  217. package/dist/resolvers/shared/audit.d.ts.map +1 -0
  218. package/dist/resolvers/shared/audit.js +28 -0
  219. package/dist/resolvers/shared/audit.js.map +1 -0
  220. package/dist/resolvers/shared/format.d.ts +6 -0
  221. package/dist/resolvers/shared/format.d.ts.map +1 -0
  222. package/dist/resolvers/shared/format.js +17 -0
  223. package/dist/resolvers/shared/format.js.map +1 -0
  224. package/dist/resolvers/shared/git-diff.d.ts +14 -0
  225. package/dist/resolvers/shared/git-diff.d.ts.map +1 -0
  226. package/dist/resolvers/shared/git-diff.js +30 -0
  227. package/dist/resolvers/shared/git-diff.js.map +1 -0
  228. package/dist/resolvers/shared/loop-items.d.ts +30 -0
  229. package/dist/resolvers/shared/loop-items.d.ts.map +1 -0
  230. package/dist/resolvers/shared/loop-items.js +7 -0
  231. package/dist/resolvers/shared/loop-items.js.map +1 -0
  232. package/dist/resolvers/shared/loop.d.ts +48 -0
  233. package/dist/resolvers/shared/loop.d.ts.map +1 -0
  234. package/dist/resolvers/shared/loop.js +38 -0
  235. package/dist/resolvers/shared/loop.js.map +1 -0
  236. package/dist/resolvers/shared/reality-metrics.d.ts +63 -0
  237. package/dist/resolvers/shared/reality-metrics.d.ts.map +1 -0
  238. package/dist/resolvers/shared/reality-metrics.js +6 -0
  239. package/dist/resolvers/shared/reality-metrics.js.map +1 -0
  240. package/dist/resolvers/shared/reality-tree.d.ts +51 -0
  241. package/dist/resolvers/shared/reality-tree.d.ts.map +1 -0
  242. package/dist/resolvers/shared/reality-tree.js +125 -0
  243. package/dist/resolvers/shared/reality-tree.js.map +1 -0
  244. package/dist/resolvers/shared/wiki.d.ts +60 -0
  245. package/dist/resolvers/shared/wiki.d.ts.map +1 -0
  246. package/dist/resolvers/shared/wiki.js +122 -0
  247. package/dist/resolvers/shared/wiki.js.map +1 -0
  248. package/dist/resolvers/wiki-search.d.ts +2 -0
  249. package/dist/resolvers/wiki-search.d.ts.map +1 -0
  250. package/dist/resolvers/wiki-search.js +23 -0
  251. package/dist/resolvers/wiki-search.js.map +1 -0
  252. package/dist/resolvers/wiki-topic.d.ts +2 -0
  253. package/dist/resolvers/wiki-topic.d.ts.map +1 -0
  254. package/dist/resolvers/wiki-topic.js +29 -0
  255. package/dist/resolvers/wiki-topic.js.map +1 -0
  256. package/dist/resolvers/workflow-stages.d.ts +2 -0
  257. package/dist/resolvers/workflow-stages.d.ts.map +1 -0
  258. package/dist/resolvers/workflow-stages.js +26 -0
  259. package/dist/resolvers/workflow-stages.js.map +1 -0
  260. package/dist/session-lifecycle.d.ts +2 -2
  261. package/dist/session-lifecycle.d.ts.map +1 -1
  262. package/dist/session-lifecycle.js +3 -3
  263. package/dist/session-lifecycle.js.map +1 -1
  264. package/dist/{pending-spawn-guard.d.ts → spawner/guards.d.ts} +1 -1
  265. package/dist/spawner/guards.d.ts.map +1 -0
  266. package/dist/{pending-spawn-guard.js → spawner/guards.js} +2 -2
  267. package/dist/spawner/guards.js.map +1 -0
  268. package/dist/{focus-spawn-helpers.d.ts → spawner/helpers.d.ts} +6 -6
  269. package/dist/spawner/helpers.d.ts.map +1 -0
  270. package/dist/{focus-spawn-helpers.js → spawner/helpers.js} +8 -8
  271. package/dist/spawner/helpers.js.map +1 -0
  272. package/dist/spawner/index.d.ts +30 -0
  273. package/dist/spawner/index.d.ts.map +1 -0
  274. package/dist/spawner/index.js +32 -0
  275. package/dist/spawner/index.js.map +1 -0
  276. package/dist/{spawner-lifecycle.d.ts → spawner/lifecycle.d.ts} +3 -3
  277. package/dist/spawner/lifecycle.d.ts.map +1 -0
  278. package/dist/{spawner-lifecycle.js → spawner/lifecycle.js} +6 -6
  279. package/dist/spawner/lifecycle.js.map +1 -0
  280. package/dist/{spawner-liveness.d.ts → spawner/liveness.d.ts} +2 -2
  281. package/dist/spawner/liveness.d.ts.map +1 -0
  282. package/dist/{spawner-liveness.js → spawner/liveness.js} +4 -4
  283. package/dist/spawner/liveness.js.map +1 -0
  284. package/dist/{spawner-resolution.d.ts → spawner/resolution.d.ts} +2 -2
  285. package/dist/spawner/resolution.d.ts.map +1 -0
  286. package/dist/{spawner-resolution.js → spawner/resolution.js} +2 -2
  287. package/dist/spawner/resolution.js.map +1 -0
  288. package/dist/{team-spawner.d.ts → spawner/spawn-team.d.ts} +4 -4
  289. package/dist/spawner/spawn-team.d.ts.map +1 -0
  290. package/dist/{team-spawner.js → spawner/spawn-team.js} +19 -19
  291. package/dist/spawner/spawn-team.js.map +1 -0
  292. package/dist/{spawner.d.ts → spawner/state.d.ts} +8 -8
  293. package/dist/spawner/state.d.ts.map +1 -0
  294. package/dist/{spawner.js → spawner/state.js} +8 -8
  295. package/dist/spawner/state.js.map +1 -0
  296. package/dist/{spawner-stream-handlers.d.ts → spawner/stream-handlers.d.ts} +4 -4
  297. package/dist/spawner/stream-handlers.d.ts.map +1 -0
  298. package/dist/{spawner-stream-handlers.js → spawner/stream-handlers.js} +7 -7
  299. package/dist/spawner/stream-handlers.js.map +1 -0
  300. package/dist/{spawner-timeout.d.ts → spawner/timeout.d.ts} +2 -2
  301. package/dist/spawner/timeout.d.ts.map +1 -0
  302. package/dist/{spawner-timeout.js → spawner/timeout.js} +1 -1
  303. package/dist/spawner/timeout.js.map +1 -0
  304. package/dist/team-prompt-base.d.ts +16 -287
  305. package/dist/team-prompt-base.d.ts.map +1 -1
  306. package/dist/team-prompt-base.js +20 -1112
  307. package/dist/team-prompt-base.js.map +1 -1
  308. package/dist/templates/claude-md.d.ts.map +1 -1
  309. package/dist/templates/claude-md.js +0 -1
  310. package/dist/templates/claude-md.js.map +1 -1
  311. package/dist/types/focus.d.ts +1 -1
  312. package/dist/types/focus.d.ts.map +1 -1
  313. package/package.json +1 -1
  314. package/dist/completion-detector.d.ts.map +0 -1
  315. package/dist/completion-detector.js.map +0 -1
  316. package/dist/completion-handler.d.ts.map +0 -1
  317. package/dist/completion-handler.js.map +0 -1
  318. package/dist/focus-completion-event.d.ts.map +0 -1
  319. package/dist/focus-completion-event.js.map +0 -1
  320. package/dist/focus-completion.d.ts.map +0 -1
  321. package/dist/focus-completion.js.map +0 -1
  322. package/dist/focus-spawn-helpers.d.ts.map +0 -1
  323. package/dist/focus-spawn-helpers.js.map +0 -1
  324. package/dist/focus-team-lifecycle.d.ts.map +0 -1
  325. package/dist/focus-team-lifecycle.js.map +0 -1
  326. package/dist/pending-spawn-guard.d.ts.map +0 -1
  327. package/dist/pending-spawn-guard.js.map +0 -1
  328. package/dist/prompt-builder.d.ts +0 -14
  329. package/dist/prompt-builder.d.ts.map +0 -1
  330. package/dist/prompt-builder.js +0 -174
  331. package/dist/prompt-builder.js.map +0 -1
  332. package/dist/spawner-lifecycle.d.ts.map +0 -1
  333. package/dist/spawner-lifecycle.js.map +0 -1
  334. package/dist/spawner-liveness.d.ts.map +0 -1
  335. package/dist/spawner-liveness.js.map +0 -1
  336. package/dist/spawner-resolution.d.ts.map +0 -1
  337. package/dist/spawner-resolution.js.map +0 -1
  338. package/dist/spawner-stream-handlers.d.ts.map +0 -1
  339. package/dist/spawner-stream-handlers.js.map +0 -1
  340. package/dist/spawner-timeout.d.ts.map +0 -1
  341. package/dist/spawner-timeout.js.map +0 -1
  342. package/dist/spawner.d.ts.map +0 -1
  343. package/dist/spawner.js.map +0 -1
  344. package/dist/team-spawner.d.ts.map +0 -1
  345. package/dist/team-spawner.js.map +0 -1
@@ -5,16 +5,16 @@
5
5
  * based on issue completion, merging the focus branch, cleaning up
6
6
  * worktrees, and updating session records.
7
7
  */
8
- import type { DaemonConfig, FocusTeamState, FocusDeliveryInfo, FocusTeamPhase, Workflow, PolicyFailureMode } from './types.js';
9
- import { getDeliveryIssues, fetchEffectiveWorkflow, updateDeliveryStatus, markDeliveryAutoApproved, getActiveFocuses } from './supabase.js';
10
- import { hasPendingSpawnDirective } from './directive-executor.js';
11
- import type { StageAdvanceResult } from './delivery-lifecycle.js';
12
- import { mergeFocusBranch } from './focus-merge.js';
13
- import { emitLoopTrigger } from './loop-event-bus.js';
14
- import { branchHasUnmergedCommits } from './git.js';
15
- import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, getFocusReviewReportForSession } from './queries/focuses.js';
16
- import { createEscalation } from './queries/issues.js';
17
- export { isStatusTerminal, isStatusAgentActionable } from './stage-classifier.js';
8
+ import type { DaemonConfig, FocusTeamState, FocusDeliveryInfo, FocusTeamPhase, Workflow, PolicyFailureMode } from '../types.js';
9
+ import { getDeliveryIssues, fetchEffectiveWorkflow, updateDeliveryStatus, markDeliveryAutoApproved, getActiveFocuses } from '../supabase.js';
10
+ import { hasPendingSpawnDirective } from '../directive-executor.js';
11
+ import type { StageAdvanceResult } from '../delivery-lifecycle.js';
12
+ import { mergeFocusBranch } from '../focus-merge.js';
13
+ import { emitLoopTrigger } from '../loop-event-bus.js';
14
+ import { branchHasUnmergedCommits } from '../git.js';
15
+ import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, getFocusReviewReportForSession } from '../queries/focuses.js';
16
+ import { createEscalation } from '../queries/issues.js';
17
+ export { isStatusTerminal, isStatusAgentActionable } from '../stage-classifier.js';
18
18
  /**
19
19
  * Decide whether to attempt mergeFocusBranch on team exit.
20
20
  *
@@ -251,4 +251,4 @@ export interface AdvanceDeliveryDeps {
251
251
  * - Open issues remain: re-queue to 'queued' so the next team session picks it up
252
252
  */
253
253
  export declare function advanceDeliveryStatuses(config: DaemonConfig, teamState: FocusTeamState, sessionId: string, deps?: AdvanceDeliveryDeps): Promise<void>;
254
- //# sourceMappingURL=focus-completion.d.ts.map
254
+ //# sourceMappingURL=team-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-completion.d.ts","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAGL,iBAAiB,EAGjB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAyB,MAAM,mBAAmB,CAAC;AAM5E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAmD,wBAAwB,EAAc,MAAM,WAAW,CAAC;AAElH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMxD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAInF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,UAAU,CAAC,EAC7D,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAIT;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAI3D,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,EACrE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,MAAM,EAAE,CAIV;AAID,MAAM,WAAW,qBAAqB;IACpC,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IAC1D,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,IAAI,GAAE,qBAGL,GACA,OAAO,CAAC,uBAAuB,CAAC,CAqBlC;AAMD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IACtD,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IAC1D,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IACtD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IAC1D,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,8BAA8B,EAAE,OAAO,8BAA8B,CAAC;IACtE,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;CAC3C;AAiBD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CA2Kf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAID,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;;OAMG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;CAClD,GAAG,sBAAsB,CASzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2StF;AAID;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACtE,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5H,uBAAuB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,sBAAsB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7H,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,QAAQ,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,YAAY,CAAC;KACvB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACnC;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,mBAAiC,GACtC,OAAO,CAAC,IAAI,CAAC,CA+If"}
@@ -5,27 +5,27 @@
5
5
  * based on issue completion, merging the focus branch, cleaning up
6
6
  * worktrees, and updating session records.
7
7
  */
8
- import { filterWorkIssues, filterContextGroups, ACTIVE_WORK_STATUSES, TERMINAL_ISSUE_STATUSES, planDeliveryCloseSweep } from './constants.js';
9
- import { updateSession, reportGitState, getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, fetchEffectiveWorkflow, updateDeliveryStatus, markDeliveryAutoApproved, getActiveFocuses, } from './supabase.js';
10
- import { hasPendingSpawnDirective } from './directive-executor.js';
11
- import { advanceDeliveryStage, ensureWorktreeCommittedBeforeAdvance } from './delivery-lifecycle.js';
8
+ import { filterWorkIssues, filterContextGroups, ACTIVE_WORK_STATUSES, TERMINAL_ISSUE_STATUSES, planDeliveryCloseSweep } from '../constants.js';
9
+ import { updateSession, reportGitState, getDeliveryIssues, getDeliverySessionCount, updateIssueStatus, fetchEffectiveWorkflow, updateDeliveryStatus, markDeliveryAutoApproved, getActiveFocuses, } from '../supabase.js';
10
+ import { hasPendingSpawnDirective } from '../directive-executor.js';
11
+ import { advanceDeliveryStage, ensureWorktreeCommittedBeforeAdvance } from '../delivery-lifecycle.js';
12
12
  import { withRetry, ESCALATION_REASONS } from '@telora/daemon-core';
13
- import { mergeFocusBranch, escalateMergeConflict } from './focus-merge.js';
14
- import { mergeIntegrationToMain } from './git-merge.js';
15
- import { resolveCiDecision } from './pipeline-config.js';
16
- import { fileCdPushEscalation, shouldFileCdPushEscalation } from './ci-escalation.js';
17
- import { recordSessionCompleted } from './agent-state.js';
18
- import { triggerCheck } from './listener.js';
19
- import { emitLoopTrigger } from './loop-event-bus.js';
20
- import { getActiveTeams } from './focus-team-state.js';
21
- import { commitWipChanges, worktreeHasUncommittedChanges, branchHasUnmergedCommits, runGitSync } from './git.js';
22
- import { computeGitDiffStats } from './git-utils.js';
23
- import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, getFocusReviewReportForSession, } from './queries/focuses.js';
24
- import { createEscalation } from './queries/issues.js';
25
- import { reviewFiledIssueExists } from './review-defect-detector.js';
13
+ import { mergeFocusBranch, escalateMergeConflict } from '../focus-merge.js';
14
+ import { mergeIntegrationToMain } from '../git-merge.js';
15
+ import { resolveCiDecision } from '../pipeline-config.js';
16
+ import { fileCdPushEscalation, shouldFileCdPushEscalation } from '../ci-escalation.js';
17
+ import { recordSessionCompleted } from '../agent-state.js';
18
+ import { triggerCheck } from '../listener.js';
19
+ import { emitLoopTrigger } from '../loop-event-bus.js';
20
+ import { getActiveTeams } from '../focus-team-state.js';
21
+ import { commitWipChanges, worktreeHasUncommittedChanges, branchHasUnmergedCommits, runGitSync } from '../git.js';
22
+ import { computeGitDiffStats } from '../git-utils.js';
23
+ import { getFocusDeliveries, getFocusIssues, clearReviewRequestedAt, getFocusReviewReportForSession, } from '../queries/focuses.js';
24
+ import { createEscalation } from '../queries/issues.js';
25
+ import { reviewFiledIssueExists } from '../review-defect-detector.js';
26
26
  // ── Stage classification (re-exported for consumers) ─────────────────
27
- import { isStatusAgentActionable } from './stage-classifier.js';
28
- export { isStatusTerminal, isStatusAgentActionable } from './stage-classifier.js';
27
+ import { isStatusAgentActionable } from '../stage-classifier.js';
28
+ export { isStatusTerminal, isStatusAgentActionable } from '../stage-classifier.js';
29
29
  // ── Merge gate ───────────────────────────────────────────────────────
30
30
  /**
31
31
  * Decide whether to attempt mergeFocusBranch on team exit.
@@ -171,12 +171,14 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
171
171
  return;
172
172
  }
173
173
  const reviewRequestedAt = current.review_requested_at;
174
- // If a spawn directive is pending, the team was terminated to make room
175
- // for a new team (e.g., directive executor spawning the review team).
176
- if (deps.hasPendingSpawnDirective(focusId)) {
177
- console.log(`[focus-executor] Skipping review exit handler for "${focusName}" -- pending spawn directive`);
178
- return;
179
- }
174
+ // NOTE: a pending spawn directive no longer short-circuits the handler.
175
+ // Delivery finalization (auto-approve verify->done, done-via-report, and
176
+ // verify_failed on open work) plus clearing review_requested_at and emitting
177
+ // review_completed must run unconditionally on a session exit -- otherwise a
178
+ // transiently-pending spawn strands the verify delivery and feeds the
179
+ // per-poll re-fire spin. The pending-spawn signal is consulted ONLY in the
180
+ // non-routed branch below, where leaving the flag set for an incoming team is
181
+ // the legitimate behavior.
180
182
  // ── Gather evidence ──────────────────────────────────────────────
181
183
  let reportExists = false;
182
184
  try {
@@ -271,6 +273,15 @@ export async function runReviewExitHandler(params, deps = defaultReviewExitDeps)
271
273
  detail: `review complete -- "${focusName}" routed via ${routeVia}`,
272
274
  });
273
275
  }
276
+ else if (deps.hasPendingSpawnDirective(focusId)) {
277
+ // Nothing routed AND a spawn directive is pending: the team was torn down
278
+ // to make room for an incoming team (e.g., the directive executor spawning
279
+ // a review team). Leave review_requested_at set so the incoming team's exit
280
+ // performs the routing. This is the ONLY case the pending-spawn signal
281
+ // gates -- it never blocks the finalization above.
282
+ console.log(`[focus-executor] "${focusName}" review exit routed nothing and a spawn directive ` +
283
+ `is pending -- leaving review_requested_at set for the incoming team.`);
284
+ }
274
285
  else if (!reportExists && !hasIssueEvidence) {
275
286
  // Strict gate: no routing happened AND no evidence. Warn-and-leave --
276
287
  // the focus may simply be idle (no verify deliveries to route, no
@@ -763,4 +774,4 @@ export async function advanceDeliveryStatuses(config, teamState, sessionId, deps
763
774
  }
764
775
  }
765
776
  }
766
- //# sourceMappingURL=focus-completion.js.map
777
+ //# sourceMappingURL=team-completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-completion.js","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Extracted from focus-executor.ts. These functions manage the lifecycle
5
5
  * of running focus teams (shutdown, deactivation detection, merge checks).
6
6
  */
7
- import type { DaemonConfig } from './types.js';
7
+ import type { DaemonConfig } from '../types.js';
8
8
  /**
9
9
  * Terminate a focus team.
10
10
  *
@@ -47,4 +47,4 @@ export declare function detectDeactivatedFocuses(config: DaemonConfig): Promise<
47
47
  * arrive later, the next poll cycle spawns a fresh team.
48
48
  */
49
49
  export declare function checkAndMergeCompletedDeliveries(config: DaemonConfig): Promise<void>;
50
- //# sourceMappingURL=focus-team-lifecycle.d.ts.map
50
+ //# sourceMappingURL=team-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-lifecycle.d.ts","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkBhD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA2CtD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAgKf"}
@@ -4,18 +4,18 @@
4
4
  * Extracted from focus-executor.ts. These functions manage the lifecycle
5
5
  * of running focus teams (shutdown, deactivation detection, merge checks).
6
6
  */
7
- import { getReadyFocuses, } from './supabase.js';
7
+ import { getReadyFocuses, } from '../supabase.js';
8
8
  import { sendMessage } from '@telora/daemon-core';
9
- import { clearNarration } from './heartbeat.js';
10
- import { getActiveTeams } from './focus-team-state.js';
11
- import { mergeFocusBranch, escalateMergeConflict } from './focus-merge.js';
12
- import { mergeIntegrationToMain } from './git-merge.js';
13
- import { reportGitState } from './supabase.js';
14
- import { isStatusAgentActionable, isStatusBlocking, isStatusExcludedFromCascade } from './stage-classifier.js';
15
- import { getFocusDeliveries } from './queries/focuses.js';
16
- import { configForProduct, findProduct } from './config.js';
17
- import { resolveCiDecision } from './pipeline-config.js';
18
- import { fileCdPushEscalation, shouldFileCdPushEscalation } from './ci-escalation.js';
9
+ import { clearNarration } from '../heartbeat.js';
10
+ import { getActiveTeams } from '../focus-team-state.js';
11
+ import { mergeFocusBranch, escalateMergeConflict } from '../focus-merge.js';
12
+ import { mergeIntegrationToMain } from '../git-merge.js';
13
+ import { reportGitState } from '../supabase.js';
14
+ import { isStatusAgentActionable, isStatusBlocking, isStatusExcludedFromCascade } from '../stage-classifier.js';
15
+ import { getFocusDeliveries } from '../queries/focuses.js';
16
+ import { configForProduct, findProduct } from '../config.js';
17
+ import { resolveCiDecision } from '../pipeline-config.js';
18
+ import { fileCdPushEscalation, shouldFileCdPushEscalation } from '../ci-escalation.js';
19
19
  // ── Team lifecycle ──────────────────────────────────────────────────────
20
20
  /**
21
21
  * Terminate a focus team.
@@ -278,4 +278,4 @@ export async function checkAndMergeCompletedDeliveries(config) {
278
278
  }
279
279
  }
280
280
  }
281
- //# sourceMappingURL=focus-team-lifecycle.js.map
281
+ //# sourceMappingURL=team-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-lifecycle.js","sourceRoot":"","sources":["../../src/completion/team-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Directive queue: the pending spawn-directive store + its identity/guard logic.
3
+ *
4
+ * Holds the single shared `pendingSpawnDirectives` map (focusId ->
5
+ * PendingSpawnDirective) that executeSpawnDirective sets and spawnFocusTeam
6
+ * consumes, plus the pure helpers that compute a directive's identity hash and
7
+ * decide spawn-skip / re-fire suppression. Extracted from directive-executor.ts
8
+ * so the queue state and its accessors live in one focused module; the executor
9
+ * imports the map binding + helpers it calls in-line and re-exports the full
10
+ * surface (no duplicate instances).
11
+ */
12
+ import type { StageDirective } from '../types.js';
13
+ import type { SessionContinuity } from '../session-lineage.js';
14
+ /**
15
+ * Pending spawn directive content, keyed by focusId.
16
+ * Set by executeSpawnDirective, consumed by spawnFocusTeam.
17
+ */
18
+ export interface PendingSpawnDirective {
19
+ message: string;
20
+ model: string | null;
21
+ sessionType: 'coding' | 'review';
22
+ /** Session-id map slot this spawn reads/writes (INJ-B). */
23
+ lineage: string;
24
+ /** Resume-vs-fresh policy for this spawn's lineage (INJ-B). */
25
+ continuity: SessionContinuity;
26
+ /**
27
+ * SHA-256 hash of the directive's identity ({ prompt, assembly, model }).
28
+ * Recorded on FocusTeamState.lastConsumedDirectiveHash when the team
29
+ * consumes this directive, so the spawn-guard in executeSpawnDirective
30
+ * can detect divergent content within the 60s skip window.
31
+ */
32
+ contentHash: string;
33
+ }
34
+ /**
35
+ * Single shared instance of the pending spawn directive store. The executor
36
+ * sets entries directly via this binding; external callers use the accessor
37
+ * functions below.
38
+ */
39
+ export declare const pendingSpawnDirectives: Map<string, PendingSpawnDirective>;
40
+ /**
41
+ * Compute a stable hash for a stage directive's identity. Hashes only the
42
+ * fields that determine "what the agent is being told to do" -- prompt,
43
+ * assembly recipe, model -- not the assembled output, since that varies
44
+ * with git state and time.
45
+ */
46
+ export declare function computeDirectiveHash(directive: StageDirective): string;
47
+ /** Window during which a freshly-spawned team is assumed to have consumed
48
+ * the directive that produced it. */
49
+ export declare const SPAWN_GUARD_WINDOW_MS = 60000;
50
+ /**
51
+ * Decide whether executeSpawnDirective should skip the terminate+respawn
52
+ * cycle for a recently-spawned team. Pure function so the divergence rule
53
+ * is unit-testable without mocking the active teams map.
54
+ *
55
+ * - skip: team is within the spawn window AND its last-consumed directive
56
+ * hash matches the new directive's hash. The team is already running
57
+ * under the same intent.
58
+ * - respawn: team is older than the window OR the hashes diverge. Both
59
+ * cases require terminate+respawn so the team picks up fresh intent.
60
+ */
61
+ export declare function shouldSkipSpawnDirective(args: {
62
+ team: {
63
+ startedAt: Date;
64
+ lastConsumedDirectiveHash: string | null;
65
+ } | undefined;
66
+ contentHash: string;
67
+ now: number;
68
+ }): 'skip' | 'respawn';
69
+ /**
70
+ * Consume a pending spawn directive for a focus.
71
+ * Returns the directive content and removes it from the map.
72
+ * Called by spawnFocusTeam after spawning to send the directive.
73
+ */
74
+ export declare function consumePendingSpawnDirective(focusId: string): PendingSpawnDirective | undefined;
75
+ /**
76
+ * Test-only helper: prime a pending spawn directive without going through
77
+ * executeSpawnDirective. Tests use this to verify consume semantics with
78
+ * a known contentHash.
79
+ */
80
+ export declare function __setPendingSpawnDirectiveForTesting(focusId: string, directive: PendingSpawnDirective): void;
81
+ /**
82
+ * Check if a focus has a pending spawn directive.
83
+ * Used by the spawn guard to skip actionable-delivery checks.
84
+ */
85
+ export declare function hasPendingSpawnDirective(focusId: string): boolean;
86
+ /**
87
+ * Non-destructive read of a focus's pending spawn directive (unlike
88
+ * consumePendingSpawnDirective, this does NOT delete it). Used by the
89
+ * stranded-review re-fire bound to compare the queued directive's contentHash
90
+ * against the candidate about to be re-fired.
91
+ */
92
+ export declare function getPendingSpawnDirective(focusId: string): PendingSpawnDirective | undefined;
93
+ export declare function getPendingSpawnFocusIds(): string[];
94
+ /**
95
+ * Decide whether to SUPPRESS a stranded-review re-fire because an equivalent
96
+ * spawn directive is already queued and unconsumed.
97
+ *
98
+ * The stranded-review recovery re-fires a review directive when the focus is
99
+ * stuck in the review stage with no active team. But executeSpawnDirective
100
+ * re-stores the directive into the pending map on every call, and when there is
101
+ * no team to consume it the directive simply sits there. Without this bound,
102
+ * each poll re-fires, re-stores the same directive, and holds the pending-spawn
103
+ * condition true forever (root cause #18 -- the per-poll spin). When a pending
104
+ * directive with the SAME contentHash already exists, the queued directive will
105
+ * be picked up by the next spawn, so re-firing is a no-op churn: suppress it.
106
+ * A diverged contentHash (an updated stage directive) is NOT suppressed -- the
107
+ * fresh intent must replace the stale queued directive.
108
+ *
109
+ * Pure and exported for unit testing.
110
+ */
111
+ export declare function shouldSuppressRefireForPendingSpawn(input: {
112
+ pending: {
113
+ contentHash: string;
114
+ } | undefined;
115
+ candidateHash: string;
116
+ }): boolean;
117
+ //# sourceMappingURL=directive-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-queue.d.ts","sourceRoot":"","sources":["../../src/directive/directive-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,UAAU,EAAE,iBAAiB,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,oCAA2C,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAMtE;AAED;sCACsC;AACtC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAM/F;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,qBAAqB,GAC/B,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAE3F;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAEV"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Directive queue: the pending spawn-directive store + its identity/guard logic.
3
+ *
4
+ * Holds the single shared `pendingSpawnDirectives` map (focusId ->
5
+ * PendingSpawnDirective) that executeSpawnDirective sets and spawnFocusTeam
6
+ * consumes, plus the pure helpers that compute a directive's identity hash and
7
+ * decide spawn-skip / re-fire suppression. Extracted from directive-executor.ts
8
+ * so the queue state and its accessors live in one focused module; the executor
9
+ * imports the map binding + helpers it calls in-line and re-exports the full
10
+ * surface (no duplicate instances).
11
+ */
12
+ import { createHash } from 'node:crypto';
13
+ /**
14
+ * Single shared instance of the pending spawn directive store. The executor
15
+ * sets entries directly via this binding; external callers use the accessor
16
+ * functions below.
17
+ */
18
+ export const pendingSpawnDirectives = new Map();
19
+ /**
20
+ * Compute a stable hash for a stage directive's identity. Hashes only the
21
+ * fields that determine "what the agent is being told to do" -- prompt,
22
+ * assembly recipe, model -- not the assembled output, since that varies
23
+ * with git state and time.
24
+ */
25
+ export function computeDirectiveHash(directive) {
26
+ return createHash('sha256').update(JSON.stringify({
27
+ prompt: directive.prompt ?? null,
28
+ assembly: directive.assembly ?? [],
29
+ model: directive.model ?? null,
30
+ })).digest('hex');
31
+ }
32
+ /** Window during which a freshly-spawned team is assumed to have consumed
33
+ * the directive that produced it. */
34
+ export const SPAWN_GUARD_WINDOW_MS = 60000;
35
+ /**
36
+ * Decide whether executeSpawnDirective should skip the terminate+respawn
37
+ * cycle for a recently-spawned team. Pure function so the divergence rule
38
+ * is unit-testable without mocking the active teams map.
39
+ *
40
+ * - skip: team is within the spawn window AND its last-consumed directive
41
+ * hash matches the new directive's hash. The team is already running
42
+ * under the same intent.
43
+ * - respawn: team is older than the window OR the hashes diverge. Both
44
+ * cases require terminate+respawn so the team picks up fresh intent.
45
+ */
46
+ export function shouldSkipSpawnDirective(args) {
47
+ const { team, contentHash, now } = args;
48
+ if (!team)
49
+ return 'respawn';
50
+ const age = now - team.startedAt.getTime();
51
+ if (age >= SPAWN_GUARD_WINDOW_MS)
52
+ return 'respawn';
53
+ return team.lastConsumedDirectiveHash === contentHash ? 'skip' : 'respawn';
54
+ }
55
+ /**
56
+ * Consume a pending spawn directive for a focus.
57
+ * Returns the directive content and removes it from the map.
58
+ * Called by spawnFocusTeam after spawning to send the directive.
59
+ */
60
+ export function consumePendingSpawnDirective(focusId) {
61
+ const directive = pendingSpawnDirectives.get(focusId);
62
+ if (directive) {
63
+ pendingSpawnDirectives.delete(focusId);
64
+ }
65
+ return directive;
66
+ }
67
+ /**
68
+ * Test-only helper: prime a pending spawn directive without going through
69
+ * executeSpawnDirective. Tests use this to verify consume semantics with
70
+ * a known contentHash.
71
+ */
72
+ export function __setPendingSpawnDirectiveForTesting(focusId, directive) {
73
+ pendingSpawnDirectives.set(focusId, directive);
74
+ }
75
+ /**
76
+ * Check if a focus has a pending spawn directive.
77
+ * Used by the spawn guard to skip actionable-delivery checks.
78
+ */
79
+ export function hasPendingSpawnDirective(focusId) {
80
+ return pendingSpawnDirectives.has(focusId);
81
+ }
82
+ /**
83
+ * Non-destructive read of a focus's pending spawn directive (unlike
84
+ * consumePendingSpawnDirective, this does NOT delete it). Used by the
85
+ * stranded-review re-fire bound to compare the queued directive's contentHash
86
+ * against the candidate about to be re-fired.
87
+ */
88
+ export function getPendingSpawnDirective(focusId) {
89
+ return pendingSpawnDirectives.get(focusId);
90
+ }
91
+ export function getPendingSpawnFocusIds() {
92
+ return [...pendingSpawnDirectives.keys()];
93
+ }
94
+ /**
95
+ * Decide whether to SUPPRESS a stranded-review re-fire because an equivalent
96
+ * spawn directive is already queued and unconsumed.
97
+ *
98
+ * The stranded-review recovery re-fires a review directive when the focus is
99
+ * stuck in the review stage with no active team. But executeSpawnDirective
100
+ * re-stores the directive into the pending map on every call, and when there is
101
+ * no team to consume it the directive simply sits there. Without this bound,
102
+ * each poll re-fires, re-stores the same directive, and holds the pending-spawn
103
+ * condition true forever (root cause #18 -- the per-poll spin). When a pending
104
+ * directive with the SAME contentHash already exists, the queued directive will
105
+ * be picked up by the next spawn, so re-firing is a no-op churn: suppress it.
106
+ * A diverged contentHash (an updated stage directive) is NOT suppressed -- the
107
+ * fresh intent must replace the stale queued directive.
108
+ *
109
+ * Pure and exported for unit testing.
110
+ */
111
+ export function shouldSuppressRefireForPendingSpawn(input) {
112
+ return input.pending !== undefined && input.pending.contentHash === input.candidateHash;
113
+ }
114
+ //# sourceMappingURL=directive-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-queue.js","sourceRoot":"","sources":["../../src/directive/directive-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2BzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAyB;IAC5D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAChD,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE;QAClC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI;KAC/B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;sCACsC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAIxC;IACC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,GAAG,IAAI,qBAAqB;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,IAAI,CAAC,yBAAyB,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACd,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAClD,OAAe,EACf,SAAgC;IAEhC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mCAAmC,CAAC,KAGnD;IACC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,aAAa,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stage tracker: per-focus last-processed workflow stage state.
3
+ *
4
+ * Holds the single shared `lastProcessedStages` map (focusId -> stageId) that
5
+ * the directive edge-trigger uses to fire a stage directive exactly once per
6
+ * stage entry. Extracted from directive-executor.ts so the mutable state and
7
+ * its accessors live in one focused module; directive-executor imports the map
8
+ * binding for its in-loop reads/writes and re-exports the accessors.
9
+ */
10
+ /**
11
+ * Track the last-processed stage ID per focus to prevent
12
+ * double-injection on daemon restart or rapid poll cycles.
13
+ *
14
+ * This is the single shared instance. directive-executor's checkDirectives
15
+ * reads/writes it directly via this binding; external callers use the
16
+ * accessor functions below.
17
+ */
18
+ export declare const lastProcessedStages: Map<string, string>;
19
+ /** Seed the last-processed stage for a focus (used on daemon startup). */
20
+ export declare function seedLastProcessedStage(focusId: string, stageId: string): void;
21
+ /** Get the last-processed stages map (for persistence). */
22
+ export declare function getLastProcessedStages(): ReadonlyMap<string, string>;
23
+ //# sourceMappingURL=stage-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-tracker.d.ts","sourceRoot":"","sources":["../../src/directive/stage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAE7D,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7E;AAED,2DAA2D;AAC3D,wBAAgB,sBAAsB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAEpE"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Stage tracker: per-focus last-processed workflow stage state.
3
+ *
4
+ * Holds the single shared `lastProcessedStages` map (focusId -> stageId) that
5
+ * the directive edge-trigger uses to fire a stage directive exactly once per
6
+ * stage entry. Extracted from directive-executor.ts so the mutable state and
7
+ * its accessors live in one focused module; directive-executor imports the map
8
+ * binding for its in-loop reads/writes and re-exports the accessors.
9
+ */
10
+ /**
11
+ * Track the last-processed stage ID per focus to prevent
12
+ * double-injection on daemon restart or rapid poll cycles.
13
+ *
14
+ * This is the single shared instance. directive-executor's checkDirectives
15
+ * reads/writes it directly via this binding; external callers use the
16
+ * accessor functions below.
17
+ */
18
+ export const lastProcessedStages = new Map();
19
+ /** Seed the last-processed stage for a focus (used on daemon startup). */
20
+ export function seedLastProcessedStage(focusId, stageId) {
21
+ lastProcessedStages.set(focusId, stageId);
22
+ }
23
+ /** Get the last-processed stages map (for persistence). */
24
+ export function getLastProcessedStages() {
25
+ return lastProcessedStages;
26
+ }
27
+ //# sourceMappingURL=stage-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-tracker.js","sourceRoot":"","sources":["../../src/directive/stage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE7D,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,OAAe;IACrE,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB;IACpC,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}