@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,6 +1,6 @@
1
- import { $t as acquireStateMigrationLock, Ht as flushAutoCommits, Kt as STATE_BRANCH_PATHS, Ln as resolveInfraRepo, Tn as init_projects, Ut as init_auto_commit, Yt as init_state_plane, en as init_state_migration_lock, yn as getProjectSync } from "./config-yaml-DvyMuOle.js";
2
- import { o as init_lifecycle } from "./lifecycle-DfeyBDwA.js";
3
- import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-CIGjwNfJ.js";
1
+ import { $t as acquireStateMigrationLock, Ht as flushAutoCommits, Kt as STATE_BRANCH_PATHS, Ln as resolveInfraRepo, Tn as init_projects, Ut as init_auto_commit, Yt as init_state_plane, en as init_state_migration_lock, yn as getProjectSync } from "./config-yaml-DySPNmKN.js";
2
+ import { o as init_lifecycle } from "./lifecycle-yPd___5E.js";
3
+ import { l as stateWorktreePath, n as STATE_BRANCH, o as init_state_home, r as clearStateMigrationCache, t as MIGRATION_COMPLETE_MARKER } from "./state-home-Cn_Qu8IX.js";
4
4
  import { dirname, join } from "node:path";
5
5
  import { Effect } from "effect";
6
6
  import { tmpdir } from "node:os";
@@ -484,4 +484,4 @@ async function migrateProjectState(projectKey, options = {}, projectOverride) {
484
484
  //#endregion
485
485
  export { migrateProjectState };
486
486
 
487
- //# sourceMappingURL=state-migrate-Dkzaxvny.js.map
487
+ //# sourceMappingURL=state-migrate-BGg2ZaOt.js.map
@@ -1,33 +1,34 @@
1
- import { Br as getOverdeckHome, Jn as extractPrefixSync, Nr as encodeClaudeProjectDir, Tn as init_projects, Vr as init_paths, Yn as init_issue_id, dr as TmuxError, ir as FsError, mr as init_errors, zn as resolveProjectFromIssueSync } from "./config-yaml-DvyMuOle.js";
2
- import { O as killSessionSync, U as sessionExistsSync, a as capturePaneSync, i as capturePane, j as listPaneValuesSync, u as detectTerminalApiErrorSync, w as init_tmux, z as sendKeys } from "./tmux-ftABRAmc.js";
3
- import { r as CLAUDE_CODE_BEHAVIOR } from "./src-U7_kTPEE.js";
4
- import { c as getReviewStatusSync, l as init_review_status } from "./review-status-A7quS5KJ.js";
5
- import { Bn as getAgentDir, Cr as getAgentRuntimeStateSync, G as resumeAgent, Qn as markAgentTroubled, Sr as getAgentRuntimeState, Tr as saveAgentRuntimeState, Wn as getAgentStateSync, X as messageAgent, a as listRunningAgentsSync, b as init_agents, ir as saveAgentStateSync, it as init_activity, lt as spawnAgent, nt as getLatestSessionIdSync, ot as createOhmypiRuntimeSync, st as init_ohmypi, un as init_pi_fifo, vn as determineModel } from "./queries-6d7Cdtm7.js";
6
- import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-CVZDpS3c.js";
7
- import { t as init_behavior } from "./behavior-B_-4EKF3.js";
8
- import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-B4itFzDo.js";
9
- import { m as readWorkspacePlanSync, o as init_io } from "./io-B3_AHDfr.js";
10
- import { n as init_launcher_generator } from "./launcher-generator-CHVm7bGT.js";
11
- import { i as createCodexRuntimeSync, l as init_codex } from "./codex-TmSi-yTv.js";
12
- import { n as init_harness_binary } from "./harness-binary-CVio2m-u.js";
13
- import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-aP1ANIlI.js";
14
- import { l as init_dag, o as getDispatchableItems } from "./dag-CdOjJVDT.js";
15
- import { a as loadCloisterConfigSync, r as init_config, t as DEFAULT_CLOISTER_CONFIG } from "./config-DjLOdbgT.js";
16
- import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-Dhflo1SH.js";
17
- import { t as recordRecoveryFailure } from "./recovery-trip-BJtIQuag.js";
18
- import "node:path";
1
+ import { Br as getOverdeckHome, Jn as extractPrefixSync, Nr as encodeClaudeProjectDir, Tn as init_projects, Ur as packageRoot, Vr as init_paths, Yn as init_issue_id, dr as TmuxError, ir as FsError, mr as init_errors, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { O as killSessionSync, U as sessionExistsSync, a as capturePaneSync, i as capturePane, j as listPaneValuesSync, u as detectTerminalApiErrorSync, w as init_tmux, z as sendKeys } from "./tmux-R7N7y-Mh.js";
3
+ import { r as CLAUDE_CODE_BEHAVIOR, s as getRuntimeBehavior } from "./src-DtcUOZCq.js";
4
+ import { c as getReviewStatusSync, l as init_review_status } from "./review-status-kZj_KyCk.js";
5
+ import { Ar as saveAgentRuntimeState, Dr as getAgentRuntimeState, G as resumeAgent, Gn as getAgentDir, Lt as BRIDGE_TOKEN_HEADER, Or as getAgentRuntimeStateSync, Rt as init_bridge_token, Sn as determineModel, X as messageAgent, Yn as getAgentStateSync, _n as materializeAcpContextFile, a as listRunningAgentsSync, b as init_agents, fn as init_pi_fifo, gn as init_context, it as init_activity, lr as saveAgentStateSync, lt as spawnAgent, n as init_queries, nt as getLatestSessionIdSync, ot as createOhmypiRuntimeSync, r as listAgentStates, rr as markAgentTroubled, st as init_ohmypi } from "./queries-CjNIf-Ub.js";
6
+ import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-BT3IvqhC.js";
7
+ import { t as init_behavior } from "./behavior-B3exJ42O.js";
8
+ import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-G6latr8C.js";
9
+ import { m as readWorkspacePlanSync, o as init_io } from "./io-C9kF1wtJ.js";
10
+ import { n as init_launcher_generator } from "./launcher-generator-BBWG_SiS.js";
11
+ import { _ as tmuxKillSession, g as tmuxCreateSession, h as init_tmux_cli, i as createCodexRuntimeSync, l as init_codex, v as tmuxSessionExists } from "./codex-BZXGhUVB.js";
12
+ import { i as prepareHarnessLaunch, r as init_harness_binary } from "./harness-binary-DPUi-Pv8.js";
13
+ import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-BQp7_4uD.js";
14
+ import { l as init_dag, o as getDispatchableItems } from "./dag-B1ucnjDU.js";
15
+ import { a as loadCloisterConfigSync, r as init_config, t as DEFAULT_CLOISTER_CONFIG } from "./config-CKxYiCmX.js";
16
+ import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-BXSlHwEh.js";
17
+ import { t as recordRecoveryFailure } from "./recovery-trip-BvRWfUXM.js";
18
+ import { join } from "node:path";
19
19
  import { Effect } from "effect";
20
20
  import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
21
21
  import { join as join$1 } from "path";
22
22
  import { homedir } from "os";
23
23
  import "node:os";
24
- import "node:fs";
24
+ import { existsSync as existsSync$1, readFileSync as readFileSync$1, rmSync as rmSync$1, statSync as statSync$1 } from "node:fs";
25
25
  import { readFile, readdir, stat as stat$1 } from "fs/promises";
26
26
  import { exec } from "node:child_process";
27
27
  import { promisify } from "node:util";
28
28
  import { exec as exec$1 } from "child_process";
29
29
  import { promisify as promisify$1 } from "util";
30
30
  import "node:crypto";
31
+ import { request } from "node:http";
31
32
  //#region ../../lib/agent-input-detection.ts
32
33
  init_paths();
33
34
  init_issue_id();
@@ -36,13 +37,16 @@ init_behavior();
36
37
  init_persistent_logger();
37
38
  init_review_status();
38
39
  init_io();
40
+ init_tmux_cli();
39
41
  init_harness_binary();
40
42
  init_codex();
41
43
  init_launcher_generator();
42
44
  init_dag();
45
+ init_bridge_token();
43
46
  init_ohmypi();
44
47
  init_activity();
45
48
  init_agents();
49
+ init_queries();
46
50
  init_tmux();
47
51
  init_errors();
48
52
  const ANSI_PATTERN = /\x1b\[[0-9;?]*[ -/]*[@-~]/g;
@@ -303,7 +307,7 @@ function parseCodexApprovalPrompt(text) {
303
307
  */
304
308
  init_errors();
305
309
  init_tracker_config();
306
- const execAsync$1 = promisify$1(exec$1);
310
+ const execAsync$2 = promisify$1(exec$1);
307
311
  function appendPaneDetectionKind(detection, kinds) {
308
312
  if (detection?.reason === "session_resume" && !kinds.includes("sessionResume")) kinds.push("sessionResume");
309
313
  if (detection?.reason === "rate_limit" && !kinds.includes("rateLimit")) kinds.push("rateLimit");
@@ -357,7 +361,7 @@ async function getAgentWorkspacePromise(agentId) {
357
361
  const workspace = getAgentStateSync(agentId)?.workspace;
358
362
  if (workspace) return workspace;
359
363
  try {
360
- const { stdout: paneCwd } = await execAsync$1(`tmux display-message -t ${agentId} -p '#{pane_current_path}' 2>/dev/null`, { encoding: "utf-8" });
364
+ const { stdout: paneCwd } = await execAsync$2(`tmux display-message -t ${agentId} -p '#{pane_current_path}' 2>/dev/null`, { encoding: "utf-8" });
361
365
  const trimmed = paneCwd.trim();
362
366
  if (trimmed && existsSync(trimmed)) return trimmed;
363
367
  } catch {}
@@ -986,6 +990,277 @@ init_errors();
986
990
  init_paths();
987
991
  promisify(exec);
988
992
  //#endregion
993
+ //#region ../../lib/runtimes/acp.ts
994
+ init_context();
995
+ init_harness_binary();
996
+ init_paths();
997
+ init_behavior();
998
+ const execAsync = promisify(exec);
999
+ const HOST_REQUEST_TIMEOUT_MS = 5e3;
1000
+ const SPAWN_READY_TIMEOUT_MS = 3e4;
1001
+ const POLL_INTERVAL_MS = 100;
1002
+ var AcpSpawnTimeout = class extends Error {
1003
+ code = "ACP_SPAWN_TIMEOUT";
1004
+ constructor(agentId) {
1005
+ super(`ACP agent ${agentId} did not write acp-session-id within ${SPAWN_READY_TIMEOUT_MS}ms`);
1006
+ this.name = "AcpSpawnTimeout";
1007
+ }
1008
+ };
1009
+ var AcpRuntimeSync = class {
1010
+ name = "acp";
1011
+ provider;
1012
+ overdeckHome;
1013
+ execCommand;
1014
+ prepareLaunch;
1015
+ resolveAgentStates;
1016
+ constructor(options = {}) {
1017
+ this.provider = options.provider ?? "kimi";
1018
+ this.overdeckHome = options.overdeckHome;
1019
+ this.execCommand = options.execCommand ?? execAsync;
1020
+ this.prepareLaunch = options.prepareLaunch ?? (() => prepareHarnessLaunch("acp"));
1021
+ this.resolveAgentStates = options.listAgentStates ?? (() => listAgentStates());
1022
+ }
1023
+ getHarnessBehavior() {
1024
+ return getRuntimeBehavior("acp");
1025
+ }
1026
+ getSessionPath(agentId) {
1027
+ return join(this.home(), "agents", agentId, "acp-session.jsonl");
1028
+ }
1029
+ getLastActivity(agentId) {
1030
+ try {
1031
+ return statSync$1(this.getSessionPath(agentId)).mtime;
1032
+ } catch {
1033
+ return null;
1034
+ }
1035
+ }
1036
+ getHeartbeat(agentId) {
1037
+ const lastActivity = this.getLastActivity(agentId);
1038
+ if (!lastActivity) return null;
1039
+ return {
1040
+ timestamp: lastActivity,
1041
+ agentId,
1042
+ source: "jsonl",
1043
+ confidence: "medium"
1044
+ };
1045
+ }
1046
+ getTokenUsage(_agentId) {
1047
+ return null;
1048
+ }
1049
+ getSessionCost(_agentId) {
1050
+ return null;
1051
+ }
1052
+ async sendMessage(agentId, message) {
1053
+ const socketPath = this.socketPath(agentId);
1054
+ if (!existsSync$1(socketPath)) throw new Error(`ACP agent ${agentId}: host socket is not available`);
1055
+ const token = this.readToken(agentId);
1056
+ if (!token) throw new Error(`ACP agent ${agentId}: missing acp-token`);
1057
+ await postUnixSocketJson(socketPath, token, {
1058
+ op: "message",
1059
+ content: message
1060
+ }, HOST_REQUEST_TIMEOUT_MS);
1061
+ }
1062
+ async killAgent(agentId) {
1063
+ const socketPath = this.socketPath(agentId);
1064
+ const token = this.readToken(agentId);
1065
+ if (existsSync$1(socketPath) && token) try {
1066
+ await postUnixSocketJson(socketPath, token, { op: "interrupt" }, HOST_REQUEST_TIMEOUT_MS);
1067
+ } catch {}
1068
+ if (await pollUntilSessionGone(agentId, 2e3)) return;
1069
+ let panePid = null;
1070
+ try {
1071
+ const { stdout } = await this.execCommand(`tmux -L overdeck list-panes -t ${shellQuote(agentId)} -F '#{pane_pid}' 2>/dev/null`);
1072
+ panePid = stdout.trim() || null;
1073
+ if (panePid) await this.execCommand(`kill -TERM -- -${panePid} 2>/dev/null || kill -TERM ${panePid} 2>/dev/null || true`);
1074
+ } catch {}
1075
+ if (await pollUntilSessionGone(agentId, 5e3)) return;
1076
+ if (panePid) try {
1077
+ await this.execCommand(`kill -KILL -- -${panePid} 2>/dev/null || kill -KILL ${panePid} 2>/dev/null || true`);
1078
+ } catch {}
1079
+ if (await tmuxSessionExists(agentId)) await tmuxKillSession(agentId);
1080
+ }
1081
+ async spawnAgent(config) {
1082
+ const provider = config.provider ?? this.provider;
1083
+ const { binaryPath } = await this.prepareLaunch();
1084
+ const contextFile = materializeAcpContextFile(join(this.home(), "agents", config.agentId), config.workspace);
1085
+ const command = [
1086
+ "node",
1087
+ shellQuote(join(packageRoot, "dist", "acp-host.js")),
1088
+ "--agent",
1089
+ shellQuote(config.agentId),
1090
+ "--provider",
1091
+ shellQuote(provider),
1092
+ "--workspace",
1093
+ shellQuote(config.workspace),
1094
+ "--binary-path",
1095
+ shellQuote(binaryPath),
1096
+ "--context-file",
1097
+ shellQuote(contextFile)
1098
+ ];
1099
+ if (config.sessionId) command.push("--resume", shellQuote(config.sessionId));
1100
+ if (config.model) command.push("--model", shellQuote(config.model));
1101
+ rmSync$1(this.agentPath(config.agentId, "acp-session-id"), { force: true });
1102
+ rmSync$1(this.agentPath(config.agentId, "acp-launch-error"), { force: true });
1103
+ await tmuxCreateSession(config.agentId, config.workspace, command.join(" "), {
1104
+ ...config.env,
1105
+ OVERDECK_AGENT_ID: config.agentId
1106
+ });
1107
+ try {
1108
+ const sessionId = await this.waitForSessionId(config.agentId);
1109
+ if (!sessionId) throw new AcpSpawnTimeout(config.agentId);
1110
+ if (config.prompt) await this.sendMessage(config.agentId, config.prompt);
1111
+ return {
1112
+ id: config.agentId,
1113
+ sessionId,
1114
+ runtime: "acp",
1115
+ model: config.model ?? "",
1116
+ workspace: config.workspace,
1117
+ startedAt: /* @__PURE__ */ new Date()
1118
+ };
1119
+ } catch (error) {
1120
+ if (await tmuxSessionExists(config.agentId)) await tmuxKillSession(config.agentId);
1121
+ throw error;
1122
+ }
1123
+ }
1124
+ listSessions(workspace) {
1125
+ const sessions = [];
1126
+ for (const state of this.resolveAgentStates()) {
1127
+ if (state.harness !== "acp") continue;
1128
+ if (workspace && state.workspace !== workspace) continue;
1129
+ const sessionId = this.readSessionId(state.id);
1130
+ if (!sessionId) continue;
1131
+ const sessionPath = this.getSessionPath(state.id);
1132
+ let lastActivity;
1133
+ try {
1134
+ lastActivity = statSync$1(sessionPath).mtime;
1135
+ } catch {
1136
+ try {
1137
+ lastActivity = statSync$1(this.agentPath(state.id, "acp-session-id")).mtime;
1138
+ } catch {
1139
+ continue;
1140
+ }
1141
+ }
1142
+ sessions.push({
1143
+ id: sessionId,
1144
+ agentId: state.id,
1145
+ workspace: state.workspace,
1146
+ model: state.model ?? "",
1147
+ startedAt: new Date(state.startedAt),
1148
+ lastActivity,
1149
+ tokenUsage: {
1150
+ inputTokens: 0,
1151
+ outputTokens: 0
1152
+ }
1153
+ });
1154
+ }
1155
+ return sessions;
1156
+ }
1157
+ async isRunning(agentId) {
1158
+ return tmuxSessionExists(agentId);
1159
+ }
1160
+ home() {
1161
+ return this.overdeckHome ?? getOverdeckHome();
1162
+ }
1163
+ agentPath(agentId, file) {
1164
+ return join(this.home(), "agents", agentId, file);
1165
+ }
1166
+ socketPath(agentId) {
1167
+ return join(this.home(), "sockets", `acp-${agentId}.sock`);
1168
+ }
1169
+ readToken(agentId) {
1170
+ try {
1171
+ return readFileSync$1(this.agentPath(agentId, "acp-token"), "utf8").trim() || null;
1172
+ } catch {
1173
+ return null;
1174
+ }
1175
+ }
1176
+ readLaunchError(agentId) {
1177
+ try {
1178
+ return readFileSync$1(this.agentPath(agentId, "acp-launch-error"), "utf8").trim() || null;
1179
+ } catch {
1180
+ return null;
1181
+ }
1182
+ }
1183
+ readSessionId(agentId) {
1184
+ try {
1185
+ return readFileSync$1(this.agentPath(agentId, "acp-session-id"), "utf8").trim() || null;
1186
+ } catch {
1187
+ return null;
1188
+ }
1189
+ }
1190
+ async waitForSessionId(agentId) {
1191
+ const deadline = Date.now() + SPAWN_READY_TIMEOUT_MS;
1192
+ while (Date.now() < deadline) {
1193
+ const launchError = this.readLaunchError(agentId);
1194
+ if (launchError) throw new Error(`ACP host ${agentId} failed to start: ${launchError}`);
1195
+ const sessionId = this.readSessionId(agentId);
1196
+ if (sessionId) return sessionId;
1197
+ await delay(POLL_INTERVAL_MS);
1198
+ }
1199
+ return null;
1200
+ }
1201
+ };
1202
+ async function pollUntilSessionGone(agentId, timeoutMs) {
1203
+ const deadline = Date.now() + timeoutMs;
1204
+ while (Date.now() < deadline) {
1205
+ if (!await tmuxSessionExists(agentId)) return true;
1206
+ await delay(POLL_INTERVAL_MS);
1207
+ }
1208
+ return false;
1209
+ }
1210
+ function delay(ms) {
1211
+ return new Promise((resolve) => setTimeout(resolve, ms));
1212
+ }
1213
+ function shellQuote(value) {
1214
+ return `'${value.replace(/'/g, `'\\''`)}'`;
1215
+ }
1216
+ function postUnixSocketJson(socketPath, token, body, timeoutMs) {
1217
+ return new Promise((resolve, reject) => {
1218
+ let settled = false;
1219
+ let timeout;
1220
+ const finish = (callback) => {
1221
+ if (settled) return;
1222
+ settled = true;
1223
+ if (timeout) clearTimeout(timeout);
1224
+ callback();
1225
+ };
1226
+ const client = request({
1227
+ socketPath,
1228
+ path: "/",
1229
+ method: "POST",
1230
+ headers: {
1231
+ "content-type": "application/json",
1232
+ [BRIDGE_TOKEN_HEADER]: token
1233
+ }
1234
+ }, (response) => {
1235
+ const chunks = [];
1236
+ response.on("data", (chunk) => chunks.push(chunk));
1237
+ response.on("end", () => {
1238
+ const responseBody = Buffer.concat(chunks).toString("utf8");
1239
+ const status = response.statusCode ?? 0;
1240
+ if (status < 200 || status >= 300) {
1241
+ finish(() => reject(/* @__PURE__ */ new Error(`ACP host returned HTTP ${status}: ${responseBody}`)));
1242
+ return;
1243
+ }
1244
+ finish(() => resolve({
1245
+ status,
1246
+ body: responseBody
1247
+ }));
1248
+ });
1249
+ });
1250
+ if (timeoutMs !== void 0) {
1251
+ timeout = setTimeout(() => {
1252
+ client.destroy(/* @__PURE__ */ new Error(`ACP host request timed out after ${timeoutMs}ms`));
1253
+ }, timeoutMs);
1254
+ timeout.unref?.();
1255
+ }
1256
+ client.once("error", (error) => finish(() => reject(error)));
1257
+ client.end(JSON.stringify(body));
1258
+ });
1259
+ }
1260
+ function createAcpRuntimeSync(options = {}) {
1261
+ return new AcpRuntimeSync(options);
1262
+ }
1263
+ //#endregion
989
1264
  //#region ../../lib/runtimes/index.ts
990
1265
  init_behavior();
991
1266
  init_agents();
@@ -1028,6 +1303,7 @@ var RuntimeRegistry = class {
1028
1303
  const harness = state.harness;
1029
1304
  if (harness === "ohmypi" || harness === "pi") return this.get("ohmypi") ?? null;
1030
1305
  if (harness === "codex") return this.get("codex") ?? null;
1306
+ if (harness === "acp") return this.get("acp") ?? null;
1031
1307
  return this.get("claude-code") ?? null;
1032
1308
  }
1033
1309
  };
@@ -1047,6 +1323,7 @@ function getGlobalRegistry() {
1047
1323
  globalRegistry.register(createClaudeCodeRuntimeSync());
1048
1324
  globalRegistry.register(createOhmypiRuntimeSync());
1049
1325
  globalRegistry.register(createCodexRuntimeSync());
1326
+ globalRegistry.register(createAcpRuntimeSync());
1050
1327
  }
1051
1328
  return globalRegistry;
1052
1329
  }
@@ -1421,7 +1698,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
1421
1698
  now
1422
1699
  });
1423
1700
  if (decision.kind === "noop") return;
1424
- const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-DMCUzDWg.js");
1701
+ const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-SVF02Jpq.js");
1425
1702
  const prev = readStuckRemediationState(agentId);
1426
1703
  const nowIso = new Date(now).toISOString();
1427
1704
  if (decision.kind === "escalate") {
@@ -1527,4 +1804,4 @@ async function checkStuckAgentRemediation(opts = {}) {
1527
1804
  //#endregion
1528
1805
  export { parseCodexApprovalPrompt as _, isAgentIdleForNudge as a, countPendingAskUserQuestionsForAgent as c, getAgentPendingQuestions as d, getAgentWorkspace as f, normalizeAwaitingInputPrompt as g, detectAwaitingInputFromPaneSync as h, shouldSkipReviewStatus as i, getAgentJsonlMtime as l, detectAwaitingInputForAgent as m, decideFlywheelRemediation as n, getRuntimeForAgent as o, scanPendingInputsPromise as p, shouldSkipIdlePokeForAgent as r, computeAgentEnrichment as s, checkStuckAgentRemediation as t, getAgentJsonlPath as u };
1529
1806
 
1530
- //# sourceMappingURL=stuck-remediation-CzEov_fq.js.map
1807
+ //# sourceMappingURL=stuck-remediation-DYuPRYYw.js.map
@@ -1,2 +1,2 @@
1
- import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CzEov_fq.js";
1
+ import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-DYuPRYYw.js";
2
2
  export { shouldSkipIdlePokeForAgent };
@@ -1,5 +1,5 @@
1
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CzaSOgul.js";
2
- import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-tdiY5eDZ.js";
1
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
2
+ import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-CQL6NeqB.js";
3
3
  //#region ../../lib/overdeck/flywheel-substrate-bugs.ts
4
4
  init_infra();
5
5
  function parseAffectedCriteriaColumn(value) {
@@ -871,4 +871,4 @@ async function listSubstrateBugWeights(window = "30d", deps = {}) {
871
871
  //#endregion
872
872
  export { getByIssueId as a, parseFlywheelStatsWindow as i, derivePipelineRunStatsInputs as n, markFixed as o, computeFlywheelStats as r, upsert as s, listSubstrateBugWeights as t };
873
873
 
874
- //# sourceMappingURL=substrate-bug-weights-service-BH66lhm7.js.map
874
+ //# sourceMappingURL=substrate-bug-weights-service-B-FwCs5V.js.map
@@ -1,13 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Gr as sessionFilePath, Rr as getHandoffsDir, Ur as packageRoot, Vr as init_paths, f as loadConfigSync, ir as FsError, mr as init_errors, t as init_config_yaml } from "./config-yaml-DvyMuOle.js";
3
- import { b as init_agents, kt as deliverAgentMessage } from "./queries-6d7Cdtm7.js";
4
- import { k as init_conversations } from "./conversations-DbOs1e9Q.js";
5
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-puygdaMd.js";
6
- import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-r4pHQBIr.js";
2
+ import { Br as getOverdeckHome, Gr as sessionFilePath, Rr as getHandoffsDir, Ur as packageRoot, Vr as init_paths, f as loadConfigSync, ir as FsError, mr as init_errors, t as init_config_yaml } from "./config-yaml-DySPNmKN.js";
3
+ import { b as init_agents, kt as deliverAgentMessage } from "./queries-CjNIf-Ub.js";
4
+ import { k as init_conversations } from "./conversations-6AfUfbwc.js";
5
+ import { a as getWorkspaceStackHealth, s as init_stack_health } from "./stack-health-DxSdG9cW.js";
6
+ import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-KCYScAU1.js";
7
7
  import { join } from "node:path";
8
8
  import { Effect } from "effect";
9
9
  import { join as join$1 } from "path";
10
- import { homedir } from "node:os";
11
10
  import { existsSync } from "node:fs";
12
11
  import { access, readFile, readdir, writeFile } from "node:fs/promises";
13
12
  import { mkdir as mkdir$1 } from "fs/promises";
@@ -24,6 +23,8 @@ import "node:crypto";
24
23
  * - Pi records have top-level `type: 'message'|'session'|'model_change'|
25
24
  * 'thinking_level_change'|...`, with the user/assistant role nested in
26
25
  * `entry.message.role` and blocks of type `text|thinking|toolCall|toolResult`.
26
+ * - ACP records have top-level `role`, `content`, and optional normalized
27
+ * `toolCalls` written by the persistent ACP host.
27
28
  * - Future harnesses (Codex, etc.) will have their own shapes.
28
29
  *
29
30
  * The handoff authoring pipeline doesn't care about any of that. It needs
@@ -43,7 +44,7 @@ import "node:crypto";
43
44
  * ISO timestamp prefix so this is deterministic.
44
45
  */
45
46
  async function resolvePiSessionFileFromTmux(tmuxSession) {
46
- const sessionDir = join(homedir(), ".overdeck", "agents", tmuxSession, "sessions");
47
+ const sessionDir = join(getOverdeckHome(), "agents", tmuxSession, "sessions");
47
48
  if (!existsSync(sessionDir)) return null;
48
49
  try {
49
50
  const entries = (await readdir(sessionDir)).filter((name) => name.endsWith(".jsonl"));
@@ -75,6 +76,28 @@ function serializePiEntry(entry, includeThinking) {
75
76
  if (lines.length === 1) return void 0;
76
77
  return lines.join("\n");
77
78
  }
79
+ function truncateAcpToolDetail(value) {
80
+ return value.length > ACP_TOOL_DETAIL_MAX_CHARS ? `${value.slice(0, ACP_TOOL_DETAIL_MAX_CHARS)}…` : value;
81
+ }
82
+ function serializeAcpToolCall(toolCall) {
83
+ const name = toolCall.title?.trim() || toolCall.kind?.trim();
84
+ if (!name) return void 0;
85
+ const lines = [`[tool_use: ${name}${toolCall.status ? ` (${toolCall.status})` : ""}]`];
86
+ if (toolCall.command?.trim()) lines.push(`$ ${truncateAcpToolDetail(toolCall.command.trim())}`);
87
+ if (toolCall.detail?.trim()) lines.push(truncateAcpToolDetail(toolCall.detail.trim()));
88
+ return lines.join("\n");
89
+ }
90
+ function serializeAcpEntry(entry) {
91
+ if (entry.role !== "user" && entry.role !== "assistant" && entry.role !== "tool" && entry.role !== "system") return;
92
+ const lines = [`[${entry.role}]`];
93
+ if (typeof entry.content === "string" && entry.content.trim()) lines.push(entry.content);
94
+ if (Array.isArray(entry.toolCalls)) for (const toolCall of entry.toolCalls) {
95
+ if (!toolCall || typeof toolCall !== "object") continue;
96
+ const serialized = serializeAcpToolCall(toolCall);
97
+ if (serialized) lines.push(serialized);
98
+ }
99
+ return lines.length > 1 ? lines.join("\n") : void 0;
100
+ }
78
101
  /**
79
102
  * Look up the transcript adapter for a harness. Unknown harnesses default to
80
103
  * the Claude Code adapter — that matches the conservative behavior of the rest
@@ -83,7 +106,7 @@ function serializePiEntry(entry, includeThinking) {
83
106
  function getTranscriptAdapter(harness) {
84
107
  return REGISTRY[harness ?? "claude-code"] ?? claudeCodeAdapter;
85
108
  }
86
- var claudeCodeAdapter, piAdapter, REGISTRY;
109
+ var claudeCodeAdapter, piAdapter, ACP_TOOL_DETAIL_MAX_CHARS, acpAdapter, REGISTRY;
87
110
  var init_transcript_adapter = __esmMin((() => {
88
111
  init_paths();
89
112
  init_smart_compaction();
@@ -155,10 +178,53 @@ var init_transcript_adapter = __esmMin((() => {
155
178
  };
156
179
  }
157
180
  };
181
+ ACP_TOOL_DETAIL_MAX_CHARS = 500;
182
+ acpAdapter = {
183
+ name: "acp",
184
+ supportsPlainForkAsSource: false,
185
+ supportsSourceAuthoredHandoff: false,
186
+ async resolveSessionFile(conv) {
187
+ const path = join(getOverdeckHome(), "agents", conv.tmuxSession, "acp-session.jsonl");
188
+ return existsSync(path) ? path : null;
189
+ },
190
+ async serializeTranscript(sessionFile) {
191
+ const content = await readFile(sessionFile, "utf-8");
192
+ const parts = [];
193
+ for (const line of content.split("\n")) {
194
+ if (!line.trim()) continue;
195
+ let entry;
196
+ try {
197
+ entry = JSON.parse(line);
198
+ } catch {
199
+ continue;
200
+ }
201
+ const serialized = serializeAcpEntry(entry);
202
+ if (serialized) parts.push(serialized);
203
+ }
204
+ return parts.join("\n\n");
205
+ },
206
+ async compactSummary(sessionFile, options) {
207
+ const serialized = await acpAdapter.serializeTranscript(sessionFile);
208
+ if (!serialized.trim()) return {
209
+ summary: "",
210
+ summaryModel: null
211
+ };
212
+ return {
213
+ summary: await summarizeSerializedText(serialized, {
214
+ model: options?.model,
215
+ richMode: options?.richMode ?? false,
216
+ harness: options?.harness ?? "claude-code",
217
+ timeoutMs: options?.timeoutMs
218
+ }),
219
+ summaryModel: options?.model ?? null
220
+ };
221
+ }
222
+ };
158
223
  REGISTRY = {
159
224
  "claude-code": claudeCodeAdapter,
160
225
  "ohmypi": piAdapter,
161
- "codex": claudeCodeAdapter
226
+ "codex": claudeCodeAdapter,
227
+ "acp": acpAdapter
162
228
  };
163
229
  }));
164
230
  //#endregion
@@ -442,11 +508,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
442
508
  }
443
509
  }
444
510
  async function reserveSummaryForkSessionPromise(cwd) {
445
- const { reserveForkSession } = await import("./session-fork-BQ8_6H32.js");
511
+ const { reserveForkSession } = await import("./session-fork-CHI1XvL9.js");
446
512
  return reserveForkSession(cwd);
447
513
  }
448
514
  async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
449
- const { copySessionForFork } = await import("./session-fork-BQ8_6H32.js");
515
+ const { copySessionForFork } = await import("./session-fork-CHI1XvL9.js");
450
516
  return copySessionForFork(sourcePath, destPath, { fullHistory: false });
451
517
  }
452
518
  /** Effect variant of generateFallbackSummary. */
@@ -521,4 +587,4 @@ var init_summary_fork = __esmMin((() => {
521
587
  //#endregion
522
588
  export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
523
589
 
524
- //# sourceMappingURL=summary-fork-DHhJIsAL.js.map
590
+ //# sourceMappingURL=summary-fork-D1RAk9rJ.js.map
@@ -1,4 +1,4 @@
1
- import "./smart-compaction-r4pHQBIr.js";
2
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-DHhJIsAL.js";
1
+ import "./smart-compaction-KCYScAU1.js";
2
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-D1RAk9rJ.js";
3
3
  init_summary_fork();
4
4
  export { generateFallbackSummary };
@@ -1,43 +1,4 @@
1
1
  import { t as __esmMin } from "./chunk-ruWRV7i3.js";
2
- import { et as getOverdeckHome, tt as init_paths } from "./paths-DehGY2Fj.js";
3
- import "node:fs";
4
- import { join } from "node:path";
5
- import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
6
- import { randomBytes } from "node:crypto";
7
- //#region src/lib/pty-token.ts
8
- function ptyTokenDir(agentId) {
9
- return join(getOverdeckHome(), "agents", agentId);
10
- }
11
- function getPtyTokenPath(agentId) {
12
- return join(ptyTokenDir(agentId), "pty-token");
13
- }
14
- async function readPtyToken(agentId) {
15
- try {
16
- const value = (await readFile(getPtyTokenPath(agentId), "utf8")).trim();
17
- return value.length > 0 ? value : null;
18
- } catch {
19
- return null;
20
- }
21
- }
22
- async function writePtyToken(agentId) {
23
- await mkdir(ptyTokenDir(agentId), {
24
- recursive: true,
25
- mode: 448
26
- });
27
- const token = randomBytes(32).toString("hex");
28
- const path = getPtyTokenPath(agentId);
29
- await writeFile(path, `${token}\n`, { mode: 384 });
30
- try {
31
- await chmod(path, 384);
32
- } catch {}
33
- return token;
34
- }
35
- var PTY_TOKEN_HEADER;
36
- var init_pty_token = __esmMin((() => {
37
- init_paths();
38
- PTY_TOKEN_HEADER = "x-overdeck-pty-token";
39
- }));
40
- //#endregion
41
2
  //#region src/lib/channels/injection-budget.ts
42
3
  /** Echo window for one attempt: 2.5s floor + 100ms per KB, capped at 15s. */
43
4
  function echoConfirmTimeoutMs(contentLength) {
@@ -63,6 +24,6 @@ var init_injection_budget = __esmMin((() => {
63
24
  INJECTION_OVERHEAD_MS = 3e3;
64
25
  }));
65
26
  //#endregion
66
- export { inputSettleMs as a, PTY_TOKEN_HEADER as c, writePtyToken as d, init_injection_budget as i, init_pty_token as l, SUPERVISOR_CLIENT_MARGIN_MS as n, purgeSettleMs as o, echoConfirmTimeoutMs as r, supervisorInjectionBudgetMs as s, INPUT_PURGE_MAX_CHARS as t, readPtyToken as u };
27
+ export { inputSettleMs as a, init_injection_budget as i, SUPERVISOR_CLIENT_MARGIN_MS as n, purgeSettleMs as o, echoConfirmTimeoutMs as r, supervisorInjectionBudgetMs as s, INPUT_PURGE_MAX_CHARS as t };
67
28
 
68
- //# sourceMappingURL=injection-budget-C1iPirFS.js.map
29
+ //# sourceMappingURL=injection-budget-Csw5tqfJ.js.map
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { et as getOverdeckHome, tt as init_paths } from "./paths-DehGY2Fj.js";
3
- import { a as inputSettleMs, c as PTY_TOKEN_HEADER, i as init_injection_budget, l as init_pty_token, o as purgeSettleMs, r as echoConfirmTimeoutMs, t as INPUT_PURGE_MAX_CHARS, u as readPtyToken } from "./injection-budget-C1iPirFS.js";
3
+ import { n as init_pty_token, r as readPtyToken, t as PTY_TOKEN_HEADER } from "./pty-token-x-ea28Us.js";
4
+ import { a as inputSettleMs, i as init_injection_budget, o as purgeSettleMs, r as echoConfirmTimeoutMs, t as INPUT_PURGE_MAX_CHARS } from "./injection-budget-Csw5tqfJ.js";
4
5
  import { existsSync } from "node:fs";
5
6
  import { join } from "node:path";
6
7
  import { appendFile, chmod, mkdir, unlink } from "node:fs/promises";