@overdeck/desktop 0.49.2 → 0.50.0

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 (455) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +1 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-CHtDkHEL.js → acceptance-criteria-B_maCGZv.js} +2 -2
  4. package/server/{active-dashboard-bundle-Byh6sP-q.js → active-dashboard-bundle-CCqpFWiz.js} +2 -2
  5. package/server/{activity-logger-Ck8qoluj.js → activity-logger-B0X2JJwM.js} +1 -1
  6. package/server/{activity-logger-BWZhVphb.js → activity-logger-SlTXYCVf.js} +3 -3
  7. package/server/{advancing-selfheal-65W4yUQi.js → advancing-selfheal-BJAfiY-C.js} +11 -6
  8. package/server/{agent-gc-BNUudFnt.js → agent-gc-bhikjoJ_.js} +11 -11
  9. package/server/{agent-idle-ONBssBN_.js → agent-idle-D-UQ7gDv.js} +11 -11
  10. package/server/{agent-state-CM8iVw5B.js → agent-state-BrUPf_7Z.js} +1 -1
  11. package/server/{agent-state-BJhGIJZe.js → agent-state-FABw8neJ.js} +344 -402
  12. package/server/{agent-state-service-CzHfoqKQ.js → agent-state-service-BAQApt97.js} +1 -1
  13. package/server/{agent-state-service-CiIuwzIs.js → agent-state-service-rDenYSlD.js} +5 -5
  14. package/server/{agents-DpCuoF65.js → agents-DixZjXWm.js} +1 -1
  15. package/server/{agents-jXgqpHca.js → agents-DzpQidT8.js} +4 -4
  16. package/server/{archive-planning-CGkU6UeL.js → archive-planning-BL1ABtW0.js} +5 -5
  17. package/server/archive-planning-D3gw32U9.js +2 -0
  18. package/server/{artifact-index-jobs-Ck4NRRkY.js → artifact-index-jobs-Cjdme0jS.js} +2 -2
  19. package/server/{assemble-CyvEBmmq.js → assemble-B_JgnCbG.js} +2 -2
  20. package/server/{auto-spawn-consent-Dc4mtM-B.js → auto-spawn-consent-BesWchEi.js} +7 -7
  21. package/server/{backlog-auto-trigger-CCEpr4YT.js → backlog-auto-trigger-COLq639j.js} +3 -3
  22. package/server/{behavior-BiCQzqyT.js → behavior-DCg8CIWC.js} +3 -3
  23. package/server/{bridge-pool-patrol-Ce8rNPym.js → bridge-pool-patrol-BDohuMRt.js} +2 -2
  24. package/server/{briefing-freshness-e_OEYZEe.js → briefing-freshness-ENa_hW_V.js} +2 -2
  25. package/server/build-info-Dx2qrVhb.js +2 -0
  26. package/server/{build-info-BRw4QlYO.js → build-info-WuZT6xyi.js} +3 -3
  27. package/server/{checkpoint-manager-DOwRGFff.js → checkpoint-manager-CSZ7aVQF.js} +2 -2
  28. package/server/{checkpoint-manager-CKr42Usw.js → checkpoint-manager-DXhGRvg4.js} +1 -1
  29. package/server/checkpoint-worker.js +1 -1
  30. package/server/{checkpoints-Cszp_0Np.js → checkpoints-DUkUsPVS.js} +2 -2
  31. package/server/{checkpoints-Cb6CWT4S.js → checkpoints-tm_w6Y4V.js} +1 -1
  32. package/server/{claude-hooks-provision-C5JHpxTS.js → claude-hooks-provision-CTh9zxEi.js} +1 -1
  33. package/server/{claude-hooks-provision-Cer2eFfj.js → claude-hooks-provision-fRofvhTN.js} +2 -2
  34. package/server/{claude-permissions-Bc5kjX1q.js → claude-permissions-DLrb9ovz.js} +18 -3
  35. package/server/{claude-settings-overlay-m-VVZej1.js → claude-settings-overlay-BYnXaTVc.js} +2 -2
  36. package/server/{claude-settings-overlay-C7rWsnya.js → claude-settings-overlay-CMS5Jab5.js} +1 -1
  37. package/server/cli-BflmtEFM.js +2 -0
  38. package/server/{cli-BmczsfD6.js → cli-CoQou1t_.js} +11 -11
  39. package/server/{cliproxy-BpYpkogS.js → cliproxy-DXDQcR3I.js} +2 -2
  40. package/server/{cliproxy-_yUU0HRY.js → cliproxy-DdhFpcXU.js} +1 -1
  41. package/server/{close-issue-CxvRD0UI.js → close-issue-CpQ0BWg-.js} +5 -5
  42. package/server/{closed-issue-reaper-nMLRi5de.js → closed-issue-reaper-CdcJRvUx.js} +13 -13
  43. package/server/{closed-issue-reaper-omOcUDBl.js → closed-issue-reaper-TymtZM37.js} +1 -1
  44. package/server/{codex-DZhFfcWu.js → codex-BValsmtK.js} +1 -1
  45. package/server/{codex-KaSKE-R3.js → codex-DYyZL8JD.js} +6 -6
  46. package/server/{compaction-continuation-Bjfi70G-.js → compaction-continuation-CVjbdGKt.js} +3 -3
  47. package/server/{config-CH1AqqIQ.js → config-CvKH7r7W.js} +1 -1
  48. package/server/{config-ZGjvuR6J.js → config-NxI9Yl2f.js} +2 -2
  49. package/server/{config-Doq_tF-f.js → config-_qaa1UXH.js} +2 -2
  50. package/server/{config-yaml-D9nfpEx1.js → config-yaml-D60AnTIu.js} +24 -9
  51. package/server/{conflict-gate-D4XCtrm2.js → conflict-gate-0dD1kxjN.js} +1 -1
  52. package/server/{conflict-gate-DcUTY4Gb.js → conflict-gate-hAUCL-un.js} +5 -5
  53. package/server/{context-layers-BBTKP-Y4.js → context-layers-CdpabJj0.js} +3 -3
  54. package/server/{context-layers-BGj2Y9l3.js → context-layers-Ds1MnEFI.js} +2 -2
  55. package/server/{continue-i7Revg8D.js → continue-CnvrUfxw.js} +2 -2
  56. package/server/{control-settings-BMoDHY1G.js → control-settings-Db0uXgVM.js} +308 -5
  57. package/server/{conversation-compaction-D4VOmF7p.js → conversation-compaction-B-1KETG9.js} +8 -8
  58. package/server/{conversation-compaction-DzIjYMfg.js → conversation-compaction-DzMXGRiJ.js} +1 -1
  59. package/server/{conversation-service-CzZUJFEx.js → conversation-service-BL-asWPX.js} +1 -1
  60. package/server/{conversation-service-tQCIbBVZ.js → conversation-service-BxIOd5ay.js} +21 -7
  61. package/server/{conversations-bFDaD5YN.js → conversations-CEMfwMt-.js} +1 -1
  62. package/server/{conversations-C75EFFjf.js → conversations-nS6QgYpD.js} +5 -5
  63. package/server/cost-3FyqKK56.js +838 -0
  64. package/server/{cost-BCWEkvro.js → cost-Cctc-Q9M.js} +3 -3
  65. package/server/{cost-CiIwxH1D.js → cost-DTuIRE4y.js} +2 -2
  66. package/server/{cost-sync-DOkdE_yB.js → cost-sync-DfmvLT9L.js} +3 -3
  67. package/server/{dag-BPc74hwj.js → dag-o-dUpw1L.js} +2 -2
  68. package/server/{dangerous-git-ops-By9iguTP.js → dangerous-git-ops-BOtXCFkT.js} +1 -1
  69. package/server/dashboard-db-worker.js +61 -11
  70. package/server/{deacon-B24dNzr8.js → deacon-CsisLmPt.js} +125 -165
  71. package/server/{deacon-canonical-state-CkvxRPck.js → deacon-canonical-state-DkdkQS5p.js} +2 -2
  72. package/server/{deacon-CzSZMtb-.js → deacon-e6py3jkM.js} +3 -3
  73. package/server/{deacon-event-client-BYIQBu0T.js → deacon-event-client-BCjHiGAY.js} +1 -1
  74. package/server/{deacon-event-client-Do6Z2gKl.js → deacon-event-client-CMQswEHX.js} +2 -2
  75. package/server/{deacon-nudge-log-CzM9JA9t.js → deacon-nudge-log-pcliw8Dr.js} +1 -1
  76. package/server/{deacon-pending-lifecycle-BObEdT-L.js → deacon-pending-lifecycle-BzaE76Xo.js} +3 -3
  77. package/server/deacon.js +11 -11
  78. package/server/{dead-end-trip-CnVmjnya.js → dead-end-trip-Bs3hxIn6.js} +3 -3
  79. package/server/dead-end-trip-DUbiRMtT.js +2 -0
  80. package/server/{delivery-gyce0vQ7.js → delivery-DhZGRShH.js} +1 -1
  81. package/server/{deploy-patrol-CEwwEYDM.js → deploy-patrol-B8sKkA8h.js} +8 -8
  82. package/server/deploy-queue--smqHLhe.js +2 -0
  83. package/server/{deploy-queue-r96ojDI3.js → deploy-queue-CCGWXFkp.js} +2 -2
  84. package/server/{deploy-window-D_3hhfxt.js → deploy-window-YuJewzmC.js} +4 -4
  85. package/server/{deploy-window-DeJK8mTK.js → deploy-window-hgsvZ3UZ.js} +1 -1
  86. package/server/{dev-supervisor-DZWwpENk.js → dev-supervisor-4SBloJHV.js} +2 -2
  87. package/server/{devcontainer-renderer-d-9dCV_2.js → devcontainer-renderer-BiJhwFNi.js} +3 -3
  88. package/server/{dist-DsLAsFSh.js → dist-CoR2sivG.js} +1 -1
  89. package/server/dist-FHv1s5ez.js +3 -0
  90. package/server/{docker-B2mUBzGk.js → docker-CWO7dcIP.js} +3 -3
  91. package/server/{docker-CRPHBylA.js → docker-DQzyMXkd.js} +1 -1
  92. package/server/{dod-DWtilRLx.js → dod-BAk5arLF.js} +1 -1
  93. package/server/{done-preflight-BDVdWed5.js → done-preflight-CGFA0M1b.js} +1 -1
  94. package/server/{done-preflight-D4ukUf-S.js → done-preflight-Cx9JGznT.js} +5 -5
  95. package/server/{durable-review-pipeline-CaCbEJSt.js → durable-review-pipeline-BOEZ0chh.js} +1 -1
  96. package/server/{durable-review-pipeline-B3OS2_He.js → durable-review-pipeline-Djx_lvFd.js} +1 -1
  97. package/server/{ensure-devcontainer-rGSh0JHK.js → ensure-devcontainer-Dk6ZMOUC.js} +1 -1
  98. package/server/{ensure-devcontainer-BUeBRjmm.js → ensure-devcontainer-DzYBBwnM.js} +4 -4
  99. package/server/{esm-shims-oAaKIa-a.js → esm-shims-deFq5Hhl.js} +1 -1
  100. package/server/{event-store-Db4w4YIY.js → event-store-C50Qt-f1.js} +1 -1
  101. package/server/{event-store-BCSgMubf.js → event-store-DTns2XZP.js} +5 -5
  102. package/server/{event-store-provider-DlSQND3V.js → event-store-provider-Bu1Qrg6v.js} +1 -1
  103. package/server/{events-B6zioJA_.js → events-B6xW8Cpm.js} +3 -3
  104. package/server/{factory-BrdqXBeK.js → factory-CWVKwKFE.js} +4 -4
  105. package/server/{feature-registry-storage-zh3ZXW6f.js → feature-registry-storage-vaxRN3WO.js} +2 -2
  106. package/server/{features-BGntOWdy.js → features-DXWwktJB.js} +2 -2
  107. package/server/{feedback-stuck-retirement-DpA5u1kt.js → feedback-stuck-retirement-CXAYe2rU.js} +2 -2
  108. package/server/{feedback-target-Ddqk93NF.js → feedback-target-DSVpi0gT.js} +1 -1
  109. package/server/{feedback-target-D7GxdUYG.js → feedback-target-yPD_wclF.js} +10 -10
  110. package/server/{feedback-writer-CH2846DP.js → feedback-writer-BzN4qvaP.js} +1 -1
  111. package/server/{feedback-writer-C1gCLFmp.js → feedback-writer-Ds1Wjsz4.js} +5 -5
  112. package/server/{flywheel-HJt7QdWP.js → flywheel-BCZS-FlW.js} +1 -1
  113. package/server/{flywheel-v1cCOBx-.js → flywheel-CC4gE_rx.js} +15 -15
  114. package/server/{flywheel-CjW2L7BS.js → flywheel-DWKd7bMc.js} +16 -16
  115. package/server/{flywheel-merge-order-4fNRN2F2.js → flywheel-merge-order-DDT3i57u.js} +1 -1
  116. package/server/{flywheel-merge-order-D_yyAlND.js → flywheel-merge-order-DJwH2KpL.js} +17 -15
  117. package/server/forge-4VVCRcF7.js +2 -0
  118. package/server/{forge-RVTCK_5X.js → forge-CHADjOFs.js} +2 -2
  119. package/server/{from-BnLgKYvw.js → from-C3dzmjSO.js} +1 -1
  120. package/server/{fs-lock-C7J-ugIf.js → fs-lock-DQ_gUxfq.js} +2 -2
  121. package/server/{fts-operations-CU0B5WUx.js → fts-operations-asZo2fh1.js} +2 -2
  122. package/server/{git-info-BSrI9owC.js → git-info-DMOSfJ9I.js} +1 -1
  123. package/server/{git-utils-CsKV0Dis.js → git-utils-BAMwn9Nf.js} +1 -1
  124. package/server/{git-utils-DW8-jIUJ.js → git-utils-BdHk8y7g.js} +4 -4
  125. package/server/{github-app-Oi5hdn1n.js → github-app-BWziYCf3.js} +1 -1
  126. package/server/{github-app-7ywLhuZO.js → github-app-BlMSzSTw.js} +2 -2
  127. package/server/{github-client-Cy0fSj1a.js → github-client-OK24qpol.js} +1 -1
  128. package/server/{github-client-DAbuXLuk.js → github-client-w6j5nVlz.js} +2 -2
  129. package/server/{github-pr-lookup-Dhh3ec1V.js → github-pr-lookup-bGcsEvLE.js} +2 -2
  130. package/server/{harness-binary-tMmgJfC1.js → harness-binary-DChiynaB.js} +2 -2
  131. package/server/{harness-resolve-DusNpVEe.js → harness-resolve-BplBEbwn.js} +4 -4
  132. package/server/{health-events-BYDZ9n2i.js → health-events-BTqsmunw.js} +1 -1
  133. package/server/{health-events-DNw9Mzw9.js → health-events-Bk3LjaJ9.js} +2 -2
  134. package/server/{hooks-BjBjxqNh.js → hooks-DJR1yR9w.js} +2 -2
  135. package/server/{hooks-B4wj32l2.js → hooks-EndRNrx9.js} +1 -1
  136. package/server/{hume-BP9YbxaE.js → hume-1FJmNDTq.js} +2 -2
  137. package/server/hume-gXLmRhmN.js +3 -0
  138. package/server/{identity-C23uY8dZ.js → identity-C3s8lyp0.js} +3 -3
  139. package/server/{idle-stack-reaper-Bw0rU9GC.js → idle-stack-reaper-CBelVOE3.js} +1 -1
  140. package/server/{idle-stack-reaper-BSxb1bln.js → idle-stack-reaper-DtoI4al6.js} +4 -4
  141. package/server/{in-flight-guard-DuxabAHT.js → in-flight-guard-B7khcBdQ.js} +1 -1
  142. package/server/{infra-CHIvOb9q.js → infra-CJRi_5Wu.js} +10 -4
  143. package/server/{injection-BYUt8ml1.js → injection-ADWQ3D0s.js} +8 -8
  144. package/server/{injection-BviePcm3.js → injection-BWsgHvrL.js} +1 -1
  145. package/server/{inspect-agent-sV_19NxZ.js → inspect-agent-CCfNJjKr.js} +12 -12
  146. package/server/inspect-agent-Dhp3hCGp.js +2 -0
  147. package/server/{internal-token-BOtIRJU7.js → internal-token-BCTEqUCX.js} +1 -1
  148. package/server/{internal-token-DoVzb4b7.js → internal-token-BeIWG_kT.js} +2 -2
  149. package/server/{io-DKrWd3gX.js → io-BCtZoXHo.js} +4 -4
  150. package/server/{issue-closed-6RQsAjDX.js → issue-closed-CiYAa6bX.js} +7 -7
  151. package/server/{issue-lifecycle-D9nLErvS.js → issue-lifecycle-BETNVVLq.js} +25 -25
  152. package/server/{issue-lifecycle-DOPVv7xz.js → issue-lifecycle-DaKN57sx.js} +1 -1
  153. package/server/{issue-service-singleton-CvgNAWqK.js → issue-service-singleton-1Q0ER8Yc.js} +1 -1
  154. package/server/{issue-service-singleton-B2xy-IS9.js → issue-service-singleton-C_sZ0HjP.js} +10 -10
  155. package/server/{issue-title-fallback-DTSCQVu0.js → issue-title-fallback-B91iD66g.js} +3 -3
  156. package/server/{issues-e_Ck1Ln2.js → issues-RGHQUKhB.js} +2 -2
  157. package/server/{jsonl-parser-DqxVCZ1k.js → jsonl-parser-Dfs1dlYE.js} +3 -3
  158. package/server/{jsonl-resolver-07OS3qOr.js → jsonl-resolver-bFtftCDd.js} +8 -8
  159. package/server/{kimi-code-vtXl2DR5.js → kimi-code-BxkDgaj4.js} +1 -1
  160. package/server/{kimi-code-BjtAHIz1.js → kimi-code-CNYRA8Dd.js} +11 -11
  161. package/server/{kimi-parser-B1lgy2Vt.js → kimi-parser-OcWwmOqF.js} +2 -2
  162. package/server/{label-cleanup-D2zUMasf.js → label-cleanup-CefxK9tL.js} +3 -3
  163. package/server/{lifecycle-DaCovZwn.js → lifecycle-DDZ7w-BY.js} +6 -6
  164. package/server/{lifecycle-0NOEzomy.js → lifecycle-DVXyUil2.js} +2 -2
  165. package/server/{lifecycle-io-BBMTaP7S.js → lifecycle-io-D1oBiMce.js} +1 -1
  166. package/server/{lifecycle-io-6WL46dsB.js → lifecycle-io-D7N0vQNj.js} +5 -5
  167. package/server/{linear-client-7fQThJTc.js → linear-client-DUN7zCeb.js} +2 -2
  168. package/server/{linear-client-BTGApNLo.js → linear-client-TL32snOy.js} +1 -1
  169. package/server/{linear-mcp-auth-B8pYRsiU.js → linear-mcp-auth-CtRKSHy5.js} +1 -1
  170. package/server/{linear-mcp-auth-Nk5s3L9M.js → linear-mcp-auth-bB0CPyjh.js} +5 -5
  171. package/server/memory-fts-worker.js +1 -1
  172. package/server/{memory-governor-Cqvbusr4.js → memory-governor-Cvv_9K0M.js} +87 -21
  173. package/server/{memory-pressure-patrol-DPb8foam.js → memory-pressure-patrol-C6DJJQRA.js} +38 -14
  174. package/server/{merge-BB_bjJ9a.js → merge-DOCR6pHi.js} +1 -1
  175. package/server/{merge-FZ78_cEz.js → merge-FTk4LsnM.js} +3 -3
  176. package/server/{merge-agent-B3jRrlS1.js → merge-agent-C-dsN9se.js} +31 -31
  177. package/server/{merge-agent-BuoC_PRZ.js → merge-agent-D-4_iQgy.js} +2 -2
  178. package/server/{merge-batch-B8bVjFWS.js → merge-batch-BJjzUUL7.js} +1 -1
  179. package/server/{merge-completeness-DQt7Qa7i.js → merge-completeness-BOtBUwTU.js} +4 -4
  180. package/server/{merge-completeness-DkdabVch.js → merge-completeness-CoLJxfUY.js} +1 -1
  181. package/server/merge-eligibility-C4rTS97F.js +3 -0
  182. package/server/merge-eligibility-D7wRnJbj.js +51 -0
  183. package/server/merge-ops-Cf02szJ5.js +2 -0
  184. package/server/merge-rebase-Bj7eJAG4.js +2 -0
  185. package/server/{merge-rebase-qq40s91P.js → merge-rebase-KBw4rdh3.js} +2 -2
  186. package/server/{merge-set-BTNYvxM3.js → merge-set-CVfEM57p.js} +1 -1
  187. package/server/{merge-set-BmRRflt0.js → merge-set-CyW-xSn4.js} +4 -4
  188. package/server/{merge-sync-0m2Q087q.js → merge-sync-CYGsJy0u.js} +1 -1
  189. package/server/{merge-sync-CJpOa0cZ.js → merge-sync-YLvOPAry.js} +2 -2
  190. package/server/{merge-train-iwKqjtCF.js → merge-train-VxLn8Ms4.js} +4 -4
  191. package/server/{merge-train-deps-CH5Mr3vN.js → merge-train-deps-D0y4hBB9.js} +4 -4
  192. package/server/{merge-verification-JJc5GC2t.js → merge-verification-BfJRNMiD.js} +6 -6
  193. package/server/{merged-docker-cleanup-worker-BOqWA373.js → merged-docker-cleanup-worker-Bh5fKG_b.js} +3 -3
  194. package/server/{merged-docker-cleanup-worker-CrhTdxZV.js → merged-docker-cleanup-worker-Ci9oeFAe.js} +1 -1
  195. package/server/{messaging-nuwStbdQ.js → messaging-Dfbhgjd6.js} +1 -1
  196. package/server/{multipart-parser-DxuW_rZV.js → multipart-parser-BYwfKOVU.js} +2 -2
  197. package/server/{no-resume-mode-xuYLFhLw.js → no-resume-mode-DjMQRkId.js} +1 -1
  198. package/server/node_modules/.package-lock.json +18 -18
  199. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/package.json +2 -2
  200. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +4 -2
  201. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.d.ts.map +1 -1
  202. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js +12 -9
  203. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js.map +1 -1
  204. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js +1 -1
  205. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js.map +1 -1
  206. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +6 -6
  207. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeClusterSocket.ts +15 -12
  208. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocket.ts +1 -1
  209. package/server/node_modules/@types/node/README.md +1 -1
  210. package/server/node_modules/@types/node/buffer.buffer.d.ts +5 -5
  211. package/server/node_modules/@types/node/crypto.d.ts +2 -2
  212. package/server/node_modules/@types/node/http.d.ts +16 -0
  213. package/server/node_modules/@types/node/http2.d.ts +10 -2
  214. package/server/node_modules/@types/node/package.json +2 -2
  215. package/server/node_modules/@types/node/process.d.ts +52 -0
  216. package/server/node_modules/@types/node/quic.d.ts +210 -28
  217. package/server/node_modules/@types/node/sqlite.d.ts +6 -2
  218. package/server/node_modules/@types/node/test.d.ts +36 -0
  219. package/server/node_modules/effect/node_modules/uuid/README.md +19 -19
  220. package/server/node_modules/effect/node_modules/uuid/dist/v1.js +7 -3
  221. package/server/node_modules/effect/node_modules/uuid/dist/v7.js +5 -2
  222. package/server/node_modules/effect/node_modules/uuid/dist-node/v1.js +7 -3
  223. package/server/node_modules/effect/node_modules/uuid/dist-node/v7.js +5 -2
  224. package/server/node_modules/effect/node_modules/uuid/package.json +4 -3
  225. package/server/node_modules/msgpackr/dist/index-no-eval.cjs +11 -5
  226. package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
  227. package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
  228. package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
  229. package/server/node_modules/msgpackr/dist/index.js +11 -5
  230. package/server/node_modules/msgpackr/dist/index.js.map +1 -1
  231. package/server/node_modules/msgpackr/dist/index.min.js +1 -1
  232. package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
  233. package/server/node_modules/msgpackr/dist/node.cjs +11 -5
  234. package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
  235. package/server/node_modules/msgpackr/dist/test.js +11 -5
  236. package/server/node_modules/msgpackr/dist/test.js.map +1 -1
  237. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +11 -5
  238. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
  239. package/server/node_modules/msgpackr/package.json +1 -1
  240. package/server/node_modules/msgpackr/unpack.js +11 -5
  241. package/server/node_modules/picomatch/lib/parse.js +10 -1
  242. package/server/node_modules/picomatch/lib/scan.js +30 -18
  243. package/server/node_modules/picomatch/package.json +1 -1
  244. package/server/{orphan-proposed-reconciler-gf4TxfZb.js → orphan-proposed-reconciler-CnP0K2v3.js} +2 -2
  245. package/server/{orphan-proposed-reconciler-Dmk0kO_p.js → orphan-proposed-reconciler-nFUlquZt.js} +21 -21
  246. package/server/package-lock.json +19 -19
  247. package/server/package.json +1 -1
  248. package/server/{pan-dir-BMda7tQj.js → pan-dir-B4NfzOf3.js} +4 -4
  249. package/server/{parked-residue-BiHb8cD7.js → parked-residue-8WbU0y1z.js} +68 -64
  250. package/server/{paths-DEe9j-kw.js → paths-rETQhTF2.js} +2 -2
  251. package/server/{pending-lifecycle-claim-J5uIIJPu.js → pending-lifecycle-claim-yAwDuGS4.js} +1 -1
  252. package/server/{pickup-D1UbSDPd.js → pickup-Dle6k9Xt.js} +1 -1
  253. package/server/{pipeline-agent-reader-D-6okryb.js → pipeline-agent-reader-CeWhQzXC.js} +3 -3
  254. package/server/{pipeline-membership-PGX3Pe8V.js → pipeline-membership-BV4hdkHm.js} +1 -1
  255. package/server/{pipeline-membership-CCbgBzNC.js → pipeline-membership-C9ykcjsn.js} +1 -1
  256. package/server/{pipeline-membership-gather-BK4dzh0X.js → pipeline-membership-gather-Ba0wJNCR.js} +10 -10
  257. package/server/{pipeline-membership-gather-BRhU7XPx.js → pipeline-membership-gather-C9E22B2W.js} +1 -1
  258. package/server/{pipeline-notifier-DvHLaXKb.js → pipeline-notifier-B5DPXvnr.js} +1 -1
  259. package/server/{pipeline-notifier-BNAV9kpa.js → pipeline-notifier-p190L97e.js} +2 -2
  260. package/server/{post-merge-lifecycle-worker-DAWgzXQA.js → post-merge-lifecycle-worker-OQoK8Ckg.js} +2 -2
  261. package/server/{post-merge-state-DC2_0t12.js → post-merge-state-DFaf7OI1.js} +4 -4
  262. package/server/{prd-locations-BbAvqQmT.js → prd-locations-F2oLSAhy.js} +3 -3
  263. package/server/{project-pipelines-By_5WcT4.js → project-pipelines-CUsa6U59.js} +2 -2
  264. package/server/{project-repos-3bI6t4fO.js → project-repos-BVdi9-ch.js} +1 -1
  265. package/server/{project-repos--QeCg7yQ.js → project-repos-CsfvLtmr.js} +2 -2
  266. package/server/{project-resource-refresh-queue-x-K9mvpP.js → project-resource-refresh-queue-BehrH4Ai.js} +17 -17
  267. package/server/{project-resource-refresh-queue-BaZC79S3.js → project-resource-refresh-queue-D2110Guc.js} +1 -1
  268. package/server/{projects-LftaVK99.js → projects-BMuEf14J.js} +1 -1
  269. package/server/{prompts-BotGu-6W.js → prompts-CKpDt8Jn.js} +2 -2
  270. package/server/{providers-Dqgz3MY5.js → providers-Buv2wmFU.js} +1 -1
  271. package/server/{providers-BL1I66sM.js → providers-CxPKmyif.js} +7 -7
  272. package/server/public/assets/{chunk-BO2N2NFS-D5Fz5jND.js → chunk-BO2N2NFS-DZOQVqV1.js} +4 -4
  273. package/server/public/assets/{diagram-OG6HWLK6-Eux0gWFq.js → diagram-OG6HWLK6-oKeXcbO1.js} +1 -1
  274. package/server/public/assets/{dist-D-JX_u7m.js → dist-2qPmeRzT.js} +3 -3
  275. package/server/public/assets/{dist-C3zShwhA.js → dist-ClBlE-Nm.js} +1 -1
  276. package/server/public/assets/{ganttDiagram-6RSMTGT7-UH3aweia.js → ganttDiagram-6RSMTGT7-BwdG9fQv.js} +1 -1
  277. package/server/public/assets/{highlighted-body-OFNGDK62-ccIQ-WXS.js → highlighted-body-OFNGDK62-BzGNdskQ.js} +1 -1
  278. package/server/public/assets/index-CdPveU3M.css +1 -0
  279. package/server/public/assets/{index-BTVcdPve.js → index-Cg6tdZoY.js} +149 -149
  280. package/server/public/assets/{linear-Cnnu4YQy.js → linear-DpEt1TJb.js} +1 -1
  281. package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +1 -0
  282. package/server/public/assets/{pieDiagram-4H26LBE5-BD8-Tye6.js → pieDiagram-4H26LBE5-9BpM4oRJ.js} +1 -1
  283. package/server/public/assets/{prod-Ca6aKMts.js → prod-CzJiNNEG.js} +4 -4
  284. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BmSrVyFD.js → quadrantDiagram-W4KKPZXB-BXWVAoZx.js} +1 -1
  285. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CEGy8Das.js → sankeyDiagram-5OEKKPKP-5oxodGEw.js} +1 -1
  286. package/server/public/assets/{xychartDiagram-2RQKCTM6-VnQ8iY8s.js → xychartDiagram-2RQKCTM6-BChDrHxZ.js} +1 -1
  287. package/server/public/index.html +2 -2
  288. package/server/pull-requests-CmlandI7.js +2 -0
  289. package/server/{pull-requests-Cp_FDT8-.js → pull-requests-T0OV0Vn4.js} +3 -3
  290. package/server/{rally-bQpBzUNf.js → rally-CUqj2oIN.js} +3 -3
  291. package/server/rally-DYIn9R2U.js +3 -0
  292. package/server/{rally-api-CqAIJ8RX.js → rally-api-BFPb2oSq.js} +2 -2
  293. package/server/{rally-api-Ij1Zt0NI.js → rally-api-BoucQG1u.js} +1 -1
  294. package/server/{rally-client-qKbCNRVW.js → rally-client-16iObny7.js} +4 -4
  295. package/server/{rally-client-CN5vh4Ac.js → rally-client-CsqLjLLa.js} +1 -1
  296. package/server/{rebuild-stack-DrMyA_mA.js → rebuild-stack-BcBVFJp3.js} +2 -2
  297. package/server/{rebuild-stack-BNOMVh7C.js → rebuild-stack-CyXMrj6K.js} +6 -6
  298. package/server/reconciler-caYiRnPy.js +657 -0
  299. package/server/{reconstruct-cache-mxIYCnqs.js → reconstruct-cache-3JzPOune.js} +7 -7
  300. package/server/{record-Ug18Cp4V.js → record-DYOg97Iv.js} +1 -1
  301. package/server/{record-update-dBGxL9OC.js → record-update-BPqpBu3O.js} +5 -5
  302. package/server/{record-update-WyhsREoH.js → record-update-CDPEX7BH.js} +1 -1
  303. package/server/{recovery-trip-BKLrL6NX.js → recovery-trip-CpfW6LCJ.js} +3 -3
  304. package/server/{recovery-trip-wFAixKsg.js → recovery-trip-xqKC07Gy.js} +1 -1
  305. package/server/{release-engine-D9gaCBn9.js → release-engine-C_OOhCaK.js} +5 -5
  306. package/server/{release-set-DPHHzEGx.js → release-set-DOIDz2vw.js} +3 -3
  307. package/server/{remote-BUEeUic6.js → remote-BTh-sjpX.js} +3 -3
  308. package/server/{remote-agents-CSaTLi3u.js → remote-agents-DbbN7vSm.js} +6 -6
  309. package/server/{remote-agents-BVtASiOF.js → remote-agents-MuXx2gWm.js} +1 -1
  310. package/server/{remote-completion-CBV3b9TI.js → remote-completion-LcWCpAm2.js} +12 -12
  311. package/server/{remote-BU6ONLpv.js → remote-xY0B43Ho.js} +3 -3
  312. package/server/{resolver-gxv97jsQ.js → resolver-C2QKOf09.js} +2 -2
  313. package/server/{resolver-DvSMXty7.js → resolver-D4nsxfGo.js} +7 -7
  314. package/server/{resume-DvHuF-bm.js → resume-ByUrJUNX.js} +1 -1
  315. package/server/{review-agent-esZ0QXdY.js → review-agent-BRBTm1qE.js} +30 -30
  316. package/server/{review-agent-DgkUPRx0.js → review-agent-Caodi0PX.js} +2 -2
  317. package/server/{review-artifacts-DGGEobLp.js → review-artifacts-DgaDlbO4.js} +6 -6
  318. package/server/{review-convoy-liveness-DmO8dIBH.js → review-convoy-liveness-BBvyuRLC.js} +8 -8
  319. package/server/{review-run-recovery-DHiiw7d8.js → review-run-recovery-DCzWMMvE.js} +1 -1
  320. package/server/{review-run-recovery-Ct0q7FkE.js → review-run-recovery-THHMKlXJ.js} +2 -2
  321. package/server/{review-status-C_kQeeX0.js → review-status-Bge_3XTR.js} +1 -1
  322. package/server/{review-status-yOGD2MuK.js → review-status-DpniqzPT.js} +55 -45
  323. package/server/{review-status-emit-BZz1Y_22.js → review-status-emit-D7sM720S.js} +3 -3
  324. package/server/{review-status-enrichment-BWH0XW_m.js → review-status-enrichment-PDI4-faj.js} +3 -3
  325. package/server/{review-status-sync-2C9lk85r.js → review-status-sync-C6ZKTI8f.js} +11 -8
  326. package/server/{review-status-sync-Bq00Loey.js → review-status-sync-CvpHWyvR.js} +1 -1
  327. package/server/{review-verdict-feedback-CE_tr2iQ.js → review-verdict-feedback-B2ojHFH5.js} +7 -7
  328. package/server/{review-verdict-feedback-Brjaxoda.js → review-verdict-feedback-tyMoLT2L.js} +1 -1
  329. package/server/{review-verdict-writer-Ca2V7QSY.js → review-verdict-writer-Cy_1pnIj.js} +7 -7
  330. package/server/{review-verdict-writer-CD-4kDVx.js → review-verdict-writer-DjrJ64eS.js} +1 -1
  331. package/server/{rollup--g9ik1XQ.js → rollup-Cp0KEoOu.js} +1 -1
  332. package/server/{rollup-B6g9Nr6L.js → rollup-DU3xBQu2.js} +8 -8
  333. package/server/{scanner-YxIv-fG1.js → scanner-BFKG3Gxv.js} +7 -7
  334. package/server/{search-DqMN4__-.js → search-DhtKwbBC.js} +2 -2
  335. package/server/{sequence-io--b3_PsWq.js → sequence-io-C-Q19Jez.js} +4 -4
  336. package/server/{sequencer-agent-CqouKVZG.js → sequencer-agent-eN2P2lDz.js} +6 -6
  337. package/server/server.js +585 -282
  338. package/server/{service-CEp-3iow.js → service-CThO0Sar.js} +77 -772
  339. package/server/{session-fork-GtoeCh2H.js → session-fork-ZYTHtpBh.js} +2 -2
  340. package/server/settings-ByDRfuuE.js +2 -0
  341. package/server/{settings-CLQcdkoD.js → settings-CTywpFw5.js} +2 -2
  342. package/server/{settings-Ch2pCVtt.js → settings-nAT-eK56.js} +3 -3
  343. package/server/{shadow-engineering-BxiFrIKv.js → shadow-engineering-BHZKPJhq.js} +2 -2
  344. package/server/{shadow-state-CSA1vtxr.js → shadow-state-BTLi4Axs.js} +2 -2
  345. package/server/{shadow-state-nGhCNXT2.js → shadow-state-CZ_LnPsi.js} +1 -1
  346. package/server/{shadow-utils-7q5QDmMj.js → shadow-utils-CPLlPHdn.js} +2 -2
  347. package/server/{ship-log-ie0A_SqV.js → ship-log-D-CphNZx.js} +1 -1
  348. package/server/{ship-record-BM3oVvnL.js → ship-record-BaBla0l_.js} +5 -5
  349. package/server/{ship-record-DHWH1hLz.js → ship-record-BlvX8-xv.js} +1 -1
  350. package/server/{ship-status-BEkddXMT.js → ship-status-rQbPQBsF.js} +2 -2
  351. package/server/{smart-compaction-BkzjVpWL.js → smart-compaction-CUXn8mfX.js} +1 -1
  352. package/server/{smart-compaction-D0TE1lBD.js → smart-compaction-D1CNGdZx.js} +7 -7
  353. package/server/{spawn-planning-session-CkGweSCC.js → spawn-planning-session-DCmO6COk.js} +17 -17
  354. package/server/{spawn-planning-session-s406rw1N.js → spawn-planning-session-DfEWyrVV.js} +2 -2
  355. package/server/{specialist-completion-CTAjwH5j.js → specialist-completion-BMv3K54P.js} +1 -1
  356. package/server/{specialist-context-CKasRfYu.js → specialist-context-C1-CfYQb.js} +5 -5
  357. package/server/{specialist-handoff-logger-DrjrOmmn.js → specialist-handoff-logger-BDKoz5Z9.js} +2 -2
  358. package/server/{specialist-logs-Du6quZ0_.js → specialist-logs-BJQFkpdG.js} +3 -3
  359. package/server/{specialists-x-kPMhrL.js → specialists-CYt1U3Zm.js} +2 -2
  360. package/server/{specialists-CuDWiNdB.js → specialists-D6MUU31Q.js} +19 -19
  361. package/server/{specialists-b0dMMjWq.js → specialists-DhS79T9v.js} +333 -118
  362. package/server/{specialists-B-4zyE4Y.js → specialists-Dx0zRTxX.js} +1 -1
  363. package/server/{specialists-registry-1y6Rt_F1.js → specialists-registry-BRLCi61y.js} +1 -1
  364. package/server/{specialists-registry-BYjs04iK.js → specialists-registry-Bng0OFGH.js} +2 -2
  365. package/server/specs-oRGyfz6C.js +3 -0
  366. package/server/{src-CZsPs61V.js → src-C7gGe4KU.js} +6 -6
  367. package/server/{src-CY2Wl8IX.js → src-CdwN6WY6.js} +8 -2
  368. package/server/{src-DeQwpuh6.js → src-DMosbuSJ.js} +3 -3
  369. package/server/{stack-health-BQFSJc0l.js → stack-health-BKfNaqMm.js} +3 -3
  370. package/server/{stack-health-ypIKtkbE.js → stack-health-Bz711z1Y.js} +1 -1
  371. package/server/{stale-task-claims-C2e1zdMT.js → stale-task-claims-DMRLb5R2.js} +5 -5
  372. package/server/{staleness-Fzx_3_Hr.js → staleness-CxZaIhrn.js} +1 -1
  373. package/server/{staleness-CRDK6LFG.js → staleness-r_dkMyMG.js} +1 -1
  374. package/server/{stall-sweeper-QNk4h9m6.js → stall-sweeper-CBWqSWV2.js} +8 -8
  375. package/server/{state-home-DdG8erBI.js → state-home-DhsMqg8W.js} +2 -2
  376. package/server/{state-migrate-C6H3jfHE.js → state-migrate-C2Ouyd6e.js} +6 -6
  377. package/server/{state-mirror-DF4Lfxm0.js → state-mirror-BPXciz84.js} +3 -3
  378. package/server/{stuck-remediation-BVNd9txd.js → stuck-remediation-DALieAkx.js} +1 -1
  379. package/server/{stuck-remediation-BDa_tXgB.js → stuck-remediation-kta3KN7c.js} +13 -13
  380. package/server/{substrate-bug-weights-service-BbbCZEtJ.js → substrate-bug-weights-service-D_ICP7TI.js} +3 -3
  381. package/server/{summary-fork-DIQmtOuV.js → summary-fork-CojrFKb6.js} +2 -2
  382. package/server/{summary-fork-BvcW6bq0.js → summary-fork-DhhaFhxZ.js} +10 -10
  383. package/server/supervisor-DSSWo4M2.js +2 -0
  384. package/server/{supervisor-D3jC2c7A.js → supervisor-DqH-laVL.js} +4 -4
  385. package/server/{swarm-readiness-CMWAQuWM.js → swarm-readiness-LF8ZF_hc.js} +3 -3
  386. package/server/{synthesis-verdict-DVlrLF9A.js → synthesis-verdict-CGFF8uQI.js} +2 -2
  387. package/server/{synthesis-verdict-C-pJOPsn.js → synthesis-verdict-DSoOFUIV.js} +1 -1
  388. package/server/{system-prerequisites-QKtIYXI2.js → system-prerequisites-Lsx0jUUV.js} +2 -2
  389. package/server/{teardown-workspace-cJea1OLo.js → teardown-workspace-DMwomEG1.js} +16 -16
  390. package/server/{test-agent-queue-C5DI_gWX.js → test-agent-queue-Cu0D6BYe.js} +6 -6
  391. package/server/{test-verdict-C7kmd2_Y.js → test-verdict-9mvl7pQn.js} +1 -1
  392. package/server/{test-verdict-DUbDHqeD.js → test-verdict-oNSv1rVr.js} +2 -2
  393. package/server/{tldr-daemon-BNQHwblU.js → tldr-daemon-CRSAkhBx.js} +1 -1
  394. package/server/{tldr-daemon-CO08YlfQ.js → tldr-daemon-McqCk2X7.js} +2 -2
  395. package/server/{tmux-B8zsqD_6.js → tmux-CYucGrTl.js} +2 -2
  396. package/server/{tmux-DWEc4Ld9.js → tmux-wnT_hg-s.js} +2 -2
  397. package/server/{token-Bez-qCB2.js → token-BdfZLRg1.js} +1 -1
  398. package/server/{tracker-config-CJzPhSHv.js → tracker-config-tfAOWgng.js} +2 -2
  399. package/server/{tracker-utils-DJAOAuMN.js → tracker-utils-Dbg_pVZg.js} +2 -2
  400. package/server/{traefik-connect-D3H5I6b9.js → traefik-connect-DoQvQ6oJ.js} +1 -1
  401. package/server/{tunnel-BSdKnW0U.js → tunnel-B1MNIgkL.js} +1 -1
  402. package/server/{tunnel-Cr3ctqxp.js → tunnel-skW68j9B.js} +3 -3
  403. package/server/{types-fzBp9cYi.js → types-PW4zkxCM.js} +1 -1
  404. package/server/{uat-failure-feedback-IZQ-J8jt.js → uat-failure-feedback-ly8ZwtfC.js} +5 -5
  405. package/server/{uat-promote-verification-DXApKcc2.js → uat-promote-verification-BBaMwfdc.js} +5 -5
  406. package/server/{uat-train-IIZlz7r3.js → uat-train-BBEiYSep.js} +0 -0
  407. package/server/{uat-train-CycEzpbE.js → uat-train-D7Ran2FB.js} +1 -1
  408. package/server/{validate-Ur4xH5bN.js → validate-BYcBcBwg.js} +3 -3
  409. package/server/{validation-Dr6V4PXx.js → validation-BfG2jW5C.js} +4 -4
  410. package/server/{validation-CHovCoTT.js → validation-nSrYiYvA.js} +1 -1
  411. package/server/{verification-artifact-D3viYe_t.js → verification-artifact-Cmhgq4b_.js} +1 -1
  412. package/server/{verification-artifact-k5Ftpg0c.js → verification-artifact-DglwaHke.js} +1 -1
  413. package/server/{verification-runner-Dl13mmsI.js → verification-runner-BEq5ZF-h.js} +16 -16
  414. package/server/{verification-runner-BuqGwm2t.js → verification-runner-CFjAuv9u.js} +1 -1
  415. package/server/{vtt-parser-BSnAB-Og.js → vtt-parser-Va--tv27.js} +1 -1
  416. package/server/{work-agent-prompt-CJJ4tXci.js → work-agent-prompt-BnhKNAg7.js} +1 -1
  417. package/server/{work-agent-prompt-CioeOuM4.js → work-agent-prompt-CaD2ue8m.js} +10 -10
  418. package/server/{work-agent-start-B65Gqn9N.js → work-agent-start-0nJ-6UeA.js} +2 -2
  419. package/server/{work-agent-start-Ct1HVh6z.js → work-agent-start-D8NEN5KD.js} +1 -1
  420. package/server/workflows-BtHRlFIm.js +2 -0
  421. package/server/{workflows-AgFul1xc.js → workflows-C7mxM1qc.js} +28 -28
  422. package/server/{workspace-Cy4sDd3q.js → workspace-BAhMgMaO.js} +3 -3
  423. package/server/{workspace-Cu3XlMXt.js → workspace-Dbqv9ehn.js} +1 -1
  424. package/server/{workspace-anchor-drift-CMaqvizr.js → workspace-anchor-drift-B_3kyyxJ.js} +4 -4
  425. package/server/{workspace-anchor-drift-BI0Hz6zI.js → workspace-anchor-drift-Bpa3xoni.js} +1 -1
  426. package/server/{workspace-config-DRYDO7Zr.js → workspace-config-D-bNq2CF.js} +1 -1
  427. package/server/{workspace-manager-jfkKAEuO.js → workspace-manager-BrbX90Rm.js} +1 -1
  428. package/server/{workspace-manager-CgovxDrO.js → workspace-manager-CM8RCrSc.js} +16 -16
  429. package/server/{workspace-metadata-BDqXzGGK.js → workspace-metadata-BEOwJSdK.js} +1 -1
  430. package/server/{workspace-metadata-BNzODIv6.js → workspace-metadata-Cu6yfxBS.js} +2 -2
  431. package/server/{workspaces-BJdPqx_J.js → workspaces-C7LAuZfe.js} +123 -696
  432. package/sync-sources/rules/agent-message-delivery.md +21 -14
  433. package/sync-sources/rules/pan-handoff-focus-limit.md +3 -1
  434. package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +94 -46
  435. package/sync-sources/skills/pan-handoff/SKILL.md +13 -2
  436. package/server/archive-planning-BW4MKNI7.js +0 -2
  437. package/server/build-info-Bj2vQEMh.js +0 -2
  438. package/server/cli-BRuzUT_I.js +0 -2
  439. package/server/dead-end-trip-6V_CwveT.js +0 -2
  440. package/server/deploy-queue-CjLErpgw.js +0 -2
  441. package/server/dist-fCA6y2bH.js +0 -3
  442. package/server/forge-bvak6vXJ.js +0 -2
  443. package/server/hume-TYTb6fDU.js +0 -3
  444. package/server/inspect-agent-JFEaYTRa.js +0 -2
  445. package/server/merge-ops-DabXHp2i.js +0 -2
  446. package/server/merge-rebase-CXq0qsgR.js +0 -2
  447. package/server/public/assets/index-2wV4ipy_.css +0 -1
  448. package/server/public/assets/mermaid-GHXKKRXX-Bjto8iJh.js +0 -1
  449. package/server/pull-requests-jVGcVq5G.js +0 -2
  450. package/server/rally-CxhVgIQ6.js +0 -3
  451. package/server/settings-DhtPDmmI.js +0 -2
  452. package/server/specs-IYsFlM-L.js +0 -3
  453. package/server/supervisor-v0cYN2Vp.js +0 -2
  454. package/server/workflows-CfHm8lVd.js +0 -2
  455. package/sync-sources/skills/pan-gauntlet-loop/references/lessons.md +0 -60
@@ -1,53 +1,53 @@
1
- import { E as init_tier_table, It as isStatePlaneOnlyStatus, J as getProjectConfigFromWorkspacePath, K as getIssueRecordPathForWorkspace, Mt as init_state_plane, O as resolveTieredExecutionEnabled, On as resolveProjectFromIssueSync, Ot as reconcileStatePlaneDrift, Ri as init_paths, Tt as init_auto_commit, Ui as sessionFilePath, Y as init_record, Yn as parseIssueIdSync, Zr as FsError, _n as listProjectsAsync, ci as init_errors, et as readIssueRecordForWorkspaceSync, fn as init_projects, gn as listProjects, jt as getMainDivergence, li as AGENTS_DIR, on as getProjectSync, p as loadConfigSync, qn as init_issue_id, rt as resolveProjectForIssue, t as init_config_yaml, tt as readIssueRecordSync, vi as OVERDECK_HOME, vn as listProjectsSync } from "./config-yaml-D9nfpEx1.js";
2
- import { m as loadConfig$1, p as init_config } from "./config-ZGjvuR6J.js";
3
- import { i as emitActivityEntryOnce, l as init_activity_logger, o as emitActivityEntrySync, s as emitActivityTtsSync } from "./activity-logger-BWZhVphb.js";
4
- import { a as recordLockPath, i as readOwner, n as init_fs_lock } from "./fs-lock-C7J-ugIf.js";
5
- import { a as updateIssueRecord, i as init_record_update, n as clearRecordPipelineClosedOut, o as updateIssueRecordForWorkspace } from "./record-update-dBGxL9OC.js";
6
- import { B as sendKeys, C as init_tmux, E as killSession, I as querySessionSync, M as listSessionNamesSync, N as listSessions, T as isPaneDead, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, j as listSessionNames, k as listPaneValues, r as capturePane, v as getManagedTmuxSocketName } from "./tmux-DWEc4Ld9.js";
7
- import { _ as logDeaconEventSync, c as init_agents, d as removeAgentRecordSync, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync, u as listAllAgentsSync } from "./agents-jXgqpHca.js";
8
- import { $ as deliverCommitForReview, $n as isTerminalSwarmSlotAgent, A as saveAgentStateSync, Ai as getAgentRuntimeSnapshot, Bn as countRunningAgents, Cn as init_state_dir_removal, Cr as paneShowsCodexAuthBurn, Dr as init_spawn_prep, En as removeAgentStateDir, Er as defaultRunWorkspace, Fr as init_resolve_tier, Ft as resumeAgent, Gn as init_concurrency, Hn as describeRunningAgents, Ht as init_messaging, Ir as resolveTier, Jn as resetPatrolDispatchBudget, K as saveAgentRuntimeState, Kn as releaseAdvancingSlot, Kr as hasAgentRuntimeInSubtree, M as setAgentPausedSync, N as setAgentYieldedSync, O as resetAgentFailureCount, Qn as init_swarm_slot_lifecycle, Sr as isCodexAuthRouted, T as recordAgentFailure, Ut as messageAgent, Vn as countRunningSwarmSlotsForIssue, Vt as isContextOverflowTail, W as getAgentRuntimeStateSync, Wn as getConcurrencyLimits, Xn as tryReserveSwarmSlot, Yn as tryReserveAdvancingSlot, Zn as workResumeSlotsAvailable, _ as init_agent_state, _i as buildResumeContinueMessage, _n as listAgentStates, _t as init_pending_decision_gate, an as init_spawn, at as broadcastCommit, cn as ensureRegisteredSlotWorktree, d as decideResumeGate, dt as reconcileSlotState, er as getCachedMemoryVerdict, et as init_tier_supervisor, f as getAgentDir, fn as init_termination, g as getAgentStateSync, gt as detectPendingOperatorDecision, it as supervisorAgentId, ji as init_agent_runtime, k as saveAgentState, l as clearAgentTroubledSync, ln as init_registered_slot_spawn, lt as init_slot_reconcile, m as getAgentState, mr as init_transcript_landing, nt as shouldSupervise, ot as init_tier_feed, p as getAgentResumeGateBlockReason, pn as stopAgent, pr as captureTranscriptUserRecordSnapshot, q as init_agents$1, qn as releaseSwarmSlot, qr as init_runtime_command, rt as spawnTierSupervisor, sn as spawnRun, sr as deliverInitialPromptWithRetry, tr as init_memory_verdict_cache, tt as loadPrdDraft, u as clearYieldForResumeSync, ut as listSlotAssignments, vn as listRunningAgents, x as markAgentRunningState, xn as RETAINED_TRANSCRIPTS_MARKER, xr as init_codex_auth, yn as listRunningAgentsSync, yr as applyCodexAuthBurnFlag, zt as init_context_overflow } from "./agent-state-BJhGIJZe.js";
9
- import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DoVzb4b7.js";
10
- import { A as init_conversations, M as listArchivedConversations, P as listConversations } from "./conversations-C75EFFjf.js";
11
- import { O as stampBootReconciliation, _ as setBootReconciliationGrace, c as init_control_settings, d as isDeaconGloballyPausedSync, g as setBootReconciliationDecision, o as getLastCleanShutdownAt, r as getBootReconciliationState, u as isDeaconGloballyPaused } from "./control-settings-BMoDHY1G.js";
1
+ import { E as init_tier_table, It as isStatePlaneOnlyStatus, J as getProjectConfigFromWorkspacePath, K as getIssueRecordPathForWorkspace, Mt as init_state_plane, O as resolveTieredExecutionEnabled, On as resolveProjectFromIssueSync, Ot as reconcileStatePlaneDrift, Qr as FsError, Tt as init_auto_commit, Wi as sessionFilePath, Y as init_record, Yn as parseIssueIdSync, _n as listProjectsAsync, et as readIssueRecordForWorkspaceSync, fn as init_projects, gn as listProjects, jt as getMainDivergence, li as init_errors, on as getProjectSync, p as loadConfigSync, qn as init_issue_id, rt as resolveProjectForIssue, t as init_config_yaml, tt as readIssueRecordSync, ui as AGENTS_DIR, vn as listProjectsSync, yi as OVERDECK_HOME, zi as init_paths } from "./config-yaml-D60AnTIu.js";
2
+ import { m as loadConfig$1, p as init_config } from "./config-NxI9Yl2f.js";
3
+ import { i as emitActivityEntryOnce, l as init_activity_logger, o as emitActivityEntrySync, s as emitActivityTtsSync } from "./activity-logger-SlTXYCVf.js";
4
+ import { a as recordLockPath, i as readOwner, n as init_fs_lock } from "./fs-lock-DQ_gUxfq.js";
5
+ import { a as updateIssueRecord, i as init_record_update, n as clearRecordPipelineClosedOut, o as updateIssueRecordForWorkspace } from "./record-update-BPqpBu3O.js";
6
+ import { B as sendKeys, C as init_tmux, E as killSession, I as querySessionSync, M as listSessionNamesSync, N as listSessions, T as isPaneDead, U as sessionExists, V as sendKeysAsync, W as sessionExistsSync, j as listSessionNames, k as listPaneValues, r as capturePane, v as getManagedTmuxSocketName } from "./tmux-wnT_hg-s.js";
7
+ import { _ as logDeaconEventSync, c as init_agents, d as removeAgentRecordSync, g as logAgentLifecycleSync, h as init_persistent_logger, m as isTerminalIssueStage, p as getIssueStageSync, u as listAllAgentsSync } from "./agents-DzpQidT8.js";
8
+ import { O as stampBootReconciliation, _ as setBootReconciliationGrace, c as init_control_settings, d as isDeaconGloballyPausedSync, g as setBootReconciliationDecision, o as getLastCleanShutdownAt, r as getBootReconciliationState, u as isDeaconGloballyPaused } from "./control-settings-Db0uXgVM.js";
9
+ import { $ as deliverCommitForReview, $n as isTerminalSwarmSlotAgent, A as saveAgentStateSync, Ai as getAgentRuntimeSnapshot, Bn as countRunningAgents, Cn as init_state_dir_removal, Cr as paneShowsCodexAuthBurn, Dr as init_spawn_prep, En as removeAgentStateDir, Er as defaultRunWorkspace, Fr as init_resolve_tier, Ft as resumeAgent, Gn as init_concurrency, Hn as describeRunningAgents, Ht as init_messaging, Ir as resolveTier, Jn as resetPatrolDispatchBudget, K as saveAgentRuntimeState, Kn as releaseAdvancingSlot, Kr as hasAgentRuntimeInSubtree, M as setAgentPausedSync, N as setAgentYieldedSync, O as resetAgentFailureCount, Qn as init_swarm_slot_lifecycle, Sr as isCodexAuthRouted, T as recordAgentFailure, Ut as messageAgent, Vn as countRunningSwarmSlotsForIssue, Vt as isContextOverflowTail, W as getAgentRuntimeStateSync, Wn as getConcurrencyLimits, Xn as tryReserveSwarmSlot, Yn as tryReserveAdvancingSlot, Zn as workResumeSlotsAvailable, _ as init_agent_state, _i as buildResumeContinueMessage, _n as listAgentStates, _t as init_pending_decision_gate, an as init_spawn, at as broadcastCommit, cn as ensureRegisteredSlotWorktree, d as decideResumeGate, dt as reconcileSlotState, er as getCachedMemoryVerdict, et as init_tier_supervisor, f as getAgentDir, fn as init_termination, g as getAgentStateSync, gt as detectPendingOperatorDecision, it as supervisorAgentId, ji as init_agent_runtime, k as saveAgentState, l as clearAgentTroubledSync, ln as init_registered_slot_spawn, lt as init_slot_reconcile, m as getAgentState, mr as init_transcript_landing, nt as shouldSupervise, ot as init_tier_feed, p as getAgentResumeGateBlockReason, pn as stopAgent, pr as captureTranscriptUserRecordSnapshot, q as init_agents$1, qn as releaseSwarmSlot, qr as init_runtime_command, rt as spawnTierSupervisor, sn as spawnRun, sr as deliverInitialPromptWithRetry, tr as init_memory_verdict_cache, tt as loadPrdDraft, u as clearYieldForResumeSync, ut as listSlotAssignments, vn as listRunningAgents, x as markAgentRunningState, xn as RETAINED_TRANSCRIPTS_MARKER, xr as init_codex_auth, yn as listRunningAgentsSync, yr as applyCodexAuthBurnFlag, zt as init_context_overflow } from "./agent-state-FABw8neJ.js";
10
+ import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-BeIWG_kT.js";
11
+ import { A as init_conversations, M as listArchivedConversations, P as listConversations } from "./conversations-nS6QgYpD.js";
12
12
  import { d as PENDING_PROMOTION_FILENAME, f as WORKSPACE_RUNTIME_DIRNAME, m as init_types } from "./types-pLpbsNto.js";
13
- import { C as init_specs, S as findSpecByIssue, b as subItemsOf, f as readPlanSync, h as readWorkspacePlanSync, i as findPlanSync, n as applyStatusOverrides, o as findWorkspaceDraftPlanSync, s as init_io, y as init_types$1 } from "./io-DKrWd3gX.js";
14
- import { a as getDispatchableItems, c as init_dag } from "./dag-BPc74hwj.js";
15
- import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-Doq_tF-f.js";
16
- import { a as init_state_home, o as inspectLegacyStatePaths } from "./state-home-DdG8erBI.js";
17
- import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, u as resolveSlotWorkspaceWorktreesSync } from "./project-repos--QeCg7yQ.js";
18
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-CMWAQuWM.js";
19
- import { l as init_review_status_sync, u as markWorkspaceStuck } from "./review-status-sync-2C9lk85r.js";
20
- import { B as needsReviewDispatch, G as findBlockingFindings, J as findWorkspaceVerdictConflicts, K as init_review_findings, Q as readWorkspaceVerdictFallback, Y as init_review_status_record_sync, d as getReviewStatusSync, h as loadReviewStatuses, p as init_review_status, q as drainWorkspaceVerdictFallback, w as setReviewStatusSync, z as init_review_dispatch_decision } from "./review-status-yOGD2MuK.js";
21
- import { d as init_review_verdict_report, f as parseVerdictReport, l as findVerdictReport, u as findVerdictReportAsync } from "./synthesis-verdict-DVlrLF9A.js";
22
- import { t as assessMemoryPressure } from "./memory-governor-Cqvbusr4.js";
23
- import { r as isAgentIdleForNudge, t as getAgentEffectiveLastActivityMs } from "./agent-idle-ONBssBN_.js";
24
- import { n as pruneTerminalStoppedAgents, r as pidsWithCwdUnder } from "./agent-gc-BNUudFnt.js";
25
- import { t as recordDeaconNudge } from "./deacon-nudge-log-CzM9JA9t.js";
26
- import { a as readLiveTrackerIssueState, n as init_issue_closed, r as isIssueClosed } from "./issue-closed-6RQsAjDX.js";
27
- import { t as getAutoCloseOutCanonicalState } from "./deacon-canonical-state-CkvxRPck.js";
28
- import { a as checkFailedMergeRetry, c as ciRetryMap, d as reconcileMergedButReviewing, f as reconcileStaleMergeBlockers, g as reconcileStuckMergingStates, h as reconcileAutoMergeRows, i as autoCloseOut, l as reconcileClosedPrReadyForMerge, m as reconcileStuckReadyForMerge, n as reconcileTerminalIssueResidue, o as checkFirstCompletionAgents, p as reconcileStaleMergeStatus, r as listIssueRecords, s as checkReadyForMergeStuck$1, u as reconcileFalseMerged } from "./parked-residue-BiHb8cD7.js";
29
- import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-C1gCLFmp.js";
30
- import { r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-D7GxdUYG.js";
31
- import { t as recordReviewVerdict } from "./review-verdict-writer-Ca2V7QSY.js";
32
- import { a as observeActiveReviewArtifact, i as convergeRowFromVerdictOfRecord, n as reviewTimestampMs, r as REVIEW_SUB_ROLES, t as evaluateReviewConvoyLiveness } from "./review-convoy-liveness-DmO8dIBH.js";
33
- import { g as getAllProjectSpecialistStatuses, t as init_specialists } from "./specialists-CuDWiNdB.js";
34
- import { m as parseReviewerSessionName, s as getTmuxSessionName } from "./specialists-registry-BYjs04iK.js";
35
- import { a as inferBranchFromWorkspace, i as findWorkspacePath } from "./archive-planning-CGkU6UeL.js";
36
- import { n as shouldSkipDispatchAsMerged } from "./merge-verification-JJc5GC2t.js";
37
- import { t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-CE_tr2iQ.js";
38
- import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-D3H5I6b9.js";
39
- import { i as recordRecoveryFailure, n as findRecoveryTrip, r as init_recovery_trip } from "./recovery-trip-BKLrL6NX.js";
40
- import { a as init_work_agent_prompt, n as buildWorkAgentPrompt } from "./work-agent-prompt-CioeOuM4.js";
41
- import { t as isExplicitNoResumeRequest } from "./no-resume-mode-xuYLFhLw.js";
42
- import { t as createInFlightGuard } from "./in-flight-guard-DuxabAHT.js";
43
- import { t as checkStuckAgentRemediation } from "./stuck-remediation-BDa_tXgB.js";
44
- import { r as reconcileClosedIssueAgents } from "./closed-issue-reaper-nMLRi5de.js";
45
- import { b as reconcilePipelineLabelsPatrol, y as init_label_reconciler } from "./pipeline-membership-gather-BK4dzh0X.js";
46
- import { t as recordDeadEndNeedsYou } from "./dead-end-trip-CnVmjnya.js";
47
- import { a as triggerRebuildAndStart, i as reconcileOrphanProposedSpecs } from "./orphan-proposed-reconciler-Dmk0kO_p.js";
48
- import { n as spawnWorkAgentThroughAgentsEndpoint } from "./work-agent-start-B65Gqn9N.js";
49
- import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-BSxb1bln.js";
50
- import { a as recordUnsignaledTestEscalation, i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-DUbDHqeD.js";
13
+ import { C as init_specs, S as findSpecByIssue, b as subItemsOf, f as readPlanSync, h as readWorkspacePlanSync, i as findPlanSync, n as applyStatusOverrides, o as findWorkspaceDraftPlanSync, s as init_io, y as init_types$1 } from "./io-BCtZoXHo.js";
14
+ import { a as getDispatchableItems, c as init_dag } from "./dag-o-dUpw1L.js";
15
+ import { a as loadCloisterConfigSync, r as init_config$1 } from "./config-_qaa1UXH.js";
16
+ import { a as init_state_home, o as inspectLegacyStatePaths } from "./state-home-DhsMqg8W.js";
17
+ import { d as resolveWorkspaceRepoRootsSync, i as init_project_repos, u as resolveSlotWorkspaceWorktreesSync } from "./project-repos-CsfvLtmr.js";
18
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-LF8ZF_hc.js";
19
+ import { l as init_review_status_sync, u as markWorkspaceStuck } from "./review-status-sync-C6ZKTI8f.js";
20
+ import { B as needsReviewDispatch, G as findBlockingFindings, J as findWorkspaceVerdictConflicts, K as init_review_findings, Q as readWorkspaceVerdictFallback, Y as init_review_status_record_sync, d as getReviewStatusSync, h as loadReviewStatuses, p as init_review_status, q as drainWorkspaceVerdictFallback, w as setReviewStatusSync, z as init_review_dispatch_decision } from "./review-status-DpniqzPT.js";
21
+ import { d as init_review_verdict_report, f as parseVerdictReport, l as findVerdictReport, u as findVerdictReportAsync } from "./synthesis-verdict-CGFF8uQI.js";
22
+ import { t as assessMemoryPressure } from "./memory-governor-Cvv_9K0M.js";
23
+ import { r as isAgentIdleForNudge, t as getAgentEffectiveLastActivityMs } from "./agent-idle-D-UQ7gDv.js";
24
+ import { n as pruneTerminalStoppedAgents, r as pidsWithCwdUnder } from "./agent-gc-bhikjoJ_.js";
25
+ import { t as recordDeaconNudge } from "./deacon-nudge-log-pcliw8Dr.js";
26
+ import { a as readLiveTrackerIssueState, n as init_issue_closed, r as isIssueClosed } from "./issue-closed-CiYAa6bX.js";
27
+ import { t as getAutoCloseOutCanonicalState } from "./deacon-canonical-state-DkdkQS5p.js";
28
+ import { a as checkFailedMergeRetry, c as ciRetryMap, d as reconcileMergedButReviewing, f as reconcileStaleMergeBlockers, g as reconcileStuckMergingStates, h as reconcileAutoMergeRows, i as autoCloseOut, l as reconcileClosedPrReadyForMerge, m as reconcileStuckReadyForMerge, n as reconcileTerminalIssueResidue, o as checkFirstCompletionAgents, p as reconcileStaleMergeStatus, r as listIssueRecords, s as checkReadyForMergeStuck$1, u as reconcileFalseMerged } from "./parked-residue-8WbU0y1z.js";
29
+ import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-Ds1Wjsz4.js";
30
+ import { r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-yPD_wclF.js";
31
+ import { t as recordReviewVerdict } from "./review-verdict-writer-Cy_1pnIj.js";
32
+ import { a as observeActiveReviewArtifact, i as convergeRowFromVerdictOfRecord, n as reviewTimestampMs, r as REVIEW_SUB_ROLES, t as evaluateReviewConvoyLiveness } from "./review-convoy-liveness-BBvyuRLC.js";
33
+ import { g as getAllProjectSpecialistStatuses, t as init_specialists } from "./specialists-D6MUU31Q.js";
34
+ import { m as parseReviewerSessionName, s as getTmuxSessionName } from "./specialists-registry-Bng0OFGH.js";
35
+ import { a as inferBranchFromWorkspace, i as findWorkspacePath } from "./archive-planning-BL1ABtW0.js";
36
+ import { n as shouldSkipDispatchAsMerged } from "./merge-verification-BfJRNMiD.js";
37
+ import { t as deliverReviewVerdictFeedback } from "./review-verdict-feedback-B2ojHFH5.js";
38
+ import { n as reconcileTraefikNetworks, t as init_traefik_connect } from "./traefik-connect-DoQvQ6oJ.js";
39
+ import { i as recordRecoveryFailure, n as findRecoveryTrip, r as init_recovery_trip } from "./recovery-trip-CpfW6LCJ.js";
40
+ import { a as init_work_agent_prompt, n as buildWorkAgentPrompt } from "./work-agent-prompt-CaD2ue8m.js";
41
+ import { t as isExplicitNoResumeRequest } from "./no-resume-mode-DjMQRkId.js";
42
+ import { t as createInFlightGuard } from "./in-flight-guard-B7khcBdQ.js";
43
+ import { t as checkStuckAgentRemediation } from "./stuck-remediation-kta3KN7c.js";
44
+ import { r as reconcileClosedIssueAgents } from "./closed-issue-reaper-CdcJRvUx.js";
45
+ import { b as reconcilePipelineLabelsPatrol, y as init_label_reconciler } from "./pipeline-membership-gather-Ba0wJNCR.js";
46
+ import { t as recordDeadEndNeedsYou } from "./dead-end-trip-Bs3hxIn6.js";
47
+ import { a as triggerRebuildAndStart, i as reconcileOrphanProposedSpecs } from "./orphan-proposed-reconciler-nFUlquZt.js";
48
+ import { n as spawnWorkAgentThroughAgentsEndpoint } from "./work-agent-start-0nJ-6UeA.js";
49
+ import { n as reconcileIdleWorkspaceStacks } from "./idle-stack-reaper-DtoI4al6.js";
50
+ import { a as recordUnsignaledTestEscalation, i as readTestVerdictArtifact, n as decideUnsignaledTestAction, r as init_test_verdict } from "./test-verdict-oNSv1rVr.js";
51
51
  import { basename, dirname, join, relative, resolve } from "node:path";
52
52
  import { Effect } from "effect";
53
53
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "fs";
@@ -165,7 +165,7 @@ async function checkInspectAgentTimeouts(now = /* @__PURE__ */ new Date()) {
165
165
  console.warn(`[deacon] Failed to kill inspect session ${sessionName}: ${msg}`);
166
166
  });
167
167
  try {
168
- const { messageAgent } = await import("./agents-DpCuoF65.js");
168
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
169
169
  await messageAgent(`agent-${issueId.toLowerCase()}`, verdict, "deacon:inspect-watchdog");
170
170
  } catch (err) {
171
171
  const msg = err instanceof Error ? err.message : String(err);
@@ -428,9 +428,9 @@ async function checkApiErrorAgents() {
428
428
  }
429
429
  if (!tmuxOutput.includes("❯")) continue;
430
430
  try {
431
- const { maybeContinueCompactedAgent } = await import("./compaction-continuation-Bjfi70G-.js");
432
- const { findLastCompactBoundary } = await import("./conversation-service-CzZUJFEx.js");
433
- const { deliverAgentMessage } = await import("./delivery-gyce0vQ7.js");
431
+ const { maybeContinueCompactedAgent } = await import("./compaction-continuation-CVjbdGKt.js");
432
+ const { findLastCompactBoundary } = await import("./conversation-service-BL-asWPX.js");
433
+ const { deliverAgentMessage } = await import("./delivery-DhZGRShH.js");
434
434
  const continued = await maybeContinueCompactedAgent({
435
435
  agentId: sessionName,
436
436
  tmuxOutput,
@@ -481,13 +481,13 @@ async function checkApiErrorAgents() {
481
481
  const st = getAgentStateSync(sessionName);
482
482
  const sid = st?.sessionId ?? runtimeState?.claudeSessionId;
483
483
  if (st?.workspace && sid && st.model) {
484
- const { computeContextUsage } = await import("./conversation-service-CzZUJFEx.js");
484
+ const { computeContextUsage } = await import("./conversation-service-BL-asWPX.js");
485
485
  const usage = await computeContextUsage(sessionFilePath(st.workspace, sid), st.model);
486
486
  if (usage && usage.percentUsed < 85) recoveredPct = usage.percentUsed;
487
487
  }
488
488
  } catch {}
489
489
  if (recoveredPct !== null) {
490
- const { clearWorkspaceStuck } = await import("./review-status-sync-Bq00Loey.js");
490
+ const { clearWorkspaceStuck } = await import("./review-status-sync-CvpHWyvR.js");
491
491
  clearWorkspaceStuck(issueId);
492
492
  stuckOverflowNativeRecoveryState.delete(sessionName);
493
493
  actions.push(`Context overflow recovery: cleared stuck flag for ${sessionName} (context back to ${Math.round(recoveredPct)}%)`);
@@ -503,7 +503,7 @@ async function checkApiErrorAgents() {
503
503
  rec.attempts += 1;
504
504
  rec.lastAttempt = now;
505
505
  stuckOverflowNativeRecoveryState.set(sessionName, rec);
506
- const { resumeAgent } = await import("./agents-DpCuoF65.js");
506
+ const { resumeAgent } = await import("./agents-DixZjXWm.js");
507
507
  const recovered = await resumeAgent(sessionName, void 0, { compact: true });
508
508
  if (recovered.success) {
509
509
  stuckOverflowNativeRecoveryState.delete(sessionName);
@@ -551,7 +551,7 @@ async function checkApiErrorAgents() {
551
551
  }
552
552
  const compactAttempts = (ov?.compactAttempts ?? 0) + 1;
553
553
  if (issueId !== null) {
554
- const { resumeAgent } = await import("./agents-DpCuoF65.js");
554
+ const { resumeAgent } = await import("./agents-DixZjXWm.js");
555
555
  const resumeResult = await resumeAgent(sessionName, void 0, { compact: true });
556
556
  contextOverflowRecoveryState.set(sessionName, {
557
557
  lastAttempt: now,
@@ -806,7 +806,7 @@ async function checkPostReviewCommits() {
806
806
  const actions = [];
807
807
  try {
808
808
  const statuses = loadReviewStatuses();
809
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
809
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
810
810
  for (const [issueId, status] of Object.entries(statuses)) {
811
811
  const isBlocked = status.reviewStatus === "blocked";
812
812
  if (!isBlocked) blockedReviewDriftObservations.delete(issueId);
@@ -838,8 +838,8 @@ async function checkPostReviewCommits() {
838
838
  if (!project) continue;
839
839
  const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
840
840
  if (!existsSync(workspacePath)) continue;
841
- const { formatAnchorShort, rehydrateHeadAnchor } = await import("./git-utils-CsKV0Dis.js");
842
- const { evaluateWorkspaceAnchorDrift } = await import("./workspace-anchor-drift-BI0Hz6zI.js");
841
+ const { formatAnchorShort, rehydrateHeadAnchor } = await import("./git-utils-BAMwn9Nf.js");
842
+ const { evaluateWorkspaceAnchorDrift } = await import("./workspace-anchor-drift-Bpa3xoni.js");
843
843
  const verdict = await evaluateWorkspaceAnchorDrift(issueId, workspacePath, rehydrateHeadAnchor(reviewedAnchor));
844
844
  if (verdict.kind === "unreadable" || verdict.kind === "current") {
845
845
  blockedReviewDriftObservations.delete(issueId);
@@ -857,7 +857,7 @@ async function checkPostReviewCommits() {
857
857
  resetLoopEscalated.add(issueId);
858
858
  const message = `${issueId} — review reset suppressed: drift against ${formatAnchorShort(currentHead)} already caused a reset and the workspace has not moved since. This indicates an anchor-producer disagreement, not new commits; review will not re-dispatch until the workspace head actually changes.`;
859
859
  logDeaconEventSync(`checkPostReviewCommits: ${message}`);
860
- const { recordDeadEndNeedsYou } = await import("./dead-end-trip-6V_CwveT.js");
860
+ const { recordDeadEndNeedsYou } = await import("./dead-end-trip-DUbiRMtT.js");
861
861
  await recordDeadEndNeedsYou(issueId, "review-reset-loop", currentHead, message);
862
862
  }
863
863
  continue;
@@ -901,7 +901,7 @@ async function checkPostReviewCommits() {
901
901
  actions.push(`Deferred post-review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
902
902
  logDeaconEventSync(`checkPostReviewCommits: deferred review for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
903
903
  } else if (freshStatus?.reviewStatus === "pending") {
904
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
904
+ const { spawnReviewRoleForIssue } = await import("./review-agent-Caodi0PX.js");
905
905
  const branch = `feature/${issueId.toLowerCase()}`;
906
906
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
907
907
  issueId,
@@ -1473,7 +1473,7 @@ function reviewConvoyLiveness(issueId) {
1473
1473
  */
1474
1474
  async function recoverUnhealthyTestStack(issueId, workspacePath) {
1475
1475
  const key = issueId.toUpperCase();
1476
- const { getWorkspaceStackHealth } = await import("./stack-health-ypIKtkbE.js");
1476
+ const { getWorkspaceStackHealth } = await import("./stack-health-Bz711z1Y.js");
1477
1477
  const health = await Effect.runPromise(getWorkspaceStackHealth(issueId, { workspacePath }));
1478
1478
  if (health.healthy) {
1479
1479
  testStackRebuildState.delete(key);
@@ -1505,7 +1505,7 @@ async function recoverUnhealthyTestStack(issueId, workspacePath) {
1505
1505
  record.attempts += 1;
1506
1506
  testStackRebuildState.set(key, record);
1507
1507
  console.log(`[deacon] Test stack for ${key} unhealthy (${health.reasons.join("; ")}) — rebuilding (attempt ${record.attempts}/${TEST_STACK_REBUILD_MAX_ATTEMPTS})`);
1508
- const { rebuildWorkspaceStack } = await import("./rebuild-stack-DrMyA_mA.js");
1508
+ const { rebuildWorkspaceStack } = await import("./rebuild-stack-BcBVFJp3.js");
1509
1509
  const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[deacon] ${key} stack rebuild: ${m}`) }));
1510
1510
  if (!result.success) {
1511
1511
  console.warn(`[deacon] Test stack rebuild failed for ${key}: ${result.error}`);
@@ -1691,7 +1691,7 @@ async function handleReviewCoordinatorDied(issueId, _sessionName, _reason) {
1691
1691
  return actions;
1692
1692
  }
1693
1693
  try {
1694
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
1694
+ const { spawnReviewRoleForIssue } = await import("./review-agent-Caodi0PX.js");
1695
1695
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
1696
1696
  issueId,
1697
1697
  workspace,
@@ -1766,7 +1766,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus, options = {}) {
1766
1766
  const issueLower = issueId.toLowerCase();
1767
1767
  const workspace = getAgentStateSync(`agent-${issueLower}`)?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
1768
1768
  if (workspace) try {
1769
- if ((options.readWorkspaceHead ? await options.readWorkspaceHead(workspace) : await (await import("./git-utils-CsKV0Dis.js")).snapshotWorkspaceHeadsPromise(issueId, workspace)) === status.lastVerifiedCommit) {
1769
+ if ((options.readWorkspaceHead ? await options.readWorkspaceHead(workspace) : await (await import("./git-utils-BAMwn9Nf.js")).snapshotWorkspaceHeadsPromise(issueId, workspace)) === status.lastVerifiedCommit) {
1770
1770
  setReviewStatusSync(issueId, {
1771
1771
  reviewStatus: "pending",
1772
1772
  reviewNotes: void 0
@@ -1788,7 +1788,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus, options = {}) {
1788
1788
  if (project) {
1789
1789
  const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
1790
1790
  if (existsSync(workspacePath)) {
1791
- const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CsKV0Dis.js");
1791
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-BAMwn9Nf.js");
1792
1792
  reviewUpdate["reviewedAtCommit"] = await snapshotWorkspaceHeadsPromise(issueId, workspacePath);
1793
1793
  }
1794
1794
  }
@@ -1850,7 +1850,7 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus, options = {}) {
1850
1850
  const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
1851
1851
  if (workspace && resolved && !tryReserveAdvancingSlot() && !await tryYieldForAdvancingDispatch("review", issueId)) actions.push(`Deferred review re-dispatch for ${issueId} — advancing-role concurrency ceiling reached`);
1852
1852
  else if (workspace && resolved) try {
1853
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
1853
+ const { spawnReviewRoleForIssue } = await import("./review-agent-Caodi0PX.js");
1854
1854
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
1855
1855
  issueId,
1856
1856
  workspace,
@@ -1875,8 +1875,8 @@ async function reconcileReviewStatusOrphan(issueId, rawStatus, options = {}) {
1875
1875
  const workspace = agentState?.workspace || (resolved ? findWorkspacePath(resolved.projectPath, issueLower) : null);
1876
1876
  if (workspace && resolved) {
1877
1877
  const branch = `feature/${issueLower}`;
1878
- const { spawnRun } = await import("./agents-DpCuoF65.js");
1879
- const { buildTestRolePrompt } = await import("./test-agent-queue-C5DI_gWX.js");
1878
+ const { spawnRun } = await import("./agents-DixZjXWm.js");
1879
+ const { buildTestRolePrompt } = await import("./test-agent-queue-Cu0D6BYe.js");
1880
1880
  const stackRecovery = await recoverUnhealthyTestStack(issueId, workspace);
1881
1881
  if (stackRecovery === "cooldown" || stackRecovery === "exhausted") {
1882
1882
  setReviewStatusSync(issueId, { testStatus: "dispatch_failed" });
@@ -2015,7 +2015,7 @@ async function recoverStalledReviewConvoys(getCanonicalState = getAutoCloseOutCa
2015
2015
  record.lastAttempt = now;
2016
2016
  record.attempts += 1;
2017
2017
  stalledReviewConvoyRecoveryState.set(key, record);
2018
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
2018
+ const { spawnReviewRoleForIssue } = await import("./review-agent-Caodi0PX.js");
2019
2019
  try {
2020
2020
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
2021
2021
  issueId,
@@ -2086,7 +2086,7 @@ async function checkMissingReviewStatuses() {
2086
2086
  continue;
2087
2087
  }
2088
2088
  try {
2089
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
2089
+ const { spawnReviewRoleForIssue } = await import("./review-agent-Caodi0PX.js");
2090
2090
  await Effect.runPromise(spawnReviewRoleForIssue({
2091
2091
  issueId,
2092
2092
  workspace,
@@ -2137,7 +2137,7 @@ async function checkStuckReviewing() {
2137
2137
  const actions = [];
2138
2138
  const REVIEW_STUCK_THRESHOLD_MS = 1800 * 1e3;
2139
2139
  try {
2140
- const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-C_kQeeX0.js");
2140
+ const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-Bge_3XTR.js");
2141
2141
  const statuses = loadReviewStatuses();
2142
2142
  const now = Date.now();
2143
2143
  const activeReviewIssues = /* @__PURE__ */ new Set();
@@ -2296,7 +2296,7 @@ async function reconcileUnappliedReviewVerdicts() {
2296
2296
  let currentHead;
2297
2297
  let reviewedHead;
2298
2298
  try {
2299
- const { rehydrateHeadAnchor, snapshotWorkspaceHeadsPromise } = await import("./git-utils-CsKV0Dis.js");
2299
+ const { rehydrateHeadAnchor, snapshotWorkspaceHeadsPromise } = await import("./git-utils-BAMwn9Nf.js");
2300
2300
  currentHead = await snapshotWorkspaceHeadsPromise(issueId, wsPath);
2301
2301
  const persistedAnchor = reviewAnchorFromContext(latestContext);
2302
2302
  reviewedHead = persistedAnchor ? rehydrateHeadAnchor(persistedAnchor) : void 0;
@@ -2320,7 +2320,7 @@ async function reconcileUnappliedReviewVerdicts() {
2320
2320
  const notes = parsed.topBlocker || `See ${latestReport.filename}`;
2321
2321
  const nudge = `Your review verdict is already written on disk but review status is still pending. 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${buildReviewCompletionCommand(issueId, parsed.verdict, notes, basename$1(latestDir))}\n\nRun this command NOW. Do not write any other response before executing it.`;
2322
2322
  try {
2323
- const { messageAgent } = await import("./agents-DpCuoF65.js");
2323
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
2324
2324
  await messageAgent(reviewSession, nudge);
2325
2325
  pendingVerdictNudges.set(latestDir, now);
2326
2326
  const action = `Nudged ${reviewSession} to apply pending ${parsed.verdict} verdict from ${latestReport.filename}`;
@@ -2439,7 +2439,7 @@ async function checkCompletedButUnsignaledReviews() {
2439
2439
  const cmd = buildReviewCompletionCommand(issueId, verdict, topBlocker || `See ${latestReport.filename}`, basename$1(latestDir));
2440
2440
  const nudge = `Your review verdict in ${latestReport.filename} 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${cmd}\n\nRun this command NOW. Do not write any other response before executing it.`;
2441
2441
  try {
2442
- const { messageAgent } = await import("./agents-DpCuoF65.js");
2442
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
2443
2443
  await messageAgent(reviewSession, nudge);
2444
2444
  unsignaledReviewNudges.set(latestDir, now);
2445
2445
  actions.push(`Nudged ${reviewSession} to signal ${verdict} (${latestReport.filename} written ${Math.round((now - latestMtime) / 6e4)}min ago)`);
@@ -2544,7 +2544,7 @@ async function retryReviewer(state, agentId, trigger) {
2544
2544
  return false;
2545
2545
  }
2546
2546
  try {
2547
- const { spawnReviewSubRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
2547
+ const { spawnReviewSubRoleForIssue } = await import("./review-agent-Caodi0PX.js");
2548
2548
  const contextManifestPath = join$1(dirname$1(outputPath), "context.json");
2549
2549
  const result = await Effect.runPromise(spawnReviewSubRoleForIssue({
2550
2550
  issueId: state.issueId,
@@ -2630,11 +2630,11 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
2630
2630
  writeFileSync(join$1(reviewDir, "synthesis.md"), synthesis.body);
2631
2631
  let fallbackHead;
2632
2632
  try {
2633
- const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CsKV0Dis.js");
2633
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-BAMwn9Nf.js");
2634
2634
  fallbackHead = await snapshotWorkspaceHeadsPromise(state.issueId, state.workspace);
2635
2635
  } catch {}
2636
2636
  const notes = synthesis.topBlocker || "Review approved by Deacon fallback from completed reviewer reports";
2637
- const { recordReviewVerdict } = await import("./review-verdict-writer-CD-4kDVx.js");
2637
+ const { recordReviewVerdict } = await import("./review-verdict-writer-DjrJ64eS.js");
2638
2638
  const outcome = await recordReviewVerdict(state.issueId, {
2639
2639
  verdict: synthesis.verdict,
2640
2640
  notes,
@@ -2675,7 +2675,7 @@ async function nudgeSynthesisForCompleteReviewerReports(states) {
2675
2675
  "Read the four reports, write synthesis.md, then signal review status exactly as roles/review.md instructs."
2676
2676
  ].join("\n");
2677
2677
  try {
2678
- const { messageAgent } = await import("./agents-DpCuoF65.js");
2678
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
2679
2679
  await messageAgent(state.id, message);
2680
2680
  reviewReportsPresentNudges.set(nudgeKey, now);
2681
2681
  const action = `Nudged ${state.id} to synthesize from ${REVIEW_SUB_ROLES.length} reviewer reports`;
@@ -2787,7 +2787,7 @@ async function monitorReviewConvoySignals() {
2787
2787
  if (!signal) continue;
2788
2788
  const message = signal === "ready" ? `REVIEWER_READY ${state.reviewSubRole} ${outputPath}` : signal === "timeout" ? `REVIEWER_TIMEOUT ${state.reviewSubRole} ${reason}` : `REVIEWER_FAILED ${state.reviewSubRole} ${reason}`;
2789
2789
  try {
2790
- const { messageAgent } = await import("./agents-DpCuoF65.js");
2790
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
2791
2791
  await messageAgent(state.reviewSynthesisAgentId, message);
2792
2792
  state.reviewMonitorSignaled = signal;
2793
2793
  saveAgentStateSync(state);
@@ -2795,7 +2795,7 @@ async function monitorReviewConvoySignals() {
2795
2795
  actions.push(action);
2796
2796
  logDeaconEventSync(`monitorReviewConvoySignals: ${action}`);
2797
2797
  if (signal === "ready") try {
2798
- const { notifyPipelineSync } = await import("./pipeline-notifier-DvHLaXKb.js");
2798
+ const { notifyPipelineSync } = await import("./pipeline-notifier-B5DPXvnr.js");
2799
2799
  notifyPipelineSync({
2800
2800
  type: "reviewer_completed",
2801
2801
  issueId: state.issueId,
@@ -2803,7 +2803,7 @@ async function monitorReviewConvoySignals() {
2803
2803
  });
2804
2804
  } catch {}
2805
2805
  else if (signal === "timeout") try {
2806
- const { notifyPipelineSync } = await import("./pipeline-notifier-DvHLaXKb.js");
2806
+ const { notifyPipelineSync } = await import("./pipeline-notifier-B5DPXvnr.js");
2807
2807
  notifyPipelineSync({
2808
2808
  type: "reviewer_timed_out",
2809
2809
  issueId: state.issueId,
@@ -2912,8 +2912,8 @@ async function cleanupOrphanedReviewSessions() {
2912
2912
  async function checkStalledReviewParents() {
2913
2913
  const actions = [];
2914
2914
  try {
2915
- const { listAgentStates } = await import("./agents-DpCuoF65.js");
2916
- const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-DgkUPRx0.js");
2915
+ const { listAgentStates } = await import("./agents-DixZjXWm.js");
2916
+ const { PARENT_REVIEW_TIMEOUT_MS } = await import("./review-agent-Caodi0PX.js");
2917
2917
  const states = listAgentStates();
2918
2918
  const now = Date.now();
2919
2919
  for (const state of states) {
@@ -2937,7 +2937,7 @@ async function checkStalledReviewParents() {
2937
2937
  paneTail: paneTail.split("\n").filter(Boolean).slice(-5).join(" | ").slice(0, 400)
2938
2938
  };
2939
2939
  try {
2940
- const { markWorkspaceStuck } = await import("./review-status-C_kQeeX0.js");
2940
+ const { markWorkspaceStuck } = await import("./review-status-Bge_3XTR.js");
2941
2941
  markWorkspaceStuck(state.issueId, "review_parent_stalled_needs_you", {
2942
2942
  reason: `Review parent ${state.id} is past its review deadline with no verdict on record`,
2943
2943
  ...evidence
@@ -2949,7 +2949,7 @@ async function checkStalledReviewParents() {
2949
2949
  actions.push(message);
2950
2950
  logDeaconEventSync(message);
2951
2951
  try {
2952
- const { emitActivityEntrySync } = await import("./activity-logger-Ck8qoluj.js");
2952
+ const { emitActivityEntrySync } = await import("./activity-logger-B0X2JJwM.js");
2953
2953
  emitActivityEntrySync({
2954
2954
  source: "review",
2955
2955
  level: "warn",
@@ -3437,15 +3437,6 @@ function escapeRegExp(value) {
3437
3437
  //#region ../../lib/cloister/deacon-swarm-record.ts
3438
3438
  init_record();
3439
3439
  init_record_update();
3440
- async function writeSwarmFinalizedAt(workspacePath, issueId, finalizedAt) {
3441
- await updateIssueRecordForWorkspace(workspacePath, issueId.toUpperCase(), (record) => ({
3442
- ...record,
3443
- swarm: {
3444
- ...record.swarm ?? {},
3445
- finalizedAt
3446
- }
3447
- }));
3448
- }
3449
3440
  function readSwarmHold(workspacePath, issueId) {
3450
3441
  return readIssueRecordForWorkspaceSync(workspacePath, issueId.toUpperCase())?.swarm?.hold;
3451
3442
  }
@@ -3918,28 +3909,6 @@ async function countCommitsAhead(runGitCommand, parentRepo, featureBranch, slotB
3918
3909
  }
3919
3910
  }
3920
3911
  //#endregion
3921
- //#region ../../lib/cloister/deacon-swarm-finalization.ts
3922
- init_review_status();
3923
- init_io();
3924
- async function defaultRequestIssueReview(issueId, workspacePath) {
3925
- setReviewStatusSync(issueId, {
3926
- reviewStatus: "pending",
3927
- testStatus: "pending",
3928
- mergeStatus: "pending",
3929
- readyForMerge: false,
3930
- verificationStatus: "pending",
3931
- verificationCycleCount: 0,
3932
- autoRequeueCount: 0,
3933
- reviewRequestedAt: (/* @__PURE__ */ new Date()).toISOString()
3934
- });
3935
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgkUPRx0.js");
3936
- return Effect.runPromise(spawnReviewRoleForIssue({
3937
- issueId,
3938
- workspace: workspacePath,
3939
- branch: `feature/${issueId.toLowerCase()}`
3940
- }));
3941
- }
3942
- //#endregion
3943
3912
  //#region ../../lib/cloister/swarm-tiered-hooks.ts
3944
3913
  /**
3945
3914
  * PAN-2385 — tiered-execution commit hooks for the swarm dispatch path.
@@ -4349,13 +4318,10 @@ const defaultDeps$2 = {
4349
4318
  readStatusOverrides: defaultReadStatusOverrides,
4350
4319
  readSlotCompletion: defaultReadSlotCompletion,
4351
4320
  clearSlotCompletion: clearSwarmSlotCompletion,
4352
- getFinalizedAt: getSwarmFinalizedAt,
4353
- setFinalizedAt: recordSwarmFinalizedAt,
4354
4321
  recordForemanTakeover: writeSwarmForemanTakeover,
4355
4322
  ensureSwarmForeman,
4356
4323
  sendStallEvent: (agentId, message) => messageAgent(agentId, message, "deacon:swarm-stall"),
4357
- resolveAutomaticSwarmPolicy,
4358
- requestIssueReview: defaultRequestIssueReview
4324
+ resolveAutomaticSwarmPolicy
4359
4325
  };
4360
4326
  function defaultGetMaxSlotIndex() {
4361
4327
  return Math.max(1, getConcurrencyLimits().reservedSwarmSlots);
@@ -4540,12 +4506,6 @@ function swarmStallThresholdMs() {
4540
4506
  const parsed = Number(raw);
4541
4507
  return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_SWARM_STALL_THRESHOLD_MS;
4542
4508
  }
4543
- function getSwarmFinalizedAt(issueId, workspacePath) {
4544
- return workspacePath ? readIssueRecordForWorkspaceSync(workspacePath, issueId.toUpperCase())?.swarm?.finalizedAt : void 0;
4545
- }
4546
- async function recordSwarmFinalizedAt(issueId, workspacePath, finalizedAt) {
4547
- await writeSwarmFinalizedAt(workspacePath, issueId.toUpperCase(), finalizedAt);
4548
- }
4549
4509
  function recordSlotAssignment(workspacePath, issueId, assignment) {
4550
4510
  return updateIssueRecordForWorkspace(workspacePath, issueId.toUpperCase(), (record) => {
4551
4511
  const slotAssignments = [...(record.swarm?.slotAssignments ?? []).filter((slot) => slot.slotIndex !== assignment.slotIndex && slot.itemId !== assignment.itemId), {
@@ -5159,7 +5119,7 @@ async function nudgeStalledResumeWorkAgents() {
5159
5119
  const message = buildStalledResumePrompt(state);
5160
5120
  if (!message) continue;
5161
5121
  try {
5162
- const { messageAgent } = await import("./agents-DpCuoF65.js");
5122
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
5163
5123
  await messageAgent(agentId, message);
5164
5124
  recordCooldown(agentId, ".last-stalled-resume-nudge");
5165
5125
  const action = `Re-sent stalled resume prompt to ${agentId} (${state.issueId})`;
@@ -5273,7 +5233,7 @@ async function nudgeIdleWorkAgentsWithOpenBeads() {
5273
5233
  "Continue the per-item workflow without asking — claim it (`pan task claim <item-id>`), implement, commit, push, then complete it through `pan task done <item-id>`. 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."
5274
5234
  ].join("\n");
5275
5235
  try {
5276
- const { messageAgent } = await import("./agents-DpCuoF65.js");
5236
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
5277
5237
  await messageAgent(agentId, message);
5278
5238
  writeFileSync(join$1(getAgentDir(agentId), ".last-bead-nudge"), String(Date.now()), "utf-8");
5279
5239
  const action = `Nudged idle ${agentId} (${state.issueId}) — ${openTasks.length} ready task(s)`;
@@ -7376,8 +7336,8 @@ async function cleanupStaleAgentState() {
7376
7336
  */
7377
7337
  async function cleanupAbandonedFeedback() {
7378
7338
  const actions = [];
7379
- const { getReviewStatusSync } = await import("./review-status-C_kQeeX0.js");
7380
- const { clearFeedbackFiles } = await import("./feedback-writer-CH2846DP.js");
7339
+ const { getReviewStatusSync } = await import("./review-status-Bge_3XTR.js");
7340
+ const { clearFeedbackFiles } = await import("./feedback-writer-BzN4qvaP.js");
7381
7341
  for (const { issueId, workspacePath } of listFeatureWorkspaces()) {
7382
7342
  const panFeedbackDir = join$1(workspacePath, ".pan", "feedback");
7383
7343
  if (!existsSync(panFeedbackDir)) continue;
@@ -7448,7 +7408,7 @@ async function handleOrphanReviewerSession(sessionName, sessions, creationTimes,
7448
7408
  if (!issueId) return null;
7449
7409
  const agentSession = `agent-${issueId.toLowerCase()}`;
7450
7410
  if (sessions.includes(agentSession)) return null;
7451
- const { getReviewStatusSync } = await import("./review-status-C_kQeeX0.js");
7411
+ const { getReviewStatusSync } = await import("./review-status-Bge_3XTR.js");
7452
7412
  try {
7453
7413
  if (getReviewStatusSync(issueId)?.reviewStatus === "reviewing") return null;
7454
7414
  } catch {}
@@ -7570,7 +7530,7 @@ async function checkOrphanedCompletions() {
7570
7530
  async function checkPendingTestDispatch() {
7571
7531
  const actions = [];
7572
7532
  try {
7573
- const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-C_kQeeX0.js");
7533
+ const { loadReviewStatuses, setReviewStatusSync } = await import("./review-status-Bge_3XTR.js");
7574
7534
  const statuses = loadReviewStatuses();
7575
7535
  const now = Date.now();
7576
7536
  for (const [issueId, status] of Object.entries(statuses)) {
@@ -7603,7 +7563,7 @@ async function checkPendingTestDispatch() {
7603
7563
  console.log(`[deacon] ${issueId}: skipping test re-dispatch — issue is closed`);
7604
7564
  continue;
7605
7565
  }
7606
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
7566
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
7607
7567
  const resolved = resolveProjectFromIssueSync(issueId);
7608
7568
  if (!resolved) continue;
7609
7569
  const issueLower = issueId.toLowerCase();
@@ -7618,8 +7578,8 @@ async function checkPendingTestDispatch() {
7618
7578
  logDeaconEventSync(`checkPendingTestDispatch: deferred test for ${issueId} — advancing ceiling reached (PAN-1665) — ${describeRunningAgents()}`);
7619
7579
  continue;
7620
7580
  }
7621
- const { spawnRun } = await import("./agents-DpCuoF65.js");
7622
- const { buildTestRolePrompt } = await import("./test-agent-queue-C5DI_gWX.js");
7581
+ const { spawnRun } = await import("./agents-DixZjXWm.js");
7582
+ const { buildTestRolePrompt } = await import("./test-agent-queue-Cu0D6BYe.js");
7623
7583
  try {
7624
7584
  const run = await spawnRun(issueId, "test", {
7625
7585
  workspace,
@@ -7749,7 +7709,7 @@ async function checkCompletedButUnsignaledTests() {
7749
7709
  const cmd = `pan admin specialists done test ${issueId} --status ${decision.status}${noteArg}${decision.uatStatus ? ` --uat-status ${decision.uatStatus}${decision.uatNotes ? ` --uat-notes "${decision.uatNotes.replace(/"/g, "'").slice(0, 120)}"` : ""}` : ""}`;
7750
7710
  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.`;
7751
7711
  try {
7752
- const { messageAgent } = await import("./agents-DpCuoF65.js");
7712
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
7753
7713
  await messageAgent(testSession, nudge);
7754
7714
  unsignaledTestNudges.set(testSession, now);
7755
7715
  const msg = `Nudged ${testSession} to signal ${decision.status} (verdict artifact present)`;
@@ -7763,7 +7723,7 @@ async function checkCompletedButUnsignaledTests() {
7763
7723
  case "nudge-write": {
7764
7724
  const nudge = `Your test run for ${issueId} looks finished but no verdict was recorded. Decide the automated-gate verdict and, when UAT was required, its separate verdict. Then do BOTH now: (1) write .pan/test/result.json as {"status":"passed"|"failed","notes":"<gate evidence>","uatStatus":"passed"|"failed","uatNotes":"<UAT evidence>"} (omit UAT fields only when UAT was not required), and (2) run: pan admin specialists done test ${issueId} --status passed|failed [--uat-status passed|failed]. Do this immediately — do not summarize or ask questions, just write the file and run the command.`;
7765
7725
  try {
7766
- const { messageAgent } = await import("./agents-DpCuoF65.js");
7726
+ const { messageAgent } = await import("./agents-DixZjXWm.js");
7767
7727
  await messageAgent(testSession, nudge);
7768
7728
  unsignaledTestNudges.set(testSession, now);
7769
7729
  const msg = `Nudged ${testSession} to write+signal a test verdict (no artifact yet)`;
@@ -7795,8 +7755,8 @@ async function checkCompletedButUnsignaledTests() {
7795
7755
  async function checkVerificationReviewContradiction() {
7796
7756
  const actions = [];
7797
7757
  try {
7798
- const { loadReviewStatuses } = await import("./review-status-C_kQeeX0.js");
7799
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
7758
+ const { loadReviewStatuses } = await import("./review-status-Bge_3XTR.js");
7759
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
7800
7760
  const statuses = loadReviewStatuses();
7801
7761
  for (const [issueId, status] of Object.entries(statuses)) if (status.verificationStatus === "passed" && status.reviewStatus === "reviewing" && status.stuckReason === "review_infrastructure_failure") {
7802
7762
  let reviewedAtCommit;
@@ -7805,12 +7765,12 @@ async function checkVerificationReviewContradiction() {
7805
7765
  if (project) {
7806
7766
  const workspacePath = join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
7807
7767
  if (existsSync(workspacePath)) {
7808
- const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CsKV0Dis.js");
7768
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-BAMwn9Nf.js");
7809
7769
  reviewedAtCommit = await snapshotWorkspaceHeadsPromise(issueId, workspacePath);
7810
7770
  }
7811
7771
  }
7812
7772
  } catch {}
7813
- const { recordReviewVerdict } = await import("./review-verdict-writer-CD-4kDVx.js");
7773
+ const { recordReviewVerdict } = await import("./review-verdict-writer-DjrJ64eS.js");
7814
7774
  const bypass = await recordReviewVerdict(issueId, {
7815
7775
  verdict: "passed",
7816
7776
  notes: "Review bypassed: verification passed but review infrastructure repeatedly failed.",
@@ -7905,7 +7865,7 @@ async function checkReadyForMergeStuck() {
7905
7865
  const testStatusGreenCiReconcileCooldowns = /* @__PURE__ */ new Map();
7906
7866
  const TEST_STATUS_GREEN_CI_RECONCILE_COOLDOWN_MS = 300 * 1e3;
7907
7867
  async function reconcileTestStatusFromGreenCi() {
7908
- const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-Oi5hdn1n.js");
7868
+ const { getCiCheckRunsState, getPullRequestHeadState, isGitHubAppConfigured } = await import("./github-app-BWziYCf3.js");
7909
7869
  return reconcileTestStatusFromGreenCiWithDeps({
7910
7870
  isGitHubAppConfigured,
7911
7871
  loadReviewStatuses,
@@ -7926,7 +7886,7 @@ async function reconcileTestStatusFromGreenCi() {
7926
7886
  */
7927
7887
  async function clearStaleCiFeedback(issueId) {
7928
7888
  const { readdir, rm } = await import("fs/promises");
7929
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
7889
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
7930
7890
  const projectConfig = resolveProjectFromIssueSync(issueId);
7931
7891
  if (!projectConfig) return;
7932
7892
  const repoDir = projectConfig.projectPath;
@@ -8220,7 +8180,7 @@ async function checkWorkspaceContainerHealth(sharedState) {
8220
8180
  }
8221
8181
  }
8222
8182
  try {
8223
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
8183
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
8224
8184
  const resolved = resolveProjectFromIssueSync(issueLower.toUpperCase());
8225
8185
  if (resolved) await killOrphanedWorkspaceProcesses(`${resolved.projectPath}/workspaces/feature-${issueLower}`);
8226
8186
  } catch {}
@@ -8270,7 +8230,7 @@ async function checkMergedWorkSessions() {
8270
8230
  const actions = [];
8271
8231
  try {
8272
8232
  const { selectMergedWorkSessions } = await import("./reap-terminal-sessions-DgEIKMhH.js");
8273
- const { setAgentPaused } = await import("./agents-DpCuoF65.js");
8233
+ const { setAgentPaused } = await import("./agents-DixZjXWm.js");
8274
8234
  const toKill = selectMergedWorkSessions(loadReviewStatuses(), [...await Effect.runPromise(listSessionNames())]);
8275
8235
  for (const session of toKill) try {
8276
8236
  await Effect.runPromise(setAgentPaused(session, "merged — awaiting close-out (verify on main)", true));
@@ -8363,7 +8323,7 @@ async function runPatrol() {
8363
8323
  hasLoggedGlobalPauseSkip = false;
8364
8324
  addLog("info", `Patrol cycle ${state.patrolCycle} — checking per-project specialists`, state.patrolCycle);
8365
8325
  console.log(`[deacon] Patrol cycle ${state.patrolCycle} - checking per-project specialists`);
8366
- for (const a of await (await import("./stale-task-claims-C2e1zdMT.js")).patrolStaleTaskClaims()) {
8326
+ for (const a of await (await import("./stale-task-claims-DMRLb5R2.js")).patrolStaleTaskClaims()) {
8367
8327
  actions.push(a);
8368
8328
  addLog("action", a, state.patrolCycle);
8369
8329
  }
@@ -8371,30 +8331,30 @@ async function runPatrol() {
8371
8331
  actions.push(...stuckRemediationActions);
8372
8332
  for (const a of stuckRemediationActions) addLog("action", a, state.patrolCycle);
8373
8333
  try {
8374
- const sweepRecommendations = await (await import("./stall-sweeper-QNk4h9m6.js")).runStallSweeperPatrol();
8334
+ const sweepRecommendations = await (await import("./stall-sweeper-CBWqSWV2.js")).runStallSweeperPatrol();
8375
8335
  actions.push(...sweepRecommendations);
8376
8336
  for (const recommendation of sweepRecommendations) addLog("info", recommendation, state.patrolCycle);
8377
8337
  } catch (err) {
8378
8338
  console.warn(`[deacon] stall sweeper patrol failed: ${err?.message ?? err}`);
8379
8339
  addLog("warn", `Stall sweeper patrol failed: ${err?.message ?? err}`, state.patrolCycle);
8380
8340
  }
8381
- const { reconcileInFlightJournals } = await import("./advancing-selfheal-65W4yUQi.js");
8341
+ const { reconcileInFlightJournals } = await import("./advancing-selfheal-BJAfiY-C.js");
8382
8342
  const reconciledJournalActions = await reconcileInFlightJournals();
8383
8343
  actions.push(...reconciledJournalActions);
8384
8344
  for (const a of reconciledJournalActions) addLog("action", a, state.patrolCycle);
8385
- for (const a of (await import("./feedback-stuck-retirement-DpA5u1kt.js")).retireResolvedFeedbackDeliveryStuckFlags()) {
8345
+ for (const a of (await import("./feedback-stuck-retirement-CXAYe2rU.js")).retireResolvedFeedbackDeliveryStuckFlags()) {
8386
8346
  actions.push(a);
8387
8347
  addLog("action", a, state.patrolCycle);
8388
8348
  }
8389
8349
  try {
8390
8350
  const pendingFile = join$1(OVERDECK_HOME, "pending-post-merge.json");
8391
- const { processPendingLifecycleForPatrol } = await import("./deacon-pending-lifecycle-BObEdT-L.js");
8351
+ const { processPendingLifecycleForPatrol } = await import("./deacon-pending-lifecycle-BzaE76Xo.js");
8392
8352
  const action = await processPendingLifecycleForPatrol(pendingFile);
8393
8353
  if (action) actions.push(action);
8394
8354
  } catch (err) {
8395
8355
  console.warn(`[deacon] Failed to process pending lifecycle: ${err.message}`);
8396
8356
  }
8397
- if (state.patrolCycle % 5 === 0) await (await import("./deploy-patrol-CEwwEYDM.js")).runScheduledDeployPatrol();
8357
+ if (state.patrolCycle % 5 === 0) await (await import("./deploy-patrol-B8sKkA8h.js")).runScheduledDeployPatrol();
8398
8358
  const livenessActions = await reconcileAgentLiveness();
8399
8359
  actions.push(...livenessActions);
8400
8360
  for (const a of livenessActions) addLog("action", a, state.patrolCycle);
@@ -8415,7 +8375,7 @@ async function runPatrol() {
8415
8375
  const idleStackActions = await reconcileIdleWorkspaceStacks();
8416
8376
  actions.push(...idleStackActions);
8417
8377
  for (const a of idleStackActions) addLog("action", a, state.patrolCycle);
8418
- for (const a of await (await import("./bridge-pool-patrol-Ce8rNPym.js")).patrolDockerBridgePool()) {
8378
+ for (const a of await (await import("./bridge-pool-patrol-BDohuMRt.js")).patrolDockerBridgePool()) {
8419
8379
  actions.push(a);
8420
8380
  addLog("action", a, state.patrolCycle);
8421
8381
  }
@@ -8435,7 +8395,7 @@ async function runPatrol() {
8435
8395
  actions.push(...suspendActions);
8436
8396
  for (const a of suspendActions) addLog("action", a, state.patrolCycle);
8437
8397
  try {
8438
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
8398
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
8439
8399
  const allStatuses = loadReviewStatuses();
8440
8400
  for (const [issueId, status] of Object.entries(allStatuses)) {
8441
8401
  if (!status.readyForMerge || status.mergeStatus === "merged") continue;
@@ -8455,7 +8415,7 @@ async function runPatrol() {
8455
8415
  } catch (err) {
8456
8416
  console.warn(`[deacon] Failed to check workspace existence: ${err.message}`);
8457
8417
  }
8458
- const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-65W4yUQi.js");
8418
+ const { checkMergedAdvancingSessions } = await import("./advancing-selfheal-BJAfiY-C.js");
8459
8419
  const reapedWorkActions = await checkMergedWorkSessions();
8460
8420
  actions.push(...reapedWorkActions);
8461
8421
  for (const a of reapedWorkActions) addLog("action", a, state.patrolCycle);
@@ -8463,7 +8423,7 @@ async function runPatrol() {
8463
8423
  actions.push(...reapedMergedAdvancingActions);
8464
8424
  for (const a of reapedMergedAdvancingActions) addLog("action", a, state.patrolCycle);
8465
8425
  try {
8466
- const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-CBV3b9TI.js");
8426
+ const { refreshClaudeCredentialsForActiveRemoteAgents } = await import("./remote-completion-LcWCpAm2.js");
8467
8427
  const remoteCredentialActions = await refreshClaudeCredentialsForActiveRemoteAgents();
8468
8428
  actions.push(...remoteCredentialActions);
8469
8429
  for (const a of remoteCredentialActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
@@ -8471,7 +8431,7 @@ async function runPatrol() {
8471
8431
  addLog("warn", `Remote credential refresh patrol failed: ${err.message}`, state.patrolCycle);
8472
8432
  }
8473
8433
  try {
8474
- const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-BVtASiOF.js");
8434
+ const { refreshHostHeartbeatForEphemeralVms } = await import("./remote-agents-MuXx2gWm.js");
8475
8435
  const heartbeatActions = await refreshHostHeartbeatForEphemeralVms();
8476
8436
  actions.push(...heartbeatActions);
8477
8437
  for (const a of heartbeatActions) addLog(a.includes("failed") ? "warn" : "action", a, state.patrolCycle);
@@ -8479,7 +8439,7 @@ async function runPatrol() {
8479
8439
  addLog("warn", `Remote heartbeat refresh patrol failed: ${err.message}`, state.patrolCycle);
8480
8440
  }
8481
8441
  try {
8482
- const { reapCompletedRemoteAgents } = await import("./remote-completion-CBV3b9TI.js");
8442
+ const { reapCompletedRemoteAgents } = await import("./remote-completion-LcWCpAm2.js");
8483
8443
  const remoteReap = await reapCompletedRemoteAgents();
8484
8444
  for (const r of remoteReap) if (r.status === "handed-off" || r.status === "error") {
8485
8445
  const msg = `Remote reap ${r.issueId}: ${r.status} (${r.details.join("; ")})`;
@@ -8588,7 +8548,7 @@ async function runPatrol() {
8588
8548
  const staleMergeBlockerActions = await reconcileStaleMergeBlockers();
8589
8549
  actions.push(...staleMergeBlockerActions);
8590
8550
  for (const a of staleMergeBlockerActions) addLog("action", a, state.patrolCycle);
8591
- const stuckReadyActions = reconcileStuckReadyForMerge();
8551
+ const stuckReadyActions = await reconcileStuckReadyForMerge();
8592
8552
  actions.push(...stuckReadyActions);
8593
8553
  for (const a of stuckReadyActions) addLog("action", a, state.patrolCycle);
8594
8554
  const deadEndActions = await checkDeadEndAgents();
@@ -8679,7 +8639,7 @@ async function runPatrol() {
8679
8639
  const issueId = runtimeState.currentIssue;
8680
8640
  try {
8681
8641
  if (getReviewStatusSync(issueId)?.mergeStatus === "merging") {
8682
- const { resolveProjectFromIssueSync } = await import("./projects-LftaVK99.js");
8642
+ const { resolveProjectFromIssueSync } = await import("./projects-BMuEf14J.js");
8683
8643
  const resolved = resolveProjectFromIssueSync(issueId);
8684
8644
  if (resolved) {
8685
8645
  const branch = `feature/${issueId.toLowerCase()}`;
@@ -8693,7 +8653,7 @@ async function runPatrol() {
8693
8653
  mergeStatus: "merged",
8694
8654
  readyForMerge: false
8695
8655
  });
8696
- const { postMergeLifecycle } = await import("./merge-agent-BuoC_PRZ.js");
8656
+ const { postMergeLifecycle } = await import("./merge-agent-D-4_iQgy.js");
8697
8657
  postMergeLifecycle(issueId, resolved.projectPath).catch((err) => console.warn(`[deacon] postMergeLifecycle failed for ${issueId}: ${err}`));
8698
8658
  actions.push(`Auto-completed stale merge for ${issueId}`);
8699
8659
  } else {
@@ -8873,7 +8833,7 @@ function startDeacon() {
8873
8833
  logDeaconEventSync(`startDeacon: health monitor starting (patrol every ${config.patrolIntervalMs / 1e3}s)`);
8874
8834
  (async () => {
8875
8835
  await reconcileAgentLiveness();
8876
- const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-65W4yUQi.js");
8836
+ const { runBootAdvancingSelfHeal } = await import("./advancing-selfheal-BJAfiY-C.js");
8877
8837
  await runBootAdvancingSelfHeal();
8878
8838
  runScheduledPatrol("startup");
8879
8839
  })().catch((err) => {
@@ -8886,7 +8846,7 @@ function startDeacon() {
8886
8846
  }, config.patrolIntervalMs);
8887
8847
  memoryPatrolInterval = setInterval(() => {
8888
8848
  (async () => {
8889
- const { patrolMemoryPressure } = await import("./memory-pressure-patrol-DPb8foam.js");
8849
+ const { patrolMemoryPressure } = await import("./memory-pressure-patrol-C6DJJQRA.js");
8890
8850
  for (const action of await patrolMemoryPressure()) logDeaconEventSync(`memory-pressure-patrol: ${action}`);
8891
8851
  })().catch((err) => {
8892
8852
  logDeaconEventSync(`memory-pressure-patrol: error: ${err instanceof Error ? err.message : String(err)}`);
@@ -8958,4 +8918,4 @@ function assessDeaconPatrolFreshness(params) {
8958
8918
  //#endregion
8959
8919
  export { monitorReviewConvoySignals as $, reconcileAgentLiveness as A, cleanupClosedIssueAgentDirectories as B, getLastPatrolResult as C, isDeaconRunning as D, handleAgentStoppedForOrphanReviewerSessions as E, setAgentStatusChangedNotifier as F, redeliverUndeliveredKickoffs as G, isRapidPostResumeDeath as H, setAgentStoppedNotifier as I, isBootReconciliationCandidate as J, extendBootReconciliationGrace as K, setMergeReadyNotifier as L, resetPatrolHeartbeatForStartup as M, runPatrol as N, loadConfig as O, saveState as P, cleanupOrphanedReviewSessions as Q, startDeacon as R, getDeaconStatus as S, handleAgentStoppedEvent as T, nudgeIdleWorkAgentsWithOpenBeads as U, isPreKickoffLaunchDeath as V, nudgeStalledResumeWorkAgents as W, startBootReconciliation as X, listBootReconciliationCandidates as Y, resolveSwarmPolicy as Z, cleanupOrphanReviewerSessions as _, INSPECT_TIMEOUT_MS as _t, checkAwaitingTestWorkSessions as a, checkMissingReviewStatuses as at, containerRestartBackoffMs as b, checkMassDeath as c, handleWorkCompleted as ct, checkPendingTestDispatch as d, stalledReviewConvoyRecoveryState as dt, synthesizeReviewFromReports as et, checkReadyForMergeStuck as f, checkPostReviewCommits as ft, cleanupAbandonedFeedback as g, paneShowsClaudeBootBlockingScreen as gt, checkWorkspaceContainerHealth as h, stuckOverflowNativeRecoveryState as ht, checkAndSuspendIdleAgents as i, reconcileUnappliedReviewVerdicts as it, reconcileTestStatusFromGreenCi as j, loadState as k, checkMergedWorkSessions as l, recoverStalledReviewConvoys as lt, checkVerificationReviewContradiction as m, contextOverflowRecoveryState as mt, applyBootReconciliationDecision as n, checkStuckReviewing as nt, checkCompletedButUnsignaledTests as o, checkOrphanedReviewStatuses as ot, checkStuckWorkAgents as p, checkApiErrorAgents as pt, isAutoResumableRole as q, assessDeaconPatrolFreshness as r, isSynthesisForActiveReviewRun as rt, checkDeadEndAgents as s, handleReviewCoordinatorDied as st, MEMORY_PATROL_INTERVAL_MS as t, checkCompletedButUnsignaledReviews as tt, checkOrphanedCompletions as u, reviewConvoyLiveness as ut, cleanupOrphanedPlanningSessions as v, checkInspectAgentTimeouts as vt, handleAgentHeartbeatDeadEvent as w, getDeaconLogs as x, cleanupStaleAgentState as y, WORK_LAUNCHER_GRACE_MS as yt, stopDeacon as z };
8960
8920
 
8961
- //# sourceMappingURL=deacon-B24dNzr8.js.map
8921
+ //# sourceMappingURL=deacon-CsisLmPt.js.map