@overdeck/desktop 0.45.13 → 0.45.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CfujPRrz.js → acceptance-criteria-BZ_nQS1f.js} +2 -2
  3. package/server/{advancing-selfheal-Bn5QiLtn.js → advancing-selfheal-DJYAvGv-.js} +6 -5
  4. package/server/{agent-gc-Cl9Nm0Zu.js → agent-gc-D0wDIeV1.js} +3 -3
  5. package/server/{agent-state-C6Rm6FPR.js → agent-state-lGvgPP4m.js} +1 -1
  6. package/server/{agent-state-service-U8feBf8t.js → agent-state-service-CZrayD_G.js} +1 -1
  7. package/server/{agent-state-service-JhFzYCP_.js → agent-state-service-DFslS5go.js} +9 -52
  8. package/server/{agents-DqQa4Dq_.js → agents-B9GwfCyp.js} +155 -153
  9. package/server/{agents-CxbuBjID.js → agents-CEcaxSkR.js} +1 -1
  10. package/server/{archive-planning-CPitEZo4.js → archive-planning-CbghE9-o.js} +5 -5
  11. package/server/{archive-planning-DmpT1_14.js → archive-planning-CoyIbgGK.js} +1 -1
  12. package/server/{artifact-index-jobs-sMnNtPhy.js → artifact-index-jobs-CcSrUoSE.js} +2 -2
  13. package/server/auto-commit-IW-eik_b.js +3 -0
  14. package/server/{backlog-auto-trigger-Cf9C8fwD.js → backlog-auto-trigger-BfgDsII0.js} +3 -3
  15. package/server/{bd-process-lock-D1aJxeYv.js → bd-process-lock-XAXAet9O.js} +32 -11
  16. package/server/{beads-CivpXztb.js → beads-B1u04n3o.js} +1 -1
  17. package/server/{beads-DRoj6-e1.js → beads-BeSMEjGT.js} +96 -196
  18. package/server/{beads-query-tOsAYP5h.js → beads-query-Dl4FhT8J.js} +24 -99
  19. package/server/beads-restore-BUItPOjI.js +23 -0
  20. package/server/behavior-BTpYbAv4.js +10 -0
  21. package/server/{briefing-freshness-BL3Q6p7R.js → briefing-freshness-DESTCWo-.js} +4 -4
  22. package/server/{checkpoint-manager-DCxjQvP_.js → checkpoint-manager-BwFdegJF.js} +2 -2
  23. package/server/{checkpoint-manager-j5URlFY7.js → checkpoint-manager-DWSXooZV.js} +1 -1
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-BoX1H2Hf.js → checkpoints-BtUonbs3.js} +2 -2
  26. package/server/{checkpoints-Bu_M_Q9W.js → checkpoints-fjadfOKF.js} +1 -1
  27. package/server/{claude-hooks-provision-D-jGXmu1.js → claude-hooks-provision-DAtxutOs.js} +132 -114
  28. package/server/claude-hooks-provision-DiK62u0k.js +3 -0
  29. package/server/{claude-permissions-DxIjkOVl.js → claude-permissions-CThLgf8d.js} +2 -2
  30. package/server/{claude-settings-overlay-BPDS6GfE.js → claude-settings-overlay-BF9MPIwx.js} +2 -2
  31. package/server/{claude-settings-overlay-5b9X2S0C.js → claude-settings-overlay-Dx_Uqcmv.js} +1 -1
  32. package/server/{cli-s7bPWy-E.js → cli-ByKIIMfT.js} +9 -9
  33. package/server/cli-D9cUTbBr.js +3 -0
  34. package/server/{cliproxy-BituqWtR.js → cliproxy-B4c1BUvs.js} +2 -2
  35. package/server/{cliproxy-D3sHB0sI.js → cliproxy-C_GuT5DU.js} +1 -1
  36. package/server/{close-issue-CrBE7voz.js → close-issue-BOuLKr6e.js} +5 -5
  37. package/server/{closed-issue-reaper-BRQBc7Xa.js → closed-issue-reaper-CksfuiFD.js} +1 -1
  38. package/server/{closed-issue-reaper-DX9mYUji.js → closed-issue-reaper-DCAYzNXW.js} +102 -30
  39. package/server/{codex-Bi1ITSOo.js → codex-BYPz6ZdF.js} +1 -1
  40. package/server/{codex-CO0HrK3j.js → codex-BbqIRZjd.js} +6 -5
  41. package/server/{behavior-D3d2mVyD.js → codex-parser-mFYZh8vR.js} +3 -9
  42. package/server/{compact-beads-DUkCUFxA.js → compact-beads-CyJtoXJi.js} +15 -8
  43. package/server/{compact-beads-CrA8-k10.js → compact-beads-N00E4EVa.js} +1 -1
  44. package/server/{config-DsCxzjXK.js → config-DVLdmnMJ.js} +2 -2
  45. package/server/{config-B4_d7z7z.js → config-Dj6N8EP9.js} +1 -1
  46. package/server/{config-yaml-C_djSurJ.js → config-yaml-cNOZcEww.js} +118 -23
  47. package/server/{conflict-gate-D47Kl78u.js → conflict-gate-BMKm_5DV.js} +3 -3
  48. package/server/{conflict-gate-CpOn9KC-.js → conflict-gate-CuXUv-bP.js} +1 -1
  49. package/server/{context-layers-CHl3Nroz.js → context-layers-CeAwSYNt.js} +2 -2
  50. package/server/{context-layers-BNhUBTkf.js → context-layers-c0JqYHcS.js} +3 -3
  51. package/server/{control-settings-KyYNXZLv.js → control-settings-D4EFsRBd.js} +4 -4
  52. package/server/{conversation-compaction-D3aS5PnS.js → conversation-compaction-BCggyih4.js} +8 -8
  53. package/server/{conversation-compaction-D4Wed1BJ.js → conversation-compaction-kHVfVRg3.js} +1 -1
  54. package/server/{conversation-service-CFZIjs-M.js → conversation-service-B8LFQQm1.js} +6 -5
  55. package/server/{conversation-service-DcDB5usR.js → conversation-service-BTzObqGi.js} +1 -1
  56. package/server/{conversations-BSOU5qnu.js → conversations-B-lcHv-5.js} +4 -4
  57. package/server/{conversations-BbDPrz89.js → conversations-BM7zlXjr.js} +1 -1
  58. package/server/{cost-BE_ulOrw.js → cost-BcpRQ-7o.js} +3 -3
  59. package/server/{cost-CaiG63FG.js → cost-D9kPIY_5.js} +2 -2
  60. package/server/{cost-sync-D6AX8jv-.js → cost-sync-DF6odxK9.js} +3 -3
  61. package/server/{dag-BQFtXOuJ.js → dag-DKI3sOmX.js} +3 -3
  62. package/server/{dangerous-git-ops-04Ba-Qu3.js → dangerous-git-ops-Bn18PEcN.js} +1 -1
  63. package/server/dashboard-db-worker.js +6 -6
  64. package/server/{deacon-Bz-6Wjmn.js → deacon-DONuopff.js} +3 -3
  65. package/server/{deacon-2EvA9Ci3.js → deacon-DdARMjZq.js} +188 -1601
  66. package/server/{deacon-swarm-DYYOzHRH.js → deacon-swarm-BNGkmYR_.js} +12 -105
  67. package/server/deacon-swarm-CvdFekIO.js +2 -0
  68. package/server/deacon.js +7 -7
  69. package/server/{devcontainer-renderer-Dx0C7VWJ.js → devcontainer-renderer-C-34Sxyz.js} +3 -3
  70. package/server/{dist-ya66D9ze.js → dist-BMXvKiZP.js} +1 -1
  71. package/server/dist-BNwrgsUO.js +3 -0
  72. package/server/{dist-src-Byxt1ifL.js → dist-src-BgGUblXg.js} +1 -1
  73. package/server/{docker-D2TbXDO6.js → docker-apZ9pBYw.js} +67 -28
  74. package/server/{ensure-devcontainer-BTiMfFp5.js → ensure-devcontainer-Bqi1EF1P.js} +4 -4
  75. package/server/{ensure-devcontainer-BIShzs3M.js → ensure-devcontainer-Dq3KoOIl.js} +1 -1
  76. package/server/{esm-shims-DiV9jHa_.js → esm-shims-BEjvINX3.js} +1 -1
  77. package/server/{event-store-C02Gprug.js → event-store-CqDgfbAs.js} +1 -1
  78. package/server/{event-store-C71x6h0i.js → event-store-D89fMfXS.js} +3 -3
  79. package/server/{events-BFDuPV6n.js → events-S_C0pvl6.js} +3 -3
  80. package/server/{events-D2gP2-Yv.js → events-rIGncmP1.js} +1 -1
  81. package/server/export-BJHSVwKP.js +87 -0
  82. package/server/{factory-ByfbrCab.js → factory-DV18m0rc.js} +5 -5
  83. package/server/{feature-registry-population-CSH66UO8.js → feature-registry-population-CqZSnqQi.js} +4 -4
  84. package/server/{feature-registry-storage-DW7dUefc.js → feature-registry-storage-BeXmNBwK.js} +2 -2
  85. package/server/{features-x_aLR7U9.js → features-u5XeMaOK.js} +2 -2
  86. package/server/{feedback-target-BFo9fScH.js → feedback-target-CwyWf0Dg.js} +6 -6
  87. package/server/{feedback-target-C4VMPTZu.js → feedback-target-DDG1PWl3.js} +1 -1
  88. package/server/{feedback-writer-DCyd75yJ.js → feedback-writer-BsJiw5aT.js} +1 -1
  89. package/server/{feedback-writer-B9ZqnnX3.js → feedback-writer-D20HSXre.js} +4 -4
  90. package/server/{flywheel-DwQCoZQG.js → flywheel-9Y1X7IM-.js} +13 -13
  91. package/server/{flywheel-D9NKvWqb.js → flywheel-Dczmgchd.js} +23 -15
  92. package/server/{flywheel-DB48X7Nn.js → flywheel-RCnHAgc4.js} +1 -1
  93. package/server/{flywheel-merge-order-DrjmFXg4.js → flywheel-merge-order-CtCYsFJP.js} +7 -7
  94. package/server/{flywheel-merge-order-f1bi5XIf.js → flywheel-merge-order-DEtEd3aK.js} +1 -1
  95. package/server/forge-8y6aEPTB.js +2 -0
  96. package/server/{forge-C-SoKy8U.js → forge-DFDThFil.js} +2 -2
  97. package/server/{from-fu7ZumnY.js → from-NSJypkI8.js} +1 -1
  98. package/server/{fts-db-CL-YzSRG.js → fts-db-C5A_TTOM.js} +2 -2
  99. package/server/{fts-operations-Bylu5NjM.js → fts-operations-DvCSimfU.js} +2 -2
  100. package/server/{git-utils-Ym380hJZ.js → git-utils-C0neHvQx.js} +1 -1
  101. package/server/{git-utils-C8koBs8j.js → git-utils-Dr0L7mFk.js} +2 -2
  102. package/server/{github-app-DIr70YLg.js → github-app-Bwt9lK4A.js} +1 -1
  103. package/server/{github-app-DhycHVLF.js → github-app-u9-SX7Gc.js} +2 -2
  104. package/server/{github-client-7gkcXcBS.js → github-client-Btyy3uan.js} +3 -3
  105. package/server/{github-client-Ji9lUTNF.js → github-client-Do3k-N1W.js} +1 -1
  106. package/server/{github-pr-lookup-rt7T9FwA.js → github-pr-lookup-DOF1U2WW.js} +2 -2
  107. package/server/{harness-resolve-CvGXUnAF.js → harness-resolve-C6g2R0Cd.js} +3 -3
  108. package/server/{health-events-D4E1DLN-.js → health-events-B4u-2a9m.js} +2 -2
  109. package/server/{health-events-DDfkoO5a.js → health-events-Bos3sk5g.js} +1 -1
  110. package/server/{hooks-D_6pAbuJ.js → hooks-BCoOjL_R.js} +2 -2
  111. package/server/{hooks-DvdnCVv6.js → hooks-uEr8WTx_.js} +1 -1
  112. package/server/{hume-DkVOs1Qi.js → hume-BqxYKbUf.js} +2 -2
  113. package/server/hume-CerGi2RH.js +3 -0
  114. package/server/{idle-stack-reaper-cDRXDpgE.js → idle-stack-reaper-DbZ8ukMd.js} +2 -2
  115. package/server/{idle-stack-reaper-DNbV9-fj.js → idle-stack-reaper-H0W6XtHh.js} +1 -1
  116. package/server/{infra-Clew3DpF.js → infra-Ba9mS6e6.js} +3 -3
  117. package/server/{injection-QCIHOpk6.js → injection-C1DKXeIZ.js} +1 -1
  118. package/server/{injection-ql0Nddcn.js → injection-yrMBxzVq.js} +7 -7
  119. package/server/{inspect-agent-DY18KEx4.js → inspect-agent-B-mnb4uh.js} +9 -9
  120. package/server/inspect-agent-CWkeAB7J.js +2 -0
  121. package/server/{internal-token-C90jBp-y.js → internal-token-BPYEaXFh.js} +1 -1
  122. package/server/{internal-token-BeXjPLKy.js → internal-token-BtqSbKTx.js} +2 -2
  123. package/server/{io-CbAFXQge.js → io-VEGSAqsd.js} +15 -22
  124. package/server/{issue-closed-BYC2TCk-.js → issue-closed-BxcePXL-.js} +4 -4
  125. package/server/{issue-lifecycle-BoJa6qIt.js → issue-lifecycle--8MRxrG1.js} +22 -22
  126. package/server/{issue-lifecycle-CLHbj8RS.js → issue-lifecycle-CdMUauyb.js} +1 -1
  127. package/server/{issue-service-singleton-BS9NENuR.js → issue-service-singleton-CkTUI-eu.js} +10 -10
  128. package/server/{issue-service-singleton-3g_CCY-1.js → issue-service-singleton-MZsDhAob.js} +1 -1
  129. package/server/{issues-BPcqPqfV.js → issues-CBAsuoAO.js} +2 -2
  130. package/server/jsonl-parser-BUW5_sSK.js +245 -0
  131. package/server/{label-cleanup-CwiCSZrb.js → label-cleanup-htK6fBRU.js} +3 -3
  132. package/server/{layers-OHHLphl0.js → layers-jjL16At6.js} +2 -2
  133. package/server/{lifecycle-B8IdvUbt.js → lifecycle-Ck2UR27D.js} +7 -7
  134. package/server/{lifecycle-io-BMCH1Bxg.js → lifecycle-io-DXv8Utct.js} +1 -1
  135. package/server/{lifecycle-io-C73m5e6R.js → lifecycle-io-IehcRt2v.js} +36 -47
  136. package/server/{linear-client-BMxgycoy.js → linear-client-By7hjwuN.js} +1 -1
  137. package/server/{linear-client-CgQlM4aT.js → linear-client-D9cSQfvD.js} +3 -3
  138. package/server/memory-fts-worker.js +1 -1
  139. package/server/{merge-BRkVaIx-.js → merge-BLcEZNXz.js} +1 -1
  140. package/server/{merge-B7Oi-g6k.js → merge-BN8FGJ2q.js} +3 -3
  141. package/server/{merge-agent-DNFFsiEm.js → merge-agent-B3u2szOL.js} +29 -29
  142. package/server/{merge-agent-Bwm34MZ5.js → merge-agent-ejC7Wos8.js} +1 -1
  143. package/server/{merge-batch-BpYXUaqJ.js → merge-batch-DyqlgYGp.js} +1 -1
  144. package/server/{merge-blockers-DIOZmqdK.js → merge-blockers-cq-aS2KG.js} +2 -2
  145. package/server/merge-ops-CFkQtXEj.js +2 -0
  146. package/server/{merge-rebase-C8WH39MB.js → merge-rebase-Dl7yIxtV.js} +2 -2
  147. package/server/{merge-set-CsEE2CyQ.js → merge-set-CZ9Nbay0.js} +3 -3
  148. package/server/{merge-set-DOsBTBQc.js → merge-set-Dy0D0r3i.js} +1 -1
  149. package/server/{merge-sync-CcLM2vwW.js → merge-sync-CG9kDCdT.js} +1 -1
  150. package/server/{merge-sync-C2B322Ot.js → merge-sync-D7jWLgCC.js} +2 -2
  151. package/server/{merge-train-BIm7-7cy.js → merge-train-CH33XJOH.js} +3 -3
  152. package/server/{merge-train-deps-DG1oQ2DT.js → merge-train-deps-JoVdGnOg.js} +4 -4
  153. package/server/{merge-verification-BAbjxEd5.js → merge-verification-D4wTChdX.js} +4 -4
  154. package/server/{multipart-parser-jKtKAXtl.js → multipart-parser-Csn8U-K9.js} +2 -2
  155. package/server/{no-resume-mode-yrPEQ_pC.js → no-resume-mode-Gh5R_YLF.js} +1 -1
  156. package/server/node_modules/.package-lock.json +1 -1
  157. package/server/{orphan-proposed-reconciler-BqVGaOIj.js → orphan-proposed-reconciler-BIcNu4tl.js} +1 -1
  158. package/server/{orphan-proposed-reconciler-zHrwJ3xr.js → orphan-proposed-reconciler-DI_IS1p_.js} +15 -39
  159. package/server/package-lock.json +2 -2
  160. package/server/package.json +1 -1
  161. package/server/{pan-dir-BlNrLzW7.js → pan-dir-CQIfKG8c.js} +4 -4
  162. package/server/{paths-CiVeo4N_.js → paths-Blj6A9AJ.js} +2 -2
  163. package/server/{pickup-KLRUhThD.js → pickup-BtvRBbvI.js} +1 -1
  164. package/server/{pipeline-notifier-nkWCe042.js → pipeline-notifier-BH4PAi-w.js} +1 -1
  165. package/server/{pipeline-notifier-DBF6dHxH.js → pipeline-notifier-D_WYtEwl.js} +2 -2
  166. package/server/project-pipelines-jMTitpeO.js +162 -0
  167. package/server/projects-CrBE6IhN.js +3 -0
  168. package/server/{prompts-CXbQvevY.js → prompts-B3njaImU.js} +2 -2
  169. package/server/{providers-CUdAb5Qu.js → providers-BbEyFhPX.js} +7 -7
  170. package/server/providers-DnPxkHoG.js +3 -0
  171. package/server/public/assets/chunk-BO2N2NFS-3qh9TUJi.js +103 -0
  172. package/server/public/assets/{diagram-OG6HWLK6-NACO1xW5.js → diagram-OG6HWLK6-D8UVTPj7.js} +1 -1
  173. package/server/public/assets/{dist-DQD-ZjQY.js → dist-BvLLn1YC.js} +3 -3
  174. package/server/public/assets/{dist-D1FjqGgm.js → dist-CyubL7Wj.js} +1 -1
  175. package/server/public/assets/{ganttDiagram-6RSMTGT7-CEMAKgmE.js → ganttDiagram-6RSMTGT7-BI4E1LbQ.js} +1 -1
  176. package/server/public/assets/{highlighted-body-OFNGDK62-D5lC7FW8.js → highlighted-body-OFNGDK62-D_bapWkF.js} +1 -1
  177. package/server/public/assets/index-BAZxZ-8I.js +796 -0
  178. package/server/public/assets/index-FBG3JBfq.css +1 -0
  179. package/server/public/assets/{linear-DDHAMRPB.js → linear-CEdobObr.js} +1 -1
  180. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +1 -0
  181. package/server/public/assets/{pieDiagram-4H26LBE5-DwBdeKBb.js → pieDiagram-4H26LBE5-DT79L01f.js} +1 -1
  182. package/server/public/assets/{prod-DAZt0c4G.js → prod-CR_K2DFV.js} +4 -4
  183. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CNDLp-_m.js → quadrantDiagram-W4KKPZXB-BEkKXXrL.js} +1 -1
  184. package/server/public/assets/{sankeyDiagram-5OEKKPKP-oIUL_uO1.js → sankeyDiagram-5OEKKPKP-BxSCqn-j.js} +1 -1
  185. package/server/public/assets/{xychartDiagram-2RQKCTM6-B-IM6Cck.js → xychartDiagram-2RQKCTM6-DicwJGG_.js} +1 -1
  186. package/server/public/index.html +2 -2
  187. package/server/{pull-requests-DZ-V7_LB.js → pull-requests-43LPDfM8.js} +1 -1
  188. package/server/{pull-requests-kTRl7cWC.js → pull-requests-DyUkQl4W.js} +3 -3
  189. package/server/{rally-xCTZ-UcI.js → rally-BtWjybOa.js} +3 -3
  190. package/server/{rally-api-jOk4vit_.js → rally-api-B-YA_oXx.js} +1 -1
  191. package/server/{rally-api-DpZo3WwF.js → rally-api-B-osULNL.js} +2 -2
  192. package/server/{rally-client-BQjm3aaq.js → rally-client-CzFymP7P.js} +1 -1
  193. package/server/{rally-client-CoWZeVEj.js → rally-client-sErNQBO0.js} +5 -5
  194. package/server/rally-oggyp4cs.js +3 -0
  195. package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-2s-fvilz.js} +1 -1
  196. package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-DnDQ7pf9.js} +1 -1
  197. package/server/{rebuild-stack-BZ7j27xY.js → rebuild-stack-CoU-HqZj.js} +6 -6
  198. package/server/{rebuild-stack-r-cxcr26.js → rebuild-stack-nGD_nPZo.js} +1 -1
  199. package/server/{reconstruct-cache-13EkMg_i.js → reconstruct-cache-Wj8GrYB0.js} +6 -6
  200. package/server/record-lEYK__LD.js +3 -0
  201. package/server/recovery-trip-BT7nb9OV.js +98 -0
  202. package/server/{release-engine-YLTnEO_K.js → release-engine-CBLQXDlH.js} +5 -5
  203. package/server/{release-set-DwvT_Opu.js → release-set-BNiqi7hy.js} +3 -3
  204. package/server/{remote-B062S1Kc.js → remote-DW_TWQnr.js} +3 -3
  205. package/server/{remote-9u9WL0NJ.js → remote-DcO9An_f.js} +3 -3
  206. package/server/{remote-agents-BBTg-vLT.js → remote-agents-C4cyxHQS.js} +6 -6
  207. package/server/{remote-agents-B4eWgwNd.js → remote-agents-Cv-U-_V8.js} +1 -1
  208. package/server/{remote-completion-B0rmBnbL.js → remote-completion-PhXGGFQy.js} +13 -13
  209. package/server/resolver-C7dLn8OK.js +158 -0
  210. package/server/resume-BYZBIab-.js +3 -0
  211. package/server/{review-agent-tfR5RDzG.js → review-agent-Dn-yn7Zj.js} +23 -23
  212. package/server/{review-agent-Bf9XjLnl.js → review-agent-u5q3ip7H.js} +1 -1
  213. package/server/{review-artifacts-D0_IE6DQ.js → review-artifacts-D4T04aYI.js} +6 -6
  214. package/server/{review-context-CXO5ml5D.js → review-context-Rc0VDLG_.js} +8 -8
  215. package/server/{review-monitor-DfFUSx0J.js → review-monitor-BC--miCO.js} +2 -2
  216. package/server/{review-status-B0Axo-Ma.js → review-status-CG0iDuWa.js} +1 -1
  217. package/server/{review-status-BcfwcAcO.js → review-status-Dc1l4dVz.js} +18 -18
  218. package/server/{review-status-enrichment-Cp5kFTGl.js → review-status-enrichment-C1a1OG_1.js} +3 -3
  219. package/server/{review-status-sync-CEFty1pW.js → review-status-sync-CAr-hfnJ.js} +2 -2
  220. package/server/{review-status-sync-Bc0c_u12.js → review-status-sync-CfSixhhX.js} +1 -1
  221. package/server/{review-verdict-feedback-BOKRLLDf.js → review-verdict-feedback-CVDbIDBe.js} +7 -7
  222. package/server/{review-verdict-feedback-BnGtT0vN.js → review-verdict-feedback-D2Q960wX.js} +1 -1
  223. package/server/{rollup-BVqFuiS9.js → rollup-CakjztPl.js} +1 -1
  224. package/server/{rollup-C22QDVxh.js → rollup-DctoIu-A.js} +8 -8
  225. package/server/{scanner-BLCnuXqY.js → scanner-BTM1jc_u.js} +7 -7
  226. package/server/{sequence-io-BozlUb6f.js → sequence-io-pnoIDGv4.js} +4 -4
  227. package/server/{sequencer-agent-BEDEHfd2.js → sequencer-agent-9Soi-WL-.js} +10 -6
  228. package/server/server.js +1239 -1836
  229. package/server/{service-C8jKYZ0w.js → service-DfTVoqJg.js} +1668 -1408
  230. package/server/{session-fork-BDGksK4e.js → session-fork-C4jAFHj8.js} +2 -2
  231. package/server/session-history-DanhhiCw.js +168 -0
  232. package/server/{settings-CSLhh6qR.js → settings-Cuc12oP_.js} +2 -2
  233. package/server/settings-Cy7SCFO9.js +2 -0
  234. package/server/{settings-DrRQCren.js → settings-DfT3f86D.js} +3 -3
  235. package/server/{shadow-engineering-BMcBN-Of.js → shadow-engineering-bKuKTCn-.js} +3 -3
  236. package/server/{shadow-state-CHqWHD3T.js → shadow-state-CVHpRWlb.js} +1 -1
  237. package/server/{shadow-state-B4ayC7nx.js → shadow-state-DJz6_pb_.js} +2 -2
  238. package/server/{ship-log-CDVmOlZP.js → ship-log-CwqPFfqx.js} +1 -1
  239. package/server/{smart-compaction-V9DBrGcr.js → smart-compaction-B4KlpZGN.js} +1 -1
  240. package/server/{smart-compaction-C-F5sP9P.js → smart-compaction-CiWfGfRZ.js} +7 -7
  241. package/server/{spawn-planning-session-dSpOU0lP.js → spawn-planning-session-CU-DwyDl.js} +15 -15
  242. package/server/{spawn-planning-session-Bz4_JES2.js → spawn-planning-session-D5N3RuLG.js} +1 -1
  243. package/server/{specialist-completion-Coz3eTSr.js → specialist-completion-CJcv-NXH.js} +1 -1
  244. package/server/{specialist-context-fmb03vXQ.js → specialist-context-B2HlbNxS.js} +5 -5
  245. package/server/{specialist-handoff-logger-B9HK_lRu.js → specialist-handoff-logger-CQyF1ygu.js} +2 -2
  246. package/server/{specialist-logs-B24R2B9Y.js → specialist-logs-CdcUpfjj.js} +3 -3
  247. package/server/{specialists-CL7E8yUg.js → specialists-CFgw_0Q6.js} +1657 -113
  248. package/server/{specialists-BGNZ0_ZW.js → specialists-CwzFdapR.js} +20 -256
  249. package/server/{specialists-B6f5-5nG.js → specialists-D7AcFi1u.js} +1 -1
  250. package/server/{specialists-Chvvwf5z.js → specialists-k22_Btaq.js} +1 -1
  251. package/server/specs-RzcDgozr.js +3 -0
  252. package/server/{src-DGAEtABV.js → src-B4TTzNSr.js} +84 -2
  253. package/server/{src-BVxZuHMg.js → src-BvpMg4EB.js} +3 -3
  254. package/server/{src-D-VXCC9C.js → src-D4YUZrwR.js} +6 -6
  255. package/server/{stack-health-C-le5erA.js → stack-health-CSgcYcr8.js} +2 -2
  256. package/server/{stack-health-BKbTTOT2.js → stack-health-DVN7zRnL.js} +1 -1
  257. package/server/{state-home-CoyWsECg.js → state-home-CEvD_v5F.js} +6 -6
  258. package/server/{state-mapping-BvAgFK8n.js → state-mapping-C13UaCL7.js} +1 -1
  259. package/server/stuck-remediation-CxsyxwFO.js +1513 -0
  260. package/server/stuck-remediation-nTIvhGOR.js +2 -0
  261. package/server/{summary-fork-BF_0vxrq.js → summary-fork-CnRMPCYd.js} +2 -2
  262. package/server/{summary-fork-BlE30Q-I.js → summary-fork-gKSoFAnK.js} +8 -8
  263. package/server/{supervisor-BSeML_p0.js → supervisor-CZMs8s0M.js} +2 -2
  264. package/server/supervisor-CfX192ma.js +2 -0
  265. package/server/{swarm-readiness-CQ4sjrXc.js → swarm-readiness-h6-pwY8w.js} +3 -3
  266. package/server/{system-prerequisites-DnmLYOnU.js → system-prerequisites-DZZTi2G6.js} +1 -1
  267. package/server/{teardown-workspace-CpcjDrZ4.js → teardown-workspace-B4D-oCVg.js} +37 -68
  268. package/server/{test-agent-queue-Bq298zZl.js → test-agent-queue-CnuYku4B.js} +6 -6
  269. package/server/{test-verdict-CCDd25uN.js → test-verdict-CRsPpByy.js} +1 -1
  270. package/server/{test-verdict-Bm4uv_AA.js → test-verdict-CXMLATGc.js} +1 -1
  271. package/server/{tldr-daemon-Rn1Zue0P.js → tldr-daemon-CgZQ3jmZ.js} +1 -1
  272. package/server/{tldr-daemon-CaSUXd9r.js → tldr-daemon-CuA8hz21.js} +2 -2
  273. package/server/{tmux-CbcrkUx5.js → tmux-By8E_Yv_.js} +1 -1
  274. package/server/{tmux-BVc-NeKM.js → tmux-C3g9VFcg.js} +2 -2
  275. package/server/{token-D2OC_9ms.js → token-g_sJ19g3.js} +2 -2
  276. package/server/token-util-C9u4An3K.js +3 -0
  277. package/server/{token-util-CROoF5ic.js → token-util-DiwnnbJo.js} +1 -1
  278. package/server/{tracker-config-EsBoOWEy.js → tracker-config-BzfVj41Z.js} +1 -1
  279. package/server/{tracker-config-C1Y_2CIo.js → tracker-config-dQxC15vH.js} +2 -2
  280. package/server/{tracker-utils-lph9C3Pw.js → tracker-utils--z8FLSWn.js} +2 -2
  281. package/server/{tracker-utils-DSb9cfrF.js → tracker-utils-DkKyRT0H.js} +1 -1
  282. package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-CZYB3dlm.js} +1 -1
  283. package/server/{tunnel-BFBCeo97.js → tunnel-BpWZs0Jy.js} +3 -3
  284. package/server/{tunnel-DDe-ATFF.js → tunnel-CN2px87h.js} +1 -1
  285. package/server/{typed-errors-DSPn_xWP.js → typed-errors-CrN1AByg.js} +1 -1
  286. package/server/{typed-errors-BEJhbjJg.js → typed-errors-sLpGfegz.js} +1 -1
  287. package/server/{types-CE1m_daD.js → types-BLS_Zbmd.js} +1 -1
  288. package/server/{types-B5u3NxMl.js → types-tlXf80x3.js} +1 -1
  289. package/server/{uat-train-DtKHHy1U.js → uat-train-BRo6DM7p.js} +24 -24
  290. package/server/{uat-train-8T24rPzc.js → uat-train-utGVmqdm.js} +1 -1
  291. package/server/{validation-lyudzPvD.js → validation-CsPVsoA0.js} +4 -4
  292. package/server/{validation-COOXwNXU.js → validation-Dq_wwcw3.js} +1 -1
  293. package/server/{verification-runner-DO0nYTJx.js → verification-runner-CMT5WRMS.js} +12 -12
  294. package/server/{verification-runner-Dd1FX8Qk.js → verification-runner-D0Uh-9jc.js} +1 -1
  295. package/server/{vtt-parser-C57tEF7-.js → vtt-parser-C_XPlifj.js} +1 -1
  296. package/server/{work-agent-prompt-B2F3ZwKm.js → work-agent-prompt-ZTAb2Hyf.js} +12 -12
  297. package/server/workflows-BLwxUMP7.js +2 -0
  298. package/server/{workflows-Clz_AFwR.js → workflows-CXRwhw_o.js} +14 -14
  299. package/server/{workspace-D0rCFemz.js → workspace-9UEsKuiP.js} +1 -1
  300. package/server/{workspace-CY_2-Ddv.js → workspace-CNfuj1-5.js} +3 -3
  301. package/server/{workspace-config-DA8U97k9.js → workspace-config-ChWOECy0.js} +1 -1
  302. package/server/{workspace-manager-BIfpzqdU.js → workspace-manager-BO-6k3sP.js} +1 -1
  303. package/server/{workspace-manager-D6NgGkiF.js → workspace-manager-D8AByFIT.js} +13 -13
  304. package/server/{workspace-metadata-C8yn8kAH.js → workspace-metadata-CvC268MN.js} +2 -2
  305. package/server/{workspace-metadata-DfgR40YU.js → workspace-metadata-DZiJtnuF.js} +1 -1
  306. package/server/{workspaces-DOeHyKmA.js → workspaces-D-uIoqbg.js} +104 -122
  307. package/server/writer-BUweuRPx.js +3 -0
  308. package/server/writer-CrP2xuBn.js +251 -0
  309. package/sync-sources/hooks/ask-user-question-hook +7 -1
  310. package/sync-sources/hooks/record-cost-event.js +4 -3
  311. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  312. package/server/agent-runtime-mirror-DrWxopNA.js +0 -37
  313. package/server/auto-commit-wZ9X7Isd.js +0 -3
  314. package/server/bd-mutex-BItGvLQ8.js +0 -35
  315. package/server/beads-restore-CMbDSB5R.js +0 -60
  316. package/server/cli-CqgiSAU8.js +0 -3
  317. package/server/deacon-swarm-B8pgK2a7.js +0 -2
  318. package/server/dist-BYSj075e.js +0 -3
  319. package/server/forge-CUCYK7h_.js +0 -2
  320. package/server/hume-x9voULey.js +0 -3
  321. package/server/inspect-agent-D8UBDgfR.js +0 -2
  322. package/server/merge-ops-B7m-hBEZ.js +0 -2
  323. package/server/projects-BqRMlDOv.js +0 -3
  324. package/server/providers-gZ0cUgQM.js +0 -3
  325. package/server/public/assets/chunk-BO2N2NFS-C-6y8VFI.js +0 -103
  326. package/server/public/assets/index-BDqWyuZQ.js +0 -796
  327. package/server/public/assets/index-CZiADHcL.css +0 -1
  328. package/server/public/assets/mermaid-GHXKKRXX-DRM2ANcR.js +0 -1
  329. package/server/rally-CRteqXe0.js +0 -3
  330. package/server/record-CJsjvRO4.js +0 -3
  331. package/server/resume-R7xkSmLW.js +0 -3
  332. package/server/settings-CSaXtkoA.js +0 -2
  333. package/server/specs-oaaYaA5c.js +0 -3
  334. package/server/supervisor-03Tj_Wra.js +0 -2
  335. package/server/token-util-xNaV-00f.js +0 -3
  336. package/server/workflows-B4fIN8VP.js +0 -2
@@ -1,11 +1,12 @@
1
- import { C as resolveTieredExecutionEnabled, Ln as listProjectsSync, Mt as readIssueRecordForWorkspaceSync, Nn as init_projects, Ot as init_record, Rt as writeIssueRecordForWorkspaceSync, S as init_tier_table, Tt as getIssueRecordPathForWorkspace, f as loadConfigSync, ln as init_state_plane, t as init_config_yaml, un as isStatePlaneOnlyStatus } from "./config-yaml-C_djSurJ.js";
2
- import { C as isPaneDead, E as listPaneValues, L as sessionExists, O as listSessionNames, i as capturePane, x as init_tmux } from "./tmux-BVc-NeKM.js";
3
- import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-BcfwcAcO.js";
4
- import { A as init_messaging, Fn as init_agent_state, Ft as init_spawn_prep, G as init_termination, H as init_spawn, Ht as resolveTier, K as stopAgent, Pn as getAgentStateSync, Pt as defaultRunWorkspace, Vt as init_resolve_tier, W as spawnRun, _ as init_slot_reconcile, _t as init_config, at as init_concurrency, br as init_agent_runtime, c as init_tier_supervisor, d as spawnTierSupervisor, f as supervisorAgentId, ft as getCachedMemoryVerdict, it as getConcurrencyLimits, j as messageAgent, jn as getAgentResumeGateBlockReason, kn as decideResumeGate, l as loadPrdDraft, m as init_tier_feed, p as broadcastCommit, pt as init_memory_verdict_cache, s as deliverCommitForReview, st as releaseSwarmSlot, tt as countRunningSwarmSlotsForIssue, u as shouldSupervise, ut as tryReserveSwarmSlot, v as listSlotAssignments, y as reconcileSlotState, yr as getAgentRuntimeSnapshot, yt as loadCloisterConfigSync } from "./agents-DqQa4Dq_.js";
5
- import { C as findSpecByIssue, T as init_specs, n as applyStatusOverrides, o as init_io } from "./io-CbAFXQge.js";
6
- import { s as init_control_settings, u as isDeaconGloballyPausedSync } from "./control-settings-KyYNXZLv.js";
7
- import { a as createActiveSlice, n as applyTaskOperationToPlanFile, r as blockingParentCount, s as getDispatchableItems, u as init_dag } from "./dag-BQFtXOuJ.js";
8
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-CQ4sjrXc.js";
1
+ import { C as init_tier_table, Et as getIssueRecordPathForWorkspace, Fn as init_projects, Nt as readIssueRecordForWorkspaceSync, dn as init_state_plane, f as loadConfigSync, fn as isStatePlaneOnlyStatus, kt as init_record, t as init_config_yaml, w as resolveTieredExecutionEnabled, zn as listProjectsSync, zt as writeIssueRecordForWorkspaceSync } from "./config-yaml-cNOZcEww.js";
2
+ import { C as isPaneDead, E as listPaneValues, L as sessionExists, O as listSessionNames, i as capturePane, x as init_tmux } from "./tmux-C3g9VFcg.js";
3
+ import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-Dc1l4dVz.js";
4
+ import { A as init_messaging, Fn as init_agent_state, Ft as init_spawn_prep, G as init_termination, H as init_spawn, Ht as resolveTier, K as stopAgent, Pn as getAgentStateSync, Pt as defaultRunWorkspace, Vt as init_resolve_tier, W as spawnRun, _ as init_slot_reconcile, _r as init_agent_runtime, _t as init_config, at as init_concurrency, c as init_tier_supervisor, d as spawnTierSupervisor, f as supervisorAgentId, ft as getCachedMemoryVerdict, gr as getAgentRuntimeSnapshot, it as getConcurrencyLimits, j as messageAgent, jn as getAgentResumeGateBlockReason, kn as decideResumeGate, l as loadPrdDraft, m as init_tier_feed, p as broadcastCommit, pt as init_memory_verdict_cache, s as deliverCommitForReview, st as releaseSwarmSlot, tt as countRunningSwarmSlotsForIssue, u as shouldSupervise, ut as tryReserveSwarmSlot, v as listSlotAssignments, y as reconcileSlotState, yt as loadCloisterConfigSync } from "./agents-B9GwfCyp.js";
5
+ import { C as findSpecByIssue, T as init_specs, n as applyStatusOverrides, o as init_io } from "./io-VEGSAqsd.js";
6
+ import { s as init_control_settings, u as isDeaconGloballyPausedSync } from "./control-settings-D4EFsRBd.js";
7
+ import { a as createActiveSlice, n as applyTaskOperationToPlanFile, r as blockingParentCount, s as getDispatchableItems, u as init_dag } from "./dag-DKI3sOmX.js";
8
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-h6-pwY8w.js";
9
+ import { i as writeSwarmFinalizedAt, n as clearSwarmSlotCompletion, r as createMinimalIssueRecord, t as recordRecoveryFailure } from "./recovery-trip-BT7nb9OV.js";
9
10
  import { join } from "node:path";
10
11
  import { Effect } from "effect";
11
12
  import { existsSync, readdirSync } from "fs";
@@ -303,7 +304,7 @@ async function defaultRequestIssueReview(issueId, workspacePath) {
303
304
  autoRequeueCount: 0,
304
305
  reviewRequestedAt: (/* @__PURE__ */ new Date()).toISOString()
305
306
  });
306
- const { spawnReviewRoleForIssue } = await import("./review-agent-Bf9XjLnl.js");
307
+ const { spawnReviewRoleForIssue } = await import("./review-agent-u5q3ip7H.js");
307
308
  return Effect.runPromise(spawnReviewRoleForIssue({
308
309
  issueId,
309
310
  workspace: workspacePath,
@@ -364,65 +365,6 @@ async function gcMergedSlots(issueId, workspacePath, slots, deps) {
364
365
  return actions;
365
366
  }
366
367
  //#endregion
367
- //#region ../../lib/cloister/deacon-swarm-record.ts
368
- function createMinimalIssueRecord(issueId) {
369
- const now = (/* @__PURE__ */ new Date()).toISOString();
370
- return {
371
- issueId,
372
- schemaVersion: 2,
373
- created: now,
374
- updated: now,
375
- feedback: [],
376
- pipeline: {
377
- issueId,
378
- reviewStatus: "pending",
379
- testStatus: "pending",
380
- mergeStatus: "pending",
381
- readyForMerge: false,
382
- updatedAt: now
383
- },
384
- closeOut: {
385
- usage: {
386
- byStage: {},
387
- totals: {}
388
- },
389
- merges: [],
390
- ranOn: ""
391
- }
392
- };
393
- }
394
- function writeSwarmFinalizedAt(workspacePath, issueId, finalizedAt) {
395
- const normalizedIssueId = issueId.toUpperCase();
396
- const record = readIssueRecordForWorkspaceSync(workspacePath, normalizedIssueId) ?? createMinimalIssueRecord(normalizedIssueId);
397
- writeIssueRecordForWorkspaceSync(workspacePath, normalizedIssueId, {
398
- ...record,
399
- swarm: {
400
- ...record.swarm ?? {},
401
- finalizedAt
402
- }
403
- });
404
- }
405
- /**
406
- * PAN-2372 WI-3 / FR-6: clear a slot's completion marker once the coordinator
407
- * (WI-4) has consumed it (merge/requeue). No-op when no marker exists for the
408
- * slot, so callers can clear unconditionally on the terminal transition.
409
- */
410
- function clearSwarmSlotCompletion(workspacePath, issueId, slotIndex) {
411
- const normalizedIssueId = issueId.toUpperCase();
412
- const record = readIssueRecordForWorkspaceSync(workspacePath, normalizedIssueId);
413
- const existing = record?.swarm?.slotCompletions;
414
- if (!existing || !(String(slotIndex) in existing)) return;
415
- const next = { ...existing };
416
- delete next[String(slotIndex)];
417
- writeIssueRecordForWorkspaceSync(workspacePath, normalizedIssueId, {
418
- ...record,
419
- swarm: {
420
- ...record.swarm,
421
- slotCompletions: next
422
- }
423
- });
424
- }
425
- //#endregion
426
368
  //#region ../../lib/cloister/swarm-tiered-hooks.ts
427
369
  /**
428
370
  * PAN-2385 — tiered-execution commit hooks for the swarm dispatch path.
@@ -543,40 +485,6 @@ async function fireTieredCommitHooks(options, deps = defaultDeps$1) {
543
485
  return actions;
544
486
  }
545
487
  //#endregion
546
- //#region ../../lib/cloister/recovery-trip.ts
547
- init_record();
548
- function recordRecoveryFailure(workspacePath, issue, recoveryPath, obligationGeneration, threshold = 25, now = /* @__PURE__ */ new Date()) {
549
- const normalized = issue.toUpperCase();
550
- const record = readIssueRecordForWorkspaceSync(workspacePath, normalized) ?? createMinimalIssueRecord(normalized);
551
- const trips = [...record.recoveryTrips ?? []];
552
- const index = trips.findIndex((trip) => trip.issue === normalized && trip.recoveryPath === recoveryPath && trip.obligationGeneration === obligationGeneration);
553
- const prior = index >= 0 ? trips[index] : void 0;
554
- if (prior?.open) return {
555
- trip: prior,
556
- emitNeedsYou: false
557
- };
558
- const tripCount = (prior?.tripCount ?? 0) + 1;
559
- const emitNeedsYou = tripCount >= threshold && !prior?.open;
560
- const trip = {
561
- issue: normalized,
562
- recoveryPath,
563
- obligationGeneration,
564
- tripCount,
565
- open: prior?.open === true || emitNeedsYou,
566
- ...prior?.needsYouEmittedAt ? { needsYouEmittedAt: prior.needsYouEmittedAt } : emitNeedsYou ? { needsYouEmittedAt: now.toISOString() } : {}
567
- };
568
- if (index >= 0) trips[index] = trip;
569
- else trips.push(trip);
570
- writeIssueRecordForWorkspaceSync(workspacePath, normalized, {
571
- ...record,
572
- recoveryTrips: trips
573
- });
574
- return {
575
- trip,
576
- emitNeedsYou
577
- };
578
- }
579
- //#endregion
580
488
  //#region ../../lib/cloister/redrive-gate.ts
581
489
  /**
582
490
  * PAN-2543 shared autonomous re-drive gate.
@@ -611,7 +519,6 @@ function decideAgentAutonomousRedrive(state, agentDir, owesRework) {
611
519
  }
612
520
  //#endregion
613
521
  //#region ../../lib/cloister/swarm-failed-slot.ts
614
- init_record();
615
522
  init_agent_state();
616
523
  async function archiveFailedSwarmSlot(issueId, workspacePath, slot, deps, now = /* @__PURE__ */ new Date()) {
617
524
  const normalized = issueId.toUpperCase();
@@ -1336,6 +1243,6 @@ function registeredSlotCapacityAvailable(issueId, selectedCount, liveSlotCount =
1336
1243
  return liveSlotCount + selectedCount < limits.reservedSwarmSlots;
1337
1244
  }
1338
1245
  //#endregion
1339
- export { recordRecoveryFailure as _, getFailedMergeBlock as a, listFeatureWorkspaces as b, isSwarmAdvanceCoolingDown as c, recordStalledSlotRecovery as d, recordSwarmAdvanceFailure as f, decideAgentAutonomousRedrive as g, registeredSlotCapacityAvailable as h, dispatchNextWave as i, mergeReadySlots as l, recordSwarmFinalizedAt as m, classifyInFlightSlots as n, getFailedMergeBlocks as o, recordSwarmAdvanceSuccess as p, coordinateSwarmSlots as r, getSwarmFinalizedAt as s, allocateSlotIndex as t, recordFailedMergeBlock as u, gcMergedSlots as v, gcOrphanedSlots as y };
1246
+ export { gcMergedSlots as _, getFailedMergeBlock as a, isSwarmAdvanceCoolingDown as c, recordStalledSlotRecovery as d, recordSwarmAdvanceFailure as f, decideAgentAutonomousRedrive as g, registeredSlotCapacityAvailable as h, dispatchNextWave as i, mergeReadySlots as l, recordSwarmFinalizedAt as m, classifyInFlightSlots as n, getFailedMergeBlocks as o, recordSwarmAdvanceSuccess as p, coordinateSwarmSlots as r, getSwarmFinalizedAt as s, allocateSlotIndex as t, recordFailedMergeBlock as u, gcOrphanedSlots as v, listFeatureWorkspaces as y };
1340
1247
 
1341
- //# sourceMappingURL=deacon-swarm-DYYOzHRH.js.map
1248
+ //# sourceMappingURL=deacon-swarm-BNGkmYR_.js.map
@@ -0,0 +1,2 @@
1
+ import { r as coordinateSwarmSlots } from "./deacon-swarm-BNGkmYR_.js";
2
+ export { coordinateSwarmSlots };
package/server/deacon.js CHANGED
@@ -1,11 +1,11 @@
1
- import { rn as init_auto_commit, tn as flushAllPendingAutoCommits } from "./config-yaml-C_djSurJ.js";
1
+ import { in as init_auto_commit, nn as flushAllPendingAutoCommits } from "./config-yaml-cNOZcEww.js";
2
2
  import { a as init_activity_logger, o as setActivityEventStoreProvider } from "./activity-logger-pcbf-e30.js";
3
- import { c as init_review_status, s as getReviewStatusSync } from "./review-status-BcfwcAcO.js";
4
- import { Mn as getAgentState, t as init_agents } from "./agents-DqQa4Dq_.js";
5
- import { r as setCloisterEventStoreProvider, t as getCloisterService } from "./service-C8jKYZ0w.js";
6
- import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-BeXjPLKy.js";
7
- import { F as setAgentStatusChangedNotifier, I as setAgentStoppedNotifier, L as setMergeReadyNotifier, M as resetPatrolHeartbeatForStartup, N as runPatrol } from "./deacon-2EvA9Ci3.js";
8
- import { t as enrichReviewStatus } from "./review-status-enrichment-Cp5kFTGl.js";
3
+ import { c as init_review_status, s as getReviewStatusSync } from "./review-status-Dc1l4dVz.js";
4
+ import { Mn as getAgentState, t as init_agents } from "./agents-B9GwfCyp.js";
5
+ import { r as setCloisterEventStoreProvider, t as getCloisterService } from "./service-DfTVoqJg.js";
6
+ import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-BtqSbKTx.js";
7
+ import { F as setAgentStatusChangedNotifier, I as setAgentStoppedNotifier, L as setMergeReadyNotifier, M as resetPatrolHeartbeatForStartup, N as runPatrol } from "./deacon-DdARMjZq.js";
8
+ import { t as enrichReviewStatus } from "./review-status-enrichment-C1a1OG_1.js";
9
9
  import { Effect } from "effect";
10
10
  import { randomUUID } from "node:crypto";
11
11
  //#region ../../lib/cloister/deacon-event-client.ts
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-DA8U97k9.js";
2
+ import { xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-ChWOECy0.js";
4
4
  import "effect";
5
5
  import { chmodSync, copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, symlinkSync, writeFileSync } from "fs";
6
6
  import { basename, dirname, join } from "path";
@@ -166,4 +166,4 @@ var init_devcontainer_renderer = __esmMin((() => {
166
166
  //#endregion
167
167
  export { renderDevcontainerSync as a, processTemplatesSync as i, createWorkspacePlaceholdersSync as n, sanitizeComposeFileSync as o, init_devcontainer_renderer as r, DEVCONTAINER_DIRNAME as t };
168
168
 
169
- //# sourceMappingURL=devcontainer-renderer-Dx0C7VWJ.js.map
169
+ //# sourceMappingURL=devcontainer-renderer-C-34Sxyz.js.map
@@ -1238,4 +1238,4 @@ var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
1238
1238
  //#endregion
1239
1239
  export { require_dist$1 as n, require_src as r, require_dist as t };
1240
1240
 
1241
- //# sourceMappingURL=dist-ya66D9ze.js.map
1241
+ //# sourceMappingURL=dist-BMXvKiZP.js.map
@@ -0,0 +1,3 @@
1
+ import { t as require_dist } from "./dist-BMXvKiZP.js";
2
+ export default require_dist();
3
+ export {};
@@ -2483,4 +2483,4 @@ var init_dist_src = __esmMin((() => {
2483
2483
  //#endregion
2484
2484
  export { init_dist_src as n, Octokit as t };
2485
2485
 
2486
- //# sourceMappingURL=dist-src-Byxt1ifL.js.map
2486
+ //# sourceMappingURL=dist-src-BgGUblXg.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-Dx0C7VWJ.js";
2
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-C-34Sxyz.js";
3
3
  import { existsSync, readFileSync } from "fs";
4
4
  import { join } from "path";
5
5
  import { exec } from "child_process";
@@ -101,53 +101,92 @@ async function stopWorkspaceDockerPromise(workspacePath, featureName) {
101
101
  * network is gone.
102
102
  */
103
103
  async function teardownWorkspaceDockerByNamePromise(issueIdLower) {
104
- const composeProjectName = `overdeck-${`feature-${issueIdLower}`}`;
105
- const networkName = `${composeProjectName}_devnet`;
104
+ const featureFolder = `feature-${issueIdLower}`;
106
105
  const result = {
107
106
  networkRemoved: false,
108
107
  steps: []
109
108
  };
109
+ const composeProjectNames = new Set([`overdeck-${featureFolder}`]);
110
110
  try {
111
- await execAsync(`docker compose -p "${composeProjectName}" down -v --remove-orphans`, { timeout: 6e4 });
112
- result.steps.push(`Stopped Docker stack for project ${composeProjectName}`);
113
- } catch (error) {
114
- result.steps.push(`Docker stack down attempted (${error.message?.split("\n")[0] || "stack may not exist"})`);
115
- }
111
+ const { stdout } = await execAsync(`docker network ls --format '{{.Name}}'`, {
112
+ encoding: "utf-8",
113
+ timeout: 3e4
114
+ });
115
+ for (const name of stdout.trim().split("\n")) if (name.endsWith(`-${featureFolder}_devnet`) || name === `${featureFolder}_devnet`) composeProjectNames.add(name.slice(0, -7));
116
+ } catch {}
116
117
  try {
117
- const { stdout: containerStdout } = await execAsync(`docker ps -a --filter network="${networkName}" --format '{{.ID}}'`, {
118
+ const { stdout } = await execAsync(`docker ps -a --format '{{.Names}}'`, {
118
119
  encoding: "utf-8",
119
120
  timeout: 3e4
120
121
  });
121
- const containerIds = containerStdout.trim().split("\n").filter(Boolean);
122
- if (containerIds.length > 0) try {
123
- await execAsync(`docker rm -f ${containerIds.map((id) => `"${id}"`).join(" ")}`, { timeout: 3e4 });
124
- result.steps.push(`Removed ${containerIds.length} container(s) attached to ${networkName}`);
125
- } catch (rmError) {
126
- result.steps.push(`Container removal attempted (${rmError.message?.split("\n")[0] || "containers may be in use"})`);
122
+ const containerPattern = new RegExp(`^(.+-${escapeForRegex(featureFolder)})-[a-z0-9-]+-\\d+$`);
123
+ for (const name of stdout.trim().split("\n")) {
124
+ const match = name.match(containerPattern);
125
+ if (match) composeProjectNames.add(match[1]);
126
+ }
127
+ } catch {}
128
+ for (const composeProjectName of composeProjectNames) {
129
+ const networkName = `${composeProjectName}_devnet`;
130
+ try {
131
+ await execAsync(`docker compose -p "${composeProjectName}" down -v --remove-orphans`, { timeout: 6e4 });
132
+ result.steps.push(`Stopped Docker stack for project ${composeProjectName}`);
133
+ } catch (error) {
134
+ result.steps.push(`Docker stack down attempted (${error.message?.split("\n")[0] || "stack may not exist"})`);
135
+ }
136
+ try {
137
+ const { stdout: containerStdout } = await execAsync(`docker ps -a --filter network="${networkName}" --format '{{.ID}}\t{{.Label "com.docker.compose.project"}}'`, {
138
+ encoding: "utf-8",
139
+ timeout: 3e4
140
+ });
141
+ const attached = containerStdout.trim().split("\n").filter(Boolean).map((line) => {
142
+ const [id, project = ""] = line.split(" ");
143
+ return {
144
+ id,
145
+ project
146
+ };
147
+ });
148
+ const own = attached.filter((c) => c.project === composeProjectName);
149
+ const foreign = attached.filter((c) => c.project !== composeProjectName);
150
+ if (own.length > 0) try {
151
+ await execAsync(`docker rm -f ${own.map((c) => `"${c.id}"`).join(" ")}`, { timeout: 3e4 });
152
+ result.steps.push(`Removed ${own.length} container(s) attached to ${networkName}`);
153
+ } catch (rmError) {
154
+ result.steps.push(`Container removal attempted (${rmError.message?.split("\n")[0] || "containers may be in use"})`);
155
+ }
156
+ for (const container of foreign) try {
157
+ await execAsync(`docker network disconnect -f "${networkName}" "${container.id}"`, { timeout: 3e4 });
158
+ result.steps.push(`Disconnected foreign container ${container.id} from ${networkName}`);
159
+ } catch (disconnectError) {
160
+ result.steps.push(`Container disconnect attempted (${disconnectError.message?.split("\n")[0] || "may already be detached"})`);
161
+ }
162
+ } catch (error) {
163
+ result.steps.push(`Container discovery attempted (${error.message?.split("\n")[0] || "could not list containers"})`);
164
+ }
165
+ try {
166
+ await execAsync(`docker network rm "${networkName}"`, { timeout: 3e4 });
167
+ result.steps.push(`Removed Docker network ${networkName}`);
168
+ } catch (error) {
169
+ const message = (error.message || "").toLowerCase();
170
+ if (message.includes("not found") || message.includes("no such network")) result.steps.push(`Docker network ${networkName} already absent`);
171
+ else result.steps.push(`Docker network rm attempted (${error.message?.split("\n")[0] || "network may be in use"})`);
127
172
  }
128
- } catch (error) {
129
- result.steps.push(`Container discovery attempted (${error.message?.split("\n")[0] || "could not list containers"})`);
130
- }
131
- try {
132
- await execAsync(`docker network rm "${networkName}"`, { timeout: 3e4 });
133
- result.steps.push(`Removed Docker network ${networkName}`);
134
- } catch (error) {
135
- const message = (error.message || "").toLowerCase();
136
- if (message.includes("not found") || message.includes("no such network")) result.steps.push(`Docker network ${networkName} already absent`);
137
- else result.steps.push(`Docker network rm attempted (${error.message?.split("\n")[0] || "network may be in use"})`);
138
173
  }
139
174
  try {
140
175
  const { stdout } = await execAsync(`docker network ls --format '{{.Name}}'`, {
141
176
  encoding: "utf-8",
142
177
  timeout: 3e4
143
178
  });
144
- result.networkRemoved = !stdout.trim().split("\n").filter(Boolean).includes(networkName);
145
- result.steps.push(result.networkRemoved ? `Verified network ${networkName} is absent` : `Network ${networkName} still present after teardown`);
179
+ const remaining = stdout.trim().split("\n").filter(Boolean).filter((name) => [...composeProjectNames].some((project) => name === `${project}_devnet`) || name.endsWith(`-${featureFolder}_devnet`));
180
+ result.networkRemoved = remaining.length === 0;
181
+ result.steps.push(result.networkRemoved ? `Verified networks for ${featureFolder} are absent` : `Network(s) still present after teardown: ${remaining.join(", ")}`);
146
182
  } catch (error) {
147
183
  result.steps.push(`Network verification attempted (${error.message?.split("\n")[0] || "could not list networks"})`);
148
184
  }
149
185
  return result;
150
186
  }
187
+ function escapeForRegex(value) {
188
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
189
+ }
151
190
  var execAsync;
152
191
  var init_docker = __esmMin((() => {
153
192
  init_devcontainer_renderer();
@@ -156,4 +195,4 @@ var init_docker = __esmMin((() => {
156
195
  //#endregion
157
196
  export { teardownWorkspaceDockerByNamePromise as i, init_docker as n, stopWorkspaceDockerPromise as r, getContainersReferencingWorkspacePathPromise as t };
158
197
 
159
- //# sourceMappingURL=docker-D2TbXDO6.js.map
198
+ //# sourceMappingURL=docker-apZ9pBYw.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Nn as init_projects } from "./config-yaml-C_djSurJ.js";
3
- import { a as renderDevcontainerSync, r as init_devcontainer_renderer } from "./devcontainer-renderer-Dx0C7VWJ.js";
4
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-B5u3NxMl.js";
2
+ import { Fn as init_projects, kn as getProjectSync, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
+ import { a as renderDevcontainerSync, r as init_devcontainer_renderer } from "./devcontainer-renderer-C-34Sxyz.js";
4
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-tlXf80x3.js";
5
5
  import { Effect } from "effect";
6
6
  import { existsSync } from "fs";
7
7
  import { basename, join } from "path";
@@ -107,4 +107,4 @@ var init_ensure_devcontainer = __esmMin((() => {
107
107
  //#endregion
108
108
  export { ensureDevcontainerSync as n, init_ensure_devcontainer as r, ensureDevcontainer as t };
109
109
 
110
- //# sourceMappingURL=ensure-devcontainer-BTiMfFp5.js.map
110
+ //# sourceMappingURL=ensure-devcontainer-Bqi1EF1P.js.map
@@ -1,3 +1,3 @@
1
- import { n as ensureDevcontainerSync, r as init_ensure_devcontainer, t as ensureDevcontainer } from "./ensure-devcontainer-BTiMfFp5.js";
1
+ import { n as ensureDevcontainerSync, r as init_ensure_devcontainer, t as ensureDevcontainer } from "./ensure-devcontainer-Bqi1EF1P.js";
2
2
  init_ensure_devcontainer();
3
3
  export { ensureDevcontainer, ensureDevcontainerSync };
@@ -12,4 +12,4 @@ var init_esm_shims = __esmMin((() => {
12
12
  //#endregion
13
13
  export { __filename as n, init_esm_shims as r, __dirname as t };
14
14
 
15
- //# sourceMappingURL=esm-shims-DiV9jHa_.js.map
15
+ //# sourceMappingURL=esm-shims-BEjvINX3.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_event_store, i as initEventStore, n as getEventStore, o as openEventDb, r as getSharedDb, t as createEventStore } from "./event-store-C71x6h0i.js";
1
+ import { a as init_event_store, i as initEventStore, n as getEventStore, o as openEventDb, r as getSharedDb, t as createEventStore } from "./event-store-D89fMfXS.js";
2
2
  init_event_store();
3
3
  export { createEventStore, getEventStore, getSharedDb, initEventStore, openEventDb };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hr as init_paths, Vr as getOverdeckHome } from "./config-yaml-C_djSurJ.js";
2
+ import { Jr as init_paths, qr as getOverdeckHome } from "./config-yaml-cNOZcEww.js";
3
3
  import { a as init_activity_logger, o as setActivityEventStoreProvider } from "./activity-logger-pcbf-e30.js";
4
- import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-Clew3DpF.js";
4
+ import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-Ba9mS6e6.js";
5
5
  import { existsSync } from "node:fs";
6
6
  import { EventEmitter } from "node:events";
7
7
  import { mkdir } from "node:fs/promises";
@@ -236,4 +236,4 @@ var init_event_store = __esmMin((() => {
236
236
  //#endregion
237
237
  export { init_event_store as a, initEventStore as i, getEventStore as n, openEventDb as o, getSharedDb as r, createEventStore as t };
238
238
 
239
- //# sourceMappingURL=event-store-C71x6h0i.js.map
239
+ //# sourceMappingURL=event-store-D89fMfXS.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as extractPrefixSync, Ln as listProjectsSync, Nn as init_projects, er as init_issue_id, yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
- import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-D6AX8jv-.js";
2
+ import { Fn as init_projects, nr as init_issue_id, tr as extractPrefixSync, xr as init_errors, zn as listProjectsSync } from "./config-yaml-cNOZcEww.js";
3
+ import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-DF6odxK9.js";
4
4
  import "effect";
5
5
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "fs";
6
6
  import { join } from "path";
@@ -245,4 +245,4 @@ var init_events = __esmMin((() => {
245
245
  //#endregion
246
246
  export { readEventsFromLineSync as a, tailEventsSync as c, init_events as i, init_wal as l, deduplicateEventsSync as n, readEventsSync as o, getLastEventMetadataSync as r, replaceEventsFileSync as s, appendCostEventSync as t };
247
247
 
248
- //# sourceMappingURL=events-BFDuPV6n.js.map
248
+ //# sourceMappingURL=events-S_C0pvl6.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_events, o as readEventsSync } from "./events-BFDuPV6n.js";
1
+ import { i as init_events, o as readEventsSync } from "./events-S_C0pvl6.js";
2
2
  init_events();
3
3
  export { readEventsSync };
@@ -0,0 +1,87 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { n as init_bd_process_lock, r as resolveSharedBeadsDir } from "./bd-process-lock-XAXAet9O.js";
3
+ import { join } from "node:path";
4
+ import { existsSync } from "node:fs";
5
+ import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
6
+ import { execFile } from "node:child_process";
7
+ import { promisify } from "node:util";
8
+ //#region ../../lib/beads/export.ts
9
+ async function defaultExecute(args, cwd) {
10
+ const { stdout } = await execFileAsync("bd", [...args], {
11
+ cwd,
12
+ encoding: "utf8",
13
+ timeout: 12e4,
14
+ maxBuffer: BD_EXEC_MAX_BUFFER
15
+ });
16
+ return stdout;
17
+ }
18
+ function doltHead(status) {
19
+ return /^\s*Commit:\s*([0-9a-v]{7,40})\s*$/im.exec(status)?.[1] ?? null;
20
+ }
21
+ function recordsFromJsonl(raw) {
22
+ return raw.split("\n").filter((line) => line.trim()).map((line) => JSON.parse(line));
23
+ }
24
+ function recordIds(records) {
25
+ return records.map((record) => String(record.id ?? "")).filter(Boolean).sort();
26
+ }
27
+ /** The only production writer for the derived recovery JSONL snapshot. */
28
+ async function exportBeadsJsonl(workspacePath, options = {}) {
29
+ const execute = options.execute ?? defaultExecute;
30
+ const beadsDir = options.beadsDir ?? await resolveSharedBeadsDir(workspacePath);
31
+ await mkdir(beadsDir, { recursive: true });
32
+ const target = join(beadsDir, "issues.jsonl");
33
+ const statePath = join(beadsDir, "export-state.json");
34
+ const token = `${process.pid}-${Date.now()}`;
35
+ const temporary = join(beadsDir, `.issues.jsonl.${token}.tmp`);
36
+ const temporaryState = join(beadsDir, `.export-state.${token}.tmp`);
37
+ try {
38
+ const sourceDoltHead = doltHead(await execute(["vc", "status"], workspacePath));
39
+ if (!sourceDoltHead) throw new Error("Beads export refused because bd vc status did not report a Dolt commit.");
40
+ await execute([
41
+ "export",
42
+ "--all",
43
+ "-o",
44
+ temporary
45
+ ], workspacePath);
46
+ const exported = recordsFromJsonl(existsSync(temporary) ? await readFile(temporary, "utf8") : "");
47
+ const listedRaw = await execute([
48
+ "list",
49
+ "--all",
50
+ "--json",
51
+ "--limit",
52
+ "0"
53
+ ], workspacePath);
54
+ const listedValue = JSON.parse(listedRaw || "[]");
55
+ const listed = Array.isArray(listedValue) ? listedValue : [];
56
+ const exportedIds = recordIds(exported);
57
+ const listedIds = recordIds(listed);
58
+ if (exported.length !== listed.length || JSON.stringify(exportedIds) !== JSON.stringify(listedIds)) throw new Error(`Beads export verification failed in the all-record universe: export=${exported.length}, canonical=${listed.length}. The known-good snapshot was not replaced.`);
59
+ if (exported.length === 0 && existsSync(target) && (await readFile(target, "utf8")).trim().length > 0) throw new Error("Beads export refused to replace a non-empty known-good snapshot with an empty export. The Dolt database must be reconciled first.");
60
+ const state = {
61
+ universe: "all",
62
+ sourceDoltHead,
63
+ recordCount: exported.length,
64
+ exportedAt: (options.now ?? (() => /* @__PURE__ */ new Date()))().toISOString()
65
+ };
66
+ await writeFile(temporaryState, `${JSON.stringify(state, null, 2)}\n`, { mode: 384 });
67
+ await rename(temporary, target);
68
+ await rename(temporaryState, statePath);
69
+ return {
70
+ path: target,
71
+ statePath,
72
+ state
73
+ };
74
+ } finally {
75
+ await Promise.all([rm(temporary, { force: true }), rm(temporaryState, { force: true })]);
76
+ }
77
+ }
78
+ var execFileAsync, BD_EXEC_MAX_BUFFER;
79
+ var init_export = __esmMin((() => {
80
+ init_bd_process_lock();
81
+ execFileAsync = promisify(execFile);
82
+ BD_EXEC_MAX_BUFFER = 64 * 1024 * 1024;
83
+ }));
84
+ //#endregion
85
+ export { init_export as n, exportBeadsJsonl as t };
86
+
87
+ //# sourceMappingURL=export-BJHSVwKP.js.map
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { dr as GitHubApiError, f as loadConfigSync, pr as LinearApiError, t as init_config_yaml, yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
- import { n as init_dist_src, t as Octokit } from "./dist-src-Byxt1ifL.js";
4
- import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-DpZo3WwF.js";
5
- import { n as init_rally, t as RallyTracker } from "./rally-xCTZ-UcI.js";
2
+ import { f as loadConfigSync, hr as LinearApiError, pr as GitHubApiError, t as init_config_yaml, xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
+ import { n as init_dist_src, t as Octokit } from "./dist-src-BgGUblXg.js";
4
+ import { a as TrackerAuthError, i as NotImplementedError, o as init_interface, r as IssueNotFoundError } from "./rally-api-B-osULNL.js";
5
+ import { n as init_rally, t as RallyTracker } from "./rally-BtWjybOa.js";
6
6
  import { Effect } from "effect";
7
7
  import { LinearClient } from "@linear/sdk";
8
8
  //#region ../../lib/tracker/linear.ts
@@ -679,4 +679,4 @@ var init_factory = __esmMin((() => {
679
679
  //#endregion
680
680
  export { createTrackerFromConfig as n, init_factory as r, createTracker as t };
681
681
 
682
- //# sourceMappingURL=factory-ByfbrCab.js.map
682
+ //# sourceMappingURL=factory-DV18m0rc.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { t as init_config_yaml } from "./config-yaml-C_djSurJ.js";
3
- import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-DW7dUefc.js";
4
- import { t as init_providers } from "./providers-CUdAb5Qu.js";
2
+ import { t as init_config_yaml } from "./config-yaml-cNOZcEww.js";
3
+ import { r as updateFeatureRegistryOwnership, t as init_feature_registry_storage } from "./feature-registry-storage-BeXmNBwK.js";
4
+ import { t as init_providers } from "./providers-BbEyFhPX.js";
5
5
  import { basename } from "node:path";
6
6
  import { Schema } from "effect";
7
7
  //#region ../../lib/registry/feature-registry-population.ts
@@ -40,4 +40,4 @@ var init_feature_registry_population = __esmMin((() => {
40
40
  //#endregion
41
41
  export { recordFeatureRegistryLifecycle as n, init_feature_registry_population as t };
42
42
 
43
- //# sourceMappingURL=feature-registry-population-CSH66UO8.js.map
43
+ //# sourceMappingURL=feature-registry-population-CqZSnqQi.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hr as init_paths, Vr as getOverdeckHome } from "./config-yaml-C_djSurJ.js";
2
+ import { Jr as init_paths, qr as getOverdeckHome } from "./config-yaml-cNOZcEww.js";
3
3
  import { n as openDatabase, t as init_driver } from "./driver-D-HBOQa_.js";
4
4
  import { dirname, join } from "node:path";
5
5
  import { mkdirSync } from "node:fs";
@@ -263,4 +263,4 @@ var init_feature_registry_storage = __esmMin((() => {
263
263
  //#endregion
264
264
  export { listFeatureRegistryEntries as n, updateFeatureRegistryOwnership as r, init_feature_registry_storage as t };
265
265
 
266
- //# sourceMappingURL=feature-registry-storage-DW7dUefc.js.map
266
+ //# sourceMappingURL=feature-registry-storage-BeXmNBwK.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-C_djSurJ.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-cNOZcEww.js";
3
3
  //#region ../../lib/background-ai/features.ts
4
4
  /**
5
5
  * The single gate every background AI caller must consult before invoking a
@@ -18,4 +18,4 @@ var init_features = __esmMin((() => {
18
18
  //#endregion
19
19
  export { isBackgroundFeatureEnabled as n, init_features as t };
20
20
 
21
- //# sourceMappingURL=features-x_aLR7U9.js.map
21
+ //# sourceMappingURL=features-u5XeMaOK.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Nn as init_projects, Nt as readIssueRecordSync, Ot as init_record, zt as writeIssueRecordSync } from "./config-yaml-C_djSurJ.js";
3
- import { L as sessionExists, O as listSessionNames, x as init_tmux } from "./tmux-BVc-NeKM.js";
2
+ import { Bt as writeIssueRecordSync, Fn as init_projects, Pt as readIssueRecordSync, kn as getProjectSync, kt as init_record, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
+ import { L as sessionExists, O as listSessionNames, x as init_tmux } from "./tmux-C3g9VFcg.js";
4
4
  import { Effect } from "effect";
5
5
  //#region ../../lib/cloister/feedback-target.ts
6
6
  async function isLiveSession(agentId) {
@@ -107,7 +107,7 @@ async function resolveIssueFeedbackTarget(issueId, opts = {}) {
107
107
  */
108
108
  async function resurrectAgentForFeedback(agentId, issueId) {
109
109
  try {
110
- const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-C6Rm6FPR.js");
110
+ const { getAgentStateSync, clearAgentPausedSync, clearAgentTroubledSync } = await import("./agent-state-lGvgPP4m.js");
111
111
  const state = getAgentStateSync(agentId);
112
112
  if (!state) return false;
113
113
  if (state.paused === true) {
@@ -123,7 +123,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
123
123
  console.warn(`[feedback-target] ${agentId} is gated (troubled=${state.troubled === true}, failures=${state.consecutiveFailures ?? 0}) — clearing for one resurrection attempt to deliver ${issueId} feedback; failure tracking re-trips the gate on another crash`);
124
124
  clearAgentTroubledSync(agentId);
125
125
  }
126
- const { resumeAgent } = await import("./resume-R7xkSmLW.js");
126
+ const { resumeAgent } = await import("./resume-BYZBIab-.js");
127
127
  const result = await resumeAgent(agentId);
128
128
  if (!result.success) {
129
129
  console.warn(`[feedback-target] Failed to resurrect ${agentId} for ${issueId} feedback: ${result.error}`);
@@ -137,7 +137,7 @@ async function resurrectAgentForFeedback(agentId, issueId) {
137
137
  }
138
138
  async function surfaceIssueFeedbackNeedsYou(issueId, reason, details = {}) {
139
139
  try {
140
- const { markWorkspaceStuck } = await import("./review-status-B0Axo-Ma.js");
140
+ const { markWorkspaceStuck } = await import("./review-status-CG0iDuWa.js");
141
141
  markWorkspaceStuck(issueId, "feedback_delivery_needs_you", {
142
142
  reason,
143
143
  ...details
@@ -155,4 +155,4 @@ var init_feedback_target = __esmMin((() => {
155
155
  //#endregion
156
156
  export { resolveIssueFeedbackTarget as n, surfaceIssueFeedbackNeedsYou as r, init_feedback_target as t };
157
157
 
158
- //# sourceMappingURL=feedback-target-BFo9fScH.js.map
158
+ //# sourceMappingURL=feedback-target-CwyWf0Dg.js.map
@@ -1,3 +1,3 @@
1
- import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-BFo9fScH.js";
1
+ import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-CwyWf0Dg.js";
2
2
  init_feedback_target();
3
3
  export { resolveIssueFeedbackTarget, surfaceIssueFeedbackNeedsYou };