@telora/daemon 0.22.104 → 0.22.132

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 (482) hide show
  1. package/build-info.json +4 -3
  2. package/dist/completion/commit-verdict-release.d.ts +49 -0
  3. package/dist/completion/commit-verdict-release.d.ts.map +1 -0
  4. package/dist/completion/commit-verdict-release.js +240 -0
  5. package/dist/completion/commit-verdict-release.js.map +1 -0
  6. package/dist/completion/completion-phase-registry.d.ts +10 -4
  7. package/dist/completion/completion-phase-registry.d.ts.map +1 -1
  8. package/dist/completion/completion-phase-registry.js +19 -7
  9. package/dist/completion/completion-phase-registry.js.map +1 -1
  10. package/dist/completion/detector.d.ts.map +1 -1
  11. package/dist/completion/detector.js +1 -0
  12. package/dist/completion/detector.js.map +1 -1
  13. package/dist/completion/event-entry-phases.d.ts +6 -3
  14. package/dist/completion/event-entry-phases.d.ts.map +1 -1
  15. package/dist/completion/event-entry-phases.js +135 -76
  16. package/dist/completion/event-entry-phases.js.map +1 -1
  17. package/dist/completion/event-phases.d.ts +24 -3
  18. package/dist/completion/event-phases.d.ts.map +1 -1
  19. package/dist/completion/event-phases.js +9 -9
  20. package/dist/completion/event-phases.js.map +1 -1
  21. package/dist/completion/event.d.ts +8 -0
  22. package/dist/completion/event.d.ts.map +1 -1
  23. package/dist/completion/event.js +47 -21
  24. package/dist/completion/event.js.map +1 -1
  25. package/dist/completion/exit-classification.d.ts.map +1 -1
  26. package/dist/completion/exit-classification.js +1 -0
  27. package/dist/completion/exit-classification.js.map +1 -1
  28. package/dist/completion/merge-phase.d.ts +21 -9
  29. package/dist/completion/merge-phase.d.ts.map +1 -1
  30. package/dist/completion/merge-phase.js +35 -10
  31. package/dist/completion/merge-phase.js.map +1 -1
  32. package/dist/completion/review-auto-approval-record.d.ts +19 -0
  33. package/dist/completion/review-auto-approval-record.d.ts.map +1 -0
  34. package/dist/completion/review-auto-approval-record.js +102 -0
  35. package/dist/completion/review-auto-approval-record.js.map +1 -0
  36. package/dist/completion/review-cycle-cap.d.ts +62 -0
  37. package/dist/completion/review-cycle-cap.d.ts.map +1 -0
  38. package/dist/completion/review-cycle-cap.js +180 -0
  39. package/dist/completion/review-cycle-cap.js.map +1 -0
  40. package/dist/completion/review-exit-deps.d.ts +17 -2
  41. package/dist/completion/review-exit-deps.d.ts.map +1 -1
  42. package/dist/completion/review-exit-deps.js +19 -2
  43. package/dist/completion/review-exit-deps.js.map +1 -1
  44. package/dist/completion/review-exit-escalations.d.ts +45 -23
  45. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  46. package/dist/completion/review-exit-escalations.js +15 -74
  47. package/dist/completion/review-exit-escalations.js.map +1 -1
  48. package/dist/completion/review-exit-evidence.d.ts +9 -0
  49. package/dist/completion/review-exit-evidence.d.ts.map +1 -1
  50. package/dist/completion/review-exit-evidence.js +4 -1
  51. package/dist/completion/review-exit-evidence.js.map +1 -1
  52. package/dist/completion/review-exit-foreign-findings.d.ts +151 -0
  53. package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -0
  54. package/dist/completion/review-exit-foreign-findings.js +474 -0
  55. package/dist/completion/review-exit-foreign-findings.js.map +1 -0
  56. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  57. package/dist/completion/review-exit-phase.js +71 -64
  58. package/dist/completion/review-exit-phase.js.map +1 -1
  59. package/dist/completion/review-exit-progress.d.ts +20 -0
  60. package/dist/completion/review-exit-progress.d.ts.map +1 -1
  61. package/dist/completion/review-exit-progress.js +28 -19
  62. package/dist/completion/review-exit-progress.js.map +1 -1
  63. package/dist/completion/review-exit-rehoming.d.ts +5 -0
  64. package/dist/completion/review-exit-rehoming.d.ts.map +1 -1
  65. package/dist/completion/review-exit-rehoming.js.map +1 -1
  66. package/dist/completion/review-exit-verdict-gate.d.ts +202 -0
  67. package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -0
  68. package/dist/completion/review-exit-verdict-gate.js +228 -0
  69. package/dist/completion/review-exit-verdict-gate.js.map +1 -0
  70. package/dist/completion/review-next-step.d.ts +62 -0
  71. package/dist/completion/review-next-step.d.ts.map +1 -0
  72. package/dist/completion/review-next-step.js +63 -0
  73. package/dist/completion/review-next-step.js.map +1 -0
  74. package/dist/completion/session-hold-sweep-deps.d.ts +17 -0
  75. package/dist/completion/session-hold-sweep-deps.d.ts.map +1 -0
  76. package/dist/completion/session-hold-sweep-deps.js +89 -0
  77. package/dist/completion/session-hold-sweep-deps.js.map +1 -0
  78. package/dist/completion/session-hold.d.ts +180 -0
  79. package/dist/completion/session-hold.d.ts.map +1 -0
  80. package/dist/completion/session-hold.js +238 -0
  81. package/dist/completion/session-hold.js.map +1 -0
  82. package/dist/completion/state-cascade.d.ts +19 -0
  83. package/dist/completion/state-cascade.d.ts.map +1 -1
  84. package/dist/completion/state-cascade.js +85 -31
  85. package/dist/completion/state-cascade.js.map +1 -1
  86. package/dist/completion/team-lifecycle.d.ts +35 -2
  87. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  88. package/dist/completion/team-lifecycle.js +165 -94
  89. package/dist/completion/team-lifecycle.js.map +1 -1
  90. package/dist/completion/team-phase.d.ts +27 -15
  91. package/dist/completion/team-phase.d.ts.map +1 -1
  92. package/dist/completion/team-phase.js +34 -15
  93. package/dist/completion/team-phase.js.map +1 -1
  94. package/dist/delivery/commit-verdict-hold.d.ts +55 -0
  95. package/dist/delivery/commit-verdict-hold.d.ts.map +1 -0
  96. package/dist/delivery/commit-verdict-hold.js +118 -0
  97. package/dist/delivery/commit-verdict-hold.js.map +1 -0
  98. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  99. package/dist/directive/directive-dispatch.js +10 -3
  100. package/dist/directive/directive-dispatch.js.map +1 -1
  101. package/dist/directive/directive-executor.d.ts.map +1 -1
  102. package/dist/directive/directive-executor.js +1 -0
  103. package/dist/directive/directive-executor.js.map +1 -1
  104. package/dist/directive/directive-queue.d.ts.map +1 -1
  105. package/dist/directive/directive-queue.js +6 -1
  106. package/dist/directive/directive-queue.js.map +1 -1
  107. package/dist/directive/phase-sync.d.ts +29 -2
  108. package/dist/directive/phase-sync.d.ts.map +1 -1
  109. package/dist/directive/phase-sync.js +30 -6
  110. package/dist/directive/phase-sync.js.map +1 -1
  111. package/dist/drift/artifact-ref-shape.d.ts +34 -0
  112. package/dist/drift/artifact-ref-shape.d.ts.map +1 -0
  113. package/dist/drift/artifact-ref-shape.js +94 -0
  114. package/dist/drift/artifact-ref-shape.js.map +1 -0
  115. package/dist/drift/drift-eval-loop.d.ts +7 -0
  116. package/dist/drift/drift-eval-loop.d.ts.map +1 -1
  117. package/dist/drift/drift-eval-loop.js +34 -5
  118. package/dist/drift/drift-eval-loop.js.map +1 -1
  119. package/dist/drift/drift-evaluator.d.ts.map +1 -1
  120. package/dist/drift/drift-evaluator.js +8 -3
  121. package/dist/drift/drift-evaluator.js.map +1 -1
  122. package/dist/focus/awaiting-slot.d.ts +34 -0
  123. package/dist/focus/awaiting-slot.d.ts.map +1 -0
  124. package/dist/focus/awaiting-slot.js +26 -0
  125. package/dist/focus/awaiting-slot.js.map +1 -0
  126. package/dist/focus/focus-lifecycle.js +2 -2
  127. package/dist/focus/focus-lifecycle.js.map +1 -1
  128. package/dist/focus/focus-phase.d.ts.map +1 -1
  129. package/dist/focus/focus-phase.js +3 -1
  130. package/dist/focus/focus-phase.js.map +1 -1
  131. package/dist/focus/focus-spawn-decision.d.ts +62 -0
  132. package/dist/focus/focus-spawn-decision.d.ts.map +1 -0
  133. package/dist/focus/focus-spawn-decision.js +41 -0
  134. package/dist/focus/focus-spawn-decision.js.map +1 -0
  135. package/dist/focus/focus-team-state.d.ts.map +1 -1
  136. package/dist/focus/focus-team-state.js +1 -13
  137. package/dist/focus/focus-team-state.js.map +1 -1
  138. package/dist/focus/listener-spawn.d.ts +16 -55
  139. package/dist/focus/listener-spawn.d.ts.map +1 -1
  140. package/dist/focus/listener-spawn.js +102 -64
  141. package/dist/focus/listener-spawn.js.map +1 -1
  142. package/dist/focus/listener-state.d.ts.map +1 -1
  143. package/dist/focus/listener-state.js +4 -1
  144. package/dist/focus/listener-state.js.map +1 -1
  145. package/dist/focus/listener.d.ts +41 -2
  146. package/dist/focus/listener.d.ts.map +1 -1
  147. package/dist/focus/listener.js +135 -83
  148. package/dist/focus/listener.js.map +1 -1
  149. package/dist/focus/pending-spawn-pass-deps.d.ts +69 -0
  150. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -0
  151. package/dist/focus/pending-spawn-pass-deps.js +34 -0
  152. package/dist/focus/pending-spawn-pass-deps.js.map +1 -0
  153. package/dist/focus/pending-spawn-review-next-step.d.ts +83 -0
  154. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -0
  155. package/dist/focus/pending-spawn-review-next-step.js +325 -0
  156. package/dist/focus/pending-spawn-review-next-step.js.map +1 -0
  157. package/dist/focus/review-cycle-cap-hold.d.ts +132 -0
  158. package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -0
  159. package/dist/focus/review-cycle-cap-hold.js +178 -0
  160. package/dist/focus/review-cycle-cap-hold.js.map +1 -0
  161. package/dist/focus/team-actionable-work.js +2 -2
  162. package/dist/focus/verify-open-issues.d.ts +22 -0
  163. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  164. package/dist/focus/verify-open-issues.js +118 -57
  165. package/dist/focus/verify-open-issues.js.map +1 -1
  166. package/dist/focus/verify-routing-passes.d.ts +32 -0
  167. package/dist/focus/verify-routing-passes.d.ts.map +1 -0
  168. package/dist/focus/verify-routing-passes.js +18 -0
  169. package/dist/focus/verify-routing-passes.js.map +1 -0
  170. package/dist/git/index.d.ts.map +1 -1
  171. package/dist/git/index.js +9 -5
  172. package/dist/git/index.js.map +1 -1
  173. package/dist/merge/focus-merge.d.ts +16 -2
  174. package/dist/merge/focus-merge.d.ts.map +1 -1
  175. package/dist/merge/focus-merge.js +53 -30
  176. package/dist/merge/focus-merge.js.map +1 -1
  177. package/dist/merge/merge-back-loop.d.ts +5 -0
  178. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  179. package/dist/merge/merge-back-loop.js +17 -8
  180. package/dist/merge/merge-back-loop.js.map +1 -1
  181. package/dist/merge/merge-gate-coverage.d.ts +94 -0
  182. package/dist/merge/merge-gate-coverage.d.ts.map +1 -0
  183. package/dist/merge/merge-gate-coverage.js +217 -0
  184. package/dist/merge/merge-gate-coverage.js.map +1 -0
  185. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  186. package/dist/prompt/focus-prompt-builder.js +6 -0
  187. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  188. package/dist/prompt/prompt-listing.d.ts.map +1 -1
  189. package/dist/prompt/prompt-listing.js +8 -0
  190. package/dist/prompt/prompt-listing.js.map +1 -1
  191. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  192. package/dist/prompt/team-prompt-base.js +5 -1
  193. package/dist/prompt/team-prompt-base.js.map +1 -1
  194. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  195. package/dist/prompt-sections/execution-sections.js +14 -39
  196. package/dist/prompt-sections/execution-sections.js.map +1 -1
  197. package/dist/prompt-sections/gate-ownership.d.ts +36 -0
  198. package/dist/prompt-sections/gate-ownership.d.ts.map +1 -0
  199. package/dist/prompt-sections/gate-ownership.js +68 -0
  200. package/dist/prompt-sections/gate-ownership.js.map +1 -0
  201. package/dist/prompt-sections/gate-verdict-section.d.ts +58 -0
  202. package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -0
  203. package/dist/prompt-sections/gate-verdict-section.js +88 -0
  204. package/dist/prompt-sections/gate-verdict-section.js.map +1 -0
  205. package/dist/prompt-sections/persona-sections.d.ts +10 -0
  206. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  207. package/dist/prompt-sections/persona-sections.js +35 -11
  208. package/dist/prompt-sections/persona-sections.js.map +1 -1
  209. package/dist/prompt-sections/shared.js +1 -1
  210. package/dist/prompt-sections/shared.js.map +1 -1
  211. package/dist/queries/agent-resolvable-promotion.d.ts +6 -3
  212. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  213. package/dist/queries/agent-resolvable-promotion.js +20 -9
  214. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  215. package/dist/queries/deliveries.d.ts +46 -4
  216. package/dist/queries/deliveries.d.ts.map +1 -1
  217. package/dist/queries/deliveries.js +69 -16
  218. package/dist/queries/deliveries.js.map +1 -1
  219. package/dist/queries/delivery-gate-state.d.ts +151 -1
  220. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  221. package/dist/queries/delivery-gate-state.js +95 -14
  222. package/dist/queries/delivery-gate-state.js.map +1 -1
  223. package/dist/queries/delivery-write-discipline.d.ts +65 -0
  224. package/dist/queries/delivery-write-discipline.d.ts.map +1 -0
  225. package/dist/queries/delivery-write-discipline.js +101 -0
  226. package/dist/queries/delivery-write-discipline.js.map +1 -0
  227. package/dist/queries/escalation-consumption.d.ts +11 -0
  228. package/dist/queries/escalation-consumption.d.ts.map +1 -1
  229. package/dist/queries/escalation-consumption.js +22 -0
  230. package/dist/queries/escalation-consumption.js.map +1 -1
  231. package/dist/queries/escalation-spool.d.ts +75 -0
  232. package/dist/queries/escalation-spool.d.ts.map +1 -0
  233. package/dist/queries/escalation-spool.js +232 -0
  234. package/dist/queries/escalation-spool.js.map +1 -0
  235. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  236. package/dist/queries/escalation-suppression.js +2 -0
  237. package/dist/queries/escalation-suppression.js.map +1 -1
  238. package/dist/queries/escalations.js +1 -1
  239. package/dist/queries/filing-observation.d.ts.map +1 -1
  240. package/dist/queries/filing-observation.js +2 -0
  241. package/dist/queries/filing-observation.js.map +1 -1
  242. package/dist/queries/focus-discovery.d.ts +4 -4
  243. package/dist/queries/focus-discovery.d.ts.map +1 -1
  244. package/dist/queries/focus-discovery.js +1 -0
  245. package/dist/queries/focus-discovery.js.map +1 -1
  246. package/dist/queries/focus-review-approval.d.ts +84 -0
  247. package/dist/queries/focus-review-approval.d.ts.map +1 -0
  248. package/dist/queries/focus-review-approval.js +158 -0
  249. package/dist/queries/focus-review-approval.js.map +1 -0
  250. package/dist/queries/focuses.d.ts +6 -5
  251. package/dist/queries/focuses.d.ts.map +1 -1
  252. package/dist/queries/focuses.js +9 -5
  253. package/dist/queries/focuses.js.map +1 -1
  254. package/dist/queries/incident-correlation.d.ts +5 -4
  255. package/dist/queries/incident-correlation.d.ts.map +1 -1
  256. package/dist/queries/incident-correlation.js +11 -5
  257. package/dist/queries/incident-correlation.js.map +1 -1
  258. package/dist/queries/issues.d.ts.map +1 -1
  259. package/dist/queries/issues.js +2 -1
  260. package/dist/queries/issues.js.map +1 -1
  261. package/dist/queries/loop-refusal-observation.d.ts +64 -0
  262. package/dist/queries/loop-refusal-observation.d.ts.map +1 -0
  263. package/dist/queries/loop-refusal-observation.js +137 -0
  264. package/dist/queries/loop-refusal-observation.js.map +1 -0
  265. package/dist/queries/schemas.d.ts +9 -0
  266. package/dist/queries/schemas.d.ts.map +1 -1
  267. package/dist/queries/schemas.js +11 -3
  268. package/dist/queries/schemas.js.map +1 -1
  269. package/dist/queries/shared.js +1 -1
  270. package/dist/queries/verification.d.ts.map +1 -1
  271. package/dist/queries/verification.js +1 -15
  272. package/dist/queries/verification.js.map +1 -1
  273. package/dist/queries/wire-contract.generated.d.ts +3 -0
  274. package/dist/queries/wire-contract.generated.d.ts.map +1 -1
  275. package/dist/queries/wire-contract.generated.js +3 -0
  276. package/dist/queries/wire-contract.generated.js.map +1 -1
  277. package/dist/resolvers/assembly-engine.d.ts.map +1 -1
  278. package/dist/resolvers/assembly-engine.js +3 -1
  279. package/dist/resolvers/assembly-engine.js.map +1 -1
  280. package/dist/resolvers/git-diff-against-base.d.ts +5 -2
  281. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  282. package/dist/resolvers/git-diff-against-base.js +121 -39
  283. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  284. package/dist/resolvers/shared/git-diff.d.ts +2 -0
  285. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  286. package/dist/resolvers/shared/git-diff.js +5 -1
  287. package/dist/resolvers/shared/git-diff.js.map +1 -1
  288. package/dist/resolvers/shared/review-window-commits.d.ts +96 -0
  289. package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -0
  290. package/dist/resolvers/shared/review-window-commits.js +262 -0
  291. package/dist/resolvers/shared/review-window-commits.js.map +1 -0
  292. package/dist/session/session-lineage.d.ts.map +1 -1
  293. package/dist/session/session-lineage.js +4 -1
  294. package/dist/session/session-lineage.js.map +1 -1
  295. package/dist/shell/fail-stop.d.ts +18 -0
  296. package/dist/shell/fail-stop.d.ts.map +1 -0
  297. package/dist/shell/fail-stop.js +53 -0
  298. package/dist/shell/fail-stop.js.map +1 -0
  299. package/dist/shell/graceful-shutdown.d.ts +48 -0
  300. package/dist/shell/graceful-shutdown.d.ts.map +1 -0
  301. package/dist/shell/graceful-shutdown.js +152 -0
  302. package/dist/shell/graceful-shutdown.js.map +1 -0
  303. package/dist/shell/heartbeat.d.ts.map +1 -1
  304. package/dist/shell/heartbeat.js +5 -4
  305. package/dist/shell/heartbeat.js.map +1 -1
  306. package/dist/shell/log.d.ts.map +1 -1
  307. package/dist/shell/log.js +4 -1
  308. package/dist/shell/log.js.map +1 -1
  309. package/dist/shell/stop-request.d.ts.map +1 -1
  310. package/dist/shell/stop-request.js +2 -1
  311. package/dist/shell/stop-request.js.map +1 -1
  312. package/dist/shell/unified-shell.d.ts.map +1 -1
  313. package/dist/shell/unified-shell.js +41 -114
  314. package/dist/shell/unified-shell.js.map +1 -1
  315. package/dist/spawn/lifecycle.d.ts +12 -0
  316. package/dist/spawn/lifecycle.d.ts.map +1 -1
  317. package/dist/spawn/lifecycle.js +25 -21
  318. package/dist/spawn/lifecycle.js.map +1 -1
  319. package/dist/spawn/prompt-assembly.d.ts +19 -1
  320. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  321. package/dist/spawn/prompt-assembly.js +70 -21
  322. package/dist/spawn/prompt-assembly.js.map +1 -1
  323. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  324. package/dist/spawn/review-hold-park.js +18 -8
  325. package/dist/spawn/review-hold-park.js.map +1 -1
  326. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  327. package/dist/spawn/spawn-cooldown.js +4 -0
  328. package/dist/spawn/spawn-cooldown.js.map +1 -1
  329. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  330. package/dist/spawn/spawn-decision.js +2 -1
  331. package/dist/spawn/spawn-decision.js.map +1 -1
  332. package/dist/spawn/worktree-session.d.ts +6 -0
  333. package/dist/spawn/worktree-session.d.ts.map +1 -1
  334. package/dist/spawn/worktree-session.js +15 -2
  335. package/dist/spawn/worktree-session.js.map +1 -1
  336. package/dist/testing/fixtures/index.d.ts +10 -1
  337. package/dist/testing/fixtures/index.d.ts.map +1 -1
  338. package/dist/testing/fixtures/index.js +59 -1
  339. package/dist/testing/fixtures/index.js.map +1 -1
  340. package/dist/testing/fixtures/pending-spawn-world.d.ts +34 -0
  341. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -0
  342. package/dist/testing/fixtures/pending-spawn-world.js +92 -0
  343. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -0
  344. package/dist/types/index.js +1 -1
  345. package/dist/verify/commit-gate-configured.d.ts +86 -0
  346. package/dist/verify/commit-gate-configured.d.ts.map +1 -0
  347. package/dist/verify/commit-gate-configured.js +234 -0
  348. package/dist/verify/commit-gate-configured.js.map +1 -0
  349. package/dist/verify/commit-verdict-record.d.ts +98 -0
  350. package/dist/verify/commit-verdict-record.d.ts.map +1 -0
  351. package/dist/verify/commit-verdict-record.js +297 -0
  352. package/dist/verify/commit-verdict-record.js.map +1 -0
  353. package/dist/verify/explicit-gate-outcome.d.ts +161 -0
  354. package/dist/verify/explicit-gate-outcome.d.ts.map +1 -0
  355. package/dist/verify/explicit-gate-outcome.js +215 -0
  356. package/dist/verify/explicit-gate-outcome.js.map +1 -0
  357. package/dist/verify/explicit-rearm.d.ts +27 -0
  358. package/dist/verify/explicit-rearm.d.ts.map +1 -0
  359. package/dist/verify/explicit-rearm.js +161 -0
  360. package/dist/verify/explicit-rearm.js.map +1 -0
  361. package/dist/verify/explicit-run-ledger.d.ts +26 -0
  362. package/dist/verify/explicit-run-ledger.d.ts.map +1 -0
  363. package/dist/verify/explicit-run-ledger.js +93 -0
  364. package/dist/verify/explicit-run-ledger.js.map +1 -0
  365. package/dist/verify/failure-signature.d.ts.map +1 -1
  366. package/dist/verify/failure-signature.js +5 -1
  367. package/dist/verify/failure-signature.js.map +1 -1
  368. package/dist/verify/gate-run-registry.d.ts +105 -0
  369. package/dist/verify/gate-run-registry.d.ts.map +1 -0
  370. package/dist/verify/gate-run-registry.js +111 -0
  371. package/dist/verify/gate-run-registry.js.map +1 -0
  372. package/dist/verify/gate-verdict-source.d.ts +68 -0
  373. package/dist/verify/gate-verdict-source.d.ts.map +1 -0
  374. package/dist/verify/gate-verdict-source.js +143 -0
  375. package/dist/verify/gate-verdict-source.js.map +1 -0
  376. package/dist/verify/judged-commit-gate.d.ts +11 -0
  377. package/dist/verify/judged-commit-gate.d.ts.map +1 -0
  378. package/dist/verify/judged-commit-gate.js +48 -0
  379. package/dist/verify/judged-commit-gate.js.map +1 -0
  380. package/dist/verify/rework-judgment.d.ts +58 -0
  381. package/dist/verify/rework-judgment.d.ts.map +1 -0
  382. package/dist/verify/rework-judgment.js +54 -0
  383. package/dist/verify/rework-judgment.js.map +1 -0
  384. package/dist/verify/verification-attribution.d.ts +105 -0
  385. package/dist/verify/verification-attribution.d.ts.map +1 -0
  386. package/dist/verify/verification-attribution.js +322 -0
  387. package/dist/verify/verification-attribution.js.map +1 -0
  388. package/dist/verify/verification-baseline-run.d.ts +123 -0
  389. package/dist/verify/verification-baseline-run.d.ts.map +1 -0
  390. package/dist/verify/verification-baseline-run.js +386 -0
  391. package/dist/verify/verification-baseline-run.js.map +1 -0
  392. package/dist/verify/verification-baseline.d.ts +79 -33
  393. package/dist/verify/verification-baseline.d.ts.map +1 -1
  394. package/dist/verify/verification-baseline.js +99 -106
  395. package/dist/verify/verification-baseline.js.map +1 -1
  396. package/dist/verify/verification-checkout.d.ts +13 -0
  397. package/dist/verify/verification-checkout.d.ts.map +1 -1
  398. package/dist/verify/verification-checkout.js +39 -2
  399. package/dist/verify/verification-checkout.js.map +1 -1
  400. package/dist/verify/verification-commit-sharing.d.ts +84 -0
  401. package/dist/verify/verification-commit-sharing.d.ts.map +1 -0
  402. package/dist/verify/verification-commit-sharing.js +416 -0
  403. package/dist/verify/verification-commit-sharing.js.map +1 -0
  404. package/dist/verify/verification-config.d.ts.map +1 -1
  405. package/dist/verify/verification-config.js +12 -2
  406. package/dist/verify/verification-config.js.map +1 -1
  407. package/dist/verify/verification-default-on.d.ts +27 -11
  408. package/dist/verify/verification-default-on.d.ts.map +1 -1
  409. package/dist/verify/verification-default-on.js +159 -29
  410. package/dist/verify/verification-default-on.js.map +1 -1
  411. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  412. package/dist/verify/verification-deps-default.js +49 -42
  413. package/dist/verify/verification-deps-default.js.map +1 -1
  414. package/dist/verify/verification-deps.d.ts +69 -4
  415. package/dist/verify/verification-deps.d.ts.map +1 -1
  416. package/dist/verify/verification-deterministic.d.ts +15 -2
  417. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  418. package/dist/verify/verification-deterministic.js +12 -3
  419. package/dist/verify/verification-deterministic.js.map +1 -1
  420. package/dist/verify/verification-diagnostics.d.ts +16 -0
  421. package/dist/verify/verification-diagnostics.d.ts.map +1 -0
  422. package/dist/verify/verification-diagnostics.js +219 -0
  423. package/dist/verify/verification-diagnostics.js.map +1 -0
  424. package/dist/verify/verification-engine.d.ts +12 -8
  425. package/dist/verify/verification-engine.d.ts.map +1 -1
  426. package/dist/verify/verification-engine.js +110 -92
  427. package/dist/verify/verification-engine.js.map +1 -1
  428. package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
  429. package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  430. package/dist/verify/verification-evidence-unavailable-feedback.js +14 -4
  431. package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
  432. package/dist/verify/verification-failure-parser.d.ts +37 -3
  433. package/dist/verify/verification-failure-parser.d.ts.map +1 -1
  434. package/dist/verify/verification-failure-parser.js +66 -3
  435. package/dist/verify/verification-failure-parser.js.map +1 -1
  436. package/dist/verify/verification-feedback.d.ts +21 -34
  437. package/dist/verify/verification-feedback.d.ts.map +1 -1
  438. package/dist/verify/verification-feedback.js +37 -88
  439. package/dist/verify/verification-feedback.js.map +1 -1
  440. package/dist/verify/verification-gate-stages.d.ts +110 -0
  441. package/dist/verify/verification-gate-stages.d.ts.map +1 -0
  442. package/dist/verify/verification-gate-stages.js +179 -0
  443. package/dist/verify/verification-gate-stages.js.map +1 -0
  444. package/dist/verify/verification-history-reset.d.ts +61 -0
  445. package/dist/verify/verification-history-reset.d.ts.map +1 -0
  446. package/dist/verify/verification-history-reset.js +90 -0
  447. package/dist/verify/verification-history-reset.js.map +1 -0
  448. package/dist/verify/verification-manifest.d.ts.map +1 -1
  449. package/dist/verify/verification-manifest.js +2 -1
  450. package/dist/verify/verification-manifest.js.map +1 -1
  451. package/dist/verify/verification-rework-messages.d.ts +19 -0
  452. package/dist/verify/verification-rework-messages.d.ts.map +1 -0
  453. package/dist/verify/verification-rework-messages.js +52 -0
  454. package/dist/verify/verification-rework-messages.js.map +1 -0
  455. package/dist/worktree/install-inputs.d.ts +89 -0
  456. package/dist/worktree/install-inputs.d.ts.map +1 -0
  457. package/dist/worktree/install-inputs.js +625 -0
  458. package/dist/worktree/install-inputs.js.map +1 -0
  459. package/dist/worktree/install-script-effects.d.ts +30 -0
  460. package/dist/worktree/install-script-effects.d.ts.map +1 -0
  461. package/dist/worktree/install-script-effects.js +524 -0
  462. package/dist/worktree/install-script-effects.js.map +1 -0
  463. package/dist/worktree/install-script-tokens.d.ts +57 -0
  464. package/dist/worktree/install-script-tokens.d.ts.map +1 -0
  465. package/dist/worktree/install-script-tokens.js +299 -0
  466. package/dist/worktree/install-script-tokens.js.map +1 -0
  467. package/dist/worktree/provision.d.ts +27 -4
  468. package/dist/worktree/provision.d.ts.map +1 -1
  469. package/dist/worktree/provision.js +46 -7
  470. package/dist/worktree/provision.js.map +1 -1
  471. package/dist/worktree/safety.d.ts +11 -0
  472. package/dist/worktree/safety.d.ts.map +1 -1
  473. package/dist/worktree/safety.js +20 -3
  474. package/dist/worktree/safety.js.map +1 -1
  475. package/dist/worktree/verify-interlock.d.ts.map +1 -1
  476. package/dist/worktree/verify-interlock.js +3 -1
  477. package/dist/worktree/verify-interlock.js.map +1 -1
  478. package/dist/worktree/worktree-package-provisioning.d.ts +75 -0
  479. package/dist/worktree/worktree-package-provisioning.d.ts.map +1 -0
  480. package/dist/worktree/worktree-package-provisioning.js +362 -0
  481. package/dist/worktree/worktree-package-provisioning.js.map +1 -0
  482. package/package.json +1 -1
@@ -0,0 +1,474 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/completion/review-exit-foreign-findings.test.ts,
3
+ // packages/daemon/src/completion/review-exit-foreign-focus-regression.test.ts
4
+ // PINNED-BY-END
5
+ /**
6
+ * Scope a review exit's evidence to the reviewing focus's OWN work: a blocking
7
+ * finding about another focus's commit is routed to where that focus's work will
8
+ * pick it up, and never routes this focus back to coding.
9
+ *
10
+ * The failure this closes (2026-09-15): a focus branch merged integration, so its
11
+ * incremental review range carried a sibling focus's commits. The review judged
12
+ * them, filed their defects on THIS focus's in-verify delivery (the persona then
13
+ * required it), and the exit routed that delivery to verify_failed -- ten
14
+ * gaps_found cycles with every acceptance criterion met, while the sibling kept
15
+ * changing the shared code.
16
+ *
17
+ * The review INPUT is already scoped (the git.diff_against_base resolver judges a
18
+ * foreign-bearing window on the focus's own commit patches). This is the
19
+ * deterministic backstop on the OUTPUT; it does not trust the reviewer to follow
20
+ * the persona's foreign-commit filing rule:
21
+ * - A blocking review-filed finding on this focus is FOREIGN when every commit
22
+ * sha it names (title + description, full or short hex) that resolves in the
23
+ * review window (prior watermark..spawn tip) is attributed by its
24
+ * Telora-Delivery trailer to another focus's delivery. Any resolved own
25
+ * commit keeps it OWN.
26
+ * - A finding naming NO resolvable sha is attributed by the file:line references
27
+ * it names (`path/file.ts:12`, `file.ts:12-30`, `file.ts L12`): `git blame` at
28
+ * the reviewed tip, for exactly those lines. It is FOREIGN only when every
29
+ * referenced line blames to a foreign-attributed commit inside the window; a
30
+ * line that blames to an own commit or to a commit outside the window, or that
31
+ * cannot be blamed (missing file, bad range, git error), keeps it OWN. No sha
32
+ * and no file:line -> OWN (today's routing).
33
+ * - A foreign finding is moved to its owner home (resolveOwnerHome) and leaves
34
+ * this focus's target sets once the move lands; it is never re-homed onto this
35
+ * focus's in-verify delivery.
36
+ * - A blocking finding the review filed DIRECTLY on another focus's delivery
37
+ * (a created id outside this focus's issues) is foreign by location: once it
38
+ * sits on its owner home it counts as a resolved finding, so an all-foreign
39
+ * gaps_found verdict lets this focus converge on merit instead of reading
40
+ * 'unresolvable'.
41
+ * - When the owning focus has no routable delivery, or is not armed, the issue
42
+ * stays open where it lands and ONE agent_resolvable observation (deduped per
43
+ * owning delivery) anchors it to the owning focus/delivery, so the promotion
44
+ * sweep hands it to the routing decider. Nothing is dropped or closed.
45
+ *
46
+ * Complete-evidence invariant: only a POSITIVELY foreign finding that is RELOCATED
47
+ * leaves the population. An owner that cannot be resolved keeps the finding OWN; a
48
+ * created id that cannot be located keeps an all-foreign verdict 'unresolvable'
49
+ * (hold). A move that fails (throws, or no rehome seam) never lets the reviewing
50
+ * focus converge on that finding's account: an on-focus finding stays in this
51
+ * focus's evidence, an off-focus one counts as unresolved (hold), the next exit
52
+ * retries the move, and ONE agent_resolvable observation names the stranded issue
53
+ * so it is durable even if this focus later converges for another reason.
54
+ *
55
+ * Split from review-exit-phase.ts (file-size limit); sibling of
56
+ * review-exit-rehoming.ts. Its deps are structural (no import of
57
+ * review-exit-deps.ts), so the completion family stays acyclic.
58
+ *
59
+ * @module completion/review-exit-foreign-findings
60
+ */
61
+ import { DELIVERY_STATUS, ESCALATION_KINDS, ESCALATION_REASONS } from '@telora/daemon-core';
62
+ import { DISPOSITION_AGENT_RESOLVABLE } from '../queries/escalation-dispositions.js';
63
+ import { OPEN_ISSUE_STATUSES } from '../shell/constants.js';
64
+ import { partitionReviewWindowCommits, } from '../resolvers/shared/review-window-commits.js';
65
+ import { isLowPriority } from './review-defect-detector.js';
66
+ import { resolveAttributedDeliveryIds } from './review-exit-attribution.js';
67
+ import { createLogger } from '../shell/log.js';
68
+ const log = createLogger({ module: 'focus-executor' });
69
+ /**
70
+ * The escalation kind the unroutable-owner observation files under. An existing
71
+ * kind the agent_escalations CHECK accepts (no migration): the finding is a review
72
+ * gap the owning focus's loop cannot converge on because nothing routes it.
73
+ */
74
+ export const FOREIGN_FINDING_OBSERVATION_KIND = ESCALATION_KINDS.REVIEW_NONCONVERGENT;
75
+ // ── Pure: which commits a finding names ───────────────────────────────────
76
+ const UUID_RE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
77
+ const SHA_TOKEN_RE = /\b[0-9a-f]{7,40}\b/gi;
78
+ /**
79
+ * Pure: the hex tokens (7-40 chars, lowercased, first-seen order, deduped) a
80
+ * finding's text names as commit shas. UUIDs are stripped first so a delivery or
81
+ * issue id is never read as a sha. A token is only a CANDIDATE: it counts once it
82
+ * resolves to exactly one commit in the review window.
83
+ */
84
+ export function extractNamedCommitShas(text) {
85
+ const seen = new Set();
86
+ const out = [];
87
+ for (const m of (text ?? '').replace(UUID_RE, ' ').matchAll(SHA_TOKEN_RE)) {
88
+ const token = m[0].toLowerCase();
89
+ if (seen.has(token))
90
+ continue;
91
+ seen.add(token);
92
+ out.push(token);
93
+ }
94
+ return out;
95
+ }
96
+ /**
97
+ * Pure: classify a finding's text against a partitioned review window. Each named
98
+ * token resolves to the ONE window commit whose sha it prefixes (an ambiguous or
99
+ * unmatched token resolves to nothing). No resolved commit -> own; any resolved
100
+ * own commit -> own; every resolved commit foreign -> foreign, owned by the
101
+ * delivery of the first one named.
102
+ */
103
+ export function classifyFindingByCommits(text, partition) {
104
+ const window = [
105
+ ...partition.own.map(c => ({ sha: c.sha.toLowerCase(), deliveryId: null })),
106
+ ...partition.foreign.map(c => ({ sha: c.sha.toLowerCase(), deliveryId: c.deliveryId })),
107
+ ];
108
+ const resolved = [];
109
+ for (const token of extractNamedCommitShas(text)) {
110
+ const matches = window.filter(c => c.sha.startsWith(token));
111
+ const hit = matches.length === 1 ? matches[0] : undefined;
112
+ if (hit && !resolved.some(r => r.sha === hit.sha))
113
+ resolved.push(hit);
114
+ }
115
+ if (resolved.length === 0)
116
+ return { kind: 'own', reason: 'no_resolvable_sha' };
117
+ const first = resolved[0];
118
+ if (!first || resolved.some(r => r.deliveryId === null))
119
+ return { kind: 'own', reason: 'names_own_commit' };
120
+ return { kind: 'foreign', owningDeliveryId: first.deliveryId ?? '', shas: resolved.map(r => r.sha) };
121
+ }
122
+ /** The most file:line references one finding is blamed for; past it the finding stays own. */
123
+ export const MAX_FINDING_LINE_REFS = 20;
124
+ /** The widest line range one reference is blamed for; a wider one is unblameable (own). */
125
+ export const MAX_FINDING_LINE_SPAN = 400;
126
+ // A repo-relative path with a letter-led extension, then `:12`, `:L12`, `#L12`, ` L12` or
127
+ // ` line(s) 12`, optionally `-30` / `-L30`. A path may not begin right after a word char,
128
+ // `/`, `.`, `@` or `-`, so a URL host (`https://host.com:443`) or the tail of an absolute
129
+ // path never matches, and a version or clock (`1.2:3`, `11:40`) has no extension to match.
130
+ const FILE_LINE_RE = /(?<![\w/.@-])((?:[\w@.-]+\/)*[\w@-][\w@.-]*\.[A-Za-z][A-Za-z0-9]*)(?::L?|#L|\s+L|\s+lines?\s+)(\d+)(?:\s*-\s*L?(\d+))?/g;
131
+ /**
132
+ * Pure: the file:line references a finding's text names, first-seen order, deduped.
133
+ * A malformed range (end before start, line 0) is still returned: it is a named
134
+ * reference that cannot be blamed, which keeps the finding own.
135
+ */
136
+ export function parseFileLineRefs(text) {
137
+ const seen = new Set();
138
+ const out = [];
139
+ for (const m of (text ?? '').matchAll(FILE_LINE_RE)) {
140
+ const file = m[1] ?? '';
141
+ const start = Number.parseInt(m[2] ?? '', 10);
142
+ const end = m[3] !== undefined ? Number.parseInt(m[3], 10) : start;
143
+ const key = `${file}:${start}-${end}`;
144
+ if (file === '' || !Number.isFinite(start) || !Number.isFinite(end) || seen.has(key))
145
+ continue;
146
+ seen.add(key);
147
+ out.push({ file, start, end });
148
+ }
149
+ return out;
150
+ }
151
+ /**
152
+ * Pure (over the supplied blame read): classify a finding that names no resolvable
153
+ * sha by the lines it names. Foreign only when EVERY referenced line blames to a
154
+ * foreign commit of the window, owned by the first such line's delivery. A line
155
+ * blaming to an own commit or to a commit outside the window -> own; a reference
156
+ * that cannot be blamed (null read, a partial read, a malformed or too-wide range,
157
+ * too many references) -> own. No reference -> own (no attributable reference).
158
+ */
159
+ export function classifyFindingByLines(refs, blame, partition) {
160
+ if (refs.length === 0)
161
+ return { kind: 'own', reason: 'no_resolvable_sha' };
162
+ if (refs.length > MAX_FINDING_LINE_REFS)
163
+ return { kind: 'own', reason: 'unblameable_line' };
164
+ const foreignDelivery = new Map(partition.foreign.map(c => [c.sha.toLowerCase(), c.deliveryId]));
165
+ const shas = [];
166
+ let owningDeliveryId;
167
+ for (const ref of refs) {
168
+ const lines = ref.end - ref.start + 1;
169
+ if (ref.start < 1 || lines < 1 || lines > MAX_FINDING_LINE_SPAN)
170
+ return { kind: 'own', reason: 'unblameable_line' };
171
+ const blamed = blame(ref);
172
+ if (!blamed || blamed.length !== lines)
173
+ return { kind: 'own', reason: 'unblameable_line' };
174
+ for (const raw of blamed) {
175
+ const sha = raw.toLowerCase();
176
+ const deliveryId = foreignDelivery.get(sha);
177
+ if (deliveryId === undefined)
178
+ return { kind: 'own', reason: 'line_not_foreign' };
179
+ if (owningDeliveryId === undefined)
180
+ owningDeliveryId = deliveryId;
181
+ if (!shas.includes(sha))
182
+ shas.push(sha);
183
+ }
184
+ }
185
+ return { kind: 'foreign', owningDeliveryId: owningDeliveryId ?? '', shas };
186
+ }
187
+ const isTerminal = (status) => status === DELIVERY_STATUS.DONE || status === DELIVERY_STATUS.CANCELLED;
188
+ /**
189
+ * Pure: resolve a foreign finding's home on its owning focus. The owning delivery
190
+ * when it is non-terminal; when it is done/cancelled, the owning focus's single
191
+ * in-verify delivery, else its first non-terminal delivery by priority rank; when
192
+ * none exists, the owning delivery itself with an observation. An un-armed owning
193
+ * focus also observes (no coding spawn will reach the finding). Null when the
194
+ * owning delivery is not among its focus's deliveries (the owner is unresolved).
195
+ */
196
+ export function resolveOwnerHome(input) {
197
+ const owning = input.ownerFocusDeliveries.find(d => d.id === input.owningDeliveryId);
198
+ if (!owning)
199
+ return null;
200
+ const unarmed = !input.ownerFocusArmed;
201
+ if (!isTerminal(owning.executionStatus)) {
202
+ return { deliveryId: owning.id, observe: unarmed, reason: 'the owning delivery is not terminal' };
203
+ }
204
+ const open = input.ownerFocusDeliveries.filter(d => !isTerminal(d.executionStatus));
205
+ const inVerify = open.filter(d => d.executionStatus === DELIVERY_STATUS.VERIFY);
206
+ const onlyVerify = inVerify.length === 1 ? inVerify[0] : undefined;
207
+ if (onlyVerify) {
208
+ return { deliveryId: onlyVerify.id, observe: unarmed, reason: 'the owning delivery is terminal; its focus\'s single in-verify delivery' };
209
+ }
210
+ const firstOpen = [...open].sort((a, b) => a.priorityRank - b.priorityRank)[0];
211
+ if (firstOpen) {
212
+ return { deliveryId: firstOpen.id, observe: unarmed, reason: 'the owning delivery is terminal; its focus\'s first non-terminal delivery' };
213
+ }
214
+ return { deliveryId: owning.id, observe: true, reason: 'the owning focus has no non-terminal delivery' };
215
+ }
216
+ /** Pure: a focus a coding spawn can reach -- in the active set, role-assigned, not operator-stopped. */
217
+ export function isFocusArmed(row) {
218
+ return !!row && row.assigned_agent_role_id != null && row.operator_stopped_at == null;
219
+ }
220
+ /**
221
+ * Pure: re-derive the target sets without the relocated findings. With nothing
222
+ * relocated the gathered evidence passes through unchanged. A verdict resolves
223
+ * when an own blocking finding is attributed (today's rule) OR when relocated
224
+ * foreign findings account for it and every created id was located and moved home.
225
+ * hasBlockingIssueEvidence is never lowered, and a foreign finding raises it: the
226
+ * review DID file a blocking gap, so the gaps-without-issue inconsistency must not
227
+ * fire for a foreign one (filed off this focus, or stranded by a failed move).
228
+ */
229
+ export function scopeEvidence(evidence, routing) {
230
+ const { relocatedIds, foreignFindingIds } = routing;
231
+ if (relocatedIds.size === 0) {
232
+ return {
233
+ attributedDeliveryIds: evidence.attributedDeliveryIds,
234
+ reviewFiledTargetDeliveryIds: evidence.reviewFiledTargetDeliveryIds,
235
+ openBlockingFindings: evidence.openBlockingFindings,
236
+ hasBlockingIssueEvidence: evidence.hasBlockingIssueEvidence || foreignFindingIds.size > 0,
237
+ attributionResolvable: evidence.attributedDeliveryIds.size > 0,
238
+ foreignFindingIds,
239
+ relocatedFindingIds: relocatedIds,
240
+ };
241
+ }
242
+ const kept = evidence.focusIssues.filter(i => !relocatedIds.has(i.id));
243
+ const attributedDeliveryIds = resolveAttributedDeliveryIds(kept, new Set(evidence.reviewCreatedIssueIds));
244
+ return {
245
+ attributedDeliveryIds,
246
+ reviewFiledTargetDeliveryIds: resolveAttributedDeliveryIds(kept, evidence.reviewFiledIds),
247
+ openBlockingFindings: evidence.openBlockingFindings.filter(f => !relocatedIds.has(f.id)),
248
+ hasBlockingIssueEvidence: true,
249
+ attributionResolvable: attributedDeliveryIds.size > 0 || routing.unresolvedCreatedCount === 0,
250
+ foreignFindingIds,
251
+ relocatedFindingIds: relocatedIds,
252
+ };
253
+ }
254
+ const findingText = (i) => `${i.title}\n${i.description ?? ''}`;
255
+ /** Per-exit memoized reads of the owning foci. */
256
+ function makeOwnerReads(deps, args) {
257
+ const focusOf = new Map();
258
+ const deliveriesOf = new Map();
259
+ const issuesOf = new Map();
260
+ const memo = (m, key, read) => {
261
+ let p = m.get(key);
262
+ if (!p) {
263
+ p = read();
264
+ m.set(key, p);
265
+ }
266
+ return p;
267
+ };
268
+ const routeFor = async (owningDeliveryId, knownFocusId) => {
269
+ const ownerFocusId = knownFocusId ??
270
+ (deps.resolveDeliveryFocusId ? await memo(focusOf, owningDeliveryId, () => deps.resolveDeliveryFocusId(owningDeliveryId)) : null);
271
+ if (!ownerFocusId || ownerFocusId === args.focusId)
272
+ return null;
273
+ const ownerFocusArmed = isFocusArmed(args.focuses.find(f => f.focus_id === ownerFocusId));
274
+ const home = resolveOwnerHome({
275
+ owningDeliveryId,
276
+ ownerFocusDeliveries: await memo(deliveriesOf, ownerFocusId, () => deps.getFocusDeliveries(ownerFocusId)),
277
+ ownerFocusArmed,
278
+ });
279
+ return home ? { ownerFocusId, ownerFocusArmed, home } : null;
280
+ };
281
+ const issuesOfFocus = (focusId) => memo(issuesOf, focusId, () => deps.getFocusIssues(focusId));
282
+ return { routeFor, issuesOfFocus };
283
+ }
284
+ /** Move a foreign finding to its owner home. True only when the issue is now there. */
285
+ async function moveToOwnerHome(deps, args, finding, route, shas) {
286
+ if (finding.deliveryId === route.home.deliveryId)
287
+ return true;
288
+ if (!deps.rehomeIssueToDelivery)
289
+ return false;
290
+ const named = shas.length > 0 ? `names commit(s) ${shas.map(s => s.slice(0, 12)).join(', ')} attributed to another focus; it ` : '';
291
+ const note = `\n\n[re-homed by review-exit of focus "${args.focusName}": this finding ${named}was moved from delivery ` +
292
+ `${finding.deliveryId ?? '<none>'} to delivery ${route.home.deliveryId} of the owning focus (${route.home.reason}).]`;
293
+ try {
294
+ await deps.rehomeIssueToDelivery(finding.id, route.home.deliveryId, `${finding.description ?? ''}${note}`);
295
+ log.info(`[focus-executor] "${args.focusName}": foreign review finding ${finding.key} moved from delivery ` +
296
+ `${finding.deliveryId} to ${route.home.deliveryId} of focus ${route.ownerFocusId} (${route.home.reason}).`);
297
+ return true;
298
+ }
299
+ catch (err) {
300
+ log.warn(`[focus-executor] "${args.focusName}": failed to move foreign finding ${finding.key}: ${err.message}`);
301
+ return false;
302
+ }
303
+ }
304
+ /**
305
+ * File ONE agent_resolvable observation per owning delivery (createEscalation
306
+ * chokepoint): nothing on the owning focus routes the finding -- it has no routable
307
+ * delivery or is un-armed, or (`moveFailed`) the move to its routable delivery
308
+ * failed, so the issue is stranded where it sits.
309
+ */
310
+ async function observeForeignFinding(deps, args, finding, route, observed, moveFailed) {
311
+ const deliveryId = route.home.deliveryId;
312
+ if (observed.has(deliveryId))
313
+ return;
314
+ observed.add(deliveryId);
315
+ try {
316
+ if (deps.hasOpenEscalationForDelivery && await deps.hasOpenEscalationForDelivery(deliveryId, FOREIGN_FINDING_OBSERVATION_KIND))
317
+ return;
318
+ }
319
+ catch (err) {
320
+ log.warn(`[focus-executor] foreign-finding observation dedup read failed for delivery ${deliveryId}: ${err.message}`);
321
+ }
322
+ const unarmed = route.ownerFocusArmed ? '' : ' (the owning focus is not armed)';
323
+ const found = `Review of focus "${args.focusName}" found blocking finding ${finding.key} ("${finding.title}") in work owned by `;
324
+ try {
325
+ await deps.createEscalation({
326
+ organizationId: args.organizationId,
327
+ sessionId: args.sessionId,
328
+ issueId: finding.id,
329
+ reasonType: ESCALATION_REASONS.DECISION_NEEDED,
330
+ disposition: DISPOSITION_AGENT_RESOLVABLE,
331
+ escalationKind: FOREIGN_FINDING_OBSERVATION_KIND,
332
+ anchor: { deliveryId, focusId: route.ownerFocusId },
333
+ description: moveFailed
334
+ ? `${found}focus ${route.ownerFocusId}, but could not move it from delivery ${finding.deliveryId ?? '<none>'} to ` +
335
+ `delivery ${deliveryId} (${route.home.reason})${unarmed}, so it is stranded where the owning focus's work ` +
336
+ 'does not route it. The reviewing focus holds on it, and its next review exit retries the move.'
337
+ : `${found}delivery ${deliveryId}, and nothing on the owning focus will route it: ${route.home.reason}${unarmed}.`,
338
+ whatWasTried: moveFailed
339
+ ? 'The review exit scoped its verdict to its own focus\'s commits and tried to move this finding to the owning ' +
340
+ 'focus\'s routable delivery; the move failed.'
341
+ : 'The review exit scoped its verdict to its own focus\'s commits and left this finding open on the owning ' +
342
+ 'focus instead of routing the reviewing focus back to coding for it.',
343
+ helpNeeded: moveFailed
344
+ ? `Move issue ${finding.key} to delivery ${deliveryId} (or another routable delivery of the owning focus) so its work routes it.`
345
+ : 'Decide where this finding is worked: re-open or queue a delivery on the owning focus, or route it to a focus that is running.',
346
+ metadata: {
347
+ issue_id: finding.id, reviewing_focus_id: args.focusId, owning_focus_id: route.ownerFocusId, reason: route.home.reason,
348
+ ...(moveFailed ? { rehome_failed: true, stranded_on_delivery_id: finding.deliveryId ?? null } : {}),
349
+ },
350
+ });
351
+ }
352
+ catch (err) {
353
+ log.warn(`[focus-executor] foreign-finding observation failed for delivery ${deliveryId}: ${err.message}`);
354
+ }
355
+ }
356
+ /** A finding's scope: by the commits it names, else (naming none) by blame of the lines it names. */
357
+ function scopeOfFinding(deps, args, issue, partition, tip) {
358
+ const byCommits = classifyFindingByCommits(findingText(issue), partition);
359
+ const blameLines = deps.blameLines;
360
+ if (byCommits.kind !== 'own' || byCommits.reason !== 'no_resolvable_sha' || !blameLines)
361
+ return byCommits;
362
+ return classifyFindingByLines(parseFileLineRefs(findingText(issue)), (ref) => {
363
+ try {
364
+ return blameLines(args.focusId, tip, ref.file, ref.start, ref.end);
365
+ }
366
+ catch (err) {
367
+ log.warn(`[focus-executor] "${args.focusName}": blame of ${ref.file}:${ref.start}-${ref.end} failed: ${err.message}`);
368
+ return null;
369
+ }
370
+ }, partition);
371
+ }
372
+ /** Foreign findings still ON this focus: classified by the commits, else the lines, they name. */
373
+ async function routeOnFocusFindings(deps, args, reads, out) {
374
+ const base = args.reviewPriorWatermark !== undefined ? args.reviewPriorWatermark : (args.current.reviewed_through_sha ?? null);
375
+ const tip = args.reviewSpawnTip ?? args.currentBranchTip ?? null;
376
+ const findings = args.evidence.focusIssues.filter(i => args.evidence.openBlockingFindings.some(f => f.id === i.id));
377
+ if (!deps.listReviewWindowCommits || !base || !tip || base === tip)
378
+ return;
379
+ const namesAttributable = (i) => extractNamedCommitShas(findingText(i)).length > 0 || (!!deps.blameLines && parseFileLineRefs(findingText(i)).length > 0);
380
+ if (!findings.some(namesAttributable))
381
+ return;
382
+ let commits = null;
383
+ try {
384
+ commits = deps.listReviewWindowCommits(args.focusId, base, tip);
385
+ }
386
+ catch (err) {
387
+ log.warn(`[focus-executor] "${args.focusName}": review window read failed: ${err.message}`);
388
+ }
389
+ const partition = partitionReviewWindowCommits(commits ?? [], new Set(args.reviewDeliveries.map(d => d.id)));
390
+ if (partition.foreign.length === 0)
391
+ return;
392
+ for (const issue of findings) {
393
+ const scope = scopeOfFinding(deps, args, issue, partition, tip);
394
+ if (scope.kind !== 'foreign')
395
+ continue;
396
+ const route = await reads.routeFor(scope.owningDeliveryId);
397
+ if (!route)
398
+ continue; // owner unresolved -> the finding stays own
399
+ out.foreign.add(issue.id);
400
+ // A failed move keeps the finding in this focus's evidence: it still routes this focus back, and the next exit retries.
401
+ const moved = await moveToOwnerHome(deps, args, issue, route, scope.shas);
402
+ if (moved)
403
+ out.relocated.add(issue.id);
404
+ if (!moved || route.home.observe)
405
+ await observeForeignFinding(deps, args, issue, route, out.observed, !moved);
406
+ }
407
+ }
408
+ /** Created ids of this session filed OUTSIDE this focus: foreign by location. Returns the unresolved count. */
409
+ async function routeOffFocusFindings(deps, args, reads, out) {
410
+ const onFocus = new Set(args.evidence.focusIssues.map(i => i.id));
411
+ const offFocus = [...new Set(args.evidence.reviewCreatedIssueIds)].filter(id => !onFocus.has(id));
412
+ if (!deps.getIssueDelivery)
413
+ return offFocus.length;
414
+ let unresolved = 0;
415
+ for (const id of offFocus) {
416
+ try {
417
+ const loc = await deps.getIssueDelivery(id);
418
+ if (!loc?.focusId || loc.focusId === args.focusId) {
419
+ unresolved++;
420
+ continue;
421
+ }
422
+ const issue = (await reads.issuesOfFocus(loc.focusId)).find(i => i.id === id);
423
+ if (!issue) {
424
+ unresolved++;
425
+ continue;
426
+ }
427
+ if (!OPEN_ISSUE_STATUSES.has(issue.status) || isLowPriority(issue.priority))
428
+ continue; // located, not blocking
429
+ out.foreign.add(id);
430
+ const route = await reads.routeFor(issue.deliveryId ?? loc.deliveryId, loc.focusId);
431
+ if (!route) {
432
+ out.relocated.add(id);
433
+ continue;
434
+ } // already on the other focus; leave it where the reviewer put it
435
+ // Relocated only once it sits on its owner home: a failed move holds (unresolved), and the next exit retries.
436
+ const moved = await moveToOwnerHome(deps, args, issue, route, extractNamedCommitShas(findingText(issue)));
437
+ if (moved)
438
+ out.relocated.add(id);
439
+ else
440
+ unresolved++;
441
+ if (!moved || route.home.observe)
442
+ await observeForeignFinding(deps, args, issue, route, out.observed, !moved);
443
+ }
444
+ catch (err) {
445
+ unresolved++;
446
+ log.warn(`[focus-executor] "${args.focusName}": could not locate review-created issue ${id}: ${err.message}`);
447
+ }
448
+ }
449
+ return unresolved;
450
+ }
451
+ /**
452
+ * Route this exit's foreign findings to their owners, then return the routing-tree
453
+ * inputs scoped to this focus's own work. Best-effort: every read/move failure
454
+ * keeps the affected finding in this focus's evidence (the pre-scope behavior), or
455
+ * -- for a finding filed off this focus -- holds the verdict as unresolved.
456
+ */
457
+ export async function scopeReviewEvidenceToOwnWork(deps, args) {
458
+ const out = { foreign: new Set(), relocated: new Set(), observed: new Set() };
459
+ const reads = makeOwnerReads(deps, args);
460
+ let unresolvedCreatedCount = 0;
461
+ try {
462
+ await routeOnFocusFindings(deps, args, reads, out);
463
+ unresolvedCreatedCount = await routeOffFocusFindings(deps, args, reads, out);
464
+ }
465
+ catch (err) {
466
+ log.warn(`[focus-executor] "${args.focusName}": foreign-finding scope failed: ${err.message}`);
467
+ }
468
+ return scopeEvidence(args.evidence, {
469
+ foreignFindingIds: out.foreign,
470
+ relocatedIds: out.relocated,
471
+ unresolvedCreatedCount,
472
+ });
473
+ }
474
+ //# sourceMappingURL=review-exit-foreign-findings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-exit-foreign-findings.js","sourceRoot":"","sources":["../../src/completion/review-exit-foreign-findings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-exit-phase.d.ts","sourceRoot":"","sources":["../../src/completion/review-exit-phase.ts"],"names":[],"mappings":"AA4DA,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,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;IACnB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAMD,OAAO,EACL,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAkmBf"}
1
+ {"version":3,"file":"review-exit-phase.d.ts","sourceRoot":"","sources":["../../src/completion/review-exit-phase.ts"],"names":[],"mappings":"AA+CA,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,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;IACnB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAMD,OAAO,EACL,iCAAiC,EACjC,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMnE;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,cAAsC,GAC3C,OAAO,CAAC,IAAI,CAAC,CA6lBf"}