@overdeck/desktop 0.45.6 → 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 (304) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +483 -0
  2. package/package.json +16 -4
  3. package/server/{acceptance-criteria-DYffaKI9.js → acceptance-criteria-l0DSvFFS.js} +2 -2
  4. package/server/{activity-logger-DO27GsPa.js → activity-logger-DvYvFhwZ.js} +1 -1
  5. package/server/{activity-logger-Dm95Ua07.js → activity-logger-pcbf-e30.js} +3 -2
  6. package/server/{advancing-selfheal-n8tAeFwE.js → advancing-selfheal-CMlGznKv.js} +11 -66
  7. package/server/{agent-gc-CIFaa2vJ.js → agent-gc-BtAzj8QN.js} +3 -3
  8. package/server/{agent-state-service-BqVDA9b8.js → agent-state-service-5ge9xxhx.js} +5 -5
  9. package/server/{agent-state-service-CLifyinO.js → agent-state-service-C1iUF9Ft.js} +1 -1
  10. package/server/agent-state-xk_G8t90.js +3 -0
  11. package/server/{agents-KaEsWZ8D.js → agents-BIggLvi_.js} +1 -1
  12. package/server/{agents-D_x5BSZM.js → agents-DHvsjsuP.js} +129 -61
  13. package/server/{archive-planning-CFxmeFKh.js → archive-planning-B4Qi02bk.js} +1 -1
  14. package/server/{archive-planning-DVUXlRBs.js → archive-planning-zTvWWHG_.js} +4 -4
  15. package/server/{artifact-index-jobs-ChUgzZah.js → artifact-index-jobs-BrByqVkB.js} +2 -2
  16. package/server/{auto-commit-2KiBFh-K.js → auto-commit-DoIPFoEs.js} +1 -1
  17. package/server/{backlog-auto-trigger-DoTEMZMl.js → backlog-auto-trigger-COm_R96V.js} +3 -3
  18. package/server/{bd-mutex-CE6P_MlD.js → bd-mutex-BItGvLQ8.js} +2 -2
  19. package/server/{bd-process-lock-Ch3WNHS9.js → bd-process-lock-CJkoG7hW.js} +2 -2
  20. package/server/{beads-B43pgBIy.js → beads-AmCXEv_E.js} +1 -1
  21. package/server/{beads-BugPvtWp.js → beads-DlZm-vrG.js} +5 -5
  22. package/server/{beads-query-CtqWakL6.js → beads-query-BrVNWoSL.js} +2 -2
  23. package/server/{beads-restore-BqTMSQi-.js → beads-restore-CMbDSB5R.js} +1 -1
  24. package/server/{behavior-vk1sixby.js → behavior-By-2Wipv.js} +3 -3
  25. package/server/{briefing-freshness-B3YxHQ-L.js → briefing-freshness-CXhZdnB8.js} +4 -4
  26. package/server/{checkpoint-manager-CdrwLsQh.js → checkpoint-manager-CPw51H2n.js} +1 -1
  27. package/server/{checkpoint-manager-Dg6cWZz3.js → checkpoint-manager-CfNpHOp4.js} +11 -2
  28. package/server/checkpoint-worker.js +1 -1
  29. package/server/{checkpoints-DDd-0doa.js → checkpoints-BbfH1EIy.js} +2 -2
  30. package/server/{checkpoints-dBCJr0dC.js → checkpoints-BjlBWOA8.js} +1 -1
  31. package/server/{claude-permissions-BpwIcIR7.js → claude-permissions-DrRAs_0F.js} +3 -3
  32. package/server/{claude-settings-overlay-DnraWcz6.js → claude-settings-overlay-BSeS7Ki3.js} +2 -2
  33. package/server/{claude-settings-overlay-xD_Vu420.js → claude-settings-overlay-CEWlIFL-.js} +1 -1
  34. package/server/cli-CJDWXE_Y.js +3 -0
  35. package/server/{cli-BmzYZZKi.js → cli-CvK9xuSS.js} +9 -9
  36. package/server/{cliproxy-DYWdJKZ1.js → cliproxy-BOcmOK6l.js} +1 -1
  37. package/server/{cliproxy-CE2GDY7x.js → cliproxy-J-_1iIXe.js} +2 -2
  38. package/server/{close-issue-CpJd4SOL.js → close-issue-BnpErnD1.js} +5 -5
  39. package/server/{closed-issue-reaper-QpcvCDeE.js → closed-issue-reaper-BLCQwTpF.js} +1 -1
  40. package/server/{closed-issue-reaper-DubXY9Zg.js → closed-issue-reaper-DRqK5k39.js} +10 -10
  41. package/server/{codex-j8aVgRou.js → codex-BUZjrnqH.js} +1 -1
  42. package/server/{codex-B3J1TXo7.js → codex-DcInrhok.js} +5 -5
  43. package/server/{compact-beads-CqhLqG-k.js → compact-beads-RFwdZFPA.js} +4 -4
  44. package/server/{compact-beads-BeilHCdj.js → compact-beads-omhUgj5b.js} +1 -1
  45. package/server/{config-DHU0j_pS.js → config-CzcWQ24p.js} +1 -1
  46. package/server/{config-DkEhJM0h.js → config-oWoKf5jO.js} +4 -4
  47. package/server/{config-yaml-DbdN9Fuq.js → config-yaml-DPAieL_G.js} +3 -2
  48. package/server/{conflict-gate-CgOtMo8i.js → conflict-gate-BhKvrPxn.js} +4 -4
  49. package/server/{conflict-gate-D00zFjeu.js → conflict-gate-JdFuhKuF.js} +1 -1
  50. package/server/{context-layers-BHEjT8Cn.js → context-layers-CTjQwcEQ.js} +3 -3
  51. package/server/{context-layers-0Lgq-SE_.js → context-layers-DxKsseHI.js} +2 -2
  52. package/server/{control-settings-CYv732Gs.js → control-settings-BMqUkXmR.js} +4 -4
  53. package/server/{conversation-compaction-Dbw03b-X.js → conversation-compaction-Ba5aZdrb.js} +1 -1
  54. package/server/{conversation-compaction-DKXvmX50.js → conversation-compaction-C5o_eKEm.js} +8 -8
  55. package/server/{conversation-service-BwKUeEvn.js → conversation-service-DvG8vZSV.js} +5 -5
  56. package/server/{conversation-service-kYYeRp9B.js → conversation-service-WKl-sw58.js} +1 -1
  57. package/server/{conversations-Dwr1jHrO.js → conversations-DL_BAWVk.js} +4 -4
  58. package/server/{conversations-D-uOnA8T.js → conversations-Dcx6LeIh.js} +1 -1
  59. package/server/{cost-DiSDkYe7.js → cost-C2CuA66z.js} +2 -2
  60. package/server/{cost-DNIyZH1X.js → cost-DaOG8sUB.js} +3 -3
  61. package/server/{cost-sync-CfXu-3TF.js → cost-sync-8lkDeL9g.js} +3 -3
  62. package/server/{dag-DZBowTd2.js → dag-jH8ZkewR.js} +3 -3
  63. package/server/{dangerous-git-ops-Pongxg2d.js → dangerous-git-ops-Dcw7PbYo.js} +1 -1
  64. package/server/dashboard-db-worker.js +6 -6
  65. package/server/{deacon-DT0BsVyE.js → deacon-Cv2RMfHs.js} +3 -3
  66. package/server/{deacon-f0yvsG5S.js → deacon-j3qSZ7--.js} +222 -110
  67. package/server/{deacon-nudge-log-Cmcch2Av.js → deacon-nudge-log-CJGA6aSQ.js} +1 -1
  68. package/server/deacon-swarm-D1iAUX-P.js +2 -0
  69. package/server/{deacon-swarm-BBGnhvD2.js → deacon-swarm-DadWNi5J.js} +88 -43
  70. package/server/deacon.js +8 -8
  71. package/server/{devcontainer-renderer-Cpz7XBj0.js → devcontainer-renderer-DUJYYRQB.js} +3 -3
  72. package/server/{dist-DypOkJv9.js → dist-BIC8spJ0.js} +1 -1
  73. package/server/dist-BUplB3Od.js +3 -0
  74. package/server/{docker-DARVx0OZ.js → docker-Q4bphryk.js} +2 -2
  75. package/server/{ensure-devcontainer-Dmdw4BxF.js → ensure-devcontainer-BCB6fHp9.js} +1 -1
  76. package/server/{ensure-devcontainer-BJssuBG6.js → ensure-devcontainer-XLL0vtgV.js} +4 -4
  77. package/server/{esm-shims-Crmvo9Ln.js → esm-shims-DiV9jHa_.js} +1 -1
  78. package/server/{event-store-BeEE8pW5.js → event-store-DIk9wvnS.js} +1 -1
  79. package/server/{event-store-DrfTJZ1_.js → event-store-DTJXZjCl.js} +4 -4
  80. package/server/events-BlzVUyTx.js +3 -0
  81. package/server/{events-BbClwoM-.js → events-DGWZzye2.js} +4 -4
  82. package/server/{factory-DVv9cpG5.js → factory-rG4T40su.js} +4 -4
  83. package/server/{feature-registry-population-C6eVdq4J.js → feature-registry-population-Dwyj9gEM.js} +4 -4
  84. package/server/{feature-registry-storage-ByBosRId.js → feature-registry-storage-CnGyNgAq.js} +2 -2
  85. package/server/{features-EZfSwuqq.js → features-CYY2_Eeh.js} +2 -2
  86. package/server/{feedback-target-DENaINE6.js → feedback-target-C4DaDSZ8.js} +1 -1
  87. package/server/{feedback-target-Dv4VnbQl.js → feedback-target-oE4-Esxl.js} +48 -17
  88. package/server/{feedback-writer-Dxg8qM8i.js → feedback-writer-DMaO0XXa.js} +4 -4
  89. package/server/{feedback-writer-BvHE1I-3.js → feedback-writer-thrdxYpK.js} +1 -1
  90. package/server/{flywheel-Akbd9VNM.js → flywheel-BqDdGvrQ.js} +1 -1
  91. package/server/{flywheel-B4KN9BmW.js → flywheel-ClMjGW_u.js} +11 -11
  92. package/server/{flywheel-ByZyAv3P.js → flywheel-DefHRzY4.js} +13 -13
  93. package/server/{flywheel-merge-order-DPFZbt-w.js → flywheel-merge-order-B6YDSElh.js} +1 -1
  94. package/server/{flywheel-merge-order-BYUPxqgx.js → flywheel-merge-order-CuDcqTRJ.js} +7 -7
  95. package/server/forge-BfP7OJwK.js +2 -0
  96. package/server/{forge-BnTExkbK.js → forge-BixzckB0.js} +2 -2
  97. package/server/{from-B2i_NgIH.js → from-D4xmArTA.js} +1 -1
  98. package/server/{fts-db-dnCj-PD3.js → fts-db-DPtxOAjp.js} +2 -2
  99. package/server/{fts-operations-CAAofsTQ.js → fts-operations-VrGjsT0w.js} +2 -2
  100. package/server/{git-utils-CB3gDSM-.js → git-utils-D_cax3fD.js} +2 -2
  101. package/server/{git-utils-Bk7sJZru.js → git-utils-RAmTwjFB.js} +1 -1
  102. package/server/{github-app-CIhMNI4C.js → github-app-B5PDHMyn.js} +1 -1
  103. package/server/{github-app-BIU8a93o.js → github-app-FMXgo3vK.js} +2 -2
  104. package/server/{github-client-DmZgsnYP.js → github-client-VRiB6N-4.js} +1 -1
  105. package/server/{github-client-zREpj5HA.js → github-client-yjbXaqpR.js} +2 -2
  106. package/server/{github-pr-lookup-CPri6JR1.js → github-pr-lookup-t8X8R0c0.js} +2 -2
  107. package/server/{harness-resolve-TzYAiXzZ.js → harness-resolve-DKeSVsJL.js} +3 -3
  108. package/server/{health-events-CDWk8Oz4.js → health-events-CD6q47ub.js} +1 -1
  109. package/server/{health-events-Dd0FuKrE.js → health-events-DaLX4-0a.js} +2 -2
  110. package/server/{hooks-C6HBXlVm.js → hooks-CmHFSj_Z.js} +2 -2
  111. package/server/{hooks-DRLzoFof.js → hooks-D-cbMUzQ.js} +1 -1
  112. package/server/{hume-Bb91r_2I.js → hume-DkVOs1Qi.js} +2 -2
  113. package/server/hume-x9voULey.js +3 -0
  114. package/server/{idle-stack-reaper-BPHnItVj.js → idle-stack-reaper-DBKQ9SKu.js} +3 -3
  115. package/server/{idle-stack-reaper-D5bwmuwX.js → idle-stack-reaper-DdnERp3G.js} +1 -1
  116. package/server/{infra-CCTzpcuJ.js → infra-CpKlYZA9.js} +3 -3
  117. package/server/{injection-D6L7D_w0.js → injection-CszhePD2.js} +7 -7
  118. package/server/{injection-CBrN8UxB.js → injection-DKzL2Axk.js} +1 -1
  119. package/server/{inspect-agent-CSYyFWqP.js → inspect-agent-BKKc0XnB.js} +9 -9
  120. package/server/inspect-agent-vm88mLYr.js +2 -0
  121. package/server/{internal-token-DWhBqgIk.js → internal-token-CQUx9YLc.js} +2 -2
  122. package/server/{internal-token-DCrCAG_M.js → internal-token-DrGdpLFo.js} +1 -1
  123. package/server/{io-DtAQ_2hp.js → io-Wy8YpFeP.js} +2 -2
  124. package/server/{issue-closed-0Zx72zXf.js → issue-closed-BO84g03t.js} +4 -4
  125. package/server/{issue-lifecycle-ZTt6kP_K.js → issue-lifecycle-DnhQgddB.js} +22 -22
  126. package/server/{issue-lifecycle-CJ7-D4XX.js → issue-lifecycle-nY4esZn8.js} +1 -1
  127. package/server/{issue-service-singleton-DNh4RRI7.js → issue-service-singleton-Bnqv1uaa.js} +1 -1
  128. package/server/{issue-service-singleton-DRE7S-Zg.js → issue-service-singleton-_AquSBTl.js} +8 -8
  129. package/server/{issues-CGc8Aaxm.js → issues-ChNcfHta.js} +2 -2
  130. package/server/{label-cleanup-CNsPlXy6.js → label-cleanup-bVXCGWBM.js} +3 -3
  131. package/server/{layers-CO_VLcSv.js → layers-vdvlpFki.js} +2 -2
  132. package/server/{lifecycle-B_NFvTj9.js → lifecycle-CGKm7doE.js} +7 -7
  133. package/server/{lifecycle-io-D0FftBLy.js → lifecycle-io-CdqPkCyk.js} +1 -1
  134. package/server/{lifecycle-io-WDGwa1vV.js → lifecycle-io-DSrv9xGh.js} +4 -4
  135. package/server/{linear-client-MvjflCXs.js → linear-client-BxKvL6U8.js} +1 -1
  136. package/server/{linear-client-CSgH24Ym.js → linear-client-E0HdXtWs.js} +2 -2
  137. package/server/memory-fts-worker.js +1 -1
  138. package/server/{merge-DltB-RGV.js → merge-D3wEbmUJ.js} +1 -1
  139. package/server/{merge-Ce9DHBXM.js → merge-UlAwCk80.js} +4 -4
  140. package/server/{merge-agent-Rv0bNQNU.js → merge-agent-BcgAYStl.js} +27 -27
  141. package/server/{merge-agent-DRXwKxmb.js → merge-agent-Dh8Y9PDO.js} +1 -1
  142. package/server/{merge-batch-LLp_cXUR.js → merge-batch-BwhGdlh4.js} +1 -1
  143. package/server/{merge-blockers-BqYUtLBd.js → merge-blockers-DwdQNsYD.js} +2 -2
  144. package/server/merge-ops-QdBiQ8XB.js +2 -0
  145. package/server/{merge-rebase-AiSEs4QB.js → merge-rebase-CH12_ufi.js} +2 -2
  146. package/server/{merge-set-CUY9msG9.js → merge-set-TRxJwR-w.js} +3 -3
  147. package/server/{merge-set-CSJoIpKB.js → merge-set-rXK3ehnB.js} +1 -1
  148. package/server/{merge-sync-CAjbJeTp.js → merge-sync-BKLKu9kz.js} +1 -1
  149. package/server/{merge-sync-CuyWzzZK.js → merge-sync-CaLRt2cB.js} +2 -2
  150. package/server/{merge-train-DndZCAiv.js → merge-train-DmxlYbEo.js} +3 -3
  151. package/server/{merge-train-deps-Bsy90Q7t.js → merge-train-deps-DBHsOWt9.js} +4 -4
  152. package/server/{merge-verification-Kvh4WViS.js → merge-verification-DA9rvqsE.js} +4 -4
  153. package/server/{multipart-parser-BWnfyoyz.js → multipart-parser-DtIEUW2B.js} +2 -2
  154. package/server/{no-resume-mode-CKy2bwZL.js → no-resume-mode-yrPEQ_pC.js} +1 -1
  155. package/server/{orphan-proposed-reconciler-Cg5_uVy1.js → orphan-proposed-reconciler-Db8tUhce.js} +10 -10
  156. package/server/{orphan-proposed-reconciler-CjUuBs6J.js → orphan-proposed-reconciler-mXV--tcB.js} +1 -1
  157. package/server/{pan-dir-Cn3NUnxU.js → pan-dir-BgBeeZDX.js} +3 -3
  158. package/server/{paths-Bo-kA9ta.js → paths-TE1GOZDr.js} +2 -2
  159. package/server/{pickup-DRn-XNXS.js → pickup-KLRUhThD.js} +1 -1
  160. package/server/{pipeline-notifier-BbGQtvKM.js → pipeline-notifier-aX_5EqQO.js} +2 -2
  161. package/server/{pipeline-notifier-DQsOtdjZ.js → pipeline-notifier-lwMa--Gz.js} +1 -1
  162. package/server/{projects-CKTA6Klk.js → projects-BNmVxnNt.js} +1 -1
  163. package/server/{prompts-CVncQg4P.js → prompts-CelsUdrx.js} +2 -2
  164. package/server/{providers-uPI9uU7Q.js → providers-4-xOzHQu.js} +7 -7
  165. package/server/{providers-CapuDkKX.js → providers-BOnRq5XK.js} +1 -1
  166. package/server/public/assets/{chunk-BO2N2NFS-CaAvtgHW.js → chunk-BO2N2NFS-jJsbVwoD.js} +4 -4
  167. package/server/public/assets/{diagram-OG6HWLK6-C4flU2X9.js → diagram-OG6HWLK6-Cp1aNi3v.js} +1 -1
  168. package/server/public/assets/{dist-DXAnG2e9.js → dist-B2-Oc7J1.js} +1 -1
  169. package/server/public/assets/{dist-DygIHsen.js → dist-Dbb8vdyE.js} +3 -3
  170. package/server/public/assets/{ganttDiagram-6RSMTGT7-BJY25etK.js → ganttDiagram-6RSMTGT7-rujV2mSn.js} +1 -1
  171. package/server/public/assets/{highlighted-body-OFNGDK62-DIEQLSG_.js → highlighted-body-OFNGDK62-Df3Exbbt.js} +1 -1
  172. package/server/public/assets/{index-BsKNi2y5.js → index-rQPa7qlV.js} +88 -88
  173. package/server/public/assets/{linear-CRa2o9KP.js → linear-Ctp3LAJ5.js} +1 -1
  174. package/server/public/assets/mermaid-GHXKKRXX-BnC2HrDq.js +1 -0
  175. package/server/public/assets/{pieDiagram-4H26LBE5-Cb6OrK_c.js → pieDiagram-4H26LBE5-K-m6VCum.js} +1 -1
  176. package/server/public/assets/{prod-DWpuiL-y.js → prod-jqZ3zqVg.js} +4 -4
  177. package/server/public/assets/{quadrantDiagram-W4KKPZXB-DhZzzcAO.js → quadrantDiagram-W4KKPZXB-DXcFax_1.js} +1 -1
  178. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CVe6lE5A.js → sankeyDiagram-5OEKKPKP-DnD_J_rB.js} +1 -1
  179. package/server/public/assets/{xychartDiagram-2RQKCTM6-zukUz5pI.js → xychartDiagram-2RQKCTM6-Dx25iKVp.js} +1 -1
  180. package/server/public/index.html +1 -1
  181. package/server/{pull-requests-C3csHJsc.js → pull-requests-CH4iBFLl.js} +3 -3
  182. package/server/{pull-requests-MeAgb3Ax.js → pull-requests-DL_4klIb.js} +1 -1
  183. package/server/{rally-nalS21zz.js → rally-D0mKv2t8.js} +3 -3
  184. package/server/rally-DffLLIdl.js +3 -0
  185. package/server/{rally-api-DzQryQi8.js → rally-api-CcCdecF-.js} +1 -1
  186. package/server/{rally-api-DdY4ebu3.js → rally-api-DgAt6FbN.js} +2 -2
  187. package/server/{rally-client-9duSds1_.js → rally-client-DYjtgTOu.js} +4 -4
  188. package/server/{rally-client-B16-bZk9.js → rally-client-X0bEEN2B.js} +1 -1
  189. package/server/reap-terminal-sessions-BwJb2DLJ.js +3 -0
  190. package/server/{reap-terminal-sessions-C6rD1pDT.js → reap-terminal-sessions-CAmURC2h.js} +12 -62
  191. package/server/{rebuild-stack-D9qBmVcM.js → rebuild-stack-BLG3rlWa.js} +6 -6
  192. package/server/{rebuild-stack-DrWMHxoY.js → rebuild-stack-ByFCMqTK.js} +1 -1
  193. package/server/{reconstruct-cache--H2QBooC.js → reconstruct-cache-_tDZ2D72.js} +6 -6
  194. package/server/{record-fn7uPjsl.js → record-DjPikotp.js} +1 -1
  195. package/server/{remote-BEkHf2HO.js → remote-B1Trmr0N.js} +3 -3
  196. package/server/{remote-Dl6Hn0zz.js → remote-TN0cV8k-.js} +3 -3
  197. package/server/{remote-agents-DNdP4sew.js → remote-agents-CmbIKw7E.js} +5 -5
  198. package/server/{remote-agents-OB4zwVHz.js → remote-agents-DNuaAgU6.js} +1 -1
  199. package/server/{remote-completion-BINc1Y8c.js → remote-completion-Bklh6loJ.js} +12 -12
  200. package/server/resume-DnIsmIgC.js +3 -0
  201. package/server/review-agent-DgySDb-G.js +3 -0
  202. package/server/{review-agent-C-A6IgXc.js → review-agent-phzqNqIs.js} +599 -197
  203. package/server/{review-artifacts-DTTdAYsU.js → review-artifacts-BGc69epg.js} +7 -7
  204. package/server/{review-context-De14xPtc.js → review-context-CCq56O_Y.js} +7 -7
  205. package/server/{review-monitor-BNV3kjLq.js → review-monitor-BKG2ubt5.js} +2 -2
  206. package/server/{review-status-DWAsTqfJ.js → review-status-BQjqQXZG.js} +160 -52
  207. package/server/{review-status-mo3tyc8L.js → review-status-bBkqUj5i.js} +1 -1
  208. package/server/{review-status-enrichment-C6sr9wOI.js → review-status-enrichment-CGlcApSn.js} +3 -3
  209. package/server/{review-status-sync-D-p7TQit.js → review-status-sync-BWHnrq-k.js} +3 -3
  210. package/server/{review-status-sync-MvYGQLDD.js → review-status-sync-BxHBVH8s.js} +1 -1
  211. package/server/{review-verdict-feedback-BbIfN5Vg.js → review-verdict-feedback-cZh9Wi9G.js} +1 -1
  212. package/server/{review-verdict-feedback-Cfc-THvz.js → review-verdict-feedback-wqnikhMK.js} +16 -36
  213. package/server/{rollup-DgWlrSBc.js → rollup-BJE-Vc7H.js} +8 -8
  214. package/server/{rollup-CxR6GMTe.js → rollup-DBNy1yFB.js} +1 -1
  215. package/server/{scanner-6OmIn5XE.js → scanner-CUGpdp4i.js} +7 -7
  216. package/server/{sequence-io-CxiPMMKM.js → sequence-io-B2GmilSI.js} +4 -4
  217. package/server/{sequencer-agent--xPlSfR2.js → sequencer-agent-D8pW2aU_.js} +5 -5
  218. package/server/server.js +166 -162
  219. package/server/{service-CXje28KS.js → service-CILd-uOt.js} +46 -45
  220. package/server/session-fork-DDSDVoIK.js +99 -0
  221. package/server/{settings-ChvoXExM.js → settings-CBrei_kx.js} +2 -2
  222. package/server/{settings-DZq_bi-B.js → settings-D2wt4nku.js} +3 -3
  223. package/server/settings-vLoKyghx.js +2 -0
  224. package/server/{shadow-engineering-BHeyD5bL.js → shadow-engineering-Ba1D0QUN.js} +2 -2
  225. package/server/{shadow-state-p3YTxrJ5.js → shadow-state-BOaq8BrD.js} +1 -1
  226. package/server/{shadow-state-3L0eHQNE.js → shadow-state-DTC7AMHc.js} +2 -2
  227. package/server/{ship-log-B2EEH__n.js → ship-log-CMWH3H5-.js} +1 -1
  228. package/server/{smart-compaction-DRXK5_io.js → smart-compaction-Bgp_gwcA.js} +1 -1
  229. package/server/{smart-compaction-DMB4hv07.js → smart-compaction-CrP90OFE.js} +7 -7
  230. package/server/{spawn-planning-session-BZfVvIi3.js → spawn-planning-session-BmJWHSCu.js} +15 -15
  231. package/server/{spawn-planning-session-BBUzeHJQ.js → spawn-planning-session-D15KbPOy.js} +1 -1
  232. package/server/{specialist-completion-BAZHHbmp.js → specialist-completion-BiEXUHfD.js} +1 -1
  233. package/server/{specialist-context-DgdhI7rm.js → specialist-context-CwKkcXL9.js} +5 -5
  234. package/server/{specialist-handoff-logger-CH1nC8fq.js → specialist-handoff-logger-B_2VsWli.js} +2 -2
  235. package/server/{specialist-logs-DynFhFXg.js → specialist-logs-CvDxquV_.js} +3 -3
  236. package/server/{specialists-LJ9MZMCz.js → specialists-BCjcG4uE.js} +1 -1
  237. package/server/{specialists-BUKBHtmQ.js → specialists-BYi0k8CZ.js} +18 -18
  238. package/server/{specialists-e0Jmecc1.js → specialists-D07ybnam.js} +78 -85
  239. package/server/{specialists-CF02f9p2.js → specialists-F2uMO4QS.js} +1 -1
  240. package/server/specs-DeS98l_p.js +3 -0
  241. package/server/{src-CNLON0co.js → src-BswtmojL.js} +6 -6
  242. package/server/{src-DhJeCV1p.js → src-Dp0WHgDZ.js} +3 -3
  243. package/server/{src-AXK4mjue.js → src-fgbU-jJ-.js} +6 -3
  244. package/server/{stack-health-8jZH0Lgk.js → stack-health-BJVh1TCg.js} +3 -3
  245. package/server/{stack-health-CXYHwv5D.js → stack-health-Deel1mSW.js} +1 -1
  246. package/server/{state-home-XkLSsJCD.js → state-home-Bgj7i-C7.js} +8 -7
  247. package/server/{summary-fork-shfA2XOf.js → summary-fork-DedqguZb.js} +2 -2
  248. package/server/{summary-fork-BWa0ECGL.js → summary-fork-EjvOkEPl.js} +12 -91
  249. package/server/{supervisor-owMkHcx8.js → supervisor-0oXvLwyC.js} +3 -3
  250. package/server/supervisor-D1-XwmZ7.js +2 -0
  251. package/server/{swarm-readiness-BACUsKOx.js → swarm-readiness-OBgamRql.js} +3 -3
  252. package/server/{teardown-workspace-CYt_PBaq.js → teardown-workspace-5LCVbjfq.js} +14 -14
  253. package/server/{test-agent-queue-C1s6mB8C.js → test-agent-queue-qfsq6uaC.js} +6 -6
  254. package/server/{test-verdict-CmxX3KEf.js → test-verdict-BkubHtti.js} +1 -1
  255. package/server/{test-verdict-njEv9ZY2.js → test-verdict-D3Il7cBK.js} +1 -1
  256. package/server/{tldr-daemon-CEUflKr2.js → tldr-daemon-CJW_P4On.js} +2 -2
  257. package/server/{tldr-daemon-HIo0dwDB.js → tldr-daemon-CJqGsDFh.js} +1 -1
  258. package/server/tmux-CeDD14p1.js +3 -0
  259. package/server/{tmux-CBYZ5lKF.js → tmux-ePNhMIMU.js} +2 -2
  260. package/server/{token-CiS3w6Ma.js → token-_qujO3JZ.js} +1 -1
  261. package/server/{tracker-config-CVCoeaaL.js → tracker-config-C3hiPVAM.js} +2 -2
  262. package/server/{tracker-config-Bx50plWp.js → tracker-config-Drt_tx4D.js} +1 -1
  263. package/server/{tracker-utils-C2Lg4RoB.js → tracker-utils-D6B8scEw.js} +1 -1
  264. package/server/{tracker-utils-mI4d-vh8.js → tracker-utils-bpWs7Xyx.js} +2 -2
  265. package/server/{traefik-connect-D21-YEyX.js → traefik-connect-5EP1WS_Z.js} +1 -1
  266. package/server/{tunnel-BK4PVyb0.js → tunnel-3Ve8BS4H.js} +3 -3
  267. package/server/{tunnel-CcHkuRIS.js → tunnel-AporWhoi.js} +1 -1
  268. package/server/{types-DoPMvws2.js → types-B5u3NxMl.js} +1 -1
  269. package/server/{uat-train-BLFPxqLx.js → uat-train-C3hWXtip.js} +1 -1
  270. package/server/{uat-train-CQ_E-2ei.js → uat-train-CtNGgXxj.js} +27 -27
  271. package/server/{validation-Dab3bnSN.js → validation-BmUB-26g.js} +4 -4
  272. package/server/{validation-1QnjDMc0.js → validation-CbqP_dze.js} +1 -1
  273. package/server/{verification-runner-BO8TgZWA.js → verification-runner-BPAhPWR7.js} +11 -11
  274. package/server/{verification-runner-UhAAqOio.js → verification-runner-DuZRHjPU.js} +1 -1
  275. package/server/{vtt-parser-D-q5-8il.js → vtt-parser-CKc-smWM.js} +1 -1
  276. package/server/{work-agent-prompt-D_7T1xw5.js → work-agent-prompt-DCdHsm-V.js} +11 -11
  277. package/server/workflows-Cz8OtiB4.js +2 -0
  278. package/server/{workflows-CB5SWd0B.js → workflows-H-COJ84X.js} +14 -14
  279. package/server/{workspace-C4Avf_Tp.js → workspace-4ZufqeMe.js} +3 -3
  280. package/server/{workspace--XWYPbn1.js → workspace-DYv9kBg6.js} +1 -1
  281. package/server/{workspace-config-BwJB-bLH.js → workspace-config-DA8U97k9.js} +1 -1
  282. package/server/{workspace-manager-_6zbrhNF.js → workspace-manager-B3PqQQSM.js} +1 -1
  283. package/server/{workspace-manager-BE3OznLY.js → workspace-manager-CEWK-OXd.js} +12 -12
  284. package/server/{workspace-metadata-BCgODi1j.js → workspace-metadata-1eu1RvAT.js} +2 -2
  285. package/server/{workspace-metadata-wKPgY8PN.js → workspace-metadata-C0I-nIDL.js} +1 -1
  286. package/server/{workspaces-DpMiZ9BP.js → workspaces-CRU9_vRn.js} +154 -106
  287. package/server/agent-state-DTZCqWx5.js +0 -3
  288. package/server/cli-wyiCmp7b.js +0 -3
  289. package/server/deacon-swarm-jDiQ0kKk.js +0 -2
  290. package/server/dist-CnkaBMG-.js +0 -3
  291. package/server/forge-D2QLGWK9.js +0 -2
  292. package/server/hume-sCsuupWb.js +0 -3
  293. package/server/inspect-agent-DnspoIls.js +0 -2
  294. package/server/merge-ops-B6xc_Irj.js +0 -2
  295. package/server/public/assets/mermaid-GHXKKRXX-uIkd-n0c.js +0 -1
  296. package/server/rally-BJiyvz3w.js +0 -3
  297. package/server/reap-terminal-sessions-mW7SPDtP.js +0 -2
  298. package/server/resume-Pur3Z2e8.js +0 -3
  299. package/server/review-agent-BRSSFv7e.js +0 -3
  300. package/server/settings-D0XXIUQ0.js +0 -2
  301. package/server/specs-COn3zZ2Q.js +0 -3
  302. package/server/supervisor-DwGIhpXk.js +0 -2
  303. package/server/tmux-DNmHGMEv.js +0 -3
  304. package/server/workflows-Plo_VxeO.js +0 -2
package/server/server.js CHANGED
@@ -1,95 +1,95 @@
1
1
  import { a as __toCommonJS, i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as extractPrefixSync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, Dr as LOGS_DIR, E as canUseHarnessSync, Et as getIssueWorkspacePath, F as getKimiAnthropicBaseUrl, Fr as SYNC_SOURCES, G as init_registry, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, Hn as registerProjectSync, Hr as isDevMode, In as listProjects, J as computeModelOrigin, K as DEFAULT_ROLES, L as getProviderForModelSync, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, M as UnknownModelError, Nn as init_projects, O as init_harness_policy, Or as OVERDECK_HOME, Ot as init_record, P as getBuiltInDefaultHarness, Q as MODEL_DEPRECATIONS, R as init_providers, S as init_tier_table, Sn as findProjectByTeamSync, T as validateTieredExecutionConfig, Ur as packageRoot, Vr as init_paths, W as defaultBackgroundAiFeatures, Wn as resolveProjectFromIssue, Wr as resolveOhmypiExtensionPath, X as resolveModel, Yn as setProjectAutoMergeDefaultSync, Z as MODEL_CAPABILITIES, _ as getDefaultTtsDaemonConfig, bn as findProjectByPathSync, c as isClaudeCodeChannelsEnabled, cr as FsError, ct as COMPLIANCE_MODES, d as loadConfigNoMigration, er as init_issue_id, et as getModelEffortLevelsSync, f as loadConfigSync, g as mergeConfigs, gr as TrackerError, h as jsYaml, i as getConversationsConfig, ir as require_dist$1, it as resolveModelIdSync, lt as PARENT_MODEL_REF, m as init_js_yaml, mr as ProcessSpawnError, n as clearConfigCache, nn as flushAutoCommits, nr as parseIssueIdSync, nt as init_model_capabilities, o as getGlobalConfigPath, p as updateConversationsConfig, q as DEFAULT_WORKHORSES, r as getConversationSearchConfigSync, rn as init_auto_commit, rt as modelSupportsImagesSync, t as init_config_yaml, tn as flushAllPendingAutoCommits, tt as hasModelCapabilitySync, u as isTldrEnabledSync, ur as GitHubApiError, ut as ROLE_EFFORTS, v as mergeTtsDaemonConfigs, vn as extractTeamPrefix, vr as init_errors, wn as getIssuePrefix, wr as CLAUDE_DIR, x as TieredExecutionConfigError, yr as AGENTS_DIR, z as piProviderForModel, zr as getLegacyHome } from "./config-yaml-DbdN9Fuq.js";
3
- import { _ as getDashboardIdentity, c as startUatTrainReconciler, d as openFlywheelRunReportForDashboard, f as pauseFlywheelRunForDashboard, g as runDashboardDbJob, h as startFlywheelRunForDashboard, l as stopUatTrainReconciler, m as resumeFlywheelRunForDashboard, p as readCurrentFlywheelStatusForDashboard, u as abortFlywheelRunForDashboard, v as readHostDashboardApiPort, y as shouldRefuseHostDashboardPort } from "./uat-train-CQ_E-2ei.js";
4
- import { C as validateOrigin$1, D as jsonResponse, E as httpHandler, O as jsonStringResponse, T as checkCodexAuthStatus, _ as resolveJsonlPath, a as agentsRouteLayer, c as evaluateSpawnGuardrails, d as resolveConversationGitInfo, g as resolveCodexRolloutPath, h as resolveClaudeSessionId, l as invalidateAgentsCache, m as resolveAgentHarness, o as saveAgentStateAndEmitEvent, p as readLauncherPinnedSessionId, s as saveAgentStateAndEmitEventProgram, t as specialistsRouteLayer, u as resolveAgentGitInfo, v as resolvePiSessionPath, w as validateOriginHeaders, x as isTrustedOriginForHost, y as getHeaderFromMap } from "./specialists-e0Jmecc1.js";
5
- import { a as init_activity_logger, i as emitDashboardLifecycleSync, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-Dm95Ua07.js";
6
- import { A as init_paths$1, O as OVERDECK_MIGRATION_PATH, d as getOverdeckDatabaseSync, f as init_infra, i as DbLive, k as getOverdeckDatabasePath, u as TmuxLive } from "./infra-CCTzpcuJ.js";
2
+ import { $n as extractPrefixSync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, Dr as LOGS_DIR, E as canUseHarnessSync, Et as getIssueWorkspacePath, F as getKimiAnthropicBaseUrl, Fr as SYNC_SOURCES, G as init_registry, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, Hn as registerProjectSync, Hr as isDevMode, In as listProjects, J as computeModelOrigin, K as DEFAULT_ROLES, L as getProviderForModelSync, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, M as UnknownModelError, Nn as init_projects, O as init_harness_policy, Or as OVERDECK_HOME, Ot as init_record, P as getBuiltInDefaultHarness, Q as MODEL_DEPRECATIONS, R as init_providers, S as init_tier_table, Sn as findProjectByTeamSync, T as validateTieredExecutionConfig, Ur as packageRoot, Vr as init_paths, W as defaultBackgroundAiFeatures, Wn as resolveProjectFromIssue, Wr as resolveOhmypiExtensionPath, X as resolveModel, Yn as setProjectAutoMergeDefaultSync, Z as MODEL_CAPABILITIES, _ as getDefaultTtsDaemonConfig, bn as findProjectByPathSync, c as isClaudeCodeChannelsEnabled, cr as FsError, ct as COMPLIANCE_MODES, d as loadConfigNoMigration, er as init_issue_id, et as getModelEffortLevelsSync, f as loadConfigSync, g as mergeConfigs, gr as TrackerError, h as jsYaml, i as getConversationsConfig, ir as require_dist$1, it as resolveModelIdSync, lt as PARENT_MODEL_REF, m as init_js_yaml, mr as ProcessSpawnError, n as clearConfigCache, nn as flushAutoCommits, nr as parseIssueIdSync, nt as init_model_capabilities, o as getGlobalConfigPath, p as updateConversationsConfig, q as DEFAULT_WORKHORSES, r as getConversationSearchConfigSync, rn as init_auto_commit, rt as modelSupportsImagesSync, t as init_config_yaml, tn as flushAllPendingAutoCommits, tt as hasModelCapabilitySync, u as isTldrEnabledSync, ur as GitHubApiError, ut as ROLE_EFFORTS, v as mergeTtsDaemonConfigs, vn as extractTeamPrefix, vr as init_errors, wn as getIssuePrefix, wr as CLAUDE_DIR, x as TieredExecutionConfigError, yr as AGENTS_DIR, z as piProviderForModel, zr as getLegacyHome } from "./config-yaml-DPAieL_G.js";
3
+ import { _ as getDashboardIdentity, c as startUatTrainReconciler, d as openFlywheelRunReportForDashboard, f as pauseFlywheelRunForDashboard, g as runDashboardDbJob, h as startFlywheelRunForDashboard, l as stopUatTrainReconciler, m as resumeFlywheelRunForDashboard, p as readCurrentFlywheelStatusForDashboard, u as abortFlywheelRunForDashboard, v as readHostDashboardApiPort, y as shouldRefuseHostDashboardPort } from "./uat-train-CtNGgXxj.js";
4
+ import { C as validateOrigin$1, D as jsonResponse, E as httpHandler, O as jsonStringResponse, T as checkCodexAuthStatus, _ as resolveJsonlPath, a as agentsRouteLayer, c as evaluateSpawnGuardrails, d as resolveConversationGitInfo, g as resolveCodexRolloutPath, h as resolveClaudeSessionId, l as invalidateAgentsCache, m as resolveAgentHarness, o as saveAgentStateAndEmitEvent, p as readLauncherPinnedSessionId, s as saveAgentStateAndEmitEventProgram, t as specialistsRouteLayer, u as resolveAgentGitInfo, v as resolvePiSessionPath, w as validateOriginHeaders, x as isTrustedOriginForHost, y as getHeaderFromMap } from "./specialists-D07ybnam.js";
5
+ import { a as init_activity_logger, i as emitDashboardLifecycleSync, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
6
+ import { A as init_paths$1, O as OVERDECK_MIGRATION_PATH, d as getOverdeckDatabaseSync, f as init_infra, i as DbLive, k as getOverdeckDatabasePath, u as TmuxLive } from "./infra-CpKlYZA9.js";
7
7
  import { n as openDatabase, t as init_driver } from "./driver-D-HBOQa_.js";
8
- import { E as listPaneValues, F as sendKeysAsync, G as buildChildEnvSync, H as init_ui_theme, I as sendRawKeystroke, K as buildChildEnvWithoutTmuxSync, L as sessionExists, M as resizeWindow, O as listSessionNames, P as sendKeys, S as isHarnessProcessAlive, U as setUiTheme, W as BLANKED_PROVIDER_ENV, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, k as listSessions, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, q as init_child_env, w as killSession, x as init_tmux, z as setOption } from "./tmux-CBYZ5lKF.js";
9
- import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-DrfTJZ1_.js";
10
- import { _ as FlywheelRunId, a as getHarnessBehavior, b as DomainEvent, c as FlywheelStats, g as WS_METHODS, h as PanRpcGroup, m as PanRpcError, o as ContextLayerSaveRequest, s as ContextPreviewRequest, t as init_src, v as FlywheelStatus, x as MemoryObservation, y as EDITORS } from "./src-AXK4mjue.js";
11
- import { a as fixStuckReadyForMerge, c as init_review_status, i as fixStuckCommentedReviews, l as loadReadyForMergeFlags, n as clearReviewStatus, o as getReviewStatus, r as clearStuckMergeStatuses, s as getReviewStatusSync, u as loadReviewStatuses, v as setReviewStatus, y as setReviewStatusSync } from "./review-status-DWAsTqfJ.js";
12
- import { a as EventStoreService, c as ReadModelService, d as init_read_model, f as toAgentResolution, i as init_issue_lifecycle, l as ReadModelServiceLive, m as toRole, n as IssueLifecycleLive, o as EventStoreServiceLive, p as toAgentStatus, s as init_domain_services, t as IssueLifecycle } from "./issue-lifecycle-ZTt6kP_K.js";
13
- import { d as init_agents, i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, p as listAllAgentsSync, r as init_briefing_freshness, s as AgentsResolverLive, t as appendFreshBriefingUpdate } from "./briefing-freshness-B3YxHQ-L.js";
14
- import { i as init_paths$2, l as resolveObservationsFile, r as ensureParentDir, s as resolveIssueMemoryRoot, t as assertMemorySafeSegment } from "./paths-Bo-kA9ta.js";
15
- import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-ByBosRId.js";
16
- import { a as diffAgainstMain, c as diffCheckpoints, d as diffPatchSinceCommit, f as findCommitAtTime, h as listCheckpoints, l as diffFilesAgainstHead, m as init_checkpoint_manager, o as diffAgainstMainFiles, s as diffCheckpointFiles, t as captureCheckpoint, u as diffPatchFilesAgainstHead } from "./checkpoint-manager-Dg6cWZz3.js";
17
- import { An as getAgentDir, At as init_bridge_token, Dt as captureTranscriptUserRecordSnapshot, Gt as getAgentRuntimeBaseCommand, Jn as saveAgentStateSync, Jt as getProviderAuthMode, M as init_operator_interventions, Mn as getAgentState, N as operatorInterventionEvent, Nn as getAgentStateFilePath, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, St as deliverAgentMessage, X as listAgentStates, Z as listRunningAgents, Zt as injectPiConversationMemory, _t as init_config, an as init_claude_auth, ar as init_pty_token, at as init_concurrency, bn as writeChannelsBridgeMcpConfig, bt as saveCloisterConfigSync, c as init_tier_supervisor, en as init_pi_fifo, f as supervisorAgentId, fr as waitForReadySignal, hn as init_openai_auth, in as getClaudeAuthStatus, ir as readAgentHarnessModelRecordSync, j as messageAgent, jt as writeBridgeTokenSync, kt as probeTranscriptSince, ln as getProviderEnvForModel, lr as normalizeAgentId, mn as getOpenAIAuthStatus, mr as getAgentRuntimeStateSync, nn as init_ohmypi_fifo, or as writePtyToken, pr as getAgentRuntimeState, rn as ohmypiFifoPaths, rr as init_agent_record_sync, rt as emergencyBrake, s as deliverCommitForReview, sr as clearReadySignal, t as init_agents$1, tn as piFifoPaths, un as getProviderExportsForModel, vt as loadCloisterConfig, xt as shouldAutoStart, yn as dismissDevChannelsDialog, yt as loadCloisterConfigSync } from "./agents-D_x5BSZM.js";
18
- import { t as init_behavior } from "./behavior-vk1sixby.js";
19
- import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, d as init_cost_sync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, p as queryCostEventsSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as getTodayCostSync } from "./cost-sync-CfXu-3TF.js";
20
- import { c as getAgentsNeedingAttention, d as CostResolverLive, f as CostWriter, l as CostDoorLive, n as readCloisterStateFile, o as generateHealthSummary, s as getAgentHealth, t as getCloisterService, u as CostResolver } from "./service-CXje28KS.js";
21
- import { n as AgentStateServiceLive } from "./agent-state-service-BqVDA9b8.js";
22
- import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-CVCoeaaL.js";
8
+ import { E as listPaneValues, F as sendKeysAsync, G as buildChildEnvSync, H as init_ui_theme, I as sendRawKeystroke, K as buildChildEnvWithoutTmuxSync, L as sessionExists, M as resizeWindow, O as listSessionNames, P as sendKeys, S as isHarnessProcessAlive, U as setUiTheme, W as BLANKED_PROVIDER_ENV, b as getWindowDimensions, c as ensureManagedTmuxContextOnce, d as exactPaneTarget, i as capturePane, k as listSessions, n as buildTmuxArgs, o as createSession, p as findManagedServerPidSync, q as init_child_env, w as killSession, x as init_tmux, z as setOption } from "./tmux-ePNhMIMU.js";
9
+ import { a as init_event_store, i as initEventStore, n as getEventStore, r as getSharedDb } from "./event-store-DTJXZjCl.js";
10
+ import { _ as FlywheelRunId, a as getHarnessBehavior, b as DomainEvent, c as FlywheelStats, g as WS_METHODS, h as PanRpcGroup, m as PanRpcError, o as ContextLayerSaveRequest, s as ContextPreviewRequest, t as init_src, v as FlywheelStatus, x as MemoryObservation, y as EDITORS } from "./src-fgbU-jJ-.js";
11
+ import { a as fixStuckReadyForMerge, c as init_review_status, i as fixStuckCommentedReviews, l as loadReadyForMergeFlags, n as clearReviewStatus, o as getReviewStatus, r as clearStuckMergeStatuses, s as getReviewStatusSync, u as loadReviewStatuses, v as setReviewStatus, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
12
+ import { a as EventStoreService, c as ReadModelService, d as init_read_model, f as toAgentResolution, i as init_issue_lifecycle, l as ReadModelServiceLive, m as toRole, n as IssueLifecycleLive, o as EventStoreServiceLive, p as toAgentStatus, s as init_domain_services, t as IssueLifecycle } from "./issue-lifecycle-DnhQgddB.js";
13
+ import { d as init_agents, i as recordBriefingSessionStart, n as ensureSessionContextBriefingFile, p as listAllAgentsSync, r as init_briefing_freshness, s as AgentsResolverLive, t as appendFreshBriefingUpdate } from "./briefing-freshness-CXhZdnB8.js";
14
+ import { i as init_paths$2, l as resolveObservationsFile, r as ensureParentDir, s as resolveIssueMemoryRoot, t as assertMemorySafeSegment } from "./paths-TE1GOZDr.js";
15
+ import { n as listFeatureRegistryEntries, t as init_feature_registry_storage } from "./feature-registry-storage-CnGyNgAq.js";
16
+ import { a as diffAgainstMain, c as diffCheckpoints, d as diffPatchSinceCommit, f as findCommitAtTime, h as listCheckpoints, l as diffFilesAgainstHead, m as init_checkpoint_manager, o as diffAgainstMainFiles, s as diffCheckpointFiles, t as captureCheckpoint, u as diffPatchFilesAgainstHead } from "./checkpoint-manager-CfNpHOp4.js";
17
+ import { An as getAgentDir, At as init_bridge_token, Dt as captureTranscriptUserRecordSnapshot, Gt as getAgentRuntimeBaseCommand, Jn as saveAgentStateSync, Jt as getProviderAuthMode, M as init_operator_interventions, Mn as getAgentState, N as operatorInterventionEvent, Nn as getAgentStateFilePath, Ot as init_transcript_landing, Pn as getAgentStateSync, Q as listRunningAgentsSync, St as deliverAgentMessage, X as listAgentStates, Z as listRunningAgents, Zt as injectPiConversationMemory, _t as init_config, an as init_claude_auth, ar as init_pty_token, at as init_concurrency, bn as writeChannelsBridgeMcpConfig, bt as saveCloisterConfigSync, c as init_tier_supervisor, en as init_pi_fifo, f as supervisorAgentId, fr as waitForReadySignal, hn as init_openai_auth, in as getClaudeAuthStatus, ir as readAgentHarnessModelRecordSync, j as messageAgent, jt as writeBridgeTokenSync, kt as probeTranscriptSince, ln as getProviderEnvForModel, lr as normalizeAgentId, mn as getOpenAIAuthStatus, mr as getAgentRuntimeStateSync, nn as init_ohmypi_fifo, or as writePtyToken, pr as getAgentRuntimeState, rn as ohmypiFifoPaths, rr as init_agent_record_sync, rt as emergencyBrake, s as deliverCommitForReview, sr as clearReadySignal, t as init_agents$1, tn as piFifoPaths, un as getProviderExportsForModel, vt as loadCloisterConfig, xt as shouldAutoStart, yn as dismissDevChannelsDialog, yt as loadCloisterConfigSync } from "./agents-DHvsjsuP.js";
18
+ import { t as init_behavior } from "./behavior-By-2Wipv.js";
19
+ import { a as getCostForIssueAggregateSync, c as getDailyTrendsSync, d as init_cost_sync, l as getModelRollupSync, n as getBackgroundCostBySourceSync, p as queryCostEventsSync, r as getCavemanExperimentDataSync, s as getCostsByIssueSync, u as getTodayCostSync } from "./cost-sync-8lkDeL9g.js";
20
+ import { c as getAgentsNeedingAttention, d as CostResolverLive, f as CostWriter, l as CostDoorLive, n as readCloisterStateFile, o as generateHealthSummary, s as getAgentHealth, t as getCloisterService, u as CostResolver } from "./service-CILd-uOt.js";
21
+ import { n as AgentStateServiceLive } from "./agent-state-service-5ge9xxhx.js";
22
+ import { a as init_tracker_config, i as initTrackerConfigCache, n as getLinearApiKey, r as getRallyConfig, t as getGitHubConfig } from "./tracker-config-C3hiPVAM.js";
23
23
  import { d as init_typed_errors, l as WorkspaceCreateError, n as AgentStartError, r as BeadsNotInitialized, s as TrackerApiError, t as AgentAlreadyRunning, u as WorkspaceNotFound } from "./typed-errors-BEJhbjJg.js";
24
- import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-CSgH24Ym.js";
25
- import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-zREpj5HA.js";
26
- import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-9duSds1_.js";
27
- import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-mI4d-vh8.js";
28
- import { a as CacheService, i as startSharedIssueService, n as init_issue_service_singleton, o as init_cache_service, r as issue_service_singleton_exports, s as parseIntegerHeader, t as getSharedIssueService } from "./issue-service-singleton-DRE7S-Zg.js";
29
- import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DWhBqgIk.js";
30
- import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-BbGQtvKM.js";
31
- import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates } from "./review-status-sync-D-p7TQit.js";
24
+ import { i as init_linear_client, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-E0HdXtWs.js";
25
+ import { i as init_github_client, r as GitHubClientOptionalLive, t as GitHubClient } from "./github-client-yjbXaqpR.js";
26
+ import { i as init_rally_client, r as RallyClientOptionalLive, t as RallyClient } from "./rally-client-DYjtgTOu.js";
27
+ import { a as resolveTrackerTypeSync, i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-bpWs7Xyx.js";
28
+ import { a as CacheService, i as startSharedIssueService, n as init_issue_service_singleton, o as init_cache_service, r as issue_service_singleton_exports, s as parseIntegerHeader, t as getSharedIssueService } from "./issue-service-singleton-_AquSBTl.js";
29
+ import { i as ensureInternalTokenSync, o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-CQUx9YLc.js";
30
+ import { a as setPipelineHandlerSync, t as init_pipeline_notifier } from "./pipeline-notifier-aX_5EqQO.js";
31
+ import { c as init_review_status_sync, i as getMergeBlockerReconcileCandidates } from "./review-status-sync-BWHnrq-k.js";
32
32
  import { a as PAN_DIRNAME, f as asPanSpecDocument, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-CE1m_daD.js";
33
- import { C as transitionToMerging, _ as markFailed, c as isFlywheelGloballyPaused, d as listDuePendingAutoMerges, f as listProblemAutoMerges, g as markBlocked, n as getActionableAutoMerge, o as init_merge_sync, t as cancelPending, u as listActiveAutoMerges, v as markMerged, x as scheduleAutoMergeWithResult, y as requeueToPending } from "./merge-sync-CuyWzzZK.js";
34
- import { C as findSpecByIssue, O as writeSpec, T as init_specs, a as findWorkspaceDraftPlan, b as init_types$1, k as writeSpecForIssue, m as readWorkspacePlanSync, o as init_io, p as readWorkspacePlan, r as findPlan, s as isPlanningComplete, u as readPlan, x as subItemsOf } from "./io-DtAQ_2hp.js";
35
- import { C as restartCliproxy, S as readPidFile, T as stopCliproxy, b as isCliproxyInstalled, d as getCliproxyAuthDir, o as bridgeCodexAuthToCliproxy, v as init_cliproxy, w as startCliproxy, x as isCliproxyRunning, y as installCliproxy } from "./cliproxy-CE2GDY7x.js";
36
- import { f as init_config$1, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-DkEhJM0h.js";
33
+ import { C as transitionToMerging, _ as markFailed, c as isFlywheelGloballyPaused, d as listDuePendingAutoMerges, f as listProblemAutoMerges, g as markBlocked, n as getActionableAutoMerge, o as init_merge_sync, t as cancelPending, u as listActiveAutoMerges, v as markMerged, x as scheduleAutoMergeWithResult, y as requeueToPending } from "./merge-sync-CaLRt2cB.js";
34
+ import { C as findSpecByIssue, O as writeSpec, T as init_specs, a as findWorkspaceDraftPlan, b as init_types$1, k as writeSpecForIssue, m as readWorkspacePlanSync, o as init_io, p as readWorkspacePlan, r as findPlan, s as isPlanningComplete, u as readPlan, x as subItemsOf } from "./io-Wy8YpFeP.js";
35
+ import { C as restartCliproxy, S as readPidFile, T as stopCliproxy, b as isCliproxyInstalled, d as getCliproxyAuthDir, o as bridgeCodexAuthToCliproxy, v as init_cliproxy, w as startCliproxy, x as isCliproxyRunning, y as installCliproxy } from "./cliproxy-J-_1iIXe.js";
36
+ import { f as init_config$1, m as loadConfigSync$1, s as getDashboardApiUrlSync } from "./config-oWoKf5jO.js";
37
37
  import { n as require_auth_errors, r as require_token_error, t as require_token_util } from "./token-util-CROoF5ic.js";
38
- import { $ as updateConversationForkFallbackReason, A as isAgentConversationName, B as removeFavorite, C as getConversationByTmuxSession, D as importLegacyConversation, E as hasOtherActiveConversationOnTmuxSession, F as markConversationEnded, G as setConversationHarness, H as setClearedToConvId, I as markConversationRunning, J as setForkRequest, K as setConversationModel, M as listConversations, N as listFavoritedIds, O as incrementForkRetryCount, P as markConversationActive, Q as updateConversationDeliveryMethod, S as getConversationByName, T as getStuckForks, U as setConversationClaudeSessionId, W as setConversationEffort, X as unarchiveConversation, Y as setImportedConversationLinks, Z as updateConversationCost, _ as canRefineTitle, b as getConversationByClaudeSessionId, et as updateConversationTitle, g as backfillConversationModel, gt as getDiscoveredSessionBySessionId, h as archiveConversation, j as listArchivedConversationsWithEnrichment, k as init_conversations, nt as updateLastAttached, q as setFavorite, rt as updateSpawnError, tt as updateForkStatus, v as canReplaceTitle, w as getConversationLedgerCosts, x as getConversationById, y as createConversation, yt as init_discovered_sessions, z as recordConversationHandoff } from "./conversations-Dwr1jHrO.js";
39
- import { _ as init_codex_conversation_parser, a as contextUsageFromParseResult, c as parseEntireConversation, d as init_pi_conversation_parser, f as isPiSessionFile, g as parseOhmypiConversationMessages, h as isOhmypiSessionFile, i as computeContextUsage, l as parseFromLastCompactBoundary, m as init_ohmypi_conversation_parser, n as gateSnapshotEmission, o as summarizeConversationActivity, p as parsePiConversationMessages, r as watchConversation, s as parseConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-BwKUeEvn.js";
40
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-EZfSwuqq.js";
41
- import { i as init_settings, r as getMemoryWorkerConcurrency, t as areMemoryObservationsEnabled } from "./settings-DZq_bi-B.js";
42
- import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers$1 } from "./providers-uPI9uU7Q.js";
43
- import { a as init_launcher_generator, i as generateLauncherScriptSync, n as init_state_home, r as isStateMigrated } from "./state-home-XkLSsJCD.js";
44
- import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-BpwIcIR7.js";
45
- import { a as globalContextFile$1, f as resolveProjectContextFile, h as workspaceContextFile, l as piGlobalContextFile, n as codexGlobalContextFile, o as init_layers, p as resolveWorkspaceContextFile, r as ensureProjectLayer } from "./layers-CO_VLcSv.js";
46
- import { l as init_codex, s as findRolloutPath } from "./codex-B3J1TXo7.js";
47
- import { C as setMergeTrainEnabled, S as setFlywheelRequireUatBeforeMerge, b as setFlywheelAutoPickupBacklog, c as isCloisterSpawnsPausedSync, d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused$1, g as setCloisterSpawnsPausedSync, h as setBootReconciliationDecision, m as isMergeTrainEnabled, o as getSetting, p as isFlywheelRequireUatBeforeMerge, r as getBootReconciliationState, s as init_control_settings, u as isDeaconGloballyPausedSync, v as setDeaconGloballyPausedSync, w as setSetting } from "./control-settings-CYv732Gs.js";
48
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-TzYAiXzZ.js";
49
- import { i as checkPrdGateSync, t as init_pan_dir } from "./pan-dir-Cn3NUnxU.js";
50
- import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-WDGwa1vV.js";
51
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-BACUsKOx.js";
52
- import { $t as scanPendingInputsPromise, B as applyIssueBlocksMainLabel, Bt as formatUptime, F as setAgentStatusChangedNotifier, G as applyIssueVetoedLabel, Gt as isSmeeConfiguredSync, H as applyIssueParkedLabel, Ht as getCurrentDockerStats, I as setAgentStoppedNotifier, J as removeIssueParkedLabel, Jt as countPendingAskUserQuestionsForAgent, K as removeIssueBlocksMainLabel, Kt as startSmeeProcessSync, L as setMergeReadyNotifier, Lt as getRuntimeForAgent, O as loadConfig, Q as createInFlightGuard, U as applyIssueReadyLabel, V as applyIssueObjectionLabel, Vt as getContainerHistory, W as applyIssueReleasedLabel, Wt as getSystemHealthSnapshot, X as removeIssueReleasedLabel, Y as removeIssueReadyLabel, Yt as getAgentJsonlMtime, Z as removeIssueVetoedLabel, _t as withConcurrencyLimit, at as listBootReconciliationCandidates, en as detectAwaitingInputForAgent, it as isBootReconciliationCandidate, k as loadState, n as assessDeaconPatrolFreshness, ot as startBootReconciliation, q as removeIssueObjectionLabel, qt as computeAgentEnrichment, rn as parseCodexApprovalPrompt, t as applyBootReconciliationDecision, tn as detectAwaitingInputFromPaneSync, x as getDeaconLogs, zt as getResourceStacks } from "./deacon-f0yvsG5S.js";
53
- import { i as CostThresholdError, l as embed, s as parseRelativeTime } from "./scanner-6OmIn5XE.js";
54
- import { n as deduplicateEventsSync, o as readEventsSync, s as tailEventsSync } from "./events-BbClwoM-.js";
55
- import { n as recordBackgroundAiCost, t as init_cost } from "./cost-DNIyZH1X.js";
56
- import { S as writeLatestFlywheelStatus, _ as readCurrentLatestFlywheelStatus, b as subscribeLatestFlywheelStatus, f as getFlywheelRunDetail, h as listFlywheelRuns, l as buildClassifyLookups, m as isFlywheelRunId, y as resolveLiveFlywheelRunId } from "./flywheel-B4KN9BmW.js";
57
- import { C as hasDashboardInternalToken, D as getWorkspacePathForIssue, E as rejectUnsafeDashboardMutationRequest, S as dashboardSessionCookieHeader, T as rejectUnauthorizedDashboardSessionMintRequest, _ as syncCacheSync, b as resolveIssueHeadlineCost, d as reconcile, f as reconcilePiTranscripts, g as rebuildCacheSync, h as getCostsForIssueSync, l as resumeQueuedMerges, m as migrateAllSessionsSync, p as reclassifyUnknownCostEventsSync, t as workspacesRouteLayer, u as syncWalFromAllProjects, v as processPendingFeedbackDeliveries, w as rejectUnauthorizedDashboardRequest, x as dashboardCsrfToken, y as getCachedRunningAgents } from "./workspaces-DpMiZ9BP.js";
58
- import { l as detectPlatform, u as init_platform } from "./workspace-manager-BE3OznLY.js";
59
- import { O as init_specialists, b as getReviewerSessionName } from "./specialists-BUKBHtmQ.js";
60
- import { t as withBdMutex } from "./bd-mutex-CE6P_MlD.js";
61
- import { c as findPrdAtStatusSync, l as init_prd_locations } from "./archive-planning-DVUXlRBs.js";
62
- import { a as getShadowState, s as init_shadow_state } from "./shadow-state-3L0eHQNE.js";
63
- import { T as verifyAppCanMerge, d as getPullRequestState, f as init_github_app, l as getMergeBackendStatus, p as isGitHubAppConfigured } from "./github-app-BIU8a93o.js";
64
- import { n as init_issue_closed, t as clearIssueClosedCache } from "./issue-closed-0Zx72zXf.js";
65
- import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-Dxg8qM8i.js";
66
- import { a as init_boot_gates, i as formatBootGateState, o as resolveBootGates } from "./no-resume-mode-CKy2bwZL.js";
67
- import { c as computeCohort, d as computeStats, f as computeWaves, h as selectNeedsPlanning, l as computeEpicGroups, m as normalizeGate, s as classifyIssue, u as computeLanes } from "./pickup-DRn-XNXS.js";
68
- import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-CxiPMMKM.js";
69
- import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-BCgODi1j.js";
70
- import { i as resolveAutoSpawnOnFinalize, o as spawnPlanningSession } from "./spawn-planning-session-BZfVvIi3.js";
71
- import { d as killRemoteAgent, m as loadRemoteAgentState, o as getRemoteAgentOutput, r as checkRemoteSpendCap, s as init_remote_agents, v as sendToRemoteAgent, y as spawnRemoteAgent } from "./remote-agents-DNdP4sew.js";
72
- import { r as spawnInspectAgent } from "./inspect-agent-CSYyFWqP.js";
73
- import { n as init_github_pr_lookup, r as lookupPullRequestNumberForBranch, t as githubPrLookupSource } from "./github-pr-lookup-CPri6JR1.js";
74
- import { a as init_pull_requests, c as getIssuePrTabCacheGeneration, i as fetchIssuePullRequestDiff, l as init_pr_tab_cache, n as fetchIssuePullRequest, o as bumpIssuePrTabCacheGeneration, r as fetchIssuePullRequestDetails, s as getCachedIssuePrTabResponse, t as fetchIssueCheckRuns, u as setCachedIssuePrTabResponse } from "./pull-requests-C3csHJsc.js";
75
- import { t as enrichReviewStatus } from "./review-status-enrichment-C6sr9wOI.js";
76
- import { i as runMemoryFtsTransaction, n as init_fts_db, r as runMemoryFtsStatement, t as closeMemoryFtsDatabases } from "./fts-db-dnCj-PD3.js";
77
- import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-DgWlrSBc.js";
78
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CEUflKr2.js";
79
- import { C as init_git_activity, w as listGitOperationsSync } from "./merge-agent-Rv0bNQNU.js";
80
- import { t as getAgentCommandSync } from "./settings-ChvoXExM.js";
81
- import { n as init_review_agent, r as isExtendedReviewEnabled } from "./review-agent-C-A6IgXc.js";
82
- import { r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-Dl6Hn0zz.js";
83
- import { n as init_claude_settings_overlay, t as detectProviderEnvConflicts } from "./claude-settings-overlay-DnraWcz6.js";
84
- import { a as init_query_expansion, i as clearQueryExpansionCache, n as init_injection, o as buildMatchQuery, r as injectPromptTimeMemory, s as init_search } from "./injection-D6L7D_w0.js";
85
- import { _ as init_transcript_adapter, a as generateFallbackSummary, c as handoffPreconditionFallbackReason, d as prependFallbackFocus, f as requestHandoffFromAgent, g as getTranscriptAdapter, i as copySessionFromCompactBoundary, l as init_summary_fork, o as generateSummaryForFork, p as reserveSummaryForkSession, r as authorHandoffExternal, s as handoffFailureReason, u as logHandoffFallback } from "./summary-fork-BWa0ECGL.js";
86
- import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-DKXvmX50.js";
87
- import { a as init_render, d as validateTemplate, i as hasManagedRegion, l as init_harness, o as userContentOutsideRegion, t as init_context_layers, u as renderForHarness } from "./context-layers-BHEjT8Cn.js";
88
- import { r as parseArtifactRef } from "./forge-BnTExkbK.js";
89
- import { t as getMergeBlockersPayload } from "./merge-blockers-BqYUtLBd.js";
90
- import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent--xPlSfR2.js";
91
- import "./supervisor-owMkHcx8.js";
92
- import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-DDd-0doa.js";
38
+ import { $ as updateConversationForkFallbackReason, A as isAgentConversationName, B as removeFavorite, C as getConversationByTmuxSession, D as importLegacyConversation, E as hasOtherActiveConversationOnTmuxSession, F as markConversationEnded, G as setConversationHarness, H as setClearedToConvId, I as markConversationRunning, J as setForkRequest, K as setConversationModel, M as listConversations, N as listFavoritedIds, O as incrementForkRetryCount, P as markConversationActive, Q as updateConversationDeliveryMethod, S as getConversationByName, T as getStuckForks, U as setConversationClaudeSessionId, W as setConversationEffort, X as unarchiveConversation, Y as setImportedConversationLinks, Z as updateConversationCost, _ as canRefineTitle, b as getConversationByClaudeSessionId, et as updateConversationTitle, g as backfillConversationModel, gt as getDiscoveredSessionBySessionId, h as archiveConversation, j as listArchivedConversationsWithEnrichment, k as init_conversations, nt as updateLastAttached, q as setFavorite, rt as updateSpawnError, tt as updateForkStatus, v as canReplaceTitle, w as getConversationLedgerCosts, x as getConversationById, y as createConversation, yt as init_discovered_sessions, z as recordConversationHandoff } from "./conversations-DL_BAWVk.js";
39
+ import { _ as init_codex_conversation_parser, a as contextUsageFromParseResult, c as parseEntireConversation, d as init_pi_conversation_parser, f as isPiSessionFile, g as parseOhmypiConversationMessages, h as isOhmypiSessionFile, i as computeContextUsage, l as parseFromLastCompactBoundary, m as init_ohmypi_conversation_parser, n as gateSnapshotEmission, o as summarizeConversationActivity, p as parsePiConversationMessages, r as watchConversation, s as parseConversationMessages, t as init_conversation_service, v as parseCodexConversationMessages } from "./conversation-service-DvG8vZSV.js";
40
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-CYY2_Eeh.js";
41
+ import { i as init_settings, r as getMemoryWorkerConcurrency, t as areMemoryObservationsEnabled } from "./settings-D2wt4nku.js";
42
+ import { i as updateMemoryHealth, n as extractWithProviderPolicy, r as init_health, t as init_providers$1 } from "./providers-4-xOzHQu.js";
43
+ import { a as init_launcher_generator, i as generateLauncherScriptSync, n as init_state_home, r as isStateMigrated } from "./state-home-Bgj7i-C7.js";
44
+ import { a as init_claude_permissions, o as resolvePermissionModeSync, r as getClaudePermissionFlagsStringSync, t as BYPASS_PERMISSION_MODE } from "./claude-permissions-DrRAs_0F.js";
45
+ import { a as globalContextFile$1, f as resolveProjectContextFile, h as workspaceContextFile, l as piGlobalContextFile, n as codexGlobalContextFile, o as init_layers, p as resolveWorkspaceContextFile, r as ensureProjectLayer } from "./layers-vdvlpFki.js";
46
+ import { l as init_codex, s as findRolloutPath } from "./codex-DcInrhok.js";
47
+ import { C as setMergeTrainEnabled, S as setFlywheelRequireUatBeforeMerge, b as setFlywheelAutoPickupBacklog, c as isCloisterSpawnsPausedSync, d as isFlywheelAutoPickupBacklog, f as isFlywheelGloballyPaused$1, g as setCloisterSpawnsPausedSync, h as setBootReconciliationDecision, m as isMergeTrainEnabled, o as getSetting, p as isFlywheelRequireUatBeforeMerge, r as getBootReconciliationState, s as init_control_settings, u as isDeaconGloballyPausedSync, v as setDeaconGloballyPausedSync, w as setSetting } from "./control-settings-BMqUkXmR.js";
48
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
49
+ import { i as checkPrdGateSync, t as init_pan_dir } from "./pan-dir-BgBeeZDX.js";
50
+ import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-DSrv9xGh.js";
51
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-OBgamRql.js";
52
+ import { $t as scanPendingInputsPromise, B as applyIssueBlocksMainLabel, Bt as formatUptime, F as setAgentStatusChangedNotifier, G as applyIssueVetoedLabel, Gt as isSmeeConfiguredSync, H as applyIssueParkedLabel, Ht as getCurrentDockerStats, I as setAgentStoppedNotifier, J as removeIssueParkedLabel, Jt as countPendingAskUserQuestionsForAgent, K as removeIssueBlocksMainLabel, Kt as startSmeeProcessSync, L as setMergeReadyNotifier, Lt as getRuntimeForAgent, O as loadConfig, Q as createInFlightGuard, U as applyIssueReadyLabel, V as applyIssueObjectionLabel, Vt as getContainerHistory, W as applyIssueReleasedLabel, Wt as getSystemHealthSnapshot, X as removeIssueReleasedLabel, Y as removeIssueReadyLabel, Yt as getAgentJsonlMtime, Z as removeIssueVetoedLabel, _t as withConcurrencyLimit, at as listBootReconciliationCandidates, en as detectAwaitingInputForAgent, it as isBootReconciliationCandidate, k as loadState, n as assessDeaconPatrolFreshness, ot as startBootReconciliation, q as removeIssueObjectionLabel, qt as computeAgentEnrichment, rn as parseCodexApprovalPrompt, t as applyBootReconciliationDecision, tn as detectAwaitingInputFromPaneSync, x as getDeaconLogs, zt as getResourceStacks } from "./deacon-j3qSZ7--.js";
53
+ import { i as CostThresholdError, l as embed, s as parseRelativeTime } from "./scanner-CUGpdp4i.js";
54
+ import { c as tailEventsSync, n as deduplicateEventsSync, o as readEventsSync } from "./events-DGWZzye2.js";
55
+ import { n as recordBackgroundAiCost, t as init_cost } from "./cost-DaOG8sUB.js";
56
+ import { S as writeLatestFlywheelStatus, _ as readCurrentLatestFlywheelStatus, b as subscribeLatestFlywheelStatus, f as getFlywheelRunDetail, h as listFlywheelRuns, l as buildClassifyLookups, m as isFlywheelRunId, y as resolveLiveFlywheelRunId } from "./flywheel-ClMjGW_u.js";
57
+ import { C as hasDashboardInternalToken, D as getWorkspacePathForIssue, E as rejectUnsafeDashboardMutationRequest, S as dashboardSessionCookieHeader, T as rejectUnauthorizedDashboardSessionMintRequest, _ as syncCacheSync, b as resolveIssueHeadlineCost, d as reconcile, f as reconcilePiTranscripts, g as rebuildCacheSync, h as getCostsForIssueSync, l as resumeQueuedMerges, m as migrateAllSessionsSync, p as reclassifyUnknownCostEventsSync, t as workspacesRouteLayer, u as syncWalFromAllProjects, v as processPendingFeedbackDeliveries, w as rejectUnauthorizedDashboardRequest, x as dashboardCsrfToken, y as getCachedRunningAgents } from "./workspaces-CRU9_vRn.js";
58
+ import { l as detectPlatform, u as init_platform } from "./workspace-manager-CEWK-OXd.js";
59
+ import { O as init_specialists, b as getReviewerSessionName } from "./specialists-BYi0k8CZ.js";
60
+ import { t as withBdMutex } from "./bd-mutex-BItGvLQ8.js";
61
+ import { c as findPrdAtStatusSync, l as init_prd_locations } from "./archive-planning-zTvWWHG_.js";
62
+ import { a as getShadowState, s as init_shadow_state } from "./shadow-state-DTC7AMHc.js";
63
+ import { T as verifyAppCanMerge, d as getPullRequestState, f as init_github_app, l as getMergeBackendStatus, p as isGitHubAppConfigured } from "./github-app-FMXgo3vK.js";
64
+ import { n as init_issue_closed, t as clearIssueClosedCache } from "./issue-closed-BO84g03t.js";
65
+ import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-DMaO0XXa.js";
66
+ import { a as init_boot_gates, i as formatBootGateState, o as resolveBootGates } from "./no-resume-mode-yrPEQ_pC.js";
67
+ import { c as computeCohort, d as computeStats, f as computeWaves, h as selectNeedsPlanning, l as computeEpicGroups, m as normalizeGate, s as classifyIssue, u as computeLanes } from "./pickup-KLRUhThD.js";
68
+ import { n as parseSequenceMd, r as writeSequenceMd, t as init_sequence_io } from "./sequence-io-B2GmilSI.js";
69
+ import { a as loadWorkspaceMetadataSync } from "./workspace-metadata-1eu1RvAT.js";
70
+ import { i as resolveAutoSpawnOnFinalize, o as spawnPlanningSession } from "./spawn-planning-session-BmJWHSCu.js";
71
+ import { d as killRemoteAgent, m as loadRemoteAgentState, o as getRemoteAgentOutput, r as checkRemoteSpendCap, s as init_remote_agents, v as sendToRemoteAgent, y as spawnRemoteAgent } from "./remote-agents-CmbIKw7E.js";
72
+ import { r as spawnInspectAgent } from "./inspect-agent-BKKc0XnB.js";
73
+ import { n as init_github_pr_lookup, r as lookupPullRequestNumberForBranch, t as githubPrLookupSource } from "./github-pr-lookup-t8X8R0c0.js";
74
+ import { a as init_pull_requests, c as getIssuePrTabCacheGeneration, i as fetchIssuePullRequestDiff, l as init_pr_tab_cache, n as fetchIssuePullRequest, o as bumpIssuePrTabCacheGeneration, r as fetchIssuePullRequestDetails, s as getCachedIssuePrTabResponse, t as fetchIssueCheckRuns, u as setCachedIssuePrTabResponse } from "./pull-requests-CH4iBFLl.js";
75
+ import { t as enrichReviewStatus } from "./review-status-enrichment-CGlcApSn.js";
76
+ import { i as runMemoryFtsTransaction, n as init_fts_db, r as runMemoryFtsStatement, t as closeMemoryFtsDatabases } from "./fts-db-DPtxOAjp.js";
77
+ import { c as init_pending, l as maybeTriggerStatusRollup, o as readRecentObservations, r as init_rollup, u as writePendingTurn } from "./rollup-BJE-Vc7H.js";
78
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CJW_P4On.js";
79
+ import { C as init_git_activity, w as listGitOperationsSync } from "./merge-agent-BcgAYStl.js";
80
+ import { t as getAgentCommandSync } from "./settings-CBrei_kx.js";
81
+ import { n as isExtendedReviewEnabled, t as init_review_agent } from "./review-agent-phzqNqIs.js";
82
+ import { r as isRemoteAvailable, t as createFlyProviderFromConfig } from "./remote-TN0cV8k-.js";
83
+ import { n as init_claude_settings_overlay, t as detectProviderEnvConflicts } from "./claude-settings-overlay-BSeS7Ki3.js";
84
+ import { a as init_query_expansion, i as clearQueryExpansionCache, n as init_injection, o as buildMatchQuery, r as injectPromptTimeMemory, s as init_search } from "./injection-CszhePD2.js";
85
+ import { _ as init_transcript_adapter, a as generateFallbackSummary, c as handoffPreconditionFallbackReason, d as prependFallbackFocus, f as requestHandoffFromAgent, g as getTranscriptAdapter, i as copySessionFromCompactBoundary, l as init_summary_fork, o as generateSummaryForFork, p as reserveSummaryForkSession, r as authorHandoffExternal, s as handoffFailureReason, u as logHandoffFallback } from "./summary-fork-EjvOkEPl.js";
86
+ import { a as init_conversation_compaction, c as shouldInterceptManualCompact, n as compactConversationNative, o as isCompacting } from "./conversation-compaction-C5o_eKEm.js";
87
+ import { a as init_render, d as validateTemplate, i as hasManagedRegion, l as init_harness, o as userContentOutsideRegion, t as init_context_layers, u as renderForHarness } from "./context-layers-CTjQwcEQ.js";
88
+ import { r as parseArtifactRef } from "./forge-BixzckB0.js";
89
+ import { t as getMergeBlockersPayload } from "./merge-blockers-DwdQNsYD.js";
90
+ import { a as spawnSequencerAgent, i as init_sequencer_agent, n as clearFinishedSequencerRun, r as getSequencerRunStatus, t as SEQUENCER_AGENT_ID } from "./sequencer-agent-D8pW2aU_.js";
91
+ import "./supervisor-0oXvLwyC.js";
92
+ import { i as listTranscriptCheckpoints, r as getTranscriptCheckpoint$1 } from "./checkpoints-BbfH1EIy.js";
93
93
  import { createRequire } from "node:module";
94
94
  import { Cause, Context, Data, Duration, Effect, Exit, Fiber, FileSystem, Layer, Option, Path, Queue, Result, Schedule, Schema, Stream } from "effect";
95
95
  import { createReadStream, createWriteStream, existsSync, fstatSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
@@ -656,7 +656,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
656
656
  const beadsDir = join$1(workspacePath, ".beads");
657
657
  const projectBeadsDir = join$1(workspacePath, "..", "..", ".beads");
658
658
  if (!(existsSync$1(beadsDir) || existsSync$1(projectBeadsDir))) throw new BeadsNotInitialized({ workspace: workspacePath });
659
- const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-KaEsWZ8D.js");
659
+ const { getAgentState, spawnAgent, normalizeAgentId } = await import("./agents-BIggLvi_.js");
660
660
  const normalizedId = normalizeAgentId(issueId);
661
661
  if ((await Effect.runPromise(getAgentState(normalizedId)))?.status === "running") throw new AgentAlreadyRunning({ id: issueId });
662
662
  return {
@@ -687,7 +687,7 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
687
687
  const { workspacePath, projectPath, issue } = opts;
688
688
  if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
689
689
  const sessionName = opts.sessionName ?? `planning-${issueId.toLowerCase()}`;
690
- const { spawnPlanningSession } = await import("./spawn-planning-session-BBUzeHJQ.js");
690
+ const { spawnPlanningSession } = await import("./spawn-planning-session-D15KbPOy.js");
691
691
  const result = await spawnPlanningSession({
692
692
  issue: {
693
693
  id: issue.id,
@@ -720,14 +720,14 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
720
720
  }),
721
721
  kill: (agentId) => Effect.tryPromise({
722
722
  try: async () => {
723
- const { stopAgent } = await import("./agents-KaEsWZ8D.js");
723
+ const { stopAgent } = await import("./agents-BIggLvi_.js");
724
724
  await Effect.runPromise(stopAgent(agentId));
725
725
  },
726
726
  catch: () => void 0
727
727
  }).pipe(Effect.ignore),
728
728
  message: (agentId, msg) => Effect.tryPromise({
729
729
  try: async () => {
730
- const { messageAgent } = await import("./agents-KaEsWZ8D.js");
730
+ const { messageAgent } = await import("./agents-BIggLvi_.js");
731
731
  await messageAgent(agentId, msg);
732
732
  },
733
733
  catch: (err) => new AgentStartError({
@@ -738,8 +738,8 @@ const AgentSpawnerLive = Layer.effect(AgentSpawner, Effect.sync(() => ({
738
738
  }),
739
739
  deepWipe: (issueId, opts) => Effect.tryPromise({
740
740
  try: async () => {
741
- const { deepWipe } = await import("./workflows-Plo_VxeO.js");
742
- const { resolveProjectFromIssueSync } = await import("./projects-CKTA6Klk.js");
741
+ const { deepWipe } = await import("./workflows-Cz8OtiB4.js");
742
+ const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
743
743
  const project = resolveProjectFromIssueSync(issueId);
744
744
  const projectPath = project?.projectPath ?? process.cwd();
745
745
  await Effect.runPromise(deepWipe({
@@ -795,8 +795,8 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
795
795
  const { workspacePath, branch } = getWorkspacePath(issueId);
796
796
  const issueLower = issueId.toLowerCase();
797
797
  if (existsSync$1(workspacePath)) return workspacePath;
798
- const { createWorkspace } = await import("./workspace-manager-_6zbrhNF.js");
799
- const { loadProjectsConfigSync } = await import("./projects-CKTA6Klk.js");
798
+ const { createWorkspace } = await import("./workspace-manager-B3PqQQSM.js");
799
+ const { loadProjectsConfigSync } = await import("./projects-BNmVxnNt.js");
800
800
  const { projects } = loadProjectsConfigSync();
801
801
  const project = resolveProjectFromIssueSync(issueId);
802
802
  if (!project) throw new WorkspaceCreateError({
@@ -831,7 +831,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
831
831
  const { workspacePath } = getWorkspacePath(issueId);
832
832
  const issueLower = issueId.toLowerCase();
833
833
  if (!existsSync$1(workspacePath)) throw new WorkspaceNotFound({ id: issueId });
834
- const { removeWorkspace } = await import("./workspace-manager-_6zbrhNF.js");
834
+ const { removeWorkspace } = await import("./workspace-manager-B3PqQQSM.js");
835
835
  const project = resolveProjectFromIssueSync(issueId);
836
836
  if (!project) throw new WorkspaceCreateError({
837
837
  id: issueId,
@@ -862,7 +862,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
862
862
  try: async () => {
863
863
  const { workspacePath } = getWorkspacePath(issueId);
864
864
  const issueLower = issueId.toLowerCase();
865
- const { stopWorkspaceDocker } = await import("./workspace-manager-_6zbrhNF.js");
865
+ const { stopWorkspaceDocker } = await import("./workspace-manager-B3PqQQSM.js");
866
866
  await Effect.runPromise(stopWorkspaceDocker(workspacePath, issueLower));
867
867
  },
868
868
  catch: () => void 0
@@ -931,7 +931,7 @@ const WorkspaceServiceLive = Layer.effect(WorkspaceService, Effect.sync(() => {
931
931
  join$1(workspacePath, ".devcontainer", "docker-compose.devcontainer.yml")
932
932
  ];
933
933
  if (!composePaths.find((p) => existsSync$1(p))) {
934
- const { ensureDevcontainerSync } = await import("./ensure-devcontainer-Dmdw4BxF.js");
934
+ const { ensureDevcontainerSync } = await import("./ensure-devcontainer-BCB6fHp9.js");
935
935
  const ensure = ensureDevcontainerSync({
936
936
  workspacePath,
937
937
  issueId
@@ -15949,7 +15949,7 @@ var require_get_vercel_oidc_token = /* @__PURE__ */ __commonJSMin(((exports, mod
15949
15949
  err = error;
15950
15950
  }
15951
15951
  try {
15952
- const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([await import("./token-util-xNaV-00f.js").then((m) => /* @__PURE__ */ __toESM(m.default)), await import("./token-CiS3w6Ma.js").then((m) => /* @__PURE__ */ __toESM(m.default))]);
15952
+ const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([await import("./token-util-xNaV-00f.js").then((m) => /* @__PURE__ */ __toESM(m.default)), await import("./token-_qujO3JZ.js").then((m) => /* @__PURE__ */ __toESM(m.default))]);
15953
15953
  if (!token || isExpired(getTokenPayload(token), options?.expirationBufferMs)) {
15954
15954
  await refreshToken(options);
15955
15955
  token = getVercelOidcTokenSync();
@@ -28266,7 +28266,7 @@ var GoogleCloudTranscription = class {
28266
28266
  }
28267
28267
  async start(apiKey, model) {
28268
28268
  try {
28269
- const { SpeechClient } = await import("./src-CNLON0co.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1)).then((module) => module.v1p1beta1 ?? module.v1);
28269
+ const { SpeechClient } = await import("./src-BswtmojL.js").then((m) => /* @__PURE__ */ __toESM(m.default, 1)).then((module) => module.v1p1beta1 ?? module.v1);
28270
28270
  if (this.closed) return;
28271
28271
  const stream = new SpeechClient({ apiKey }).streamingRecognize({
28272
28272
  config: {
@@ -30499,7 +30499,7 @@ function isDiscoverableAgentSession(sessionName) {
30499
30499
  async function loadTrackerIssues() {
30500
30500
  const map = /* @__PURE__ */ new Map();
30501
30501
  try {
30502
- const { getSharedIssueService } = await import("./issue-service-singleton-DNh4RRI7.js");
30502
+ const { getSharedIssueService } = await import("./issue-service-singleton-Bnqv1uaa.js");
30503
30503
  const issues = (await getSharedIssueService()).getIssues();
30504
30504
  for (const issue of issues) if (issue.identifier) map.set(issue.identifier.toUpperCase(), issue);
30505
30505
  } catch {
@@ -30698,7 +30698,7 @@ async function computeResourceAllocatedIssues() {
30698
30698
  if (!issue.resourceDetails.tmuxSessions.includes(sessionName)) issue.resourceDetails.tmuxSessions.push(sessionName);
30699
30699
  }
30700
30700
  try {
30701
- const { listActiveRemoteAgentStates } = await import("./remote-agents-OB4zwVHz.js");
30701
+ const { listActiveRemoteAgentStates } = await import("./remote-agents-DNuaAgU6.js");
30702
30702
  for (const remoteState of listActiveRemoteAgentStates()) {
30703
30703
  const issue = ensureIssue(remoteState.issueId);
30704
30704
  if (!issue) continue;
@@ -31267,7 +31267,7 @@ async function completePlanningArtifacts(options) {
31267
31267
  if (workspaceIssueId && workspaceIssueId.toLowerCase() !== issueLower) throw new Error(`Workspace vBRIEF is for ${workspaceIssueId.toUpperCase()}, not ${upperIssueId}`);
31268
31268
  assertPlanQuality(workspaceDoc);
31269
31269
  const createBeads = options.createBeads ?? (async (path) => {
31270
- const mod = await import("./beads-B43pgBIy.js");
31270
+ const mod = await import("./beads-AmCXEv_E.js");
31271
31271
  return await Effect.runPromise(mod.createBeadsFromVBrief(path));
31272
31272
  });
31273
31273
  emitCompletePlanningPhase(upperIssueId, "specWrite", "start", "writing proposed vBRIEF spec", { projectPath });
@@ -31946,7 +31946,7 @@ async function closeIssuePullRequest(issueId, reason = "Canceled via Overdeck")
31946
31946
  timeout: 15e3
31947
31947
  });
31948
31948
  try {
31949
- const { setReviewStatusSync } = await import("./review-status-mo3tyc8L.js");
31949
+ const { setReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
31950
31950
  setReviewStatusSync(issueId.toUpperCase(), { prUrl: void 0 });
31951
31951
  } catch {}
31952
31952
  return [`Closed PR #${prNumber} on ${githubCheck.owner}/${githubCheck.repo}`];
@@ -32000,7 +32000,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
32000
32000
  const { ctx, projectConfig } = buildLifecycleContext(id, getIssueDataService$8().getIssueSource(id) ?? void 0);
32001
32001
  const deleteWorkspace = opts.deleteWorkspace ?? true;
32002
32002
  cleanupLog.push(...await closeIssuePullRequest(id, mode === "cancel" ? "Canceled via Overdeck" : "Reset to Todo via Overdeck"));
32003
- const { resetToTodo, cancelIssueWorkflow } = await import("./lifecycle-B_NFvTj9.js");
32003
+ const { resetToTodo, cancelIssueWorkflow } = await import("./lifecycle-CGKm7doE.js");
32004
32004
  const workflow = mode === "cancel" ? cancelIssueWorkflow : resetToTodo;
32005
32005
  const result = await Effect.runPromise(workflow(ctx, {
32006
32006
  deleteWorkspace,
@@ -32015,7 +32015,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
32015
32015
  }));
32016
32016
  cleanupLog.push(...result.steps.flatMap((step) => step.details || [step.error].filter(Boolean)));
32017
32017
  if (mode === "cancel") try {
32018
- const { transitionVBriefOnMain } = await import("./lifecycle-io-D0FftBLy.js");
32018
+ const { transitionVBriefOnMain } = await import("./lifecycle-io-CdqPkCyk.js");
32019
32019
  const tx = await Effect.runPromise(transitionVBriefOnMain(ctx.projectPath, id, "cancelled", "cancelled", `scope: cancel ${id.toUpperCase()} vBRIEF`));
32020
32020
  if (tx.moved) cleanupLog.push(`vBRIEF moved ${tx.fromDir} → cancelled`);
32021
32021
  if (tx.committed) cleanupLog.push(`Committed vBRIEF cancellation on main`);
@@ -32023,8 +32023,8 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
32023
32023
  cleanupLog.push(`vBRIEF cancel transition failed (non-fatal): ${err?.message ?? err}`);
32024
32024
  }
32025
32025
  try {
32026
- const { killAllReviewerSessions } = await import("./review-agent-BRSSFv7e.js");
32027
- const { resolveProjectFromIssueSync } = await import("./projects-CKTA6Klk.js");
32026
+ const { killAllReviewerSessions } = await import("./review-agent-DgySDb-G.js");
32027
+ const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
32028
32028
  const projectKey = resolveProjectFromIssueSync(id)?.projectKey;
32029
32029
  if (projectKey) {
32030
32030
  const { killed } = await Effect.runPromise(killAllReviewerSessions(projectKey, id.toUpperCase()));
@@ -32038,7 +32038,7 @@ async function runDestructiveIssueLifecycle(id, mode, opts = {}) {
32038
32038
  cleanupLog.push("Cleared review status");
32039
32039
  } catch {}
32040
32040
  try {
32041
- const { resetPostMergeState } = await import("./merge-agent-DRXwKxmb.js");
32041
+ const { resetPostMergeState } = await import("./merge-agent-Dh8Y9PDO.js");
32042
32042
  resetPostMergeState(id);
32043
32043
  resetPostMergeState(id.toUpperCase());
32044
32044
  cleanupLog.push("Cleared merge state");
@@ -32058,7 +32058,7 @@ function closeIssueTransition(options) {
32058
32058
  const { issueId, body, eventStore } = options;
32059
32059
  const { reason } = body;
32060
32060
  const projectPath = getProjectPath$3(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]);
32061
- const { close: closeWorkflow } = yield* Effect.promise(() => import("./lifecycle-B_NFvTj9.js"));
32061
+ const { close: closeWorkflow } = yield* Effect.promise(() => import("./lifecycle-CGKm7doE.js"));
32062
32062
  const githubCheck = isGitHubIssue$4(issueId);
32063
32063
  const issueDataService = getIssueDataService$8();
32064
32064
  const issueSource = issueDataService.getIssueSource(issueId);
@@ -32325,7 +32325,7 @@ function reopenIssueTransition(options) {
32325
32325
  else clearReviewStatus(id.toUpperCase());
32326
32326
  } catch {}
32327
32327
  try {
32328
- const { resetPostMergeState } = await import("./merge-agent-DRXwKxmb.js");
32328
+ const { resetPostMergeState } = await import("./merge-agent-Dh8Y9PDO.js");
32329
32329
  resetPostMergeState(id);
32330
32330
  resetPostMergeState(id.toUpperCase());
32331
32331
  } catch {}
@@ -32345,7 +32345,7 @@ function reopenIssueTransition(options) {
32345
32345
  const projectPath = (teamPrefix ? findProjectByTeamSync(teamPrefix) : null)?.path || "";
32346
32346
  if (projectPath) {
32347
32347
  const workspacePath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
32348
- const { createBeadsFromVBrief } = await import("./beads-B43pgBIy.js");
32348
+ const { createBeadsFromVBrief } = await import("./beads-AmCXEv_E.js");
32349
32349
  if (existsSync$1(workspacePath) && await Effect.runPromise(findPlan(workspacePath))) try {
32350
32350
  const { stdout: bdCheck } = await Effect.runPromise(withBdMutex(() => Effect.promise(() => execFileAsync$11("bd", [
32351
32351
  "list",
@@ -32422,7 +32422,7 @@ function moveIssueStatus(options) {
32422
32422
  "done"
32423
32423
  ];
32424
32424
  if (!targetStatus || !validStatuses.includes(targetStatus)) return jsonResponse({ error: `Invalid targetStatus. Must be one of: ${validStatuses.join(", ")}` }, { status: 400 });
32425
- const { updateShadowState } = yield* Effect.promise(() => import("./shadow-state-p3YTxrJ5.js"));
32425
+ const { updateShadowState } = yield* Effect.promise(() => import("./shadow-state-BOaq8BrD.js"));
32426
32426
  const issueState = {
32427
32427
  backlog: "open",
32428
32428
  todo: "open",
@@ -32649,7 +32649,7 @@ async function copySettingsToWorkspace(id) {
32649
32649
  success: false,
32650
32650
  error: "Workspace not found"
32651
32651
  }, { status: 404 });
32652
- const { copyOverdeckSettingsToWorkspaceSync } = await import("./workspace-manager-_6zbrhNF.js");
32652
+ const { copyOverdeckSettingsToWorkspaceSync } = await import("./workspace-manager-B3PqQQSM.js");
32653
32653
  const result = copyOverdeckSettingsToWorkspaceSync(workspacePath);
32654
32654
  return jsonResponse({
32655
32655
  success: result.errors.length === 0 || result.copied.length > 0,
@@ -32684,7 +32684,7 @@ function generateTasksForIssue(id) {
32684
32684
  success: false,
32685
32685
  error: `No vBRIEF spec found on main for ${id} — run planning first.`
32686
32686
  }, { status: 409 });
32687
- const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-B43pgBIy.js"));
32687
+ const { createBeadsFromVBrief } = yield* Effect.promise(() => import("./beads-AmCXEv_E.js"));
32688
32688
  const result = yield* createBeadsFromVBrief(workspacePath);
32689
32689
  if (!result.success || result.created.length === 0) {
32690
32690
  const errors = result.errors.length > 0 ? result.errors : ["Beads creation produced no tasks"];
@@ -33124,7 +33124,7 @@ function restartFromPlan(options) {
33124
33124
  });
33125
33125
  const resetResult = yield* Effect.promise(async () => {
33126
33126
  try {
33127
- const { runGitResetHard } = await import("./dangerous-git-ops-Pongxg2d.js");
33127
+ const { runGitResetHard } = await import("./dangerous-git-ops-Dcw7PbYo.js");
33128
33128
  async function findPlanningCommit(grep, label) {
33129
33129
  try {
33130
33130
  const { stdout } = await execAsync$7(`git log --grep="${grep.replace(/"/g, "\\\"")}" --format=%H -1`, {
@@ -33576,7 +33576,7 @@ function closeOutIssue(id) {
33576
33576
  }
33577
33577
  const closeOutResult = yield* Effect.promise(async () => {
33578
33578
  try {
33579
- const { closeOut } = await import("./lifecycle-B_NFvTj9.js");
33579
+ const { closeOut } = await import("./lifecycle-CGKm7doE.js");
33580
33580
  return {
33581
33581
  ok: true,
33582
33582
  result: await Effect.runPromise(closeOut(ctx))
@@ -33662,7 +33662,7 @@ function bulkCloseOut(body) {
33662
33662
  const invalidIds = issueIds.filter((id) => !isValidIssueId(id));
33663
33663
  if (invalidIds.length > 0) return jsonResponse({ error: `Invalid issue ID format: ${invalidIds.join(", ")}` }, { status: 400 });
33664
33664
  const eventStore = yield* EventStoreService;
33665
- const { closeOut } = yield* Effect.promise(() => import("./lifecycle-B_NFvTj9.js"));
33665
+ const { closeOut } = yield* Effect.promise(() => import("./lifecycle-CGKm7doE.js"));
33666
33666
  const issueDataService = getIssueDataService$5();
33667
33667
  const tasks = [];
33668
33668
  const agentChecks = yield* withConcurrencyLimit(issueIds.map((id) => Effect.promise(async () => {
@@ -33858,8 +33858,8 @@ const getIssueShipLogRoute = HttpRouter.add("GET", "/api/issues/:id/ship-log", h
33858
33858
  const id = (yield* HttpRouter.params)["id"] ?? "";
33859
33859
  if (!parseIssueIdSync(id)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
33860
33860
  return yield* Effect.promise(async () => {
33861
- const { getShipLog } = await import("./ship-log-B2EEH__n.js");
33862
- const { getReviewStatusSync } = await import("./review-status-mo3tyc8L.js");
33861
+ const { getShipLog } = await import("./ship-log-CMWH3H5-.js");
33862
+ const { getReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
33863
33863
  const log = getShipLog(id);
33864
33864
  const rs = getReviewStatusSync(id);
33865
33865
  return jsonResponse({
@@ -36614,6 +36614,10 @@ function validateRoleFields(fieldPath, roleConfig, errors) {
36614
36614
  if (maxAgents !== void 0 && (typeof maxAgents !== "number" || !Number.isInteger(maxAgents) || maxAgents < 1)) errors.push(`${fieldPath}.maxAgents must be a positive integer`);
36615
36615
  const scope = roleConfig.scope;
36616
36616
  if (scope !== void 0 && scope !== "pan-only" && scope !== "all-tracked-projects") errors.push(`${fieldPath}.scope must be pan-only or all-tracked-projects`);
36617
+ const mode = roleConfig.mode;
36618
+ if (mode !== void 0 && mode !== "quick" && mode !== "full" && mode !== "none") errors.push(`${fieldPath}.mode must be quick, full, or none`);
36619
+ const reReviewScope = roleConfig.reReviewScope;
36620
+ if (reReviewScope !== void 0 && reReviewScope !== "all" && reReviewScope !== "changed" && reReviewScope !== "blockers") errors.push(`${fieldPath}.reReviewScope must be all, changed, or blockers`);
36617
36621
  }
36618
36622
  /** Resolve a role/sub-role model ref (possibly a workhorse: slot) to a concrete model id. */
36619
36623
  function resolveModelRefToId(ref, workhorses) {
@@ -38285,7 +38289,7 @@ Be specific: reference actual file names, function names, requirement text, disc
38285
38289
  const { command: cliCmd, args: cliArgs } = getAgentCommandSync(statusModelId);
38286
38290
  const modelFlag = cliArgs.length > 0 ? ` ${cliArgs.join(" ")}` : "";
38287
38291
  const promptFile = join$1(planningDir, ".status-review-prompt.tmp");
38288
- const { getProviderForModelSync, getProviderEnvSync } = await import("./providers-CapuDkKX.js");
38292
+ const { getProviderForModelSync, getProviderEnvSync } = await import("./providers-BOnRq5XK.js");
38289
38293
  let providerEnvStr = "";
38290
38294
  let providerEnv = {};
38291
38295
  const statusProvider = getProviderForModelSync(statusModelId);
@@ -38368,7 +38372,7 @@ const postMissionControlUploadRoute = HttpRouter.add("POST", "/api/command-deck/
38368
38372
  let safeName = filename.replace(/[^a-zA-Z0-9._-]/g, "-");
38369
38373
  let processedContent = content;
38370
38374
  if (safeName.endsWith(".vtt")) {
38371
- const { vttToMarkdown } = yield* Effect.promise(() => import("./vtt-parser-D-q5-8il.js"));
38375
+ const { vttToMarkdown } = yield* Effect.promise(() => import("./vtt-parser-CKc-smWM.js"));
38372
38376
  processedContent = vttToMarkdown(content);
38373
38377
  safeName = safeName.replace(/\.vtt$/, ".md");
38374
38378
  }
@@ -44182,7 +44186,7 @@ const postRallyValidateRoute = HttpRouter.add("POST", "/api/rally/validate", Eff
44182
44186
  }, { status: 400 });
44183
44187
  return yield* Effect.promise(async () => {
44184
44188
  try {
44185
- const { RallyRestApi } = await import("./rally-api-DzQryQi8.js");
44189
+ const { RallyRestApi } = await import("./rally-api-CcCdecF-.js");
44186
44190
  const api = new RallyRestApi({
44187
44191
  apiKey,
44188
44192
  server: server || "https://rally1.rallydev.com"
@@ -44510,7 +44514,7 @@ const getPlanningStatusRoute = HttpRouter.add("GET", "/api/planning/:issueId/sta
44510
44514
  const remoteState = loadRemoteAgentState(sessionName);
44511
44515
  const isRemote = !!remoteState;
44512
44516
  const vmName = remoteState?.vmName ?? "";
44513
- const { getAgentStateSync } = await import("./agents-KaEsWZ8D.js");
44517
+ const { getAgentStateSync } = await import("./agents-BIggLvi_.js");
44514
44518
  const agentStarting = getAgentStateSync(sessionName)?.status === "starting";
44515
44519
  let tmuxSessionAlive = false;
44516
44520
  if (!isRemote) try {
@@ -44653,7 +44657,7 @@ Continue the PLANNING session. Do NOT implement anything.
44653
44657
  `);
44654
44658
  const agentCwd = workspacePath;
44655
44659
  if (existsSync$1(outputFile)) await rename(outputFile, join$1(planningDir, `output-${Date.now()}.jsonl`));
44656
- const { getAgentCommandSync } = await import("./settings-D0XXIUQ0.js");
44660
+ const { getAgentCommandSync } = await import("./settings-vLoKyghx.js");
44657
44661
  let msgPlanningModel = "claude-sonnet-5";
44658
44662
  try {
44659
44663
  msgPlanningModel = resolveModel("plan", void 0, loadConfigSync().config);
@@ -44774,7 +44778,7 @@ async function getIndexStats(rootPath, isMain) {
44774
44778
  }
44775
44779
  const getTldrStatusRoute = HttpRouter.add("GET", "/api/services/tldr/status", Effect.promise(async () => {
44776
44780
  try {
44777
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-HIo0dwDB.js");
44781
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CJqGsDFh.js");
44778
44782
  const projectRoot = process.cwd();
44779
44783
  const venvPath = join$1(projectRoot, ".venv");
44780
44784
  const results = [];
@@ -44819,7 +44823,7 @@ const getTldrStatusRoute = HttpRouter.add("GET", "/api/services/tldr/status", Ef
44819
44823
  }));
44820
44824
  const postTldrStartRoute = HttpRouter.add("POST", "/api/services/tldr/start", Effect.promise(async () => {
44821
44825
  try {
44822
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-HIo0dwDB.js");
44826
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CJqGsDFh.js");
44823
44827
  const projectRoot = process.cwd();
44824
44828
  const venvPath = join$1(projectRoot, ".venv");
44825
44829
  if (!existsSync$1(venvPath)) return jsonResponse({ error: "No .venv found in project root" }, { status: 404 });
@@ -44836,7 +44840,7 @@ const postTldrStartRoute = HttpRouter.add("POST", "/api/services/tldr/start", Ef
44836
44840
  }));
44837
44841
  const postTldrStopRoute = HttpRouter.add("POST", "/api/services/tldr/stop", Effect.promise(async () => {
44838
44842
  try {
44839
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-HIo0dwDB.js");
44843
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CJqGsDFh.js");
44840
44844
  const projectRoot = process.cwd();
44841
44845
  const venvPath = join$1(projectRoot, ".venv");
44842
44846
  if (!existsSync$1(venvPath)) return jsonResponse({ error: "No .venv found in project root" }, { status: 404 });
@@ -44853,7 +44857,7 @@ const postTldrStopRoute = HttpRouter.add("POST", "/api/services/tldr/stop", Effe
44853
44857
  }));
44854
44858
  const postTldrReloadRoute = HttpRouter.add("POST", "/api/services/tldr/reload", Effect.promise(async () => {
44855
44859
  try {
44856
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-HIo0dwDB.js");
44860
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CJqGsDFh.js");
44857
44861
  const enabled = isTldrEnabledSync();
44858
44862
  const projectRoot = process.cwd();
44859
44863
  const targets = [];
@@ -44929,7 +44933,7 @@ const getVersionRoute = HttpRouter.add("GET", "/api/version", Effect.promise(asy
44929
44933
  const version = await getOverdeckVersion();
44930
44934
  let supervisorUrl = null;
44931
44935
  try {
44932
- const { getSupervisorUrlSync } = await import("./supervisor-DwGIhpXk.js");
44936
+ const { getSupervisorUrlSync } = await import("./supervisor-D1-XwmZ7.js");
44933
44937
  supervisorUrl = getSupervisorUrlSync();
44934
44938
  } catch {}
44935
44939
  return jsonResponse({
@@ -45093,7 +45097,7 @@ const postShadowMonitorRoute = HttpRouter.add("POST", "/api/shadow/:issueId/moni
45093
45097
  const projectPath = await getProjectPath(issuePrefix);
45094
45098
  const workspacePath = join$1(projectPath, "workspaces", `feature-${issueLower}`);
45095
45099
  if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
45096
- const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-BHeyD5bL.js");
45100
+ const { gatherArtifacts, generateBasicInference, updateInferenceDocumentSync } = await import("./shadow-engineering-Ba1D0QUN.js");
45097
45101
  const config = {
45098
45102
  issueId,
45099
45103
  workspacePath,
@@ -45123,7 +45127,7 @@ const postShadowObserveRoute = HttpRouter.add("POST", "/api/shadow/:issueId/obse
45123
45127
  if (!existsSync$1(workspacePath)) return jsonResponse({ error: "Workspace not found" }, { status: 404 });
45124
45128
  const ghConfig = getGitHubConfig();
45125
45129
  if (!ghConfig) return jsonResponse({ error: "GitHub not configured - Observer requires GitHub" }, { status: 400 });
45126
- const { runObserverCycle } = await import("./shadow-engineering-BHeyD5bL.js");
45130
+ const { runObserverCycle } = await import("./shadow-engineering-Ba1D0QUN.js");
45127
45131
  const firstRepo = ghConfig.repos[0];
45128
45132
  const config = {
45129
45133
  issueId,
@@ -46188,7 +46192,7 @@ async function cleanupConversationAttachments(name) {
46188
46192
  * sessions that the lifecycle poller missed. */
46189
46193
  async function cleanupOrphanedConversationAttachments() {
46190
46194
  try {
46191
- const { listConversations } = await import("./conversations-D-uOnA8T.js");
46195
+ const { listConversations } = await import("./conversations-Dcx6LeIh.js");
46192
46196
  const convNames = new Set(listConversations().map((c) => c.name));
46193
46197
  const root = getConversationAttachmentsRoot();
46194
46198
  await runInBatches((await readdir(root, { withFileTypes: true })).filter((entry) => entry.isDirectory() && !convNames.has(entry.name)).map((entry) => join$1(root, entry.name)), 10, (path) => rm(path, {
@@ -47057,7 +47061,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
47057
47061
  const codexApprovalPolicy = codexPermMode === "full-access" ? "never" : "on-request";
47058
47062
  const codexSandboxMode = codexPermMode === "full-access" ? "danger-full-access" : codexPermMode === "read-only" ? "read-only" : "workspace-write";
47059
47063
  const codexApprovalsReviewer = codexPermMode === "auto-review" ? "auto_review" : void 0;
47060
- const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-j8aVgRou.js");
47064
+ const { initCodexHome, extractThreadIdFromRollout } = await import("./codex-BUZjrnqH.js");
47061
47065
  initCodexHome(codexHome, {
47062
47066
  trustedDir: cwd,
47063
47067
  approvalPolicy: codexApprovalPolicy,
@@ -47127,7 +47131,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
47127
47131
  } catch {}
47128
47132
  console.log(`[claude-invoke] purpose=conversation-session | model=${model || "default"} | source=conversations.ts:spawnConversationSession | session=${tmuxSession} | resume=${resume} | command="${runtimeCommand}"`);
47129
47133
  try {
47130
- const { preTrustDirectory } = await import("./workspace-manager-_6zbrhNF.js");
47134
+ const { preTrustDirectory } = await import("./workspace-manager-B3PqQQSM.js");
47131
47135
  preTrustDirectory(cwd);
47132
47136
  } catch {}
47133
47137
  try {
@@ -47144,7 +47148,7 @@ async function spawnConversationSession(tmuxSession, cwd, claudeSessionId, model
47144
47148
  const codexHomeDir = codexFields.codexHome;
47145
47149
  (async () => {
47146
47150
  try {
47147
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-j8aVgRou.js");
47151
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-BUZjrnqH.js");
47148
47152
  const rollout = await waitForCodexRollout(codexHomeDir, 12e4);
47149
47153
  if (rollout) {
47150
47154
  const threadId = extractThreadIdFromRollout(rollout);
@@ -50163,7 +50167,7 @@ async function registerProjectFromPath(opts) {
50163
50167
  registerProjectSync(key, projectConfig);
50164
50168
  const seededContextLayer = ensureProjectLayer(fullPath);
50165
50169
  try {
50166
- const { preTrustDirectorySync } = await import("./workspace-manager-_6zbrhNF.js");
50170
+ const { preTrustDirectorySync } = await import("./workspace-manager-B3PqQQSM.js");
50167
50171
  preTrustDirectorySync(fullPath);
50168
50172
  } catch {}
50169
50173
  let hooksInstalled = 0;
@@ -50199,7 +50203,7 @@ init_pan_dir();
50199
50203
  init_paths();
50200
50204
  const execAsync$2 = promisify(exec);
50201
50205
  async function getIssueDataService() {
50202
- const { getSharedIssueService } = await import("./issue-service-singleton-DNh4RRI7.js");
50206
+ const { getSharedIssueService } = await import("./issue-service-singleton-Bnqv1uaa.js");
50203
50207
  return getSharedIssueService();
50204
50208
  }
50205
50209
  /** Returns true if the path exists (any type). */
@@ -52199,7 +52203,7 @@ async function refreshMergeStateFromGitHub(issueId, repo, prNumber) {
52199
52203
  let mergeState;
52200
52204
  let isDraft;
52201
52205
  let checksFailed;
52202
- const { isGitHubAppConfigured, getPullRequestState } = await import("./github-app-CIhMNI4C.js");
52206
+ const { isGitHubAppConfigured, getPullRequestState } = await import("./github-app-B5PDHMyn.js");
52203
52207
  if (isGitHubAppConfigured()) {
52204
52208
  const prState = await Effect.runPromise(getPullRequestState(owner, repoName, prNumber));
52205
52209
  mergeable = prState.mergeable === null ? "UNKNOWN" : prState.mergeable ? "MERGEABLE" : "CONFLICTING";
@@ -52348,8 +52352,8 @@ async function handlePullRequestPromise(payload) {
52348
52352
  bumpIssuePrTabCacheGeneration(issueId);
52349
52353
  const repo = payload.repository.full_name;
52350
52354
  if (payload.action === "closed" && pr.merged === true) try {
52351
- const { postMergeLifecycle } = await import("./merge-agent-DRXwKxmb.js");
52352
- const { resolveProjectFromIssueSync } = await import("./projects-CKTA6Klk.js");
52355
+ const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
52356
+ const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
52353
52357
  const project = resolveProjectFromIssueSync(issueId);
52354
52358
  if (project) {
52355
52359
  const branchName = pr.head.ref;
@@ -52914,7 +52918,7 @@ function getCheckpointWorker() {
52914
52918
  return worker;
52915
52919
  }
52916
52920
  async function runInline(operation, payload) {
52917
- const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-dBCJr0dC.js");
52921
+ const { claimTranscriptRange, commitTranscriptRange, releaseTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints } = await import("./checkpoints-BjlBWOA8.js");
52918
52922
  switch (operation) {
52919
52923
  case "claimTranscriptRange": return claimTranscriptRange(payload);
52920
52924
  case "commitTranscriptRange": return commitTranscriptRange(payload);
@@ -54068,7 +54072,7 @@ function buildPendingTurn(input, fromOffset, toOffset, compressed) {
54068
54072
  };
54069
54073
  }
54070
54074
  async function emitMemoryObservationCreated(observation, timestamp) {
54071
- const { initEventStore } = await import("./event-store-BeEE8pW5.js");
54075
+ const { initEventStore } = await import("./event-store-DIk9wvnS.js");
54072
54076
  await (await initEventStore()).appendAsync({
54073
54077
  type: "memory.observation_created",
54074
54078
  timestamp,
@@ -57165,7 +57169,7 @@ async function getFlywheelConversationPayload() {
57165
57169
  };
57166
57170
  }
57167
57171
  async function postFlywheelReportPayload() {
57168
- const { flywheelReportCommand } = await import("./flywheel-ByZyAv3P.js");
57172
+ const { flywheelReportCommand } = await import("./flywheel-DefHRzY4.js");
57169
57173
  await flywheelReportCommand({ cwd: process.cwd() });
57170
57174
  return {
57171
57175
  status: 200,
@@ -57323,11 +57327,11 @@ const getMergeBlockersRoute = HttpRouter.add("GET", "/api/flywheel/merge-blocker
57323
57327
  async function defaultGetOrderedIssueIds() {
57324
57328
  const status = await readCurrentFlywheelStatusForDashboard();
57325
57329
  if (!status) return [];
57326
- const { computeMergeQueue } = await import("./flywheel-merge-order-DPFZbt-w.js");
57330
+ const { computeMergeQueue } = await import("./flywheel-merge-order-B6YDSElh.js");
57327
57331
  return (await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd()).pipe(Effect.provide(layer)))).map((i) => i.issueId);
57328
57332
  }
57329
57333
  async function defaultMergeOne(issueId) {
57330
- const { triggerMerge } = await import("./merge-ops-B6xc_Irj.js");
57334
+ const { triggerMerge } = await import("./merge-ops-QdBiQ8XB.js");
57331
57335
  const r = await triggerMerge(issueId);
57332
57336
  return r.success ? { ok: true } : {
57333
57337
  ok: false,
@@ -57347,7 +57351,7 @@ async function postFlywheelMergeNextPayload(payload, deps = {}) {
57347
57351
  body: { error: "n must be a positive integer" }
57348
57352
  };
57349
57353
  const issueIds = (await (deps.getOrderedIssueIds ?? defaultGetOrderedIssueIds)()).slice(0, n);
57350
- const { shipMergeBatch } = await import("./merge-batch-LLp_cXUR.js");
57354
+ const { shipMergeBatch } = await import("./merge-batch-BwhGdlh4.js");
57351
57355
  return {
57352
57356
  status: 200,
57353
57357
  body: { outcomes: await shipMergeBatch(issueIds, { merge: deps.merge ?? defaultMergeOne }) }
@@ -57504,7 +57508,7 @@ const getFlywheelMergeQueueRoute = HttpRouter.add("GET", "/api/flywheel/merge-qu
57504
57508
  return yield* Effect.promise(async () => {
57505
57509
  const status = await readCurrentFlywheelStatusForDashboard();
57506
57510
  if (!status) return jsonResponse([]);
57507
- const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-DPFZbt-w.js");
57511
+ const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-B6YDSElh.js");
57508
57512
  return jsonResponse(await Effect.runPromise(computeMergeQueue(status.activePipeline, process.cwd(), { getPrUrl: resolveMergeQueuePrUrl }).pipe(Effect.provide(layer))));
57509
57513
  });
57510
57514
  })));
@@ -57518,18 +57522,18 @@ function uatGenerationNameFromParam(param) {
57518
57522
  return decoded.startsWith("uat/") ? decoded : `uat/${decoded}`;
57519
57523
  }
57520
57524
  const getUatGenerationsRoute = HttpRouter.add("GET", "/api/flywheel/uat-generations", httpHandler(Effect.gen(function* () {
57521
- const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-BLFPxqLx.js"));
57525
+ const { getUatGenerationsPayload } = yield* Effect.promise(() => import("./uat-train-C3hWXtip.js"));
57522
57526
  return jsonResponse(yield* Effect.promise(() => getUatGenerationsPayload()));
57523
57527
  })));
57524
57528
  const getUatCandidateRoute = HttpRouter.add("GET", "/api/flywheel/uat-candidate", httpHandler(Effect.gen(function* () {
57525
- const { getUatCandidatePayload } = yield* Effect.promise(() => import("./uat-train-BLFPxqLx.js"));
57529
+ const { getUatCandidatePayload } = yield* Effect.promise(() => import("./uat-train-C3hWXtip.js"));
57526
57530
  return jsonResponse(yield* Effect.promise(() => getUatCandidatePayload()));
57527
57531
  })));
57528
57532
  const postUatGenerationStackRoute = HttpRouter.add("POST", "/api/flywheel/uat-generations/:name/stack", httpHandler(Effect.gen(function* () {
57529
57533
  const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
57530
57534
  if (authError) return authError;
57531
57535
  const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
57532
- const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-BLFPxqLx.js"));
57536
+ const { postUatGenerationStackPayload } = yield* Effect.promise(() => import("./uat-train-C3hWXtip.js"));
57533
57537
  const result = yield* Effect.promise(() => postUatGenerationStackPayload(name));
57534
57538
  if (!result.ok) return jsonResponse({ error: result.error }, { status: result.status });
57535
57539
  return jsonResponse({
@@ -57541,8 +57545,8 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
57541
57545
  const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
57542
57546
  if (authError) return authError;
57543
57547
  const name = uatGenerationNameFromParam((yield* HttpRouter.params)["name"] ?? "");
57544
- const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-BLFPxqLx.js"));
57545
- const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-LJ9MZMCz.js"));
57548
+ const { postUatGenerationPromotePayload } = yield* Effect.promise(() => import("./uat-train-C3hWXtip.js"));
57549
+ const { firePostMergeLifecycle } = yield* Effect.promise(() => import("./specialists-BCjcG4uE.js"));
57546
57550
  const result = yield* Effect.promise(() => postUatGenerationPromotePayload(name, firePostMergeLifecycle));
57547
57551
  if (!result.success) return jsonResponse(result, { status: result.reason === "not-found" ? 404 : result.reason === "merge-failed" ? 500 : 409 });
57548
57552
  return jsonResponse(result);
@@ -57555,7 +57559,7 @@ const postUatGenerationPromoteRoute = HttpRouter.add("POST", "/api/flywheel/uat-
57555
57559
  const postFlywheelAssembleUatRoute = HttpRouter.add("POST", "/api/flywheel/assemble-uat", httpHandler(Effect.gen(function* () {
57556
57560
  const authError = rejectUnsafeDashboardMutationRequest(yield* HttpServerRequest.HttpServerRequest);
57557
57561
  if (authError) return authError;
57558
- const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-BLFPxqLx.js"));
57562
+ const { runUatTrainReconcile } = yield* Effect.promise(() => import("./uat-train-C3hWXtip.js"));
57559
57563
  return jsonResponse(yield* Effect.promise(() => runUatTrainReconcile({ force: true })));
57560
57564
  })));
57561
57565
  const getFlywheelStateRoute = HttpRouter.add("GET", "/api/flywheel/state", httpHandler(Effect.gen(function* () {
@@ -57636,7 +57640,7 @@ async function renderArtifactThumbnailWithPlaywright(input) {
57636
57640
  }
57637
57641
  }
57638
57642
  function defaultRawArtifactUrl(slug) {
57639
- return `https://artifacts.${process.env.PAN_ARTIFACT_DOMAIN ?? "pan.localhost"}/a/${slug}`;
57643
+ return `https://artifacts.${process.env.PAN_ARTIFACT_DOMAIN ?? "overdeck.localhost"}/a/${slug}`;
57640
57644
  }
57641
57645
  async function fileExists(path) {
57642
57646
  try {
@@ -57691,8 +57695,8 @@ function normalizedHost(value) {
57691
57695
  return host.startsWith("[") ? host : host.split(":", 1)[0] ?? null;
57692
57696
  }
57693
57697
  function artifactDomain(baseDomain) {
57694
- const host = (baseDomain ?? process.env.PAN_ARTIFACT_DOMAIN ?? "pan.localhost").replace(/^https?:\/\//, "").split("/", 1)[0]?.toLowerCase();
57695
- if (!host) return "pan.localhost";
57698
+ const host = (baseDomain ?? process.env.PAN_ARTIFACT_DOMAIN ?? "overdeck.localhost").replace(/^https?:\/\//, "").split("/", 1)[0]?.toLowerCase();
57699
+ if (!host) return "overdeck.localhost";
57696
57700
  return host.startsWith("[") ? host : host.split(":", 1)[0] ?? host;
57697
57701
  }
57698
57702
  function isArtifactHost(headers, baseDomain) {
@@ -57702,7 +57706,7 @@ function getPublishedSnapshotPath(slug) {
57702
57706
  return join$1(getOverdeckHome(), "artifacts", "snapshots", slug, "index.html");
57703
57707
  }
57704
57708
  function resolveArtifactUrls(slug, baseDomain) {
57705
- const domain = baseDomain ?? process.env.PAN_ARTIFACT_DOMAIN ?? "pan.localhost";
57709
+ const domain = baseDomain ?? process.env.PAN_ARTIFACT_DOMAIN ?? "overdeck.localhost";
57706
57710
  return {
57707
57711
  wrapperUrl: `https://${domain}/s/${slug}`,
57708
57712
  rawUrl: `https://artifacts.${domain}/a/${slug}`
@@ -61064,7 +61068,7 @@ async function pollOnce(state) {
61064
61068
  try {
61065
61069
  const remoteState = await readFile(join$1(homedir$1(), ".overdeck", "agents", agentId, "remote-state.json"), "utf-8").then((text) => JSON.parse(text)).catch(() => null);
61066
61070
  if (remoteState?.location === "remote" && remoteState?.vmName) {
61067
- const { getRemoteAgentOutput } = await import("./remote-agents-OB4zwVHz.js");
61071
+ const { getRemoteAgentOutput } = await import("./remote-agents-DNuaAgU6.js");
61068
61072
  stdout = await getRemoteAgentOutput(agentId, remoteState.vmName, 50);
61069
61073
  } else stdout = await Effect.runPromise(capturePane(agentId, 50));
61070
61074
  } catch {
@@ -62248,7 +62252,7 @@ const RESTART_MARKER = join(homedir(), ".overdeck", "dashboard-restarting.json")
62248
62252
  * loads new content-hashed chunk filenames (no ERR_MODULE_NOT_FOUND after rebuild).
62249
62253
  */
62250
62254
  async function defaultLifecycleRunner(pending) {
62251
- const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-DRXwKxmb.js");
62255
+ const { postMergeLifecycle, notifyTldrDaemon } = await import("./merge-agent-Dh8Y9PDO.js");
62252
62256
  await postMergeLifecycle(pending.issueId, pending.projectPath, pending.sourceBranch, { skipDeploy: true });
62253
62257
  if (pending.sourceBranch) await notifyTldrDaemon(pending.projectPath, pending.sourceBranch);
62254
62258
  }
@@ -62569,7 +62573,7 @@ function failureReason(result) {
62569
62573
  return result.error ?? result.message ?? `merge returned status ${result.statusCode ?? "unknown"}`;
62570
62574
  }
62571
62575
  async function defaultMergeIssue(issueId) {
62572
- const { triggerMerge } = await import("./merge-ops-B6xc_Irj.js");
62576
+ const { triggerMerge } = await import("./merge-ops-QdBiQ8XB.js");
62573
62577
  return triggerMerge(issueId);
62574
62578
  }
62575
62579
  function defaultAnnounceFailure(issueId, reason) {
@@ -63206,7 +63210,7 @@ reconcileStaleGitHubBlockers().then((n) => {
63206
63210
  }
63207
63211
  }).catch((err) => console.warn(`[overdeck] Startup blocker reconciliation failed: ${err.message}`));
63208
63212
  try {
63209
- const { resetProcessingToQueued } = await import("./merge-sync-CAjbJeTp.js");
63213
+ const { resetProcessingToQueued } = await import("./merge-sync-BKLKu9kz.js");
63210
63214
  const resetCount = resetProcessingToQueued();
63211
63215
  if (resetCount > 0) {
63212
63216
  console.log(`[overdeck] Reset ${resetCount} stuck merge queue entries to queued`);