@overdeck/desktop 0.45.15 → 0.45.16

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 (331) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-DHZk2ceV.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
  3. package/server/{advancing-selfheal-CSuZ31bB.js → advancing-selfheal-DJYAvGv-.js} +6 -5
  4. package/server/{agent-gc-D_DxfBHR.js → agent-gc-D0wDIeV1.js} +3 -3
  5. package/server/{agent-state-EP2QFV9n.js → agent-state-lGvgPP4m.js} +1 -1
  6. package/server/{agent-state-service-C_2ZAQRP.js → agent-state-service-CZrayD_G.js} +1 -1
  7. package/server/{agent-state-service-BZkvgQf4.js → agent-state-service-DFslS5go.js} +9 -52
  8. package/server/{agents-CsOzAmRg.js → agents-B9GwfCyp.js} +99 -140
  9. package/server/{agents-DCvyTXNU.js → agents-CEcaxSkR.js} +1 -1
  10. package/server/{archive-planning-DkivCk1A.js → archive-planning-CbghE9-o.js} +5 -5
  11. package/server/{archive-planning-CTILQRnV.js → archive-planning-CoyIbgGK.js} +1 -1
  12. package/server/{artifact-index-jobs-CmsvQ1ey.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
  13. package/server/{auto-commit-QAfsu3Sb.js → auto-commit-IW-eik_b.js} +1 -1
  14. package/server/{backlog-auto-trigger-ueRaT8Dy.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
  15. package/server/{bd-process-lock-D3S4T4o-.js → bd-process-lock-XAXAet9O.js} +2 -2
  16. package/server/{beads-CYsLiyIM.js → beads-B1u04n3o.js} +1 -1
  17. package/server/{beads-BGGxrkZ5.js → beads-BeSMEjGT.js} +7 -7
  18. package/server/{beads-query-B1DlJVp9.js → beads-query-Dl4FhT8J.js} +2 -2
  19. package/server/{beads-restore-CyygSmmn.js → beads-restore-BUItPOjI.js} +2 -2
  20. package/server/behavior-BTpYbAv4.js +10 -0
  21. package/server/{briefing-freshness-Kh5V8RTh.js → briefing-freshness-DESTCWo-.js} +4 -4
  22. package/server/{checkpoint-manager-fu9oVsR-.js → checkpoint-manager-BwFdegJF.js} +2 -2
  23. package/server/{checkpoint-manager-CAFos8e1.js → checkpoint-manager-DWSXooZV.js} +1 -1
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-1BqOlS4q.js → checkpoints-BtUonbs3.js} +2 -2
  26. package/server/{checkpoints-DvhGi8P_.js → checkpoints-fjadfOKF.js} +1 -1
  27. package/server/{claude-hooks-provision-s_wdpeVj.js → claude-hooks-provision-DAtxutOs.js} +132 -114
  28. package/server/claude-hooks-provision-DiK62u0k.js +3 -0
  29. package/server/{claude-permissions-CaWqysff.js → claude-permissions-CThLgf8d.js} +2 -2
  30. package/server/{claude-settings-overlay-CcTf0xzG.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
  31. package/server/{claude-settings-overlay-BbA4FbVI.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
  32. package/server/{cli-BwCvCUBK.js → cli-ByKIIMfT.js} +9 -9
  33. package/server/cli-D9cUTbBr.js +3 -0
  34. package/server/{cliproxy-BsoNNDAj.js → cliproxy-B4c1BUvs.js} +2 -2
  35. package/server/{cliproxy-C2xC-3vH.js → cliproxy-C_GuT5DU.js} +1 -1
  36. package/server/{close-issue-BleIwP3f.js → close-issue-BOuLKr6e.js} +5 -5
  37. package/server/{closed-issue-reaper-BwUUvjEW.js → closed-issue-reaper-CksfuiFD.js} +1 -1
  38. package/server/{closed-issue-reaper-mC5pujeb.js → closed-issue-reaper-DCAYzNXW.js} +9 -9
  39. package/server/{codex-B7DTpwEw.js → codex-BYPz6ZdF.js} +1 -1
  40. package/server/{codex-DW60_5j2.js → codex-BbqIRZjd.js} +6 -5
  41. package/server/{behavior-Cpj03N4v.js → codex-parser-mFYZh8vR.js} +3 -9
  42. package/server/{compact-beads-DKL54y6j.js → compact-beads-CyJtoXJi.js} +5 -5
  43. package/server/{compact-beads-CK_hHEnB.js → compact-beads-N00E4EVa.js} +1 -1
  44. package/server/{config-ZNnMpIlh.js → config-DVLdmnMJ.js} +2 -2
  45. package/server/{config-BRNQJXhA.js → config-Dj6N8EP9.js} +1 -1
  46. package/server/{config-yaml-Dcz-8uit.js → config-yaml-cNOZcEww.js} +91 -22
  47. package/server/{conflict-gate-DTje2Ll7.js → conflict-gate-BMKm_5DV.js} +3 -3
  48. package/server/{conflict-gate-DGT8jCLp.js → conflict-gate-CuXUv-bP.js} +1 -1
  49. package/server/{context-layers-ByOWUjUg.js → context-layers-CeAwSYNt.js} +2 -2
  50. package/server/{context-layers-BdUCQ-cl.js → context-layers-c0JqYHcS.js} +3 -3
  51. package/server/{control-settings-DwkAeooY.js → control-settings-D4EFsRBd.js} +4 -4
  52. package/server/{conversation-compaction-OTYgd6eg.js → conversation-compaction-BCggyih4.js} +8 -8
  53. package/server/{conversation-compaction-WYQZUVDm.js → conversation-compaction-kHVfVRg3.js} +1 -1
  54. package/server/{conversation-service-BR1OgvxO.js → conversation-service-B8LFQQm1.js} +6 -5
  55. package/server/{conversation-service-C_kNZPLx.js → conversation-service-BTzObqGi.js} +1 -1
  56. package/server/{conversations-DG2M8WnT.js → conversations-B-lcHv-5.js} +4 -4
  57. package/server/{conversations-izHvSoAR.js → conversations-BM7zlXjr.js} +1 -1
  58. package/server/{cost-B2mj17iG.js → cost-BcpRQ-7o.js} +3 -3
  59. package/server/{cost-DQ2ajr_m.js → cost-D9kPIY_5.js} +2 -2
  60. package/server/{cost-sync-gTayEuWP.js → cost-sync-DF6odxK9.js} +3 -3
  61. package/server/{dag-CqTehWpY.js → dag-DKI3sOmX.js} +3 -3
  62. package/server/{dangerous-git-ops-DDWQlPC3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
  63. package/server/dashboard-db-worker.js +6 -6
  64. package/server/{deacon-BqW9HMew.js → deacon-DONuopff.js} +3 -3
  65. package/server/{deacon-DrKDBeJL.js → deacon-DdARMjZq.js} +127 -107
  66. package/server/{deacon-nudge-log-D1wEK6zF.js → deacon-nudge-log-B-naf89q.js} +1 -1
  67. package/server/{deacon-swarm-CO_A7xyd.js → deacon-swarm-BNGkmYR_.js} +11 -11
  68. package/server/deacon-swarm-CvdFekIO.js +2 -0
  69. package/server/deacon.js +7 -7
  70. package/server/{devcontainer-renderer-BQolp_qZ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
  71. package/server/{dist-Bc32rWJB.js → dist-BMXvKiZP.js} +1 -1
  72. package/server/dist-BNwrgsUO.js +3 -0
  73. package/server/{dist-src-Byxt1ifL.js → dist-src-BgGUblXg.js} +1 -1
  74. package/server/{docker-s-esqZ__.js → docker-apZ9pBYw.js} +2 -2
  75. package/server/{ensure-devcontainer-DA4-jF6R.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
  76. package/server/{ensure-devcontainer-pUVaT0h3.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
  77. package/server/{esm-shims-CJHy8CZY.js → esm-shims-BEjvINX3.js} +1 -1
  78. package/server/{event-store-CcJAhKCl.js → event-store-CqDgfbAs.js} +1 -1
  79. package/server/{event-store-DRte2Rwt.js → event-store-D89fMfXS.js} +3 -3
  80. package/server/{events-Bej1w_k8.js → events-S_C0pvl6.js} +3 -3
  81. package/server/{events-CtsLScn8.js → events-rIGncmP1.js} +1 -1
  82. package/server/{export-Dx_qJ3h8.js → export-BJHSVwKP.js} +2 -2
  83. package/server/{factory-FN727tWr.js → factory-DV18m0rc.js} +5 -5
  84. package/server/{feature-registry-population-ie-yBcQC.js → feature-registry-population-CqZSnqQi.js} +4 -4
  85. package/server/{feature-registry-storage-CkZTFSsn.js → feature-registry-storage-BeXmNBwK.js} +2 -2
  86. package/server/{features-Dtm9ABuz.js → features-u5XeMaOK.js} +2 -2
  87. package/server/{feedback-target-BYtpyt1i.js → feedback-target-CwyWf0Dg.js} +6 -6
  88. package/server/{feedback-target-DVJQDiE4.js → feedback-target-DDG1PWl3.js} +1 -1
  89. package/server/{feedback-writer-DOUhyIW2.js → feedback-writer-BsJiw5aT.js} +1 -1
  90. package/server/{feedback-writer-fdE1BzeL.js → feedback-writer-D20HSXre.js} +4 -4
  91. package/server/{flywheel-CUErLAyN.js → flywheel-9Y1X7IM-.js} +13 -13
  92. package/server/{flywheel-Bv3wv2S6.js → flywheel-Dczmgchd.js} +12 -12
  93. package/server/{flywheel-Bi82iiNl.js → flywheel-RCnHAgc4.js} +1 -1
  94. package/server/{flywheel-merge-order-BaEN3iyN.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
  95. package/server/{flywheel-merge-order-DXjeBnJ1.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
  96. package/server/forge-8y6aEPTB.js +2 -0
  97. package/server/{forge-ButEdJ31.js → forge-DFDThFil.js} +2 -2
  98. package/server/{from-CbtTxftl.js → from-NSJypkI8.js} +1 -1
  99. package/server/{fts-db-CBgBLZcL.js → fts-db-C5A_TTOM.js} +2 -2
  100. package/server/{fts-operations-CI9Xuo_1.js → fts-operations-DvCSimfU.js} +2 -2
  101. package/server/{git-utils-BCLRWQ-y.js → git-utils-C0neHvQx.js} +1 -1
  102. package/server/{git-utils-ClfpP47N.js → git-utils-Dr0L7mFk.js} +2 -2
  103. package/server/{github-app-DRD2woO0.js → github-app-Bwt9lK4A.js} +1 -1
  104. package/server/{github-app-DscZ0_B6.js → github-app-u9-SX7Gc.js} +2 -2
  105. package/server/{github-client-DpiZnxGH.js → github-client-Btyy3uan.js} +3 -3
  106. package/server/{github-client-iFRw8f7e.js → github-client-Do3k-N1W.js} +1 -1
  107. package/server/{github-pr-lookup-D-EBexxC.js → github-pr-lookup-DOF1U2WW.js} +2 -2
  108. package/server/{harness-resolve-iMjyNUJ2.js → harness-resolve-C6g2R0Cd.js} +3 -3
  109. package/server/{health-events-CRdxDFN2.js → health-events-B4u-2a9m.js} +2 -2
  110. package/server/{health-events-B_WsQyYm.js → health-events-Bos3sk5g.js} +1 -1
  111. package/server/{hooks-C9b7Vqpw.js → hooks-BCoOjL_R.js} +2 -2
  112. package/server/{hooks-C1ScyVxP.js → hooks-uEr8WTx_.js} +1 -1
  113. package/server/{hume-TQ5pvOZ_.js → hume-BqxYKbUf.js} +2 -2
  114. package/server/hume-CerGi2RH.js +3 -0
  115. package/server/{idle-stack-reaper-B1kG7B_X.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
  116. package/server/{idle-stack-reaper-iFVOAoJy.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
  117. package/server/{infra-bpq1MHKU.js → infra-Ba9mS6e6.js} +3 -3
  118. package/server/{injection-BLWfwTVZ.js → injection-C1DKXeIZ.js} +1 -1
  119. package/server/{injection-DJqWld1v.js → injection-yrMBxzVq.js} +7 -7
  120. package/server/{inspect-agent-DytCsltn.js → inspect-agent-B-mnb4uh.js} +9 -9
  121. package/server/inspect-agent-CWkeAB7J.js +2 -0
  122. package/server/{internal-token-CCaWaTwE.js → internal-token-BPYEaXFh.js} +1 -1
  123. package/server/{internal-token-CjlhdufS.js → internal-token-BtqSbKTx.js} +2 -2
  124. package/server/{io-BiQ2Cs3k.js → io-VEGSAqsd.js} +15 -22
  125. package/server/{issue-closed-FApNiOOs.js → issue-closed-BxcePXL-.js} +4 -4
  126. package/server/{issue-lifecycle-C-K53ASY.js → issue-lifecycle--8MRxrG1.js} +22 -22
  127. package/server/{issue-lifecycle-BkFWNjlD.js → issue-lifecycle-CdMUauyb.js} +1 -1
  128. package/server/{issue-service-singleton-CuHGpJJP.js → issue-service-singleton-CkTUI-eu.js} +10 -10
  129. package/server/{issue-service-singleton-bG1WdSdQ.js → issue-service-singleton-MZsDhAob.js} +1 -1
  130. package/server/{issues-CwQMphDH.js → issues-CBAsuoAO.js} +2 -2
  131. package/server/{jsonl-parser-dNIjHgym.js → jsonl-parser-BUW5_sSK.js} +3 -3
  132. package/server/{label-cleanup-DYvAZknd.js → label-cleanup-htK6fBRU.js} +3 -3
  133. package/server/{layers-CD6FysRU.js → layers-jjL16At6.js} +2 -2
  134. package/server/{lifecycle-C_73gi-C.js → lifecycle-Ck2UR27D.js} +7 -7
  135. package/server/{lifecycle-io-C_Wu0_i-.js → lifecycle-io-DXv8Utct.js} +1 -1
  136. package/server/{lifecycle-io-CeYxP3cE.js → lifecycle-io-IehcRt2v.js} +36 -47
  137. package/server/{linear-client-4qoKnuQu.js → linear-client-By7hjwuN.js} +1 -1
  138. package/server/{linear-client-EtVyblVz.js → linear-client-D9cSQfvD.js} +3 -3
  139. package/server/memory-fts-worker.js +1 -1
  140. package/server/{merge-brm721Es.js → merge-BLcEZNXz.js} +1 -1
  141. package/server/{merge-7rqkTUm2.js → merge-BN8FGJ2q.js} +3 -3
  142. package/server/{merge-agent-4Zhlgvqp.js → merge-agent-B3u2szOL.js} +29 -29
  143. package/server/{merge-agent-36wfYm2u.js → merge-agent-ejC7Wos8.js} +1 -1
  144. package/server/{merge-batch-itfnwdsT.js → merge-batch-DyqlgYGp.js} +1 -1
  145. package/server/{merge-blockers-Bto_Oe_o.js → merge-blockers-cq-aS2KG.js} +2 -2
  146. package/server/merge-ops-CFkQtXEj.js +2 -0
  147. package/server/{merge-rebase-Czfqfe4q.js → merge-rebase-Dl7yIxtV.js} +2 -2
  148. package/server/{merge-set-BIkGQL9j.js → merge-set-CZ9Nbay0.js} +3 -3
  149. package/server/{merge-set-G1RHcu3D.js → merge-set-Dy0D0r3i.js} +1 -1
  150. package/server/{merge-sync-DIrmlZUr.js → merge-sync-CG9kDCdT.js} +1 -1
  151. package/server/{merge-sync-B43Dybea.js → merge-sync-D7jWLgCC.js} +2 -2
  152. package/server/{merge-train-DGqVuNZV.js → merge-train-CH33XJOH.js} +3 -3
  153. package/server/{merge-train-deps-q15XLnAS.js → merge-train-deps-JoVdGnOg.js} +4 -4
  154. package/server/{merge-verification-Cqfxx6bE.js → merge-verification-D4wTChdX.js} +4 -4
  155. package/server/{multipart-parser-CiPxxfUH.js → multipart-parser-Csn8U-K9.js} +2 -2
  156. package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
  157. package/server/node_modules/.package-lock.json +1 -1
  158. package/server/{orphan-proposed-reconciler-DAD9FJtQ.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
  159. package/server/{orphan-proposed-reconciler-BWWHn4Lr.js → orphan-proposed-reconciler-DI_IS1p_.js} +10 -10
  160. package/server/package-lock.json +2 -2
  161. package/server/package.json +1 -1
  162. package/server/{pan-dir-Bj7Hy8iu.js → pan-dir-CQIfKG8c.js} +4 -4
  163. package/server/{paths-C9DkhIOT.js → paths-Blj6A9AJ.js} +2 -2
  164. package/server/{pickup-CKRuGDsB.js → pickup-BtvRBbvI.js} +1 -1
  165. package/server/{pipeline-notifier-BkKbQ8ji.js → pipeline-notifier-BH4PAi-w.js} +1 -1
  166. package/server/{pipeline-notifier-CAurUste.js → pipeline-notifier-D_WYtEwl.js} +2 -2
  167. package/server/{project-pipelines-BRWaGmI4.js → project-pipelines-jMTitpeO.js} +2 -2
  168. package/server/projects-CrBE6IhN.js +3 -0
  169. package/server/{prompts-DfI5qbTW.js → prompts-B3njaImU.js} +2 -2
  170. package/server/{providers-CWDXoaMA.js → providers-BbEyFhPX.js} +7 -7
  171. package/server/{providers-D-5txBRc.js → providers-DnPxkHoG.js} +1 -1
  172. package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
  173. package/server/public/assets/{diagram-OG6HWLK6-Avtvq2qI.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
  174. package/server/public/assets/{dist-BEHQuasD.js → dist-BvLLn1YC.js} +3 -3
  175. package/server/public/assets/{dist-BvmY-qb1.js → dist-CyubL7Wj.js} +1 -1
  176. package/server/public/assets/{ganttDiagram-6RSMTGT7-7KhCd0fH.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
  177. package/server/public/assets/{highlighted-body-OFNGDK62-iQoBMTf0.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
  178. package/server/public/assets/index-BAZxZ-8I.js +796 -0
  179. package/server/public/assets/{index-DUFDmvmH.css → index-FBG3JBfq.css} +1 -1
  180. package/server/public/assets/{linear-CiJHW9g5.js → linear-CEdobObr.js} +1 -1
  181. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
  182. package/server/public/assets/{pieDiagram-4H26LBE5-BOhmvUhW.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
  183. package/server/public/assets/{prod-DmLBBqat.js → prod-CR_K2DFV.js} +4 -4
  184. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Cjku660G.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
  185. package/server/public/assets/{sankeyDiagram-5OEKKPKP-D52w5oPh.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
  186. package/server/public/assets/{xychartDiagram-2RQKCTM6-BTO07_Iv.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
  187. package/server/public/index.html +2 -2
  188. package/server/{pull-requests-CKZPWhjD.js → pull-requests-43LPDfM8.js} +1 -1
  189. package/server/{pull-requests-Bmre-Xlz.js → pull-requests-DyUkQl4W.js} +3 -3
  190. package/server/{rally-BBd9tQ__.js → rally-BtWjybOa.js} +3 -3
  191. package/server/{rally-api-DDc85HIz.js → rally-api-B-YA_oXx.js} +1 -1
  192. package/server/{rally-api-DxZFObI_.js → rally-api-B-osULNL.js} +2 -2
  193. package/server/{rally-client-BADHn0m_.js → rally-client-CzFymP7P.js} +1 -1
  194. package/server/{rally-client-DvvLiAQP.js → rally-client-sErNQBO0.js} +5 -5
  195. package/server/rally-oggyp4cs.js +3 -0
  196. package/server/{reap-terminal-sessions-D6JDJsqF.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
  197. package/server/{reap-terminal-sessions-D_xvy-Mk.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
  198. package/server/{rebuild-stack-D19i080j.js → rebuild-stack-CoU-HqZj.js} +6 -6
  199. package/server/{rebuild-stack-GOsWqXi3.js → rebuild-stack-nGD_nPZo.js} +1 -1
  200. package/server/{reconstruct-cache-lQrG4xGg.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
  201. package/server/{record-pyB6VA32.js → record-lEYK__LD.js} +1 -1
  202. package/server/{recovery-trip-Dfh1tNHn.js → recovery-trip-BT7nb9OV.js} +2 -2
  203. package/server/{release-engine-DxcMWRuK.js → release-engine-CBLQXDlH.js} +5 -5
  204. package/server/{release-set-BYsgX7o6.js → release-set-BNiqi7hy.js} +3 -3
  205. package/server/{remote-DmeL21dF.js → remote-DW_TWQnr.js} +3 -3
  206. package/server/{remote-8W2Yhygw.js → remote-DcO9An_f.js} +3 -3
  207. package/server/{remote-agents-BfQBE6MN.js → remote-agents-C4cyxHQS.js} +6 -6
  208. package/server/{remote-agents-DlvbzO7m.js → remote-agents-Cv-U-_V8.js} +1 -1
  209. package/server/{remote-completion-BgkiSQmx.js → remote-completion-PhXGGFQy.js} +13 -13
  210. package/server/{resolver-dTpSSzaH.js → resolver-C7dLn8OK.js} +2 -2
  211. package/server/resume-BYZBIab-.js +3 -0
  212. package/server/{review-agent-D025Wt7w.js → review-agent-Dn-yn7Zj.js} +23 -23
  213. package/server/{review-agent-Rub0OpZc.js → review-agent-u5q3ip7H.js} +1 -1
  214. package/server/{review-artifacts-CX951jTU.js → review-artifacts-D4T04aYI.js} +6 -6
  215. package/server/{review-context-DGGGR_w5.js → review-context-Rc0VDLG_.js} +8 -8
  216. package/server/{review-monitor-0_qqMcnS.js → review-monitor-BC--miCO.js} +2 -2
  217. package/server/{review-status-Br6lAFGO.js → review-status-CG0iDuWa.js} +1 -1
  218. package/server/{review-status-4qqLkRMu.js → review-status-Dc1l4dVz.js} +18 -18
  219. package/server/{review-status-enrichment-Cr8m3uVL.js → review-status-enrichment-C1a1OG_1.js} +3 -3
  220. package/server/{review-status-sync-OC-l1lNt.js → review-status-sync-CAr-hfnJ.js} +2 -2
  221. package/server/{review-status-sync-D3KUhsdA.js → review-status-sync-CfSixhhX.js} +1 -1
  222. package/server/{review-verdict-feedback-DrWMuRaj.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
  223. package/server/{review-verdict-feedback-YOzmsq9G.js → review-verdict-feedback-D2Q960wX.js} +1 -1
  224. package/server/{rollup-DmazRY0j.js → rollup-CakjztPl.js} +1 -1
  225. package/server/{rollup-CnxbwaLH.js → rollup-DctoIu-A.js} +8 -8
  226. package/server/{scanner-DE1MqAaF.js → scanner-BTM1jc_u.js} +7 -7
  227. package/server/{sequence-io-C0uoqfGx.js → sequence-io-pnoIDGv4.js} +4 -4
  228. package/server/{sequencer-agent-i-b2u4SJ.js → sequencer-agent-9Soi-WL-.js} +6 -6
  229. package/server/server.js +422 -1746
  230. package/server/{service-D0_gh2tl.js → service-DfTVoqJg.js} +46 -46
  231. package/server/{session-fork-DZ12vipL.js → session-fork-C4jAFHj8.js} +2 -2
  232. package/server/session-history-DanhhiCw.js +168 -0
  233. package/server/{settings-ByqjPtFO.js → settings-Cuc12oP_.js} +2 -2
  234. package/server/settings-Cy7SCFO9.js +2 -0
  235. package/server/{settings-DCC4BAqj.js → settings-DfT3f86D.js} +3 -3
  236. package/server/{shadow-engineering-BhnmtW5m.js → shadow-engineering-bKuKTCn-.js} +3 -3
  237. package/server/{shadow-state-ByXZehsy.js → shadow-state-CVHpRWlb.js} +1 -1
  238. package/server/{shadow-state-CKm8xWX9.js → shadow-state-DJz6_pb_.js} +2 -2
  239. package/server/{ship-log-DE_0Cv_i.js → ship-log-CwqPFfqx.js} +1 -1
  240. package/server/{smart-compaction-h4_ca6Uk.js → smart-compaction-B4KlpZGN.js} +1 -1
  241. package/server/{smart-compaction-D5Zen3AA.js → smart-compaction-CiWfGfRZ.js} +7 -7
  242. package/server/{spawn-planning-session-Dueit4WX.js → spawn-planning-session-CU-DwyDl.js} +15 -15
  243. package/server/{spawn-planning-session-Bgi7Ub02.js → spawn-planning-session-D5N3RuLG.js} +1 -1
  244. package/server/{specialist-completion-BZ8M-WZ0.js → specialist-completion-CJcv-NXH.js} +1 -1
  245. package/server/{specialist-context-BMq83C58.js → specialist-context-B2HlbNxS.js} +5 -5
  246. package/server/{specialist-handoff-logger-BxX1YefH.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
  247. package/server/{specialist-logs-BWZYcJ6P.js → specialist-logs-CdcUpfjj.js} +3 -3
  248. package/server/{specialists-BudKrjOu.js → specialists-CFgw_0Q6.js} +1657 -113
  249. package/server/{specialists-DrPrC9Y9.js → specialists-CwzFdapR.js} +18 -18
  250. package/server/{specialists-ZkW4Mb7U.js → specialists-D7AcFi1u.js} +1 -1
  251. package/server/{specialists-8ZAguXef.js → specialists-k22_Btaq.js} +1 -1
  252. package/server/specs-RzcDgozr.js +3 -0
  253. package/server/{src-DHn4Rd2F.js → src-B4TTzNSr.js} +72 -1
  254. package/server/{src-Dv6L03vW.js → src-BvpMg4EB.js} +3 -3
  255. package/server/{src-DNUUqkec.js → src-D4YUZrwR.js} +6 -6
  256. package/server/{stack-health-DxsTx7II.js → stack-health-CSgcYcr8.js} +2 -2
  257. package/server/{stack-health-Dclm7_tu.js → stack-health-DVN7zRnL.js} +1 -1
  258. package/server/{state-home-CRowbXqU.js → state-home-CEvD_v5F.js} +6 -6
  259. package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
  260. package/server/{stuck-remediation-CFWUP8_I.js → stuck-remediation-CxsyxwFO.js} +43 -21
  261. package/server/{stuck-remediation-CLHd-lrF.js → stuck-remediation-nTIvhGOR.js} +1 -1
  262. package/server/{summary-fork-CKc01Our.js → summary-fork-CnRMPCYd.js} +2 -2
  263. package/server/{summary-fork-CtCwBJ2Z.js → summary-fork-gKSoFAnK.js} +8 -8
  264. package/server/{supervisor-BA5D72Qa.js → supervisor-CZMs8s0M.js} +2 -2
  265. package/server/supervisor-CfX192ma.js +2 -0
  266. package/server/{swarm-readiness-CL5sM9B1.js → swarm-readiness-h6-pwY8w.js} +3 -3
  267. package/server/{system-prerequisites-DmFSXIE5.js → system-prerequisites-DZZTi2G6.js} +1 -1
  268. package/server/{teardown-workspace-DWmFJzTw.js → teardown-workspace-B4D-oCVg.js} +17 -17
  269. package/server/{test-agent-queue-DjsQoV5X.js → test-agent-queue-CnuYku4B.js} +6 -6
  270. package/server/{test-verdict-BSqsQp3G.js → test-verdict-CRsPpByy.js} +1 -1
  271. package/server/{test-verdict-D1AmZ2c0.js → test-verdict-CXMLATGc.js} +1 -1
  272. package/server/{tldr-daemon-DD9rI5gA.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
  273. package/server/{tldr-daemon-C-MGomL8.js → tldr-daemon-CuA8hz21.js} +2 -2
  274. package/server/{tmux-x291Gjjb.js → tmux-By8E_Yv_.js} +1 -1
  275. package/server/{tmux-C_d-lSIq.js → tmux-C3g9VFcg.js} +2 -2
  276. package/server/{token-DfBf1bsd.js → token-g_sJ19g3.js} +2 -2
  277. package/server/token-util-C9u4An3K.js +3 -0
  278. package/server/{token-util-CROoF5ic.js → token-util-DiwnnbJo.js} +1 -1
  279. package/server/{tracker-config-DItsdelv.js → tracker-config-BzfVj41Z.js} +1 -1
  280. package/server/{tracker-config-CNODpd11.js → tracker-config-dQxC15vH.js} +2 -2
  281. package/server/{tracker-utils-Ch2_5GGf.js → tracker-utils--z8FLSWn.js} +2 -2
  282. package/server/{tracker-utils-B9ZoVA9b.js → tracker-utils-DkKyRT0H.js} +1 -1
  283. package/server/{traefik-connect-BF4x_LUQ.js → traefik-connect-CZYB3dlm.js} +1 -1
  284. package/server/{tunnel-r_5nHAI6.js → tunnel-BpWZs0Jy.js} +3 -3
  285. package/server/{tunnel-YD80_IHr.js → tunnel-CN2px87h.js} +1 -1
  286. package/server/{typed-errors-DSPn_xWP.js → typed-errors-CrN1AByg.js} +1 -1
  287. package/server/{typed-errors-BEJhbjJg.js → typed-errors-sLpGfegz.js} +1 -1
  288. package/server/{types-CE1m_daD.js → types-BLS_Zbmd.js} +1 -1
  289. package/server/{types-33JEP4LZ.js → types-tlXf80x3.js} +1 -1
  290. package/server/{uat-train-DjkFWXge.js → uat-train-BRo6DM7p.js} +24 -24
  291. package/server/{uat-train-DDI00aqD.js → uat-train-utGVmqdm.js} +1 -1
  292. package/server/{validation-DUTiJnyz.js → validation-CsPVsoA0.js} +4 -4
  293. package/server/{validation-ict8hnXk.js → validation-Dq_wwcw3.js} +1 -1
  294. package/server/{verification-runner-inLgeQux.js → verification-runner-CMT5WRMS.js} +11 -11
  295. package/server/{verification-runner-ATaLbpr5.js → verification-runner-D0Uh-9jc.js} +1 -1
  296. package/server/{vtt-parser-QnRfcjiU.js → vtt-parser-C_XPlifj.js} +1 -1
  297. package/server/{work-agent-prompt-fZljjA1_.js → work-agent-prompt-ZTAb2Hyf.js} +11 -11
  298. package/server/workflows-BLwxUMP7.js +2 -0
  299. package/server/{workflows-oBnJ7Tm0.js → workflows-CXRwhw_o.js} +14 -14
  300. package/server/{workspace-B2WOW9Hw.js → workspace-9UEsKuiP.js} +1 -1
  301. package/server/{workspace-CNuW2j41.js → workspace-CNfuj1-5.js} +3 -3
  302. package/server/{workspace-config-CBgMGhWs.js → workspace-config-ChWOECy0.js} +1 -1
  303. package/server/{workspace-manager-DjUAJCSs.js → workspace-manager-BO-6k3sP.js} +1 -1
  304. package/server/{workspace-manager-CB-R07R3.js → workspace-manager-D8AByFIT.js} +13 -13
  305. package/server/{workspace-metadata-9Nn5kgRl.js → workspace-metadata-CvC268MN.js} +2 -2
  306. package/server/{workspace-metadata-Fd58uUQG.js → workspace-metadata-DZiJtnuF.js} +1 -1
  307. package/server/{workspaces-BjWXntty.js → workspaces-D-uIoqbg.js} +103 -95
  308. package/server/{writer-CQMGzEkw.js → writer-BUweuRPx.js} +1 -1
  309. package/server/{writer-fe1-8iGc.js → writer-CrP2xuBn.js} +3 -3
  310. package/sync-sources/hooks/ask-user-question-hook +7 -1
  311. package/sync-sources/hooks/record-cost-event.js +2 -2
  312. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  313. package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
  314. package/server/cli-ClIQwgMI.js +0 -3
  315. package/server/deacon-swarm-BY5hKNaU.js +0 -2
  316. package/server/dist-DGTwcZhI.js +0 -3
  317. package/server/forge-XlDgPQWs.js +0 -2
  318. package/server/hume-K1pi8jC4.js +0 -3
  319. package/server/inspect-agent-477VxQim.js +0 -2
  320. package/server/merge-ops-PzqsW69V.js +0 -2
  321. package/server/projects-KJ94e50I.js +0 -3
  322. package/server/public/assets/chunk-BO2N2NFS-ClukPsZQ.js +0 -103
  323. package/server/public/assets/index-DnTZ2QeN.js +0 -796
  324. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +0 -1
  325. package/server/rally-Dc2Wnxw2.js +0 -3
  326. package/server/resume-DhcIqsTm.js +0 -3
  327. package/server/settings-yydgaqhv.js +0 -2
  328. package/server/specs-DwoAEGrW.js +0 -3
  329. package/server/supervisor-DHjumXlL.js +0 -2
  330. package/server/token-util-xNaV-00f.js +0 -3
  331. package/server/workflows-tU7KKxQi.js +0 -2
@@ -1,38 +1,39 @@
1
1
  import { i as __require, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ar as OVERDECK_HOME, Bt as writeIssueRecordSync, Ct as ensureIssueRecordSync, Kn as resolveProjectFromIssueSync, Nt as readIssueRecordForWorkspaceSync, On as getProjectSync, Pn as init_projects, Pt as readIssueRecordSync, Rn as listProjectsSync, Tn as getIssuePrefix, Zr as sessionFilePath, br as init_errors, cn as STATE_PLANE_PATHS, f as loadConfigSync, fn as isStatePlanePath, in as init_auto_commit, kt as init_record, ln as getMainDivergence, on as queueBeadsAutoCommit, qr as init_paths, s as init_load, un as init_state_plane, xr as AGENTS_DIR } from "./config-yaml-Dcz-8uit.js";
2
+ import { Bt as writeIssueRecordSync, Ct as ensureIssueRecordSync, En as getIssuePrefix, Fn as init_projects, Jr as init_paths, Nt as readIssueRecordForWorkspaceSync, Pt as readIssueRecordSync, Qr as sessionFilePath, Sr as AGENTS_DIR, dn as init_state_plane, f as loadConfigSync, in as init_auto_commit, jr as OVERDECK_HOME, kn as getProjectSync, kt as init_record, ln as STATE_PLANE_PATHS, on as queueBeadsAutoCommit, pn as isStatePlanePath, qn as resolveProjectFromIssueSync, s as init_load, sn as reconcileStatePlaneDrift, un as getMainDivergence, xr as init_errors, zn as listProjectsSync } from "./config-yaml-cNOZcEww.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
4
- import { C as isPaneDead, E as listPaneValues, F as sendKeysAsync, L as sessionExists, O as listSessionNames, P as sendKeys, R as sessionExistsSync, i as capturePane, k as listSessions, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
5
- import { a as init_event_store, i as initEventStore } from "./event-store-DRte2Rwt.js";
6
- import { C as init_record_lock, S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, w as withIssueRecordLock, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-4qqLkRMu.js";
7
- import { d as init_agents, g as isTerminalIssueStage, h as getIssueStageSync, p as listAllAgentsSync } from "./briefing-freshness-Kh5V8RTh.js";
8
- import { An as getAgentDir, Bn as markAgentRunningState, D as init_context_overflow, Dn as clearAgentTroubledSync, Dt as captureTranscriptUserRecordSnapshot, E as resumeAgent, Fn as init_agent_state, G as init_termination, Jn as saveAgentStateSync, K as stopAgent, Kn as resetAgentFailureCount, Mn as getAgentState, On as clearYieldForResumeSync, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, Un as recordAgentFailure, X as listAgentStates, Xn as setAgentPausedSync, Y as init_queries, Z as listRunningAgents, Zn as setAgentYieldedSync, _r as init_runtime_state, _t as init_config, at as init_concurrency, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, er as init_persistent_logger, et as countRunningAgents, gn as buildDefaultResumeContinueMessage, gr as getAgentRuntimeStateSync, hr as getAgentRuntimeState, it as getConcurrencyLimits, k as isContextOverflowTail, lt as tryReserveAdvancingSlot, mt as setCachedMemoryVerdict, nr as logDeaconEventSync, nt as describeRunningAgents, ot as releaseAdvancingSlot, pt as init_memory_verdict_cache, qn as saveAgentState, t as init_agents$1, tr as logAgentLifecycleSync, vr as saveAgentRuntimeState, vt as loadCloisterConfig, wt as deliverInitialPromptWithRetry, yt as loadCloisterConfigSync } from "./agents-CsOzAmRg.js";
9
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-Ch2_5GGf.js";
10
- import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-BvAgFK8n.js";
11
- import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-OC-l1lNt.js";
12
- import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-ZNnMpIlh.js";
13
- import { n as init_state_home, t as findRecreatedLegacyStatePaths } from "./state-home-CRowbXqU.js";
14
- import { T as stampBootReconciliation, h as setBootReconciliationDecision, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-DwkAeooY.js";
15
- import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-DxsTx7II.js";
16
- import { a as queryBeadsForIssue, o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-B1DlJVp9.js";
17
- import { a as isAgentIdleForNudge, t as checkStuckAgentRemediation } from "./stuck-remediation-CFWUP8_I.js";
18
- import { n as __filename, r as init_esm_shims } from "./esm-shims-CJHy8CZY.js";
19
- import { t as recordDeaconNudge } from "./deacon-nudge-log-D1wEK6zF.js";
20
- import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-0_qqMcnS.js";
21
- import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, d as getAllProjectSpecialistStatuses } from "./specialists-DrPrC9Y9.js";
22
- import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-DkivCk1A.js";
23
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-FApNiOOs.js";
24
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-Cqfxx6bE.js";
25
- import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-DrWMuRaj.js";
26
- import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-BF4x_LUQ.js";
27
- import { g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots, y as listFeatureWorkspaces } from "./deacon-swarm-CO_A7xyd.js";
28
- import { t as recordRecoveryFailure } from "./recovery-trip-Dfh1tNHn.js";
29
- import { n as isExplicitNoResumeRequest, t as init_no_resume_mode } from "./no-resume-mode-yrPEQ_pC.js";
30
- import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-mC5pujeb.js";
31
- import { a as RELEASED_LABEL, i as READY_LABEL, n as OBJECTION_LABEL, o as VETOED_LABEL, r as PARKED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-CKRuGDsB.js";
32
- import { n as pruneTerminalStoppedAgents } from "./agent-gc-D_DxfBHR.js";
33
- import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-BWWHn4Lr.js";
34
- import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-B1kG7B_X.js";
35
- import { i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-D1AmZ2c0.js";
4
+ import { C as isPaneDead, E as listPaneValues, F as sendKeysAsync, L as sessionExists, O as listSessionNames, P as sendKeys, R as sessionExistsSync, i as capturePane, k as listSessions, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
5
+ import { a as init_event_store, i as initEventStore } from "./event-store-D89fMfXS.js";
6
+ import { C as init_record_lock, S as needsReviewDispatch, c as init_review_status, h as reviewGatesPassedSync, s as getReviewStatusSync, u as loadReviewStatuses, w as withIssueRecordLock, x as init_review_dispatch_decision, y as setReviewStatusSync } from "./review-status-Dc1l4dVz.js";
7
+ import { d as init_agents, g as isTerminalIssueStage, h as getIssueStageSync, p as listAllAgentsSync } from "./briefing-freshness-DESTCWo-.js";
8
+ import { An as getAgentDir, Bn as markAgentRunningState, D as init_context_overflow, Dn as clearAgentTroubledSync, Dt as captureTranscriptUserRecordSnapshot, E as resumeAgent, Fn as init_agent_state, G as init_termination, Jn as saveAgentStateSync, K as stopAgent, Kn as resetAgentFailureCount, Mn as getAgentState, On as clearYieldForResumeSync, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, Un as recordAgentFailure, X as listAgentStates, Xn as setAgentPausedSync, Y as init_queries, Z as listRunningAgents, Zn as setAgentYieldedSync, _t as init_config, at as init_concurrency, ct as resetPatrolDispatchBudget, dt as workResumeSlotsAvailable, et as countRunningAgents, fr as getAgentRuntimeState, gn as buildDefaultResumeContinueMessage, hr as saveAgentRuntimeState, it as getConcurrencyLimits, k as isContextOverflowTail, lt as tryReserveAdvancingSlot, mr as init_runtime_state, mt as setCachedMemoryVerdict, nt as describeRunningAgents, ot as releaseAdvancingSlot, pr as getAgentRuntimeStateSync, pt as init_memory_verdict_cache, qn as saveAgentState, t as init_agents$1, vt as loadCloisterConfig, wt as deliverInitialPromptWithRetry, yt as loadCloisterConfigSync } from "./agents-B9GwfCyp.js";
9
+ import { c as logDeaconEventSync, o as init_persistent_logger, s as logAgentLifecycleSync } from "./session-history-DanhhiCw.js";
10
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils--z8FLSWn.js";
11
+ import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-C13UaCL7.js";
12
+ import { c as init_review_status_sync, l as markWorkspaceStuck } from "./review-status-sync-CAr-hfnJ.js";
13
+ import { f as init_config$1, m as loadConfigSync$1, p as loadConfig$1 } from "./config-DVLdmnMJ.js";
14
+ import { n as init_state_home, t as findRecreatedLegacyStatePaths } from "./state-home-CEvD_v5F.js";
15
+ import { T as stampBootReconciliation, h as setBootReconciliationDecision, l as isDeaconGloballyPaused, r as getBootReconciliationState, s as init_control_settings } from "./control-settings-D4EFsRBd.js";
16
+ import { c as init_docker_stats, s as DockerStatsCollector } from "./stack-health-CSgcYcr8.js";
17
+ import { a as queryBeadsForIssue, o as queryReadyBeadsByIssueLabels, r as init_beads_query, s as resolveBeadsQueryRoot } from "./beads-query-Dl4FhT8J.js";
18
+ import { a as isAgentIdleForNudge, t as checkStuckAgentRemediation } from "./stuck-remediation-CxsyxwFO.js";
19
+ import { n as __filename, r as init_esm_shims } from "./esm-shims-BEjvINX3.js";
20
+ import { t as recordDeaconNudge } from "./deacon-nudge-log-B-naf89q.js";
21
+ import { n as init_review_monitor, t as REVIEW_SUB_ROLES } from "./review-monitor-BC--miCO.js";
22
+ import { O as init_specialists, R as parseReviewerSessionName, T as getTmuxSessionName, d as getAllProjectSpecialistStatuses } from "./specialists-CwzFdapR.js";
23
+ import { a as inferBranchFromWorkspace, i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-CbghE9-o.js";
24
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BxcePXL-.js";
25
+ import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-D4wTChdX.js";
26
+ import { n as init_review_verdict_feedback, t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-CVDbIDBe.js";
27
+ import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-CZYB3dlm.js";
28
+ import { g as decideAgentAutonomousRedrive, r as coordinateSwarmSlots, y as listFeatureWorkspaces } from "./deacon-swarm-BNGkmYR_.js";
29
+ import { t as recordRecoveryFailure } from "./recovery-trip-BT7nb9OV.js";
30
+ import { n as isExplicitNoResumeRequest, t as init_no_resume_mode } from "./no-resume-mode-Gh5R_YLF.js";
31
+ import { n as reconcileClosedIssueAgents } from "./closed-issue-reaper-DCAYzNXW.js";
32
+ import { a as RELEASED_LABEL, i as READY_LABEL, n as OBJECTION_LABEL, o as VETOED_LABEL, r as PARKED_LABEL, t as BLOCKS_MAIN_LABEL } from "./pickup-BtvRBbvI.js";
33
+ import { n as pruneTerminalStoppedAgents } from "./agent-gc-D0wDIeV1.js";
34
+ import { a as spawnWorkAgentThroughAgentsEndpoint, i as reconcileOrphanProposedSpecs, o as triggerRebuildAndStart } from "./orphan-proposed-reconciler-DI_IS1p_.js";
35
+ import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-DbZ8ukMd.js";
36
+ import { i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-CXMLATGc.js";
36
37
  import { createRequire } from "node:module";
37
38
  import { join } from "node:path";
38
39
  import { Effect } from "effect";
@@ -21636,11 +21637,11 @@ init_activity_logger();
21636
21637
  init_projects();
21637
21638
  init_tmux();
21638
21639
  init_agents();
21640
+ init_persistent_logger();
21639
21641
  init_review_status_sync();
21640
21642
  init_review_dispatch_decision();
21641
21643
  init_review_status();
21642
21644
  init_runtime_state();
21643
- init_persistent_logger();
21644
21645
  init_agent_state();
21645
21646
  init_transcript_landing();
21646
21647
  init_config();
@@ -22537,7 +22538,7 @@ async function checkInspectAgentTimeouts(now = /* @__PURE__ */ new Date()) {
22537
22538
  console.warn(`[deacon] Failed to kill inspect session ${sessionName}: ${msg}`);
22538
22539
  });
22539
22540
  try {
22540
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
22541
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
22541
22542
  await messageAgent(`agent-${issueId.toLowerCase()}`, verdict, "deacon:inspect-watchdog");
22542
22543
  } catch (err) {
22543
22544
  const msg = err instanceof Error ? err.message : String(err);
@@ -22680,7 +22681,7 @@ async function maybeProactivelyCompactContext(sessionName, now) {
22680
22681
  if (!agentState?.workspace || !sessionId || !agentState.model) return null;
22681
22682
  let usage = null;
22682
22683
  try {
22683
- const { computeContextUsage } = await import("./conversation-service-C_kNZPLx.js");
22684
+ const { computeContextUsage } = await import("./conversation-service-BTzObqGi.js");
22684
22685
  usage = await computeContextUsage(sessionFilePath(agentState.workspace, sessionId), agentState.model);
22685
22686
  } catch {
22686
22687
  return null;
@@ -22777,13 +22778,13 @@ async function checkApiErrorAgents() {
22777
22778
  const st = getAgentStateSync(sessionName);
22778
22779
  const sid = st?.sessionId ?? runtimeState?.claudeSessionId;
22779
22780
  if (st?.workspace && sid && st.model) {
22780
- const { computeContextUsage } = await import("./conversation-service-C_kNZPLx.js");
22781
+ const { computeContextUsage } = await import("./conversation-service-BTzObqGi.js");
22781
22782
  const usage = await computeContextUsage(sessionFilePath(st.workspace, sid), st.model);
22782
22783
  if (usage && usage.percentUsed < 85) recoveredPct = usage.percentUsed;
22783
22784
  }
22784
22785
  } catch {}
22785
22786
  if (recoveredPct !== null) {
22786
- const { clearWorkspaceStuck } = await import("./review-status-sync-D3KUhsdA.js");
22787
+ const { clearWorkspaceStuck } = await import("./review-status-sync-CfSixhhX.js");
22787
22788
  clearWorkspaceStuck(issueId);
22788
22789
  stuckOverflowNativeRecoveryState.delete(sessionName);
22789
22790
  actions.push(`Context overflow recovery: cleared stuck flag for ${sessionName} (context back to ${Math.round(recoveredPct)}%)`);
@@ -22799,7 +22800,7 @@ async function checkApiErrorAgents() {
22799
22800
  rec.attempts += 1;
22800
22801
  rec.lastAttempt = now;
22801
22802
  stuckOverflowNativeRecoveryState.set(sessionName, rec);
22802
- const { resumeAgent } = await import("./agents-DCvyTXNU.js");
22803
+ const { resumeAgent } = await import("./agents-CEcaxSkR.js");
22803
22804
  const recovered = await resumeAgent(sessionName, void 0, { compact: true });
22804
22805
  if (recovered.success) {
22805
22806
  stuckOverflowNativeRecoveryState.delete(sessionName);
@@ -22847,7 +22848,7 @@ async function checkApiErrorAgents() {
22847
22848
  }
22848
22849
  const compactAttempts = (ov?.compactAttempts ?? 0) + 1;
22849
22850
  if (issueId !== null) {
22850
- const { resumeAgent } = await import("./agents-DCvyTXNU.js");
22851
+ const { resumeAgent } = await import("./agents-CEcaxSkR.js");
22851
22852
  const resumeResult = await resumeAgent(sessionName, void 0, { compact: true });
22852
22853
  contextOverflowRecoveryState.set(sessionName, {
22853
22854
  lastAttempt: now,
@@ -23214,7 +23215,7 @@ function reviewConvoyLiveness(issueId) {
23214
23215
  */
23215
23216
  async function recoverUnhealthyTestStack(issueId, workspacePath) {
23216
23217
  const key = issueId.toUpperCase();
23217
- const { getWorkspaceStackHealth } = await import("./stack-health-Dclm7_tu.js");
23218
+ const { getWorkspaceStackHealth } = await import("./stack-health-DVN7zRnL.js");
23218
23219
  const health = await Effect.runPromise(getWorkspaceStackHealth(issueId, { workspacePath }));
23219
23220
  if (health.healthy) {
23220
23221
  testStackRebuildState.delete(key);
@@ -23246,7 +23247,7 @@ async function recoverUnhealthyTestStack(issueId, workspacePath) {
23246
23247
  record.attempts += 1;
23247
23248
  testStackRebuildState.set(key, record);
23248
23249
  console.log(`[deacon] Test stack for ${key} unhealthy (${health.reasons.join("; ")}) — rebuilding (attempt ${record.attempts}/${TEST_STACK_REBUILD_MAX_ATTEMPTS})`);
23249
- const { rebuildWorkspaceStack } = await import("./rebuild-stack-GOsWqXi3.js");
23250
+ const { rebuildWorkspaceStack } = await import("./rebuild-stack-nGD_nPZo.js");
23250
23251
  const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[deacon] ${key} stack rebuild: ${m}`) }));
23251
23252
  if (!result.success) {
23252
23253
  console.warn(`[deacon] Test stack rebuild failed for ${key}: ${result.error}`);
@@ -23374,7 +23375,7 @@ async function handleReviewCoordinatorDied(issueId, _sessionName, _reason) {
23374
23375
  return actions;
23375
23376
  }
23376
23377
  try {
23377
- const { spawnReviewRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
23378
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
23378
23379
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
23379
23380
  issueId,
23380
23381
  workspace,
@@ -23504,7 +23505,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
23504
23505
  const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
23505
23506
  if (workspace && resolved && !tryReserveAdvancingSlot() && !await tryYieldForAdvancingDispatch("review", issueId)) actions.push(`Deferred review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
23506
23507
  else if (workspace && resolved) try {
23507
- const { spawnReviewRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
23508
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
23508
23509
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
23509
23510
  issueId,
23510
23511
  workspace,
@@ -23529,8 +23530,8 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus) {
23529
23530
  const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
23530
23531
  if (workspace && resolved) {
23531
23532
  const branch = `feature/${issueLower}`;
23532
- const { spawnRun } = await import("./agents-DCvyTXNU.js");
23533
- const { buildTestRolePrompt } = await import("./test-agent-queue-DjsQoV5X.js");
23533
+ const { spawnRun } = await import("./agents-CEcaxSkR.js");
23534
+ const { buildTestRolePrompt } = await import("./test-agent-queue-CnuYku4B.js");
23534
23535
  const stackRecovery = await recoverUnhealthyTestStack(issueId, workspace);
23535
23536
  if (stackRecovery === "cooldown" || stackRecovery === "exhausted") {
23536
23537
  setReviewStatusSync(issueId, { testStatus: "dispatch_failed" });
@@ -23668,7 +23669,7 @@ async function recoverStalledReviewConvoys(getCanonicalState = getAutoCloseOutCa
23668
23669
  record.lastAttempt = now;
23669
23670
  record.attempts += 1;
23670
23671
  stalledReviewConvoyRecoveryState.set(key, record);
23671
- const { spawnReviewRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
23672
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
23672
23673
  try {
23673
23674
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
23674
23675
  issueId,
@@ -23739,7 +23740,7 @@ async function checkMissingReviewStatuses() {
23739
23740
  continue;
23740
23741
  }
23741
23742
  try {
23742
- const { spawnReviewRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
23743
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
23743
23744
  await Effect.runPromise(spawnReviewRoleForIssue({
23744
23745
  issueId,
23745
23746
  workspace,
@@ -23790,7 +23791,7 @@ async function checkStuckReviewing() {
23790
23791
  const actions = [];
23791
23792
  const REVIEW_STUCK_THRESHOLD_MS = 1800 * 1e3;
23792
23793
  try {
23793
- const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
23794
+ const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
23794
23795
  const statuses = loadReviewStatuses();
23795
23796
  const now = Date.now();
23796
23797
  const activeReviewIssues = /* @__PURE__ */ new Set();
@@ -23806,7 +23807,7 @@ async function checkStuckReviewing() {
23806
23807
  if (rState?.state === "active" && rState.currentIssue) activeReviewIssues.add(rState.currentIssue.toUpperCase());
23807
23808
  }
23808
23809
  try {
23809
- const { listRunningAgents } = await import("./agents-DCvyTXNU.js");
23810
+ const { listRunningAgents } = await import("./agents-CEcaxSkR.js");
23810
23811
  const agents = await Effect.runPromise(listRunningAgents());
23811
23812
  for (const agent of agents) {
23812
23813
  if (agent.status === "stopped" || agent.status === "error") continue;
@@ -23939,7 +23940,7 @@ async function checkCompletedButUnsignaledReviews() {
23939
23940
  }
23940
23941
  const nudge = `Your review synthesis is already written and saved. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${`pan admin specialists done review ${issueId} --status ${verdict}${verdict === "blocked" || verdict === "failed" ? ` --notes "${topBlocker || "See synthesis.md"}"` : ""}`}\n\nRun this command NOW. Do not write any other response before executing it.`;
23941
23942
  try {
23942
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
23943
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
23943
23944
  await messageAgent(reviewSession, nudge);
23944
23945
  unsignaledReviewNudges.set(latestDir, now);
23945
23946
  actions.push(`Nudged ${reviewSession} to signal ${verdict} (synthesis written ${Math.round((now - latestMtime) / 6e4)}min ago)`);
@@ -24060,7 +24061,7 @@ async function respawnIdleReviewer(state, agentId) {
24060
24061
  return false;
24061
24062
  }
24062
24063
  try {
24063
- const { spawnReviewSubRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
24064
+ const { spawnReviewSubRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
24064
24065
  const contextManifestPath = join$1(dirname$1(outputPath), "context.json");
24065
24066
  const result = await Effect.runPromise(spawnReviewSubRoleForIssue({
24066
24067
  issueId: state.issueId,
@@ -24189,7 +24190,7 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
24189
24190
  "Read the four reports, write synthesis.md, then signal review status exactly as roles/review.md instructs."
24190
24191
  ].join("\n");
24191
24192
  try {
24192
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
24193
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
24193
24194
  await messageAgent(state.id, message);
24194
24195
  reviewReportsPresentNudges.set(nudgeKey, now);
24195
24196
  const action = `Nudged ${state.id} to synthesize from ${REVIEW_SUB_ROLES.length} reviewer reports`;
@@ -24268,7 +24269,7 @@ async function monitorReviewConvoySignals() {
24268
24269
  if (!signal) continue;
24269
24270
  const message = signal === "ready" ? `REVIEWER_READY ${state.reviewSubRole} ${outputPath}` : signal === "timeout" ? `REVIEWER_TIMEOUT ${state.reviewSubRole} ${reason}` : `REVIEWER_FAILED ${state.reviewSubRole} ${reason}`;
24270
24271
  try {
24271
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
24272
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
24272
24273
  await messageAgent(state.reviewSynthesisAgentId, message);
24273
24274
  state.reviewMonitorSignaled = signal;
24274
24275
  saveAgentStateSync(state);
@@ -24276,7 +24277,7 @@ async function monitorReviewConvoySignals() {
24276
24277
  actions.push(action);
24277
24278
  logDeaconEventSync(`monitorReviewConvoySignals: ${action}`);
24278
24279
  if (signal === "ready") try {
24279
- const { notifyPipelineSync } = await import("./pipeline-notifier-BkKbQ8ji.js");
24280
+ const { notifyPipelineSync } = await import("./pipeline-notifier-BH4PAi-w.js");
24280
24281
  notifyPipelineSync({
24281
24282
  type: "reviewer_completed",
24282
24283
  issueId: state.issueId,
@@ -24284,7 +24285,7 @@ async function monitorReviewConvoySignals() {
24284
24285
  });
24285
24286
  } catch {}
24286
24287
  else if (signal === "timeout") try {
24287
- const { notifyPipelineSync } = await import("./pipeline-notifier-BkKbQ8ji.js");
24288
+ const { notifyPipelineSync } = await import("./pipeline-notifier-BH4PAi-w.js");
24288
24289
  notifyPipelineSync({
24289
24290
  type: "reviewer_timed_out",
24290
24291
  issueId: state.issueId,
@@ -24384,7 +24385,7 @@ const FORK_CACHE_CHECK_DELAY_MS = 180 * 1e3;
24384
24385
  async function checkStalledReviewDiscovery() {
24385
24386
  const actions = [];
24386
24387
  try {
24387
- const { listAgentStates } = await import("./agents-DCvyTXNU.js");
24388
+ const { listAgentStates } = await import("./agents-CEcaxSkR.js");
24388
24389
  const states = listAgentStates();
24389
24390
  const now = Date.now();
24390
24391
  for (const state of states) {
@@ -24393,7 +24394,7 @@ async function checkStalledReviewDiscovery() {
24393
24394
  const aged = Number.isFinite(startedMs) && now - startedMs > 48e4;
24394
24395
  const dead = !await Effect.runPromise(sessionExists(state.id)).catch(() => false) || await Effect.runPromise(isPaneDead(state.id)).catch(() => true);
24395
24396
  if (!aged && !dead) continue;
24396
- const { handleReviewDiscoveryReady } = await import("./review-agent-Rub0OpZc.js");
24397
+ const { handleReviewDiscoveryReady } = await import("./review-agent-u5q3ip7H.js");
24397
24398
  const result = await handleReviewDiscoveryReady(state.issueId, { source: dead ? "deacon-backstop (parent dead)" : "deacon-backstop (discovery timeout)" });
24398
24399
  actions.push(result.message);
24399
24400
  logDeaconEventSync(`checkStalledReviewDiscovery: ${result.message}`);
@@ -24416,8 +24417,8 @@ async function checkStalledReviewDiscovery() {
24416
24417
  async function checkStalledReviewParents() {
24417
24418
  const actions = [];
24418
24419
  try {
24419
- const { listAgentStates, markAgentStoppedState } = await import("./agents-DCvyTXNU.js");
24420
- const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-Rub0OpZc.js");
24420
+ const { listAgentStates, markAgentStoppedState } = await import("./agents-CEcaxSkR.js");
24421
+ const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-u5q3ip7H.js");
24421
24422
  const states = listAgentStates();
24422
24423
  const now = Date.now();
24423
24424
  for (const state of states) {
@@ -24466,8 +24467,8 @@ async function checkStalledReviewParents() {
24466
24467
  async function checkReviewForkCacheMisses() {
24467
24468
  const actions = [];
24468
24469
  try {
24469
- const { listAgentStates, saveAgentState } = await import("./agents-DCvyTXNU.js");
24470
- const { readEventsSync } = await import("./events-CtsLScn8.js");
24470
+ const { listAgentStates, saveAgentState } = await import("./agents-CEcaxSkR.js");
24471
+ const { readEventsSync } = await import("./events-rIGncmP1.js");
24471
24472
  const { emitActivityEntrySync } = await import("./activity-logger-DvYvFhwZ.js");
24472
24473
  const states = listAgentStates();
24473
24474
  const now = Date.now();
@@ -24614,7 +24615,7 @@ async function reconcileStaleMergeStatus() {
24614
24615
  if (!project) continue;
24615
24616
  let specStatus;
24616
24617
  try {
24617
- const { findSpecByIssue } = await import("./specs-DwoAEGrW.js");
24618
+ const { findSpecByIssue } = await import("./specs-RzcDgozr.js");
24618
24619
  const spec = await Effect.runPromise(findSpecByIssue(project.projectPath, issueId));
24619
24620
  specStatus = spec?.status;
24620
24621
  if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
@@ -24629,7 +24630,7 @@ async function reconcileStaleMergeStatus() {
24629
24630
  if (branchTip.stdout.trim() === mainTip.stdout.trim()) console.log(`[deacon] ${issueId}: branch ${branch} points at main; not treating zero-commit branch as merged`);
24630
24631
  } catch {}
24631
24632
  if (!isMerged) {
24632
- const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-B9ZoVA9b.js");
24633
+ const { resolveGitHubIssueSync: _resolveGitHubIssue } = await import("./tracker-utils-DkKyRT0H.js");
24633
24634
  const ghResolved = _resolveGitHubIssue(issueId);
24634
24635
  if (ghResolved.isGitHub) try {
24635
24636
  const { stdout } = await execFileAsync$4("gh", [
@@ -24666,7 +24667,7 @@ async function reconcileStaleMergeStatus() {
24666
24667
  actions.push(msg);
24667
24668
  console.log(`[deacon] ${msg}`);
24668
24669
  try {
24669
- const { postMergeLifecycle } = await import("./merge-agent-36wfYm2u.js");
24670
+ const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
24670
24671
  postMergeLifecycle(issueId, project.projectPath, branch, { skipDeploy: true }).catch((err) => console.warn(`[deacon] postMergeLifecycle (reconcile) failed for ${issueId}: ${err}`));
24671
24672
  } catch (err) {
24672
24673
  console.warn(`[deacon] Could not import postMergeLifecycle: ${err}`);
@@ -24691,7 +24692,7 @@ const falseMergedReset = /* @__PURE__ */ new Set();
24691
24692
  async function reconcileFalseMerged() {
24692
24693
  const actions = [];
24693
24694
  try {
24694
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DRD2woO0.js");
24695
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
24695
24696
  if (!isGitHubAppConfigured()) return actions;
24696
24697
  const statuses = loadReviewStatuses();
24697
24698
  for (const [issueId, status] of Object.entries(statuses)) {
@@ -24736,7 +24737,7 @@ const CLOSED_PR_RECONCILE_COOLDOWN_MS = 600 * 1e3;
24736
24737
  async function reconcileClosedPrReadyForMerge() {
24737
24738
  const actions = [];
24738
24739
  try {
24739
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-DRD2woO0.js");
24740
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
24740
24741
  if (!isGitHubAppConfigured()) return actions;
24741
24742
  const statuses = loadReviewStatuses();
24742
24743
  const now = Date.now();
@@ -24808,7 +24809,7 @@ const STALE_MERGE_BLOCKER_COOLDOWN_MS = 120 * 1e3;
24808
24809
  async function reconcileStaleMergeBlockers() {
24809
24810
  const actions = [];
24810
24811
  try {
24811
- const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-DGT8jCLp.js");
24812
+ const { resolveConflictGate, buildRealConflictGateDeps } = await import("./conflict-gate-CuXUv-bP.js");
24812
24813
  const statuses = loadReviewStatuses();
24813
24814
  const now = Date.now();
24814
24815
  const deps = buildRealConflictGateDeps();
@@ -24951,7 +24952,7 @@ async function checkFailedMergeRetry() {
24951
24952
  if (ciEntry.count === 5) {
24952
24953
  console.log(`[deacon] CI check failure for ${issueId} — retries exhausted, notifying work agent`);
24953
24954
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
24954
- const { writeFeedbackFile } = await import("./feedback-writer-DOUhyIW2.js");
24955
+ const { writeFeedbackFile } = await import("./feedback-writer-BsJiw5aT.js");
24955
24956
  const ciFileResult = await Effect.runPromise(writeFeedbackFile({
24956
24957
  issueId,
24957
24958
  specialist: "merge-agent",
@@ -24983,7 +24984,7 @@ async function checkFailedMergeRetry() {
24983
24984
  ciRetryMap.set(issueId, ciEntry);
24984
24985
  console.log(`[deacon] CI check failure for ${issueId} — notifying agent to re-submit (attempt ${ciEntry.count}/5)`);
24985
24986
  const ciNotes = status.mergeNotes || "CI checks are failing on the PR";
24986
- const { writeFeedbackFile } = await import("./feedback-writer-DOUhyIW2.js");
24987
+ const { writeFeedbackFile } = await import("./feedback-writer-BsJiw5aT.js");
24987
24988
  const ciFileResult2 = await Effect.runPromise(writeFeedbackFile({
24988
24989
  issueId,
24989
24990
  specialist: "merge-agent",
@@ -25011,7 +25012,7 @@ async function checkFailedMergeRetry() {
25011
25012
  const lastNudge = timeoutNudgeCooldowns.get(issueIdForFb);
25012
25013
  if (!lastNudge || now - lastNudge >= TIMEOUT_NUDGE_COOLDOWN_MS) {
25013
25014
  const timeoutNotes = status.mergeNotes;
25014
- const { writeFeedbackFile } = await import("./feedback-writer-DOUhyIW2.js");
25015
+ const { writeFeedbackFile } = await import("./feedback-writer-BsJiw5aT.js");
25015
25016
  await Effect.runPromise(writeFeedbackFile({
25016
25017
  issueId: issueIdForFb,
25017
25018
  specialist: "merge-agent",
@@ -25116,7 +25117,7 @@ async function autoCloseOut(now = /* @__PURE__ */ new Date()) {
25116
25117
  } } : {}
25117
25118
  };
25118
25119
  try {
25119
- const { closeOut } = await import("./workflows-tU7KKxQi.js");
25120
+ const { closeOut } = await import("./workflows-BLwxUMP7.js");
25120
25121
  const result = await Effect.runPromise(closeOut(ctx));
25121
25122
  if (!result.success) {
25122
25123
  const failed = result.steps.find((step) => !step.success && !step.skipped);
@@ -25680,7 +25681,7 @@ async function nudgeStalledResumeWorkAgents() {
25680
25681
  const message = buildStalledResumePrompt(state);
25681
25682
  if (!message) continue;
25682
25683
  try {
25683
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
25684
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
25684
25685
  await messageAgent(agentId, message);
25685
25686
  recordCooldown(agentId, ".last-stalled-resume-nudge");
25686
25687
  const action = `Re-sent stalled resume prompt to ${agentId} (${state.issueId})`;
@@ -25798,7 +25799,7 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
25798
25799
  "Continue the per-bead workflow without asking — claim it (`pan beads claim <bead-id>`), implement, commit, close through `pan beads close`. Inspection is conditional on metadata.requiresInspection (default false; check the plan item before deciding to call `pan inspect`). Do NOT end your turn with a multi-paragraph summary; just advance to the next bead."
25799
25800
  ].join("\n");
25800
25801
  try {
25801
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
25802
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
25802
25803
  await messageAgent(agentId, message);
25803
25804
  writeFileSync(join$1(getAgentDir(agentId), ".last-bead-nudge"), String(Date.now()), "utf-8");
25804
25805
  const action = `Nudged idle ${agentId} (${state.issueId}) — ${openBeads.length} open bead(s)`;
@@ -26229,10 +26230,26 @@ async function gitStdout(workspacePath, args) {
26229
26230
  return String(result.stdout ?? "");
26230
26231
  }
26231
26232
  //#endregion
26232
- //#region ../../lib/cloister/state-recreation-patrol.ts
26233
- init_auto_commit();
26233
+ //#region ../../lib/cloister/state-plane-patrol.ts
26234
26234
  init_record();
26235
26235
  init_state_home();
26236
+ init_auto_commit();
26237
+ async function reconcileProjectStatePlanes(projects) {
26238
+ const actions = [];
26239
+ for (const { config } of projects) {
26240
+ if (!config.path) continue;
26241
+ queueBeadsAutoCommit(config.path);
26242
+ const write = await Effect.runPromise(reconcileStatePlaneDrift(config.path));
26243
+ if (!write.committed) continue;
26244
+ actions.push({
26245
+ message: `Reconciled pending spec/record state for ${config.name ?? config.path}`,
26246
+ level: write.pushed === false ? "warn" : "action"
26247
+ });
26248
+ }
26249
+ return actions;
26250
+ }
26251
+ //#endregion
26252
+ //#region ../../lib/cloister/state-recreation-patrol.ts
26236
26253
  async function recreatedStateWarnings(projects) {
26237
26254
  const warnings = [];
26238
26255
  for (const { config } of projects) {
@@ -27175,8 +27192,8 @@ async function cleanupStaleAgentState() {
27175
27192
  */
27176
27193
  async function cleanupAbandonedFeedback() {
27177
27194
  const actions = [];
27178
- const { getReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
27179
- const { clearFeedbackFiles } = await import("./feedback-writer-DOUhyIW2.js");
27195
+ const { getReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
27196
+ const { clearFeedbackFiles } = await import("./feedback-writer-BsJiw5aT.js");
27180
27197
  for (const { issueId, workspacePath } of listFeatureWorkspaces()) {
27181
27198
  const panFeedbackDir = join$1(workspacePath, ".pan", "feedback");
27182
27199
  if (!existsSync(panFeedbackDir)) continue;
@@ -27247,7 +27264,7 @@ async function handleOrphanReviewerSession(sessionName, sessions, creationTimes,
27247
27264
  if (!issueId) return null;
27248
27265
  const agentSession = `agent-${issueId.toLowerCase()}`;
27249
27266
  if (sessions.includes(agentSession)) return null;
27250
- const { getReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
27267
+ const { getReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
27251
27268
  try {
27252
27269
  if (getReviewStatusSync(issueId)?.reviewStatus === "reviewing") return null;
27253
27270
  } catch {}
@@ -27367,7 +27384,7 @@ async function checkOrphanedCompletions() {
27367
27384
  async function checkPendingTestDispatch() {
27368
27385
  const actions = [];
27369
27386
  try {
27370
- const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
27387
+ const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
27371
27388
  const statuses = loadReviewStatuses();
27372
27389
  const now = Date.now();
27373
27390
  for (const [issueId, status] of Object.entries(statuses)) {
@@ -27400,7 +27417,7 @@ async function checkPendingTestDispatch() {
27400
27417
  console.log(`[deacon] ${issueId}: skipping test re-dispatch — issue is closed`);
27401
27418
  continue;
27402
27419
  }
27403
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
27420
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
27404
27421
  const resolved = resolveProjectFromIssueSync(issueId);
27405
27422
  if (!resolved) continue;
27406
27423
  const issueLower = issueId.toLowerCase();
@@ -27415,8 +27432,8 @@ async function checkPendingTestDispatch() {
27415
27432
  logDeaconEventSync(`checkPendingTestDispatch: deferred test for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
27416
27433
  continue;
27417
27434
  }
27418
- const { spawnRun } = await import("./agents-DCvyTXNU.js");
27419
- const { buildTestRolePrompt } = await import("./test-agent-queue-DjsQoV5X.js");
27435
+ const { spawnRun } = await import("./agents-CEcaxSkR.js");
27436
+ const { buildTestRolePrompt } = await import("./test-agent-queue-CnuYku4B.js");
27420
27437
  try {
27421
27438
  const run = await spawnRun(issueId, "test", {
27422
27439
  workspace,
@@ -27539,7 +27556,7 @@ async function checkCompletedButUnsignaledTests() {
27539
27556
  const cmd = `pan admin specialists done test ${issueId} --status ${decision.status}${noteArg}`;
27540
27557
  const nudge = `Your test verdict (${decision.status}) is already written to .pan/test/result.json. Your ONLY remaining task is to execute this Bash command immediately — do not analyze, do not summarize, do not ask questions, just run it:\n\n${cmd}\n\nRun this command NOW. Do not write any other response before executing it.`;
27541
27558
  try {
27542
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
27559
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
27543
27560
  await messageAgent(testSession, nudge);
27544
27561
  unsignaledTestNudges.set(testSession, now);
27545
27562
  const msg = `Nudged ${testSession} to signal ${decision.status} (verdict artifact present)`;
@@ -27553,7 +27570,7 @@ async function checkCompletedButUnsignaledTests() {
27553
27570
  case "nudge-write": {
27554
27571
  const nudge = `Your test run for ${issueId} looks finished but no verdict was recorded. Decide the verdict from the gates/UAT you ran, then do BOTH of these now: (1) write the workspace file .pan/test/result.json as {"status":"passed"|"failed","notes":"<evidence>"}, and (2) run: pan admin specialists done test ${issueId} --status passed|failed. Do this immediately — do not summarize or ask questions, just write the file and run the command.`;
27555
27572
  try {
27556
- const { messageAgent } = await import("./agents-DCvyTXNU.js");
27573
+ const { messageAgent } = await import("./agents-CEcaxSkR.js");
27557
27574
  await messageAgent(testSession, nudge);
27558
27575
  unsignaledTestNudges.set(testSession, now);
27559
27576
  const msg = `Nudged ${testSession} to write+signal a test verdict (no artifact yet)`;
@@ -27576,8 +27593,8 @@ async function checkCompletedButUnsignaledTests() {
27576
27593
  async function checkVerificationReviewContradiction() {
27577
27594
  const actions = [];
27578
27595
  try {
27579
- const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
27580
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
27596
+ const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-CG0iDuWa.js");
27597
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
27581
27598
  const statuses = loadReviewStatuses();
27582
27599
  for (const [issueId, status] of Object.entries(statuses)) if (status.verificationStatus === "passed" && status.reviewStatus === "reviewing" && status.stuckReason === "review_infrastructure_failure") {
27583
27600
  let reviewedAtCommit;
@@ -27626,7 +27643,7 @@ async function checkPostReviewCommits() {
27626
27643
  const actions = [];
27627
27644
  try {
27628
27645
  const statuses = loadReviewStatuses();
27629
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
27646
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
27630
27647
  for (const [issueId, status] of Object.entries(statuses)) {
27631
27648
  if (status.mergeStatus === "merged") continue;
27632
27649
  if (!status.reviewedAtCommit) continue;
@@ -27681,7 +27698,7 @@ async function checkPostReviewCommits() {
27681
27698
  actions.push(`Deferred post-review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
27682
27699
  logDeaconEventSync(`checkPostReviewCommits: deferred review for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
27683
27700
  } else if (freshStatus?.reviewStatus === "pending") {
27684
- const { spawnReviewRoleForIssue } = await import("./review-agent-Rub0OpZc.js");
27701
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
27685
27702
  const branch = `feature/${issueId.toLowerCase()}`;
27686
27703
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
27687
27704
  issueId,
@@ -27781,7 +27798,7 @@ async function checkReadyForMergeStuck() {
27781
27798
  const testStatusGreenCiReconcileCooldowns = /* @__PURE__ */ new Map();
27782
27799
  const TEST_STATUS_GREEN_CI_RECONCILE_COOLDOWN_MS = 300 * 1e3;
27783
27800
  async function reconcileTestStatusFromGreenCi() {
27784
- const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-DRD2woO0.js");
27801
+ const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-Bwt9lK4A.js");
27785
27802
  return reconcileTestStatusFromGreenCiWithDeps({
27786
27803
  isGitHubAppConfigured,
27787
27804
  loadReviewStatuses,
@@ -27802,7 +27819,7 @@ async function reconcileTestStatusFromGreenCi() {
27802
27819
  */
27803
27820
  async function clearStaleCiFeedback(issueId) {
27804
27821
  const { readdir, rm } = await import("fs/promises");
27805
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
27822
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
27806
27823
  const projectConfig = resolveProjectFromIssueSync(issueId);
27807
27824
  if (!projectConfig) return;
27808
27825
  const repoDir = projectConfig.projectPath;
@@ -28102,7 +28119,7 @@ async function checkWorkspaceContainerHealth(sharedState) {
28102
28119
  }
28103
28120
  }
28104
28121
  try {
28105
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
28122
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
28106
28123
  const resolved = resolveProjectFromIssueSync(issueLower.toUpperCase());
28107
28124
  if (resolved) await killOrphanedWorkspaceProcesses(`${resolved.projectPath}/workspaces/feature-${issueLower}`);
28108
28125
  } catch {}
@@ -28151,8 +28168,8 @@ async function checkWorkspaceContainerHealth(sharedState) {
28151
28168
  async function checkMergedWorkSessions() {
28152
28169
  const actions = [];
28153
28170
  try {
28154
- const { selectMergedWorkSessions } = await import("./reap-terminal-sessions-D_xvy-Mk.js");
28155
- const { setAgentPaused } = await import("./agents-DCvyTXNU.js");
28171
+ const { selectMergedWorkSessions } = await import("./reap-terminal-sessions-DnDQ7pf9.js");
28172
+ const { setAgentPaused } = await import("./agents-CEcaxSkR.js");
28156
28173
  const toKill = selectMergedWorkSessions(loadReviewStatuses(), [...await Effect.runPromise(listSessionNames())]);
28157
28174
  for (const session of toKill) try {
28158
28175
  await Effect.runPromise(setAgentPaused(session, "merged — awaiting close-out (verify on main)", true));
@@ -28192,7 +28209,7 @@ const AWAITING_TEST_IDLE_REAP_MS = 600 * 1e3;
28192
28209
  async function checkAwaitingTestWorkSessions() {
28193
28210
  const actions = [];
28194
28211
  try {
28195
- const { selectAwaitingTestWorkSessions } = await import("./reap-terminal-sessions-D_xvy-Mk.js");
28212
+ const { selectAwaitingTestWorkSessions } = await import("./reap-terminal-sessions-DnDQ7pf9.js");
28196
28213
  const candidates = selectAwaitingTestWorkSessions(loadReviewStatuses(), [...await Effect.runPromise(listSessionNames())]);
28197
28214
  const now = Date.now();
28198
28215
  for (const session of candidates) {
@@ -28248,7 +28265,7 @@ async function runPatrol() {
28248
28265
  const stuckRemediationActions = await checkStuckAgentRemediation();
28249
28266
  actions.push(...stuckRemediationActions);
28250
28267
  for (const a of stuckRemediationActions) addLog("action", a, state.patrolCycle);
28251
- const { reconcileInFlightJournals } = await import("./advancing-selfheal-CSuZ31bB.js");
28268
+ const { reconcileInFlightJournals } = await import("./advancing-selfheal-DJYAvGv-.js");
28252
28269
  const reconciledJournalActions = await reconcileInFlightJournals();
28253
28270
  actions.push(...reconciledJournalActions);
28254
28271
  for (const a of reconciledJournalActions) addLog("action", a, state.patrolCycle);
@@ -28260,7 +28277,7 @@ async function runPatrol() {
28260
28277
  const age = Date.now() - (pending.timestamp ?? 0);
28261
28278
  if (age < 3600 * 1e3) {
28262
28279
  console.log(`[deacon] Processing pending post-merge lifecycle for ${pending.issueId} (age: ${Math.round(age / 1e3)}s)`);
28263
- const { postMergeLifecycle } = await import("./merge-agent-36wfYm2u.js");
28280
+ const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
28264
28281
  const { unlinkSync } = await import("fs");
28265
28282
  unlinkSync(pendingFile);
28266
28283
  await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
@@ -28305,7 +28322,7 @@ async function runPatrol() {
28305
28322
  actions.push(...suspendActions);
28306
28323
  for (const a of suspendActions) addLog("action", a, state.patrolCycle);
28307
28324
  try {
28308
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
28325
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
28309
28326
  const allStatuses = loadReviewStatuses();
28310
28327
  for (const [issueId, status] of Object.entries(allStatuses)) {
28311
28328
  if (!status.readyForMerge || status.mergeStatus === "merged") continue;
@@ -28325,7 +28342,7 @@ async function runPatrol() {
28325
28342
  } catch (err) {
28326
28343
  console.warn(`[deacon] Failed to check workspace existence: ${err.message}`);
28327
28344
  }
28328
- const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-CSuZ31bB.js");
28345
+ const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-DJYAvGv-.js");
28329
28346
  const reapedWorkActions = await checkMergedWorkSessions();
28330
28347
  actions.push(...reapedWorkActions);
28331
28348
  for (const a of reapedWorkActions) addLog("action", a, state.patrolCycle);
@@ -28333,7 +28350,7 @@ async function runPatrol() {
28333
28350
  actions.push(...reapedMergedAdvancingActions);
28334
28351
  for (const a of reapedMergedAdvancingActions) addLog("action", a, state.patrolCycle);
28335
28352
  try {
28336
- const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-BgkiSQmx.js");
28353
+ const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-PhXGGFQy.js");
28337
28354
  const remoteCredentialActions = await refreshClaudeCredentialsForActiveRemoteAgents();
28338
28355
  actions.push(...remoteCredentialActions);
28339
28356
  for (const a of remoteCredentialActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
@@ -28341,7 +28358,7 @@ async function runPatrol() {
28341
28358
  addLog("warn", `Remote credential refresh patrol failed: ${err.message}`, state.patrolCycle);
28342
28359
  }
28343
28360
  try {
28344
- const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-DlvbzO7m.js");
28361
+ const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-Cv-U-_V8.js");
28345
28362
  const heartbeatActions = await refreshHostHeartbeatForEphemeralVms();
28346
28363
  actions.push(...heartbeatActions);
28347
28364
  for (const a of heartbeatActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
@@ -28349,7 +28366,7 @@ async function runPatrol() {
28349
28366
  addLog("warn", `Remote heartbeat refresh patrol failed: ${err.message}`, state.patrolCycle);
28350
28367
  }
28351
28368
  try {
28352
- const { reapCompletedRemoteAgents } = await import("./remote-completion-BgkiSQmx.js");
28369
+ const { reapCompletedRemoteAgents } = await import("./remote-completion-PhXGGFQy.js");
28353
28370
  const remoteReap = await reapCompletedRemoteAgents();
28354
28371
  for (const r of remoteReap) if (r.status === "handed-off" || r.status === "error") {
28355
28372
  const msg = `Remote reap ${r.issueId}: ${r.status} (${r.details.join("; ")})`;
@@ -28484,7 +28501,10 @@ async function runPatrol() {
28484
28501
  for (const a of playwrightActions) addLog("action", a, state.patrolCycle);
28485
28502
  }
28486
28503
  const projectConfigs = listProjectsSync();
28487
- for (const { config: projectConfig } of projectConfigs) if (projectConfig.path) queueBeadsAutoCommit(projectConfig.path);
28504
+ for (const result of await reconcileProjectStatePlanes(projectConfigs)) {
28505
+ actions.push(result.message);
28506
+ addLog(result.level, result.message, state.patrolCycle);
28507
+ }
28488
28508
  for (const warning of await recreatedStateWarnings(projectConfigs)) addLog("error", warning, state.patrolCycle);
28489
28509
  const divergenceWarnings = await recordMainDivergenceHealth(state, projectConfigs);
28490
28510
  for (const warning of divergenceWarnings) addLog("warn", warning, state.patrolCycle);
@@ -28527,7 +28547,7 @@ async function runPatrol() {
28527
28547
  const issueId = runtimeState.currentIssue;
28528
28548
  try {
28529
28549
  if (getReviewStatusSync(issueId)?.mergeStatus === "merging") {
28530
- const { resolveProjectFromIssueSync } = await import("./projects-KJ94e50I.js");
28550
+ const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
28531
28551
  const resolved = resolveProjectFromIssueSync(issueId);
28532
28552
  if (resolved) {
28533
28553
  const branch = `feature/${issueId.toLowerCase()}`;
@@ -28541,7 +28561,7 @@ async function runPatrol() {
28541
28561
  mergeStatus: "merged",
28542
28562
  readyForMerge: false
28543
28563
  });
28544
- const { postMergeLifecycle } = await import("./merge-agent-36wfYm2u.js");
28564
+ const { postMergeLifecycle } = await import("./merge-agent-ejC7Wos8.js");
28545
28565
  postMergeLifecycle(issueId, resolved.projectPath).catch((err) => console.warn(`[deacon] postMergeLifecycle failed for ${issueId}: ${err}`));
28546
28566
  actions.push(`Auto-completed stale merge for ${issueId}`);
28547
28567
  } else {
@@ -28721,7 +28741,7 @@ function startDeacon() {
28721
28741
  logDeaconEventSync(`startDeacon: health monitor starting (patrol every ${config.patrolIntervalMs / 1e3}s)`);
28722
28742
  (async () => {
28723
28743
  await reconcileAgentLiveness();
28724
- const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-CSuZ31bB.js");
28744
+ const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-DJYAvGv-.js");
28725
28745
  await runBootAdvancingSelfHeal();
28726
28746
  runScheduledPatrol("startup");
28727
28747
  })().catch((err) => {
@@ -28793,4 +28813,4 @@ function assessDeaconPatrolFreshness(params) {
28793
28813
  //#endregion
28794
28814
  export { isPreKickoffLaunchDeath as $, reconcileAgentLiveness as A, stalledReviewConvoyRecoveryState as At, applyIssueBlocksMainLabel as B, getContainerHistory as Bt, getLastPatrolResult as C, isSynthesisForActiveReviewRun as Ct, isDeaconRunning as D, handleWorkCompleted as Dt, handleAgentStoppedForOrphanReviewerSessions as E, handleReviewCoordinatorDied as Et, setAgentStatusChangedNotifier as F, INSPECT_TIMEOUT_MS as Ft, applyIssueVetoedLabel as G, startSmeeProcessSync as Gt, applyIssueParkedLabel as H, getResourceConfig as Ht, setAgentStoppedNotifier as I, checkInspectAgentTimeouts as It, removeIssueParkedLabel as J, removeIssueBlocksMainLabel as K, setMergeReadyNotifier as L, classifyMemoryPressure as Lt, resetPatrolHeartbeatForStartup as M, contextOverflowRecoveryState as Mt, runPatrol as N, contextProactiveCompactState as Nt, loadConfig as O, recoverStalledReviewConvoys as Ot, saveState as P, stuckOverflowNativeRecoveryState as Pt, createInFlightGuard as Q, startDeacon as R, getResourceStacks as Rt, getDeaconStatus as S, checkStuckReviewing as St, handleAgentStoppedEvent as T, checkOrphanedReviewStatuses as Tt, applyIssueReadyLabel as U, getSystemHealthSnapshot as Ut, applyIssueObjectionLabel as V, getCurrentDockerStats as Vt, applyIssueReleasedLabel as W, isSmeeConfiguredSync as Wt, removeIssueReleasedLabel as X, removeIssueReadyLabel as Y, removeIssueVetoedLabel as Z, cleanupOrphanReviewerSessions as _, withConcurrencyLimit as _t, checkCompletedButUnsignaledTests as a, listBootReconciliationCandidates as at, containerRestartBackoffMs as b, synthesizeReviewFromReports as bt, checkMergedWorkSessions as c, checkFailedMergeRetry as ct, checkPostReviewCommits as d, reconcileClosedPrReadyForMerge as dt, isRapidPostResumeDeath as et, checkReadyForMergeStuck as f, reconcileFalseMerged as ft, cleanupAbandonedFeedback as g, reconcileStuckReadyForMerge as gt, checkWorkspaceContainerHealth as h, reconcileStaleMergeStatus as ht, checkAwaitingTestWorkSessions as i, isBootReconciliationCandidate as it, reconcileTestStatusFromGreenCi as j, checkApiErrorAgents as jt, loadState as k, reviewConvoyLiveness as kt, checkOrphanedCompletions as l, checkFirstCompletionAgents as lt, checkVerificationReviewContradiction as m, reconcileStaleMergeBlockers as mt, assessDeaconPatrolFreshness as n, nudgeStalledResumeWorkAgents as nt, checkDeadEndAgents as o, startBootReconciliation as ot, checkStuckWorkAgents as p, reconcileMergedButReviewing as pt, removeIssueObjectionLabel as q, checkAndSuspendIdleAgents as r, redeliverUndeliveredKickoffs as rt, checkMassDeath as s, autoCloseOut as st, applyBootReconciliationDecision as t, nudgeIdleWorkAgentsWithOpenBeads as tt, checkPendingTestDispatch as u, ciRetryMap as ut, cleanupOrphanedPlanningSessions as v, cleanupOrphanedReviewSessions as vt, handleAgentHeartbeatDeadEvent as w, checkMissingReviewStatuses as wt, getDeaconLogs as x, checkCompletedButUnsignaledReviews as xt, cleanupStaleAgentState as y, monitorReviewConvoySignals as yt, stopDeacon as z, formatUptime as zt };
28795
28815
 
28796
- //# sourceMappingURL=deacon-DrKDBeJL.js.map
28816
+ //# sourceMappingURL=deacon-DdARMjZq.js.map