@overdeck/desktop 0.45.21 → 0.45.23
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/package.json +1 -1
- package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-DOA0KgXx.js} +5 -5
- package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-BBu6DSNm.js} +6 -6
- package/server/{agent-gc-D6PUckBB.js → agent-gc-BV1q_2EV.js} +4 -4
- package/server/agent-state-Bg0lhqwj.js +3 -0
- package/server/{agent-state-service-DHwemt96.js → agent-state-service-CnzFKSAQ.js} +1 -1
- package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-HoK8U4jW.js} +5 -5
- package/server/{agents-DbrHWunF.js → agents-B4Bjbkfv.js} +4 -4
- package/server/agents-FlIgQ3ql.js +3 -0
- package/server/{archive-planning-BOnwJq8M.js → archive-planning-DYrYojxl.js} +31 -7
- package/server/{archive-planning-MPpvQJL4.js → archive-planning-zkJb3BeM.js} +1 -1
- package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-C-xy7Z5v.js} +2 -2
- package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-GtG71X8H.js} +3 -3
- package/server/{behavior-Dg-D8eBG.js → behavior-B_-4EKF3.js} +2 -2
- package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-DWdW7vUm.js} +2 -2
- package/server/{build-info-27NlbKhV.js → build-info-BT096lEl.js} +3 -3
- package/server/{build-info-Cv6CI7Gu.js → build-info-DgTqZkL5.js} +1 -1
- package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-B7Bt29J0.js} +1 -1
- package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-DDqcGyu8.js} +2 -2
- package/server/checkpoint-worker.js +1 -1
- package/server/{checkpoints-Vh-J15ge.js → checkpoints-C-AXLfYT.js} +2 -2
- package/server/{checkpoints-DwZqT2qQ.js → checkpoints-CpgCjAlN.js} +1 -1
- package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-C8wdRnN1.js} +1 -1
- package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-but-_qGY.js} +2 -2
- package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-H_5wHQZQ.js} +2 -2
- package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-BTENVmYf.js} +1 -1
- package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-CbSz0Dvb.js} +2 -2
- package/server/cli-BsVIHwzC.js +3 -0
- package/server/{cli-mvpEOb3w.js → cli-vBeXbPrq.js} +9 -9
- package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Bgb2XCqi.js} +2 -2
- package/server/{cliproxy-7g1nObvB.js → cliproxy-DW0V86F8.js} +1 -1
- package/server/{close-issue-8F6uawYj.js → close-issue-Dn_4c4G8.js} +5 -5
- package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-CWpY2uBw.js} +1 -1
- package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-hANY_ehE.js} +9 -9
- package/server/codex-Dg7Is5yb.js +3 -0
- package/server/{codex-D_UBEOwL.js → codex-TmSi-yTv.js} +30 -8
- package/server/{codex-parser-BTzlOZiV.js → codex-parser-C4gSH-IR.js} +2 -2
- package/server/{config-CrduXs4a.js → config-CCvjQf27.js} +2 -2
- package/server/{config-nAB_F-Gp.js → config-DUIhMN_T.js} +1 -1
- package/server/{config-G1TOMJZA.js → config-DjLOdbgT.js} +2 -2
- package/server/{config-yaml-Ciyp2mYe.js → config-yaml-DvyMuOle.js} +177 -211
- package/server/{conflict-gate-BKalpcjL.js → conflict-gate-BSJkNTdp.js} +1 -1
- package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CmrYpa47.js} +3 -3
- package/server/{context-layers-YNpf6Q_I.js → context-layers-B3Nt58jl.js} +2 -2
- package/server/{context-layers-Cg9ZgVfx.js → context-layers-ZYFcWiyc.js} +3 -3
- package/server/{control-settings-D_79A6gp.js → control-settings-aP1ANIlI.js} +4 -4
- package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-CNbTLB86.js} +8 -8
- package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-DiG5zWQq.js} +1 -1
- package/server/{conversation-service-DQybSPUK.js → conversation-service-Du-MTNpJ.js} +6 -6
- package/server/{conversation-service-CWk8mEym.js → conversation-service-Up7FEzIC.js} +1 -1
- package/server/{conversations-BJ-t3BRm.js → conversations-6mPANqvL.js} +1 -1
- package/server/{conversations-BUgGvqVL.js → conversations-DbOs1e9Q.js} +4 -4
- package/server/{cost-jJ2cgDcG.js → cost-CW4WSe72.js} +3 -3
- package/server/{cost-Drm7qeD5.js → cost-Ca0YTWDw.js} +18 -2
- package/server/{cost-sync-DzHP6zaR.js → cost-sync-C0VdGme1.js} +3 -3
- package/server/{dag-DIji6O2b.js → dag-CdOjJVDT.js} +9 -9
- package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-CT-IypG3.js} +1 -1
- package/server/dashboard-db-worker.js +7 -7
- package/server/{deacon-pleYrvIm.js → deacon-DYSEJb48.js} +3 -3
- package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-Bjg8U4Y9.js} +3 -3
- package/server/{deacon-1s7bM5zn.js → deacon-pRnyD5w9.js} +1133 -474
- package/server/deacon-swarm-9jRLS5Ke.js +2 -0
- package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-DftYRDo8.js} +17 -17
- package/server/deacon.js +8 -8
- package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-Bjsho_ha.js} +136 -19
- package/server/{deploy-window-ClLq1RYf.js → deploy-window-CM6W1-c6.js} +1 -1
- package/server/{deploy-window-jw4S_Y-c.js → deploy-window-DeP_OIRk.js} +77 -10
- package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-BpMoHlkR.js} +2 -2
- package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CtUgrVKW.js} +3 -3
- package/server/dist-Bd3vn0Hw.js +3 -0
- package/server/{dist-yfR7G1BL.js → dist-DyRx4cI7.js} +1 -1
- package/server/{docker-ClwPQaba.js → docker-BK7HIcBj.js} +2 -2
- package/server/{dod-BLphkhjs.js → dod-BrSfUHm0.js} +1 -1
- package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-DRqaAkBR.js} +1 -1
- package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-DseivYEy.js} +4 -4
- package/server/{esm-shims-BZw-fTQ6.js → esm-shims-CbI3BVkl.js} +1 -1
- package/server/{event-store-DABarGNz.js → event-store-Cr5PQwFC.js} +1 -1
- package/server/{event-store-BVnON3vf.js → event-store-tdiY5eDZ.js} +3 -3
- package/server/{events-CmERlnwn.js → events-CC1dgUpx.js} +3 -3
- package/server/{events-LGeUehYW.js → events-CvvGK6LT.js} +1 -1
- package/server/{factory-CQNprtHe.js → factory-CynerjXO.js} +50 -13
- package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B0pmAz0a.js} +4 -4
- package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-_wUBRD3J.js} +2 -2
- package/server/{features--fOza5g5.js → features-Dhxz-wLc.js} +2 -2
- package/server/{feedback-target-Dqik2WTe.js → feedback-target-CPS15Vte.js} +7 -7
- package/server/{feedback-target-Dn9vfPpz.js → feedback-target-iygZwmMc.js} +1 -1
- package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-C9b6ccN1.js} +6 -5
- package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-qmiMbqTZ.js} +1 -1
- package/server/{flywheel-Q-38YhZG.js → flywheel-DMCUzDWg.js} +1 -1
- package/server/{flywheel-1Wd8WDlh.js → flywheel-DSSpWmqF.js} +13 -13
- package/server/{flywheel-DPUc8r3V.js → flywheel-DcBkQvgE.js} +14 -14
- package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-C-6zRLvM.js} +1 -1
- package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-DxbQKE1d.js} +8 -8
- package/server/forge-B-ZWyTRm.js +2 -0
- package/server/{forge-DBbDpiYc.js → forge-Ch9gCFod.js} +2 -2
- package/server/{from-hh6vTBGl.js → from-CJ_aH5jD.js} +1 -1
- package/server/{fts-db-6ponMie2.js → fts-db-CKgg0VKg.js} +2 -2
- package/server/{fts-operations-KIRK165y.js → fts-operations-BrL_VTRr.js} +2 -2
- package/server/git-utils-BVa07a4a.js +198 -0
- package/server/{git-utils-DmF5xkj8.js → git-utils-Dry_Ka_D.js} +1 -1
- package/server/{github-app-B3yfECo8.js → github-app-CMBdIFBQ.js} +11 -3
- package/server/{github-app-CeSVFL6C.js → github-app-CPfoFAdV.js} +1 -1
- package/server/{github-client-Dslipypz.js → github-client--XVlDpwM.js} +2 -2
- package/server/{github-client-4A6FgA8O.js → github-client-B4QsdE-X.js} +1 -1
- package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-BRbDW-qk.js} +2 -2
- package/server/harness-binary-CVio2m-u.js +106 -0
- package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-qHJBhy3Z.js} +9 -15
- package/server/{health-events-CZGZ5I-A.js → health-events-C9B8y1Hm.js} +2 -2
- package/server/{health-events-CnwV_SSz.js → health-events-CpfvuVmm.js} +1 -1
- package/server/{hooks-CoNscX84.js → hooks-DUXw8A0-.js} +2 -2
- package/server/{hooks-DvX33gY_.js → hooks-ltecuFqZ.js} +1 -1
- package/server/{hume-DSJt5eA_.js → hume-BEq0bUDg.js} +2 -2
- package/server/hume-B_DbflNM.js +3 -0
- package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-D7w9t3fE.js} +1 -1
- package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-w1ISSlhs.js} +2 -2
- package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-aQ1IxeI3.js} +2 -2
- package/server/{infra-DN2wSxle.js → infra-CzaSOgul.js} +4 -4
- package/server/{injection-DtlT8Akv.js → injection-DZ0PfYa4.js} +7 -7
- package/server/{injection-DK9zh_HL.js → injection-oNZeoDhL.js} +1 -1
- package/server/{inspect-agent-DKByUS_F.js → inspect-agent-DJKLWcVT.js} +15 -11
- package/server/inspect-agent-ch-F-5Ci.js +2 -0
- package/server/{internal-token-DhfFiwW7.js → internal-token-Bb4XeV2x.js} +2 -2
- package/server/{internal-token-7bYL5v6K.js → internal-token-DXdfprGr.js} +1 -1
- package/server/{io-BiM-7Zsx.js → io-B3_AHDfr.js} +160 -184
- package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-zhdvQicO.js} +7 -7
- package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CreaCkjW.js} +22 -22
- package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-Dy4vd0Oa.js} +1 -1
- package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-B5ushCvE.js} +8 -8
- package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DabvBWUp.js} +1 -1
- package/server/{issues-XYtFMxrH.js → issues-B6ToV6x1.js} +2 -2
- package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-Dhflo1SH.js} +3 -3
- package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-BKPJm4Hv.js} +3 -3
- package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-DdWbHEBu.js} +4 -4
- package/server/{launcher-generator-5DJRiovn.js → launcher-generator-CHVm7bGT.js} +10 -9
- package/server/{layers-cZx7ibtV.js → layers-DzxSTGNA.js} +2 -2
- package/server/lifecycle-DfeyBDwA.js +121 -0
- package/server/lifecycle-io-Bsnr2K4F.js +3 -0
- package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-D8iNBcux.js} +37 -37
- package/server/{lifecycle-CE7619Xw.js → lifecycle-sycO16hj.js} +6 -6
- package/server/{linear-client-BLyN-NiP.js → linear-client-D4zqMnX7.js} +2 -2
- package/server/{linear-client-Bj1l4FOA.js → linear-client-DqhDQO9k.js} +1 -1
- package/server/memory-fts-worker.js +1 -1
- package/server/{merge-hSC2BENe.js → merge-C_ZEhbqI.js} +3 -3
- package/server/{merge-CwX2_AWm.js → merge-DK23JEdS.js} +1 -1
- package/server/{merge-agent-CnORPiri.js → merge-agent-BQM3a8z5.js} +1 -1
- package/server/{merge-agent-DnBsms_V.js → merge-agent-XrB80vfT.js} +369 -213
- package/server/{merge-batch-C2w2U2eK.js → merge-batch-Bwoyr8Je.js} +1 -1
- package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BsFjGrQ8.js} +2 -2
- package/server/merge-ops-DlB1IM0Y.js +2 -0
- package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-C1KIVr0s.js} +2 -2
- package/server/{merge-set-D7YNU1ZB.js → merge-set-DLz0MkGT.js} +3 -3
- package/server/{merge-set-DHkzPCJU.js → merge-set-DnSYdBEp.js} +1 -1
- package/server/{merge-sync-De1FYva5.js → merge-sync-DZ9dojJn.js} +2 -2
- package/server/{merge-sync-CpGA9Kg7.js → merge-sync-SSv3E-pl.js} +1 -1
- package/server/{merge-train-SvkRJZ-k.js → merge-train-DxDfBTjr.js} +3 -3
- package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-CyYQUksx.js} +4 -4
- package/server/{merge-verification-B3meGcXF.js → merge-verification-CSizH3HY.js} +4 -4
- package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-Dt8YPN5S.js} +2 -2
- package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-Cx3K0hHi.js} +11 -8
- package/server/node_modules/.package-lock.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
- package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
- package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-BTkDrl4R.js} +1 -1
- package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-neK8dHQk.js} +23 -14
- package/server/package-lock.json +6 -6
- package/server/package.json +1 -1
- package/server/{pan-dir-Rw17YjT1.js → pan-dir-DeVUgwA7.js} +78 -58
- package/server/{paths-FP8v3lTz.js → paths-_zEts6wc.js} +2 -2
- package/server/{pickup-xi3KTLaJ.js → pickup-Dd0Znxxy.js} +2 -2
- package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-0HaEGDlH.js} +190 -68
- package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-6iCJplFZ.js} +1 -1
- package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-D0ykk59O.js} +2 -2
- package/server/{project-pipelines-B59NfN44.js → project-pipelines-2sK1apsO.js} +2 -2
- package/server/projects-9SkRpES9.js +3 -0
- package/server/{prompts-CbqaVjbe.js → prompts-Dp4Tpk39.js} +2 -2
- package/server/providers-DKkBXhxU.js +3 -0
- package/server/{providers-d3pwXGVE.js → providers-DV7ec8l7.js} +7 -7
- package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-CltymLRg.js} +4 -4
- package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-D2f6pjgA.js} +1 -1
- package/server/public/assets/{dist-DQNg4CiF.js → dist-BWR4qFiV.js} +1 -1
- package/server/public/assets/{dist-CLSlc6cV.js → dist-DEmlBBNQ.js} +3 -3
- package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-DnfiViPK.js} +1 -1
- package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-B8Wrmj9H.js} +1 -1
- package/server/public/assets/index-CUr1xv8w.css +1 -0
- package/server/public/assets/{index-SLYGA8AQ.js → index-CsSuZQBI.js} +148 -145
- package/server/public/assets/{linear-6Fi3qnGg.js → linear-C9zFQpkX.js} +1 -1
- package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +1 -0
- package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-lR8H7Yjd.js} +1 -1
- package/server/public/assets/{prod-ojHllFvN.js → prod-B1jCQihw.js} +4 -4
- package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-CVQ2guem.js} +1 -1
- package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eD1RB4gm.js} +1 -1
- package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-ChEC6dQn.js} +1 -1
- package/server/public/index.html +54 -10
- package/server/{pull-requests-D3N6HQzI.js → pull-requests--Ib2jTgy.js} +1 -1
- package/server/{pull-requests-CjjPj7v6.js → pull-requests-CXIhdCYD.js} +13 -11
- package/server/{queries-B5hl7lMQ.js → queries-6d7Cdtm7.js} +723 -110
- package/server/{rally-Dp0Gb1DN.js → rally-B708-nZn.js} +3 -3
- package/server/{rally-api-DGaFz5L5.js → rally-api-nY0ZANw3.js} +2 -2
- package/server/{rally-api-CKr0O4DJ.js → rally-api-yjQ0TfHd.js} +1 -1
- package/server/{rally-client-SVbjGvqj.js → rally-client-B1EJhfV0.js} +4 -4
- package/server/{rally-client-Cqf6EX_r.js → rally-client-CULK2XAY.js} +1 -1
- package/server/rally-njs_mJrt.js +3 -0
- package/server/reap-terminal-sessions-MWnqdLCJ.js +4 -0
- package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-N3BTkmX_.js} +11 -28
- package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-Dp4eLkt4.js} +6 -6
- package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-kA7XngID.js} +1 -1
- package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-uWbZfjms.js} +6 -6
- package/server/record-t6V-3Dcj.js +3 -0
- package/server/{record-update-BlB8mpKO.js → record-update-DACtKh6_.js} +1 -1
- package/server/record-update-Dq0t2uBG.js +310 -0
- package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-BJtIQuag.js} +2 -2
- package/server/{release-engine-CSI4K6Oj.js → release-engine-DZpmGGzb.js} +5 -5
- package/server/{release-set-BywwggrE.js → release-set-hnXd_kga.js} +3 -3
- package/server/{remote-DYziAkiZ.js → remote-4tiENDaI.js} +3 -3
- package/server/{remote-cnoeuDWn.js → remote-Br-ZWVIP.js} +3 -3
- package/server/{remote-agents-BNORDWAX.js → remote-agents-CRCg1L4H.js} +1 -1
- package/server/{remote-agents-CZ2rc8I0.js → remote-agents-nmty1mLu.js} +6 -6
- package/server/{remote-completion-W67FNQ-A.js → remote-completion-BbWNd10K.js} +13 -13
- package/server/resume-CcKqnTvE.js +3 -0
- package/server/{review-agent-CSswH985.js → review-agent-DJRO8EG8.js} +1 -1
- package/server/{review-agent-CqSqSHkU.js → review-agent-sKkE1FEL.js} +23 -23
- package/server/{review-artifacts-BBgnd5df.js → review-artifacts-BLbSC4ke.js} +5 -5
- package/server/{review-context-Ctp9BdNJ.js → review-context-BgX3lcCx.js} +9 -9
- package/server/{review-status-CCgPVK1h.js → review-status-A7quS5KJ.js} +56 -39
- package/server/review-status-C6n6-9f_.js +3 -0
- package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-tbOn_A_u.js} +3 -3
- package/server/review-status-source-CxuEjLGg.js +39 -0
- package/server/{review-status-sync-jnLgd04F.js → review-status-sync-BhSQ0d0l.js} +2 -2
- package/server/{review-status-sync-C792ksoJ.js → review-status-sync-To3-iS-N.js} +1 -1
- package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-C1Kg8n7t.js} +1 -1
- package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CTRNtzXO.js} +7 -7
- package/server/{rollup-B3kQmNpl.js → rollup-B53Y81xK.js} +1 -1
- package/server/{rollup-CLj_AK9f.js → rollup-WA0VD-Rr.js} +8 -8
- package/server/{scanner-C4NeC4FE.js → scanner-D2743cp8.js} +11 -7
- package/server/{sequence-io-Ce-6grIY.js → sequence-io-Cg0zYj_E.js} +4 -4
- package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-BGY8gjg-.js} +5 -5
- package/server/server.js +1348 -963
- package/server/{service-CqAY8Kmk.js → service-DCpB_SGd.js} +154 -51
- package/server/{session-fork-uNo4rMRA.js → session-fork-BQ8_6H32.js} +2 -2
- package/server/{session-history-DUehL3KN.js → session-history-CVZDpS3c.js} +4 -4
- package/server/{settings-DP2OYLXL.js → settings-BZ5m1UCl.js} +3 -3
- package/server/settings-D0OSwos5.js +2 -0
- package/server/{settings-D9grjmaP.js → settings-ylxwqwQG.js} +2 -2
- package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-BlxG6Xye.js} +3 -3
- package/server/{shadow-state-CDxEuPlE.js → shadow-state-C2_epgx2.js} +1 -1
- package/server/{shadow-state-a_ztFBJe.js → shadow-state-Dh-HzF2J.js} +2 -2
- package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-4bvjn9b3.js} +2 -2
- package/server/{ship-log-DDcueaIR.js → ship-log-ClSMIzZX.js} +1 -1
- package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-CHIxLr_d.js} +1 -1
- package/server/{smart-compaction--Oj65Uov.js → smart-compaction-r4pHQBIr.js} +7 -7
- package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-DWAorh2B.js} +25 -20
- package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-KC_UduxD.js} +1 -1
- package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-BXhav38U.js} +1 -1
- package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-DtrYvGJ-.js} +5 -5
- package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-C45ouoZ6.js} +2 -2
- package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-DJ3RzKxW.js} +3 -3
- package/server/{specialists-D0VBf8g_.js → specialists-D5fRZXmN.js} +1 -1
- package/server/specialists-DVj0hvaL.js +3 -0
- package/server/{specialists-CYRwELzc.js → specialists-DyFeedjn.js} +66 -76
- package/server/{specialists-DAegTvRt.js → specialists-JVO00bs7.js} +374 -220
- package/server/specs-nN45DG2X.js +3 -0
- package/server/{src-OLoJhUiJ.js → src-CG9mCkP6.js} +6 -6
- package/server/{src-BqTcrfO_.js → src-CMTQGyCK.js} +3 -3
- package/server/{src-Dpq1yFIl.js → src-U7_kTPEE.js} +338 -4
- package/server/{stack-health-I713ELld.js → stack-health-Df0YEZKa.js} +1 -1
- package/server/{stack-health-DV_f-lK0.js → stack-health-puygdaMd.js} +2 -2
- package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-BbFwCTb0.js} +4 -4
- package/server/{staleness-BbsGxmF2.js → staleness-Bpy41ngS.js} +15 -3
- package/server/{staleness-zGp4P1hd.js → staleness-Cbl_w4Bw.js} +1 -1
- package/server/{state-home-DixkE-up.js → state-home-CIGjwNfJ.js} +119 -54
- package/server/state-migrate-Dkzaxvny.js +487 -0
- package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CzEov_fq.js} +27 -21
- package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-sY_MHHgQ.js} +1 -1
- package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-BH66lhm7.js} +3 -3
- package/server/{summary-fork-CdLn8Chr.js → summary-fork-D8bXjCr7.js} +2 -2
- package/server/{summary-fork-f3DpgjXh.js → summary-fork-DHhJIsAL.js} +8 -8
- package/server/{supervisor-Ch8CDuoF.js → supervisor-BO-Zk_h-.js} +3 -3
- package/server/supervisor-BPy-o1A8.js +2 -0
- package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-CQ_fwUWF.js} +4 -4
- package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-Bza0ffAh.js} +24 -44
- package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-CEgauF4U.js} +15 -15
- package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-DXDt0Xa-.js} +7 -7
- package/server/{test-verdict-BRiSu7eW.js → test-verdict-CmUBK5cT.js} +1 -1
- package/server/{test-verdict-BQ1yx7d4.js → test-verdict-DFjjIHR5.js} +1 -1
- package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BDtLOIlO.js} +2 -2
- package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-DL566HbH.js} +1 -1
- package/server/tmux-DoThH6aj.js +3 -0
- package/server/{tmux-y1blSxks.js → tmux-ftABRAmc.js} +76 -44
- package/server/{token-LUrbM9sU.js → token-CsOhvw42.js} +2 -2
- package/server/{token-util-BZaDAQ8S.js → token-util-CTmczIfW.js} +1 -1
- package/server/token-util-DrHg8abn.js +3 -0
- package/server/{tracker-config-DSFZBdXP.js → tracker-config-B4itFzDo.js} +2 -2
- package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-BePq_oj-.js} +1 -1
- package/server/{tracker-utils-DiceZN3a.js → tracker-utils-tnxxqROg.js} +2 -2
- package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-m73vGebA.js} +1 -1
- package/server/{tunnel-DTng1rfQ.js → tunnel-B2vxjx_b.js} +3 -3
- package/server/{tunnel-WcJImbAC.js → tunnel-Cgj-IGIl.js} +1 -1
- package/server/{types-BjaZ1oqH.js → types-BBNjPcqU.js} +1 -1
- package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
- package/server/{uat-train-BpLnp7Cx.js → uat-train-CuEn0t9M.js} +28 -28
- package/server/{uat-train-Wismge7h.js → uat-train-cKfM-_WW.js} +1 -1
- package/server/{validation-BA4e5EGm.js → validation-B5JxoPUS.js} +259 -9
- package/server/{validation-CUWamZ4X.js → validation-CIi6pnI2.js} +1 -1
- package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BcnIbigL.js} +1 -1
- package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-C-lIHfUa.js} +1 -1
- package/server/{verification-runner-gAzh3cVD.js → verification-runner-Br0S_Ous.js} +103 -37
- package/server/{verification-runner-Dcksl_P-.js → verification-runner-CDj4lD4t.js} +1 -1
- package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-DKpNNW5i.js} +1 -1
- package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-Yb2bd3Fq.js} +16 -15
- package/server/{workflows-B8ROFlfw.js → workflows-C9WmILql.js} +39 -77
- package/server/workflows-D90rMOya.js +2 -0
- package/server/{workspace-DhTDA8nB.js → workspace-BVl4rihN.js} +3 -3
- package/server/{workspace-DSjUJaJN.js → workspace-DuUdndHe.js} +1 -1
- package/server/{workspace-config-BAAsAv-o.js → workspace-config-cEGcO6UT.js} +1 -1
- package/server/{workspace-manager-CcujONCR.js → workspace-manager-ZTdJAy9M.js} +1 -1
- package/server/{workspace-manager-DsN52IMG.js → workspace-manager-hLUv3ADC.js} +23 -16
- package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-CskwzzhL.js} +2 -2
- package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-DNpMixRq.js} +1 -1
- package/server/{workspaces-Dmlh1YXm.js → workspaces-hWvy9eKs.js} +276 -110
- package/sync-sources/agents/pan-inspect-agent.md +1 -1
- package/sync-sources/agents/pan-merge-agent.md +1 -1
- package/sync-sources/agents/pan-planning-agent.md +4 -4
- package/sync-sources/agents/pan-work-agent.md +1 -1
- package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
- package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
- package/sync-sources/hooks/record-cost-event.js +363 -71
- package/sync-sources/hooks/session-start-hook +7 -0
- package/sync-sources/hooks/work-agent-stop-hook +1 -1
- package/sync-sources/rules/per-bead-durability.md +1 -1
- package/sync-sources/rules/prd-authoring.md +1 -1
- package/sync-sources/skills/feature-work/SKILL.md +1 -1
- package/sync-sources/skills/pan/SKILL.md +2 -2
- package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
- package/sync-sources/skills/pan-approve/SKILL.md +1 -1
- package/sync-sources/skills/pan-close/SKILL.md +1 -1
- package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
- package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
- package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
- package/sync-sources/skills/pan-plan/SKILL.md +6 -6
- package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
- package/sync-sources/skills/pan-recap/SKILL.md +2 -2
- package/sync-sources/skills/pan-review/SKILL.md +1 -1
- package/sync-sources/skills/pan-start/SKILL.md +26 -3
- package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
- package/sync-sources/skills/pan-sync/SKILL.md +1 -1
- package/sync-sources/skills/pan-task/SKILL.md +2 -2
- package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
- package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
- package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
- package/sync-sources/skills/plan/SKILL.md +11 -11
- package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
- package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
- package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
- package/server/agent-state-BV_6RHnO.js +0 -3
- package/server/agents-Czz6R57Z.js +0 -3
- package/server/cli-ChErG518.js +0 -3
- package/server/codex-BBeZ8c3s.js +0 -3
- package/server/deacon-swarm-uudlSCLM.js +0 -2
- package/server/dist-BEDL2alY.js +0 -3
- package/server/forge-DbhJyH6u.js +0 -2
- package/server/git-utils-Bkxzr1Xf.js +0 -129
- package/server/hume-BrA1tUuk.js +0 -3
- package/server/inspect-agent-CyXNo9fM.js +0 -2
- package/server/lifecycle-io-CUpsxG0p.js +0 -3
- package/server/merge-ops-BpTtuO8x.js +0 -2
- package/server/projects-IRHJIPYC.js +0 -3
- package/server/providers-BqCdTryq.js +0 -3
- package/server/public/assets/index-C6NLz_1S.css +0 -1
- package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
- package/server/rally-DGimSRBQ.js +0 -3
- package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
- package/server/record-update-RviRDSNs.js +0 -168
- package/server/record-us0YECMO.js +0 -3
- package/server/resume-OyN3dEXE.js +0 -3
- package/server/review-status-DXeqFpk5.js +0 -3
- package/server/settings-BaPXXJsT.js +0 -2
- package/server/specialists-C6WkeKFK.js +0 -3
- package/server/specs-BsNcum0h.js +0 -3
- package/server/state-migrate-_zJJ6XKE.js +0 -362
- package/server/supervisor-Qy1QecAs.js +0 -2
- package/server/tmux-HQLgwo_C.js +0 -3
- package/server/token-util-Cg-QnowA.js +0 -3
- package/server/workflows-C5c-RPsY.js +0 -2
|
@@ -0,0 +1,487 @@
|
|
|
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";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { Effect } from "effect";
|
|
6
|
+
import { tmpdir } from "node:os";
|
|
7
|
+
import { createReadStream, createWriteStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
8
|
+
import { chmod, lstat, mkdir, readdir, rename, rm, utimes } from "node:fs/promises";
|
|
9
|
+
import { execFile } from "node:child_process";
|
|
10
|
+
import { promisify } from "node:util";
|
|
11
|
+
import { createHash } from "node:crypto";
|
|
12
|
+
import { pipeline } from "node:stream/promises";
|
|
13
|
+
//#region ../../lib/state-migration-manifest.ts
|
|
14
|
+
init_projects();
|
|
15
|
+
init_state_migration_lock();
|
|
16
|
+
init_state_plane();
|
|
17
|
+
init_auto_commit();
|
|
18
|
+
init_state_home();
|
|
19
|
+
async function sha256(path, signal) {
|
|
20
|
+
const hash = createHash("sha256");
|
|
21
|
+
for await (const chunk of createReadStream(path, { signal })) {
|
|
22
|
+
signal?.throwIfAborted();
|
|
23
|
+
hash.update(chunk);
|
|
24
|
+
}
|
|
25
|
+
return hash.digest("hex");
|
|
26
|
+
}
|
|
27
|
+
async function manifestEntry(source, destination, signal) {
|
|
28
|
+
signal?.throwIfAborted();
|
|
29
|
+
const [stat, digest] = await Promise.all([lstat(source), sha256(source, signal)]);
|
|
30
|
+
signal?.throwIfAborted();
|
|
31
|
+
return {
|
|
32
|
+
source,
|
|
33
|
+
destination,
|
|
34
|
+
mode: stat.mode & 511,
|
|
35
|
+
size: stat.size,
|
|
36
|
+
sha256: digest
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function verifyStateMigrationManifest(entries) {
|
|
40
|
+
for (const expected of entries) {
|
|
41
|
+
const actual = await manifestEntry(expected.destination, expected.destination);
|
|
42
|
+
if ((actual.mode & 64) !== (expected.mode & 64) || actual.size !== expected.size || actual.sha256 !== expected.sha256) throw new Error(`State migration no-loss mismatch: ${expected.source} -> ${expected.destination}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region ../../cli/commands/admin/xbrief-state-migrate.ts
|
|
47
|
+
init_lifecycle();
|
|
48
|
+
promisify(execFile);
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region ../../cli/commands/admin/state-migrate.ts
|
|
51
|
+
init_auto_commit();
|
|
52
|
+
init_projects();
|
|
53
|
+
init_state_home();
|
|
54
|
+
const GIT_COMMAND_TIMEOUT_MS = 3e4;
|
|
55
|
+
const execFileDetached = execFile;
|
|
56
|
+
function killProcessTree(child) {
|
|
57
|
+
if (!child?.pid) return;
|
|
58
|
+
try {
|
|
59
|
+
if (process.platform === "win32") child.kill("SIGKILL");
|
|
60
|
+
else process.kill(-child.pid, "SIGKILL");
|
|
61
|
+
} catch {
|
|
62
|
+
try {
|
|
63
|
+
child.kill("SIGKILL");
|
|
64
|
+
} catch {}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function git(cwd, args, signal, env) {
|
|
68
|
+
signal?.throwIfAborted();
|
|
69
|
+
const command = `git ${args.join(" ")}`;
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
let child;
|
|
72
|
+
let termination;
|
|
73
|
+
const terminate = (kind) => {
|
|
74
|
+
if (termination) return;
|
|
75
|
+
termination = kind;
|
|
76
|
+
killProcessTree(child);
|
|
77
|
+
};
|
|
78
|
+
const timeout = setTimeout(() => terminate("timeout"), GIT_COMMAND_TIMEOUT_MS);
|
|
79
|
+
const onAbort = () => terminate("abort");
|
|
80
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
81
|
+
child = execFileDetached("git", args, {
|
|
82
|
+
cwd,
|
|
83
|
+
env: {
|
|
84
|
+
...process.env,
|
|
85
|
+
...env
|
|
86
|
+
},
|
|
87
|
+
encoding: "utf8",
|
|
88
|
+
maxBuffer: 32 * 1024 * 1024,
|
|
89
|
+
detached: process.platform !== "win32"
|
|
90
|
+
}, (error, stdout, stderr) => {
|
|
91
|
+
clearTimeout(timeout);
|
|
92
|
+
signal?.removeEventListener("abort", onAbort);
|
|
93
|
+
if (termination === "abort") reject(signal?.reason ?? new DOMException(`${command} was cancelled`, "AbortError"));
|
|
94
|
+
else if (termination === "timeout") reject(/* @__PURE__ */ new Error(`${command} timed out after ${GIT_COMMAND_TIMEOUT_MS / 1e3}s`));
|
|
95
|
+
else if (error) reject(Object.assign(error, {
|
|
96
|
+
stdout,
|
|
97
|
+
stderr
|
|
98
|
+
}));
|
|
99
|
+
else resolve(stdout.trim());
|
|
100
|
+
});
|
|
101
|
+
if (signal?.aborted) terminate("abort");
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function destinationForTracked(path) {
|
|
105
|
+
if (!path.startsWith(".pan/")) return null;
|
|
106
|
+
const flat = path.slice(5);
|
|
107
|
+
return STATE_BRANCH_PATHS.some((prefix) => flat.startsWith(prefix)) ? flat : null;
|
|
108
|
+
}
|
|
109
|
+
async function trackedManifest(repo, sourceSha, stateRoot, signal, copyFile = copyFileAbortable) {
|
|
110
|
+
const paths = (await git(repo, [
|
|
111
|
+
"ls-tree",
|
|
112
|
+
"-r",
|
|
113
|
+
"--name-only",
|
|
114
|
+
sourceSha,
|
|
115
|
+
"--",
|
|
116
|
+
".pan"
|
|
117
|
+
], signal)).split("\n").filter(Boolean);
|
|
118
|
+
const manifest = [];
|
|
119
|
+
for (const path of paths) {
|
|
120
|
+
signal?.throwIfAborted();
|
|
121
|
+
const destination = destinationForTracked(path);
|
|
122
|
+
if (!destination) continue;
|
|
123
|
+
const source = join(repo, path);
|
|
124
|
+
const target = join(stateRoot, destination);
|
|
125
|
+
if (!existsSync(target)) await copyFile(source, target, signal);
|
|
126
|
+
manifest.push(await manifestEntry(source, target, signal));
|
|
127
|
+
}
|
|
128
|
+
return manifest;
|
|
129
|
+
}
|
|
130
|
+
async function createOrphanStateCommit(repo, sourceSha, signal) {
|
|
131
|
+
const index = join(tmpdir(), `overdeck-state-index-${process.pid}-${Date.now()}`);
|
|
132
|
+
const env = { GIT_INDEX_FILE: index };
|
|
133
|
+
try {
|
|
134
|
+
await git(repo, ["read-tree", "--empty"], signal, env);
|
|
135
|
+
const rows = (await git(repo, [
|
|
136
|
+
"ls-tree",
|
|
137
|
+
"-r",
|
|
138
|
+
sourceSha,
|
|
139
|
+
"--",
|
|
140
|
+
".pan"
|
|
141
|
+
], signal)).split("\n").filter(Boolean);
|
|
142
|
+
for (const row of rows) {
|
|
143
|
+
const match = row.match(/^(\d+)\s+\w+\s+([0-9a-f]+)\t(.+)$/);
|
|
144
|
+
if (!match) continue;
|
|
145
|
+
const destination = destinationForTracked(match[3]);
|
|
146
|
+
if (destination) await git(repo, [
|
|
147
|
+
"update-index",
|
|
148
|
+
"--add",
|
|
149
|
+
"--cacheinfo",
|
|
150
|
+
`${match[1]},${match[2]},${destination}`
|
|
151
|
+
], signal, env);
|
|
152
|
+
}
|
|
153
|
+
return await git(repo, [
|
|
154
|
+
"commit-tree",
|
|
155
|
+
await git(repo, ["write-tree"], signal, env),
|
|
156
|
+
"-m",
|
|
157
|
+
"chore(state): seed overdeck-state"
|
|
158
|
+
], signal, env);
|
|
159
|
+
} finally {
|
|
160
|
+
rmSync(index, { force: true });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
let copySequence = 0;
|
|
164
|
+
async function copyFileAbortable(source, destination, signal) {
|
|
165
|
+
signal?.throwIfAborted();
|
|
166
|
+
const stat = await lstat(source);
|
|
167
|
+
const temporary = join(dirname(destination), `.overdeck-migrate-${process.pid}-${copySequence++}`);
|
|
168
|
+
await mkdir(dirname(destination), { recursive: true });
|
|
169
|
+
try {
|
|
170
|
+
await pipeline(createReadStream(source, { signal }), createWriteStream(temporary, { mode: stat.mode & 511 }), { signal });
|
|
171
|
+
signal?.throwIfAborted();
|
|
172
|
+
await chmod(temporary, stat.mode & 511);
|
|
173
|
+
await utimes(temporary, stat.atime, stat.mtime);
|
|
174
|
+
signal?.throwIfAborted();
|
|
175
|
+
await rename(temporary, destination);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
if (signal?.aborted) throw signal.reason;
|
|
178
|
+
throw error;
|
|
179
|
+
} finally {
|
|
180
|
+
await rm(temporary, { force: true });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function filesEqualAbortable(source, destination, signal) {
|
|
184
|
+
const [sourceEntry, destinationEntry] = await Promise.all([manifestEntry(source, source, signal), manifestEntry(destination, destination, signal)]);
|
|
185
|
+
return sourceEntry.size === destinationEntry.size && sourceEntry.sha256 === destinationEntry.sha256;
|
|
186
|
+
}
|
|
187
|
+
async function preserveUntrackedNotes(legacyStateSource, stateRoot, paths, signal, copyFile = copyFileAbortable) {
|
|
188
|
+
const manifest = [];
|
|
189
|
+
for (const path of paths) {
|
|
190
|
+
signal?.throwIfAborted();
|
|
191
|
+
const source = join(legacyStateSource, path);
|
|
192
|
+
let sourceStat;
|
|
193
|
+
try {
|
|
194
|
+
sourceStat = await lstat(source);
|
|
195
|
+
} catch (error) {
|
|
196
|
+
if (error.code === "ENOENT") continue;
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
if (sourceStat.isSymbolicLink()) throw new Error(`Legacy state changed during migration: symbolic link appeared at ${source}`);
|
|
200
|
+
if (!sourceStat.isFile()) continue;
|
|
201
|
+
const destination = join(stateRoot, "notes", path.slice(5));
|
|
202
|
+
if (existsSync(destination)) {
|
|
203
|
+
if (!await filesEqualAbortable(source, destination, signal)) throw new Error(`Untracked-note destination collision: ${destination}`);
|
|
204
|
+
} else await copyFile(source, destination, signal);
|
|
205
|
+
manifest.push(await manifestEntry(source, destination, signal));
|
|
206
|
+
}
|
|
207
|
+
return manifest;
|
|
208
|
+
}
|
|
209
|
+
async function assertNoLegacySymlinks(source, signal, allowMissing = false) {
|
|
210
|
+
signal?.throwIfAborted();
|
|
211
|
+
let stat;
|
|
212
|
+
try {
|
|
213
|
+
stat = await lstat(source);
|
|
214
|
+
} catch (error) {
|
|
215
|
+
if (allowMissing && error.code === "ENOENT") return;
|
|
216
|
+
throw error;
|
|
217
|
+
}
|
|
218
|
+
if (stat.isSymbolicLink()) throw new Error(`Legacy state contains unsupported symbolic link: ${source}. Resolve it before migrating so canonical state cannot depend on the legacy tree.`);
|
|
219
|
+
if (!stat.isDirectory()) return;
|
|
220
|
+
for (const entry of await readdir(source, { withFileTypes: true })) await assertNoLegacySymlinks(join(source, entry.name), signal);
|
|
221
|
+
}
|
|
222
|
+
async function copyLegacyState(sourceRoot, stateRoot, signal, copyFile = copyFileAbortable) {
|
|
223
|
+
const manifest = [];
|
|
224
|
+
const sources = STATE_BRANCH_PATHS.map((sourcePath) => ({
|
|
225
|
+
source: join(sourceRoot, ".pan", sourcePath),
|
|
226
|
+
destination: join(stateRoot, sourcePath)
|
|
227
|
+
})).filter(({ source }) => existsSync(source));
|
|
228
|
+
await assertNoLegacySymlinks(join(sourceRoot, ".pan"), signal, true);
|
|
229
|
+
const visit = async (sourceDir, destinationDir) => {
|
|
230
|
+
await mkdir(destinationDir, { recursive: true });
|
|
231
|
+
for (const entry of await readdir(sourceDir, { withFileTypes: true })) {
|
|
232
|
+
signal?.throwIfAborted();
|
|
233
|
+
const sourceEntry = join(sourceDir, entry.name);
|
|
234
|
+
const destinationEntry = join(destinationDir, entry.name);
|
|
235
|
+
if (entry.isDirectory()) await visit(sourceEntry, destinationEntry);
|
|
236
|
+
else if (entry.isFile()) {
|
|
237
|
+
await copyFile(sourceEntry, destinationEntry, signal);
|
|
238
|
+
signal?.throwIfAborted();
|
|
239
|
+
manifest.push(await manifestEntry(sourceEntry, destinationEntry, signal));
|
|
240
|
+
} else if (entry.isSymbolicLink()) throw new Error(`Legacy state changed during migration: symbolic link appeared at ${sourceEntry}`);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
for (const { source, destination } of sources) {
|
|
244
|
+
signal?.throwIfAborted();
|
|
245
|
+
await visit(source, destination);
|
|
246
|
+
}
|
|
247
|
+
return manifest;
|
|
248
|
+
}
|
|
249
|
+
function hasNonStateDirtyState(porcelain) {
|
|
250
|
+
return porcelain.split("\n").filter(Boolean).some((line) => {
|
|
251
|
+
const path = line.slice(3).split(" -> ").at(-1) ?? "";
|
|
252
|
+
if (path === ".pan" || path.startsWith(".pan/")) return false;
|
|
253
|
+
return true;
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
function dedupeManifest(entries) {
|
|
257
|
+
return [...new Map(entries.map((entry) => [entry.destination, entry])).values()];
|
|
258
|
+
}
|
|
259
|
+
const GITIGNORE_MANAGED_LINES = [
|
|
260
|
+
"# PAN-2541: permanent state is on overdeck-state; workspace runtime stays local.",
|
|
261
|
+
".pan/",
|
|
262
|
+
".overdeck/continue.json",
|
|
263
|
+
".overdeck/spec.vbrief.json",
|
|
264
|
+
".overdeck/sessions.jsonl",
|
|
265
|
+
".overdeck/feedback/",
|
|
266
|
+
".overdeck/review/",
|
|
267
|
+
".overdeck/test/",
|
|
268
|
+
".overdeck/kickoff.md",
|
|
269
|
+
".overdeck/agent-mcp.json"
|
|
270
|
+
];
|
|
271
|
+
function rewriteGitignore(repo) {
|
|
272
|
+
const path = join(repo, ".gitignore");
|
|
273
|
+
const prior = existsSync(path) ? readFileSync(path, "utf8") : "";
|
|
274
|
+
const managed = new Set([...GITIGNORE_MANAGED_LINES, ".overdeck/"]);
|
|
275
|
+
const kept = prior.split("\n").filter((line) => !managed.has(line.trim()));
|
|
276
|
+
while (kept.length > 0 && kept[kept.length - 1]?.trim() === "") kept.pop();
|
|
277
|
+
writeFileSync(path, [
|
|
278
|
+
...kept,
|
|
279
|
+
"",
|
|
280
|
+
...GITIGNORE_MANAGED_LINES,
|
|
281
|
+
""
|
|
282
|
+
].join("\n"));
|
|
283
|
+
}
|
|
284
|
+
async function migrateProjectState(projectKey, options = {}, projectOverride) {
|
|
285
|
+
const project = projectOverride ?? getProjectSync(projectKey);
|
|
286
|
+
if (!project) throw new Error(`Unknown project: ${projectKey}`);
|
|
287
|
+
const { repoPath: repo } = resolveInfraRepo(project);
|
|
288
|
+
const legacyStateSource = project.path;
|
|
289
|
+
const sourceIsHostRepo = legacyStateSource === repo;
|
|
290
|
+
const stateRoot = stateWorktreePath(project, { projectKey });
|
|
291
|
+
console.log(`PAN-2541 state migration plan for ${projectKey}:`);
|
|
292
|
+
console.log(` ${legacyStateSource}/.pan/{${STATE_BRANCH_PATHS.map((p) => p.slice(0, -1)).join(",")}} -> ${stateRoot}/`);
|
|
293
|
+
console.log(` ${legacyStateSource}/.pan/context -> ${legacyStateSource}/.overdeck/context`);
|
|
294
|
+
if (options.dryRun) return;
|
|
295
|
+
options.signal?.throwIfAborted();
|
|
296
|
+
const release = acquireStateMigrationLock(projectKey);
|
|
297
|
+
try {
|
|
298
|
+
const flush = await Effect.runPromise(flushAutoCommits(repo, options.signal));
|
|
299
|
+
if (flush.errored) throw new Error(`State writer did not quiesce before migration: ${flush.reason ?? "unknown error"}`);
|
|
300
|
+
options.signal?.throwIfAborted();
|
|
301
|
+
await assertNoLegacySymlinks(join(legacyStateSource, ".pan"), options.signal, true);
|
|
302
|
+
if (hasNonStateDirtyState(await git(repo, ["status", "--porcelain"], options.signal))) throw new Error("Primary checkout is dirty outside legacy state paths; migration refused before mutation");
|
|
303
|
+
await git(repo, [
|
|
304
|
+
"fetch",
|
|
305
|
+
"--prune",
|
|
306
|
+
"origin"
|
|
307
|
+
], options.signal);
|
|
308
|
+
const sourceMainSha = await git(repo, ["rev-parse", "main"], options.signal);
|
|
309
|
+
if (sourceMainSha !== await git(repo, ["rev-parse", "origin/main"], options.signal)) throw new Error("main is not exactly at origin/main; migration refused");
|
|
310
|
+
if (await git(repo, ["show", `origin/overdeck-state:migration-complete.json`], options.signal).catch(() => {
|
|
311
|
+
options.signal?.throwIfAborted();
|
|
312
|
+
return "";
|
|
313
|
+
})) {
|
|
314
|
+
console.log("State migration already complete on origin; nothing to do.");
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
let stateSha = await git(repo, ["rev-parse", STATE_BRANCH], options.signal).catch(() => {
|
|
318
|
+
options.signal?.throwIfAborted();
|
|
319
|
+
return "";
|
|
320
|
+
});
|
|
321
|
+
const remoteStateSha = await git(repo, ["rev-parse", `origin/${STATE_BRANCH}`], options.signal).catch(() => {
|
|
322
|
+
options.signal?.throwIfAborted();
|
|
323
|
+
return "";
|
|
324
|
+
});
|
|
325
|
+
if (stateSha && remoteStateSha && stateSha !== remoteStateSha) throw new Error("Local and remote overdeck-state diverged; refusing non-fast-forward migration");
|
|
326
|
+
if (!stateSha) {
|
|
327
|
+
stateSha = remoteStateSha || await createOrphanStateCommit(repo, sourceMainSha, options.signal);
|
|
328
|
+
await git(repo, [
|
|
329
|
+
"update-ref",
|
|
330
|
+
`refs/heads/${STATE_BRANCH}`,
|
|
331
|
+
stateSha
|
|
332
|
+
], options.signal);
|
|
333
|
+
}
|
|
334
|
+
if (!remoteStateSha) await git(repo, [
|
|
335
|
+
"push",
|
|
336
|
+
"origin",
|
|
337
|
+
STATE_BRANCH
|
|
338
|
+
], options.signal);
|
|
339
|
+
if (!existsSync(stateRoot)) {
|
|
340
|
+
options.signal?.throwIfAborted();
|
|
341
|
+
mkdirSync(dirname(stateRoot), { recursive: true });
|
|
342
|
+
await git(repo, [
|
|
343
|
+
"worktree",
|
|
344
|
+
"add",
|
|
345
|
+
stateRoot,
|
|
346
|
+
STATE_BRANCH
|
|
347
|
+
], options.signal);
|
|
348
|
+
}
|
|
349
|
+
const manifest = sourceIsHostRepo ? dedupeManifest([...await trackedManifest(repo, sourceMainSha, stateRoot, options.signal), ...await copyLegacyState(legacyStateSource, stateRoot, options.signal)]) : await copyLegacyState(legacyStateSource, stateRoot, options.signal);
|
|
350
|
+
if (manifest.length > 0) {
|
|
351
|
+
await git(stateRoot, ["add", "--all"], options.signal);
|
|
352
|
+
if (await git(stateRoot, [
|
|
353
|
+
"diff",
|
|
354
|
+
"--cached",
|
|
355
|
+
"--name-only"
|
|
356
|
+
], options.signal)) await git(stateRoot, [
|
|
357
|
+
"commit",
|
|
358
|
+
"-m",
|
|
359
|
+
"chore(state): seed legacy project state"
|
|
360
|
+
], options.signal);
|
|
361
|
+
await git(stateRoot, [
|
|
362
|
+
"push",
|
|
363
|
+
"origin",
|
|
364
|
+
STATE_BRANCH
|
|
365
|
+
], options.signal);
|
|
366
|
+
}
|
|
367
|
+
const untracked = sourceIsHostRepo ? (await git(repo, [
|
|
368
|
+
"ls-files",
|
|
369
|
+
"--others",
|
|
370
|
+
"--",
|
|
371
|
+
".pan"
|
|
372
|
+
], options.signal)).split("\n").filter((path) => path.split("/").length === 2 && existsSync(join(repo, path)) && lstatSync(join(repo, path)).isFile()) : existsSync(join(legacyStateSource, ".pan")) ? readdirSync(join(legacyStateSource, ".pan"), { withFileTypes: true }).filter((entry) => entry.isFile()).map((entry) => `.pan/${entry.name}`) : [];
|
|
373
|
+
manifest.push(...await preserveUntrackedNotes(legacyStateSource, stateRoot, untracked, options.signal));
|
|
374
|
+
if (untracked.length > 0) {
|
|
375
|
+
await git(stateRoot, ["add", "notes"], options.signal);
|
|
376
|
+
if (await git(stateRoot, [
|
|
377
|
+
"diff",
|
|
378
|
+
"--cached",
|
|
379
|
+
"--name-only"
|
|
380
|
+
], options.signal)) await git(stateRoot, [
|
|
381
|
+
"commit",
|
|
382
|
+
"-m",
|
|
383
|
+
"chore(state): preserve untracked operator notes"
|
|
384
|
+
], options.signal);
|
|
385
|
+
await git(stateRoot, [
|
|
386
|
+
"push",
|
|
387
|
+
"origin",
|
|
388
|
+
STATE_BRANCH
|
|
389
|
+
], options.signal);
|
|
390
|
+
}
|
|
391
|
+
if (await git(repo, ["rev-parse", "main"], options.signal) !== sourceMainSha) throw new Error("main advanced during migration; refusing cleanup");
|
|
392
|
+
options.signal?.throwIfAborted();
|
|
393
|
+
if (sourceIsHostRepo) await git(repo, [
|
|
394
|
+
"rm",
|
|
395
|
+
"-r",
|
|
396
|
+
"--cached",
|
|
397
|
+
"--ignore-unmatch",
|
|
398
|
+
".pan/records",
|
|
399
|
+
".pan/continues",
|
|
400
|
+
".pan/specs",
|
|
401
|
+
".pan/drafts",
|
|
402
|
+
".pan/review",
|
|
403
|
+
".pan/test",
|
|
404
|
+
".pan/feedback",
|
|
405
|
+
".pan/backlog",
|
|
406
|
+
".pan/notes"
|
|
407
|
+
]);
|
|
408
|
+
const oldContext = join(legacyStateSource, ".pan", "context");
|
|
409
|
+
const newContext = join(legacyStateSource, ".overdeck", "context");
|
|
410
|
+
let movedContext = false;
|
|
411
|
+
if (existsSync(oldContext) && !existsSync(newContext)) {
|
|
412
|
+
mkdirSync(dirname(newContext), { recursive: true });
|
|
413
|
+
renameSync(oldContext, newContext);
|
|
414
|
+
movedContext = true;
|
|
415
|
+
}
|
|
416
|
+
rewriteGitignore(legacyStateSource);
|
|
417
|
+
if (sourceIsHostRepo) {
|
|
418
|
+
if (await git(repo, [
|
|
419
|
+
"ls-files",
|
|
420
|
+
"--",
|
|
421
|
+
".pan/context"
|
|
422
|
+
])) await git(repo, [
|
|
423
|
+
"add",
|
|
424
|
+
"-u",
|
|
425
|
+
"--",
|
|
426
|
+
".pan/context"
|
|
427
|
+
]);
|
|
428
|
+
const addPaths = [".gitignore"];
|
|
429
|
+
if (movedContext || existsSync(newContext)) addPaths.push(".overdeck/context");
|
|
430
|
+
await git(repo, [
|
|
431
|
+
"add",
|
|
432
|
+
"--",
|
|
433
|
+
...addPaths
|
|
434
|
+
]);
|
|
435
|
+
if (await git(repo, [
|
|
436
|
+
"diff",
|
|
437
|
+
"--cached",
|
|
438
|
+
"--name-only"
|
|
439
|
+
])) await git(repo, [
|
|
440
|
+
"commit",
|
|
441
|
+
"-m",
|
|
442
|
+
"chore(state): move permanent state to overdeck-state"
|
|
443
|
+
]);
|
|
444
|
+
}
|
|
445
|
+
await verifyStateMigrationManifest(manifest);
|
|
446
|
+
for (const entry of manifest) rmSync(entry.source, { force: true });
|
|
447
|
+
if (!sourceIsHostRepo) rmSync(join(legacyStateSource, ".pan"), {
|
|
448
|
+
recursive: true,
|
|
449
|
+
force: true
|
|
450
|
+
});
|
|
451
|
+
stateSha = await git(stateRoot, ["rev-parse", "HEAD"]);
|
|
452
|
+
writeFileSync(join(stateRoot, MIGRATION_COMPLETE_MARKER), `${JSON.stringify({
|
|
453
|
+
sourceMainSha,
|
|
454
|
+
stateBranchSha: stateSha,
|
|
455
|
+
completedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
456
|
+
version: 1
|
|
457
|
+
}, null, 2)}\n`);
|
|
458
|
+
await git(stateRoot, ["add", MIGRATION_COMPLETE_MARKER]);
|
|
459
|
+
await git(stateRoot, [
|
|
460
|
+
"commit",
|
|
461
|
+
"-m",
|
|
462
|
+
"chore(state): complete state migration"
|
|
463
|
+
]);
|
|
464
|
+
await git(repo, [
|
|
465
|
+
"push",
|
|
466
|
+
"--atomic",
|
|
467
|
+
"--dry-run",
|
|
468
|
+
"origin",
|
|
469
|
+
"main",
|
|
470
|
+
STATE_BRANCH
|
|
471
|
+
]);
|
|
472
|
+
await git(repo, [
|
|
473
|
+
"push",
|
|
474
|
+
"--atomic",
|
|
475
|
+
"origin",
|
|
476
|
+
"main",
|
|
477
|
+
STATE_BRANCH
|
|
478
|
+
]);
|
|
479
|
+
clearStateMigrationCache();
|
|
480
|
+
} finally {
|
|
481
|
+
release();
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
//#endregion
|
|
485
|
+
export { migrateProjectState };
|
|
486
|
+
|
|
487
|
+
//# sourceMappingURL=state-migrate-Dkzaxvny.js.map
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { c as
|
|
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 {
|
|
14
|
-
import {
|
|
15
|
-
import { a as
|
|
16
|
-
import {
|
|
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";
|
|
17
18
|
import "node:path";
|
|
18
19
|
import { Effect } from "effect";
|
|
19
20
|
import { existsSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "fs";
|
|
@@ -35,6 +36,7 @@ init_behavior();
|
|
|
35
36
|
init_persistent_logger();
|
|
36
37
|
init_review_status();
|
|
37
38
|
init_io();
|
|
39
|
+
init_harness_binary();
|
|
38
40
|
init_codex();
|
|
39
41
|
init_launcher_generator();
|
|
40
42
|
init_dag();
|
|
@@ -359,13 +361,17 @@ async function getAgentWorkspacePromise(agentId) {
|
|
|
359
361
|
const trimmed = paneCwd.trim();
|
|
360
362
|
if (trimmed && existsSync(trimmed)) return trimmed;
|
|
361
363
|
} catch {}
|
|
362
|
-
const
|
|
364
|
+
const isStrikeAgent = agentId.startsWith("strike-");
|
|
365
|
+
const issueId = agentId.replace(/^(agent-|planning-|strike-)/, "").toUpperCase();
|
|
363
366
|
const prefix = extractPrefixSync(issueId);
|
|
364
367
|
if (!prefix) return null;
|
|
365
368
|
try {
|
|
366
369
|
const projectPath = getProjectPathByPrefix(prefix);
|
|
367
|
-
const
|
|
368
|
-
|
|
370
|
+
const workspaceNames = isStrikeAgent ? [`feature-${issueId.toLowerCase()}-strike`, `feature-${issueId.toLowerCase()}`] : [`feature-${issueId.toLowerCase()}`];
|
|
371
|
+
for (const workspaceName of workspaceNames) {
|
|
372
|
+
const workspacePath = join$1(projectPath, "workspaces", workspaceName);
|
|
373
|
+
if (existsSync(workspacePath)) return workspacePath;
|
|
374
|
+
}
|
|
369
375
|
return projectPath;
|
|
370
376
|
} catch {
|
|
371
377
|
return null;
|
|
@@ -1415,7 +1421,7 @@ async function remediateFlywheelOrchestrator(agentId, now, actions, reason) {
|
|
|
1415
1421
|
now
|
|
1416
1422
|
});
|
|
1417
1423
|
if (decision.kind === "noop") return;
|
|
1418
|
-
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-
|
|
1424
|
+
const { resumeFlywheel, pauseFlywheel } = await import("./flywheel-DMCUzDWg.js");
|
|
1419
1425
|
const prev = readStuckRemediationState(agentId);
|
|
1420
1426
|
const nowIso = new Date(now).toISOString();
|
|
1421
1427
|
if (decision.kind === "escalate") {
|
|
@@ -1521,4 +1527,4 @@ async function checkStuckAgentRemediation(opts = {}) {
|
|
|
1521
1527
|
//#endregion
|
|
1522
1528
|
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 };
|
|
1523
1529
|
|
|
1524
|
-
//# sourceMappingURL=stuck-remediation-
|
|
1530
|
+
//# sourceMappingURL=stuck-remediation-CzEov_fq.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-
|
|
1
|
+
import { r as shouldSkipIdlePokeForAgent } from "./stuck-remediation-CzEov_fq.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-CzaSOgul.js";
|
|
2
|
+
import { a as init_event_store, i as initEventStore, r as getSharedDb } from "./event-store-tdiY5eDZ.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-BH66lhm7.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-r4pHQBIr.js";
|
|
2
|
+
import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-DHhJIsAL.js";
|
|
3
3
|
init_summary_fork();
|
|
4
4
|
export { generateFallbackSummary };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { k as init_conversations } from "./conversations-
|
|
5
|
-
import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-
|
|
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 { 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";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { Effect } from "effect";
|
|
9
9
|
import { join as join$1 } from "path";
|
|
@@ -442,11 +442,11 @@ async function generateSummaryForFork(jsonlPath, summaryModel, includeThinkingIn
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
async function reserveSummaryForkSessionPromise(cwd) {
|
|
445
|
-
const { reserveForkSession } = await import("./session-fork-
|
|
445
|
+
const { reserveForkSession } = await import("./session-fork-BQ8_6H32.js");
|
|
446
446
|
return reserveForkSession(cwd);
|
|
447
447
|
}
|
|
448
448
|
async function copySessionFromCompactBoundaryPromise(sourcePath, destPath) {
|
|
449
|
-
const { copySessionForFork } = await import("./session-fork-
|
|
449
|
+
const { copySessionForFork } = await import("./session-fork-BQ8_6H32.js");
|
|
450
450
|
return copySessionForFork(sourcePath, destPath, { fullHistory: false });
|
|
451
451
|
}
|
|
452
452
|
/** Effect variant of generateFallbackSummary. */
|
|
@@ -521,4 +521,4 @@ var init_summary_fork = __esmMin((() => {
|
|
|
521
521
|
//#endregion
|
|
522
522
|
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
523
|
|
|
524
|
-
//# sourceMappingURL=summary-fork-
|
|
524
|
+
//# sourceMappingURL=summary-fork-DHhJIsAL.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cr as LOGS_DIR, Mr as TRAEFIK_DIR, Vr as init_paths, mr as init_errors, wr as OVERDECK_HOME, xr as CONFIG_FILE } from "./config-yaml-DvyMuOle.js";
|
|
2
2
|
import { t as require_toml } from "./toml-CeLDATih.js";
|
|
3
|
-
import { t as init_dev_supervisor } from "./dev-supervisor-
|
|
3
|
+
import { t as init_dev_supervisor } from "./dev-supervisor-BpMoHlkR.js";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import "effect";
|
|
6
6
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -72,4 +72,4 @@ function getSupervisorUrlSync() {
|
|
|
72
72
|
//#endregion
|
|
73
73
|
export { getSupervisorUrlSync as n, getSupervisorPortSync as t };
|
|
74
74
|
|
|
75
|
-
//# sourceMappingURL=supervisor-
|
|
75
|
+
//# sourceMappingURL=supervisor-BO-Zk_h-.js.map
|