@overdeck/desktop 0.45.7 → 0.45.8

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 (303) hide show
  1. package/package.json +10 -3
  2. package/server/{acceptance-criteria-DYffaKI9.js → acceptance-criteria-l0DSvFFS.js} +2 -2
  3. package/server/{activity-logger-DO27GsPa.js → activity-logger-DvYvFhwZ.js} +1 -1
  4. package/server/{activity-logger-Dm95Ua07.js → activity-logger-pcbf-e30.js} +3 -2
  5. package/server/{advancing-selfheal-n8tAeFwE.js → advancing-selfheal-CMlGznKv.js} +11 -66
  6. package/server/{agent-gc-CIFaa2vJ.js → agent-gc-BtAzj8QN.js} +3 -3
  7. package/server/{agent-state-service-BqVDA9b8.js → agent-state-service-5ge9xxhx.js} +5 -5
  8. package/server/{agent-state-service-CLifyinO.js → agent-state-service-C1iUF9Ft.js} +1 -1
  9. package/server/agent-state-xk_G8t90.js +3 -0
  10. package/server/{agents-KaEsWZ8D.js → agents-BIggLvi_.js} +1 -1
  11. package/server/{agents-D_x5BSZM.js → agents-DHvsjsuP.js} +129 -61
  12. package/server/{archive-planning-CFxmeFKh.js → archive-planning-B4Qi02bk.js} +1 -1
  13. package/server/{archive-planning-DVUXlRBs.js → archive-planning-zTvWWHG_.js} +4 -4
  14. package/server/{artifact-index-jobs-ChUgzZah.js → artifact-index-jobs-BrByqVkB.js} +2 -2
  15. package/server/{auto-commit-2KiBFh-K.js → auto-commit-DoIPFoEs.js} +1 -1
  16. package/server/{backlog-auto-trigger-DoTEMZMl.js → backlog-auto-trigger-COm_R96V.js} +3 -3
  17. package/server/{bd-mutex-CE6P_MlD.js → bd-mutex-BItGvLQ8.js} +2 -2
  18. package/server/{bd-process-lock-Ch3WNHS9.js → bd-process-lock-CJkoG7hW.js} +2 -2
  19. package/server/{beads-B43pgBIy.js → beads-AmCXEv_E.js} +1 -1
  20. package/server/{beads-BugPvtWp.js → beads-DlZm-vrG.js} +5 -5
  21. package/server/{beads-query-CtqWakL6.js → beads-query-BrVNWoSL.js} +2 -2
  22. package/server/{beads-restore-BqTMSQi-.js → beads-restore-CMbDSB5R.js} +1 -1
  23. package/server/{behavior-vk1sixby.js → behavior-By-2Wipv.js} +3 -3
  24. package/server/{briefing-freshness-B3YxHQ-L.js → briefing-freshness-CXhZdnB8.js} +4 -4
  25. package/server/{checkpoint-manager-CdrwLsQh.js → checkpoint-manager-CPw51H2n.js} +1 -1
  26. package/server/{checkpoint-manager-Dg6cWZz3.js → checkpoint-manager-CfNpHOp4.js} +11 -2
  27. package/server/checkpoint-worker.js +1 -1
  28. package/server/{checkpoints-DDd-0doa.js → checkpoints-BbfH1EIy.js} +2 -2
  29. package/server/{checkpoints-dBCJr0dC.js → checkpoints-BjlBWOA8.js} +1 -1
  30. package/server/{claude-permissions-BpwIcIR7.js → claude-permissions-DrRAs_0F.js} +3 -3
  31. package/server/{claude-settings-overlay-DnraWcz6.js → claude-settings-overlay-BSeS7Ki3.js} +2 -2
  32. package/server/{claude-settings-overlay-xD_Vu420.js → claude-settings-overlay-CEWlIFL-.js} +1 -1
  33. package/server/cli-CJDWXE_Y.js +3 -0
  34. package/server/{cli-BmzYZZKi.js → cli-CvK9xuSS.js} +9 -9
  35. package/server/{cliproxy-DYWdJKZ1.js → cliproxy-BOcmOK6l.js} +1 -1
  36. package/server/{cliproxy-CE2GDY7x.js → cliproxy-J-_1iIXe.js} +2 -2
  37. package/server/{close-issue-CpJd4SOL.js → close-issue-BnpErnD1.js} +5 -5
  38. package/server/{closed-issue-reaper-QpcvCDeE.js → closed-issue-reaper-BLCQwTpF.js} +1 -1
  39. package/server/{closed-issue-reaper-DubXY9Zg.js → closed-issue-reaper-DRqK5k39.js} +10 -10
  40. package/server/{codex-j8aVgRou.js → codex-BUZjrnqH.js} +1 -1
  41. package/server/{codex-B3J1TXo7.js → codex-DcInrhok.js} +5 -5
  42. package/server/{compact-beads-CqhLqG-k.js → compact-beads-RFwdZFPA.js} +4 -4
  43. package/server/{compact-beads-BeilHCdj.js → compact-beads-omhUgj5b.js} +1 -1
  44. package/server/{config-DHU0j_pS.js → config-CzcWQ24p.js} +1 -1
  45. package/server/{config-DkEhJM0h.js → config-oWoKf5jO.js} +4 -4
  46. package/server/{config-yaml-DbdN9Fuq.js → config-yaml-DPAieL_G.js} +3 -2
  47. package/server/{conflict-gate-CgOtMo8i.js → conflict-gate-BhKvrPxn.js} +4 -4
  48. package/server/{conflict-gate-D00zFjeu.js → conflict-gate-JdFuhKuF.js} +1 -1
  49. package/server/{context-layers-BHEjT8Cn.js → context-layers-CTjQwcEQ.js} +3 -3
  50. package/server/{context-layers-0Lgq-SE_.js → context-layers-DxKsseHI.js} +2 -2
  51. package/server/{control-settings-CYv732Gs.js → control-settings-BMqUkXmR.js} +4 -4
  52. package/server/{conversation-compaction-Dbw03b-X.js → conversation-compaction-Ba5aZdrb.js} +1 -1
  53. package/server/{conversation-compaction-DKXvmX50.js → conversation-compaction-C5o_eKEm.js} +8 -8
  54. package/server/{conversation-service-BwKUeEvn.js → conversation-service-DvG8vZSV.js} +5 -5
  55. package/server/{conversation-service-kYYeRp9B.js → conversation-service-WKl-sw58.js} +1 -1
  56. package/server/{conversations-Dwr1jHrO.js → conversations-DL_BAWVk.js} +4 -4
  57. package/server/{conversations-D-uOnA8T.js → conversations-Dcx6LeIh.js} +1 -1
  58. package/server/{cost-DiSDkYe7.js → cost-C2CuA66z.js} +2 -2
  59. package/server/{cost-DNIyZH1X.js → cost-DaOG8sUB.js} +3 -3
  60. package/server/{cost-sync-CfXu-3TF.js → cost-sync-8lkDeL9g.js} +3 -3
  61. package/server/{dag-DZBowTd2.js → dag-jH8ZkewR.js} +3 -3
  62. package/server/{dangerous-git-ops-Pongxg2d.js → dangerous-git-ops-Dcw7PbYo.js} +1 -1
  63. package/server/dashboard-db-worker.js +6 -6
  64. package/server/{deacon-DT0BsVyE.js → deacon-Cv2RMfHs.js} +3 -3
  65. package/server/{deacon-f0yvsG5S.js → deacon-j3qSZ7--.js} +222 -110
  66. package/server/{deacon-nudge-log-Cmcch2Av.js → deacon-nudge-log-CJGA6aSQ.js} +1 -1
  67. package/server/deacon-swarm-D1iAUX-P.js +2 -0
  68. package/server/{deacon-swarm-BBGnhvD2.js → deacon-swarm-DadWNi5J.js} +88 -43
  69. package/server/deacon.js +8 -8
  70. package/server/{devcontainer-renderer-Cpz7XBj0.js → devcontainer-renderer-DUJYYRQB.js} +3 -3
  71. package/server/{dist-DypOkJv9.js → dist-BIC8spJ0.js} +1 -1
  72. package/server/dist-BUplB3Od.js +3 -0
  73. package/server/{docker-DARVx0OZ.js → docker-Q4bphryk.js} +2 -2
  74. package/server/{ensure-devcontainer-Dmdw4BxF.js → ensure-devcontainer-BCB6fHp9.js} +1 -1
  75. package/server/{ensure-devcontainer-BJssuBG6.js → ensure-devcontainer-XLL0vtgV.js} +4 -4
  76. package/server/{esm-shims-Crmvo9Ln.js → esm-shims-DiV9jHa_.js} +1 -1
  77. package/server/{event-store-BeEE8pW5.js → event-store-DIk9wvnS.js} +1 -1
  78. package/server/{event-store-DrfTJZ1_.js → event-store-DTJXZjCl.js} +4 -4
  79. package/server/events-BlzVUyTx.js +3 -0
  80. package/server/{events-BbClwoM-.js → events-DGWZzye2.js} +4 -4
  81. package/server/{factory-DVv9cpG5.js → factory-rG4T40su.js} +4 -4
  82. package/server/{feature-registry-population-C6eVdq4J.js → feature-registry-population-Dwyj9gEM.js} +4 -4
  83. package/server/{feature-registry-storage-ByBosRId.js → feature-registry-storage-CnGyNgAq.js} +2 -2
  84. package/server/{features-EZfSwuqq.js → features-CYY2_Eeh.js} +2 -2
  85. package/server/{feedback-target-DENaINE6.js → feedback-target-C4DaDSZ8.js} +1 -1
  86. package/server/{feedback-target-Dv4VnbQl.js → feedback-target-oE4-Esxl.js} +48 -17
  87. package/server/{feedback-writer-Dxg8qM8i.js → feedback-writer-DMaO0XXa.js} +4 -4
  88. package/server/{feedback-writer-BvHE1I-3.js → feedback-writer-thrdxYpK.js} +1 -1
  89. package/server/{flywheel-Akbd9VNM.js → flywheel-BqDdGvrQ.js} +1 -1
  90. package/server/{flywheel-B4KN9BmW.js → flywheel-ClMjGW_u.js} +11 -11
  91. package/server/{flywheel-ByZyAv3P.js → flywheel-DefHRzY4.js} +13 -13
  92. package/server/{flywheel-merge-order-DPFZbt-w.js → flywheel-merge-order-B6YDSElh.js} +1 -1
  93. package/server/{flywheel-merge-order-BYUPxqgx.js → flywheel-merge-order-CuDcqTRJ.js} +7 -7
  94. package/server/forge-BfP7OJwK.js +2 -0
  95. package/server/{forge-BnTExkbK.js → forge-BixzckB0.js} +2 -2
  96. package/server/{from-B2i_NgIH.js → from-D4xmArTA.js} +1 -1
  97. package/server/{fts-db-dnCj-PD3.js → fts-db-DPtxOAjp.js} +2 -2
  98. package/server/{fts-operations-CAAofsTQ.js → fts-operations-VrGjsT0w.js} +2 -2
  99. package/server/{git-utils-CB3gDSM-.js → git-utils-D_cax3fD.js} +2 -2
  100. package/server/{git-utils-Bk7sJZru.js → git-utils-RAmTwjFB.js} +1 -1
  101. package/server/{github-app-CIhMNI4C.js → github-app-B5PDHMyn.js} +1 -1
  102. package/server/{github-app-BIU8a93o.js → github-app-FMXgo3vK.js} +2 -2
  103. package/server/{github-client-DmZgsnYP.js → github-client-VRiB6N-4.js} +1 -1
  104. package/server/{github-client-zREpj5HA.js → github-client-yjbXaqpR.js} +2 -2
  105. package/server/{github-pr-lookup-CPri6JR1.js → github-pr-lookup-t8X8R0c0.js} +2 -2
  106. package/server/{harness-resolve-TzYAiXzZ.js → harness-resolve-DKeSVsJL.js} +3 -3
  107. package/server/{health-events-CDWk8Oz4.js → health-events-CD6q47ub.js} +1 -1
  108. package/server/{health-events-Dd0FuKrE.js → health-events-DaLX4-0a.js} +2 -2
  109. package/server/{hooks-C6HBXlVm.js → hooks-CmHFSj_Z.js} +2 -2
  110. package/server/{hooks-DRLzoFof.js → hooks-D-cbMUzQ.js} +1 -1
  111. package/server/{hume-Bb91r_2I.js → hume-DkVOs1Qi.js} +2 -2
  112. package/server/hume-x9voULey.js +3 -0
  113. package/server/{idle-stack-reaper-BPHnItVj.js → idle-stack-reaper-DBKQ9SKu.js} +3 -3
  114. package/server/{idle-stack-reaper-D5bwmuwX.js → idle-stack-reaper-DdnERp3G.js} +1 -1
  115. package/server/{infra-CCTzpcuJ.js → infra-CpKlYZA9.js} +3 -3
  116. package/server/{injection-D6L7D_w0.js → injection-CszhePD2.js} +7 -7
  117. package/server/{injection-CBrN8UxB.js → injection-DKzL2Axk.js} +1 -1
  118. package/server/{inspect-agent-CSYyFWqP.js → inspect-agent-BKKc0XnB.js} +9 -9
  119. package/server/inspect-agent-vm88mLYr.js +2 -0
  120. package/server/{internal-token-DWhBqgIk.js → internal-token-CQUx9YLc.js} +2 -2
  121. package/server/{internal-token-DCrCAG_M.js → internal-token-DrGdpLFo.js} +1 -1
  122. package/server/{io-DtAQ_2hp.js → io-Wy8YpFeP.js} +2 -2
  123. package/server/{issue-closed-0Zx72zXf.js → issue-closed-BO84g03t.js} +4 -4
  124. package/server/{issue-lifecycle-ZTt6kP_K.js → issue-lifecycle-DnhQgddB.js} +22 -22
  125. package/server/{issue-lifecycle-CJ7-D4XX.js → issue-lifecycle-nY4esZn8.js} +1 -1
  126. package/server/{issue-service-singleton-DNh4RRI7.js → issue-service-singleton-Bnqv1uaa.js} +1 -1
  127. package/server/{issue-service-singleton-DRE7S-Zg.js → issue-service-singleton-_AquSBTl.js} +8 -8
  128. package/server/{issues-CGc8Aaxm.js → issues-ChNcfHta.js} +2 -2
  129. package/server/{label-cleanup-CNsPlXy6.js → label-cleanup-bVXCGWBM.js} +3 -3
  130. package/server/{layers-CO_VLcSv.js → layers-vdvlpFki.js} +2 -2
  131. package/server/{lifecycle-B_NFvTj9.js → lifecycle-CGKm7doE.js} +7 -7
  132. package/server/{lifecycle-io-D0FftBLy.js → lifecycle-io-CdqPkCyk.js} +1 -1
  133. package/server/{lifecycle-io-WDGwa1vV.js → lifecycle-io-DSrv9xGh.js} +4 -4
  134. package/server/{linear-client-MvjflCXs.js → linear-client-BxKvL6U8.js} +1 -1
  135. package/server/{linear-client-CSgH24Ym.js → linear-client-E0HdXtWs.js} +2 -2
  136. package/server/memory-fts-worker.js +1 -1
  137. package/server/{merge-DltB-RGV.js → merge-D3wEbmUJ.js} +1 -1
  138. package/server/{merge-Ce9DHBXM.js → merge-UlAwCk80.js} +4 -4
  139. package/server/{merge-agent-Rv0bNQNU.js → merge-agent-BcgAYStl.js} +27 -27
  140. package/server/{merge-agent-DRXwKxmb.js → merge-agent-Dh8Y9PDO.js} +1 -1
  141. package/server/{merge-batch-LLp_cXUR.js → merge-batch-BwhGdlh4.js} +1 -1
  142. package/server/{merge-blockers-BqYUtLBd.js → merge-blockers-DwdQNsYD.js} +2 -2
  143. package/server/merge-ops-QdBiQ8XB.js +2 -0
  144. package/server/{merge-rebase-AiSEs4QB.js → merge-rebase-CH12_ufi.js} +2 -2
  145. package/server/{merge-set-CUY9msG9.js → merge-set-TRxJwR-w.js} +3 -3
  146. package/server/{merge-set-CSJoIpKB.js → merge-set-rXK3ehnB.js} +1 -1
  147. package/server/{merge-sync-CAjbJeTp.js → merge-sync-BKLKu9kz.js} +1 -1
  148. package/server/{merge-sync-CuyWzzZK.js → merge-sync-CaLRt2cB.js} +2 -2
  149. package/server/{merge-train-DndZCAiv.js → merge-train-DmxlYbEo.js} +3 -3
  150. package/server/{merge-train-deps-Bsy90Q7t.js → merge-train-deps-DBHsOWt9.js} +4 -4
  151. package/server/{merge-verification-Kvh4WViS.js → merge-verification-DA9rvqsE.js} +4 -4
  152. package/server/{multipart-parser-BWnfyoyz.js → multipart-parser-DtIEUW2B.js} +2 -2
  153. package/server/{no-resume-mode-CKy2bwZL.js → no-resume-mode-yrPEQ_pC.js} +1 -1
  154. package/server/{orphan-proposed-reconciler-Cg5_uVy1.js → orphan-proposed-reconciler-Db8tUhce.js} +10 -10
  155. package/server/{orphan-proposed-reconciler-CjUuBs6J.js → orphan-proposed-reconciler-mXV--tcB.js} +1 -1
  156. package/server/{pan-dir-Cn3NUnxU.js → pan-dir-BgBeeZDX.js} +3 -3
  157. package/server/{paths-Bo-kA9ta.js → paths-TE1GOZDr.js} +2 -2
  158. package/server/{pickup-DRn-XNXS.js → pickup-KLRUhThD.js} +1 -1
  159. package/server/{pipeline-notifier-BbGQtvKM.js → pipeline-notifier-aX_5EqQO.js} +2 -2
  160. package/server/{pipeline-notifier-DQsOtdjZ.js → pipeline-notifier-lwMa--Gz.js} +1 -1
  161. package/server/{projects-CKTA6Klk.js → projects-BNmVxnNt.js} +1 -1
  162. package/server/{prompts-CVncQg4P.js → prompts-CelsUdrx.js} +2 -2
  163. package/server/{providers-uPI9uU7Q.js → providers-4-xOzHQu.js} +7 -7
  164. package/server/{providers-CapuDkKX.js → providers-BOnRq5XK.js} +1 -1
  165. package/server/public/assets/{chunk-BO2N2NFS-CaAvtgHW.js → chunk-BO2N2NFS-jJsbVwoD.js} +4 -4
  166. package/server/public/assets/{diagram-OG6HWLK6-C4flU2X9.js → diagram-OG6HWLK6-Cp1aNi3v.js} +1 -1
  167. package/server/public/assets/{dist-DXAnG2e9.js → dist-B2-Oc7J1.js} +1 -1
  168. package/server/public/assets/{dist-DygIHsen.js → dist-Dbb8vdyE.js} +3 -3
  169. package/server/public/assets/{ganttDiagram-6RSMTGT7-BJY25etK.js → ganttDiagram-6RSMTGT7-rujV2mSn.js} +1 -1
  170. package/server/public/assets/{highlighted-body-OFNGDK62-DIEQLSG_.js → highlighted-body-OFNGDK62-Df3Exbbt.js} +1 -1
  171. package/server/public/assets/{index-BsKNi2y5.js → index-rQPa7qlV.js} +88 -88
  172. package/server/public/assets/{linear-CRa2o9KP.js → linear-Ctp3LAJ5.js} +1 -1
  173. package/server/public/assets/mermaid-GHXKKRXX-BnC2HrDq.js +1 -0
  174. package/server/public/assets/{pieDiagram-4H26LBE5-Cb6OrK_c.js → pieDiagram-4H26LBE5-K-m6VCum.js} +1 -1
  175. package/server/public/assets/{prod-DWpuiL-y.js → prod-jqZ3zqVg.js} +4 -4
  176. package/server/public/assets/{quadrantDiagram-W4KKPZXB-DhZzzcAO.js → quadrantDiagram-W4KKPZXB-DXcFax_1.js} +1 -1
  177. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CVe6lE5A.js → sankeyDiagram-5OEKKPKP-DnD_J_rB.js} +1 -1
  178. package/server/public/assets/{xychartDiagram-2RQKCTM6-zukUz5pI.js → xychartDiagram-2RQKCTM6-Dx25iKVp.js} +1 -1
  179. package/server/public/index.html +1 -1
  180. package/server/{pull-requests-C3csHJsc.js → pull-requests-CH4iBFLl.js} +3 -3
  181. package/server/{pull-requests-MeAgb3Ax.js → pull-requests-DL_4klIb.js} +1 -1
  182. package/server/{rally-nalS21zz.js → rally-D0mKv2t8.js} +3 -3
  183. package/server/rally-DffLLIdl.js +3 -0
  184. package/server/{rally-api-DzQryQi8.js → rally-api-CcCdecF-.js} +1 -1
  185. package/server/{rally-api-DdY4ebu3.js → rally-api-DgAt6FbN.js} +2 -2
  186. package/server/{rally-client-9duSds1_.js → rally-client-DYjtgTOu.js} +4 -4
  187. package/server/{rally-client-B16-bZk9.js → rally-client-X0bEEN2B.js} +1 -1
  188. package/server/reap-terminal-sessions-BwJb2DLJ.js +3 -0
  189. package/server/{reap-terminal-sessions-C6rD1pDT.js → reap-terminal-sessions-CAmURC2h.js} +12 -62
  190. package/server/{rebuild-stack-D9qBmVcM.js → rebuild-stack-BLG3rlWa.js} +6 -6
  191. package/server/{rebuild-stack-DrWMHxoY.js → rebuild-stack-ByFCMqTK.js} +1 -1
  192. package/server/{reconstruct-cache--H2QBooC.js → reconstruct-cache-_tDZ2D72.js} +6 -6
  193. package/server/{record-fn7uPjsl.js → record-DjPikotp.js} +1 -1
  194. package/server/{remote-BEkHf2HO.js → remote-B1Trmr0N.js} +3 -3
  195. package/server/{remote-Dl6Hn0zz.js → remote-TN0cV8k-.js} +3 -3
  196. package/server/{remote-agents-DNdP4sew.js → remote-agents-CmbIKw7E.js} +5 -5
  197. package/server/{remote-agents-OB4zwVHz.js → remote-agents-DNuaAgU6.js} +1 -1
  198. package/server/{remote-completion-BINc1Y8c.js → remote-completion-Bklh6loJ.js} +12 -12
  199. package/server/resume-DnIsmIgC.js +3 -0
  200. package/server/review-agent-DgySDb-G.js +3 -0
  201. package/server/{review-agent-C-A6IgXc.js → review-agent-phzqNqIs.js} +599 -197
  202. package/server/{review-artifacts-DTTdAYsU.js → review-artifacts-BGc69epg.js} +7 -7
  203. package/server/{review-context-De14xPtc.js → review-context-CCq56O_Y.js} +7 -7
  204. package/server/{review-monitor-BNV3kjLq.js → review-monitor-BKG2ubt5.js} +2 -2
  205. package/server/{review-status-DWAsTqfJ.js → review-status-BQjqQXZG.js} +160 -52
  206. package/server/{review-status-mo3tyc8L.js → review-status-bBkqUj5i.js} +1 -1
  207. package/server/{review-status-enrichment-C6sr9wOI.js → review-status-enrichment-CGlcApSn.js} +3 -3
  208. package/server/{review-status-sync-D-p7TQit.js → review-status-sync-BWHnrq-k.js} +3 -3
  209. package/server/{review-status-sync-MvYGQLDD.js → review-status-sync-BxHBVH8s.js} +1 -1
  210. package/server/{review-verdict-feedback-BbIfN5Vg.js → review-verdict-feedback-cZh9Wi9G.js} +1 -1
  211. package/server/{review-verdict-feedback-Cfc-THvz.js → review-verdict-feedback-wqnikhMK.js} +16 -36
  212. package/server/{rollup-DgWlrSBc.js → rollup-BJE-Vc7H.js} +8 -8
  213. package/server/{rollup-CxR6GMTe.js → rollup-DBNy1yFB.js} +1 -1
  214. package/server/{scanner-6OmIn5XE.js → scanner-CUGpdp4i.js} +7 -7
  215. package/server/{sequence-io-CxiPMMKM.js → sequence-io-B2GmilSI.js} +4 -4
  216. package/server/{sequencer-agent--xPlSfR2.js → sequencer-agent-D8pW2aU_.js} +5 -5
  217. package/server/server.js +166 -162
  218. package/server/{service-CXje28KS.js → service-CILd-uOt.js} +46 -45
  219. package/server/session-fork-DDSDVoIK.js +99 -0
  220. package/server/{settings-ChvoXExM.js → settings-CBrei_kx.js} +2 -2
  221. package/server/{settings-DZq_bi-B.js → settings-D2wt4nku.js} +3 -3
  222. package/server/settings-vLoKyghx.js +2 -0
  223. package/server/{shadow-engineering-BHeyD5bL.js → shadow-engineering-Ba1D0QUN.js} +2 -2
  224. package/server/{shadow-state-p3YTxrJ5.js → shadow-state-BOaq8BrD.js} +1 -1
  225. package/server/{shadow-state-3L0eHQNE.js → shadow-state-DTC7AMHc.js} +2 -2
  226. package/server/{ship-log-B2EEH__n.js → ship-log-CMWH3H5-.js} +1 -1
  227. package/server/{smart-compaction-DRXK5_io.js → smart-compaction-Bgp_gwcA.js} +1 -1
  228. package/server/{smart-compaction-DMB4hv07.js → smart-compaction-CrP90OFE.js} +7 -7
  229. package/server/{spawn-planning-session-BZfVvIi3.js → spawn-planning-session-BmJWHSCu.js} +15 -15
  230. package/server/{spawn-planning-session-BBUzeHJQ.js → spawn-planning-session-D15KbPOy.js} +1 -1
  231. package/server/{specialist-completion-BAZHHbmp.js → specialist-completion-BiEXUHfD.js} +1 -1
  232. package/server/{specialist-context-DgdhI7rm.js → specialist-context-CwKkcXL9.js} +5 -5
  233. package/server/{specialist-handoff-logger-CH1nC8fq.js → specialist-handoff-logger-B_2VsWli.js} +2 -2
  234. package/server/{specialist-logs-DynFhFXg.js → specialist-logs-CvDxquV_.js} +3 -3
  235. package/server/{specialists-LJ9MZMCz.js → specialists-BCjcG4uE.js} +1 -1
  236. package/server/{specialists-BUKBHtmQ.js → specialists-BYi0k8CZ.js} +18 -18
  237. package/server/{specialists-e0Jmecc1.js → specialists-D07ybnam.js} +78 -85
  238. package/server/{specialists-CF02f9p2.js → specialists-F2uMO4QS.js} +1 -1
  239. package/server/specs-DeS98l_p.js +3 -0
  240. package/server/{src-CNLON0co.js → src-BswtmojL.js} +6 -6
  241. package/server/{src-DhJeCV1p.js → src-Dp0WHgDZ.js} +3 -3
  242. package/server/{src-AXK4mjue.js → src-fgbU-jJ-.js} +6 -3
  243. package/server/{stack-health-8jZH0Lgk.js → stack-health-BJVh1TCg.js} +3 -3
  244. package/server/{stack-health-CXYHwv5D.js → stack-health-Deel1mSW.js} +1 -1
  245. package/server/{state-home-XkLSsJCD.js → state-home-Bgj7i-C7.js} +8 -7
  246. package/server/{summary-fork-shfA2XOf.js → summary-fork-DedqguZb.js} +2 -2
  247. package/server/{summary-fork-BWa0ECGL.js → summary-fork-EjvOkEPl.js} +12 -91
  248. package/server/{supervisor-owMkHcx8.js → supervisor-0oXvLwyC.js} +3 -3
  249. package/server/supervisor-D1-XwmZ7.js +2 -0
  250. package/server/{swarm-readiness-BACUsKOx.js → swarm-readiness-OBgamRql.js} +3 -3
  251. package/server/{teardown-workspace-CYt_PBaq.js → teardown-workspace-5LCVbjfq.js} +14 -14
  252. package/server/{test-agent-queue-C1s6mB8C.js → test-agent-queue-qfsq6uaC.js} +6 -6
  253. package/server/{test-verdict-CmxX3KEf.js → test-verdict-BkubHtti.js} +1 -1
  254. package/server/{test-verdict-njEv9ZY2.js → test-verdict-D3Il7cBK.js} +1 -1
  255. package/server/{tldr-daemon-CEUflKr2.js → tldr-daemon-CJW_P4On.js} +2 -2
  256. package/server/{tldr-daemon-HIo0dwDB.js → tldr-daemon-CJqGsDFh.js} +1 -1
  257. package/server/tmux-CeDD14p1.js +3 -0
  258. package/server/{tmux-CBYZ5lKF.js → tmux-ePNhMIMU.js} +2 -2
  259. package/server/{token-CiS3w6Ma.js → token-_qujO3JZ.js} +1 -1
  260. package/server/{tracker-config-CVCoeaaL.js → tracker-config-C3hiPVAM.js} +2 -2
  261. package/server/{tracker-config-Bx50plWp.js → tracker-config-Drt_tx4D.js} +1 -1
  262. package/server/{tracker-utils-C2Lg4RoB.js → tracker-utils-D6B8scEw.js} +1 -1
  263. package/server/{tracker-utils-mI4d-vh8.js → tracker-utils-bpWs7Xyx.js} +2 -2
  264. package/server/{traefik-connect-D21-YEyX.js → traefik-connect-5EP1WS_Z.js} +1 -1
  265. package/server/{tunnel-BK4PVyb0.js → tunnel-3Ve8BS4H.js} +3 -3
  266. package/server/{tunnel-CcHkuRIS.js → tunnel-AporWhoi.js} +1 -1
  267. package/server/{types-DoPMvws2.js → types-B5u3NxMl.js} +1 -1
  268. package/server/{uat-train-BLFPxqLx.js → uat-train-C3hWXtip.js} +1 -1
  269. package/server/{uat-train-CQ_E-2ei.js → uat-train-CtNGgXxj.js} +27 -27
  270. package/server/{validation-Dab3bnSN.js → validation-BmUB-26g.js} +4 -4
  271. package/server/{validation-1QnjDMc0.js → validation-CbqP_dze.js} +1 -1
  272. package/server/{verification-runner-BO8TgZWA.js → verification-runner-BPAhPWR7.js} +11 -11
  273. package/server/{verification-runner-UhAAqOio.js → verification-runner-DuZRHjPU.js} +1 -1
  274. package/server/{vtt-parser-D-q5-8il.js → vtt-parser-CKc-smWM.js} +1 -1
  275. package/server/{work-agent-prompt-D_7T1xw5.js → work-agent-prompt-DCdHsm-V.js} +11 -11
  276. package/server/workflows-Cz8OtiB4.js +2 -0
  277. package/server/{workflows-CB5SWd0B.js → workflows-H-COJ84X.js} +14 -14
  278. package/server/{workspace-C4Avf_Tp.js → workspace-4ZufqeMe.js} +3 -3
  279. package/server/{workspace--XWYPbn1.js → workspace-DYv9kBg6.js} +1 -1
  280. package/server/{workspace-config-BwJB-bLH.js → workspace-config-DA8U97k9.js} +1 -1
  281. package/server/{workspace-manager-_6zbrhNF.js → workspace-manager-B3PqQQSM.js} +1 -1
  282. package/server/{workspace-manager-BE3OznLY.js → workspace-manager-CEWK-OXd.js} +12 -12
  283. package/server/{workspace-metadata-BCgODi1j.js → workspace-metadata-1eu1RvAT.js} +2 -2
  284. package/server/{workspace-metadata-wKPgY8PN.js → workspace-metadata-C0I-nIDL.js} +1 -1
  285. package/server/{workspaces-DpMiZ9BP.js → workspaces-CRU9_vRn.js} +154 -106
  286. package/server/agent-state-DTZCqWx5.js +0 -3
  287. package/server/cli-wyiCmp7b.js +0 -3
  288. package/server/deacon-swarm-jDiQ0kKk.js +0 -2
  289. package/server/dist-CnkaBMG-.js +0 -3
  290. package/server/forge-D2QLGWK9.js +0 -2
  291. package/server/hume-sCsuupWb.js +0 -3
  292. package/server/inspect-agent-DnspoIls.js +0 -2
  293. package/server/merge-ops-B6xc_Irj.js +0 -2
  294. package/server/public/assets/mermaid-GHXKKRXX-uIkd-n0c.js +0 -1
  295. package/server/rally-BJiyvz3w.js +0 -3
  296. package/server/reap-terminal-sessions-mW7SPDtP.js +0 -2
  297. package/server/resume-Pur3Z2e8.js +0 -3
  298. package/server/review-agent-BRSSFv7e.js +0 -3
  299. package/server/settings-D0XXIUQ0.js +0 -2
  300. package/server/specs-COn3zZ2Q.js +0 -3
  301. package/server/supervisor-DwGIhpXk.js +0 -2
  302. package/server/tmux-DNmHGMEv.js +0 -3
  303. package/server/workflows-Plo_VxeO.js +0 -2
@@ -1,25 +1,25 @@
1
- import { Br as getOverdeckHome, Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Gn as resolveProjectFromIssueSync, Nn as init_projects, Or as OVERDECK_HOME, Ot as init_record, Pt as readRecordContinueViewSync, Vr as init_paths, vr as init_errors, yr as AGENTS_DIR } from "./config-yaml-DbdN9Fuq.js";
2
- import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-Dm95Ua07.js";
3
- import { D as sql, E as like, S as gte, _ as integer, a as EventBus, b as and, f as init_infra, g as real, h as text, i as DbLive, m as sqliteTable, n as CostArchiveLive, o as EventBusLive, p as init_sqlite_core, r as Db, t as CostArchive, v as init_drizzle_orm, x as eq, y as desc } from "./infra-CCTzpcuJ.js";
4
- import { L as sessionExists, R as sessionExistsSync, w as killSession, x as init_tmux } from "./tmux-CBYZ5lKF.js";
5
- import { c as init_review_status, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-DWAsTqfJ.js";
6
- import { n as init_issues, t as IssueId } from "./issues-CGc8Aaxm.js";
7
- import { a as getAllBudgetsSync, i as deleteBudgetSync, n as checkBudgetSync, r as createBudgetSync, s as init_cost } from "./cost-DiSDkYe7.js";
8
- import { An as getAgentDir, D as init_context_overflow, Jn as saveAgentStateSync, Mn as getAgentState, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, _t as init_config, br as parseOhmypiSessionCostResultSync, gr as saveAgentRuntimeState, gt as getHealthThresholdsMs, k as isContextOverflowTail, mr as getAgentRuntimeStateSync, q as stopAgentSync, t as init_agents, yr as init_ohmypi_parser, yt as loadCloisterConfigSync } from "./agents-D_x5BSZM.js";
9
- import { i as parseCodexSessionSync, n as init_codex_parser, r as parseCodexSessionCostEventsSync } from "./behavior-vk1sixby.js";
10
- import { _ as init_tier_metrics, c as getDailyTrendsSync, d as init_cost_sync, h as deriveTieredAgentCostRole, t as getAgentDailyCostSync } from "./cost-sync-CfXu-3TF.js";
11
- import { c as requireModelOverrideSync, o as init_model_validation } from "./state-home-XkLSsJCD.js";
12
- import { _ as setDeaconGloballyPaused, c as isCloisterSpawnsPausedSync, g as setCloisterSpawnsPausedSync, s as init_control_settings, x as setFlywheelGloballyPaused } from "./control-settings-CYv732Gs.js";
13
- import { n as checkHookSync, p as init_hooks } from "./hooks-C6HBXlVm.js";
14
- import { C as getLastPatrolResult, D as isDeaconRunning, Lt as getRuntimeForAgent, N as runPatrol, R as startDeacon, S as getDeaconStatus, n as assessDeaconPatrolFreshness, x as getDeaconLogs, z as stopDeacon } from "./deacon-f0yvsG5S.js";
15
- import "./flywheel-B4KN9BmW.js";
16
- import { n as renderPrompt, t as init_prompts } from "./prompts-CVncQg4P.js";
17
- import { r as writeHealthEvent } from "./health-events-Dd0FuKrE.js";
18
- import { O as init_specialists, T as getTmuxSessionName } from "./specialists-BUKBHtmQ.js";
19
- import { t as withBdMutex } from "./bd-mutex-CE6P_MlD.js";
20
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-0Zx72zXf.js";
21
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-Kvh4WViS.js";
22
- import { i as isRoleTerminal } from "./reap-terminal-sessions-C6rD1pDT.js";
1
+ import { Br as getOverdeckHome, Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Gn as resolveProjectFromIssueSync, Nn as init_projects, Or as OVERDECK_HOME, Ot as init_record, Pt as readRecordContinueViewSync, Vr as init_paths, vr as init_errors, yr as AGENTS_DIR } from "./config-yaml-DPAieL_G.js";
2
+ import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
3
+ import { D as sql, E as like, S as gte, _ as integer, a as EventBus, b as and, f as init_infra, g as real, h as text, i as DbLive, m as sqliteTable, n as CostArchiveLive, o as EventBusLive, p as init_sqlite_core, r as Db, t as CostArchive, v as init_drizzle_orm, x as eq, y as desc } from "./infra-CpKlYZA9.js";
4
+ import { L as sessionExists, R as sessionExistsSync, w as killSession, x as init_tmux } from "./tmux-ePNhMIMU.js";
5
+ import { c as init_review_status, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
6
+ import { n as init_issues, t as IssueId } from "./issues-ChNcfHta.js";
7
+ import { a as getAllBudgetsSync, i as deleteBudgetSync, n as checkBudgetSync, r as createBudgetSync, s as init_cost } from "./cost-C2CuA66z.js";
8
+ import { An as getAgentDir, D as init_context_overflow, Jn as saveAgentStateSync, Mn as getAgentState, Pn as getAgentStateSync, Q as listRunningAgentsSync, U as spawnAgent, _t as init_config, br as parseOhmypiSessionCostResultSync, gr as saveAgentRuntimeState, gt as getHealthThresholdsMs, k as isContextOverflowTail, mr as getAgentRuntimeStateSync, q as stopAgentSync, t as init_agents, yr as init_ohmypi_parser, yt as loadCloisterConfigSync } from "./agents-DHvsjsuP.js";
9
+ import { i as parseCodexSessionSync, n as init_codex_parser, r as parseCodexSessionCostEventsSync } from "./behavior-By-2Wipv.js";
10
+ import { _ as init_tier_metrics, c as getDailyTrendsSync, d as init_cost_sync, h as deriveTieredAgentCostRole, t as getAgentDailyCostSync } from "./cost-sync-8lkDeL9g.js";
11
+ import { c as requireModelOverrideSync, o as init_model_validation } from "./state-home-Bgj7i-C7.js";
12
+ import { _ as setDeaconGloballyPaused, c as isCloisterSpawnsPausedSync, g as setCloisterSpawnsPausedSync, s as init_control_settings, x as setFlywheelGloballyPaused } from "./control-settings-BMqUkXmR.js";
13
+ import { n as checkHookSync, p as init_hooks } from "./hooks-CmHFSj_Z.js";
14
+ import { r as isRoleTerminal, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CAmURC2h.js";
15
+ import { C as getLastPatrolResult, D as isDeaconRunning, Lt as getRuntimeForAgent, N as runPatrol, R as startDeacon, S as getDeaconStatus, n as assessDeaconPatrolFreshness, x as getDeaconLogs, z as stopDeacon } from "./deacon-j3qSZ7--.js";
16
+ import "./flywheel-ClMjGW_u.js";
17
+ import { n as renderPrompt, t as init_prompts } from "./prompts-CelsUdrx.js";
18
+ import { r as writeHealthEvent } from "./health-events-DaLX4-0a.js";
19
+ import { O as init_specialists, T as getTmuxSessionName } from "./specialists-BYi0k8CZ.js";
20
+ import { t as withBdMutex } from "./bd-mutex-BItGvLQ8.js";
21
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BO84g03t.js";
22
+ import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-DA9rvqsE.js";
23
23
  import { Context, Data, Effect, Layer, Schema } from "effect";
24
24
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "fs";
25
25
  import { dirname, join } from "path";
@@ -2037,6 +2037,7 @@ function checkAndRotateIfNeeded(specialistName, workingDir) {
2037
2037
  init_config();
2038
2038
  init_agents();
2039
2039
  init_paths();
2040
+ init_reap_terminal_sessions();
2040
2041
  init_tmux();
2041
2042
  init_issue_closed();
2042
2043
  init_merge_verification();
@@ -2193,7 +2194,7 @@ async function onIssueStateChangePromise(issueId, newState) {
2193
2194
  });
2194
2195
  return;
2195
2196
  }
2196
- const { getReviewStatusSync } = await import("./review-status-mo3tyc8L.js");
2197
+ const { getReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
2197
2198
  if (getReviewStatusSync(normalizedIssueId)?.mergeStatus === "merged") {
2198
2199
  const message = `${normalizedIssueId}: skipping ${role} dispatch — merge already landed (merge_status='merged' is terminal)`;
2199
2200
  console.log(`[cloister] ${message}`);
@@ -2260,7 +2261,7 @@ async function onIssueStateChangePromise(issueId, newState) {
2260
2261
  return;
2261
2262
  }
2262
2263
  const branch = `feature/${normalizedIssueId.toLowerCase()}`;
2263
- const { spawnReviewRoleForIssue } = await import("./review-agent-BRSSFv7e.js");
2264
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
2264
2265
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
2265
2266
  issueId: normalizedIssueId,
2266
2267
  workspace,
@@ -2278,7 +2279,7 @@ async function onIssueStateChangePromise(issueId, newState) {
2278
2279
  }
2279
2280
  if (role === "test") {
2280
2281
  const branch = `feature/${normalizedIssueId.toLowerCase()}`;
2281
- const { dispatchTestAgentAndNotify } = await import("./test-agent-queue-C1s6mB8C.js");
2282
+ const { dispatchTestAgentAndNotify } = await import("./test-agent-queue-qfsq6uaC.js");
2282
2283
  await Effect.runPromise(dispatchTestAgentAndNotify(normalizedIssueId, workspace ?? void 0, branch));
2283
2284
  const message = `${normalizedIssueId}: test role dispatched from lifecycle state '${newState}'`;
2284
2285
  console.log(`[cloister] ${message}`);
@@ -2290,7 +2291,7 @@ async function onIssueStateChangePromise(issueId, newState) {
2290
2291
  });
2291
2292
  return;
2292
2293
  }
2293
- const { spawnRun } = await import("./agents-KaEsWZ8D.js");
2294
+ const { spawnRun } = await import("./agents-BIggLvi_.js");
2294
2295
  const message = `${normalizedIssueId}: ${role} role started from lifecycle state '${newState}' as ${(await spawnRun(normalizedIssueId, role, { prompt: buildReactiveRolePrompt(normalizedIssueId, newState, role) })).id}`;
2295
2296
  console.log(`[cloister] ${message}`);
2296
2297
  emitActivityEntrySync({
@@ -2368,27 +2369,27 @@ async function handleCloisterDomainEventPromise(event) {
2368
2369
  if (event.type === "agent.stopped") {
2369
2370
  const agentId = event.payload?.agentId;
2370
2371
  if (agentId) {
2371
- const { handleAgentStoppedEvent, handleAgentStoppedForOrphanReviewerSessions } = await import("./deacon-DT0BsVyE.js");
2372
- const { handleAgentLifecycleEventForIdleStack } = await import("./idle-stack-reaper-D5bwmuwX.js");
2372
+ const { handleAgentStoppedEvent, handleAgentStoppedForOrphanReviewerSessions } = await import("./deacon-Cv2RMfHs.js");
2373
+ const { handleAgentLifecycleEventForIdleStack } = await import("./idle-stack-reaper-DdnERp3G.js");
2373
2374
  handleAgentLifecycleEventForIdleStack(agentId);
2374
2375
  const slotMatch = /^agent-(.+)-slot-\d+$/.exec(agentId);
2375
2376
  await Promise.all([
2376
2377
  handleAgentStoppedEvent(agentId),
2377
2378
  handleAgentStoppedForOrphanReviewerSessions(agentId),
2378
- slotMatch ? (await import("./deacon-swarm-jDiQ0kKk.js")).coordinateSwarmSlots({ issueId: slotMatch[1].toUpperCase() }) : Promise.resolve([])
2379
+ slotMatch ? (await import("./deacon-swarm-D1iAUX-P.js")).coordinateSwarmSlots({ issueId: slotMatch[1].toUpperCase() }) : Promise.resolve([])
2379
2380
  ]);
2380
2381
  }
2381
2382
  return;
2382
2383
  }
2383
2384
  if (event.type === "agent.started") {
2384
2385
  const agentId = event.payload?.agentId;
2385
- if (agentId) (await import("./idle-stack-reaper-D5bwmuwX.js")).handleAgentLifecycleEventForIdleStack(agentId);
2386
+ if (agentId) (await import("./idle-stack-reaper-DdnERp3G.js")).handleAgentLifecycleEventForIdleStack(agentId);
2386
2387
  return;
2387
2388
  }
2388
2389
  if (event.type === "agent.heartbeat_dead") {
2389
2390
  const agentId = event.payload?.agentId;
2390
2391
  if (agentId) {
2391
- const { handleAgentHeartbeatDeadEvent } = await import("./deacon-DT0BsVyE.js");
2392
+ const { handleAgentHeartbeatDeadEvent } = await import("./deacon-Cv2RMfHs.js");
2392
2393
  await handleAgentHeartbeatDeadEvent(agentId, "event");
2393
2394
  }
2394
2395
  return;
@@ -2397,7 +2398,7 @@ async function handleCloisterDomainEventPromise(event) {
2397
2398
  const payload = event.payload;
2398
2399
  const issueId = payload?.issueId;
2399
2400
  if (issueId) {
2400
- const { handleReviewCoordinatorDied } = await import("./deacon-DT0BsVyE.js");
2401
+ const { handleReviewCoordinatorDied } = await import("./deacon-Cv2RMfHs.js");
2401
2402
  await handleReviewCoordinatorDied(issueId, payload?.sessionName ?? "", payload?.reason ?? "");
2402
2403
  }
2403
2404
  return;
@@ -2405,7 +2406,7 @@ async function handleCloisterDomainEventPromise(event) {
2405
2406
  if (event.type === "work.completed") {
2406
2407
  const issueId = event.payload?.issueId;
2407
2408
  if (issueId) {
2408
- const { handleWorkCompleted } = await import("./deacon-DT0BsVyE.js");
2409
+ const { handleWorkCompleted } = await import("./deacon-Cv2RMfHs.js");
2409
2410
  await handleWorkCompleted(issueId);
2410
2411
  }
2411
2412
  }
@@ -2416,12 +2417,12 @@ async function handleCloisterDomainEventPromise(event) {
2416
2417
  const status = payload?.status?.toLowerCase();
2417
2418
  if (issueId) {
2418
2419
  if (canonicalStatus === "closed" || status === "closed") {
2419
- const { handleIssueStatusChangedClosed } = await import("./closed-issue-reaper-QpcvCDeE.js");
2420
+ const { handleIssueStatusChangedClosed } = await import("./closed-issue-reaper-BLCQwTpF.js");
2420
2421
  await handleIssueStatusChangedClosed(issueId);
2421
2422
  return;
2422
2423
  }
2423
2424
  if (canonicalStatus === "todo" || status === "planned" || status === "todo") {
2424
- const { handleOrphanProposedSpec } = await import("./orphan-proposed-reconciler-CjUuBs6J.js");
2425
+ const { handleOrphanProposedSpec } = await import("./orphan-proposed-reconciler-mXV--tcB.js");
2425
2426
  await handleOrphanProposedSpec(issueId);
2426
2427
  }
2427
2428
  }
@@ -2557,7 +2558,7 @@ var CloisterService = class {
2557
2558
  let clearedSpecialistCount = 0;
2558
2559
  try {
2559
2560
  if (existsSync(AGENTS_DIR)) {
2560
- const { isRunning: isSpecialistRunning } = await import("./specialists-CF02f9p2.js");
2561
+ const { isRunning: isSpecialistRunning } = await import("./specialists-F2uMO4QS.js");
2561
2562
  const entries = readdirSync(AGENTS_DIR, { withFileTypes: true });
2562
2563
  for (const entry of entries) {
2563
2564
  if (!entry.isDirectory()) continue;
@@ -2592,8 +2593,8 @@ var CloisterService = class {
2592
2593
  }
2593
2594
  try {
2594
2595
  const reviewStatuses = loadReviewStatuses();
2595
- const { resolveProjectFromIssueSync } = await import("./projects-CKTA6Klk.js");
2596
- const { getTmuxSessionName, getAllProjectSpecialistStatuses } = await import("./specialists-CF02f9p2.js");
2596
+ const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
2597
+ const { getTmuxSessionName, getAllProjectSpecialistStatuses } = await import("./specialists-F2uMO4QS.js");
2597
2598
  const activeReviewIssues = /* @__PURE__ */ new Set();
2598
2599
  try {
2599
2600
  const projSpecs = await getAllProjectSpecialistStatuses();
@@ -2604,7 +2605,7 @@ var CloisterService = class {
2604
2605
  }
2605
2606
  const globalRs = getAgentRuntimeStateSync(getTmuxSessionName("review-agent"));
2606
2607
  if (globalRs?.state === "active" && globalRs.currentIssue) activeReviewIssues.add(globalRs.currentIssue.toUpperCase());
2607
- const { listRunningAgents } = await import("./agents-KaEsWZ8D.js");
2608
+ const { listRunningAgents } = await import("./agents-BIggLvi_.js");
2608
2609
  const agents = await Effect.runPromise(listRunningAgents());
2609
2610
  for (const agent of agents) {
2610
2611
  if (agent.status === "stopped" || agent.status === "error") continue;
@@ -2647,7 +2648,7 @@ var CloisterService = class {
2647
2648
  continue;
2648
2649
  }
2649
2650
  const branch = `feature/${issueId.toLowerCase()}`;
2650
- const { spawnReviewRoleForIssue } = await import("./review-agent-BRSSFv7e.js");
2651
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
2651
2652
  const dispatchResult = await Effect.runPromise(spawnReviewRoleForIssue({
2652
2653
  issueId,
2653
2654
  workspace,
@@ -2735,7 +2736,7 @@ var CloisterService = class {
2735
2736
  console.log(" ✓ Cloister event store provider installed");
2736
2737
  return;
2737
2738
  }
2738
- const { initEventStore } = await import("./event-store-BeEE8pW5.js");
2739
+ const { initEventStore } = await import("./event-store-DIk9wvnS.js");
2739
2740
  const store = await initEventStore();
2740
2741
  this.eventStore = store;
2741
2742
  this.domainEventUnsubscribe = store.subscribe((event) => {
@@ -2946,7 +2947,7 @@ var CloisterService = class {
2946
2947
  if (retryCount === Infinity) this.processedCompletions.delete(dir.name);
2947
2948
  else if (retryCount >= 3) continue;
2948
2949
  const issueId = dir.name.replace("agent-", "").toUpperCase();
2949
- const { getReviewStatusSync } = await import("./review-status-mo3tyc8L.js");
2950
+ const { getReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
2950
2951
  const existingReview = getReviewStatusSync(issueId);
2951
2952
  if (existingReview && ["reviewing", "passed"].includes(existingReview.reviewStatus || "")) {
2952
2953
  console.log(`🔔 Cloister: Completion marker for ${issueId} — review already ${existingReview.reviewStatus}, marking processed`);
@@ -3055,7 +3056,7 @@ var CloisterService = class {
3055
3056
  ineffective
3056
3057
  });
3057
3058
  if (ineffective >= 4) {
3058
- const { setAgentPausedSync } = await import("./agent-state-DTZCqWx5.js");
3059
+ const { setAgentPausedSync } = await import("./agent-state-xk_G8t90.js");
3059
3060
  try {
3060
3061
  setAgentPausedSync(agentId, `needs-you: idle-alive — no observable progress across ${ineffective + 1} pokes (idle-alive escalation)`);
3061
3062
  this.emit({
@@ -3137,7 +3138,7 @@ var CloisterService = class {
3137
3138
  if (skipReason) {
3138
3139
  let recoverUnfinishedOneShot = false;
3139
3140
  if (ONE_SHOT_ROLES.has(agentState.role) && agentState.sessionId && agentState.issueId) try {
3140
- const { getReviewStatusSync } = await import("./review-status-mo3tyc8L.js");
3141
+ const { getReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
3141
3142
  const status = getReviewStatusSync(agentState.issueId);
3142
3143
  recoverUnfinishedOneShot = !(status ? isRoleTerminal(agentState.role, {
3143
3144
  reviewStatus: status.reviewStatus,
@@ -3614,4 +3615,4 @@ function handleCloisterDomainEvent(event) {
3614
3615
  //#endregion
3615
3616
  export { performHandoff as a, getAgentsNeedingAttention as c, CostResolverLive as d, CostWriter as f, checkAllTriggers as i, CostDoorLive as l, readCloisterStateFile as n, generateHealthSummary as o, setCloisterEventStoreProvider as r, getAgentHealth as s, getCloisterService as t, CostResolver as u };
3616
3617
 
3617
- //# sourceMappingURL=service-CXje28KS.js.map
3618
+ //# sourceMappingURL=service-CILd-uOt.js.map
@@ -0,0 +1,99 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { Lr as encodeClaudeProjectDir, Vr as init_paths } from "./config-yaml-DPAieL_G.js";
3
+ import { join } from "node:path";
4
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
5
+ import { randomUUID } from "node:crypto";
6
+ //#region ../../lib/conversations/session-fork.ts
7
+ /**
8
+ * PAN-1862 (NFR-3): the reusable session-fork primitive.
9
+ *
10
+ * Forking a Claude Code session = copy its JSONL transcript to a freshly
11
+ * reserved session id and relaunch with `claude --resume <newId>`. Because
12
+ * Anthropic's prompt cache is content-addressed (a hash of the prefix for a
13
+ * given model, NOT the session id), a byte-identical copied history resumed
14
+ * under a new id hits the same cache entries the source session wrote.
15
+ *
16
+ * Extracted from the conversation-panel fork machinery (summary-fork.ts) so the
17
+ * conversation panel AND the review convoy share ONE copy/reserve code path —
18
+ * no copy-paste fork logic (repo "No Bandaids" rule). Two consumers:
19
+ *
20
+ * - Conversation forks (summary-fork.ts): copy from the last compact boundary
21
+ * (the summarized tail is what the fork continues from).
22
+ * - Review convoy forks (review-agent.ts): copy the FULL history — the parent's
23
+ * discovery reads are exactly the payload the forked reviewers must inherit.
24
+ *
25
+ * The source JSONL is sacred and strictly read-only here (CLAUDE.md).
26
+ */
27
+ /** Reserve a fresh session id + JSONL path under the cwd's Claude project dir. */
28
+ async function reserveForkSession(cwd) {
29
+ const sessionId = randomUUID();
30
+ const encodedDir = encodeClaudeProjectDir(cwd);
31
+ const sessionsDir = join(process.env.HOME ?? "", ".claude", "projects", encodedDir);
32
+ await mkdir(sessionsDir, { recursive: true });
33
+ return {
34
+ sessionId,
35
+ sessionFile: join(sessionsDir, `${sessionId}.jsonl`)
36
+ };
37
+ }
38
+ /**
39
+ * Find the byte offset of the last `compact_boundary` entry in a JSONL file.
40
+ * Returns 0 if no boundary is found.
41
+ */
42
+ async function findLastCompactBoundaryOffset(jsonlPath) {
43
+ const lines = (await readFile(jsonlPath, "utf-8")).split("\n");
44
+ let offset = 0;
45
+ let lastBoundaryOffset = 0;
46
+ for (const line of lines) {
47
+ if (line.trim()) try {
48
+ const entry = JSON.parse(line);
49
+ if (entry.type === "system" && entry.subtype === "compact_boundary") lastBoundaryOffset = offset;
50
+ } catch {}
51
+ offset += line.length + 1;
52
+ }
53
+ return lastBoundaryOffset;
54
+ }
55
+ function sanitizeEntryForPlainFork(entry) {
56
+ if (entry.type !== "assistant" || !entry.message || !Array.isArray(entry.message.content)) return entry;
57
+ const sanitizedContent = entry.message.content.map((block) => {
58
+ if (block.type === "thinking" && typeof block.thinking === "string") return {
59
+ type: "text",
60
+ text: `[Thinking]\n${block.thinking}`
61
+ };
62
+ return block;
63
+ });
64
+ return {
65
+ ...entry,
66
+ message: {
67
+ ...entry.message,
68
+ content: sanitizedContent
69
+ }
70
+ };
71
+ }
72
+ /**
73
+ * Copy a session JSONL to `destPath` for a fork.
74
+ *
75
+ * `fullHistory: false` (conversation-fork behavior) slices from the last
76
+ * compact boundary; `true` (review-convoy behavior) copies everything —
77
+ * the discovery context is the payload. Thinking blocks are sanitized in
78
+ * both modes. The source file is never modified.
79
+ */
80
+ async function copySessionForFork(sourcePath, destPath, opts = {}) {
81
+ const boundaryOffset = opts.fullHistory ? 0 : await findLastCompactBoundaryOffset(sourcePath);
82
+ const content = await readFile(sourcePath, "utf-8");
83
+ await writeFile(destPath, (boundaryOffset > 0 ? content.slice(boundaryOffset) : content).split("\n").map((line) => {
84
+ if (!line.trim()) return line;
85
+ try {
86
+ const sanitized = sanitizeEntryForPlainFork(JSON.parse(line));
87
+ return JSON.stringify(sanitized);
88
+ } catch {
89
+ return line;
90
+ }
91
+ }).join("\n"), "utf-8");
92
+ }
93
+ //#endregion
94
+ __esmMin((() => {
95
+ init_paths();
96
+ }))();
97
+ export { copySessionForFork, reserveForkSession };
98
+
99
+ //# sourceMappingURL=session-fork-DDSDVoIK.js.map
@@ -1,4 +1,4 @@
1
- import { Vr as init_paths, vr as init_errors } from "./config-yaml-DbdN9Fuq.js";
1
+ import { Vr as init_paths, vr as init_errors } from "./config-yaml-DPAieL_G.js";
2
2
  import "effect";
3
3
  import "fs";
4
4
  //#region ../../lib/settings.ts
@@ -45,4 +45,4 @@ function getAgentCommandSync(modelId) {
45
45
  //#endregion
46
46
  export { getClaudeModelFlagSync as n, isAnthropicModelSync as r, getAgentCommandSync as t };
47
47
 
48
- //# sourceMappingURL=settings-ChvoXExM.js.map
48
+ //# sourceMappingURL=settings-CBrei_kx.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { h as jsYaml, m as init_js_yaml, o as getGlobalConfigPath, t as init_config_yaml } from "./config-yaml-DbdN9Fuq.js";
3
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-EZfSwuqq.js";
2
+ import { h as jsYaml, m as init_js_yaml, o as getGlobalConfigPath, t as init_config_yaml } from "./config-yaml-DPAieL_G.js";
3
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-CYY2_Eeh.js";
4
4
  import { readFile } from "fs/promises";
5
5
  //#region ../../lib/memory/settings.ts
6
6
  async function loadMemorySettings(configPath = getGlobalConfigPath()) {
@@ -101,4 +101,4 @@ var init_settings = __esmMin((() => {
101
101
  //#endregion
102
102
  export { isMemoryKnowledgeIndexEnabled as a, init_settings as i, getMemoryRollupPendingThreshold as n, isMemoryPromptTimeInjectionEnabled as o, getMemoryWorkerConcurrency as r, loadMemorySettings as s, areMemoryObservationsEnabled as t };
103
103
 
104
- //# sourceMappingURL=settings-DZq_bi-B.js.map
104
+ //# sourceMappingURL=settings-D2wt4nku.js.map
@@ -0,0 +1,2 @@
1
+ import { t as getAgentCommandSync } from "./settings-CBrei_kx.js";
2
+ export { getAgentCommandSync };
@@ -1,5 +1,5 @@
1
1
  import { a as PAN_DIRNAME } from "./types-CE1m_daD.js";
2
- import { t as init_pan_dir } from "./pan-dir-Cn3NUnxU.js";
2
+ import { t as init_pan_dir } from "./pan-dir-BgBeeZDX.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -221,4 +221,4 @@ init_pan_dir();
221
221
  //#endregion
222
222
  export { gatherArtifacts, generateBasicInference, runObserverCycle, updateInferenceDocumentSync };
223
223
 
224
- //# sourceMappingURL=shadow-engineering-BHeyD5bL.js.map
224
+ //# sourceMappingURL=shadow-engineering-Ba1D0QUN.js.map
@@ -1,3 +1,3 @@
1
- import { a as getShadowState, c as isShadowed, d as needsSync, f as removeShadowState, i as getPendingSyncCount, l as listShadowedIssues, m as updateTrackerStatusCache, n as createShadowState, o as getUnsyncedHistory, p as updateShadowState, r as getDisplayStatus, s as init_shadow_state, t as ShadowStateError, u as markAsSynced } from "./shadow-state-3L0eHQNE.js";
1
+ import { a as getShadowState, c as isShadowed, d as needsSync, f as removeShadowState, i as getPendingSyncCount, l as listShadowedIssues, m as updateTrackerStatusCache, n as createShadowState, o as getUnsyncedHistory, p as updateShadowState, r as getDisplayStatus, s as init_shadow_state, t as ShadowStateError, u as markAsSynced } from "./shadow-state-DTC7AMHc.js";
2
2
  init_shadow_state();
3
3
  export { ShadowStateError, createShadowState, getDisplayStatus, getPendingSyncCount, getShadowState, getUnsyncedHistory, isShadowed, listShadowedIssues, markAsSynced, needsSync, removeShadowState, updateShadowState, updateTrackerStatusCache };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DbdN9Fuq.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DPAieL_G.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync, mkdirSync, unlinkSync } from "fs";
5
5
  import { join } from "path";
@@ -287,4 +287,4 @@ var init_shadow_state = __esmMin((() => {
287
287
  //#endregion
288
288
  export { getShadowState as a, isShadowed as c, needsSync as d, removeShadowState as f, getPendingSyncCount as i, listShadowedIssues as l, updateTrackerStatusCache as m, createShadowState as n, getUnsyncedHistory as o, updateShadowState as p, getDisplayStatus as r, init_shadow_state as s, ShadowStateError as t, markAsSynced as u };
289
289
 
290
- //# sourceMappingURL=shadow-state-3L0eHQNE.js.map
290
+ //# sourceMappingURL=shadow-state-DTC7AMHc.js.map
@@ -36,4 +36,4 @@ function getShipLog(issueId) {
36
36
  //#endregion
37
37
  export { appendShipLog, beginShipLog, getShipLog };
38
38
 
39
- //# sourceMappingURL=ship-log-B2EEH__n.js.map
39
+ //# sourceMappingURL=ship-log-CMWH3H5-.js.map
@@ -1,3 +1,3 @@
1
- import { a as runModelSummary, c as truncateHeadTail, i as parseEntries, n as generateSummaryFromPrompt, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-DMB4hv07.js";
1
+ import { a as runModelSummary, c as truncateHeadTail, i as parseEntries, n as generateSummaryFromPrompt, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-CrP90OFE.js";
2
2
  init_smart_compaction();
3
3
  export { generateSmartSummary, generateSummaryFromPrompt, parseEntries, runModelSummary, serializeConversation, summarizeSerializedText, truncateHeadTail };
@@ -1,10 +1,10 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { cr as FsError, mr as ProcessSpawnError, vr as init_errors } from "./config-yaml-DbdN9Fuq.js";
3
- import { a as getHarnessBehavior } from "./src-AXK4mjue.js";
4
- import { D as init_context_overflow, O as isContextOverflowError, ln as getProviderEnvForModel, sn as buildSpawnEnvForModel, t as init_agents } from "./agents-D_x5BSZM.js";
5
- import { t as init_behavior } from "./behavior-vk1sixby.js";
6
- import { a as init_claude_permissions, i as getClaudePermissionFlagsSync } from "./claude-permissions-BpwIcIR7.js";
7
- import { n as recordBackgroundAiCost, t as init_cost } from "./cost-DNIyZH1X.js";
2
+ import { cr as FsError, mr as ProcessSpawnError, vr as init_errors } from "./config-yaml-DPAieL_G.js";
3
+ import { a as getHarnessBehavior } from "./src-fgbU-jJ-.js";
4
+ import { D as init_context_overflow, O as isContextOverflowError, ln as getProviderEnvForModel, sn as buildSpawnEnvForModel, t as init_agents } from "./agents-DHvsjsuP.js";
5
+ import { t as init_behavior } from "./behavior-By-2Wipv.js";
6
+ import { a as init_claude_permissions, i as getClaudePermissionFlagsSync } from "./claude-permissions-DrRAs_0F.js";
7
+ import { n as recordBackgroundAiCost, t as init_cost } from "./cost-DaOG8sUB.js";
8
8
  import { Effect } from "effect";
9
9
  import { tmpdir } from "node:os";
10
10
  import { join } from "node:path";
@@ -850,4 +850,4 @@ Be thorough. Preserve exact file paths, function names, error messages, and code
850
850
  //#endregion
851
851
  export { runModelSummary as a, truncateHeadTail as c, parseEntries as i, generateSummaryFromPrompt as n, serializeConversation as o, init_smart_compaction as r, summarizeSerializedText as s, generateSmartSummary as t };
852
852
 
853
- //# sourceMappingURL=smart-compaction-DMB4hv07.js.map
853
+ //# sourceMappingURL=smart-compaction-CrP90OFE.js.map
@@ -1,15 +1,15 @@
1
- import { Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Nn as init_projects, Ot as init_record, Sn as findProjectByTeamSync, X as resolveModel, bn as findProjectByPathSync, f as loadConfigSync, gt as appendSessionEntrySync, t as init_config_yaml, vn as extractTeamPrefix, wt as getIssueRecordPath } from "./config-yaml-DbdN9Fuq.js";
2
- import { L as sessionExists, W as BLANKED_PROVIDER_ENV, d as exactPaneTarget, o as createSession, q as init_child_env, r as buildTmuxCommandString, w as killSession, x as init_tmux, z as setOption } from "./tmux-CBYZ5lKF.js";
3
- import { a as getHarnessBehavior } from "./src-AXK4mjue.js";
4
- import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-B3YxHQ-L.js";
5
- import { Gt as getAgentRuntimeBaseCommand, It as retrieveSpawnTimeMemoryContext, Jn as saveAgentStateSync, Kt as getCodexLauncherFields, Pn as getAgentStateSync, Qt as roleAgentDefinitionPath, Xt as init_runtime_command, qt as getOhmypiLauncherFields, t as init_agents, un as getProviderExportsForModel, wt as deliverInitialPromptWithRetry } from "./agents-D_x5BSZM.js";
6
- import { t as init_behavior } from "./behavior-vk1sixby.js";
7
- import { a as init_launcher_generator, i as generateLauncherScriptSync } from "./state-home-XkLSsJCD.js";
8
- import { h as workspaceContextFile, o as init_layers } from "./layers-CO_VLcSv.js";
9
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-TzYAiXzZ.js";
10
- import { c as ensureWorkspacePanDir, r as writeWorkspaceContext, t as init_pan_dir } from "./pan-dir-Cn3NUnxU.js";
11
- import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-BE3OznLY.js";
12
- import { n as renderPrompt, t as init_prompts } from "./prompts-CVncQg4P.js";
1
+ import { Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Nn as init_projects, Ot as init_record, Sn as findProjectByTeamSync, X as resolveModel, bn as findProjectByPathSync, f as loadConfigSync, gt as appendSessionEntrySync, t as init_config_yaml, vn as extractTeamPrefix, wt as getIssueRecordPath } from "./config-yaml-DPAieL_G.js";
2
+ import { L as sessionExists, W as BLANKED_PROVIDER_ENV, d as exactPaneTarget, o as createSession, q as init_child_env, r as buildTmuxCommandString, w as killSession, x as init_tmux, z as setOption } from "./tmux-ePNhMIMU.js";
3
+ import { a as getHarnessBehavior } from "./src-fgbU-jJ-.js";
4
+ import { n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-CXhZdnB8.js";
5
+ import { Gt as getAgentRuntimeBaseCommand, It as retrieveSpawnTimeMemoryContext, Jn as saveAgentStateSync, Kt as getCodexLauncherFields, Pn as getAgentStateSync, Qt as roleAgentDefinitionPath, Xt as init_runtime_command, qt as getOhmypiLauncherFields, t as init_agents, un as getProviderExportsForModel, wt as deliverInitialPromptWithRetry } from "./agents-DHvsjsuP.js";
6
+ import { t as init_behavior } from "./behavior-By-2Wipv.js";
7
+ import { a as init_launcher_generator, i as generateLauncherScriptSync } from "./state-home-Bgj7i-C7.js";
8
+ import { h as workspaceContextFile, o as init_layers } from "./layers-vdvlpFki.js";
9
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
10
+ import { c as ensureWorkspacePanDir, r as writeWorkspaceContext, t as init_pan_dir } from "./pan-dir-BgBeeZDX.js";
11
+ import { r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-CEWK-OXd.js";
12
+ import { n as renderPrompt, t as init_prompts } from "./prompts-CelsUdrx.js";
13
13
  import { Effect } from "effect";
14
14
  import { homedir } from "node:os";
15
15
  import { existsSync, readFileSync } from "node:fs";
@@ -286,12 +286,12 @@ async function claudePlanningSystemPromptFiles(workspacePath, harness) {
286
286
  files.push(await ensureSessionContextBriefingFile());
287
287
  const behavior = getHarnessBehavior(harness);
288
288
  if (behavior.contextLayerKind === "pi") {
289
- const { piGlobalContextFile } = await import("./context-layers-0Lgq-SE_.js");
289
+ const { piGlobalContextFile } = await import("./context-layers-DxKsseHI.js");
290
290
  const globalFile = piGlobalContextFile();
291
291
  if (existsSync(globalFile)) files.unshift(globalFile);
292
292
  }
293
293
  if (behavior.contextLayerKind === "codex") {
294
- const { codexGlobalContextFile } = await import("./context-layers-0Lgq-SE_.js");
294
+ const { codexGlobalContextFile } = await import("./context-layers-DxKsseHI.js");
295
295
  const globalFile = codexGlobalContextFile();
296
296
  if (existsSync(globalFile)) files.unshift(globalFile);
297
297
  }
@@ -541,4 +541,4 @@ async function spawnPlanningSession(opts) {
541
541
  //#endregion
542
542
  export { resolvePlanningSessionHarness as a, resolveAutoSpawnOnFinalize as i, buildPlanningPrompt as n, spawnPlanningSession as o, readAutoSpawnOnFinalizeFlag as r, writeFeatureContext as s, autoSpawnOnFinalizeFlagPath as t };
543
543
 
544
- //# sourceMappingURL=spawn-planning-session-BZfVvIi3.js.map
544
+ //# sourceMappingURL=spawn-planning-session-BmJWHSCu.js.map
@@ -1,2 +1,2 @@
1
- import { o as spawnPlanningSession } from "./spawn-planning-session-BZfVvIi3.js";
1
+ import { o as spawnPlanningSession } from "./spawn-planning-session-BmJWHSCu.js";
2
2
  export { spawnPlanningSession };
@@ -85,4 +85,4 @@ function cancelAllPendingCompletions() {
85
85
  //#endregion
86
86
  export { SpecialistCancelledError, SpecialistCompletionTimeoutError, SpecialistSupersededError, cancelAllPendingCompletions, hasPendingCompletion, reportSpecialistCompletion, waitForSpecialistCompletion };
87
87
 
88
- //# sourceMappingURL=specialist-completion-BAZHHbmp.js.map
88
+ //# sourceMappingURL=specialist-completion-BiEXUHfD.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Dn as getProjectSync, Nn as init_projects, Vr as init_paths, X as resolveModel, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-DbdN9Fuq.js";
3
- import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-BpwIcIR7.js";
2
+ import { Br as getOverdeckHome, Dn as getProjectSync, Nn as init_projects, Vr as init_paths, X as resolveModel, f as loadConfigSync, t as init_config_yaml } from "./config-yaml-DPAieL_G.js";
3
+ import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-DrRAs_0F.js";
4
4
  import { Effect } from "effect";
5
5
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
6
6
  import { join } from "path";
@@ -114,7 +114,7 @@ function getDigestModel(projectKey, specialistType) {
114
114
  async function generateContextDigestPromise(projectKey, specialistType, options = {}) {
115
115
  ensureContextDirectory(projectKey, specialistType);
116
116
  const runCount = options.runCount ?? getContextRunsCount(projectKey);
117
- const { getRecentRunLogs } = await import("./specialist-logs-DynFhFXg.js");
117
+ const { getRecentRunLogs } = await import("./specialist-logs-CvDxquV_.js");
118
118
  const recentRuns = getRecentRunLogs(projectKey, specialistType, runCount);
119
119
  if (recentRuns.length === 0 && !options.force) {
120
120
  console.log(`[specialist-context] No recent runs for ${projectKey}/${specialistType}, skipping digest generation`);
@@ -128,7 +128,7 @@ async function generateContextDigestPromise(projectKey, specialistType, options
128
128
  if (!existsSync(tempDir)) mkdirSync(tempDir, { recursive: true });
129
129
  const promptFile = join(tempDir, `digest-prompt-${Date.now()}.md`);
130
130
  writeFileSync(promptFile, prompt, "utf-8");
131
- const { getProviderEnvForModel } = await import("./agents-KaEsWZ8D.js");
131
+ const { getProviderEnvForModel } = await import("./agents-BIggLvi_.js");
132
132
  const providerEnv = await getProviderEnvForModel(model);
133
133
  const envPrefix = Object.entries(providerEnv).map(([k, v]) => `${k}="${v}"`).join(" ");
134
134
  const permissionFlags = getClaudePermissionFlagsStringSync();
@@ -283,4 +283,4 @@ __esmMin((() => {
283
283
  }))();
284
284
  export { deleteContextDigest, generateContextDigest, getContextDigestPath, getContextDirectory, hasContextDigest, loadContextDigest, regenerateContextDigest, scheduleDigestGeneration };
285
285
 
286
- //# sourceMappingURL=specialist-context-DgdhI7rm.js.map
286
+ //# sourceMappingURL=specialist-context-CwKkcXL9.js.map
@@ -1,4 +1,4 @@
1
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DbdN9Fuq.js";
1
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DPAieL_G.js";
2
2
  import { Effect } from "effect";
3
3
  import { existsSync } from "fs";
4
4
  import { join } from "path";
@@ -52,4 +52,4 @@ const updateSpecialistHandoffStatus = (issueId, toSpecialist, status, result) =>
52
52
  //#endregion
53
53
  export { updateSpecialistHandoffStatus };
54
54
 
55
- //# sourceMappingURL=specialist-handoff-logger-CH1nC8fq.js.map
55
+ //# sourceMappingURL=specialist-handoff-logger-B_2VsWli.js.map
@@ -1,6 +1,6 @@
1
1
  import { a as __toCommonJS, n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Bn as projects_exports, Br as getOverdeckHome, Nn as init_projects, Vr as init_paths } from "./config-yaml-DbdN9Fuq.js";
3
- import { J as specialists_exports, O as init_specialists } from "./specialists-BUKBHtmQ.js";
2
+ import { Bn as projects_exports, Br as getOverdeckHome, Nn as init_projects, Vr as init_paths } from "./config-yaml-DPAieL_G.js";
3
+ import { J as specialists_exports, O as init_specialists } from "./specialists-BYi0k8CZ.js";
4
4
  import { Data, Effect } from "effect";
5
5
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, unlinkSync, writeFileSync } from "fs";
6
6
  import { basename, join } from "path";
@@ -380,4 +380,4 @@ __esmMin((() => {
380
380
  }))();
381
381
  export { MAX_LOG_SIZE, SpecialistLogError, appendToRunLog, appendToRunLogSync, checkLogSizeLimit, cleanupAllLogs, cleanupAllLogsSync, cleanupOldLogs, cleanupOldLogsSync, createRunLog, createRunLogSync, finalizeRunLog, finalizeRunLogSync, generateRunId, getRecentRunLogs, getRunLog, getRunLogPath, getRunLogSize, getRunLogSync, getRunsDirectory, isRunLogActive, listRunLogs, listRunLogsSync, parseLogMetadata };
382
382
 
383
- //# sourceMappingURL=specialist-logs-DynFhFXg.js.map
383
+ //# sourceMappingURL=specialist-logs-CvDxquV_.js.map
@@ -1,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-e0Jmecc1.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-D07ybnam.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };