@overdeck/desktop 0.45.16 → 0.45.18

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 (365) hide show
  1. package/dist-electron/main.js +149 -158
  2. package/dist-electron/main.js.map +1 -1
  3. package/dist-electron/preload.js +17 -2
  4. package/dist-electron/preload.js.map +1 -1
  5. package/package.json +5 -4
  6. package/server/acceptance-criteria-aQFKQf-J.js +62 -0
  7. package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-DgwQgm4D.js} +6 -6
  8. package/server/{agent-gc-D0wDIeV1.js → agent-gc-kpzxqT7P.js} +3 -3
  9. package/server/agent-state-C_6TG-Ad.js +3 -0
  10. package/server/{agent-state-service-CZrayD_G.js → agent-state-service-BUfovFfB.js} +1 -1
  11. package/server/{agent-state-service-DFslS5go.js → agent-state-service-nUD3qfob.js} +5 -5
  12. package/server/agents-BA15AQqo.js +3 -0
  13. package/server/{briefing-freshness-DESTCWo-.js → agents-BHBxr8c9.js} +5 -131
  14. package/server/{archive-planning-CbghE9-o.js → archive-planning-CzCW9Ifl.js} +5 -10
  15. package/server/{archive-planning-CoyIbgGK.js → archive-planning-D-QsBufn.js} +1 -1
  16. package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
  17. package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-B7Bi0bvY.js} +2 -2
  18. package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
  19. package/server/briefing-freshness-DuxIE1yr.js +131 -0
  20. package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
  21. package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-DixkLus7.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-fjadfOKF.js → checkpoints-B1Z42tJE.js} +1 -1
  24. package/server/{checkpoints-BtUonbs3.js → checkpoints-BiviJqei.js} +2 -2
  25. package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-BeMGi4ty.js} +1 -1
  26. package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-Du_PkMsp.js} +2 -2
  27. package/server/{claude-permissions-CThLgf8d.js → claude-permissions-BB6agcOZ.js} +2 -2
  28. package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
  29. package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
  30. package/server/cli-BFgrSWKV.js +3 -0
  31. package/server/{cli-ByKIIMfT.js → cli-C33xPZNm.js} +9 -9
  32. package/server/{cliproxy-C_GuT5DU.js → cliproxy-BQX1TL6N.js} +1 -1
  33. package/server/{cliproxy-B4c1BUvs.js → cliproxy-CGBA1GzA.js} +2 -2
  34. package/server/{close-issue-BOuLKr6e.js → close-issue-DNv8npc1.js} +5 -5
  35. package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
  36. package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
  37. package/server/codex-DxLivxri.js +3 -0
  38. package/server/{codex-parser-mFYZh8vR.js → codex-parser-DboQnEXN.js} +2 -2
  39. package/server/{codex-BbqIRZjd.js → codex-sgWVCGUd.js} +43 -18
  40. package/server/{config-Dj6N8EP9.js → config-6MCHOZ2N.js} +1 -1
  41. package/server/{config-DVLdmnMJ.js → config-DfaUXr6r.js} +2 -2
  42. package/server/{config-yaml-cNOZcEww.js → config-yaml-CqaAyn8y.js} +74 -74
  43. package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-BF_zhcmb.js} +3 -3
  44. package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BubJprtD.js} +1 -1
  45. package/server/{context-layers-c0JqYHcS.js → context-layers-BFrxfl0l.js} +17 -3
  46. package/server/{context-layers-CeAwSYNt.js → context-layers-DWL_8HhY.js} +2 -2
  47. package/server/{control-settings-D4EFsRBd.js → control-settings-BguNQ1F_.js} +4 -4
  48. package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-CRKAf2qP.js} +1 -1
  49. package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-DxSXl0pT.js} +8 -8
  50. package/server/{conversation-service-BTzObqGi.js → conversation-service-DzuY9qoH.js} +1 -1
  51. package/server/{conversation-service-B8LFQQm1.js → conversation-service-mFVFdDQK.js} +6 -6
  52. package/server/{conversations-B-lcHv-5.js → conversations-BX5aD-6F.js} +4 -4
  53. package/server/{conversations-BM7zlXjr.js → conversations-BajHQ60c.js} +1 -1
  54. package/server/{cost-D9kPIY_5.js → cost-BoqD1Pxz.js} +2 -2
  55. package/server/{cost-BcpRQ-7o.js → cost-DuZ5vlv-.js} +3 -3
  56. package/server/{cost-sync-DF6odxK9.js → cost-sync-BYnmnMkY.js} +3 -3
  57. package/server/{dag-DKI3sOmX.js → dag-C6kYyF17.js} +7 -243
  58. package/server/{dangerous-git-ops-Bn18PEcN.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-DONuopff.js → deacon-CwCiNuEZ.js} +3 -3
  61. package/server/{deacon-DdARMjZq.js → deacon-Dru5onpk.js} +233 -162
  62. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-BPmBmSoU.js} +298 -72
  64. package/server/deacon-swarm-CKyGJng1.js +2 -0
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
  67. package/server/{dist-BMXvKiZP.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-BgGUblXg.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-apZ9pBYw.js → docker-CNjXS72x.js} +2 -2
  71. package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-5e9xOve4.js} +4 -4
  72. package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
  73. package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CqDgfbAs.js → event-store-D9UhQyMS.js} +1 -1
  75. package/server/{event-store-D89fMfXS.js → event-store-KZnWUKWh.js} +3 -3
  76. package/server/{events-S_C0pvl6.js → events-2eFUPdqz.js} +3 -3
  77. package/server/{events-rIGncmP1.js → events-BYbvqZky.js} +1 -1
  78. package/server/{factory-DV18m0rc.js → factory-BtaRsHFC.js} +20 -17
  79. package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-Ca2UaV0U.js} +4 -4
  80. package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-DaP-bQxO.js} +2 -2
  81. package/server/{features-u5XeMaOK.js → features-DqvaoQoa.js} +2 -2
  82. package/server/{feedback-target-CwyWf0Dg.js → feedback-target-BXWdOiYI.js} +9 -7
  83. package/server/{feedback-target-DDG1PWl3.js → feedback-target-BblmMe9P.js} +1 -1
  84. package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-CULeOOY4.js} +1 -1
  85. package/server/{feedback-writer-D20HSXre.js → feedback-writer-Dn8o9ZyE.js} +4 -4
  86. package/server/{flywheel-RCnHAgc4.js → flywheel-BUWdcfhq.js} +1 -1
  87. package/server/{flywheel-Dczmgchd.js → flywheel-CqkO3cDj.js} +15 -28
  88. package/server/{flywheel-9Y1X7IM-.js → flywheel-D9r1mw2U.js} +13 -13
  89. package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
  90. package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-VtjUweEb.js} +6 -6
  91. package/server/forge-DJy3Zx4s.js +2 -0
  92. package/server/{forge-DFDThFil.js → forge-wEollMCi.js} +22 -12
  93. package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-C5A_TTOM.js → fts-db-Bgzn2RO7.js} +2 -2
  95. package/server/{fts-operations-DvCSimfU.js → fts-operations-Bj8yutnR.js} +2 -2
  96. package/server/{git-utils-Dr0L7mFk.js → git-utils-GxlL0tmt.js} +2 -2
  97. package/server/{git-utils-C0neHvQx.js → git-utils-q8jNoBts.js} +1 -1
  98. package/server/{github-app-Bwt9lK4A.js → github-app-BrYwK_Gb.js} +1 -1
  99. package/server/{github-app-u9-SX7Gc.js → github-app-tUbb8Ldr.js} +8 -3
  100. package/server/{github-client-Btyy3uan.js → github-client-BwBU41jK.js} +3 -3
  101. package/server/{github-client-Do3k-N1W.js → github-client-D6CNsftm.js} +1 -1
  102. package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-BS5PqkJb.js} +2 -2
  103. package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-Dx8hUsvC.js} +3 -3
  104. package/server/{health-events-B4u-2a9m.js → health-events-2DLp-5Xp.js} +2 -2
  105. package/server/{health-events-Bos3sk5g.js → health-events-B0mj6Iae.js} +1 -1
  106. package/server/{hooks-uEr8WTx_.js → hooks-BDcQJDUe.js} +1 -1
  107. package/server/{hooks-BCoOjL_R.js → hooks-BS_JrvYP.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-BqxYKbUf.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-BCITXNW5.js} +2 -2
  111. package/server/{idle-stack-reaper-H0W6XtHh.js → idle-stack-reaper-C1ymihno.js} +1 -1
  112. package/server/{infra-Ba9mS6e6.js → infra-_Kx1m9pm.js} +9 -4
  113. package/server/{injection-C1DKXeIZ.js → injection-Bvhyg_MV.js} +1 -1
  114. package/server/{injection-yrMBxzVq.js → injection-CCaYkofq.js} +7 -7
  115. package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-BqyZ4pCo.js} +35 -67
  116. package/server/inspect-agent-DCJQm9Wu.js +2 -0
  117. package/server/{internal-token-BtqSbKTx.js → internal-token-Cl-1IxaE.js} +2 -2
  118. package/server/{internal-token-BPYEaXFh.js → internal-token-D-t28de5.js} +1 -1
  119. package/server/{io-VEGSAqsd.js → io-DkC4sFSy.js} +36 -43
  120. package/server/{issue-closed-BxcePXL-.js → issue-closed-Cpl4VDUM.js} +41 -6
  121. package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-CFR8TJ22.js} +22 -37
  122. package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-YNTy3OT3.js} +1 -1
  123. package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton-D81mCts_.js} +1 -1
  124. package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-ldvUUXi3.js} +29 -29
  125. package/server/{issues-CBAsuoAO.js → issues-DIEHt9sq.js} +2 -2
  126. package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Cd5jIqh7.js} +3 -3
  127. package/server/{label-cleanup-htK6fBRU.js → label-cleanup-Btny6Gyo.js} +3 -3
  128. package/server/{state-home-CEvD_v5F.js → launcher-generator-BXLM9f4b.js} +7 -127
  129. package/server/{layers-jjL16At6.js → layers-gCJlK62m.js} +2 -2
  130. package/server/lifecycle-D7aQUnTO.js +12 -0
  131. package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-DQBF-GHO.js} +1 -1
  132. package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-FfPUtz-y.js} +4 -4
  133. package/server/{linear-client-D9cSQfvD.js → linear-client-CDH2D6Qy.js} +3 -3
  134. package/server/{linear-client-By7hjwuN.js → linear-client-WrYrUIAH.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-BN8FGJ2q.js → merge-BsDgUxFz.js} +3 -3
  137. package/server/{merge-BLcEZNXz.js → merge-Dervs4BF.js} +1 -1
  138. package/server/{merge-agent-B3u2szOL.js → merge-agent-D6DNhe9j.js} +64 -51
  139. package/server/{merge-agent-ejC7Wos8.js → merge-agent-DMQTJMP0.js} +1 -1
  140. package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-WWWi6Ur2.js} +2 -2
  142. package/server/merge-ops-h9OCnIVz.js +2 -0
  143. package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-Czth9ggm.js} +2 -2
  144. package/server/{merge-set-CZ9Nbay0.js → merge-set-DNc4zBqd.js} +3 -3
  145. package/server/{merge-set-Dy0D0r3i.js → merge-set-vuE3MEVt.js} +1 -1
  146. package/server/{merge-sync-D7jWLgCC.js → merge-sync-B2KSk54U.js} +2 -2
  147. package/server/{merge-sync-CG9kDCdT.js → merge-sync-B9nHdUGx.js} +1 -1
  148. package/server/{merge-train-CH33XJOH.js → merge-train-DJgr81tF.js} +3 -3
  149. package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-B2OWS0k9.js} +4 -4
  150. package/server/{merge-verification-D4wTChdX.js → merge-verification-BBIXUEqa.js} +4 -4
  151. package/server/{multipart-parser-Csn8U-K9.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/node_modules/.package-lock.json +11 -11
  153. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  154. package/server/node_modules/toml/README.md +54 -0
  155. package/server/node_modules/toml/index.d.ts +42 -1
  156. package/server/node_modules/toml/index.js +3 -3
  157. package/server/node_modules/toml/lib/compiler.js +35 -3
  158. package/server/node_modules/toml/lib/parser.js +224 -143
  159. package/server/node_modules/toml/package.json +3 -1
  160. package/server/node_modules/ws/lib/receiver.js +15 -32
  161. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  162. package/server/node_modules/ws/lib/websocket.js +4 -4
  163. package/server/node_modules/ws/package.json +5 -1
  164. package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
  165. package/server/{orphan-proposed-reconciler-BIcNu4tl.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
  166. package/server/package-lock.json +12 -12
  167. package/server/package.json +1 -1
  168. package/server/{pan-dir-CQIfKG8c.js → pan-dir-BTw4MdSe.js} +4 -4
  169. package/server/{paths-Blj6A9AJ.js → paths-Btkc8mzp.js} +2 -2
  170. package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-3frIvSi3.js} +1 -1
  171. package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-DTd19f18.js} +2 -2
  172. package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B95fcAek.js} +2 -2
  173. package/server/projects-Dc9aoVoG.js +3 -0
  174. package/server/{prompts-B3njaImU.js → prompts-CIVmjHxn.js} +2 -2
  175. package/server/{providers-DnPxkHoG.js → providers-BLLk5IIb.js} +1 -1
  176. package/server/{providers-BbEyFhPX.js → providers-C-yWibCk.js} +7 -7
  177. package/server/public/assets/{chunk-BO2N2NFS-3qh9TUJi.js → chunk-BO2N2NFS-DzKZyoKY.js} +4 -4
  178. package/server/public/assets/{diagram-OG6HWLK6-D8UVTPj7.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  179. package/server/public/assets/{dist-BvLLn1YC.js → dist-BqccLhaw.js} +3 -3
  180. package/server/public/assets/{dist-CyubL7Wj.js → dist-rC3nAs_O.js} +1 -1
  181. package/server/public/assets/{ganttDiagram-6RSMTGT7-BI4E1LbQ.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  182. package/server/public/assets/{highlighted-body-OFNGDK62-D_bapWkF.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  183. package/server/public/assets/index-CPcysUHk.js +796 -0
  184. package/server/public/assets/index-H5M0yhM4.css +1 -0
  185. package/server/public/assets/{linear-CEdobObr.js → linear-yqcXkDfj.js} +1 -1
  186. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  187. package/server/public/assets/{pieDiagram-4H26LBE5-DT79L01f.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  188. package/server/public/assets/{prod-CR_K2DFV.js → prod-DKUunUdN.js} +4 -4
  189. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BEkKXXrL.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  190. package/server/public/assets/{sankeyDiagram-5OEKKPKP-BxSCqn-j.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  191. package/server/public/assets/{xychartDiagram-2RQKCTM6-DicwJGG_.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  192. package/server/public/index.html +2 -2
  193. package/server/{pull-requests-43LPDfM8.js → pull-requests-D7AL5woD.js} +1 -1
  194. package/server/{pull-requests-DyUkQl4W.js → pull-requests-NDDNtqNq.js} +3 -3
  195. package/server/{agents-B9GwfCyp.js → queries-C0LCGG21.js} +710 -325
  196. package/server/{rally-BtWjybOa.js → rally-4oKvnxLG.js} +3 -3
  197. package/server/rally-DF5a3ioP.js +3 -0
  198. package/server/{rally-api-B-osULNL.js → rally-api-41tT6ikZ.js} +2 -2
  199. package/server/{rally-api-B-YA_oXx.js → rally-api-BsaQ8Vnz.js} +1 -1
  200. package/server/{rally-client-sErNQBO0.js → rally-client-Bo4hNcCZ.js} +5 -5
  201. package/server/{rally-client-CzFymP7P.js → rally-client-b5PT1x5L.js} +1 -1
  202. package/server/{reap-terminal-sessions-DnDQ7pf9.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  203. package/server/{reap-terminal-sessions-2s-fvilz.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  204. package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-C7JPUom6.js} +1 -1
  205. package/server/{rebuild-stack-CoU-HqZj.js → rebuild-stack-Ddv6W017.js} +5 -5
  206. package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-Gqhm---K.js} +6 -6
  207. package/server/record-DLOqfbkI.js +3 -0
  208. package/server/record-update-BltEmPge.js +168 -0
  209. package/server/record-update-CDp7aTaT.js +3 -0
  210. package/server/recovery-trip-Cn7KJVkS.js +44 -0
  211. package/server/{release-engine-CBLQXDlH.js → release-engine-BYzmIBf9.js} +5 -5
  212. package/server/{release-set-BNiqi7hy.js → release-set-7pnxFOWR.js} +3 -3
  213. package/server/{remote-DW_TWQnr.js → remote-Cvu4CSDk.js} +3 -3
  214. package/server/{remote-agents-C4cyxHQS.js → remote-agents-C2C6z9tj.js} +6 -33
  215. package/server/{remote-agents-Cv-U-_V8.js → remote-agents-DYY5fFpd.js} +1 -1
  216. package/server/{remote-completion-PhXGGFQy.js → remote-completion-2Kb4IDg_.js} +13 -13
  217. package/server/{remote-DcO9An_f.js → remote-rN0ecjHE.js} +3 -3
  218. package/server/resume-BFLl-yLn.js +3 -0
  219. package/server/{review-agent-Dn-yn7Zj.js → review-agent-BZvk0N5G.js} +31 -23
  220. package/server/{review-agent-u5q3ip7H.js → review-agent-CpSHLzed.js} +1 -1
  221. package/server/{review-artifacts-D4T04aYI.js → review-artifacts-PCo53YMn.js} +5 -19
  222. package/server/{review-context-Rc0VDLG_.js → review-context-M7QtJlJq.js} +8 -8
  223. package/server/{review-monitor-BC--miCO.js → review-monitor-BLC5mTTg.js} +2 -2
  224. package/server/{review-status-CG0iDuWa.js → review-status-77N3PoZr.js} +1 -1
  225. package/server/{review-status-Dc1l4dVz.js → review-status-DANr0t-v.js} +32 -58
  226. package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-DwOg4UfL.js} +3 -3
  227. package/server/{review-status-sync-CfSixhhX.js → review-status-sync-Bd08OOFA.js} +1 -1
  228. package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-BjTUJ5fx.js} +2 -2
  229. package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
  230. package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
  231. package/server/{rollup-DctoIu-A.js → rollup-Bu0f2EyN.js} +8 -8
  232. package/server/{rollup-CakjztPl.js → rollup-DTCCdEy4.js} +1 -1
  233. package/server/{scanner-BTM1jc_u.js → scanner-BlZ2vB7j.js} +7 -7
  234. package/server/{sequence-io-pnoIDGv4.js → sequence-io-ylyDtz2J.js} +4 -4
  235. package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-DsWQ-87H.js} +6 -17
  236. package/server/server.js +4695 -4093
  237. package/server/{service-DfTVoqJg.js → service-CLVBC_1Y.js} +116 -90
  238. package/server/{session-fork-C4jAFHj8.js → session-fork-DlEIAhRy.js} +2 -2
  239. package/server/{session-history-DanhhiCw.js → session-history-bnOFKMwf.js} +4 -4
  240. package/server/settings-CP3GGon2.js +2 -0
  241. package/server/{settings-Cuc12oP_.js → settings-Cqa-8nyj.js} +2 -2
  242. package/server/{settings-DfT3f86D.js → settings-gJrdLZy2.js} +3 -3
  243. package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-fq1YEKV3.js} +3 -3
  244. package/server/{shadow-state-CVHpRWlb.js → shadow-state-BqeFAygK.js} +1 -1
  245. package/server/{shadow-state-DJz6_pb_.js → shadow-state-RptE9Cau.js} +2 -2
  246. package/server/shadow-utils-BMWr5tRT.js +39 -0
  247. package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
  248. package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CmoXpjeU.js} +7 -7
  249. package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-DldUel4B.js} +1 -1
  250. package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-CoS6LTc6.js} +16 -16
  251. package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-DT2tSMxo.js} +1 -1
  252. package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
  253. package/server/{specialist-context-B2HlbNxS.js → specialist-context-CspI4Eog.js} +5 -5
  254. package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
  255. package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-DtSkPJZK.js} +3 -3
  256. package/server/{specialists-D7AcFi1u.js → specialists-CywEMwxk.js} +1 -1
  257. package/server/{specialists-k22_Btaq.js → specialists-D9-dMUtI.js} +1 -1
  258. package/server/{specialists-CFgw_0Q6.js → specialists-Dax7tqXC.js} +161 -448
  259. package/server/{specialists-CwzFdapR.js → specialists-GF42OOqd.js} +18 -18
  260. package/server/specs-VwcFtEDi.js +3 -0
  261. package/server/{src-B4TTzNSr.js → src-By3D85Ry.js} +6 -1
  262. package/server/{src-BvpMg4EB.js → src-CqyFg52C.js} +5 -5
  263. package/server/{src-D4YUZrwR.js → src-DhxM-eCb.js} +6 -6
  264. package/server/{stack-health-DVN7zRnL.js → stack-health-BsEVrJZ6.js} +1 -1
  265. package/server/{stack-health-CSgcYcr8.js → stack-health-C-SnpRHh.js} +2 -2
  266. package/server/stale-task-claims-vTxmRzLi.js +69 -0
  267. package/server/state-home-Bur1y4oH.js +213 -0
  268. package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
  269. package/server/state-migrate-D3VveYfO.js +362 -0
  270. package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-B699-p8v.js} +36 -41
  271. package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CaFYYTQW.js} +1 -1
  272. package/server/{summary-fork-CnRMPCYd.js → summary-fork-BxnF8Xh0.js} +2 -2
  273. package/server/{summary-fork-gKSoFAnK.js → summary-fork-COqYpVa3.js} +8 -8
  274. package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
  275. package/server/supervisor/pty-supervisor.js +2 -2
  276. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
  277. package/server/supervisor-eWAAmXKu.js +2 -0
  278. package/server/{supervisor-CZMs8s0M.js → supervisor-liMgIPDF.js} +2 -2
  279. package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-sXB1vhzo.js} +3 -3
  280. package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  281. package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-DvzqnmUF.js} +14 -71
  282. package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-hAU1Ah08.js} +5 -5
  283. package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-Bam7Xhoo.js} +2 -2
  284. package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-DhGwd88s.js} +1 -1
  285. package/server/tmux-C-rgxRDA.js +3 -0
  286. package/server/{tmux-C3g9VFcg.js → tmux-U55cNGFG.js} +92 -4
  287. package/server/{token-g_sJ19g3.js → token-Dsa-i36o.js} +2 -2
  288. package/server/{token-util-DiwnnbJo.js → token-util-BWNpH96m.js} +1 -1
  289. package/server/token-util-DRt0j2nQ.js +3 -0
  290. package/server/{tracker-config-dQxC15vH.js → tracker-config-OkdbaUCm.js} +2 -2
  291. package/server/{tracker-utils--z8FLSWn.js → tracker-utils-CghXMF3q.js} +2 -2
  292. package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-DdzUiPNU.js} +1 -1
  293. package/server/{tunnel-BpWZs0Jy.js → tunnel-D1YxesBL.js} +3 -3
  294. package/server/{tunnel-CN2px87h.js → tunnel-DjlzgTl3.js} +1 -1
  295. package/server/typed-errors-CH4roFIj.js +3 -0
  296. package/server/{typed-errors-sLpGfegz.js → typed-errors-n_Tnb4Fh.js} +3 -4
  297. package/server/{types-BLS_Zbmd.js → types-DOjWNv3Z.js} +1 -1
  298. package/server/{types-tlXf80x3.js → types-DXBMm4mX.js} +1 -1
  299. package/server/{uat-train-utGVmqdm.js → uat-train-CaaWs9Rp.js} +1 -1
  300. package/server/{uat-train-BRo6DM7p.js → uat-train-CqN34zFx.js} +24 -25
  301. package/server/{validation-CsPVsoA0.js → validation-4-z2Cw4z.js} +70 -23
  302. package/server/validation-DpTNakM6.js +3 -0
  303. package/server/verification-artifact-DK1xb1zG.js +56 -0
  304. package/server/verification-artifact-JD_edpZ9.js +2 -0
  305. package/server/{verification-runner-CMT5WRMS.js → verification-runner-BjHN80pJ.js} +338 -58
  306. package/server/verification-runner-ShYu5Ph3.js +2 -0
  307. package/server/{vtt-parser-C_XPlifj.js → vtt-parser-QnRfcjiU.js} +1 -1
  308. package/server/{work-agent-prompt-ZTAb2Hyf.js → work-agent-prompt-BiJ43Der.js} +12 -88
  309. package/server/workflows-B4C3lY9E.js +2 -0
  310. package/server/{workflows-CXRwhw_o.js → workflows-DkTotz_m.js} +17 -24
  311. package/server/{workspace-CNfuj1-5.js → workspace-CuN0ev4Z.js} +3 -3
  312. package/server/{workspace-9UEsKuiP.js → workspace-DQ4vVivd.js} +1 -1
  313. package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
  314. package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-B1mYn0lN.js} +1 -1
  315. package/server/{workspace-manager-D8AByFIT.js → workspace-manager-Beeo2aKF.js} +23 -48
  316. package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-BZC5BmoP.js} +2 -2
  317. package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-Cy7_ZACL.js} +1 -1
  318. package/server/{workspaces-D-uIoqbg.js → workspaces-CGuzW1Ia.js} +182 -152
  319. package/sync-sources/hooks/codex-notify-hook +64 -8
  320. package/sync-sources/hooks/record-cost-event.js +1109 -36
  321. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  322. package/sync-sources/hooks/statusline.sh +2 -2
  323. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  324. package/server/acceptance-criteria-BZ_nQS1f.js +0 -33
  325. package/server/agent-state-lGvgPP4m.js +0 -3
  326. package/server/agents-CEcaxSkR.js +0 -3
  327. package/server/auto-commit-IW-eik_b.js +0 -3
  328. package/server/bd-process-lock-XAXAet9O.js +0 -390
  329. package/server/beads-B1u04n3o.js +0 -2
  330. package/server/beads-BeSMEjGT.js +0 -649
  331. package/server/beads-query-Dl4FhT8J.js +0 -95
  332. package/server/beads-restore-BUItPOjI.js +0 -23
  333. package/server/cli-D9cUTbBr.js +0 -3
  334. package/server/codex-BYPz6ZdF.js +0 -3
  335. package/server/compact-beads-CyJtoXJi.js +0 -94
  336. package/server/compact-beads-N00E4EVa.js +0 -3
  337. package/server/deacon-swarm-CvdFekIO.js +0 -2
  338. package/server/dist-BNwrgsUO.js +0 -3
  339. package/server/export-BJHSVwKP.js +0 -87
  340. package/server/forge-8y6aEPTB.js +0 -2
  341. package/server/hume-CerGi2RH.js +0 -3
  342. package/server/inspect-agent-CWkeAB7J.js +0 -2
  343. package/server/lifecycle-Ck2UR27D.js +0 -14
  344. package/server/merge-ops-CFkQtXEj.js +0 -2
  345. package/server/projects-CrBE6IhN.js +0 -3
  346. package/server/public/assets/index-BAZxZ-8I.js +0 -796
  347. package/server/public/assets/index-FBG3JBfq.css +0 -1
  348. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +0 -1
  349. package/server/rally-oggyp4cs.js +0 -3
  350. package/server/record-lEYK__LD.js +0 -3
  351. package/server/recovery-trip-BT7nb9OV.js +0 -98
  352. package/server/resolver-C7dLn8OK.js +0 -158
  353. package/server/resume-BYZBIab-.js +0 -3
  354. package/server/settings-Cy7SCFO9.js +0 -2
  355. package/server/specs-RzcDgozr.js +0 -3
  356. package/server/supervisor-CfX192ma.js +0 -2
  357. package/server/tmux-By8E_Yv_.js +0 -3
  358. package/server/token-util-C9u4An3K.js +0 -3
  359. package/server/tracker-config-BzfVj41Z.js +0 -3
  360. package/server/typed-errors-CrN1AByg.js +0 -3
  361. package/server/validation-Dq_wwcw3.js +0 -3
  362. package/server/verification-runner-D0Uh-9jc.js +0 -2
  363. package/server/workflows-BLwxUMP7.js +0 -2
  364. package/server/writer-BUweuRPx.js +0 -3
  365. package/server/writer-CrP2xuBn.js +0 -251
@@ -0,0 +1,3 @@
1
+ import { a as extractThreadIdFromRollout, c as initCodexHome, f as waitForCodexRollout, l as init_codex, o as findLatestRollout, p as writeThreadId, s as findRolloutPath } from "./codex-sgWVCGUd.js";
2
+ init_codex();
3
+ export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as getPricingSync, s as init_cost } from "./cost-D9kPIY_5.js";
2
+ import { o as getPricingSync, s as init_cost } from "./cost-BoqD1Pxz.js";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  //#region ../../lib/cost-parsers/codex-parser.ts
5
5
  /**
@@ -244,4 +244,4 @@ var init_codex_parser = __esmMin((() => {
244
244
  //#endregion
245
245
  export { parseCodexSessionCostEventsSync as n, parseCodexSessionSync as r, init_codex_parser as t };
246
246
 
247
- //# sourceMappingURL=codex-parser-mFYZh8vR.js.map
247
+ //# sourceMappingURL=codex-parser-DboQnEXN.js.map
@@ -1,13 +1,13 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { xr as init_errors } from "./config-yaml-cNOZcEww.js";
3
- import { A as listSessionsSync, L as sessionExists, o as createSession, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
4
- import { r as CODEX_BEHAVIOR } from "./src-B4TTzNSr.js";
5
- import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-mFYZh8vR.js";
6
- import { t as init_behavior } from "./behavior-BTpYbAv4.js";
2
+ import { Sr as init_errors } from "./config-yaml-CqaAyn8y.js";
3
+ import { R as sessionExists, S as init_tmux, T as killSession, j as listSessionsSync, o as createSession } from "./tmux-U55cNGFG.js";
4
+ import { r as CODEX_BEHAVIOR } from "./src-By3D85Ry.js";
5
+ import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-DboQnEXN.js";
6
+ import { t as init_behavior } from "./behavior-CWqNMqE5.js";
7
7
  import { basename, join } from "node:path";
8
8
  import { Effect } from "effect";
9
9
  import { homedir } from "node:os";
10
- import { chmodSync, closeSync, copyFileSync, existsSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, statSync, writeFileSync } from "node:fs";
10
+ import { closeSync, copyFileSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, readlinkSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
11
11
  import { exec } from "node:child_process";
12
12
  import { promisify } from "node:util";
13
13
  //#region ../../lib/runtimes/codex.ts
@@ -135,16 +135,7 @@ function initCodexHome(codexHomeDir, opts = {}) {
135
135
  lines.push("");
136
136
  writeFileSync(configPath, lines.join("\n"), { mode: 384 });
137
137
  }
138
- const homeAuthPath = join(codexHomeDir, "auth.json");
139
- if (!existsSync(homeAuthPath)) {
140
- const globalAuthPath = join(homedir(), ".codex", "auth.json");
141
- if (existsSync(globalAuthPath)) {
142
- copyFileSync(globalAuthPath, homeAuthPath);
143
- try {
144
- chmodSync(homeAuthPath, 384);
145
- } catch {}
146
- }
147
- }
138
+ seedCodexAuthSymlink(join(codexHomeDir, "auth.json"), join(homedir(), ".codex", "auth.json"));
148
139
  const agentsMdPath = join(codexHomeDir, "AGENTS.md");
149
140
  if (!existsSync(agentsMdPath)) {
150
141
  const globalCodexContext = join(homedir(), ".overdeck", "context", "codex-global.md");
@@ -153,6 +144,40 @@ function initCodexHome(codexHomeDir, opts = {}) {
153
144
  }
154
145
  }
155
146
  /**
147
+ * Point a per-agent CODEX_HOME/auth.json at the global ~/.codex/auth.json via a
148
+ * symlink so every agent shares one OAuth refresh-token family (PAN-2285).
149
+ *
150
+ * Idempotent and migration-safe:
151
+ * - global auth.json missing → do nothing (onboarding prompts, as before)
152
+ * - home auth.json already the right → nothing
153
+ * symlink to global
154
+ * - home auth.json a regular-file → remove the stale disposable copy and
155
+ * copy or a wrong symlink replace it with the symlink (this is the
156
+ * in-place migration for already-deployed
157
+ * homes; removing a per-agent copy loses
158
+ * nothing — the global file is the source
159
+ * of truth)
160
+ *
161
+ * Exported for unit testing over temp dirs. Privacy: a symlink's permissions
162
+ * follow its target (the global file is 0600), so no chmod is needed here.
163
+ */
164
+ function seedCodexAuthSymlink(homeAuthPath, globalAuthPath) {
165
+ if (!existsSync(globalAuthPath)) return;
166
+ let currentLink = null;
167
+ try {
168
+ if (lstatSync(homeAuthPath).isSymbolicLink()) currentLink = readlinkSync(homeAuthPath);
169
+ } catch {
170
+ currentLink = null;
171
+ }
172
+ if (currentLink === globalAuthPath) return;
173
+ try {
174
+ if (existsSync(homeAuthPath) || currentLink !== null) unlinkSync(homeAuthPath);
175
+ } catch {}
176
+ try {
177
+ symlinkSync(globalAuthPath, homeAuthPath);
178
+ } catch {}
179
+ }
180
+ /**
156
181
  * Translate Overdeck's abstract sandbox mode token into a value the codex
157
182
  * CLI actually accepts. Overdeck config uses 'workspace' as its mode name
158
183
  * (see config-yaml.ts permission modes); codex only accepts read-only,
@@ -497,6 +522,6 @@ var init_codex = __esmMin((() => {
497
522
  };
498
523
  }));
499
524
  //#endregion
500
- 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 };
525
+ export { extractThreadIdFromRollout as a, initCodexHome as c, toCodexSandboxValue as d, waitForCodexRollout as f, createCodexRuntimeSync as i, init_codex as l, CodexSpawnTimeout as n, findLatestRollout as o, writeThreadId as p, codexHome as r, findRolloutPath as s, CodexRuntimeSync as t, seedCodexAuthSymlink as u };
501
526
 
502
- //# sourceMappingURL=codex-BbqIRZjd.js.map
527
+ //# sourceMappingURL=codex-sgWVCGUd.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-DVLdmnMJ.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-DfaUXr6r.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 { Jr as init_paths, Or as CONFIG_FILE, dr as FsError, f as loadConfigSync$1, t as init_config_yaml, xr as init_errors } from "./config-yaml-cNOZcEww.js";
2
+ import { Sr as init_errors, Yr as init_paths, f as loadConfigSync$1, fr as FsError, kr as CONFIG_FILE, t as init_config_yaml } from "./config-yaml-CqaAyn8y.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-DVLdmnMJ.js.map
256
+ //# sourceMappingURL=config-DfaUXr6r.js.map
@@ -6,7 +6,7 @@ import { dirname as dirname$1, join as join$1, resolve as resolve$1, sep as sep$
6
6
  import { homedir, totalmem } from "os";
7
7
  import { fileURLToPath } from "url";
8
8
  import { hostname } from "node:os";
9
- import { closeSync as closeSync$1, existsSync as existsSync$1, mkdirSync as mkdirSync$1, openSync as openSync$1, promises as promises$1, readFileSync as readFileSync$1, renameSync as renameSync$1, rmSync as rmSync$1, writeFileSync as writeFileSync$1 } from "node:fs";
9
+ import { closeSync as closeSync$1, existsSync as existsSync$1, fsyncSync, mkdirSync as mkdirSync$1, openSync as openSync$1, promises as promises$1, readFileSync as readFileSync$1, renameSync as renameSync$1, rmSync as rmSync$1, writeFileSync as writeFileSync$1 } from "node:fs";
10
10
  import { ChildProcess } from "effect/unstable/process";
11
11
  import * as NodeChildProcessSpawner from "@effect/platform-node/NodeChildProcessSpawner";
12
12
  import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem";
@@ -145,6 +145,7 @@ var init_paths = __esmMin((() => {
145
145
  CONFIG_FILE = join$1(CONFIG_DIR, "config.toml");
146
146
  join$1(CONFIG_DIR, "settings.json");
147
147
  CLAUDE_DIR = join$1(homedir(), ".claude");
148
+ join$1(homedir(), ".agents", "skills");
148
149
  join$1(homedir(), ".codex"), join$1(homedir(), ".cursor"), join$1(homedir(), ".gemini"), join$1(homedir(), ".opencode");
149
150
  join$1(CLAUDE_DIR, "skills"), join$1(CLAUDE_DIR, "commands"), join$1(CLAUDE_DIR, "agents");
150
151
  TEMPLATES_DIR = join$1(OVERDECK_HOME, "templates");
@@ -6977,6 +6978,7 @@ var projects_exports = /* @__PURE__ */ __exportAll({
6977
6978
  saveProjectsConfig: () => saveProjectsConfig,
6978
6979
  saveProjectsConfigSync: () => saveProjectsConfigSync,
6979
6980
  setProjectAutoMergeDefaultSync: () => setProjectAutoMergeDefaultSync,
6981
+ setProjectSwarmPolicySync: () => setProjectSwarmPolicySync,
6980
6982
  unregisterProject: () => unregisterProject,
6981
6983
  unregisterProjectSync: () => unregisterProjectSync
6982
6984
  });
@@ -7043,6 +7045,18 @@ function setProjectAutoMergeDefaultSync(key, value) {
7043
7045
  else updated.auto_merge_default = value;
7044
7046
  registerProjectSync(key, updated);
7045
7047
  }
7048
+ function setProjectSwarmPolicySync(key, value) {
7049
+ const config = getProjectSync(key);
7050
+ if (!config) throw new Error(`Unknown project: ${key}`);
7051
+ const updated = { ...config };
7052
+ const hotspots = config.swarm?.hotspots;
7053
+ if (value === null && !hotspots?.length) delete updated.swarm;
7054
+ else updated.swarm = {
7055
+ ...hotspots?.length ? { hotspots } : {},
7056
+ ...value ?? {}
7057
+ };
7058
+ registerProjectSync(key, updated);
7059
+ }
7046
7060
  /**
7047
7061
  * Remove a project from the registry
7048
7062
  */
@@ -7444,7 +7458,7 @@ var init_projects = __esmMin((() => {
7444
7458
  function projectKey(project, explicit) {
7445
7459
  if (explicit) return explicit;
7446
7460
  const projectPath = resolve(project.path);
7447
- return listProjectsSync().find(({ config }) => resolve(config.path) === projectPath)?.key ?? basename(projectPath);
7461
+ return (listProjectsSync() ?? []).find(({ config }) => resolve(config.path) === projectPath)?.key ?? basename(projectPath);
7448
7462
  }
7449
7463
  var init_project_key = __esmMin((() => {
7450
7464
  init_projects();
@@ -7500,6 +7514,20 @@ function isStateMigrationLocked(projectKey) {
7500
7514
  return true;
7501
7515
  }
7502
7516
  }
7517
+ function acquireStateMigrationLock(projectKey) {
7518
+ const path = stateMigrationLockPath(projectKey);
7519
+ mkdirSync$1(dirname(path), { recursive: true });
7520
+ let fd;
7521
+ try {
7522
+ fd = openSync$1(path, "wx", 384);
7523
+ } catch {
7524
+ throw new Error(`State migration already running for ${projectKey}: ${path}`);
7525
+ }
7526
+ return () => {
7527
+ closeSync$1(fd);
7528
+ rmSync$1(path, { force: true });
7529
+ };
7530
+ }
7503
7531
  var init_state_migration_lock = __esmMin((() => {
7504
7532
  init_paths();
7505
7533
  }));
@@ -7631,15 +7659,13 @@ var init_state_plane = __esmMin((() => {
7631
7659
  "test/",
7632
7660
  "feedback/",
7633
7661
  "backlog/",
7634
- "notes/",
7635
- ".beads/"
7662
+ "notes/"
7636
7663
  ];
7637
7664
  STATE_PLANE_PATHS = [
7638
7665
  ".pan/records/",
7639
7666
  ".pan/continues/",
7640
7667
  ".pan/continue.json",
7641
7668
  ".pan/specs/",
7642
- ".beads/",
7643
7669
  ".pan/test/",
7644
7670
  ".pan/review/",
7645
7671
  ".pan/feedback/"
@@ -7658,8 +7684,7 @@ var init_state_plane = __esmMin((() => {
7658
7684
  *
7659
7685
  * This module exposes a serialized write-through commit primitive that pan-dir
7660
7686
  * writers call after they update a file. Commits are:
7661
- * - scheduled immediately by default so every state update reaches git + origin
7662
- * - optionally fixed-window coalesced when OVERDECK_STATE_FLUSH_WINDOW_MS is set
7687
+ * - scheduled on the next event-loop turn so every state update reaches git + origin
7663
7688
  * - serialized within a process so the git index is never contested
7664
7689
  * - best-effort for synchronous callers: failures are logged and reported by flushes
7665
7690
  * - main-only: feature branches have their own commit cadence owned by agents
@@ -7668,12 +7693,6 @@ var init_state_plane = __esmMin((() => {
7668
7693
  * the agent between machines becomes "stop on A, pull on B, resume on B." The
7669
7694
  * sync-state-via-commit shape this helper produces is the substrate for that.
7670
7695
  */
7671
- function parseStateFlushWindowMs(value) {
7672
- if (!value) return DEFAULT_STATE_FLUSH_WINDOW_MS;
7673
- const parsed = Number(value);
7674
- if (!Number.isFinite(parsed) || parsed < 0) return DEFAULT_STATE_FLUSH_WINDOW_MS;
7675
- return parsed;
7676
- }
7677
7696
  function parsePositiveInteger(value, fallback) {
7678
7697
  if (!value) return fallback;
7679
7698
  const parsed = Number(value);
@@ -7692,7 +7711,11 @@ function isAutoCommitExcludedPath(relativePath) {
7692
7711
  /** Run a git subcommand. Fails with GitError on non-zero exit. */
7693
7712
  function runGit(args, cwd) {
7694
7713
  return Effect.gen(function* () {
7695
- const handle = yield* ChildProcess.make("git", [...args], { cwd });
7714
+ const handle = yield* ChildProcess.make("git", [...args], {
7715
+ cwd,
7716
+ env: { HUSKY: "0" },
7717
+ extendEnv: true
7718
+ });
7696
7719
  const stdoutBuf = yield* Stream.runFold(handle.stdout, () => Buffer.alloc(0), (acc, chunk) => Buffer.concat([acc, Buffer.from(chunk)]));
7697
7720
  const stderrBuf = yield* Stream.runFold(handle.stderr, () => Buffer.alloc(0), (acc, chunk) => Buffer.concat([acc, Buffer.from(chunk)]));
7698
7721
  const exitCode = yield* handle.exitCode;
@@ -7725,10 +7748,9 @@ function isGitError(value) {
7725
7748
  return typeof value === "object" && value !== null && "_tag" in value && value._tag === "GitError";
7726
7749
  }
7727
7750
  /**
7728
- * Queue an auto-commit for one or more files. Returns immediately; by default
7729
- * the serialized commit starts on the next timer turn. An explicit positive
7730
- * OVERDECK_STATE_FLUSH_WINDOW_MS retains fixed-window coalescing for operators
7731
- * who knowingly trade durability latency for fewer commits.
7751
+ * Queue an auto-commit for one or more files. Returns immediately; the
7752
+ * serialized commit-and-push starts on the next timer turn. Callers whose
7753
+ * success depends on remote durability must also await flushAutoCommits().
7732
7754
  *
7733
7755
  * PAN-1908: `repoRoot` allows committing files to a different git checkout
7734
7756
  * than the project root (e.g., a declared infra repo for per-issue permanent
@@ -7764,37 +7786,12 @@ function queueAutoCommit(opts) {
7764
7786
  pending.set(projectRoot, {
7765
7787
  paths: new Set(paths),
7766
7788
  subjects: [subject],
7767
- timer: setTimeout(() => void flushInner(projectRoot), STATE_FLUSH_WINDOW_MS),
7789
+ timer: setTimeout(() => void flushInner(projectRoot), 0),
7768
7790
  repoRoot,
7769
7791
  expectedBranch
7770
7792
  });
7771
7793
  }
7772
7794
  /**
7773
- * PAN-1441: queue an auto-commit of the host-main beads export files.
7774
- *
7775
- * Unlike the .pan/* writers, there is no single Overdeck write site for these:
7776
- * `.beads/issues.jsonl` and `.beads/export-state.json` drift on `main` as a
7777
- * side-effect of the `bd` binary re-exporting after dolt syncs (other machines /
7778
- * workspaces pushing to the shared dolt remote). So this is called from the
7779
- * deacon's periodic patrol as a drift sweep rather than wired to a write site.
7780
- *
7781
- * Only existing files are queued: a missing/deleted `issues.jsonl` is skipped so
7782
- * the janitor never stages — and propagates — a transient empty-DB deletion (the
7783
- * PAN-1158 hazard). queueAutoCommit is main-only, coalesced, and a no-op when
7784
- * nothing changed.
7785
- */
7786
- function queueBeadsAutoCommit(projectRoot) {
7787
- const project = findProjectByPathSync(projectRoot);
7788
- const beadsRoot = project && resolveStateReadHomeSync(project).migrated ? resolveStateReadHomeSync(project).root : projectRoot;
7789
- const paths = [join$1(beadsRoot, ".beads", "issues.jsonl"), join$1(beadsRoot, ".beads", "export-state.json")].filter((p) => existsSync(p));
7790
- if (paths.length === 0) return;
7791
- queueAutoCommit({
7792
- projectRoot,
7793
- paths,
7794
- subject: "chore(beads): sync beads state on main"
7795
- });
7796
- }
7797
- /**
7798
7795
  * PAN-2516 belt-and-suspenders reconciliation for state writes that predate or
7799
7796
  * bypassed the canonical writer. Patrols commit only the owned spec/record
7800
7797
  * surfaces; unrelated source or operator changes are never staged.
@@ -7890,6 +7887,7 @@ function doCommit(projectRoot, batch) {
7890
7887
  onSuccess: (r) => Effect.succeed(r.stdout.trim()),
7891
7888
  onFailure: (err) => Effect.succeed({
7892
7889
  committed: false,
7890
+ errored: true,
7893
7891
  reason: `branch check failed: ${err.stderr || err._tag}`
7894
7892
  })
7895
7893
  }));
@@ -7923,6 +7921,7 @@ function doCommit(projectRoot, batch) {
7923
7921
  console.warn(`[pan-dir/auto-commit] failed for ${branch}: ${err.stderr || err._tag}`);
7924
7922
  return Effect.succeed({
7925
7923
  committed: false,
7924
+ errored: true,
7926
7925
  reason: err.stderr || err._tag
7927
7926
  });
7928
7927
  }
@@ -7953,6 +7952,7 @@ function doCommit(projectRoot, batch) {
7953
7952
  console.warn(`[pan-dir/auto-commit] failed for ${branch}: ${err.stderr || err._tag}`);
7954
7953
  return Effect.succeed({
7955
7954
  committed: false,
7955
+ errored: true,
7956
7956
  reason: err.stderr || err._tag
7957
7957
  });
7958
7958
  }
@@ -7971,7 +7971,6 @@ function doCommit(projectRoot, batch) {
7971
7971
  });
7972
7972
  }
7973
7973
  function maybePushStateCommit(gitRoot, branch) {
7974
- if (process.env.OVERDECK_STATE_AUTOPUSH === "0") return Effect.succeed(null);
7975
7974
  return runGit([
7976
7975
  "remote",
7977
7976
  "get-url",
@@ -8101,16 +8100,14 @@ function warnAutoPush(branch, message) {
8101
8100
  console.warn(`[pan-dir/auto-commit] auto-push warning for ${branch}: ${message}`);
8102
8101
  }
8103
8102
  /**
8104
- * Find the project root for a `.pan/` or `.beads/` file path. Returns null
8105
- * when the path is not under either marker.
8103
+ * Find the project root for a `.pan/` file path. Returns null otherwise.
8106
8104
  */
8107
8105
  function deriveProjectRoot(path) {
8108
- for (const marker of [`${sep$1}.pan${sep$1}`, `${sep$1}.beads${sep$1}`]) {
8109
- const idx = path.indexOf(marker);
8110
- if (idx !== -1) return path.slice(0, idx);
8111
- }
8106
+ const marker = `${sep$1}.pan${sep$1}`;
8107
+ const idx = path.indexOf(marker);
8108
+ if (idx !== -1) return path.slice(0, idx);
8112
8109
  const base = dirname$1(path);
8113
- if (base.endsWith(`${sep$1}.pan`) || base.endsWith(`${sep$1}.beads`)) return dirname$1(base);
8110
+ if (base.endsWith(`${sep$1}.pan`)) return dirname$1(base);
8114
8111
  return null;
8115
8112
  }
8116
8113
  function relativizeToRoot(absOrRel, projectRoot) {
@@ -8118,7 +8115,7 @@ function relativizeToRoot(absOrRel, projectRoot) {
8118
8115
  if (absOrRel.startsWith(rootPrefix)) return absOrRel.slice(rootPrefix.length);
8119
8116
  return absOrRel;
8120
8117
  }
8121
- var spawnerLayer, DEFAULT_STATE_FLUSH_WINDOW_MS, STATE_FLUSH_WINDOW_MS, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, serializer;
8118
+ var spawnerLayer, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, serializer;
8122
8119
  var init_auto_commit = __esmMin((() => {
8123
8120
  init_errors();
8124
8121
  init_projects();
@@ -8126,8 +8123,6 @@ var init_auto_commit = __esmMin((() => {
8126
8123
  init_state_migration_lock();
8127
8124
  init_state_plane();
8128
8125
  spawnerLayer = NodeChildProcessSpawner.layer.pipe(Layer.provide(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
8129
- DEFAULT_STATE_FLUSH_WINDOW_MS = 0;
8130
- STATE_FLUSH_WINDOW_MS = parseStateFlushWindowMs(process.env.OVERDECK_STATE_FLUSH_WINDOW_MS);
8131
8126
  DEFAULT_STATE_PUSH_TIMEOUT_MS = 3e4;
8132
8127
  AUTO_COMMIT_EXCLUDED_PATHS = [
8133
8128
  ".pan/kickoff.md",
@@ -8263,7 +8258,19 @@ function writeRecordFileAtomicSync(path, record) {
8263
8258
  preserveCorruptRecordSync(path);
8264
8259
  const tmp = `${path}.${process.pid}.${Date.now()}.tmp`;
8265
8260
  writeFileSync$1(tmp, JSON.stringify(record, null, 2), "utf-8");
8261
+ const tmpFd = openSync$1(tmp, "r");
8262
+ try {
8263
+ fsyncSync(tmpFd);
8264
+ } finally {
8265
+ closeSync$1(tmpFd);
8266
+ }
8266
8267
  renameSync$1(tmp, path);
8268
+ const dirFd = openSync$1(dirname(path), "r");
8269
+ try {
8270
+ fsyncSync(dirFd);
8271
+ } finally {
8272
+ closeSync$1(dirFd);
8273
+ }
8267
8274
  JSON.parse(readFileSync$1(path, "utf-8"));
8268
8275
  }
8269
8276
  function writeIssueRecordSync(project, issueId, record) {
@@ -8516,7 +8523,6 @@ function readRecordContinueViewSync(project, issueId) {
8516
8523
  decisions: record.decisions ?? [],
8517
8524
  hazards: record.hazards ?? [],
8518
8525
  resumePoint: record.resumePoint ?? null,
8519
- beadsMapping: record.beadsMapping ?? {},
8520
8526
  sessionHistory: record.sessionHistory ?? [],
8521
8527
  feedback: record.feedback ?? [],
8522
8528
  scopeDrift: record.scopeDrift
@@ -8614,20 +8620,6 @@ async function writeRecordResumePoint(project, issueId, resumePoint, opts = {})
8614
8620
  const recordPath = writeIssueRecordSync(project, issueId, record);
8615
8621
  if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
8616
8622
  }
8617
- /** Write beadsMapping into the per-issue record (sync). */
8618
- function writeRecordBeadsMappingSync(project, issueId, beadsMapping, opts = {}) {
8619
- const record = ensureIssueRecordSync(project, issueId);
8620
- record.beadsMapping = beadsMapping;
8621
- const recordPath = writeIssueRecordSync(project, issueId, record);
8622
- if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
8623
- }
8624
- /** Write beadsMapping into the per-issue record (async). */
8625
- async function writeRecordBeadsMapping(project, issueId, beadsMapping, opts = {}) {
8626
- const record = await ensureIssueRecord(project, issueId);
8627
- record.beadsMapping = beadsMapping;
8628
- const recordPath = writeIssueRecordSync(project, issueId, record);
8629
- if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
8630
- }
8631
8623
  /** Infer a minimal ProjectConfig from a workspace path (tests / fallback).
8632
8624
  *
8633
8625
  * Returns a config whose `path` is the workspace directory itself so that
@@ -11397,12 +11389,15 @@ var init_defaults = __esmMin((() => {
11397
11389
  "workspace",
11398
11390
  "specialist",
11399
11391
  "harness",
11400
- "bd",
11401
- "beads",
11402
11392
  "vbrief",
11403
11393
  "workhorse"
11404
11394
  ];
11405
11395
  DEFAULT_CONFIG = {
11396
+ swarm: {
11397
+ mode: "off",
11398
+ maxSlots: 3,
11399
+ autoAdvance: true
11400
+ },
11406
11401
  tmux: { configMode: "managed" },
11407
11402
  enabledProviders: new Set(["anthropic"]),
11408
11403
  defaultConversationModel: "claude-sonnet-5",
@@ -11802,6 +11797,7 @@ function degradeInvalidTieredExecution(result, err) {
11802
11797
  function mergeConfigs(...configs) {
11803
11798
  const result = {
11804
11799
  ...DEFAULT_CONFIG,
11800
+ swarm: { ...DEFAULT_CONFIG.swarm },
11805
11801
  tmux: { ...DEFAULT_CONFIG.tmux },
11806
11802
  enabledProviders: new Set(DEFAULT_CONFIG.enabledProviders),
11807
11803
  providerHarnesses: { ...DEFAULT_CONFIG.providerHarnesses },
@@ -11886,6 +11882,10 @@ function mergeConfigs(...configs) {
11886
11882
  const explicitlyDisabled = /* @__PURE__ */ new Set();
11887
11883
  const validConfigs = configs.filter((c) => c !== null);
11888
11884
  for (const config of validConfigs.reverse()) {
11885
+ if (config.swarm) result.swarm = {
11886
+ ...result.swarm,
11887
+ ...config.swarm
11888
+ };
11889
11889
  if (config.models?.providers) {
11890
11890
  const providers = config.models.providers;
11891
11891
  const legacyKeys = config.api_keys || {};
@@ -14617,6 +14617,6 @@ var init_config_yaml = __esmMin((() => {
14617
14617
  init_load();
14618
14618
  }));
14619
14619
  //#endregion
14620
- export { MODEL_DEPRECATIONS as $, unregisterProjectSync as $n, writeStatusOverrideSync as $t, KIMI_CODING_BASE_URL as A, getSpecialistConfig as An, LOGS_DIR as Ar, markRecordPipelineClosedOutSync as At, piProviderForModel as B, loadProjectsConfig as Bn, encodeClaudeProjectDir as Br, writeIssueRecordSync as Bt, init_tier_table as C, findProjectByTeam as Cn, ARCHIVES_DIR as Cr, ensureIssueRecordSync as Ct, canUseHarnessSync as D, getProject as Dn, CLAUDE_DIR as Dr, getIssueWorkspacePath as Dt, validateTieredExecutionConfig as E, getIssuePrefix as En, CACHE_RULES_DIR as Er, getIssueRecordPathForWorkspace as Et, getBuiltInDefaultHarness as F, init_projects as Fn, PROJECT_PRDS_PLANNED_SUBDIR as Fr, readRecordContinueViewSync as Ft, defaultBackgroundAiFeatures as G, resolveInfraRepo as Gn, getHandoffsDir as Gr, writeRecordHazards as Gt, setupCredentialFileAuthSync as H, projects_exports as Hn, getDocsDisableStatePath as Hr, writeRecordBeadsMappingSync as Ht, getKimiAnthropicBaseUrl as I, initializeProjectsConfig as In, PROJECT_PRDS_SUBDIR as Ir, resolveProjectForIssue as It, DEFAULT_WORKHORSES as J, resolveProjectPath as Jn, init_paths as Jr, writeRecordResumePointSync as Jt, init_registry as K, resolveProjectFromIssue as Kn, getLegacyHome as Kr, writeRecordHazardsSync as Kt, getProviderEnvSync as L, initializeProjectsConfigSync as Ln, SKILLS_DIR as Lr, writeAgentHarnessModel as Lt, PROVIDERS as M, getSpecialistRetention as Mn, PROJECT_DOCS_SUBDIR as Mr, readIssueRecord as Mt, UnknownModelError as N, hasProjects as Nn, PROJECT_PRDS_ACTIVE_SUBDIR as Nr, readIssueRecordForWorkspaceSync as Nt, canUseModelWithAuthSync as O, getProjectSwarmHotspots as On, CONFIG_FILE as Or, getProjectConfigFromWorkspacePath as Ot, clearCredentialFileAuthSync as P, hasProjectsSync as Pn, PROJECT_PRDS_COMPLETED_SUBDIR as Pr, readIssueRecordSync as Pt, MODEL_CAPABILITIES as Q, unregisterProject as Qn, sessionFilePath as Qr, writeStatusOverride as Qt, getProviderForModelSync as R, listProjects as Rn, SYNC_SOURCES as Rr, writeAgentHarnessModelSync as Rt, TieredExecutionConfigError as S, findProjectByPathSync as Sn, AGENTS_DIR as Sr, ensureIssueRecord as St, resolveTieredExecutionEnabledForIssue as T, findProjectsByRallyProject as Tn, CACHE_AGENTS_DIR as Tr, getIssueRecordPath as Tt, ensureOpenAICompatibleProxyRunning as U, registerProject as Un, getDocsIndexPath as Ur, writeRecordDecisions as Ut, qualifyPiModel as V, loadProjectsConfigSync as Vn, getDocsBudgetStatePath as Vr, writeRecordBeadsMapping as Vt, init_openai_compatible_proxy as W, registerProjectSync as Wn, getDocsTelemetryPath as Wr, writeRecordDecisionsSync as Wt, init_roles as X, saveProjectsConfigSync as Xn, packageRoot as Xr, writeRecordTieredExecutionOverride as Xt, computeModelOrigin as Y, saveProjectsConfig as Yn, isDevMode as Yr, writeRecordScopeDriftSync as Yt, resolveModel as Z, setProjectAutoMergeDefaultSync as Zn, resolveOhmypiExtensionPath as Zr, writeRecordTieredExecutionOverrideSync as Zt, getDefaultDocsConfig as _, init_project_key as _n, ProcessSpawnError as _r, appendSessionEntrySync as _t, getConversationsConfigSync as a, queueAutoCommit as an, resolveBareNumericIdSync as ar, resolveModelIdSync as at, DEFAULT_TIERED_EXECUTION_CONFIG as b, extractTeamPrefix as bn, VcsError as br, clearIssueOwner as bt, isClaudeCodeChannelsEnabled as c, STATE_BRANCH_PATHS as cn, CheckpointError as cr, init_percent as ct, loadConfigNoMigration as d, init_state_plane as dn, FsError as dr, ROLE_EFFORTS as dt, writeStatusOverridesSync as en, extractNumberSync as er, getModelCapabilitySync as et, loadConfigSync as f, isStatePlaneOnlyStatus as fn, GitError as fr, RECORD_DIRNAME as ft, mergeConfigs as g, shouldCommitLegacyWorkspaceArtifacts as gn, MergeConflictError as gr, appendSessionEntry as gt, jsYaml as h, resolveStateReadHomeSync as hn, LinearApiError as hr, appendFeedbackEntrySync as ht, getConversationsConfig as i, init_auto_commit as in, parseIssueIdSync as ir, modelSupportsImagesSync as it, KIMI_PLATFORM_BASE_URL as j, getSpecialistPromptOverride as jn, OVERDECK_HOME as jr, queueIssueRecordCommit as jt, init_harness_policy as k, getProjectSync as kn, COSTS_DIR as kr, init_record as kt, isClaudeCodeChannelsMcpEnabled as l, STATE_PLANE_PATHS as ln, ClaudeCredentialParseError as lr, COMPLIANCE_MODES as lt, init_js_yaml as m, init_state_read_home as mn, InvalidAgentIdError as mr, appendFeedbackEntry as mt, clearConfigCache as n, flushAllPendingAutoCommits as nn, init_issue_id as nr, hasModelCapabilitySync as nt, getGlobalConfigPath as o, queueBeadsAutoCommit as on, resolveIssueIdSync as or, fmix32 as ot, updateConversationsConfig as p, isStatePlanePath as pn, GitHubApiError as pr, RECORD_SCHEMA_VERSION as pt, DEFAULT_ROLES as q, resolveProjectFromIssueSync as qn, getOverdeckHome as qr, writeRecordResumePoint as qt, getConversationSearchConfigSync as r, flushAutoCommits as rn, normalizeIssueIdSync as rr, init_model_capabilities as rt, init_load as s, reconcileStatePlaneDrift as sn, require_dist as sr, fnv1a32 as st, init_config_yaml as t, deriveProjectRoot as tn, extractPrefixSync as tr, getModelEffortLevelsSync as tt, isTldrEnabledSync as u, getMainDivergence as un, ConfigError as ur, PARENT_MODEL_REF as ut, getDefaultTtsDaemonConfig as v, PROJECTS_CONFIG_FILE as vn, TmuxError as vr, buildOwnUri as vt, resolveTieredExecutionEnabled as w, findProjectByTeamSync as wn, BIN_DIR as wr, getIssueRecordBasePath as wt, TIERED_EXECUTION_DIFFICULTIES as x, findProjectByPath as xn, init_errors as xr, clearRecordFeedbackSync as xt, mergeTtsDaemonConfigs as y, createDefaultProjectsConfig as yn, TrackerError as yr, claimIssueOwner as yt, init_providers as z, listProjectsSync as zn, TRAEFIK_DIR as zr, writeIssueRecordForWorkspaceSync as zt };
14620
+ export { MODEL_DEPRECATIONS as $, unregisterProject as $n, sessionFilePath as $r, deriveProjectRoot as $t, KIMI_CODING_BASE_URL as A, getSpecialistConfig as An, COSTS_DIR as Ar, markRecordPipelineClosedOutSync as At, piProviderForModel as B, loadProjectsConfig as Bn, TRAEFIK_DIR as Br, writeIssueRecordSync as Bt, init_tier_table as C, findProjectByTeam as Cn, AGENTS_DIR as Cr, ensureIssueRecordSync as Ct, canUseHarnessSync as D, getProject as Dn, CACHE_RULES_DIR as Dr, getIssueWorkspacePath as Dt, validateTieredExecutionConfig as E, getIssuePrefix as En, CACHE_AGENTS_DIR as Er, getIssueRecordPathForWorkspace as Et, getBuiltInDefaultHarness as F, init_projects as Fn, PROJECT_PRDS_COMPLETED_SUBDIR as Fr, readRecordContinueViewSync as Ft, defaultBackgroundAiFeatures as G, resolveInfraRepo as Gn, getDocsTelemetryPath as Gr, writeRecordResumePoint as Gt, setupCredentialFileAuthSync as H, projects_exports as Hn, getDocsBudgetStatePath as Hr, writeRecordDecisionsSync as Ht, getKimiAnthropicBaseUrl as I, initializeProjectsConfig as In, PROJECT_PRDS_PLANNED_SUBDIR as Ir, resolveProjectForIssue as It, DEFAULT_WORKHORSES as J, resolveProjectPath as Jn, getOverdeckHome as Jr, writeRecordTieredExecutionOverride as Jt, init_registry as K, resolveProjectFromIssue as Kn, getHandoffsDir as Kr, writeRecordResumePointSync as Kt, getProviderEnvSync as L, initializeProjectsConfigSync as Ln, PROJECT_PRDS_SUBDIR as Lr, writeAgentHarnessModel as Lt, PROVIDERS as M, getSpecialistRetention as Mn, OVERDECK_HOME as Mr, readIssueRecord as Mt, UnknownModelError as N, hasProjects as Nn, PROJECT_DOCS_SUBDIR as Nr, readIssueRecordForWorkspaceSync as Nt, canUseModelWithAuthSync as O, getProjectSwarmHotspots as On, CLAUDE_DIR as Or, getProjectConfigFromWorkspacePath as Ot, clearCredentialFileAuthSync as P, hasProjectsSync as Pn, PROJECT_PRDS_ACTIVE_SUBDIR as Pr, readIssueRecordSync as Pt, MODEL_CAPABILITIES as Q, setProjectSwarmPolicySync as Qn, resolveOhmypiExtensionPath as Qr, writeStatusOverridesSync as Qt, getProviderForModelSync as R, listProjects as Rn, SKILLS_DIR as Rr, writeAgentHarnessModelSync as Rt, TieredExecutionConfigError as S, findProjectByPathSync as Sn, init_errors as Sr, ensureIssueRecord as St, resolveTieredExecutionEnabledForIssue as T, findProjectsByRallyProject as Tn, BIN_DIR as Tr, getIssueRecordPath as Tt, ensureOpenAICompatibleProxyRunning as U, registerProject as Un, getDocsDisableStatePath as Ur, writeRecordHazards as Ut, qualifyPiModel as V, loadProjectsConfigSync as Vn, encodeClaudeProjectDir as Vr, writeRecordDecisions as Vt, init_openai_compatible_proxy as W, registerProjectSync as Wn, getDocsIndexPath as Wr, writeRecordHazardsSync as Wt, init_roles as X, saveProjectsConfigSync as Xn, isDevMode as Xr, writeStatusOverride as Xt, computeModelOrigin as Y, saveProjectsConfig as Yn, init_paths as Yr, writeRecordTieredExecutionOverrideSync as Yt, resolveModel as Z, setProjectAutoMergeDefaultSync as Zn, packageRoot as Zr, writeStatusOverrideSync as Zt, getDefaultDocsConfig as _, projectKey as _n, MergeConflictError as _r, appendSessionEntrySync as _t, getConversationsConfigSync as a, STATE_BRANCH_PATHS as an, parseIssueIdSync as ar, resolveModelIdSync as at, DEFAULT_TIERED_EXECUTION_CONFIG as b, extractTeamPrefix as bn, TrackerError as br, clearIssueOwner as bt, isClaudeCodeChannelsEnabled as c, init_state_plane as cn, require_dist as cr, init_percent as ct, loadConfigNoMigration as d, acquireStateMigrationLock as dn, ConfigError as dr, ROLE_EFFORTS as dt, flushAllPendingAutoCommits as en, unregisterProjectSync as er, getModelCapabilitySync as et, loadConfigSync as f, init_state_migration_lock as fn, FsError as fr, RECORD_DIRNAME as ft, mergeConfigs as g, init_project_key as gn, LinearApiError as gr, appendSessionEntry as gt, jsYaml as h, shouldCommitLegacyWorkspaceArtifacts as hn, InvalidAgentIdError as hr, appendFeedbackEntrySync as ht, getConversationsConfig as i, reconcileStatePlaneDrift as in, normalizeIssueIdSync as ir, modelSupportsImagesSync as it, KIMI_PLATFORM_BASE_URL as j, getSpecialistPromptOverride as jn, LOGS_DIR as jr, queueIssueRecordCommit as jt, init_harness_policy as k, getProjectSync as kn, CONFIG_FILE as kr, init_record as kt, isClaudeCodeChannelsMcpEnabled as l, isStatePlaneOnlyStatus as ln, CheckpointError as lr, COMPLIANCE_MODES as lt, init_js_yaml as m, resolveStateReadHomeSync as mn, GitHubApiError as mr, appendFeedbackEntry as mt, clearConfigCache as n, init_auto_commit as nn, extractPrefixSync as nr, hasModelCapabilitySync as nt, getGlobalConfigPath as o, STATE_PLANE_PATHS as on, resolveBareNumericIdSync as or, fmix32 as ot, updateConversationsConfig as p, init_state_read_home as pn, GitError as pr, RECORD_SCHEMA_VERSION as pt, DEFAULT_ROLES as q, resolveProjectFromIssueSync as qn, getLegacyHome as qr, writeRecordScopeDriftSync as qt, getConversationSearchConfigSync as r, queueAutoCommit as rn, init_issue_id as rr, init_model_capabilities as rt, init_load as s, getMainDivergence as sn, resolveIssueIdSync as sr, fnv1a32 as st, init_config_yaml as t, flushAutoCommits as tn, extractNumberSync as tr, getModelEffortLevelsSync as tt, isTldrEnabledSync as u, isStatePlanePath as un, ClaudeCredentialParseError as ur, PARENT_MODEL_REF as ut, getDefaultTtsDaemonConfig as v, PROJECTS_CONFIG_FILE as vn, ProcessSpawnError as vr, buildOwnUri as vt, resolveTieredExecutionEnabled as w, findProjectByTeamSync as wn, ARCHIVES_DIR as wr, getIssueRecordBasePath as wt, TIERED_EXECUTION_DIFFICULTIES as x, findProjectByPath as xn, VcsError as xr, clearRecordFeedbackSync as xt, mergeTtsDaemonConfigs as y, createDefaultProjectsConfig as yn, TmuxError as yr, claimIssueOwner as yt, init_providers as z, listProjectsSync as zn, SYNC_SOURCES as zr, writeIssueRecordForWorkspaceSync as zt };
14621
14621
 
14622
- //# sourceMappingURL=config-yaml-cNOZcEww.js.map
14622
+ //# sourceMappingURL=config-yaml-CqaAyn8y.js.map
@@ -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-Dc1l4dVz.js";
4
- import { W as spawnRun, j as messageAgent, t as init_agents } from "./agents-B9GwfCyp.js";
3
+ import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-DANr0t-v.js";
4
+ import { L as messageAgent, X as spawnRun, s as init_agents } from "./queries-C0LCGG21.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-BMKm_5DV.js.map
233
+ //# sourceMappingURL=conflict-gate-BF_zhcmb.js.map
@@ -1,3 +1,3 @@
1
- import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-BMKm_5DV.js";
1
+ import { a as resolveConflictGate, i as init_conflict_gate, t as buildRealConflictGateDeps } from "./conflict-gate-BF_zhcmb.js";
2
2
  init_conflict_gate();
3
3
  export { buildRealConflictGateDeps, resolveConflictGate };
@@ -1,6 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Jr as init_paths } from "./config-yaml-cNOZcEww.js";
3
- import { o as init_layers } from "./layers-jjL16At6.js";
2
+ import { Sr as init_errors, Yr as init_paths } from "./config-yaml-CqaAyn8y.js";
3
+ import { o as init_layers } from "./layers-gCJlK62m.js";
4
+ import "effect";
4
5
  import "fs";
5
6
  import "path";
6
7
  import "os";
@@ -131,6 +132,18 @@ var init_assemble = __esmMin((() => {
131
132
  init_render();
132
133
  }));
133
134
  //#endregion
135
+ //#region ../../lib/backup.ts
136
+ var init_backup = __esmMin((() => {
137
+ init_paths();
138
+ init_errors();
139
+ }));
140
+ //#endregion
141
+ //#region ../../lib/context-layers/legacy-beads-cleanup.ts
142
+ var init_legacy_beads_cleanup = __esmMin((() => {
143
+ init_backup();
144
+ init_render();
145
+ }));
146
+ //#endregion
134
147
  //#region ../../lib/context-layers/migrate.ts
135
148
  var init_migrate = __esmMin((() => {
136
149
  init_layers();
@@ -143,9 +156,10 @@ var init_context_layers = __esmMin((() => {
143
156
  init_rules();
144
157
  init_render();
145
158
  init_assemble();
159
+ init_legacy_beads_cleanup();
146
160
  init_migrate();
147
161
  }));
148
162
  //#endregion
149
163
  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
164
 
151
- //# sourceMappingURL=context-layers-c0JqYHcS.js.map
165
+ //# sourceMappingURL=context-layers-BFrxfl0l.js.map
@@ -1,4 +1,4 @@
1
- import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-jjL16At6.js";
2
- import { t as init_context_layers } from "./context-layers-c0JqYHcS.js";
1
+ import { l as piGlobalContextFile, n as codexGlobalContextFile } from "./layers-gCJlK62m.js";
2
+ import { t as init_context_layers } from "./context-layers-BFrxfl0l.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 { Fn as init_projects, Vn as loadProjectsConfigSync, kn as getProjectSync } from "./config-yaml-cNOZcEww.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-Ba9mS6e6.js";
4
- import { n as init_issues, t as IssueId } from "./issues-CBAsuoAO.js";
2
+ import { Fn as init_projects, Vn as loadProjectsConfigSync, kn as getProjectSync } from "./config-yaml-CqaAyn8y.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-_Kx1m9pm.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-DIEHt9sq.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-D4EFsRBd.js.map
406
+ //# sourceMappingURL=control-settings-BguNQ1F_.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-BCggyih4.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-DxSXl0pT.js";
2
2
  init_conversation_compaction();
3
3
  export { buildCompactionRuntimeInfo, compactConversationNative, estimateContextTokens, getConversationCompactionSettings, isCompacting, maybeCompactBeforeRespawn, shouldInterceptManualCompact };
@@ -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-cNOZcEww.js";
3
- import { a as init_event_store, n as getEventStore } from "./event-store-D89fMfXS.js";
4
- import { Gt as getAgentRuntimeBaseCommand, t as init_agents, un as getProviderExportsForModel } from "./agents-B9GwfCyp.js";
5
- import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-B8LFQQm1.js";
6
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-u5XeMaOK.js";
7
- import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-CiWfGfRZ.js";
8
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-gKSoFAnK.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-CqaAyn8y.js";
3
+ import { a as init_event_store, n as getEventStore } from "./event-store-KZnWUKWh.js";
4
+ import { Kt as getAgentRuntimeBaseCommand, dn as getProviderExportsForModel, s as init_agents } from "./queries-C0LCGG21.js";
5
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-DqvaoQoa.js";
6
+ import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-mFVFdDQK.js";
7
+ import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-CmoXpjeU.js";
8
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-COqYpVa3.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-BCggyih4.js.map
182
+ //# sourceMappingURL=conversation-compaction-DxSXl0pT.js.map
@@ -1,3 +1,3 @@
1
- import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-B8LFQQm1.js";
1
+ import { i as computeContextUsage, t as init_conversation_service } from "./conversation-service-mFVFdDQK.js";
2
2
  init_conversation_service();
3
3
  export { computeContextUsage };