@overdeck/desktop 0.45.13 → 0.45.15

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 (321) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CfujPRrz.js → acceptance-criteria-DHZk2ceV.js} +2 -2
  3. package/server/{advancing-selfheal-Bn5QiLtn.js → advancing-selfheal-CSuZ31bB.js} +5 -5
  4. package/server/{agent-gc-Cl9Nm0Zu.js → agent-gc-D_DxfBHR.js} +3 -3
  5. package/server/{agent-state-C6Rm6FPR.js → agent-state-EP2QFV9n.js} +1 -1
  6. package/server/{agent-state-service-JhFzYCP_.js → agent-state-service-BZkvgQf4.js} +5 -5
  7. package/server/{agent-state-service-U8feBf8t.js → agent-state-service-C_2ZAQRP.js} +1 -1
  8. package/server/{agents-DqQa4Dq_.js → agents-CsOzAmRg.js} +117 -74
  9. package/server/{agents-CxbuBjID.js → agents-DCvyTXNU.js} +1 -1
  10. package/server/{archive-planning-DmpT1_14.js → archive-planning-CTILQRnV.js} +1 -1
  11. package/server/{archive-planning-CPitEZo4.js → archive-planning-DkivCk1A.js} +4 -4
  12. package/server/{artifact-index-jobs-sMnNtPhy.js → artifact-index-jobs-CmsvQ1ey.js} +2 -2
  13. package/server/auto-commit-QAfsu3Sb.js +3 -0
  14. package/server/{backlog-auto-trigger-Cf9C8fwD.js → backlog-auto-trigger-ueRaT8Dy.js} +2 -2
  15. package/server/{bd-process-lock-D1aJxeYv.js → bd-process-lock-D3S4T4o-.js} +32 -11
  16. package/server/{beads-DRoj6-e1.js → beads-BGGxrkZ5.js} +96 -196
  17. package/server/{beads-CivpXztb.js → beads-CYsLiyIM.js} +1 -1
  18. package/server/{beads-query-tOsAYP5h.js → beads-query-B1DlJVp9.js} +24 -99
  19. package/server/beads-restore-CyygSmmn.js +23 -0
  20. package/server/{behavior-D3d2mVyD.js → behavior-Cpj03N4v.js} +3 -3
  21. package/server/{briefing-freshness-BL3Q6p7R.js → briefing-freshness-Kh5V8RTh.js} +4 -4
  22. package/server/{checkpoint-manager-j5URlFY7.js → checkpoint-manager-CAFos8e1.js} +1 -1
  23. package/server/{checkpoint-manager-DCxjQvP_.js → checkpoint-manager-fu9oVsR-.js} +2 -2
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-BoX1H2Hf.js → checkpoints-1BqOlS4q.js} +2 -2
  26. package/server/{checkpoints-Bu_M_Q9W.js → checkpoints-DvhGi8P_.js} +1 -1
  27. package/server/{claude-hooks-provision-D-jGXmu1.js → claude-hooks-provision-s_wdpeVj.js} +2 -2
  28. package/server/{claude-permissions-DxIjkOVl.js → claude-permissions-CaWqysff.js} +2 -2
  29. package/server/{claude-settings-overlay-5b9X2S0C.js → claude-settings-overlay-BbA4FbVI.js} +1 -1
  30. package/server/{claude-settings-overlay-BPDS6GfE.js → claude-settings-overlay-CcTf0xzG.js} +2 -2
  31. package/server/{cli-s7bPWy-E.js → cli-BwCvCUBK.js} +9 -9
  32. package/server/cli-ClIQwgMI.js +3 -0
  33. package/server/{cliproxy-BituqWtR.js → cliproxy-BsoNNDAj.js} +2 -2
  34. package/server/{cliproxy-D3sHB0sI.js → cliproxy-C2xC-3vH.js} +1 -1
  35. package/server/{close-issue-CrBE7voz.js → close-issue-BleIwP3f.js} +5 -5
  36. package/server/{closed-issue-reaper-BRQBc7Xa.js → closed-issue-reaper-BwUUvjEW.js} +1 -1
  37. package/server/{closed-issue-reaper-DX9mYUji.js → closed-issue-reaper-mC5pujeb.js} +102 -30
  38. package/server/{codex-Bi1ITSOo.js → codex-B7DTpwEw.js} +1 -1
  39. package/server/{codex-CO0HrK3j.js → codex-DW60_5j2.js} +5 -5
  40. package/server/{compact-beads-CrA8-k10.js → compact-beads-CK_hHEnB.js} +1 -1
  41. package/server/{compact-beads-DUkCUFxA.js → compact-beads-DKL54y6j.js} +15 -8
  42. package/server/{config-B4_d7z7z.js → config-BRNQJXhA.js} +1 -1
  43. package/server/{config-DsCxzjXK.js → config-ZNnMpIlh.js} +2 -2
  44. package/server/{config-yaml-C_djSurJ.js → config-yaml-Dcz-8uit.js} +29 -3
  45. package/server/{conflict-gate-CpOn9KC-.js → conflict-gate-DGT8jCLp.js} +1 -1
  46. package/server/{conflict-gate-D47Kl78u.js → conflict-gate-DTje2Ll7.js} +3 -3
  47. package/server/{context-layers-BNhUBTkf.js → context-layers-BdUCQ-cl.js} +3 -3
  48. package/server/{context-layers-CHl3Nroz.js → context-layers-ByOWUjUg.js} +2 -2
  49. package/server/{control-settings-KyYNXZLv.js → control-settings-DwkAeooY.js} +4 -4
  50. package/server/{conversation-compaction-D3aS5PnS.js → conversation-compaction-OTYgd6eg.js} +8 -8
  51. package/server/{conversation-compaction-D4Wed1BJ.js → conversation-compaction-WYQZUVDm.js} +1 -1
  52. package/server/{conversation-service-CFZIjs-M.js → conversation-service-BR1OgvxO.js} +5 -5
  53. package/server/{conversation-service-DcDB5usR.js → conversation-service-C_kNZPLx.js} +1 -1
  54. package/server/{conversations-BSOU5qnu.js → conversations-DG2M8WnT.js} +4 -4
  55. package/server/{conversations-BbDPrz89.js → conversations-izHvSoAR.js} +1 -1
  56. package/server/{cost-BE_ulOrw.js → cost-B2mj17iG.js} +3 -3
  57. package/server/{cost-CaiG63FG.js → cost-DQ2ajr_m.js} +2 -2
  58. package/server/{cost-sync-D6AX8jv-.js → cost-sync-gTayEuWP.js} +3 -3
  59. package/server/{dag-BQFtXOuJ.js → dag-CqTehWpY.js} +3 -3
  60. package/server/{dangerous-git-ops-04Ba-Qu3.js → dangerous-git-ops-DDWQlPC3.js} +1 -1
  61. package/server/dashboard-db-worker.js +6 -6
  62. package/server/{deacon-Bz-6Wjmn.js → deacon-BqW9HMew.js} +3 -3
  63. package/server/{deacon-2EvA9Ci3.js → deacon-DrKDBeJL.js} +161 -1594
  64. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-D1wEK6zF.js} +1 -1
  65. package/server/deacon-swarm-BY5hKNaU.js +2 -0
  66. package/server/{deacon-swarm-DYYOzHRH.js → deacon-swarm-CO_A7xyd.js} +12 -105
  67. package/server/deacon.js +7 -7
  68. package/server/{devcontainer-renderer-Dx0C7VWJ.js → devcontainer-renderer-BQolp_qZ.js} +3 -3
  69. package/server/{dist-ya66D9ze.js → dist-Bc32rWJB.js} +1 -1
  70. package/server/dist-DGTwcZhI.js +3 -0
  71. package/server/{docker-D2TbXDO6.js → docker-s-esqZ__.js} +67 -28
  72. package/server/{ensure-devcontainer-BTiMfFp5.js → ensure-devcontainer-DA4-jF6R.js} +4 -4
  73. package/server/{ensure-devcontainer-BIShzs3M.js → ensure-devcontainer-pUVaT0h3.js} +1 -1
  74. package/server/{esm-shims-DiV9jHa_.js → esm-shims-CJHy8CZY.js} +1 -1
  75. package/server/{event-store-C02Gprug.js → event-store-CcJAhKCl.js} +1 -1
  76. package/server/{event-store-C71x6h0i.js → event-store-DRte2Rwt.js} +3 -3
  77. package/server/{events-BFDuPV6n.js → events-Bej1w_k8.js} +3 -3
  78. package/server/{events-D2gP2-Yv.js → events-CtsLScn8.js} +1 -1
  79. package/server/export-Dx_qJ3h8.js +87 -0
  80. package/server/{factory-ByfbrCab.js → factory-FN727tWr.js} +4 -4
  81. package/server/{feature-registry-population-CSH66UO8.js → feature-registry-population-ie-yBcQC.js} +4 -4
  82. package/server/{feature-registry-storage-DW7dUefc.js → feature-registry-storage-CkZTFSsn.js} +2 -2
  83. package/server/{features-x_aLR7U9.js → features-Dtm9ABuz.js} +2 -2
  84. package/server/{feedback-target-BFo9fScH.js → feedback-target-BYtpyt1i.js} +6 -6
  85. package/server/{feedback-target-C4VMPTZu.js → feedback-target-DVJQDiE4.js} +1 -1
  86. package/server/{feedback-writer-DCyd75yJ.js → feedback-writer-DOUhyIW2.js} +1 -1
  87. package/server/{feedback-writer-B9ZqnnX3.js → feedback-writer-fdE1BzeL.js} +4 -4
  88. package/server/{flywheel-DB48X7Nn.js → flywheel-Bi82iiNl.js} +1 -1
  89. package/server/{flywheel-D9NKvWqb.js → flywheel-Bv3wv2S6.js} +23 -15
  90. package/server/{flywheel-DwQCoZQG.js → flywheel-CUErLAyN.js} +13 -13
  91. package/server/{flywheel-merge-order-DrjmFXg4.js → flywheel-merge-order-BaEN3iyN.js} +7 -7
  92. package/server/{flywheel-merge-order-f1bi5XIf.js → flywheel-merge-order-DXjeBnJ1.js} +1 -1
  93. package/server/{forge-C-SoKy8U.js → forge-ButEdJ31.js} +2 -2
  94. package/server/forge-XlDgPQWs.js +2 -0
  95. package/server/{from-fu7ZumnY.js → from-CbtTxftl.js} +1 -1
  96. package/server/{fts-db-CL-YzSRG.js → fts-db-CBgBLZcL.js} +2 -2
  97. package/server/{fts-operations-Bylu5NjM.js → fts-operations-CI9Xuo_1.js} +2 -2
  98. package/server/{git-utils-Ym380hJZ.js → git-utils-BCLRWQ-y.js} +1 -1
  99. package/server/{git-utils-C8koBs8j.js → git-utils-ClfpP47N.js} +2 -2
  100. package/server/{github-app-DIr70YLg.js → github-app-DRD2woO0.js} +1 -1
  101. package/server/{github-app-DhycHVLF.js → github-app-DscZ0_B6.js} +2 -2
  102. package/server/{github-client-7gkcXcBS.js → github-client-DpiZnxGH.js} +2 -2
  103. package/server/{github-client-Ji9lUTNF.js → github-client-iFRw8f7e.js} +1 -1
  104. package/server/{github-pr-lookup-rt7T9FwA.js → github-pr-lookup-D-EBexxC.js} +2 -2
  105. package/server/{harness-resolve-CvGXUnAF.js → harness-resolve-iMjyNUJ2.js} +3 -3
  106. package/server/{health-events-DDfkoO5a.js → health-events-B_WsQyYm.js} +1 -1
  107. package/server/{health-events-D4E1DLN-.js → health-events-CRdxDFN2.js} +2 -2
  108. package/server/{hooks-DvdnCVv6.js → hooks-C1ScyVxP.js} +1 -1
  109. package/server/{hooks-D_6pAbuJ.js → hooks-C9b7Vqpw.js} +2 -2
  110. package/server/hume-K1pi8jC4.js +3 -0
  111. package/server/{hume-DkVOs1Qi.js → hume-TQ5pvOZ_.js} +2 -2
  112. package/server/{idle-stack-reaper-cDRXDpgE.js → idle-stack-reaper-B1kG7B_X.js} +2 -2
  113. package/server/{idle-stack-reaper-DNbV9-fj.js → idle-stack-reaper-iFVOAoJy.js} +1 -1
  114. package/server/{infra-Clew3DpF.js → infra-bpq1MHKU.js} +3 -3
  115. package/server/{injection-QCIHOpk6.js → injection-BLWfwTVZ.js} +1 -1
  116. package/server/{injection-ql0Nddcn.js → injection-DJqWld1v.js} +7 -7
  117. package/server/inspect-agent-477VxQim.js +2 -0
  118. package/server/{inspect-agent-DY18KEx4.js → inspect-agent-DytCsltn.js} +9 -9
  119. package/server/{internal-token-C90jBp-y.js → internal-token-CCaWaTwE.js} +1 -1
  120. package/server/{internal-token-BeXjPLKy.js → internal-token-CjlhdufS.js} +2 -2
  121. package/server/{io-CbAFXQge.js → io-BiQ2Cs3k.js} +2 -2
  122. package/server/{issue-closed-BYC2TCk-.js → issue-closed-FApNiOOs.js} +4 -4
  123. package/server/{issue-lifecycle-CLHbj8RS.js → issue-lifecycle-BkFWNjlD.js} +1 -1
  124. package/server/{issue-lifecycle-BoJa6qIt.js → issue-lifecycle-C-K53ASY.js} +21 -21
  125. package/server/{issue-service-singleton-BS9NENuR.js → issue-service-singleton-CuHGpJJP.js} +8 -8
  126. package/server/{issue-service-singleton-3g_CCY-1.js → issue-service-singleton-bG1WdSdQ.js} +1 -1
  127. package/server/{issues-BPcqPqfV.js → issues-CwQMphDH.js} +2 -2
  128. package/server/jsonl-parser-dNIjHgym.js +245 -0
  129. package/server/{label-cleanup-CwiCSZrb.js → label-cleanup-DYvAZknd.js} +3 -3
  130. package/server/{layers-OHHLphl0.js → layers-CD6FysRU.js} +2 -2
  131. package/server/{lifecycle-B8IdvUbt.js → lifecycle-C_73gi-C.js} +7 -7
  132. package/server/{lifecycle-io-BMCH1Bxg.js → lifecycle-io-C_Wu0_i-.js} +1 -1
  133. package/server/{lifecycle-io-C73m5e6R.js → lifecycle-io-CeYxP3cE.js} +4 -4
  134. package/server/{linear-client-BMxgycoy.js → linear-client-4qoKnuQu.js} +1 -1
  135. package/server/{linear-client-CgQlM4aT.js → linear-client-EtVyblVz.js} +2 -2
  136. package/server/memory-fts-worker.js +1 -1
  137. package/server/{merge-B7Oi-g6k.js → merge-7rqkTUm2.js} +3 -3
  138. package/server/{merge-agent-Bwm34MZ5.js → merge-agent-36wfYm2u.js} +1 -1
  139. package/server/{merge-agent-DNFFsiEm.js → merge-agent-4Zhlgvqp.js} +28 -28
  140. package/server/{merge-batch-BpYXUaqJ.js → merge-batch-itfnwdsT.js} +1 -1
  141. package/server/{merge-blockers-DIOZmqdK.js → merge-blockers-Bto_Oe_o.js} +2 -2
  142. package/server/{merge-BRkVaIx-.js → merge-brm721Es.js} +1 -1
  143. package/server/merge-ops-PzqsW69V.js +2 -0
  144. package/server/{merge-rebase-C8WH39MB.js → merge-rebase-Czfqfe4q.js} +2 -2
  145. package/server/{merge-set-CsEE2CyQ.js → merge-set-BIkGQL9j.js} +3 -3
  146. package/server/{merge-set-DOsBTBQc.js → merge-set-G1RHcu3D.js} +1 -1
  147. package/server/{merge-sync-C2B322Ot.js → merge-sync-B43Dybea.js} +2 -2
  148. package/server/{merge-sync-CcLM2vwW.js → merge-sync-DIrmlZUr.js} +1 -1
  149. package/server/{merge-train-BIm7-7cy.js → merge-train-DGqVuNZV.js} +3 -3
  150. package/server/{merge-train-deps-DG1oQ2DT.js → merge-train-deps-q15XLnAS.js} +4 -4
  151. package/server/{merge-verification-BAbjxEd5.js → merge-verification-Cqfxx6bE.js} +4 -4
  152. package/server/{multipart-parser-jKtKAXtl.js → multipart-parser-CiPxxfUH.js} +2 -2
  153. package/server/node_modules/.package-lock.json +1 -1
  154. package/server/{orphan-proposed-reconciler-zHrwJ3xr.js → orphan-proposed-reconciler-BWWHn4Lr.js} +15 -39
  155. package/server/{orphan-proposed-reconciler-BqVGaOIj.js → orphan-proposed-reconciler-DAD9FJtQ.js} +1 -1
  156. package/server/package-lock.json +2 -2
  157. package/server/package.json +1 -1
  158. package/server/{pan-dir-BlNrLzW7.js → pan-dir-Bj7Hy8iu.js} +3 -3
  159. package/server/{paths-CiVeo4N_.js → paths-C9DkhIOT.js} +2 -2
  160. package/server/{pickup-KLRUhThD.js → pickup-CKRuGDsB.js} +1 -1
  161. package/server/{pipeline-notifier-nkWCe042.js → pipeline-notifier-BkKbQ8ji.js} +1 -1
  162. package/server/{pipeline-notifier-DBF6dHxH.js → pipeline-notifier-CAurUste.js} +2 -2
  163. package/server/project-pipelines-BRWaGmI4.js +162 -0
  164. package/server/projects-KJ94e50I.js +3 -0
  165. package/server/{prompts-CXbQvevY.js → prompts-DfI5qbTW.js} +2 -2
  166. package/server/{providers-CUdAb5Qu.js → providers-CWDXoaMA.js} +7 -7
  167. package/server/providers-D-5txBRc.js +3 -0
  168. package/server/public/assets/{chunk-BO2N2NFS-C-6y8VFI.js → chunk-BO2N2NFS-ClukPsZQ.js} +4 -4
  169. package/server/public/assets/{diagram-OG6HWLK6-NACO1xW5.js → diagram-OG6HWLK6-Avtvq2qI.js} +1 -1
  170. package/server/public/assets/{dist-DQD-ZjQY.js → dist-BEHQuasD.js} +3 -3
  171. package/server/public/assets/{dist-D1FjqGgm.js → dist-BvmY-qb1.js} +1 -1
  172. package/server/public/assets/{ganttDiagram-6RSMTGT7-CEMAKgmE.js → ganttDiagram-6RSMTGT7-7KhCd0fH.js} +1 -1
  173. package/server/public/assets/{highlighted-body-OFNGDK62-D5lC7FW8.js → highlighted-body-OFNGDK62-iQoBMTf0.js} +1 -1
  174. package/server/public/assets/index-DUFDmvmH.css +1 -0
  175. package/server/public/assets/{index-BDqWyuZQ.js → index-DnTZ2QeN.js} +132 -132
  176. package/server/public/assets/{linear-DDHAMRPB.js → linear-CiJHW9g5.js} +1 -1
  177. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +1 -0
  178. package/server/public/assets/{pieDiagram-4H26LBE5-DwBdeKBb.js → pieDiagram-4H26LBE5-BOhmvUhW.js} +1 -1
  179. package/server/public/assets/{prod-DAZt0c4G.js → prod-DmLBBqat.js} +4 -4
  180. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CNDLp-_m.js → quadrantDiagram-W4KKPZXB-Cjku660G.js} +1 -1
  181. package/server/public/assets/{sankeyDiagram-5OEKKPKP-oIUL_uO1.js → sankeyDiagram-5OEKKPKP-D52w5oPh.js} +1 -1
  182. package/server/public/assets/{xychartDiagram-2RQKCTM6-B-IM6Cck.js → xychartDiagram-2RQKCTM6-BTO07_Iv.js} +1 -1
  183. package/server/public/index.html +2 -2
  184. package/server/{pull-requests-kTRl7cWC.js → pull-requests-Bmre-Xlz.js} +3 -3
  185. package/server/{pull-requests-DZ-V7_LB.js → pull-requests-CKZPWhjD.js} +1 -1
  186. package/server/{rally-xCTZ-UcI.js → rally-BBd9tQ__.js} +3 -3
  187. package/server/rally-Dc2Wnxw2.js +3 -0
  188. package/server/{rally-api-jOk4vit_.js → rally-api-DDc85HIz.js} +1 -1
  189. package/server/{rally-api-DpZo3WwF.js → rally-api-DxZFObI_.js} +2 -2
  190. package/server/{rally-client-BQjm3aaq.js → rally-client-BADHn0m_.js} +1 -1
  191. package/server/{rally-client-CoWZeVEj.js → rally-client-DvvLiAQP.js} +4 -4
  192. package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-D6JDJsqF.js} +1 -1
  193. package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-D_xvy-Mk.js} +1 -1
  194. package/server/{rebuild-stack-BZ7j27xY.js → rebuild-stack-D19i080j.js} +6 -6
  195. package/server/{rebuild-stack-r-cxcr26.js → rebuild-stack-GOsWqXi3.js} +1 -1
  196. package/server/{reconstruct-cache-13EkMg_i.js → reconstruct-cache-lQrG4xGg.js} +6 -6
  197. package/server/record-pyB6VA32.js +3 -0
  198. package/server/recovery-trip-Dfh1tNHn.js +98 -0
  199. package/server/{release-engine-YLTnEO_K.js → release-engine-DxcMWRuK.js} +5 -5
  200. package/server/{release-set-DwvT_Opu.js → release-set-BYsgX7o6.js} +3 -3
  201. package/server/{remote-9u9WL0NJ.js → remote-8W2Yhygw.js} +3 -3
  202. package/server/{remote-B062S1Kc.js → remote-DmeL21dF.js} +3 -3
  203. package/server/{remote-agents-BBTg-vLT.js → remote-agents-BfQBE6MN.js} +5 -5
  204. package/server/{remote-agents-B4eWgwNd.js → remote-agents-DlvbzO7m.js} +1 -1
  205. package/server/{remote-completion-B0rmBnbL.js → remote-completion-BgkiSQmx.js} +12 -12
  206. package/server/resolver-dTpSSzaH.js +158 -0
  207. package/server/resume-DhcIqsTm.js +3 -0
  208. package/server/{review-agent-tfR5RDzG.js → review-agent-D025Wt7w.js} +22 -22
  209. package/server/{review-agent-Bf9XjLnl.js → review-agent-Rub0OpZc.js} +1 -1
  210. package/server/{review-artifacts-D0_IE6DQ.js → review-artifacts-CX951jTU.js} +6 -6
  211. package/server/{review-context-CXO5ml5D.js → review-context-DGGGR_w5.js} +7 -7
  212. package/server/{review-monitor-DfFUSx0J.js → review-monitor-0_qqMcnS.js} +2 -2
  213. package/server/{review-status-BcfwcAcO.js → review-status-4qqLkRMu.js} +17 -17
  214. package/server/{review-status-B0Axo-Ma.js → review-status-Br6lAFGO.js} +1 -1
  215. package/server/{review-status-enrichment-Cp5kFTGl.js → review-status-enrichment-Cr8m3uVL.js} +3 -3
  216. package/server/{review-status-sync-Bc0c_u12.js → review-status-sync-D3KUhsdA.js} +1 -1
  217. package/server/{review-status-sync-CEFty1pW.js → review-status-sync-OC-l1lNt.js} +2 -2
  218. package/server/{review-verdict-feedback-BOKRLLDf.js → review-verdict-feedback-DrWMuRaj.js} +6 -6
  219. package/server/{review-verdict-feedback-BnGtT0vN.js → review-verdict-feedback-YOzmsq9G.js} +1 -1
  220. package/server/{rollup-C22QDVxh.js → rollup-CnxbwaLH.js} +8 -8
  221. package/server/{rollup-BVqFuiS9.js → rollup-DmazRY0j.js} +1 -1
  222. package/server/{scanner-BLCnuXqY.js → scanner-DE1MqAaF.js} +7 -7
  223. package/server/{sequence-io-BozlUb6f.js → sequence-io-C0uoqfGx.js} +4 -4
  224. package/server/{sequencer-agent-BEDEHfd2.js → sequencer-agent-i-b2u4SJ.js} +10 -6
  225. package/server/server.js +1020 -293
  226. package/server/{service-C8jKYZ0w.js → service-D0_gh2tl.js} +1668 -1408
  227. package/server/{session-fork-BDGksK4e.js → session-fork-DZ12vipL.js} +2 -2
  228. package/server/{settings-CSLhh6qR.js → settings-ByqjPtFO.js} +2 -2
  229. package/server/{settings-DrRQCren.js → settings-DCC4BAqj.js} +3 -3
  230. package/server/settings-yydgaqhv.js +2 -0
  231. package/server/{shadow-engineering-BMcBN-Of.js → shadow-engineering-BhnmtW5m.js} +2 -2
  232. package/server/{shadow-state-CHqWHD3T.js → shadow-state-ByXZehsy.js} +1 -1
  233. package/server/{shadow-state-B4ayC7nx.js → shadow-state-CKm8xWX9.js} +2 -2
  234. package/server/{ship-log-CDVmOlZP.js → ship-log-DE_0Cv_i.js} +1 -1
  235. package/server/{smart-compaction-C-F5sP9P.js → smart-compaction-D5Zen3AA.js} +7 -7
  236. package/server/{smart-compaction-V9DBrGcr.js → smart-compaction-h4_ca6Uk.js} +1 -1
  237. package/server/{spawn-planning-session-Bz4_JES2.js → spawn-planning-session-Bgi7Ub02.js} +1 -1
  238. package/server/{spawn-planning-session-dSpOU0lP.js → spawn-planning-session-Dueit4WX.js} +15 -15
  239. package/server/{specialist-completion-Coz3eTSr.js → specialist-completion-BZ8M-WZ0.js} +1 -1
  240. package/server/{specialist-context-fmb03vXQ.js → specialist-context-BMq83C58.js} +5 -5
  241. package/server/{specialist-handoff-logger-B9HK_lRu.js → specialist-handoff-logger-BxX1YefH.js} +2 -2
  242. package/server/{specialist-logs-B24R2B9Y.js → specialist-logs-BWZYcJ6P.js} +3 -3
  243. package/server/{specialists-Chvvwf5z.js → specialists-8ZAguXef.js} +1 -1
  244. package/server/{specialists-CL7E8yUg.js → specialists-BudKrjOu.js} +76 -76
  245. package/server/{specialists-BGNZ0_ZW.js → specialists-DrPrC9Y9.js} +20 -256
  246. package/server/{specialists-B6f5-5nG.js → specialists-ZkW4Mb7U.js} +1 -1
  247. package/server/specs-DwoAEGrW.js +3 -0
  248. package/server/{src-DGAEtABV.js → src-DHn4Rd2F.js} +13 -2
  249. package/server/{src-D-VXCC9C.js → src-DNUUqkec.js} +6 -6
  250. package/server/{src-BVxZuHMg.js → src-Dv6L03vW.js} +3 -3
  251. package/server/{stack-health-BKbTTOT2.js → stack-health-Dclm7_tu.js} +1 -1
  252. package/server/{stack-health-C-le5erA.js → stack-health-DxsTx7II.js} +2 -2
  253. package/server/{state-home-CoyWsECg.js → state-home-CRowbXqU.js} +6 -6
  254. package/server/stuck-remediation-CFWUP8_I.js +1491 -0
  255. package/server/stuck-remediation-CLHd-lrF.js +2 -0
  256. package/server/{summary-fork-BF_0vxrq.js → summary-fork-CKc01Our.js} +2 -2
  257. package/server/{summary-fork-BlE30Q-I.js → summary-fork-CtCwBJ2Z.js} +8 -8
  258. package/server/{supervisor-BSeML_p0.js → supervisor-BA5D72Qa.js} +2 -2
  259. package/server/supervisor-DHjumXlL.js +2 -0
  260. package/server/{swarm-readiness-CQ4sjrXc.js → swarm-readiness-CL5sM9B1.js} +3 -3
  261. package/server/{system-prerequisites-DnmLYOnU.js → system-prerequisites-DmFSXIE5.js} +1 -1
  262. package/server/{teardown-workspace-CpcjDrZ4.js → teardown-workspace-DWmFJzTw.js} +37 -68
  263. package/server/{test-agent-queue-Bq298zZl.js → test-agent-queue-DjsQoV5X.js} +6 -6
  264. package/server/{test-verdict-CCDd25uN.js → test-verdict-BSqsQp3G.js} +1 -1
  265. package/server/{test-verdict-Bm4uv_AA.js → test-verdict-D1AmZ2c0.js} +1 -1
  266. package/server/{tldr-daemon-CaSUXd9r.js → tldr-daemon-C-MGomL8.js} +2 -2
  267. package/server/{tldr-daemon-Rn1Zue0P.js → tldr-daemon-DD9rI5gA.js} +1 -1
  268. package/server/{tmux-BVc-NeKM.js → tmux-C_d-lSIq.js} +2 -2
  269. package/server/{tmux-CbcrkUx5.js → tmux-x291Gjjb.js} +1 -1
  270. package/server/{token-D2OC_9ms.js → token-DfBf1bsd.js} +1 -1
  271. package/server/{tracker-config-C1Y_2CIo.js → tracker-config-CNODpd11.js} +2 -2
  272. package/server/{tracker-config-EsBoOWEy.js → tracker-config-DItsdelv.js} +1 -1
  273. package/server/{tracker-utils-DSb9cfrF.js → tracker-utils-B9ZoVA9b.js} +1 -1
  274. package/server/{tracker-utils-lph9C3Pw.js → tracker-utils-Ch2_5GGf.js} +2 -2
  275. package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-BF4x_LUQ.js} +1 -1
  276. package/server/{tunnel-DDe-ATFF.js → tunnel-YD80_IHr.js} +1 -1
  277. package/server/{tunnel-BFBCeo97.js → tunnel-r_5nHAI6.js} +3 -3
  278. package/server/{types-B5u3NxMl.js → types-33JEP4LZ.js} +1 -1
  279. package/server/{uat-train-8T24rPzc.js → uat-train-DDI00aqD.js} +1 -1
  280. package/server/{uat-train-DtKHHy1U.js → uat-train-DjkFWXge.js} +25 -25
  281. package/server/{validation-lyudzPvD.js → validation-DUTiJnyz.js} +4 -4
  282. package/server/{validation-COOXwNXU.js → validation-ict8hnXk.js} +1 -1
  283. package/server/{verification-runner-Dd1FX8Qk.js → verification-runner-ATaLbpr5.js} +1 -1
  284. package/server/{verification-runner-DO0nYTJx.js → verification-runner-inLgeQux.js} +12 -12
  285. package/server/{vtt-parser-C57tEF7-.js → vtt-parser-QnRfcjiU.js} +1 -1
  286. package/server/{work-agent-prompt-B2F3ZwKm.js → work-agent-prompt-fZljjA1_.js} +12 -12
  287. package/server/{workflows-Clz_AFwR.js → workflows-oBnJ7Tm0.js} +14 -14
  288. package/server/workflows-tU7KKxQi.js +2 -0
  289. package/server/{workspace-D0rCFemz.js → workspace-B2WOW9Hw.js} +1 -1
  290. package/server/{workspace-CY_2-Ddv.js → workspace-CNuW2j41.js} +3 -3
  291. package/server/{workspace-config-DA8U97k9.js → workspace-config-CBgMGhWs.js} +1 -1
  292. package/server/{workspace-manager-D6NgGkiF.js → workspace-manager-CB-R07R3.js} +12 -12
  293. package/server/{workspace-manager-BIfpzqdU.js → workspace-manager-DjUAJCSs.js} +1 -1
  294. package/server/{workspace-metadata-C8yn8kAH.js → workspace-metadata-9Nn5kgRl.js} +2 -2
  295. package/server/{workspace-metadata-DfgR40YU.js → workspace-metadata-Fd58uUQG.js} +1 -1
  296. package/server/{workspaces-DOeHyKmA.js → workspaces-BjWXntty.js} +94 -120
  297. package/server/writer-CQMGzEkw.js +3 -0
  298. package/server/writer-fe1-8iGc.js +251 -0
  299. package/sync-sources/hooks/record-cost-event.js +2 -1
  300. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  301. package/server/auto-commit-wZ9X7Isd.js +0 -3
  302. package/server/bd-mutex-BItGvLQ8.js +0 -35
  303. package/server/beads-restore-CMbDSB5R.js +0 -60
  304. package/server/cli-CqgiSAU8.js +0 -3
  305. package/server/deacon-swarm-B8pgK2a7.js +0 -2
  306. package/server/dist-BYSj075e.js +0 -3
  307. package/server/forge-CUCYK7h_.js +0 -2
  308. package/server/hume-x9voULey.js +0 -3
  309. package/server/inspect-agent-D8UBDgfR.js +0 -2
  310. package/server/merge-ops-B7m-hBEZ.js +0 -2
  311. package/server/projects-BqRMlDOv.js +0 -3
  312. package/server/providers-gZ0cUgQM.js +0 -3
  313. package/server/public/assets/index-CZiADHcL.css +0 -1
  314. package/server/public/assets/mermaid-GHXKKRXX-DRM2ANcR.js +0 -1
  315. package/server/rally-CRteqXe0.js +0 -3
  316. package/server/record-CJsjvRO4.js +0 -3
  317. package/server/resume-R7xkSmLW.js +0 -3
  318. package/server/settings-CSaXtkoA.js +0 -2
  319. package/server/specs-oaaYaA5c.js +0 -3
  320. package/server/supervisor-03Tj_Wra.js +0 -2
  321. package/server/workflows-B4fIN8VP.js +0 -2
@@ -1,12 +1,12 @@
1
- import { Ft as resolveProjectForIssue, Hr as init_paths, Ln as listProjectsSync, Nn as init_projects, Ot as init_record, br as AGENTS_DIR, er as init_issue_id } from "./config-yaml-C_djSurJ.js";
1
+ import { It as resolveProjectForIssue, Pn as init_projects, Rn as listProjectsSync, kt as init_record, qr as init_paths, tr as init_issue_id, xr as AGENTS_DIR } from "./config-yaml-Dcz-8uit.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
3
- import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-BVc-NeKM.js";
4
- import { c as init_review_status, u as loadReviewStatuses } from "./review-status-BcfwcAcO.js";
5
- import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-DqQa4Dq_.js";
6
- import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-D2TbXDO6.js";
7
- import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-CPitEZo4.js";
8
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BYC2TCk-.js";
9
- import "./close-issue-CrBE7voz.js";
3
+ import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
4
+ import { c as init_review_status, u as loadReviewStatuses } from "./review-status-4qqLkRMu.js";
5
+ import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-CsOzAmRg.js";
6
+ import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-s-esqZ__.js";
7
+ import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-DkivCk1A.js";
8
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-FApNiOOs.js";
9
+ import "./close-issue-BleIwP3f.js";
10
10
  import { join } from "node:path";
11
11
  import { Data, Effect } from "effect";
12
12
  import "fs";
@@ -29,7 +29,50 @@ init_review_status();
29
29
  init_archive_planning();
30
30
  init_docker();
31
31
  init_issue_id();
32
- const execAsync$1 = promisify$1(exec$1);
32
+ const execAsync$2 = promisify$1(exec$1);
33
+ const ARTIFACT_PATH_PREFIXES = [
34
+ ".pan/",
35
+ ".planning/",
36
+ "docs/prds/",
37
+ ".overdeck/"
38
+ ];
39
+ const ARTIFACT_EXCLUSIONS = ARTIFACT_PATH_PREFIXES.map((prefix) => `':!${prefix.slice(0, -1)}'`).join(" ");
40
+ /**
41
+ * Squash-merge detection via the forge. A squash-merged branch is never an
42
+ * ancestor of main and its three-dot diff never empties (the pre-squash
43
+ * commits stay visible against the merge-base), so pure-git checks report it
44
+ * unmerged forever. The merged PR is the authoritative record: if a merged PR
45
+ * has this branch as head, its merge commit landed on main, and the branch has
46
+ * no post-merge code commits, the branch is merged. Returns false on any
47
+ * failure (no gh, GitLab remote, no PR) so callers fall through conservatively.
48
+ */
49
+ async function isSquashMergedViaPr(branchName, tipRef, projectPath) {
50
+ try {
51
+ const { stdout } = await execAsync$2(`gh pr list --head "${branchName}" --state merged --json headRefOid,mergeCommit --limit 1`, {
52
+ cwd: projectPath,
53
+ encoding: "utf-8",
54
+ timeout: 15e3
55
+ });
56
+ const pr = JSON.parse(stdout)[0];
57
+ if (!pr?.headRefOid || !pr.mergeCommit?.oid) return false;
58
+ await execAsync$2(`git merge-base --is-ancestor ${pr.mergeCommit.oid} main`, {
59
+ cwd: projectPath,
60
+ encoding: "utf-8"
61
+ });
62
+ const { stdout: tipSha } = await execAsync$2(`git rev-parse "${tipRef}"`, {
63
+ cwd: projectPath,
64
+ encoding: "utf-8"
65
+ });
66
+ if (tipSha.trim() === pr.headRefOid) return true;
67
+ const { stdout: filesOut } = await execAsync$2(`git log ${pr.headRefOid}..${tipRef} --name-only --pretty=format:`, {
68
+ cwd: projectPath,
69
+ encoding: "utf-8"
70
+ });
71
+ return filesOut.split("\n").map((line) => line.trim()).filter(Boolean).every((file) => ARTIFACT_PATH_PREFIXES.some((prefix) => file.startsWith(prefix)));
72
+ } catch {
73
+ return false;
74
+ }
75
+ }
33
76
  /**
34
77
  * Check if a feature branch has been merged into main.
35
78
  *
@@ -42,7 +85,7 @@ async function isBranchMerged(branchName, projectPath) {
42
85
  try {
43
86
  const issueId = branchName.replace("feature/", "").toUpperCase();
44
87
  if (loadReviewStatuses()[issueId]?.mergeStatus === "merged") {
45
- const { stdout: aheadOfMain } = await execAsync$1(`git log main..${branchName} --oneline 2>/dev/null || true`, {
88
+ const { stdout: aheadOfMain } = await execAsync$2(`git log main..${branchName} --oneline 2>/dev/null || true`, {
46
89
  cwd: projectPath,
47
90
  encoding: "utf-8"
48
91
  });
@@ -52,12 +95,12 @@ async function isBranchMerged(branchName, projectPath) {
52
95
  };
53
96
  }
54
97
  } catch {}
55
- const { stdout: branchExists } = await execAsync$1(`git branch --list "${branchName}" 2>/dev/null || true`, {
98
+ const { stdout: branchExists } = await execAsync$2(`git branch --list "${branchName}" 2>/dev/null || true`, {
56
99
  cwd: projectPath,
57
100
  encoding: "utf-8"
58
101
  });
59
102
  if (branchExists.trim()) try {
60
- await execAsync$1(`git merge-base --is-ancestor ${branchName} main`, {
103
+ await execAsync$2(`git merge-base --is-ancestor ${branchName} main`, {
61
104
  cwd: projectPath,
62
105
  encoding: "utf-8"
63
106
  });
@@ -67,7 +110,7 @@ async function isBranchMerged(branchName, projectPath) {
67
110
  };
68
111
  } catch {
69
112
  try {
70
- const { stdout: codeDiff } = await execAsync$1(`git diff main...${branchName} -- ':!.planning' ':!docs/prds' ':!.overdeck/prompts' 2>/dev/null || true`, {
113
+ const { stdout: codeDiff } = await execAsync$2(`git diff main...${branchName} -- ${ARTIFACT_EXCLUSIONS} 2>/dev/null || true`, {
71
114
  cwd: projectPath,
72
115
  encoding: "utf-8"
73
116
  });
@@ -76,7 +119,11 @@ async function isBranchMerged(branchName, projectPath) {
76
119
  message: "Code changes squash-merged to main (only planning artifacts remain on branch)"
77
120
  };
78
121
  } catch {}
79
- const { stdout: unmerged } = await execAsync$1(`git log main..${branchName} --oneline 2>/dev/null || true`, {
122
+ if (await isSquashMergedViaPr(branchName, branchName, projectPath)) return {
123
+ status: "merged",
124
+ message: `Merged PR found for ${branchName} (squash merge)`
125
+ };
126
+ const { stdout: unmerged } = await execAsync$2(`git log main..${branchName} --oneline 2>/dev/null || true`, {
80
127
  cwd: projectPath,
81
128
  encoding: "utf-8"
82
129
  });
@@ -85,14 +132,14 @@ async function isBranchMerged(branchName, projectPath) {
85
132
  message: `${unmerged.trim() ? unmerged.trim().split("\n").length : 0} unmerged commit(s) on ${branchName}. Merge before closing out.`
86
133
  };
87
134
  }
88
- const { stdout: remoteBranch } = await execAsync$1(`git ls-remote --heads origin "${branchName}" 2>/dev/null || true`, {
135
+ const { stdout: remoteBranch } = await execAsync$2(`git ls-remote --heads origin "${branchName}" 2>/dev/null || true`, {
89
136
  cwd: projectPath,
90
137
  encoding: "utf-8"
91
138
  });
92
139
  if (remoteBranch.trim()) {
93
- await execAsync$1(`git fetch origin ${branchName}`, { cwd: projectPath }).catch(() => {});
140
+ await execAsync$2(`git fetch origin ${branchName}`, { cwd: projectPath }).catch(() => {});
94
141
  try {
95
- await execAsync$1(`git merge-base --is-ancestor origin/${branchName} main`, {
142
+ await execAsync$2(`git merge-base --is-ancestor origin/${branchName} main`, {
96
143
  cwd: projectPath,
97
144
  encoding: "utf-8"
98
145
  });
@@ -102,7 +149,7 @@ async function isBranchMerged(branchName, projectPath) {
102
149
  };
103
150
  } catch {
104
151
  try {
105
- const { stdout: codeDiff } = await execAsync$1(`git diff main...origin/${branchName} -- ':!.planning' ':!docs/prds' ':!.overdeck/prompts' 2>/dev/null || true`, {
152
+ const { stdout: codeDiff } = await execAsync$2(`git diff main...origin/${branchName} -- ${ARTIFACT_EXCLUSIONS} 2>/dev/null || true`, {
106
153
  cwd: projectPath,
107
154
  encoding: "utf-8"
108
155
  });
@@ -111,7 +158,11 @@ async function isBranchMerged(branchName, projectPath) {
111
158
  message: "Remote code changes squash-merged to main (only planning artifacts remain on branch)"
112
159
  };
113
160
  } catch {}
114
- const { stdout: remoteUnmerged } = await execAsync$1(`git log main..origin/${branchName} --oneline 2>/dev/null || true`, {
161
+ if (await isSquashMergedViaPr(branchName, `origin/${branchName}`, projectPath)) return {
162
+ status: "merged",
163
+ message: `Merged PR found for ${branchName} (squash merge)`
164
+ };
165
+ const { stdout: remoteUnmerged } = await execAsync$2(`git log main..origin/${branchName} --oneline 2>/dev/null || true`, {
115
166
  cwd: projectPath,
116
167
  encoding: "utf-8"
117
168
  });
@@ -132,7 +183,7 @@ Data.TaggedError("CloseOutError");
132
183
  init_paths();
133
184
  init_tmux();
134
185
  init_docker();
135
- const execAsync = promisify(exec);
186
+ const execAsync$1 = promisify(exec);
136
187
  function escapeRegex(value) {
137
188
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
138
189
  }
@@ -156,19 +207,19 @@ async function reapIssueResidue(projectPath, issueId) {
156
207
  } catch {}
157
208
  }
158
209
  } catch {}
159
- if ((await isBranchMerged(branchName, projectPath)).status === "unmerged") {
160
- actions.push(`skipped reap for ${issueId} — branch unmerged`);
161
- return actions;
162
- }
163
210
  try {
164
- if ((await teardownWorkspaceDockerByNamePromise(issueLower)).networkRemoved) actions.push(`removed Docker stack overdeck-feature-${issueLower}`);
165
- else actions.push(`Docker network overdeck-feature-${issueLower}_devnet still present`);
211
+ if ((await teardownWorkspaceDockerByNamePromise(issueLower)).networkRemoved) actions.push(`removed Docker stack for feature-${issueLower}`);
212
+ else actions.push(`Docker network for feature-${issueLower} still present`);
166
213
  } catch (err) {
167
214
  actions.push(`Docker teardown failed for ${issueId}: ${err.message}`);
168
215
  }
216
+ if ((await isBranchMerged(branchName, projectPath)).status === "unmerged") {
217
+ actions.push(`skipped disk reap for ${issueId} — branch unmerged`);
218
+ return actions;
219
+ }
169
220
  const workspacePath = join(projectPath, "workspaces", `feature-${issueLower}`);
170
221
  if (existsSync$1(workspacePath)) try {
171
- await execAsync(`git worktree remove "${workspacePath}" --force`, { cwd: projectPath });
222
+ await execAsync$1(`git worktree remove "${workspacePath}" --force`, { cwd: projectPath });
172
223
  actions.push(`removed workspace ${workspacePath}`);
173
224
  } catch {
174
225
  try {
@@ -180,11 +231,11 @@ async function reapIssueResidue(projectPath, issueId) {
180
231
  } catch {}
181
232
  }
182
233
  try {
183
- await execAsync(`git branch -D "${branchName}"`, { cwd: projectPath });
234
+ await execAsync$1(`git branch -D "${branchName}"`, { cwd: projectPath });
184
235
  actions.push(`deleted local branch ${branchName}`);
185
236
  } catch {}
186
237
  try {
187
- await execAsync(`git push origin --delete "${branchName}"`, { cwd: projectPath });
238
+ await execAsync$1(`git push origin --delete "${branchName}"`, { cwd: projectPath });
188
239
  actions.push(`deleted remote branch ${branchName}`);
189
240
  } catch {}
190
241
  for (const agentDirName of [`agent-${issueLower}`, `planning-${issueLower}`]) {
@@ -216,6 +267,23 @@ function issueIdFromAgentDir(entryName) {
216
267
  const match = entryName.match(/^agent-([a-z]+-\d+)$/i);
217
268
  return match ? match[1].toUpperCase() : null;
218
269
  }
270
+ const execAsync = promisify(exec);
271
+ async function listFeatureDevnetIssueIds() {
272
+ try {
273
+ const { stdout } = await execAsync(`docker network ls --format '{{.Name}}'`, {
274
+ encoding: "utf-8",
275
+ timeout: 3e4
276
+ });
277
+ const issueIds = /* @__PURE__ */ new Set();
278
+ for (const name of stdout.trim().split("\n")) {
279
+ const match = name.match(/-feature-([a-z]+-\d+)_devnet$/i);
280
+ if (match) issueIds.add(match[1].toUpperCase());
281
+ }
282
+ return [...issueIds];
283
+ } catch {
284
+ return [];
285
+ }
286
+ }
219
287
  async function isClosedIssue(issueId, closedChecks) {
220
288
  let promise = closedChecks.get(issueId);
221
289
  if (!promise) {
@@ -337,9 +405,13 @@ async function reconcileClosedIssueAgents() {
337
405
  if (!await isClosedIssue(issueId, closedChecks)) continue;
338
406
  await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
339
407
  }
408
+ for (const issueId of await listFeatureDevnetIssueIds()) {
409
+ if (!await isClosedIssue(issueId, closedChecks)) continue;
410
+ await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
411
+ }
340
412
  return actions;
341
413
  }
342
414
  //#endregion
343
415
  export { reconcileClosedIssueAgents as n, handleIssueStatusChangedClosed as t };
344
416
 
345
- //# sourceMappingURL=closed-issue-reaper-DX9mYUji.js.map
417
+ //# sourceMappingURL=closed-issue-reaper-mC5pujeb.js.map
@@ -1,3 +1,3 @@
1
- import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-CO0HrK3j.js";
1
+ import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-DW60_5j2.js";
2
2
  init_codex();
3
3
  export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
- import { A as listSessionsSync, L as sessionExists, o as createSession, w as killSession, x as init_tmux } from "./tmux-BVc-NeKM.js";
4
- import { r as CODEX_BEHAVIOR } from "./src-DGAEtABV.js";
5
- import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-D3d2mVyD.js";
2
+ import { br as init_errors } from "./config-yaml-Dcz-8uit.js";
3
+ import { A as listSessionsSync, L as sessionExists, o as createSession, w as killSession, x as init_tmux } from "./tmux-C_d-lSIq.js";
4
+ import { r as CODEX_BEHAVIOR } from "./src-DHn4Rd2F.js";
5
+ import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-Cpj03N4v.js";
6
6
  import { basename, join } from "node:path";
7
7
  import { Effect } from "effect";
8
8
  import { homedir } from "node:os";
@@ -498,4 +498,4 @@ var init_codex = __esmMin((() => {
498
498
  //#endregion
499
499
  export { extractThreadIdFromRollout as a, initCodexHome as c, waitForCodexRollout as d, writeThreadId as f, createCodexRuntimeSync as i, init_codex as l, CodexSpawnTimeout as n, findLatestRollout as o, codexHome as r, findRolloutPath as s, CodexRuntimeSync as t, toCodexSandboxValue as u };
500
500
 
501
- //# sourceMappingURL=codex-CO0HrK3j.js.map
501
+ //# sourceMappingURL=codex-DW60_5j2.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_compact_beads, t as compactBeads } from "./compact-beads-DUkCUFxA.js";
1
+ import { n as init_compact_beads, t as compactBeads } from "./compact-beads-DKL54y6j.js";
2
2
  init_compact_beads();
3
3
  export { compactBeads };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { fn as init_state_read_home, pn as resolveStateReadHomeSync } from "./config-yaml-C_djSurJ.js";
3
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-B5u3NxMl.js";
2
+ import { mn as resolveStateReadHomeSync, pn as init_state_read_home } from "./config-yaml-Dcz-8uit.js";
3
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-33JEP4LZ.js";
4
4
  import { Effect } from "effect";
5
5
  import { existsSync } from "fs";
6
6
  import { join } from "path";
@@ -43,12 +43,19 @@ async function compactBeadsImpl(ctx, opts) {
43
43
  });
44
44
  const count = parseInt(countOutput.trim(), 10) || 0;
45
45
  if (count === 0) return stepSkipped(step, ["No closed beads older than " + days + " days"]);
46
- await execAsync(`bd admin compact --days ${days}`, {
47
- cwd: operationRoot,
48
- encoding: "utf-8"
49
- });
46
+ const { runMutationBatch } = await import("./writer-CQMGzEkw.js");
47
+ const compacted = await runMutationBatch({
48
+ project: { workspacePath: operationRoot },
49
+ reason: `compact beads older than ${days} days`
50
+ }, (bd) => bd.mutate([
51
+ "admin",
52
+ "compact",
53
+ "--days",
54
+ String(days)
55
+ ]));
56
+ if (!compacted.ok) return stepFailed(step, compacted.message);
50
57
  if (stateHome.migrated) {
51
- const { flushAutoCommits, queueBeadsAutoCommit } = await import("./auto-commit-wZ9X7Isd.js");
58
+ const { flushAutoCommits, queueBeadsAutoCommit } = await import("./auto-commit-QAfsu3Sb.js");
52
59
  queueBeadsAutoCommit(ctx.projectPath);
53
60
  const result = await Effect.runPromise(flushAutoCommits(ctx.projectPath));
54
61
  return result.committed ? stepOk(step, [`Compacted ${count} closed beads and committed through overdeck-state`]) : stepFailed(step, `Compacted beads but state write door refused commit: ${result.reason ?? "unknown"}`);
@@ -84,4 +91,4 @@ var init_compact_beads = __esmMin((() => {
84
91
  //#endregion
85
92
  export { init_compact_beads as n, compactBeads as t };
86
93
 
87
- //# sourceMappingURL=compact-beads-DUkCUFxA.js.map
94
+ //# sourceMappingURL=compact-beads-DKL54y6j.js.map
@@ -1,3 +1,3 @@
1
- import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-DsCxzjXK.js";
1
+ import { _ as saveConfigSync, a as getConversationsConfigSync, c as getDefaultConfig, d as getDevrootPathSync, f as init_config, g as saveConfig, h as normalizeRemoteConfig, i as getConversationsConfig, l as getDefaultConfigSync, m as loadConfigSync, n as findDevrootForProject, o as getDashboardApiUrl, p as loadConfig, r as findDevrootForProjectSync, s as getDashboardApiUrlSync, t as checkDevrootDeprecation, u as getDevrootPath } from "./config-ZNnMpIlh.js";
2
2
  init_config();
3
3
  export { checkDevrootDeprecation, findDevrootForProject, findDevrootForProjectSync, getConversationsConfig, getConversationsConfigSync, getDashboardApiUrl, getDashboardApiUrlSync, getDefaultConfig, getDefaultConfigSync, getDevrootPath, getDevrootPathSync, loadConfig, loadConfigSync, normalizeRemoteConfig, saveConfig, saveConfigSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Er as CONFIG_FILE, Hr as init_paths, f as loadConfigSync$1, lr as FsError, t as init_config_yaml, yr as init_errors } from "./config-yaml-C_djSurJ.js";
2
+ import { Dr as CONFIG_FILE, br as init_errors, f as loadConfigSync$1, qr as init_paths, t as init_config_yaml, ur as FsError } from "./config-yaml-Dcz-8uit.js";
3
3
  import { t as require_toml } from "./toml-CeLDATih.js";
4
4
  import { Effect } from "effect";
5
5
  import { existsSync, promises, readFileSync, writeFileSync } from "fs";
@@ -253,4 +253,4 @@ var init_config = __esmMin((() => {
253
253
  //#endregion
254
254
  export { saveConfigSync as _, getConversationsConfigSync as a, getDefaultConfig as c, getDevrootPathSync as d, init_config as f, saveConfig as g, normalizeRemoteConfig as h, getConversationsConfig as i, getDefaultConfigSync as l, loadConfigSync as m, findDevrootForProject as n, getDashboardApiUrl as o, loadConfig as p, findDevrootForProjectSync as r, getDashboardApiUrlSync as s, checkDevrootDeprecation as t, getDevrootPath as u };
255
255
 
256
- //# sourceMappingURL=config-DsCxzjXK.js.map
256
+ //# sourceMappingURL=config-ZNnMpIlh.js.map
@@ -61,6 +61,28 @@ function resolveOhmypiExtensionPath() {
61
61
  for (const candidate of ohmypiExtensionCandidates()) if (existsSync(candidate)) return candidate;
62
62
  return null;
63
63
  }
64
+ function getDocsPaths(overrides = {}) {
65
+ const docsDir = overrides.docsDir ?? join$1(overrides.overdeckHome ?? getOverdeckHome(), "docs");
66
+ return {
67
+ docsDir,
68
+ indexPath: overrides.indexPath ?? join$1(docsDir, "index.sqlite"),
69
+ budgetStatePath: overrides.budgetStatePath ?? join$1(docsDir, "budget-state.json"),
70
+ disableStatePath: overrides.disableStatePath ?? join$1(docsDir, "disable-state.json"),
71
+ telemetryPath: overrides.telemetryPath ?? join$1(docsDir, "telemetry.jsonl")
72
+ };
73
+ }
74
+ function getDocsIndexPath(overrides = {}) {
75
+ return getDocsPaths(overrides).indexPath;
76
+ }
77
+ function getDocsBudgetStatePath(overrides = {}) {
78
+ return getDocsPaths(overrides).budgetStatePath;
79
+ }
80
+ function getDocsDisableStatePath(overrides = {}) {
81
+ return getDocsPaths(overrides).disableStatePath;
82
+ }
83
+ function getDocsTelemetryPath(overrides = {}) {
84
+ return getDocsPaths(overrides).telemetryPath;
85
+ }
64
86
  /**
65
87
  * Detect if running from a overdeck checkout (vs an installed package).
66
88
  *
@@ -10981,8 +11003,9 @@ var init_harness_policy = __esmMin((() => {
10981
11003
  ALLOWED = { allowed: true };
10982
11004
  OHMYPI_ANTHROPIC_SUBSCRIPTION_BLOCK = {
10983
11005
  allowed: false,
10984
- reason: "ohmypi cannot run Anthropic models when authenticated via Claude Code subscription. Switch the Anthropic provider to API-key auth, or pick a non-Anthropic model for ohmypi."
11006
+ reason: "Claude Code subscription Terms of Service restrict Anthropic models to the Claude Code harness — ohmypi cannot run Anthropic models under subscription auth. To proceed, switch the Anthropic provider to API-key auth, or pick a non-Anthropic model for ohmypi."
10985
11007
  };
11008
+ OHMYPI_ANTHROPIC_SUBSCRIPTION_BLOCK.reason;
10986
11009
  SUBSCRIPTION_ONLY_MODEL_BLOCK = {
10987
11010
  allowed: false,
10988
11011
  reason: "This OpenAI model needs a ChatGPT/Codex subscription sign-in — it is not served by the plain OpenAI API key. Run `codex login` on the host (workspace containers inherit the host sign-in), or pick a different model."
@@ -11605,6 +11628,9 @@ function mergeDocsConfig(result, config) {
11605
11628
  if (docs.classifier.timeout_ms !== void 0) result.classifier.timeoutMs = docs.classifier.timeout_ms;
11606
11629
  }
11607
11630
  }
11631
+ function getDefaultDocsConfig() {
11632
+ return cloneDocsConfig(DEFAULT_CONFIG.docs);
11633
+ }
11608
11634
  function mergeTtsConfig(result, config) {
11609
11635
  const tts = config?.tts;
11610
11636
  if (!tts) return;
@@ -14522,6 +14548,6 @@ var init_config_yaml = __esmMin((() => {
14522
14548
  init_load();
14523
14549
  }));
14524
14550
  //#endregion
14525
- export { getModelCapabilitySync as $, extractPrefixSync as $n, writeStatusOverridesSync as $t, KIMI_PLATFORM_BASE_URL as A, getSpecialistRetention as An, PROJECT_DOCS_SUBDIR as Ar, queueIssueRecordCommit as At, qualifyPiModel as B, projects_exports as Bn, getLegacyHome as Br, writeRecordBeadsMapping as Bt, resolveTieredExecutionEnabled as C, findProjectsByRallyProject as Cn, CACHE_AGENTS_DIR as Cr, getIssueRecordBasePath as Ct, canUseModelWithAuthSync as D, getProjectSync as Dn, COSTS_DIR as Dr, getProjectConfigFromWorkspacePath as Dt, canUseHarnessSync as E, getProjectSwarmHotspots as En, CONFIG_FILE as Er, getIssueWorkspacePath as Et, getKimiAnthropicBaseUrl as F, initializeProjectsConfigSync as Fn, SKILLS_DIR as Fr, resolveProjectForIssue as Ft, init_registry as G, resolveProjectFromIssueSync as Gn, resolveOhmypiExtensionPath as Gr, writeRecordHazardsSync as Gt, ensureOpenAICompatibleProxyRunning as H, registerProjectSync as Hn, init_paths as Hr, writeRecordDecisions as Ht, getProviderEnvSync as I, listProjects as In, SYNC_SOURCES as Ir, writeAgentHarnessModel as It, computeModelOrigin as J, saveProjectsConfigSync as Jn, writeRecordScopeDriftSync as Jt, DEFAULT_ROLES as K, resolveProjectPath as Kn, sessionFilePath as Kr, writeRecordResumePoint as Kt, getProviderForModelSync as L, listProjectsSync as Ln, TRAEFIK_DIR as Lr, writeAgentHarnessModelSync as Lt, UnknownModelError as M, hasProjectsSync as Mn, PROJECT_PRDS_COMPLETED_SUBDIR as Mr, readIssueRecordForWorkspaceSync as Mt, clearCredentialFileAuthSync as N, init_projects as Nn, PROJECT_PRDS_PLANNED_SUBDIR as Nr, readIssueRecordSync as Nt, init_harness_policy as O, getSpecialistConfig as On, LOGS_DIR as Or, init_record as Ot, getBuiltInDefaultHarness as P, initializeProjectsConfig as Pn, PROJECT_PRDS_SUBDIR as Pr, readRecordContinueViewSync as Pt, MODEL_DEPRECATIONS as Q, extractNumberSync as Qn, writeStatusOverrideSync as Qt, init_providers as R, loadProjectsConfig as Rn, encodeClaudeProjectDir as Rr, writeIssueRecordForWorkspaceSync as Rt, init_tier_table as S, findProjectByTeamSync as Sn, BIN_DIR as Sr, ensureIssueRecordSync as St, validateTieredExecutionConfig as T, getProject as Tn, CLAUDE_DIR as Tr, getIssueRecordPathForWorkspace as Tt, init_openai_compatible_proxy as U, resolveInfraRepo as Un, isDevMode as Ur, writeRecordDecisionsSync as Ut, setupCredentialFileAuthSync as V, registerProject as Vn, getOverdeckHome as Vr, writeRecordBeadsMappingSync as Vt, defaultBackgroundAiFeatures as W, resolveProjectFromIssue as Wn, packageRoot as Wr, writeRecordHazards as Wt, resolveModel as X, unregisterProject as Xn, writeRecordTieredExecutionOverrideSync as Xt, init_roles as Y, setProjectAutoMergeDefaultSync as Yn, writeRecordTieredExecutionOverride as Yt, MODEL_CAPABILITIES as Z, unregisterProjectSync as Zn, writeStatusOverride as Zt, getDefaultTtsDaemonConfig as _, createDefaultProjectsConfig as _n, TrackerError as _r, buildOwnUri as _t, getConversationsConfigSync as a, queueBeadsAutoCommit as an, require_dist as ar, fmix32 as at, TIERED_EXECUTION_DIFFICULTIES as b, findProjectByPathSync as bn, AGENTS_DIR as br, clearRecordFeedbackSync as bt, isClaudeCodeChannelsEnabled as c, getMainDivergence as cn, ConfigError as cr, COMPLIANCE_MODES as ct, loadConfigNoMigration as d, isStatePlanePath as dn, GitHubApiError as dr, RECORD_DIRNAME as dt, deriveProjectRoot as en, init_issue_id as er, getModelEffortLevelsSync as et, loadConfigSync as f, init_state_read_home as fn, InvalidAgentIdError as fr, RECORD_SCHEMA_VERSION as ft, mergeConfigs as g, PROJECTS_CONFIG_FILE as gn, TmuxError as gr, appendSessionEntrySync as gt, jsYaml as h, init_project_key as hn, ProcessSpawnError as hr, appendSessionEntry as ht, getConversationsConfig as i, queueAutoCommit as in, resolveIssueIdSync as ir, resolveModelIdSync as it, PROVIDERS as j, hasProjects as jn, PROJECT_PRDS_ACTIVE_SUBDIR as jr, readIssueRecord as jt, KIMI_CODING_BASE_URL as k, getSpecialistPromptOverride as kn, OVERDECK_HOME as kr, markRecordPipelineClosedOutSync as kt, isClaudeCodeChannelsMcpEnabled as l, init_state_plane as ln, FsError as lr, PARENT_MODEL_REF as lt, init_js_yaml as m, shouldCommitLegacyWorkspaceArtifacts as mn, MergeConflictError as mr, appendFeedbackEntrySync as mt, clearConfigCache as n, flushAutoCommits as nn, parseIssueIdSync as nr, init_model_capabilities as nt, getGlobalConfigPath as o, STATE_BRANCH_PATHS as on, CheckpointError as or, fnv1a32 as ot, updateConversationsConfig as p, resolveStateReadHomeSync as pn, LinearApiError as pr, appendFeedbackEntry as pt, DEFAULT_WORKHORSES as q, saveProjectsConfig as qn, writeRecordResumePointSync as qt, getConversationSearchConfigSync as r, init_auto_commit as rn, resolveBareNumericIdSync as rr, modelSupportsImagesSync as rt, init_load as s, STATE_PLANE_PATHS as sn, ClaudeCredentialParseError as sr, init_percent as st, init_config_yaml as t, flushAllPendingAutoCommits as tn, normalizeIssueIdSync as tr, hasModelCapabilitySync as tt, isTldrEnabledSync as u, isStatePlaneOnlyStatus as un, GitError as ur, ROLE_EFFORTS as ut, mergeTtsDaemonConfigs as v, extractTeamPrefix as vn, VcsError as vr, claimIssueOwner as vt, resolveTieredExecutionEnabledForIssue as w, getIssuePrefix as wn, CACHE_RULES_DIR as wr, getIssueRecordPath as wt, TieredExecutionConfigError as x, findProjectByTeam as xn, ARCHIVES_DIR as xr, ensureIssueRecord as xt, DEFAULT_TIERED_EXECUTION_CONFIG as y, findProjectByPath as yn, init_errors as yr, clearIssueOwner as yt, piProviderForModel as z, loadProjectsConfigSync as zn, getHandoffsDir as zr, writeIssueRecordSync as zt };
14551
+ export { MODEL_DEPRECATIONS as $, extractNumberSync as $n, writeStatusOverrideSync as $t, KIMI_CODING_BASE_URL as A, getSpecialistPromptOverride as An, OVERDECK_HOME as Ar, markRecordPipelineClosedOutSync as At, piProviderForModel as B, loadProjectsConfigSync as Bn, getDocsBudgetStatePath as Br, writeIssueRecordSync as Bt, init_tier_table as C, findProjectByTeamSync as Cn, BIN_DIR as Cr, ensureIssueRecordSync as Ct, canUseHarnessSync as D, getProjectSwarmHotspots as Dn, CONFIG_FILE as Dr, getIssueWorkspacePath as Dt, validateTieredExecutionConfig as E, getProject as En, CLAUDE_DIR as Er, getIssueRecordPathForWorkspace as Et, getBuiltInDefaultHarness as F, initializeProjectsConfig as Fn, PROJECT_PRDS_SUBDIR as Fr, readRecordContinueViewSync as Ft, defaultBackgroundAiFeatures as G, resolveProjectFromIssue as Gn, getLegacyHome as Gr, writeRecordHazards as Gt, setupCredentialFileAuthSync as H, registerProject as Hn, getDocsIndexPath as Hr, writeRecordBeadsMappingSync as Ht, getKimiAnthropicBaseUrl as I, initializeProjectsConfigSync as In, SKILLS_DIR as Ir, resolveProjectForIssue as It, DEFAULT_WORKHORSES as J, saveProjectsConfig as Jn, isDevMode as Jr, writeRecordResumePointSync as Jt, init_registry as K, resolveProjectFromIssueSync as Kn, getOverdeckHome as Kr, writeRecordHazardsSync as Kt, getProviderEnvSync as L, listProjects as Ln, SYNC_SOURCES as Lr, writeAgentHarnessModel as Lt, PROVIDERS as M, hasProjects as Mn, PROJECT_PRDS_ACTIVE_SUBDIR as Mr, readIssueRecord as Mt, UnknownModelError as N, hasProjectsSync as Nn, PROJECT_PRDS_COMPLETED_SUBDIR as Nr, readIssueRecordForWorkspaceSync as Nt, canUseModelWithAuthSync as O, getProjectSync as On, COSTS_DIR as Or, getProjectConfigFromWorkspacePath as Ot, clearCredentialFileAuthSync as P, init_projects as Pn, PROJECT_PRDS_PLANNED_SUBDIR as Pr, readIssueRecordSync as Pt, MODEL_CAPABILITIES as Q, unregisterProjectSync as Qn, writeStatusOverride as Qt, getProviderForModelSync as R, listProjectsSync as Rn, TRAEFIK_DIR as Rr, writeAgentHarnessModelSync as Rt, TieredExecutionConfigError as S, findProjectByTeam as Sn, ARCHIVES_DIR as Sr, ensureIssueRecord as St, resolveTieredExecutionEnabledForIssue as T, getIssuePrefix as Tn, CACHE_RULES_DIR as Tr, getIssueRecordPath as Tt, ensureOpenAICompatibleProxyRunning as U, registerProjectSync as Un, getDocsTelemetryPath as Ur, writeRecordDecisions as Ut, qualifyPiModel as V, projects_exports as Vn, getDocsDisableStatePath as Vr, writeRecordBeadsMapping as Vt, init_openai_compatible_proxy as W, resolveInfraRepo as Wn, getHandoffsDir as Wr, writeRecordDecisionsSync as Wt, init_roles as X, setProjectAutoMergeDefaultSync as Xn, resolveOhmypiExtensionPath as Xr, writeRecordTieredExecutionOverride as Xt, computeModelOrigin as Y, saveProjectsConfigSync as Yn, packageRoot as Yr, writeRecordScopeDriftSync as Yt, resolveModel as Z, unregisterProject as Zn, sessionFilePath as Zr, writeRecordTieredExecutionOverrideSync as Zt, getDefaultDocsConfig as _, PROJECTS_CONFIG_FILE as _n, TmuxError as _r, appendSessionEntrySync as _t, getConversationsConfigSync as a, queueAutoCommit as an, resolveIssueIdSync as ar, resolveModelIdSync as at, DEFAULT_TIERED_EXECUTION_CONFIG as b, findProjectByPath as bn, init_errors as br, clearIssueOwner as bt, isClaudeCodeChannelsEnabled as c, STATE_PLANE_PATHS as cn, ClaudeCredentialParseError as cr, init_percent as ct, loadConfigNoMigration as d, isStatePlaneOnlyStatus as dn, GitError as dr, ROLE_EFFORTS as dt, writeStatusOverridesSync as en, extractPrefixSync as er, getModelCapabilitySync as et, loadConfigSync as f, isStatePlanePath as fn, GitHubApiError as fr, RECORD_DIRNAME as ft, mergeConfigs as g, init_project_key as gn, ProcessSpawnError as gr, appendSessionEntry as gt, jsYaml as h, shouldCommitLegacyWorkspaceArtifacts as hn, MergeConflictError as hr, appendFeedbackEntrySync as ht, getConversationsConfig as i, init_auto_commit as in, resolveBareNumericIdSync as ir, modelSupportsImagesSync as it, KIMI_PLATFORM_BASE_URL as j, getSpecialistRetention as jn, PROJECT_DOCS_SUBDIR as jr, queueIssueRecordCommit as jt, init_harness_policy as k, getSpecialistConfig as kn, LOGS_DIR as kr, init_record as kt, isClaudeCodeChannelsMcpEnabled as l, getMainDivergence as ln, ConfigError as lr, COMPLIANCE_MODES as lt, init_js_yaml as m, resolveStateReadHomeSync as mn, LinearApiError as mr, appendFeedbackEntry as mt, clearConfigCache as n, flushAllPendingAutoCommits as nn, normalizeIssueIdSync as nr, hasModelCapabilitySync as nt, getGlobalConfigPath as o, queueBeadsAutoCommit as on, require_dist as or, fmix32 as ot, updateConversationsConfig as p, init_state_read_home as pn, InvalidAgentIdError as pr, RECORD_SCHEMA_VERSION as pt, DEFAULT_ROLES as q, resolveProjectPath as qn, init_paths as qr, writeRecordResumePoint as qt, getConversationSearchConfigSync as r, flushAutoCommits as rn, parseIssueIdSync as rr, init_model_capabilities as rt, init_load as s, STATE_BRANCH_PATHS as sn, CheckpointError as sr, fnv1a32 as st, init_config_yaml as t, deriveProjectRoot as tn, init_issue_id as tr, getModelEffortLevelsSync as tt, isTldrEnabledSync as u, init_state_plane as un, FsError as ur, PARENT_MODEL_REF as ut, getDefaultTtsDaemonConfig as v, createDefaultProjectsConfig as vn, TrackerError as vr, buildOwnUri as vt, resolveTieredExecutionEnabled as w, findProjectsByRallyProject as wn, CACHE_AGENTS_DIR as wr, getIssueRecordBasePath as wt, TIERED_EXECUTION_DIFFICULTIES as x, findProjectByPathSync as xn, AGENTS_DIR as xr, clearRecordFeedbackSync as xt, mergeTtsDaemonConfigs as y, extractTeamPrefix as yn, VcsError as yr, claimIssueOwner as yt, init_providers as z, loadProjectsConfig as zn, encodeClaudeProjectDir as zr, writeIssueRecordForWorkspaceSync as zt };
14526
14552
 
14527
- //# sourceMappingURL=config-yaml-C_djSurJ.js.map
14553
+ //# sourceMappingURL=config-yaml-Dcz-8uit.js.map
@@ -1,3 +1,3 @@
1
- import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-D47Kl78u.js";
1
+ import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-DTje2Ll7.js";
2
2
  init_conflict_gate();
3
3
  export { buildRealConflictGateDeps, resolveConflictGate };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
3
- import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-BcfwcAcO.js";
4
- import { W as spawnRun, j as messageAgent, t as init_agents } from "./agents-DqQa4Dq_.js";
3
+ import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-4qqLkRMu.js";
4
+ import { W as spawnRun, j as messageAgent, t as init_agents } from "./agents-CsOzAmRg.js";
5
5
  import { exec } from "node:child_process";
6
6
  import { promisify } from "node:util";
7
7
  //#region ../../lib/cloister/conflict-gate.ts
@@ -230,4 +230,4 @@ var init_conflict_gate = __esmMin((() => {
230
230
  //#endregion
231
231
  export { resolveConflictGate as a, init_conflict_gate as i, checkBranchMergeability as n, getCachedConflictGateMergeability as r, buildRealConflictGateDeps as t };
232
232
 
233
- //# sourceMappingURL=conflict-gate-D47Kl78u.js.map
233
+ //# sourceMappingURL=conflict-gate-DTje2Ll7.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hr as init_paths } from "./config-yaml-C_djSurJ.js";
3
- import { o as init_layers } from "./layers-OHHLphl0.js";
2
+ import { qr as init_paths } from "./config-yaml-Dcz-8uit.js";
3
+ import { o as init_layers } from "./layers-CD6FysRU.js";
4
4
  import "fs";
5
5
  import "path";
6
6
  import "os";
@@ -148,4 +148,4 @@ var init_context_layers = __esmMin((() => {
148
148
  //#endregion
149
149
  export { init_render as a, KNOWN_HARNESS_MARKERS as c, validateTemplate as d, hasManagedRegion as i, init_harness as l, REGION_BEGIN as n, userContentOutsideRegion as o, REGION_END as r, HARNESS_MARKERS as s, init_context_layers as t, renderForHarness as u };
150
150
 
151
- //# sourceMappingURL=context-layers-BNhUBTkf.js.map
151
+ //# sourceMappingURL=context-layers-BdUCQ-cl.js.map
@@ -1,4 +1,4 @@
1
- import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-OHHLphl0.js";
2
- import { t as init_context_layers } from "./context-layers-BNhUBTkf.js";
1
+ import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-CD6FysRU.js";
2
+ import { t as init_context_layers } from "./context-layers-BdUCQ-cl.js";
3
3
  init_context_layers();
4
4
  export { codexGlobalContextFile, piGlobalContextFile };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dn as getProjectSync, Nn as init_projects, zn as loadProjectsConfigSync } from "./config-yaml-C_djSurJ.js";
3
- import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-Clew3DpF.js";
4
- import { n as init_issues, t as IssueId } from "./issues-BPcqPqfV.js";
2
+ import { Bn as loadProjectsConfigSync, On as getProjectSync, Pn as init_projects } from "./config-yaml-Dcz-8uit.js";
3
+ import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-bpq1MHKU.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-CwQMphDH.js";
5
5
  import { Context, Effect, Layer, Schema } from "effect";
6
6
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
7
7
  //#region ../../lib/overdeck/control-settings.ts
@@ -403,4 +403,4 @@ var init_control_settings = __esmMin((() => {
403
403
  //#endregion
404
404
  export { setMergeTrainEnabled as C, setFlywheelRequireUatBeforeMerge as S, stampBootReconciliation as T, setDeaconGloballyPaused as _, getFlywheelActiveRunIdSync as a, setFlywheelAutoPickupBacklog as b, isCloisterSpawnsPausedSync as c, isFlywheelAutoPickupBacklog as d, isFlywheelGloballyPaused as f, setCloisterSpawnsPausedSync as g, setBootReconciliationDecision as h, getFlywheelActiveRunId as i, isDeaconGloballyPaused as l, isMergeTrainEnabled as m, FLYWHEEL_GLOBAL_PAUSE_KEY as n, getSetting as o, isFlywheelRequireUatBeforeMerge as p, getBootReconciliationState as r, init_control_settings as s, FLYWHEEL_ACTIVE_RUN_ID_KEY as t, isDeaconGloballyPausedSync as u, setDeaconGloballyPausedSync as v, setSetting as w, setFlywheelGloballyPaused as x, setFlywheelActiveRunId as y };
405
405
 
406
- //# sourceMappingURL=control-settings-KyYNXZLv.js.map
406
+ //# sourceMappingURL=control-settings-DwkAeooY.js.map
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-C_djSurJ.js";
3
- import { a as init_event_store, n as getEventStore } from "./event-store-C71x6h0i.js";
4
- import { Gt as getAgentRuntimeBaseCommand, t as init_agents, un as getProviderExportsForModel } from "./agents-DqQa4Dq_.js";
5
- import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-CFZIjs-M.js";
6
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-x_aLR7U9.js";
7
- import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-C-F5sP9P.js";
8
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-BlE30Q-I.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-Dcz-8uit.js";
3
+ import { a as init_event_store, n as getEventStore } from "./event-store-DRte2Rwt.js";
4
+ import { Gt as getAgentRuntimeBaseCommand, t as init_agents, un as getProviderExportsForModel } from "./agents-CsOzAmRg.js";
5
+ import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-BR1OgvxO.js";
6
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-Dtm9ABuz.js";
7
+ import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-D5Zen3AA.js";
8
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-CtCwBJ2Z.js";
9
9
  import { dirname, join } from "node:path";
10
10
  import { Effect } from "effect";
11
11
  import { existsSync } from "node:fs";
@@ -179,4 +179,4 @@ var init_conversation_compaction = __esmMin((() => {
179
179
  //#endregion
180
180
  export { init_conversation_compaction as a, shouldInterceptManualCompact as c, getConversationCompactionSettings as i, compactConversationNative as n, isCompacting as o, estimateContextTokens as r, maybeCompactBeforeRespawn as s, buildCompactionRuntimeInfo as t };
181
181
 
182
- //# sourceMappingURL=conversation-compaction-D3aS5PnS.js.map
182
+ //# sourceMappingURL=conversation-compaction-OTYgd6eg.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-D3aS5PnS.js";
1
+ import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-OTYgd6eg.js";
2
2
  init_conversation_compaction();
3
3
  export { buildCompactionRuntimeInfo, compactConversationNative, estimateContextTokens, getConversationCompactionSettings, isCompacting, maybeCompactBeforeRespawn, shouldInterceptManualCompact };
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hr as init_paths, Z as MODEL_CAPABILITIES, it as resolveModelIdSync, nt as init_model_capabilities } from "./config-yaml-C_djSurJ.js";
3
- import { a as getHarnessBehavior } from "./src-DGAEtABV.js";
4
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-CaiG63FG.js";
5
- import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-D3d2mVyD.js";
2
+ import { Q as MODEL_CAPABILITIES, at as resolveModelIdSync, qr as init_paths, rt as init_model_capabilities } from "./config-yaml-Dcz-8uit.js";
3
+ import { a as getHarnessBehavior } from "./src-DHn4Rd2F.js";
4
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-DQ2ajr_m.js";
5
+ import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-Cpj03N4v.js";
6
6
  import "node:path";
7
7
  import "node:os";
8
8
  import { open, readFile, stat, watch } from "node:fs/promises";
@@ -1750,4 +1750,4 @@ var init_conversation_service = __esmMin((() => {
1750
1750
  //#endregion
1751
1751
  export { init_codex_conversation_parser as _, contextUsageFromParseResult as a, parseEntireConversation as c, init_pi_conversation_parser as d, isPiSessionFile as f, parseOhmypiConversationMessages as g, isOhmypiSessionFile as h, computeContextUsage as i, parseFromLastCompactBoundary as l, init_ohmypi_conversation_parser as m, gateSnapshotEmission as n, summarizeConversationActivity as o, parsePiConversationMessages as p, watchConversation as r, parseConversationMessages as s, init_conversation_service as t, findLastCompactBoundary as u, parseCodexConversationMessages as v };
1752
1752
 
1753
- //# sourceMappingURL=conversation-service-CFZIjs-M.js.map
1753
+ //# sourceMappingURL=conversation-service-BR1OgvxO.js.map
@@ -1,3 +1,3 @@
1
- import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-CFZIjs-M.js";
1
+ import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-BR1OgvxO.js";
2
2
  init_conversation_service();
3
3
  export { computeContextUsage };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Hr as init_paths, Vr as getOverdeckHome } from "./config-yaml-C_djSurJ.js";
3
- import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-Clew3DpF.js";
4
- import { a as init_event_store, n as getEventStore } from "./event-store-C71x6h0i.js";
2
+ import { Kr as getOverdeckHome, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
3
+ import { T as isNull, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, g as real, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, w as isNotNull, x as eq } from "./infra-bpq1MHKU.js";
4
+ import { a as init_event_store, n as getEventStore } from "./event-store-DRte2Rwt.js";
5
5
  import { join } from "node:path";
6
6
  import { Context, Effect, Layer, Schema, Stream } from "effect";
7
7
  import { readFileSync } from "node:fs";
@@ -1583,4 +1583,4 @@ var init_conversations = __esmMin((() => {
1583
1583
  //#endregion
1584
1584
  export { updateConversationForkFallbackReason as $, isAgentConversationName as A, removeFavorite as B, getConversationByTmuxSession as C, searchFtsSessions as Ct, importLegacyConversation as D, hasOtherActiveConversationOnTmuxSession as E, upsertDiscoveredSession as Et, markConversationEnded as F, setConversationHarness as G, setClearedToConvId as H, markConversationRunning as I, setForkRequest as J, setConversationModel as K, normalizeHarness as L, listConversations as M, listFavoritedIds as N, incrementForkRetryCount as O, markConversationActive as P, updateConversationDeliveryMethod as Q, reactivateConversationForSpawn as R, getConversationByName as S, markEnrichmentFailed as St, getStuckForks as T, updateEnrichment as Tt, setConversationClaudeSessionId as U, resolveLiveSessionId as V, setConversationEffort as W, unarchiveConversation as X, setImportedConversationLinks as Y, updateConversationCost as Z, canRefineTitle as _, getDiscoveredStats as _t, ConversationName as a, aggregateDiscoveredSessionCost as at, getConversationByClaudeSessionId as b, insertEmbedding as bt, ConversationsResolver as c, countDiscoveredSessions as ct, TitleSource as d, findDiscoveredSessionIds as dt, updateConversationTitle as et, Transcript as f, findDiscoveredSessions as ft, backfillConversationModel as g, getDiscoveredSessionBySessionId as gt, archiveConversation as h, getDiscoveredSessionByJsonlPath as ht, ConversationId as i, findConversationForCostSessionSync as it, listArchivedConversationsWithEnrichment as j, init_conversations as k, Harness as l, countFtsSessions as lt, TranscriptsWriter as m, getDiscoveredSessionById as mt, BackingFile as n, updateLastAttached as nt, ConversationNotFound as o, aggregateDiscoveredSessionCostBy as ot, TranscriptsResolver as p, findEnrichedSessionIdsMissingEmbedding as pt, setFavorite as q, Conversation as r, updateSpawnError as rt, ConversationWriter as s, buildFilterSql as st, AlreadyArchived as t, updateForkStatus as tt, NotArchived as u, ensureDiscoveredSessionsSchema as ut, canReplaceTitle as v, getEmbedding as vt, getConversationLedgerCosts as w, topKCosine as wt, getConversationById as x, loadEmbeddings as xt, createConversation as y, init_discovered_sessions as yt, recordConversationHandoff as z };
1585
1585
 
1586
- //# sourceMappingURL=conversations-BSOU5qnu.js.map
1586
+ //# sourceMappingURL=conversations-DG2M8WnT.js.map
@@ -1,3 +1,3 @@
1
- import { M as listConversations, k as init_conversations } from "./conversations-BSOU5qnu.js";
1
+ import { M as listConversations, k as init_conversations } from "./conversations-DG2M8WnT.js";
2
2
  init_conversations();
3
3
  export { listConversations };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-CaiG63FG.js";
3
- import { i as init_events, t as appendCostEventSync } from "./events-BFDuPV6n.js";
2
+ import { o as getPricingSync, s as init_cost$1, t as calculateCostSync } from "./cost-DQ2ajr_m.js";
3
+ import { i as init_events, t as appendCostEventSync } from "./events-Bej1w_k8.js";
4
4
  //#region ../../lib/background-ai/cost.ts
5
5
  /** The cost-source tag prefix used for every background AI event. */
6
6
  function backgroundCostSource(feature) {
@@ -52,4 +52,4 @@ var init_cost = __esmMin((() => {
52
52
  //#endregion
53
53
  export { recordBackgroundAiCost as n, init_cost as t };
54
54
 
55
- //# sourceMappingURL=cost-BE_ulOrw.js.map
55
+ //# sourceMappingURL=cost-B2mj17iG.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dr as COSTS_DIR, Hr as init_paths, yr as init_errors } from "./config-yaml-C_djSurJ.js";
2
+ import { Or as COSTS_DIR, br as init_errors, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
3
3
  import "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -464,4 +464,4 @@ var init_cost = __esmMin((() => {
464
464
  //#endregion
465
465
  export { getAllBudgetsSync as a, deleteBudgetSync as i, checkBudgetSync as n, getPricingSync as o, createBudgetSync as r, init_cost as s, calculateCostSync as t };
466
466
 
467
- //# sourceMappingURL=cost-CaiG63FG.js.map
467
+ //# sourceMappingURL=cost-DQ2ajr_m.js.map