@overdeck/desktop 0.45.23 → 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 (388) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-DDCnXF58.js} +2 -2
  4. package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-BV1q_2EV.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-B4Bjbkfv.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-zkJb3BeM.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-DYrYojxl.js → archive-planning-Du25Jtst.js} +4 -4
  13. package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-B_-4EKF3.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-DgTqZkL5.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-BT096lEl.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-CpgCjAlN.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-C-AXLfYT.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-vBeXbPrq.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-DW0V86F8.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-Dn_4c4G8.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-TmSi-yTv.js → codex-BZXGhUVB.js} +7 -7
  38. package/server/{codex-Dg7Is5yb.js → codex-GcHuUF-k.js} +1 -1
  39. package/server/{codex-parser-C4gSH-IR.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-CCvjQf27.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DjLOdbgT.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-DUIhMN_T.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-DvyMuOle.js → config-yaml-DySPNmKN.js} +23 -9
  44. package/server/{conflict-gate-CmrYpa47.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-BSJkNTdp.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-aP1ANIlI.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Up7FEzIC.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-Du-MTNpJ.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-DbOs1e9Q.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-6mPANqvL.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Ca0YTWDw.js → cost-B2ddP6wq.js} +2 -2
  56. package/server/{cost-CW4WSe72.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-C0VdGme1.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CdOjJVDT.js → dag-B1ucnjDU.js} +2 -2
  59. package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-pRnyD5w9.js → deacon-CU_cAYSR.js} +254 -144
  62. package/server/{deacon-DYSEJb48.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-BXZZ1Z2-.js} +13 -13
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-AiFoP8dw.js} +6 -6
  68. package/server/{deploy-window-DeP_OIRk.js → deploy-window-C3F-tihF.js} +6 -6
  69. package/server/{deploy-window-CM6W1-c6.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-DyRx4cI7.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BK7HIcBj.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-BrSfUHm0.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-CbI3BVkl.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-tdiY5eDZ.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-Cr5PQwFC.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-CvvGK6LT.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-CC1dgUpx.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-CynerjXO.js → factory-CFibJuaw.js} +4 -4
  84. package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Dhxz-wLc.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-CPS15Vte.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-iygZwmMc.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-CY5L1lB7.js} +5 -5
  90. package/server/{feedback-writer-qmiMbqTZ.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-DxbQKE1d.js → flywheel-merge-order-UU0tiUld.js} +9 -8
  95. package/server/{flywheel-merge-order-C-6zRLvM.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-Ch9gCFod.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-CJ_aH5jD.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-CKgg0VKg.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-BrL_VTRr.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-BVa07a4a.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CMBdIFBQ.js → github-app-C3QrAUd0.js} +18 -7
  104. package/server/{github-app-CPfoFAdV.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client--XVlDpwM.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-B4QsdE-X.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-BRbDW-qk.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-CVio2m-u.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-C9B8y1Hm.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-CpfvuVmm.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-DUXw8A0-.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-ltecuFqZ.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-BEq0bUDg.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-aQ1IxeI3.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-CzaSOgul.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-DZ0PfYa4.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-oNZeoDhL.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-BLuJ1AkT.js} +135 -79
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-DXdfprGr.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-Bb4XeV2x.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-B3_AHDfr.js → io-C9kF1wtJ.js} +3 -3
  127. package/server/{issue-closed-zhdvQicO.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-ojZAzDBP.js} +21 -21
  130. package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-B6ToV6x1.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-DdWbHEBu.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-CHVm7bGT.js → launcher-generator-BBWG_SiS.js} +101 -7
  137. package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-BREGpnLk.js} +5 -5
  138. package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-DPo7x11I.js} +1 -1
  139. package/server/{lifecycle-sycO16hj.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/{lifecycle-DfeyBDwA.js → lifecycle-yPd___5E.js} +2 -2
  141. package/server/{linear-client-D4zqMnX7.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-DqhDQO9k.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-DK23JEdS.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C_ZEhbqI.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-XrB80vfT.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-BQM3a8z5.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Bwoyr8Je.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-DnSYdBEp.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-SSv3E-pl.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-DZ9dojJn.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-DxDfBTjr.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CSizH3HY.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-Nw29vaFb.js} +1 -1
  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-neK8dHQk.js → orphan-proposed-reconciler-BvKkWMJQ.js} +12 -12
  190. package/server/{orphan-proposed-reconciler-BTkDrl4R.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-DeVUgwA7.js → pan-dir-B0c3w0Ya.js} +3 -3
  194. package/server/{paths-_zEts6wc.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-Dd0Znxxy.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-mY3GprlK.js} +7 -7
  197. package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-2sK1apsO.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-9SkRpES9.js → projects-vjjcmiN8.js} +1 -1
  203. package/server/{prompts-Dp4Tpk39.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-DV7ec8l7.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DKkBXhxU.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DEmlBBNQ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-BWR4qFiV.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-CsSuZQBI.js → index-CWeMerGO.js} +146 -144
  213. package/server/public/assets/{index-CUr1xv8w.css → index-CenuJ3Cw.css} +1 -1
  214. package/server/public/assets/{linear-C9zFQpkX.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-B1jCQihw.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests--Ib2jTgy.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-CXIhdCYD.js → pull-requests-_lHueOHW.js} +3 -3
  224. package/server/{queries-6d7Cdtm7.js → queries-CjNIf-Ub.js} +576 -166
  225. package/server/{rally-B708-nZn.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-nY0ZANw3.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-yjQ0TfHd.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-B1EJhfV0.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CULK2XAY.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/{record-t6V-3Dcj.js → record-CN0pj4_5.js} +1 -1
  237. package/server/{record-update-DACtKh6_.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/{record-update-Dq0t2uBG.js → record-update-dE1Aw83j.js} +2 -2
  239. package/server/{recovery-trip-BJtIQuag.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DZpmGGzb.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-hnXd_kga.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-Br-ZWVIP.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-4tiENDaI.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-nmty1mLu.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-CRCg1L4H.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-BbWNd10K.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-sKkE1FEL.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-DJRO8EG8.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-BgX3lcCx.js → review-context-2uj-YQ8J.js} +69 -25
  252. package/server/{review-status-C6n6-9f_.js → review-status-btEYlaxA.js} +1 -1
  253. package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-A7quS5KJ.js → review-status-kZj_KyCk.js} +42 -26
  255. package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-To3-iS-N.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-B53Y81xK.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-WA0VD-Rr.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-D2743cp8.js → scanner-CnqEZeDy.js} +41 -14
  262. package/server/{sequence-io-Cg0zYj_E.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2194 -341
  265. package/server/{service-DCpB_SGd.js → service-CLeAoU6G.js} +51 -50
  266. package/server/{session-fork-BQ8_6H32.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-CVZDpS3c.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BZ5m1UCl.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-ylxwqwQG.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-Dh-HzF2J.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-C2_epgx2.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-ClSMIzZX.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DKpdFyOC.js} +30 -23
  279. package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-BXhav38U.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-DtrYvGJ-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-JVO00bs7.js → specialists-CC4r-c2s.js} +776 -347
  285. package/server/{specialists-D5fRZXmN.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/{specialists-DVj0hvaL.js → specialists-DM6bWjsi.js} +1 -1
  287. package/server/{specialists-DyFeedjn.js → specialists-jiuuyVkp.js} +21 -19
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-CG9mCkP6.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-CMTQGyCK.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-U7_kTPEE.js → src-DtcUOZCq.js} +111 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-puygdaMd.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-Cbl_w4Bw.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-Bpy41ngS.js → staleness-DPm7ClwA.js} +1 -1
  297. package/server/{state-home-CIGjwNfJ.js → state-home-Cn_Qu8IX.js} +2 -2
  298. package/server/{state-migrate-Dkzaxvny.js → state-migrate-BGg2ZaOt.js} +4 -4
  299. package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-DYuPRYYw.js} +300 -23
  300. package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-DHhJIsAL.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-D8bXjCr7.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-BO-Zk_h-.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-DlP_UjHq.js} +3 -3
  310. package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-MbxX5vqq.js} +6 -6
  313. package/server/{test-verdict-CmUBK5cT.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-DFjjIHR5.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/{tmux-DoThH6aj.js → tmux-B6z7h_vZ.js} +1 -1
  318. package/server/{tmux-ftABRAmc.js → tmux-R7N7y-Mh.js} +2 -2
  319. package/server/{token-CsOhvw42.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-CTmczIfW.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-B4itFzDo.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-BePq_oj-.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-tnxxqROg.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-m73vGebA.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-B2vxjx_b.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-Cgj-IGIl.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-BBNjPcqU.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-cKfM-_WW.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-CuEn0t9M.js → uat-train-DDSrSoV1.js} +25 -25
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-CIi6pnI2.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-B5JxoPUS.js → validation-Dw1pzDzr.js} +4 -4
  334. package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BcnIbigL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-CDj4lD4t.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-Br0S_Ous.js → verification-runner-CkgX6EtI.js} +91 -106
  338. package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-Du8Vh2aJ.js} +9 -9
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-C9WmILql.js → workflows-mbQzh6mQ.js} +18 -18
  342. package/server/{workspace-DuUdndHe.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-BVl4rihN.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-cEGcO6UT.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CBhNdzE4.js} +66 -15
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-hWvy9eKs.js → workspaces-Do_9J0LQ.js} +130 -111
  350. package/sync-sources/hooks/record-cost-event.js +6 -4
  351. package/sync-sources/skills/okf/README.md +11 -3
  352. package/sync-sources/skills/okf/SKILL.md +12 -1
  353. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  354. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  355. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  356. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  357. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  358. package/sync-sources/skills/pan-start/SKILL.md +4 -0
  359. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  360. package/server/agent-state-Bg0lhqwj.js +0 -3
  361. package/server/agents-FlIgQ3ql.js +0 -3
  362. package/server/cli-BsVIHwzC.js +0 -3
  363. package/server/context-layers-B3Nt58jl.js +0 -4
  364. package/server/context-layers-ZYFcWiyc.js +0 -165
  365. package/server/deacon-swarm-9jRLS5Ke.js +0 -2
  366. package/server/dist-Bd3vn0Hw.js +0 -3
  367. package/server/flywheel-DMCUzDWg.js +0 -2
  368. package/server/flywheel-DSSpWmqF.js +0 -522
  369. package/server/flywheel-DcBkQvgE.js +0 -207
  370. package/server/forge-B-ZWyTRm.js +0 -2
  371. package/server/git-utils-Dry_Ka_D.js +0 -3
  372. package/server/hume-B_DbflNM.js +0 -3
  373. package/server/inspect-agent-ch-F-5Ci.js +0 -2
  374. package/server/layers-DzxSTGNA.js +0 -93
  375. package/server/merge-blockers-BsFjGrQ8.js +0 -41
  376. package/server/merge-ops-DlB1IM0Y.js +0 -2
  377. package/server/merge-set-DLz0MkGT.js +0 -139
  378. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
  379. package/server/rally-njs_mJrt.js +0 -3
  380. package/server/rebuild-stack-kA7XngID.js +0 -3
  381. package/server/resume-CcKqnTvE.js +0 -3
  382. package/server/settings-D0OSwos5.js +0 -2
  383. package/server/specs-nN45DG2X.js +0 -3
  384. package/server/stack-health-Df0YEZKa.js +0 -3
  385. package/server/supervisor-BPy-o1A8.js +0 -2
  386. package/server/token-util-DrHg8abn.js +0 -3
  387. package/server/workflows-D90rMOya.js +0 -2
  388. package/server/workspace-manager-ZTdJAy9M.js +0 -3
@@ -1,44 +1,44 @@
1
- import { $n as resolveIssueIdSync, Br as getOverdeckHome, Jn as extractPrefixSync, Nr as encodeClaudeProjectDir, Tn as init_projects, Vr as init_paths, Xt as isStatePlaneOnlyStatus, Yn as init_issue_id, Yt as init_state_plane, Zn as parseIssueIdSync, ar as GitError, ir as FsError, kn as listProjectsSync, mn as findProjectByTeamSync, mr as init_errors, qn as extractNumberSync, t as init_config_yaml, tt as resolveModel, un as extractTeamPrefix, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
- import { d as rejectUnsafeDashboardMutationRequest, ht as getHeaderFromMap, it as getWorkAgentLifecycleStateSync, l as rejectUnauthorizedDashboardRequest, n as _serverManagedMerges, ot as spawnPanCli, xt as jsonResponse, yt as httpHandler } from "./specialists-JVO00bs7.js";
1
+ import { $n as resolveIssueIdSync, Br as getOverdeckHome, Jn as extractPrefixSync, Nr as encodeClaudeProjectDir, Tn as init_projects, Vr as init_paths, Xt as isStatePlaneOnlyStatus, Yn as init_issue_id, Yt as init_state_plane, Zn as parseIssueIdSync, ar as GitError, ir as FsError, kn as listProjectsSync, mn as findProjectByTeamSync, mr as init_errors, qn as extractNumberSync, t as init_config_yaml, tt as resolveModel, un as extractTeamPrefix, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { Q as getWorkAgentLifecycleStateSync, St as jsonResponse, bt as httpHandler, dt as rejectUnauthorizedDashboardRequest, et as spawnPanCli, gt as getHeaderFromMap, n as _serverManagedMerges, pt as rejectUnsafeDashboardMutationRequest } from "./specialists-CC4r-c2s.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CzaSOgul.js";
5
- import { $ as init_child_env, H as sessionExists, M as listSessionNames, Q as buildChildEnvWithoutTmuxSync, i as capturePane, w as init_tmux } from "./tmux-ftABRAmc.js";
6
- import { a as init_event_store, n as getEventStore } from "./event-store-tdiY5eDZ.js";
7
- import { _ as setAutoMerge, b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, p as markWorkspaceStuck, v as setDeaconIgnored } from "./review-status-A7quS5KJ.js";
8
- import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-CreaCkjW.js";
9
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-Ca0YTWDw.js";
10
- import { Cr as getAgentRuntimeStateSync, Hn as getAgentState, Kt as transitionIssueToInReview, Tr as saveAgentRuntimeState, X as messageAgent, b as init_agents, i as listRunningAgents, lt as spawnAgent } from "./queries-6d7Cdtm7.js";
11
- import { f as CostWriter, l as CostDoorLive } from "./service-DCpB_SGd.js";
12
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-B4itFzDo.js";
13
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-tnxxqROg.js";
14
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-Bb4XeV2x.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
5
+ import { $ as init_child_env, H as sessionExists, M as listSessionNames, Q as buildChildEnvWithoutTmuxSync, i as capturePane, w as init_tmux } from "./tmux-R7N7y-Mh.js";
6
+ import { a as init_event_store, n as getEventStore } from "./event-store-CQL6NeqB.js";
7
+ import { _ as setAutoMerge, b as setReviewStatusSync, c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status, p as markWorkspaceStuck, v as setDeaconIgnored } from "./review-status-kZj_KyCk.js";
8
+ import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-ojZAzDBP.js";
9
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-B2ddP6wq.js";
10
+ import { Ar as saveAgentRuntimeState, Kt as transitionIssueToInReview, Or as getAgentRuntimeStateSync, X as messageAgent, b as init_agents, i as listRunningAgents, lt as spawnAgent, qn as getAgentState } from "./queries-CjNIf-Ub.js";
11
+ import { f as CostWriter, l as CostDoorLive } from "./service-CLeAoU6G.js";
12
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-G6latr8C.js";
13
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
14
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-s0-oKybJ.js";
15
15
  import { a as PAN_DIRNAME, i as PAN_CONTINUE_FILENAME, p as init_types } from "./types-hraoaQIp.js";
16
- import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-DZ9dojJn.js";
17
- import { A as init_xbrief_index, M as readXBriefDocument, _ as XBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, g as serializeXBriefDocument, k as findXBriefByIssue, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-B3_AHDfr.js";
18
- import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-DbOs1e9Q.js";
19
- import { i as normalizeModelOverrideSync, r as init_model_validation } from "./launcher-generator-CHVm7bGT.js";
20
- import { f as init_config, m as loadConfigSync$1 } from "./config-CCvjQf27.js";
21
- import { a as init_stack_health, i as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot } from "./stack-health-puygdaMd.js";
22
- import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-CdOjJVDT.js";
23
- import { A as withConcurrencyLimit, E as verifyAppCanMerge, f as init_github_app, k as init_concurrency, m as isIntegrationPermissionError } from "./github-app-CMBdIFBQ.js";
24
- import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-CC1dgUpx.js";
25
- import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-hLUv3ADC.js";
26
- import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-CtUgrVKW.js";
27
- import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-Dhflo1SH.js";
28
- import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-aQ1IxeI3.js";
29
- import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-DYrYojxl.js";
30
- import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-CskwzzhL.js";
31
- import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-tbOn_A_u.js";
32
- import { n as generateDailySummary, r as init_cli } from "./cli-vBeXbPrq.js";
33
- import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-BgX3lcCx.js";
34
- import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-BDtLOIlO.js";
35
- import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-XrB80vfT.js";
36
- import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-C_ZEhbqI.js";
37
- import { n as init_release_set, t as getReleaseSetSync } from "./release-set-hnXd_kga.js";
38
- import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-CmrYpa47.js";
39
- import { r as runVerificationForIssue } from "./verification-runner-Br0S_Ous.js";
40
- import { t as teardownWorkspace } from "./teardown-workspace-CEgauF4U.js";
41
- import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-Dp4eLkt4.js";
16
+ import { o as init_merge_sync, r as getAllActiveQueues } from "./merge-sync-VPV28g0g.js";
17
+ import { A as init_xbrief_index, M as readXBriefDocument, _ as XBRIEF_INSPECTION_POLICIES, c as mergeRecordStatusOverrides, g as serializeXBriefDocument, k as findXBriefByIssue, o as init_io, r as findPlan, s as isPlanningComplete, u as readPlan, v as init_types$1 } from "./io-C9kF1wtJ.js";
18
+ import { it as findConversationForCostSessionSync, k as init_conversations } from "./conversations-6AfUfbwc.js";
19
+ import { a as normalizeModelOverrideSync, i as init_model_validation } from "./launcher-generator-BBWG_SiS.js";
20
+ import { f as init_config, m as loadConfigSync$1 } from "./config-BZ0sHTju.js";
21
+ import { a as getWorkspaceStackHealth, n as collectDockerContainerLifecycleSnapshot, r as composeProjectNameForWorkspace, s as init_stack_health } from "./stack-health-DxSdG9cW.js";
22
+ import { a as criticalPath, l as init_dag, t as actionableDoc } from "./dag-B1ucnjDU.js";
23
+ import { E as verifyAppCanMerge, M as withConcurrencyLimit, f as init_github_app, j as init_concurrency, m as isIntegrationPermissionError } from "./github-app-C3QrAUd0.js";
24
+ import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-DTfAe4My.js";
25
+ import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CBhNdzE4.js";
26
+ import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-_d6XhyND.js";
27
+ import { a as init_jsonl_parser, t as getActiveSessionModelSync } from "./jsonl-parser-BXSlHwEh.js";
28
+ import { r as init_in_flight_guard, t as createInFlightGuard } from "./in-flight-guard-CAAkqPLu.js";
29
+ import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-Du25Jtst.js";
30
+ import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-_WygnyoX.js";
31
+ import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-Dci-ZwEt.js";
32
+ import { n as generateDailySummary, r as init_cli } from "./cli-RoOx5DUf.js";
33
+ import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-2uj-YQ8J.js";
34
+ import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-C-69c3OI.js";
35
+ import { C as init_operations, S as gitPush, T as listGitOperationsSync, a as init_merge_agent, w as init_git_activity, x as MainDivergedError, y as syncMainIntoWorkspace } from "./merge-agent-4WOWlSYA.js";
36
+ import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-CefQNAnq.js";
37
+ import { n as init_release_set, t as getReleaseSetSync } from "./release-set-CQfuN9-v.js";
38
+ import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BaCVrH-N.js";
39
+ import { r as runVerificationForIssue } from "./verification-runner-CkgX6EtI.js";
40
+ import { t as teardownWorkspace } from "./teardown-workspace-DeTTImn-.js";
41
+ import { t as init_rebuild_stack } from "./rebuild-stack-lwtsW0GO.js";
42
42
  import { basename, dirname, join, resolve, sep } from "node:path";
43
43
  import { Effect, Layer, Option, Stream } from "effect";
44
44
  import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
@@ -97,7 +97,7 @@ async function captureInterestedAgent(state, agentId) {
97
97
  try {
98
98
  const remoteState = await readFile(join(homedir$1(), ".overdeck", "agents", agentId, "remote-state.json"), "utf-8").then((text) => JSON.parse(text)).catch(() => null);
99
99
  if (remoteState?.location === "remote" && remoteState?.vmName) {
100
- const { getRemoteAgentOutput } = await import("./remote-agents-CRCg1L4H.js");
100
+ const { getRemoteAgentOutput } = await import("./remote-agents-CA3Ihlxj.js");
101
101
  stdout = await getRemoteAgentOutput(agentId, remoteState.vmName, 50);
102
102
  } else stdout = await Effect.runPromise(capturePane(agentId, 50));
103
103
  } catch {
@@ -931,7 +931,7 @@ const postWorkspaceContainerActionRoute = HttpRouter.add("POST", "/api/workspace
931
931
  }
932
932
  if (!workspacePath) return jsonResponse({ error: `Workspace not found for ${issueId}` }, { status: 404 });
933
933
  if (!composeFile && ["start", "restart"].includes(action)) {
934
- const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-DRqaAkBR.js"));
934
+ const { ensureDevcontainerSync } = yield* Effect.promise(() => import("./ensure-devcontainer-BZgOhRo7.js"));
935
935
  if (ensureDevcontainerSync({
936
936
  workspacePath,
937
937
  issueId
@@ -2777,7 +2777,9 @@ function mergeCompletionStatus(request) {
2777
2777
  return request.kind === "strike" ? {
2778
2778
  strikeLandingState: "landed",
2779
2779
  strikeReadyHead: void 0,
2780
- strikeReadyAt: void 0
2780
+ strikeReadyAt: void 0,
2781
+ strikeTransportRetryCount: void 0,
2782
+ strikeNextAttemptAt: void 0
2781
2783
  } : {};
2782
2784
  }
2783
2785
  function activeStrikeMerge(currentMerge, pendingOperation) {
@@ -2989,7 +2991,7 @@ async function reconcileGitHubMergeStatus(issueId, status) {
2989
2991
  const prRef = parseGitHubPullRequestUrl(status.prUrl);
2990
2992
  if (!prRef) return false;
2991
2993
  try {
2992
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CPfoFAdV.js");
2994
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-ClZ2lk8D.js");
2993
2995
  if (!isGitHubAppConfigured()) return false;
2994
2996
  const prState = await Effect.runPromise(getPullRequestState(prRef.owner, prRef.repo, prRef.number));
2995
2997
  console.log(`[merge] reconcileGitHubMergeStatus: ${issueId} PR #${prRef.number} merged=${prState.merged} state=${prState.state}`);
@@ -3256,8 +3258,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3256
3258
  try {
3257
3259
  if (request.kind === "normal" && workspaceInfo.isRemote && workspaceInfo.vmName) {
3258
3260
  console.log(`[merge] Remote workspace detected for ${issueId}, using review artifact merge...`);
3259
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DnSYdBEp.js");
3260
- const { getForgeAdapter } = await import("./forge-B-ZWyTRm.js");
3261
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-bUqbm3yc.js");
3262
+ const { getForgeAdapter } = await import("./forge-DXnS_YFH.js");
3261
3263
  const remotePrimaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3262
3264
  const remoteTargetBranch = remotePrimaryRepo?.targetBranch || "main";
3263
3265
  const remoteForge = remotePrimaryRepo?.forge || "github";
@@ -3293,7 +3295,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3293
3295
  ...mergeCompletionStatus(request)
3294
3296
  });
3295
3297
  completePendingOperation(issueId, null);
3296
- const { postMergeLifecycle } = await import("./merge-agent-BQM3a8z5.js");
3298
+ const { postMergeLifecycle } = await import("./merge-agent-CKkgIBPB.js");
3297
3299
  await postMergeLifecycle(issueId, projectPath);
3298
3300
  return {
3299
3301
  success: true,
@@ -3330,10 +3332,10 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3330
3332
  const projectConfig = findProjectByTeamSync(issuePrefix);
3331
3333
  if (projectConfig?.workspace?.type === "polyrepo" && projectConfig?.workspace?.repos) {
3332
3334
  console.log(`[merge] Polyrepo detected for ${issueId}, coordinating merge set...`);
3333
- const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-DnSYdBEp.js");
3334
- const { runQualityGates } = await import("./validation-CIi6pnI2.js");
3335
- const { getForgeAdapter } = await import("./forge-B-ZWyTRm.js");
3336
- const { messageAgent } = await import("./agents-FlIgQ3ql.js");
3335
+ const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-bUqbm3yc.js");
3336
+ const { runQualityGates } = await import("./validation-CC9OPqJZ.js");
3337
+ const { getForgeAdapter } = await import("./forge-DXnS_YFH.js");
3338
+ const { messageAgent } = await import("./agents-wi9NWzs2.js");
3337
3339
  let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
3338
3340
  if (!mergeSet) {
3339
3341
  const error = `No merge set found for ${issueId}`;
@@ -3604,7 +3606,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3604
3606
  ...mergeCompletionStatus(request)
3605
3607
  });
3606
3608
  completePendingOperation(issueId, null);
3607
- const { postMergeLifecycle } = await import("./merge-agent-BQM3a8z5.js");
3609
+ const { postMergeLifecycle } = await import("./merge-agent-CKkgIBPB.js");
3608
3610
  advanceQueue();
3609
3611
  await postMergeLifecycle(issueId, projectPath);
3610
3612
  return {
@@ -3615,8 +3617,8 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3615
3617
  repos: mergeResults
3616
3618
  };
3617
3619
  }
3618
- const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-DnSYdBEp.js");
3619
- const { getForgeAdapter } = await import("./forge-B-ZWyTRm.js");
3620
+ const { getMergeSetSync, ensureMergeSetForIssueSync } = await import("./merge-set-bUqbm3yc.js");
3621
+ const { getForgeAdapter } = await import("./forge-DXnS_YFH.js");
3620
3622
  const primaryRepo = (getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId))?.repos[0];
3621
3623
  const targetBranch = primaryRepo?.targetBranch || "main";
3622
3624
  const primaryForge = primaryRepo?.forge || "github";
@@ -3658,7 +3660,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3658
3660
  };
3659
3661
  }
3660
3662
  if (githubPrRef) try {
3661
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CPfoFAdV.js");
3663
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-ClZ2lk8D.js");
3662
3664
  if (isGitHubAppConfigured()) {
3663
3665
  const prState = await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number));
3664
3666
  if (prState.state !== "OPEN" && !prState.merged) {
@@ -3720,7 +3722,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3720
3722
  ...mergeCompletionStatus(request)
3721
3723
  });
3722
3724
  completePendingOperation(issueId, null);
3723
- const { postMergeLifecycle } = await import("./merge-agent-BQM3a8z5.js");
3725
+ const { postMergeLifecycle } = await import("./merge-agent-CKkgIBPB.js");
3724
3726
  await postMergeLifecycle(issueId, projectPath, branchName);
3725
3727
  return {
3726
3728
  success: true,
@@ -3734,13 +3736,13 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3734
3736
  } catch (prStateErr) {
3735
3737
  console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
3736
3738
  }
3737
- const { postMergeLifecycle } = await import("./merge-agent-BQM3a8z5.js");
3739
+ const { postMergeLifecycle } = await import("./merge-agent-CKkgIBPB.js");
3738
3740
  const agentId = request.kind === "strike" ? request.recoveryTarget : `agent-${issueId.toLowerCase()}`;
3739
3741
  const rebaseMsg = request.kind === "strike" ? `STRIKE LANDING REQUEST: Rebase ${branchName} onto ${targetBranch}, resolve conflicts, run the full quality gates, push ${branchName}, then run pan strike-ready ${issueId} to persist the new HEAD. Do NOT merge or push main.` : `MERGE REQUESTED: The human has clicked MERGE for ${issueId}. Please rebase onto ${targetBranch} and push:\n\n1. git fetch origin ${targetBranch}\n2. git rebase origin/${targetBranch}\n3. If conflicts: resolve them, git add, git rebase --continue\n4. git push --force-with-lease\n\nAfter pushing, the server will handle verification and merge automatically. Do NOT run gh pr merge yourself.`;
3740
3742
  setReviewStatus(issueId, { mergeStep: "rebasing" });
3741
3743
  console.log(`[merge] Rebasing ${branchName} onto ${targetBranch} for ${issueId} (agent=${await Effect.runPromise(sessionExists(agentId)) ? "running" : "stopped"})...`);
3742
3744
  {
3743
- const { beginShipLog, appendShipLog } = await import("./ship-log-ClSMIzZX.js");
3745
+ const { beginShipLog, appendShipLog } = await import("./ship-log-D9MlVzYU.js");
3744
3746
  beginShipLog(issueId);
3745
3747
  appendShipLog(issueId, `Ship started: rebasing ${branchName} onto ${targetBranch}…`, "rebasing");
3746
3748
  }
@@ -3871,7 +3873,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3871
3873
  });
3872
3874
  let skipLocalVerification = false;
3873
3875
  if (primaryForge === "github" && artifactUrl) try {
3874
- const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-CPfoFAdV.js");
3876
+ const { parsePullRequestRef, getCiCheckRunsStatePromise, isGitHubAppConfigured } = await import("./github-app-ClZ2lk8D.js");
3875
3877
  if (isGitHubAppConfigured()) {
3876
3878
  const ref = parsePullRequestRef({ url: artifactUrl });
3877
3879
  if (ref) {
@@ -3892,12 +3894,12 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3892
3894
  } catch (ciErr) {
3893
3895
  console.warn(`[merge] CI-state check failed (${ciErr.message?.slice(0, 120)}) — falling back to local verification for ${issueId}`);
3894
3896
  }
3895
- const { appendShipLog } = await import("./ship-log-ClSMIzZX.js");
3897
+ const { appendShipLog } = await import("./ship-log-D9MlVzYU.js");
3896
3898
  if (skipLocalVerification) appendShipLog(issueId, "✓ Local verification skipped — CI already green on this exact commit", "verifying");
3897
3899
  const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
3898
3900
  console.log(`[merge] Running post-rebase verification for ${issueId}...`);
3899
3901
  appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
3900
- const { runVerificationForIssue } = await import("./verification-runner-CDj4lD4t.js");
3902
+ const { runVerificationForIssue } = await import("./verification-runner-BW4HOKAz.js");
3901
3903
  return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
3902
3904
  ...mergeVerificationOptions(request),
3903
3905
  onGateLog: (line) => appendShipLog(issueId, line, "verifying")
@@ -3930,7 +3932,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3930
3932
  console.log(`[merge] Post-rebase verification ${verifyResult.outcome} for ${issueId}`);
3931
3933
  setReviewStatus(issueId, { mergeStep: "reporting-statuses" });
3932
3934
  try {
3933
- const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-CPfoFAdV.js");
3935
+ const { getPullRequestState, isGitHubAppConfigured, reportCommitStatus } = await import("./github-app-ClZ2lk8D.js");
3934
3936
  if (githubPrRef && isGitHubAppConfigured()) {
3935
3937
  const sha = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).headSha.trim();
3936
3938
  if (sha) {
@@ -3958,7 +3960,7 @@ async function triggerMerge(issueId, request = { kind: "normal" }) {
3958
3960
  } catch (prMergeErr) {
3959
3961
  console.error(`[merge] Review artifact merge threw for ${issueId}:`, prMergeErr);
3960
3962
  try {
3961
- const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-CPfoFAdV.js");
3963
+ const { getPullRequestState, isGitHubAppConfigured } = await import("./github-app-ClZ2lk8D.js");
3962
3964
  if (githubPrRef && isGitHubAppConfigured()) {
3963
3965
  artifactMerged = (await Effect.runPromise(getPullRequestState(githubPrRef.owner, githubPrRef.repo, githubPrRef.number))).merged;
3964
3966
  if (artifactMerged) console.log(`[merge] Race-detected: PR #${githubPrRef.number} for ${issueId} was already merged despite thrown error; proceeding`);
@@ -4077,8 +4079,8 @@ const postForgeApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge
4077
4079
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
4078
4080
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
4079
4081
  return yield* Effect.promise(async () => {
4080
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DnSYdBEp.js");
4081
- const { getForgeAdapter } = await import("./forge-B-ZWyTRm.js");
4082
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-bUqbm3yc.js");
4083
+ const { getForgeAdapter } = await import("./forge-DXnS_YFH.js");
4082
4084
  let mergeSet = getMergeSetSync(issueId);
4083
4085
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
4084
4086
  const results = [];
@@ -4166,8 +4168,8 @@ const postForgeMergeRoute = HttpRouter.add("POST", "/api/issues/:issueId/forge-m
4166
4168
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
4167
4169
  if (!/^[A-Z]+-\d+$/i.test(issueId)) return jsonResponse({ error: "Invalid issue ID format" }, { status: 400 });
4168
4170
  return yield* Effect.promise(async () => {
4169
- const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-DnSYdBEp.js");
4170
- const { getForgeAdapter } = await import("./forge-B-ZWyTRm.js");
4171
+ const { getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync } = await import("./merge-set-bUqbm3yc.js");
4172
+ const { getForgeAdapter } = await import("./forge-DXnS_YFH.js");
4171
4173
  let mergeSet = getMergeSetSync(issueId);
4172
4174
  if (!mergeSet) return jsonResponse({ error: `No merge set found for ${issueId}` }, { status: 404 });
4173
4175
  const results = [];
@@ -4360,7 +4362,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4360
4362
  console.log(`[approve] Starting role pipeline for ${issueId}...`);
4361
4363
  let reviewResult;
4362
4364
  try {
4363
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
4365
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
4364
4366
  reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
4365
4367
  issueId,
4366
4368
  workspace: workspacePath,
@@ -4407,7 +4409,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4407
4409
  }
4408
4410
  console.log(`[approve] Step 3/3: Running server-side rebase for ${issueId}...`);
4409
4411
  try {
4410
- const { rebaseFeatureBranch } = await import("./merge-rebase-C1KIVr0s.js");
4412
+ const { rebaseFeatureBranch } = await import("./merge-rebase-BfaTyXsw.js");
4411
4413
  const workspacePathForRebase = join(projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
4412
4414
  const rebaseResult = await Effect.runPromise(rebaseFeatureBranch(workspacePathForRebase, branchName, "main", issueId));
4413
4415
  if (!rebaseResult.success) {
@@ -4427,7 +4429,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4427
4429
  completePendingOperation(issueId, pushResult.error);
4428
4430
  return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
4429
4431
  }
4430
- const { approve: lifecycleApprove } = await import("./lifecycle-sycO16hj.js");
4432
+ const { approve: lifecycleApprove } = await import("./lifecycle-xmBfK2GJ.js");
4431
4433
  const ghResolved = resolveGitHubIssueSync(issueId);
4432
4434
  const isGitHubIssueFlag = ghResolved.isGitHub;
4433
4435
  const lifecycleCtx = {
@@ -4461,7 +4463,7 @@ const getMergeQueueRoute = HttpRouter.add("GET", "/api/merge-queue", httpHandler
4461
4463
  })));
4462
4464
  const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pipeline/notify", httpHandler(Effect.gen(function* () {
4463
4465
  const request = yield* HttpServerRequest.HttpServerRequest;
4464
- const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-DXdfprGr.js"));
4466
+ const { INTERNAL_TOKEN_HEADER, getInternalTokenSync } = yield* Effect.promise(() => import("./internal-token-BrcU6qfe.js"));
4465
4467
  const expected = getInternalTokenSync();
4466
4468
  if (!expected) return jsonResponse({
4467
4469
  ok: false,
@@ -4475,7 +4477,7 @@ const postInternalPipelineNotifyRoute = HttpRouter.add("POST", "/api/internal/pi
4475
4477
  }, 403);
4476
4478
  const event = yield* readJsonBody;
4477
4479
  const type = event.type;
4478
- const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-6iCJplFZ.js"));
4480
+ const { notifyPipelineSync } = yield* Effect.promise(() => import("./pipeline-notifier-BJr8gQX6.js"));
4479
4481
  switch (type) {
4480
4482
  case "status_changed": {
4481
4483
  const issueId = event.issueId;
@@ -5250,7 +5252,7 @@ const patchWorkspaceTieredExecutionRoute = HttpRouter.add("PATCH", "/api/workspa
5250
5252
  if (override !== "on" && override !== "off" && override !== null && override !== void 0) return jsonResponse({ error: "Invalid tiered-execution override" }, { status: 400 });
5251
5253
  const project = getProjectSync(extractPrefixSync(issueId) ?? issueId.split("-")[0]);
5252
5254
  if (!project) return jsonResponse({ error: "Project not found" }, { status: 404 });
5253
- yield* Effect.promise(() => import("./record-t6V-3Dcj.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5255
+ yield* Effect.promise(() => import("./record-CN0pj4_5.js").then((m) => m.writeRecordTieredExecutionOverride(project, issueId, override)));
5254
5256
  const projectPath = project.path;
5255
5257
  const location = yield* resolvePlanLocation(projectPath, issueId);
5256
5258
  if (!location) return jsonResponse({ error: "No xBRIEF plan found for this workspace" }, { status: 404 });
@@ -5597,6 +5599,33 @@ const MAX_AUTO_REQUEUE = 25;
5597
5599
  const requestReviewPipeline = createRequestReviewPipeline();
5598
5600
  /** Safe `.message` read for caught values of unknown shape. */
5599
5601
  const errorMessage = (e) => e instanceof Error ? e.message : void 0;
5602
+ /**
5603
+ * Push the feature branch of every repo in the workspace (PAN-2948).
5604
+ *
5605
+ * A polyrepo workspace root is a one-commit wrapper repo with no remote and no
5606
+ * feature branch — pushing there fails and, on the verified-dispatch path,
5607
+ * kills the whole re-review pipeline. Loop the resolved repo roots instead
5608
+ * (mirrors rebase-helper.ts), skipping repos whose feature branch doesn't
5609
+ * exist locally (untouched sub-repos). Monorepo resolves to a single root at
5610
+ * the workspace path, preserving the previous behavior.
5611
+ */
5612
+ async function pushFeatureBranches(issueId, workspacePath) {
5613
+ const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-DXKQsc_m.js");
5614
+ for (const root of resolveWorkspaceRepoRootsSync(issueId, workspacePath)) {
5615
+ try {
5616
+ await execAsync$2(`git rev-parse --verify --quiet refs/heads/${root.sourceBranch}`, {
5617
+ cwd: root.dir,
5618
+ encoding: "utf-8"
5619
+ });
5620
+ } catch {
5621
+ continue;
5622
+ }
5623
+ await execAsync$2(`git push origin ${root.sourceBranch}`, {
5624
+ cwd: root.dir,
5625
+ encoding: "utf-8"
5626
+ });
5627
+ }
5628
+ }
5600
5629
  function shouldTreatAsRerun(status) {
5601
5630
  if (!status) return false;
5602
5631
  return status.readyForMerge === true || status.reviewStatus === "passed" || status.testStatus === "passed" || status.mergeStatus === "failed";
@@ -5708,15 +5737,12 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5708
5737
  console.warn(`[review] Could not transition ${issueId} to in_review: ${errorMessage(err)}`);
5709
5738
  });
5710
5739
  try {
5711
- await execAsync$2(`git push origin ${branchName}`, {
5712
- cwd: workspacePath,
5713
- encoding: "utf-8"
5714
- });
5740
+ await pushFeatureBranches(issueId, workspacePath);
5715
5741
  } catch (pushErr) {
5716
5742
  console.log(`Feature branch push note: ${errorMessage(pushErr)}`);
5717
5743
  }
5718
5744
  try {
5719
- const { createReviewArtifactsForIssue } = await import("./review-artifacts-BLbSC4ke.js");
5745
+ const { createReviewArtifactsForIssue } = await import("./review-artifacts-nRDPuMxd.js");
5720
5746
  const artifactResult = await Effect.runPromise(createReviewArtifactsForIssue(issueId, workspacePath));
5721
5747
  const primaryArtifact = artifactResult.mergeSet?.repos.find((repo) => !!repo.artifactUrl);
5722
5748
  artifactResult.mergeSet?.repos.find((repo) => repo.mergeStatus !== "skipped")?.targetBranch;
@@ -5771,7 +5797,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5771
5797
  } catch {}
5772
5798
  return;
5773
5799
  }
5774
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
5800
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
5775
5801
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5776
5802
  const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
5777
5803
  issueId,
@@ -5902,15 +5928,12 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5902
5928
  console.warn(`[request-review] Could not transition ${issueId} to in_review: ${errorMessage(err)}`);
5903
5929
  });
5904
5930
  try {
5905
- await execAsync$2(`git push origin ${branchNameRerun}`, {
5906
- cwd: workspacePathRerun,
5907
- encoding: "utf-8"
5908
- });
5931
+ await pushFeatureBranches(issueId, workspacePathRerun);
5909
5932
  } catch (pushErr) {
5910
5933
  console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
5911
5934
  }
5912
5935
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5913
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
5936
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
5914
5937
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
5915
5938
  issueId,
5916
5939
  workspace: workspacePathRerun,
@@ -5960,7 +5983,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5960
5983
  });
5961
5984
  } else {
5962
5985
  const workspacePath = join(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
5963
- const { spawnRun } = yield* Effect.promise(() => import("./agents-FlIgQ3ql.js"));
5986
+ const { spawnRun } = yield* Effect.promise(() => import("./agents-wi9NWzs2.js"));
5964
5987
  try {
5965
5988
  const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
5966
5989
  setReviewStatus(issueId, { testStatus: "testing" });
@@ -6056,12 +6079,8 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
6056
6079
  });
6057
6080
  },
6058
6081
  pushBranch: async () => {
6059
- const pushCommand = `git push origin ${branchName}`;
6060
- if (workspaceInfo.isRemote && workspaceInfo.vmName) await execAsync$2(flyExecCmd(workspaceInfo.vmName, `cd ${workspacePath} && ${pushCommand}`), { encoding: "utf-8" });
6061
- else await execAsync$2(pushCommand, {
6062
- cwd: workspacePath,
6063
- encoding: "utf-8"
6064
- });
6082
+ if (workspaceInfo.isRemote && workspaceInfo.vmName) await execAsync$2(flyExecCmd(workspaceInfo.vmName, `cd ${workspacePath} && git push origin ${branchName}`), { encoding: "utf-8" });
6083
+ else await pushFeatureBranches(issueId, workspacePath);
6065
6084
  console.log(`[request-review] Pushed verified branch ${branchName} for ${issueId}`);
6066
6085
  },
6067
6086
  dispatchReview: async () => {
@@ -6070,7 +6089,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
6070
6089
  testStatus: "pending",
6071
6090
  reviewNotes
6072
6091
  });
6073
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
6092
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
6074
6093
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
6075
6094
  issueId,
6076
6095
  workspace: workspacePath,
@@ -6379,7 +6398,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6379
6398
  const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
6380
6399
  if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
6381
6400
  try {
6382
- const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-BQM3a8z5.js"));
6401
+ const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-CKkgIBPB.js"));
6383
6402
  resetPostMergeState(issueId);
6384
6403
  } catch (err) {
6385
6404
  console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
@@ -6388,7 +6407,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6388
6407
  const rerun = body?.rerun === true;
6389
6408
  if (rerun) try {
6390
6409
  yield* Effect.promise(async () => {
6391
- const { spawnReviewRoleForIssue } = await import("./review-agent-DJRO8EG8.js");
6410
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DNboMyW4.js");
6392
6411
  const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
6393
6412
  if (dispatchArgs) {
6394
6413
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
@@ -6417,7 +6436,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6417
6436
  const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
6418
6437
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
6419
6438
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6420
- const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-DJRO8EG8.js"));
6439
+ const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-DNboMyW4.js"));
6421
6440
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
6422
6441
  const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
6423
6442
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
@@ -6447,8 +6466,8 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
6447
6466
  success: false,
6448
6467
  error: "Workspace does not exist"
6449
6468
  }, { status: 400 });
6450
- const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-9SkRpES9.js"));
6451
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DJRO8EG8.js"));
6469
+ const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-vjjcmiN8.js"));
6470
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DNboMyW4.js"));
6452
6471
  const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
6453
6472
  setReviewStatus(issueId, {
6454
6473
  reviewStatus: "pending",
@@ -6520,8 +6539,8 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
6520
6539
  const issueId = ((yield* HttpRouter.params)["issueId"] ?? "").toUpperCase();
6521
6540
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6522
6541
  return jsonResponse(yield* Effect.promise(async () => {
6523
- const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-t6V-3Dcj.js");
6524
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DJRO8EG8.js");
6542
+ const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-CN0pj4_5.js");
6543
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DNboMyW4.js");
6525
6544
  const project = resolveProjectForIssue(issueId);
6526
6545
  const record = project ? readIssueRecordSync(project, issueId) : null;
6527
6546
  return {
@@ -6556,9 +6575,9 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
6556
6575
  return jsonResponse({ error: error instanceof Error ? error.message : String(error) }, { status: 400 });
6557
6576
  }
6558
6577
  return jsonResponse(yield* Effect.promise(async () => {
6559
- const { resolveProjectForIssue } = await import("./record-t6V-3Dcj.js");
6560
- const { updateIssueRecord } = await import("./record-update-DACtKh6_.js");
6561
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DJRO8EG8.js");
6578
+ const { resolveProjectForIssue } = await import("./record-CN0pj4_5.js");
6579
+ const { updateIssueRecord } = await import("./record-update-bLJxAXH4.js");
6580
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DNboMyW4.js");
6562
6581
  const record = await updateIssueRecord(resolveProjectForIssue(issueId), issueId, (current) => {
6563
6582
  if (hasMode) if (body.reviewMode === null) delete current.reviewMode;
6564
6583
  else current.reviewMode = body.reviewMode;
@@ -6991,7 +7010,7 @@ async function readWorkspacePlanningMarkdown(issueId, fileName) {
6991
7010
  */
6992
7011
  async function readWorkspaceContinueFile(_projectPath, workspacePath, issueId) {
6993
7012
  try {
6994
- const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-t6V-3Dcj.js");
7013
+ const { readRecordContinueViewSync, getProjectConfigFromWorkspacePath, resolveProjectForIssue } = await import("./record-CN0pj4_5.js");
6995
7014
  const recordView = readRecordContinueViewSync(resolveProjectForIssue(issueId) ?? getProjectConfigFromWorkspacePath(workspacePath), issueId);
6996
7015
  return recordView ? JSON.stringify(recordView, null, 2) : null;
6997
7016
  } catch {
@@ -7750,7 +7769,7 @@ const getWorkspaceReviewStatusRoute = HttpRouter.add("GET", "/api/review/:issueI
7750
7769
  if (queuePosition === null) try {
7751
7770
  const resolved = resolveProjectFromIssueSync(issueId);
7752
7771
  if (resolved) {
7753
- const { getQueueForProject } = yield* Effect.promise(() => import("./merge-DK23JEdS.js"));
7772
+ const { getQueueForProject } = yield* Effect.promise(() => import("./merge-B1DiziGU.js"));
7754
7773
  const mergePos = findPositionInQueueSync(issueId, getQueueForProject(resolved.projectKey).map((e) => ({
7755
7774
  id: String(e.id),
7756
7775
  type: "task",
@@ -7788,7 +7807,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7788
7807
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
7789
7808
  if (workspaceInfo.exists && workspaceInfo.localPath) {
7790
7809
  const localPath = workspaceInfo.localPath;
7791
- const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-Dry_Ka_D.js"));
7810
+ const { getWorkspaceGitInfo } = yield* Effect.promise(() => import("./git-utils-D0_yhCgF.js"));
7792
7811
  try {
7793
7812
  const gitInfo = yield* getWorkspaceGitInfo(localPath);
7794
7813
  if (gitInfo.HEAD) update.reviewedAtCommit = gitInfo.HEAD;
@@ -7803,7 +7822,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7803
7822
  if (verificationStatus) update.verificationStatus = verificationStatus;
7804
7823
  if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
7805
7824
  const status = setReviewStatus(issueId, update);
7806
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-DVj0hvaL.js"));
7825
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-DM6bWjsi.js"));
7807
7826
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
7808
7827
  if (reviewStatus && [
7809
7828
  "passed",
@@ -7821,7 +7840,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7821
7840
  const agentId = `agent-${issueId.toLowerCase()}`;
7822
7841
  const feedbackBody = `CODE REVIEW ${reviewStatus.toUpperCase()} for ${issueId}:\n\n${reviewNotes}\n\n## REQUIRED: Fix ALL issues above, then invoke the /rebase-and-submit skill\n\n1. Read each blocking issue carefully\n2. Fix the code for EVERY issue listed\n3. Run tests locally to verify your fixes\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
7823
7842
  try {
7824
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-qmiMbqTZ.js"));
7843
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-D3a22RCd.js"));
7825
7844
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7826
7845
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7827
7846
  issueId,
@@ -7885,7 +7904,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7885
7904
  const agentId = `agent-${issueId.toLowerCase()}`;
7886
7905
  const feedbackBody = `TESTS FAILED for ${issueId}:\n\n${testNotes}\n\n## REQUIRED: Fix ALL test failures, then invoke the /rebase-and-submit skill\n\n1. Read each test failure carefully\n2. Fix the code causing EVERY failure\n3. Run the test suite locally to verify your fixes pass\n4. Commit every change\n5. Invoke the /rebase-and-submit skill for ${issueId} — this is an atomic task that runs pan done (which handles rebase + push + re-submit internally)\n\nDo NOT stop between steps. Do NOT run git push manually — the skill handles it. Do NOT stop until pan done has completed successfully.`;
7887
7906
  try {
7888
- const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-qmiMbqTZ.js"));
7907
+ const { writeFeedbackFile } = yield* Effect.promise(() => import("./feedback-writer-D3a22RCd.js"));
7889
7908
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7890
7909
  const fileResult = yield* Effect.promise(() => writeFeedbackFile({
7891
7910
  issueId,
@@ -7918,14 +7937,14 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7918
7937
  });
7919
7938
  yield* Effect.promise(async () => {
7920
7939
  try {
7921
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-9SkRpES9.js");
7940
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-vjjcmiN8.js");
7922
7941
  const project = resolveProjectFromIssueSync(issueId);
7923
7942
  const repo = (project ? getProjectSync(project.projectKey) : null)?.github_repo;
7924
7943
  if (!repo || !repo.includes("/")) return;
7925
7944
  const [owner, name] = repo.split("/");
7926
7945
  const wsInfo = getWorkspaceInfoForIssue(issueId);
7927
7946
  if (!wsInfo?.localPath) return;
7928
- const { postOverdeckTestsStatus } = await import("./github-app-CPfoFAdV.js");
7947
+ const { postOverdeckTestsStatus } = await import("./github-app-ClZ2lk8D.js");
7929
7948
  await postOverdeckTestsStatus(wsInfo.localPath, owner, name, "success", "Test specialist passed");
7930
7949
  } catch (err) {
7931
7950
  console.warn(`[review-status] Failed to post overdeck/tests for ${issueId}: ${err.message}`);
@@ -7967,7 +7986,7 @@ const postWorkspaceRefreshTokenRoute = HttpRouter.add("POST", "/api/workspaces/:
7967
7986
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
7968
7987
  const issueLower = issueId.toLowerCase();
7969
7988
  const workspacePath = join(getProjectPath(void 0, extractPrefixSync(issueId) ?? issueId.split("-")[0]), "workspaces", `feature-${issueLower}`);
7970
- const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-CPfoFAdV.js"));
7989
+ const { refreshWorkspaceToken, isGitHubAppConfigured } = yield* Effect.promise(() => import("./github-app-ClZ2lk8D.js"));
7971
7990
  if (!isGitHubAppConfigured()) return jsonResponse({
7972
7991
  success: false,
7973
7992
  error: "GitHub App not configured"
@@ -7982,4 +8001,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
7982
8001
  //#endregion
7983
8002
  export { getWorkspacePathForIssue as C, stopAgentOutputService as E, resolveIssueHeadlineCost as S, startAgentOutputService as T, getCostsForIssueSync as _, pushApproveMain as a, processPendingFeedbackDeliveries as b, triggerMerge as c, resumeQueuedMerges as d, syncWalFromAllProjects as f, migrateAllSessionsSync as g, reclassifyUnknownCostEventsSync as h, mergeOpsRouteLayer as i, internalEventsRouteLayer as l, reconcilePiTranscripts as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reconcile as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, eventsRouteLayer as u, rebuildCacheSync as v, retainAgentOutputInterest as w, getCachedRunningAgents as x, syncCacheSync as y };
7984
8003
 
7985
- //# sourceMappingURL=workspaces-hWvy9eKs.js.map
8004
+ //# sourceMappingURL=workspaces-Do_9J0LQ.js.map