@overdeck/desktop 0.45.22 → 0.45.24

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 (429) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
  4. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
  13. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
  38. package/server/codex-GcHuUF-k.js +3 -0
  39. package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
  44. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
  56. package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
  59. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
  62. package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
  68. package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
  69. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
  84. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
  90. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
  95. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
  104. package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
  127. package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
  130. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
  137. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
  138. package/server/lifecycle-io-DPo7x11I.js +3 -0
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/lifecycle-yPd___5E.js +121 -0
  141. package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
  190. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
  194. package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
  197. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/projects-vjjcmiN8.js +3 -0
  203. package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
  213. package/server/public/assets/index-CenuJ3Cw.css +1 -0
  214. package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
  224. package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
  225. package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/record-CN0pj4_5.js +3 -0
  237. package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/record-update-dE1Aw83j.js +310 -0
  239. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
  252. package/server/review-status-btEYlaxA.js +3 -0
  253. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
  255. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
  262. package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2961 -919
  265. package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
  266. package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
  279. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
  285. package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/specialists-DM6bWjsi.js +3 -0
  287. package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
  297. package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
  298. package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
  299. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
  300. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
  310. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
  313. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/tmux-B6z7h_vZ.js +3 -0
  318. package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
  319. package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
  334. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
  338. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
  342. package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
  350. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  351. package/sync-sources/agents/pan-merge-agent.md +1 -1
  352. package/sync-sources/agents/pan-planning-agent.md +4 -4
  353. package/sync-sources/agents/pan-work-agent.md +1 -1
  354. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  355. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  356. package/sync-sources/hooks/record-cost-event.js +369 -75
  357. package/sync-sources/hooks/session-start-hook +7 -0
  358. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  359. package/sync-sources/rules/per-bead-durability.md +1 -1
  360. package/sync-sources/rules/prd-authoring.md +1 -1
  361. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  362. package/sync-sources/skills/okf/README.md +11 -3
  363. package/sync-sources/skills/okf/SKILL.md +12 -1
  364. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  365. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  366. package/sync-sources/skills/pan/SKILL.md +2 -2
  367. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  368. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  369. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  370. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  371. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  372. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  373. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  374. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  375. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  376. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  377. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  378. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  379. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  380. package/sync-sources/skills/pan-start/SKILL.md +7 -3
  381. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  382. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  383. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  384. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  385. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  386. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  387. package/sync-sources/skills/plan/SKILL.md +11 -11
  388. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  389. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  390. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  391. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  392. package/server/agent-state-Co5Sy2Fw.js +0 -3
  393. package/server/agents-DyHKlq1I.js +0 -3
  394. package/server/cli-BRORS9qY.js +0 -3
  395. package/server/codex-DNyiQDKW.js +0 -3
  396. package/server/context-layers-15gDOk20.js +0 -165
  397. package/server/context-layers-DlQKkHH2.js +0 -4
  398. package/server/deacon-swarm-CV54eNmU.js +0 -2
  399. package/server/dist-j64RzSrQ.js +0 -3
  400. package/server/flywheel-6WHU4O7A.js +0 -207
  401. package/server/flywheel-COR0mbRI.js +0 -522
  402. package/server/flywheel-Ctr5uuvo.js +0 -2
  403. package/server/forge-B0_opi-V.js +0 -2
  404. package/server/git-utils-CsKGnzFA.js +0 -3
  405. package/server/hume-BmhvfVbV.js +0 -3
  406. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  407. package/server/layers-Cp1To4L8.js +0 -93
  408. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  409. package/server/merge-blockers-BYjeXrVN.js +0 -41
  410. package/server/merge-ops-DwWCkSgo.js +0 -2
  411. package/server/merge-set-DiISXcC-.js +0 -139
  412. package/server/projects-BKkwpH6q.js +0 -3
  413. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  414. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  415. package/server/rally-OSJXdiHK.js +0 -3
  416. package/server/rebuild-stack-CKjJAI8L.js +0 -3
  417. package/server/record-rwK-nKv_.js +0 -3
  418. package/server/record-update-Crz74r-6.js +0 -168
  419. package/server/resume-wZZsWtzz.js +0 -3
  420. package/server/review-status-Bnh-rdkY.js +0 -3
  421. package/server/settings-BlUsVaUc.js +0 -2
  422. package/server/specialists-Dqe6_HE5.js +0 -3
  423. package/server/specs-BhOKBzqk.js +0 -3
  424. package/server/stack-health-Bd06frFn.js +0 -3
  425. package/server/supervisor-COVHrBTg.js +0 -2
  426. package/server/tmux-BAvtac_u.js +0 -3
  427. package/server/token-util-BArZLN6w.js +0 -3
  428. package/server/workflows-C4mR0Reb.js +0 -2
  429. package/server/workspace-manager-B1WOfKvB.js +0 -3
@@ -1,23 +1,22 @@
1
- import { Bt as resolveProjectForIssue, It as readIssueRecord, Mt as getProjectConfigFromWorkspacePath, Nt as init_record, Pt as markRecordPipelineClosedOutSync, Ut as writeCloseOutDodGate, Vr as OVERDECK_HOME, dr as extractPrefixSync, fr as init_issue_id, ii as init_paths, ur as extractNumberSync } from "./config-yaml-ig8Nwtiw.js";
2
- import { c as init_review_status, o as getReviewStatus } from "./review-status-DFRjDFef.js";
3
- import { i as listRunningAgents, s as init_agents } from "./queries-ZABd5aXP.js";
4
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-B-CI9hgE.js";
5
- import { f as init_config, s as getDashboardApiUrlSync } from "./config-q4Gvd8dq.js";
6
- import { i as loadCloisterConfig, r as init_config$1 } from "./config-DeTsoZdR.js";
7
- import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-Dj2gncak.js";
8
- import { i as findWorkspacePath, o as init_archive_planning, t as archivePlanning } from "./archive-planning-BvDuWNMo.js";
9
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-7-GnJn0t.js";
10
- import { t as closeIssue } from "./close-issue-CxReRxIc.js";
11
- import { o as init_pull_requests, r as fetchIssuePullRequest, t as fetchCommitCheckRuns } from "./pull-requests-8z2N1UOV.js";
12
- import { n as acceptFlagFor, t as DOD_ROWS } from "./dod-DbJLYcHv.js";
13
- import { t as teardownWorkspace } from "./teardown-workspace-DDCf5n-a.js";
1
+ import { Dt as getProjectConfigFromWorkspacePath, Ft as resolveProjectForIssue, Jn as extractPrefixSync, Lt as writeCloseOutDodGate, Ot as init_record, Vr as init_paths, Yn as init_issue_id, jt as readIssueRecord, kt as markRecordPipelineClosedOutSync, qn as extractNumberSync, wr as OVERDECK_HOME } from "./config-yaml-DySPNmKN.js";
2
+ import { l as init_review_status, s as getReviewStatus } from "./review-status-kZj_KyCk.js";
3
+ import { b as init_agents, i as listRunningAgents } from "./queries-CjNIf-Ub.js";
4
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-DKZFMbFt.js";
5
+ import { f as init_config, s as getDashboardApiUrlSync } from "./config-BZ0sHTju.js";
6
+ import { i as loadCloisterConfig, r as init_config$1 } from "./config-CKxYiCmX.js";
7
+ import { r as getAutoCloseOutCanonicalState, t as pruneStoppedAgentsForIssue } from "./agent-gc-CHcnvonI.js";
8
+ import { i as findWorkspacePath, o as init_archive_planning, t as archivePlanning } from "./archive-planning-Du25Jtst.js";
9
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-5M0lupud.js";
10
+ import { t as closeIssue } from "./close-issue-DoOifFIK.js";
11
+ import { o as init_pull_requests, r as fetchIssuePullRequest, t as fetchCommitCheckRuns } from "./pull-requests-_lHueOHW.js";
12
+ import { n as acceptFlagFor, t as DOD_ROWS } from "./dod-C6n9RV3G.js";
13
+ import { t as teardownWorkspace } from "./teardown-workspace-DeTTImn-.js";
14
14
  import { resolve } from "node:path";
15
15
  import { Effect } from "effect";
16
16
  import { existsSync } from "fs";
17
17
  import { join as join$1 } from "path";
18
18
  import { userInfo } from "node:os";
19
- import { stat } from "node:fs/promises";
20
- import { copyFile, readFile as readFile$1, writeFile as writeFile$1 } from "fs/promises";
19
+ import { copyFile, readFile, writeFile } from "fs/promises";
21
20
  import { execFile } from "node:child_process";
22
21
  import { promisify } from "node:util";
23
22
  import { exec as exec$1 } from "child_process";
@@ -98,32 +97,7 @@ const defaultDeployRowDeps = {
98
97
  } catch {
99
98
  return false;
100
99
  }
101
- },
102
- serverStartedAt: async (port) => {
103
- const { stdout: pidOutput } = await execFileAsync("lsof", [
104
- "-ti",
105
- `tcp:${port}`,
106
- "-sTCP:LISTEN"
107
- ], {
108
- encoding: "utf-8",
109
- timeout: 1e4
110
- });
111
- const pid = pidOutput.trim().split("\n")[0];
112
- if (!pid) throw new Error(`no dashboard process owns port ${port}`);
113
- const { stdout } = await execFileAsync("ps", [
114
- "-o",
115
- "lstart=",
116
- "-p",
117
- pid
118
- ], {
119
- encoding: "utf-8",
120
- timeout: 1e4
121
- });
122
- const startedAt = new Date(stdout.trim());
123
- if (Number.isNaN(startedAt.getTime())) throw new Error(`could not parse dashboard process start time: ${stdout.trim()}`);
124
- return startedAt;
125
- },
126
- distMtime: async (repoRoot) => new Date((await stat(resolve(repoRoot, "dist/dashboard/server.js"))).mtime)
100
+ }
127
101
  };
128
102
  const defaultDeps = {
129
103
  getReviewStatus: (issueId) => Effect.runPromise(getReviewStatus(issueId)),
@@ -248,25 +222,13 @@ async function checkDeployRow(ctx, merge, deps = defaultDeployRowDeps) {
248
222
  const repoRoot = typeof health.repoRoot === "string" ? health.repoRoot : "";
249
223
  if (!repoRoot) return result("deploy", "miss", `dashboard at ${baseUrl} did not report repoRoot`);
250
224
  if (resolve(repoRoot) !== resolve(ctx.projectPath)) return result("deploy", "skip", `live dashboard serves ${repoRoot}, not this project — deploy semantics undefined for ${ctx.projectPath}`);
225
+ const buildCommit = typeof health.buildCommit === "string" && health.buildCommit.trim() ? health.buildCommit : void 0;
226
+ if (!buildCommit) return result("deploy", "miss", `dashboard at ${baseUrl} did not report buildCommit; live deployment cannot be proven`);
227
+ if (!merge.mergeCommit) return result("deploy", "miss", "cannot resolve merge commit; live deployment cannot be proven");
251
228
  try {
252
- let version = {};
253
- try {
254
- version = await deps.readJson(`${baseUrl}/api/version`);
255
- } catch {}
256
- const buildCommit = typeof version.buildCommit === "string" ? version.buildCommit : typeof version.commit === "string" ? version.commit : void 0;
257
- if (buildCommit && merge.mergeCommit) {
258
- const contains = await deps.commitContains(repoRoot, merge.mergeCommit, buildCommit);
259
- const observed = `build commit ${buildCommit.slice(0, 8)} ${contains ? "contains" : "does not contain"} merge ${merge.mergeCommit.slice(0, 8)}`;
260
- return result("deploy", contains ? "pass" : "miss", observed);
261
- }
262
- if (!merge.mergedAt) return result("deploy", "miss", "cannot resolve merge time for best-effort deploy check");
263
- const mergedAt = new Date(merge.mergedAt);
264
- if (Number.isNaN(mergedAt.getTime())) return result("deploy", "miss", `cannot parse merge time ${merge.mergedAt}`);
265
- const port = Number(new URL(baseUrl).port || (new URL(baseUrl).protocol === "https:" ? 443 : 80));
266
- const [startedAt, builtAt] = await Promise.all([deps.serverStartedAt(port), deps.distMtime(repoRoot)]);
267
- const fresh = startedAt > mergedAt && builtAt > mergedAt;
268
- const observed = `best-effort — build commit not exposed (PAN-2713): server started ${startedAt.toISOString()}, dist built ${builtAt.toISOString()}, merge ${mergedAt.toISOString()}`;
269
- return result("deploy", fresh ? "pass" : "miss", observed);
229
+ const contains = await deps.commitContains(repoRoot, merge.mergeCommit, buildCommit);
230
+ const observed = `build commit ${buildCommit.slice(0, 8)} ${contains ? "contains" : "does not contain"} merge ${merge.mergeCommit.slice(0, 8)}`;
231
+ return result("deploy", contains ? "pass" : "miss", observed);
270
232
  } catch (error) {
271
233
  return result("deploy", "miss", `deploy evidence unavailable: ${error instanceof Error ? error.message : String(error)}`);
272
234
  }
@@ -390,7 +352,7 @@ function close(ctx, opts = {}) {
390
352
  *
391
353
  * 1. Verify branch merged (hard fail if not — must pass before any cleanup)
392
354
  * 2. Move PRD + archive workspace artifacts (hard fail if archiving fails)
393
- * 3. Mark vBRIEF completed
355
+ * 3. Mark xBRIEF completed
394
356
  * 4. Clean up workspace (tmux, TLDR, Docker, worktree)
395
357
  * 5. Clean up agent state
396
358
  * 6. Close issue on tracker
@@ -424,10 +386,10 @@ function closeOut(ctx, opts = {}) {
424
386
  allSteps.push(stepFailed("close-out:abort", "Stopped — archiving failed, workspace preserved"));
425
387
  return buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
426
388
  }
427
- const vbriefStep = yield* Effect.promise(() => completeVBriefStep(ctx));
428
- allSteps.push(vbriefStep);
429
- if (!vbriefStep.success && !vbriefStep.skipped) {
430
- allSteps.push(stepFailed("close-out:abort", "Stopped — vBRIEF completion failed, workspace preserved"));
389
+ const xbriefStep = yield* Effect.promise(() => completeXBriefStep(ctx));
390
+ allSteps.push(xbriefStep);
391
+ if (!xbriefStep.success && !xbriefStep.skipped) {
392
+ allSteps.push(stepFailed("close-out:abort", "Stopped — xBRIEF completion failed, workspace preserved"));
431
393
  return buildResult("close-out", ctx.issueId, allSteps, start, dodGate);
432
394
  }
433
395
  const closeOutConfig = (yield* Effect.promise(() => Effect.runPromise(loadCloisterConfig()))).close_out;
@@ -577,19 +539,19 @@ function resetToTodo(ctx, opts = {}) {
577
539
  function cancelIssueWorkflow(ctx, opts = {}) {
578
540
  return destructiveResetWorkflow("cancel", ctx, opts, resetIssueToCanceled, "Canceling issue", "Issue moved to Canceled");
579
541
  }
580
- async function completeVBriefStep(ctx) {
542
+ async function completeXBriefStep(ctx) {
581
543
  const step = "close-out:vbrief-completed";
582
544
  try {
583
- const { transitionVBriefOnMain } = await import("./lifecycle-io-DmY2qwCn.js");
584
- const result = await Effect.runPromise(transitionVBriefOnMain(ctx.projectPath, ctx.issueId, "completed", "completed", `scope: complete ${ctx.issueId.toUpperCase()} vBRIEF`));
585
- const details = [result.moved ? "Updated vBRIEF lifecycle to completed" : "vBRIEF lifecycle already completed", result.statusUpdated ? "Updated plan.status to completed" : "plan.status already completed"];
586
- if (result.committed) details.push("Committed vBRIEF completion on main");
545
+ const { transitionXBriefOnMain } = await import("./lifecycle-io-DPo7x11I.js");
546
+ const result = await Effect.runPromise(transitionXBriefOnMain(ctx.projectPath, ctx.issueId, "completed", "completed", `scope: complete ${ctx.issueId.toUpperCase()} xBRIEF`));
547
+ const details = [result.moved ? "Updated xBRIEF lifecycle to completed" : "xBRIEF lifecycle already completed", result.statusUpdated ? "Updated plan.status to completed" : "plan.status already completed"];
548
+ if (result.committed) details.push("Committed xBRIEF completion on main");
587
549
  return stepOk(step, details);
588
550
  } catch (err) {
589
551
  const cause = err.cause ?? err;
590
552
  const message = cause instanceof Error ? cause.message : String(cause);
591
- if (message.includes("No vBRIEF found")) return stepSkipped(step, [`No vBRIEF found for ${ctx.issueId}`]);
592
- return stepFailed(step, `vBRIEF completion failed: ${message}`);
553
+ if (message.includes("No xBRIEF found")) return stepSkipped(step, [`No xBRIEF found for ${ctx.issueId}`]);
554
+ return stepFailed(step, `xBRIEF completion failed: ${message}`);
593
555
  }
594
556
  }
595
557
  async function verifyBranchMergedImpl(ctx) {
@@ -597,7 +559,7 @@ async function verifyBranchMergedImpl(ctx) {
597
559
  const branchName = `feature/${ctx.issueId.toLowerCase()}`;
598
560
  try {
599
561
  try {
600
- const { loadReviewStatuses } = await import("./review-status-Bnh-rdkY.js");
562
+ const { loadReviewStatuses } = await import("./review-status-btEYlaxA.js");
601
563
  if (loadReviewStatuses()[ctx.issueId.toUpperCase()]?.mergeStatus === "merged") return stepOk(step, ["Merge specialist confirmed merge completed"]);
602
564
  } catch {}
603
565
  const { stdout: branchExists } = await execAsync(`git branch --list "${branchName}" 2>/dev/null || true`, {
@@ -821,7 +783,7 @@ async function resetIssueToTodoImpl(ctx) {
821
783
  */
822
784
  async function resetPostMergeStateForIssue(issueId) {
823
785
  try {
824
- const { resetPostMergeState } = await import("./merge-agent-B-SnXOoc.js");
786
+ const { resetPostMergeState } = await import("./merge-agent-CKkgIBPB.js");
825
787
  resetPostMergeState(issueId);
826
788
  resetPostMergeState(issueId.toUpperCase());
827
789
  } catch {
@@ -837,18 +799,18 @@ function clearReviewStatusStep(issueId) {
837
799
  async function clearReviewStatusStepImpl(issueId) {
838
800
  const step = "clear-review-status";
839
801
  try {
840
- const { clearReviewStatus } = await import("./review-status-Bnh-rdkY.js");
802
+ const { clearReviewStatus } = await import("./review-status-btEYlaxA.js");
841
803
  clearReviewStatus(issueId.toUpperCase());
842
804
  return stepOk(step, ["Review status cleared"]);
843
805
  } catch {
844
806
  try {
845
807
  const statusFile = join$1(OVERDECK_HOME, "review-status.json");
846
808
  if (existsSync(statusFile)) {
847
- const data = JSON.parse(await readFile$1(statusFile, "utf-8"));
809
+ const data = JSON.parse(await readFile(statusFile, "utf-8"));
848
810
  const upperKey = issueId.toUpperCase();
849
811
  if (data[upperKey]) {
850
812
  delete data[upperKey];
851
- await writeFile$1(statusFile, JSON.stringify(data, null, 2));
813
+ await writeFile(statusFile, JSON.stringify(data, null, 2));
852
814
  }
853
815
  }
854
816
  return stepOk(step, ["Review status cleared (direct)"]);
@@ -904,4 +866,4 @@ async function resetIssueToCanceledImpl(ctx) {
904
866
  //#endregion
905
867
  export { deepWipe as a, closeOut as i, cancelIssueWorkflow as n, resetToTodo as o, close as r, verifyBranchMergedImpl as s, approve as t };
906
868
 
907
- //# sourceMappingURL=workflows-BZNNYkGC.js.map
869
+ //# sourceMappingURL=workflows-mbQzh6mQ.js.map
@@ -1,3 +1,3 @@
1
- import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-D9ppycdg.js";
1
+ import { i as injectMemoryHookSettings, n as init_workspace, r as injectCavemanSettings, t as determineCavemanVariant } from "./workspace-BPUws1-_.js";
2
2
  init_workspace();
3
3
  export { determineCavemanVariant, injectCavemanSettings, injectMemoryHookSettings };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { jr as init_errors, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
3
- import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-BNbocWOg.js";
2
+ import { ir as FsError, mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
+ import { i as init_settings, t as areMemoryObservationsEnabled } from "./settings-BTMvpNFU.js";
4
4
  import { Effect } from "effect";
5
5
  import { existsSync } from "fs";
6
6
  import { join } from "path";
@@ -238,4 +238,4 @@ var init_workspace = __esmMin((() => {
238
238
  //#endregion
239
239
  export { readCavemanVariant as a, injectMemoryHookSettings as i, init_workspace as n, injectCavemanSettings as r, determineCavemanVariant as t };
240
240
 
241
- //# sourceMappingURL=workspace-D9ppycdg.js.map
241
+ //# sourceMappingURL=workspace-BPUws1-_.js.map
@@ -25,4 +25,4 @@ var init_workspace_config = __esmMin((() => {}));
25
25
  //#endregion
26
26
  export { init_workspace_config as n, replacePlaceholdersSync as r, getDefaultWorkspaceConfigSync as t };
27
27
 
28
- //# sourceMappingURL=workspace-config-Bigl_-Lk.js.map
28
+ //# sourceMappingURL=workspace-config-CIVWZOQr.js.map
@@ -1,14 +1,14 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dr as ProcessSpawnError, Fr as CACHE_AGENTS_DIR, Ir as CACHE_RULES_DIR, f as loadConfigSync, ii as init_paths, jr as init_errors, qr as SKILLS_DIR, t as init_config_yaml, xr as FsError } from "./config-yaml-ig8Nwtiw.js";
2
+ import { Ar as SKILLS_DIR, Vr as init_paths, f as loadConfigSync, ir as FsError, mr as init_errors, t as init_config_yaml, ur as ProcessSpawnError, vr as CACHE_AGENTS_DIR, yr as CACHE_RULES_DIR } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME } from "./types-hraoaQIp.js";
4
- import { t as init_pan_dir } from "./pan-dir-DOcf6ug3.js";
5
- import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-Bigl_-Lk.js";
6
- import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-IdK1iTHx.js";
7
- import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-Dz_OymXE.js";
8
- import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CNmQy0pL.js";
9
- import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-BCZ89M9X.js";
4
+ import { t as init_pan_dir } from "./pan-dir-B0c3w0Ya.js";
5
+ import { n as init_workspace_config, r as replacePlaceholdersSync, t as getDefaultWorkspaceConfigSync } from "./workspace-config-CIVWZOQr.js";
6
+ import { n as init_tunnel, r as removeTunnelIngress, t as addTunnelIngress } from "./tunnel-CDVKJpRv.js";
7
+ import { i as init_hume, n as createHumeConfig, r as deleteHumeConfig } from "./hume-Cz8igP9E.js";
8
+ import { a as renderDevcontainerSync, i as processTemplatesSync, n as createWorkspacePlaceholdersSync, o as sanitizeComposeFileSync, r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-_d6XhyND.js";
9
+ import { n as init_docker, r as stopWorkspaceDockerPromise, t as getContainersReferencingWorkspacePathPromise } from "./docker-DcMTFTUC.js";
10
10
  import { Effect } from "effect";
11
- import { copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "fs";
11
+ import { chmodSync, copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "fs";
12
12
  import { basename, dirname, extname, join, relative, resolve } from "path";
13
13
  import { homedir, platform } from "os";
14
14
  import { createHash } from "crypto";
@@ -587,6 +587,37 @@ function relocateVenvScripts(sourceVenv, destVenv) {
587
587
  } catch {}
588
588
  }
589
589
  }
590
+ /** Install the agent-only rebase guard in Git's configured hooks directory. */
591
+ async function installPreRebaseHook(targetPath) {
592
+ const { stdout } = await execAsync$2("git rev-parse --git-path hooks", {
593
+ cwd: targetPath,
594
+ encoding: "utf-8"
595
+ });
596
+ const hooksDir = resolve(targetPath, stdout.trim());
597
+ const hookPath = join(hooksDir, "pre-rebase");
598
+ mkdirSync(hooksDir, { recursive: true });
599
+ const originalHookPath = `${hookPath}${PRE_REBASE_ORIGINAL_SUFFIX}`;
600
+ const existingHook = existsSync(hookPath) ? readFileSync(hookPath, "utf-8") : "";
601
+ if (!existingHook.includes(PRE_REBASE_HOOK_MARKER)) {
602
+ if (existingHook) {
603
+ rmSync(originalHookPath, { force: true });
604
+ renameSync(hookPath, originalHookPath);
605
+ }
606
+ writeFileSync(hookPath, [
607
+ PRE_REBASE_HOOK_PREFIX,
608
+ `if [ -x "\${0}${PRE_REBASE_ORIGINAL_SUFFIX}" ]; then`,
609
+ ` exec "\${0}${PRE_REBASE_ORIGINAL_SUFFIX}" "$@"`,
610
+ "fi",
611
+ "exit 0",
612
+ ""
613
+ ].join("\n"), {
614
+ encoding: "utf-8",
615
+ mode: 493
616
+ });
617
+ }
618
+ chmodSync(hookPath, 493);
619
+ return hookPath;
620
+ }
590
621
  /**
591
622
  * Create a git worktree
592
623
  * @param repoPath Path to the source git repository
@@ -604,6 +635,7 @@ async function createWorktree(repoPath, targetPath, branchName, defaultBranch =
604
635
  const remoteList = remoteBranches.split("\n").map((b) => b.trim()).filter(Boolean);
605
636
  if (localList.includes(branchName) || remoteList.includes(`origin/${branchName}`)) await execAsync$2(`git worktree add "${targetPath}" "${branchName}"`, { cwd: repoPath });
606
637
  else await execAsync$2(`git worktree add "${targetPath}" -b "${branchName}" "${defaultBranch}"`, { cwd: repoPath });
638
+ await installPreRebaseHook(targetPath);
607
639
  await execAsync$2("git restore .", { cwd: targetPath }).catch(() => {});
608
640
  return {
609
641
  success: true,
@@ -778,11 +810,23 @@ function preTrustDirectorySync(dirPath) {
778
810
  }
779
811
  if (dirty) writeFileSync(claudeJsonPath, JSON.stringify(data, null, 2), "utf8");
780
812
  }
781
- var execAsync$2, TEXT_EXTENSIONS;
813
+ var execAsync$2, PRE_REBASE_HOOK_MARKER, PRE_REBASE_ORIGINAL_SUFFIX, PRE_REBASE_HOOK_PREFIX, TEXT_EXTENSIONS;
782
814
  var init_worktree_ops = __esmMin((() => {
783
815
  init_workspace_config();
784
816
  init_types();
785
817
  execAsync$2 = promisify(exec);
818
+ PRE_REBASE_HOOK_MARKER = "# OVERDECK MANAGED PRE-REBASE GUARD";
819
+ PRE_REBASE_ORIGINAL_SUFFIX = ".overdeck-original";
820
+ PRE_REBASE_HOOK_PREFIX = [
821
+ "#!/bin/sh",
822
+ PRE_REBASE_HOOK_MARKER,
823
+ "if [ \"$OVERDECK_PAN_GIT_OP\" != \"1\" ] && [ -n \"$OVERDECK_AGENT_ID\" ]; then",
824
+ " echo \"Overdeck agents must not run git rebase directly.\" >&2",
825
+ " echo \"Use pan sync-main <ISSUE-ID> to sync main or pan done <ISSUE-ID> to submit.\" >&2",
826
+ " exit 1",
827
+ "fi",
828
+ ""
829
+ ].join("\n");
786
830
  TEXT_EXTENSIONS = new Set([
787
831
  ".md",
788
832
  ".sh",
@@ -826,13 +870,20 @@ function ensurePolyrepoWorkspaceGitignoreSync(workspacePath, repos) {
826
870
  const entry = `${repo.name}/`;
827
871
  if (!normalizedLines.includes(entry) && !normalizedLines.includes(repo.name)) added.push(entry);
828
872
  }
829
- if (added.length === 0 && removed.length === 0) return {
873
+ const addRuntimeEntry = !normalizedLines.includes(".overdeck/") && !normalizedLines.includes(".overdeck");
874
+ if (added.length === 0 && !addRuntimeEntry && removed.length === 0) return {
830
875
  added,
831
876
  removed
832
877
  };
833
878
  if (content && !content.endsWith("\n")) content += "\n";
834
- if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
835
- content += added.join("\n") + "\n";
879
+ if (added.length > 0) {
880
+ if (!normalizedLines.some((l) => l.includes("Polyrepo") || l.includes("polyrepo"))) content += "\n# Polyrepo sub-repositories\n";
881
+ content += added.join("\n") + "\n";
882
+ }
883
+ if (addRuntimeEntry) {
884
+ content += "\n# Overdeck workspace runtime (PAN-2541: durable state lives on overdeck-state)\n.overdeck/\n";
885
+ added.push(".overdeck/");
886
+ }
836
887
  writeFileSync(gitignorePath, content, "utf-8");
837
888
  return {
838
889
  added,
@@ -1014,6 +1065,13 @@ async function createWorkspacePromise(options) {
1014
1065
  progress("Installing dependencies", "Failed — workspace creation aborted", "complete");
1015
1066
  return result;
1016
1067
  }
1068
+ const hookTargets = workspaceConfig.type === "polyrepo" && workspaceConfig.repos ? workspaceConfig.repos.filter((repo) => repo.link_type !== "symlink").map((repo) => join(workspacePath, repo.name)).filter((path) => existsSync(join(path, ".git"))) : [workspacePath];
1069
+ try {
1070
+ for (const hookTarget of hookTargets) await installPreRebaseHook(hookTarget);
1071
+ } catch (hookErr) {
1072
+ result.errors.push(`Pre-rebase guard install failed: ${hookErr.message?.slice(0, 200)}`);
1073
+ return result;
1074
+ }
1017
1075
  const workspacePackages = projectConfig.workspace_packages;
1018
1076
  if (workspacePackages && workspacePackages.length > 0) {
1019
1077
  progress("Building workspace packages", workspacePackages.map((p) => p.path).join(", "));
@@ -1061,7 +1119,7 @@ async function createWorkspacePromise(options) {
1061
1119
  await execAsync$1(`cp -r "${mainTldrDir}" "${workspaceTldrDir}"`);
1062
1120
  result.steps.push("Copied TLDR index from main branch");
1063
1121
  }
1064
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-B8_oT5gx.js");
1122
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BYFkts95.js");
1065
1123
  const tldrService = getTldrDaemonServiceSync(workspacePath, venvPath);
1066
1124
  await tldrService.start(true);
1067
1125
  result.steps.push("Started TLDR daemon");
@@ -1182,7 +1240,7 @@ async function createWorkspacePromise(options) {
1182
1240
  result.steps.push("Pre-trusted workspace in Claude Code");
1183
1241
  } catch {}
1184
1242
  try {
1185
- const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace-3IC-UkAi.js");
1243
+ const { determineCavemanVariant, injectCavemanSettings } = await import("./workspace--8tnhDI0.js");
1186
1244
  const cavemanConfig = loadConfigSync().config.caveman;
1187
1245
  const variant = determineCavemanVariant(cavemanConfig);
1188
1246
  await Effect.runPromise(injectCavemanSettings(workspacePath, variant));
@@ -1198,7 +1256,7 @@ async function createWorkspacePromise(options) {
1198
1256
  result.steps.push(`Overdeck settings copy skipped: ${settingsErr instanceof Error ? settingsErr.message : String(settingsErr)}`);
1199
1257
  }
1200
1258
  try {
1201
- const { injectMemoryHookSettings } = await import("./workspace-3IC-UkAi.js");
1259
+ const { injectMemoryHookSettings } = await import("./workspace--8tnhDI0.js");
1202
1260
  await injectMemoryHookSettings(workspacePath);
1203
1261
  result.steps.push("Injected memory hooks into .claude/settings.json");
1204
1262
  } catch (memoryHookErr) {
@@ -1250,7 +1308,7 @@ async function removeWorkspacePromise(options) {
1250
1308
  }
1251
1309
  const venvPath = join(workspacePath, ".venv");
1252
1310
  if (existsSync(venvPath)) try {
1253
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-B8_oT5gx.js");
1311
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-BYFkts95.js");
1254
1312
  await getTldrDaemonServiceSync(workspacePath, venvPath).stop();
1255
1313
  result.steps.push("Stopped TLDR daemon");
1256
1314
  } catch (error) {
@@ -1370,6 +1428,6 @@ var init_workspace_manager = __esmMin((() => {
1370
1428
  });
1371
1429
  }));
1372
1430
  //#endregion
1373
- export { removeWorkspace as a, relocateVenvScripts as c, copyOverdeckSettingsToWorkspaceSync as d, ensurePanGitignoreSync as f, preTrustDirectory as i, detectPlatform as l, getContainersReferencingWorkspacePath as n, stopWorkspaceDocker as o, init_workspace_manager as r, preTrustDirectorySync as s, createWorkspace as t, init_platform as u };
1431
+ export { removeWorkspace as a, preTrustDirectorySync as c, init_platform as d, copyOverdeckSettingsToWorkspaceSync as f, preTrustDirectory as i, relocateVenvScripts as l, getContainersReferencingWorkspacePath as n, stopWorkspaceDocker as o, ensurePanGitignoreSync as p, init_workspace_manager as r, installPreRebaseHook as s, createWorkspace as t, detectPlatform as u };
1374
1432
 
1375
- //# sourceMappingURL=workspace-manager-ClkCIWTe.js.map
1433
+ //# sourceMappingURL=workspace-manager-CBhNdzE4.js.map
@@ -0,0 +1,3 @@
1
+ import { a as removeWorkspace, c as preTrustDirectorySync, f as copyOverdeckSettingsToWorkspaceSync, i as preTrustDirectory, o as stopWorkspaceDocker, r as init_workspace_manager, t as createWorkspace } from "./workspace-manager-CBhNdzE4.js";
2
+ init_workspace_manager();
3
+ export { copyOverdeckSettingsToWorkspaceSync, createWorkspace, preTrustDirectory, preTrustDirectorySync, removeWorkspace, stopWorkspaceDocker };
@@ -1,2 +1,2 @@
1
- import { n as deleteWorkspaceMetadataSync } from "./workspace-metadata-tiSRIWJP.js";
1
+ import { n as deleteWorkspaceMetadataSync } from "./workspace-metadata-_WygnyoX.js";
2
2
  export { deleteWorkspaceMetadataSync };
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { _r as require_dist, jr as init_errors } from "./config-yaml-ig8Nwtiw.js";
2
+ import { er as require_dist, mr as init_errors } from "./config-yaml-DySPNmKN.js";
3
3
  import "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -70,4 +70,4 @@ function deleteWorkspaceMetadataSync(issueId) {
70
70
  //#endregion
71
71
  export { loadWorkspaceMetadataSync as a, listWorkspaceMetadataSync as i, deleteWorkspaceMetadataSync as n, saveWorkspaceMetadataSync as o, findRemoteWorkspaceMetadataSync as r, WORKSPACES_DIR as t };
72
72
 
73
- //# sourceMappingURL=workspace-metadata-tiSRIWJP.js.map
73
+ //# sourceMappingURL=workspace-metadata-_WygnyoX.js.map