@overdeck/desktop 0.45.12 → 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 (355) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +33 -0
  2. package/package.json +7 -2
  3. package/server/{acceptance-criteria-1LHgD9vg.js → acceptance-criteria-DHZk2ceV.js} +2 -2
  4. package/server/{advancing-selfheal-BqsLWqEM.js → advancing-selfheal-CSuZ31bB.js} +5 -5
  5. package/server/{agent-gc-CUb52n7s.js → agent-gc-D_DxfBHR.js} +3 -3
  6. package/server/{agent-state-D-moNwhA.js → agent-state-EP2QFV9n.js} +1 -1
  7. package/server/{agent-state-service-BzESvLOf.js → agent-state-service-BZkvgQf4.js} +5 -5
  8. package/server/{agent-state-service-BaZH7sXJ.js → agent-state-service-C_2ZAQRP.js} +1 -1
  9. package/server/{agents-B5LfpLPv.js → agents-CsOzAmRg.js} +145 -78
  10. package/server/{agents-C4kZ8a2r.js → agents-DCvyTXNU.js} +1 -1
  11. package/server/{archive-planning-BbZe-8IK.js → archive-planning-CTILQRnV.js} +1 -1
  12. package/server/{archive-planning-oX1pj6nY.js → archive-planning-DkivCk1A.js} +4 -4
  13. package/server/{artifact-index-jobs-DGr6bxev.js → artifact-index-jobs-CmsvQ1ey.js} +2 -2
  14. package/server/auto-commit-QAfsu3Sb.js +3 -0
  15. package/server/{backlog-auto-trigger-BlJHikOm.js → backlog-auto-trigger-ueRaT8Dy.js} +2 -2
  16. package/server/{bd-process-lock-i3CYMS-B.js → bd-process-lock-D3S4T4o-.js} +32 -11
  17. package/server/{beads-DD7fYCl5.js → beads-BGGxrkZ5.js} +96 -196
  18. package/server/{beads-BNU-fb48.js → beads-CYsLiyIM.js} +1 -1
  19. package/server/{beads-query-e6oku4P5.js → beads-query-B1DlJVp9.js} +24 -99
  20. package/server/beads-restore-CyygSmmn.js +23 -0
  21. package/server/{behavior-CPf0pbOt.js → behavior-Cpj03N4v.js} +3 -3
  22. package/server/{briefing-freshness-B2FdLwIv.js → briefing-freshness-Kh5V8RTh.js} +4 -4
  23. package/server/{checkpoint-manager-eFgaMMu4.js → checkpoint-manager-CAFos8e1.js} +1 -1
  24. package/server/{checkpoint-manager-JryW6MpM.js → checkpoint-manager-fu9oVsR-.js} +2 -2
  25. package/server/checkpoint-worker.js +1 -1
  26. package/server/{checkpoints-qvOqvMuC.js → checkpoints-1BqOlS4q.js} +2 -2
  27. package/server/{checkpoints-BK17oicz.js → checkpoints-DvhGi8P_.js} +1 -1
  28. package/server/claude-hooks-provision-s_wdpeVj.js +360 -0
  29. package/server/{claude-permissions-B6bWGh9d.js → claude-permissions-CaWqysff.js} +2 -2
  30. package/server/{claude-settings-overlay-BPdhTPjo.js → claude-settings-overlay-BbA4FbVI.js} +1 -1
  31. package/server/{claude-settings-overlay-CRyyKKXQ.js → claude-settings-overlay-CcTf0xzG.js} +2 -2
  32. package/server/{cli-B75AieAM.js → cli-BwCvCUBK.js} +9 -9
  33. package/server/cli-ClIQwgMI.js +3 -0
  34. package/server/{cliproxy-CCzwuSNe.js → cliproxy-BsoNNDAj.js} +2 -2
  35. package/server/{cliproxy-DOQf66G9.js → cliproxy-C2xC-3vH.js} +1 -1
  36. package/server/{close-issue-_X3MXJyG.js → close-issue-BleIwP3f.js} +5 -5
  37. package/server/{closed-issue-reaper-CLR7ClsO.js → closed-issue-reaper-BwUUvjEW.js} +1 -1
  38. package/server/{closed-issue-reaper-BsUfBSjM.js → closed-issue-reaper-mC5pujeb.js} +102 -30
  39. package/server/{codex-CY-QRuU9.js → codex-B7DTpwEw.js} +1 -1
  40. package/server/{codex-B4KEpX5V.js → codex-DW60_5j2.js} +5 -5
  41. package/server/{compact-beads-cZds2MTr.js → compact-beads-CK_hHEnB.js} +1 -1
  42. package/server/{compact-beads-uEDccC76.js → compact-beads-DKL54y6j.js} +15 -8
  43. package/server/{config-DARrpYWA.js → config-BRNQJXhA.js} +1 -1
  44. package/server/{config-8sjaU6jZ.js → config-ZNnMpIlh.js} +2 -2
  45. package/server/{config-yaml-ClpGgrf6.js → config-yaml-Dcz-8uit.js} +29 -3
  46. package/server/{conflict-gate-Ds9_2yjd.js → conflict-gate-DGT8jCLp.js} +1 -1
  47. package/server/{conflict-gate-BtB_o-Vi.js → conflict-gate-DTje2Ll7.js} +3 -3
  48. package/server/{context-layers-r2ywnQYA.js → context-layers-BdUCQ-cl.js} +3 -3
  49. package/server/{context-layers-CRCk1QG7.js → context-layers-ByOWUjUg.js} +2 -2
  50. package/server/{control-settings-D1B3u6HP.js → control-settings-DwkAeooY.js} +4 -4
  51. package/server/{conversation-compaction-D86Zo2Ci.js → conversation-compaction-OTYgd6eg.js} +8 -8
  52. package/server/{conversation-compaction-CZRVk4hg.js → conversation-compaction-WYQZUVDm.js} +1 -1
  53. package/server/{conversation-service-CuTVU8dV.js → conversation-service-BR1OgvxO.js} +5 -5
  54. package/server/{conversation-service-CkL-6MuG.js → conversation-service-C_kNZPLx.js} +1 -1
  55. package/server/{conversations-DfJKBDwB.js → conversations-DG2M8WnT.js} +4 -4
  56. package/server/{conversations-BmWEluPL.js → conversations-izHvSoAR.js} +1 -1
  57. package/server/{cost-DAPYN6iA.js → cost-B2mj17iG.js} +3 -3
  58. package/server/{cost-CCnqa5xK.js → cost-DQ2ajr_m.js} +2 -2
  59. package/server/{cost-sync-BDL10Nwu.js → cost-sync-gTayEuWP.js} +3 -3
  60. package/server/{dag-Dv2r5bVD.js → dag-CqTehWpY.js} +3 -3
  61. package/server/{dangerous-git-ops-Dcw7PbYo.js → dangerous-git-ops-DDWQlPC3.js} +1 -1
  62. package/server/dashboard-db-worker.js +6 -6
  63. package/server/{deacon-DYnZH7kC.js → deacon-BqW9HMew.js} +3 -3
  64. package/server/{deacon-CM0MxbS8.js → deacon-DrKDBeJL.js} +161 -1594
  65. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-D1wEK6zF.js} +1 -1
  66. package/server/deacon-swarm-BY5hKNaU.js +2 -0
  67. package/server/{deacon-swarm-BstYoz8Q.js → deacon-swarm-CO_A7xyd.js} +12 -105
  68. package/server/deacon.js +7 -7
  69. package/server/{devcontainer-renderer-CaYOG9JN.js → devcontainer-renderer-BQolp_qZ.js} +3 -3
  70. package/server/{dist-BIC8spJ0.js → dist-Bc32rWJB.js} +1 -1
  71. package/server/dist-DGTwcZhI.js +3 -0
  72. package/server/{docker-DDI1shu3.js → docker-s-esqZ__.js} +67 -28
  73. package/server/{ensure-devcontainer-DCAg3ksz.js → ensure-devcontainer-DA4-jF6R.js} +4 -4
  74. package/server/{ensure-devcontainer-CbSXvN9W.js → ensure-devcontainer-pUVaT0h3.js} +1 -1
  75. package/server/{esm-shims-DiV9jHa_.js → esm-shims-CJHy8CZY.js} +1 -1
  76. package/server/{event-store-DU3HkZlN.js → event-store-CcJAhKCl.js} +1 -1
  77. package/server/{event-store-DCMqyI07.js → event-store-DRte2Rwt.js} +3 -3
  78. package/server/{events-BfiosVAn.js → events-Bej1w_k8.js} +3 -3
  79. package/server/{events-DLRxpSuV.js → events-CtsLScn8.js} +1 -1
  80. package/server/export-Dx_qJ3h8.js +87 -0
  81. package/server/{factory-BMtWV9iv.js → factory-FN727tWr.js} +4 -4
  82. package/server/{feature-registry-population-DA7bO6Zn.js → feature-registry-population-ie-yBcQC.js} +4 -4
  83. package/server/{feature-registry-storage-nAY1fbBt.js → feature-registry-storage-CkZTFSsn.js} +2 -2
  84. package/server/{features-DMu7eGmU.js → features-Dtm9ABuz.js} +2 -2
  85. package/server/{feedback-target-DHqcw3cN.js → feedback-target-BYtpyt1i.js} +6 -6
  86. package/server/{feedback-target-B2SEai8-.js → feedback-target-DVJQDiE4.js} +1 -1
  87. package/server/{feedback-writer-DMBdS_jL.js → feedback-writer-DOUhyIW2.js} +1 -1
  88. package/server/{feedback-writer-qvm7UON7.js → feedback-writer-fdE1BzeL.js} +4 -4
  89. package/server/{flywheel-k4FPtCQ_.js → flywheel-Bi82iiNl.js} +1 -1
  90. package/server/{flywheel-Dfpx4bIV.js → flywheel-Bv3wv2S6.js} +23 -15
  91. package/server/{flywheel-D2LdPSic.js → flywheel-CUErLAyN.js} +13 -13
  92. package/server/{flywheel-merge-order-CB4lbXeJ.js → flywheel-merge-order-BaEN3iyN.js} +7 -7
  93. package/server/{flywheel-merge-order-CttTazRY.js → flywheel-merge-order-DXjeBnJ1.js} +1 -1
  94. package/server/{forge-CoPFXFyl.js → forge-ButEdJ31.js} +2 -2
  95. package/server/forge-XlDgPQWs.js +2 -0
  96. package/server/{from-B0YoJl9-.js → from-CbtTxftl.js} +1 -1
  97. package/server/{fts-db-DAHW1yA_.js → fts-db-CBgBLZcL.js} +2 -2
  98. package/server/{fts-operations-DDXDBi0d.js → fts-operations-CI9Xuo_1.js} +2 -2
  99. package/server/{git-utils-DbfC0zls.js → git-utils-BCLRWQ-y.js} +1 -1
  100. package/server/{git-utils-B90Zjzfl.js → git-utils-ClfpP47N.js} +2 -2
  101. package/server/{github-app-C7lftMNj.js → github-app-DRD2woO0.js} +1 -1
  102. package/server/{github-app-BecAnXRX.js → github-app-DscZ0_B6.js} +2 -2
  103. package/server/{github-client-D21rCIXk.js → github-client-DpiZnxGH.js} +2 -2
  104. package/server/{github-client-BwtKZtM0.js → github-client-iFRw8f7e.js} +1 -1
  105. package/server/{github-pr-lookup-CzVWuysl.js → github-pr-lookup-D-EBexxC.js} +2 -2
  106. package/server/{harness-resolve-SkRJm4a7.js → harness-resolve-iMjyNUJ2.js} +3 -3
  107. package/server/{health-events-DA_JLpgZ.js → health-events-B_WsQyYm.js} +1 -1
  108. package/server/{health-events-BT0aAfeA.js → health-events-CRdxDFN2.js} +2 -2
  109. package/server/{hooks-BQxRXtRb.js → hooks-C1ScyVxP.js} +1 -1
  110. package/server/{hooks-DxEn2BoY.js → hooks-C9b7Vqpw.js} +2 -2
  111. package/server/hume-K1pi8jC4.js +3 -0
  112. package/server/{hume-DkVOs1Qi.js → hume-TQ5pvOZ_.js} +2 -2
  113. package/server/{idle-stack-reaper-DGy7tvC9.js → idle-stack-reaper-B1kG7B_X.js} +2 -2
  114. package/server/{idle-stack-reaper-C7fJL8jH.js → idle-stack-reaper-iFVOAoJy.js} +1 -1
  115. package/server/{infra-DE3C4PMr.js → infra-bpq1MHKU.js} +50 -3
  116. package/server/{injection-Dt22tGvS.js → injection-BLWfwTVZ.js} +1 -1
  117. package/server/{injection-Cc4Qt8LZ.js → injection-DJqWld1v.js} +7 -7
  118. package/server/inspect-agent-477VxQim.js +2 -0
  119. package/server/{inspect-agent-DOaCDkCF.js → inspect-agent-DytCsltn.js} +9 -9
  120. package/server/{internal-token-nobT6FhA.js → internal-token-CCaWaTwE.js} +1 -1
  121. package/server/{internal-token-B_1YLWLI.js → internal-token-CjlhdufS.js} +2 -2
  122. package/server/{io-A7ZuOBkz.js → io-BiQ2Cs3k.js} +2 -2
  123. package/server/{issue-closed-Da3DeomA.js → issue-closed-FApNiOOs.js} +4 -4
  124. package/server/{issue-lifecycle-Bd9XBJAQ.js → issue-lifecycle-BkFWNjlD.js} +1 -1
  125. package/server/{issue-lifecycle-543pQX9D.js → issue-lifecycle-C-K53ASY.js} +21 -21
  126. package/server/{issue-service-singleton-Brc3t0SV.js → issue-service-singleton-CuHGpJJP.js} +8 -8
  127. package/server/{issue-service-singleton-BC2JLZi7.js → issue-service-singleton-bG1WdSdQ.js} +1 -1
  128. package/server/{issues-D3kt9UWE.js → issues-CwQMphDH.js} +2 -2
  129. package/server/jsonl-parser-dNIjHgym.js +245 -0
  130. package/server/{label-cleanup-w9X_T3AQ.js → label-cleanup-DYvAZknd.js} +3 -3
  131. package/server/{layers-Cwe1J-9o.js → layers-CD6FysRU.js} +2 -2
  132. package/server/{lifecycle-f1GbDK33.js → lifecycle-C_73gi-C.js} +7 -7
  133. package/server/{lifecycle-io-D56q8zlO.js → lifecycle-io-C_Wu0_i-.js} +1 -1
  134. package/server/{lifecycle-io-Bqvj0m3i.js → lifecycle-io-CeYxP3cE.js} +4 -4
  135. package/server/{linear-client-Bh4T4S-c.js → linear-client-4qoKnuQu.js} +1 -1
  136. package/server/{linear-client-CfJMTAYd.js → linear-client-EtVyblVz.js} +2 -2
  137. package/server/memory-fts-worker.js +1 -1
  138. package/server/{merge-ZrXFM3jv.js → merge-7rqkTUm2.js} +3 -3
  139. package/server/merge-agent-36wfYm2u.js +3 -0
  140. package/server/{merge-agent-CHHs5S_0.js → merge-agent-4Zhlgvqp.js} +62 -27
  141. package/server/{merge-batch-BwhGdlh4.js → merge-batch-itfnwdsT.js} +1 -1
  142. package/server/{merge-blockers-BMhDpMl_.js → merge-blockers-Bto_Oe_o.js} +2 -2
  143. package/server/{merge-DRMPa8CQ.js → merge-brm721Es.js} +1 -1
  144. package/server/merge-ops-PzqsW69V.js +2 -0
  145. package/server/{merge-rebase-R7MfqpiE.js → merge-rebase-Czfqfe4q.js} +2 -2
  146. package/server/{merge-set-B3Breacq.js → merge-set-BIkGQL9j.js} +9 -5
  147. package/server/{merge-set-D-iXNP0I.js → merge-set-G1RHcu3D.js} +1 -1
  148. package/server/{merge-sync-DHWbGtjR.js → merge-sync-B43Dybea.js} +2 -2
  149. package/server/{merge-sync-bOOtfeXR.js → merge-sync-DIrmlZUr.js} +1 -1
  150. package/server/{merge-train-98ptZrPT.js → merge-train-DGqVuNZV.js} +3 -3
  151. package/server/{merge-train-deps-B5FWJTE2.js → merge-train-deps-q15XLnAS.js} +4 -4
  152. package/server/{merge-verification-BGiuiXAK.js → merge-verification-Cqfxx6bE.js} +4 -4
  153. package/server/{multipart-parser-D7mzNNDm.js → multipart-parser-CiPxxfUH.js} +2 -2
  154. package/server/node_modules/.package-lock.json +1 -1
  155. package/server/{orphan-proposed-reconciler-BSGCNJ6X.js → orphan-proposed-reconciler-BWWHn4Lr.js} +15 -39
  156. package/server/{orphan-proposed-reconciler-CSuxivr9.js → orphan-proposed-reconciler-DAD9FJtQ.js} +1 -1
  157. package/server/package-lock.json +2 -2
  158. package/server/package.json +1 -1
  159. package/server/{pan-dir-DoPtdHrp.js → pan-dir-Bj7Hy8iu.js} +3 -3
  160. package/server/{paths-CVDLPxXp.js → paths-C9DkhIOT.js} +2 -2
  161. package/server/{pickup-KLRUhThD.js → pickup-CKRuGDsB.js} +1 -1
  162. package/server/{pipeline-notifier-BtYHbBPl.js → pipeline-notifier-BkKbQ8ji.js} +1 -1
  163. package/server/{pipeline-notifier-WD2dnOsR.js → pipeline-notifier-CAurUste.js} +2 -2
  164. package/server/project-pipelines-BRWaGmI4.js +162 -0
  165. package/server/projects-KJ94e50I.js +3 -0
  166. package/server/{prompts-Cg7e9FPb.js → prompts-DfI5qbTW.js} +2 -2
  167. package/server/{providers-fLduChnX.js → providers-CWDXoaMA.js} +7 -7
  168. package/server/providers-D-5txBRc.js +3 -0
  169. package/server/public/assets/{chunk-BO2N2NFS-aNlsGDCu.js → chunk-BO2N2NFS-ClukPsZQ.js} +4 -4
  170. package/server/public/assets/{diagram-OG6HWLK6-CnjkrvT8.js → diagram-OG6HWLK6-Avtvq2qI.js} +1 -1
  171. package/server/public/assets/{dist-Bg3Sbsx4.js → dist-BEHQuasD.js} +3 -3
  172. package/server/public/assets/{dist-CGKBCieA.js → dist-BvmY-qb1.js} +1 -1
  173. package/server/public/assets/{ganttDiagram-6RSMTGT7-C8LLKj23.js → ganttDiagram-6RSMTGT7-7KhCd0fH.js} +1 -1
  174. package/server/public/assets/{highlighted-body-OFNGDK62-BSDEUvhW.js → highlighted-body-OFNGDK62-iQoBMTf0.js} +1 -1
  175. package/server/public/assets/index-DUFDmvmH.css +1 -0
  176. package/server/public/assets/index-DnTZ2QeN.js +796 -0
  177. package/server/public/assets/{linear-DEbYZoxg.js → linear-CiJHW9g5.js} +1 -1
  178. package/server/public/assets/mermaid-GHXKKRXX-DZJOwgBG.js +1 -0
  179. package/server/public/assets/{pieDiagram-4H26LBE5-BtZL5pXE.js → pieDiagram-4H26LBE5-BOhmvUhW.js} +1 -1
  180. package/server/public/assets/{prod-DYVvIyuh.js → prod-DmLBBqat.js} +4 -4
  181. package/server/public/assets/{quadrantDiagram-W4KKPZXB-a7vS8Jc8.js → quadrantDiagram-W4KKPZXB-Cjku660G.js} +1 -1
  182. package/server/public/assets/{sankeyDiagram-5OEKKPKP-Ckbq2SWH.js → sankeyDiagram-5OEKKPKP-D52w5oPh.js} +1 -1
  183. package/server/public/assets/{xychartDiagram-2RQKCTM6-DJyeNa99.js → xychartDiagram-2RQKCTM6-BTO07_Iv.js} +1 -1
  184. package/server/public/index.html +2 -2
  185. package/server/{pull-requests-1WXmTBlo.js → pull-requests-Bmre-Xlz.js} +3 -3
  186. package/server/{pull-requests-D2SjJIwY.js → pull-requests-CKZPWhjD.js} +1 -1
  187. package/server/{rally-8aQlLLVj.js → rally-BBd9tQ__.js} +3 -3
  188. package/server/rally-Dc2Wnxw2.js +3 -0
  189. package/server/{rally-api-BtvwdX6d.js → rally-api-DDc85HIz.js} +1 -1
  190. package/server/{rally-api-H5I2CBO0.js → rally-api-DxZFObI_.js} +2 -2
  191. package/server/{rally-client-Bt-qHiOh.js → rally-client-BADHn0m_.js} +1 -1
  192. package/server/{rally-client-33CYZYYu.js → rally-client-DvvLiAQP.js} +4 -4
  193. package/server/{reap-terminal-sessions-CAmURC2h.js → reap-terminal-sessions-D6JDJsqF.js} +1 -1
  194. package/server/{reap-terminal-sessions-BwJb2DLJ.js → reap-terminal-sessions-D_xvy-Mk.js} +1 -1
  195. package/server/{rebuild-stack-KHkkrGjx.js → rebuild-stack-D19i080j.js} +6 -6
  196. package/server/{rebuild-stack-CXSgAGPR.js → rebuild-stack-GOsWqXi3.js} +1 -1
  197. package/server/{reconstruct-cache-D_Ml65_6.js → reconstruct-cache-lQrG4xGg.js} +6 -6
  198. package/server/record-pyB6VA32.js +3 -0
  199. package/server/recovery-trip-Dfh1tNHn.js +98 -0
  200. package/server/release-engine-DxcMWRuK.js +306 -0
  201. package/server/release-set-BYsgX7o6.js +125 -0
  202. package/server/{remote-CGuognN3.js → remote-8W2Yhygw.js} +3 -3
  203. package/server/{remote-D0Old0Cv.js → remote-DmeL21dF.js} +3 -3
  204. package/server/{remote-agents-DfhMq6kQ.js → remote-agents-BfQBE6MN.js} +5 -5
  205. package/server/{remote-agents-UHoi4oGr.js → remote-agents-DlvbzO7m.js} +1 -1
  206. package/server/{remote-completion-RZYePR_0.js → remote-completion-BgkiSQmx.js} +12 -12
  207. package/server/resolver-dTpSSzaH.js +158 -0
  208. package/server/resume-DhcIqsTm.js +3 -0
  209. package/server/{review-agent-sZBCpEVv.js → review-agent-D025Wt7w.js} +22 -22
  210. package/server/{review-agent-uwVftH98.js → review-agent-Rub0OpZc.js} +1 -1
  211. package/server/{review-artifacts-C7a45b1_.js → review-artifacts-CX951jTU.js} +6 -6
  212. package/server/{review-context-CErbQpKL.js → review-context-DGGGR_w5.js} +7 -7
  213. package/server/{review-monitor-DHD9m_kh.js → review-monitor-0_qqMcnS.js} +2 -2
  214. package/server/{review-status-gPndPUBc.js → review-status-4qqLkRMu.js} +24 -17
  215. package/server/{review-status-JhQ3qlDS.js → review-status-Br6lAFGO.js} +1 -1
  216. package/server/{review-status-enrichment-qWvWckYN.js → review-status-enrichment-Cr8m3uVL.js} +3 -3
  217. package/server/{review-status-sync-B_GrEke8.js → review-status-sync-D3KUhsdA.js} +1 -1
  218. package/server/{review-status-sync-D3A9KX95.js → review-status-sync-OC-l1lNt.js} +9 -5
  219. package/server/{review-verdict-feedback-4WZ5ZdbC.js → review-verdict-feedback-DrWMuRaj.js} +6 -6
  220. package/server/{review-verdict-feedback-Zo0r_z4m.js → review-verdict-feedback-YOzmsq9G.js} +1 -1
  221. package/server/{rollup-BrUIKMv_.js → rollup-CnxbwaLH.js} +8 -8
  222. package/server/{rollup-Bmhn80tB.js → rollup-DmazRY0j.js} +1 -1
  223. package/server/{scanner-BIGumel_.js → scanner-DE1MqAaF.js} +7 -7
  224. package/server/{sequence-io-DA0akEQN.js → sequence-io-C0uoqfGx.js} +4 -4
  225. package/server/{sequencer-agent-DeflKafB.js → sequencer-agent-i-b2u4SJ.js} +10 -6
  226. package/server/server.js +1115 -297
  227. package/server/{service-V0sUK-OR.js → service-D0_gh2tl.js} +1668 -1408
  228. package/server/{session-fork-Yx3UcAQf.js → session-fork-DZ12vipL.js} +2 -2
  229. package/server/{settings-CFEeQRj2.js → settings-ByqjPtFO.js} +2 -2
  230. package/server/{settings-CxVate0h.js → settings-DCC4BAqj.js} +3 -3
  231. package/server/settings-yydgaqhv.js +2 -0
  232. package/server/{shadow-engineering-BRxnVSDk.js → shadow-engineering-BhnmtW5m.js} +2 -2
  233. package/server/{shadow-state-1aS8FijU.js → shadow-state-ByXZehsy.js} +1 -1
  234. package/server/{shadow-state-BiMwdyl1.js → shadow-state-CKm8xWX9.js} +2 -2
  235. package/server/{ship-log-CMWH3H5-.js → ship-log-DE_0Cv_i.js} +1 -1
  236. package/server/{smart-compaction-Bw1K_Sbl.js → smart-compaction-D5Zen3AA.js} +7 -7
  237. package/server/{smart-compaction-xblMyVpT.js → smart-compaction-h4_ca6Uk.js} +1 -1
  238. package/server/{spawn-planning-session-CzDFSKAQ.js → spawn-planning-session-Bgi7Ub02.js} +1 -1
  239. package/server/{spawn-planning-session-DxLxcM7m.js → spawn-planning-session-Dueit4WX.js} +15 -15
  240. package/server/{specialist-completion-BiEXUHfD.js → specialist-completion-BZ8M-WZ0.js} +1 -1
  241. package/server/{specialist-context-BfkTA81h.js → specialist-context-BMq83C58.js} +5 -5
  242. package/server/{specialist-handoff-logger-BiKuLtNm.js → specialist-handoff-logger-BxX1YefH.js} +2 -2
  243. package/server/{specialist-logs-CFJjGsLC.js → specialist-logs-BWZYcJ6P.js} +3 -3
  244. package/server/{specialists-DdvpFNt1.js → specialists-8ZAguXef.js} +1 -1
  245. package/server/{specialists-B4byf18k.js → specialists-BudKrjOu.js} +76 -76
  246. package/server/{specialists-DjHbwQ_p.js → specialists-DrPrC9Y9.js} +20 -256
  247. package/server/{specialists-BLIreoE7.js → specialists-ZkW4Mb7U.js} +1 -1
  248. package/server/specs-DwoAEGrW.js +3 -0
  249. package/server/{src-fgbU-jJ-.js → src-DHn4Rd2F.js} +25 -3
  250. package/server/{src-mK_M_ZIj.js → src-DNUUqkec.js} +6 -6
  251. package/server/{src-CALBEUMX.js → src-Dv6L03vW.js} +3 -3
  252. package/server/{stack-health-BFM8YlHw.js → stack-health-Dclm7_tu.js} +1 -1
  253. package/server/{stack-health-Qd7rPiVe.js → stack-health-DxsTx7II.js} +2 -2
  254. package/server/{state-home-C2Bicw9N.js → state-home-CRowbXqU.js} +6 -6
  255. package/server/stuck-remediation-CFWUP8_I.js +1491 -0
  256. package/server/stuck-remediation-CLHd-lrF.js +2 -0
  257. package/server/{summary-fork-EWWBvzgE.js → summary-fork-CKc01Our.js} +2 -2
  258. package/server/{summary-fork-DezPkJSm.js → summary-fork-CtCwBJ2Z.js} +8 -8
  259. package/server/{supervisor-D5GC5jUM.js → supervisor-BA5D72Qa.js} +2 -2
  260. package/server/supervisor-DHjumXlL.js +2 -0
  261. package/server/{swarm-readiness-Cf9mommA.js → swarm-readiness-CL5sM9B1.js} +3 -3
  262. package/server/{system-prerequisites-BsI9hxh9.js → system-prerequisites-DmFSXIE5.js} +13 -1
  263. package/server/{teardown-workspace-CWz1pbEK.js → teardown-workspace-DWmFJzTw.js} +37 -68
  264. package/server/{test-agent-queue-TiVXe3ZT.js → test-agent-queue-DjsQoV5X.js} +6 -6
  265. package/server/{test-verdict-CCDd25uN.js → test-verdict-BSqsQp3G.js} +1 -1
  266. package/server/{test-verdict-Bm4uv_AA.js → test-verdict-D1AmZ2c0.js} +1 -1
  267. package/server/{tldr-daemon-C_1frSDj.js → tldr-daemon-C-MGomL8.js} +2 -2
  268. package/server/{tldr-daemon-Big5IZ_M.js → tldr-daemon-DD9rI5gA.js} +1 -1
  269. package/server/{tmux-D57f-XNv.js → tmux-C_d-lSIq.js} +2 -2
  270. package/server/{tmux-DClqWwb8.js → tmux-x291Gjjb.js} +1 -1
  271. package/server/{token-_qujO3JZ.js → token-DfBf1bsd.js} +1 -1
  272. package/server/{tracker-config-BmdJU_w6.js → tracker-config-CNODpd11.js} +2 -2
  273. package/server/{tracker-config-B_Ubts1Z.js → tracker-config-DItsdelv.js} +1 -1
  274. package/server/{tracker-utils-Bg-Sevcv.js → tracker-utils-B9ZoVA9b.js} +1 -1
  275. package/server/{tracker-utils-CWFt6jjV.js → tracker-utils-Ch2_5GGf.js} +2 -2
  276. package/server/{traefik-connect-5EP1WS_Z.js → traefik-connect-BF4x_LUQ.js} +1 -1
  277. package/server/{tunnel-hOBNQbmF.js → tunnel-YD80_IHr.js} +1 -1
  278. package/server/{tunnel-UBf2vyAL.js → tunnel-r_5nHAI6.js} +3 -3
  279. package/server/{types-B5u3NxMl.js → types-33JEP4LZ.js} +1 -1
  280. package/server/{uat-train-DGkIkLxu.js → uat-train-DDI00aqD.js} +1 -1
  281. package/server/{uat-train-qNanv5hN.js → uat-train-DjkFWXge.js} +25 -25
  282. package/server/{validation-C4wegCvH.js → validation-DUTiJnyz.js} +4 -4
  283. package/server/{validation-B0QaLIHP.js → validation-ict8hnXk.js} +1 -1
  284. package/server/{verification-runner-DdleMNLq.js → verification-runner-ATaLbpr5.js} +1 -1
  285. package/server/{verification-runner-CntudBes.js → verification-runner-inLgeQux.js} +12 -12
  286. package/server/{vtt-parser-CKc-smWM.js → vtt-parser-QnRfcjiU.js} +1 -1
  287. package/server/{work-agent-prompt-CG5jFV9A.js → work-agent-prompt-fZljjA1_.js} +12 -12
  288. package/server/{workflows-BK2xs_a8.js → workflows-oBnJ7Tm0.js} +14 -14
  289. package/server/workflows-tU7KKxQi.js +2 -0
  290. package/server/{workspace-C9lC5o3E.js → workspace-B2WOW9Hw.js} +1 -1
  291. package/server/{workspace-CLrSIRCx.js → workspace-CNuW2j41.js} +3 -3
  292. package/server/{workspace-config-DA8U97k9.js → workspace-config-CBgMGhWs.js} +1 -1
  293. package/server/{workspace-manager-BJhW2sky.js → workspace-manager-CB-R07R3.js} +12 -12
  294. package/server/{workspace-manager-Cb2a7bg9.js → workspace-manager-DjUAJCSs.js} +1 -1
  295. package/server/{workspace-metadata-QQmo_Z0l.js → workspace-metadata-9Nn5kgRl.js} +2 -2
  296. package/server/{workspace-metadata-CTRnr323.js → workspace-metadata-Fd58uUQG.js} +1 -1
  297. package/server/{workspaces-Ca4zZs12.js → workspaces-BjWXntty.js} +106 -120
  298. package/server/writer-CQMGzEkw.js +3 -0
  299. package/server/writer-fe1-8iGc.js +251 -0
  300. package/sync-sources/hooks/ask-user-question-hook +87 -0
  301. package/sync-sources/hooks/auto-approve-hook +96 -0
  302. package/sync-sources/hooks/codex-notify-hook +62 -0
  303. package/sync-sources/hooks/gh-issue-trailer-hook +4 -0
  304. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts +7 -0
  305. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts.map +1 -0
  306. package/sync-sources/hooks/gh-issue-trailer-hook.js +239 -0
  307. package/sync-sources/hooks/gh-issue-trailer-hook.js.map +1 -0
  308. package/sync-sources/hooks/gh-issue-trailer-hook.ts +296 -0
  309. package/sync-sources/hooks/git-hooks/post-checkout +109 -0
  310. package/sync-sources/hooks/heartbeat-hook +113 -0
  311. package/sync-sources/hooks/notification-hook +70 -0
  312. package/sync-sources/hooks/notify-complete +79 -0
  313. package/sync-sources/hooks/pan-hook-lib.sh +153 -0
  314. package/sync-sources/hooks/permission-event-hook +24 -0
  315. package/sync-sources/hooks/post-compact-hook +25 -0
  316. package/sync-sources/hooks/pre-compact-hook +26 -0
  317. package/sync-sources/hooks/pre-tool-hook +35 -0
  318. package/sync-sources/hooks/record-cost-event.d.ts +1 -0
  319. package/sync-sources/hooks/record-cost-event.js +31859 -0
  320. package/sync-sources/hooks/record-cost-event.js.map +1 -0
  321. package/sync-sources/hooks/record-cost-event.ts +267 -0
  322. package/sync-sources/hooks/rtk-bash-filter +152 -0
  323. package/sync-sources/hooks/session-start-hook +80 -0
  324. package/sync-sources/hooks/specialist-stop-hook +106 -0
  325. package/sync-sources/hooks/statusline.sh +169 -0
  326. package/sync-sources/hooks/stop-hook +217 -0
  327. package/sync-sources/hooks/tldr-post-edit +72 -0
  328. package/sync-sources/hooks/tldr-read-enforcer +340 -0
  329. package/sync-sources/hooks/tmux-send-keys-guard +87 -0
  330. package/sync-sources/hooks/tsdown.config.ts +14 -0
  331. package/sync-sources/hooks/user-prompt-submit-hook +57 -0
  332. package/sync-sources/hooks/work-agent-stop-hook +424 -0
  333. package/server/auto-commit-CGQlb4rV.js +0 -3
  334. package/server/bd-mutex-BItGvLQ8.js +0 -35
  335. package/server/beads-restore-CMbDSB5R.js +0 -60
  336. package/server/cli-Ch_BWJB2.js +0 -3
  337. package/server/deacon-swarm-CSWGRfzr.js +0 -2
  338. package/server/dist-BUplB3Od.js +0 -3
  339. package/server/forge-IgLR0Ist.js +0 -2
  340. package/server/hume-x9voULey.js +0 -3
  341. package/server/inspect-agent-CYoWAeeB.js +0 -2
  342. package/server/merge-agent-CfohxFWM.js +0 -3
  343. package/server/merge-ops-Czke6UAp.js +0 -2
  344. package/server/projects-Bqfwuqet.js +0 -3
  345. package/server/providers-JjK6izqX.js +0 -3
  346. package/server/public/assets/index-CZiADHcL.css +0 -1
  347. package/server/public/assets/index-LQIfhmgI.js +0 -796
  348. package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +0 -1
  349. package/server/rally-Ba9QoNYc.js +0 -3
  350. package/server/record-De2syxNB.js +0 -3
  351. package/server/resume-CmxF3Kjz.js +0 -3
  352. package/server/settings-DEhYpW0k.js +0 -2
  353. package/server/specs-CVH1kvz3.js +0 -3
  354. package/server/supervisor-DQMK2e3I.js +0 -2
  355. package/server/workflows-pKw9yRSV.js +0 -2
@@ -1,40 +1,40 @@
1
1
  import { n as __esmMin, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $ as getModelCapabilitySync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, En as getProjectSwarmHotspots, Ft as resolveProjectForIssue, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, H as ensureOpenAICompatibleProxyRunning, I as getProviderEnvSync, L as getProviderForModelSync, Lr as encodeClaudeProjectDir, Lt as writeAgentHarnessModelSync, Mt as readIssueRecordForWorkspaceSync, N as clearCredentialFileAuthSync, Nn as init_projects, Nt as readIssueRecordSync, Or as OVERDECK_HOME, Ot as init_record, P as getBuiltInDefaultHarness, R as init_providers, S as init_tier_table, U as init_openai_compatible_proxy, Ur as packageRoot, V as setupCredentialFileAuthSync, Vr as init_paths, Wr as resolveOhmypiExtensionPath, X as resolveModel, Y as init_roles, at as fmix32, b as TIERED_EXECUTION_DIFFICULTIES, bn as findProjectByPathSync, cr as FsError, er as init_issue_id, f as loadConfigSync, fn as init_state_read_home, ir as require_dist, it as resolveModelIdSync, l as isClaudeCodeChannelsMcpEnabled, mn as shouldCommitLegacyWorkspaceArtifacts, nt as init_model_capabilities, or as ClaudeCredentialParseError, ot as fnv1a32, rr as resolveBareNumericIdSync, sr as ConfigError, st as init_percent, t as init_config_yaml, tt as hasModelCapabilitySync, u as isTldrEnabledSync, vr as init_errors, w as resolveTieredExecutionEnabledForIssue, wn as getIssuePrefix, y as DEFAULT_TIERED_EXECUTION_CONFIG, yr as AGENTS_DIR } from "./config-yaml-ClpGgrf6.js";
2
+ import { Ar as OVERDECK_HOME, C as init_tier_table, Dn as getProjectSwarmHotspots, F as getBuiltInDefaultHarness, H as setupCredentialFileAuthSync, It as resolveProjectForIssue, Kn as resolveProjectFromIssueSync, Kr as getOverdeckHome, L as getProviderEnvSync, Nt as readIssueRecordForWorkspaceSync, On as getProjectSync, P as clearCredentialFileAuthSync, Pn as init_projects, Pt as readIssueRecordSync, R as getProviderForModelSync, Rt as writeAgentHarnessModelSync, T as resolveTieredExecutionEnabledForIssue, Tn as getIssuePrefix, U as ensureOpenAICompatibleProxyRunning, W as init_openai_compatible_proxy, X as init_roles, Xr as resolveOhmypiExtensionPath, Yr as packageRoot, Z as resolveModel, Zr as sessionFilePath, at as resolveModelIdSync, b as DEFAULT_TIERED_EXECUTION_CONFIG, br as init_errors, cr as ClaudeCredentialParseError, ct as init_percent, et as getModelCapabilitySync, f as loadConfigSync, hn as shouldCommitLegacyWorkspaceArtifacts, ir as resolveBareNumericIdSync, kt as init_record, l as isClaudeCodeChannelsMcpEnabled, lr as ConfigError, nt as hasModelCapabilitySync, or as require_dist, ot as fmix32, pn as init_state_read_home, qr as init_paths, rt as init_model_capabilities, st as fnv1a32, t as init_config_yaml, tr as init_issue_id, u as isTldrEnabledSync, ur as FsError, w as resolveTieredExecutionEnabled, x as TIERED_EXECUTION_DIFFICULTIES, xn as findProjectByPathSync, xr as AGENTS_DIR, z as init_providers, zr as encodeClaudeProjectDir } from "./config-yaml-Dcz-8uit.js";
3
3
  import { t as require_toml } from "./toml-CeLDATih.js";
4
4
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
5
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DE3C4PMr.js";
6
- import { A as listSessionsSync, C as isPaneDead, E as listPaneValues, I as sendRawKeystroke, L as sessionExists, N as sendEscapeKeyAsync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, W as BLANKED_PROVIDER_ENV, a as capturePaneSync, d as exactPaneTarget, i as capturePane, k as listSessions, o as createSession, q as init_child_env, s as createSessionSync, w as killSession, x as init_tmux, z as setOption } from "./tmux-D57f-XNv.js";
7
- import { a as init_event_store, i as initEventStore } from "./event-store-DCMqyI07.js";
8
- import { a as getHarnessBehavior, i as OHMYPI_BEHAVIOR } from "./src-fgbU-jJ-.js";
9
- import { A as listOverdeckAgentStatesSync, E as readReviewStatusMap, O as getOverdeckAgentStateSync, T as init_review_status_source, c as init_review_status, j as saveOverdeckAgentStateSync, k as init_agent_state_sync, m as resetPipelineVerdictsForWorkStartSync } from "./review-status-gPndPUBc.js";
10
- import { d as init_agents$1, l as countAgentsByStatus, n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-B2FdLwIv.js";
11
- import { o as getPricingSync, s as init_cost } from "./cost-CCnqa5xK.js";
12
- import { t as init_behavior } from "./behavior-CPf0pbOt.js";
13
- import { _ as init_tier_metrics, g as estimateFeedDeliveryTokens, v as recordTierFeedDelivery } from "./cost-sync-BDL10Nwu.js";
5
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-bpq1MHKU.js";
6
+ import { A as listSessionsSync, C as isPaneDead, E as listPaneValues, I as sendRawKeystroke, L as sessionExists, N as sendEscapeKeyAsync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, W as BLANKED_PROVIDER_ENV, a as capturePaneSync, d as exactPaneTarget, i as capturePane, k as listSessions, o as createSession, q as init_child_env, s as createSessionSync, w as killSession, x as init_tmux, z as setOption } from "./tmux-C_d-lSIq.js";
7
+ import { a as init_event_store, i as initEventStore } from "./event-store-DRte2Rwt.js";
8
+ import { a as getHarnessBehavior, i as OHMYPI_BEHAVIOR } from "./src-DHn4Rd2F.js";
9
+ import { A as listOverdeckAgentStatesSync, E as readReviewStatusMap, O as getOverdeckAgentStateSync, T as init_review_status_source, c as init_review_status, j as saveOverdeckAgentStateSync, k as init_agent_state_sync, m as resetPipelineVerdictsForWorkStartSync } from "./review-status-4qqLkRMu.js";
10
+ import { d as init_agents$1, l as countAgentsByStatus, n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-Kh5V8RTh.js";
11
+ import { o as getPricingSync, s as init_cost } from "./cost-DQ2ajr_m.js";
12
+ import { t as init_behavior } from "./behavior-Cpj03N4v.js";
13
+ import { _ as init_tier_metrics, g as estimateFeedDeliveryTokens, v as recordTierFeedDelivery } from "./cost-sync-gTayEuWP.js";
14
14
  import { n as init_agent_runtime_mirror, r as isAgentStateServiceInProcess, t as getRuntimeSnapshot } from "./agent-runtime-mirror-DrWxopNA.js";
15
- import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-B_1YLWLI.js";
16
- import { m as readWorkspacePlanSync, o as init_io } from "./io-A7ZuOBkz.js";
17
- import { c as bridgeGeminiAuthToCliproxy, p as getCliproxyClientEnv, s as bridgeCodexAuthToCliproxySync, v as init_cliproxy } from "./cliproxy-CCzwuSNe.js";
18
- import { f as init_config$1, m as loadConfigSync$1 } from "./config-8sjaU6jZ.js";
19
- import { L as normalizeHarness, R as reactivateConversationForSpawn, S as getConversationByName, k as init_conversations, y as createConversation } from "./conversations-DfJKBDwB.js";
20
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-DA7bO6Zn.js";
21
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-CLrSIRCx.js";
22
- import { a as init_launcher_generator, c as requireModelOverrideSync, i as generateLauncherScriptSync, l as shellQuoteModelIdSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-C2Bicw9N.js";
23
- import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-B6bWGh9d.js";
24
- import { h as workspaceContextFile, o as init_layers } from "./layers-Cwe1J-9o.js";
25
- import { a as extractThreadIdFromRollout, c as initCodexHome, l as init_codex, o as findLatestRollout } from "./codex-B4KEpX5V.js";
26
- import { a as getFlywheelActiveRunIdSync, s as init_control_settings } from "./control-settings-D1B3u6HP.js";
27
- import { n as createTrackerFromConfig, r as init_factory, t as createTracker } from "./factory-BMtWV9iv.js";
28
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-Qd7rPiVe.js";
29
- import { a as createActiveSlice, c as groupItemsByWave, s as getDispatchableItems, u as init_dag } from "./dag-Dv2r5bVD.js";
30
- import { n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-i3CYMS-B.js";
31
- import { n as assertIssueHasBeads, r as init_beads_query, t as BeadsMissingError } from "./beads-query-e6oku4P5.js";
32
- import { c as generateFixedPointPromptSync, f as initHookSync, n as checkHookSync, p as init_hooks } from "./hooks-DxEn2BoY.js";
33
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-SkRJm4a7.js";
34
- import { r as isRoleTerminal, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CAmURC2h.js";
35
- import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-Bqvj0m3i.js";
36
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-Cf9mommA.js";
37
- import { dirname, join } from "node:path";
15
+ import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-CjlhdufS.js";
16
+ import { m as readWorkspacePlanSync, o as init_io } from "./io-BiQ2Cs3k.js";
17
+ import { c as bridgeGeminiAuthToCliproxy, p as getCliproxyClientEnv, s as bridgeCodexAuthToCliproxySync, v as init_cliproxy } from "./cliproxy-BsoNNDAj.js";
18
+ import { f as init_config$1, m as loadConfigSync$1 } from "./config-ZNnMpIlh.js";
19
+ import { L as normalizeHarness, R as reactivateConversationForSpawn, S as getConversationByName, k as init_conversations, y as createConversation } from "./conversations-DG2M8WnT.js";
20
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-ie-yBcQC.js";
21
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-CNuW2j41.js";
22
+ import { a as init_launcher_generator, c as requireModelOverrideSync, i as generateLauncherScriptSync, l as shellQuoteModelIdSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-CRowbXqU.js";
23
+ import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-CaWqysff.js";
24
+ import { h as workspaceContextFile, o as init_layers } from "./layers-CD6FysRU.js";
25
+ import { a as extractThreadIdFromRollout, c as initCodexHome, l as init_codex, o as findLatestRollout } from "./codex-DW60_5j2.js";
26
+ import { a as getFlywheelActiveRunIdSync, s as init_control_settings } from "./control-settings-DwkAeooY.js";
27
+ import { n as createTrackerFromConfig, r as init_factory, t as createTracker } from "./factory-FN727tWr.js";
28
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DxsTx7II.js";
29
+ import { a as createActiveSlice, c as groupItemsByWave, s as getDispatchableItems, u as init_dag } from "./dag-CqTehWpY.js";
30
+ import { n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-D3S4T4o-.js";
31
+ import { n as assertIssueHasBeads, r as init_beads_query, t as BeadsMissingError } from "./beads-query-B1DlJVp9.js";
32
+ import { c as generateFixedPointPromptSync, f as initHookSync, n as checkHookSync, p as init_hooks } from "./hooks-C9b7Vqpw.js";
33
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-iMjyNUJ2.js";
34
+ import { r as isRoleTerminal, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-D6JDJsqF.js";
35
+ import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-CeYxP3cE.js";
36
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-CL5sM9B1.js";
37
+ import { delimiter, dirname, join, relative } from "node:path";
38
38
  import { Data, Duration, Effect, FileSystem } from "effect";
39
39
  import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, statfsSync, unlinkSync, writeFileSync } from "fs";
40
40
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
@@ -722,7 +722,8 @@ var init_identity = __esmMin((() => {
722
722
  * root's own node_modules).
723
723
  * 2. <bundleDir>/supervisor/pty-supervisor.js — desktop layouts; the staged
724
724
  * tree is materialized to ${OVERDECK_HOME}/runtime/pty-supervisor/<hash>/
725
- * (content-hash keyed, so an app upgrade refreshes it) and the vendored
725
+ * (content-hash keyed over the whole staged tree, so an app upgrade
726
+ * refreshes it even when only non-entry files changed) and the vendored
726
727
  * packages land under node_modules/ there for normal Node resolution.
727
728
  *
728
729
  * Missing everywhere is a build/packaging defect and throws — never silently
@@ -736,13 +737,36 @@ function resolvePtySupervisorScriptPath() {
736
737
  throw new Error("pty-supervisor build artifact missing — run `npm run build`.");
737
738
  }
738
739
  /**
740
+ * Hash the contents and relative paths of every file under the staged tree.
741
+ * This detects changes to any copied file, not just the entry point.
742
+ */
743
+ function hashStagedTree(stagedDir) {
744
+ const hash = createHash$1("sha256");
745
+ const walk = (dir) => {
746
+ const entries = readdirSync$1(dir, { withFileTypes: true });
747
+ entries.sort((a, b) => a.name.localeCompare(b.name));
748
+ for (const entry of entries) {
749
+ const full = join(dir, entry.name);
750
+ const rel = relative(stagedDir, full);
751
+ if (entry.isDirectory()) {
752
+ hash.update(`${rel}/\n`);
753
+ walk(full);
754
+ } else if (entry.isFile()) {
755
+ hash.update(`${rel}\n`);
756
+ hash.update(readFileSync$1(full));
757
+ }
758
+ }
759
+ };
760
+ walk(stagedDir);
761
+ return hash.digest("hex").slice(0, 16);
762
+ }
763
+ /**
739
764
  * Copy the staged supervisor tree to durable disk and return the entry path.
740
765
  * Idempotent and race-safe: the copy lands in a temp dir and is renamed into
741
- * place; the target is keyed by the entry file's content hash.
766
+ * place; the target is keyed by a content hash of the entire staged tree.
742
767
  */
743
768
  function materializePtySupervisorRuntime(stagedDir, overdeckHome = getOverdeckHome()) {
744
- const stagedEntry = join(stagedDir, "pty-supervisor.js");
745
- const targetDir = join(overdeckHome, "runtime", "pty-supervisor", createHash$1("sha256").update(readFileSync$1(stagedEntry)).digest("hex").slice(0, 16));
769
+ const targetDir = join(overdeckHome, "runtime", "pty-supervisor", hashStagedTree(stagedDir));
746
770
  const entry = join(targetDir, "pty-supervisor.js");
747
771
  if (existsSync$1(entry)) return entry;
748
772
  const tmpDir = `${targetDir}.tmp-${process.pid}`;
@@ -2300,7 +2324,7 @@ async function createOhmypiFifoPromise(agentId, home) {
2300
2324
  mode: 448
2301
2325
  });
2302
2326
  if (existsSync$1(paths.fifoPath)) unlinkSync$1(paths.fifoPath);
2303
- await execAsync$6(`mkfifo -m 600 ${shellQuote$1(paths.fifoPath)}`);
2327
+ await execAsync$7(`mkfifo -m 600 ${shellQuote$2(paths.fifoPath)}`);
2304
2328
  return paths.fifoPath;
2305
2329
  }
2306
2330
  /**
@@ -2338,14 +2362,14 @@ function writeOhmypiCommandSync(agentId, command, home) {
2338
2362
  closeSync$1(fd);
2339
2363
  }
2340
2364
  }
2341
- function shellQuote$1(s) {
2365
+ function shellQuote$2(s) {
2342
2366
  if (/^[A-Za-z0-9._/-]+$/.test(s)) return s;
2343
2367
  return `'${s.replace(/'/g, `'\\''`)}'`;
2344
2368
  }
2345
- var execAsync$6, OhmypiNotReady, OhmypiFifoError, createOhmypiFifo;
2369
+ var execAsync$7, OhmypiNotReady, OhmypiFifoError, createOhmypiFifo;
2346
2370
  var init_ohmypi_fifo = __esmMin((() => {
2347
2371
  init_paths();
2348
- execAsync$6 = promisify(exec);
2372
+ execAsync$7 = promisify(exec);
2349
2373
  OhmypiNotReady = class extends Error {
2350
2374
  code = "OHMYPI_NOT_READY";
2351
2375
  constructor(message) {
@@ -2405,12 +2429,12 @@ async function claudeSystemPromptFiles(workspace, harness) {
2405
2429
  files.push(await ensureSessionContextBriefingFile());
2406
2430
  const behavior = getHarnessBehavior(harness);
2407
2431
  if (behavior.contextLayerKind === "pi") {
2408
- const { piGlobalContextFile } = await import("./context-layers-CRCk1QG7.js");
2432
+ const { piGlobalContextFile } = await import("./context-layers-ByOWUjUg.js");
2409
2433
  const globalFile = piGlobalContextFile();
2410
2434
  if (existsSync(globalFile)) files.unshift(globalFile);
2411
2435
  }
2412
2436
  if (behavior.contextLayerKind === "codex") {
2413
- const { codexGlobalContextFile } = await import("./context-layers-CRCk1QG7.js");
2437
+ const { codexGlobalContextFile } = await import("./context-layers-ByOWUjUg.js");
2414
2438
  const globalFile = codexGlobalContextFile();
2415
2439
  if (existsSync(globalFile)) files.unshift(globalFile);
2416
2440
  }
@@ -2437,14 +2461,14 @@ async function hasAgentRuntimeInSubtree(rootPid, harness = "claude-code") {
2437
2461
  if (seen.has(pid) || !/^\d+$/.test(pid)) continue;
2438
2462
  seen.add(pid);
2439
2463
  try {
2440
- const { stdout: comm } = await execAsync$4(`ps -p ${pid} -o comm=`);
2464
+ const { stdout: comm } = await execAsync$5(`ps -p ${pid} -o comm=`);
2441
2465
  const name = comm.trim();
2442
2466
  if (expectedProcessNames.has(name)) return true;
2443
2467
  } catch {
2444
2468
  continue;
2445
2469
  }
2446
2470
  try {
2447
- const { stdout: kids } = await execAsync$4(`pgrep -P ${pid}`);
2471
+ const { stdout: kids } = await execAsync$5(`pgrep -P ${pid}`);
2448
2472
  for (const kid of kids.trim().split("\n").filter(Boolean)) queue.push(kid);
2449
2473
  } catch {}
2450
2474
  }
@@ -2563,7 +2587,7 @@ async function injectPiPromptTimeMemory(agentId, prompt) {
2563
2587
  agentRole: agentState.role ?? "work",
2564
2588
  agentHarness: agentState.harness ?? "claude-code"
2565
2589
  };
2566
- const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
2590
+ const { injectPromptTimeMemory } = await import("./injection-BLWfwTVZ.js");
2567
2591
  const result = await injectPromptTimeMemory({
2568
2592
  prompt,
2569
2593
  identity,
@@ -2597,7 +2621,7 @@ async function injectPiConversationMemory(opts, prompt) {
2597
2621
  agentRole: "work",
2598
2622
  agentHarness: "ohmypi"
2599
2623
  };
2600
- const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
2624
+ const { injectPromptTimeMemory } = await import("./injection-BLWfwTVZ.js");
2601
2625
  const result = await injectPromptTimeMemory({
2602
2626
  prompt,
2603
2627
  identity,
@@ -2773,7 +2797,7 @@ async function getRoleRuntimeBaseCommand(model, agentName, role, harness = "clau
2773
2797
  if (provider.name === "openai" && await getProviderAuthMode(validatedModel) === "subscription") return `claude${printFlag}${roleInject}${permissionFlags} --model ${shellQuoteModelIdSync(CLI_PROXY_MODEL_ALIASES[validatedModel] ?? validatedModel)}${effortFlag}${nameFlag}`;
2774
2798
  return `claude${printFlag}${roleInject}${permissionFlags} --model ${quotedModel}${effortFlag}${nameFlag}`;
2775
2799
  }
2776
- var import_dist, execAsync$4, missingRoleDefinitionWarnings, OHMYPI_AGENT_READY_TIMEOUT_SECONDS;
2800
+ var import_dist, execAsync$5, missingRoleDefinitionWarnings, OHMYPI_AGENT_READY_TIMEOUT_SECONDS;
2777
2801
  var init_runtime_command = __esmMin((() => {
2778
2802
  import_dist = /* @__PURE__ */ __toESM(require_dist(), 1);
2779
2803
  init_claude_permissions();
@@ -2793,7 +2817,7 @@ var init_runtime_command = __esmMin((() => {
2793
2817
  init_agent_state();
2794
2818
  init_identity();
2795
2819
  init_provider_env();
2796
- execAsync$4 = promisify$1(exec$1);
2820
+ execAsync$5 = promisify$1(exec$1);
2797
2821
  missingRoleDefinitionWarnings = /* @__PURE__ */ new Set();
2798
2822
  OHMYPI_AGENT_READY_TIMEOUT_SECONDS = 120;
2799
2823
  }));
@@ -3101,7 +3125,7 @@ async function transitionIssueToInReview(issueId, workspacePath) {
3101
3125
  async function buildAgentLaunchConfig(opts) {
3102
3126
  const model = requireModelOverrideSync(opts.model);
3103
3127
  try {
3104
- const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-BPdhTPjo.js");
3128
+ const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-BbA4FbVI.js");
3105
3129
  await Effect.runPromise(injectOverdeckInfraDeny(opts.workspace));
3106
3130
  } catch (err) {
3107
3131
  console.warn(`[agents] injectOverdeckInfraDeny failed for ${opts.agentId} (non-fatal): ${err instanceof Error ? err.message : err}`);
@@ -3182,7 +3206,7 @@ async function retrieveSpawnTimeMemoryContext(input) {
3182
3206
  agentRole: input.role,
3183
3207
  agentHarness: input.harness
3184
3208
  };
3185
- const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
3209
+ const { injectPromptTimeMemory } = await import("./injection-BLWfwTVZ.js");
3186
3210
  return (await injectPromptTimeMemory({
3187
3211
  prompt: input.prompt,
3188
3212
  identity,
@@ -3273,7 +3297,7 @@ async function assertWorkspaceStackHealthyForSpawn(issueId, role, allowHost = fa
3273
3297
  record.attempts += 1;
3274
3298
  spawnStackRebuildState.set(normalizedIssue, record);
3275
3299
  console.log(`[agents] Workspace stack for ${normalizedIssue} unhealthy (${details}) — rebuilding before spawn (attempt ${record.attempts}/${SPAWN_STACK_REBUILD_MAX_ATTEMPTS})`);
3276
- const { rebuildWorkspaceStack } = await import("./rebuild-stack-CXSgAGPR.js");
3300
+ const { rebuildWorkspaceStack } = await import("./rebuild-stack-GOsWqXi3.js");
3277
3301
  const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[agents] ${normalizedIssue} stack rebuild: ${m}`) })).catch((err) => ({
3278
3302
  success: false,
3279
3303
  error: err instanceof Error ? err.message : String(err)
@@ -4186,7 +4210,7 @@ var init_config = __esmMin((() => {
4186
4210
  close_out: {
4187
4211
  remove_workspace: false,
4188
4212
  delete_feature_branch: false,
4189
- auto: false,
4213
+ auto: true,
4190
4214
  auto_delay_minutes: 60
4191
4215
  },
4192
4216
  orphanProposedReconciler: {
@@ -4709,7 +4733,7 @@ async function killLauncherProcessAsync(agentId) {
4709
4733
  const launcherPath = join$1(AGENTS_DIR, agentId, "launcher.sh");
4710
4734
  let pidsOut;
4711
4735
  try {
4712
- const { stdout } = await execAsync$3(`pgrep -f ${JSON.stringify(launcherPath)}`);
4736
+ const { stdout } = await execAsync$4(`pgrep -f ${JSON.stringify(launcherPath)}`);
4713
4737
  pidsOut = stdout.trim();
4714
4738
  } catch {
4715
4739
  return;
@@ -4753,14 +4777,14 @@ function stopAgentSync(agentId) {
4753
4777
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
4754
4778
  });
4755
4779
  }
4756
- var execAsync$3, stopAgent;
4780
+ var execAsync$4, stopAgent;
4757
4781
  var init_termination = __esmMin((() => {
4758
4782
  init_agents();
4759
4783
  init_agent_runtime();
4760
4784
  init_paths();
4761
4785
  init_tmux();
4762
4786
  init_errors();
4763
- execAsync$3 = promisify$1(exec$1);
4787
+ execAsync$4 = promisify$1(exec$1);
4764
4788
  stopAgent = (agentId) => {
4765
4789
  const normalizedId = normalizeAgentId(agentId);
4766
4790
  return Effect.gen(function* () {
@@ -4811,6 +4835,46 @@ var init_termination = __esmMin((() => {
4811
4835
  };
4812
4836
  }));
4813
4837
  //#endregion
4838
+ //#region ../../lib/beads/bd-shim.ts
4839
+ function shellQuote$1(value) {
4840
+ return `'${value.replace(/'/g, `'"'"'`)}'`;
4841
+ }
4842
+ function installBdAgentShim(agentDir, realBdPath) {
4843
+ const binDir = join(agentDir, "bin");
4844
+ mkdirSync$1(binDir, { recursive: true });
4845
+ const path = join(binDir, "bd");
4846
+ writeFileSync$1(path, `#!/usr/bin/env bash
4847
+ set -euo pipefail
4848
+ verb="\${1:-}"
4849
+ subverb="\${2:-}"
4850
+ case "$verb:$subverb" in
4851
+ create:*|update:*|close:*|delete:*|import:*|init:*|migrate:*|batch:*|dep:add|dep:remove|dolt:push|dolt:commit|dolt:reset|config:set|config:unset|comments:add|comments:delete|admin:compact)
4852
+ echo "Raw mutating bd commands are blocked in agent sessions. Use pan beads claim|update|close|create|dep|delete so the canonical writer pulls, validates, exports, and pushes durably." >&2
4853
+ exit 64
4854
+ ;;
4855
+ esac
4856
+ exec ${shellQuote$1(realBdPath)} "$@"
4857
+ `, { mode: 493 });
4858
+ chmodSync$1(path, 493);
4859
+ return {
4860
+ binDir,
4861
+ pathPrefix: `${binDir}${delimiter}${process.env.PATH ?? ""}`
4862
+ };
4863
+ }
4864
+ async function resolveBdAgentShimPath(agentDir) {
4865
+ try {
4866
+ const { stdout } = await execAsync$3("command -v bd", { encoding: "utf8" });
4867
+ const realBd = stdout.trim();
4868
+ return realBd ? installBdAgentShim(agentDir, realBd).pathPrefix : void 0;
4869
+ } catch {
4870
+ return;
4871
+ }
4872
+ }
4873
+ var execAsync$3;
4874
+ var init_bd_shim = __esmMin((() => {
4875
+ execAsync$3 = promisify(exec);
4876
+ }));
4877
+ //#endregion
4814
4878
  //#region ../../lib/agents/spawn.ts
4815
4879
  async function spawnRun(issueId, role, options = {}) {
4816
4880
  const workspace = options.workspace ?? defaultRunWorkspace(issueId);
@@ -4859,18 +4923,18 @@ async function spawnRun(issueId, role, options = {}) {
4859
4923
  let reapWarmIdle = false;
4860
4924
  const advancing = role === "review" || role === "test" || role === "ship";
4861
4925
  try {
4862
- const { isPaneDead } = await import("./tmux-DClqWwb8.js");
4926
+ const { isPaneDead } = await import("./tmux-x291Gjjb.js");
4863
4927
  if (await Effect.runPromise(isPaneDead(agentId))) reapWarmIdle = true;
4864
4928
  else if (advancing) {
4865
- const { getReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
4866
- const { isRoleTerminal } = await import("./reap-terminal-sessions-BwJb2DLJ.js");
4929
+ const { getReviewStatusSync } = await import("./review-status-Br6lAFGO.js");
4930
+ const { isRoleTerminal } = await import("./reap-terminal-sessions-D_xvy-Mk.js");
4867
4931
  const status = getReviewStatusSync(issueId);
4868
4932
  reapWarmIdle = !!status && isRoleTerminal(role, status);
4869
4933
  }
4870
4934
  } catch {}
4871
4935
  if (!reapWarmIdle) throw new Error(`Role run ${agentId} already running. Use 'pan tell' to message it.`);
4872
4936
  console.log(`[spawn] ${agentId} is warm-idle from the previous cycle — reaping it for the new ${role} dispatch (PAN-2579)`);
4873
- const { killSession } = await import("./tmux-DClqWwb8.js");
4937
+ const { killSession } = await import("./tmux-x291Gjjb.js");
4874
4938
  await Effect.runPromise(killSession(agentId)).catch(() => {});
4875
4939
  }
4876
4940
  await assertWorkspaceStackHealthyForSpawn(issueId, role, options.allowHost, workspace);
@@ -4881,7 +4945,7 @@ async function spawnRun(issueId, role, options = {}) {
4881
4945
  model: selectedModel
4882
4946
  });
4883
4947
  if (getProviderForModelSync(selectedModel).name === "openai" && await getProviderAuthMode(selectedModel) === "subscription") {
4884
- const { isCliproxyRunning } = await import("./cliproxy-DOQf66G9.js");
4948
+ const { isCliproxyRunning } = await import("./cliproxy-C2xC-3vH.js");
4885
4949
  if (!await Effect.runPromise(isCliproxyRunning())) throw new Error("CLIProxyAPI sidecar is not running. GPT subscription role runs route through a local cliproxy process managed by `pan up`. Run `pan up` (or restart the dashboard) before spawning a GPT role run.");
4886
4950
  }
4887
4951
  const state = {
@@ -4990,7 +5054,7 @@ async function spawnRun(issueId, role, options = {}) {
4990
5054
  const claudeCmd = `bash ${launcherScript}`;
4991
5055
  console.log(`[claude-invoke] purpose=role-run | role=${role} | model=${state.model} | source=agents.ts:spawnRun | session=${agentId} | command="${claudeCmd}"`);
4992
5056
  try {
4993
- const { preTrustDirectory } = await import("./workspace-manager-Cb2a7bg9.js");
5057
+ const { preTrustDirectory } = await import("./workspace-manager-DjUAJCSs.js");
4994
5058
  preTrustDirectory(workspace);
4995
5059
  } catch {}
4996
5060
  clearReadySignal(agentId);
@@ -5078,7 +5142,7 @@ async function spawnAgent(options) {
5078
5142
  });
5079
5143
  console.log(`[DEBUG] Selected model: ${selectedModel}`);
5080
5144
  if (getProviderForModelSync(selectedModel).name === "openai" && await getProviderAuthMode(selectedModel) === "subscription") {
5081
- const { isCliproxyRunning } = await import("./cliproxy-DOQf66G9.js");
5145
+ const { isCliproxyRunning } = await import("./cliproxy-C2xC-3vH.js");
5082
5146
  if (!await Effect.runPromise(isCliproxyRunning())) throw new Error("CLIProxyAPI sidecar is not running. GPT subscription agents route through a local cliproxy process managed by `pan up`. Run `pan up` (or restart the dashboard) before spawning a GPT agent.");
5083
5147
  }
5084
5148
  const resolvedHarness = await resolveHarness({
@@ -5104,7 +5168,7 @@ async function spawnAgent(options) {
5104
5168
  if (role === "work") {
5105
5169
  try {
5106
5170
  if (resetPipelineVerdictsForWorkStartSync(options.issueId)) {
5107
- const { resetPostMergeState } = await import("./merge-agent-CfohxFWM.js");
5171
+ const { resetPostMergeState } = await import("./merge-agent-36wfYm2u.js");
5108
5172
  resetPostMergeState(options.issueId);
5109
5173
  }
5110
5174
  } catch (err) {
@@ -5115,7 +5179,7 @@ async function spawnAgent(options) {
5115
5179
  });
5116
5180
  }
5117
5181
  if (role === "work") try {
5118
- const { writeStoryFeatureContext } = await import("./work-agent-prompt-CG5jFV9A.js");
5182
+ const { writeStoryFeatureContext } = await import("./work-agent-prompt-fZljjA1_.js");
5119
5183
  await writeStoryFeatureContext(options.workspace, options.issueId);
5120
5184
  } catch (ctxErr) {
5121
5185
  console.warn(`[agents] Could not write story feature context for ${options.issueId}: ${ctxErr.message}`);
@@ -5165,7 +5229,7 @@ async function spawnAgent(options) {
5165
5229
  try {
5166
5230
  const venvPath = join$1(options.workspace, ".venv");
5167
5231
  if (isTldrEnabledSync() && existsSync(venvPath)) {
5168
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-Big5IZ_M.js");
5232
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DD9rI5gA.js");
5169
5233
  const tldrService = getTldrDaemonServiceSync(options.workspace, venvPath);
5170
5234
  if (!(await tldrService.getStatus()).running) {
5171
5235
  await tldrService.start(true);
@@ -5203,13 +5267,13 @@ async function spawnAgent(options) {
5203
5267
  const claudeCmd = `bash ${launcherScript}`;
5204
5268
  console.log(`[claude-invoke] purpose=work-agent | model=${state.model} | source=agents.ts:spawnAgent | session=${agentId} | command="${claudeCmd}"`);
5205
5269
  try {
5206
- const { preTrustDirectory } = await import("./workspace-manager-Cb2a7bg9.js");
5270
+ const { preTrustDirectory } = await import("./workspace-manager-DjUAJCSs.js");
5207
5271
  preTrustDirectory(options.workspace);
5208
5272
  } catch {}
5209
5273
  try {
5210
- const { isGitHubAppConfigured, generateInstallationToken, configureWorkspaceForBot } = await import("./github-app-C7lftMNj.js");
5274
+ const { isGitHubAppConfigured, generateInstallationToken, configureWorkspaceForBot } = await import("./github-app-DRD2woO0.js");
5211
5275
  if (isGitHubAppConfigured()) {
5212
- const { findProjectByPathSync } = await import("./projects-Bqfwuqet.js");
5276
+ const { findProjectByPathSync } = await import("./projects-KJ94e50I.js");
5213
5277
  const ghRepo = findProjectByPathSync(resolve$1(options.workspace, "..", ".."))?.github_repo;
5214
5278
  if (ghRepo) {
5215
5279
  const [owner, repo] = ghRepo.split("/");
@@ -5222,6 +5286,7 @@ async function spawnAgent(options) {
5222
5286
  console.warn(`[${agentId}] GitHub App config failed (falling back to SSH): ${err.message}`);
5223
5287
  }
5224
5288
  clearReadySignal(agentId);
5289
+ const bdShimPath = role === "work" ? await resolveBdAgentShimPath(getAgentDir(agentId)) : void 0;
5225
5290
  await Effect.runPromise(createSession(agentId, options.workspace, claudeCmd, { env: {
5226
5291
  ...BLANKED_PROVIDER_ENV,
5227
5292
  TERM: "xterm-256color",
@@ -5230,6 +5295,7 @@ async function spawnAgent(options) {
5230
5295
  OVERDECK_SESSION_TYPE: role,
5231
5296
  CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION: "false",
5232
5297
  GIT_SEQUENCE_EDITOR: "false",
5298
+ ...bdShimPath ? { PATH: bdShimPath } : {},
5233
5299
  ...flywheelEnv,
5234
5300
  ...providerEnv
5235
5301
  } }));
@@ -5277,7 +5343,7 @@ async function spawnAgent(options) {
5277
5343
  const codexHomeForAgent = join$1(homedir(), ".overdeck", "agents", agentId, "codex-home");
5278
5344
  (async () => {
5279
5345
  try {
5280
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-CY-QRuU9.js");
5346
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-B7DTpwEw.js");
5281
5347
  const rollout = await waitForCodexRollout(codexHomeForAgent, 12e4);
5282
5348
  if (rollout) {
5283
5349
  const threadId = extractThreadIdFromRollout(rollout);
@@ -5420,6 +5486,7 @@ var init_spawn = __esmMin((() => {
5420
5486
  init_state_read_home();
5421
5487
  init_supervisor_channels();
5422
5488
  init_termination();
5489
+ init_bd_shim();
5423
5490
  execAsync$2 = promisify$1(exec$1);
5424
5491
  }));
5425
5492
  //#endregion
@@ -6054,7 +6121,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6054
6121
  return;
6055
6122
  }
6056
6123
  console.log(`[agents] Auto-resuming suspended agent ${normalizedId} to deliver message`);
6057
- const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
6124
+ const { resumeAgent } = await import("./agents-DCvyTXNU.js");
6058
6125
  const result = await resumeAgent(normalizedId, message);
6059
6126
  if (!result.success) throw new Error(`Failed to auto-resume agent: ${result.error}`);
6060
6127
  if (result.messageDelivered === false) throw new Error(`Agent resumed but ready signal did not fire — message not delivered. Feedback is in the mail queue.`);
@@ -6070,7 +6137,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6070
6137
  return;
6071
6138
  }
6072
6139
  console.log(`[agents] Auto-resuming stopped agent ${normalizedId} to deliver feedback (session exists: ${await Effect.runPromise(sessionExists(normalizedId))})`);
6073
- const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
6140
+ const { resumeAgent } = await import("./agents-DCvyTXNU.js");
6074
6141
  const resumeResult = await resumeAgent(normalizedId, message);
6075
6142
  queueAgentMail(normalizedId, message);
6076
6143
  if (resumeResult.success && resumeResult.messageDelivered !== false) {
@@ -6106,7 +6173,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6106
6173
  const resumeRole = agentState.role ?? "work";
6107
6174
  const resumeModel = agentState.model || "claude-sonnet-4-6";
6108
6175
  const fallbackHarness = agentState.harness ?? "claude-code";
6109
- const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-C4kZ8a2r.js");
6176
+ const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-DCvyTXNU.js");
6110
6177
  await assertWorkspaceStackHealthyForSpawn(agentState.issueId || normalizedId.replace(/^agent-/, "").toUpperCase(), resumeRole, agentState.hostOverride === true, agentState.workspace);
6111
6178
  const fallbackPiFields = fallbackHarness === "ohmypi" ? await getOhmypiLauncherFields(normalizedId, resumeModel) : {};
6112
6179
  const fallbackCodexFields = fallbackHarness === "codex" ? getCodexLauncherFields(normalizedId, resumeModel, agentState.workspace) : {};
@@ -6169,7 +6236,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6169
6236
  } else console.warn(`[agents] Fallback-restarted ${normalizedId} but ready signal not detected — feedback in mail queue`);
6170
6237
  return;
6171
6238
  }
6172
- const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-UHoi4oGr.js");
6239
+ const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-DlvbzO7m.js");
6173
6240
  const remoteState = loadRemoteAgentState(normalizedId);
6174
6241
  if (remoteState && remoteState.vmName) {
6175
6242
  console.log(`[agents] Sending message to remote agent ${normalizedId} on ${remoteState.vmName}`);
@@ -6183,7 +6250,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6183
6250
  const expectedHarness = agentState?.harness ?? "claude-code";
6184
6251
  if (panePids.length > 0 && !await hasAgentRuntimeInSubtree(panePids[0], expectedHarness)) {
6185
6252
  console.warn(`[agents] ${normalizedId} tmux session is a zombie (no ${expectedHarness} runtime) — attempting resume`);
6186
- const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
6253
+ const { resumeAgent } = await import("./agents-DCvyTXNU.js");
6187
6254
  const resumeResult = await resumeAgent(normalizedId, message);
6188
6255
  if (resumeResult.success) {
6189
6256
  if (resumeResult.messageDelivered !== false) await appendTellInterventionForUserSource(normalizedId, caller);
@@ -6295,7 +6362,7 @@ async function buildCompactRecoverySeed(agentId) {
6295
6362
  if (agentState?.workspace && sessionId) {
6296
6363
  const sessionFile = sessionFilePath(agentState.workspace, sessionId);
6297
6364
  try {
6298
- const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-CZRVk4hg.js"), import("./smart-compaction-xblMyVpT.js")]);
6365
+ const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-WYQZUVDm.js"), import("./smart-compaction-h4_ca6Uk.js")]);
6299
6366
  const settings = getConversationCompactionSettings();
6300
6367
  summary = (await Effect.runPromise(generateSmartSummary({
6301
6368
  jsonlPath: sessionFile,
@@ -6306,7 +6373,7 @@ async function buildCompactRecoverySeed(agentId) {
6306
6373
  } catch (err) {
6307
6374
  logAgentLifecycleSync(normalizedId, `compact-recovery smart summary failed (${err instanceof Error ? err.message : String(err)}); trying heuristic fallback`);
6308
6375
  try {
6309
- const { generateFallbackSummary } = await import("./summary-fork-EWWBvzgE.js");
6376
+ const { generateFallbackSummary } = await import("./summary-fork-CKc01Our.js");
6310
6377
  summary = await Effect.runPromise(generateFallbackSummary(sessionFile));
6311
6378
  } catch (fallbackErr) {
6312
6379
  logAgentLifecycleSync(normalizedId, `compact-recovery fallback summary failed (${fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr)}); seeding with reseed instructions only`);
@@ -7850,4 +7917,4 @@ var init_agents = __esmMin((() => {
7850
7917
  //#endregion
7851
7918
  export { warnOnBareNumericIssueIds as $, writeAgentStateJsonSync as $n, waitForPromptReady as $t, init_messaging as A, getAgentDir as An, init_bridge_token as At, createOhmypiRuntimeSync as B, markAgentRunningState as Bn, resolveStaffing as Bt, restartAgent as C, __testInternals as Cn, deliverAgentPermissionDecision as Ct, init_context_overflow as D, clearAgentTroubledSync as Dn, captureTranscriptUserRecordSnapshot as Dt, resumeAgent as E, clearAgentTroubled as En, setAgentDeliveryMethod as Et, getActivity as F, init_agent_state as Fn, init_spawn_prep as Ft, init_termination as G, recordStartupSessionExit as Gn, getAgentRuntimeBaseCommand as Gt, init_spawn as H, markAgentTroubled as Hn, resolveTier as Ht, getLatestSessionId as I, isAgentPaused as In, retrieveSpawnTimeMemoryContext as It, dropLegacyAgentStatesMissingRoleAsync as J, saveAgentStateSync as Jn, getProviderAuthMode as Jt, stopAgent as K, resetAgentFailureCount as Kn, getCodexLauncherFields as Kt, getLatestSessionIdSync as L, isAgentTroubled as Ln, transitionIssueToInProgress as Lt, init_operator_interventions as M, getAgentState as Mn, assertWorkspaceStackHealthyForSpawn as Mt, operatorInterventionEvent as N, getAgentStateFilePath as Nn, buildAgentLaunchConfig as Nt, isContextOverflowError as O, clearYieldForResumeSync as On, init_transcript_landing as Ot, appendActivity as P, getAgentStateSync as Pn, defaultRunWorkspace as Pt, listRunningAgentsSync as Q, wipeAgentStateDirs as Qn, roleAgentDefinitionPath as Qt, getSessionId as R, isRole as Rn, transitionIssueToInReview as Rt, recoverAgent as S, SESSION_EXITED_BEFORE_KICKOFF as Sn, parseOhmypiSessionCostResultSync as Sr, deliverAgentMessage as St, init_resume as T, clearAgentPausedSync as Tn, deliverResumeMessageWithTranscriptConfirmation as Tt, spawnAgent as U, recordAgentFailure as Un, OHMYPI_AGENT_READY_TIMEOUT_SECONDS as Ut, init_ohmypi as V, markAgentStoppedState as Vn, init_resolve_tier as Vt, spawnRun as W, recordAgentFailureSync as Wn, describeOhmypiSpawnFailure as Wt, listAgentStates as X, setAgentPausedSync as Xn, init_runtime_command as Xt, init_queries as Y, setAgentPaused as Yn, getRoleRuntimeBaseCommand as Yt, listRunningAgents as Z, setAgentYieldedSync as Zn, injectPiConversationMemory as Zt, init_slot_reconcile as _, decideChannelsForWorkAgent as _n, init_runtime_state as _r, init_config as _t, replayStandingAgent as a, init_claude_auth as an, init_pty_token as ar, init_concurrency as at, autoRecoverAgents as b, writeChannelsBridgeMcpConfig as bn, init_agent_runtime as br, saveCloisterConfigSync as bt, init_tier_supervisor as c, determineModel as cn, resolvePtySupervisorScriptPath as cr, resetPatrolDispatchBudget as ct, spawnTierSupervisor as d, getProviderTmuxFlags as dn, normalizeAgentId as dr, workResumeSlotsAvailable as dt, init_pi_fifo as en, init_persistent_logger as er, countRunningAgents as et, supervisorAgentId as f, init_provider_health as fn, resolveAgentTargetSync as fr, getCachedMemoryVerdict as ft, init_tier_escalation as g, buildDefaultResumeContinueMessage as gn, getAgentRuntimeStateSync as gr, getHealthThresholdsMs as gt, decideEscalation as h, init_openai_auth as hn, getAgentRuntimeState as hr, DEFAULT_CLOISTER_CONFIG as ht, replayCrashedStandingAgent as i, getClaudeAuthStatus as in, readAgentHarnessModelRecordSync as ir, getConcurrencyLimits as it, messageAgent as j, getAgentResumeGateBlockReason as jn, writeBridgeTokenSync as jt, isContextOverflowTail as k, decideResumeGate as kn, probeTranscriptSince as kt, loadPrdDraft as l, getProviderEnvForModel as ln, clearReadySignal as lr, tryReserveAdvancingSlot as lt, init_tier_feed as m, getOpenAIAuthStatus as mn, waitForReadySignal as mr, setCachedMemoryVerdict as mt, compactAtTierRunBoundary as n, init_ohmypi_fifo as nn, logDeaconEventSync as nr, describeRunningAgents as nt, shouldReplayCompactAtTierRunBoundary as o, buildCavemanExports as on, writePtyToken as or, releaseAdvancingSlot as ot, broadcastCommit as p, validateProviderHealth as pn, waitForAgentIdle as pr, init_memory_verdict_cache as pt, stopAgentSync as q, saveAgentState as qn, getOhmypiLauncherFields as qt, contextWindowForModel as r, ohmypiFifoPaths as rn, init_agent_record_sync as rr, emergencyBrake as rt, deliverCommitForReview as s, buildSpawnEnvForModel as sn, init_pty_supervisor_locate as sr, releaseSwarmSlot as st, init_agents as t, piFifoPaths as tn, logAgentLifecycleSync as tr, countRunningSwarmSlotsForIssue as tt, shouldSupervise as u, getProviderExportsForModel as un, isQualifiedAgentId as ur, tryReserveSwarmSlot as ut, listSlotAssignments as v, decideSupervisorForWorkAgent as vn, saveAgentRuntimeState as vr, loadCloisterConfig as vt, buildCompactRecoverySeed as w, clearAgentPaused as wn, deliverInitialPromptWithRetry as wt, detectCrashedAgents as x, GOVERNOR_SLOT_PAUSE_REASON_PREFIX as xn, init_ohmypi_parser as xr, shouldAutoStart as xt, reconcileSlotState as y, dismissDevChannelsDialog as yn, getAgentRuntimeSnapshot as yr, loadCloisterConfigSync as yt, saveSessionId as z, markAgentRunning as zn, init_staffing as zt };
7852
7919
 
7853
- //# sourceMappingURL=agents-B5LfpLPv.js.map
7920
+ //# sourceMappingURL=agents-CsOzAmRg.js.map
@@ -1,3 +1,3 @@
1
- import { $ as warnOnBareNumericIssueIds, $n as writeAgentStateJsonSync, $t as waitForPromptReady, An as getAgentDir, Bn as markAgentRunningState, C as restartAgent, Cn as __testInternals, Ct as deliverAgentPermissionDecision, Dn as clearAgentTroubledSync, E as resumeAgent, En as clearAgentTroubled, Et as setAgentDeliveryMethod, F as getActivity, Gt as getAgentRuntimeBaseCommand, Hn as markAgentTroubled, I as getLatestSessionId, In as isAgentPaused, It as retrieveSpawnTimeMemoryContext, J as dropLegacyAgentStatesMissingRoleAsync, Jn as saveAgentStateSync, Jt as getProviderAuthMode, K as stopAgent, Kn as resetAgentFailureCount, L as getLatestSessionIdSync, Ln as isAgentTroubled, Lt as transitionIssueToInProgress, Mn as getAgentState, Mt as assertWorkspaceStackHealthyForSpawn, Nn as getAgentStateFilePath, Nt as buildAgentLaunchConfig, On as clearYieldForResumeSync, P as appendActivity, Pn as getAgentStateSync, Q as listRunningAgentsSync, Qn as wipeAgentStateDirs, Qt as roleAgentDefinitionPath, R as getSessionId, Rn as isRole, Rt as transitionIssueToInReview, S as recoverAgent, Sn as SESSION_EXITED_BEFORE_KICKOFF, St as deliverAgentMessage, Tn as clearAgentPausedSync, Tt as deliverResumeMessageWithTranscriptConfirmation, U as spawnAgent, Un as recordAgentFailure, Ut as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, Vn as markAgentStoppedState, W as spawnRun, Wn as recordAgentFailureSync, Wt as describeOhmypiSpawnFailure, X as listAgentStates, Xn as setAgentPausedSync, Yn as setAgentPaused, Yt as getRoleRuntimeBaseCommand, Z as listRunningAgents, Zn as setAgentYieldedSync, Zt as injectPiConversationMemory, _n as decideChannelsForWorkAgent, a as replayStandingAgent, b as autoRecoverAgents, bn as writeChannelsBridgeMcpConfig, cn as determineModel, dn as getProviderTmuxFlags, dr as normalizeAgentId, fr as resolveAgentTargetSync, gn as buildDefaultResumeContinueMessage, gr as getAgentRuntimeStateSync, hr as getAgentRuntimeState, i as replayCrashedStandingAgent, j as messageAgent, ln as getProviderEnvForModel, lr as clearReadySignal, mr as waitForReadySignal, n as compactAtTierRunBoundary, o as shouldReplayCompactAtTierRunBoundary, on as buildCavemanExports, pr as waitForAgentIdle, q as stopAgentSync, qn as saveAgentState, r as contextWindowForModel, sn as buildSpawnEnvForModel, t as init_agents, un as getProviderExportsForModel, ur as isQualifiedAgentId, vn as decideSupervisorForWorkAgent, vr as saveAgentRuntimeState, w as buildCompactRecoverySeed, wn as clearAgentPaused, wt as deliverInitialPromptWithRetry, x as detectCrashedAgents, xn as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, yn as dismissDevChannelsDialog, z as saveSessionId } from "./agents-B5LfpLPv.js";
1
+ import { $ as warnOnBareNumericIssueIds, $n as writeAgentStateJsonSync, $t as waitForPromptReady, An as getAgentDir, Bn as markAgentRunningState, C as restartAgent, Cn as __testInternals, Ct as deliverAgentPermissionDecision, Dn as clearAgentTroubledSync, E as resumeAgent, En as clearAgentTroubled, Et as setAgentDeliveryMethod, F as getActivity, Gt as getAgentRuntimeBaseCommand, Hn as markAgentTroubled, I as getLatestSessionId, In as isAgentPaused, It as retrieveSpawnTimeMemoryContext, J as dropLegacyAgentStatesMissingRoleAsync, Jn as saveAgentStateSync, Jt as getProviderAuthMode, K as stopAgent, Kn as resetAgentFailureCount, L as getLatestSessionIdSync, Ln as isAgentTroubled, Lt as transitionIssueToInProgress, Mn as getAgentState, Mt as assertWorkspaceStackHealthyForSpawn, Nn as getAgentStateFilePath, Nt as buildAgentLaunchConfig, On as clearYieldForResumeSync, P as appendActivity, Pn as getAgentStateSync, Q as listRunningAgentsSync, Qn as wipeAgentStateDirs, Qt as roleAgentDefinitionPath, R as getSessionId, Rn as isRole, Rt as transitionIssueToInReview, S as recoverAgent, Sn as SESSION_EXITED_BEFORE_KICKOFF, St as deliverAgentMessage, Tn as clearAgentPausedSync, Tt as deliverResumeMessageWithTranscriptConfirmation, U as spawnAgent, Un as recordAgentFailure, Ut as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, Vn as markAgentStoppedState, W as spawnRun, Wn as recordAgentFailureSync, Wt as describeOhmypiSpawnFailure, X as listAgentStates, Xn as setAgentPausedSync, Yn as setAgentPaused, Yt as getRoleRuntimeBaseCommand, Z as listRunningAgents, Zn as setAgentYieldedSync, Zt as injectPiConversationMemory, _n as decideChannelsForWorkAgent, a as replayStandingAgent, b as autoRecoverAgents, bn as writeChannelsBridgeMcpConfig, cn as determineModel, dn as getProviderTmuxFlags, dr as normalizeAgentId, fr as resolveAgentTargetSync, gn as buildDefaultResumeContinueMessage, gr as getAgentRuntimeStateSync, hr as getAgentRuntimeState, i as replayCrashedStandingAgent, j as messageAgent, ln as getProviderEnvForModel, lr as clearReadySignal, mr as waitForReadySignal, n as compactAtTierRunBoundary, o as shouldReplayCompactAtTierRunBoundary, on as buildCavemanExports, pr as waitForAgentIdle, q as stopAgentSync, qn as saveAgentState, r as contextWindowForModel, sn as buildSpawnEnvForModel, t as init_agents, un as getProviderExportsForModel, ur as isQualifiedAgentId, vn as decideSupervisorForWorkAgent, vr as saveAgentRuntimeState, w as buildCompactRecoverySeed, wn as clearAgentPaused, wt as deliverInitialPromptWithRetry, x as detectCrashedAgents, xn as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, yn as dismissDevChannelsDialog, z as saveSessionId } from "./agents-CsOzAmRg.js";
2
2
  init_agents();
3
3
  export { GOVERNOR_SLOT_PAUSE_REASON_PREFIX, OHMYPI_AGENT_READY_TIMEOUT_SECONDS, SESSION_EXITED_BEFORE_KICKOFF, __testInternals, appendActivity, assertWorkspaceStackHealthyForSpawn, autoRecoverAgents, buildAgentLaunchConfig, buildCavemanExports, buildCompactRecoverySeed, buildDefaultResumeContinueMessage, buildSpawnEnvForModel, clearAgentPaused, clearAgentPausedSync, clearAgentTroubled, clearAgentTroubledSync, clearReadySignal, clearYieldForResumeSync, compactAtTierRunBoundary, contextWindowForModel, decideChannelsForWorkAgent, decideSupervisorForWorkAgent, deliverAgentMessage, deliverAgentPermissionDecision, deliverInitialPromptWithRetry, deliverResumeMessageWithTranscriptConfirmation, describeOhmypiSpawnFailure, detectCrashedAgents, determineModel, dismissDevChannelsDialog, dropLegacyAgentStatesMissingRoleAsync, getActivity, getAgentDir, getAgentRuntimeBaseCommand, getAgentRuntimeState, getAgentRuntimeStateSync, getAgentState, getAgentStateFilePath, getAgentStateSync, getLatestSessionId, getLatestSessionIdSync, getProviderAuthMode, getProviderEnvForModel, getProviderExportsForModel, getProviderTmuxFlags, getRoleRuntimeBaseCommand, getSessionId, injectPiConversationMemory, isAgentPaused, isAgentTroubled, isQualifiedAgentId, isRole, listAgentStates, listRunningAgents, listRunningAgentsSync, markAgentRunningState, markAgentStoppedState, markAgentTroubled, messageAgent, normalizeAgentId, recordAgentFailure, recordAgentFailureSync, recoverAgent, replayCrashedStandingAgent, replayStandingAgent, resetAgentFailureCount, resolveAgentTargetSync, restartAgent, resumeAgent, retrieveSpawnTimeMemoryContext, roleAgentDefinitionPath, saveAgentRuntimeState, saveAgentState, saveAgentStateSync, saveSessionId, setAgentDeliveryMethod, setAgentPaused, setAgentPausedSync, setAgentYieldedSync, shouldReplayCompactAtTierRunBoundary, spawnAgent, spawnRun, stopAgent, stopAgentSync, transitionIssueToInProgress, transitionIssueToInReview, waitForAgentIdle, waitForPromptReady, waitForReadySignal, warnOnBareNumericIssueIds, wipeAgentStateDirs, writeAgentStateJsonSync, writeChannelsBridgeMcpConfig };
@@ -1,3 +1,3 @@
1
- import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-oX1pj6nY.js";
1
+ import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-DkivCk1A.js";
2
2
  init_archive_planning();
3
3
  export { findWorkspacePath };
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ar as PROJECT_PRDS_ACTIVE_SUBDIR, Mr as PROJECT_PRDS_PLANNED_SUBDIR, Nr as PROJECT_PRDS_SUBDIR, Vr as init_paths, br as ARCHIVES_DIR, jr as PROJECT_PRDS_COMPLETED_SUBDIR, kr as PROJECT_DOCS_SUBDIR } from "./config-yaml-ClpGgrf6.js";
2
+ import { Fr as PROJECT_PRDS_SUBDIR, Mr as PROJECT_PRDS_ACTIVE_SUBDIR, Nr as PROJECT_PRDS_COMPLETED_SUBDIR, Pr as PROJECT_PRDS_PLANNED_SUBDIR, Sr as ARCHIVES_DIR, jr as PROJECT_DOCS_SUBDIR, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
3
3
  import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-CE1m_daD.js";
4
- import { t as init_pan_dir } from "./pan-dir-DoPtdHrp.js";
5
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-B5u3NxMl.js";
4
+ import { t as init_pan_dir } from "./pan-dir-Bj7Hy8iu.js";
5
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-33JEP4LZ.js";
6
6
  import { Effect } from "effect";
7
7
  import { existsSync, readdirSync } from "fs";
8
8
  import { dirname, join } from "path";
@@ -271,4 +271,4 @@ var init_archive_planning = __esmMin((() => {
271
271
  //#endregion
272
272
  export { inferBranchFromWorkspace as a, findPrdAtStatusSync as c, findWorkspacePath as i, init_prd_locations as l, archiveWorkspaceArtifacts as n, init_archive_planning as o, findAllWorkspacePaths as r, movePrd as s, archivePlanning as t };
273
273
 
274
- //# sourceMappingURL=archive-planning-oX1pj6nY.js.map
274
+ //# sourceMappingURL=archive-planning-DkivCk1A.js.map
@@ -1,4 +1,4 @@
1
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-ClpGgrf6.js";
1
+ import { Kr as getOverdeckHome, qr as init_paths } from "./config-yaml-Dcz-8uit.js";
2
2
  import { n as openDatabase, t as init_driver } from "./driver-D-HBOQa_.js";
3
3
  import { dirname, join } from "node:path";
4
4
  import { mkdirSync } from "node:fs";
@@ -208,4 +208,4 @@ function unshareArtifactBySlugJob(slug) {
208
208
  //#endregion
209
209
  export { getArtifactBySlugJob, listArtifactsForWorkspaceOrIssueJob, unshareArtifactBySlugJob };
210
210
 
211
- //# sourceMappingURL=artifact-index-jobs-DGr6bxev.js.map
211
+ //# sourceMappingURL=artifact-index-jobs-CmsvQ1ey.js.map
@@ -0,0 +1,3 @@
1
+ import { in as init_auto_commit, on as queueBeadsAutoCommit, rn as flushAutoCommits } from "./config-yaml-Dcz-8uit.js";
2
+ init_auto_commit();
3
+ export { flushAutoCommits, queueBeadsAutoCommit };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { r as isNoResumeValueEnabled, t as init_no_resume_mode } from "./no-resume-mode-yrPEQ_pC.js";
3
- import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-DeflKafB.js";
3
+ import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-i-b2u4SJ.js";
4
4
  //#region ../../lib/backlog/backlog-auto-trigger.ts
5
5
  /**
6
6
  * PAN-2396: --no-resume is the operator's full-quiescence escape hatch —
@@ -37,4 +37,4 @@ __esmMin((() => {
37
37
  }))();
38
38
  export { triggerDebouncedIncrementalPass };
39
39
 
40
- //# sourceMappingURL=backlog-auto-trigger-BlJHikOm.js.map
40
+ //# sourceMappingURL=backlog-auto-trigger-ueRaT8Dy.js.map