@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,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-JVO00bs7.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-CC4r-c2s.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };
@@ -1,3 +1,3 @@
1
- import { $ as updateSpecialistMetadata, A as findSessionFile, B as getProjectSpecialistDir, C as listSpecialistsForProject, D as updateRunMetadata, E as updateProjectSpecialistMetadata, F as isInitialized, G as isProjectSpecialistActivelyRunning, H as getSpecialistMetadata, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as getSpecialistState, N as getSpecialistStatus, O as updateRunStatus, P as initializeEnabledSpecialists, Q as saveRegistry, R as ensureProjectSpecialistDir, S as listProjectsWithSpecialists, T as updateContextTokens, U as getTmuxSessionName, V as getReviewerSessionName, W as initSpecialistsDirectory, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getEnabledSpecialists, a as sendFeedbackToAgent, b as incrementProjectRunCount, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as getAllProjectSpecialistStatuses, h as enableSpecialist, i as getPendingFeedback, j as getAllSpecialistStatus, k as countContextTokens, l as pauseGracePeriod, m as disableSpecialist, o as exitGracePeriod, p as terminateSpecialist, q as makeSpecialistRegistryKey, r as getFeedbackStats, s as findActiveRegistryKey, t as init_specialists, tt as buildSpecialistCavemanExports, u as resumeGracePeriod, v as getProjectSpecialistMetadata, w as setCurrentRun, x as isEnabled, y as getRunMetadata, z as getAllSpecialists } from "./specialists-DyFeedjn.js";
1
+ import { $ as updateSpecialistMetadata, A as findSessionFile, B as getProjectSpecialistDir, C as listSpecialistsForProject, D as updateRunMetadata, E as updateProjectSpecialistMetadata, F as isInitialized, G as isProjectSpecialistActivelyRunning, H as getSpecialistMetadata, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as getSpecialistState, N as getSpecialistStatus, O as updateRunStatus, P as initializeEnabledSpecialists, Q as saveRegistry, R as ensureProjectSpecialistDir, S as listProjectsWithSpecialists, T as updateContextTokens, U as getTmuxSessionName, V as getReviewerSessionName, W as initSpecialistsDirectory, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getEnabledSpecialists, a as sendFeedbackToAgent, b as incrementProjectRunCount, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as getAllProjectSpecialistStatuses, h as enableSpecialist, i as getPendingFeedback, j as getAllSpecialistStatus, k as countContextTokens, l as pauseGracePeriod, m as disableSpecialist, o as exitGracePeriod, p as terminateSpecialist, q as makeSpecialistRegistryKey, r as getFeedbackStats, s as findActiveRegistryKey, t as init_specialists, tt as buildSpecialistCavemanExports, u as resumeGracePeriod, v as getProjectSpecialistMetadata, w as setCurrentRun, x as isEnabled, y as getRunMetadata, z as getAllSpecialists } from "./specialists-jiuuyVkp.js";
2
2
  init_specialists();
3
3
  export { REVIEWER_ROLES, buildSpecialistBaseCommand, buildSpecialistCavemanExports, countContextTokens, disableSpecialist, enableSpecialist, ensureProjectSpecialistDir, exitGracePeriod, findActiveRegistryKey, findSessionFile, getAllProjectSpecialistStatuses, getAllSpecialistStatus, getAllSpecialists, getEnabledSpecialists, getFeedbackStats, getGracePeriodState, getPendingFeedback, getProjectSpecialistDir, getProjectSpecialistMetadata, getReviewerSessionName, getRunMetadata, getSpecialistMetadata, getSpecialistState, getSpecialistStatus, getTmuxSessionName, incrementProjectRunCount, initSpecialistsDirectory, initializeEnabledSpecialists, isEnabled, isInitialized, isProjectSpecialistActivelyRunning, isRunning, listProjectsWithSpecialists, listSpecialistsForProject, loadRegistry, makeSpecialistRegistryKey, parseReviewerSessionName, parseSpecialistRegistryKey, pauseGracePeriod, pruneSpecialistRegistryEntriesForIssue, recordWake, resumeGracePeriod, saveRegistry, sendFeedbackToAgent, setCurrentRun, signalSpecialistCompletion, startGracePeriod, terminateSpecialist, updateContextTokens, updateProjectSpecialistMetadata, updateRunMetadata, updateRunStatus, updateSpecialistMetadata };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Vr as init_paths, hr as AGENTS_DIR, wr as OVERDECK_HOME } from "./config-yaml-DvyMuOle.js";
3
- import { A as listPaneValues, D as killSession, H as sessionExists, w as init_tmux } from "./tmux-ftABRAmc.js";
4
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-BVl4rihN.js";
5
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-qHJBhy3Z.js";
6
- import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-Dhflo1SH.js";
2
+ import { Vr as init_paths, hr as AGENTS_DIR, wr as OVERDECK_HOME } from "./config-yaml-DySPNmKN.js";
3
+ import { A as listPaneValues, D as killSession, H as sessionExists, w as init_tmux } from "./tmux-R7N7y-Mh.js";
4
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-BPUws1-_.js";
5
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-3lNZkyT4.js";
6
+ import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-BXSlHwEh.js";
7
7
  import { Effect } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9
9
  import { basename, join } from "path";
@@ -11,6 +11,9 @@ import "crypto";
11
11
  import { exec } from "child_process";
12
12
  import { promisify } from "util";
13
13
  //#region ../../lib/cloister/specialists-spawn.ts
14
+ /**
15
+ * Cloister specialist spawn command and environment helpers.
16
+ */
14
17
  function roleForSpecialistModel(specialistType) {
15
18
  const normalized = specialistType.replace(/-agent$/, "");
16
19
  if (normalized === "inspect") return {
@@ -28,7 +31,7 @@ function roleForSpecialistModel(specialistType) {
28
31
  return { role: "work" };
29
32
  }
30
33
  async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
31
- const { getAgentRuntimeBaseCommand } = await import("./agents-FlIgQ3ql.js");
34
+ const { getAgentRuntimeBaseCommand } = await import("./agents-wi9NWzs2.js");
32
35
  const role = roleForSpecialistModel(specialistType).role;
33
36
  const harness = await resolveHarness({
34
37
  model,
@@ -65,7 +68,6 @@ async function buildSpecialistCavemanExports(specialistType, workspacePath, conf
65
68
  var init_specialists_spawn = __esmMin((() => {
66
69
  init_workspace();
67
70
  init_harness_resolve();
68
- promisify(exec);
69
71
  `${[
70
72
  "ANTHROPIC_BASE_URL",
71
73
  "ANTHROPIC_AUTH_TOKEN",
@@ -435,7 +437,7 @@ async function getSpecialistStatus(name, projectKey) {
435
437
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
436
438
  const running = await isRunning(name, projectKey);
437
439
  const contextTokens = countContextTokens(name);
438
- const { getAgentRuntimeStateSync } = await import("./agents-FlIgQ3ql.js");
440
+ const { getAgentRuntimeStateSync } = await import("./agents-wi9NWzs2.js");
439
441
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
440
442
  let state;
441
443
  if (runtimeState) switch (runtimeState.state) {
@@ -627,7 +629,7 @@ function listSpecialistsForProject(projectKey) {
627
629
  */
628
630
  async function getAllProjectSpecialistStatuses() {
629
631
  const registry = loadRegistry();
630
- const { getAgentRuntimeStateSync } = await import("./agents-FlIgQ3ql.js");
632
+ const { getAgentRuntimeStateSync } = await import("./agents-wi9NWzs2.js");
631
633
  const results = [];
632
634
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
633
635
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -824,7 +826,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
824
826
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
825
827
  updateRunStatus(projectKey, registryKey, result.status);
826
828
  if (metadata.currentRun) try {
827
- const { finalizeRunLogSync } = await import("./specialist-logs-DJ3RzKxW.js");
829
+ const { finalizeRunLogSync } = await import("./specialist-logs-C5p8G7tx.js");
828
830
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
829
831
  status: result.status,
830
832
  notes: result.notes
@@ -834,7 +836,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
834
836
  }
835
837
  setCurrentRun(projectKey, registryKey, null);
836
838
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
837
- import("./agents-FlIgQ3ql.js").then(({ saveAgentRuntimeState }) => {
839
+ import("./agents-wi9NWzs2.js").then(({ saveAgentRuntimeState }) => {
838
840
  saveAgentRuntimeState(resolvedTmuxSession, {
839
841
  state: "idle",
840
842
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -865,7 +867,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
865
867
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
866
868
  }
867
869
  if (metadata.currentRun) {
868
- const { finalizeRunLogSync } = await import("./specialist-logs-DJ3RzKxW.js");
870
+ const { finalizeRunLogSync } = await import("./specialist-logs-C5p8G7tx.js");
869
871
  try {
870
872
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
871
873
  status: metadata.lastRunStatus || "incomplete",
@@ -879,12 +881,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
879
881
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
880
882
  const key = `${projectKey}-${specialistType}`;
881
883
  gracePeriodStates.delete(key);
882
- const { saveAgentRuntimeState } = await import("./agents-FlIgQ3ql.js");
884
+ const { saveAgentRuntimeState } = await import("./agents-wi9NWzs2.js");
883
885
  saveAgentRuntimeState(tmuxSession, {
884
886
  state: "suspended",
885
887
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
886
888
  });
887
- const { scheduleDigestGeneration } = await import("./specialist-context-DtrYvGJ-.js");
889
+ const { scheduleDigestGeneration } = await import("./specialist-context-Bn3dCGS2.js");
888
890
  scheduleDigestGeneration(projectKey, specialistType);
889
891
  scheduleLogCleanup(projectKey, specialistType);
890
892
  }
@@ -897,8 +899,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
897
899
  function scheduleLogCleanup(projectKey, specialistType) {
898
900
  Promise.resolve().then(async () => {
899
901
  try {
900
- const { cleanupOldLogsSync } = await import("./specialist-logs-DJ3RzKxW.js");
901
- const { getSpecialistRetention } = await import("./projects-9SkRpES9.js");
902
+ const { cleanupOldLogsSync } = await import("./specialist-logs-C5p8G7tx.js");
903
+ const { getSpecialistRetention } = await import("./projects-vjjcmiN8.js");
902
904
  const retention = getSpecialistRetention(projectKey);
903
905
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
904
906
  maxDays: retention.max_days,
@@ -948,7 +950,7 @@ async function sendFeedbackToAgent(feedback) {
948
950
  }
949
951
  const agentSession = `agent-${toIssueId.toLowerCase()}`;
950
952
  const feedbackMessage = formatFeedbackForAgent(fullFeedback);
951
- const { writeFeedbackFile } = await import("./feedback-writer-qmiMbqTZ.js");
953
+ const { writeFeedbackFile } = await import("./feedback-writer-D3a22RCd.js");
952
954
  const specialist = {
953
955
  "review-agent": "review-agent",
954
956
  "test-agent": "test-agent",
@@ -967,7 +969,7 @@ async function sendFeedbackToAgent(feedback) {
967
969
  return false;
968
970
  }
969
971
  try {
970
- const { messageAgent } = await import("./agents-FlIgQ3ql.js");
972
+ const { messageAgent } = await import("./agents-wi9NWzs2.js");
971
973
  await messageAgent(agentSession, `SPECIALIST FEEDBACK: ${fromSpecialist} reported ${feedback.feedbackType.toUpperCase()} for ${toIssueId}.\n\nMUST READ: ${fileResult.filePath}\n\nUse your Read tool to open this file, read every line, then address the feedback and continue working. Do NOT stop at the prompt.`);
972
974
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
973
975
  return true;
@@ -1127,4 +1129,4 @@ var init_specialists = __esmMin((() => {
1127
1129
  //#endregion
1128
1130
  export { updateSpecialistMetadata as $, findSessionFile as A, getProjectSpecialistDir as B, listSpecialistsForProject as C, updateRunMetadata as D, updateProjectSpecialistMetadata as E, isInitialized as F, isProjectSpecialistActivelyRunning as G, getSpecialistMetadata as H, isRunning as I, parseReviewerSessionName as J, loadRegistry as K, REVIEWER_ROLES as L, getSpecialistState as M, getSpecialistStatus as N, updateRunStatus as O, initializeEnabledSpecialists as P, saveRegistry as Q, ensureProjectSpecialistDir as R, listProjectsWithSpecialists as S, updateContextTokens as T, getTmuxSessionName as U, getReviewerSessionName as V, initSpecialistsDirectory as W, pruneSpecialistRegistryEntriesForIssue as X, parseSpecialistRegistryKey as Y, recordWake as Z, getEnabledSpecialists as _, sendFeedbackToAgent as a, incrementProjectRunCount as b, getGracePeriodState as c, signalSpecialistCompletion as d, buildSpecialistBaseCommand as et, startGracePeriod as f, getAllProjectSpecialistStatuses as g, enableSpecialist as h, getPendingFeedback as i, getAllSpecialistStatus as j, countContextTokens as k, pauseGracePeriod as l, disableSpecialist as m, specialists_exports as n, exitGracePeriod as o, terminateSpecialist as p, makeSpecialistRegistryKey as q, getFeedbackStats as r, findActiveRegistryKey as s, init_specialists as t, buildSpecialistCavemanExports as tt, resumeGracePeriod as u, getProjectSpecialistMetadata as v, setCurrentRun as w, isEnabled as x, getRunMetadata as y, getAllSpecialists as z };
1129
1131
 
1130
- //# sourceMappingURL=specialists-DyFeedjn.js.map
1132
+ //# sourceMappingURL=specialists-jiuuyVkp.js.map
@@ -0,0 +1,3 @@
1
+ import { C as init_specs, x as findSpecByIssue } from "./io-C9kF1wtJ.js";
2
+ init_specs();
3
+ export { findSpecByIssue };
@@ -1,6 +1,6 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as init_esm_shims, t as __dirname } from "./esm-shims-CbI3BVkl.js";
3
- import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-DyRx4cI7.js";
2
+ import { r as init_esm_shims, t as __dirname } from "./esm-shims-OSHAYaS1.js";
3
+ import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-Cb_0uvpS.js";
4
4
  //#region ../../../node_modules/.bun/@google-cloud+promisify@4.1.0/node_modules/@google-cloud/promisify/build/src/index.js
5
5
  var require_src$13 = /* @__PURE__ */ __commonJSMin(((exports) => {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1198,12 +1198,12 @@ var require_gaxios = /* @__PURE__ */ __commonJSMin(((exports) => {
1198
1198
  * @returns A proxy agent
1199
1199
  */
1200
1200
  static async #getProxyAgent() {
1201
- this.#proxyAgent ||= (await import("./dist-Bd3vn0Hw.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1201
+ this.#proxyAgent ||= (await import("./dist-Bzy0y69j.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1202
1202
  return this.#proxyAgent;
1203
1203
  }
1204
1204
  static async #getFetch() {
1205
1205
  const hasWindow = typeof window !== "undefined" && !!window;
1206
- this.#fetch ||= hasWindow ? window.fetch : (await import("./src-CMTQGyCK.js")).default;
1206
+ this.#fetch ||= hasWindow ? window.fetch : (await import("./src-CdmnTM2m.js")).default;
1207
1207
  return this.#fetch;
1208
1208
  }
1209
1209
  /**
@@ -10601,7 +10601,7 @@ var require_src$7 = /* @__PURE__ */ __commonJSMin(((exports) => {
10601
10601
  const TeenyStatistics_1 = require_TeenyStatistics();
10602
10602
  const crypto_1 = __require("crypto");
10603
10603
  const streamEvents = require_stream_events();
10604
- const fetch = (...args) => import("./src-CMTQGyCK.js").then(({ default: fetch }) => fetch(...args));
10604
+ const fetch = (...args) => import("./src-CdmnTM2m.js").then(({ default: fetch }) => fetch(...args));
10605
10605
  var RequestError = class extends Error {
10606
10606
  code;
10607
10607
  };
@@ -133656,4 +133656,4 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports) => {
133656
133656
  export default require_src();
133657
133657
  export {};
133658
133658
 
133659
- //# sourceMappingURL=src-CG9mCkP6.js.map
133659
+ //# sourceMappingURL=src-CXmtj0im.js.map
@@ -1,13 +1,13 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-CJ_aH5jD.js";
2
+ import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-kNxT0bZC.js";
3
3
  import { deprecate, promisify, types } from "node:util";
4
4
  import { format } from "node:url";
5
5
  import http from "node:http";
6
+ import https from "node:https";
7
+ import { isIP } from "node:net";
6
8
  import { Buffer as Buffer$1 } from "node:buffer";
7
9
  import Stream, { PassThrough, pipeline } from "node:stream";
8
- import { isIP } from "node:net";
9
10
  import zlib from "node:zlib";
10
- import https from "node:https";
11
11
  //#region ../../../node_modules/.bun/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/dist/index.js
12
12
  /**
13
13
  * Returns a `Buffer` instance from the given data URI `uri`.
@@ -209,7 +209,7 @@ var init_body = __esmMin((() => {
209
209
  for (const [name, value] of parameters) formData.append(name, value);
210
210
  return formData;
211
211
  }
212
- const { toFormData } = await import("./multipart-parser-Dt8YPN5S.js");
212
+ const { toFormData } = await import("./multipart-parser-duPAfSBw.js");
213
213
  return toFormData(this.body, ct);
214
214
  }
215
215
  /**
@@ -1176,4 +1176,4 @@ __esmMin((() => {
1176
1176
  }))();
1177
1177
  export { fetch as default };
1178
1178
 
1179
- //# sourceMappingURL=src-CMTQGyCK.js.map
1179
+ //# sourceMappingURL=src-CdmnTM2m.js.map
@@ -1374,7 +1374,7 @@ var init_events = __esmMin((() => {
1374
1374
  payload: Schema.Struct({
1375
1375
  agentId: AgentId,
1376
1376
  model: Schema.String,
1377
- claudeSessionId: Schema.optional(Schema.String),
1377
+ claudeSessionId: Schema.optional(Schema.NullOr(Schema.String)),
1378
1378
  sessionModel: Schema.optional(Schema.String),
1379
1379
  sessionHarness: Schema.optional(Schema.String)
1380
1380
  })
@@ -2301,7 +2301,7 @@ var init_editor = __esmMin((() => {
2301
2301
  }));
2302
2302
  //#endregion
2303
2303
  //#region ../../../packages/contracts/src/flywheel.ts
2304
- var FlywheelRunId, FlywheelHttpUrl, FlywheelHarness, FlywheelEffort, FlywheelOrchestrator, FlywheelHeadline, FlywheelPipelineVerb, FlywheelPipelineStatus, FlywheelPipelineItem, FlywheelSubstrateBugStatus, FlywheelSubstrateBug, FlywheelAgentStatus, FlywheelAgent, FlywheelParkedItem, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSuggestion, FlywheelSystemStatus, FlywheelStatus;
2304
+ var FlywheelRunId, FlywheelHttpUrl, FlywheelHarness, FlywheelEffort, FlywheelOrchestrator, FlywheelHeadline, FlywheelPipelineVerb, FlywheelPipelineStatus, FlywheelPipelineItem, FlywheelSubstrateBugStatus, FlywheelSubstrateBug, FlywheelAgentStatus, FlywheelAgent, FlywheelParkedItem, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSuggestion, FlywheelSystemStatus, FlywheelOrders, FlywheelStatus;
2305
2305
  var init_flywheel = __esmMin((() => {
2306
2306
  FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\d+$/));
2307
2307
  FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\/\/\S+$/i));
@@ -2309,7 +2309,8 @@ var init_flywheel = __esmMin((() => {
2309
2309
  "claude-code",
2310
2310
  "pi",
2311
2311
  "ohmypi",
2312
- "codex"
2312
+ "codex",
2313
+ "acp"
2313
2314
  ]);
2314
2315
  FlywheelEffort = Schema.Literals([
2315
2316
  "low",
@@ -2432,6 +2433,15 @@ var init_flywheel = __esmMin((() => {
2432
2433
  agentsActive: Schema.Number,
2433
2434
  agentsCap: Schema.Number
2434
2435
  });
2436
+ FlywheelOrders = Schema.Struct({
2437
+ bookId: Schema.String,
2438
+ bookName: Schema.String,
2439
+ landed: Schema.Number,
2440
+ total: Schema.Number,
2441
+ laneAInFlight: Schema.Array(Schema.String),
2442
+ laneBInFlight: Schema.optional(Schema.String),
2443
+ drained: Schema.Boolean
2444
+ });
2435
2445
  FlywheelStatus = Schema.Struct({
2436
2446
  runId: FlywheelRunId,
2437
2447
  startedAt: Schema.String,
@@ -2445,6 +2455,7 @@ var init_flywheel = __esmMin((() => {
2445
2455
  suggestions: Schema.Array(FlywheelSuggestion).pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))),
2446
2456
  system: FlywheelSystemStatus,
2447
2457
  openQuestions: Schema.Array(Schema.String),
2458
+ orders: Schema.optional(FlywheelOrders),
2448
2459
  ticks: Schema.Number,
2449
2460
  lastTickAt: Schema.String
2450
2461
  });
@@ -3790,28 +3801,26 @@ function applyEvent(state, event) {
3790
3801
  case "agent.model_set": {
3791
3802
  const { agentId, model, claudeSessionId, sessionModel, sessionHarness } = event.payload;
3792
3803
  const prev = state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence);
3804
+ const nextSessionId = claudeSessionId === null ? void 0 : claudeSessionId ?? prev.claudeSessionId;
3793
3805
  const next = {
3794
3806
  ...prev,
3795
3807
  model,
3796
- claudeSessionId: claudeSessionId ?? prev.claudeSessionId,
3808
+ claudeSessionId: nextSessionId,
3797
3809
  sessionModel: sessionModel ?? prev.sessionModel,
3798
3810
  sessionHarness: sessionHarness ?? prev.sessionHarness,
3799
3811
  lastActivity: event.timestamp,
3800
3812
  updatedAtSequence: event.sequence
3801
3813
  };
3802
3814
  let nextAgentIdBySessionId = state.agentIdBySessionId;
3803
- if (claudeSessionId && claudeSessionId !== prev.claudeSessionId) {
3804
- nextAgentIdBySessionId = {
3805
- ...state.agentIdBySessionId,
3806
- [claudeSessionId]: agentId
3807
- };
3815
+ if (claudeSessionId !== void 0 && nextSessionId !== prev.claudeSessionId) {
3808
3816
  if (prev.claudeSessionId && state.agentIdBySessionId[prev.claudeSessionId] === agentId) {
3809
- const { [prev.claudeSessionId]: _removed, ...rest } = state.agentIdBySessionId;
3810
- nextAgentIdBySessionId = {
3811
- ...rest,
3812
- [claudeSessionId]: agentId
3813
- };
3817
+ const { [prev.claudeSessionId]: _removed, ...rest } = nextAgentIdBySessionId;
3818
+ nextAgentIdBySessionId = rest;
3814
3819
  }
3820
+ if (nextSessionId) nextAgentIdBySessionId = {
3821
+ ...nextAgentIdBySessionId,
3822
+ [nextSessionId]: agentId
3823
+ };
3815
3824
  }
3816
3825
  return {
3817
3826
  ...state,
@@ -4252,6 +4261,55 @@ var init_flywheel_stats = __esmMin((() => {
4252
4261
  });
4253
4262
  Schema.decodeUnknownSync(FlywheelStats);
4254
4263
  Schema.encodeSync(FlywheelStats);
4264
+ }));
4265
+ //#endregion
4266
+ //#region ../../../packages/contracts/src/orders.ts
4267
+ var OrderBookLane, OrderBookStatus, OrderBookPosture, OrderBookItem, OrderBookSettings, OrderBook, OrderBookIndexEntry;
4268
+ var init_orders = __esmMin((() => {
4269
+ OrderBookLane = Schema.Literals(["A", "B"]);
4270
+ OrderBookStatus = Schema.Literals([
4271
+ "draft",
4272
+ "ready",
4273
+ "running",
4274
+ "drained",
4275
+ "complete"
4276
+ ]);
4277
+ OrderBookPosture = Schema.Literals(["open", "drain"]);
4278
+ OrderBookItem = Schema.Struct({
4279
+ issue: Schema.String,
4280
+ lane: OrderBookLane,
4281
+ order: Schema.Number,
4282
+ prereqs: Schema.Array(Schema.String),
4283
+ reVerify: Schema.Boolean,
4284
+ planAtPickup: Schema.optional(Schema.Boolean),
4285
+ addedAt: Schema.String,
4286
+ addedBy: Schema.String
4287
+ });
4288
+ OrderBookSettings = Schema.Struct({
4289
+ laneAConcurrency: Schema.Number,
4290
+ briefOverlay: Schema.optional(Schema.String),
4291
+ posture: OrderBookPosture,
4292
+ postureSetAt: Schema.optional(Schema.String),
4293
+ postureSetBy: Schema.optional(Schema.String),
4294
+ postureReason: Schema.optional(Schema.String)
4295
+ });
4296
+ OrderBook = Schema.Struct({
4297
+ id: Schema.String,
4298
+ name: Schema.String,
4299
+ status: OrderBookStatus,
4300
+ settings: OrderBookSettings,
4301
+ items: Schema.Array(OrderBookItem),
4302
+ runId: Schema.optional(Schema.String),
4303
+ createdAt: Schema.String,
4304
+ updatedAt: Schema.String
4305
+ });
4306
+ OrderBookIndexEntry = Schema.Struct({
4307
+ id: Schema.String,
4308
+ name: Schema.String,
4309
+ status: OrderBookStatus,
4310
+ runId: Schema.optional(Schema.String),
4311
+ updatedAt: Schema.String
4312
+ });
4255
4313
  })), CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ContextPreviewHarness, ContextProjectSummary, ContextWorkspaceSummary, ContextLayerBase, GlobalContextLayerRecord, ProjectContextLayerRecord, WorkspaceContextLayerRecord, ContextEditableLayerRecord, GlobalContextLayerTarget, ProjectContextLayerTarget, WorkspaceContextLayerTarget, ContextLayerTarget, ContextLayerDraft, ContextSyncTarget, ContextPreviewRequest, ContextHarnessPreviews, ContextPreviewDiagnostic, ContextLayerSaveRequest;
4256
4314
  var init_context_layers = __esmMin((() => {
4257
4315
  CONTEXT_LAYER_KINDS = [
@@ -4262,7 +4320,8 @@ var init_context_layers = __esmMin((() => {
4262
4320
  CONTEXT_PREVIEW_HARNESSES = [
4263
4321
  "claude-code",
4264
4322
  "ohmypi",
4265
- "codex"
4323
+ "codex",
4324
+ "acp"
4266
4325
  ];
4267
4326
  Schema.Literals(CONTEXT_LAYER_KINDS);
4268
4327
  ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
@@ -4362,6 +4421,7 @@ var init_context_layers = __esmMin((() => {
4362
4421
  "claude-code": Schema.String,
4363
4422
  ohmypi: Schema.String,
4364
4423
  codex: Schema.String,
4424
+ acp: Schema.String,
4365
4425
  fullPrompt: Schema.String
4366
4426
  });
4367
4427
  ContextPreviewDiagnostic = Schema.Struct({
@@ -4416,6 +4476,7 @@ var init_artifacts = __esmMin((() => {
4416
4476
  "pi",
4417
4477
  "ohmypi",
4418
4478
  "codex",
4479
+ "acp",
4419
4480
  "user"
4420
4481
  ]);
4421
4482
  ArtifactLifecycleState = Schema.Literals([
@@ -4544,9 +4605,13 @@ var init_feature_registry = __esmMin((() => {
4544
4605
  function getHarnessBehavior(harness) {
4545
4606
  if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
4546
4607
  if (harness === "codex") return CODEX_BEHAVIOR;
4608
+ if (harness === "acp") return ACP_BEHAVIOR;
4547
4609
  return CLAUDE_CODE_BEHAVIOR;
4548
4610
  }
4549
- var CLAUDE_CODE_BEHAVIOR, OHMYPI_BEHAVIOR, CODEX_BEHAVIOR;
4611
+ function getRuntimeBehavior(runtime) {
4612
+ return BEHAVIORS[runtime];
4613
+ }
4614
+ var CLAUDE_CODE_BEHAVIOR, OHMYPI_BEHAVIOR, CODEX_BEHAVIOR, ACP_BEHAVIOR, BEHAVIORS;
4550
4615
  var init_harness_behavior = __esmMin((() => {
4551
4616
  CLAUDE_CODE_BEHAVIOR = {
4552
4617
  displayName: "Claude Code",
@@ -4611,6 +4676,33 @@ var init_harness_behavior = __esmMin((() => {
4611
4676
  workAgentMode: "codex-work-tui",
4612
4677
  readyTimeoutSeconds: 30
4613
4678
  };
4679
+ ACP_BEHAVIOR = {
4680
+ displayName: "ACP",
4681
+ executableName: "acp-host",
4682
+ processNames: ["acp-host", "kimi"],
4683
+ launchCommandKind: "acp-host",
4684
+ deliveryKind: "acp-host-rpc",
4685
+ readinessKind: "acp-host-ready",
4686
+ transcriptKind: "acp-jsonl",
4687
+ sessionIdSource: "acp-session-id",
4688
+ contextLayerKind: "acp",
4689
+ feedKind: "acp",
4690
+ supportsPtySupervisor: false,
4691
+ supportsChannelsBridge: false,
4692
+ supportsConversationStreaming: true,
4693
+ supportsPatchProjection: false,
4694
+ usesRpcFifo: false,
4695
+ usesCodexHome: false,
4696
+ injectsPromptTimeMemory: false,
4697
+ workAgentMode: "acp-host",
4698
+ readyTimeoutSeconds: 30
4699
+ };
4700
+ BEHAVIORS = {
4701
+ "claude-code": CLAUDE_CODE_BEHAVIOR,
4702
+ ohmypi: OHMYPI_BEHAVIOR,
4703
+ codex: CODEX_BEHAVIOR,
4704
+ acp: ACP_BEHAVIOR
4705
+ };
4614
4706
  })), HygieneFinding, HygienePullRequest;
4615
4707
  var init_hygiene = __esmMin((() => {
4616
4708
  HygieneFinding = Schema.Struct({
@@ -4717,6 +4809,7 @@ var init_src = __esmMin((() => {
4717
4809
  init_editor();
4718
4810
  init_flywheel();
4719
4811
  init_flywheel_stats();
4812
+ init_orders();
4720
4813
  init_context_layers();
4721
4814
  init_artifacts();
4722
4815
  init_feature_registry();
@@ -4728,6 +4821,6 @@ var init_src = __esmMin((() => {
4728
4821
  init_issue_sort();
4729
4822
  }));
4730
4823
  //#endregion
4731
- export { projectLegacySystemHealthSummary as C, AgentSnapshot as D, AgentRuntimeSnapshot as E, ReviewStatusSnapshot as O, SystemHealthSnapshot as S, MemoryStatus as T, WS_METHODS as _, OHMYPI_BEHAVIOR as a, EDITORS as b, ContextPreviewRequest as c, applyEvent as d, getMaxTurnDiffSummariesPerAgent as f, PanRpcGroup as g, PanRpcError as h, CODEX_BEHAVIOR as i, normalizeChannelReplyPayload as k, FlywheelStats as l, trimTurnDiffSummaries as m, compareIssueIds as n, getHarnessBehavior as o, isTerminalTurnDiffSummaryStatus as p, CLAUDE_CODE_BEHAVIOR as r, ContextLayerSaveRequest as s, init_src as t, INITIAL_READ_MODEL_STATE as u, FlywheelRunId as v, MemoryObservation as w, DomainEvent as x, FlywheelStatus as y };
4824
+ export { AgentSnapshot as A, EDITORS as C, MemoryObservation as D, projectLegacySystemHealthSummary as E, normalizeChannelReplyPayload as M, MemoryStatus as O, FlywheelStatus as S, SystemHealthSnapshot as T, trimTurnDiffSummaries as _, OHMYPI_BEHAVIOR as a, WS_METHODS as b, ContextLayerSaveRequest as c, OrderBookIndexEntry as d, FlywheelStats as f, isTerminalTurnDiffSummaryStatus as g, getMaxTurnDiffSummariesPerAgent as h, CODEX_BEHAVIOR as i, ReviewStatusSnapshot as j, AgentRuntimeSnapshot as k, ContextPreviewRequest as l, applyEvent as m, compareIssueIds as n, getHarnessBehavior as o, INITIAL_READ_MODEL_STATE as p, CLAUDE_CODE_BEHAVIOR as r, getRuntimeBehavior as s, init_src as t, OrderBook as u, PanRpcError as v, DomainEvent as w, FlywheelRunId as x, PanRpcGroup as y };
4732
4825
 
4733
- //# sourceMappingURL=src-U7_kTPEE.js.map
4826
+ //# sourceMappingURL=src-DtcUOZCq.js.map
@@ -0,0 +1,3 @@
1
+ import { a as getWorkspaceStackHealth, s as init_stack_health } from "./stack-health-DxSdG9cW.js";
2
+ init_stack_health();
3
+ export { getWorkspaceStackHealth };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Tn as init_projects, Yn as init_issue_id, Zn as parseIssueIdSync, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
+ import { Tn as init_projects, Yn as init_issue_id, Zn as parseIssueIdSync, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
4
  import { join } from "node:path";
5
5
  import { Duration, Effect, Schedule, Stream } from "effect";
6
- import { existsSync } from "node:fs";
6
+ import { existsSync, readFileSync } from "node:fs";
7
7
  import { ChildProcess } from "effect/unstable/process";
8
8
  import { execFile } from "node:child_process";
9
9
  import { promisify } from "node:util";
@@ -177,6 +177,52 @@ var init_docker_stats = __esmMin((() => {
177
177
  }));
178
178
  //#endregion
179
179
  //#region ../../lib/workspace/stack-health.ts
180
+ function declaredComposeProjectName(content, featureFolder) {
181
+ const templatedMatch = content.match(/COMPOSE_PROJECT_NAME="([^$"]*)\$\{FEATURE_FOLDER\}"/);
182
+ if (templatedMatch) return `${templatedMatch[1]}${featureFolder}`;
183
+ return content.match(/COMPOSE_PROJECT_NAME="([^"]+)"/)?.[1] ?? null;
184
+ }
185
+ /**
186
+ * Derive the canonical `COMPOSE_PROJECT_NAME` for a workspace. Throws when the
187
+ * workspace declares a name that does not end in the feature folder — a
188
+ * mismatch means `docker compose down` would target the wrong stack.
189
+ * (Lives here rather than in rebuild-stack so health checks can scope
190
+ * container matching without an import cycle.)
191
+ */
192
+ function composeProjectNameForWorkspace(workspacePath, issueId) {
193
+ const featureFolder = `feature-${issueId.toLowerCase()}`;
194
+ const fallback = `overdeck-${featureFolder}`;
195
+ for (const devPath of [join(workspacePath, ".devcontainer", "dev"), join(workspacePath, "dev")]) {
196
+ if (!existsSync(devPath)) continue;
197
+ try {
198
+ const declared = declaredComposeProjectName(readFileSync(devPath, "utf-8"), featureFolder);
199
+ if (!declared) continue;
200
+ if (!declared.endsWith(featureFolder)) throw new Error(`Refusing workspace rebuild: ${devPath} declares COMPOSE_PROJECT_NAME=${declared}, expected a name ending in ${featureFolder}`);
201
+ return declared;
202
+ } catch (err) {
203
+ if (err instanceof Error && err.message.startsWith("Refusing workspace rebuild:")) throw err;
204
+ }
205
+ }
206
+ return fallback;
207
+ }
208
+ /**
209
+ * Best-effort canonical compose project for a workspace — null when the
210
+ * workspace (or its dev file) is missing or declares a conflicting name, in
211
+ * which case callers fall back to name-token matching.
212
+ */
213
+ function tryComposeProjectNameForWorkspace(workspacePath, issueId) {
214
+ if (!workspacePath || !existsSync(workspacePath)) return null;
215
+ try {
216
+ return composeProjectNameForWorkspace(workspacePath, issueId);
217
+ } catch {
218
+ return null;
219
+ }
220
+ }
221
+ /** Extract `com.docker.compose.project` from docker ps's comma-joined Labels. */
222
+ function parseComposeProjectLabel(labels) {
223
+ if (!labels) return void 0;
224
+ return /(?:^|,)com\.docker\.compose\.project=([^,]+)/.exec(labels)?.[1];
225
+ }
180
226
  function normalizeIssue(issueId) {
181
227
  if (!issueId) return "";
182
228
  return parseIssueIdSync(issueId)?.normalized ?? issueId.toLowerCase();
@@ -203,9 +249,14 @@ function escapeRegExp(value) {
203
249
  function hasNameToken(name, token) {
204
250
  return new RegExp(`(^|[-_])${escapeRegExp(token)}($|[-_])`).test(name);
205
251
  }
206
- function isStackContainer(container, issueId) {
252
+ function isStackContainer(container, issueId, composeProjectName) {
253
+ if (composeProjectName && container.composeProject) return container.composeProject === composeProjectName;
254
+ return hasIssueToken(container.name, issueId);
255
+ }
256
+ /** Name-token match: does this container name belong to the issue's stack? */
257
+ function hasIssueToken(containerName, issueId) {
207
258
  const normalized = normalizeIssue(issueId);
208
- const name = container.name.toLowerCase();
259
+ const name = containerName.toLowerCase();
209
260
  return hasNameToken(name, `feature-${normalized}`) || hasNameToken(name, normalized);
210
261
  }
211
262
  function isSuccessfulOneShotContainer(name) {
@@ -236,7 +287,7 @@ function evaluateWorkspaceStackHealth(issueId, projectConfig, containers, option
236
287
  lastObserved
237
288
  };
238
289
  const thresholdMs = options.stuckCreatedThresholdMs ?? 12e4;
239
- const stackContainers = containers.filter((container) => isStackContainer(container, issueId));
290
+ const stackContainers = containers.filter((container) => isStackContainer(container, issueId, options.composeProjectName));
240
291
  const reasons = [];
241
292
  if (stackContainers.length === 0 && options.stackExpected !== false) reasons.push(`No Docker containers found for workspace stack ${normalizeIssue(issueId)}`);
242
293
  for (const container of stackContainers) {
@@ -311,7 +362,8 @@ var init_stack_health = __esmMin((() => {
311
362
  name,
312
363
  status: raw.Status ?? "",
313
364
  state: raw.State,
314
- createdAt: raw.CreatedAt
365
+ createdAt: raw.CreatedAt,
366
+ composeProject: parseComposeProjectLabel(raw.Labels)
315
367
  });
316
368
  } catch {}
317
369
  }
@@ -336,10 +388,12 @@ var init_stack_health = __esmMin((() => {
336
388
  observedAt = observed.toISOString();
337
389
  recordDockerContainerLifecycleSnapshot(containers, observedAt);
338
390
  }
391
+ const workspacePath = options.workspacePath ?? defaultWorkspacePath(issueId, projectConfig);
339
392
  const health = evaluateWorkspaceStackHealth(issueId, projectConfig, containers, {
340
393
  now: options.now,
341
394
  stuckCreatedThresholdMs: options.stuckCreatedThresholdMs,
342
- stackExpected: options.stackExpected ?? isWorkspaceStackExpected(issueId, projectConfig, options.workspacePath)
395
+ stackExpected: options.stackExpected ?? isWorkspaceStackExpected(issueId, projectConfig, options.workspacePath),
396
+ composeProjectName: tryComposeProjectNameForWorkspace(workspacePath, issueId)
343
397
  });
344
398
  const observedHealth = observedAt && !options.now ? {
345
399
  ...health,
@@ -350,6 +404,6 @@ var init_stack_health = __esmMin((() => {
350
404
  });
351
405
  }));
352
406
  //#endregion
353
- export { init_stack_health as a, init_docker_stats as c, getWorkspaceStackHealth as i, recordDockerContainerLifecycleSnapshot as l, collectDockerContainerLifecycleSnapshot as n, recordWorkspaceStackHealthTransition as o, evaluateWorkspaceStackHealth as r, DockerStatsCollector as s, DEFAULT_STUCK_CREATED_THRESHOLD_MS as t };
407
+ export { getWorkspaceStackHealth as a, recordWorkspaceStackHealthTransition as c, init_docker_stats as d, recordDockerContainerLifecycleSnapshot as f, evaluateWorkspaceStackHealth as i, tryComposeProjectNameForWorkspace as l, collectDockerContainerLifecycleSnapshot as n, hasIssueToken as o, composeProjectNameForWorkspace as r, init_stack_health as s, DEFAULT_STUCK_CREATED_THRESHOLD_MS as t, DockerStatsCollector as u };
354
408
 
355
- //# sourceMappingURL=stack-health-puygdaMd.js.map
409
+ //# sourceMappingURL=stack-health-DxSdG9cW.js.map
@@ -1,6 +1,6 @@
1
- import { Nt as readIssueRecordSync, Ot as init_record, Tn as init_projects, kn as listProjectsSync, wt as getIssueRecordPath } from "./config-yaml-DvyMuOle.js";
2
- import { a as isPidDead, i as init_fs_lock, n as updateIssueRecord, t as init_record_update } from "./record-update-Dq0t2uBG.js";
3
- import { c as listAllAgentsSync, o as init_agents } from "./agents-B4Bjbkfv.js";
1
+ import { Nt as readIssueRecordSync, Ot as init_record, Tn as init_projects, kn as listProjectsSync, wt as getIssueRecordPath } from "./config-yaml-DySPNmKN.js";
2
+ import { a as isPidDead, i as init_fs_lock, n as updateIssueRecord, t as init_record_update } from "./record-update-dE1Aw83j.js";
3
+ import { c as listAllAgentsSync, o as init_agents } from "./agents-EbI0zCJl.js";
4
4
  import { dirname } from "node:path";
5
5
  import { hostname } from "node:os";
6
6
  import { readdirSync } from "node:fs";
@@ -66,4 +66,4 @@ async function patrolStaleTaskClaims() {
66
66
  //#endregion
67
67
  export { patrolStaleTaskClaims };
68
68
 
69
- //# sourceMappingURL=stale-task-claims-BbFwCTb0.js.map
69
+ //# sourceMappingURL=stale-task-claims-KJKxxiiQ.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-Bpy41ngS.js";
1
+ import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-DPm7ClwA.js";
2
2
  init_staleness();
3
3
  export { BUILD_INPUT_PATHS, _resetForTests, computeBuildStaleness };
@@ -141,4 +141,4 @@ var init_staleness = __esmMin((() => {
141
141
  //#endregion
142
142
  export { init_staleness as i, _resetForTests as n, computeBuildStaleness as r, BUILD_INPUT_PATHS as t };
143
143
 
144
- //# sourceMappingURL=staleness-Bpy41ngS.js.map
144
+ //# sourceMappingURL=staleness-DPm7ClwA.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Kt as STATE_BRANCH_PATHS, Ln as resolveInfraRepo, Tn as init_projects, Vr as init_paths, Yt as init_state_plane, an as init_project_key, on as projectKey } from "./config-yaml-DvyMuOle.js";
2
+ import { Br as getOverdeckHome, Kt as STATE_BRANCH_PATHS, Ln as resolveInfraRepo, Tn as init_projects, Vr as init_paths, Yt as init_state_plane, an as init_project_key, on as projectKey } from "./config-yaml-DySPNmKN.js";
3
3
  import { dirname, join } from "node:path";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
  import { mkdir, rm } from "node:fs/promises";
@@ -273,4 +273,4 @@ var init_state_home = __esmMin((() => {
273
273
  //#endregion
274
274
  export { findRecreatedLegacyStatePaths as a, isStateMigrated as c, ensureStateWorktree as i, stateWorktreePath as l, STATE_BRANCH as n, init_state_home as o, clearStateMigrationCache as r, inspectStateMigration as s, MIGRATION_COMPLETE_MARKER as t };
275
275
 
276
- //# sourceMappingURL=state-home-CIGjwNfJ.js.map
276
+ //# sourceMappingURL=state-home-Cn_Qu8IX.js.map