@overdeck/desktop 0.45.16 → 0.45.19

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-DQqRIuQ-.js +62 -0
  7. package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-BYidNkmp.js} +6 -6
  8. package/server/{agent-gc-D0wDIeV1.js → agent-gc-ClNQLl_V.js} +3 -3
  9. package/server/agent-state-BMrpX7kU.js +3 -0
  10. package/server/{agent-state-service-DFslS5go.js → agent-state-service-BpAKmodj.js} +5 -5
  11. package/server/{agent-state-service-CZrayD_G.js → agent-state-service-CC9NMIWn.js} +1 -1
  12. package/server/{briefing-freshness-DESTCWo-.js → agents--ljN-wVY.js} +5 -131
  13. package/server/agents-DAUyr_Z1.js +3 -0
  14. package/server/{archive-planning-CoyIbgGK.js → archive-planning-2w8WQaeJ.js} +1 -1
  15. package/server/{archive-planning-CbghE9-o.js → archive-planning-BW3te5Vw.js} +5 -10
  16. package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-DFO3eceF.js} +2 -2
  17. package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-DECBMxLq.js} +2 -2
  18. package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
  19. package/server/briefing-freshness-B1delh4l.js +131 -0
  20. package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-CjLY6A4r.js} +1 -1
  21. package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-D6_71Rpb.js} +3 -3
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-BtUonbs3.js → checkpoints-BYrLxVle.js} +2 -2
  24. package/server/{checkpoints-fjadfOKF.js → checkpoints-xSuv4v4I.js} +1 -1
  25. package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-DL6yfJB_.js} +1 -1
  26. package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-DvfVZbbT.js} +2 -2
  27. package/server/{claude-permissions-CThLgf8d.js → claude-permissions-CcncrTNF.js} +2 -2
  28. package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-1IfYetv2.js} +2 -2
  29. package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-Ca3LXjAC.js} +1 -1
  30. package/server/cli-BxZHwgRK.js +3 -0
  31. package/server/{cli-ByKIIMfT.js → cli-DGZWYXio.js} +9 -9
  32. package/server/{cliproxy-B4c1BUvs.js → cliproxy-Dw42Xy3t.js} +2 -2
  33. package/server/{cliproxy-C_GuT5DU.js → cliproxy-DziJLbfo.js} +1 -1
  34. package/server/{close-issue-BOuLKr6e.js → close-issue-DEGjxifn.js} +5 -5
  35. package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-BsJ3JqQy.js} +9 -9
  36. package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-CNr7X4MB.js} +1 -1
  37. package/server/codex-C8OlW-dN.js +3 -0
  38. package/server/{codex-BbqIRZjd.js → codex-D5RyWzNL.js} +43 -18
  39. package/server/{codex-parser-mFYZh8vR.js → codex-parser-BRxvUkk8.js} +2 -2
  40. package/server/{config-Dj6N8EP9.js → config-CQ2u44iP.js} +1 -1
  41. package/server/{config-DVLdmnMJ.js → config-Cntj_tFu.js} +2 -2
  42. package/server/{config-yaml-cNOZcEww.js → config-yaml-BQs6GbD_.js} +75 -74
  43. package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BE6JdfkO.js} +1 -1
  44. package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-DdfwKgy0.js} +3 -3
  45. package/server/{context-layers-c0JqYHcS.js → context-layers-DFucrVVG.js} +17 -3
  46. package/server/{context-layers-CeAwSYNt.js → context-layers-DO0Eyq2E.js} +2 -2
  47. package/server/{control-settings-D4EFsRBd.js → control-settings-bxOCLsuE.js} +4 -4
  48. package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-Dq6MfZdL.js} +8 -8
  49. package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-lSlUb-cU.js} +1 -1
  50. package/server/{conversation-service-BTzObqGi.js → conversation-service-BVt4MQ1_.js} +1 -1
  51. package/server/{conversation-service-B8LFQQm1.js → conversation-service-TZsQjkjT.js} +6 -6
  52. package/server/{conversations-B-lcHv-5.js → conversations-CxOWHNzv.js} +4 -4
  53. package/server/{conversations-BM7zlXjr.js → conversations-DaF6elGK.js} +1 -1
  54. package/server/{cost-BcpRQ-7o.js → cost-Dlh0IEiv.js} +3 -3
  55. package/server/{cost-D9kPIY_5.js → cost-oinpUqvE.js} +2 -2
  56. package/server/{cost-sync-DF6odxK9.js → cost-sync-CVIAsrhB.js} +3 -3
  57. package/server/{dag-DKI3sOmX.js → dag-ClFr7Bah.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-B8ygB3e8.js} +3 -3
  61. package/server/{deacon-DdARMjZq.js → deacon-D2-xTesT.js} +233 -162
  62. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/deacon-swarm-1vPLuj_l.js +2 -0
  64. package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-yWKQhxiX.js} +298 -72
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-xPhZHCrx.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-DPEglAwA.js} +2 -2
  71. package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-SzSvEdKq.js} +4 -4
  72. package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-wU3ym1b5.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-BZoXexYS.js} +1 -1
  75. package/server/{event-store-D89fMfXS.js → event-store-D4s6eQ6o.js} +3 -3
  76. package/server/{events-rIGncmP1.js → events-Bn-wdUBF.js} +1 -1
  77. package/server/{events-S_C0pvl6.js → events-D1hMLl2a.js} +3 -3
  78. package/server/{factory-DV18m0rc.js → factory-ltWnu0V_.js} +20 -17
  79. package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-xj-J1Wm7.js} +4 -4
  80. package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-CQZukiLm.js} +2 -2
  81. package/server/{features-u5XeMaOK.js → features-Dyqi6N8f.js} +2 -2
  82. package/server/{feedback-target-DDG1PWl3.js → feedback-target-Ba0zhSYI.js} +1 -1
  83. package/server/{feedback-target-CwyWf0Dg.js → feedback-target-Chd5dm-Q.js} +9 -7
  84. package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-BtaoJGl2.js} +1 -1
  85. package/server/{feedback-writer-D20HSXre.js → feedback-writer-BujzReaQ.js} +4 -4
  86. package/server/{flywheel-Dczmgchd.js → flywheel-FTInS73X.js} +15 -28
  87. package/server/{flywheel-RCnHAgc4.js → flywheel-bTImiVrk.js} +1 -1
  88. package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-DuenRJLZ.js} +6 -6
  89. package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-O5Zu8iPw.js} +1 -1
  90. package/server/{flywheel-9Y1X7IM-.js → flywheel-rmYbW-lh.js} +13 -13
  91. package/server/{forge-DFDThFil.js → forge-OWm99lie.js} +22 -12
  92. package/server/forge-x5lszTd0.js +2 -0
  93. package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-C5A_TTOM.js → fts-db-BRfS5ukG.js} +2 -2
  95. package/server/{fts-operations-DvCSimfU.js → fts-operations-L5sNLoHl.js} +2 -2
  96. package/server/{git-utils-C0neHvQx.js → git-utils-BIEzv2Zp.js} +1 -1
  97. package/server/{git-utils-Dr0L7mFk.js → git-utils-CP-bg-aM.js} +2 -2
  98. package/server/{github-app-u9-SX7Gc.js → github-app-CRUIvHuM.js} +8 -3
  99. package/server/{github-app-Bwt9lK4A.js → github-app-Dtn4ib6M.js} +1 -1
  100. package/server/{github-client-Btyy3uan.js → github-client-CWEFlCqL.js} +3 -3
  101. package/server/{github-client-Do3k-N1W.js → github-client-DSVv6wX8.js} +1 -1
  102. package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-D6CS9vtG.js} +2 -2
  103. package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-ScD6rV47.js} +3 -3
  104. package/server/{health-events-Bos3sk5g.js → health-events-DbcJmYmd.js} +1 -1
  105. package/server/{health-events-B4u-2a9m.js → health-events-Dm1Vcvqe.js} +2 -2
  106. package/server/{hooks-uEr8WTx_.js → hooks-B6gaI6Kg.js} +1 -1
  107. package/server/{hooks-BCoOjL_R.js → hooks-VXuCnzCv.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-H0W6XtHh.js → idle-stack-reaper-Gv32ZCrQ.js} +1 -1
  111. package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-po700Lfg.js} +2 -2
  112. package/server/{infra-Ba9mS6e6.js → infra-DYwIXlK5.js} +9 -4
  113. package/server/{injection-C1DKXeIZ.js → injection-CTfFnpsG.js} +1 -1
  114. package/server/{injection-yrMBxzVq.js → injection-DPsUoCJp.js} +7 -7
  115. package/server/inspect-agent-B25IP-0O.js +2 -0
  116. package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-CLkwfLRx.js} +35 -67
  117. package/server/{internal-token-BtqSbKTx.js → internal-token--50JhWP7.js} +2 -2
  118. package/server/{internal-token-BPYEaXFh.js → internal-token-BOgxXMGy.js} +1 -1
  119. package/server/{io-VEGSAqsd.js → io-Cv9xQTks.js} +36 -43
  120. package/server/{issue-closed-BxcePXL-.js → issue-closed-CyqtoFUj.js} +41 -6
  121. package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-Cm7ydBGK.js} +1 -1
  122. package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-DR6n40bh.js} +22 -37
  123. package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton--LQ5c2zT.js} +1 -1
  124. package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-DKKPneH4.js} +29 -29
  125. package/server/{issues-CBAsuoAO.js → issues-Cr-BLFLO.js} +2 -2
  126. package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Bp_xCkX4.js} +3 -3
  127. package/server/{label-cleanup-htK6fBRU.js → label-cleanup-BbLy2FZe.js} +3 -3
  128. package/server/{state-home-CEvD_v5F.js → launcher-generator-C-FU4PNT.js} +7 -127
  129. package/server/{layers-jjL16At6.js → layers-C-6lBDUE.js} +2 -2
  130. package/server/lifecycle-Bmw8yU_A.js +12 -0
  131. package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-B150XprC.js} +1 -1
  132. package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-Dcu-_ktz.js} +4 -4
  133. package/server/{linear-client-D9cSQfvD.js → linear-client-BHjs0luk.js} +3 -3
  134. package/server/{linear-client-By7hjwuN.js → linear-client-s65LNmlG.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-BLcEZNXz.js → merge-CM8swd2V.js} +1 -1
  137. package/server/{merge-BN8FGJ2q.js → merge-CS0b-E3u.js} +3 -3
  138. package/server/{merge-agent-B3u2szOL.js → merge-agent-Bu1hw9cz.js} +64 -51
  139. package/server/{merge-agent-ejC7Wos8.js → merge-agent-D6LRIW63.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-Dt43hJiW.js} +2 -2
  142. package/server/merge-ops-DwYi3U_x.js +2 -0
  143. package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-B3vQcTq1.js} +2 -2
  144. package/server/{merge-set-Dy0D0r3i.js → merge-set-BMEGEKQg.js} +1 -1
  145. package/server/{merge-set-CZ9Nbay0.js → merge-set-Pe3spe8k.js} +3 -3
  146. package/server/{merge-sync-CG9kDCdT.js → merge-sync-CpxFRIQ7.js} +1 -1
  147. package/server/{merge-sync-D7jWLgCC.js → merge-sync-STpg1hk3.js} +2 -2
  148. package/server/{merge-train-CH33XJOH.js → merge-train-DLw2hDk0.js} +3 -3
  149. package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-BlCGLqwy.js} +4 -4
  150. package/server/{merge-verification-D4wTChdX.js → merge-verification-C4WMP40D.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-BIcNu4tl.js → orphan-proposed-reconciler-eetUXmmt.js} +1 -1
  165. package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-k9eydM1E.js} +14 -24
  166. package/server/package-lock.json +12 -12
  167. package/server/package.json +1 -1
  168. package/server/{pan-dir-CQIfKG8c.js → pan-dir-D3vABXMs.js} +4 -4
  169. package/server/{paths-Blj6A9AJ.js → paths-DIoslfsu.js} +2 -2
  170. package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-Bgidcelx.js} +1 -1
  171. package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-CuBONomU.js} +2 -2
  172. package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B9b_JVTS.js} +2 -2
  173. package/server/projects-DxMUi2eI.js +3 -0
  174. package/server/{prompts-B3njaImU.js → prompts-CY1xnHS-.js} +2 -2
  175. package/server/{providers-DnPxkHoG.js → providers-B7BNcK_j.js} +1 -1
  176. package/server/{providers-BbEyFhPX.js → providers-CAlK2If5.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-Cs4VLxiY.js} +1 -1
  194. package/server/{pull-requests-DyUkQl4W.js → pull-requests-CxfrQiWX.js} +3 -3
  195. package/server/{agents-B9GwfCyp.js → queries-srgusoi8.js} +710 -325
  196. package/server/{rally-BtWjybOa.js → rally-AKkjuGdi.js} +3 -3
  197. package/server/rally-BOza5j3_.js +3 -0
  198. package/server/{rally-api-B-osULNL.js → rally-api-BGxATnyr.js} +2 -2
  199. package/server/{rally-api-B-YA_oXx.js → rally-api-Dbqw1YW9.js} +1 -1
  200. package/server/{rally-client-CzFymP7P.js → rally-client-B1U5ewpO.js} +1 -1
  201. package/server/{rally-client-sErNQBO0.js → rally-client-D8h73ei_.js} +5 -5
  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-CoU-HqZj.js → rebuild-stack-BYdtwS6f.js} +5 -5
  205. package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-Dsm9WjKv.js} +1 -1
  206. package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-D7oM1lNv.js} +6 -6
  207. package/server/record-BeXdn9Ue.js +3 -0
  208. package/server/record-update-Cb_pPM-F.js +168 -0
  209. package/server/record-update-KFiISAmu.js +3 -0
  210. package/server/recovery-trip-DwbsONZf.js +44 -0
  211. package/server/{release-engine-CBLQXDlH.js → release-engine-CAai5W0V.js} +5 -5
  212. package/server/{release-set-BNiqi7hy.js → release-set-vNEAfyDH.js} +3 -3
  213. package/server/{remote-DW_TWQnr.js → remote-8HlOfuF1.js} +3 -3
  214. package/server/{remote-DcO9An_f.js → remote-RQMKOL_R.js} +3 -3
  215. package/server/{remote-agents-C4cyxHQS.js → remote-agents-C4a4DdTj.js} +6 -33
  216. package/server/{remote-agents-Cv-U-_V8.js → remote-agents-_Z1SAaSK.js} +1 -1
  217. package/server/{remote-completion-PhXGGFQy.js → remote-completion-CH3igKY8.js} +13 -13
  218. package/server/resume-Cr34JAXO.js +3 -0
  219. package/server/{review-agent-Dn-yn7Zj.js → review-agent-CQ7oRh_G.js} +31 -23
  220. package/server/{review-agent-u5q3ip7H.js → review-agent-CUVj54v0.js} +1 -1
  221. package/server/{review-artifacts-D4T04aYI.js → review-artifacts-CC3yGv7o.js} +5 -19
  222. package/server/{review-context-Rc0VDLG_.js → review-context-BuxaAgAd.js} +8 -8
  223. package/server/{review-monitor-BC--miCO.js → review-monitor-uogOppaW.js} +2 -2
  224. package/server/{review-status-CG0iDuWa.js → review-status-BoJdyvUQ.js} +1 -1
  225. package/server/{review-status-Dc1l4dVz.js → review-status-By86XA6Z.js} +38 -62
  226. package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-CRQAO27G.js} +3 -3
  227. package/server/{review-status-sync-CfSixhhX.js → review-status-sync-BI4WhUkF.js} +1 -1
  228. package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-DUQmrLkK.js} +2 -2
  229. package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-BNcGkBRD.js} +8 -8
  230. package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-CWz9_9Kp.js} +1 -1
  231. package/server/{rollup-CakjztPl.js → rollup-B-K6PCbm.js} +1 -1
  232. package/server/{rollup-DctoIu-A.js → rollup-CqiFgtBp.js} +8 -8
  233. package/server/{scanner-BTM1jc_u.js → scanner-BZmDUjyD.js} +7 -7
  234. package/server/{sequence-io-pnoIDGv4.js → sequence-io-BuUx1ZAY.js} +4 -4
  235. package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-2uWOA_BC.js} +6 -17
  236. package/server/server.js +4700 -4096
  237. package/server/{service-DfTVoqJg.js → service-COB19Uhm.js} +116 -90
  238. package/server/{session-fork-C4jAFHj8.js → session-fork-D18TscUZ.js} +2 -2
  239. package/server/{session-history-DanhhiCw.js → session-history-DbWnzfo-.js} +4 -4
  240. package/server/settings-C3w2std9.js +2 -0
  241. package/server/{settings-Cuc12oP_.js → settings-CFEdfovT.js} +2 -2
  242. package/server/{settings-DfT3f86D.js → settings-DNPAf2X_.js} +3 -3
  243. package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-D8xTtraU.js} +3 -3
  244. package/server/{shadow-state-DJz6_pb_.js → shadow-state-CTgub0ME.js} +2 -2
  245. package/server/{shadow-state-CVHpRWlb.js → shadow-state-fRDYhcyx.js} +1 -1
  246. package/server/shadow-utils-DqMLnRgQ.js +39 -0
  247. package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
  248. package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-CL6yaFpc.js} +1 -1
  249. package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CsJDKM-N.js} +7 -7
  250. package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-C_wIQ-Zg.js} +1 -1
  251. package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-D0-NlNK1.js} +16 -16
  252. package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
  253. package/server/{specialist-context-B2HlbNxS.js → specialist-context-DXj5Itg8.js} +5 -5
  254. package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-BFH-IB0n.js} +2 -2
  255. package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-B-rldhNg.js} +3 -3
  256. package/server/{specialists-CFgw_0Q6.js → specialists-C6-b3YZb.js} +161 -448
  257. package/server/{specialists-D7AcFi1u.js → specialists-CI_eqHAz.js} +1 -1
  258. package/server/{specialists-CwzFdapR.js → specialists-Dp8ABxVh.js} +18 -18
  259. package/server/{specialists-k22_Btaq.js → specialists-Hq3EojmD.js} +1 -1
  260. package/server/specs-DPGNVh51.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-Bxt-oGE6.js} +1 -1
  265. package/server/{stack-health-CSgcYcr8.js → stack-health-FtNYSTCS.js} +2 -2
  266. package/server/stale-task-claims-DnCHCATD.js +69 -0
  267. package/server/state-home-BzzKVh_C.js +213 -0
  268. package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
  269. package/server/state-migrate-BS4IybIS.js +362 -0
  270. package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CTNT4LUC.js} +1 -1
  271. package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-DbwhGg3g.js} +36 -41
  272. package/server/{summary-fork-CnRMPCYd.js → summary-fork-CloCB8dV.js} +2 -2
  273. package/server/{summary-fork-gKSoFAnK.js → summary-fork-DaCs0tCq.js} +8 -8
  274. package/server/supervisor/{paths-3R6b989k.js → paths-C1yU0jq4.js} +5 -3
  275. package/server/supervisor/pty-supervisor.js +2 -2
  276. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-CSryb8Mb.js} +2 -2
  277. package/server/{supervisor-CZMs8s0M.js → supervisor-CRED6PD6.js} +2 -2
  278. package/server/supervisor-DHwuClN_.js +2 -0
  279. package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-CEOrP9rE.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-Ckn7HGhp.js} +14 -71
  282. package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-C8lE8r2j.js} +5 -5
  283. package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-BE5rqR90.js} +1 -1
  284. package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-CGwDr28O.js} +2 -2
  285. package/server/{tmux-C3g9VFcg.js → tmux-C3X2XmV0.js} +92 -4
  286. package/server/tmux-DNaD06Gc.js +3 -0
  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-5Cabf1MU.js} +2 -2
  291. package/server/{tracker-utils--z8FLSWn.js → tracker-utils-Cl-Eaqrv.js} +2 -2
  292. package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-FexeJhyf.js} +1 -1
  293. package/server/{tunnel-CN2px87h.js → tunnel-D4px7sKc.js} +1 -1
  294. package/server/{tunnel-BpWZs0Jy.js → tunnel-KId6Z59z.js} +3 -3
  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-BRo6DM7p.js → uat-train-B16skN7L.js} +24 -25
  300. package/server/{uat-train-utGVmqdm.js → uat-train-BBMrnecu.js} +1 -1
  301. package/server/validation-Zc4kAmqa.js +3 -0
  302. package/server/{validation-CsPVsoA0.js → validation-xAD7y5vW.js} +70 -23
  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-32y8NRfL.js} +338 -58
  306. package/server/verification-runner-DAat1p1u.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-S3Fe1kpV.js} +12 -88
  309. package/server/{workflows-CXRwhw_o.js → workflows-BNvk5gbE.js} +17 -24
  310. package/server/workflows-Cw2-a_hn.js +2 -0
  311. package/server/{workspace-CNfuj1-5.js → workspace-BhUnCpcq.js} +3 -3
  312. package/server/{workspace-9UEsKuiP.js → workspace-C-gP6JAz.js} +1 -1
  313. package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
  314. package/server/{workspace-manager-D8AByFIT.js → workspace-manager-BKiMmb0c.js} +23 -48
  315. package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-DD6PDqV8.js} +1 -1
  316. package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-Cnq0snrf.js} +2 -2
  317. package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-D5gNR61G.js} +1 -1
  318. package/server/{workspaces-D-uIoqbg.js → workspaces-DiAwBsb9.js} +182 -152
  319. package/sync-sources/hooks/codex-notify-hook +64 -8
  320. package/sync-sources/hooks/record-cost-event.js +1110 -37
  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
@@ -1,2 +1,2 @@
1
- import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-DCAYzNXW.js";
1
+ import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-BsJ3JqQy.js";
2
2
  export { handleIssueStatusChangedClosed };
@@ -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-D5RyWzNL.js";
2
+ init_codex();
3
+ export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };
@@ -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-BQs6GbD_.js";
3
+ import { R as sessionExists, S as init_tmux, T as killSession, j as listSessionsSync, o as createSession } from "./tmux-C3X2XmV0.js";
4
+ import { r as CODEX_BEHAVIOR } from "./src-By3D85Ry.js";
5
+ import { r as parseCodexSessionSync, t as init_codex_parser } from "./codex-parser-BRxvUkk8.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-D5RyWzNL.js.map
@@ -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-oinpUqvE.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-BRxvUkk8.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-Cntj_tFu.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-BQs6GbD_.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-Cntj_tFu.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");
@@ -161,6 +162,7 @@ var init_paths = __esmMin((() => {
161
162
  hooks: join$1(SYNC_SOURCES_ROOT, "hooks"),
162
163
  gitHooks: join$1(SYNC_SOURCES_ROOT, "hooks", "git-hooks"),
163
164
  templates: join$1(SYNC_SOURCES_ROOT, "templates"),
165
+ plugins: join$1(SYNC_SOURCES_ROOT, "plugins.json"),
164
166
  traefikTemplates: join$1(SYNC_SOURCES_ROOT, "templates", "traefik"),
165
167
  claudeMdSections: join$1(SYNC_SOURCES_ROOT, "templates", "claude-md", "sections")
166
168
  };
@@ -6977,6 +6979,7 @@ var projects_exports = /* @__PURE__ */ __exportAll({
6977
6979
  saveProjectsConfig: () => saveProjectsConfig,
6978
6980
  saveProjectsConfigSync: () => saveProjectsConfigSync,
6979
6981
  setProjectAutoMergeDefaultSync: () => setProjectAutoMergeDefaultSync,
6982
+ setProjectSwarmPolicySync: () => setProjectSwarmPolicySync,
6980
6983
  unregisterProject: () => unregisterProject,
6981
6984
  unregisterProjectSync: () => unregisterProjectSync
6982
6985
  });
@@ -7043,6 +7046,18 @@ function setProjectAutoMergeDefaultSync(key, value) {
7043
7046
  else updated.auto_merge_default = value;
7044
7047
  registerProjectSync(key, updated);
7045
7048
  }
7049
+ function setProjectSwarmPolicySync(key, value) {
7050
+ const config = getProjectSync(key);
7051
+ if (!config) throw new Error(`Unknown project: ${key}`);
7052
+ const updated = { ...config };
7053
+ const hotspots = config.swarm?.hotspots;
7054
+ if (value === null && !hotspots?.length) delete updated.swarm;
7055
+ else updated.swarm = {
7056
+ ...hotspots?.length ? { hotspots } : {},
7057
+ ...value ?? {}
7058
+ };
7059
+ registerProjectSync(key, updated);
7060
+ }
7046
7061
  /**
7047
7062
  * Remove a project from the registry
7048
7063
  */
@@ -7444,7 +7459,7 @@ var init_projects = __esmMin((() => {
7444
7459
  function projectKey(project, explicit) {
7445
7460
  if (explicit) return explicit;
7446
7461
  const projectPath = resolve(project.path);
7447
- return listProjectsSync().find(({ config }) => resolve(config.path) === projectPath)?.key ?? basename(projectPath);
7462
+ return (listProjectsSync() ?? []).find(({ config }) => resolve(config.path) === projectPath)?.key ?? basename(projectPath);
7448
7463
  }
7449
7464
  var init_project_key = __esmMin((() => {
7450
7465
  init_projects();
@@ -7500,6 +7515,20 @@ function isStateMigrationLocked(projectKey) {
7500
7515
  return true;
7501
7516
  }
7502
7517
  }
7518
+ function acquireStateMigrationLock(projectKey) {
7519
+ const path = stateMigrationLockPath(projectKey);
7520
+ mkdirSync$1(dirname(path), { recursive: true });
7521
+ let fd;
7522
+ try {
7523
+ fd = openSync$1(path, "wx", 384);
7524
+ } catch {
7525
+ throw new Error(`State migration already running for ${projectKey}: ${path}`);
7526
+ }
7527
+ return () => {
7528
+ closeSync$1(fd);
7529
+ rmSync$1(path, { force: true });
7530
+ };
7531
+ }
7503
7532
  var init_state_migration_lock = __esmMin((() => {
7504
7533
  init_paths();
7505
7534
  }));
@@ -7631,15 +7660,13 @@ var init_state_plane = __esmMin((() => {
7631
7660
  "test/",
7632
7661
  "feedback/",
7633
7662
  "backlog/",
7634
- "notes/",
7635
- ".beads/"
7663
+ "notes/"
7636
7664
  ];
7637
7665
  STATE_PLANE_PATHS = [
7638
7666
  ".pan/records/",
7639
7667
  ".pan/continues/",
7640
7668
  ".pan/continue.json",
7641
7669
  ".pan/specs/",
7642
- ".beads/",
7643
7670
  ".pan/test/",
7644
7671
  ".pan/review/",
7645
7672
  ".pan/feedback/"
@@ -7658,8 +7685,7 @@ var init_state_plane = __esmMin((() => {
7658
7685
  *
7659
7686
  * This module exposes a serialized write-through commit primitive that pan-dir
7660
7687
  * 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
7688
+ * - scheduled on the next event-loop turn so every state update reaches git + origin
7663
7689
  * - serialized within a process so the git index is never contested
7664
7690
  * - best-effort for synchronous callers: failures are logged and reported by flushes
7665
7691
  * - main-only: feature branches have their own commit cadence owned by agents
@@ -7668,12 +7694,6 @@ var init_state_plane = __esmMin((() => {
7668
7694
  * the agent between machines becomes "stop on A, pull on B, resume on B." The
7669
7695
  * sync-state-via-commit shape this helper produces is the substrate for that.
7670
7696
  */
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
7697
  function parsePositiveInteger(value, fallback) {
7678
7698
  if (!value) return fallback;
7679
7699
  const parsed = Number(value);
@@ -7692,7 +7712,11 @@ function isAutoCommitExcludedPath(relativePath) {
7692
7712
  /** Run a git subcommand. Fails with GitError on non-zero exit. */
7693
7713
  function runGit(args, cwd) {
7694
7714
  return Effect.gen(function* () {
7695
- const handle = yield* ChildProcess.make("git", [...args], { cwd });
7715
+ const handle = yield* ChildProcess.make("git", [...args], {
7716
+ cwd,
7717
+ env: { HUSKY: "0" },
7718
+ extendEnv: true
7719
+ });
7696
7720
  const stdoutBuf = yield* Stream.runFold(handle.stdout, () => Buffer.alloc(0), (acc, chunk) => Buffer.concat([acc, Buffer.from(chunk)]));
7697
7721
  const stderrBuf = yield* Stream.runFold(handle.stderr, () => Buffer.alloc(0), (acc, chunk) => Buffer.concat([acc, Buffer.from(chunk)]));
7698
7722
  const exitCode = yield* handle.exitCode;
@@ -7725,10 +7749,9 @@ function isGitError(value) {
7725
7749
  return typeof value === "object" && value !== null && "_tag" in value && value._tag === "GitError";
7726
7750
  }
7727
7751
  /**
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.
7752
+ * Queue an auto-commit for one or more files. Returns immediately; the
7753
+ * serialized commit-and-push starts on the next timer turn. Callers whose
7754
+ * success depends on remote durability must also await flushAutoCommits().
7732
7755
  *
7733
7756
  * PAN-1908: `repoRoot` allows committing files to a different git checkout
7734
7757
  * than the project root (e.g., a declared infra repo for per-issue permanent
@@ -7764,37 +7787,12 @@ function queueAutoCommit(opts) {
7764
7787
  pending.set(projectRoot, {
7765
7788
  paths: new Set(paths),
7766
7789
  subjects: [subject],
7767
- timer: setTimeout(() => void flushInner(projectRoot), STATE_FLUSH_WINDOW_MS),
7790
+ timer: setTimeout(() => void flushInner(projectRoot), 0),
7768
7791
  repoRoot,
7769
7792
  expectedBranch
7770
7793
  });
7771
7794
  }
7772
7795
  /**
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
7796
  * PAN-2516 belt-and-suspenders reconciliation for state writes that predate or
7799
7797
  * bypassed the canonical writer. Patrols commit only the owned spec/record
7800
7798
  * surfaces; unrelated source or operator changes are never staged.
@@ -7890,6 +7888,7 @@ function doCommit(projectRoot, batch) {
7890
7888
  onSuccess: (r) => Effect.succeed(r.stdout.trim()),
7891
7889
  onFailure: (err) => Effect.succeed({
7892
7890
  committed: false,
7891
+ errored: true,
7893
7892
  reason: `branch check failed: ${err.stderr || err._tag}`
7894
7893
  })
7895
7894
  }));
@@ -7923,6 +7922,7 @@ function doCommit(projectRoot, batch) {
7923
7922
  console.warn(`[pan-dir/auto-commit] failed for ${branch}: ${err.stderr || err._tag}`);
7924
7923
  return Effect.succeed({
7925
7924
  committed: false,
7925
+ errored: true,
7926
7926
  reason: err.stderr || err._tag
7927
7927
  });
7928
7928
  }
@@ -7953,6 +7953,7 @@ function doCommit(projectRoot, batch) {
7953
7953
  console.warn(`[pan-dir/auto-commit] failed for ${branch}: ${err.stderr || err._tag}`);
7954
7954
  return Effect.succeed({
7955
7955
  committed: false,
7956
+ errored: true,
7956
7957
  reason: err.stderr || err._tag
7957
7958
  });
7958
7959
  }
@@ -7971,7 +7972,6 @@ function doCommit(projectRoot, batch) {
7971
7972
  });
7972
7973
  }
7973
7974
  function maybePushStateCommit(gitRoot, branch) {
7974
- if (process.env.OVERDECK_STATE_AUTOPUSH === "0") return Effect.succeed(null);
7975
7975
  return runGit([
7976
7976
  "remote",
7977
7977
  "get-url",
@@ -8101,16 +8101,14 @@ function warnAutoPush(branch, message) {
8101
8101
  console.warn(`[pan-dir/auto-commit] auto-push warning for ${branch}: ${message}`);
8102
8102
  }
8103
8103
  /**
8104
- * Find the project root for a `.pan/` or `.beads/` file path. Returns null
8105
- * when the path is not under either marker.
8104
+ * Find the project root for a `.pan/` file path. Returns null otherwise.
8106
8105
  */
8107
8106
  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
- }
8107
+ const marker = `${sep$1}.pan${sep$1}`;
8108
+ const idx = path.indexOf(marker);
8109
+ if (idx !== -1) return path.slice(0, idx);
8112
8110
  const base = dirname$1(path);
8113
- if (base.endsWith(`${sep$1}.pan`) || base.endsWith(`${sep$1}.beads`)) return dirname$1(base);
8111
+ if (base.endsWith(`${sep$1}.pan`)) return dirname$1(base);
8114
8112
  return null;
8115
8113
  }
8116
8114
  function relativizeToRoot(absOrRel, projectRoot) {
@@ -8118,7 +8116,7 @@ function relativizeToRoot(absOrRel, projectRoot) {
8118
8116
  if (absOrRel.startsWith(rootPrefix)) return absOrRel.slice(rootPrefix.length);
8119
8117
  return absOrRel;
8120
8118
  }
8121
- var spawnerLayer, DEFAULT_STATE_FLUSH_WINDOW_MS, STATE_FLUSH_WINDOW_MS, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, serializer;
8119
+ var spawnerLayer, DEFAULT_STATE_PUSH_TIMEOUT_MS, AUTO_COMMIT_EXCLUDED_PATHS, pending, serializer;
8122
8120
  var init_auto_commit = __esmMin((() => {
8123
8121
  init_errors();
8124
8122
  init_projects();
@@ -8126,8 +8124,6 @@ var init_auto_commit = __esmMin((() => {
8126
8124
  init_state_migration_lock();
8127
8125
  init_state_plane();
8128
8126
  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
8127
  DEFAULT_STATE_PUSH_TIMEOUT_MS = 3e4;
8132
8128
  AUTO_COMMIT_EXCLUDED_PATHS = [
8133
8129
  ".pan/kickoff.md",
@@ -8263,7 +8259,19 @@ function writeRecordFileAtomicSync(path, record) {
8263
8259
  preserveCorruptRecordSync(path);
8264
8260
  const tmp = `${path}.${process.pid}.${Date.now()}.tmp`;
8265
8261
  writeFileSync$1(tmp, JSON.stringify(record, null, 2), "utf-8");
8262
+ const tmpFd = openSync$1(tmp, "r");
8263
+ try {
8264
+ fsyncSync(tmpFd);
8265
+ } finally {
8266
+ closeSync$1(tmpFd);
8267
+ }
8266
8268
  renameSync$1(tmp, path);
8269
+ const dirFd = openSync$1(dirname(path), "r");
8270
+ try {
8271
+ fsyncSync(dirFd);
8272
+ } finally {
8273
+ closeSync$1(dirFd);
8274
+ }
8267
8275
  JSON.parse(readFileSync$1(path, "utf-8"));
8268
8276
  }
8269
8277
  function writeIssueRecordSync(project, issueId, record) {
@@ -8516,7 +8524,6 @@ function readRecordContinueViewSync(project, issueId) {
8516
8524
  decisions: record.decisions ?? [],
8517
8525
  hazards: record.hazards ?? [],
8518
8526
  resumePoint: record.resumePoint ?? null,
8519
- beadsMapping: record.beadsMapping ?? {},
8520
8527
  sessionHistory: record.sessionHistory ?? [],
8521
8528
  feedback: record.feedback ?? [],
8522
8529
  scopeDrift: record.scopeDrift
@@ -8614,20 +8621,6 @@ async function writeRecordResumePoint(project, issueId, resumePoint, opts = {})
8614
8621
  const recordPath = writeIssueRecordSync(project, issueId, record);
8615
8622
  if (opts.autoCommit !== false) queueIssueRecordCommit(project, issueId, recordPath);
8616
8623
  }
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
8624
  /** Infer a minimal ProjectConfig from a workspace path (tests / fallback).
8632
8625
  *
8633
8626
  * Returns a config whose `path` is the workspace directory itself so that
@@ -11397,12 +11390,15 @@ var init_defaults = __esmMin((() => {
11397
11390
  "workspace",
11398
11391
  "specialist",
11399
11392
  "harness",
11400
- "bd",
11401
- "beads",
11402
11393
  "vbrief",
11403
11394
  "workhorse"
11404
11395
  ];
11405
11396
  DEFAULT_CONFIG = {
11397
+ swarm: {
11398
+ mode: "off",
11399
+ maxSlots: 3,
11400
+ autoAdvance: true
11401
+ },
11406
11402
  tmux: { configMode: "managed" },
11407
11403
  enabledProviders: new Set(["anthropic"]),
11408
11404
  defaultConversationModel: "claude-sonnet-5",
@@ -11802,6 +11798,7 @@ function degradeInvalidTieredExecution(result, err) {
11802
11798
  function mergeConfigs(...configs) {
11803
11799
  const result = {
11804
11800
  ...DEFAULT_CONFIG,
11801
+ swarm: { ...DEFAULT_CONFIG.swarm },
11805
11802
  tmux: { ...DEFAULT_CONFIG.tmux },
11806
11803
  enabledProviders: new Set(DEFAULT_CONFIG.enabledProviders),
11807
11804
  providerHarnesses: { ...DEFAULT_CONFIG.providerHarnesses },
@@ -11886,6 +11883,10 @@ function mergeConfigs(...configs) {
11886
11883
  const explicitlyDisabled = /* @__PURE__ */ new Set();
11887
11884
  const validConfigs = configs.filter((c) => c !== null);
11888
11885
  for (const config of validConfigs.reverse()) {
11886
+ if (config.swarm) result.swarm = {
11887
+ ...result.swarm,
11888
+ ...config.swarm
11889
+ };
11889
11890
  if (config.models?.providers) {
11890
11891
  const providers = config.models.providers;
11891
11892
  const legacyKeys = config.api_keys || {};
@@ -14617,6 +14618,6 @@ var init_config_yaml = __esmMin((() => {
14617
14618
  init_load();
14618
14619
  }));
14619
14620
  //#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 };
14621
+ 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
14622
 
14622
- //# sourceMappingURL=config-yaml-cNOZcEww.js.map
14623
+ //# sourceMappingURL=config-yaml-BQs6GbD_.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-DdfwKgy0.js";
2
2
  init_conflict_gate();
3
3
  export { buildRealConflictGateDeps, resolveConflictGate };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
3
- import { c as init_review_status, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-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-By86XA6Z.js";
4
+ import { L as messageAgent, X as spawnRun, s as init_agents } from "./queries-srgusoi8.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-DdfwKgy0.js.map
@@ -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-BQs6GbD_.js";
3
+ import { o as init_layers } from "./layers-C-6lBDUE.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-DFucrVVG.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-C-6lBDUE.js";
2
+ import { t as init_context_layers } from "./context-layers-DFucrVVG.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-BQs6GbD_.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-DYwIXlK5.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-Cr-BLFLO.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-bxOCLsuE.js.map
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-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-BQs6GbD_.js";
3
+ import { a as init_event_store, n as getEventStore } from "./event-store-D4s6eQ6o.js";
4
+ import { Kt as getAgentRuntimeBaseCommand, dn as getProviderExportsForModel, s as init_agents } from "./queries-srgusoi8.js";
5
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-Dyqi6N8f.js";
6
+ import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-TZsQjkjT.js";
7
+ import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-CsJDKM-N.js";
8
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-DaCs0tCq.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-Dq6MfZdL.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-Dq6MfZdL.js";
2
2
  init_conversation_compaction();
3
3
  export { buildCompactionRuntimeInfo, compactConversationNative, estimateContextTokens, getConversationCompactionSettings, isCompacting, maybeCompactBeforeRespawn, shouldInterceptManualCompact };
@@ -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-TZsQjkjT.js";
2
2
  init_conversation_service();
3
3
  export { computeContextUsage };