@overdeck/desktop 0.45.21 → 0.45.23

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 (387) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-DOA0KgXx.js} +5 -5
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-BBu6DSNm.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-BV1q_2EV.js} +4 -4
  5. package/server/agent-state-Bg0lhqwj.js +3 -0
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CnzFKSAQ.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-HoK8U4jW.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-B4Bjbkfv.js} +4 -4
  9. package/server/agents-FlIgQ3ql.js +3 -0
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-DYrYojxl.js} +31 -7
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-zkJb3BeM.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-B_-4EKF3.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-DWdW7vUm.js} +2 -2
  16. package/server/{build-info-27NlbKhV.js → build-info-BT096lEl.js} +3 -3
  17. package/server/{build-info-Cv6CI7Gu.js → build-info-DgTqZkL5.js} +1 -1
  18. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-B7Bt29J0.js} +1 -1
  19. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-DDqcGyu8.js} +2 -2
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-Vh-J15ge.js → checkpoints-C-AXLfYT.js} +2 -2
  22. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-CpgCjAlN.js} +1 -1
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-but-_qGY.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-H_5wHQZQ.js} +2 -2
  26. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-BTENVmYf.js} +1 -1
  27. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
  28. package/server/cli-BsVIHwzC.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-vBeXbPrq.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Bgb2XCqi.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-DW0V86F8.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-Dn_4c4G8.js} +5 -5
  33. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
  34. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-hANY_ehE.js} +9 -9
  35. package/server/codex-Dg7Is5yb.js +3 -0
  36. package/server/{codex-D_UBEOwL.js → codex-TmSi-yTv.js} +30 -8
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-C4gSH-IR.js} +2 -2
  38. package/server/{config-CrduXs4a.js → config-CCvjQf27.js} +2 -2
  39. package/server/{config-nAB_F-Gp.js → config-DUIhMN_T.js} +1 -1
  40. package/server/{config-G1TOMJZA.js → config-DjLOdbgT.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-DvyMuOle.js} +177 -211
  42. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-BSJkNTdp.js} +1 -1
  43. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CmrYpa47.js} +3 -3
  44. package/server/{context-layers-YNpf6Q_I.js → context-layers-B3Nt58jl.js} +2 -2
  45. package/server/{context-layers-Cg9ZgVfx.js → context-layers-ZYFcWiyc.js} +3 -3
  46. package/server/{control-settings-D_79A6gp.js → control-settings-aP1ANIlI.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-CNbTLB86.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-DiG5zWQq.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-Du-MTNpJ.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Up7FEzIC.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-6mPANqvL.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-DbOs1e9Q.js} +4 -4
  53. package/server/{cost-jJ2cgDcG.js → cost-CW4WSe72.js} +3 -3
  54. package/server/{cost-Drm7qeD5.js → cost-Ca0YTWDw.js} +18 -2
  55. package/server/{cost-sync-DzHP6zaR.js → cost-sync-C0VdGme1.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CdOjJVDT.js} +9 -9
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-CT-IypG3.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-DYSEJb48.js} +3 -3
  60. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
  61. package/server/{deacon-1s7bM5zn.js → deacon-pRnyD5w9.js} +1133 -474
  62. package/server/deacon-swarm-9jRLS5Ke.js +2 -0
  63. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-DftYRDo8.js} +17 -17
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-Bjsho_ha.js} +136 -19
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-CM6W1-c6.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-DeP_OIRk.js} +77 -10
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-BpMoHlkR.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
  70. package/server/dist-Bd3vn0Hw.js +3 -0
  71. package/server/{dist-yfR7G1BL.js → dist-DyRx4cI7.js} +1 -1
  72. package/server/{docker-ClwPQaba.js → docker-BK7HIcBj.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-BrSfUHm0.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-DseivYEy.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-CbI3BVkl.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-Cr5PQwFC.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-tdiY5eDZ.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-CC1dgUpx.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-CvvGK6LT.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-CynerjXO.js} +50 -13
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Dhxz-wLc.js} +2 -2
  85. package/server/{feedback-target-Dqik2WTe.js → feedback-target-CPS15Vte.js} +7 -7
  86. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-iygZwmMc.js} +1 -1
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-C9b6ccN1.js} +6 -5
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-qmiMbqTZ.js} +1 -1
  89. package/server/{flywheel-Q-38YhZG.js → flywheel-DMCUzDWg.js} +1 -1
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-DSSpWmqF.js} +13 -13
  91. package/server/{flywheel-DPUc8r3V.js → flywheel-DcBkQvgE.js} +14 -14
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
  94. package/server/forge-B-ZWyTRm.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-Ch9gCFod.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-CJ_aH5jD.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-CKgg0VKg.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-BrL_VTRr.js} +2 -2
  99. package/server/git-utils-BVa07a4a.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-Dry_Ka_D.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CMBdIFBQ.js} +11 -3
  102. package/server/{github-app-CeSVFL6C.js → github-app-CPfoFAdV.js} +1 -1
  103. package/server/{github-client-Dslipypz.js → github-client--XVlDpwM.js} +2 -2
  104. package/server/{github-client-4A6FgA8O.js → github-client-B4QsdE-X.js} +1 -1
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-BRbDW-qk.js} +2 -2
  106. package/server/harness-binary-CVio2m-u.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-qHJBhy3Z.js} +9 -15
  108. package/server/{health-events-CZGZ5I-A.js → health-events-C9B8y1Hm.js} +2 -2
  109. package/server/{health-events-CnwV_SSz.js → health-events-CpfvuVmm.js} +1 -1
  110. package/server/{hooks-CoNscX84.js → hooks-DUXw8A0-.js} +2 -2
  111. package/server/{hooks-DvX33gY_.js → hooks-ltecuFqZ.js} +1 -1
  112. package/server/{hume-DSJt5eA_.js → hume-BEq0bUDg.js} +2 -2
  113. package/server/hume-B_DbflNM.js +3 -0
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-aQ1IxeI3.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-CzaSOgul.js} +4 -4
  118. package/server/{injection-DtlT8Akv.js → injection-DZ0PfYa4.js} +7 -7
  119. package/server/{injection-DK9zh_HL.js → injection-oNZeoDhL.js} +1 -1
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-DJKLWcVT.js} +15 -11
  121. package/server/inspect-agent-ch-F-5Ci.js +2 -0
  122. package/server/{internal-token-DhfFiwW7.js → internal-token-Bb4XeV2x.js} +2 -2
  123. package/server/{internal-token-7bYL5v6K.js → internal-token-DXdfprGr.js} +1 -1
  124. package/server/{io-BiM-7Zsx.js → io-B3_AHDfr.js} +160 -184
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-zhdvQicO.js} +7 -7
  126. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CreaCkjW.js} +22 -22
  127. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
  128. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-B5ushCvE.js} +8 -8
  129. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DabvBWUp.js} +1 -1
  130. package/server/{issues-XYtFMxrH.js → issues-B6ToV6x1.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-Dhflo1SH.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-BKPJm4Hv.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-DdWbHEBu.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-CHVm7bGT.js} +10 -9
  135. package/server/{layers-cZx7ibtV.js → layers-DzxSTGNA.js} +2 -2
  136. package/server/lifecycle-DfeyBDwA.js +121 -0
  137. package/server/lifecycle-io-Bsnr2K4F.js +3 -0
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-D8iNBcux.js} +37 -37
  139. package/server/{lifecycle-CE7619Xw.js → lifecycle-sycO16hj.js} +6 -6
  140. package/server/{linear-client-BLyN-NiP.js → linear-client-D4zqMnX7.js} +2 -2
  141. package/server/{linear-client-Bj1l4FOA.js → linear-client-DqhDQO9k.js} +1 -1
  142. package/server/memory-fts-worker.js +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C_ZEhbqI.js} +3 -3
  144. package/server/{merge-CwX2_AWm.js → merge-DK23JEdS.js} +1 -1
  145. package/server/{merge-agent-CnORPiri.js → merge-agent-BQM3a8z5.js} +1 -1
  146. package/server/{merge-agent-DnBsms_V.js → merge-agent-XrB80vfT.js} +369 -213
  147. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Bwoyr8Je.js} +1 -1
  148. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BsFjGrQ8.js} +2 -2
  149. package/server/merge-ops-DlB1IM0Y.js +2 -0
  150. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-C1KIVr0s.js} +2 -2
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DLz0MkGT.js} +3 -3
  152. package/server/{merge-set-DHkzPCJU.js → merge-set-DnSYdBEp.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-DZ9dojJn.js} +2 -2
  154. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-SSv3E-pl.js} +1 -1
  155. package/server/{merge-train-SvkRJZ-k.js → merge-train-DxDfBTjr.js} +3 -3
  156. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-CyYQUksx.js} +4 -4
  157. package/server/{merge-verification-B3meGcXF.js → merge-verification-CSizH3HY.js} +4 -4
  158. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-Dt8YPN5S.js} +2 -2
  159. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-Cx3K0hHi.js} +11 -8
  160. package/server/node_modules/.package-lock.json +5 -5
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  166. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  167. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
  168. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-neK8dHQk.js} +23 -14
  169. package/server/package-lock.json +6 -6
  170. package/server/package.json +1 -1
  171. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DeVUgwA7.js} +78 -58
  172. package/server/{paths-FP8v3lTz.js → paths-_zEts6wc.js} +2 -2
  173. package/server/{pickup-xi3KTLaJ.js → pickup-Dd0Znxxy.js} +2 -2
  174. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-0HaEGDlH.js} +190 -68
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-6iCJplFZ.js} +1 -1
  176. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-D0ykk59O.js} +2 -2
  177. package/server/{project-pipelines-B59NfN44.js → project-pipelines-2sK1apsO.js} +2 -2
  178. package/server/projects-9SkRpES9.js +3 -0
  179. package/server/{prompts-CbqaVjbe.js → prompts-Dp4Tpk39.js} +2 -2
  180. package/server/providers-DKkBXhxU.js +3 -0
  181. package/server/{providers-d3pwXGVE.js → providers-DV7ec8l7.js} +7 -7
  182. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
  183. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
  184. package/server/public/assets/{dist-DQNg4CiF.js → dist-BWR4qFiV.js} +1 -1
  185. package/server/public/assets/{dist-CLSlc6cV.js → dist-DEmlBBNQ.js} +3 -3
  186. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
  187. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
  188. package/server/public/assets/index-CUr1xv8w.css +1 -0
  189. package/server/public/assets/{index-SLYGA8AQ.js → index-CsSuZQBI.js} +148 -145
  190. package/server/public/assets/{linear-6Fi3qnGg.js → linear-C9zFQpkX.js} +1 -1
  191. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
  192. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
  193. package/server/public/assets/{prod-ojHllFvN.js → prod-B1jCQihw.js} +4 -4
  194. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
  195. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
  196. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
  197. package/server/public/index.html +54 -10
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests--Ib2jTgy.js} +1 -1
  199. package/server/{pull-requests-CjjPj7v6.js → pull-requests-CXIhdCYD.js} +13 -11
  200. package/server/{queries-B5hl7lMQ.js → queries-6d7Cdtm7.js} +723 -110
  201. package/server/{rally-Dp0Gb1DN.js → rally-B708-nZn.js} +3 -3
  202. package/server/{rally-api-DGaFz5L5.js → rally-api-nY0ZANw3.js} +2 -2
  203. package/server/{rally-api-CKr0O4DJ.js → rally-api-yjQ0TfHd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-B1EJhfV0.js} +4 -4
  205. package/server/{rally-client-Cqf6EX_r.js → rally-client-CULK2XAY.js} +1 -1
  206. package/server/rally-njs_mJrt.js +3 -0
  207. package/server/reap-terminal-sessions-MWnqdLCJ.js +4 -0
  208. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-N3BTkmX_.js} +11 -28
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-Dp4eLkt4.js} +6 -6
  210. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-kA7XngID.js} +1 -1
  211. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-uWbZfjms.js} +6 -6
  212. package/server/record-t6V-3Dcj.js +3 -0
  213. package/server/{record-update-BlB8mpKO.js → record-update-DACtKh6_.js} +1 -1
  214. package/server/record-update-Dq0t2uBG.js +310 -0
  215. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-BJtIQuag.js} +2 -2
  216. package/server/{release-engine-CSI4K6Oj.js → release-engine-DZpmGGzb.js} +5 -5
  217. package/server/{release-set-BywwggrE.js → release-set-hnXd_kga.js} +3 -3
  218. package/server/{remote-DYziAkiZ.js → remote-4tiENDaI.js} +3 -3
  219. package/server/{remote-cnoeuDWn.js → remote-Br-ZWVIP.js} +3 -3
  220. package/server/{remote-agents-BNORDWAX.js → remote-agents-CRCg1L4H.js} +1 -1
  221. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-nmty1mLu.js} +6 -6
  222. package/server/{remote-completion-W67FNQ-A.js → remote-completion-BbWNd10K.js} +13 -13
  223. package/server/resume-CcKqnTvE.js +3 -0
  224. package/server/{review-agent-CSswH985.js → review-agent-DJRO8EG8.js} +1 -1
  225. package/server/{review-agent-CqSqSHkU.js → review-agent-sKkE1FEL.js} +23 -23
  226. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-BLbSC4ke.js} +5 -5
  227. package/server/{review-context-Ctp9BdNJ.js → review-context-BgX3lcCx.js} +9 -9
  228. package/server/{review-status-CCgPVK1h.js → review-status-A7quS5KJ.js} +56 -39
  229. package/server/review-status-C6n6-9f_.js +3 -0
  230. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-tbOn_A_u.js} +3 -3
  231. package/server/review-status-source-CxuEjLGg.js +39 -0
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-BhSQ0d0l.js} +2 -2
  233. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-To3-iS-N.js} +1 -1
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
  235. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CTRNtzXO.js} +7 -7
  236. package/server/{rollup-B3kQmNpl.js → rollup-B53Y81xK.js} +1 -1
  237. package/server/{rollup-CLj_AK9f.js → rollup-WA0VD-Rr.js} +8 -8
  238. package/server/{scanner-C4NeC4FE.js → scanner-D2743cp8.js} +11 -7
  239. package/server/{sequence-io-Ce-6grIY.js → sequence-io-Cg0zYj_E.js} +4 -4
  240. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-BGY8gjg-.js} +5 -5
  241. package/server/server.js +1348 -963
  242. package/server/{service-CqAY8Kmk.js → service-DCpB_SGd.js} +154 -51
  243. package/server/{session-fork-uNo4rMRA.js → session-fork-BQ8_6H32.js} +2 -2
  244. package/server/{session-history-DUehL3KN.js → session-history-CVZDpS3c.js} +4 -4
  245. package/server/{settings-DP2OYLXL.js → settings-BZ5m1UCl.js} +3 -3
  246. package/server/settings-D0OSwos5.js +2 -0
  247. package/server/{settings-D9grjmaP.js → settings-ylxwqwQG.js} +2 -2
  248. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-BlxG6Xye.js} +3 -3
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-C2_epgx2.js} +1 -1
  250. package/server/{shadow-state-a_ztFBJe.js → shadow-state-Dh-HzF2J.js} +2 -2
  251. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-4bvjn9b3.js} +2 -2
  252. package/server/{ship-log-DDcueaIR.js → ship-log-ClSMIzZX.js} +1 -1
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-CHIxLr_d.js} +1 -1
  254. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-r4pHQBIr.js} +7 -7
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-DWAorh2B.js} +25 -20
  256. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-KC_UduxD.js} +1 -1
  257. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-BXhav38U.js} +1 -1
  258. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-DtrYvGJ-.js} +5 -5
  259. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
  260. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-DJ3RzKxW.js} +3 -3
  261. package/server/{specialists-D0VBf8g_.js → specialists-D5fRZXmN.js} +1 -1
  262. package/server/specialists-DVj0hvaL.js +3 -0
  263. package/server/{specialists-CYRwELzc.js → specialists-DyFeedjn.js} +66 -76
  264. package/server/{specialists-DAegTvRt.js → specialists-JVO00bs7.js} +374 -220
  265. package/server/specs-nN45DG2X.js +3 -0
  266. package/server/{src-OLoJhUiJ.js → src-CG9mCkP6.js} +6 -6
  267. package/server/{src-BqTcrfO_.js → src-CMTQGyCK.js} +3 -3
  268. package/server/{src-Dpq1yFIl.js → src-U7_kTPEE.js} +338 -4
  269. package/server/{stack-health-I713ELld.js → stack-health-Df0YEZKa.js} +1 -1
  270. package/server/{stack-health-DV_f-lK0.js → stack-health-puygdaMd.js} +2 -2
  271. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-BbFwCTb0.js} +4 -4
  272. package/server/{staleness-BbsGxmF2.js → staleness-Bpy41ngS.js} +15 -3
  273. package/server/{staleness-zGp4P1hd.js → staleness-Cbl_w4Bw.js} +1 -1
  274. package/server/{state-home-DixkE-up.js → state-home-CIGjwNfJ.js} +119 -54
  275. package/server/state-migrate-Dkzaxvny.js +487 -0
  276. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CzEov_fq.js} +27 -21
  277. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-sY_MHHgQ.js} +1 -1
  278. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
  279. package/server/{summary-fork-CdLn8Chr.js → summary-fork-D8bXjCr7.js} +2 -2
  280. package/server/{summary-fork-f3DpgjXh.js → summary-fork-DHhJIsAL.js} +8 -8
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-BO-Zk_h-.js} +3 -3
  282. package/server/supervisor-BPy-o1A8.js +2 -0
  283. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-CQ_fwUWF.js} +4 -4
  284. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-Bza0ffAh.js} +24 -44
  285. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-CEgauF4U.js} +15 -15
  286. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-DXDt0Xa-.js} +7 -7
  287. package/server/{test-verdict-BRiSu7eW.js → test-verdict-CmUBK5cT.js} +1 -1
  288. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-DFjjIHR5.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BDtLOIlO.js} +2 -2
  290. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-DL566HbH.js} +1 -1
  291. package/server/tmux-DoThH6aj.js +3 -0
  292. package/server/{tmux-y1blSxks.js → tmux-ftABRAmc.js} +76 -44
  293. package/server/{token-LUrbM9sU.js → token-CsOhvw42.js} +2 -2
  294. package/server/{token-util-BZaDAQ8S.js → token-util-CTmczIfW.js} +1 -1
  295. package/server/token-util-DrHg8abn.js +3 -0
  296. package/server/{tracker-config-DSFZBdXP.js → tracker-config-B4itFzDo.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-BePq_oj-.js} +1 -1
  298. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-tnxxqROg.js} +2 -2
  299. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-m73vGebA.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-B2vxjx_b.js} +3 -3
  301. package/server/{tunnel-WcJImbAC.js → tunnel-Cgj-IGIl.js} +1 -1
  302. package/server/{types-BjaZ1oqH.js → types-BBNjPcqU.js} +1 -1
  303. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-CuEn0t9M.js} +28 -28
  305. package/server/{uat-train-Wismge7h.js → uat-train-cKfM-_WW.js} +1 -1
  306. package/server/{validation-BA4e5EGm.js → validation-B5JxoPUS.js} +259 -9
  307. package/server/{validation-CUWamZ4X.js → validation-CIi6pnI2.js} +1 -1
  308. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BcnIbigL.js} +1 -1
  309. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-C-lIHfUa.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-Br0S_Ous.js} +103 -37
  311. package/server/{verification-runner-Dcksl_P-.js → verification-runner-CDj4lD4t.js} +1 -1
  312. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-DKpNNW5i.js} +1 -1
  313. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-Yb2bd3Fq.js} +16 -15
  314. package/server/{workflows-B8ROFlfw.js → workflows-C9WmILql.js} +39 -77
  315. package/server/workflows-D90rMOya.js +2 -0
  316. package/server/{workspace-DhTDA8nB.js → workspace-BVl4rihN.js} +3 -3
  317. package/server/{workspace-DSjUJaJN.js → workspace-DuUdndHe.js} +1 -1
  318. package/server/{workspace-config-BAAsAv-o.js → workspace-config-cEGcO6UT.js} +1 -1
  319. package/server/{workspace-manager-CcujONCR.js → workspace-manager-ZTdJAy9M.js} +1 -1
  320. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-hLUv3ADC.js} +23 -16
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-CskwzzhL.js} +2 -2
  322. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-DNpMixRq.js} +1 -1
  323. package/server/{workspaces-Dmlh1YXm.js → workspaces-hWvy9eKs.js} +276 -110
  324. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  325. package/sync-sources/agents/pan-merge-agent.md +1 -1
  326. package/sync-sources/agents/pan-planning-agent.md +4 -4
  327. package/sync-sources/agents/pan-work-agent.md +1 -1
  328. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  329. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  330. package/sync-sources/hooks/record-cost-event.js +363 -71
  331. package/sync-sources/hooks/session-start-hook +7 -0
  332. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  333. package/sync-sources/rules/per-bead-durability.md +1 -1
  334. package/sync-sources/rules/prd-authoring.md +1 -1
  335. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  336. package/sync-sources/skills/pan/SKILL.md +2 -2
  337. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  338. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  339. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  340. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  341. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  342. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  343. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  344. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  345. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  346. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  347. package/sync-sources/skills/pan-start/SKILL.md +26 -3
  348. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  349. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  350. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  351. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  352. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  353. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  354. package/sync-sources/skills/plan/SKILL.md +11 -11
  355. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  356. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  357. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  358. package/server/agent-state-BV_6RHnO.js +0 -3
  359. package/server/agents-Czz6R57Z.js +0 -3
  360. package/server/cli-ChErG518.js +0 -3
  361. package/server/codex-BBeZ8c3s.js +0 -3
  362. package/server/deacon-swarm-uudlSCLM.js +0 -2
  363. package/server/dist-BEDL2alY.js +0 -3
  364. package/server/forge-DbhJyH6u.js +0 -2
  365. package/server/git-utils-Bkxzr1Xf.js +0 -129
  366. package/server/hume-BrA1tUuk.js +0 -3
  367. package/server/inspect-agent-CyXNo9fM.js +0 -2
  368. package/server/lifecycle-io-CUpsxG0p.js +0 -3
  369. package/server/merge-ops-BpTtuO8x.js +0 -2
  370. package/server/projects-IRHJIPYC.js +0 -3
  371. package/server/providers-BqCdTryq.js +0 -3
  372. package/server/public/assets/index-C6NLz_1S.css +0 -1
  373. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  374. package/server/rally-DGimSRBQ.js +0 -3
  375. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  376. package/server/record-update-RviRDSNs.js +0 -168
  377. package/server/record-us0YECMO.js +0 -3
  378. package/server/resume-OyN3dEXE.js +0 -3
  379. package/server/review-status-DXeqFpk5.js +0 -3
  380. package/server/settings-BaPXXJsT.js +0 -2
  381. package/server/specialists-C6WkeKFK.js +0 -3
  382. package/server/specs-BsNcum0h.js +0 -3
  383. package/server/state-migrate-_zJJ6XKE.js +0 -362
  384. package/server/supervisor-Qy1QecAs.js +0 -2
  385. package/server/tmux-HQLgwo_C.js +0 -3
  386. package/server/token-util-Cg-QnowA.js +0 -3
  387. package/server/workflows-C5c-RPsY.js +0 -2
@@ -0,0 +1,2 @@
1
+ import { r as coordinateSwarmSlots } from "./deacon-swarm-DftYRDo8.js";
2
+ export { coordinateSwarmSlots };
@@ -1,14 +1,14 @@
1
- import { $n as resolveProjectFromIssueSync, At as init_record, C as init_tier_table, Dt as getIssueRecordPathForWorkspace, Ft as readIssueRecordSync, Lt as resolveProjectForIssue, Nn as getProjectSync, Pt as readIssueRecordForWorkspaceSync, T as resolveTieredExecutionEnabled, Un as listProjectsSync, dn as init_state_plane, f as loadConfigSync, fn as isStatePlaneOnlyStatus, kt as getProjectConfigFromWorkspacePath, t as init_config_yaml, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
2
- import { n as updateIssueRecord, r as updateIssueRecordForWorkspace, t as init_record_update } from "./record-update-RviRDSNs.js";
3
- import { E as isPaneDead, V as sessionExists, i as capturePane, j as listSessionNames, k as listPaneValues, w as init_tmux } from "./tmux-y1blSxks.js";
4
- import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-CCgPVK1h.js";
5
- import { $ as stopAgent, At as init_spawn_prep, C as init_slot_reconcile, En as decideResumeGate, I as init_messaging, L as messageAgent, Mn as init_agent_state, On as getAgentResumeGateBlockReason, Q as init_termination, Rt as init_resolve_tier, T as reconcileSlotState, Y as init_spawn, Z as spawnRun, _ as spawnTierSupervisor, at as getConcurrencyLimits, b as init_tier_feed, ct as releaseSwarmSlot, dt as tryReserveSwarmSlot, g as shouldSupervise, h as loadPrdDraft, jn as getAgentStateSync, kt as defaultRunWorkspace, m as init_tier_supervisor, mr as init_agent_runtime, mt as init_memory_verdict_cache, nt as countRunningSwarmSlotsForIssue, ot as init_concurrency, p as deliverCommitForReview, pr as getAgentRuntimeSnapshot, pt as getCachedMemoryVerdict, v as supervisorAgentId, w as listSlotAssignments, y as broadcastCommit, zt as resolveTier } from "./queries-B5hl7lMQ.js";
6
- import { C as init_specs, d as readPlanSync, i as findPlanSync, n as applyStatusOverrides, o as init_io, v as init_types, x as findSpecByIssue, y as subItemsOf } from "./io-BiM-7Zsx.js";
7
- import { s as init_control_settings, u as isDeaconGloballyPausedSync } from "./control-settings-D_79A6gp.js";
8
- import { i as createActiveSlice, l as init_dag, n as blockingParentCount, o as getDispatchableItems } from "./dag-DIji6O2b.js";
9
- import { a as loadCloisterConfigSync, r as init_config } from "./config-G1TOMJZA.js";
10
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-C9P2iPap.js";
11
- import { t as recordRecoveryFailure } from "./recovery-trip-l1Hsi37x.js";
1
+ import { D as resolveTieredExecutionEnabled, Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Mt as readIssueRecordForWorkspaceSync, Nt as readIssueRecordSync, Ot as init_record, T as init_tier_table, Tn as init_projects, Tt as getIssueRecordPathForWorkspace, Xt as isStatePlaneOnlyStatus, Yt as init_state_plane, f as loadConfigSync, kn as listProjectsSync, t as init_config_yaml, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
+ import { n as updateIssueRecord, r as updateIssueRecordForWorkspace, t as init_record_update } from "./record-update-Dq0t2uBG.js";
3
+ import { A as listPaneValues, E as isPaneDead, H as sessionExists, M as listSessionNames, i as capturePane, w as init_tmux } from "./tmux-ftABRAmc.js";
4
+ import { b as setReviewStatusSync, c as getReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
5
+ import { A as spawnTierSupervisor, D as init_tier_supervisor, Dr as init_agent_runtime, Dt as init_memory_verdict_cache, E as deliverCommitForReview, Er as getAgentRuntimeSnapshot, Et as getCachedMemoryVerdict, Gn as init_agent_state, Ht as defaultRunWorkspace, I as init_slot_reconcile, L as listSlotAssignments, M as broadcastCommit, N as init_tier_feed, O as loadPrdDraft, Qt as resolveTier, R as reconcileSlotState, Ut as init_spawn_prep, Vn as getAgentResumeGateBlockReason, Wn as getAgentStateSync, X as messageAgent, Y as init_messaging, Zt as init_resolve_tier, ct as init_spawn, dt as init_termination, ft as stopAgent, ht as countRunningSwarmSlotsForIssue, j as supervisorAgentId, k as shouldSupervise, ut as spawnRun, vt as getConcurrencyLimits, wt as tryReserveSwarmSlot, xt as releaseSwarmSlot, yt as init_concurrency, zn as decideResumeGate } from "./queries-6d7Cdtm7.js";
6
+ import { C as init_specs, d as readPlanSync, i as findPlanSync, n as applyStatusOverrides, o as init_io, v as init_types, x as findSpecByIssue, y as subItemsOf } from "./io-B3_AHDfr.js";
7
+ import { s as init_control_settings, u as isDeaconGloballyPausedSync } from "./control-settings-aP1ANIlI.js";
8
+ import { i as createActiveSlice, l as init_dag, n as blockingParentCount, o as getDispatchableItems } from "./dag-CdOjJVDT.js";
9
+ import { a as loadCloisterConfigSync, r as init_config } from "./config-DjLOdbgT.js";
10
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-CQ_fwUWF.js";
11
+ import { t as recordRecoveryFailure } from "./recovery-trip-BJtIQuag.js";
12
12
  import { join } from "node:path";
13
13
  import { Effect } from "effect";
14
14
  import { existsSync, readdirSync } from "fs";
@@ -132,7 +132,7 @@ function commandFailure(error) {
132
132
  //#region ../../lib/pan-dir/task-door.ts
133
133
  init_swarm_readiness();
134
134
  init_slot_reconcile();
135
- /** Single task-mutation write door over the immutable vBRIEF specification. */
135
+ /** Single task-mutation write door over the immutable xBRIEF specification. */
136
136
  init_record_update();
137
137
  var TaskStatusChangeError = class extends Error {
138
138
  constructor(message, details) {
@@ -187,9 +187,9 @@ async function applyTaskStatusChange(project, issueId, operation) {
187
187
  let result;
188
188
  await updateIssueRecord(project, normalizedIssueId, (record) => {
189
189
  const planPath = findPlanSync(join(project.path, "workspaces", `feature-${normalizedIssueId.toLowerCase()}`));
190
- if (!planPath) throw new Error(`The vBRIEF for ${normalizedIssueId} is missing or unreadable. Return the issue to planning before changing task state.`);
190
+ if (!planPath) throw new Error(`The xBRIEF for ${normalizedIssueId} is missing or unreadable. Return the issue to planning before changing task state.`);
191
191
  const item = applyStatusOverrides(readPlanSync(planPath), record.statusOverrides ?? {}).plan.items.find(({ id }) => id === operation.itemId);
192
- if (!item) throw new Error(`Task ${operation.itemId} does not exist in the immutable vBRIEF for ${normalizedIssueId}. Return the issue to planning to change scope.`);
192
+ if (!item) throw new Error(`Task ${operation.itemId} does not exist in the immutable xBRIEF for ${normalizedIssueId}. Return the issue to planning to change scope.`);
193
193
  const currentStatus = item.status;
194
194
  const currentSequence = record.tasks?.sequence ?? 0;
195
195
  const existingClaim = record.tasks?.claims[operation.itemId];
@@ -488,7 +488,7 @@ async function defaultRequestIssueReview(issueId, workspacePath) {
488
488
  autoRequeueCount: 0,
489
489
  reviewRequestedAt: (/* @__PURE__ */ new Date()).toISOString()
490
490
  });
491
- const { spawnReviewRoleForIssue } = await import("./review-agent-CSswH985.js");
491
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
492
492
  return Effect.runPromise(spawnReviewRoleForIssue({
493
493
  issueId,
494
494
  workspace: workspacePath,
@@ -1437,7 +1437,7 @@ function promptForDispatchItem(issueId, doc, item) {
1437
1437
  "Do not implement this item yet. Summarize the blocking parent outputs into a concise context update for the implementation slot.",
1438
1438
  `Blocking parents: ${parentIds.join(", ") || "(none)"}`,
1439
1439
  "",
1440
- "Persist the synthesis context on the vBRIEF item metadata as synthesisContext, commit it, then stop."
1440
+ "Persist the synthesis context on the xBRIEF item metadata as synthesisContext, commit it, then stop."
1441
1441
  ].join("\n");
1442
1442
  }
1443
1443
  function itemRequiresSynthesis(doc, item) {
@@ -1472,4 +1472,4 @@ function registeredSlotCapacityAvailable(issueId, selectedCount, liveSlotCount =
1472
1472
  //#endregion
1473
1473
  export { gcMergedSlots as _, getFailedMergeBlock as a, resolveSwarmPolicy 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, gcOrphanedSlots as v, listFeatureWorkspaces as y };
1474
1474
 
1475
- //# sourceMappingURL=deacon-swarm-DmA3rJ7k.js.map
1475
+ //# sourceMappingURL=deacon-swarm-DftYRDo8.js.map
package/server/deacon.js CHANGED
@@ -1,11 +1,11 @@
1
- import { an as init_auto_commit, rn as flushAllPendingAutoCommits } from "./config-yaml-Ciyp2mYe.js";
1
+ import { Ut as init_auto_commit, Vt as flushAllPendingAutoCommits } from "./config-yaml-DvyMuOle.js";
2
2
  import { a as init_activity_logger, o as setActivityEventStoreProvider } from "./activity-logger-DDlOIAML.js";
3
- import { c as init_review_status, s as getReviewStatusSync } from "./review-status-CCgPVK1h.js";
4
- import { kn as getAgentState, s as init_agents } from "./queries-B5hl7lMQ.js";
5
- import { r as setCloisterEventStoreProvider, t as getCloisterService } from "./service-CqAY8Kmk.js";
6
- import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DhfFiwW7.js";
7
- import { F as setAgentStatusChangedNotifier, I as setAgentStoppedNotifier, L as setMergeReadyNotifier, M as resetPatrolHeartbeatForStartup, N as runPatrol } from "./deacon-1s7bM5zn.js";
8
- import { t as enrichReviewStatus } from "./review-status-enrichment-DtDRGpst.js";
3
+ import { c as getReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
4
+ import { Hn as getAgentState, b as init_agents } from "./queries-6d7Cdtm7.js";
5
+ import { r as setCloisterEventStoreProvider, t as getCloisterService } from "./service-DCpB_SGd.js";
6
+ import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-Bb4XeV2x.js";
7
+ import { F as setAgentStatusChangedNotifier, I as setAgentStoppedNotifier, L as setMergeReadyNotifier, M as resetPatrolHeartbeatForStartup, N as runPatrol } from "./deacon-pRnyD5w9.js";
8
+ import { t as enrichReviewStatus } from "./review-status-enrichment-tbOn_A_u.js";
9
9
  import { Effect } from "effect";
10
10
  import { randomUUID } from "node:crypto";
11
11
  //#region ../../lib/cloister/deacon-event-client.ts
@@ -320,7 +320,7 @@ async function shutdown(signal) {
320
320
  console.error("[deacon-child] Cloister stop failed:", err);
321
321
  }
322
322
  try {
323
- const { killAllGateProcessGroups } = await import("./validation-CUWamZ4X.js");
323
+ const { killAllGateProcessGroups } = await import("./validation-CIi6pnI2.js");
324
324
  const reaped = killAllGateProcessGroups();
325
325
  if (reaped > 0) console.log(`[deacon-child] reaped ${reaped} in-flight gate process group(s)`);
326
326
  } catch (err) {
@@ -1,12 +1,12 @@
1
- import { Rr as OVERDECK_HOME, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
2
- import { n as init_build_info, t as getBuildInfo } from "./build-info-27NlbKhV.js";
1
+ import { Vr as init_paths, wr as OVERDECK_HOME } from "./config-yaml-DvyMuOle.js";
2
+ import { n as init_build_info, t as getBuildInfo } from "./build-info-BT096lEl.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-DDlOIAML.js";
4
- import { a as loadCloisterConfigSync, r as init_config } from "./config-G1TOMJZA.js";
5
- import { i as init_staleness, r as computeBuildStaleness } from "./staleness-BbsGxmF2.js";
6
- import { n as init_deploy_window, t as getDeployBlockReason } from "./deploy-window-jw4S_Y-c.js";
4
+ import { a as loadCloisterConfigSync, r as init_config } from "./config-DjLOdbgT.js";
5
+ import { i as init_staleness, r as computeBuildStaleness } from "./staleness-Bpy41ngS.js";
6
+ import { n as init_deploy_window, t as getDeployBlockReason } from "./deploy-window-DeP_OIRk.js";
7
7
  import { join } from "node:path";
8
8
  import { mkdir, open, writeFile } from "node:fs/promises";
9
- import { spawn } from "node:child_process";
9
+ import { execFile, spawn } from "node:child_process";
10
10
  //#region ../../lib/cloister/deploy-patrol.ts
11
11
  init_activity_logger();
12
12
  init_build_info();
@@ -16,6 +16,10 @@ init_paths();
16
16
  init_config();
17
17
  const OBSERVATION_INTERVAL_MS = 1800 * 1e3;
18
18
  const DEPLOY_SPAWN_COOLDOWN_MS = 600 * 1e3;
19
+ const DEPLOY_PATROL_INITIATOR = "deploy-patrol";
20
+ const CI_WORKFLOW_FILE = "ci.yml";
21
+ const CI_RUN_FIELDS = "databaseId,status,conclusion,headSha,attempt,createdAt";
22
+ const SYSTEMD_ENV_NAME_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
19
23
  const state = {
20
24
  lastObservedBehind: null,
21
25
  lastObservationAt: 0,
@@ -24,6 +28,81 @@ const state = {
24
28
  lastDeploySpawnAt: 0,
25
29
  unknownObserved: false
26
30
  };
31
+ function reloadEnvironment(request, env) {
32
+ return {
33
+ ...env,
34
+ OVERDECK_AGENT_ID: request.initiator
35
+ };
36
+ }
37
+ function execGh(args, cwd) {
38
+ return new Promise((resolve, reject) => {
39
+ execFile("gh", [...args], {
40
+ cwd,
41
+ encoding: "utf8",
42
+ timeout: 3e4
43
+ }, (error, stdout) => {
44
+ if (error) reject(error);
45
+ else resolve(stdout);
46
+ });
47
+ });
48
+ }
49
+ async function getDeployCiState(repoRoot, sha, runGh = execGh) {
50
+ try {
51
+ const run = JSON.parse(await runGh([
52
+ "run",
53
+ "list",
54
+ "--branch",
55
+ "main",
56
+ "--commit",
57
+ sha,
58
+ "--workflow",
59
+ CI_WORKFLOW_FILE,
60
+ "--limit",
61
+ "10",
62
+ "--json",
63
+ CI_RUN_FIELDS
64
+ ], repoRoot)).find((candidate) => candidate.headSha === sha);
65
+ const tip = shortSha(sha);
66
+ if (!run) return {
67
+ status: "pending",
68
+ reason: `Automatic deployment deferred because CI has not started for origin/main ${tip}.`
69
+ };
70
+ if (run.status !== "completed") return {
71
+ status: "pending",
72
+ reason: `Automatic deployment deferred because CI is ${run.status} for origin/main ${tip}.`
73
+ };
74
+ if (run.conclusion !== "success") return {
75
+ status: "red",
76
+ reason: `Automatic deployment blocked because CI concluded ${run.conclusion || "without a result"} for origin/main ${tip}.`
77
+ };
78
+ return { status: "green" };
79
+ } catch (error) {
80
+ return {
81
+ status: "unknown",
82
+ reason: `Automatic deployment deferred because CI status for origin/main ${shortSha(sha)} could not be read: ${error instanceof Error ? error.message : String(error)}`
83
+ };
84
+ }
85
+ }
86
+ function buildSystemdReloadArgs(request, now, logPath, env = process.env) {
87
+ const setenvArgs = Object.entries(reloadEnvironment(request, env)).filter(([name, value]) => value !== void 0 && SYSTEMD_ENV_NAME_RE.test(name)).flatMap(([name, value]) => ["--setenv", `${name}=${value}`]);
88
+ return [
89
+ "--user",
90
+ "--unit",
91
+ `overdeck-auto-deploy-${now}`,
92
+ "--collect",
93
+ "--quiet",
94
+ "--property=Restart=on-failure",
95
+ "--property=RestartSec=10s",
96
+ "--property=StartLimitBurst=2",
97
+ "--property=StartLimitIntervalSec=300s",
98
+ `--property=StandardOutput=append:${logPath}`,
99
+ `--property=StandardError=append:${logPath}`,
100
+ `--property=WorkingDirectory=${request.cwd}`,
101
+ ...setenvArgs,
102
+ request.command,
103
+ ...request.args
104
+ ];
105
+ }
27
106
  function shortSha(sha) {
28
107
  return sha?.slice(0, 8) || "unknown";
29
108
  }
@@ -46,19 +125,45 @@ async function waitForChildSpawn(child) {
46
125
  child.once("error", onError);
47
126
  });
48
127
  }
128
+ async function waitForChildExit(child) {
129
+ return new Promise((resolve, reject) => {
130
+ child.once("error", reject);
131
+ child.once("close", (code) => resolve(code ?? 1));
132
+ });
133
+ }
49
134
  async function spawnDetachedReload(request, now) {
50
135
  const logsDir = join(OVERDECK_HOME, "logs");
136
+ const logPath = join(logsDir, "auto-deploy.log");
51
137
  await mkdir(logsDir, { recursive: true });
52
138
  await writeFile(join(OVERDECK_HOME, "dashboard-restarting.json"), JSON.stringify({
53
139
  reason: "auto-deploy",
54
140
  trigger: "deacon",
55
141
  timestamp: now
56
142
  }, null, 2), "utf8");
57
- const log = await open(join(logsDir, "auto-deploy.log"), "a");
143
+ const log = await open(logPath, "a");
58
144
  try {
145
+ if (process.platform === "linux") {
146
+ let systemdFailure = null;
147
+ try {
148
+ const exitCode = await waitForChildExit(spawn("systemd-run", buildSystemdReloadArgs(request, now, logPath), {
149
+ cwd: request.cwd,
150
+ stdio: [
151
+ "ignore",
152
+ log.fd,
153
+ log.fd
154
+ ]
155
+ }));
156
+ if (exitCode === 0) return;
157
+ systemdFailure = `systemd-run exited ${exitCode}`;
158
+ } catch (error) {
159
+ systemdFailure = error instanceof Error ? error.message : String(error);
160
+ }
161
+ await log.appendFile(`[auto-deploy] WARNING: ${systemdFailure}; falling back to an unsupervised detached reload.\n`, "utf8");
162
+ }
59
163
  await waitForChildSpawn(spawn(request.command, [...request.args], {
60
164
  cwd: request.cwd,
61
165
  detached: request.detached,
166
+ env: reloadEnvironment(request, process.env),
62
167
  stdio: [
63
168
  "ignore",
64
169
  log.fd,
@@ -77,6 +182,16 @@ function clearState() {
77
182
  state.lastDeploySpawnAt = 0;
78
183
  state.unknownObserved = false;
79
184
  }
185
+ function emitDeferral(reason, now, emitEntry) {
186
+ if (state.lastDeferralReason === reason && now - state.lastDeferralAt < OBSERVATION_INTERVAL_MS) return;
187
+ emitEntry({
188
+ source: "deploy-script",
189
+ level: "warn",
190
+ message: reason
191
+ });
192
+ state.lastDeferralReason = reason;
193
+ state.lastDeferralAt = now;
194
+ }
80
195
  async function runDeployPatrol(context) {
81
196
  const now = (context.now ?? Date.now)();
82
197
  const emitEntry = context.emitEntry ?? emitActivityEntrySync;
@@ -112,19 +227,20 @@ async function runDeployPatrol(context) {
112
227
  state.lastObservationAt = now;
113
228
  }
114
229
  if (!context.config.auto_deploy) return;
115
- if (staleness.originMainLastCommitAt !== null && now - staleness.originMainLastCommitAt < context.config.debounce_minutes * 60 * 1e3) return;
230
+ if (staleness.originMainLastBuildInputCommitAt !== null && now - staleness.originMainLastBuildInputCommitAt < context.config.debounce_minutes * 60 * 1e3) return;
116
231
  if (state.lastDeploySpawnAt > 0 && now - state.lastDeploySpawnAt < DEPLOY_SPAWN_COOLDOWN_MS) return;
232
+ if (!staleness.originMainSha) {
233
+ emitDeferral("Automatic deployment deferred because the origin/main commit is unknown.", now, emitEntry);
234
+ return;
235
+ }
236
+ const ciState = await (context.getCiState ?? ((sha) => getDeployCiState(context.repoRoot, sha)))(staleness.originMainSha);
237
+ if (ciState.status !== "green") {
238
+ emitDeferral(ciState.reason ?? `Automatic deployment deferred because CI is ${ciState.status} for origin/main ${shortSha(staleness.originMainSha)}.`, now, emitEntry);
239
+ return;
240
+ }
117
241
  const blockReason = await (context.getBlockReason ?? getDeployBlockReason)();
118
242
  if (blockReason) {
119
- if (state.lastDeferralReason !== blockReason || now - state.lastDeferralAt >= OBSERVATION_INTERVAL_MS) {
120
- emitEntry({
121
- source: "deploy-script",
122
- level: "warn",
123
- message: blockReason
124
- });
125
- state.lastDeferralReason = blockReason;
126
- state.lastDeferralAt = now;
127
- }
243
+ emitDeferral(blockReason, now, emitEntry);
128
244
  return;
129
245
  }
130
246
  const reloadRequest = {
@@ -136,7 +252,8 @@ async function runDeployPatrol(context) {
136
252
  "120000"
137
253
  ],
138
254
  cwd: context.repoRoot,
139
- detached: true
255
+ detached: true,
256
+ initiator: DEPLOY_PATROL_INITIATOR
140
257
  };
141
258
  await (context.spawnReload ?? ((request) => spawnDetachedReload(request, now)))(reloadRequest);
142
259
  state.lastDeploySpawnAt = now;
@@ -168,4 +285,4 @@ async function runScheduledDeployPatrol() {
168
285
  //#endregion
169
286
  export { runScheduledDeployPatrol };
170
287
 
171
- //# sourceMappingURL=deploy-patrol-DmM6F-yw.js.map
288
+ //# sourceMappingURL=deploy-patrol-Bjsho_ha.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_deploy_window, t as getDeployBlockReason } from "./deploy-window-jw4S_Y-c.js";
1
+ import { n as init_deploy_window, t as getDeployBlockReason } from "./deploy-window-DeP_OIRk.js";
2
2
  init_deploy_window();
3
3
  export { getDeployBlockReason };
@@ -1,12 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ei as getOverdeckHome, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { V as sessionExists, w as init_tmux } from "./tmux-y1blSxks.js";
4
- import { c as init_review_status, u as loadReviewStatuses } from "./review-status-CCgPVK1h.js";
5
- import { i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-D_79A6gp.js";
6
- import { n as readDevSupervisorMarker, t as init_dev_supervisor } from "./dev-supervisor-Do2Stz49.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
3
+ import { H as sessionExists, w as init_tmux } from "./tmux-ftABRAmc.js";
4
+ import { d as loadReviewStatuses, l as init_review_status } from "./review-status-A7quS5KJ.js";
5
+ import { i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-aP1ANIlI.js";
6
+ import { n as readDevSupervisorMarker, t as init_dev_supervisor } from "./dev-supervisor-BpMoHlkR.js";
7
7
  import { join } from "node:path";
8
8
  import { Data, Effect } from "effect";
9
- import { access, readFile } from "node:fs/promises";
9
+ import { access, open, readFile, unlink } from "node:fs/promises";
10
10
  //#region ../../lib/restart-lock.ts
11
11
  function restartLockPath() {
12
12
  return join(getOverdeckHome(), "restart.lock");
@@ -28,12 +28,79 @@ async function readHolderFromPath(path) {
28
28
  return null;
29
29
  }
30
30
  }
31
+ function isProcessAlive(pid) {
32
+ try {
33
+ process.kill(pid, 0);
34
+ return true;
35
+ } catch (error) {
36
+ return isErrnoException(error) && error.code === "EPERM";
37
+ }
38
+ }
39
+ function isStale(holder, now) {
40
+ return now - holder.ts > STALE_LOCK_MS || !isProcessAlive(holder.pid);
41
+ }
42
+ async function writeLockFile(path, holder) {
43
+ const file = await open(path, "wx", 384);
44
+ try {
45
+ await file.writeFile(`${JSON.stringify(holder)}\n`, "utf8");
46
+ } finally {
47
+ await file.close();
48
+ }
49
+ }
50
+ async function unlinkIfExists(path) {
51
+ try {
52
+ await unlink(path);
53
+ } catch (error) {
54
+ if (!isErrnoException(error) || error.code !== "ENOENT") throw error;
55
+ }
56
+ }
57
+ function matchesHolder(actual, expected) {
58
+ return actual?.pid === expected.pid && actual.ts === expected.ts && actual.caller === expected.caller;
59
+ }
60
+ async function acquireStaleBreaker(path) {
61
+ const breakerPath = `${path}.break`;
62
+ for (let attempt = 0; attempt < 2; attempt += 1) {
63
+ const holder = {
64
+ pid: process.pid,
65
+ ts: Date.now(),
66
+ caller: "stale restart lock breaker"
67
+ };
68
+ try {
69
+ await writeLockFile(breakerPath, holder);
70
+ let released = false;
71
+ return { async release() {
72
+ if (released) return;
73
+ released = true;
74
+ if (matchesHolder(await readHolderFromPath(breakerPath), holder)) await unlinkIfExists(breakerPath);
75
+ } };
76
+ } catch (error) {
77
+ if (!isErrnoException(error) || error.code !== "EEXIST") throw error;
78
+ const existing = await readHolderFromPath(breakerPath);
79
+ if (!existing || !isStale(existing, Date.now())) return null;
80
+ await unlinkIfExists(breakerPath);
81
+ }
82
+ }
83
+ return null;
84
+ }
31
85
  async function readRestartLockHolderPromise() {
32
- return readHolderFromPath(restartLockPath());
86
+ const path = restartLockPath();
87
+ const observed = await readHolderFromPath(path);
88
+ if (!observed || isProcessAlive(observed.pid)) return observed;
89
+ const breaker = await acquireStaleBreaker(path);
90
+ if (!breaker) return observed;
91
+ try {
92
+ const current = await readHolderFromPath(path);
93
+ if (!matchesHolder(current, observed)) return current;
94
+ await unlinkIfExists(path);
95
+ return null;
96
+ } finally {
97
+ await breaker.release();
98
+ }
33
99
  }
34
- var RestartLockError, readRestartLockHolder;
100
+ var STALE_LOCK_MS, RestartLockError, readRestartLockHolder;
35
101
  var init_restart_lock = __esmMin((() => {
36
102
  init_paths();
103
+ STALE_LOCK_MS = 300 * 1e3;
37
104
  RestartLockError = class extends Data.TaggedError("RestartLockError") {};
38
105
  readRestartLockHolder = () => Effect.tryPromise({
39
106
  try: () => readRestartLockHolderPromise(),
@@ -51,7 +118,7 @@ async function getDeployBlockReason(dependencies = {}) {
51
118
  ...defaultDependencies,
52
119
  ...dependencies
53
120
  };
54
- const verifyingIssues = Object.entries(deps.loadReviewStatuses()).filter(([, status]) => status.verificationStatus === "running").map(([issueId]) => issueId).sort();
121
+ const verifyingIssues = Object.entries(deps.loadReviewStatuses()).filter(([, status]) => status.verificationStatus === "running" && status.mergeStatus !== "merged").map(([issueId]) => issueId).sort();
55
122
  if (verifyingIssues.length > 0) return `Deployment deferred because verification is in flight for ${verifyingIssues.join(", ")}.`;
56
123
  const activeFlywheelRunId = deps.getFlywheelActiveRunId();
57
124
  if (activeFlywheelRunId) return `Deployment deferred because flywheel run ${activeFlywheelRunId} owns deployment.`;
@@ -89,4 +156,4 @@ var init_deploy_window = __esmMin((() => {
89
156
  //#endregion
90
157
  export { init_deploy_window as n, getDeployBlockReason as t };
91
158
 
92
- //# sourceMappingURL=deploy-window-jw4S_Y-c.js.map
159
+ //# sourceMappingURL=deploy-window-DeP_OIRk.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ei as getOverdeckHome, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
3
3
  import { existsSync, readFileSync, unlinkSync } from "fs";
4
4
  import { join } from "path";
5
5
  //#region ../../lib/dev-supervisor.ts
@@ -71,4 +71,4 @@ var init_dev_supervisor = __esmMin((() => {
71
71
  //#endregion
72
72
  export { readDevSupervisorMarker as n, init_dev_supervisor as t };
73
73
 
74
- //# sourceMappingURL=dev-supervisor-Do2Stz49.js.map
74
+ //# sourceMappingURL=dev-supervisor-BpMoHlkR.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors } from "./config-yaml-Ciyp2mYe.js";
3
- import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-BAAsAv-o.js";
2
+ import { mr as init_errors } from "./config-yaml-DvyMuOle.js";
3
+ import { n as init_workspace_config, r as replacePlaceholdersSync } from "./workspace-config-cEGcO6UT.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-D8ylupco.js.map
169
+ //# sourceMappingURL=devcontainer-renderer-CtUgrVKW.js.map
@@ -0,0 +1,3 @@
1
+ import { t as require_dist } from "./dist-DyRx4cI7.js";
2
+ export default require_dist();
3
+ export {};
@@ -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-yfR7G1BL.js.map
1241
+ //# sourceMappingURL=dist-DyRx4cI7.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-D8ylupco.js";
2
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CtUgrVKW.js";
3
3
  import { existsSync, readFileSync } from "fs";
4
4
  import { join } from "path";
5
5
  import { exec } from "child_process";
@@ -195,4 +195,4 @@ var init_docker = __esmMin((() => {
195
195
  //#endregion
196
196
  export { teardownWorkspaceDockerByNamePromise as i, init_docker as n, stopWorkspaceDockerPromise as r, getContainersReferencingWorkspacePathPromise as t };
197
197
 
198
- //# sourceMappingURL=docker-ClwPQaba.js.map
198
+ //# sourceMappingURL=docker-BK7HIcBj.js.map
@@ -63,4 +63,4 @@ function acceptFlagFor(row) {
63
63
  //#endregion
64
64
  export { acceptFlagFor as n, DOD_ROWS as t };
65
65
 
66
- //# sourceMappingURL=dod-BLphkhjs.js.map
66
+ //# sourceMappingURL=dod-BrSfUHm0.js.map
@@ -1,3 +1,3 @@
1
- import { n as ensureDevcontainerSync, r as init_ensure_devcontainer, t as ensureDevcontainer } from "./ensure-devcontainer-CFpQatOc.js";
1
+ import { n as ensureDevcontainerSync, r as init_ensure_devcontainer, t as ensureDevcontainer } from "./ensure-devcontainer-DseivYEy.js";
2
2
  init_ensure_devcontainer();
3
3
  export { ensureDevcontainer, ensureDevcontainerSync };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as resolveProjectFromIssueSync, Nn as getProjectSync, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
3
- import { a as renderDevcontainerSync, r as init_devcontainer_renderer } from "./devcontainer-renderer-D8ylupco.js";
4
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-BjaZ1oqH.js";
2
+ import { Tn as init_projects, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
3
+ import { a as renderDevcontainerSync, r as init_devcontainer_renderer } from "./devcontainer-renderer-CtUgrVKW.js";
4
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-BBNjPcqU.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-CFpQatOc.js.map
110
+ //# sourceMappingURL=ensure-devcontainer-DseivYEy.js.map
@@ -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-BZw-fTQ6.js.map
15
+ //# sourceMappingURL=esm-shims-CbI3BVkl.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-BVnON3vf.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-tdiY5eDZ.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 { ei as getOverdeckHome, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
3
3
  import { a as init_activity_logger, o as setActivityEventStoreProvider } from "./activity-logger-DDlOIAML.js";
4
- import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-DN2wSxle.js";
4
+ import { A as init_paths$1, d as getOverdeckDatabaseSync, f as init_infra, k as getOverdeckDatabasePath } from "./infra-CzaSOgul.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-BVnON3vf.js.map
239
+ //# sourceMappingURL=event-store-tdiY5eDZ.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as init_errors, Un as listProjectsSync, cr as extractPrefixSync, lr as init_issue_id, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
3
- import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-DzHP6zaR.js";
2
+ import { Jn as extractPrefixSync, Tn as init_projects, Yn as init_issue_id, kn as listProjectsSync, mr as init_errors } from "./config-yaml-DvyMuOle.js";
3
+ import { d as init_cost_sync, f as insertCostEventSync } from "./cost-sync-C0VdGme1.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-CmERlnwn.js.map
248
+ //# sourceMappingURL=events-CC1dgUpx.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_events, o as readEventsSync } from "./events-CmERlnwn.js";
1
+ import { i as init_events, o as readEventsSync } from "./events-CC1dgUpx.js";
2
2
  init_events();
3
3
  export { readEventsSync };