@telora/daemon 0.22.132 → 0.22.136

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 (549) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +6 -2
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +12 -5
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/audit/audit-phase.js +1 -1
  7. package/dist/audit/audit-phase.js.map +1 -1
  8. package/dist/backends/index.d.ts.map +1 -1
  9. package/dist/backends/index.js +1 -0
  10. package/dist/backends/index.js.map +1 -1
  11. package/dist/completion/completion-phase-registry.d.ts +4 -0
  12. package/dist/completion/completion-phase-registry.d.ts.map +1 -1
  13. package/dist/completion/completion-phase-registry.js +63 -18
  14. package/dist/completion/completion-phase-registry.js.map +1 -1
  15. package/dist/completion/exit-classification.d.ts.map +1 -1
  16. package/dist/completion/exit-classification.js +1 -0
  17. package/dist/completion/exit-classification.js.map +1 -1
  18. package/dist/completion/review-approved-head-gate.d.ts +53 -0
  19. package/dist/completion/review-approved-head-gate.d.ts.map +1 -0
  20. package/dist/completion/review-approved-head-gate.js +124 -0
  21. package/dist/completion/review-approved-head-gate.js.map +1 -0
  22. package/dist/completion/review-census-record.d.ts +52 -0
  23. package/dist/completion/review-census-record.d.ts.map +1 -0
  24. package/dist/completion/review-census-record.js +145 -0
  25. package/dist/completion/review-census-record.js.map +1 -0
  26. package/dist/completion/review-exit-deps.d.ts +5 -1
  27. package/dist/completion/review-exit-deps.d.ts.map +1 -1
  28. package/dist/completion/review-exit-deps.js +7 -2
  29. package/dist/completion/review-exit-deps.js.map +1 -1
  30. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  31. package/dist/completion/review-exit-phase.js +29 -16
  32. package/dist/completion/review-exit-phase.js.map +1 -1
  33. package/dist/completion/review-exit-progress.d.ts +8 -0
  34. package/dist/completion/review-exit-progress.d.ts.map +1 -1
  35. package/dist/completion/review-exit-progress.js +14 -0
  36. package/dist/completion/review-exit-progress.js.map +1 -1
  37. package/dist/completion/review-exit-shortfall-park.d.ts +14 -0
  38. package/dist/completion/review-exit-shortfall-park.d.ts.map +1 -0
  39. package/dist/completion/review-exit-shortfall-park.js +52 -0
  40. package/dist/completion/review-exit-shortfall-park.js.map +1 -0
  41. package/dist/completion/review-exit-shortfall.js +1 -1
  42. package/dist/completion/review-exit-shortfall.js.map +1 -1
  43. package/dist/completion/review-exit-verdict-gate.d.ts +58 -0
  44. package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -1
  45. package/dist/completion/review-exit-verdict-gate.js +68 -8
  46. package/dist/completion/review-exit-verdict-gate.js.map +1 -1
  47. package/dist/completion/review-next-step.d.ts +15 -3
  48. package/dist/completion/review-next-step.d.ts.map +1 -1
  49. package/dist/completion/review-next-step.js +7 -2
  50. package/dist/completion/review-next-step.js.map +1 -1
  51. package/dist/completion/standing-approval-convergence.d.ts +68 -0
  52. package/dist/completion/standing-approval-convergence.d.ts.map +1 -0
  53. package/dist/completion/standing-approval-convergence.js +230 -0
  54. package/dist/completion/standing-approval-convergence.js.map +1 -0
  55. package/dist/completion/standing-approval-deps.d.ts +5 -0
  56. package/dist/completion/standing-approval-deps.d.ts.map +1 -0
  57. package/dist/completion/standing-approval-deps.js +37 -0
  58. package/dist/completion/standing-approval-deps.js.map +1 -0
  59. package/dist/completion/state-cascade.d.ts +11 -0
  60. package/dist/completion/state-cascade.d.ts.map +1 -1
  61. package/dist/completion/state-cascade.js +40 -1
  62. package/dist/completion/state-cascade.js.map +1 -1
  63. package/dist/completion/team-lifecycle.d.ts +14 -2
  64. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  65. package/dist/completion/team-lifecycle.js +36 -36
  66. package/dist/completion/team-lifecycle.js.map +1 -1
  67. package/dist/completion/terminated-work-reconcile.d.ts +3 -1
  68. package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
  69. package/dist/completion/terminated-work-reconcile.js +24 -11
  70. package/dist/completion/terminated-work-reconcile.js.map +1 -1
  71. package/dist/delivery/delivery-advance-block.d.ts +6 -0
  72. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  73. package/dist/delivery/delivery-advance-block.js +29 -3
  74. package/dist/delivery/delivery-advance-block.js.map +1 -1
  75. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  76. package/dist/delivery/delivery-reconciler.js +4 -1
  77. package/dist/delivery/delivery-reconciler.js.map +1 -1
  78. package/dist/delivery/operator-hold.d.ts.map +1 -1
  79. package/dist/delivery/operator-hold.js +3 -1
  80. package/dist/delivery/operator-hold.js.map +1 -1
  81. package/dist/directive/directive-executor.d.ts.map +1 -1
  82. package/dist/directive/directive-executor.js +6 -0
  83. package/dist/directive/directive-executor.js.map +1 -1
  84. package/dist/directive/directive-queue.d.ts +8 -0
  85. package/dist/directive/directive-queue.d.ts.map +1 -1
  86. package/dist/directive/directive-queue.js +20 -0
  87. package/dist/directive/directive-queue.js.map +1 -1
  88. package/dist/directive/phase-sync.d.ts +5 -0
  89. package/dist/directive/phase-sync.d.ts.map +1 -1
  90. package/dist/directive/phase-sync.js +11 -1
  91. package/dist/directive/phase-sync.js.map +1 -1
  92. package/dist/directive/stranded-review-reroute.d.ts +37 -0
  93. package/dist/directive/stranded-review-reroute.d.ts.map +1 -0
  94. package/dist/directive/stranded-review-reroute.js +150 -0
  95. package/dist/directive/stranded-review-reroute.js.map +1 -0
  96. package/dist/focus/focus-engine.d.ts.map +1 -1
  97. package/dist/focus/focus-engine.js +15 -3
  98. package/dist/focus/focus-engine.js.map +1 -1
  99. package/dist/focus/focus-executor.d.ts.map +1 -1
  100. package/dist/focus/focus-executor.js +9 -65
  101. package/dist/focus/focus-executor.js.map +1 -1
  102. package/dist/focus/focus-lifecycle.d.ts +12 -0
  103. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  104. package/dist/focus/focus-lifecycle.js +66 -37
  105. package/dist/focus/focus-lifecycle.js.map +1 -1
  106. package/dist/focus/focus-phase.d.ts.map +1 -1
  107. package/dist/focus/focus-phase.js +6 -0
  108. package/dist/focus/focus-phase.js.map +1 -1
  109. package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
  110. package/dist/focus/focus-spawn-decision.js +1 -0
  111. package/dist/focus/focus-spawn-decision.js.map +1 -1
  112. package/dist/focus/focus-team-state.d.ts +10 -0
  113. package/dist/focus/focus-team-state.d.ts.map +1 -1
  114. package/dist/focus/focus-team-state.js +19 -1
  115. package/dist/focus/focus-team-state.js.map +1 -1
  116. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  117. package/dist/focus/listener-auto-advance.js +1 -0
  118. package/dist/focus/listener-auto-advance.js.map +1 -1
  119. package/dist/focus/listener-spawn.d.ts +10 -0
  120. package/dist/focus/listener-spawn.d.ts.map +1 -1
  121. package/dist/focus/listener-spawn.js +46 -4
  122. package/dist/focus/listener-spawn.js.map +1 -1
  123. package/dist/focus/listener-state.d.ts.map +1 -1
  124. package/dist/focus/listener-state.js +11 -1
  125. package/dist/focus/listener-state.js.map +1 -1
  126. package/dist/focus/listener.d.ts +42 -0
  127. package/dist/focus/listener.d.ts.map +1 -1
  128. package/dist/focus/listener.js +62 -33
  129. package/dist/focus/listener.js.map +1 -1
  130. package/dist/focus/pending-review-approved-head.d.ts +41 -0
  131. package/dist/focus/pending-review-approved-head.d.ts.map +1 -0
  132. package/dist/focus/pending-review-approved-head.js +198 -0
  133. package/dist/focus/pending-review-approved-head.js.map +1 -0
  134. package/dist/focus/pending-spawn-pass-deps.d.ts +5 -0
  135. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  136. package/dist/focus/pending-spawn-pass-deps.js +2 -1
  137. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  138. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  139. package/dist/focus/pending-spawn-review-next-step.js +26 -4
  140. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  141. package/dist/focus/review-spawn-coverage.d.ts +87 -0
  142. package/dist/focus/review-spawn-coverage.d.ts.map +1 -0
  143. package/dist/focus/review-spawn-coverage.js +104 -0
  144. package/dist/focus/review-spawn-coverage.js.map +1 -0
  145. package/dist/focus/session-health.d.ts +5 -2
  146. package/dist/focus/session-health.d.ts.map +1 -1
  147. package/dist/focus/session-health.js +2 -1
  148. package/dist/focus/session-health.js.map +1 -1
  149. package/dist/focus/session-process-reap.d.ts +50 -0
  150. package/dist/focus/session-process-reap.d.ts.map +1 -0
  151. package/dist/focus/session-process-reap.js +77 -0
  152. package/dist/focus/session-process-reap.js.map +1 -0
  153. package/dist/focus/unchanged-reviewed-head.d.ts +40 -0
  154. package/dist/focus/unchanged-reviewed-head.d.ts.map +1 -0
  155. package/dist/focus/unchanged-reviewed-head.js +84 -0
  156. package/dist/focus/unchanged-reviewed-head.js.map +1 -0
  157. package/dist/focus/verify-open-issues.d.ts +4 -19
  158. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  159. package/dist/focus/verify-open-issues.js +83 -41
  160. package/dist/focus/verify-open-issues.js.map +1 -1
  161. package/dist/git/focus-integration-sync.d.ts +61 -0
  162. package/dist/git/focus-integration-sync.d.ts.map +1 -0
  163. package/dist/git/focus-integration-sync.js +73 -0
  164. package/dist/git/focus-integration-sync.js.map +1 -0
  165. package/dist/git/focus-own-delta.d.ts +38 -0
  166. package/dist/git/focus-own-delta.d.ts.map +1 -0
  167. package/dist/git/focus-own-delta.js +193 -0
  168. package/dist/git/focus-own-delta.js.map +1 -0
  169. package/dist/git/index.d.ts +2 -0
  170. package/dist/git/index.d.ts.map +1 -1
  171. package/dist/git/index.js +4 -0
  172. package/dist/git/index.js.map +1 -1
  173. package/dist/git/merge.d.ts.map +1 -1
  174. package/dist/git/merge.js +11 -1
  175. package/dist/git/merge.js.map +1 -1
  176. package/dist/git/resolution-restore.d.ts +66 -0
  177. package/dist/git/resolution-restore.d.ts.map +1 -0
  178. package/dist/git/resolution-restore.js +331 -0
  179. package/dist/git/resolution-restore.js.map +1 -0
  180. package/dist/loops/engine.d.ts.map +1 -1
  181. package/dist/loops/engine.js.map +1 -1
  182. package/dist/merge/abandoned-merge-recovery.d.ts +72 -0
  183. package/dist/merge/abandoned-merge-recovery.d.ts.map +1 -0
  184. package/dist/merge/abandoned-merge-recovery.js +117 -0
  185. package/dist/merge/abandoned-merge-recovery.js.map +1 -0
  186. package/dist/merge/focus-merge.d.ts +19 -0
  187. package/dist/merge/focus-merge.d.ts.map +1 -1
  188. package/dist/merge/focus-merge.js +136 -99
  189. package/dist/merge/focus-merge.js.map +1 -1
  190. package/dist/merge/merge-back-activity.d.ts +11 -0
  191. package/dist/merge/merge-back-activity.d.ts.map +1 -0
  192. package/dist/merge/merge-back-activity.js +57 -0
  193. package/dist/merge/merge-back-activity.js.map +1 -0
  194. package/dist/merge/merge-back-conflict.d.ts +119 -0
  195. package/dist/merge/merge-back-conflict.d.ts.map +1 -0
  196. package/dist/merge/merge-back-conflict.js +178 -0
  197. package/dist/merge/merge-back-conflict.js.map +1 -0
  198. package/dist/merge/merge-back-followup.d.ts +109 -0
  199. package/dist/merge/merge-back-followup.d.ts.map +1 -0
  200. package/dist/merge/merge-back-followup.js +316 -0
  201. package/dist/merge/merge-back-followup.js.map +1 -0
  202. package/dist/merge/merge-back-loop.d.ts +2 -0
  203. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  204. package/dist/merge/merge-back-loop.js +14 -15
  205. package/dist/merge/merge-back-loop.js.map +1 -1
  206. package/dist/merge/merge-conflict-escalation.d.ts +12 -0
  207. package/dist/merge/merge-conflict-escalation.d.ts.map +1 -1
  208. package/dist/merge/merge-conflict-escalation.js +37 -2
  209. package/dist/merge/merge-conflict-escalation.js.map +1 -1
  210. package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
  211. package/dist/merge/merge-gate-coverage.js +1 -0
  212. package/dist/merge/merge-gate-coverage.js.map +1 -1
  213. package/dist/prompt/prompt-listing.d.ts +5 -0
  214. package/dist/prompt/prompt-listing.d.ts.map +1 -1
  215. package/dist/prompt/prompt-listing.js +35 -0
  216. package/dist/prompt/prompt-listing.js.map +1 -1
  217. package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
  218. package/dist/prompt-sections/routing-decider-sections.js +2 -0
  219. package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
  220. package/dist/prompt-sections/shortfall-park-section.d.ts +43 -0
  221. package/dist/prompt-sections/shortfall-park-section.d.ts.map +1 -0
  222. package/dist/prompt-sections/shortfall-park-section.js +36 -0
  223. package/dist/prompt-sections/shortfall-park-section.js.map +1 -0
  224. package/dist/queries/agent-resolvable-promotion.d.ts +16 -2
  225. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  226. package/dist/queries/agent-resolvable-promotion.js +30 -3
  227. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  228. package/dist/queries/cause-key.d.ts +17 -22
  229. package/dist/queries/cause-key.d.ts.map +1 -1
  230. package/dist/queries/cause-key.js +50 -1
  231. package/dist/queries/cause-key.js.map +1 -1
  232. package/dist/queries/commit-attributions.d.ts +18 -0
  233. package/dist/queries/commit-attributions.d.ts.map +1 -0
  234. package/dist/queries/commit-attributions.js +39 -0
  235. package/dist/queries/commit-attributions.js.map +1 -0
  236. package/dist/queries/deliveries.d.ts.map +1 -1
  237. package/dist/queries/deliveries.js +3 -1
  238. package/dist/queries/deliveries.js.map +1 -1
  239. package/dist/queries/delivery-gate-state.d.ts +21 -5
  240. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  241. package/dist/queries/delivery-gate-state.js +35 -9
  242. package/dist/queries/delivery-gate-state.js.map +1 -1
  243. package/dist/queries/escalation-consumption.d.ts.map +1 -1
  244. package/dist/queries/escalation-consumption.js +2 -1
  245. package/dist/queries/escalation-consumption.js.map +1 -1
  246. package/dist/queries/escalation-field-bounds.d.ts +48 -0
  247. package/dist/queries/escalation-field-bounds.d.ts.map +1 -0
  248. package/dist/queries/escalation-field-bounds.js +83 -0
  249. package/dist/queries/escalation-field-bounds.js.map +1 -0
  250. package/dist/queries/escalation-refusal.d.ts +88 -0
  251. package/dist/queries/escalation-refusal.d.ts.map +1 -0
  252. package/dist/queries/escalation-refusal.js +217 -0
  253. package/dist/queries/escalation-refusal.js.map +1 -0
  254. package/dist/queries/escalation-suppression.d.ts +6 -0
  255. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  256. package/dist/queries/escalation-suppression.js +4 -13
  257. package/dist/queries/escalation-suppression.js.map +1 -1
  258. package/dist/queries/escalations.d.ts +5 -13
  259. package/dist/queries/escalations.d.ts.map +1 -1
  260. package/dist/queries/escalations.js +25 -30
  261. package/dist/queries/escalations.js.map +1 -1
  262. package/dist/queries/filing-observation.d.ts.map +1 -1
  263. package/dist/queries/filing-observation.js +3 -1
  264. package/dist/queries/filing-observation.js.map +1 -1
  265. package/dist/queries/focus-review-approval.d.ts +2 -0
  266. package/dist/queries/focus-review-approval.d.ts.map +1 -1
  267. package/dist/queries/focus-review-approval.js +7 -2
  268. package/dist/queries/focus-review-approval.js.map +1 -1
  269. package/dist/queries/focuses.d.ts.map +1 -1
  270. package/dist/queries/focuses.js +2 -1
  271. package/dist/queries/focuses.js.map +1 -1
  272. package/dist/queries/incident-correlation.d.ts.map +1 -1
  273. package/dist/queries/incident-correlation.js +4 -1
  274. package/dist/queries/incident-correlation.js.map +1 -1
  275. package/dist/queries/misattributed-commits-record.d.ts +26 -0
  276. package/dist/queries/misattributed-commits-record.d.ts.map +1 -0
  277. package/dist/queries/misattributed-commits-record.js +5 -0
  278. package/dist/queries/misattributed-commits-record.js.map +1 -0
  279. package/dist/queries/reality-tree.d.ts.map +1 -1
  280. package/dist/queries/reality-tree.js +2 -1
  281. package/dist/queries/reality-tree.js.map +1 -1
  282. package/dist/queries/schemas.d.ts +3 -0
  283. package/dist/queries/schemas.d.ts.map +1 -1
  284. package/dist/queries/schemas.js +1 -0
  285. package/dist/queries/schemas.js.map +1 -1
  286. package/dist/queries/shared.js +1 -1
  287. package/dist/queries/shortfall-park-record.d.ts +48 -0
  288. package/dist/queries/shortfall-park-record.d.ts.map +1 -0
  289. package/dist/queries/shortfall-park-record.js +31 -0
  290. package/dist/queries/shortfall-park-record.js.map +1 -0
  291. package/dist/queries/shortfall-rulings.d.ts +71 -0
  292. package/dist/queries/shortfall-rulings.d.ts.map +1 -0
  293. package/dist/queries/shortfall-rulings.js +53 -0
  294. package/dist/queries/shortfall-rulings.js.map +1 -0
  295. package/dist/queries/verification.d.ts +20 -1
  296. package/dist/queries/verification.d.ts.map +1 -1
  297. package/dist/queries/verification.js +48 -8
  298. package/dist/queries/verification.js.map +1 -1
  299. package/dist/resolvers/index.d.ts +2 -2
  300. package/dist/resolvers/index.d.ts.map +1 -1
  301. package/dist/resolvers/index.js +1 -1
  302. package/dist/resolvers/index.js.map +1 -1
  303. package/dist/resolvers/shared/delivery-trailer.d.ts +99 -0
  304. package/dist/resolvers/shared/delivery-trailer.d.ts.map +1 -0
  305. package/dist/resolvers/shared/delivery-trailer.js +103 -0
  306. package/dist/resolvers/shared/delivery-trailer.js.map +1 -0
  307. package/dist/resolvers/shared/git-diff.d.ts +11 -84
  308. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  309. package/dist/resolvers/shared/git-diff.js +17 -84
  310. package/dist/resolvers/shared/git-diff.js.map +1 -1
  311. package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -1
  312. package/dist/resolvers/shared/review-window-commits.js +1 -0
  313. package/dist/resolvers/shared/review-window-commits.js.map +1 -1
  314. package/dist/session/session-lineage.d.ts.map +1 -1
  315. package/dist/session/session-lineage.js +1 -0
  316. package/dist/session/session-lineage.js.map +1 -1
  317. package/dist/shell/config.d.ts +2 -1
  318. package/dist/shell/config.d.ts.map +1 -1
  319. package/dist/shell/config.js +21 -4
  320. package/dist/shell/config.js.map +1 -1
  321. package/dist/shell/crash-recovery.d.ts +3 -7
  322. package/dist/shell/crash-recovery.d.ts.map +1 -1
  323. package/dist/shell/crash-recovery.js +28 -31
  324. package/dist/shell/crash-recovery.js.map +1 -1
  325. package/dist/shell/orphan-capture.d.ts +42 -0
  326. package/dist/shell/orphan-capture.d.ts.map +1 -0
  327. package/dist/shell/orphan-capture.js +53 -0
  328. package/dist/shell/orphan-capture.js.map +1 -0
  329. package/dist/shell/worker-pidfile.d.ts +22 -4
  330. package/dist/shell/worker-pidfile.d.ts.map +1 -1
  331. package/dist/shell/worker-pidfile.js +51 -13
  332. package/dist/shell/worker-pidfile.js.map +1 -1
  333. package/dist/spawn/helpers.d.ts +3 -0
  334. package/dist/spawn/helpers.d.ts.map +1 -1
  335. package/dist/spawn/helpers.js +28 -9
  336. package/dist/spawn/helpers.js.map +1 -1
  337. package/dist/spawn/lead-launch.d.ts +34 -0
  338. package/dist/spawn/lead-launch.d.ts.map +1 -0
  339. package/dist/spawn/lead-launch.js +34 -0
  340. package/dist/spawn/lead-launch.js.map +1 -0
  341. package/dist/spawn/lead-process-ownership.d.ts +91 -0
  342. package/dist/spawn/lead-process-ownership.d.ts.map +1 -0
  343. package/dist/spawn/lead-process-ownership.js +120 -0
  344. package/dist/spawn/lead-process-ownership.js.map +1 -0
  345. package/dist/spawn/lifecycle.d.ts +43 -3
  346. package/dist/spawn/lifecycle.d.ts.map +1 -1
  347. package/dist/spawn/lifecycle.js +75 -44
  348. package/dist/spawn/lifecycle.js.map +1 -1
  349. package/dist/spawn/liveness.d.ts.map +1 -1
  350. package/dist/spawn/liveness.js +5 -1
  351. package/dist/spawn/liveness.js.map +1 -1
  352. package/dist/spawn/one-shot-process-ownership.d.ts +48 -0
  353. package/dist/spawn/one-shot-process-ownership.d.ts.map +1 -0
  354. package/dist/spawn/one-shot-process-ownership.js +44 -0
  355. package/dist/spawn/one-shot-process-ownership.js.map +1 -0
  356. package/dist/spawn/process-group-kill.d.ts +79 -0
  357. package/dist/spawn/process-group-kill.d.ts.map +1 -0
  358. package/dist/spawn/process-group-kill.js +210 -0
  359. package/dist/spawn/process-group-kill.js.map +1 -0
  360. package/dist/spawn/process-spawn.d.ts +18 -1
  361. package/dist/spawn/process-spawn.d.ts.map +1 -1
  362. package/dist/spawn/process-spawn.js +51 -20
  363. package/dist/spawn/process-spawn.js.map +1 -1
  364. package/dist/spawn/resolution-budget.d.ts +38 -0
  365. package/dist/spawn/resolution-budget.d.ts.map +1 -0
  366. package/dist/spawn/resolution-budget.js +87 -0
  367. package/dist/spawn/resolution-budget.js.map +1 -0
  368. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  369. package/dist/spawn/review-hold-park.js +37 -5
  370. package/dist/spawn/review-hold-park.js.map +1 -1
  371. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  372. package/dist/spawn/spawn-cooldown.js +9 -0
  373. package/dist/spawn/spawn-cooldown.js.map +1 -1
  374. package/dist/spawn/untracked-lead-sweep.d.ts +29 -0
  375. package/dist/spawn/untracked-lead-sweep.d.ts.map +1 -0
  376. package/dist/spawn/untracked-lead-sweep.js +100 -0
  377. package/dist/spawn/untracked-lead-sweep.js.map +1 -0
  378. package/dist/spawn/worker-registry.d.ts.map +1 -1
  379. package/dist/spawn/worker-registry.js +4 -1
  380. package/dist/spawn/worker-registry.js.map +1 -1
  381. package/dist/spawn/worktree-session.d.ts.map +1 -1
  382. package/dist/spawn/worktree-session.js +8 -6
  383. package/dist/spawn/worktree-session.js.map +1 -1
  384. package/dist/testing/fixtures/exit-capture-verify.d.ts +41 -0
  385. package/dist/testing/fixtures/exit-capture-verify.d.ts.map +1 -0
  386. package/dist/testing/fixtures/exit-capture-verify.js +152 -0
  387. package/dist/testing/fixtures/exit-capture-verify.js.map +1 -0
  388. package/dist/testing/fixtures/index.js +1 -1
  389. package/dist/testing/fixtures/pending-spawn-world.d.ts +7 -0
  390. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  391. package/dist/testing/fixtures/pending-spawn-world.js +21 -1
  392. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  393. package/dist/testing/fixtures/stubborn-lead-process.d.ts +22 -0
  394. package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -0
  395. package/dist/testing/fixtures/stubborn-lead-process.js +68 -0
  396. package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -0
  397. package/dist/types/config.d.ts +13 -0
  398. package/dist/types/config.d.ts.map +1 -1
  399. package/dist/types/focus.d.ts +7 -0
  400. package/dist/types/focus.d.ts.map +1 -1
  401. package/dist/types/index.js +1 -1
  402. package/dist/verify/commit-verdict-record.d.ts +13 -3
  403. package/dist/verify/commit-verdict-record.d.ts.map +1 -1
  404. package/dist/verify/commit-verdict-record.js +45 -25
  405. package/dist/verify/commit-verdict-record.js.map +1 -1
  406. package/dist/verify/credit-rearm.d.ts +18 -0
  407. package/dist/verify/credit-rearm.d.ts.map +1 -0
  408. package/dist/verify/credit-rearm.js +69 -0
  409. package/dist/verify/credit-rearm.js.map +1 -0
  410. package/dist/verify/delivery-commit-set.d.ts +10 -0
  411. package/dist/verify/delivery-commit-set.d.ts.map +1 -0
  412. package/dist/verify/delivery-commit-set.js +82 -0
  413. package/dist/verify/delivery-commit-set.js.map +1 -0
  414. package/dist/verify/explicit-rearm.d.ts.map +1 -1
  415. package/dist/verify/explicit-rearm.js +2 -0
  416. package/dist/verify/explicit-rearm.js.map +1 -1
  417. package/dist/verify/failure-signature.d.ts.map +1 -1
  418. package/dist/verify/failure-signature.js +1 -0
  419. package/dist/verify/failure-signature.js.map +1 -1
  420. package/dist/verify/gate-run-registry.d.ts.map +1 -1
  421. package/dist/verify/gate-run-registry.js +3 -0
  422. package/dist/verify/gate-run-registry.js.map +1 -1
  423. package/dist/verify/injection-stamp.d.ts +29 -0
  424. package/dist/verify/injection-stamp.d.ts.map +1 -0
  425. package/dist/verify/injection-stamp.js +139 -0
  426. package/dist/verify/injection-stamp.js.map +1 -0
  427. package/dist/verify/misattributed-commits-read.d.ts +31 -0
  428. package/dist/verify/misattributed-commits-read.d.ts.map +1 -0
  429. package/dist/verify/misattributed-commits-read.js +47 -0
  430. package/dist/verify/misattributed-commits-read.js.map +1 -0
  431. package/dist/verify/misattributed-commits.d.ts +52 -0
  432. package/dist/verify/misattributed-commits.d.ts.map +1 -0
  433. package/dist/verify/misattributed-commits.js +148 -0
  434. package/dist/verify/misattributed-commits.js.map +1 -0
  435. package/dist/verify/no-own-delta-verdict.d.ts +47 -0
  436. package/dist/verify/no-own-delta-verdict.d.ts.map +1 -0
  437. package/dist/verify/no-own-delta-verdict.js +74 -0
  438. package/dist/verify/no-own-delta-verdict.js.map +1 -0
  439. package/dist/verify/shortfall-park-escalation.d.ts +41 -0
  440. package/dist/verify/shortfall-park-escalation.d.ts.map +1 -0
  441. package/dist/verify/shortfall-park-escalation.js +177 -0
  442. package/dist/verify/shortfall-park-escalation.js.map +1 -0
  443. package/dist/verify/shortfall-park.d.ts +109 -0
  444. package/dist/verify/shortfall-park.d.ts.map +1 -0
  445. package/dist/verify/shortfall-park.js +208 -0
  446. package/dist/verify/shortfall-park.js.map +1 -0
  447. package/dist/verify/shortfall-repeat.d.ts +47 -16
  448. package/dist/verify/shortfall-repeat.d.ts.map +1 -1
  449. package/dist/verify/shortfall-repeat.js +77 -23
  450. package/dist/verify/shortfall-repeat.js.map +1 -1
  451. package/dist/verify/shortfall-rulings.d.ts +106 -0
  452. package/dist/verify/shortfall-rulings.d.ts.map +1 -0
  453. package/dist/verify/shortfall-rulings.js +118 -0
  454. package/dist/verify/shortfall-rulings.js.map +1 -0
  455. package/dist/verify/stall-detectors.d.ts.map +1 -1
  456. package/dist/verify/stall-detectors.js +10 -4
  457. package/dist/verify/stall-detectors.js.map +1 -1
  458. package/dist/verify/verification-attribution-base.d.ts +26 -0
  459. package/dist/verify/verification-attribution-base.d.ts.map +1 -0
  460. package/dist/verify/verification-attribution-base.js +127 -0
  461. package/dist/verify/verification-attribution-base.js.map +1 -0
  462. package/dist/verify/verification-attribution-deps.d.ts +32 -0
  463. package/dist/verify/verification-attribution-deps.d.ts.map +1 -0
  464. package/dist/verify/verification-attribution-deps.js +209 -0
  465. package/dist/verify/verification-attribution-deps.js.map +1 -0
  466. package/dist/verify/verification-baseline.d.ts +6 -0
  467. package/dist/verify/verification-baseline.d.ts.map +1 -1
  468. package/dist/verify/verification-baseline.js +27 -11
  469. package/dist/verify/verification-baseline.js.map +1 -1
  470. package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
  471. package/dist/verify/verification-commit-sharing.js +30 -8
  472. package/dist/verify/verification-commit-sharing.js.map +1 -1
  473. package/dist/verify/verification-config.d.ts.map +1 -1
  474. package/dist/verify/verification-config.js +2 -0
  475. package/dist/verify/verification-config.js.map +1 -1
  476. package/dist/verify/verification-default-on.d.ts +3 -0
  477. package/dist/verify/verification-default-on.d.ts.map +1 -1
  478. package/dist/verify/verification-default-on.js +5 -1
  479. package/dist/verify/verification-default-on.js.map +1 -1
  480. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  481. package/dist/verify/verification-deps-default.js +61 -120
  482. package/dist/verify/verification-deps-default.js.map +1 -1
  483. package/dist/verify/verification-deps.d.ts +26 -4
  484. package/dist/verify/verification-deps.d.ts.map +1 -1
  485. package/dist/verify/verification-deterministic.d.ts +15 -0
  486. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  487. package/dist/verify/verification-deterministic.js +1 -12
  488. package/dist/verify/verification-deterministic.js.map +1 -1
  489. package/dist/verify/verification-engine.d.ts +9 -6
  490. package/dist/verify/verification-engine.d.ts.map +1 -1
  491. package/dist/verify/verification-engine.js +43 -62
  492. package/dist/verify/verification-engine.js.map +1 -1
  493. package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
  494. package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  495. package/dist/verify/verification-evidence-unavailable-feedback.js +19 -1
  496. package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
  497. package/dist/verify/verification-failure-parser.d.ts +57 -1
  498. package/dist/verify/verification-failure-parser.d.ts.map +1 -1
  499. package/dist/verify/verification-failure-parser.js +116 -10
  500. package/dist/verify/verification-failure-parser.js.map +1 -1
  501. package/dist/verify/verification-feedback.d.ts +60 -43
  502. package/dist/verify/verification-feedback.d.ts.map +1 -1
  503. package/dist/verify/verification-feedback.js +115 -120
  504. package/dist/verify/verification-feedback.js.map +1 -1
  505. package/dist/verify/verification-history-reset.d.ts +2 -1
  506. package/dist/verify/verification-history-reset.d.ts.map +1 -1
  507. package/dist/verify/verification-history-reset.js +4 -2
  508. package/dist/verify/verification-history-reset.js.map +1 -1
  509. package/dist/verify/verification-rework-issue.d.ts +87 -0
  510. package/dist/verify/verification-rework-issue.d.ts.map +1 -0
  511. package/dist/verify/verification-rework-issue.js +212 -0
  512. package/dist/verify/verification-rework-issue.js.map +1 -0
  513. package/dist/verify/verification-rework-messages.d.ts.map +1 -1
  514. package/dist/verify/verification-rework-messages.js +10 -0
  515. package/dist/verify/verification-rework-messages.js.map +1 -1
  516. package/dist/verify/verify-gate-stall.d.ts +2 -0
  517. package/dist/verify/verify-gate-stall.d.ts.map +1 -1
  518. package/dist/verify/verify-gate-stall.js +35 -9
  519. package/dist/verify/verify-gate-stall.js.map +1 -1
  520. package/dist/verify/verify-restatement.d.ts.map +1 -1
  521. package/dist/verify/verify-restatement.js +9 -2
  522. package/dist/verify/verify-restatement.js.map +1 -1
  523. package/dist/worktree/capture-attribution-read.d.ts +47 -0
  524. package/dist/worktree/capture-attribution-read.d.ts.map +1 -0
  525. package/dist/worktree/capture-attribution-read.js +98 -0
  526. package/dist/worktree/capture-attribution-read.js.map +1 -0
  527. package/dist/worktree/capture-attribution.d.ts +26 -0
  528. package/dist/worktree/capture-attribution.d.ts.map +1 -0
  529. package/dist/worktree/capture-attribution.js +111 -0
  530. package/dist/worktree/capture-attribution.js.map +1 -0
  531. package/dist/worktree/index.d.ts.map +1 -1
  532. package/dist/worktree/index.js +2 -1
  533. package/dist/worktree/index.js.map +1 -1
  534. package/dist/worktree/provision.d.ts.map +1 -1
  535. package/dist/worktree/provision.js +23 -6
  536. package/dist/worktree/provision.js.map +1 -1
  537. package/dist/worktree/safety.d.ts +14 -4
  538. package/dist/worktree/safety.d.ts.map +1 -1
  539. package/dist/worktree/safety.js +37 -7
  540. package/dist/worktree/safety.js.map +1 -1
  541. package/dist/worktree/scratch-guard.d.ts +53 -2
  542. package/dist/worktree/scratch-guard.d.ts.map +1 -1
  543. package/dist/worktree/scratch-guard.js +115 -30
  544. package/dist/worktree/scratch-guard.js.map +1 -1
  545. package/dist/worktree/unmerged-capture-escalation.d.ts +52 -0
  546. package/dist/worktree/unmerged-capture-escalation.d.ts.map +1 -0
  547. package/dist/worktree/unmerged-capture-escalation.js +64 -0
  548. package/dist/worktree/unmerged-capture-escalation.js.map +1 -0
  549. package/package.json +2 -2
@@ -0,0 +1,68 @@
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/team-teardown-kills-process-group.test.ts,
3
+ // packages/daemon/src/focus/session-health-passes.test.ts,
4
+ // packages/daemon/src/focus/session-health-poll-sweep.test.ts,
5
+ // packages/daemon/src/spawn/lead-launch.test.ts,
6
+ // packages/daemon/src/spawn/one-shot-process-ownership.test.ts,
7
+ // packages/daemon/src/spawn/process-group-kill.test.ts,
8
+ // packages/daemon/src/spawn/spawn-team-process-ownership.test.ts,
9
+ // packages/daemon/src/spawn/untracked-lead-sweep.test.ts
10
+ // PINNED-BY-END
11
+ /**
12
+ * A real process shaped like a team lead that finished its turn but will not
13
+ * exit: spawned detached (its own process group, as spawnCrashIsolated spawns
14
+ * leads), it ignores SIGTERM and stdin close, and it has a child of its own (the
15
+ * MCP-child stand-in) that ignores SIGTERM too. Only a process-GROUP SIGKILL ends
16
+ * both -- exactly what the teardown and reap paths must deliver.
17
+ *
18
+ * Test infrastructure for the process-kill regressions; never used at runtime.
19
+ */
20
+ import { spawn } from 'node:child_process';
21
+ const GRANDCHILD_SCRIPT = `
22
+ process.on('SIGTERM', () => {});
23
+ process.stdout.write('ready\\n');
24
+ setInterval(() => {}, 1000);
25
+ `;
26
+ const LEAD_SCRIPT = `
27
+ const { spawn } = require('node:child_process');
28
+ process.on('SIGTERM', () => {});
29
+ process.stdin.on('data', () => {});
30
+ process.stdin.on('end', () => {});
31
+ const gc = spawn(process.execPath, ['-e', ${JSON.stringify(GRANDCHILD_SCRIPT)}], { stdio: ['ignore', 'pipe', 'ignore'] });
32
+ gc.stdout.once('data', () => process.stdout.write(String(gc.pid) + '\\n'));
33
+ setInterval(() => {}, 1000);
34
+ `;
35
+ /** Spawn the stubborn lead and resolve once both it and its child ignore SIGTERM. */
36
+ export async function spawnStubbornLead(timeoutMs = 10_000) {
37
+ const proc = spawn(process.execPath, ['-e', LEAD_SCRIPT], {
38
+ detached: true,
39
+ stdio: ['pipe', 'pipe', 'pipe'],
40
+ });
41
+ const leadPid = proc.pid;
42
+ if (typeof leadPid !== 'number')
43
+ throw new Error('stubborn lead did not spawn');
44
+ const grandchildPid = await new Promise((resolve, reject) => {
45
+ const timer = setTimeout(() => reject(new Error('stubborn lead never reported its child')), timeoutMs);
46
+ let buffered = '';
47
+ proc.stdout.on('data', (chunk) => {
48
+ buffered += chunk.toString();
49
+ const line = buffered.split('\n')[0];
50
+ if (buffered.includes('\n') && /^\d+$/.test(line)) {
51
+ clearTimeout(timer);
52
+ resolve(Number(line));
53
+ }
54
+ });
55
+ proc.once('error', (err) => { clearTimeout(timer); reject(err); });
56
+ });
57
+ return { proc, leadPid, grandchildPid };
58
+ }
59
+ /** Best-effort cleanup for a test that failed before its kill landed. */
60
+ export function forceKillStubbornLead(lead) {
61
+ for (const target of [-lead.leadPid, lead.grandchildPid, lead.leadPid]) {
62
+ try {
63
+ process.kill(target, 'SIGKILL');
64
+ }
65
+ catch { /* already gone */ }
66
+ }
67
+ }
68
+ //# sourceMappingURL=stubborn-lead-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stubborn-lead-process.js","sourceRoot":"","sources":["../../../src/testing/fixtures/stubborn-lead-process.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,uFAAuF;AACvF,6DAA6D;AAC7D,iEAAiE;AACjE,mDAAmD;AACnD,kEAAkE;AAClE,0DAA0D;AAC1D,oEAAoE;AACpE,2DAA2D;AAC3D,gBAAgB;AAEhB;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAEhF,MAAM,iBAAiB,GAAG;;;;CAIzB,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;4CAKwB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;CAG5E,CAAC;AAUF,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAS,GAAG,MAAM;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChC,CAAmC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IACzB,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACvG,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CAAC,IAAkB;IACtD,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -111,6 +111,13 @@ export interface DaemonProductEntry extends ProductEntry {
111
111
  * in daemon.json by `loadConfig`; selected per product by `configForProduct`.
112
112
  */
113
113
  defaultVerification?: DefaultVerificationConfig;
114
+ /**
115
+ * Per-product fallback merge-conflict resolver budget (ms). Absent => the
116
+ * budget is computed from the conflict set (spawn/resolution-budget.ts).
117
+ * Parsed from `products[].resolutionAgentTimeoutMs` in daemon.json; selected
118
+ * per product by `configForProduct`.
119
+ */
120
+ resolutionAgentTimeoutMs?: number;
114
121
  }
115
122
  /**
116
123
  * OS sandbox mode for spawned agents.
@@ -195,6 +202,12 @@ export interface DaemonConfig extends BaseConfig {
195
202
  * on the product entry is possible in future without a resolver change.
196
203
  */
197
204
  defaultVerification?: DefaultVerificationConfig;
205
+ /**
206
+ * The product-scoped fallback merge-conflict resolver budget (ms), set only by
207
+ * `configForProduct` from `products[].resolutionAgentTimeoutMs`. Absent => the
208
+ * budget is computed from the conflict set (spawn/resolution-budget.ts).
209
+ */
210
+ resolutionAgentTimeoutMs?: number;
198
211
  /**
199
212
  * Per-product isolated CODEX_HOME dir, populated by configForProduct from
200
213
  * the product entry. Undefined for cloud-parity products (no local model).
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -132,6 +132,13 @@ export interface FocusTeamState {
132
132
  leadSessionId: string | null;
133
133
  /** PID of the team lead process. */
134
134
  leadPid: number | null;
135
+ /**
136
+ * Start identity of the lead process (spawn/process-group-kill
137
+ * readProcessStartIdentity), read right after spawn. Lets a teardown tell the
138
+ * lead apart from a later process that reused its pid. Absent when not read
139
+ * (non-Linux host, a fixture, or a team that never spawned).
140
+ */
141
+ leadStartIdentity?: string | null;
135
142
  /** Reference to the team lead's stdin for sending messages. */
136
143
  leadStdin: Writable | null;
137
144
  /** Git branch name for this focus's work. */
@@ -1 +1 @@
1
- {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/types/focus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../../src/types/focus.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 185 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/types/index.ts
2
+ // Pinned by: 199 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/types/index.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Domain-specific type re-exports.
@@ -1,5 +1,6 @@
1
1
  import { type StrategyResult } from './verification-deterministic.js';
2
2
  import type { PendingVerification } from '../queries/verification.js';
3
+ import type { VerificationParseFailure } from './verification-failure-parser.js';
3
4
  /** The gate a verdict was rendered under: the command + timeout the run applied. */
4
5
  export interface CommitVerdictGate {
5
6
  command: string;
@@ -23,6 +24,12 @@ export interface CommitVerdict {
23
24
  preExistingStages?: string[];
24
25
  newFailures?: string[];
25
26
  preExisting?: string[];
27
+ /**
28
+ * The run exited non-zero and its log parsed to zero failing-test ids: the gate
29
+ * could not name the failures. Recorded INSTEAD of empty newFailures/preExisting,
30
+ * so a reader never takes "could not parse" for "nothing to attribute".
31
+ */
32
+ parseFailure?: VerificationParseFailure;
26
33
  logPath?: string;
27
34
  stdoutTail?: string;
28
35
  stderrTail?: string;
@@ -56,9 +63,12 @@ export declare function writeCommitVerdict(verdict: CommitVerdict, dir?: string)
56
63
  /**
57
64
  * Build the verdict a finished deterministic run renders for its commit, or null
58
65
  * when the run rendered none (see the module header). `instrumentFault` is true
59
- * when attribution routed the run to instrument-fault re-work. Pure.
66
+ * when attribution routed the run to instrument-fault re-work. `logText` is the
67
+ * run's full log: a failed run that attribution did not classify records the
68
+ * failing tests it names, and one that names none (with nothing else naming the
69
+ * failure) records a parseFailure instead of empty lists. Pure.
60
70
  */
61
- export declare function buildCommitVerdict(subject: CommitVerdictSubject, result: StrategyResult, instrumentFault: boolean, now?: Date): CommitVerdict | null;
71
+ export declare function buildCommitVerdict(subject: CommitVerdictSubject, result: StrategyResult, instrumentFault: boolean, now?: Date, logText?: string): CommitVerdict | null;
62
72
  /** The recorder a verification is wired with (VerificationDeps.recordCommitVerdict). */
63
73
  export type CommitVerdictRecorder = (verdict: CommitVerdict) => void;
64
74
  /** The reader a verification is wired with (VerificationDeps.readCommitVerdict): the verdict for a commit under a gate, or null. */
@@ -88,7 +98,7 @@ export declare function explicitGateKeyOf(method: string, config: Record<string,
88
98
  * carries. A no-op without a recorder, without a product + focus to key it by, or
89
99
  * when the run rendered no verdict.
90
100
  */
91
- export declare function recordCommitVerdictFor(v: Pick<PendingVerification, 'productId' | 'focusId' | 'deliveryId' | 'verificationConfig'>, result: StrategyResult, instrumentFault: boolean, record: CommitVerdictRecorder | undefined): void;
101
+ export declare function recordCommitVerdictFor(v: Pick<PendingVerification, 'productId' | 'focusId' | 'deliveryId' | 'verificationConfig'>, result: StrategyResult, instrumentFault: boolean, record: CommitVerdictRecorder | undefined, readLogText?: (source: StrategyResult) => string): void;
92
102
  /**
93
103
  * The StrategyResult a delivery judged on an already-judged commit takes instead
94
104
  * of running the gate: the recorded outcome with its attribution, never a
@@ -1 +1 @@
1
- {"version":3,"file":"commit-verdict-record.d.ts","sourceRoot":"","sources":["../../src/verify/commit-verdict-record.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACvG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAKtE,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,iDAAiD;IACjD,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+FAA+F;IAC/F,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CACjD;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAqB,EAC1B,IAAI,CAAC,EAAE,iBAAiB,GACvB,MAAM,CAGR;AAoDD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,aAAa,GAAG,IAAI,CAetB;AAqBD,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,GAAE,MAAqB,GAAG,OAAO,CAY9F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,OAAO,EACxB,GAAG,GAAE,IAAiB,GACrB,aAAa,GAAG,IAAI,CAiBtB;AAiBD,wFAAwF;AACxF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;AAErE,oIAAoI;AACpI,MAAM,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,aAAa,GAAG,IAAI,CAAC;AAErI;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAKhH;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,MAAM,CAGhG;AAYD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,oBAAoB,CAAC,EAC3F,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,OAAO,EACxB,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAiBhF"}
1
+ {"version":3,"file":"commit-verdict-record.d.ts","sourceRoot":"","sources":["../../src/verify/commit-verdict-record.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,5 @@
1
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/mid-flight-merge-gate.test.ts,
3
- // packages/daemon/src/completion/review-exit-verdict-gate.test.ts,
4
- // packages/daemon/src/completion/teardown-merge-gate.test.ts,
5
- // packages/daemon/src/focus/listener-product-poll.test.ts,
6
- // packages/daemon/src/integration/delivery-gate-write-interleaving.test.ts,
7
- // packages/daemon/src/integration/explicit-gate-identity-unreadable.test.ts,
8
- // packages/daemon/src/integration/explicit-gate-outcome-restart.test.ts,
9
- // packages/daemon/src/integration/explicit-verdict-departure-during-removal.test.ts,
10
- // packages/daemon/src/integration/explicit-verdict-invalidation-restart.test.ts,
11
- // packages/daemon/src/integration/explicit-verdict-reuse.test.ts,
12
- // packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
13
- // packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
14
- // packages/daemon/src/integration/verification-rework-resume-verdict.test.ts,
15
- // packages/daemon/src/merge/resolved-conflict-merge-gate.test.ts,
16
- // packages/daemon/src/spawn/prompt-assembly-resume-verdict.test.ts,
17
- // packages/daemon/src/verify/commit-gate-configured.test.ts,
18
- // packages/daemon/src/verify/commit-verdict-record.test.ts,
19
- // packages/daemon/src/verify/gate-verdict-source.test.ts,
20
- // packages/daemon/src/verify/verification-commit-sharing.test.ts
2
+ // Pinned by: 23 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/verify/commit-verdict-record.ts
21
3
  // PINNED-BY-END
22
4
  /**
23
5
  * The deterministic gate verdict for a focus commit, recorded durably.
@@ -54,6 +36,8 @@ import { basename, resolve } from 'node:path';
54
36
  import { resolveGlobalStateDir } from '../shell/daemon-process.js';
55
37
  import { judgedFailedSha } from '../queries/delivery-gate-state.js';
56
38
  import { DEFAULT_VERIFICATION_TIMEOUT_MS } from './verification-deterministic.js';
39
+ import { describeParseFailure, parseFailingTests } from './verification-failure-parser.js';
40
+ import { readVerificationLogText } from './failure-signature.js';
57
41
  import { createLogger } from '../shell/log.js';
58
42
  const log = createLogger({ module: 'verification' });
59
43
  function verdictDir() {
@@ -79,6 +63,13 @@ function isStringArray(value) {
79
63
  function optionalString(value) {
80
64
  return typeof value === 'string' ? value : undefined;
81
65
  }
66
+ const isNullableNumber = (value) => value === null || typeof value === 'number';
67
+ function isParseFailure(value) {
68
+ if (typeof value !== 'object' || value === null)
69
+ return false;
70
+ const p = value;
71
+ return isNullableNumber(p.exitCode) && isNullableNumber(p.reportedFailures) && (p.logPath === null || typeof p.logPath === 'string');
72
+ }
82
73
  /** Validate a parsed record; null when it is not a well-formed verdict. */
83
74
  function parseVerdict(raw) {
84
75
  if (typeof raw !== 'object' || raw === null)
@@ -111,6 +102,7 @@ function parseVerdict(raw) {
111
102
  ...(isStringArray(r.preExistingStages) ? { preExistingStages: r.preExistingStages } : {}),
112
103
  ...(isStringArray(r.newFailures) ? { newFailures: r.newFailures } : {}),
113
104
  ...(isStringArray(r.preExisting) ? { preExisting: r.preExisting } : {}),
105
+ ...(isParseFailure(r.parseFailure) ? { parseFailure: r.parseFailure } : {}),
114
106
  ...(typeof r.logPath === 'string' ? { logPath: r.logPath } : {}),
115
107
  ...(typeof r.stdoutTail === 'string' ? { stdoutTail: r.stdoutTail } : {}),
116
108
  ...(typeof r.stderrTail === 'string' ? { stderrTail: r.stderrTail } : {}),
@@ -182,9 +174,12 @@ export function writeCommitVerdict(verdict, dir = verdictDir()) {
182
174
  /**
183
175
  * Build the verdict a finished deterministic run renders for its commit, or null
184
176
  * when the run rendered none (see the module header). `instrumentFault` is true
185
- * when attribution routed the run to instrument-fault re-work. Pure.
177
+ * when attribution routed the run to instrument-fault re-work. `logText` is the
178
+ * run's full log: a failed run that attribution did not classify records the
179
+ * failing tests it names, and one that names none (with nothing else naming the
180
+ * failure) records a parseFailure instead of empty lists. Pure.
186
181
  */
187
- export function buildCommitVerdict(subject, result, instrumentFault, now = new Date()) {
182
+ export function buildCommitVerdict(subject, result, instrumentFault, now = new Date(), logText = '') {
188
183
  if (instrumentFault || result.timedOut || result.checkoutUnavailable || result.configUnresolved)
189
184
  return null;
190
185
  const sha = result.outcome === 'failed'
@@ -201,9 +196,31 @@ export function buildCommitVerdict(subject, result, instrumentFault, now = new D
201
196
  exitCode: typeof result.exitCode === 'number' ? result.exitCode : null,
202
197
  judgedDeliveryId: subject.deliveryId,
203
198
  recordedAt: now.toISOString(),
204
- ...pickCarried(result),
199
+ ...pickCarried(result.outcome === 'failed' ? withFailureIds(result, logText) : result),
205
200
  };
206
201
  }
202
+ /**
203
+ * A failed result with its failing tests named: attribution's ids where it ran,
204
+ * else the ids the log names; with none, a parseFailure replaces the empty lists.
205
+ */
206
+ function withFailureIds(result, logText) {
207
+ if (result.parseFailure)
208
+ return result;
209
+ const newFailures = result.newFailures ?? [...parseFailingTests(logText)].sort();
210
+ const parseFailure = describeParseFailure({
211
+ exitCode: result.exitCode,
212
+ failingTestCount: newFailures.length + (result.preExisting?.length ?? 0),
213
+ failedStage: result.failedStage,
214
+ logText,
215
+ logPath: result.logPath,
216
+ });
217
+ if (!parseFailure)
218
+ return { ...result, newFailures };
219
+ const unparsed = { ...result, parseFailure };
220
+ delete unparsed.newFailures;
221
+ delete unparsed.preExisting;
222
+ return unparsed;
223
+ }
207
224
  /** The result fields a verdict carries forward to the deliveries that reuse it. */
208
225
  function pickCarried(result) {
209
226
  return {
@@ -212,6 +229,7 @@ function pickCarried(result) {
212
229
  ...(result.preExistingStages ? { preExistingStages: result.preExistingStages } : {}),
213
230
  ...(result.newFailures ? { newFailures: result.newFailures } : {}),
214
231
  ...(result.preExisting ? { preExisting: result.preExisting } : {}),
232
+ ...(result.parseFailure ? { parseFailure: result.parseFailure } : {}),
215
233
  ...(result.logPath !== undefined ? { logPath: result.logPath } : {}),
216
234
  ...(result.stdoutTail !== undefined ? { stdoutTail: result.stdoutTail } : {}),
217
235
  ...(result.stderrTail !== undefined ? { stderrTail: result.stderrTail } : {}),
@@ -262,12 +280,13 @@ function canonicalJson(value) {
262
280
  * carries. A no-op without a recorder, without a product + focus to key it by, or
263
281
  * when the run rendered no verdict.
264
282
  */
265
- export function recordCommitVerdictFor(v, result, instrumentFault, record) {
283
+ export function recordCommitVerdictFor(v, result, instrumentFault, record, readLogText = readVerificationLogText) {
266
284
  const applied = result.appliedConfig;
267
285
  const gate = applied ? { command: applied.command, timeoutMs: applied.timeoutMs } : commitVerdictGateOf(v);
268
286
  if (!record || !v.productId || !v.focusId || !gate)
269
287
  return;
270
- const verdict = buildCommitVerdict({ productId: v.productId, focusId: v.focusId, deliveryId: v.deliveryId, gate }, result, instrumentFault);
288
+ const logText = result.outcome === 'failed' && !result.parseFailure ? readLogText(result) : '';
289
+ const verdict = buildCommitVerdict({ productId: v.productId, focusId: v.focusId, deliveryId: v.deliveryId, gate }, result, instrumentFault, new Date(), logText);
271
290
  if (verdict)
272
291
  record(verdict);
273
292
  }
@@ -277,7 +296,7 @@ export function recordCommitVerdictFor(v, result, instrumentFault, record) {
277
296
  * timeout or unavailable flag (a record is only ever written for a real verdict).
278
297
  */
279
298
  export function strategyResultFromVerdict(verdict) {
280
- const { rationale, failedStage, preExistingStages, newFailures, preExisting, logPath, stdoutTail, stderrTail, appliedConfig } = verdict;
299
+ const { rationale, failedStage, preExistingStages, newFailures, preExisting, parseFailure, logPath, stdoutTail, stderrTail, appliedConfig } = verdict;
281
300
  return {
282
301
  outcome: verdict.outcome,
283
302
  exitCode: verdict.exitCode,
@@ -288,6 +307,7 @@ export function strategyResultFromVerdict(verdict) {
288
307
  ...(preExistingStages ? { preExistingStages } : {}),
289
308
  ...(newFailures ? { newFailures } : {}),
290
309
  ...(preExisting ? { preExisting } : {}),
310
+ ...(parseFailure ? { parseFailure } : {}),
291
311
  ...(logPath !== undefined ? { logPath } : {}),
292
312
  ...(stdoutTail !== undefined ? { stdoutTail } : {}),
293
313
  ...(stderrTail !== undefined ? { stderrTail } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"commit-verdict-record.js","sourceRoot":"","sources":["../../src/verify/commit-verdict-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit-verdict-record.js","sourceRoot":"","sources":["../../src/verify/commit-verdict-record.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,kHAAkH;AAClH,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAuB,MAAM,iCAAiC,CAAC;AAGvG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AA8CrD,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,qBAAqB,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,MAAc,UAAU,EAAE,EAC1B,IAAwB;IAExB,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;IAC9C,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,yEAAyE;AACzE,SAAS,OAAO,CAAC,IAAuB;IACtC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA0B,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAEjH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;AACvI,CAAC;AAED,2EAA2E;AAC3E,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,CAAC,IAA2C,CAAC;IAC3D,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5H,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;QAC1D,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC5D,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI;YACjE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAA6D,EAAE;YACpF,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,OAAmD,EAAE;IAErD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI;QACrB,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;QACxE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,GAAyB,IAAI,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG;YAAE,SAAS;QAC5G,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,SAAS;QACxH,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;YAAE,MAAM,GAAG,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kFAAkF;AAClF,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,4FAA4F;AAC5F,SAAS,cAAc,CAAC,QAAgB,EAAE,GAAW;IACnD,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAChI,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,OAAsB,EAAE,MAAc,UAAU,EAAE;IACnF,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mDAAmD,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACnI,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6B,EAC7B,MAAsB,EACtB,eAAwB,EACxB,MAAY,IAAI,IAAI,EAAE,EACtB,OAAO,GAAG,EAAE;IAEZ,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAC7G,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ;QACrC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACrH,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;QAC1E,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QACtE,gBAAgB,EAAE,OAAO,CAAC,UAAU;QACpC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;QAC7B,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KACvF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAsB,EAAE,OAAe;IAC7D,IAAI,MAAM,CAAC,YAAY;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,YAAY,GAAG,oBAAoB,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,gBAAgB,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QACxE,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAmB,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,CAAC;IAC7D,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC5B,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC5B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,mFAAmF;AACnF,SAAS,WAAW,CAAC,MAAsB;IACzC,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAkD;IACpF,MAAM,GAAG,GAAG,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC;IAC3H,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAAsC;IACtF,MAAM,OAAO,GAAG,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1G,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,qFAAqF;AACrF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACpH,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,CAA2F,EAC3F,MAAsB,EACtB,eAAwB,EACxB,MAAyC,EACzC,cAAkD,uBAAuB;IAEzE,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC3G,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI;QAAE,OAAO;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACjK,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAsB;IAC9D,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACtJ,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,GAAG;QACxB,SAAS,EAAE,mCAAmC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,UAAU,EAAE;cAC5F,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { EvidenceLookup } from '../queries/deliveries.js';
2
+ export interface CreditRearmDeps {
3
+ readCredits: (focusId: string) => Promise<EvidenceLookup<ReadonlyMap<string, string>>>;
4
+ release: (deliveryId: string) => void;
5
+ }
6
+ /** Test-only: forget every focus's last-seen credit set. */
7
+ export declare function __resetCreditRearmForTests(): void;
8
+ /** Release the run marks of the focus's in-verify deliveries when its credit set changed. */
9
+ export declare function rearmOnCreditChange(focusId: string, deliveries: readonly {
10
+ id: string;
11
+ executionStatus: string | null;
12
+ }[], deps?: CreditRearmDeps): Promise<void>;
13
+ /** Wrap a focus-deliveries read so every read also checks the focus's credits. Never throws on the check. */
14
+ export declare function withCreditRearm<T extends {
15
+ id: string;
16
+ executionStatus: string | null;
17
+ }>(read: (focusId: string) => Promise<T[]>, deps?: CreditRearmDeps): (focusId: string) => Promise<T[]>;
18
+ //# sourceMappingURL=credit-rearm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-rearm.d.ts","sourceRoot":"","sources":["../../src/verify/credit-rearm.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAU/D,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAOD,4DAA4D;AAC5D,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,6FAA6F;AAC7F,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,EACrE,IAAI,GAAE,eAAkC,GACvC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,6GAA6G;AAC7G,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtF,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACvC,IAAI,GAAE,eAAkC,GACvC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAUnC"}
@@ -0,0 +1,69 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/credit-rearm.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * A new commit credit re-arms the focus's deliveries sitting in verify.
6
+ *
7
+ * A default-on verify judges a delivery once per commit: the run guard skips a
8
+ * delivery already judged on the focus's unchanged HEAD. Recording a commit
9
+ * credit changes a delivery's evidence WITHOUT a new commit, so a delivery held
10
+ * at that commit -- above all one parked in verify by the unclearable-shortfall
11
+ * diagnosis, which stops re-queuing -- would never be re-judged with the credit.
12
+ *
13
+ * This watches each focus's credit set as the verification scan reads the
14
+ * focus's deliveries. When the set differs from the one last seen, every
15
+ * delivery of the focus in verify has its run mark released, so the next scan
16
+ * judges it again at the same commit (the per-commit gate verdict is reused, so
17
+ * no suite re-runs; only the evidence and reconciliation are re-read). The first
18
+ * sighting of a focus only records the set: after a restart nothing is marked.
19
+ * An unreadable credit read changes nothing.
20
+ */
21
+ import { DELIVERY_STATUS } from '@telora/daemon-core';
22
+ import { getCommitAttributionsForFocus } from '../queries/commit-attributions.js';
23
+ import { releaseDefaultOnMark } from './verification-default-on.js';
24
+ import { createLogger } from '../shell/log.js';
25
+ const log = createLogger({ module: 'verification' });
26
+ /** Focus id -> fingerprint of the credit set last seen. */
27
+ const seenCredits = new Map();
28
+ const defaultRearmDeps = {
29
+ readCredits: getCommitAttributionsForFocus,
30
+ release: releaseDefaultOnMark,
31
+ };
32
+ /** Test-only: forget every focus's last-seen credit set. */
33
+ export function __resetCreditRearmForTests() {
34
+ seenCredits.clear();
35
+ }
36
+ /** Release the run marks of the focus's in-verify deliveries when its credit set changed. */
37
+ export async function rearmOnCreditChange(focusId, deliveries, deps = defaultRearmDeps) {
38
+ const inVerify = deliveries.filter((d) => d.executionStatus === DELIVERY_STATUS.VERIFY);
39
+ if (inVerify.length === 0)
40
+ return;
41
+ const lookup = await deps.readCredits(focusId);
42
+ if (lookup.state === 'undetermined')
43
+ return;
44
+ const fingerprint = lookup.state === 'found'
45
+ ? [...lookup.value].map(([sha, deliveryId]) => `${sha}:${deliveryId}`).sort().join(',')
46
+ : '';
47
+ const previous = seenCredits.get(focusId);
48
+ seenCredits.set(focusId, fingerprint);
49
+ if (previous === undefined || previous === fingerprint)
50
+ return;
51
+ for (const d of inVerify)
52
+ deps.release(d.id);
53
+ log.info(`[verification] commit credits changed on focus ${focusId.slice(0, 8)}: re-judging ` +
54
+ `${inVerify.length} delivery(ies) in verify at the current commit`);
55
+ }
56
+ /** Wrap a focus-deliveries read so every read also checks the focus's credits. Never throws on the check. */
57
+ export function withCreditRearm(read, deps = defaultRearmDeps) {
58
+ return async (focusId) => {
59
+ const deliveries = await read(focusId);
60
+ try {
61
+ await rearmOnCreditChange(focusId, deliveries, deps);
62
+ }
63
+ catch (err) {
64
+ log.debug(`[verification] credit re-arm check failed for focus ${focusId.slice(0, 8)}:`, err.message);
65
+ }
66
+ return deliveries;
67
+ };
68
+ }
69
+ //# sourceMappingURL=credit-rearm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-rearm.js","sourceRoot":"","sources":["../../src/verify/credit-rearm.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6DAA6D;AAC7D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AAErD,2DAA2D;AAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;AAO9C,MAAM,gBAAgB,GAAoB;IACxC,WAAW,EAAE,6BAA6B;IAC1C,OAAO,EAAE,oBAAoB;CAC9B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,UAAU,0BAA0B;IACxC,WAAW,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAe,EACf,UAAqE,EACrE,OAAwB,gBAAgB;IAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;IACxF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc;QAAE,OAAO;IAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,KAAK,OAAO;QAC1C,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QACvF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C,GAAG,CAAC,IAAI,CACN,kDAAkD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe;QACpF,GAAG,QAAQ,CAAC,MAAM,gDAAgD,CACnE,CAAC;AACJ,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe,CAC7B,IAAuC,EACvC,OAAwB,gBAAgB;IAExC,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,uDAAuD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Runs git in `cwd` with `args` (and optional stdin), returning stdout; throws on failure. Injectable for tests. */
2
+ export type GitRunner = (cwd: string, args: readonly string[], input?: string) => string;
3
+ export declare const defaultGitRunner: GitRunner;
4
+ /**
5
+ * The patch ids of the delivery's own commits reachable from `rev`, in no
6
+ * particular order; [] for a delivery with no commits there; null when git could
7
+ * not be read (see the module header).
8
+ */
9
+ export declare function resolveDeliveryCommitIdentities(worktreePath: string, rev: string, deliveryId: string, run?: GitRunner): string[] | null;
10
+ //# sourceMappingURL=delivery-commit-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-commit-set.d.ts","sourceRoot":"","sources":["../../src/verify/delivery-commit-set.ts"],"names":[],"mappings":"AAqCA,qHAAqH;AACrH,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAKzF,eAAO,MAAM,gBAAgB,EAAE,SAO7B,CAAC;AAkBH;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,SAA4B,GAChC,MAAM,EAAE,GAAG,IAAI,CAYjB"}
@@ -0,0 +1,82 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/verify/delivery-commit-set.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * Read a delivery's OWN commit set, as the identities the shortfall park compares
6
+ * (verify/shortfall-park.ts commitSetFingerprint).
7
+ *
8
+ * WHICH commits: every non-merge commit reachable from `rev` whose
9
+ * Telora-Delivery trailer names the delivery -- confirmed by git's own trailer
10
+ * parse, since a Telora-Delivery line in a commit BODY matches the grep but is not
11
+ * a trailer (the same rule resolveGitTrailerCommitSet in
12
+ * resolvers/shared/git-diff.ts applies). `rev` is the commit the shortfall judged
13
+ * (else the focus worktree HEAD), so the set is exactly the work that judgement
14
+ * saw -- merged-back batches and the team's not-yet-merged commits alike, with no
15
+ * dependence on a focus_merges row being written.
16
+ *
17
+ * WHICH identity: the commit's stable PATCH ID (git patch-id --stable), not its
18
+ * sha. Every coding spawn rebases the focus worktree onto integration
19
+ * (spawn/worktree-session.ts), which re-shas any delivery commit not yet merged
20
+ * whenever integration moved. A sha-keyed set would read that as new work, reset
21
+ * the repeat count on every respawn, and never park the loop it exists to stop. A
22
+ * patch id changes only when the change itself does, so a new, amended or
23
+ * reverted commit changes the set and a replayed one does not. A commit with an
24
+ * empty diff has no patch id and carries no work, so it does not count.
25
+ *
26
+ * Returns null when git cannot answer (unknown rev, not a repository, a timeout):
27
+ * an unknown set, never an empty one, so the classifier falls back to its
28
+ * signature-only rule instead of reading a failure as "nothing changed".
29
+ *
30
+ * @module verify/delivery-commit-set
31
+ */
32
+ import { execFileSync } from 'node:child_process';
33
+ import { DELIVERY_TRAILER_KEY } from '../resolvers/shared/git-diff.js';
34
+ const GIT_TIMEOUT_MS = 60_000;
35
+ const GIT_MAX_BUFFER = 256 * 1024 * 1024;
36
+ export const defaultGitRunner = (cwd, args, input) => execFileSync('git', [...args], {
37
+ cwd,
38
+ encoding: 'utf-8',
39
+ maxBuffer: GIT_MAX_BUFFER,
40
+ timeout: GIT_TIMEOUT_MS,
41
+ stdio: ['pipe', 'pipe', 'pipe'],
42
+ ...(input !== undefined ? { input } : {}),
43
+ });
44
+ /** The shas reachable from `rev` whose parsed Telora-Delivery trailer is `deliveryId`. Throws on a git failure. */
45
+ function trailerConfirmedShas(run, cwd, rev, deliveryId) {
46
+ const out = run(cwd, [
47
+ 'log', '--no-merges', '--fixed-strings', `--grep=${DELIVERY_TRAILER_KEY}: ${deliveryId}`, '-z',
48
+ `--format=%H%n%(trailers:key=${DELIVERY_TRAILER_KEY},valueonly)`, rev, '--',
49
+ ]);
50
+ const shas = [];
51
+ for (const record of out.split('\0')) {
52
+ const [sha, ...values] = record.split('\n').map((l) => l.trim());
53
+ if (!sha)
54
+ continue;
55
+ // Attribution is single-delivery by construction: the first value wins (readDeliveryTrailer's rule).
56
+ if (values.find((l) => l !== '') === deliveryId)
57
+ shas.push(sha);
58
+ }
59
+ return shas;
60
+ }
61
+ /**
62
+ * The patch ids of the delivery's own commits reachable from `rev`, in no
63
+ * particular order; [] for a delivery with no commits there; null when git could
64
+ * not be read (see the module header).
65
+ */
66
+ export function resolveDeliveryCommitIdentities(worktreePath, rev, deliveryId, run = defaultGitRunner) {
67
+ const id = deliveryId.trim();
68
+ if (id === '' || rev.trim() === '' || rev.startsWith('-'))
69
+ return null;
70
+ try {
71
+ const shas = trailerConfirmedShas(run, worktreePath, rev.trim(), id);
72
+ if (shas.length === 0)
73
+ return [];
74
+ const patches = run(worktreePath, ['show', '--no-color', '--no-ext-diff', '--format=commit %H', '-p', ...shas, '--']);
75
+ const ids = run(worktreePath, ['patch-id', '--stable'], patches);
76
+ return ids.split('\n').map((l) => l.trim().split(/\s+/)[0] ?? '').filter((p) => p !== '');
77
+ }
78
+ catch {
79
+ return null;
80
+ }
81
+ }
82
+ //# sourceMappingURL=delivery-commit-set.js.map