@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.
- package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
- package/package.json +1 -1
- package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-DDCnXF58.js} +2 -2
- package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-BVwW4qRn.js} +6 -6
- package/server/{agent-gc-BV1q_2EV.js → agent-gc-CHcnvonI.js} +4 -4
- package/server/agent-state-Bc3tzUC8.js +3 -0
- package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BsgWxZuB.js} +5 -5
- package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-D5UGKIJL.js} +1 -1
- package/server/{agents-B4Bjbkfv.js → agents-EbI0zCJl.js} +4 -4
- package/server/agents-wi9NWzs2.js +3 -0
- package/server/{archive-planning-zkJb3BeM.js → archive-planning-BZDgzoEj.js} +1 -1
- package/server/{archive-planning-DYrYojxl.js → archive-planning-Du25Jtst.js} +4 -4
- package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
- package/server/assemble-J2ZZ2C15.js +339 -0
- package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
- package/server/{behavior-B_-4EKF3.js → behavior-B3exJ42O.js} +2 -2
- package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-D1wzUIWv.js} +2 -2
- package/server/{build-info-DgTqZkL5.js → build-info-CZk_TITh.js} +1 -1
- package/server/{build-info-BT096lEl.js → build-info-Ie_D0_BT.js} +3 -3
- package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-BI1Wxoku.js} +2 -2
- package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-DwbQoqrC.js} +1 -1
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-CpgCjAlN.js → checkpoints-BJIs5QIA.js} +1 -1
- package/server/{checkpoints-C-AXLfYT.js → checkpoints-CQB1h765.js} +2 -2
- package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
- package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
- package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-DNWEVV6z.js} +2 -2
- package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
- package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
- package/server/cli-B86rejVV.js +3 -0
- package/server/{cli-vBeXbPrq.js → cli-RoOx5DUf.js} +9 -9
- package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8a1vtTU.js} +2 -2
- package/server/{cliproxy-DW0V86F8.js → cliproxy-fHfIeiGd.js} +1 -1
- package/server/{close-issue-Dn_4c4G8.js → close-issue-DoOifFIK.js} +5 -5
- package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
- package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CktPXo8m.js} +1 -1
- package/server/{codex-TmSi-yTv.js → codex-BZXGhUVB.js} +7 -7
- package/server/{codex-Dg7Is5yb.js → codex-GcHuUF-k.js} +1 -1
- package/server/{codex-parser-C4gSH-IR.js → codex-parser-CFZ1_1Jl.js} +2 -2
- package/server/{config-CCvjQf27.js → config-BZ0sHTju.js} +2 -2
- package/server/{config-DjLOdbgT.js → config-CKxYiCmX.js} +2 -2
- package/server/{config-DUIhMN_T.js → config-DzV30TOm.js} +1 -1
- package/server/{config-yaml-DvyMuOle.js → config-yaml-DySPNmKN.js} +23 -9
- package/server/{conflict-gate-CmrYpa47.js → conflict-gate-BaCVrH-N.js} +3 -3
- package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-BhAY7TUd.js} +1 -1
- package/server/context-layers-BrPmE__h.js +4 -0
- package/server/context-layers-igZ4FI4_.js +37 -0
- package/server/{control-settings-aP1ANIlI.js → control-settings-BQp7_4uD.js} +4 -4
- package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-CgrR8YYp.js} +8 -8
- package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-eQB5CkOe.js} +1 -1
- package/server/{conversation-service-Up7FEzIC.js → conversation-service-BLd3MYsG.js} +1 -1
- package/server/{conversation-service-Du-MTNpJ.js → conversation-service-DPJ71F33.js} +329 -19
- package/server/{conversations-DbOs1e9Q.js → conversations-6AfUfbwc.js} +5 -5
- package/server/{conversations-6mPANqvL.js → conversations-CAsJF9kh.js} +1 -1
- package/server/{cost-Ca0YTWDw.js → cost-B2ddP6wq.js} +2 -2
- package/server/{cost-CW4WSe72.js → cost-R-m6Yi-W.js} +3 -3
- package/server/{cost-sync-C0VdGme1.js → cost-sync-BsN6ER0n.js} +3 -3
- package/server/{dag-CdOjJVDT.js → dag-B1ucnjDU.js} +2 -2
- package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-pRnyD5w9.js → deacon-CU_cAYSR.js} +254 -144
- package/server/{deacon-DYSEJb48.js → deacon-kiQrb4ZT.js} +3 -3
- package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
- package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-BXZZ1Z2-.js} +13 -13
- package/server/deacon-swarm-C-GwfjJy.js +2 -0
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-AiFoP8dw.js} +6 -6
- package/server/{deploy-window-DeP_OIRk.js → deploy-window-C3F-tihF.js} +6 -6
- package/server/{deploy-window-CM6W1-c6.js → deploy-window-DkZraDyj.js} +1 -1
- package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-bcOWqdQE.js} +2 -2
- package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-_d6XhyND.js} +3 -3
- package/server/dist-Bzy0y69j.js +3 -0
- package/server/{dist-DyRx4cI7.js → dist-Cb_0uvpS.js} +1 -1
- package/server/{docker-BK7HIcBj.js → docker-DcMTFTUC.js} +2 -2
- package/server/{dod-BrSfUHm0.js → dod-C6n9RV3G.js} +1 -1
- package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
- package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-DNi-ono3.js} +4 -4
- package/server/{esm-shims-CbI3BVkl.js → esm-shims-OSHAYaS1.js} +1 -1
- package/server/{event-store-tdiY5eDZ.js → event-store-CQL6NeqB.js} +3 -3
- package/server/{event-store-Cr5PQwFC.js → event-store-EV2cMiXj.js} +1 -1
- package/server/{events-CvvGK6LT.js → events-BTdrdEq8.js} +1 -1
- package/server/{events-CC1dgUpx.js → events-DTfAe4My.js} +3 -3
- package/server/{factory-CynerjXO.js → factory-CFibJuaw.js} +4 -4
- package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population-DKZFMbFt.js} +4 -4
- package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BdPuLcBX.js} +2 -2
- package/server/{features-Dhxz-wLc.js → features-ez2271oH.js} +2 -2
- package/server/{feedback-target-CPS15Vte.js → feedback-target-7mqqwrX6.js} +7 -7
- package/server/{feedback-target-iygZwmMc.js → feedback-target-CoFDHiM8.js} +1 -1
- package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-CY5L1lB7.js} +5 -5
- package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D3a22RCd.js} +1 -1
- package/server/flywheel-DHrgCphM.js +1084 -0
- package/server/flywheel-DzGtWnJ1.js +477 -0
- package/server/flywheel-SVF02Jpq.js +2 -0
- package/server/{flywheel-merge-order-DxbQKE1d.js → flywheel-merge-order-UU0tiUld.js} +9 -8
- package/server/{flywheel-merge-order-C-6zRLvM.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
- package/server/{forge-Ch9gCFod.js → forge-CNFnyqps.js} +2 -2
- package/server/forge-DXnS_YFH.js +2 -0
- package/server/{from-CJ_aH5jD.js → from-kNxT0bZC.js} +1 -1
- package/server/{fts-db-CKgg0VKg.js → fts-db-CE46vDkZ.js} +2 -2
- package/server/{fts-operations-BrL_VTRr.js → fts-operations-CqY6zl-i.js} +2 -2
- package/server/{git-utils-BVa07a4a.js → git-utils-CRw2zLPC.js} +68 -3
- package/server/git-utils-D0_yhCgF.js +3 -0
- package/server/{github-app-CMBdIFBQ.js → github-app-C3QrAUd0.js} +18 -7
- package/server/{github-app-CPfoFAdV.js → github-app-ClZ2lk8D.js} +1 -1
- package/server/{github-client--XVlDpwM.js → github-client-BnIsSrEN.js} +2 -2
- package/server/{github-client-B4QsdE-X.js → github-client-DfQYVUaw.js} +1 -1
- package/server/{github-pr-lookup-BRbDW-qk.js → github-pr-lookup-D16NGsSO.js} +2 -2
- package/server/{harness-binary-CVio2m-u.js → harness-binary-DPUi-Pv8.js} +32 -6
- package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-3lNZkyT4.js} +18 -9
- package/server/{health-events-C9B8y1Hm.js → health-events-BBcTYQKU.js} +2 -2
- package/server/{health-events-CpfvuVmm.js → health-events-BDOHby5Q.js} +1 -1
- package/server/{hooks-DUXw8A0-.js → hooks-CKZgXlJb.js} +2 -2
- package/server/{hooks-ltecuFqZ.js → hooks-DPVX1rwQ.js} +1 -1
- package/server/{hume-BEq0bUDg.js → hume-Cz8igP9E.js} +2 -2
- package/server/hume-ccTf4wTX.js +3 -0
- package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
- package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
- package/server/{in-flight-guard-aQ1IxeI3.js → in-flight-guard-CAAkqPLu.js} +2 -2
- package/server/{infra-CzaSOgul.js → infra-BEqFxlJc.js} +14 -4
- package/server/{injection-DZ0PfYa4.js → injection-C8aiVJrF.js} +191 -183
- package/server/{injection-oNZeoDhL.js → injection-CPUIqNhI.js} +1 -1
- package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-BLuJ1AkT.js} +135 -79
- package/server/inspect-agent-Brtz0URj.js +2 -0
- package/server/{internal-token-DXdfprGr.js → internal-token-BrcU6qfe.js} +1 -1
- package/server/{internal-token-Bb4XeV2x.js → internal-token-s0-oKybJ.js} +2 -2
- package/server/{io-B3_AHDfr.js → io-C9kF1wtJ.js} +3 -3
- package/server/{issue-closed-zhdvQicO.js → issue-closed-CDJk4pIp.js} +7 -7
- package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-B8sZHVHh.js} +1 -1
- package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-ojZAzDBP.js} +21 -21
- package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-BvJ09SaR.js} +1 -1
- package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
- package/server/{issues-B6ToV6x1.js → issues-BMmP_77e.js} +2 -2
- package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-BXSlHwEh.js} +3 -3
- package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-B0UJwnv5.js} +3 -3
- package/server/{label-reconciler-DdWbHEBu.js → label-reconciler-B4iOAjlC.js} +4 -4
- package/server/{launcher-generator-CHVm7bGT.js → launcher-generator-BBWG_SiS.js} +101 -7
- package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-BREGpnLk.js} +5 -5
- package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-DPo7x11I.js} +1 -1
- package/server/{lifecycle-sycO16hj.js → lifecycle-xmBfK2GJ.js} +6 -6
- package/server/{lifecycle-DfeyBDwA.js → lifecycle-yPd___5E.js} +2 -2
- package/server/{linear-client-D4zqMnX7.js → linear-client-BsuUvkdA.js} +2 -2
- package/server/{linear-client-DqhDQO9k.js → linear-client-CTskEeT_.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-DK23JEdS.js → merge-B1DiziGU.js} +1 -1
- package/server/{merge-C_ZEhbqI.js → merge-CefQNAnq.js} +3 -3
- package/server/{merge-agent-XrB80vfT.js → merge-agent-4WOWlSYA.js} +28 -28
- package/server/{merge-agent-BQM3a8z5.js → merge-agent-CKkgIBPB.js} +1 -1
- package/server/{merge-batch-Bwoyr8Je.js → merge-batch-ClFn2T-y.js} +1 -1
- package/server/merge-ops-CR44oU9-.js +2 -0
- package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-BfaTyXsw.js} +2 -2
- package/server/merge-set-DJ8-UErs.js +83 -0
- package/server/{merge-set-DnSYdBEp.js → merge-set-bUqbm3yc.js} +1 -1
- package/server/{merge-sync-SSv3E-pl.js → merge-sync-BJYeOODr.js} +1 -1
- package/server/{merge-sync-DZ9dojJn.js → merge-sync-VPV28g0g.js} +2 -2
- package/server/{merge-train-DxDfBTjr.js → merge-train-CHopycP0.js} +3 -3
- package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-D1cOZzy2.js} +4 -4
- package/server/{merge-verification-CSizH3HY.js → merge-verification-BkaOqPsw.js} +4 -4
- package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-duPAfSBw.js} +2 -2
- package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-Nw29vaFb.js} +1 -1
- package/server/node_modules/.package-lock.json +8 -8
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
- package/server/node_modules/undici/README.md +5 -0
- package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
- package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
- package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
- package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
- package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
- package/server/node_modules/undici/docs/docs/index.md +5 -0
- package/server/node_modules/undici/lib/core/request.js +1 -1
- package/server/node_modules/undici/lib/core/util.js +6 -1
- package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
- package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
- package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
- package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
- package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
- package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
- package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
- package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
- package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
- package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
- package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
- package/server/node_modules/undici/lib/util/cache.js +49 -7
- package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
- package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
- package/server/node_modules/undici/package.json +2 -2
- package/server/node_modules/undici/types/client.d.ts +2 -2
- package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
- package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
- package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-BvKkWMJQ.js} +12 -12
- package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
- package/server/package-lock.json +9 -9
- package/server/package.json +1 -1
- package/server/{pan-dir-DeVUgwA7.js → pan-dir-B0c3w0Ya.js} +3 -3
- package/server/{paths-_zEts6wc.js → paths-D-xWGHdh.js} +2 -2
- package/server/{pickup-Dd0Znxxy.js → pickup-DUCLWrJY.js} +17 -16
- package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-mY3GprlK.js} +7 -7
- package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-BJr8gQX6.js} +1 -1
- package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BXkJzDC4.js} +2 -2
- package/server/{project-pipelines-2sK1apsO.js → project-pipelines-C0MWUeCU.js} +2 -2
- package/server/project-repos-B6GycDh9.js +94 -0
- package/server/project-repos-DXKQsc_m.js +3 -0
- package/server/{projects-9SkRpES9.js → projects-vjjcmiN8.js} +1 -1
- package/server/{prompts-Dp4Tpk39.js → prompts-DxzFXuLl.js} +2 -2
- package/server/{providers-DV7ec8l7.js → providers-qQAwGQDW.js} +7 -7
- package/server/{providers-DKkBXhxU.js → providers-u4Ga0jOr.js} +1 -1
- package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
- package/server/public/assets/{dist-DEmlBBNQ.js → dist-ByIuzMQW.js} +3 -3
- package/server/public/assets/{dist-BWR4qFiV.js → dist-D7zYSEA6.js} +1 -1
- package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
- package/server/public/assets/{index-CsSuZQBI.js → index-CWeMerGO.js} +146 -144
- package/server/public/assets/{index-CUr1xv8w.css → index-CenuJ3Cw.css} +1 -1
- package/server/public/assets/{linear-C9zFQpkX.js → linear-BBbArIcK.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
- package/server/public/assets/{prod-B1jCQihw.js → prod-B8vYiu52.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
- package/server/public/index.html +2 -2
- package/server/{pull-requests--Ib2jTgy.js → pull-requests-7N8WKseP.js} +1 -1
- package/server/{pull-requests-CXIhdCYD.js → pull-requests-_lHueOHW.js} +3 -3
- package/server/{queries-6d7Cdtm7.js → queries-CjNIf-Ub.js} +576 -166
- package/server/{rally-B708-nZn.js → rally-CyWT_lNO.js} +3 -3
- package/server/{rally-api-nY0ZANw3.js → rally-api-C8e_1JRi.js} +2 -2
- package/server/{rally-api-yjQ0TfHd.js → rally-api-ClOSd-Tt.js} +1 -1
- package/server/{rally-client-B1EJhfV0.js → rally-client-lc-nokqr.js} +4 -4
- package/server/{rally-client-CULK2XAY.js → rally-client-sgtVqzNU.js} +1 -1
- package/server/rally-zhhtXuDP.js +3 -0
- package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
- package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
- package/server/rebuild-stack-CFvcBHsS.js +4 -0
- package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-lwtsW0GO.js} +26 -35
- package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
- package/server/{record-t6V-3Dcj.js → record-CN0pj4_5.js} +1 -1
- package/server/{record-update-DACtKh6_.js → record-update-bLJxAXH4.js} +1 -1
- package/server/{record-update-Dq0t2uBG.js → record-update-dE1Aw83j.js} +2 -2
- package/server/{recovery-trip-BJtIQuag.js → recovery-trip-BvRWfUXM.js} +2 -2
- package/server/{release-engine-DZpmGGzb.js → release-engine-Cx48W7z8.js} +5 -5
- package/server/{release-set-hnXd_kga.js → release-set-CQfuN9-v.js} +3 -3
- package/server/{remote-Br-ZWVIP.js → remote-C_2hasl7.js} +3 -3
- package/server/{remote-4tiENDaI.js → remote-ChgimyYa.js} +3 -3
- package/server/{remote-agents-nmty1mLu.js → remote-agents-By1ige5O.js} +6 -6
- package/server/{remote-agents-CRCg1L4H.js → remote-agents-CA3Ihlxj.js} +1 -1
- package/server/{remote-completion-BbWNd10K.js → remote-completion-fVe9e_3u.js} +12 -12
- package/server/resume-BFv1PGpA.js +3 -0
- package/server/{review-agent-sKkE1FEL.js → review-agent-CIGOQYBD.js} +29 -25
- package/server/{review-agent-DJRO8EG8.js → review-agent-DNboMyW4.js} +1 -1
- package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-nRDPuMxd.js} +5 -5
- package/server/{review-context-BgX3lcCx.js → review-context-2uj-YQ8J.js} +69 -25
- package/server/{review-status-C6n6-9f_.js → review-status-btEYlaxA.js} +1 -1
- package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
- package/server/{review-status-A7quS5KJ.js → review-status-kZj_KyCk.js} +42 -26
- package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-BTOpxtTC.js} +10 -5
- package/server/{review-status-sync-To3-iS-N.js → review-status-sync-DSDK3OMy.js} +1 -1
- package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
- package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
- package/server/{rollup-B53Y81xK.js → rollup-BKQC7jp4.js} +1 -1
- package/server/{rollup-WA0VD-Rr.js → rollup-FGsKki9R.js} +8 -8
- package/server/{scanner-D2743cp8.js → scanner-CnqEZeDy.js} +41 -14
- package/server/{sequence-io-Cg0zYj_E.js → sequence-io-D909zgeH.js} +4 -4
- package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-CzkcK6P5.js} +5 -5
- package/server/server.js +2194 -341
- package/server/{service-DCpB_SGd.js → service-CLeAoU6G.js} +51 -50
- package/server/{session-fork-BQ8_6H32.js → session-fork-CHI1XvL9.js} +2 -2
- package/server/{session-history-CVZDpS3c.js → session-history-BT3IvqhC.js} +4 -4
- package/server/settings-66A6uvIA.js +2 -0
- package/server/{settings-BZ5m1UCl.js → settings-BTMvpNFU.js} +3 -3
- package/server/{settings-ylxwqwQG.js → settings-C0zgxOGf.js} +2 -2
- package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BJfgm-hX.js} +2 -2
- package/server/{shadow-state-Dh-HzF2J.js → shadow-state-7a-524T8.js} +2 -2
- package/server/{shadow-state-C2_epgx2.js → shadow-state-DnDyjujH.js} +1 -1
- package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-Db3oroFG.js} +2 -2
- package/server/{ship-log-ClSMIzZX.js → ship-log-D9MlVzYU.js} +1 -1
- package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CV2ukKND.js} +1 -1
- package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-KCYScAU1.js} +7 -7
- package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DKpdFyOC.js} +30 -23
- package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-qUC2VWu3.js} +1 -1
- package/server/{specialist-completion-BXhav38U.js → specialist-completion-Ky9wCDpb.js} +1 -1
- package/server/{specialist-context-DtrYvGJ-.js → specialist-context-Bn3dCGS2.js} +5 -5
- package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
- package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-C5p8G7tx.js} +3 -3
- package/server/{specialists-JVO00bs7.js → specialists-CC4r-c2s.js} +776 -347
- package/server/{specialists-D5fRZXmN.js → specialists-CShuVGWT.js} +1 -1
- package/server/{specialists-DVj0hvaL.js → specialists-DM6bWjsi.js} +1 -1
- package/server/{specialists-DyFeedjn.js → specialists-jiuuyVkp.js} +21 -19
- package/server/specs-C8Wsn2XO.js +3 -0
- package/server/{src-CG9mCkP6.js → src-CXmtj0im.js} +6 -6
- package/server/{src-CMTQGyCK.js → src-CdmnTM2m.js} +5 -5
- package/server/{src-U7_kTPEE.js → src-DtcUOZCq.js} +111 -18
- package/server/stack-health-Bn3o8FBX.js +3 -0
- package/server/{stack-health-puygdaMd.js → stack-health-DxSdG9cW.js} +63 -9
- package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-KJKxxiiQ.js} +4 -4
- package/server/{staleness-Cbl_w4Bw.js → staleness-CT34nwr9.js} +1 -1
- package/server/{staleness-Bpy41ngS.js → staleness-DPm7ClwA.js} +1 -1
- package/server/{state-home-CIGjwNfJ.js → state-home-Cn_Qu8IX.js} +2 -2
- package/server/{state-migrate-Dkzaxvny.js → state-migrate-BGg2ZaOt.js} +4 -4
- package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-DYuPRYYw.js} +300 -23
- package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-s9_2qfi6.js} +1 -1
- package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
- package/server/{summary-fork-DHhJIsAL.js → summary-fork-D1RAk9rJ.js} +78 -12
- package/server/{summary-fork-D8bXjCr7.js → summary-fork-DpcxN9tf.js} +2 -2
- package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
- package/server/supervisor/pty-supervisor.js +2 -1
- package/server/supervisor/pty-token-x-ea28Us.js +43 -0
- package/server/supervisor-FTJAIsAK.js +2 -0
- package/server/{supervisor-BO-Zk_h-.js → supervisor-wM4ooB5O.js} +3 -3
- package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-DlP_UjHq.js} +3 -3
- package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-DUDj1YHf.js} +56 -29
- package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-DeTTImn-.js} +15 -15
- package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-MbxX5vqq.js} +6 -6
- package/server/{test-verdict-CmUBK5cT.js → test-verdict-bWYBtqBg.js} +1 -1
- package/server/{test-verdict-DFjjIHR5.js → test-verdict-gscuksPv.js} +1 -1
- package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BYFkts95.js} +1 -1
- package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-C-69c3OI.js} +2 -2
- package/server/{tmux-DoThH6aj.js → tmux-B6z7h_vZ.js} +1 -1
- package/server/{tmux-ftABRAmc.js → tmux-R7N7y-Mh.js} +2 -2
- package/server/{token-CsOhvw42.js → token-BK6t8BIT.js} +2 -2
- package/server/token-util-DuPuNriz.js +3 -0
- package/server/{token-util-CTmczIfW.js → token-util-DxXu-vd1.js} +1 -1
- package/server/{tracker-config-B4itFzDo.js → tracker-config-G6latr8C.js} +2 -2
- package/server/{tracker-utils-BePq_oj-.js → tracker-utils-B4ylXZQK.js} +1 -1
- package/server/{tracker-utils-tnxxqROg.js → tracker-utils-DHv5pSDT.js} +2 -2
- package/server/{traefik-connect-m73vGebA.js → traefik-connect-Df2uXPsQ.js} +1 -1
- package/server/{tunnel-B2vxjx_b.js → tunnel-CDVKJpRv.js} +3 -3
- package/server/{tunnel-Cgj-IGIl.js → tunnel-DGdUkGoZ.js} +1 -1
- package/server/{types-BBNjPcqU.js → types-5M0lupud.js} +1 -1
- package/server/{uat-train-cKfM-_WW.js → uat-train-B05BWkp-.js} +1 -1
- package/server/{uat-train-CuEn0t9M.js → uat-train-DDSrSoV1.js} +25 -25
- package/server/validate-IfDGkaVR.js +177 -0
- package/server/{validation-CIi6pnI2.js → validation-CC9OPqJZ.js} +1 -1
- package/server/{validation-B5JxoPUS.js → validation-Dw1pzDzr.js} +4 -4
- package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-B3itKTxu.js} +1 -1
- package/server/{verification-artifact-BcnIbigL.js → verification-artifact-TVFSz_q1.js} +1 -1
- package/server/{verification-runner-CDj4lD4t.js → verification-runner-BW4HOKAz.js} +1 -1
- package/server/{verification-runner-Br0S_Ous.js → verification-runner-CkgX6EtI.js} +91 -106
- package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-DYPbKcIJ.js} +1 -1
- package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-Du8Vh2aJ.js} +9 -9
- package/server/workflows-BQu4RFQ-.js +2 -0
- package/server/{workflows-C9WmILql.js → workflows-mbQzh6mQ.js} +18 -18
- package/server/{workspace-DuUdndHe.js → workspace--8tnhDI0.js} +1 -1
- package/server/{workspace-BVl4rihN.js → workspace-BPUws1-_.js} +3 -3
- package/server/{workspace-config-cEGcO6UT.js → workspace-config-CIVWZOQr.js} +1 -1
- package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CBhNdzE4.js} +66 -15
- package/server/workspace-manager-CWT55qeI.js +3 -0
- package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-BzHnwwX4.js} +1 -1
- package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-_WygnyoX.js} +2 -2
- package/server/{workspaces-hWvy9eKs.js → workspaces-Do_9J0LQ.js} +130 -111
- package/sync-sources/hooks/record-cost-event.js +6 -4
- package/sync-sources/skills/okf/README.md +11 -3
- package/sync-sources/skills/okf/SKILL.md +12 -1
- package/sync-sources/skills/okf/docs/USAGE.md +15 -0
- package/sync-sources/skills/okf/references/overdeck.md +28 -0
- package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
- package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
- package/sync-sources/skills/pan-orders/SKILL.md +33 -0
- package/sync-sources/skills/pan-start/SKILL.md +4 -0
- package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
- package/server/agent-state-Bg0lhqwj.js +0 -3
- package/server/agents-FlIgQ3ql.js +0 -3
- package/server/cli-BsVIHwzC.js +0 -3
- package/server/context-layers-B3Nt58jl.js +0 -4
- package/server/context-layers-ZYFcWiyc.js +0 -165
- package/server/deacon-swarm-9jRLS5Ke.js +0 -2
- package/server/dist-Bd3vn0Hw.js +0 -3
- package/server/flywheel-DMCUzDWg.js +0 -2
- package/server/flywheel-DSSpWmqF.js +0 -522
- package/server/flywheel-DcBkQvgE.js +0 -207
- package/server/forge-B-ZWyTRm.js +0 -2
- package/server/git-utils-Dry_Ka_D.js +0 -3
- package/server/hume-B_DbflNM.js +0 -3
- package/server/inspect-agent-ch-F-5Ci.js +0 -2
- package/server/layers-DzxSTGNA.js +0 -93
- package/server/merge-blockers-BsFjGrQ8.js +0 -41
- package/server/merge-ops-DlB1IM0Y.js +0 -2
- package/server/merge-set-DLz0MkGT.js +0 -139
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
- package/server/rally-njs_mJrt.js +0 -3
- package/server/rebuild-stack-kA7XngID.js +0 -3
- package/server/resume-CcKqnTvE.js +0 -3
- package/server/settings-D0OSwos5.js +0 -2
- package/server/specs-nN45DG2X.js +0 -3
- package/server/stack-health-Df0YEZKa.js +0 -3
- package/server/supervisor-BPy-o1A8.js +0 -2
- package/server/token-util-DrHg8abn.js +0 -3
- package/server/workflows-D90rMOya.js +0 -2
- 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-
|
|
2
|
-
import { o as init_lifecycle } from "./lifecycle-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { r as CLAUDE_CODE_BEHAVIOR } from "./src-
|
|
4
|
-
import { c as getReviewStatusSync, l as init_review_status } from "./review-status-
|
|
5
|
-
import {
|
|
6
|
-
import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-
|
|
7
|
-
import { t as init_behavior } from "./behavior-
|
|
8
|
-
import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-
|
|
9
|
-
import { m as readWorkspacePlanSync, o as init_io } from "./io-
|
|
10
|
-
import { n as init_launcher_generator } from "./launcher-generator-
|
|
11
|
-
import { i as createCodexRuntimeSync, l as init_codex } from "./codex-
|
|
12
|
-
import {
|
|
13
|
-
import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, s as init_control_settings } from "./control-settings-
|
|
14
|
-
import { l as init_dag, o as getDispatchableItems } from "./dag-
|
|
15
|
-
import { a as loadCloisterConfigSync, r as init_config, t as DEFAULT_CLOISTER_CONFIG } from "./config-
|
|
16
|
-
import { a as init_jsonl_parser, i as getSessionFilesSync, r as getProjectDirsSync, s as parseClaudeSessionSync } from "./jsonl-parser-
|
|
17
|
-
import { t as recordRecoveryFailure } from "./recovery-trip-
|
|
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$
|
|
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$
|
|
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-
|
|
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-
|
|
1807
|
+
//# sourceMappingURL=stuck-remediation-DYuPRYYw.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-
|
|
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-
|
|
2
|
-
import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-
|
|
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-
|
|
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-
|
|
3
|
-
import { b as init_agents, kt as deliverAgentMessage } from "./queries-
|
|
4
|
-
import { k as init_conversations } from "./conversations-
|
|
5
|
-
import { a as
|
|
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-
|
|
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(
|
|
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-
|
|
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-
|
|
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-
|
|
590
|
+
//# sourceMappingURL=summary-fork-D1RAk9rJ.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./smart-compaction-
|
|
2
|
-
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-
|
|
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,
|
|
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-
|
|
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 {
|
|
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";
|